当前位置: 首页 > article >正文

鉴源实验室·加密技术在汽车系统中的应用

随着汽车技术的快速发展,现代汽车已经不再是简单的交通工具,而是融合了多种智能功能的移动终端。无论是自动驾驶、车联网(V2X),还是车内娱乐系统,数据传输和存储已经成为汽车生态系统中的关键环节。然而,随之而来的安全挑战也逐渐显现,特别是汽车通信和数据存储的安全性问题。因此,加密技术在保护汽车通信和数据存储中的作用日益重要。

01

汽车通信与数据存储的现状

在讨论加密技术之前,有必要了解汽车通信和数据存储的现状。

1. 汽车通信现状

现代汽车内部和外部都有大量的通信需求。车内网络主要依赖于控制器局域网(CAN)、以太网(Ethernet)、FlexRay 等通信协议,负责传输各种传感器数据、控制命令和状态信息。车外通信则涉及 V2X 技术,包括车对车(V2V)和车对基础设施(V2I)的通信,这些都依赖于无线通信技术。

2. 数据存储现状

汽车中存储的数据类型多种多样,包括 GPS 位置数据、用户个人信息、行车记录等。这些数据不仅用于提高驾驶体验,还被用于故障诊断、远程更新和自动驾驶算法的训练。

02

加密技术的重要性

加密技术作为保护信息安全的核心手段,在汽车通信和数据存储中扮演着至关重要的角色。常用的加密技术有对称加密、非对称加密、摘要、数字签名、数字证书。

1. 防止数据窃取和篡改

随着汽车联网功能的增多,黑客攻击的风险也在增加。如果未加密的数据被窃取,可能会导致用户隐私泄露,甚至危及车辆安全。加密技术可以有效防止数据在传输过程中的窃取和篡改,确保通信的机密性和完整性。

2. 确保系统的认证和授权

在汽车通信中,确保各节点的合法性至关重要。通过加密技术,可以实现节点的身份认证和消息的加密传输,防止未经授权的设备或用户接入车载网络。

3. 增强数据存储的安全性

现代汽车中存储的大量数据,尤其是涉及用户隐私和敏感信息的部分,必须得到妥善保护。加密存储技术可以防止数据在车辆被盗、硬件被拆解后泄露。

03

加密技术在汽车中的应用场景

1. 对称加密

对称加密是指加密和解密使用同一密钥的加密方式。它的主要特点是加密速度快,适用于需要处理大量数据的场景。车载通信网络中的数据加密在汽车内部,数据通信需要在各个控制单元(ECU)之间快速传输,例如在控制器局域网(CAN)或车载以太网中。对称加密算法,如高级加密标准(AES),可以有效地保护这些传输的数据,防止被篡改。

通过在 CAN 通信中引入加密技术,如SecOC(Secure Onboard Communication),能够有效防止总线数据被篡改和重放[1]。实际应用中,SecOC模块还能与HSM (Hardware Security Module) 模块相结合,借助硬件来更快速地进行数据加密和消息认证。


SecOC利用消息认证码(Message Authentication Code,MAC)进行核实。在消息发送过程中,系统会利用预定的密钥生成MAC,并将其附加在原消息之后。MAC的生成一般使用AES对称加密算法得到CMAC[2]。具体报文格式如下图所示:


在车辆中,存储的数据通常包括驾驶记录、个人设定和娱乐内容等。这些数据在未经加密保护的情况下,可能在车辆被盗后泄露。采用先进加密标准(AES)对数据进行加密存储,可以极大地提高数据的安全性。

2. 非对称加密

非对称加密使用一对公钥和私钥,其中公私钥都可以加密。与对称加密相比,非对称加密的计算复杂度较高,但在身份验证和密钥交换方面具有独特优势,可以确保参与通信各方的身份真实性。对于公钥加密,私钥解密的使用场景一般为加密场景,即只有我才能解密,别人只能加密。对于私钥“加密”的使用场景一般为签名场景,即只能我才能签名,别人只能验签[3]。接下来通过两个例子来讲述非对称加密在汽车系统的应用。

当车辆与服务器建立连接时,服务器会发送其SSL  (Secure Sockets Layer)证书。车辆可以使用这个证书来验证服务器的身份,并使用服务器的公钥来加密通信数据,确保数据在传输过程中的保密性和完整性。主要流程为:当一个车辆试图与一个建立连接时,服务器首先会发送其SSL证书给车辆;收到SSL证书后,车辆会首先验证这个证书;验证成功后,车辆会生成一个会话密钥,然后用服务器的公钥将这个会话密钥加密,再将加密后的会话密钥发送给服务器;服务器收到加密后的会话密钥后,用自己的私钥进行解密,获取到会话密钥。


