Sco*_*ain 12 .net c# java security oauth
我正在编写第一个使用OAuth的应用程序.这适用于桌面应用程序,而不是访问二进制文件的网站或移动设备,因此我担心如何保护我的应用程序密钥和密钥.我觉得查看编译文件并找到存储密钥的字符串是微不足道的.
我是否过度反应或者这是桌面应用程序的真正问题(使用已知解决方案)?
这个项目是用Java编写的,但我也是一个C#开发人员,所以任何.NET解决方案都会受到赞赏.
编辑:我知道没有完美的解决方案,我只是在寻找缓解解决方案.
编辑2:我知道只有解决方案是使用某种形式的混淆.是否有任何免费的.NET和Java提供程序可以进行字符串混淆?
Ste*_*n C 13
没有好的甚至是半好的方法来保护嵌入在不受信任的用户可以访问的二进制文件中的密钥.
有理由至少付出最少的努力来保护自己.
在最小的努力量将不会生效.即使是最大限度的努力也不会对熟练的逆向工程师/黑客有效,只需几个小时的业余时间.
如果您不希望攻击OAuth密钥,请不要将它们放在分发给不受信任的用户的代码中.期.
我是否过度反应或者这是桌面应用程序的真正问题(使用已知解决方案)?
这是一个没有已知(有效)解决方案的真正问题.不是在Java中,不是在C#中,不是在Perl中,不是在C中,不是在C中.把它想象成是物理定律.
您的替代方案是:
强制您的用户使用仅执行加密签名代码的可信平台.(提示:这很可能对您的应用程序不实用,因为当前的PC不能以这种方式工作.甚至TPS也可以在适当的设备下被黑客攻击.)
将您的应用程序转换为服务,并在您控制访问权限的计算机/计算机上运行它.(提示:听起来OAuth 2.0可能会删除此要求.)
使用一些不需要永久密钥分发的身份验证机制.
让您的用户签署具有法律约束力的合同,不对您的代码进行反向工程,并在违反合同时起诉他们.确定你的哪些用户已经破解了你的密钥是你想象的......(提示:这不会阻止黑客入侵,但如果黑客拥有资产,可能会让你收回损失.)
顺便说一句,类比论证是一个聪明的修辞手法,但它在逻辑上并不合理.观察到前门上的物理锁定会阻止人们窃取您的东西(在某种程度上)对于在可执行文件中安全嵌入私人信息的技术可行性没有任何说明.
并且忽略了类比论证不合理的事实,这个特殊的类比由于以下原因而破裂.物理锁不是不可穿透的.前门锁定"工作",因为有人必须站在你的房子前面,可以看到从你的锁上摆弄一分钟左右的道路......或者用一把大锤敲打它.这样做的人冒着他/她将被观察的风险,警察将被召唤.银行金库"工作",因为穿透它们所需的时间是几个小时,还有其他警报,保安等等.等等.相比之下,黑客可以花费几分钟,几小时甚至几天试图破坏您的技术保护措施,实际上没有被观察/检测到的风险.