APP下载

基于商密算法的北斗短报文安全通信协议研究∗

2018-11-28吴克河崔文超

计算机与数字工程 2018年11期
关键词:通信协议报文密钥

吴克河 李 岩 崔文超 李 为

(华北电力大学控制与计算机工程学院 北京 102206)

1 引言

北斗卫星导航系统BDS(BeiDou Navigation Satellite System,BDS)是中国自行研制的全球卫星导航系统与通信系统[1],为军民用户提供了快速定位、实时导航、精密授时、位置报告、短信服务“五位一体”的服务功能,具备安全可靠的优势[2]。北斗短报文是北斗卫星导航系统的特色功能,区别于世界上的其他几大导航定位系统。北斗短报文通信具有覆盖范围广、建设周期短、投资成本低等优势,逐渐在智能交通、森林防火、农业精耕、电力监控、水文监测等诸多行业已经有了较为广泛的应用(以电力监控为例,截止2016年7月,北斗短报文通信已在国家电网公司的青海、冀北、四川、重庆、安徽、蒙东、福建、山西、浙江共9个省公司应用,共建设北斗数据传输终端1996台)。因此需要针对北斗短报文通信设计适用的安全防护方案,确保敏感数据能够通过北斗短报文进行安全的传输。

2 相关技术理论

2.1 商密算法

商密算法即国家密码局认定的商用密码算法。商用密码的应用领域十分广泛,主要用于对不涉及国家秘密内容但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护。比如:商用密码可用于企业门禁管理、企业内部的各类敏感信息的传输加密、存储加密,防止非法第三方获取信息内容[3];也可用于各种安全认证、网上银行、数字签名等[4]。商密算法能够实现商用密码算法的加密、解密和认证等功能的技术[5]。常用的商密算法包括SM1算法、SM2算法、SM3算法和SM4算法,其密码类型、密码特征和密码用途如下表1所示。

表1 常用商密算法

2.2 北斗短报文通信

北斗卫星通信是指利用北斗导航卫星作为中继站转发无线电波,在两个或多个地球站之间进行的通信,它是在微波通信和航天技术基础上发展起来的一门新兴的无线通信技术,所使用的无线电波频率为微波频段(300MHz~300GHz,即波段1m~1mm)。这种利用北斗导航卫星在地球站之间进行通信的通信系统,则称为北斗卫星通信系统[6~11]。

北斗通信网络是基于北斗卫星导航系统的空地结合无线通信网络,该网络的传输单元是北斗通信协议下的短报文[12]。北斗系统最大的特色在于有源定位和短报文特色服务,不止解决了中国有无卫星导航系统的问题,还能将短信和导航结合,是中国北斗卫星导航系统的独特发明,也是一大优势[13]。北斗短报文通信从应用角度来看,存在一些限制:

1)通信容量限制。采用短报文通信方式,其一次通信有容量的限制,即每次通信内容的长度是受限的。一般情况下,民用通信每条短报文信息最大容量为78字节数据[14]。

2)通信频次限制。北斗在使用时,对频度有要求。一般的设备使用频度基本是1min,也就是1min可以使用一次,如果需要更高频度,需要在入网时提出特殊申请。

3)通信不可靠性。北斗卫星通信链路是不可靠的通信链路,而且北斗民用通信系统是没有通信回执的。

3 安全通信协议

由于北斗短报文通信长度和频率的限制,原有的对于SSL、TLS等安全传输协议难以适用北斗短报文通信。针对北斗卫星通道的技术特色,基于现有安全通信技术,设计适应短报文通信的安全通信协议。主要实现的安全防护功能包括通过基于商密算法的认证协商协议认证通信双方和利用硬件加密芯片实现数据加解密。

3.1 通信流程

安全通信协议包括两个主要的通信流程,分别是密钥协商流程和加密通信流程。通信双方要进行安全通信,需要初始化北斗终端获取北斗卫星信号确保能够进行北斗短报文通信。一旦初始化完毕后,就进行密钥协商流程,双方通过密钥协商流程进行双向身份认证和协商出一个公共的会话密钥。如果在密钥协商流程中出错,整个安全通信协议流程退出。