公钥基础设施(Public Key Infrastructure PKI)可以用于实现基于SSL的安全通信。Loren Kohnfelder 发表的论文“关于一项实用的公钥加密系统(Towards a Practical Public-Key Cryptosystem)” (1978)首次描述了数字证书以及公共密钥体系结构(PKI) 的基础[4]。PKI主要功能是绑定证书持有者的身份和相关的密钥对(通过为公钥及相关的用户身份信息签发数字证书),为用户提供方便的证书申请、证书作废、证书获取、证书状态查询的途径,并利用数字证书及相关的各种服务(证书发布,黑名单发布,时间戳服务等)实现通信中各实体的身份认证、完整性、抗抵赖性和保密性。PKI依赖于公钥加密,可以通过密钥对实现数据的加密和解密。对于如何确定公钥的真实所有者依赖于数字证书,数字证书是一个电子文档,它将公钥链接到其所有者(可以是个人、设备或组织)。每个证书都包含公钥、所有者的标识信息、证书的有效期以及证书颁发机构(CA)的签名。

OTA(Over-the-Air)升级是指通过无线网络将新的软件版本或固件更新直接发送到车辆上。在OTA升级中,PKI可以用于验证升级包的完整性和来源。具体来说,升级包会被加密,并附带一个由私钥生成的数字签名。数字签名包含了升级包的哈希值,这是一种可以代表升级包内容的独特数字摘要。一般情况下,不会直接对数据本身直接计算数字签名,数字签名属于非对称加密,数据量大的时候计算数字签名将会比较耗时,所以一般做法是先将原数据进行 Hash 运算,得到的 Hash 值就叫做摘要。车辆可以使用对应的公钥来验证这个数字签名,从而确认升级包是否完整,以及是否确实来自声称的发送者。


 OTA包生成,一般步骤为:生成OTA包 -> 打包OTA包 -> 计算软件包哈希值HASH-A -> 签名OTA包 -> 打包签名文件到OTA包中。车端收到OTA包之后,一般会执行以下步骤:验证签名HASH-B -> 验证哈希值 HASH-A -> 安装OTA包[5]。

04

加密技术的挑战与未来发展

虽然加密技术在汽车领域已经得到了广泛应用,但仍然面临一些挑战。

1. 计算资源限制

由于汽车的计算资源有限,特别是在实时性要求较高的系统中,如何在有限的硬件条件下实现高效的加密算法是一个重要挑战。

2. 密钥管理问题

密钥管理是加密技术的核心难题之一。在汽车领域,密钥的分发、存储和更新需要高效、安全的机制。如果密钥管理不当,可能会导致整个加密系统的安全性下降。

05

结论

本文主要阐述了加密技术在汽车系统中的主要应用。在未来的汽车行业中,加密技术将继续扮演至关重要的角色。随着智能化、网联化程度的提升,汽车通信和数据存储的安全需求将进一步增加。通过不断改进加密算法、加强密钥管理和遵循法律法规,汽车制造商可以为用户提供更安全、更可靠的驾驶体验。

参考文档:

1. AUTOSAR. (2022). Specification of Secure Onboard Communication. AUTOSAR Standard Working Specification.

2. 鉴源实验室 AUTOSAR SecOC:保障汽车通信的安全

3. https://blog.csdn.net/TheSkyLee/article/details/108699243

4. Kohnfelder L. Towards a practical public-key cryptosystem[D]. MIT Bachelor Thesis,1978.

5. 基于OTA流程的分节点安全防控思考


http://www.kler.cn/a/380991.html

相关文章:

  • 什么是3DEXPERIENCE SOLIDWORKS,它有哪些角色和功能?
  • 黑马Java面试教程_P8_并发编程
  • myexcel的使用
  • Pytorch | 利用PI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
  • iterm2 focus时灰色蒙层出现的解决办法
  • 【定理证明工具调研】Coq, Isabelle and Lean.
  • 力扣438——找到字符串中的所有字母异位词
  • stack和queue --->容器适配器
  • Oracle Sql查询和性能优化(持续更新)
  • 掌握 Jest 中的模块模拟:提升单元测试的灵活性与可靠性
  • 【企业微信新版sdk】
  • java.io.FileNotFoundException: Could not locate Hadoop executable: (详细解决方案)
  • JavaCV学习第一课
  • 栈 算法专题
  • SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“
  • 深入探讨 ESPnet AIShell 项目:ASR 脚本 asr.sh 的实现与解析(一)之脚本前564行,定义各种配置项、函数和条件逻辑
  • Oracle 11g DataGuard GAP处理
  • uniapp实现【时间戳转换为日期格式(年-月-日 时-分-秒)】
  • 10款音视频转文字工具体验记!!!
  • docker构建次数过多导致硬盘爆满,清除
  • mysql上课总结(2)(DCL的所有操作总结、命令行快速启动/关闭mysql服务)
  • 【让中国再次伟大】腾讯开源大语言模型Hunyuan-large,支持高达256K文本序列
  • 基于qt vs下的视频播放
  • [Python学习日记-61] 什么是类与对象?类与对象是什么关系呢?我们该如何定义和使用类与对象呢?
  • 使用 Python 构建代理池并测试其有效性
  • JavaEE初阶----网络原理之TCP篇(一)