原创专栏│厘清密钥算法在汽车网络信息安全中的应用
2022-8-23 18:33:45 Author: 谈思实验室(查看原文) 阅读量:17 收藏

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯

前言

与传统汽车相比,智能网联汽车能够提供更加安全、更加 节能、更加舒适以及更加环保的驾驶方式,是具有复杂的环境感知、智能决策和自动驾驶功能的新一代智能汽车。于此同时,汽车的信息网络安全环境也随之变得脆弱,威胁着人们的生命安全,为解决该问题许多行业研究人员采用加密的方式保障车载网络的信息安全。因此,本文将探讨此类密钥算法在汽车信息网络安全中的应用。

01

识木见林 巧遇算法

  //  

首先,我们用一个图表来简单介绍一下算法。

图1:对称性算法与非对称型算法

以下是具体算法介绍:

1

RSA算法

RSA算法是一种基于公开密钥机制且极具代表性的非对称加密算法,在进行加密操作与解密操作时分别使用两种不同的密钥。加密密钥也被称为公开密钥 (简称公钥),网络中的任一节点均可以获取。解密密钥也被称为私有密钥(简称私钥),仅该节点自身可知,不对外公开。

如图4.1所示,RSA算法的实现过程包括两个阶段,分别为密钥生成与数据加解密。

RSA 算法密钥生成阶段的实现过程如下:

(1)随机选出两个互不相等的大质数,分别表示为 p 与q。

(2)计算所选取的两个质数p与q的乘积 n=p×q。n的二进制位数即为 RSA 算法中所使用的密钥的长度。
(3)计算n的欧拉函数值φ(n)=(p-1)(q-1),即计算 ( p -1) 与 (q -1) 的最小公倍数。
(4)随机选取一个整数 e,e需要满足eε(1,φ(n)),且gcd (e,n)= 1,即e与n互质。(e,n)即为RSA算法进行加密时所使用的公开密钥。
(5))算e对于φ(n)的模反元素d,即d需要满足(d×e)modφ(n=1)。(d,n)即为 RSA 算法进行解密时所使用的私有密钥。
(6)封装公开密钥 (e,n)与私有密钥 (d,n),密钥生成结束。

图2:RSA算法的实现过程

RSA 算法数据加解密阶段具体实现过程如下:

1) 加密实现过程:

发送方发送一条消息M给接收方,在进行加密前,需要将待发送消息M转换为整数m,且m需要满足0≤m≤n-1。转换完成后,发送方将整数 m 使用接收方的公开密钥 (e,n)进行加密生成消息 M 所对应的密文形式c,并将其发送给接收方。加密过程所使用的公式为:c=m∧e(modn)

(2) 解密实现过程:

接收方收到来自发送方的消息密文c ,并将其使用仅自身可知的私有密钥 (d,n) 进行解密得到整数m。由于整数m是由发送方将待发送消息M进行转换后得到的,因此,接收方可以通过对整数m进行反转的方式获取原始消息M。解密过程所使用的公式为:m=c∧d(modn)

RSA 算法利用公钥(e,n) 加密数据,利用私钥 (d,n)解密数据。

若私钥泄露,则RSA算法的安全性将无法得到保证。在RSA算法的密钥生成阶段主要包含p,q,n,φ(n),e以及d,而与 q 会在密钥生成阶段封装密钥后被清除,因此共有4个参数被保留,分别为 n,φ(n),e 以及d。d是由φ(n)以及e共同计算得出,获取φ(n)与e即可破解私有密钥。φ(n)是( p -1)与(q -1)的最小公倍数,只有获取p与q的值才能计算得出φ(n)。在被保留的参数中,n是p与q的乘积,对n进行质数因子的分解即可获取p与q,从而最终可以达到成功获取私有密钥参数d的目的。然而,最初随机生成的p与q均为两个较大的质数,在计算方面,将它们的乘积n成功分解为两个质数是十分困难的。因此,若最初随机生成的质数p与q足够大,那么RSA算法所具备的安全性则可以得到充分的保障。

2

HMAC-MD5算法

HMAC 算法是一种计算消息认证码的方法。消息认证码是可变长度的消息 经过特定算法的处理后所生成的信息,可用于消息认证。HMAC算法存在两个重要参数,分别为哈希函数与密钥。发送方与接收方共同拥有一个相同的密钥,双方可以使用该密钥与约定好的哈希函数对通信消息计算消息认证码,并通过交 换消息认证码的方式对通信消息进行认证。

