APP下载

嵌入式系统设计中的安全性问题刍议

2020-04-24马潇宇

电脑知识与技术 2020年5期
关键词:协议嵌入式系统密码

马潇宇

摘要:嵌入式系统已广泛用于电子信息工程领域,系统安全与数据安全十分重要。安全性通常为密码学、计算科学以及网络等领域所关注,往往被视为嵌入式系统设计的附加功能。而事实上,安全性问题同成本、性能和功率等问题一样,均应被纳入嵌入式系统设计的考虑范围。该文基于嵌入式系统开发与设计在安全方面所面临的挑战,从终端用户的角度分析嵌入式系统的典型功能安全需求,进而解析嵌入式系统架构以及硬件和软件设计面临的潜在安全问题。此外,研究还考查了解决上述问题的解决方案,借鉴当前的理论与实践研究成果,提出需要在嵌入式系统架构和设计方法上进行创新与改进。

关键词:嵌入式系统;安全;协议;密码

中图分类号:TP391 文献标识码:A

文章编号:1009-3044(2020)05-0240-02

开放科学(资源服务)标识码(OSID):

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等)依赖于使用计算量更大的数学函数,如大整数的模幂运算,因此比对称密码慢得多。对称密码通常用于加密大容量数据,而非对称密码则用于通过公共网络建立(传输)对称密码的密钥。安全解决方案通常依赖于在安全协议中使用密码算法组合的安全机制。各种安全技术和机制围绕这些密码算法而设计,以提供特定的安全服务。例如:

(1)安全通信协议(通常称为安全协议)提供确保与嵌入式系统之间的安全通信通道的方法。IPSec和SSL是安全协议的流行示例,分别广泛用于虚拟专用网(VPN)和安全Web事务;

(2)数字证书提供了将身份与实体关联起来的方法,而指纹识别和语音识别等生物识别技术则有助于最终用户的身份识别。

数字签名作为手写签名的电子等价物,既可以用来验证数据源,也可以用来验证其身份;

(3)数字版权管理(DRM)协议,如OpenPMP、ISMA和MO-SES,提供了安全框架,旨在保护应用程序内容免受未经授权的使用。

安全存储和安全执行要求系统的体系结构根据安全考虑进行定制。简单的例子包括使用专用硬件来阻止对内存中受保护区域的非法访问,对系统上执行的固件和软件进行身份验证,保护与给定应用程序或进程相关的代码和数据的机密性和完整性,硬件和软件技术,以保持整个内存层次结构中数据的机密性和完整性,并在处理器中执行加密代码以防止总线探测等。

4 安全攻击与对策

对电子和计算系统的各种攻击表明,黑客很少利用精心设计的密码算法来进行攻击。相反,黑客依赖于利用实现的软件和硬件组件中的安全漏洞。因此,除非在整个设计周期中考虑安全性,否则嵌入式系统实现漏洞很容易被利用来绕过或削弱功能安全措施。

4.1 嵌入式系统安全漏洞解析

4.1.1 软件

嵌入式系统中的软件是安全漏洞的主要来源。三个因素,即复杂性、可扩展性和连接性因素会导致软件管理安全风险。

(1)复杂性:软件的复杂性随着应用功能的提升而提高,代码行的增加会出现错误和安全漏洞的可能性。随着嵌入式系统与互联网的融合和更多代码的加入,嵌入式系统软件也变得越来越复杂。C和C++因效率高而成为非常流行的嵌入式系统编程语言,但缺乏安全性,难以防范例如类似缓冲区溢出等的简单攻击。[5]

(2)可扩展性:现代软件系统,如Java和.NET,都是为扩展而构建的。可扩展主机接受更新或扩展(移动代码)以增量改进系统功能。操作系统通过动态可加载的设备驱动和模块支持可扩展性。高级嵌入式系统被设计成可扩展的(如JZME、Java卡),但可扩展系统本质上很难防止软件漏洞作为不需要的扩展被接入。[5]

(3)连接性:大量嵌入式系统连接到互联网,小故障的传播可能导致大规模的安全漏洞。攻击者不再需要对系统进行物理访问来启动自动攻击,只需利用易受攻击软件的漏洞。并利用网络的传播效应即可弥漫全网。[5]

