CN114915403A - 车辆计算装置认证 - Google Patents
车辆计算装置认证 Download PDFInfo
- Publication number
- CN114915403A CN114915403A CN202210112396.3A CN202210112396A CN114915403A CN 114915403 A CN114915403 A CN 114915403A CN 202210112396 A CN202210112396 A CN 202210112396A CN 114915403 A CN114915403 A CN 114915403A
- Authority
- CN
- China
- Prior art keywords
- vehicle
- message
- computing device
- request
- cmac
- 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.)
- Pending
Links
Images
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/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/02—Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
- B60W50/0205—Diagnosing or detecting failures; Failure detection models
-
- 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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/1396—Protocols specially adapted for monitoring users' activity
-
- 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/28—Timers or timing mechanisms used in protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
- H04W12/106—Packet or message integrity
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/02—Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
- B60W50/0205—Diagnosing or detecting failures; Failure detection models
- B60W2050/021—Means for detecting failure or malfunction
-
- 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
-
- 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/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/84—Vehicles
-
- 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
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
- H04W12/121—Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
- H04W12/122—Counter-measures against attacks; Protection against rogue devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Power Engineering (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Small-Scale Networks (AREA)
- Lock And Its Accessories (AREA)
Abstract
本公开提供了“车辆计算装置认证”。监测车辆的车载通信网络以检测请求消息,所述请求消息包括第一基于密码的消息认证码(CMAC)和请求。基于所述请求消息来确定质询消息。所述质询消息包括计数器和从随机数生成器输出的随机数。基于所述质询消息和所述请求来生成第二CMAC。基于确定所述第二CMAC与所述第一CMAC匹配来对所述请求消息进行认证。基于所述认证的请求消息来操作所述车辆。
Description
技术领域
本公开总体上涉及车辆计算机,并且更具体地涉及认证车辆计算装置。
背景技术
车辆可以被配备有计算机、网络、传感器和/或控制器以获取关于车辆环境的数据和/或操作车辆部件。车辆传感器可以提供关于车辆的环境(例如,有关要行驶的路线和在车辆的环境中要避开的对象)的数据。各种计算装置或控制器(诸如电子控制单元(ECU))可以设置在车辆中并且可以经由车辆网络进行通信。经由车辆网络发送和接收的消息可以与操作车辆有关,并且可以包括传感器数据、致动命令、故障报告等。车辆计算装置可以操作车辆并基于从传感器和/或计算装置接收的数据做出实时决策。
发明内容
一种系统包括计算机,所述计算机包括处理器和存储器,所述存储器存储指令,所述指令可由所述处理器执行以监测车辆的车载通信网络以检测请求消息,所述请求消息包括第一基于密码的消息认证码(CMAC)和请求。所述指令还包括用于基于所述请求消息来识别质询消息的指令。所述质询消息包括计数器和从随机数生成器输出的随机数。所述指令还包括用于基于所述质询消息和所述请求来生成第二CMAC的指令。所述指令还包括用于基于确定所述第二CMAC与所述第一CMAC匹配来对所述请求消息进行认证的指令。所述指令还包括用于基于所述认证的请求消息来操作所述车辆的指令。
可以通过将所述质询消息和所述请求输入到加密程序来生成所述第二CMAC,所述加密程序基于认证密钥对所述质询消息和所述请求进行编码。
所述指令还可以包括用于基于确定所述第二CMAC与所述第一CMAC不匹配来忽略所述请求消息的指令。
所述指令还可以包括用于基于确定所述第二CMAC与所述第一CMAC不匹配来将与所述请求消息相关联的车载计算装置识别为入侵者装置的指令。
所述指令还可以包括用于防止与所述入侵者装置进行通信的指令。
所述指令还可以包括用于基于计时器到期来生成所述质询消息并经由所述车载通信网络提供所述质询消息的指令。
所述指令还可以包括用于通过在经由所述车载通信网络提供所述质询消息之后将所述计数器递增来更新所述质询消息的指令。
所述系统可以包括车载计算装置,所述车载计算装置包括第二处理器和第二存储器,所述第二存储器存储指令,所述指令可由所述第二处理器执行以监测所述车载通信网络以检测所述质询消息。所述指令还可以包括用于在检测到所述质询消息时通过将所述质询消息和所述请求输入到加密程序来生成所述第一CMAC的指令,所述加密程序基于认证密钥对所述质询消息和所述请求进行编码。所述指令还可以包括用于然后生成所述请求消息并经由所述车载通信网络提供所述请求消息的指令。
所述指令还可以包括用于存储包括相应计数器的多个质询消息的指令。所述指令还可以包括用于基于确定所述请求消息中包括的计数器与一个存储的质询消息中包括的所述计数器匹配来确定所述质询消息的指令。
所述指令还可以包括用于基于确定所述请求消息中包括的所述计数器与任何存储的质询消息中包括的所述计数器不匹配来忽略所述请求消息的指令。
所述指令还可以包括用于致动一个或多个车辆部件以执行所述认证的请求消息中包括的所述请求的指令。
所述指令还可以包括用于发起与和所述认证的请求消息相关联的车载计算装置的通信的指令。
一种方法包括监测车辆的车载通信网络以检测请求消息,所述请求消息包括第一基于密码的消息认证码(CMAC)和请求。所述方法还包括基于所述请求消息来识别质询消息。所述质询消息包括计数器和从随机数生成器输出的随机数。所述方法还包括基于所述质询消息和所述请求来生成第二CMAC。所述方法还包括基于确定所述第二CMAC与所述第一CMAC匹配来对所述请求消息进行认证。所述方法还包括基于所述认证的请求消息来操作所述车辆。
可以通过将所述质询消息和所述请求输入到加密程序来生成所述第二CMAC,所述加密程序基于认证密钥对所述质询消息和所述请求进行编码。
所述方法还可以包括基于确定所述第二CMAC与所述第一CMAC不匹配来忽略所述请求消息。
所述方法还可以包括基于计时器到期来生成所述质询消息并经由所述车载通信网络提供所述质询消息。
所述方法还可以包括监测所述车载通信网络以检测所述质询消息。所述方法还可以包括在检测到所述质询消息时通过将所述质询消息和所述请求输入到加密程序来生成所述第一CMAC,所述加密程序基于认证密钥对所述质询消息和所述请求进行编码。所述方法还可以包括然后生成所述请求消息并经由所述车载通信网络提供所述请求消息。
所述方法还可以包括存储包括相应计数器的多个质询消息。所述方法还可以包括基于确定所述请求消息中包括的计数器与一个存储的质询消息中包括的所述计数器匹配来确定所述质询消息。
所述方法还可以包括基于确定所述请求消息中包括的所述计数器与任何存储的质询消息中包括的所述计数器不匹配来忽略所述请求消息。
所述方法还可以包括致动一个或多个车辆部件以执行所述认证的请求消息中包括的所述请求。
本文还公开了一种计算装置,所述计算装置被编程为执行上述方法步骤中的任一者。本文还公开了一种计算机程序产品,所述计算机程序产品包括计算机可读介质,所述计算机可读介质存储可由计算机处理器执行以执行上述方法步骤中的任一者的指令。
附图说明
图1是示出用于车辆的示例性车辆控制系统的框图。
图2A是示出示例性消息的框图。
图2B是示出示例性排列程序的框图。
图2C是示出示例性质询消息的框图。
图3是用于在第一车辆计算装置中生成第一基于密码的消息认证码(CMAC)的示例性过程的流程图。
图4是用于对第一车辆计算装置进行认证的示例性过程的流程图。
具体实施方式
第一车辆计算装置可以向第二车辆计算装置提供请求消息。所述请求消息可以包括请求、质询消息和第一基于密码的消息认证码(CMAC)。在接收到请求消息时,第二车辆计算装置可以对请求和质询消息进行编码以生成第二CMAC。如果第二CMAC与第一CMAC匹配,则第二车辆计算装置对请求消息进行认证,这提供了针对第二计算装置作用于虚假数据的可能性的保护措施。
如本文所公开的,可以降低车辆计算装置将发送、接收和/或作用于虚假(例如,被攻击者欺骗的)数据的风险,所述数据是由未授权源(即,除车辆传感器或车辆通信网络上的其他已授权的计算装置中的一者之外的源)注入到车辆通信网络中的数据。例如,在车辆操作期间,由传感器捕获的数据包括在由车辆计算装置接收的消息中。基于所述数据,车辆计算装置可以对执行车辆操作的车辆部件生成控制信号。然而,如果提供给车辆计算装置的数据不真实,则可能会出现问题。不真实数据的示例可以包括经由注入式攻击(injection attack)呈现给车辆计算装置的数据。当虚假数据(例如,与车辆传感器检测到的数据不同的数据)被恶意上传到车辆通信网络时,发生注入式攻击。
有利地,在从第二车辆计算装置接收到质询消息时,第一车辆计算装置可以基于质询消息和请求来生成第一CMAC。然后,第一车辆计算装置向第二车辆计算装置提供请求消息,所述请求消息包括请求、第一CMAC和质询消息。第二车辆计算装置可以基于质询消息和请求来生成第二CMAC。第二车辆计算装置可以基于第一CMAC与第二CMAC匹配来对请求消息进行认证,这可以降低第二车辆计算装置基于来自未授权源的数据来操作车辆的可能性。
参考图1至图2,示例性车辆控制系统100包括车辆105。车辆105中的多个车辆计算装置110从传感器115接收数据。车辆计算装置110被编程为监测车辆105的车载通信网络以检测请求消息200,所述请求消息包括第一基于密码的消息认证码(CMAC)和请求240。车辆计算装置110还被编程为基于请求消息200来确定质询消息220。质询消息220包括计数器和从随机数生成器输出的随机数。第二车辆计算装置110还被编程为基于质询消息220和请求240来生成第二CMAC。第二车辆计算装置110还被编程为基于确定第二CMAC与第一CMAC匹配对请求消息200进行认证。车辆计算装置110还被编程为基于认证的请求消息200来操作车辆105。
现在转到图1,车辆105通常包括车辆计算装置110、传感器115、用于致动各种车辆部件125的致动器120以及车辆通信模块130。通信模块130允许车辆计算装置110例如经由消息传递或广播协议(诸如专用短程通信(DSRC)、蜂窝和/或可以支持车辆对车辆、车辆对基础设施、车辆对云通信等的其他协议)和/或经由分组网络135与远程服务器计算机140和/或其他车辆进行通信。
每个车辆计算装置110通常包括诸如已知的处理器和存储器。存储器包括一种或多种形式的计算机可读介质,并且存储指令,所述指令可由车辆计算装置110执行以用于执行包括如本文所公开的各种操作。此外,每个车辆计算装置110可以是具有如上所述的处理器和存储器的通用计算机,和/或可以包括专用电子电路,所述专用电子电路包括针对特定操作而制造的ASIC,例如,用于处理传感器数据和/或传送传感器数据的ASIC。在另一个示例中,每个车辆计算装置110可以包括FPGA(现场可编程门阵列),所述FPGA是被制造为可由用户配置的集成电路。通常,在电子设计自动化中使用诸如VHDL(超高速集成电路硬件描述语言)的硬件描述语言来描述诸如FPGA和ASIC的数字和混合信号系统。例如,ASIC是基于制造前提供的VHDL编程而制造的,而FPGA内部的逻辑部件可基于例如存储在电连接到FPGA电路的存储器中的VHDL编程而配置。在一些示例中,一个或多个处理器、一个或多个ASIC和/或FPGA电路的组合可以包括在每个车辆计算装置110中。
车辆计算装置110可以以自主模式、半自主模式或非自主(或手动)模式操作和/或监测车辆105,即,可以控制和/或监测车辆105的操作,包括控制和/或监测部件125。出于本公开的目的,自主模式被限定为其中车辆105的推进、制动和转向中的每一者都由车辆计算装置110控制的模式;在半自主模式中,车辆计算装置110控制车辆105的推进、制动和转向中的一者或两者;在非自主模式中,人类操作员控制车辆105的推进、制动和转向中的每一者。
车辆计算装置110可以包括编程以操作车辆105制动、推进(例如,通过控制内燃发动机、电动马达、混合动力发动机等中的一者或多者来控制车辆105的加速)、转向、变速器、气候控制、内部灯和/或外部灯、喇叭、车门等中的一者或多者,以及确定车辆计算装置110(而非人类操作员)是否以及何时控制此类操作。
车辆计算装置110可以包括一个以上处理器或例如经由如下面进一步描述的车辆通信网络(诸如通信总线)通信地联接到所述一个以上处理器,例如,计算装置110可以是包括在车辆105中用于监测和/或控制各种车辆部件125的电子控制单元(ECU)等,所述电子控制单元例如变速器控制器、制动控制器、转向控制器等。车辆计算装置110通常被布置用于在车辆通信网络上进行通信,所述车辆通信网络可以包括车辆105中的总线,诸如控制器局域网(CAN)等,和/或其他有线和/或无线机制。
经由车辆105网络,每个车辆计算装置110可以向车辆105中的各种装置传输消息和/或从各种装置(例如,传感器115、致动器120、其他车辆计算装置110等)接收消息(例如,CAN消息)。此外,如下所述,各种控制器和/或传感器115可以经由车辆通信网络向车辆计算装置110提供数据。
车辆105传感器115可以包括诸如已知的用于向车辆计算装置110提供数据的多种装置。例如,传感器115可以包括设置在车辆105的顶部上、在车辆105的前挡风玻璃后面、在车辆105周围等的光探测和测距(激光雷达)传感器115等,所述传感器提供车辆105周围的对象的相对位置、大小和形状。作为另一个示例,固定到车辆105保险杠的一个或多个雷达传感器115可以提供数据来提供对象、第二车辆等相对于车辆105的位置的位置。替代地或另外,传感器115还可以例如包括相机传感器115(例如,前视、侧视等),所述相机传感器提供来自车辆105周围的区域的图像。在本公开的上下文中,对象是具有质量并可以通过可以由传感器115检测到的物理现象(例如,光或其他电磁波或声音等)来表示的物理(即,物质)物品。因此,车辆105以及包括如下面所讨论的其他车辆和其他物品都落在本文的“对象”的定义内。
每个车辆计算装置110被编程为基本上连续地、周期性地和/或在远程服务器计算机140指示时等从一个或多个传感器115接收数据。数据可以例如包括车辆105的位置。位置数据指定地面上的一个或多个点并可以为已知形式,例如经由已知的使用全球定位系统(GPS)的导航系统获得的地理坐标,诸如纬度和经度坐标。另外或替代地,数据可以包括对象(例如,车辆、标志、树等)相对于车辆105的位置。作为一个示例,数据可以是车辆105周围的环境的图像数据。在这样的示例中,图像数据可以包括道路上或沿道路的一个或多个对象和/或标志,例如车道标志。本文的图像数据意指可以由相机传感器115获取的数字图像数据,例如,包括具有强度值和颜色值的像素。传感器115可以安装到车辆105中或上的任何合适的位置,例如,在车辆105保险杠上、在车辆105的车顶上等,以收集车辆105周围的环境的图像。
车辆105致动器120经由可以根据如已知的适当控制信号来致动各种车辆子系统的电路、芯片或其他电子和/或机械部件来实施。致动器120可以用于控制部件125,包括车辆105的制动、加速和转向。
在本公开的上下文中,车辆部件125是适于执行机械或机电功能或操作(诸如使车辆105移动、使车辆105减速或停止、使车辆105转向等)的一个或多个硬件部件。部件125的非限制性示例包括推进部件(其包括例如内燃发动机和/或电动马达等)、变速器部件、转向部件(例如,其可包括方向盘、转向齿条等中的一者或多者)、悬架部件(例如,其可包括阻尼器例如减振器或滑柱、套管、弹簧、控制臂、球头节、连杆等中的一者或多者)、制动部件、停车辅助部件、自适应巡航控制部件、自适应转向部件、一个或多个被动约束系统(例如,安全气囊)、可移动座椅等。
另外,车辆计算装置110可以被配置用于经由车辆对车辆通信模块130或接口与车辆105外部的装置通信,例如,通过车辆对车辆(V2V)或车辆对基础设施(V2X)无线通信(蜂窝和/或DSRC等)与另一车辆和/或远程服务器计算机140(通常经由直接射频通信)通信。通信模块130可以包括车辆的计算机可以通过其进行通信的一种或多种机制,诸如收发器,包括无线(例如,蜂窝、无线、卫星、微波和射频)通信机制的任何期望组合以及任何期望网络拓扑(或当利用多种通信机制时的多种拓扑)。经由通信模块130提供的示例性通信包括提供数据通信服务的蜂窝、蓝牙、IEEE 802.11、专用短程通信(DSRC)、蜂窝V2X(CV2X)和/或包括互联网的广域网(WAN)。为了方便起见,标签“V2X”在本文中用于通信,所述通信可以是车辆对车辆(V2V)和/或车辆对基础设施(V2I),并且可以由通信模块130根据到任何合适的短程通信机制(例如,DSRC、蜂窝等)而提供。
网络135表示车辆计算装置110可以借助其来与远程计算装置(例如,远程服务器计算机140、远程车辆计算装置等)进行通信的一种或多种机制。因此,网络135可以是各种有线或无线通信机制中的一者或多者,包括有线(例如,电缆和光纤)和/或无线(例如,蜂窝、无线、卫星、微波和射频)通信机制的任何期望的组合以及任何期望的网络拓扑(或利用多种通信机制时的多种拓扑)。示例性通信网络包括提供数据通信服务的无线通信网络(例如,使用低功耗(BLE)、IEEE 802.11、车辆对车辆(V2V)诸如专用短程通信(DSRC)等)、局域网(LAN)和/或包括互联网的广域网(WAN)。
远程服务器计算机140可以是被编程为提供诸如本文公开的操作的常规计算装置,即,包括一个或多个处理器和一个或多个存储器。此外,可以经由网络135(例如,互联网、蜂窝网络和/或某一其他广域网)来访问远程服务器计算机140。
控制系统100中的多个车辆计算装置110可以对请求消息200进行认证。车辆105可以包括不对请求消息200进行认证的其他ECU或计算装置,包括车辆网络上的其他ECU或计算装置。车辆计算装置110可以被编程为监测车辆通信网络以检测来自另一车辆计算装置110的质询消息220。例如,第一车辆计算装置110可以经由车辆通信网络从第二车辆计算装置110接收一个或多个质询消息220。质询消息220包括如下面进一步讨论的计数器和随机数。
第一车辆计算装置110可以例如基于传感器115数据生成请求240,即,对数据或命令的查询。例如,第一车辆计算装置110可以从监测一个或多个车辆部件125的一个或多个传感器115获得传感器115数据。众所周知,第一车辆计算装置110可以被编程为然后对数据(诸如描述对象的数据、描述车辆105工况(诸如速度、航向等)的数据、关于车辆105的规划路线的数据等)进行编码和序列化(即,转换为位串),使得所述数据可以作为请求240包括在请求消息200中。在生成请求240之前,第一车辆计算装置110可以忽略来自第二车辆计算装置110的任何检测到的质询消息220。在生成请求240之后,第一车辆计算装置110可以选择经由车辆通信网络检测到的质询消息220。
第一车辆计算装置110被编程为基于选定质询消息220和请求240来生成请求消息200。请求消息200通常包括报头205和有效载荷210(参见图2A)。报头205可以包括源标识符(例如,识别生成请求消息200的车辆计算装置110的位串)、消息类型、消息大小等。有效载荷210可以包括各种数据,即,消息内容。有效载荷可以包括子有效载荷或有效载荷片段215-1、215-2、215-3(统称为有效载荷片段215)。图2A中的相应有效载荷片段215被示出为具有不同的长度,以反映不同的有效载荷片段215可以包括各种数据量,并且因此可以具有不同的大小。
请求消息200的有效载荷210包括请求240。在生成请求240时,第一车辆计算装置110可以将请求240包括在请求消息200的有效载荷210(例如,指定有效载荷片段215)中。另外,请求消息200的有效载荷210包括选定质询消息220。例如,第一车辆计算装置110可以包括将选定质询消息220包括在请求消息200的有效载荷210(例如,指定有效载荷片段215)中。替代地,第一车辆计算装置110可以包括将选定质询消息220的一部分(例如,计数器或随机数)包括在请求消息200的有效载荷210(例如,指定有效载荷片段215)中。作为一个示例,第一车辆计算装置110可以例如基于选定质询消息220的指定有效载荷片段235(如下面所讨论的)来识别选定质询消息220中的计数器。例如,第一车辆计算装置110可以访问选定质询消息220的指定有效载荷片段235并检索计数器。第一车辆计算装置110然后可以包括将计数器包括在请求消息200的有效载荷210(例如,指定有效载荷片段215)中。
另外,请求消息200的有效载荷210包括第一CMAC。第一车辆计算装置110可以基于请求240和选定质询消息220来生成第一CMAC。CMAC对于每个请求消息200是唯一的,因为每个质询消息220都是唯一的。即,针对不同的质询消息220生成不同的CMAC。具体地,通过将计数器递增和/或通过生成随机数来生成每个质询消息220。因此,每个质询消息220与先前质询消息220不同,即,针对每个后续质询消息220将计数器递增和/或针对每个后续质询消息220生成新的随机数。因此,从质询消息220生成的CMAC将是不同的。
在生成第一CMAC时,第一车辆计算装置110可以将第一CMAC包括在请求消息200的有效载荷210(例如,指定有效载荷片段215)中。在一个示例中,第一车辆计算装置110可以基于指定有效载荷片段215的长度来截断第一CMAC。即,第一车辆计算装置110可以移除第一CMAC的一部分,使得截断的第一CMAC的长度等于指定有效载荷片段215的长度。可以将包括对应长度的指定有效载荷片段215存储在例如车辆计算装置110的相应存储器中。
为了生成第一CMAC,第一车辆计算装置110可以将第一输入消息245和认证密钥输入到排列程序250,所述排列程序基于认证密钥对第一输入消息245进行编码(参见图2B)。第一车辆计算装置110可以通过组合(例如,级联)选定质询消息220(如上文讨论,其可以是整个质询消息220或其一部分)和请求240来生成第一输入消息245。例如,第一车辆计算装置110可以组合选定质询消息220中的计数器与请求240来生成第一输入消息245。
排列程序250(有时称为排列生成器)可以是常规的加密程序,例如,高级加密标准(AES)算法。排列程序250可以按认证密钥指定的顺序重新排列第一输入消息245中的数据。即,排列程序250根据从认证密钥生成的块密码对第一输入消息245的每个部分执行替换、改变第一输入消息245中的片段的顺序或数学操作中的一者或多者。例如,如果排列程序250是AES算法,则第一车辆计算装置110可以识别第一输入消息245的16位部分,在所述16位部分与认证密钥之间应用“异或”函数(即,XOR函数)以生成第一舍入串,并将第一舍入串布置为4x4网格。然后,第一车辆计算装置110可以执行以下一项:(1)将4x4网格的行内的位的相应位置移位,(2)用已知的替换位替换4x4网格中的位中的一者,(3)将4x4网格的列内的位的相应位置移位;或(4)按预定整数缩放位的值。移位、缩放和替换算法是根据特定的排列程序250来确定。第一车辆计算装置110可以对第一输入消息245执行排列程序250以生成第一CMAC。
第一车辆计算装置110可以例如从第一车辆计算装置110的存储器中检索认证密钥。认证密钥是预定字母数字字符集合。例如,认证密钥可以是在常规加密程序(例如,Diffie-Hellman交换、RSA加密、AES等)中使用的加密密钥。认证密钥可以例如由车辆105和/或计算装置110的制造商指定。每个车辆计算装置110可以例如经由网络135从远程服务器计算机140接收认证密钥,并且可以将认证密钥存储在例如相应的存储器中。
在生成请求消息200时,第一车辆计算装置110可以向第二车辆计算装置110提供请求消息200。例如,第一车辆计算装置110可以例如经由车辆通信网络向第二车辆计算装置110发送请求消息200。
如上所述,第二车辆计算装置110被编程为向第一车辆计算装置110提供多个质询消息220。例如,第二车辆计算装置110可以例如经由车辆通信网络向第一车辆计算装置110传输质询消息220。第二车辆计算装置110被编程为基于计时器到期来提供质询消息220。例如,在提供第一质询消息220时,第二车辆计算装置110可以发起计时器。当计时器到期时,第二车辆计算装置110可以提供更新的质询消息220(例如包括递增的计数器),并且重置计时器。计时器的持续时间是预定时间,例如500毫秒、1秒、5秒等。计时器的持续时间可以存储在例如第二车辆计算装置110的存储器中。作为另一个示例,第二车辆计算装置110可以在生成新的随机数时提供更新的质询消息220(如下文所讨论)。
类似于请求消息200,质询消息220包括报头225和有效载荷230(参见图2C)。报头225可以包括标识符(例如,识别第二车辆计算装置110的位串)、消息类型、消息大小等。有效载荷230可以包括各种数据,即,消息内容。有效载荷可以包括子有效载荷或有效载荷片段235-1、235-2、235-3(统称为有效载荷片段235)。图2C中的相应有效载荷片段235被示出为具有不同的长度,以反映不同的有效载荷片段235可以包括各种数据量,并且因此可以具有不同的大小。质询消息220的有效载荷235例如在指定有效载荷片段235中包括计数器和随机数。
第二车辆计算装置110可以将计数器存储在例如第二车辆计算装置110的存储器中。计数器是质询消息220的唯一标识符。计数器可以例如指示已经经由车辆通信网络传输的质询消息220的数量。当在车辆通信网络上提供质询消息220时,第二车辆计算装置110可以将存储在相应存储器中的计数器递增。在将计数器递增时,第二车辆计算装置110可以例如在存储器中将计数器覆写为递增的计数器。
可以使用随机数生成器来生成随机数。“随机数生成器”是当以初始值作为种子时生成数字序列的算法。即,随机数生成器(RNG)是为每个初始种子数生成指定序列的确定性算法;在本文档的上下文中,对随机数生成器的引用是指计算机领域中所理解的“伪随机数生成器”,即,基于初始种子数生成数字序列的数字生成器。换句话说,第二车辆计算装置110可以通过使用RNG基于初始种子数来生成随机(或伪随机)数序列。RNG可以是常规算法,例如,Lehmer生成器、Mersenne Twister、高级随机化系统、Philox等。在本文档中,“种子”在计算机领域中具有其常规含义,即,在本文档中,“种子”意味着指定RNG算法的初始条件,所述初始条件将随机数生成器初始化以基于特定初始条件(即,种子值)生成特定数字序列。
第二车辆计算装置110可以例如将第二CMAC的移除部分(如下面所讨论)作为种子值输入到随机数生成器中。在这样的示例中,第二车辆计算装置110可以在生成第二CMAC之后生成新的随机数。即,在生成第二CMAC时,第二车辆计算装置可以移除第二CMAC的一部分并将所移除的部分输入到RNG以生成新的随机数。作为另一个示例,第二车辆计算装置110可以将当前时间作为种子值输入到随机数生成器中。在这样的示例中,第二车辆计算装置110可以在预定时间(例如,500毫秒、1秒、30秒等)之后生成新的随机数。第二车辆计算装置110可以将新的随机数包括在更新的质询消息220中,如上所述。
在生成质询消息220时,第二车辆计算装置110可以将质询消息220存储在例如第二车辆计算装置110的存储器中。第二车辆计算装置110可以存储多个质询消息220。当第二车辆计算装置110已经存储了指定数量(例如,四个、八个、十六个等)的质询消息220时,第二车辆计算装置110被编程为将时间上最早的存储的质询消息220覆写为随后生成的质询消息220。存储的质询消息220可以包括在查找表等中。存储的质询消息220的数量可以由车辆105和/或部件125制造商指定并存储在第二车辆计算装置110的存储器中。
第二车辆计算装置110被编程为监测车辆通信网络以检测来自另一车辆计算装置110的请求消息200(如上文讨论)。例如,第二车辆计算装置110可以经由车辆通信网络从第一车辆计算装置110接收一个或多个请求消息200。
在接收到请求消息200时,第二车辆计算装置110可以基于请求消息200来识别选定质询消息220。例如,第二车辆计算装置110可以例如基于指定有效载荷片段215识别请求消息200中包括的质询消息220。例如,第二车辆计算装置110可以访问指定有效载荷片段215并检索请求消息200中包括的质询消息220。然后,第二车辆计算装置110可以将请求消息200中包括的质询消息220与多个存储的质询消息220进行比较。第二车辆计算装置110基于请求消息200中包括的质询消息220与存储的质询消息220匹配来识别选定质询消息220。如果请求消息200中包括的质询消息220与任何存储的质询消息220不匹配,则第二车辆计算装置110可以忽略请求消息200。另外或替代地,第二车辆计算装置110可以将第一车辆计算装置110识别为入侵者装置。如本文所使用的,“入侵者装置”是未被授权访问车辆通信网络(例如,以与车辆通信网络上的车辆计算装置110、传感器115等共享数据)的计算装置。
作为另一个示例,第二车辆计算装置110可以例如基于指定有效载荷片段215识别请求消息200中的质询消息220的一部分,例如计数器。例如,第二车辆计算装置110可以访问指定有效载荷片段215并检索计数器。然后,第二车辆计算装置110可以将请求消息200中包括的计数器与多个存储的质询消息220中包括的相应计数器进行比较。第二车辆计算装置110基于请求消息200中包括的计数器与存储的质询消息220中包括的计数器匹配来识别选定质询消息220。如果请求消息200中包括的计数器与任何存储的质询消息220中的计数器不匹配,则第二车辆计算装置110可以忽略请求消息200和/或将第一车辆计算装置110识别为入侵者装置。
另外,第二车辆计算装置110可以例如基于指定有效载荷片段215识别请求消息200中的请求240。例如,第二车辆计算装置110可以访问指定有效载荷片段215并检索请求240。然后,第二车辆计算装置110可以例如以与上面关于第一CMAC基本上相同的方式基于请求240和选定质询消息220来生成第二CMAC。例如,第二车辆计算装置110可以通过组合(例如,级联)选定质询消息220与请求240来生成第二输入消息。然后,第二车辆计算装置110可以将第二输入消息输入到排列程序250中以基于认证密钥生成第二CMAC。在第一车辆计算装置110例如基于指定有效载荷片段215的长度截断第一CMAC的情况下,第二车辆计算装置110可以类似地截断第二CMAC。即,第二车辆计算装置110可以移除第二CMAC的一部分,使得截断的第二CMAC的长度等于第一CMAC的长度,即,指定有效载荷片段215的长度。在截断第二CMAC之后,第二车辆计算装置110可以将第二CMAC的移除部分输入到RNG中,如上文所讨论的。
然后,第二车辆计算装置110将第二CMAC(如上文所讨论,其可以是整个第二CMAC或其截断部分)与第一CMAC(如上文所讨论,其可以是整个第一CMAC或其截断部分)进行比较。如果第二CMAC与第一CMAC匹配,则第二车辆计算装置110对请求消息200进行认证。在这种情况下,第二车辆计算装置110可以作用于认证的请求消息200来操作车辆105。例如,第二车辆计算装置110可以基于认证的请求消息200中包括的请求240来发起与第一车辆计算装置110的通信。作为另一个示例,第二车辆计算装置110可以基于认证的请求消息200中包括的请求240来生成控制信号以致动一个或多个车辆部件125,例如,以调整车辆105的速度、航向等。
如果第二CMAC与第一CMAC不匹配,则第二车辆计算装置110可以确定是入侵者装置提供请求消息200。在这种情况下,第二车辆计算装置110忽略请求消息200,这有利地提供了针对第二车辆计算装置110将作用于虚假数据的可能性的保护措施。另外,第二车辆计算装置110可以防止入侵者装置与第二车辆计算装置110之间的通信。
图3是用于生成第一CMAC的示例性过程300的图式。过程300开始于框305。过程300可以由车辆105中所包括的第一车辆计算装置110来执行,所述车辆计算机执行存储在其存储器中的程序指令。
在框305中,第一车辆计算装置110监测车辆通信网络以检测来自第二车辆计算装置110的质询消息220。例如,第一车辆计算装置110可以例如经由车辆通信网络从第二车辆计算装置110接收一个或多个质询消息220。过程300在框310中继续。
在框310中,第一车辆计算装置110确定是否生成请求240。例如,第一车辆计算装置110可以基于传感器115数据生成请求240,例如,以查询数据或做出命令,如上文所讨论。如果第一车辆计算装置110生成请求240,则第一车辆计算装置110选择在车辆通信网络上检测到的质询消息220,并且过程300在框315中继续。如果第一车辆计算装置110未能生成请求240,则第一车辆计算装置110忽略在车辆通信网络上检测到的质询消息220,并且过程300返回到框310。
在框315中,第一车辆计算装置110基于请求240和质询消息220来生成第一CMAC。例如,第一车辆计算装置110可以通过组合(例如,级联)请求240与选定质询消息220来生成第一输入消息245,如上文所讨论。然后,第一车辆计算装置110可以将第一输入消息245和例如从第一车辆计算装置110的存储器接收的认证密钥输入到生成第一CMAC的排列程序250中,如上面所讨论。在生成第一CMAC时,第一车辆计算装置110可以截断第一CMAC,如上面所讨论。过程300在框320中继续。
在框320中,第一车辆计算装置110经由车辆通信网络提供请求消息200。第一车辆计算装置110可以通过将第一CMAC(如刚刚讨论的那样可以被截断)、请求240和质询消息220(其可以是整个选定质询消息220或其一部分,如上文所讨论)包括在请求消息200中的有效载荷210中(例如,在指定有效载荷片段215中)来生成请求消息200。在生成请求消息200时,第一车辆计算装置110可以例如经由车辆通信网络向第二车辆计算装置110发送请求消息200。过程300在框320之后结束。
图4是用于对来自第一车辆计算装置110的请求消息200进行认证的示例性过程400的流程图。过程400在框405中开始。过程400可以由车辆105中所包括的第二车辆计算装置110来执行,所述第二车辆计算机执行存储在其存储器中的程序指令。
在框405中,第二车辆计算装置110经由车辆通信网络向其他车辆计算装置110提供多个质询消息220。质询消息220包括计数器和随机数。可以使用如上文讨论的随机数生成器来生成随机数。第二车辆计算装置110可以将计数器存储在例如第二车辆计算装置110的存储器中。如上面所讨论的,第二车辆计算装置110可以通过将计数器和随机数包括在质询消息220的有效载荷230(例如,指定有效载荷片段235)中来生成质询消息220。在生成质询消息220时,第二车辆计算装置110可以例如经由车辆通信网络向第一车辆计算装置110传输质询消息220。另外,第二车辆计算装置110将质询消息220存储在例如查找表中,如上面所讨论的。
当在车辆通信网络上提供质询消息220时,第二车辆计算装置110可以将存储在例如第二车辆计算装置110的存储器中的计数器递增。第二车辆计算装置110可以基于计时器到期来提供更新的质询消息220,如上文所讨论。例如,当计时器到期时,第二车辆计算装置110可以提供更新的质询消息220,例如,所述更新的质询消息包括递增的计数器。另外或替代地,第二车辆计算装置110可以基于将第二CMAC的移除部分输入到随机数生成器中来提供更新的质询消息220,所述更新的质询消息包括新的随机数,如上文所讨论的。过程400在框410中继续进行。
在框410中,第二车辆计算装置110确定是否已经从第一车辆计算装置110接收到请求消息200。第二车辆计算装置110可以监测车辆通信网络以从一个或多个其他车辆计算装置110接收一个或多个请求消息200。例如,第二车辆计算装置110可以从第一车辆计算装置110接收请求消息200。如果第二车辆计算装置110接收到请求消息200,则过程400在框415中继续。否则,过程400返回到框405。
在框415中,第二车辆计算装置110基于请求消息200(例如,指定有效载荷片段215)识别选定质询消息220。例如,第二车辆计算装置110可以访问请求消息200的指定有效载荷片段215并检索请求消息200中包括的质询消息220。然后,第二车辆计算装置110可以将请求消息200中包括的质询消息220与多个存储的质询消息220进行比较,如上文所讨论。过程400在框420中继续。
在框420中,第二车辆计算装置110将选定质询消息220与多个存储的质询消息220进行比较。第二车辆计算装置110基于请求消息200中包括的质询消息220与存储的质询消息220匹配来识别选定质询消息220。如果选定质询消息220与存储的质询消息240匹配,则过程400在框425中继续。否则,过程400在框440中继续。
在框425中,第二车辆计算装置110基于请求消息200中包括的选定质询消息220和请求240来生成第二CMAC。例如,第二车辆计算装置110可以通过组合(例如,级联)选定质询消息220与请求240来生成第二输入消息。然后,第二车辆计算装置110可以将第二输入消息和例如从第二车辆计算装置110的存储器接收的认证密钥输入到生成第二CMAC的排列程序250中,如上面所讨论。在生成第二CMAC时,第二车辆计算装置110可以截断第二CMAC,如上面所讨论。所述过程400在框425中继续。
在框430中,第二车辆计算装置110将第一CMAC(如上文所讨论,其包括在请求消息200中并且可以被截断)与第二CMAC(如上文所讨论,其可以被截断)进行比较。如果第一CMAC与第二CMAC匹配,则过程400在框435中继续。否则,过程400在框440中继续。
在框435中,第二车辆计算装置110对请求消息200进行认证。在这种情况下,第二车辆计算装置110可以作用于认证的请求消息200。例如,基于认证的请求消息200中包括的请求240,第二车辆计算装置110可以通过发起与第一车辆计算装置110的通信和/或生成控制信号以致动一个或多个车辆部件125(例如,以调整车辆105的速度、航向等)来操作车辆105。在框435之后,过程400结束。
在框440中,第二车辆计算装置110忽略请求消息200。在这种情况下,第二车辆计算装置110可以确定入侵者装置提供请求消息200。另外,第二车辆计算装置110可以防止入侵者装置与第二车辆计算装置110之间的通信。在框440之后,过程400结束。
如本文所使用,副词“基本上”意指形状、结构、测量结果、数量、时间等因为材料、机加工、制造、数据传输、计算速度等的缺陷而可能偏离精确描述的几何形状、距离、测量结果、数量、时间等。
通常,所描述的计算系统和/或装置可采用多个计算机操作系统中的任一者,包括但绝不限于以下版本和/或变型:福特应用、AppLink/Smart Device Link中间件、微软操作系统、微软操作系统、Unix操作系统(例如,由加州红杉海岸的Oracle公司发布的操作系统)、由纽约阿蒙克市的InternationalBusiness Machines公司发布的AIX UNIX操作系统、Linux操作系统、由加州库比蒂诺的苹果公司发布的Mac OSX和iOS操作系统、由加拿大滑铁卢的黑莓有限公司发布的BlackBerryOS以及由谷歌公司和开放手机联盟开发的Android操作系统、或由QNX Software Systems供应的CAR信息娱乐平台。计算装置的示例包括但不限于车载第一计算机、计算机工作站、服务器、台式机、笔记本、膝上型计算机或手持计算机、或某一其他计算系统和/或装置。
计算机和计算装置通常包括计算机可执行指令,其中所述指令可能能够由一个或多个计算装置(诸如以上所列出的那些)执行。可以从使用多种编程语言和/或技术创建的计算机程序编译或解译计算机可执行指令,所述编程语言和/或技术单独地或者组合地包括但不限于JavaTM、C、C++、Matlab、Simulink、Stateflow、Visual Basic、Java Script、Perl、HTML等。这些应用中的一些可以在诸如Java虚拟机、Dalvik虚拟机等虚拟机上编译和执行。通常,处理器(例如,微处理器)例如从存储器、计算机可读介质等接收指令,并执行这些指令,从而执行一个或多个过程,包括本文所述过程中的一者或多者。此类指令和其他数据可以使用各种计算机可读介质来存储和传输。计算装置中的文件通常是存储在诸如存储介质、随机存取存储器等计算机可读介质上的数据的集合。
存储器可以包括计算机可读介质(也称为处理器可读介质),所述计算机可读介质包括参与提供可以由计算机(例如,由计算机的处理器)读取的数据(例如,指令)的任何非暂时性(例如,有形)介质。此类介质可采取许多形式,包括但不限于非易失性介质和易失性介质。非易失性介质可以包括例如光盘或磁盘以及其他持久性存储器。易失性介质可以包括例如通常构成主存储器的动态随机存取存储器(DRAM)。此类指令可以由一种或多种传输介质传输,所述一种或多种传输介质包括同轴电缆、铜线和光纤,包括构成联接到ECU的处理器的系统总线的电线。计算机可读介质的常见形式包括例如软盘、柔性盘、硬盘、磁带、任何其他磁性介质、CD-ROM、DVD、任何其他光学介质、穿孔卡片、纸带、具有孔图案的任何其他物理介质、RAM、PROM、EPROM、快闪EEPROM、任何其他存储器芯片或盒式磁带、或者计算机可从其读取的任何其他介质。
数据库、数据存储库或本文所述的其他数据存储装置可以包括用于存储、访问和检索各种数据的各种机构,包括分层数据库、文件系统中的文件集、呈专用格式的应用数据库、关系数据库管理系统(RDBMS)等。每个此类数据存储装置通常包括在采用计算机操作系统(诸如以上所提到的那些操作系统中的一个操作系统)的计算装置内,并且经由网络以多种方式中的任一种或多种方式来访问。文件系统可以从计算机操作系统访问,并且可以包括以各种格式存储的文件。除了用于创建、存储、编辑和执行已存储的程序的语言(诸如上述PL/SQL语言)之外,RDBMS还通常采用结构化查询语言(SQL)。
在一些示例中,系统元件可以被实施为一个或多个计算装置(例如,服务器、个人计算机等)上、存储在与其相关联的计算机可读介质(例如,磁盘、存储器等)上的计算机可读指令(例如,软件)。计算机程序产品可以包括存储在计算机可读介质上的用于执行本文所述的功能的此类指令。
关于本文描述的介质、过程、系统、方法、启发等,应当理解,虽然此类过程等的步骤已经被描述为按照某一有序的顺序发生,但是可以通过以与本文所述顺序不同的顺序执行所述步骤来实践此类过程。还应理解,可以同时执行某些步骤,可以添加其他步骤,或者可以省略本文描述的某些步骤。换句话说,本文对过程的描述出于说明某些实施例的目的而提供,并且决不应被解释为限制权利要求。
因此,应理解,以上描述旨在是说明性的而非限制性的。在阅读以上描述时,除了所提供的示例之外的许多实施例和应用对于本领域的技术人员将是明显的。本发明的范围不应参考以上描述来确定,而应参考所附权利要求连同这些权利要求赋予的等效物的全部范围来确定。设想并预期未来的发展将在本文讨论的技术中发生,并且所公开的系统和方法将并入到此类未来实施例中。总之,应理解,本发明能够进行修改和变化,并且仅受所附权利要求的限制。
除非本文做出明确的相反指示,否则权利要求中使用的所有术语意图给出如本领域技术人员所理解的普通和一般的含义。具体地,除非权利要求叙述相反的明确限制,否则使用诸如“一个/种”、“该”、“所述”等单数冠词应被解读为叙述所指示的要素中的一者或多者。
根据本发明,提供了一种系统,所述系统具有计算机,所述计算机包括处理器和存储器,所述存储器存储指令,所述指令可由所述处理器执行以:监测车辆的车载通信网络以检测请求消息,所述请求消息包括第一基于密码的消息认证码(CMAC)和请求;基于所述请求消息来识别质询消息,其中所述质询消息包括计数器和从随机数生成器输出的随机数;基于所述质询消息和所述请求来生成第二CMAC;基于确定所述第二CMAC与所述第一CMAC匹配来对所述请求消息进行认证;以及基于所述认证的请求消息来操作所述车辆。
根据实施例,通过将所述质询消息和所述请求输入到加密程序来生成所述第二CMAC,所述加密程序基于认证密钥对所述质询消息和所述请求进行编码。
根据实施例,所述指令还包括用于基于确定所述第二CMAC与所述第一CMAC不匹配来忽略所述请求消息的指令。
根据实施例,所述指令还包括用于基于确定所述第二CMAC与所述第一CMAC不匹配来将与所述请求消息相关联的车载计算装置识别为入侵者装置的指令。
根据实施例,所述指令还包括用于防止与所述入侵者装置进行通信的指令。
根据实施例,所述指令还包括用于基于计时器到期来生成所述质询消息并经由所述车载通信网络提供所述质询消息的指令。
根据实施例,所述指令还包括用于通过在经由所述车载通信网络提供所述质询消息之后将所述计数器递增来更新所述质询消息的指令。
根据一个实施例,本发明的特征还在于车载计算装置,所述车载计算装置包括第二处理器和第二存储器,所述第二存储器存储指令,所述指令可由所述第二处理器执行以:监测所述车载通信网络以检测所述质询消息;在检测到所述质询消息时,通过将所述质询消息和所述请求输入到加密程序来生成所述第一CMAC,所述加密程序基于认证密钥对所述质询消息和所述请求进行编码;以及然后生成所述请求消息并经由所述车载通信网络提供所述请求消息。
根据实施例,所述指令还包括用于进行以下各项的指令:存储包括相应计数器的多个质询消息;基于确定所述请求消息中包括的计数器与一个存储的质询消息中包括的所述计数器匹配来确定所述质询消息。
根据实施例,所述指令还包括用于基于确定所述请求消息中包括的所述计数器与任何存储的质询消息中包括的所述计数器不匹配来忽略所述请求消息的指令。
根据实施例,所述指令还包括用于致动一个或多个车辆部件以执行所述认证的请求消息中包括的所述请求的指令。
根据实施例,所述指令还包括用于发起与和所述认证的请求消息相关联的车载计算装置的通信的指令。
根据本发明,一种方法包括:监测车辆的车载通信网络以检测请求消息,所述请求消息包括第一基于密码的消息认证码(CMAC)和请求;基于所述请求消息来识别质询消息,其中所述质询消息包括计数器和从随机数生成器输出的随机数;基于所述质询消息和所述请求来生成第二CMAC;基于确定所述第二CMAC与所述第一CMAC匹配来对所述请求消息进行认证;以及基于所述认证的请求消息来操作所述车辆。
在本发明的一个方面中,通过将所述质询消息和所述请求输入到加密程序来生成所述第二CMAC,所述加密程序基于认证密钥对所述质询消息和所述请求进行编码。
在本发明的一个方面中,所述方法包括基于确定所述第二CMAC与所述第一CMAC不匹配来忽略所述请求消息。
在本发明的一个方面中,所述方法包括基于计时器到期来生成所述质询消息并经由所述车载通信网络提供所述质询消息。
在本发明的一个方面中,所述方法包括:监测所述车载通信网络以检测所述质询消息;在检测到所述质询消息时,通过将所述质询消息和所述请求输入到加密程序来生成所述第一CMAC,所述加密程序基于认证密钥对所述质询消息和所述请求进行编码;以及然后生成所述请求消息并经由所述车载通信网络提供所述请求消息。
在本发明的一个方面中,所述方法包括:存储包括相应计数器的多个质询消息;基于确定所述请求消息中包括的计数器与一个存储的质询消息中包括的所述计数器匹配来确定所述质询消息。
在本发明的一个方面中,所述方法包括基于确定所述请求消息中包括的所述计数器与任何存储的质询消息中包括的所述计数器不匹配来忽略所述请求消息。
在本发明的一个方面中,所述方法包括致动一个或多个车辆部件以执行所述认证的请求消息中包括的所述请求。
Claims (15)
1.一种方法,其包括:
监测车辆的车载通信网络以检测请求消息,所述请求消息包括第一基于密码的消息认证码(CMAC)和请求;
基于所述请求消息来识别质询消息,其中所述质询消息包括计数器和从随机数生成器输出的随机数;
基于所述质询消息和所述请求来生成第二CMAC;
基于确定所述第二CMAC与所述第一CMAC匹配来对所述请求消息进行认证;以及
基于所述认证的请求消息来操作所述车辆。
2.根据权利要求1所述的方法,其中通过将所述质询消息和所述请求输入到加密程序来生成所述第二CMAC,所述加密程序基于认证密钥对所述质询消息和所述请求进行编码。
3.根据权利要求1所述的方法,其还包括基于确定所述第二CMAC与所述第一CMAC不匹配来忽略所述请求消息。
4.根据权利要求1所述的方法,其还包括基于确定所述第二CMAC与所述第一CMAC不匹配来将与所述请求消息相关联的车载计算装置识别为入侵者装置。
5.根据权利要求4所述的方法,其还包括防止与所述入侵者装置进行通信。
6.根据权利要求1所述的方法,其还包括基于计时器到期来生成所述质询消息并经由所述车载通信网络提供所述质询消息。
7.根据权利要求6所述的方法,其还包括通过在经由所述车载通信网络提供所述质询消息之后将所述计数器递增来更新所述质询消息。
8.根据权利要求6所述的方法,其还包括:
监测所述车载通信网络以检测所述质询消息;
在检测到所述质询消息时,通过将所述质询消息和所述请求输入到加密程序来生成所述第一CMAC,所述加密程序基于认证密钥对所述质询消息和所述请求进行编码;以及
然后生成所述请求消息并经由所述车载通信网络提供所述请求消息。
9.根据权利要求1所述的方法,其还包括:
存储包括相应计数器的多个质询消息;
基于确定所述请求消息中包括的计数器与一个存储的质询消息中包括的所述计数器匹配来确定所述质询消息。
10.根据权利要求9所述的方法,其还包括基于确定所述请求消息中包括的所述计数器与任何存储的质询消息中包括的所述计数器不匹配来忽略所述请求消息。
11.根据权利要求1所述的方法,其还包括致动一个或多个车辆部件以执行所述认证的请求消息中包括的所述请求。
12.根据权利要求1所述的方法,其还包括发起与和所述认证的请求消息相关联的车载计算装置的通信。
13.一种计算机,其被编程为执行根据权利要求1至12中任一项所述的方法。
14.一种计算机程序产品,其包括用于执行根据权利要求1至12中任一项所述的方法的指令。
15.一种车辆,其包括被编程为执行根据权利要求1至12中任一项所述的方法的计算机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/171,239 US20220255752A1 (en) | 2021-02-09 | 2021-02-09 | Vehicle computing device authentication |
US17/171,239 | 2021-02-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114915403A true CN114915403A (zh) | 2022-08-16 |
Family
ID=82493427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210112396.3A Pending CN114915403A (zh) | 2021-02-09 | 2022-01-29 | 车辆计算装置认证 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220255752A1 (zh) |
CN (1) | CN114915403A (zh) |
DE (1) | DE102022102448A1 (zh) |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7594114B2 (en) * | 2002-09-16 | 2009-09-22 | General Electric Company | Authentication apparatus and method for universal appliance communication controller |
KR101020913B1 (ko) * | 2003-07-28 | 2011-03-09 | 소니 주식회사 | 데이터 송신 장치, 데이터 사용 인정 방법, 데이터 수신 장치 및 방법, 및 기록 매체 |
US7596225B2 (en) * | 2005-06-30 | 2009-09-29 | Alcatl-Lucent Usa Inc. | Method for refreshing a pairwise master key |
KR101338477B1 (ko) * | 2006-04-19 | 2013-12-10 | 한국전자통신연구원 | 이동 통신 시스템의 인증키 생성 방법 |
CN101689990B (zh) * | 2008-04-30 | 2011-11-16 | 联发科技股份有限公司 | 流量加密密钥的产生方法 |
JP5446650B2 (ja) * | 2009-09-17 | 2014-03-19 | 沖電気工業株式会社 | 通信データ新規性確認システム並びに送信端末及び受信端末 |
JP2015122620A (ja) * | 2013-12-24 | 2015-07-02 | 富士通セミコンダクター株式会社 | 認証システム、認証方法、認証装置、及び、被認証装置 |
US9231936B1 (en) * | 2014-02-12 | 2016-01-05 | Symantec Corporation | Control area network authentication |
US9407444B2 (en) * | 2014-03-20 | 2016-08-02 | Certicom Corp. | Method for validating messages |
CN106105105B9 (zh) * | 2014-04-03 | 2020-01-24 | 松下电器(美国)知识产权公司 | 网络通信系统、不正常检测电子控制单元以及不正常应对方法 |
US9792440B1 (en) * | 2014-04-17 | 2017-10-17 | Symantec Corporation | Secure boot for vehicular systems |
US10211990B2 (en) * | 2014-07-25 | 2019-02-19 | GM Global Technology Operations LLC | Authenticating messages sent over a vehicle bus that include message authentication codes |
DE102015211451A1 (de) * | 2015-06-22 | 2017-01-05 | Volkswagen Aktiengesellschaft | Verfahren zu einem Manipulationsschutz von über ein Bussystem zwischen Systemkomponenten zu übertragenden Nutzdatenpaketen |
JP6555209B2 (ja) * | 2015-08-07 | 2019-08-07 | 株式会社デンソー | 通信システム、管理ノード、通信ノード、カウンタ同期方法、カウント値配信方法、カウント値初期化方法、プログラム、記録媒体 |
JP6260066B2 (ja) * | 2016-01-18 | 2018-01-17 | Kddi株式会社 | 車載コンピュータシステム及び車両 |
SG10201605752PA (en) * | 2016-07-13 | 2018-02-27 | Huawei Int Pte Ltd | A unified authentication work for heterogeneous network |
JP2018014558A (ja) * | 2016-07-19 | 2018-01-25 | 株式会社デンソー | 通信装置 |
US10630481B2 (en) * | 2016-11-07 | 2020-04-21 | Ford Global Technologies, Llc | Controller area network message authentication |
US10705820B2 (en) * | 2017-02-02 | 2020-07-07 | Ford Global Technologies, Llc | Method and apparatus for secure multi-cycle vehicle software updates |
US10944579B2 (en) * | 2017-05-26 | 2021-03-09 | Combined Conditional Access Development And Support, Llc | Device pairing and authentication |
JP6731887B2 (ja) * | 2017-06-27 | 2020-07-29 | Kddi株式会社 | 保守システム及び保守方法 |
JP6547180B2 (ja) * | 2017-12-05 | 2019-07-24 | Kddi株式会社 | 通信システム |
JPWO2020059535A1 (ja) * | 2018-09-20 | 2021-08-30 | ソニーセミコンダクタソリューションズ株式会社 | 送信装置および送信方法、並びに受信装置および受信方法 |
TW202101946A (zh) * | 2019-06-14 | 2021-01-01 | 日商索尼半導體解決方案公司 | 通信裝置及通信方法以及程式 |
US11522696B2 (en) * | 2020-03-13 | 2022-12-06 | Dearborn Group, Inc. | Intrusion defense system for a vehicle |
US11526458B2 (en) * | 2020-05-18 | 2022-12-13 | Stmicroelectronics Application Gmbh | Method of operating a communication bus, corresponding system, devices and vehicle |
-
2021
- 2021-02-09 US US17/171,239 patent/US20220255752A1/en not_active Abandoned
-
2022
- 2022-01-29 CN CN202210112396.3A patent/CN114915403A/zh active Pending
- 2022-02-02 DE DE102022102448.2A patent/DE102022102448A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220255752A1 (en) | 2022-08-11 |
DE102022102448A1 (de) | 2022-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11618395B2 (en) | Vehicle data verification | |
EP3274845B1 (en) | Security systems and method for identification of in-vehicle attack originator | |
US11423708B2 (en) | Synchronizing sensing systems | |
US11593119B2 (en) | Autonomous driving controller parallel processor boot order | |
US20200114920A1 (en) | Light-based lane-change control | |
US11791999B2 (en) | Vehicle electronic control unit authentication | |
CN112019341A (zh) | 存储车辆数据 | |
US20220255752A1 (en) | Vehicle computing device authentication | |
CN112737786A (zh) | 验证在特定区域内行驶的交通工具 | |
US20220158843A1 (en) | Diagnostic over ip authentication | |
US11792007B2 (en) | System and method for a vehicle network | |
US20230087521A1 (en) | Computing device verification | |
US11658828B2 (en) | Securely transmitting commands to vehicle during assembly | |
US10988112B2 (en) | Distributed vehicle authorized operations | |
US11455852B2 (en) | Vehicle deauthortization of user device | |
CN114556996A (zh) | 用于确定接收到的数据的可靠性的方法 | |
US20220097695A1 (en) | Blockchain system to aid vehicle actions | |
US11912234B2 (en) | Enhanced biometric authorization | |
US20230045256A1 (en) | Computing device updating | |
US20220239472A1 (en) | Service-oriented architecture in a vehicle | |
CN117676589A (zh) | 车辆网络安全性 | |
US20210155202A1 (en) | Authorized vehicle access | |
CN117097499A (zh) | 车辆数据保护 | |
CN114915408A (zh) | 认证密钥的传输 | |
CN116090501A (zh) | 神经网络验证系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |