2

您可能知道,挖掘由 HTML、CSS 和 JS 制作的 Windows 应用商店应用程序的源代码非常容易。

我的应用程序使用 REST API,它在服务器上启动了一项非常昂贵的操作。为了节省 CPU 资源,API 使用了 HMAC 之类的东西。要生成 HMAC,需要一个秘密。我怎样才能安全地保存这个秘密?我正在寻找类似 iOS 密钥库的东西。

4

2 回答 2

5

由于代码中的所有内容都可以被分析、反编译、调试,最终,如果您想发布应用程序并嵌入密钥作为应用程序包的一部分,这似乎是一种混淆而不是安全性的工作。

由于您不使用用户安全来控制访问,因此我建议您考虑一种方案,您将激活和授权应用程序,而不是尝试在应用程序的某处存储“秘密”。

如果您为应用程序授权添加了 RESTful API,您可以:

  1. 按设备跟踪应用程序激活
  2. 为每个设备提供唯一的激活码(令牌)
  3. 监控每个设备的 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));

PasswordVault 文档

于 2013-09-17T21:46:51.683 回答
1

You can use PasswordVault to store sensitive data. Here's MSDN sample.

You can also use local storage setting, which is also not accessible.

于 2013-09-17T16:12:44.977 回答