物联网安全传输协议的研究与设计★

2013-08-14 01:20钟晶王颍凯
电子产品可靠性与环境试验 2013年2期
关键词:序列号加密算法数据包

钟晶,王颍凯

(工业和信息化部电子第五研究所,广东 广州 510610)

0 引言

近年来,基于物联网的应用越来越多。物联网是“物物相联的互联网”,具有两层含义:1)物联网的核心和基础仍然是互联网,是在互联网的基础上延伸和扩展的网络;2)其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。因此,物联网具有互联网的共性,又具有自身独特的性质。

在一般情况下,互联网上传输的数据包未加密和签名,很容易发生被窃听、篡改、伪造以及发送者抵赖等问题,如何保护传输数据的安全已成为物联网的基本安全问题之一。TCP/IP协议设计之初并未着重考虑安全机制,现有的可选安全方案包括PGP、IPSec和SSL/TLS[1]等。

a)PGP(Pretty Good Privacy)[2]不仅提供隐私加密和认证功能,还经常用于Email的签名、加/解密以提高安全性。然而,这种方案只适用于应用层。

b)SSL/TLS(Secure Socket Layer/Transport Layer Security)[3]是用于保证通信双方所交换数据机密性和完整性的协议。此标准未提供传输层以上的安全方案,而且并不适用于无连接的数据通信。

c)IPSec(Internet Protocol Security)[4]是用于对数据流中IP包认证和加密的协议。此方案配置比较复杂,灵活性不够高,而且建立连接时也要比本文中的方案交换更多的数据包。

本文提出一种实现物联网数据安全传输的协议,它保留了原来互联网的体系结构和硬件,无需更新或添置新的设备。基本思想为发送方对所有发送的数据包进行编号、加密和签名等,接收方接收到数据后依据连接建立时协商的参数对数据包进行编号检查、解密和认证等。

1 总体框架概述

本协议从逻辑上分为3个层次:核心层、服务层和应用层。其中,核心层是一些依据应用层设置的策略来过滤收发的数据包;服务层对核心层传递过来的数据进行加/解密、签名/认证等处理;应用层制定过滤策略、选择加/解密算法和签名/认证算法、密钥交换周期等参数。如图1所示。

2 连接建立及释放过程

通信前,双方必须首先建立数据连接。建立连接的主要目的是进行身份认证和协商各种参数,如双方的初始序列号、使用的加/解密算法和签名/认证算法、密码交换周期、通信双方的标识等。整个过程需交换5个数据包,如图2所示。

图1 总体框架图

图2 连接建立过程

1)第1个数据包的内容包括向对方提议可用的加密算法、消息认证算法、会话密钥的生存期以及是否需要签名;

2)第2个数据包是对第1个数据包的回复,内容包括确定所采用的加密算法、消息认证算法、会话密钥的生存期以及是否需要签名;

3)第3个数据包的内容包括发送方连接索引、用于协商密钥的参数并用发送方的私钥进行签名;

4)第4个数据包的内容包括接收方连接索引、用于协商密钥的参数并用接收方的私钥进行签名;

5)第5个数据包通知接收方已经收到它发来的密钥协商参数且已经验证了它的身份。

至此,通信双方的连接建立成功。当通信双方数据交换完成后,需释放对应的连接。整个过程需交换3个数据包,过程如下:

1)发送方发送第1个数据包,内容包括双方的序列号、双方的标识以及消息类型,以及用共享的会话密钥对上述信息生成的消息认证码;

2)接收方接收并验证数据包后,发送第2个数据包,内容包括双方的序列号、双方的标识、消息类型以及用共享的会话密钥对上述信息生成的消息认证码;

3)发送方接收并验证数据包后,发送第3个数据包,通知接收方删除与自己的连接,同时删除与接收方的连接数据;

4)接收方接收并验证数据包后,删除与发送方的连接数据。

至此,通信双方的连接释放成功。

3 数据交换过程

3.1 载荷数据包的格式

当连接建立完成后,通信双方开始按照协商的安全方式进行通信,载荷数据包的格式如图3所示。

其中数据包序列号(32位)是一个递增的计数器,用于反重放攻击。当连接建立后,发送方序列号值初始化为1,每发送一个数据包,它的值增加1。当此值达到最大值232-1时,发送方必须终止该连接,并重新建立一个新的连接。数据包处理动作(32位)指明了接收此数据包后应该对数据包进行怎样的处理。可变长载荷数据是一个传输层负荷,如果数据要求保密,则这部分数据就是加密后的数据。此外,如果加密算法需要初始向量,那么该向量存放在此域的前面,它的长度由安全参数指定;填充区(0~255位),如果加密算法要求明文必须是某个字节数的整数倍时,则该字段用于扩展明文到所需的长度。填充长度(8位),用于记录填充区的字节数;可变长认证数据,包含除认证数据域外的数据包计算的完整性校验值(或签名)。

图3 载荷数据包的格式

3.2 数据发送过程

a)系统接收到上层软件发送的数据时,首先检查是否匹配安全策略。若不匹配,则丢弃此数据包。

b)检查数据包的类型,若为广播包,则对其签名,然后转步骤c)。若类型为非广播包,则对数据包做如下处理:

1)查找是否存在与此数据包对应的连接(若不存在,则需先建立连接);

