随着英特尔最近收购了一家知名安全公司,我开始思考在芯片级别上哪些软件可能更安全。我想出的例子是:
- 随机数生成
- 加密
- 内存保护
但是硬件级别的安全性是否比基于软件的安全性更安全?(无论您在哪个级别操作,我都会假设垃圾中的垃圾)嵌入式安全的设计考虑因素是什么?有什么限制?最后,你有什么好的资源来了解更多关于这个主题的信息吗?
硬件级别的安全只能解决一些安全问题。例如,NX 区域使缓冲区溢出更难以利用(但并非不可能,返回到 libc)。您使用的 cpu 架构不会影响更常见的漏洞,如 SQL 注入,我认为它不会。硬件中也可能存在漏洞,例如Intel cpu 中的此漏洞。
英特尔希望让他们当前的产品更加安全。英特尔也有很多积蓄,他们可能会将最近的收购视为对不断增长的领域的投资。
这个线程有点老了,但您也可以阅读英特尔处理器(从 2012 代处理器开始)内置的英特尔安全密钥技术(随机数生成)。实施指南详细介绍了什么使它比基于软件的实现。
虽然这个线程已经很老了,但我看到了一篇关于英特尔安全密钥的论文,其中描述了它的随机数生成、安全性和性能方面。全文在这里(http://iopscience.iop.org/article/10.3847/1538-4357/aa7ede/meta;jsessionid=A9DA9DDB925E6522D058F3CEEC7D0B21.ip-10-40-2-120),但非付费版本是在这里(https://arxiv.org/abs/1707.02212)。
简而言之,我们拥有的用于随机数生成的最佳技术是英特尔安全密钥,它使用 RdRand 和 RdSeed 指令集。它是一种加密安全的伪随机数生成器,它使用片上熵源随机播种数字生成器。它完全符合最新的安全规范,例如 NIST SP800-90Ar1/B/C、FIPS-140-2 和 ANSI X9.82。