4.2 物理和侧信道攻击与防篡改硬件

除了软件攻击,还有物理和侧信道攻击,利用系统实现或其标识属性来破坏嵌入式系统的安全性。历史上。其中许多攻击被用来破坏智能卡等嵌入式系统的安全性。物理和側信道攻击通常分为侵入性和非侵入性攻击。侵人性攻击包括进入设备进行观察,操纵和干扰系统内部。由于针对集成电路的入侵攻击通常需要昂贵的设备,因此相对难以安装和重复。侵入性攻击的实例包括微探测和逆向工程。而非侵人性攻击无须打开设备,仅需要初期投入,与侵入性攻击相比更为廉价。非侵入性攻击有多种形式,包括定时攻击、功率分析攻击、故障感应技术和电磁分析攻击等。

5 嵌入式安全处理体系结构

以往的嵌入式系统只执行单个或几个固定的功能,但当前的远程嵌入式系统可以执行多种功能,还可以提供下载新软件的功能,以便在使用现场而不是回到受控环境中,实现即时应用或应用更新。这无疑提高了嵌入式系统的灵活性和可用性,但也增加了被恶意攻击的可能性。因此,嵌入式系统本身应该提供所需的安全功能,实现安全防护,抵御恶意攻击,特别是对于资源受限的嵌入式系统,其在网络计算环境中更易面临额外风险。

安全嵌入式处理系统的体系结构设计,应基于不同的宏架构模型,包括嵌入式通用处理器(EP)与特定于应用程序的指令集处理器(ASIP)以及与处理器总线连接的自定义硬件加速器的EP等。其次,基本处理器参数应详细化指令集体系结构和微体系结构选项,用于在适当的情况下调整基本处理器。再次,安全处理功能要实现对自定义指令与硬件加速器的选择。例如,选择要通过自定义指令、硬件加速器或通用指令原语实现的功能。攻击防御功能涉及嵌入式处理器和嵌入式系统设计中抗攻击特性的选择,可以同时防止软件攻击和物理攻击,包括用于管理安全存储器空间的增强存储器管理单元、处理隔离架构、用于阻止功率分析攻击的附加冗余电路和故障检测电路。[6]

6 结束语

目前,安全嵌入式系统设计在研究和普及部署方面还处于起步阶段。尽管从历史上看,各种安全问题都是在密码学、网络安全和计算机安全的背景下得以研究、解决,但新兴网络环境,尤其是嵌入式系统网络环境带来的问题迫使研究者们重新审视安全保护问题。网络空间的范围较大,而嵌入式系统范围有限,其安全问题解决方案与网络空间安全问题也会有所不同。但同时,嵌入式设备资源的有限性给实现安全水平预期也带来了新的挑战。架构和设计方法的进步将使推动嵌入式系统设计的进步及系统应用范围的拓展。而为了实现嵌入式系统在应用程序和环境要求范围内的安全性,研究者应该基于嵌入式系统的基本安全功能,在不影响设备性能、体积、能耗、成本和可用性的前提下,为各种攻击提供防御。

参考文献:

[1]赵波,倪明涛,石源,等,嵌入式系统安全综述[J].武汉大学学报:理学版,2018,64(2):95-108.

[2]曹荣祥,陈双龙,一种增强嵌入式系统安全性的安全防护技术[J].指挥控制与仿真,2007,29(6):112-115.

[3]何立民.物联网时代嵌入式系统的安全性设计[J].单片机与嵌入式系统应用,2016,16(7):82-83.

[4]郭福洲.嵌入式系统的安全启动机制研究与实现[J].电子测试,2019,406(1):86-87.

[5]【美】戴维·克勒德马赫,[美]迈克·克勒德马赫,著,周庆国,姚琪,刘洋,等译嵌入式系统安全[Ml.北京:机械工业出版社,2015.

[6]王明剑,谢永强,王建新.嵌入式信息系统安全体系构建与应用[J].信息安全与通信保密,2005(7):203-206.

【通联编辑:朱宝贵】

猜你喜欢

协议嵌入式系统密码
密码里的爱
密码抗倭立奇功
基于数字化变电站SV报文通信可靠性问题研究
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
夺命密码