APP下载

密码技术在T-BOX安全防护中的应用

2017-06-26王文扬田晓笛

装备制造技术 2017年4期
关键词:公钥完整性云端

彭 杨,戎 辉,王文扬,田晓笛,高 嵩,4,郭 蓬,4,何 佳

(1.上汽通用五菱汽车股份有限公司,广西柳州545007;2.中国汽车技术研究中心,天津300300;3.河北工业大学,天津300132;4.天津大学,天津300072)

密码技术在T-BOX安全防护中的应用

彭 杨1,戎 辉2,3,王文扬2,田晓笛2,高 嵩2,4,郭 蓬2,4,何 佳2

(1.上汽通用五菱汽车股份有限公司,广西柳州545007;2.中国汽车技术研究中心,天津300300;3.河北工业大学,天津300132;4.天津大学,天津300072)

随着互联网和汽车电子技术的发展,T-BOX拥有越来越多的功能,但也产生了更多的信息安全威胁。本文从保密性、可认证性、完整性和重放性四个方面介绍了T-BOX面临的威胁;然后,基于密码技术依次给出解决方案,并简述了每种方案的解决原理;最后,本文指出T-BOX还面临着其他的安全威胁,需要继续深入研究密码技术在T-BOX中的应用。

T-BOX;密码技术;MD5;SHA1;RSA

随着车联网的飞速发展,各大汽车制造商纷纷推出自己的T-BOX车载终端产品,如宝马、长安和比亚迪等。T-BOX与外界通过网络连接,它的功能越多意味着与外界互通的数据越多,存在的信息安全漏洞也越多。为了保证出行安全和信息安全,在功能研究的同时,也要注重检测系统漏洞并给出有效的解决方案。本文介绍了T-BOX信息安全可能存在的保密性、可认证性、完整性和重放性的问题,然后给出了上述问题的具体解决方案。

1 信息安全的几大属性

信息安全指的是信息在生产、传输、使用和存储的过程中,对信息载体和信息的处理、传输、存储、访问提供安全保护,防止信息数据和内容被篡改或非法使用。随着互联网技术的发展,人们的生活已经趋向于大数据化,日常生活已经和信息安全紧密的联系到了一起。

信息安全具有很多基本属性,包括保密性、完整性、可认证性和抗重放性等。保密性是指信息在传递或存储过程中不被未授权的第三方窃取或非法使用。完整性是指信息在传递过程中不被修改或破坏,保证信息的准确性和有效性。可认证性是指在信息互联之前,接收和发送方需要认证彼此的身份,防止第三方非法冒充。抗重放性是指第三方重复或延迟发送信息,使接受方接收过期的信息或是重复接受指令,达到干扰或误导接收方的目的[1]。信息安全还有其他的属性,由于本文主要针对上述四种给出解决方案,故不再赘述其他属性。

2 解决方案

2.1 保密性

T-BOX与云端依靠网络进行传送,如果信息不加密直接传送,一旦被第三者窃取,信息就会泄漏,因此,必须采用一种信息加密手段,使得未授权方不能破解信息。

本文采用AES的加密方法。AES最早是在1997年,由比利时Joan Deaman和VincentRijmen提交的[2]。它是一种分组密钥,该算法的输入标准为为128位数据,密钥的长度为128、192和256位。

将T-BOX与云端发送的信息用AES加密,只有通过密钥才能解密。AES主要是由多个轮组成的,一共分为4步,分别为:

(1)逐字节替换。AES输入为128位,即16字节,分为4*4的组合,从替换表(S-BOX)中查找每个字节对应的替换值,对每个字节进行替换。

(2)平移行。以4*4组合的每一行为单位,每一行依次向左移动0,1,2,3个单位(以后的单位依次补在右边的空格里)。

(3)混合列。对4*4组合按照列进行比特运算,替换成另外的4*4组合。

(4)与轮密钥进行异或运算。将(3)混合列之后的组合与密钥进行异或运算,得出一个新的与密钥相关的4*4组合。

上述为运算的1轮,每次加密需要重复上述运算10~14轮。解密则进行相反的运算。经过加密,在没有密钥的前提下,很难破解传递信息的真正内容。

2.2 可认证

T-BOX与云端互通互联时,有可能存在伪云给T-BOX发送错误指令,严重者会威胁到车主的生命安全;或者伪端冒充车辆与云端连接,窃取云端存储的大量信息,因此,需要在信息交互之前认证双方的身份。本文给出了RSA和HMAC MD5两种方案。

2.2.1 RSA

