前言
在汽车出行愈加智能化的今天,我们可以实现手机远程操控车辆解锁、启动通风、查看车辆周围影像,也可以通过 OTA(空中下载技术)完成升级车机固件、更新地图包等操作,自动驾驶技术更是可以让车辆根据路面状况自动辅助实施转向、加速和制动。
然而,每项提升我们使用体验的功能,都有可能成为致命的安全漏洞。腾讯安全科恩实验室曾向外界披露并演示过如何凭借 3/4G 网络或者 WiFi 网络,在远程无物理接触的情况下入侵智能汽车,实现对车辆信号灯、显示屏、门锁甚至是刹车的远程控制。不仅如此,攻击者甚至可以利用某个已知漏洞获取智能汽车的 Autopilot 控制权,对车辆行驶方向进行操控。
因此,我们在车联网平台构建时也应充分认识到通信安全、身份认证、数据安全的重要性,正确使用相关加密认证等技术手段来提供保障。
本篇文章我们将全面介绍 SSL/TLS 协议在车联网通信安全中的应用,希望能让大家对 SSL/TLS 的作用有更清晰直观的认识。此外,我们还将详细讲解 SSL/TLS 的配置方式,确保大家能正确使用 SSL/TLS,实现安全性保障。
车联网安全通信 MQTTS 协议
MQTTS 协议是在 MQTT 协议的基础上,封装了一层基于 SSL/TLS(*传输层安全)*的加密协议, 它确保车机端和车联网平台通信是加密的。但如果没有正确配置 SSL/TLS,依然会存在很多安全隐患。想要真正运用好 SSL/TLS,我们必须了解 SSL/TLS 解决了哪些问题,以及对 SSL/TLS 用到的密码技术有初步的认知。
通常情况下,通信过程需要具备以下四个特性,才能被认为是安全的,分别是:机密性、完整性、身份认证和不可否认。
机密性
机密性是安全通信的基础,缺少机密性任何窃听通信的人都可以轻而易举获取到你的诸如登录密码、支付密码等关键隐私信息。实现机密性最常用的手段就是加密,这样窃听者只能得到加密后的毫无意义的一串数据,只有持有密钥的人才能将密文恢复成正确的原始信息。根据密钥的使用方法,加密方式可以分为对称加密和非对称加密两种。对称加密是指加密和解密使用相同的密钥,非对称加密则是指加密和解密时使用不同的密钥。
对称加密由于通信双方要使用相同的密钥来进行加解密,所以必然会遇到密钥配送问题,即我需要对方能够解密我发送过去的密文,我就必须把我加密时使用的密钥告诉对方,但是我如何保证将密钥与对方同步的过程中密钥不会泄漏?这就是对称加密的密钥配送问题。
目前常用的解决方案是使用非对称加密和使用 Diffie-Hellman 密钥交换算法。非对称加密的核心是生成一对密钥,一个是公钥,一个是私钥,公钥用于加密,它是公开的,可以派发给任何人使用,私钥用于解密,不参与通信过程,需要被妥善保管,这样就解决了密钥配送问题。Diffie-Hellman 密钥交换算法的核心思想则是通信双方交换一些公开的信息就能够计算出相同的共享密钥,而窃听者获得这些公开信息却无法计算出相同的密钥。Diffie-Hellman 算法的一个好处是没有非对称加密的性能问题,非对称加密虽然解决了密钥配送问题,但非对称加密算法的运算速度远远不及对称加密算法,它们甚至能有几百倍的差距。虽然保障了安全,但严重影响了通信的效率,丧失了实用性。因此实际应用时通常会将对称加密和非对称加密结合使用,即使用伪随机数生成器生成会话密钥后,用公钥进行加密并发送给对方,对方收到密文后使用私钥解密取出会话密钥,后续通信将完全使用该会话密钥。这样既解决了密钥配送问题,又解决了非对称加密带来的性能问题,这种方式通常又被称为混合加密。
完整性
仅仅具备机密性还不足以实现安全的通信,攻击者依旧可以篡改、伪造密文内容,而接收者既无法判断密文是否来自正确的发送者,也无法判断解密后的明文是否是未经篡改的。尽管对加密之后的密文进行针对性篡改的难度有所上升,例如篡改之后明文的数据结构很有可能会遭到破坏,这种情况下接收者能够很轻易地拒绝这个明文。但依然存在篡改之后正好使得解密得到的明文消息中某些本身就具备随机属性的字段的值发生变化的概率,例如电机转速字段的值从 500 变为了 718,无非是几个比特位的变化,如果接收者正常接受这些消息,就可能带来意想不到的隐患。
因此,我们还需要在机密性的基础上进一步保证信息的完整性。常见的做法就是使用单向散列函数计算消息的散列值,然后将消息和散列值一起发送给接收者。单向散列函数能够确保消息中哪怕只有 1 比特的改变,也有很高的概率产生不同的散列值。这样接收者就可以计算消息的散列值,然后对比收到的散列值来判断数据是否被人篡改。
身份认证
但可惜的是,当攻击者同时伪造消息和对应的散列值时,接收者依然无法识破这个伪装。因此我们不仅需要确认消息的完整性,还需要确认消息是否来自合法的发送者,也就是说还需要对身份进行认证。这个时候我们就需要用到消息认证码,消息认证码依然基于单向散列函数,但它的输入除了原本的消息以外,还包括了一个发送者与接收者之间共享的密钥。由于消息认证码本身并不提供消息机密性的保证,所以在实际使用中

本文深入解析SSL/TLS在车联网中的应用,探讨了如何通过正确配置确保机密性、完整性、身份认证和不可否认性,以及如何选择安全的密码套件和配置双向认证。重点介绍了EMQX的配置示例,以实现实时的安全通信保障。
最低0.47元/天 解锁文章
268

被折叠的 条评论
为什么被折叠?



