**作者 |**付东杰 上海控安可信软件创新研究院工控网络安全组
来源 | 鉴源实验室
社群 | 添加微信号"TICPShanghai"加入"上海控安51fusa安全社区"
01
背 景
随着科技的迅猛发展,汽车行业正经历着前所未有的数字化变革。现代汽车中使用70多个电子控制单元(ECU),而且这个数字仍在上升[1]。在这场数字化革命中,诊断通信过程协议(Diagnostic communication over Internet Protocol,简称DoIP)崭露头角,成为汽车制造商和维修服务提供商之间进行远程诊断和维修的核心通信工具。DoIP协议的重要性在于它使汽车制造商能够通过互联网连接到汽车的电子控制单元(ECU),实时监测和远程维修车辆,为车主提供更加高效和方便的服务。然而,随着DoIP的普及,网络安全威胁也在日益增多。本文将探讨DoIP协议的基本原理,并研究可能的攻击方式,以及如何采取措施保护现代汽车免受潜在威胁。
02
DoIP协议
DoIP协议是一种关键的汽车诊断和通信协议,能够高效传输大量数据,提供快速响应,并支持远程诊断,其在ISO13400[2-5]标准中定义。这一标准不仅定义了DoIP协议本身,还涵盖了开放系统互连基本参考模型(OSI)的第一层到第四层,包括了Ethernet、IP及其他协议的使用细则。DoIP协议并不是一个完整的诊断协议,而是一种扩展传输协议。它负责诊断数据包的传输,而诊断服务仍由专门的诊断协议(如KWP2000协议和UDS协议)规定和说明。DoIP协议的存在为现代汽车系统的高级诊断和通信提供了强有力的支持,确保了兼容性和一致性,使其能够有效地在汽车领域中运行。
图2.1 与DoIP部分相关的OSI模型标题
如下图2.2所示为DoIP系统车辆网络架构示意图,分为内部网络和外部网络。这两个部分之间通过两组线束进行信息交互。一组是用于数据传输的以太网线,另一组是用于激活诊断功能的激活线。一般来说,在工程师或者售后人员控制下的网络节点被称为外部测试设备(External Test Equipment),外部测试设备向车辆发送诊断请求,然后等待被诊断车辆的响应。但是在智能网联汽车丰富的使用场景中,诊断测试设备可能出现布置在车辆内部的情况,对车辆进行诊断,如OTA技术和远程诊断,在这些使用场景中,诊断测试设备会作为车辆节点或将此功能集成在其他节点中。ISO13400标准对DoIP系统中不同作用的节点进行了分类,这些分类包括:
1) **DoIP实体(DoIP Entity):**DoIP实体是实现DoIP协议的网络节点,例如DoIP节点或DoIP网关。
2) **DoIP网关(DoIP Gateway):**DoIP网关是一个网络节点,它实施DoIP协议,从而提供对其自身及其连接的车辆子网的ECU的访问。
3) **DoIP节点(DoIP Node):**DoIP节点是一个网络节点,该节点实施DoIP协议以提供对其自身的访问,但不将DoIP协议数据路由到车辆子网。
4) **DoIP边缘节点(DoIP Edge Node):**DoIP边缘节点是连接ISO 13400-3中定义的以太网激活线的节点。
图2.2 DoIP系统车辆网络架构示意图标题
DoIP(Diagnostic communication over Internet Protocol)协议崭露头角,作为一种以太网诊断软件架构的中间件,它不仅重新定义了车辆的诊断通信方式,还提供了一系列关键功能,以确保车辆系统的稳定性、安全性和可靠性:
1)车辆发现
车辆发现是DoIP协议的关键功能之一。它用于检测目标车辆中的ECU是否在线。诊断仪发送广播式的车辆发现报文,所有网络中的ECU都会响应并提供自身的身份信息。通过分析这些响应,诊断仪可以确定在线的ECU,并对其进行分类。
2)路由激活
DoIP协议中的"路由激活"与传统网关的"路由"不同,它指的是诊断仪与被诊断节点之间的报文传输。在与外部测试仪建立通信连接之后,必须发送路由激活请求。此请求需要DoIP节点验证,以确保合法性。这个过程还包括了DoIP节点对外部诊断仪的安全认证,其中ECU开发人员可以自定义安全认证算法,以阻止非法诊断仪对ECU的访问。
3) 诊断仪在线监测
DoIP诊断要求预先建立与ECU的通信连接,即TCP socket。因为建立socket连接会占用内存资源,所以连接数量是有限的。因此,ECU在设计阶段会定义支持的并行连接的数量。如果并行连接达到上限,将无法建立新的诊断通信连接。为防止无效占用连接通道,设计了诊断仪在线监测机制。DoIP节点会定期向现有的连接通道发送在线监测请求,如果连接通道未收到诊断仪的响应,则将复位该连接,以待新的诊断仪接入。
4) 节点信息
节点信息包含了节点的属性,例如支持的并行诊断仪连接数量、可接受的诊断报文长度以及当前节点的电源状态。这些信息在诊断通信前进行检查,以确保后续的诊断通信不受外部因素的干扰。
5) 诊断通信
作为DoIP协议的核心功能,诊断通信负责诊断报文的传输。每个诊断报文包括:发送方的逻辑地址(SA)、接收方的逻辑地址(DA)以及诊断数据。在DoIP网络中,DA的作用类似于CAN总线网络中的CANID,用于寻址目标ECU以进行诊断,诊断过程如图2.3所示。
图2.3 诊断过程题
DoIP协议的五大功能共同促成了基于车载以太网的高速诊断服务,其允许更高速率的数据传输,从而提高了车辆诊断的效率。如图2.4所示为一个完整的DoIP会话流程图,其中涉及四个关键端口号:UDP_DISCOVERY(13400)、UDP_TEST_EQUPMENT(49152-65535)、TCP_DATA(13400)和动态分配(49152-65535)。诊断会话的建立经过以下步骤:
**1)物理连接:**诊断仪与车辆建立物理连接。
**2)IP地址配置:**配置IP地址,以确保诊断仪和车辆都能够正确地通信。配置的方法有两种,DHCP和Auto-configuration。当DHCP配置未成功时,会触发Auto-configuration。在DHCP配置流程中,通常由外部诊断仪扮演DHCP Server角色。
**3)车辆发现:**车辆发现是通过UDP进行数据传输的关键步骤。DoIP实体主动发送三次Vehicle announcement message,以宣告其存在。若未收到DoIP实体发送的Vehicle announcement message,诊断仪将主动发送Vehicle identification request请求,DoIP实体接收后会发送Vehicle identification response响应。
**4)TCP连接:**车辆识别后,诊断仪会发起TCP同步,并与DoIP实体建立TCP连接。
**5)路由激活:**TCP连接建立后,诊断仪发送Routing activation request,DoIP实体接收并响应Routing activation response,从而建立DoIP逻辑连接。
**6)诊断服务传输:**接下来,可以进行诊断服务的传输。诊断仪发送Diagnostic message request,DoIP实体接收并响应Diagnostic message response。DoIP message ACK表示DoIP层级的确认报文(0x8002、0x8003等)。
图2.4 DoIP会话流程图标题
03
DoIP攻击
DoIP协议为汽车行业带来了巨大的好处,但它也引入了潜在的风险,包括中间人攻击、拒绝服务攻击、数据篡改等威胁,这些威胁可能导致数据泄露、车辆失控和用户隐私侵犯等严重后果。
中间人攻击是一种网络攻击,攻击者通过拦截无线网络通信或入侵车辆网络的中间设备等方式来截获DoIP通信,截获通信后通过伪装成合法的通信方来欺骗车辆或设备,在伪造通信的过程中,攻击者可以查看、修改、插入数据。在攻击过程中,攻击者可以通过访问车辆传输的敏感信息,如车辆位置,车主信息,车辆性能等数据,从而导致用户的数据泄漏;攻击者可以通过伪造、修改诊断数据,导致错误的诊断结果,从而使维修人员采取不必要的维修操作;攻击者通过执行一些恶意的维修操作,如禁用车辆的部分功能或危害车辆的性能,从而威胁驾驶员的人身财产安全。中间人攻击是DoIP协议所面临的关键威胁之一,因此必须采取适当的安全措施,以防止这种类型的攻击并保护车辆数据和通信的安全。
针对中间人攻击可以采用以下防范措施:
**1)数据加密:**使用加密算法保护DoIP通信,以确保数据的机密性和完整性。
**2)身份验证:**双方的身份验证是防范中间人攻击的关键,使用数字证书和身份验证来保证通信方的合法性。
**3)网络监控:**实施网络监控和入侵检测系统,以及时检测可疑活动和中间人攻击的迹象。
拒绝服务攻击旨在使目标系统、网络或服务无法正常运作,从而导致服务不可用。在DoIP协议的应用场景中,攻击者通过DoIP通信流量防洪、恶意DoIP消息注入、阻塞DoIP会话等多种攻击手段来引发拒绝服务攻击,从而严重干扰DoIP通信和车辆维修等操作,从而导致车辆无法进行远程诊断或维修,严重的话会引发系统崩溃,从而对人身财产安全造成威胁。因此必须采取有效的防范措施,以确保系统的可用性和稳定性。
针对拒绝服务攻击可以采用以下防范措施:
**1)流量过滤:**使用流量过滤和防火墙技术,识别和过滤出现在DoIP通信中的恶意流量。
**2)负载均衡:**采用负载均衡技术,分散流量负载,减轻单一点的压力,提高系统的弹性。
**3)引入反向代理服务器:**作为DoIP通信的中间层,处理和缓解攻击。
**4)容灾计划:**建立容灾计划,以便在遭受拒绝服务攻击时迅速恢复服务。
数据篡改攻击则是通过试图在传输过程中修改、插入或删除数据,以操纵信息,导致错误的诊断结果或损害车辆的功能,在DoIP协议的应用场景中,攻击者通过中间人攻击、嗅探网络流量或其他方式实现拦截DoIP通信中的数据包,以获得访问数据的机会。一旦获得数据,攻击者会修改、插入或删除其中的信息, 然后重新传输已篡改的数据,使其看起来像是合法的数据,车辆制造商或维修服务提供商接收到篡改的数据后,可能依赖于这些数据来进行诊断和维修操作。由于数据已被篡改,可能会导致错误的诊断结果和错误的维修操作,影响车辆功能和安全性。
针对数据篡改攻击可以采用以下防范措施:
**1)数据完整性验证:**使用数据完整性检查技术,确保数据在传输过程中没有被篡改。
**2)加密数据传输:**采用强大的数据加密措施,以保护数据的机密性和完整性,使攻击者无法修改数据。
**3)数字签名:**使用数字签名验证数据的真实性,确保数据未经篡改。
**4)访问控制:**实施访问控制措施,限制对车辆数据的访问,并确保只有授权用户才能对数据进行修改。
参考文献:
[1] Staron M. Automotive software architectures[M]. Cham, Switzerland: Springer, 2021.
[2] ISO. 2011. ISO 13400--1:2011, Road Vehicles -- Diagnostic Communication over Internet Protocol (DoIP): Part 1: General Information and Use Case Definition. https://www.iso.org/obp/ui/#iso:std:iso:13400:-1:en
[3] ISO. 2016. ISO 13400--3:2016, Road Vehicles -- Diagnostic Communication over Internet Protocol (DoIP): Part 3: Wired Vehicle Interface Based On IEEE 802.3. https://www.iso.org/obp/ui/#iso:std:iso:13400:-3:ed-2:v1:en
[4] ISO. 2016. ISO 13400--4:2016, Road Vehicles -- Diagnostic Communication over Internet Protocol (DoIP): Part 4: Ethernet-Based High-Speed Data Link Connector. https://www.iso.org/obp/ui/#iso:std:iso:13400:-4:ed-1:v1:en
[5] ISO. 2019. ISO 13400--2:2019, Road Vehicles -- Diagnostic Communication over Internet Protocol (DoIP): Part 2: Transport Protocol and Network Layer Services. https://www.iso.org/obp/ui/#iso:std:iso:13400:-2:ed-2:v1:en