MD5 算法是一种单向密码散列函数,其可以接收任意长度的输入信息并输出一段长度为16字节的散列值,且计算过程不可逆。MD5算法以分组的方式对输入信息进行处理,如图3所示,MD5算法的具体实现过程主要分为以下阶段,分别为信息输入、信息填充、添加长度、初始化链接变量、数据分组、数据处理以及结果输出。

(1)信息输入。将待处理信息作为输入提交给算法,以获得与输入相对应的固定长度的简短信息摘要。

(2)信息填充。为满足算法后续处理过程中对于信息长度的要求,在进行处理前,需要对输入的信息进行按位填充,填充后的信息长度为 N∗512+448位,其中N为正整数。填充时所使用的方法为在输入信息的尾部填充一个1与多个0。

(3)添加长度。在进行位填充后的信息尾部添加一个二进制串,用于表示 进行信息填充前的原始信息长度,如果大于 64 位,则只取低 64 位。添加信息长度后的信息总位长为N∗512+448+64=(N+1)∗512。

(4)初始化链接变量。MD5算法中所使用的四个链接变量的值分别为A=0χ01234567,B=0χ89ABCDEF,C=0χFEDCBA98,D=0χ76543210。

(5)数据分组。首先按照每 512 位一组的分组规则对经过前三步处理后的数据进行分组操作,然后再将每组划分成长度为 32 位的子分组,共可得到 16 个子分组。

(6)数据处理。MD5算法对数据的处理过程共包括四轮主循环运算,共循环即 (N +1) 次。在第一个分组进入主循环前,需将初始化后的链接变 量 A、B、C 以及 D 分别复制到对应的整型变量 a、b、c 以及d中。除第一分组外,每组的初始值均为上一组的运算结果。各主循环的执 行过程大致相同,包括16次操作,每次操作对应一个子分组。

MD5 算法的数据处理的具体流程如图4所示,其中F为非线性函数,M为数据,L为常量。每次操作在四个整型变量 a、b、c 以及 d 中选择三个使用函数F进行处理,将处理后的结果与未被选择的变量、一个子分组以及一个常量相加, 并将得到的结果进行循环左移后与变量 a、b、c 以及d中之一做加法运算,最后将该结果用来替换a、b、c以及d的一个。

图4:MD5 算法数据处理流程

在四轮主循环执行完成后,将a、b、c以及d分别与对应的A、B、C 以及D相加,即 a=a+A, b= b+B,c=c+C,d=d+D,然后继续使用下一分组运行该算法,直到所有的分组运行结束,最终输出的散列值为a、b、c 以及d的级联。

HMAC-MD5算法属于HMAC算法中的一种,其使用 MD5算法作为HMAC算法的哈希函数。HMAC-MD5算法的具体实现步骤如下:

(1)对密钥进行填充操作。若密钥不足 64 字节,则通过在密钥尾部填充 0 的方式生成一个长度为 64 字节的字符串。若密钥大于 64 字节,则 将该密钥字符串作为输入进行 MD5 运算,在运算结果尾部填充 0 生 成一个长度为 64 字节的字符串,并使用该字符串替代原有的密钥值 进行后续运算。

(2)将第(1)步生成的长度为 64 字节的字符串与 0x36 进行异或运算。

(3)将待处理数据添加到第(2)步完成异或运算的结果字符串的尾部。

(4)将第(3)步生成的已添加待处理数据的字符串作为输入进行 MD5 运 算。

(5)将第(1)步生成的长度为 64 字节的字符串与 0x5c 进行异或运算。

(6)将第(4)步完成 MD5 运算的结果字符串添加到第(5)步完成异或 运算的结果字符串的尾部,并将新生成的字符串作为输入进行 MD5 运算,其输出的结果字符串即为 HMAC-MD5 算法最后的输出结果。

3

DES算法原理

DES 算法是一种基于对称密码机制的对称加密算法,在进行加密操作与解密操作时均使用相同的密钥。该密钥由参与通信的发送方与接收方在进行安全通信之前共同商议决定。

如图5所示,DES 算法的具体实现过程主要分为以下几个步骤:

图5:DES 算法实现过程

(1)初始 IP 置换。DES加密算法将长度为64位的输入信息依据初始IP置换表进行初始IP置换,并将置换后的结果划分为长度均为32位的L0与R0两部分,其中L0为前半部分(即前32位),R0为后半部分(即后32位)。置换过程依据的初始IP置换表如表1所示。该初始IP置换表包括8行8列,代表64位数据的位置,即第1行第1列代表第1位数据,第1行第2列代表第2位数据,以此类推。表中的数字代表置换前数据的位置,例如,第二行第一列的数据60代表将64位明文输入的第60位置换到第9位。

