安全视角下的CAN协议分析

安全视角下的CAN协议分析目录相关背景CAN节点介绍CAN帧结构介绍CAN总线攻击面分析CAN总线安全缺陷基于ID的仲裁机制安全缺陷针对CAN总线的攻击方式[2]参考文章相关背景控制器局域网(CANbus)由罗伯特·博世公司于1983年开发。该协议于1986年美国密歇根州底特律市举行的国际汽车工程师学会(SAE)会议上正式发表。第一个CAN控制芯片,由英特尔和飞利浦生产,并且于1987年发布。世界上第一台装载了基于CAN的多重线系统的汽车是1991年推出的梅赛德斯-奔驰W140。..

大家好,又见面了,我是你们的朋友全栈君。

目录

相关背景

CAN节点介绍

 CAN帧结构介绍

CAN总线攻击面分析

CAN总线安全缺陷

基于ID的仲裁机制

安全缺陷

针对CAN总线的攻击方式[2]

 参考文章


相关背景

控制器局域网(CAN bus)由罗伯特·博世公司于1983年开发。该协议于1986年美国密歇根州底特律市举行的国际汽车工程师学会(SAE)会议上正式发表。第一个CAN控制芯片,由英特尔和飞利浦生产,并且于1987年发布。 世界上第一台装载了基于CAN的多重线系统的汽车是1991年推出的梅赛德斯-奔驰 W140。[1]

CAN节点介绍

连接到CAN总线上的单元被称为CAN节点,所有连接到同一个CAN总线上的节点同CAN总线一起组成了CAN网络。CAN节点一般由以下几个模块组成:

1)中央处理器、微处理器或主处理器

处理器对收发到的消息进行解析和处理,类似于CAN节点的大脑,经由该大脑的分析之后将指令下发给传感器、驱动器和控制设备。

2)CAN控制器,用于收发消息的控制模块

接收:CAN控制器将从总线上串行接收的字节流,直到整个消息接收完毕,然后将消息发送给处理器进行分析处理。

发送:主处理器发送信息到CAN控制器,之后当总线空闲时将信息以比特流的方式串行发送至总线。

3)收发器,由ISO11898-2/3标准定义

接收:把数据流从CAN总线层转换成CAN控制器可以使用的标准。 

传输:把来自CAN控制器的数据流转换至CAN总线层。

CAN总线上的每个节点都能够发送和接收信息,但不能够同时进行。 一个消息或帧主要包括标识符(ID)、CRC、ACK等字段。ID表示信息的优先级,最多八个数据字节。消息采用不归零(NRZ)格式串行传送到CAN总线,并且可被所有节点接收。

安全视角下的CAN协议分析

CAN节点示意图(图片来自维基百科 )

被CAN网络连接的设备通常是传感器,驱动器和其他控制设备。 这些设备通过一个中央处理器、一个CAN控制器,和一个CAN接收器连接至总线。

 CAN帧结构介绍

CAN节点在CAN总线上以帧结构发送CAN消息。CAN帧结构,包括帧起始标志SOF、帧结束标志EOF、仲裁字段、控制字段、数据字段、CRC校验字段ACK字段七个组成部分。

安全视角下的CAN协议分析

 CAN帧格式(图片来自维基百科)

 CAN总线有四种不同的帧类型,分别是数据帧、远程帧、错误帧和过载帧。数据帧用来传送数据,远程帧通过特殊的Identifier请求指定消息,当节点检测到错误时会发送一个错误帧,过载帧用来在数据帧和远程帧之间设置延迟。CAN帧格式各个字段解释如下:

安全视角下的CAN协议分析

CAN帧各字段解释(表格来自维基百科)

CAN总线攻击面分析

CAN总线攻击面包括远程攻击面和物理接触攻击面两个大的方面,其中远程攻击面有远程信息处理单元(TBOX,或5G模块)、车载信息娱乐系统(HU)、蓝牙模块、WIFI、遥控钥匙和远程诊断接口等,物理接触攻击面主要为OBD-II诊断端口和各类传感器。

安全视角下的CAN协议分析

 CAN总线攻击面

