AK_*_*AK_ 8 .net security encryption obfuscation tpm
在我的公司,我们正在开发一个由多个服务器组成的大型系统.该系统由大约5个逻辑组件组成.数据存储在XML,MS SQL和SQLite中.它是一个.Net系统(主要是),组件使用WCF进行通信,以及一些自定义UDP.客户端主要通过自定义UDP或WEB(ASP.NET和Silverlight)访问系统.
保护通信很容易,一些SSL,以及WCF上的一些安全性,我们已经完成了.
我们面临的主要问题是系统需要部署在客户的网站上,这是我们不一定信任的客户.我们需要保护服务器上的数据,以及软件本身的逆向工程.两者对我们都至关重要.
我们还需要一个kill开关,我希望根据命令销毁数据和软件,或者如果在一段时间内无法打电话回家.
我正在考虑的方向是使用TPM,或类似的东西 - 一些硬件加密解决方案,结合我们可以在内部加密服务器上的所有软件和数据的另一项服务,以便密钥来自我们的服务器安全地在我们的网站,也许TPM的记忆窗帘.
您如何建议解决这样的问题?
更新 04/02我正在寻找实用的建议,或建议可以帮助我的产品,所以我开始赏金...
看起来我们基本上把我们的机器放在客户的网站上(出于商业和实用的原因),我们拥有那台机器,客户收到他在几小时内付款的所有东西,他可以随心所欲地处理数据.但我在那台机器上运行的算法,以及存储在那里的一些数据是我们想要保护的商业机密.理想情况下,我希望机器根本不工作,甚至不启动,如果我不说它没关系,没有我的确保机器上的所有东西都保持加密状态.内存窗帘看起来也是一种在执行时保护机器的好方法.
理想情况下,我希望所有机器上的HD和存储器一旦有人用螺丝刀靠近它们就会爆炸...... :-)但我认为这样做太过分了......
更新 10/02好在做了一些研究后,我想我们将尝试与PS3加密系统相同的方向,除了我们将引入用于解密软件和来自我们服务器的数据的密钥.这样我们可以决定我们的机器是否信任服务器请求密钥,我们只需重新安装机器即可获得一个kill开关.这可能是基于TPM或类似的东西,也许是英特尔的TXT ...我也非常感兴趣的是内存窗帘作为一个重要的安全功能......
顺便说一句,我们无法通过将我们系统的有价值的部分移到我们的网站来解决这个问题,这既是因为业务需求,也是因为它在技术上不可行 - 我们需要一个巨大的带宽....
Cod*_*ous 10
实际上,你所要求的是圣杯.这与游戏控制台的操作大致相同,在游戏控制台中,您有一个在不受信任的环境中运行的可信平台.
考虑一下你是否可以将机器视为从第1天开始受到损害.如果你可以在这个假设下工作,那么对你来说事情变得相当容易,但这在这里听起来并不可行.
在实际保护方面,有一些问题:
我知道这些都是相当模糊的,但这确实是过去几年游戏控制台保护的历史 - 如果你对如何一遍又一遍地解决(和破坏)感到好奇,请关注控制台制造商.
它从未完全成功完成,但您可以显着提高进入门槛.