跳转到内容

DoIP v3(TLS 安全 DoIP)

DoIP v3 定义于新的 ISO13400-2 2019 标准,主要区别是增加了 TLS 支持。

DoIP v3

  • UDP 发现保持不变:UDP 端口 13400 仍用于车辆识别和通告。
  • 诊断 TCP 变为 TLS(启用时):默认安全端口 3496
  • 当您设置 DOIP 版本 = 3 时,将使用 DoIP v3 协议头

用法

  1. 选择以太网测试仪
    • 在您的测试仪配置中,将 DOIP 版本 设置为 DOIP V3
    • 如果您想模拟一个实体/网关,还需设置 实体仿真 证书。
  2. 在地址上启用 TLS
    • 打开您将使用的以太网地址 (EthAddr)。
    • 启用 TLS 设置 - 测试仪 (DoIP v3)启用 TLS
    • 保持 TLS 端口 = 3496,除非您的 ECU 使用不同的端口。
  3. 提供证书(推荐)
    • 设置 CA 证书 以信任 ECU/服务器证书。
    • 如果服务器要求客户端认证,还需设置 客户端证书私钥
    • 测试证书生成步骤:DoIP v3 TLS 证书生成指南
  4. 启动测试并照常发送 UDS 请求。

端口与流量模型

  • UDP 13400:车辆识别请求/响应和通告。
  • TCP 13400:DoIP v2(非 TLS)诊断通道。
  • TLS 3496:DoIP v3 安全诊断通道(本项目默认)。

NOTE

启用 TLS 仅改变 TCP 诊断连接。 UDP 发现仍使用端口 13400

配置参考

DOIP 版本

DOIP 设置 下:

  • DOIP V2:TCP 诊断连接到端口 13400(无 TLS)。
  • DOIP V3:使用 DoIP v3 头;您可以选择性地为 TCP 连接启用 TLS(推荐)。

实体仿真 TLS(DoIP v3 服务器)

如果您的测试仪配置为 模拟一个实体/网关(实体仿真),您可以为内置的 DoIP 服务器启用 TLS:

  • 启用服务器 TLS
    • 启动一个 TLS 服务器而非普通的 TCP 服务器。
  • 服务器 TLS 端口
    • 默认为 3496
  • CA 证书
    • 用于验证测试仪证书的信任锚(当使用双向 TLS 时)。
  • 服务器证书 / 服务器私钥
    • TLS 握手期间呈现的服务器身份。
  • 要求客户端证书
    • 旨在强制执行双向 TLS(测试仪必须提供证书)。

DoIP v3 Server TLS

测试仪地址 TLS 设置(DoIP v3)

在以太网地址 (EthAddr) 下,当 DOIP 版本 = 3 时:

  • 启用 TLS
    • 启用后,测试仪将创建 TLS 连接而非普通 TCP 连接。
    • 默认目标端口为 3496
  • TLS 端口
    • 覆盖默认的安全端口 (3496)。
  • CA 证书
    • 用于验证 ECU/服务器证书的 CA 文件。
  • 客户端证书 / 私钥
    • 当服务器请求客户端认证(双向 TLS)时使用。
  • 跳过验证
    • 仅用于测试。
    • 启用后,ECUBus-Pro 将跳过证书验证和主机名/IP 检查。
  • 启用密钥日志 / 密钥日志路径
    • 将 TLS 会话密钥写入文件(默认:logs/tls-keylog.txt),以便在 Wireshark 中解密 TLS。

TIP

证书文件路径可以是 项目相对路径。 ECUBus-Pro 会根据当前项目目录解析相对路径。

DoIP v3 Usage

Wireshark:使用密钥日志解密 DoIP v3 TLS

  1. 启用 启用密钥日志 并设置 密钥日志路径(或保持默认的 logs/tls-keylog.txt)。
  2. 重新运行会话以生成密钥日志文件。
  3. 在 Wireshark 中,将 (预)主密钥日志文件名 设置为该密钥日志文件。

更多详情请参阅 Wireshark 官方文档:Wireshark-TLS

WARNING

TLS 密钥日志允许解密捕获的流量。 请将密钥日志文件视为敏感信息,切勿公开分享。

故障排除

TLS 连接立即失败

  • 端口错误:确认 ECU 监听 3496 端口(或您配置的 TLS 端口)。
  • CA 不匹配:确保测试仪的 CA 证书 与签署服务器证书的 CA 匹配。
  • 缺少客户端证书:如果服务器要求客户端认证,请在测试仪端配置 客户端证书私钥

“跳过验证”有效但正常验证失败

这几乎总是意味着您的证书链不受信任(CA 错误)或服务器证书对您的环境无效。 请修复证书,而不是保持启用“跳过验证”。

车辆发现有效但诊断无效

发现使用 UDP 13400;诊断使用 TCP/TLS。 检查防火墙规则并确认:

  • UDP 13400 端口已开放(用于发现)
  • TLS 3496(或配置的 TLS 端口)已开放(用于诊断)