在FOTA信息安全综述那篇文章中,丰富的信息安全新名词把我折磨不浅,导致公号狗的文采都没法融入作者的那篇文章中。恰逢部分客户也在关心我们自动驾驶整套方案中《信息系统安全等级保护》的情况,借此就从头开始学习下车联网信息安全相关的知识。
车联网信息安全的第一步就是保证通信数据的完整性、保密性及不可否认性,通信另一方身份的真实性。本文也就围绕上面需求一步步介绍相关的加密及认证策略。
通信的加密方和解密方用的是同一个密钥。信息交换过程类比现实生活实例为:北方小伙想给南方姑娘寄一封情书,为了不让对方亲人知道,北方小伙将信放到一个上了锁的盒子里。先将钥匙寄给南方姑娘,再将上锁的盒子寄给南方姑娘。这样她的亲人无意中拿到盒子也无法发现里面是一封情书。
常用的对称加密有:国际密码算法:AES,DES,3DES等,国密(国家密码局认定的国产密码算法):SM1,SM4。SM4是我国自主设计的商用分组密码算法,在国内敏感但非机密的应用领域将逐渐取代国外分组密码算法。
计算简单、速度快是对称加密的优点,适合大量数据发送时使用。可是上述钥匙分发的方式依旧存在丢失、泄露等安全风险。当然也可以选择本人亲自送过去,这样的话干嘛不亲自把情书直接送过去。针对密钥分发安全难题,上世纪70年代有两人提出了“非对称密码体制即公开密钥密码体制”,从而奠定了密码学研究的新开端。
非对称加密采用两个密钥,一个称为公钥(Public Key,公开密钥),一个称为私钥(Private Key,私有密钥),且是成双成对存在。公钥是公开,负责发送方明文加密工作,私钥是保密的,负责接收方密文解密工作。
信息交换基本过程为:南方姑娘会生成一对密钥,私钥自己保留,公钥会公开给爱慕的北方小伙。北方小伙把想要发给南方姑娘的私密话通过公钥加密,南方姑娘收到后,通过手里的私钥解密。同样,北方小伙也会生成一对密钥,私钥自己保留,公钥会公开给爱慕的南方姑娘。南方姑娘把想要发给北方小伙的私密话通过公钥加密,南北方小伙收到后,通过手里的私钥解密。这样一来一回,姻缘就成了。
常用的非对称加密算法有,国际密码算法:RSA、ECDSA、DH、Rabin等,国密:SM2。RSA是目前最有影响力的公钥加密算法之一,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO组织推荐为公钥数据加密标准。SM2安全强度、速度均优于RSA 2048,在电子认证服务等方面,正在逐步替换国际算法。
非对称加密的一对密钥就解决了一把密钥分发安全的问题,私钥不分发,只负责解密。公钥分发安全不用考虑,只负责加密。但是非对称加密计算复杂、速度慢,不太适合大量数据发送时使用。
非对称加密既然可以安全的将信息发送给对方,那么是否可以将本地生成的私钥通过非对称方式分发给对方呢,后续双方基于私钥的对称加密方式通讯?不仅可行,而且既能解决对称加密过程中密钥分发安全的问题,又能解决非对称加密计算复杂,速度慢的缺点,可以说是加密传输的折中方案了。
上述三种方式解决的是信息加密传输的问题,但发送文件的完整性和发送者的身份没法判断。对称/非对称加密过程,攻击者拿到发送者的密钥/公钥后可以伪造一份或篡改部分信息后向接收者发送,接收者拿到后可以正常解密,却不知这是一封被攻击者伪造或篡改后的信息。
数字签名便是为了验证发送文件的完整性及发送者身份而诞生,类似现实世界的签字盖章,一封盖上唐伯虎印章的《小鸡啄米图》才值三十万两。数字签名基于非对称加密机制来实现签名方案,主要分为签名过程和验签过程。
签名过程
(1)北方小伙通过HASH算法对明文信息进行计算,生成信息摘要;
(2)北方小伙使用自己的私钥对信息摘要进行加密,生成数字签名;
(3)北方小伙使用南方姑娘的公钥对明文进行加密,得到密文信息;
(4)北方小伙将附加有数字签名信息的密文信息发送给接收方。
(1)南方姑娘使用北方小伙的公钥先对数字签名信息进行解密,得到信息摘要;
(2)南方姑娘使用自己的私钥对接收到的密文信息进行解密,得到明文信息;
(3)南方姑娘使用与发送方一致的HASH算法对解密后的明文信息进行计算,生成信息摘要;
(4)南方姑娘将自己计算出来的信息摘要与从发送方获得的信息摘要进行比较,若一致,则接收明文,若不一致,丢弃明文。
从以上签名过程和验签过程可以保证被签名的内容在签名后没有发生任何的改变,即被签名数据的完整性得以保证。同时还可以确认签名确实是由认定的签名人完成,即签名人身份的真实性。同时一旦签名有效,签名信息还具有不可抵赖性。
但是数字签名还是存在一个问题,即南方姑娘验签的公钥默认是来自北方小伙的,可是要是攻击者通过非法手段将南方姑娘收到的公钥换成自己的,他又有南方姑娘的公钥,这样通信双方就变成了攻击者和南方姑娘,且无法察觉。结果可能一段姻缘的扼腕叹息。
为了证明公钥就是属于北方小伙的,出现了数字证书技术。
高铁站的警察叔叔要验证一个人的身份,通常做法是查看他的身份证,因为身份证是有权威公信力的政府机构发布的。数字证书就是一个人、公司或组织在网络世界中的身份证,其发证机关是第三方权威机构CA(certificate authority,证书管理)。
CA负责签发、管理和撤销数字证书。对于14亿人口的中国,一个CA肯定不够,因此国家会建立一个最高级别CA,称为根CA。每个省建立一个省级CA,有实力的每个市、县甚至企业都可以建立自己的CA。目前国家CA中心由国家密码管理局管理。
RA(Registration Authority,注册机构)专门负责受理申请人的证书申请请求、并负责验证申请人身份的合法性,从而决定证书申请的批准或拒绝。只有RA批准同意后,才可向CA申请证书签发。
证书申请及验证的过程如下:
(1)北方小伙向RA提出申请,同时提供身份信息、申请目的和用途等信息。RA收到请求后会启动身份真实性验证工作,审核完成后会将审批通过与否通知告知北方小伙,同时抄送给CA。
(2)北方小伙拿着RA的审批通过通知去CA申请证书签发,CA为北方小伙生成一对密钥对,并备份在密码库中。(用户也可以自己生密钥对)。
(3)CA将北方小伙身份信息(公钥、用户名等)、发证机构信息(名称、唯一号等)、证书属性(版本号、序列号、有效期、HASH算法等)等信息进行HASH运算生成信息摘要。然后CA中心使用自己的私钥对信息摘要进行加密生成数字签名。该数字签名与用户的身份信息、发证机构信息、证书属性等信息组成数字证书,并发给北方小伙。
(4)北方小伙想要和南方姑娘通信时,首先将身份证(数字证书)拿给南方姑娘看。南方姑娘收到北方小伙数字证书以后,首先使用CA中心的公钥对数字签名进行验签,从而得到信息摘要,同时采用相同的HASH算法对北方小伙的身份信息、发证机构信息、证书属性等其它信息进行再次运算生成信息摘要,如果两者相等,则说明数字证书是CA颁发的,里面的公钥的确是北方小伙的。
在数字证书有效期内,北方小伙和南方姑娘都能愉快的采用基于数字证书的非对称加密方式进行安全秘密通信了。
PKI(Public Key Infrastructure,公钥基础设施),通过充分利用公钥密码学的理论基础(加密与解密、签名与验证签名),建立起一种普遍适用的基础实施,为各种网络应用提供全面的安全服务。
CA,RA,公钥证书、证书目录、密钥管理、管理设备、政策法规、证书拥有者使用者等共同构成了PKI的组成部分。公钥证书作为PKI最基本的元素,也是承载PKI安全服务最重要的载体。
基于PKI的公钥基础设施方案是目前车联网信息安全的主流方案,用于保护车辆与外部网络通信(4G/5G/V2X)之间的安全性。主要解决通信中的四件事:
(1)身份真实性:确保另一方是你要与之通信的合法设备;
(2)信息完整性:保证信息在存储或传输过程中保持不被篡改、破坏;
(3)信息机密性:除了通信双方之外,其他方无法获知该信息;
(4)不可否认性:任何一方无法抵赖自己曾做过的操作。
原文始发于微信公众号(十一号组织):加密认证,守住车联网的“小秘密”