2)生成数据包序列号,填写选择的处理动作代码;

3)若数据需加密传输,则依据双方协商好的加密算法和会话密钥对数据包进行加密或直接通过公钥进行加密 (使用非对称加密算法时);

4)根据选择的动作类型决定是生成消息认证码还是生成签名,并依据协商好的认证/签名算法进行相关的处理。

c)将数据包发送到网络上。

3.3 数据接收过程

a)系统接收到网卡传递过来的数据包时,检查与安全策略是否匹配。若不匹配,则丢弃此数据包。

b)检查数据包的类型,若为广播包,则进行认证处理。若认证失败,则丢弃此数据包;否则转步骤c)。若类型为非广播包,则对数据包做如下处理:

1)查找是否存在与数据包对应的连接,若不存在,则丢弃此数据包;

2)检查数据包序列号是否在允许接收的范围内,若不在,则丢弃数据包;

3)根据动作类型决定验证签名还是验证消息认证码,若验证失败,则丢弃此数据包;4)若数据包已加密,则对数据包进行解密。c)将处理后的数据包传送给上层软件处理。

3.4 广播包的处理

考虑到终端的负载,本方案规定,发送广播包时不建立连接,只需在每个数据包的尾部加入签名信息以表明发送方的真实身份,接收方可以验证发送方的身份。

同时为防止广播风暴的攻击,规定在连续验证N(一般取10~15之间的值)个广播包失败的情况下,停止接收广播包,同时向用户报警。此时由用户决定在某一时刻重新允许接收广播包,或者等待一个较小的时间间隔后,自动允许接收广播包。

4 密钥协商过程(使用非对称加密算法)

当会话密钥过期(一般为30 s)且通信双方仍需交换数据时,则需要协商新的会话密钥。此过程涉及3个数据包的交换,具体的步骤如下:

a)发起方首先暂停发送数据包,生成一个随机数X以标识此次密钥协商。第1个数据包由发起方生成,内容包括发起方的序列号、消息类型、随机数X、发起方的公钥、双方标识以及用原来的密钥对上述信息生成的消息认证码(使用HMAC算法)。

b)响应方收到发起方密钥协商的请求后,首先检查发起方的随机数是否过期,若已过期则忽略该数据包,否则保存此随机数。然后验证消息认证码,验证通过后暂停发送数据包并生成一个随机数Y以唯一标识与发起方的此次密钥协商。第2个数据包由响应方生成,内容包括双方的序列号、双方的标识、消息类型和随机数Y、响应方的公钥以及用原来的密钥对上述信息产生的消息认证码(使用HMAC算法)。此时响应方已可以计算出新的密钥K。

c)当发起方接收到响应方的回复时,先检查响应方的随机数Y是否过期,若已过期,则忽略此数据包;否则保存此随机数。然后验证消息认证码,通过验证后,则发起方生成第3个数据包,内容包括双方的序列号、消息类型和双方的公钥、双方的随机数、双方的标识以及用新的密钥对上述信息产生的消息认证码(使用HMAC算法)。生成第3个数据包的目的是告诉响应方已经成功地收到了密钥协商参数。此时,发起方也可以计算出新的密钥K。

d)当响应方收到表示发起方密钥协商完成的数据包后,验证消息认证码,验证通过则此次密钥协商已经完成。

5 实验分析

在Windows 7 Pro上实现上述协议后,通过对HTTP和FTP协议进行速度测试(各取10次测试的平均值),数据如图4所示。

(注:对称加密算法是指高级数据加密标准算法AES,密钥长度为128位。非对称加密算法是指CPK加密算法[5],密钥长度为256位。消息认证码由SHA1算法和会话密钥产生。)

图4 不同动作类型的处理速度

由图4可知,使用本方案后对数据传输速度会有所影响,而且,不同的动作类型对传输速度的影响也不一样。尤其是采用非对称加密算法后,由于需要进行大量的计算,对传输速度的影响比较大。

6 结束语

该协议通过对数据包采取编号、签名、加密等措施后,保障了物联网中数据传输的安全,可提供通信中身份认证以及数据机密性保护、数据完整性保护、反重放攻击保护和不可抵赖保护等功能。

[1]STALLINGS W.Cryptography and network security principlesand practices[M].4th ed.New Jersey:Prentice Hall,2005.

[2]HARN L,REN J.Design of fully deniable authentication service for E-mail applications[J].IEEE Communications Letters,2008,12(3):219-221.

[3]CHOU W.Inside SSL:accelerating secure transactions[J].IT Professional,2002,4(5):37-41.

[4]OPPLIGER R.Security at the internet layer[J].Computer,1998,31:43-47.

[5]南湘浩.基于CPK的标识认证[M].北京:国防工业出版社,2006.

猜你喜欢
序列号加密算法数据包
二维隐蔽时间信道构建的研究*
一种离线电子钱包交易的双向容错控制方法
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
关于《国家税务总局 工业和信息化部关于加强车辆配置序列号管理有关事项的公告》的解读
SmartSniff
recALL
混沌参数调制下RSA数据加密算法研究
HES:一种更小公钥的同态加密算法
基于小波变换和混沌映射的图像加密算法
对称加密算法RC5的架构设计与电路实现