0

我正在用 WinJS 做一个爱好项目 Windows 8 应用程序。当我调用一个需要 api 密钥和 oauth 身份验证的外部 api 时,我有许多需要保密的密钥。

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

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

如果没有解决,人们如何处理这些情况?

欢迎任何提示和建议:)

4

2 回答 2

1

你有几个选择。

  1. 如果可能,集成 Azure 移动服务并让它执行 oAuth。您的密钥在云中仍然保密。
  2. 将加密的主密钥存储在您的 WinJs 应用程序中。然后秘密也被加密并存储在本地。我使用https://github.com/cauld/winjs-oauth-for-twitter并稍作修改,当我取回密钥时,我将其存储在凭证管理器中。

从任何计算机语言编译的任何本地应用程序都可以被篡改,您只需要一个调试器。如果你加密所有东西,理论上我可以加载一个调试器,附加到 http 堆栈库并观察数据输出(不包括像 Fiddler 这样更简单的技术来观察这些数据)并提取我想要的任何东西 - 相当容易。所以问题是你想阻止什么?

于 2013-08-23T00:20:07.340 回答
0

如果您的应用程序可以帮助发起中间人攻击,您不应该将机密数据长期以纯格式保存在内存或磁盘中。此外,在本地存储加密数据以及算法和算法密钥/哈希是安全事件的一个秘诀

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

于 2013-08-22T22:27:27.187 回答