0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

车内外通信中采用TLS/DTLS加密通信

Vector维克多 来源:Vector维克多 作者:Vector维克多 2022-11-08 15:37 次阅读

应用层数据可以通过传输控制协议(TCP)在基于IP的网络上进行可靠交换,但是TCP无法保证数据传输的可靠性,应用数据的机密性及完整性。因此,实际应用中可以在TCP之上使用TLS(Transport Layer Security)建立服务器和客户端之间的安全通信(图1),从而保证数据的安全传输。

车内外通信中的下列应用层协议在安全通信时会采用TLS/DTLS加密通信:

>

DoIP (Diagnostic communication over Internet Protocol)

>

SOME/IP (Scalable service-Oriented MiddlewarE over IP)

>

MQTT (Message Queuing Telemetry Transport)

>

HTTPS (Hypertext Transfer Protocol Secure)

>

SCC (Smart Charging Communication)

73e495e6-5e79-11ed-a3b6-dac502259ad0.png

图1:OSI参考模型

随着TLS在载数据通信过程中的广泛应用,给OEM和零部件供应商的开发测试工程师在开发测试分析过程中需要面临TLS服务器和客户端之间加密通信的考验。毫无疑问,作为车载产品开发验证平台的核心工具CANoe需要支撑从单板调试到实车验证中涉及TLS安全通信应用的仿真与回放分析工作:

>

模拟TLS服务器通信;

>

模拟客户端参与TLS通信;

>

在线解密正在监听的真实服务器和客户端之间的TLS通信(图2.1);

>

离线回放过程中解密记录文件中存储的TLS数据(图2.2)。

73ff181c-5e79-11ed-a3b6-dac502259ad0.png

图2.1:CANoe解密TLS通信场景(离线)

742b1c0a-5e79-11ed-a3b6-dac502259ad0.png

图2.2:CANoe解密TLS通信场景(在线)

CANoe在线监听或离线回放TLS通信的过程中,接收的是加密的TLS应用数据,需要经过解密才能得到原始消息,图3为TLS一组相同数据在Trace窗口中解密前后的对比。解密前Trace窗口只有密文信息,解密后Trace窗口才能以系统变量的形式显示原始消息。如果Observer支持原始消息所属的应用层协议(如DoIP协议),Trace窗口中还会包含原始消息基于DoIP层面的解析。要完成解密的过程,需要在CANoe中进行一系列配置,本文围绕TLS Observer中最常用的解密方式“基于主密码解密”就具体配置做说明。首先概述CANoe基于主密码解密TLS通信的机制,其次介绍解密工程的环境设置,最后分别对不同的主密码配置方式进行说明。

744ebaa2-5e79-11ed-a3b6-dac502259ad0.png

图3:TLS数据解密前后对比

01/

CANoe基于主密码解密TLS通信的机制概述

CANoe.Ethernet工程会自动生成名为“_Security::TLSMasterSecret”的系统变量,用于存储TLS会话的客户端随机数(Client Random,32Bytes)和主密码(Master Secret,48Bytes)。待解密的TLS数据可能包含多个TLS会话,每个TLS会话都有唯一的主密码。当解密时,CANoe首先根据客户端随机数识别正确的TLS会话,然后基于主密码生成的密钥素材解密TLS应用数据,因此正确配置主密码和客户端随机数是解密TLS通信的关键。

02/

解密工程环境设置

CANoe支持多种配置主密码的方式,如通过CAPL/Security Manager/UDP报文配置主密码或从CANoe参与通信的TLS记录文件中读取主密码。无论采用何种方式,都需要首先完成工程环境设置。

1.

激活TLS应用数据的观测变量(图4)

点击CANoe->Options->General->File Locations->Location of application data的Open按钮,打开文件夹中的can.ini文件,配置can.ini文件中的参数EnableTlsAppDataSv=1。

74775eee-5e79-11ed-a3b6-dac502259ad0.png

图4:激活TLS应用数据的观测变量

>

配置TLS/DTLS通信的端口号(图5)

检查CANoe Option->Bus System->Protocol Identification是否对用于TLS/DTLS通信的Port进行正确定义,避免Trace中可能出现无法解析TLS协议的情况,影响解密TLS通信的功能。

74a7807e-5e79-11ed-a3b6-dac502259ad0.png

图5:TLS/DTLS通信端口设置

03/

基于CAPL配置主密码解密TLS通信

