Warning: A non-numeric value encountered in /www/wwwroot/www.beanpodtech.com/wp-content/themes/Divi/functions.php on line 5841

概述

在错综复杂的车联网中,云与端通信时,信息安全大多是通过TLS(Transport Layer Security)协议来保证。TLS即传输层安全性协议,其前身是安全套接层(Secure Sockets Layer,缩写SSL)安全协议。使用TLS的目的是为车联网通信提供安全及数据完整性保障。该协议由两部分组成: TLS记录协议(TLS Record)和 TLS握手协议(TLS Handshake)。较低层为TLS记录协议,位于某个可靠TLS 记录协议的传输协议(例如 TCP)上面。目前普遍采用的方案都是TLS1.2,据了解,由于技术和成本的限制,目前还没有车厂采用TLS1.3协议,不知在未来的车联网信息安全技术选择上是否会有所改变。下面,让我们从技术角度对TLS1.2和TLS1.3进行细致分析。

TLS作用

  • 所有信息都是加密传播,第三方无法窃听。
  • 具有校验机制,一旦被篡改,通信双方会立刻发现。
  • 配备身份证书,防止身份被冒充。

注:TLS 记录协议负责消息的压缩、加密以及数据的认证。

TLS位置

 

                                                                                  图1:TLS在通信链路中的位置

从图中可以看到,SSL/TSL层的加入,建立了一个安全连接(对传输的数据提供加密保护,可防止被中间人嗅探到可见的明文;通过对数据完整性的校验,防止传输数据被中间人修改)和一个可信的连接(对连接双方的实体提供身份认证)。

TLS1.2 握手

下面介绍一下,TLS 1.2协议的密钥交换流程及其缺点。

RSA密钥交换步骤如下:

1.client发起请求(Client Hello)。

2. server回复certificate。

3. client使用证书中的公钥,加密预主密钥,发给 server(Client Key Exchange)。

4. server 提取出预主密钥,计算主密钥,然后发送对称密钥加密的finished。

5. client计算主密钥,验证finished,验证成功后,发送ApplicationData了。

缺点:RSA密钥交换不是前向安全算法(私钥泄漏后,之前抓包的报文都能被解密)。

 

图2:TLS1.2的握手图解

注:图2是单向认证,TLS1.2是支持双向认证的。

TLS1.3 握手

相比TLS1.2,TLS 1.3 是按照以下方式优化握手的:

1. client发送请求(Client Hello),extension携带支持的椭圆曲线类型。且对每个自己支持的椭圆曲线类型计算公钥(POINT)。公钥放在extension中的keyshare中。

2. server回复Server Hello和certificate等;server选择的椭圆曲线参数,然后乘以椭圆曲线的base point得到公钥(POINT)。然后提取Client Hello中的key_share拓展中对应的公钥,计算主密钥。公钥(POINT)不再和之前的以协议一样放在Server Key Exchange中,而是放在Server Hello的key_share拓展中。client收到server的公钥(POINT)后计算主密钥。

 

图2:TLS1.3的握手图解

TLS 1.3 优点

  • 支持 0-RTT 数据传输,在建立连接时节省了往返时间。
  • 废弃了 3DES、RC4、AES-CBC 等加密组件,废弃了 SHA1、MD5 等哈希算法。
  • ServerHello 之后的所有握手消息采取了加密操作,可见明文大大减少。
  • 不再允许对加密报文进行压缩、不再允许双方发起重协商。
  • DSA证书不再允许在3中使用,导致与TLS1.2不兼容。
  • 3有更快的访问速度
  • TLS 1.2 需要两次往返( 2-RTT )才能完成握手。
  • TLS 1.3 协议只需要一次往返( 1-RTT )就可以完成握手。(注:使用 TLS 1.3 协议,可能会减少将近 100ms 的时间)

 

以上就是车联网众多节点中,云与端通信协议TLS1.2与TLS1.3的介绍。