生物商城网站建设,可以用wordpress的什么文件,企业源代码,中国机械设备网官网作者 | 苏少博 上海控安可信软件创新研究院汽车网络安全组
来源 | 鉴源实验室
社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01
背 景 随着车联网的迅猛发展#xff0c;汽车已经不再是传统的机械交通工具#xff0c;而是智能化、互联化的移动终端。然…作者 | 苏少博 上海控安可信软件创新研究院汽车网络安全组
来源 | 鉴源实验室
社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01
背 景 随着车联网的迅猛发展汽车已经不再是传统的机械交通工具而是智能化、互联化的移动终端。然而随之而来的是对车辆通信安全的日益严峻的威胁。在车联网生态系统中车辆通过无线网络与其他车辆、基础设施以及云端服务进行广泛通信这种高度互联的状态也使得车辆系统更容易受到各种潜在的威胁和攻击。
通信安全问题在车联网中尤为突出可能面临诸如数据窃取、信息篡改、恶意注入以及拒绝服务等多种威胁。黑客可能试图获取车辆传感器和控制单元的敏感信息篡改车辆间的通信数据甚至远程控制车辆执行危险操作。这些潜在的威胁对驾驶安全、车辆保障以及交通管理都构成了巨大的挑战。
为了有效应对这些安全威胁通信安全加密成为车联网中的关键环节。在这一背景下传输层安全协议TLS作为一种通用的安全通信协议为车辆通信提供了可靠的安全保护。通过强化数据的保密性、完整性和身份验证TLS在车联网中发挥着至关重要的作用有效应对通信安全所面临的复杂挑战。 02
TLS 基本原理 2.1 基本介绍
传输层安全协议TLS是一种加密通信协议用于确保在网络上的数据传输过程中的安全性和隐私保护。TLS的前身是安全套接层协议SSL后来在标准化过程中发展成为TLS。TLS协议的主要目标是通过加密和认证机制保护网络通信的机密性、完整性和身份验证以抵御可能的网络攻击和窃听。
TLS协议主要通过以下方式实现安全通信
加密Encryption使用加密算法对传输的数据进行加密确保在传输过程中数据不被未授权的第三方读取或修改。
认证Authentication通过数字证书等机制验证通信双方的身份确保通信的对端是合法的并防止中间人攻击。
完整性保护Integrity Protection 使用消息摘要算法如哈希函数来验证数据在传输过程中是否被篡改以保障数据的完整性。
TLS协议广泛应用于互联网通信中尤其在Web浏览器与服务器之间的安全通信中扮演关键角色。当用户访问使用“https://”协议的网站时TLS协议就会启动确保用户与网站之间的数据传输是安全可信的。TLS协议的不断升级和改进也反映了对网络安全不断演进的需求。
2.2 TLS握手过程
2.2.1 TLS 1.2 握手过程
TLSTransport Layer Security握手过程是确保安全通信的关键步骤它涉及到协商加密算法、验证通信双方的身份并生成用于加密通信的会话密钥通常包含以下几个流程
客户端发出请求ClientHello。在此流程中客户端会提供如下信息 客户端生成一个随机数称为ClientRandom这个随机数的目的是在握手过程中引入熵entropy增加通信的随机性提高安全性 客户端会列举支持的加密算法、摘要算法以及密钥交换算法等。这是为了告知服务器它可以使用哪些算法来保护通信 客户端会提供其他通信参数例如支持的压缩算法等。这些参数提供了有关客户端支持的通信设置的信息。
使用Wireshark打开包含TLS ClientHello数据的流量包时通常可以看到如下内容
ClientHello: Random: [随机数] CipherSuites: [支持的加密算法列表] CompressionMethods: [支持的压缩算法列表] Extensions: [其他扩展例如SNIServer Name Indication] 图1 ClientHello示意图
ClientHello的目标是为服务器提供足够的信息以便服务器能够做出响应并在握手过程中建立一个安全的通信通道。服务器将使用这些信息来选择合适的加密算法、生成自己的随机数、以及执行其他必要的步骤来协商出一个安全的连接。
服务器回应SeverHello。在此流程中服务器会回复以下信息 服务器会生成一个随机数称为ServerRandom。类似于ClientRandom它增加了握手过程的熵提高了通信的随机性和安全性 服务器从客户端提供的加密算法列表中选择一个算法用于后续的通信加密 服务器确认客户端提供的其他通信参数例如TLS版本、压缩算法等 如果服务器支持会话缓存和复用还会生成一个Session ID发送给客户端。客户端可以在未来的握手中使用该Session ID来恢复先前的会话状态以加速握手过程。
使用Wireshark打开包含TLS ServerHello数据的流量包时通常可以看到如下内容
ServerHello: Random: [随机数] CipherSuite: [选择的加密算法] CompressionMethod: [选择的压缩算法] Session ID: [会话标识如果支持会话复用] Extensions: [其他扩展例如支持的应用层协议ALPN] 图2 ServerHello示意图
客户端回应。在此流程中客户端会回复以下信息
客户端和服务器使用已经在之前握手步骤中交换的随机数生成一个预主密钥称为Pre-Master Secret并使用服务器的公钥进行加密发送给服务器。
服务器再次回应。在此流程中服务器会回复以下信息
服务器收到客户端传输的加密信息后使用其私钥解密并获得 Pre-Master Secret。
服务器和客户端使用已经交换的随机数和 Pre-Master Secret 生成一个 Master Secret主密钥。
随后客户端发送ChangeCipherSpec消息给服务器通知服务器从此时开始使用新生成的密钥加密通信内容服务器同样给出回应至此整个握手阶段全部结束。 图3 ChangeCipherSpec示意图
2.2.2 TLS双向认证
单向认证和双向认证是TLS常用的两种身份验证机制它们的主要区别在于验证的参与方和方式。
单向认证是指单向认证仅验证一方的身份通常是客户端验证服务器的身份确保客户端连接到合法的服务器。流程与上述握手过程相同。单向认证适用于大多数互联网服务服务提供商或服务的拥有者验证其身份而客户端无需提供身份验证。
双向认证是指通信过程中需要验证两方的身份。客户端请求连接服务器服务器提供数字证书客户端验证服务器的身份同时客户端也会发出CertificateRequest请求要求客户端也提供数字证书服务器发送Certificate验证至客户端的身份至此双向认证完成。双向认证通常用于对通信安全性要求较高的场景例如在线支付、云服务、金融应用等确保通信的双方都是合法的。 图4 Certificate示意图
2.3 TLS 1.3
2.3.1 握手过程
TLS 1.3在握手过程上进行了一些改进提高安全性和性能。在上述的TLS 1.2握手过程中通常需要进行ClintHello、ServerHello、两次密钥交换共两个来回的完整握手过程而在TLS 1.3中将Hello和密钥交换过程进行了合并有效减少了握手次数。 图5 TLS 1.3中ServerHello直接进行了密钥交换
2.3.2 其他改进
1删除不安全算法支持
TLS 1.3弃用了一些不安全或弱密码算法进一步提高了安全性。例如去除了对MD5、SHA-1、RC4等算法的支持。
2使用HKDF进行密钥派生
TLS 1.3使用基于HMAC的密钥派生函数HKDF来派生密钥材料增强了密钥派生的安全性。
3提供前向保密
TLS 1.3使用Diffie-Hellman密钥交换算法的TLS 1.3握手过程中提供了前向保密性保证即使服务器的长期私钥泄漏以前的通信也不会受到影响。
4支持0-RTT恢复
TLS 1.3引入了支持0-RTT零轮往返时间的特性允许客户端在第一次连接时发送数据从而进一步提高性能。 03
结 语 通过以上对TLS的介绍希望大家能够对TLS原理有更清晰的认识能够使用wireshark对TLS流量包进行简单的分析。如今TLS在车联网中扮演着关键的角色通过加密、身份验证和完整性保护等机制为车辆之间和车辆与基础设施之间的通信提供了可靠的安全保障。这对确保车辆网络的稳定性、用户隐私和远程控制的安全性都至关重要。