【发布时间】:2011-06-23 17:41:10
【问题描述】:
我的应用程序访问了许多 Web 服务,例如 Twitter 和 Flickr。它使用来自这些服务的 API 密钥,我想在我的二进制文件中混淆它们。 (我并不担心盗版或其他任何事情,我只需要对这些密钥保密。)
最好的方法是什么?
如果我将它们存储为 const SecureString,这是否会使它们超出内存? MSDN 描述说文本“在不再需要时从计算机内存中删除”,但不是 const 总是在内存中吗?
Dotfuscator 会在我的程序集中隐藏它吗? (假设我可以把它送到work。)
【问题讨论】:
-
你不能。如果恶意攻击者想要您的 API 密钥,混淆您的二进制文件不会阻止他们访问它。无论如何,其他任何人都不知道如何处理密钥。
-
我认为 SecureString 会使情况变得更糟。因为这是一个大牌子,上面写着“看看我,我很神秘”。 SecureString 可以防止诸如将密钥交换到磁盘之类的事情,但不能防止恶意使用。
-
简单地拦截你对 twitter 的 http(s) 请求也应该是微不足道的。
标签: .net security obfuscation api-key dotfuscator