身份认证和会话密钥协商完成后,密钥协商流程结束,通信双方就可以使用会话密钥进行加密通信,从而进入加密通信流程。在加密通信流程中,通信双方把自己想要发送的数据使用会话密钥加密后,通过北斗短报文发送给对方。当接收到来自对方的北斗短报文数据后,要进行身份认证和数据完整性校验,认证和校验成功后,使用会话密钥进行解密操作获得明文数据。如果在加密通信流程中出错,销毁会话密钥并且结束整个安全通信协议流程,下一次使用安全通信协议进行通信,还要进行密钥协商流程,保证会话密钥的安全性。整个安全通信协议的通信流程如图1所示。

图1 安全通信协议通信流程图

3.2 密钥协商

密钥协商有两个或多个实体协商,共同建立会话密钥[15],任何一个参与者均对结果产生影响,不需要任何可信的第三方。可分为证书型和无证书型。本文设计的安全通信协议采用证书型密钥协商方式,使用SM2证书来实现通信双方的双向身份认证。图和文字中出现的符号见表2。

表2 安全通信协议符号说明

密钥协商的通信流程如图2所示。通信过程中使用商密算法的具体操作总共七个步骤。

步骤一,装置1产生随机数r1,随机数r1为16字节的数据,之后使用key作密钥,通过SM1算法加密随机数r1,生成A=Ekey(r1),将A发送到装置2。

步骤二,装置1对随机数r1的进行SM3算法的杂凑值计算,并将结果进行SM2算法的签名运算,生成B=SSkey1(H(r1)),将B发送到装置2。

步骤三,装置2对A使用key进行SM1算法的解密操作得到明文的随机数r1并用B通过SM2算法的验签操作验证装置1产生的随机数r1和装置1的身份。之后装置2产生随机数r2,随机数r2为16字节的数据,之后使用key作密钥,通过SM1算法加密随机数r2,生成C=Ekey(r2),将C发送到装置1。

图2 密钥协商通信流程

步骤四,装置2对随机数r2的进行SM3算法的杂凑值计算,并将结果进行SM2算法的签名运算,生成D=SSkey2(H(r2)),将D发送到装置1。

步骤五,装置1对C使用key进行SM1算法的解密操作得到明文的随机数r2并用D通过SM2算法的验签操作验证装置2产生的随机数r2和装置2的身份。之后装置1将随机数r1和随机数r2进行异或操作,生成会话密钥DK=r1⊕r2。装置1对回话密钥DK进行SM3算法的杂凑值计算,生成E=H(DK),将E发送到装置2。

步骤六,装置2将随机数r1和随机数r2进行异或操作,生成会话密钥DK=r1⊕r2。装置2对回话密钥DK进行SM3算法的杂凑值计算,生成F=H(DK),判断接收到E是否与F一致,进行数据完整性校验。如果一致将F发送到装置1,否则密钥协商失败。

步骤七,装置1判断接收到F是否与E一致,进行数据完整性校验。如果F与E一致,则密钥协商成功,否则密钥协商失败。

经过上述的七个步骤,通信双方(装置1和装置2)都完成了对对方的身份校验和密钥协商,双方都持有相同的会话密钥DK,之后就可以通过会话密钥DK进行加密通信。

3.3 加密通信

密钥协商成功后,通信双方就可以进行加密通信。图和文字中出现的符号见表2。

加密通信流程如图3所示。通信过程中使用商密算法的具体操作包括以下四个步骤:

步骤一,装置1需要发送DATA1到装置2,使用会话密钥DK通过SM1算法进行加密运算生成密文G=EDK(DATA1),将G通过北斗短报文通信发送给装置2。

图3 加密通信流程

步骤二,装置2接收到G之后使用会话密钥DK通过SM1算法进行解密运算生成明文DA⁃TA1。在此过程中,完成对装置1的身份认证和对报文G的数据完整性校验,如果失败,丢弃掉报文G和销毁会话密钥DK,整个安全通信协议流程结束。

