嵌入式设计的那些安全性考虑事项
随着越来越多的嵌入式设备接入网络并成为物联网的一部分,网络黑客们开始利用这些连接,以达到自己不可告人的目的。因此,嵌入式设备必须提高安全性,以防止黑客复制IP、盗窃数据或侵入系统,可是对于嵌入式工程师来说,安全是又一个极其复杂的主题,在为嵌入式微控制器设计系统时,很难把握到底需要怎样的保护力度。
图1:安全性思维模型。
为了简化安全性这一讨论话题,我们从三个方面进行探讨。在图1中,嵌入式设备A需要与远程设备B通信。此时,需要考虑的三个安全因素:(1)设备完整性 – 安全访问设备A;(2)通过身份验证建立与远程设备B的信任关系;(3)建立信任关系后,通过数据加密保障两个设备之间的信息传送安全。
* 设备完整性是指如何防止嵌入式设备上的代码(或IP)和数据受到未授权的访问(如远程软件攻击、通过已建立的用户接口获得访问权限或对系统硬件进行物理/探测攻击)。可以通过多种方式防范这些攻击,但各个方法的成本和复杂性也各不相同。
* 在设备之间建立信任关系是指一个或两个设备间相互验证真伪,以确保不会将数据发送至冒名顶替的设备,或从这样的设备接收数据。建议信任关系的常用方法是非对称密钥加密。此方法使用一对密钥(一个私人密钥和一个公共密钥)来建立信任关系。私人密钥用于加密而公共密钥用于解密。非对称密钥加密的常用算法为 RSA和ECC。
* 建立信任关系之后,如果从设备A向设备B传输数据,对称加密算法将对其进行保护。对称加密使用相同密钥进行加密和解密。(此方法的速度比非对称加密快,这也是并非所有通信都使用非对称加密的原因)。该算法目前的加密标准为AES(高级加密标准)。这是一种使用相同长度的密钥对128、192或256位数据块进行加密的对称密钥块加密标准。
虽然任何加密算法在长时间攻击下都可能被破 解,但即使使用现代超级计算机进行蛮力攻击(指尝试每一种密钥组合:2128或3.4 x 103种),破 解AES-128密钥块加密可能需要花费一百万年时间,而AES-256加密算法更有2256或1.1 x 1077个组合。由此,AES-128或AES-256都适用于防止蛮力攻击。但是通常来说,AES-128更佳,因为其计算效率比AES-256要高 40%。这么看来,蛮力破 解AES的可能性几乎微乎其微。因此,黑客们将主要精力花在提取AES密钥上。如果未能安全地保护AES密钥,那么无论算法多么安全都没有用。这就好像是用一个六英寸厚的钢门保护您的家,却将钥匙留在门垫下面。
安全性并非是一个必须的刚性需求。嵌入式设计中到底需要什么程度的安全性取决于您所连接的设备、需要保护的内容以及冲破安全防护时所造成的损失。图2中列示了嵌入式设计中可用的不同安全性级别。
图2.:安全性范围。