表1:初始 IP 置换表

(2)密钥置换。密钥置换阶段也称子密钥生成阶段,DES算法每轮迭代所使用的子密钥均不相同。如图6所示,首先需要依据 PC-1表将长度为64位的密钥转换为长度为56位的密钥,并将转换后的结果划分为长度均为28位的C0与D0两部分,其中C0为前半部分(即前28位),D0为后半部分(即后28位)。4.2即为转换时所依据的PC-1表。

图6:密钥置换过程

表2:PC-1

将划分完毕的C0与D0分别进行循环左移操作,得到C1与D1。并将二者进行合并,依据PC-2表将合并后的结果转换为长度为48位的子密钥K1。其中,循环左移的位数取决于迭代轮数,表 3即为所依据的循环左移位数表。

表3:循环左移位数表

在下一轮迭代过程中,将C1与D1再次依据循环左移位数表进行循环左移操作,得到C2与D2。并将二者进行合并,依据PC-2表将合并后的结果转换为长度为48位的子密钥K2。以此类推,在16轮的迭代过程中共生成16个子密钥,分别为 K1,K2,……,K16。表4即为转换时所依据的PC-2表。

表4:PC-2

(3)扩展置换。将长度为32位的Rn(即明文输入的右半部分)依据 E表扩展至48位,并将扩展后的结果与相应的子密钥进行异或运算。表5即为进行扩展置换时所依据的E表,其中,中间为原数据位,左右两边为扩展位。

表5:E表

(4)S 盒代替。将第(3)步所得结果作为送入 S 盒中,首先需要进行分组操作,每个分组与一个不同的S盒相对应。共有8个不同的S盒,每个S盒的输入长度与输出长度分别为6位与4 位,输入决定了其所对应的输出在S盒中的位置。表6即为所依据的8个S盒,每个S盒均可以 表示为一个4*16的表。其中,输入的高低两位对应行数H,输入的中间四位对应列数L,S盒中第H行第L列的数据即为其对应的输出的具体位置。

表6:S盒

(5)P 盒置换将进行完8个S盒代替运算后得到的总长度为32位的输出结果作为输入送入P盒进行置换操作。表7即为进行P盒置换时所依据的P盒。

表7:P盒

(6)IP 逆置换此次置换为初始IP置换的逆置换过程,所依据的IP逆置换表如表8所示。

表8:IP逆置换表

02

移花嫁木 辨其真假

接下来让我们以表格的形式来区分各个算法之间的差别。

算法选择:对称加密AES,非对称加密: ECC,消息摘要: MD5,数字签名:DSA

对称加密算法(加解密密钥相同)

非对称算法(加密密钥和解密密钥不同)

散列算法比较

对称与非对称算法比较

算法选择(从性能和安全性综合)

对称加密: AES(128位),

非对称加密: ECC(160位)或RSA(1024),

消息摘要: MD5

数字签名:DSA

轻量级:TEA、RC系列(RC4),Blowfish (不常换密钥)
速度排名(个人估测,未验证):IDEA<des <gasti28<gost<aes<rc4<tea<blowfish  <="" font="">
简单的加密设计:用密钥对原文做异或,置换,代换,移位

单钥密码算法性能比较表

1.3DES(Triple DES):是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高;

2.RC2和RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快;
3.IDEA(International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性;

4.DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准),严格来说不算加密算法;

5.AES(Advanced Encryption Standard):高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高,在21世纪AES 标准的一个实现是 Rijndael 算法;

6.BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快;

7.PKCS:The Public-Key Cryptography Standards (PKCS)是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。

8.SSF33,SSF28,SCB2(SM1):国家密码局的隐蔽不公开的商用算法,在国内民用和商用的,除这些都不容许使用外,其他的都可以使用;

9.ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学
10.TEA(Tiny Encryption Algorithm)简单高效的加密算法,加密解密速度快,实现简单。但安全性不如DES,QQ一直用tea加密

03

林中鸟鸣 乘风千里

算法在汽车网络信息安全中的应用

网络安全视角的车联网架构(图片来源:中国信通院车联网安全白皮书)