步骤三,装置2需要发送DATA2到装置1,使用会话密钥DK通过SM1算法进行加密运算生成密文H=EDK(DATA2),将H通过北斗短报文通信发送给装置1。

步骤四,装置1接收到H之后使用会话密钥DK通过SM1算法进行解密运算生成明文DATA2。在此过程中,完成对装置1的身份认证和对报文H的数据完整性校验,如果失败,丢弃掉报文H和销毁会话密钥DK,整个安全通信协议流程结束。

重复上述四个步骤,通信双方(装置1和装置2)都可以与对方进行加密通信。

3.4 协议特性

本文设计的安全通信协议具有如下特性:

1)双向身份认证。基于SM2数字证书等多种方式提供对通信双方的强身份认证功能,从而实现双向对等鉴别和认证功能。

2)数据完整性。基于SM3杂凑算法计算数据的杂凑值,保证数据完整性。

3)数据保密性。基于硬件密码算法实现对数据的非对称方式及对称方式的高强度加密功能。实现终端和接入网关之间基于专用密码算法的密钥协商功能,实现动态密钥协商、密钥更换、密钥销毁等功能。

4)北斗短报文限制。每一帧的通信报文都符合北斗短报文的限制,包括通信容量限制、通信频次限制和通信不可靠性的限制。最大程度地保证数据传输过程中的安全性。

4 应用测试

考虑到北斗短报文通信的不可靠性,本文的实验主要测试安全通信协议的数据保密性,分别测试在密钥协商阶段和加密通信阶段数据传输的安全性。

4.1 测试环境部署

本次协议测试将实验室的服务器作为通信装置,北斗终端通过USB转RS232串口线与服务器相连。整体测试环境如下图4所示。

图4 测试环境

4.2 通信测试结果

通信结果如下图5和图6所示。

图5 装置1通信结果

图6 装置2通信结果

装置1生成16字节的随机数r1为[0x3D,0x97,0x29,0xA8,0x5F,0xF3,0xE7,0xD7,0xF7,0x45,0xFB,0xD4,0x07,0xA0,0x7E,0x41],装置2生成 16字节的随机数 r2为[0x16,0xDE,0x55,0x42,0x5A,0x67,0x4E,0x51,0xB8,0xCC,0x14,0x7E,0xAA,0x91,0xC8,0xBB]。经过步骤一、步骤二、步骤三和步骤四之后,装置1和装置2完成了对对方的身份认证和数据完整性校验,得到了对方生成的随机数。之后,使用2个随机数通过异或运算得到会话密钥 DK 为[0x2B,0x49,0x7C,0xEA,0x05,0x94,0xA9,0x86,0x4F,0x89,0xEF,0xAA,0xAD,0x31,0xB6,0xFA],经过步骤五、步骤六和步骤七,装置1和装置2完成了对对方的会话密钥的数据完整性校验,得到了相同的会话密钥DK。之后可以通过会话密钥进行加密通信,装置1发送[Hi,I am device1!]到装置2,装置2发送[Hi,I am device2!]到装置1。

综上所述,在装置1和装置2的密钥协商过程和加密通信过程中,实现了对随机数的加密传输、通信双方的身份认证和数据完整性校验,能够解决北斗短报文通信的数据安全性问题。

5 结语

本文主要介绍和总结了国家密码局发布的商密算法和北斗短报文通信的特点和限制,论述了基于商密算法的北斗短报文安全通信协议的设计和应用。本文设计的基于商密算法的北斗短报文安全通信协议已经成功运用了北斗用电采集项目和北斗配电自动化项目,验证该协议通信稳定、安全可靠。

猜你喜欢

通信协议报文密钥
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
幻中邂逅之金色密钥
幻中邂逅之金色密钥
密码系统中密钥的状态与保护*
创建KDS根密钥
浅析反驳类报文要点
车载网络通信协议标准化问题研究
电动汽车充电接口及通信协议新国标发布
1588v2中的PTP报文格式及应用