(该图片及“针对CAN的攻击”一节的图片来源:Security Issues with In-Vehicle Networks, and Enhanced Countermeasures Based on Blockchain

CAN总线安全缺陷

基于ID的仲裁机制

CAN帧没有标识发送者和接收者,CAN协议使用一种叫“带有冲突检测的载波侦听多路访问”机制进行仲裁。当多个节点同时发送消息时,ID最小的节点拥有最高的优先级。当任意一个节点发送控制位时,其他节点均会读取控制位,无论控制位的值是多少。当一个节点检测到更高优先级的数据帧时,它将停止发送。

我们以两个不同ID的节点简单介绍以下仲裁机制生效的方式。假设在同一个CAN总线上存在节点15和节点16,两个节点在CAN总线空闲时同时抢占总线,它们即将发送的帧数据如下表所示:

安全视角下的CAN协议分析

 (表格数据来自维基百科)

Node 15和Node 16在同一时间想要发送数据,两个节点分别发送最高的位,一次发送一位,使用“线与”机制判断,0为显性,1为隐性,前面6个比特两个节点都发送0,接收到0;第七比特位,Node 15发送0接收0,Node 16发送1接收0,Node 15胜出。

安全视角下的CAN协议分析

安全缺陷

针对这种仲裁机制,大家很容易就能想到攻击者可以伪造高优先级的报文,频繁地向CAN总线上发送,导致CAN总线上合法节点无法正常发送报文,即拒绝服务攻击。究其原因,CAN协议没有标识发送者和接收者的机制,也没有额外的认证手段;此外,在CAN总线上传输的数据的机密性也无法得到保证。

针对CAN总线的攻击方式[2]

由于CAN总线没有提供认证机制和保密性机制,攻击者可以对CAN总线发起DOS攻击、Fuzzy攻击、嗅探与重放攻击以及节点伪造等等。

安全视角下的CAN协议分析

针对CAN总线的攻击方式

针对没有认证机制的缺陷,攻击者可以以高频率的方式频繁发送最高优先级的消息:

安全视角下的CAN协议分析

DOS攻击示意图

同样地,攻击者可以使用Fuzzy的方式随机注入消息,测试CAN总线和节点是否存在逻辑漏洞和内存相关的安全缺陷: 

安全视角下的CAN协议分析

Fuzz攻击示意图

针对缺少保密性和认证的缺陷,攻击者可以先嗅探CAN总线,然后对消息进行重放,通过这种方式可以实现多种针对车辆控制系统的操作: 

安全视角下的CAN协议分析

嗅探与重放攻击示意图

节点伪造攻击也同样适用于CAN总线,因为总线没有认证节点身份的机制,攻击者可以通过物理接触的方式添加任意节点:

安全视角下的CAN协议分析

 节点伪造攻击示意图

 参考文章

[1]. 来自维基百科的介绍https://zh.wikipedia.org/wiki/%E6%8E%A7%E5%88%B6%E5%99%A8%E5%8D%80%E5%9F%9F%E7%B6%B2%E8%B7%AF安全视角下的CAN协议分析https://zh.wikipedia.org/wiki/%E6%8E%A7%E5%88%B6%E5%99%A8%E5%8D%80%E5%9F%9F%E7%B6%B2%E8%B7%AF

 [2].Security Issues with In-Vehicle Networks, and Enhanced Countermeasures Based on Blockchain

N KhatriR ShresthaSY Nam – Electronics, 2021 – mdpi.com 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154156.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 索引初探(二)

    索引初探(二)

    2021年11月25日
    48
  • idea 2021.5.2激活码(最新序列号破解)[通俗易懂]

    idea 2021.5.2激活码(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    38
  • Ubuntu安装gcc4.1.2

    Ubuntu安装gcc4.1.2安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。如果系统上没有编译器,不能安装源代码形式的GCC4.1.2。如果是这种情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。系统上原来的GCC编译…

    2022年7月24日
    11
  • ffmpeg opencv_ffmpeg -q:v

    ffmpeg opencv_ffmpeg -q:v最直接的区别就是av_freep()会在av_free()的基础上,把传入的指针再置为NULL。FFmpeg源代码:av_free()voidav_free(void*ptr){#if

    2022年8月6日
    8
  • .pfx 证书和 .cer 证书

    .pfx 证书和 .cer 证书证书系列:1:.pfx证书和.cer证书2:导入pfx证书通常情况下,作为文件形式存在的证书一般有三种格式:第一种:带有私钥的证书,由PublicKeyCryptographyStandards#12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以.pfx作为证书文件后缀名。 第二种:DEREncodedBinary(.cer)二进制编码的证书,证书中没有私钥,DER编码二进制格式的证书文件,以.cer作为证书文件后缀名。 第三种:Bas.

    2022年6月3日
    95
  • 步入J2EE架构和过程「建议收藏」

    步入J2EE架构和过程「建议收藏」标 题:步入J2EE架构和过程发信站:BBS水木清华站(FriApr2616:02:082002)本文转自赛迪网开发者developer.ccidnet.com摘要Java2企业版(J2EE)平台由四个关键部分构成:规格说明、参考实现、兼容性测试套件和蓝图(BluePrint)计划。蓝图描绘了分布式组件架构最好的实践和设计指导方针。本文基于Rational统一过程和Bl

    2025年6月20日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号