在车联网系统中,主要包括三个角色,即用户端,车辆,云端,其中:用户安装移动终端安装APP软件,以完成车辆的发现、开门、熄火、锁门等车辆控制操控;车辆则是通过车辆控制模块与云端进行远程通信,并使用蓝牙实现和APP软件之间的无线通信;云端负责的是集中管理车辆中的左右数据资源的工作,同时进行远程控制车辆的操作。

从防护对象来看,车联网的网络安全应将重点关注到智能网联车辆安全、智能终端安全、车联网服务平台安全、通信安全、应用安全、数据安全和隐私保护,而密钥算法技术可以贯穿应用于车联网环境的各个环节,例如用户和设备的身份认证、访问控制、重要数据(日志、采集的车辆信息、用户数据)的加解密等场景。

从“端”、“管”、“云”中看算法密钥的应用

01

密码技术在“端”中的应用

对于端系统,端系统层面主要涉及可车载终端设备以及路侧设备,车载终端设备分为车商前装设备和互联网智能后装设备,车商前装设备需要嵌入安全芯片,用以管理密钥和加密运算,从而强化ECU和CAN总线自身脆弱性的问题,进入整车厂的前装序列;互联网智能后装设备则需要隔离汽车底层,加硬件防火墙的方式,来保障车辆安全,解决车内网络之间的数据传输风险。针对路侧设备,主要包括路侧通信感知设备终端,交通流量采集,信号控制设备以及交通诱导设备等,同样需要通过嵌入安全密码芯片来保障路侧设备采集到数据的安全。

02

密码技术在“管”中的应用

管系统可采用防火墙、智能检测技术和修改协议增加密码模块,实现车内娱乐、导航等系统与车机内网以及与路测设施等的安全隔离、访问控制及异常检测。

03

密码技术在“云”中的应用

云系统主要指云平台所提供的服务以及基于云平台的移动App,针对云平台的安全主要利用密码算法对数据进行加密,通过数据隔离、数据加密、数据防泄漏、数据库防火墙、数据审计等方式保障密钥以及用户数据的隐私性。
通过以上分析归纳可知,密码算法在车联网中的应用主要能够解决车体固件的脆弱性,车体通信的风险性以及云平台的数据安全性等问题,密码算法能够在端、管、云三个层面上提升车联网体系的安全防护能力。针对国内的汽车厂商来说,选择合适的密码算法便尤为重要,目前为止,国密算法作为我国自主可控的密码算法,已经成为国际标准算法,在车联网中的推广应用正当其时。
接下来让我们看具体的应用场景:
1. 身份鉴别应用场景:主要包括“用户-车辆”、“用户-云端”、“车辆-云端”之间额双向身份鉴别,保证通信双方的真实性。算法密钥技术基于安全芯片、密码模块等产品与车辆的硬件设计结合的方式,是车辆的硬件设备具有管理及加解密运算能力,从而可以提供身份的有效性验证、数据有效性验证,进一步解决TSP安全加固、固件升级(FOTA)包缺乏合法性检测、蓝牙钥匙安全下发、通信信息明文传递、连接双方身份认证等问题。
2.网络通信应用场景:包括“用户-车辆”、“用户-云端”、“车辆-云端”之间通信过程以及车的通信。加密算法在实现应用的过程中主要保证的是关键数据在传输中的保密性,对于移动端和车辆的接入使用数字签名进行身份合法性验证,以保证接入端的可靠性,如车内ECU(电子控制单元)指令不会被篡改,指令的加密传输等。
3.数据安全的应用场景:抱哈数据传输和数据存储安全,集中/采集设备调用服务器密码机和安全芯片服务,采用对称算法和哈希算法(如SM4、HMAC-SM3),对通信过程中和存储中的信息保密性和完整性进行保护。从数据生命周期来看,包含数据采集、数据传输、数据存储、数据处理、数据交换、数据销毁等阶段。其中辅助算法的技术包含:数据分类分级、可信、准入、数据加密、数据防泄漏、数据脱敏、用户行为审计和溯源、数据销毁等等。
从应用模式看,在车辆网环境中,密钥算法产品目前主要部署在车辆网的终端和云端。终端的密码产品主要有数字钥匙、车载安全芯片、白盒密码、OTA安全系统、APP安全防护等产品;云端的密码产品主要由应用的产品主要由CA系统、KMS系统、云密码机、数据库加密机、交付网关等。

04

泥积跬步 爝火不息

密钥算法未来发展、痛点预测

