摘要:嵌入式系统已广泛用于电子信息工程领域,系统安全与数据安全十分重要。安全性通常为密码学、计算科学以及网络等领域所关注,往往被视为嵌入式系统设计的附加功能。而事实上,安全性问题同成本、性能和功率等问题一样,均应被纳入嵌入式系统设计的考虑范围。该文基于嵌入式系统开发与设计在安全方面所面临的挑战,从终端用户的角度分析嵌入式系统的典型功能安全需求,进而解析嵌入式系统架构以及硬件和软件设计面临的潜在安全问题。此外,研究还考查了解决上述问题的解决方案,借鉴当前的理论与实践研究成果,提出需要在嵌入式系统架构和设计方法上进行创新与改进。
关键词:嵌入式系统;安全;协议;密码
1 概述
如今,各类嵌入式系统对安全性的需求越来越高,从低端系统例如掌上电脑、手机、网络传感器和智能卡等,到高端系统如路由器、网关、防火墙、存储服务器和Web服务器等,安全防护愈发重要。技术推动电子系统的更新发展,但同时也可能被应用于对系统的攻击,从而让安全问题变得复杂。随着互联网的发展,信息和通信安全受到了广泛的关注。例如,各种安全协议和标准(如IPsec、SSL、WEP和WTLS)用于安全通信。虽然安全协议和密码算法从功能的角度考虑了安全问题,但不少嵌入式系统都受到其所处的环境和所拥有的资源的限制。对于此类系统,有不少因素正促使对安全问题的考虑从以功能为中心的角度转移到系统架构(硬件/软件)设计问题上。[1]
首先,用于破坏安全性的攻击技术,如软件、物理和侧信道攻击越来越多,这就要求面对逻辑上或物理上被恶意访问或攻击,嵌入式系统也能保证其安全性。只有在系统架构及其实现中内置攻击防御,才能确保对这些攻击的抵抗能力。其次,许多嵌入式系统的处理能力很容易被安全处理的计算需求所淹没,难以实现在安全与成本、性能之间的平衡。再次,电池驱动系统和小尺寸器件,如掌上电脑、手机和网络传感器通常在严格的资源限制(有限的电池容量、存储和计算能力)下运行。而要让这些设备达到一定安全要求,便要突破以上限制条件。再其次,嵌入式系统架构需要足够灵活,以支持安全机制和标准的快速升级更新。最后,新的安全目标,如拒绝服务和数字内容保护需要安全领域和嵌入式系统架构方面之间的深度紧密合作。[2]
本文将基于嵌入式系统安全的重要性,回顾不断发展的安全趋势和标准,说明安全需求如何转化为系统设计挑战,进而提出通过结合先进的嵌入式系统体系结构和设计方法来应对这些挑战的新型解决方案。
2 嵌入式系统安全要求
嵌入式系统提供的关键功能经常可能被恶意破坏。在讨论嵌入式系统的常见安全需求之前,必须要注意,典型的嵌入式系统制造涉及许多方面,例如供应和使用链等。安全性的要求往往取决于考虑的角度。以智能手机为例,最终用户的主要关注点可能是通过手机存储个人数据信息和进行数据通信的安全性,而内容提供商的主要关注点可能是传输到手机的多媒体内容的拷贝保护。此外,手机制造商可能还关心手机内部专有固件的保密性。同样,潜在的恶意实体类型也可能有所不同。从内容提供商的角度来看,手机的最终用户可能是不受信任的实体。嵌入式系统有着典型的、广泛的安全需求,但其安全模型将制约其适用的安全需求组合。当用户在公共网络或通信通道发送或接收敏感信息,潜在攻击者也可访问网络时,就需要安全功能来实现数据机密性、数据完整性保护以及对等身份验证。数据机密性保护敏感信息不遭窃取;数据完整性确保信息不受非法更改;对等身份验证验证信息是否由适当的方(而不是伪装者)发送和接收。这些安全功能皆為当今广泛应用的嵌入式系统所必需。[3]
另一个重要的安全功能是嵌入式系统的可用性。恶意程序经常阻止嵌入式系统执行功能,导致性能下降或完全拒绝服务(DoS)给合法用户。嵌入式系统安全通常需要在其使用周期内保护关键或敏感信息(代码或数据),包括确保这些信息在使用周期结束后被正确擦除。安全存储涉及保护嵌入式系统存储设备中的信息,无论是系统外部还是内部。内容安全或数字版权管理(DRM)保护系统中使用数字内容的权利,内容提供商较为关注。最后,防篡改指即使设备被恶意入侵或者控制,也能确保安全性,并且可以在物理上或逻辑上进行探测追溯。
3 安全机制
上面描述的基本安全功能通常使用三种不同的加密算法:对称密码、非对称密码和安全哈希算法来实现。
对称密码要求发送者使用密钥来加密数据(被加密的数据通常称为明文)并将加密的数据(通常称为密文)传输给接收者。在接收到密文后,接收者使用相同的密钥解密并重新生成明文。密文应该具有这样的特性,即第三方在没有访问密钥的情况下很难推断出明文。因此,在传输过程中保证了数据的机密性。对称密码的例子包括DES、3DES、AES和RC4。
MD5和SHA等安全哈希算法将任意消息转换为唯一的固定长度值,从而为消息提供唯一的“指纹”。哈希函数通常用于构造消息认证码(MACS),例如HMAC-SHA,它还包含一个密钥,以防止篡改数据的对手通过重新计算哈希来避免检测。
非对称算法(也称为公钥算法)使用一对密钥:其中一个密钥锁定数据,而另一个密钥解锁数据。为给定收件人加密邮件只需要已知的公钥,但解密只能使用收件人的私钥,收件人应对此保密。因此,使用私钥f假设它是保密的)提供程序用户或主机身份验证。因此。数字签名通常使用公钥密码和安全散列来构造。用户可以通过使用私钥加密消息的哈希值来“数字签名”:任何人都可以通过使用公钥解密来验证此签名。[4]
非对称密码(如RSA、Diffie-Hellman等)依赖于使用计算量更大的数学函数,如大整数的模幂运算,因此比对称密码慢得多。对称密码通常用于加密大容量数据,而非对称密码则用于通过公共网络建立(传输)对称密码的密钥。安全解决方案通常依赖于在安全协议中使用密码算法组合的安全机制。各种安全技术和机制围绕这些密码算法而设计,以提供特定的安全服务。
推荐阅读:计算机方面的期刊哪里能推荐