鉴源实验室 | DoIP协议网络安全攻击

作者 | 付东杰 上海控安可信软件创新研究院工控网络安全组

来源 | 鉴源实验室

社群 | 添加微信号“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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/157009.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数智竞技何以成为“科技+体育”新样本?

文 | 智能相对论 作者 | 青月 “欢迎来到,钢铁突袭。” 三人一组,头戴VR设备,中国香港队和泰国队在数实融合的空间里捉对厮杀,通过互相射击对方能量铠甲获取积分。 虽然双方都展现出了极强的机动性,但显然中国香港队…

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-A卷

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-A卷 2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-A卷A模块基础设施设置/安全加固(200分)A-1:登录安全加固(Windows, Linux)A-2&#…

基于 Junit 的接口自动化测试框架实现!

分层的自动化测试 5~10 年前,我们接触的自动化测试更关注的是 UI 层的自动化测试,Mercury 的 WinRunner/QTP 是那个时代商业性自动化测试产品的典型代表,在那个时代大家单纯想的都是能用一个自动化操作的工具替代人力的点击,商业…

车载终端功能盘点(车载终端工业行业解决方案案例)

​ 随着车联网的蓬勃发展,车载终端在物流运输、公共交通等领域得到广泛应用。车载终端以其强大的功能,为不同行业提供定制化的解决方案。本文将盘点车载终端的核心功能,并给出工业场景的应用案例。 一、车载终端SV900的核心功能 1. 车辆定位 车载终端集成高灵敏度的GPS模块,…

0基础如何学习软件测试?10分钟给你安排明白

先上一张学习路线: 在测试行业已经呆了5年多了,也算得上行业经验资深了吧,基本上也是摸清了这个行业的发展。 所以今天也想对有转行想法的朋友分享一下经验,能够让你对这个行业有个大致的了解和对以后的发展有所规划,…

【LLM之基座】qwen 14b-4int 部署踩坑

由于卡只有24G,qwen14b 原生需要 30GB,按照官方团队的说法,他们用的量化方案是基于AutoGPTQ的,而且根据评测,量化之后的模型效果在几乎没有损失的情况下,显存降低到13GB,妥妥穷狗福音&#xff0…

①Redis String 字符串类型【命令汇总】

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Redis String ①Redis String 字符串类型【命令…

一文教会你SpringSecurity 自定义认证登录

目录 前言1-自定义用户对象2-自定义UserDetailsService3-自定义Authentication4-自定义AuthenticationProvider5-自定义AbstractAuthenticationProcessingFilter6-自定义认证成功和失败的处理类7-修改配置类8-测试 前言 现在登录方式越来越多,传统的账号密码登录已…

Audio PA 功能失败导致Android (A12)重启

1. 问题现象 做完一版os准备导入工厂生产,简称之位Ros(release),工厂有独立的用于验证其功能的os,简称Fos。出厂之前,需要做Fos到Ros的切换。然而,在切到Ros的时候,发现有低概率的设…

前端对用户名密码加密处理,后端解密

一. 正常表单提交如图&#xff0c;可以看见输入的用户名密码等 二. 使用crypto-js.min.js进行前端加密处理 js资源地址链接&#xff1a;https://pan.baidu.com/s/1kfQZ1SzP6DUz50D–g_ziQ 提取码&#xff1a;1234 前端代码 <script type"text/javascript" src&q…

Python基础入门---conda 如何管理依赖包以及复制相同环境的

文章目录 创建虚拟环境:创建虚拟环境并指定Python版本:安装依赖包:从环境导出依赖包清单:从依赖包清单创建环境:复制环境:移植环境:在Conda中,你可以使用conda create命令来创建和管理虚拟环境,而使用conda install命令来安装和管理依赖包。以下是一些基本的命令和步骤…

基于SpringBoot的SSMP整合案例(业务层基础开发与快速开发)

业务层基础开发 接口类public interface BookService {boolean save(Book book);boolean update(Book book);boolean delete(Integer id);Book getById(Integer id);List<Book> getAll();IPage<Book> getByPage(int currentPage,int pageSize);IPage<Book> …

C语言判断素数(ZZULIOJ1057:素数判定)

题目描述 输入一个正整数n&#xff0c;判断n是否是素数&#xff0c;若n是素数&#xff0c;输出”Yes”,否则输出”No”。 注意&#xff1a;1不是素数。 输入&#xff1a;输入一个正整数n(n<1000) 输出&#xff1a;如果n是素数输出"Yes"&#xff0c;否则输出"…

07.智慧商城——商品详情页、加入购物车、拦截器封装token

01. 商品详情 - 静态布局 静态结构 和 样式 <template><div class"prodetail"><van-nav-bar fixed title"商品详情页" left-arrow click-left"$router.go(-1)" /><van-swipe :autoplay"3000" change"onCha…

内网信息收集

目录 本机信息收集 查看系统配置信息 查看系统服务信息 查看系统登录信息 自动信息收集 域内信息收集 判断是否存在域 探测域内存主机&端口 powershell arp扫描 小工具 telnet 查看用户&机器&会话相关信息 查看机器相关信息 查看用户相关信息 免费领…

LoRa模块空中唤醒功能原理和物联网应用

LoRa模块是一种广泛应用于物联网领域的无线通信模块&#xff0c;支持低功耗、远距离和低成本的无线通信。 其空中唤醒功能是一项重要的应用&#xff0c;可以实现设备的自动唤醒&#xff0c;从而在没有人工干预的情况下实现设备的远程监控和控制。 LoRa模块空中唤醒功能的原理…

GFS 分布式文件系统

gfd glusterFS开源的分布式的文件系统 存储服务器 客户端 以及网络&#xff08;NFS/samba&#xff09;网关 传统方式的分布式系统元服务器&#xff0c;元服务器保存存储节点的目录树信息 一旦元服务器故障&#xff0c;所有的存储节点全部消失 现在GFS取消了元服务器机制&am…

波卡三季度报告:已实现白皮书目标,异步支持与应用链技术推进

作者&#xff1a;Nicholas Garcia&#xff0c;Messari 研究分析师 编译&#xff1a;OneBlock 来源&#xff1a;https://messari.io/report/state-of-polkadot-q3-2023 知名分析平台 Messari 发布了 Polkadot 2023 年第三季度报告&#xff0c;分析了波卡的关键数据指标以及网…

双向链表的知识点+例题

1.链表的种类 题中常考查以下两种&#xff1a; 上一讲我们学了无头单向非循环链表&#xff0c;这节&#xff0c;让我们看一下双向链表的操作吧~ 2基本操作 1&#xff0c;定义双向链表 2&#xff0c;创建一个节点 3&#xff0c;初始化双链表 4&#xff0c;尾插一个节点 5打印…

CRM系统怎么选 企业CRM系统选型需要注意什么

如何为企业挑选CRM系统&#xff0c;随着市场经济的发展&#xff0c;越来越多的CRM系统出现&#xff0c;功能也是越来越强大&#xff0c;但是&#xff0c;其实很多人对CRM系统了解的并不多&#xff0c;不知道应该如何选择CRM系统&#xff0c;今天白码小编就来介绍一下CRM系统选型…