引 言
Internet已经成为人们获取信息、相互交流的重要渠道。将嵌入式系统和Internet相结合,使嵌入式设备接入Internet是当今嵌入式系统发展的一个重要趋势,因此就有了嵌入式Internet的说法。利用该技术可以实现基于Internet的远程数据采集、远程控制、自动报警等功能,大大扩展嵌入式设备的应用范围;同时充分利用网络资源,实现更广泛的信息共享和更多信息服务。
嵌入式Internet解决了终端设备的网络化问题,然而Internet提供的网络环境并不保障接入系统的安全性。可以这样说,嵌入式Internet的安全问题直接关系到嵌入式Internet的发展及其应用前景;因此,在开发和使用嵌入式Internet系统的同时,必须把嵌入式Internet通信的安全问题放到重要的地位考虑。在这种背景下,本文选择了嵌入式Internet通信安全作为主要的研究方向,基于0SI安全体系架构,设计并实现嵌入式Interet安全通信机制EISCM(Embedded Internet Security Commumc
1 嵌入式Intemet的安全需求分析
根据OSI安全体系结构以及对嵌入式Internet特点分析,一个有效的嵌入式安全通信机制必须提供以下安全服务:数据保密性、数据完整性、认证服务、访问控制服务和抗抵赖服务。实现这些安全服务需求,可以采用的安全机制为:加密机制、数字签名机制、访问控制机制、数据完整性机制、鉴别交换机制、业务流填充机制、路由控制机制和公证机制。根据嵌入式Internet系统的安全特点,这里提出的安全机制的制定主要从下面两个方面来考虑。
(1)实现安全机制的网络层次
TCP/IP参考模型是一个四层网络协议系统,各种安全机制并不都可应用在任意一层。针对嵌入式Internet的安全服务,也可以参考四层协议系统进行规划,应该在合适的层次来实现。
(2)基于密码学理论的安全机制
基于密码学理论,嵌入式Internet技术可以使用以下几种算法实现数据保密性和完整性服务:
◆使用对称密钥体制或非对称密钥体制,实现数据保密性服务;
◆使用单向散列函数等方法实现数据完整性服务。在嵌入式Internet中,可以选用以上合适的密码协议和算法,实现预期的安全服务要求。
2 网络接入的安全通信机制
2.1 实现层次
首先确定安全协议的实现层次,对各种机制实现方法作深入分析,比较它们的不同实现方法和不同安全特点,设计一个适合嵌入式Intemet设备进行网络通信的安全模型。
链路层主要采用划分VLAN、链路加密通信等手段保证通过网络链路传送数据的机密性、数据完整性等。基于链路层加密与应用程序无关,实现简单,可用硬件设备进行加密,提供较高的处理速度。缺点是两个加密参与的实体必须在物理形式上连接在一起,即不能实现对不同进程进行不同的加密处理。网络层安全性的主要优点是安全服务的提供与应用层的无关性,而且由于多种传输协议和应用程序可以共享由网络层提供的密钥管理框架,使得密钥协商的数量也大大削减。网络层安全业务最有用的特性是能够构建VPN。网络层加密的主要缺点是:对属于不同进程和相应条例的数据包一般不作区别。对所有发往同一地址的包,它将按照同样的加密密钥和访问控制策略来处理。同网络层安全机制相比,传输层安全机制的主要优点是它提供对进程的安全服务。传输层安全机制的主要缺点是要对传输层进程间通信接口和应用程序两端都进行修改;另外,由于SSL_和TLS都是建立在TCP协议上的,因此对于UDP的安全通信就无法保证。在应用层实施加密是最具强制性的选择。它也是最具灵活性,因为保护的范围和力度可以裁剪到满足某一应用的特定需要。这一点正符合嵌入式Internet设备灵活多变的应用的需求。应用层的安全可以弥补下层协议漏洞和不足,可以采用多种多样的安全措施来保证系统的安全性。除了采用一些针对应用层协议的安全方案外,其他例如身份认证、数据加密、数字签名等都可以在应用层进行。应用层提供安全服务的优点在于不用考虑网络采用的具体协议和链路情况,同时由于应用程序以用户为背景执行,容易获得用户访问凭据,而且对用户想保护的数据具有完整的访问权并有着充分的理解,这些特性使得在应用层引入安全业务具有特定的优势。在应用程序中实施安全机制,程序要和一个
特殊的系统集成到一起,应用程序通过改进调用该特殊系统实现安全机制。基于以上比较,为了在嵌入式Internet接入设备和访问者之间建立起有效的,具有更强大的适应性和安全性的安全通信机制,选择应用层作为实现层次,以保证设备访问者与嵌入式设备间通信的信息安全。
2.2密码协议
设计基于密码学安全机制的通信协议,目的是通过使用基于密码学的机制来实现数据保密性和数据完整性服务,抵抗攻击。目前的密钥体制从原理上可分为两类,即对称密钥体制和非对称密钥体制[2]。在嵌入式Internet的应用中,使用哪一种密钥体制应该根据嵌入式Internet的具体特点决定:
①由于嵌入式Internet设备通常是一台具有专有功能的嵌入式设备,网络接人方式差别较大,网络结构也非常灵活,因此一个更具通用性和灵活性的安全结构,应该避免采用带有可信第三方服务器的安全框架。
②嵌入式设备的数据处理能力有限,所以加密算法等相关安全机制的选择应该以减少资源利用和处理器的负担为依
根据上述分析可以看出,对称加密算法更符合嵌入式Interne安全通信协议对加密机制和应用灵活性的要求。
密码协议的目的是完成EID(Embedded Internet Device,具有Internet接入功能的设备)和CC(Control Computer,对。EID进行合法控制、通信的主机)之间的通信过程。为了描述密码协议的实现,这里首先描述一个基本会话协议的通信过程。
CC和EID的通信过程为:
①CC向EID发送控制命令;
②EID收到控制命令后,执行相应的操作;
③EID执行完毕后,向CC发送确认信息;
④CC接到确认信息后,结束通信过程,否则重新发送控制命令。
在以上所描述的通信过程中,从数据的保密性和完整性来考虑,EID和CC将面临着以下几种安全威胁:
①窃听者Eve可以窃听EID和CC之间的通信,获得通信内容;
②恶意的主动攻击者Attacker截获EID发送给CC的数据,并且篡改信息后发送给CC;
③Attacker截获CC发给EID的控制信息,进行重放攻击;
④Attacker不断地窃听并保留CC和EID之间的通信内容,同时记录EID的相应动作,得到“通信信息”与EID动作的对应关系,然后就可以在任何时刻冒充CC或EID进行非法活动。
为了使EID和CC之间的通信过程能抵抗Eve的窃听,根据通信对保密性服务的需求,这里使用对称密钥的加密机制对报文进行加密,从而实现连接保密性、无连接保密性、选择字段保密性服务。但在一般的嵌入式Internet通信系统中,CC和EID之间的通信信息可能只有简单的几条,例如对于一个家电的控制命令,可能只有开关和上下调节的控制,这样使用加密机制产生的密文集合也较小。Eve可以得到所有的可能明文的密文 C,因为Eve-没有密钥K,所以Eve不能知道密文C对应的确切明文P,但是可以通过观察和记录的方法来判断某个密文C对应CC的相应动作。Eve记录CC发给EID的密文,观察EID的动作,同时记录EID发给CC的密文,从而确定密文C对应明文P的含义(例如控制命令等),这就是业务流分析。可以看出,加密机制不能保证数据的业务流保密性来防止Eve通过业务流分析猜测明文含义。可以采用业务流填充机制来抵抗Eve从密文中得知其含义。业务流填充主要有两种具体方法:使用伪造的数据包填充通信流和用伪造的随机数据填充明文数据报。第一种方法会带来过大的带宽消耗,占用过多嵌入式系统的系统资源。此处采用第二种方法在明文中引入随机数R,从而增加了密文C的集合空间。
实现了加密机制和业务流完整性机制的通信协议,还可能受到主动攻击者Attacker的篡改和重放攻击。为了抵抗Attacker对数据的攻击,引入单向散列函数,它可以把任意长度的消息M映射成一固定长度为m的哈希值h,即h=H(M)。从哈希函数的性质可以看出,如果用它对CC和EID之间的通信内容进行运算,则可以通过
验证消息的哈希值来确定消息是否被更改。目前常用的抵抗重放攻击(replay attack)的机制有三种:序列号机制(sequence number)、时间戳机制(time stamp)、挑战应答机制(challenge/response)。一般而言,对于一个资源有限的嵌入式设备,要求密码协议应该尽量减少其资源消耗,并且应该对网络环境有良好的适应性,所以选择序列号机制更适合嵌入式系统的要求。因此改进后的会话协议具体描述如下:
①CC用密钥K加密发送信息P及随机数R和Xi(X;为序列号,初始值Xo为R)得到密文Gi,Gi=Ek(P,R,Xi,);
②CC用Hash函数计算明文信息P和随机数R、xi的哈希值h,h=H(P,R,xi);
③CC计算Xi+l=Y(xi)(序列号更新函数Y(*)计算返回消息应该带有的序列号Xi+1);
④CC把明文P的密文Ci和哈希值h传给EID);
⑤ElD用同样的算法和密钥K解密C
⑥EID用相同的哈希函数计算P和R、Xi的哈希值并与收到的哈希值h进行比较,如果正确将继续执行协议;
⑦EID计算x′i+l=Y(Xi);
⑧EID根据P执行相应的动作,并准备好CC需要的数据和确认信息P′;
⑨EID用密钥K加密信息P′、随机数R′和X′i+1得到密文C′i,C′i=Ek(P′,R′,X′i+1);
⑩EID用哈希函数计算明文P′和R′、X′+l的哈希值h′,h′=H(P′,R′,X′i+1);
⑾E1D把C′i和h′发送给CC;
⑿EID计算X′+2=Y(Xi+1),为下一次通信的防重放做好准备;
⒀CC用同样的算法得到P′、R′、X′i+1,(P′,R′,Xi+1)=Ek(Ek(Ek(P′,R′,Xi+1));
⒁CC用相同的哈希函数计算P′、R′、X′i+1的哈希值,与收到的h′比较,如果相同则继续,否则放弃;
⒂比较Xi+1和X′i+1的值是否相等,如果是则从P′中得到需要的信息,继续执行;
⒃CC计算X′i+2=Y(Xi+1),通信完成并为下一次通信做好准备。
如果执行正确,就会有Xi=X′i,Xi+1=x′i+l,Xi+2=X′i+2……
协议的通信流程如图1所示。
点击看原图
在保证系统安全性的前提下,嵌入式系统中算法和模式的选择必须从处理速度和占用内存空间两方面来考虑。此处系统选择的是MD5和RC5算法。
结语
由于各种嵌入式Internet设备的组成和功能干差万别,其网络接入所采用的技术和方案也各不相同,对其安全通信的解决方案的灵活性和适应性要求较高。因此,本文通过对嵌入式Internet提供安全服务的安全机制的需求分析,以目前广泛采用的32位处理器加TCP/IP协议栈接入Internet的方案为实现平台,通过选择基于密码学的安全机制EISCM,对嵌入式Internet的安全问题进行了探讨。但还存在着一些可以进一步完善的问题,主要包括:
①本机制没有提供访问控制服务和抗抵赖服务,可以建立一个数据库,通过认证等服务实现;
②本机制没有提供对攻击的监测功能,可以通过建立一个攻击日志,通过一定的监测方法来记录非法用户对系统的攻击。