RSA是一种公钥算法,需要发送和接受方都有自己的公钥和私钥,并将公钥发送给对方。一方的公钥可以加密信息,但是只有该方的私钥可以解密。在T-BOX和云端交互之前需要共享公钥,如图1所示,描述了T-BOX和云端互相认证的过程。

图1 T-BOX和云端的双向认证

T-BOX给出一串随机数组R1,并用云端的公钥对R1加密得出函数值f(R1),最后将两者组合打包发送给云端。云端接收到信息之后,用自己的密钥解密f(R1).如果得出的值与R1不同,则认证失败;如果相同,则完成对T-BOX的单向认证,然后云端以同样的方式完成T-BOX对云端的认证。

RSA的原理为:

其中,式(1)的数E和N表示公钥,公式的含义为明文的E次方除以N的余数;式(2)的数D和N表示私钥,公式含义为密文的D次方除以N的余数。

2.2.2 HMACMD5

HMAC是一种使用单向散列函数构造消息验证码的方法,输入为一个消息和密钥,输出为一个固定长度的消息摘要。它使用了两次单向散列函数,目前还没有发现产生碰撞的方法。本文采用的HMAC MD5算法表示两次单向散列运算均为MD5.

T-BOX和云端的认证流程和图1基本一致,不同的是HMACMD5的密钥是一个,一定要保证密钥的安全性。

HMACMD5的原理为:

其中H表示MD5的运算,K表示认证密码,m表示输入的消息,opad表示循环的0x36,ipad表示循环的0x5C,具体流程如下[3]:

(1)密钥填充。若密钥长度小于分组长度,则末尾补0,若长于分组长度则求其HMAC值,代替密钥。

(2)填充后的密钥与ipad异或,得到一个与单向散列函数的分组长度相同的比特序列,记为ipadkey.

(3)将ipadkey序列附加在消息的开头进行组合,计算它们的MD5值。

(4)将(1)中填充后的密钥与opad异或,得到一个与分组长度相同的比特序列,记为opadkey.

(5)将(3)得出的散列值放在opadkey后面,作为输入计算它的MD5值,计委最终的MD5值。

2.3 完整性

T-BOX与云端发送的信息有可能被第三方篡改,为了保证信息的完整性,给出了MD5、SHA1两种单项散列函数的运算方案。

2.3.1 MD5(Message Digest 5)

MD5是1991年Rivest提出的单向散列函数,单向散列函数具有单向性,很难找到有相同MAC值的两个数。MD5可以对任意长度的消息进行计算,产生128比特的散列值。

验证信息完整性的过程按照图1讲述,其中R1表示T-BOX发送的信息,f(R1)表示经MD5运算的值。即使T-BOX发送的消息被人篡改,当云端接收到之后会验证消息的MD5值是否和f(R1)相同,如果不同直接将信息过滤。

MD5运算步骤为:

1)填充:将消息填充为512的整数倍。先添加一个1,再添加0使其长度为512倍数减去64位。

2)记录信息长度:用64位来存储填充前信息长度,将这64位加在1)的后面。

3)装入链接变量:在程序中定义4个3位变量初始化为:

4)四轮主循环运算:先将ABCD分别复制到a,b,c,d中。主循环4轮,每轮循环16次运算,每次都对a,b,c,d其中的3个做一次非线性运算,再将结果加到第4个变量、文本的一个子分组和一个常数。

第一轮:FF(a,b,c,d,Mj,s,ti)

表示:

其中,

第二轮:GG(a,b,c,d,Mj,s,ti)

表示:

其中,

第三轮:HH(a,b,c,d,Mj,s,ti)

表示:

其中,

第四轮:II(a,b,c,d,Mj,s,ti)

表示:

其中,

常数ti是232×a bs(sini)的整数部分,i单位是弧度。所有这些完成后,A,B,C,D分别加上a,b,c,d.然后下一组数据继续运行算法,最后输出A,B,C和D的级联,每一轮运算16次,总共运行64步。

2.3.2 SHA1(Secure Hash Algorithm)

SHA1是另一单向散列函数,具有与MD5一样的单向性,完整性验证过程与MD5一致,这里就不再赘述。不同的是SHA1只能处理信息长度小于264-1,而且输出摘要长度为160位。

SHA1运算步骤为[4]:

1)填充并记录长度,与MD5方法相同。

2)给定常量;

3)初始化缓冲区。

SHA1用到两个缓冲区,第一个缓冲区标记为A,B,C,D,E,第二个缓冲区标记为H0,H1,H2,H3,H4,运算中还用到标记为W0~W79的80个32位字序列和一个单字缓冲区TEMP,先将{Hi}这5个变量复制到A,B,C,D中。

