CN112347023B - 用于can节点的安全模块 - Google Patents
用于can节点的安全模块 Download PDFInfo
- Publication number
- CN112347023B CN112347023B CN202010747735.6A CN202010747735A CN112347023B CN 112347023 B CN112347023 B CN 112347023B CN 202010747735 A CN202010747735 A CN 202010747735A CN 112347023 B CN112347023 B CN 112347023B
- Authority
- CN
- China
- Prior art keywords
- bus
- local controller
- frame
- message
- security module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 24
- 125000004122 cyclic group Chemical group 0.000 claims description 7
- 238000010168 coupling process Methods 0.000 claims description 5
- 238000005859 coupling reaction Methods 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims description 3
- 230000004044 response Effects 0.000 description 7
- 230000000246 remedial effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B1/00—Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
- H04B1/38—Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40013—Details regarding a bus controller
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40169—Flexible bus arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Small-Scale Networks (AREA)
Abstract
一种用于CAN节点的安全模块。包括:RXD输入接口,用于从CAN总线接收数据;TXD输出接口,用于将数据发送到CAN总线;以及RXD输出接口,用于将数据提供到本地控制器。安全模块被配置成从CAN总线接收CAN帧。CAN帧包括CAN消息。安全模块还被配置成:将所接收的CAN帧的标识符和与本地控制器相关联的至少一个标识符进行比较;以及在检测到所接收的CAN帧的标识符和与本地控制器相关联的至少一个标识符之间的匹配后就:经由RXD输出接口将所接收的CAN消息传递到本地控制器;将本地控制器与CAN总线解耦;以及经由TXD输出接口使CAN总线上的CAN消息失效。
Description
技术领域
本公开涉及控制器局域网中的安全。
背景技术
控制器局域网(CAN)总线是常常在汽车内使用的基于消息的通信总线协议。CAN总线协议用于启用各种电子控制单元(ECU)之间的通信,例如发动机控制模块(ECM)、动力传动系控制模块(PCM)、安全气囊、防抱死制动器、巡航控制系统、电动助力转向系统、音频系统、车窗、车门、后视镜调整系统、用于混合动力/电动汽车的电池和再充电系统等等。CAN协议的数据链路层被标准化为国际标准组织(ISO)11898-1。标准化CAN数据链路层协议还已被扩展成提供较高数据速率。被称为CAN灵活数据速率或“CAN FD”的扩展协议是ISO11898-1:2015标准版本的一部分。被称为CAN XL的下一代CAN协议还在开发中。
例如使用CAN总线协议的车载网络的车载网络日益受到关注的一个问题是网络安全,包括入侵检测和入侵预防。例如,受危害的车载网络可能会允许攻击者恶意地控制车辆的组件。
发明内容
根据本公开的第一方面,提供一种用于控制器局域网CAN节点的安全模块,安全模块包括:
接收数据RXD输入接口,接收数据RXD输入接口用于从CAN总线接收数据;
发送数据TXD输出接口,发送数据TXD输出接口用于将数据发送到CAN总线;以及
RXD输出接口,RXD输出接口用于将数据提供到本地控制器;
其中安全模块被配置成:
经由RXD输入接口从CAN总线接收CAN帧,其中CAN帧包括CAN消息;
将所接收的CAN帧的标识符和与本地控制器相关联的至少一个标识符进行比较;以及
在检测到所接收的CAN帧的标识符和与本地控制器相关联的至少一个标识符之间的匹配后就:
经由RXD输出接口将所接收的CAN消息传递到本地控制器;
将本地控制器与CAN总线解耦;以及
经由TXD输出接口使CAN总线上的CAN消息失效。
此类安全模块可以有利地向CAN网络上的节点提供用于标识出它们受到攻击的手段,同时仍使CAN总线上的欺骗性CAN消息失效。这是通过将与欺骗性消息相关联的本地控制器与CAN总线解耦并使CAN总线上的CAN消息失效来实现的。
在一个或多个实施例中,安全模块进一步包括TXD输入接口,TXD输入接口用于从本地控制器接收数据。安全模块可以进一步被配置成通过将TXD输入接口耦合到RXD输出接口而将本地控制器与CAN总线解耦,任选地使得本地控制器不舍弃CAN帧。
在一个或多个实施例中,安全模块被配置成通过将在CAN帧的循环冗余校验CRC位之后的多个位设置为显性值而使CAN总线上的CAN消息失效。
在一个或多个实施例中,安全模块被配置成针对CAN帧的紧接在CAN帧的循环冗余校验CRC位之后的位将本地控制器与CAN总线解耦并使CAN总线上的CAN消息失效。
在一个或多个实施例中,安全模块被配置成将本地控制器与CAN总线解耦,直到安全模块经由RXD输入接口从CAN总线接收到隐性位为止。
在一个或多个实施例中,安全模块进一步被配置成在从CAN总线接收到隐性位之后将本地控制器重新耦合到CAN总线。
在一个或多个实施例中,安全模块被配置成将CAN帧的一部分传递到本地控制器。部分可以包括CAN帧的在CAN帧的一个或多个应答位之前并任选地包括一个或多个应答位的位。
在一个或多个实施例中,安全模块被配置成经由RXD输出接口将未修改的所接收的CAN帧提供到本地控制器。
还公开了一种CAN节点,包括:CAN收发器;本地控制器;以及本文中所公开的任何安全模块。安全模块的RXD输入接口和TXD输出接口可以被配置成经由CAN收发器与CAN总线通信。安全模块可以被配置成经由RXD输出接口和TXD输入接口与本地控制器通信。
在一个或多个实施例中,本地控制器被配置成确定所接收的CAN帧是恶意帧。
在一个或多个实施例中,本地控制器被配置成通过将所接收的CAN帧的标识符和与本地控制器相关联的至少一个标识符进行比较而确定所接收的CAN帧是恶意帧。
在一个或多个实施例中,本地控制器被配置成在接收到所接收的CAN帧后就输出显性应答位,接着是隐性位。
在一个或多个实施例中,在确定所接收的帧是恶意帧后,本地控制器就被配置成进行以下操作中的一个或多个:
将CAN帧记录为恶意帧;
向网络运营商提醒或显示CAN节点和/或CAN网络受到攻击的错误;
将CAN节点置于紧急模式或关闭CAN节点;
将CAN总线和/或CAN网络上的一个或多个其它CAN节点置于紧急模式;以及
向CAN总线上的其它CAN节点传送指示CAN网络受到攻击的消息。
在一个或多个实施例中,安全模块或CAN节点供在经典CAN、CAN FD或CAN XL网络中使用。
根据本发明的另一个方面,提供一种用于使CAN总线上的CAN消息失效的方法,方法包括:
从CAN总线接收CAN帧,其中CAN帧包括CAN消息;
将所接收的CAN帧的标识符和与本地控制器相关联的至少一个标识符进行比较;
检测所接收的CAN帧的标识符和与本地控制器相关联的至少一个标识符之间的匹配;
将所接收的CAN消息传递到本地控制器;
将本地控制器与CAN总线解耦;以及
使CAN总线上的CAN消息失效。
尽管本公开可容许各种修改和可替换的形式,但是本公开的细节已在附图中以例子的方式示出,并将被详细地描述。然而,应理解,除所描述的特定实施例之外的其它实施例也是可能的。还涵盖属于所附权利要求书的精神和范围内的所有修改、等效物和可替换的实施例。
以上论述并不意图表示当前或未来权利要求集的范围内的每个示例实施例或每个实施方案。以下的附图和具体实施方式还举例说明了各种示例实施例。考虑结合附图的以下具体实施方式,可以更全面地理解各种示例实施例。
附图说明
现在将仅参考附图以例子的方式描述一个或多个实施例,附图中:
图1示出CAN网络;
图2示出CAN节点的展开图;
图3示出呈基本帧格式的经典CAN帧和CAN FD帧;
图4A示出根据本公开的实施例的包括安全模块的CAN节点;
图4B示出根据本公开的实施例的包括另一个安全模块的CAN节点;
图5示出在确定CAN节点受到攻击之后的图4的CAN节点的响应;
图6示出处于如由CAN总线和连接到CAN总线的节点所看到的位级的恶意CAN消息;并且
图7示出用于使CAN总线上的CAN消息失效的方法的示例实施例。
具体实施方式
图1描绘CAN网络100,CAN网络100包括多个CAN节点102,也被称为ECU,每个CAN节点连接到CAN总线104。在图1的实施例中,每个CAN节点102包括CAN收发器120和具有嵌入式CAN协议控制器114的本地控制器110或微控制器。本地控制器110通常连接到例如传感器、致动器或某一其它控制装置的至少一个装置(未示出),并且被编程为确定所接收的消息的含义并产生适当的传出消息。本地控制器也可以被称为主机处理器、主机或数字信号处理器(DSP)。在一些例子中,主机支持与CAN协议控制器114交互的应用程序软件。
可以嵌入在本地控制器110内或在本地控制器外部(例如单独的IC装置)的CAN协议控制器114实施数据链路层操作。例如,在接收操作中,CAN协议控制器114存储从收发器120接收的串行位,直到整个消息可用于供本地控制器110提取为止。CAN协议控制器114还可以根据CAN协议的标准化帧格式对CAN消息进行解码。在发送操作中,CAN协议控制器114从本地控制器接收消息并将消息作为呈CAN帧格式中的一种的串行位发送到CAN收发器120。
CAN收发器120位于CAN协议控制器114和CAN总线104之间,并实施物理层操作。例如,在接收操作中,CAN收发器120将来自CAN总线的模拟差分信号转换成CAN协议控制器114可以解释的串行数字信号。CAN收发器还保护CAN协议控制器114免遭CAN总线104上的极端电气条件,例如电涌。在发送操作中,CAN收发器120将从CAN协议控制器114接收的串行数字位转换成在CAN总线104上传送的模拟差分信号。
CAN总线104承载模拟差分信号并包括CAN高(CANH)总线线路124和CAN低(CANL)总线线路126。
图2描绘一个CAN节点202的展开图。图2的也在图1中示出的特征已被给出呈200系列的对应附图标记,并在此将不再赘述。
本地控制器210包括主机216,主机216可以是例如存储在本地控制器210的存储器中并由本地控制器210的处理电路执行的软件应用程序。CAN节点202的本地控制器210和CAN收发器220连接在电源电压Vcc和接地GND之间。在一些例子中,本地控制器210和CAN收发器220可以具有不同的电源电压。如图2所示出,从本地控制器210传达到CAN收发器220的数据被标识为发送数据(TXD),并且从CAN收发器220传达到本地控制器210的数据被称为接收数据(RXD)。数据经由CANH总线线路224和CANL总线线路226分别向和从CAN总线传达。
图3描绘在CAN正常模式中使用的经典CAN帧330(呈经典基本帧格式(CBFF)或标准格式)的格式,并还描绘在CAN FD模式中使用的CAN FD帧332(呈FD基本帧格式或FBFF)的格式。CAN正常模式和CAN FD模式帧的字段被定义如下:
SOF: 帧开始(始终为显性)
标识符: 标识符位,定义消息内容
RTR: 远程发送请求
IDE: ID扩展
r0: 保留位0(由呈CAN FD格式的FDF替代)
FDF: FD格式(这是区分帧格式的位)
BRS: 波特速率选择开关
ESI: 错误状态指示符
DLC: 数据长度码
数据: 数据字节
CRC: 循环冗余校验
CRC Del: CRC分隔符(始终为隐性)
ACK: 应答
ACK Del: 应答分隔符
EOF: 帧结束
经典帧格式还存在另一个版本,被称为“经典扩展帧格式(CEFF)”,其中FDF位处于旧的r1位置,而FDF位处于CBFF中的r0位置。还存在“FD扩展帧格式(FEFF)”,其中“扩展”是指29位标识符。值得注意的是,CAN协议使用CAN帧内的保留位(r0或r1)(通常也被称为FDF位)以将帧标识为CAN FD模式帧。具体地说,FDF位为指示帧是CAN正常模式帧还是CAN FD模式帧的1位字段。当FDF位为显性(例如低或“0”)时,帧是CAN正常模式帧,并且当FDF位为隐性(例如高或“1”)时,帧是CAN FD模式帧。在CAN正常模式帧中,保留位(r0、r1)始终被驱动为对于总线线路为显性。
CAN消息是广播消息,并且标识符对于传送者CAN节点是唯一的。接收CAN节点的CAN协议控制器具有标识符过滤器,标识符过滤器被“调谐”到特定标识符以确保主机接收到相关消息且不会被无关消息打扰。标准CAN帧具有11位标识符字段以承载11位标识符,并且扩展CAN帧具有29位标识符字段以承载29位标识符。29位标识符字段被划分为两个区段:11位基本标识符字段和18位扩展标识符字段。
如上文所陈述,车载网络的安全问题日益受到关注。车载网络的许多组件利用必须定期更新的软件。为了更新软件,车载网络常常具有“后门”访问端口。如果后门访问端口受到黑客攻击,那么车载网络中的元件会受危害。对使用CAN协议的车载网络的一种攻击技术涉及攻击者传送错误标志以干扰以特定标识符开头的帧,这可能会导致此特定标识符的合法传送CAN节点进入“总线关闭”状态。当合法CAN节点从总线关闭状态恢复时,攻击者可以传送具有通常由传送CAN节点使用的标识符的CAN消息(例如“数据帧”,其是RTR位被设置为“0”的CAN帧)。可疑的CAN消息可能会由CAN总线上的CAN节点接收并被识别为有效消息,这是因为标识符先前已在CAN网络内被使用。因此,在CAN总线上存在欺骗性消息。一旦CAN总线上的CAN节点接收到可疑的消息,可疑的消息就可以用于在接收CAN节点内实施恶意活动。
为了检测和预防CAN网络上的此类攻击,CAN节点可以被配置成存储由CAN节点自身传送的CAN消息的标识符,并进一步被配置成将传入的CAN消息的标识符和所存储的标识符进行比较,以确定任何传入的CAN消息是否具有匹配标识符。由于通常向每个CAN节点唯一地指派标识符,故如果所接收的标识符和所存储的标识符匹配,那么接收CAN节点可以假设CAN消息来自入侵者并可以采取措施以预防入侵。例如,响应于检测到所接收的标识符和所存储的标识符之间的匹配,CAN节点可以被配置成立即将例如错误标志的错误信号传送到CAN总线上,以预防恶意CAN消息被CAN总线上的任何CAN节点成功且完全接收,例如使CAN消息失效、销毁和/或终止。通过应用此类技术,只有使用特定标识符的原始(或合法)CAN节点可以传送具有标识符的CAN消息,而不会使CAN消息失效、销毁和/或终止。
图4A描绘根据本公开的实施例的包括安全模块460的CAN节点402。在此实施例中,安全模块460被单独地提供到CAN收发器420和CAN本地控制器410。安全模块460位于CAN收发器420和CAN本地控制器410之间的数据路径中。
图4B描绘根据本公开的另一个实施例的包括安全模块460的CAN节点402。在此实施例中,安全模块460被提供为CAN本地控制器410的部分。例如,安全模块460的功能性可以由CAN协议控制器提供。
在又一个实施例中,安全模块460的功能性可以由CAN收发器420提供。
安全模块460被配置成以使CAN节点402能够检查任何恶意CAN消息和/或采取适当补救措施的方式实施上述入侵检测/预防技术。应了解,无论现在或未来,本文中所公开的例子可以与经典CAN节点、CAN FD节点、CAN XL节点或满足关联CAN标准的任何其它CAN节点相关。
CAN节点402包括如上文参考图1和图2所描述的CAN收发器420和CAN本地控制器410。
安全模块460被配置成对在CAN总线404上接收的CAN消息(或CAN帧)(例如RXD路径上的CAN消息)的标识符进行解码,并将CAN消息的标识符和与CAN节点402相关联的本地标识符进行比较。本地控制器410可以包括用于存储与本地控制器410或CAN节点402相关联的一个或多个本地标识符的存储器。安全模块460位于CAN本地控制器410之前,使得可以在CAN本地控制器410处完全接收到CAN消息之前进行比较。如果CAN消息标识符和本地标识符匹配,那么CAN节点402被视为是受到攻击的CAN节点。如果比较指示来自CAN消息的标识符和本地标识符匹配(并且假设CAN节点402自身未发送CAN消息),那么安全模块460可以:将所接收的CAN消息提供到本地控制器410;将本地控制器410与CAN总线404解耦;以及使CAN总线404上的所接收的CAN消息失效,这可以使CAN网络的其余部分上的CAN消息销毁和/或终止。
安全模块460可以通过在CAN消息的帧结束字段中设置多个显性位而使所接收的CAN消息失效。在从CAN总线404接收失效的CAN消息的所有CAN节点处,CAN消息失效并被舍弃而未被处理。这可以预防CAN消息在CAN网络中的其它CAN节点内实施任何恶意活动。
通过将所接收的消息提供到本地控制器410并将本地控制器410与CAN总线404解耦,在使CAN总线410上的CAN消息失效之前,受到攻击的CAN节点402的本地控制器410可以:(i)确定CAN节点是受到攻击的CAN节点;(ii)处理所接收的CAN消息;以及(iii)潜在地采取任何补救措施。如果安全模块460未将本地控制器410与CAN总线404解耦,那么受到攻击的CAN节点402将会舍弃消息而不以与连接到CAN总线的其它CAN节点相同的方式处理消息或检查其有效负载。结果,CAN节点和CAN网络都不可以:(i)区分攻击/安全后部和由例如噪声干扰的非安全问题引起的错误;(ii)检查CAN消息以获得对攻击的性质的见解或情报;或(iii)采取补救措施以保护CAN网络免遭攻击或进一步攻击。
图5示出在CAN消息标识符和本地标识符之间的比较匹配之后的安全模块560对确定CAN节点502受到攻击的响应。图5的也在图4中示出的特征已被给出呈500系列的对应附图标记,并在此将不再赘述。
安全模块560包括:接收数据RXD输入接口562,接收数据RXD输入接口562被配置成经由CAN收发器520从CAN总线504接收数据;RXD输出接口564,RXD输出接口564被配置成使数据(从CAN总线504接收)通过到本地控制器510;发送数据TXD输入接口566,发送数据TXD输入接口566被配置成从本地控制器510接收数据(用于向前发送到CAN总线510);以及TXD输出接口568,TXD输出接口568被配置成将数据发送到CAN总线504。以此方式,安全模块560位于CAN收发器520和本地控制器510之间的TXD和RXD路径上。当安全模块560使数据通过时,安全模块560可以优选地在无时延增加/时延增加最小的情况下并在没有任何种类的缓冲的情况下进行此操作。
在检测到标识符匹配后,就在第一步骤中,安全模块560将所接收的CAN消息570(流氓消息或恶意消息或欺骗消息)传递到本地控制器510。这可以涉及将CAN消息有效地传递到本地控制器510,即,不通过将在CAN帧的循环冗余校验CRC位之后的多个位设置为显性值而使消息失效。任选地,安全模块560将CAN消息570的包括数据有效负载的部分传递到本地控制器510。安全模块560可以提供CAN消息的包括在CAN消息570的ACK位和/或ACK Del位之前并任选地包括ACK位和/或ACK Del位的所有位的部分。
在第二步骤中,在将CAN消息570的至少一部分提供到本地控制器510之后,安全模块560将本地控制器510与CAN总线504解耦。在一些例子中,安全模块560通过将TXD输入接口566连接到RXD输出接口564而将本地控制器510与CAN总线504解耦。以此方式,本地控制器510可以在接收到CAN消息后就传送显性ACK位和隐性帧结束字段位,指示所接收的CAN消息中没有错误。本地控制器510然后将经由RXD输出接口564接收回本地控制器510自己传送的位。本地控制器510将解释这些无错误位以意指CAN网络上的其它节点尚未引发错误标志。以此方式,本地控制器510与CAN总线504隔离,从而允许本地控制器510处理恶意CAN消息570。如下文所论述,这可以使CAN节点能够确定正在尝试欺骗攻击。
同样在第二步骤期间,安全模块560经由TXD输出接口568和CAN收发器520使CAN总线504上的CAN消息失效。以此方式,安全模块560使针对连接到CAN总线504的所有节点的CAN消息失效。安全模块560可以在将TXD输入接口566连接到RXD输出接口564的同时或之后使CAN消息失效。结果,在本地控制器510已与CAN总线504解耦之前,CAN总线504未指示CAN消息无效。
安全模块560可以通过以本领域中所知的任何方式将单个或多个位设置为显性值而使CAN消息失效。根据ISO 11898-1,多个位可以是六个连续位。安全模块560可以对在CAN消息的CRC位之后的多个位加标志。多个显性位可以包括在CAN消息的帧结束字段中的多个显性位以及在ACK和/或ACK del字段中的一个或多个位。多个显性位可以紧接在CRC位之后开始,或可以在CRC位之后被延迟。例如,多个显性位可以在CRC位之后的5个位开始。多个显性位可以在CRC位位置之后的任何位位置处开始,任何位位置足够快,使得多个显性位可以被标识为使CAN消息失效的请求。
通过实施图5的步骤1和2,安全模块560使受到攻击的CAN节点502(受到攻击的CANID的合法传送者)能够接收由非合法传送者传送的恶意CAN消息570,而CAN总线504上的所有其它节点都将舍弃欺骗性CAN消息。这允许受到攻击的CAN节点502记录攻击并采取其它补救步骤。
安全模块560可以维持将本地控制器510与CAN总线504解耦,直到从CAN总线504接收的数据指示无错误操作为止。在一些例子中,响应于安全模块560经由RXD输入接口562从CAN总线接收到隐性位,安全模块560再次将本地控制器510耦合到CAN总线504。
图6示出根据本公开的实施例的处于如由受到攻击的节点的本地控制器所看到以及如由CAN总线和在安全模块的标识符匹配之后的其它远程CAN节点所看到的位级的恶意CAN消息的例子。
图6的上部部分示出了如由CAN总线和连接到CAN总线的其它远程节点所看到的恶意CAN消息的结束部分674。第一示出位是隐性CRC Del位678。安全模块通过将在CRC Del位678之后的多个连续位设置为显性值而使CAN总线上的CAN消息失效。在此例子中,安全模块设置从紧接在CRC Del位678之后的ACK位679开始的多位安全错误标志681。
连接到CAN总线的远程节点将把显性ACK位679解释为正常操作。此外,ACK位678和ACK Del位的时序中可能存在容差680,使得远程节点将不确定在其接收到指示显性ACKDel位的两个(经典CAN)或三个(CAN FD)连续显性位之前存在错误。容差考虑到了ACK位678的发送时间以及各种节点之间的同步偏移。在接收到多于两个或三个连续显性位之后,CAN总线上的远程节点确定存在形式错误并将其自己的错误标志682输出到总线上。在经典CAN和CAN FD中,此形式错误标志682包括在CAN消息中设置6个连续显性位。
在错误标志之后,CAN总线上的位在时间tF返回到隐性状态684。在其它例子中,这种返回到隐性状态的情况可能会在稍后时间发生。
图6的下部部分示出了如由受到攻击的CAN节点的本地控制器所接收的CAN消息676的结束部分。指示对CAN消息的应答的显性ACK位688在隐性CRC Del位686之后。显性位可以由安全模块或受到攻击的CAN节点的本地控制器设置。在此例子中,紧接在ACK位688之前,本地控制器与CAN总线解耦。在其它例子中,只要本地控制器在CAN总线指示CAN消息无效之前与CAN总线解耦,本地控制器就可以在稍后时间与CAN总线解耦。
在此例子中,受到攻击的节点的本地控制器通过将TXD输入接口连接到RXD输出接口而与CAN总线解耦。在此例子中,两个接口与将显性ACK位设置为安全错误标志681的第一位同时彼此耦合。在TXD输入接口耦合到RXD输出接口的情况下,本地控制器传送和接收回隐性位690的连续流。这是因为在接收到显性ACK位688之后,本地控制器由于未察觉到任何错误而经由TXD输入接口将多个隐性位传送到安全模块。通过将TXD输入接口连接到RXD输出接口,安全模块将隐性位直接循环回到本地控制器。本地控制器将此隐性位解释为来自CAN总线的无错误指示。因此,本地控制器继续向安全模块提供和从安全模块接收回隐性位,并因此接收隐性位的连续流。以此方式,本地控制器被“欺骗”来确定无错误CAN总线。
安全模块使本地控制器保持与CAN总线解耦,直到安全错误标志681结束为止以及直到安全模块从CAN总线接收到隐性位为止。在图中,这是在时间tF 692的安全错误标志681之后观察到的。在其它例子中,例如如果其它节点确定了另外的错误,那么CAN总线可能直到稍后时间为止才提供隐性位。在从CAN总线接收到隐性位之后,安全模块将本地控制器重新耦合到CAN总线。以此方式,在CAN总线已返回到隐性状态之后,与欺骗性消息相关联的本地控制器的RXD路径再次由CAN总线驱动。
在接收到恶意CAN消息之后以及在解耦时间期间,本地控制器可以开始处理恶意CAN消息。为了处理恶意消息,本地控制器可以首先确定所接收的CAN消息是恶意消息。本地控制器可以以与安全模块相同的方式,即,通过将所接收的CAN消息的标识符和与本地控制器或受到攻击的关联CAN节点相关联的标识符进行比较,而确定消息是恶意的。另外或可替换的是,本地控制器可以将消息与本地控制器先前已传送的消息进行比较。在其它例子中,本地控制器可以从安全模块接收CAN消息是欺骗性CAN消息的指示。
在确定所接收的CAN消息是恶意CAN消息后,本地控制器就可以执行以下多个操作中的一个或多个:
1.本地控制器可以将CAN消息记录为恶意消息。所记录的消息可以由CAN节点或网络运营商访问以供未来分析。
2.本地控制器可以向网络运营商提醒或显示关联CAN节点和/或CAN网络受到攻击的错误。这可能会紧接在标识出恶意消息之后或在将本地控制器重新耦合到CAN总线之后发生。网络运营商可以采取适当补救措施,例如关闭CAN网络、启用网络中的一个或多个节点的安全模式和/或标识并隔离攻击的来源。
3.本地控制器可以自动地将受到攻击的CAN节点置于紧急模式或安全模式。这可以包括停用、限制或拒绝对特定特征的访问。
4.本地控制器可以经由独立于CAN总线的紧急发送路径自动地将消息传送到一个或多个其它CAN节点或整个CAN网络。消息可以向CAN节点或网络发出攻击提醒和/或将一个或多个CAN节点置于紧急模式。
5.在重新耦合到CAN总线之后,本地控制器可以自动地将指示网络受到攻击的消息传送到CAN总线上的其它节点。消息可以向CAN节点或网络发出攻击提醒和/或将一个或多个CAN节点置于紧急模式。其它节点可以启用安全模式,安全模式停用、限制或拒绝对特定特征的访问。
所公开的安全模块的功能性有利地向CAN网络拥有者提供了用于标识受到攻击的CAN节点的手段。这是通过掩蔽受到攻击的CAN节点的接收路径中的错误信号来实现的。
在不存在本地控制器解耦的情况下,当安全模块发布错误信号以使CAN消息失效时,CAN消息将会失效,并且被连接的CAN节点中没有一个将会确定哪个CAN ID已被欺骗。在本地控制器已接收到欺骗性消息之后将本地控制器解耦会允许受到攻击的CAN节点(欺骗性CAN ID的合法传送者)知道CAN节点的CAN ID中的一个受到攻击,CAN节点的安全模块会预防攻击。
在一些例子中,安全模块在CRC Del位之后发布错误信号(错误标志)以使CAN消息失效,并同时使RXD输出接口与CAN总线断开连接。当CAN总线返回到隐性状态时,RXD输出镜射TXD输入,直到RXD输出变得重新连接到CAN总线为止。受到攻击的CAN节点的本地控制器会看到适当应答的CAN消息,而CAN总线上的远程节点会看到根据ISO11898-1的形式错误并因此舍弃CAN消息。换句话说,受到攻击的CAN ID的合法传送者能够接收由非合法传送者传送的CAN消息,而总线上的所有其它接收者将舍弃欺骗性消息。这会允许合法传送者记录攻击并采取另外的补救步骤。
图7示出用于使CAN总线上的CAN消息失效的方法的示例实施例。
在步骤790处,方法包括从CAN总线接收CAN帧。如上文所论述,CAN帧包括CAN消息。方法可以涉及确定所接收的消息是否是从本地主机传送的。如果消息是由本地主机/节点传送,那么消息可以应用与消息已由远程主机/节点接收的情况不同或额外的条件。例如,对于具有本地主机/节点的标识符的远程接收的消息,仅可以校验一个或多个策略以查看它们是否已被违反。
在步骤791处,方法包括将所接收的CAN帧的标识符和与本地控制器相关联的至少一个标识符进行比较。与本地控制器相关联的至少一个标识符可以存储在存储器中,并任选地可以由执行此方法的安全模块接收。
在步骤792处,方法涉及检测所接收的CAN帧的标识符和与本地控制器相关联的至少一个标识符之间的匹配。响应于在步骤792处检测到匹配,方法执行步骤793、794和795中的每一个。
在步骤793处,方法包括将所接收的CAN帧传递到本地控制器。在步骤794处,方法包括将本地控制器与CAN总线解耦。在步骤795处,方法涉及使CAN总线上的CAN消息失效。在一些例子中,步骤795可以涉及将在CAN帧的循环冗余校验CRC位之后的多个位设置为显性值。
除非明确陈述特定次序,否则以上各图中的指令和/或流程图步骤可以按任何次序执行。而且,本领域的技术人员将认识到,尽管已论述了指令集/方法的例子,但是本说明书中的材料也可以以多种方式组合以产生其它例子,并且应在此具体实施方式提供的上下文中理解。
在一些示例实施例中,上文所描述的指令集/方法步骤被实施成体现为一组可执行指令的功能指令和软件指令,一组可执行指令作用于用可执行指令编程并由可执行指令控制的计算机或机器上。此类指令被加载以在处理器(例如一个或多个CPU)上执行。术语处理器包括微处理器、微控制器、处理器模块或子系统(包括一个或多个微处理器或微控制器),或其它控制或计算装置。处理器可以指单个组件或多个组件。
在其它例子中,本文中所示出的指令集/方法以及与之相关联的数据和指令存储在相应存储装置中,存储装置实施为一个或多个非暂时性机器或计算机可读或计算机可用存储介质。此类计算机可读或计算机可用存储介质被视为物品(或制品)的一部分。物品或制品可以指任何制造的单个组件或多个组件。如本文中所定义的非暂时性机器或计算机可用介质不包括信号,但是此类介质可能能够从信号和/或其它暂时性介质接收和处理信息。
本说明书中所论述的材料的示例实施例可以完全或部分地通过网络、计算机或基于数据的装置和/或服务来实施。这些可以包括云、因特网、企业内部网、移动设备、台式机、处理器、查找表、微控制器、消费类设备、基础设施或其它启用的装置和服务。如本文中和权利要求书中可使用的,提供以下非排它性定义。
在一个例子中,本文中所论述的一个或多个指令或步骤是自动化的。术语自动化或自动地(以及其类似变化形式)意指使用计算机和/或机械/电气装置的设备、系统和/或过程的受控操作不需要人为干预、观察、努力和/或决策。
应了解,可以直接或间接耦合或连接据称为耦合的任何组件。在间接耦合的情况下,额外组件可以位于据称为耦合的两个组件之间。
在本说明书中,已根据选择的一组详细信息呈现了示例实施例。然而,本领域的普通技术人员将理解,可以实践包括这些详细信息的不同选择集的许多其它示例实施例。所附权利要求书旨在涵盖所有可能的示例实施例。
Claims (10)
1.一种安全系统,包括用于控制器局域网CAN节点(502)的安全模块(560),其特征在于,所述安全模块(560)包括:
接收数据RXD输入接口(562),接收数据RXD输入接口(562)用于从CAN总线(504)接收数据;
发送数据TXD输出接口(568),发送数据TXD输出接口(568)用于将数据发送到CAN总线(504);以及
RXD输出接口(564),RXD输出接口(564)用于将数据提供到本地控制器(510);
其中安全模块(560)被配置成:
经由RXD输入接口(562)从CAN总线(504)接收CAN帧,其中CAN帧包括CAN消息;
将所接收的CAN帧的标识符和与本地控制器(510)相关联的至少一个标识符进行比较;以及
在检测到所接收的CAN帧的标识符和与本地控制器(510)相关联的至少一个标识符之间的匹配后就:
经由RXD输出接口(564)将所接收的CAN消息传递到本地控制器(510);
将本地控制器(510)与CAN总线(504)解耦从而所述本地控制器不丢弃所述CAN帧;以及
经由TXD输出接口(568)使CAN总线(504)上的CAN消息失效。
2.根据权利要求1的安全系统,其特征在于,进一步包括TXD输入接口(566),TXD输入接口(566)用于从本地控制器(510)接收数据;
其中安全模块(560)进一步被配置成通过将TXD输入接口(566)耦合到RXD输出接口(564)而将本地控制器(510)与CAN总线(504)解耦。
3.根据权利要求1或权利要求2的安全系统,其特征在于,安全模块(560)被配置成通过将在CAN帧的循环冗余校验CRC位之后的多个位设置为显性值而使CAN总线(504)上的CAN消息失效。
4.根据权利要求1或2的安全系统,其特征在于,安全模块(560)被配置成针对CAN帧的紧接在CAN帧的循环冗余校验CRC位之后的位将本地控制器(510)与CAN总线(504)解耦并使CAN总线上的CAN消息失效。
5.根据权利要求1或2的安全系统,其特征在于,安全模块被配置成将本地控制器(510)与CAN总线(504)解耦,直到安全模块经由RXD输入接口(562)从CAN总线接收到隐性位为止。
6.根据权利要求1或2的安全系统,其特征在于,安全模块进一步被配置成在从CAN总线(504)接收到隐性位之后将本地控制器(510)重新耦合到CAN总线(504)。
7.根据权利要求1或2的安全系统,其特征在于,安全模块(560)被配置成将CAN帧的一部分传递到本地控制器(510),其中部分包括CAN帧的在CAN帧的一个或多个应答位之前并任选地包括一个或多个应答位的位。
8.根据权利要求1或2的安全系统,其特征在于,安全模块被配置成经由RXD输出接口(564)将未修改的所接收的CAN帧提供到本地控制器(510)。
9.一种CAN节点(502),其特征在于,包括:
CAN收发器(520);
本地控制器(510);以及
根据权利要求2到8中任一项的安全系统,
其中:
安全模块(560)的RXD输入接口(562)和TXD输出接口(568)被配置成经由CAN收发器(520)与CAN总线(504)通信,并且
安全模块(560)被配置成经由RXD输出接口(564)和TXD输入接口(566)与本地控制器(510)通信。
10.一种用于使CAN总线(504)上的CAN消息失效的方法,其特征在于,方法包括:
从CAN总线(504)接收CAN帧,其中CAN帧包括CAN消息;
将所接收的CAN帧的标识符和与本地控制器(510)相关联的至少一个标识符进行比较;
检测所接收的CAN帧的标识符和与本地控制器(510)相关联的至少一个标识符之间的匹配;
将所接收的CAN消息传递到本地控制器(510);
将本地控制器(510)与CAN总线(504)解耦从而所述本地控制器不丢弃所述CAN帧;以及
使CAN总线(504)上的CAN消息失效。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19190363.2 | 2019-08-06 | ||
EP19190363.2A EP3772841B1 (en) | 2019-08-06 | 2019-08-06 | A security module for a can node |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112347023A CN112347023A (zh) | 2021-02-09 |
CN112347023B true CN112347023B (zh) | 2024-10-22 |
Family
ID=67658493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010747735.6A Active CN112347023B (zh) | 2019-08-06 | 2020-07-28 | 用于can节点的安全模块 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11677779B2 (zh) |
EP (1) | EP3772841B1 (zh) |
CN (1) | CN112347023B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3772839B1 (en) | 2019-08-06 | 2023-01-04 | Nxp B.V. | Security module for a serial communications device |
EP3772840B1 (en) | 2019-08-06 | 2023-03-15 | Nxp B.V. | A security module for a can node |
CN110808891B (zh) * | 2019-09-30 | 2021-10-12 | 深圳市道通合创新能源有限公司 | 一种can过滤器合并的方法、装置及can控制器 |
US11431439B1 (en) | 2021-04-12 | 2022-08-30 | Nxp B.V. | Controller area network transceiver |
EP4304135A1 (en) * | 2022-07-08 | 2024-01-10 | Nxp B.V. | Controller area network (can) transceiver, can node, can system and method for the can transceiver |
SE546278C2 (en) * | 2023-01-25 | 2024-09-17 | Scania Cv Ab | Methods and arrangements for communicating a security critical signal over a CAN bus |
CN117478609A (zh) * | 2023-10-30 | 2024-01-30 | 中科亿海微电子科技(苏州)有限公司 | 一种用于提高can总线接收帧效率的装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475523A (zh) * | 2013-09-10 | 2013-12-25 | 浙江大学 | 带总线错误解析功能的can总线分析系统 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9009523B2 (en) * | 2012-11-27 | 2015-04-14 | GM Global Technology Operations LLC | Method and apparatus for isolating a fault in a controller area network |
EP2800316A1 (en) * | 2013-05-01 | 2014-11-05 | Renesas Electronics Europe GmbH | Can fd |
US10452504B2 (en) * | 2013-10-02 | 2019-10-22 | Nxp B.V. | Controller area network (CAN) device and method for emulating classic CAN error management |
US20150135271A1 (en) | 2013-11-11 | 2015-05-14 | GM Global Technology Operations LLC | Device and method to enforce security tagging of embedded network communications |
US9298529B2 (en) * | 2014-05-29 | 2016-03-29 | Freescale Semiconductor, Inc. | Indicating internal transmitter errors in a controller area network (CAN) |
EP2985955B1 (en) | 2014-08-15 | 2019-06-12 | Nxp B.V. | Controller area network (can) device and method for emulating classic can error management |
US9380070B1 (en) | 2015-01-20 | 2016-06-28 | Cisco Technology, Inc. | Intrusion detection mechanism |
EP3124331B1 (en) * | 2015-07-29 | 2020-04-22 | Nxp B.V. | Controller area network (can) device and method for operating a can device |
US10361934B2 (en) * | 2015-09-28 | 2019-07-23 | Nxp B.V. | Controller area network (CAN) device and method for controlling CAN traffic |
JP6836340B2 (ja) | 2015-09-29 | 2021-02-24 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 不正検知電子制御ユニット、車載ネットワークシステム及び通信方法 |
WO2017083862A1 (en) * | 2015-11-12 | 2017-05-18 | Mercury Systems, Inc. | Broadcast bus frame filter |
US20170235698A1 (en) * | 2016-02-12 | 2017-08-17 | Nxp B.V. | Controller area network (can) message filtering |
US10701102B2 (en) * | 2017-10-03 | 2020-06-30 | George Mason University | Hardware module-based authentication in intra-vehicle networks |
US11609574B2 (en) * | 2018-11-13 | 2023-03-21 | FLIR Belgium BVBA | Extrinsic sensor calibration systems and methods |
EP3772839B1 (en) | 2019-08-06 | 2023-01-04 | Nxp B.V. | Security module for a serial communications device |
EP3772840B1 (en) | 2019-08-06 | 2023-03-15 | Nxp B.V. | A security module for a can node |
-
2019
- 2019-08-06 EP EP19190363.2A patent/EP3772841B1/en active Active
-
2020
- 2020-07-28 CN CN202010747735.6A patent/CN112347023B/zh active Active
- 2020-08-04 US US16/984,859 patent/US11677779B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475523A (zh) * | 2013-09-10 | 2013-12-25 | 浙江大学 | 带总线错误解析功能的can总线分析系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3772841A1 (en) | 2021-02-10 |
EP3772841B1 (en) | 2023-06-14 |
US11677779B2 (en) | 2023-06-13 |
CN112347023A (zh) | 2021-02-09 |
US20210044615A1 (en) | 2021-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112347023B (zh) | 用于can节点的安全模块 | |
CN112347022B (zh) | 用于can节点的安全模块 | |
EP3206361B1 (en) | Controller area network (can) message filtering | |
US10361934B2 (en) | Controller area network (CAN) device and method for controlling CAN traffic | |
US10868817B2 (en) | Systems and methods for neutralizing masquerading attacks in vehicle control systems | |
EP3435617B1 (en) | A node, a vehicle, an integrated circuit and method for updating at least one rule in a controller area network | |
US11463198B2 (en) | Security module for a serial communications device | |
US10462161B2 (en) | Vehicle network operating protocol and method | |
US11789886B2 (en) | Controller area network device | |
Kwon et al. | Mitigation mechanism against in-vehicle network intrusion by reconfiguring ECU and disabling attack packet | |
US20230198800A1 (en) | Apparatus for a controller area network | |
US12028184B2 (en) | Controller area network module and method for the module | |
EP4304135A1 (en) | Controller area network (can) transceiver, can node, can system and method for the can transceiver | |
EP4344150A1 (en) | Controller area network system and a method for the system | |
CN116266804A (zh) | 用于控制器局域网的设备 | |
CN115643038A (zh) | 总线系统中经由接收线路的帧无效 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |