以太网的加密认证与网络安全研究

2019-06-01 10:06李明揆张驰
电脑知识与技术 2019年12期
关键词:数据加密网络安全

李明揆 张驰

摘要:随着电子化和自动化技术不断成熟,汽车通过连接到智能手机、蓝牙、因特网等给驾驶员提升了汽车的驾驶乐趣,反面带来了黑客攻击、安全漏洞等不容忽视的安全问题,会严重影响汽车行驶安全、个人隐私、甚至危及公共安全。车载以太网具有高速率特性,可以应用在汽车上的多媒体系统当中。但是车载总线系统和多媒体系统通过网关系统来相互连接的原因CAN、FlexRay等车载总线网络系统不再是独立、安全的网络系统,所以必须保障车载以太网的安全性。本文通过搭建车载以太网网络模型,并利用AES-128加密算法和HMAC-SHA1安全认证方法和技术引入到车载以太网系统当中,从而有效防止了外部入侵、数据跳变等可能性,同时进一步提高了车载以太网及总线网络的网络安全性能。

关键词:车载以太网;数据加密;网络安全;视频传输;总线网络

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

文章编号:1009-3044(2019)12-0025-03

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

1 研究背景

随着汽车的科技化、智能化、网络化的不断地发展,车内电子产品的数目不断增加,车内电控系统越来越复杂,电子控制单元数目也在不断地攀增[1]。同时汽车辅助驾驶系统、高清车载娱乐系统、车联网系统、云服务、大数据等新兴科技应用在汽车上,所以对汽车网络带宽的要求越来越高[2]。车载以太网系统可以满足智能型汽车的网络宽带的需求。车载总线网络不仅仅连接到车内各种ECU,同时连接到驾驶员的智能手机、GPS、蓝牙、因特网、V2V等,因此车载总线网络很容易受到外部黑客入侵、网络漏洞等攻击,会导致汽车失去制动、转向灯基本的操作功能[3]。因此必须要保障车载网络的安全性和可靠性。

近几年越来越多案例表明车载总线网络已经不是独立的,安全的了。车载总线网络很容易被入侵。如果不加防范,入侵者可以随意地对总线上的数据进行修改[4]。因此有必要采用网络安全技术,加密和认证等网络安全技术来提高车载总线网络的安全性[5]。

本文的第二章介绍了AES-128高级加密算法的设计过程和运算流程,第三章介绍了HMAC认证算法,并且描述了HMAC-SHA1认证算法的具体步骤,在第四章综合利用AES-128加密算法和HMAC-SHA1认证算法应用在车载以太网系统,并进行仿真实验。最后第五章对实验的内容进行了总结和展望。

2 AES-128加密算法

AES(Advanced Encryption Standard)加密算法是以Rijmen算法作为标准,具有稳定安全、运算快、占用内存小、易于实现等特点,能够很好地运用在各种网络环境中。AES加密算法的密钥长度允许设置128位、192位、256位等三种。本文综合考虑车载以太网系统中视频信息传输容量、AES加密算法的运算时间等因素,选取AES-128加密算法来应用到车载以太网系统中。

AES加密算法具有位、字节、字、分组和态等5个计量单位。其中,字是由4个字节组成,所以可以按行或列来排成矩阵。AES中分组为128位,表示为16个行字节组成的行矩阵。态用来表示加密每个步骤使用之前和使用之后的数据分组,可以组成4X4字节的矩阵。

每一轮加密过程需要经过代替和混淆运算的处理数据分组。每轮运算包括字节代替、列混淆、行位移、轮密钥加等4个阶段。

字节代替(Sub Bytes)是一个基于S盒的非线性置换,他可以将输入或输出中间状态的每一個字节通过简单的查表方式替代,将其影射变换成另外一个字节。S盒是一个16行16列的固定矩阵。映射的时候把输入字节的高四位作为S盒的行值,低四位作为列值,然后把S盒中对应行和列的元素作为输出。

列混淆(Mix Columns)目的是把输入的态进行混淆打乱操作。方法如公式(1)所示。

[a'(x)=b(x)·a(x)mod(x4+1)] (1)

其中,[a(x)]和[a'(x)]分别表示列混淆前和列混淆后的状态,[b(x)={03}·x3+{01}·x2+{01}·x]中大括号内的数表示是字节。

[a'(x)=a'0,c+a'1,c·x+a'0,c·x2+a'0,c·x3]

[a(x)=a0,c+a1,c·x+a0,c·x2+a0,c·x3]

[a'(x)]代表[b(x)]与[a(x)]相乘后x的指数[mod(x4+1)]等于0的项的系数之和,利用[ximod(x4+1)=ximod4],可得

[a'(x)={02}a0,c+{03}a1,c·x+{01}a2,c+{01}a3,c][=02030101a0,ca1,ca2,ca3,c]

其余类似,因此具体过程可以由矩阵运算(2)表示。

[a'0a'1a'2a'3=02030101010203010101020303010102a0a1a2a3] (2)

行位移变换(Shift Rows)是进行基于行的循环位移操作,图2表示行位移的过程。其中[a]和[a']表示行位移前和行位移后的状态。一个态从上到下分别为第0行,第1行,第2行和第3行。行位移时,一个态的第0行不变,第1行循环左移一个字节,第2行循环左移2个字节,第3行循环左移三个字节。

轮密钥加(Add Round Key)变换是将输入或中间态S的每一列与一个密钥[ki]进行按位异或运算。每一轮密钥由[Nb]个字组成,第r轮第c个轮密钥字表示为[w[r*Nb+c]]。轮密钥加变换可表示为公式(3):

[[S'0,c,S'1,c,S'2,c,S'3,c]=[S0,c,S1,c,S2,c,S3,c]⊕][w[r*Nb+c](0≤r

AES解密过程是加密过程的逆过程,同样需要经过十轮运算。并且每轮运算需要经过逆字节代替、逆行位移、逆列混、淆轮密钥加等四个阶段。

逆字节替代(Inverse Sub Bytes)是字节代替的逆过程,替代输出的值通过查询逆S盒得到。逆S盒也是一个16行16列固定的矩阵。映射的时候把输入字节的高四位作为S盒的行值,低四位作为列值,然后把S盒中对应行和列的元素作为输出。

逆行位移(Inverse Shift Rows)与行位移相反。逆行位移将4X4矩阵的后三行按相反的方向位移。即第0行保持不变,第1行向右循环位移一字节,第2行向右循环位移二字节,第3行向右循环位移四字节。

逆列混淆(Inverse Mix Columns)和列混淆有相似的处理过程,同时每一列值都与一个固定的多项式b(x)相乘,多项式(4)对其进行了定义。

[a'(x)=c(x)·a(x)mod(x4+1)] (4)

其中[c(x)={0b}x3+{0d}x2+{09}x+{0e}],[c(x)]为列混淆过程中[b(x)mod(x4+1)]的逆,即

[b(x)·c(x)={03}·x3+{01}·x2+{01}·x+{02}·d(x)≡1mod(x4+1)]

得到[c(x)={0b}·x3+{0d}·x2+{09}·x+{0e}]

公式(5)是逆列混淆过程的矩阵表示。

[a'0a'1a'2a'3=0e0b0d09090e0b0d0d090e0b0b0d090ea'0a'1a'2a'3] (5)

经过发送端的加密过程和接收端的解密过程步骤,接收端最终可以得到安全的信息。

3 HMAC-SHA1算法

HMAC(哈希运算消息认证码)是一种基于哈希的消息认证码,他是由一个内部哈希和一个外部哈希组成。定义一个 HMAC需要一个散列函数和一个密钥K。假设数据块H是迭代压缩函数来加密的散列函数,ipad为内部固定的字符串,opad为外部固定的字符串,M为需要传递的信息,公式(6)为HAMC算法的表达式。

[HMACK(M)=HK⊕opad||HK⊕opad||M] (6)

图3为HMAC算法流程图。首先在密钥K后添加0来创建一个长度为B的字符串;然后将这个字符串和ipad做异或运算;将数据流填充到异或运算的结果中;经过信息摘要算法生成数据块H;然后B字长的字符串与opad做异或运算生成s2;然后数据块H填充到s2后面;经过信息摘要算法最终得到HMAC结果。

本文采用的HMAC-SHA1算法是散列函数为SHA1的HMAC算法。即图3中的Message Digest algorithm部分为SHA-1算法。

安全哈希算法SHA-1是一种消息摘要函数。它允许的最大的消息长度为[264]位,产生的信息摘要为160位。在进行哈希计算之前,此算法需要先对信息进行预处理。预处理包括填充、分割和设定初始值等3个过程。其中,填充过程是在计算哈希之前把消息填充为512的倍数;分割过程是在压缩函数之前把消息分割为长度为512位的分组,同时每个分组又可以分为16个大小为的32位的小分组;第一轮初始值是固定的迭代值(5个32位的小分组),下一轮初始值是通过前一轮迭代计算之后可以得到,所以实际计算过程需要经过多轮迭代。最终SHA-1算法产生一个160位的消息摘要。由于SHA-1算法产生的信息摘要具有不可逆向推导的特性,发送端计算信息摘要之后发送给接收端,接收端在收到信息后对信息进行消息摘要的计算,并和发送端传输过来的信息摘要进行对比。

本文采用的HMAC-SHA1算法的运算步骤如下。首先设N为同步序列号,每计算一次信息摘要时N增加1。首先,在发送端,利用密钥K来求出数据块B长度的新的密钥K0,然后利用HMAC -SHA1算法进行计算消息摘要MAC码。然后采用AES-128加密算法和SHA-1信息摘要算法相结合对发送的信息进行加密,并传送给验证模块。在验证模块,首先对接受到的数据进行解密,再利用密钥K0来求出数据块B,然后利用HMAC -SHA1算法计算消息摘要。对比序列号N和N+1端的信息摘要,如果发送端和接收端的信息摘要值一致,则表明通信数据是准确的,如果不一致说明数据被改变了,接收端丢弃接收的信息并且请求发送端重新发送数据。

4 仿真实验

本文对视频文件进行了AES-128加密算法和HMAC-SHA1认证算法过程,并进行了基于CANoe.Ethernet车载以太网实验平台的通信实验。

图4是对视频文件进行加密和认证的流程图。首先,发送端把HMAC的密钥K0和AES-128的密钥K1传送给接收端。当发送端收到接收端视频请求之后,利用密钥K1对视频文件进行加密,然后利用密钥K0生成信息摘要,之后把加密后的视频和信息摘要一起发送给接收端。

接收端接收发送端发过来的视频之后,首先利用密钥K0对已接收的文件进行解密,然后计算解密后文件的信息摘要,接着对接收端计算的信息摘要值和发送端的信息摘要值进行对比。如果两者一致,接收端再利用密钥K1对视频进行解密并播放,如果不一致则删除当前文件并向发送端请求重新发送。

图5是视频在CANoe.Ethernet实验仿真平台中经过加密和认证之后播放結果。仿真结果表明,加密和认证处理过的视频传送和播放过程中没有卡顿与延迟现象。说明对视频文件进行AES-128加密运算和HMAC-SHA1认证运算之后提高了视频通信信息的安全性的同时保障了视频的正常播放。

5 结论

本文针对车载以太网的网络安全问题,创新地把AES-128加密算法和HMAC-SHA1认证算法结合起来应用于视频通信中。对视频文件添加加密和认证算法之后仍然保持了正常通信,同时在实时通信环境下进一步提高了以太网通信网络信息的安全性和可靠性。

参考文献:

[1] 呼布钦,秦贵和,刘颖,等.下一代汽车网络:车载以太网技术现状与发展[J].计算机工程与应用,2016,52(24):29-36.

[2] 韩正士,秦贵和,赵睿,等.车载FlexRay总线安全协议的设计与实现[J].西安交通大学学报,2018,52(12):63-69.

[3] 吴贻淮,李飞,覃周.车载ECU加密通信与身份认证机制研究[J].怀化学院学报,2017,36(05):75-77.

[4] 张子键,张越,王剑.一种应用于CAN总线的异常检测系统[J].信息安全与通信保密,2015(08):92-96.

猜你喜欢
数据加密网络安全
网络安全知多少?
网络安全
网络安全人才培养应“实战化”
上网时如何注意网络安全?
云数据存储安全关键技术研究
“4.29首都网络安全日”特别报道