基于CAPL配置主密码具有较高的灵活性,支持离线回放或在线监听TLS数据时解密通信。当离线回放TLS通信时,一般主密码是用户提供的静态数值,该值可以直接通过CAPL编程赋值给系统变量“_Security::TLSMasterSecret”,赋值代码如图6。当在线监听TLS数据时,主密码是由真实服务器或客户端提供的动态数值,首先通过诊断、CAN报文或者其他接口传给CANoe,然后基于CAPL编程赋值给系统变量“_Security::TLSMasterSecret”。

74e67af4-5e79-11ed-a3b6-dac502259ad0.png

图6:CAPL代码示例

04/

基于Security Manager配置主密码解密TLS通信

为了实现在离线回放过程中解密TLS通信,除了可通过CAPL编程配置主密码之外,还可以在CANoe->Tools->Security Manager中手动输入主密码。具体流程如下:

1.新建Security Profile(图7)

选中File based PKI,点击Add添加Security Profile,可按照需求自定义Profile名称,如TLS Observer Profile。

750fe682-5e79-11ed-a3b6-dac502259ad0.png

图7:新建Security Profile

2.设置参数(图8)

在新建的TLS Observer Profile主配置界面上选中TLS Observer,点击Add打开参数设置对话框,选择参数类型为Master Secret并填写Random Bytes和Master Secret。

756e4d62-5e79-11ed-a3b6-dac502259ad0.png

图8:Master Secret|参数设置

3.Security Configuration配置

打开CANoe->Simulation->Security Configuration,在TLS Observer选项卡处关联新建的Profile,如图9。

75916dd8-5e79-11ed-a3b6-dac502259ad0.png

图9:Security Configuration配置

05/

通过UDP报文传输主密码解密TLS通信

为了实现在线监听TLS数据过程中解密通信,除了基于CAPL配置主密码外,还可由通信参与者通过UDP报文传入主密码。如果真实服务器或客户端在完成TLS握手之后,支持从加密堆栈中读取主密码,并通过UDP报文发送出来,就可以配置CANoe接收该UDP报文,获取主密码数值,解密正在监听的TLS通信。与手动输入主密码配置过程类似,通过UDP报文传输主密码也需要基于Security Manager配置,区别在于参数设置部分,参数类型需选择Master Secret Source并配置UDP通信双方的IP和Port(图10)。

75ae286a-5e79-11ed-a3b6-dac502259ad0.png

图10:Master Secret Source|参数配置

注:此种方式要求Master Secret以NSS Key Log的格式封装到UDP报文中。NSS Key Log的格式以及示例见表1。

76046b6c-5e79-11ed-a3b6-dac502259ad0.png

表1:NSSKeyLogMasterSecret格式示例

06/

离线回放CANoe参与通信的TLS记录文件

CANoe参与TLS通信时,经过TLS握手阶段,可以自动计算出主密码并将该值存储到系统变量“_Security::TLSMasterSecret”中。TLS数据可通过CANoe Logging功能进行记录,需将记录文件格式设置为BLF/ASC/MF4。这些格式的文件不仅可以保存通信数据,还可以保存系统变量(包括_Security::TLSMasterSecret)。后期离线回放时,CANoe可以从记录文件中读取主密码来解密TLS应用数据。

1.在CANoe 15/16中回放,只需将工程切换为Offline模式,添加记录文件,点击回放按钮,CANoe即可在回放过程中解密TLS应用数据;

2.在CANoe 14中回放,还需在Security Configuration配置中关联Security Profile。

上述就CANoe基于主密码解密TLS通信的过程及多种主密码的配置方式:如CAPL、Security Manager、UDP报文以及记录文件等。不同主密码配置方式的总结描述以及对CANoe版本要求见图11。CANoe为各种网络安全通信提供基础平台技术,使得开发和测试各阶段更好验证系统通信和功能,点击原文了解更多CANoe对Security的支持。

76234d98-5e79-11ed-a3b6-dac502259ad0.png

图11:主密码配置方式及版本要求

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    9024

    浏览量

    85187
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1351

    浏览量

    78989

原文标题:网络安全开发测试 | CANoe解密车载TLS通信

