在我的公司,我们正在开发一个由多台服务器组成的大型系统。该系统由约5个逻辑组件组成。数据存储在XML,MS SQL和SQLite中。这是一个.Net系统(主要),组件使用WCF和一些自定义UDP进行通信。 客户端主要通过自定义UDP或WEB访问系统(ASP.NET & Silverlight)。保护部署在“恶意”环境中的系统
保护通信很容易,一些SSL和WCF上的一些安全性,我们完成了。
我们面临的主要问题是系统需要部署在客户端的网站上,这是我们不一定信任的客户端。我们需要捍卫服务器上的数据,以及逆向工程中的软件本身。两者对我们都非常重要。
此外,我们需要一个杀死开关,我希望某些东西可以根据命令破坏数据和软件,或者如果无法在一定时间内致电回家。
我想到的方向是使用TPM或类似的东西 - 一些硬件加密解决方案,与另一种服务相结合,我们可以在内部保留这些服务以加密服务器上的所有软件和数据,以便密钥的意愿来自我们的服务器安全地在我们的网站,并可能从TPM的内存窗帘。
你如何解决这个问题?
UPDATE 04/02 我在寻找切实可行的建议,或产品,可以帮助我建议,所以我开始赏金......
看家伙我们基本上把我们的机器放在客户的网站上(出于商业和实际的原因),我们拥有这台机器,客户在几个小时内收到他所付的一切,他可以随心所欲地处理数据。但是我在那台机器上运行的算法,以及存储在那里的一些数据是我们想要保护的商业秘密。 理想情况下,我希望机器不工作,甚至不开机,如果我不说,这是好的,没有我的确定在机器上的一切保持加密。内存遮挡看起来也是在执行时保护机器的好方法。
理想情况下,我希望HD和所有机器上的存储器一旦有人用螺丝刀接近它们就会爆炸...... :-)但我认为这会花费太多......
UPDATE 10/02 OK在做了一些研究之后,我认为我们会尝试一些与PS3加密系统相同的方向,除了我们要带来解密软件和我们服务器数据的密钥。这样做,我们可以决定我们的机器是否信任请求密钥的服务器,我们可以通过重新设置机器来获得kill switch。这可能是基于TPM或类似的东西,也许英特尔的TXT ... 我也真的有兴趣在内存窗帘作为一项重要的安全功能...
顺便说一句,我们不能通过移动有价值的零件我们的系统到我们的网站,无论是因为业务需求,还是因为它不具备技术上的可行性 - 我们需要巨大的带宽......
为使讨论更有意义:您认为攻击者会将什么样的努力放到您的系统中? (像租用一个集群,雇用10名安全研究员,每小时100美元,为期一个月,或类似) – wizzard0 2011-02-10 21:59:01
> PS3加密系统 >业务需求 >巨大的带宽.... 另外,我见过一个系统这样的要求。在源代码中。与银行业务有关。所以,实践起来,我可以帮你设计它(不是真的相信你可以聘请一个完整的陌生人,但是)。 – wizzard0 2011-02-10 22:04:53