4)处理Mi.

利用消息分组从16个32位字(M0~M15)变成

80个32位字(W0~W79)

5)主循环运算。

当0≤t≤79时,主循环运算:

其中,E=D;D=C;C=B<<<30;B=A;A= TEMP.

SHA1运算包括四轮,每轮20次操作,SHA1用下列逻辑序列函数,每个输入为三个32位字,输出为一个32位字,定义为:

当0≤t≤19时,

当20≤t≤39时,

当40≤t≤49时,

当60≤t≤79时,

在这之后a,b,c,d,e分别加上A,B,C,D,E,然后下一个分组数据继续运算,最后输出是由A,B,C,D,E级联而成。

2.4 重放性

T-BOX和云端交互时,信息可能会被第三方干扰,使信息重复发送或是延迟发送,为了防止这种现象的发生,本文采用时间戳方案或是计数器方案。

(1)时间戳

T-BOX和云端互联之前,必须确保双方的时间一致。发送信息时都要加上发送该信息的时间,接收方收到信息后首先核对时间,如果收到的是之前的信息,则直接将消息过滤掉。值得注意的是,在通信过程中,必须考虑因信息延迟而导致的缓冲时间。

(2)计数器

T-BOX在和云端初次信息交互时,给定第一条信息一个编号,并将其存储到信息中,此后,每条信息都会有一个递增的编码。当接收方收到的信息是之前的序号,则认为此条信息被重放。

3 结束语

本文主要是针对T-BOX信息安全的四大属性给出解决方案,可以从一定程度上保证信息的安全性。随着科学技术的发展,还会发现更多的问题,同时也会出现许多新问题,必须要重视T-BOX的安全问题,不断的研发新技术,解决系统漏洞,方便人们生活的同时更要保证人们的信息安全。

[1]雷吉成.物联网安全技术[M].北京:电子工业出版社,2012.

[2]赵雪梅.AES加密算法的实现及应用[J].常熟理工学院学报,2010,2(24):105-110.

[3]黎琳.Hash函数RIPEMD-128和HMAC-MD4的安全性分析[D].济南:山东大学,2007.

[4]王红霞,陆塞群.基于HMAC-SHA1算法的消息认证机制[J].山西师范大学学报.2005,1(19):30-33.

Cryptography Algorithm s in T-BOX Security Protection

PENG Yang1,RONG Hui2,3,WANGWen-yang2,TIAN Xiao-di2,GAO Song2,4,GUO Peng2,4,HE Jia2
(1.SGMW Automobile Co.,Ltd.,Liuzhou Guangxi 545007,China;2.China Automotive Technology&Research Center,Tianjin 300300,China;3.Hebei University of Technology,Tianjin 300132,China;4.Tianjin University,Tianjin 300072,China;)

With the development of Internet and automobile electronic technology,T-BOX has more and more functions,but also producesmore information security threats.This paper introduces the threats to T-BOX from four aspects,such as the confidentiality,authenti-cation,integrity and replay.Then,the principles of solutions are given based on the password techniques in turn.;finally,this paper points out that T-BOX faces other security threats,and we need to continue to further study.

T-BOX;cryptography;MD5;SHA1;RSA

TP319

A

1672-545X(2017)04-0247-04

2017-01-29

彭杨(1981-),男,广西柳州人,工程师,硕士,研究方向为整车网络及车联网;戎辉(1981-),男,河北邯郸人,高级工程师,博士,研究方向为汽车电子、新能源、智能网联;王文扬(1980-),男,河北秦皇岛人,高级工程师,硕士,研究方向为汽车电子、新能源、智能网联;田晓笛(1991-),女,河北衡水人,助理工程师,硕士,研究方向为汽车电子、新能源、智能网联;高嵩(1988-),男,山东潍坊人,工程师,博士,研究方向为汽车电子、新能源、智能网联;郭蓬(1983-),女,天津人,工程师,博士,研究方向为汽车电子、新能源、智能网联.

猜你喜欢

公钥完整性云端
四海心连·云端汇聚
案例教学法在公钥密码体制难点教学中的应用——以ssh服务中双向认证为例
石油化工企业设备完整性管理
在云端永生
云端之城
ELM及IS/OS完整性对年龄相关性黄斑变性预后视力的影响
神奇的公钥密码
国密SM2密码算法的C语言实现
P2X7 receptor antagonism in amyotrophic lateral sclerosis
在云端