首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全的非对称密钥实现客户端

安全的非对称密钥实现客户端
EN

Stack Overflow用户
提问于 2013-06-11 19:23:08
回答 1查看 491关注 0票数 1

我目前正在尝试开发一种客户机-服务器结构,其中客户机在.NET中,服务器是基于PHP的SOAP服务器。

现在,我正在尝试使用Rijndael 256实现一个非对称密钥系统。我理解公钥/私钥对的基本概念(根据this page和维基百科),但是我无法理解它在任何客户端环境中都是安全的。

简而言之,软件将在客户机上运行,因此用户将能够篡改软件。客户端的大部分功能都围绕着从服务器接收的响应来显示报告和详细信息。此外,客户端软件有时会等待来自服务器的命令,服务器将告诉客户端显示弹出窗口或执行客户端程序关闭(与许可有关)。我意识到服务器可能会崩溃或挂起,或者客户端会断开连接。其中大部分都经过了深思熟虑并在代码中进行了处理。但我担心的是有人篡改客户端,使其完全忽略服务器的命令。

客户将有机会接触到各种各样的“玩具”,如IDA,ILDASM,de4dot和各种其他调试器和/或反编译器,我相当肯定一个经验丰富的黑客将能够在短时间内弄清楚公钥/私钥组合。我知道.NET代码本身是非常不安全的,但是我不确定在使用.NET Reactor和Dotfuscator等工具时该如何对付其他代码。

我的问题是:我可以使用什么样的实践、代码、想法或任何东西来严重延迟所说的cracker,或者更确切地说,我如何不惜一切代价保护私钥。

任何提示,提示,建议或样品非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-11 20:18:58

正如@Corak所说,公钥/私钥对通常通过保持私钥私有来工作。在客户端,您可以在每次连接时生成新的公钥/私钥对。最容易隐藏的数据是最初没有保存的数据。

你问题的另一部分是“如何阻止黑客!”这是不可能的,因为最终用户拥有对机器的完全控制。你可以玩一些小把戏,试图在内存中混淆你的私钥,将它放在交换文件之外,等等,但任何有合适工具并想要破解你的程序的黑客都会这么做。

除非!

您可以与领先的硬件供应商合作。让他们在他们的所有硬件上安装一个超级安全的芯片,这个芯片将在你的控制之下,而不是用户的控制下。当激活时,此芯片将监控所有I/O和内存,并且只允许您决定允许的内容。然后你可以简单地禁止像IDA这样的程序,使crackers无能为力!作为一个副作用,您还可以完全控制用户的计算机,并且您可以随心所欲地使用该功能。每个人都赢了!

最后一点:如果你真的决定实现这一点,我建议你的营销部门对它进行一个沉重的旋转。可能会有一群混蛋抱怨“隐私”和“所有权”之类的废话。因此,你需要为这项技术起一个好名字;这个名字必须听起来像人们想要的东西。

我认为你应该称之为“值得信赖的计算”(从"trusted computing" is already taken开始)。或者是"secure computing"

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17042887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档