在国家政策和车联网安全需求的双重推动下,密码技术在车联网中的应用将达到鼎盛阶段,但同时车联网技术的高速发展,使得密钥算法技术在其中的应用也同样存在诸多挑战:

01

多类型终端、协议和应用场景下的产品适配

车联网终端方面,包括Linux系列的IVI、TBOX、中央网关以及车载框架ECU系列,云端包括Windows、 Linux、Unix系列服务器与工作站。路侧设备包括Linux系列的收费设备、测速传感设备、智能路灯、充电桩等;移动端包括Android、IOS系列移动智能终端;
车联网协议方面,车载远程通讯协议包括蜂窝网、LET-V2X、5G-V2X等远程通讯协议;车载短程通讯协议WIFI、RFID、Bluetooth等近距离通讯协议;以及车载雷达、车内CAN网络等车内通讯协议。密码需要对于以上多类型的终端、多种协议研发适配的技术及产品,才能发挥密码在车联网安全中的基础作用。

02

实现轻量级的密码产品应用

车联网系统中的终端数量巨大,每辆汽车可能配备了数百个通过总线连接的电子控制单元(ecu)。因此,密码应用需要占用较大的网络和算力资源,来满足应用认证和加密服务需求,而现阶段车联网应用中的一个主要挑战就是传输带宽不足导致的网络时延,因此密码技术的应用需要最大程度降低对车联网系统资源的占用,如何实现轻量级的密码技术应用将是密码厂商的一大挑战。

03

密码应用的行业规范及标准仍需完善

对于车联网中密码技术的应用,虽然目前有关部门已经出台了一些规章制度,但规范促进监督作用仍然有限,行业政策法规还需进一步完善。目前,国家正在加紧推进车联网商用密码的应用,工业和信息化部于2021年9月15日发布的《工业和信息化部关于加强车联网网络安全和数据安全工作的通知》中提出,如果车联网服务平台被认定为关键信息基础设施,平台运营单位要尽快落实《关键信息基础设施安全保护条例》有关规定,并按照国家有关标准使用商用密码进行保护,自行或者委托商用密码检测机构开展商用密码应用安全性评估。
在实际应用中,车辆网汽车上所部署的 ECU 节点的计算资源与存储资源是十分有限的,可能无法在一段时间内将某一算法运行完毕。而在某一ECU节点执行大量计算任务的同时,车辆上的其他ECU节点可能正处于一个空闲的状态。因此,未来在算法密钥的应用基础上可以考虑设计基于分布式计算或云计算的车载以太网信息安全防护机制,将计量算较大的任务分配给网络中的所有空闲ECU,或将任务上传至云节点进行计算,由云节点回传计算结果以减轻车载ECU节点的计算压力。
真实的车载应用系统的结构相对复杂,需要的ECU节点的数量也相对较多。因此,未来生产产商可以考虑增加ECU节点数量以对车载以太网信息安全防护机制进行进一步的验证与优化,最终达到保护汽车信息网络安全的目的。

结语

The End

见微知著,择物取道,瓦砾遍布。

密钥算法经历数十年的变革与发展,有时领先于时代,有时滞后于时代,在时代的来回摆动间,它们获得了生命力,然而对于当前重要的发展问题——汽车信息网络安全来说,密钥算法的应用无疑是缓解该问题的强力剂,一定程度上促进了车联网汽车的智能化与互联化,为其稳步发展提供源源不断的动力。因此,本文密钥算法出发,列举出了RSA、HMAC-MD5、DES等几个重要算法,再进一步从不同角度比较各个算法的区别,试图为观者厘清它们之间的异同点,最后通过阐述密钥算法在汽车信息网络安全中的应用指出了其未来发展的痛点预测。

存白昼于眼眸,握夕阳于盘游。下一期推送再见!

(注:部分内容资料参考网络,如有侵权请与笔者联系及时修改,感谢!)

//

参考文献

[1]《面向车载以太网的信息安全防护机制研究》;王楚婷

[2]《车联网中密码算法的应用现状》;中国信息安全杂志

[3]《密码技术在车联网安全中的应用与挑战》;林海静


文章来源: http://mp.weixin.qq.com/s?__biz=MzIzOTc2OTAxMg==&mid=2247511995&idx=1&sn=990d99c6b2e9cdf39ebfb3de567260c7&chksm=e927eb60de506276e18a3177bc88e8faa1dadb4004f3dc1505b5c0fdafea52e6fd50a5a989bc#rd
如有侵权请联系:admin#unsafe.sh