Windows 8(WinJs)应用程序中的“秘密”密钥有多安全?

时间:2013-08-22 21:22:07

标签: security windows-8 winjs code-access-security secret-key

我正在WinJS做一个业余爱好项目Windows 8应用程序。因为我正在调用一个需要api密钥和oauth身份验证的外部api,所以我需要一些密钥来保持“秘密”。

我在网上看到了有关如何访问并修改计算机上WinJs(和C#)应用程序源代码的详细说明。但我认为那些是在测试版/预览时间框架内?

我的Google技能似乎无法告诉我这是否已经修复,有人知道吗?

如果没有修复,人们如何处理这些情况?

欢迎任何提示和建议:)

2 个答案:

答案 0 :(得分:1)

你有几个选择。

  1. 集成Azure移动服务,并尽可能使用oAuth。你的密钥在云中保密。
  2. 将加密的主密钥存储在WinJs应用程序中。然后,秘密也被加密并存储在本地。我使用https://github.com/cauld/winjs-oauth-for-twitter进行了一些修改,当我拿回密钥时,我将其存储在凭据管理器中。
  3. 任何计算机语言编译的任何本地应用程序都可以被篡改,您只需要一个调试器。如果你加密所有东西我理论上可以只加载一个调试器,附加到http堆栈库并观察数据熄灭(不包括更简单的技术,如Fiddler来观察这些数据)并提取我想要的任何东西 - 相当容易。所以问题是你想要阻止什么?

答案 1 :(得分:0)

如果您的应用程序可以帮助发起中间人攻击,则不应该长时间,内存或磁盘上保存机密数据。另外,storing encrypted data locally, alongside with the algorithm and the algorithm key/hash is a recipe for security incidents

没有灵丹妙药可以保护您的代码或数据不被最终用户(或者对最终用户的机器进行物理访问的人)进行探测,请参阅游戏保存编辑和游戏培训师的数量。不要将您的业务逻辑或重要数据(例如应用内购买)以纯文本或类似方式存储,至少添加一些混淆