您可能知道,挖掘由 HTML、CSS 和 JS 制作的 Windows 应用商店应用程序的源代码非常容易。
我的应用程序使用 REST API,它在服务器上启动了一项非常昂贵的操作。为了节省 CPU 资源,API 使用了 HMAC 之类的东西。要生成 HMAC,需要一个秘密。我怎样才能安全地保存这个秘密?我正在寻找类似 iOS 密钥库的东西。
您可能知道,挖掘由 HTML、CSS 和 JS 制作的 Windows 应用商店应用程序的源代码非常容易。
我的应用程序使用 REST API,它在服务器上启动了一项非常昂贵的操作。为了节省 CPU 资源,API 使用了 HMAC 之类的东西。要生成 HMAC,需要一个秘密。我怎样才能安全地保存这个秘密?我正在寻找类似 iOS 密钥库的东西。
由于代码中的所有内容都可以被分析、反编译、调试,最终,如果您想发布应用程序并嵌入密钥作为应用程序包的一部分,这似乎是一种混淆而不是安全性的工作。
由于您不使用用户安全来控制访问,因此我建议您考虑一种方案,您将激活和授权应用程序,而不是尝试在应用程序的某处存储“秘密”。
如果您为应用程序授权添加了 RESTful API,您可以:
要为您的应用程序获取唯一的硬件 ID,您需要阅读本指南:http: //msdn.microsoft.com/en-us/library/windows/apps/jj553431.aspx
获得令牌后,您可以使用PasswordVault
安全地存储令牌:
var vault = new Windows.Security.Credentials.PasswordVault();
vault.add(new Windows.Security.Credentials.PasswordCredential(
"MyWindows8App", "default", token));
You can use PasswordVault
to store sensitive data. Here's MSDN sample.
You can also use local storage setting, which is also not accessible.