我们都知道服务器计算和嵌入式计算有很多不同的原因,其中许多原因可以用一个词来概括:预算。内存预算、性能预算、成本预算等。换句话说,嵌入式系统预算紧张,而服务器(以及台式机和笔记本电脑)则不然。多。
但偶尔会有一些东西在差异方面给你一记重击。不久前,麻省理工学院(MIT)发布了一份公告,介绍了一种伪装内存访问模式以提高安全性的方法。问题是,即使你已经采取了谨慎的措施来加密数据,并以其他方式防止窥视的眼睛窥探正在计算的内容,这些眼睛仍然可以监视你的内存访问并了解太多。很难想象,但显然比我聪明得多的人已经证明了这一点。
需要明确的是,这被定位为云计算的一个问题,其中一组资源可能正在为许多不相关的客户处理微妙的计算;因为他们共享处理器或内存或其他东西,所以有可能,嗯,让我们说,偷看你邻居的试卷。
最基本的想法是多个不相关的进程正在运行,这通常不适用于嵌入式系统。然而,如果监视内存访问可以泄露机密,那么这仍然可能发生在嵌入式设备中——只是可能有人将其拆开并进行探测,而不是其他共存进程。
提出的解决方案是在内存访问路径中放置一个中间硬件。每个被访问的内存地址都被放置在一个树中,当该内存被访问时,沿着树分支的每个地址也会被访问。然后,在这之后,你真正想要的地址会与树中的其他地址随机交换,这样,下次你访问它时,你就会遍历一组完全不同的地址。
以这种方式,您完全打乱了您的内存访问模式,如果您所观察的只是内存访问,则很难(不可能?)判断正在发生什么。
这让我感到震惊的原因是,嵌入式设计人员要仔细地对齐内存,以便它能很好地打包到缓存中,最大限度地减少错误,并为每次访问获得最大的效果。我很难想象这个安全进程(称为“Ascend”)会对一个行为良好的缓存产生什么影响。
还有一条线索说明我们不是"嵌入"在这里面?性能命中“只有”3-4倍。公平地说,这与其他安全思想形成了对比,这些思想显然对访问性能造成了100倍的负担,毫无疑问,3-4比100要好。但有些嵌入式设计师会放弃他们的左眼,一步就能获得30-50%的性能。
我不知道是否有办法将这个想法映射到更加嵌入式友好的东西;它在智力上很有趣,我并不是在嘲笑它在云中的潜力,但除非我遗漏了什么(如果我遗漏了,请在下面评论),我不期望它很快就会出现在我身边的打印机上。(再说一次,公平地说,没有人建议它应该这样做。)
你可以在他们的释放.
关于“旧车换现金”的7点思考