文章出处:【微信号:VectorChina,微信公众号:Vector维克多】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    电子耦合在无线通信中的应用

    电子耦合在无线通信中发挥着至关重要的作用。电子耦合是利用转移电容、磁耦合或电感耦合等方式将电路信号传递到另一个电路的技术,这种技术在无线通信系统中被广泛应用,以实现信号的传输、处理和接收。以下
    的头像 发表于 11-24 09:22 195次阅读

    socket 加密通信的实现方式

    在网络通信中,数据的安全性至关重要。Socket 编程作为网络通信的基础,实现加密通信是保护数据不被窃取或篡改的重要手段。 1. SSL/TLS
    的头像 发表于 11-12 14:18 204次阅读

    射频滤波器在无线通信中的应用

    射频滤波器在无线通信中的应用极为广泛且至关重要,其作为信号处理的关键组件,在保障通信质量、提高系统抗干扰能力、优化频谱资源利用等方面发挥着不可替代的作用。以下是对射频滤波器在无线通信中应用的详细探讨,内容将围绕其基本原理、主要类
    的头像 发表于 09-12 10:47 751次阅读

    模拟无线通信中采用的信号调制方法

    无线通信是现代通信技术的重要组成部分,它通过无线电波将信息从发送端传输到接收端。在无线通信中,信号调制是将信息信号转换为适合在无线信道中传输的形式的过程。信号调制方法的选择对于通信系统
    的头像 发表于 08-25 15:56 481次阅读

    光放大器在光通信中的应用

    光放大器在光通信中的应用极为广泛且重要,它作为光纤通信系统中的关键组件,对光信号进行放大,从而延长了光信号的传输距离,提高了传输质量,为现代通信网络的构建提供了强有力的支持。以下将详细探讨光放大器在光
    的头像 发表于 08-09 11:30 644次阅读

    低轨星地移动通信中的相控阵技术

    低轨星地移动通信中的相控阵技术
    发表于 07-23 12:33 0次下载

    在各种异步通信中什么速度最快

    在各种异步通信中,速度最快的是光纤通信。光纤通信是一种利用光纤传输光信号的通信方式,具有传输速度快、带宽大、抗干扰性强等优点。 一、光纤通信
    的头像 发表于 07-23 09:24 590次阅读

    差分信号在串口通信中的应用

    差分信号和串口通信之间存在着密切的关系,它们都是现代通信系统中不可或缺的重要组成部分。以下将从差分信号的定义、特性及其在串口通信中的应用等方面进行详细阐述。
    的头像 发表于 07-22 18:06 1135次阅读

    什么是TLS加密TLS加密的功能特点

    TLS(Transport Layer Security)是一种用于在网络通信中提供安全性的标准协议,旨在保障客户端(如web浏览器、移动应用程序等)与服务器(如web服务器、API服务器等)之间
    的头像 发表于 04-03 13:49 598次阅读

    无线通信中如何排查电磁波干扰?

    无线通信中如何排查电磁波干扰?
    发表于 03-07 07:18

    串行通信中的异步、同步与并行通信机制解析

    串行通信,这是一种数据传输方式,其中数据是按一位一位的顺序传送的。在串行通信中,只需要少数几条线就可以在系统间交换信息,因此它特别适用于计算机与计算机、计算机与外设之间的远距离通信
    的头像 发表于 03-05 16:44 2345次阅读
    串行<b class='flag-5'>通信中</b>的异步、同步与并行<b class='flag-5'>通信</b>机制解析

    TLS协议基本原理与Wireshark分析

    传输层安全协议(TLS)是一种加密通信协议,用于确保在网络上的数据传输过程中的安全性和隐私保护。TLS的前身是安全套接层协议(SSL),后来在标准化过程中发展成为
    发表于 02-28 10:26 2020次阅读
    <b class='flag-5'>TLS</b>协议基本原理与Wireshark分析

    请问如何在CAN通信中接收RTR请求?

    如何在 CAN 通信中接收 RTR 请求?
    发表于 01-18 07:40

    5g通信中天线设计及电波传播特性

    5G通信中的天线设计和电波传播特性是一个广泛而复杂的话题。在本文中,我们将详细讨论5G通信中的天线设计和电波传播特性,探讨其在提高通信性能和扩展网络覆盖范围方面的作用。 一、5G通信中
    的头像 发表于 01-09 16:37 1067次阅读

    雅特力AT32 MCU基于mbed TLS的HTTPS服务器

    HTTPS概述HTTPS的安全性是基于TransportLayerSecurity(TLS),TLS是一种网络加密通信的方式,作为SecureSocketsLayer(SSL)的接续协
    的头像 发表于 01-06 08:14 538次阅读
    雅特力AT32 MCU基于mbed <b class='flag-5'>TLS</b>的HTTPS服务器