CN113132082A - 一种基于车内网的通信方法及装置 - Google Patents
一种基于车内网的通信方法及装置 Download PDFInfo
- Publication number
- CN113132082A CN113132082A CN202010025955.8A CN202010025955A CN113132082A CN 113132082 A CN113132082 A CN 113132082A CN 202010025955 A CN202010025955 A CN 202010025955A CN 113132082 A CN113132082 A CN 113132082A
- Authority
- CN
- China
- Prior art keywords
- message
- ecu
- key
- ciphertext
- authentication code
- 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
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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
-
- 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/12—Applying verification of the received information
-
- 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
- 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
- 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/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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
-
- 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/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or 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/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
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/84—Vehicles
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Power Engineering (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Small-Scale Networks (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于车内网的通信方法及装置,用于解决现有技术中ECU传输报文时容易被窃听的问题。在本申请中,第一ECU对第一密钥和第一新鲜值进行运算,生成密钥流;对密钥流和待传输的第一明文报文进行异或运算,生成第一密文报文;并向第二ECU发送第一密文报文。其中,第一新鲜值为第一ECU传输报文时,第一ECU中用于记录第一ECU传输报文次数的计数器产生的值。第一ECU通过向第二ECU传输第一密文报文,从而可防止第一ECU传输的第一报文被窃听,有助于提高第一ECU传输报文的机密性。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种基于车内网的通信方法及装置。
背景技术
随着科技的发展,汽车行业的各种业务也日益成熟。在汽车的系统中,配置有许多称为电子控制单元(electronic control unit,ECU),ECU是汽车专用微机控制器。连接这些ECU的网络称为控制区域网络(controller area network,CAN)。CAN的总线协议是一种基于消息广播模式的串行通信总线,它起初用于实现汽车内ECU之间可靠的通信,后因其简单实用可靠等特点,被广泛应用于工业自动化、船舶、医疗等其它领域。
目前,基于CAN总线协议进行通信过程中,恶意攻击者可以通过对通信过程中传输的CAN报文(frame)进行窃听,修改或重放攻击。为抵挡攻击者对CAN报文的修改或重放攻击,目前存在一些对CAN报文进行认证的机制。例如,汽车开放系统架构(AUTomotive opensystem architecture,AUTOSAR)的安全车载通信(secure onboard communication,SecOC)机制中,提供了基于CAN总线协议进行安全通信的方法,以抵挡攻击者进行对CAN报文修改或重放攻击。但AUTOSAR的SecOC机制中不能阻止攻击者窃听CAN报文。
发明内容
本申请提供一种基于车内网的通信方法及装置,用于提高ECU传输报文的机密性。
第一方面,本申请提供一种基于车内网的通信方法及装置,该方法可以由车辆中的ECU执行。该方法包括第一ECU对第一密钥和第一新鲜值进行运算,生成密钥流;对密钥流和待传输的第一明文报文进行异或运算,生成第一密文报文;第一ECU向第二ECU发送第一密文报文;第一新鲜值为第一ECU传输报文时,第一ECU中的计数器产生的值,计数器用于记录第一ECU传输报文的次数。
基于该方案,第一ECU通过对第一明文报文进行加密,得到第一密文报文,将第一密文报文传输至第二ECU,从而可防止第一ECU传输的报文被窃听,有助于提高第一ECU传输报文的机密性。即便密文报文被攻击者窃取,也不能获取到该密文报文对应的明文报文。
在一种可能的实现方式中,第一ECU可将加密保护和完整性保护相结合,如下示例性的给出三种可能实现方式。
实现方式一,第一ECU先进行加密保护后进行完整性保护。
第一ECU对第一密钥和第一新鲜值进行运算,生成密钥流,对密钥流和待传输得到第一明文报文进行异或运算,生成第一密文报文。进一步,第一ECU还可以对第二密钥、第一密文报文和第一新鲜值进行运算,生成消息认证码(message authentication code,MAC),消息认证码用于第二ECU对第一明文报文进行完整性校验。在一种可能的实现方式中,第一ECU将第一密文报文、消息认证码和第一新鲜值按顺序排列,得到第二密文报文;第一ECU向第二ECU发送第二密文报文。
实现方式二,第一ECU同时进行完整性保护和加密保护。
第一ECU对第一密钥和第一新鲜值进行运算,生成密钥流,并对密钥流和第一明文报文进行异或运算,生成第一密文报文。同时,第一ECU对第二密钥、第一明文报文和第一新鲜值进行运算,生成消息认证码,消息认证码用于第二ECU对第一明文报文进行完整性校验;并将第一密文报文、消息认证码和第一新鲜值按顺序排列,得到第二密文报文。在一种可能的实现方式中,第一ECU向第二ECU发送第二密文报文。
实现方式三,第一ECU先进行完整性保护后进行加密保护。
第一ECU对第二密钥和第一明文报文进行运算,生成消息认证码,消息认证码用于第二ECU对第一明文报文进行完整性校验。进一步,第一ECU将第一明文报文和消息认证码按顺序排列,得到第二明文报文。然后第一ECU对密钥流和第二明文报文进行异或运算,生成第一密文报文。在一种可能的实现方式中,第一ECU向第二ECU发送第一密文报文和第一新鲜值。
本申请中,第一密钥可以是第一ECU使用密钥推演算法对共享密钥和第一预设参数进行运算生成的,共享密钥为第一ECU与第二ECU共享的密钥;第一密钥也可以是第一ECU预置的。第二密钥可以是第一ECU使用密钥推演算法对共享密钥和第二预设参数进行运算生成的;也可以是第一ECU预置的。
本申请中,第一ECU还可向第二ECU发送指示信息,指示信息用于指示第一ECU对第一明文报文进行了完整性保护;或者,用于指示第一ECU对第一明文报文进行了完整性保护和加密保护。
第二方面,本申请提供一种基于车内网的通信方法,可以由车辆中的ECU执行。该方法包括第二ECU获取第一密文报文和第一新鲜值;对第一密钥和第一新鲜值进行运算,生成密钥流;对密钥流和第一密文报文进行异或运算,得到第一明文报文;其中,第一密文报文为来自第一ECU,第一新鲜值为第一ECU发送报文时,第一ECU中的计数器产生的值,计数器用于记录第一ECU发送报文的次数,共享密钥为第一ECU与第二ECU共享的密钥。
基于该方案,第二ECU通过接收第一ECU传输的第一密文报文,从而可防止第二ECU接收的报文被窃听,有助于提高第二ECU接收报文的机密性。即便密文报文被攻击者窃取,也不能获取到该密文报文对应的明文报文。
第二ECU基于完整性校验和解密的顺序,可分如下两种情形。
情形1,第二ECU先进行完整性校验后解密;或者完整性校验和解密同时进行。
第二ECU接收来自第一ECU的第二密文报文,第二密文报文是将第一密文报文、消息认证码和第一新鲜值按顺序排列得到的;从第二密文报文中,获取第一密文报文、消息认证码和第一新鲜值;在确定第一新鲜值大于第二新鲜值时,对第二密钥、第一密文报文和第一新鲜值进行运算,生成新的消息认证码;若确定新的消息认证码与获取的消息认证码一致,则完整性校验通过,第二新鲜值为第二ECU接收第二密文报文时本地存储的新鲜值。接下来,第二ECU再对第一密钥和第一新鲜值进行运算,生成密钥流;并对密钥流和第一密文报文进行异或运算,得到第一明文报文。
情形2,第二ECU先解密后进行完整性校验。
基于该情形2,又可分如下两种情形。
情形2.1,第二ECU接收来自第一ECU的第一密文报文和第一新鲜值;第二ECU对密钥流和第一密文报文进行异或运算,得到第二明文报文,第二明文报文为第一明文报文和消息认证码按顺序排列得到的。
进一步,可选地,第二ECU对第二密钥、第一明文报文和第一新鲜值进行运算,生成新的消息认证码;若确定新的消息认证码与获取的消息认证码一致,则确定第一明文报文是完整的。
情形2.2,第二ECU接收来自第一ECU的第二密文报文,第二密文报文是将第一密文报文、消息认证码和第一新鲜值按顺序排列得到的;从第二密文报文中获取第一密文报文、消息认证码和第一新鲜值。若确定第一新鲜值大于第二新鲜值时,第二ECU对第二密钥、第一明文报文和第一新鲜值进行运算,生成新的消息认证码;确定新的消息认证码与获取的消息认证码一致,则完整性校验通过。其中,第二新鲜值可以为第二ECU接收第二密文报文时本地存储的新鲜值。
在一种可能的实现方式中,第一密钥可以是第二ECU使用密钥推演算法对共享密钥和第一预设参数进行运算生成的,共享密钥为第一ECU与第二ECU共享的密钥;第一密钥也可以是第二ECU预置的。第二密钥可以是第二ECU使用密钥推演算法对共享密钥和第二预设参数进行运算生成的;也可以是第二ECU预置的。
在一种可能的实现方式中,第二ECU还可以接收来自第一ECU的指示信息,指示信息用于指示第一ECU对第一明文报文进行了完整性保护、或者用于指示第一ECU对第一明文报文进行了完整性保护和加密保护。当第二ECU接收到第一ECU用于指示第一ECU对第一明文报文进行了完整性保护的指示信息后,第二ECU解密后,会对第一明文报文进行完整性校验。
第三方面,本申请提供一种通信装置,该通信装置具有实现上述第一方面中的第一ECU或第二方面中的第二ECU的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的单元或模块。
在一种可能的实现方式中,该通信装置可以是ECU,或者是可用于ECU中的模块,例如芯片或芯片系统或者电路。有益效果可参见上述第一方面或第二方面的描述,此处不再赘述。该通信装置可以包括:收发器和处理器。该处理器可被配置为支持该通信装置执行以上所示ECU的相应功能,该收发器用于支持该通信装置与其它ECU等之间的通信。其中,收发器可以为独立的接收器、独立的发射器、集成收发功能的收发器、或者是接口电路。可选地,该通信装置还可以包括存储器,该存储器可以与处理器耦合,其保存该通信装置必要的程序指令和数据。
第四方面,本申请提供一种通信装置,用于实现上述第一方面或第一方面中的任意一种方法,或者用于实现上述第二方面或第二方面中的任意一种方法,包括相应的功能模块,分别用于实现以上方法中的步骤。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
在一种可能的实施方式中,该通信装置可为ECU,该通信装置可以括处理模块和收发模块,这些模块可以执行上述方法示例中ECU的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第五方面,本申请提供一种通信系统,该通信系统包括第一ECU和第二ECU。其中,第一ECU可以用于执行上述第一方面或第一方面中的任意一种方法,第二ECU可以用于执行上述第二方面或第二方面中的任意一种方法。
第六方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序或指令,当计算机程序或指令被通信装置执行时,使得该通信装置执行上述第一方面或第一方面的任意可能的实现方式中的方法、或者使得该通信装置执行第二方面或第二方面的任意可能的实现方式中的方法。
第七方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当该计算机程序或指令被通信装置执行时,实现上述第一方面或第一方面的任意可能的实现方式中的方法、或者实现上述第二方面或第二方面的任意可能的实现方式中的方法。
附图说明
图1为本申请提供的一种通信系统架构示意图;
图2为本申请提供的一种基于车内网的通信方法的方法流程示意图;
图3为本申请提供的一种密文报文的生成过程示意图;
图4为本申请提供的一种先进行加密保护后进行完整性保护的方法流程示意图;
图5为本申请提供的一种同时进行完整性保护和加密保护的方法流程示意图;
图6为本申请提供的一种先进行完整性保护后进行加密保护的方法流程示意图;
图7为本申请提供的一种截断新鲜值、截断消息认证码和密文报文的级联结构示意图;
图8为本申请提供的一种ECU的结构示意图;
图9为本申请提供的一种ECU的结构示意图。
具体实施方式
下面将结合附图,对本申请实施例进行详细描述。
图1是本申请的可应用的一种通信系统的架构示意图。该通信系统以电子电气(electronic and electrical,E/E)系统为例。该通信系统可包括网关、域控制器、电子控制单元(electronic control unit,ECU)和至少一条CAN总线。该通信系统可根据功能分为多个不同的域,每个域可包括至少一个域控制器,每个域控制器用于管理域内连接到一条或多条CAN总线多个ECU。如图1所示,域控制器1用于管理域内连接到整车控制系统CAN总线上的多个ECU,域控制器2用于管理域内连接到娱乐系统CAN总线上的多个ECU,域控制器3用于管理域内连接到诊断系统CAN总线上的多个ECU,域控制器4用于管理域内连接到智能驾驶系统CAN总线上的多个ECU。域控制器也可以为ECU。该通信系统中的各个域控制器归属于网关。如图1所示,域控制器1、域控制器2、域控制器3和域控制器4归属网关。例如,网关用于将该通信系统外的ECU与该通信系统隔离,且可实现该通信系统内各ECU之间协议的转换。其中,网关也可以为ECU。图1仅是示意图,该通信系统中还可以包括其它设备,如还可以包括中继设备,在图1中未画出。本申请对该通信系统中包括的网关、域控制器和连接到各类CAN总线的ECU的数量不做限定。
上述通信系统可以包括具备通信功能的车辆,车载设备、无人驾驶中的无线终端、车内网芯片等。本申请对该通信系统所应用的场景不做限定。
需要说明的是,本申请所描述的系统架构以及应用场景是为了更加清楚的说明本申请的技术方案,并不构成对本申请提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新场景的出现,本申请提供的技术方案对于类似的技术问题,同样适用。
以下,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
一、重放攻击
重放攻击(replay attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。
重放攻击的基本原理:把以前窃听到的数据原封不动地重新发送给接收方。例如,系统会将鉴别信息进行简单加密后进行传输,这时攻击者虽然无法窃听密码,但可以首先截取加密后的口令然后将其重放,从而利用这种方式进行有效的攻击。
二、密钥流
由一个短的随机密钥(也称实际密钥或种子密钥)生成一个长的密钥流,用这个长的密钥流对明文加密或对密文解密,从而使一个短的密钥可用来加密更长的明文或解密更长的密文的目的。
三、协议数据单元(protocol data unit,PDU)
在分层网络结构,例如在开放式系统互联(OSI)模型中,在传输系统的每一层都将建立PDU。PDU包含来自上层的信息和当前层的实体附加的信息,这个PDU会被传送到下一较低的层。
四、异或运算(exclusive OR,xor)
异或的数学符号为“⊕”。如果a、b两个值不相同,则异或结果为1;如果a、b两个值相同,异或结果为0。
五、最低有效位(least significant bit,LSB)
LSB指一个二进制数字中的第0位(即最低位),具有权值为2^0。在大端序中,LSB指最右端的位。
六、最高有效位(most significant bit,MSB)
MSB指一个n位二进制数字中的n-1位,具有最高的权值2^(n-1)。MSB和LSB是相对应的概念。在大端序中,MSB指最左端的位。
如下,结合附图2至附图7,对本申请提出的基于车内网的通信方法进行详细阐述。本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”,一般表示前后关联对象是一种“或”的关系;在本申请的公式中,字符“/”,表示前后关联对象是一种“相除”的关系。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块。方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。
本申请提供的一种基于车内网的通信方法,该方法可应用于上述图1所示的通信系统中,第一ECU和第二ECU可为上述图1中任两个ECU,图1所示的ECU中各自保存共享密钥(secret key K)。也就是说,第一ECU和第二ECU可以为位于同一车辆中的两个ECU,第一ECU和第二ECU各自保存共享密钥。进一步,可选地,该方法可应用于汽车开放系统架构(AUTOSAR)的安全车载通信(SecOC)机制,为SecOC传输的报文提供机密性保护,同时可兼容现有SecOC机制。
参考图2,为本申请提供的一种基于车内网的通信方法的方法流程示意图。该方法包括以下步骤:
步骤201,第一ECU使用密钥推演算法对共享密钥和第一预设参数进行运算,生成第一密钥。其中,共享密钥为第一ECU与第二ECU共享的密钥。
该步骤201为可选步骤。例如,第一密钥也可以是第一ECU预置的。
也可以理解为,密钥推演算法的输入包括共享密钥和第一预设参数,输出为第一密钥。密钥推演算法可为密钥导出函数(key derivation function,KDF)。第一密钥是用于对第一ECU第一明文报文进行加密的密钥,第一预设参数用于表示要生成的是第一密钥。
进一步,可选地,密钥推演算法的输入还可包括第一明文报文的标识、第一新鲜值(counter,CNT)、CAN标识和ECU标识中的一个或多个。其中,第一明文报文的标识可以唯一的标识一个第一明文报文;第一新鲜值为第一ECU传输报文时,第一ECU中的计数器产生的值。在一种可能的情形中,第一ECU的本地维护有计数器,该计数器用于记录第一ECU传输报文的次数。例如,第一ECU发送一个第一明文报文,该计数器产生的第一新鲜值加1。CAN标识为第一ECU连接的CAN总线的标识,结合上述图1,若第一ECU为连接于整车控制系统CAN总线上的ECU,则CAN的标识即为整车控制系统CAN总线的标识;若第一ECU为连接于诊断系统CAN总线上的ECU,则CAN的标识即为诊断系统CAN总线的标识。ECU的标识可以唯一的标识一个ECU,即第一ECU的标识。
步骤202,第一ECU对第一密钥和第一新鲜值进行运算,生成密钥流。
此处,生成密钥流的运算可以是基于加密算法,也可以是基于KDF。也可以理解为,第一ECU可以对输入KDF的第一密钥和第一新鲜值进行运算,输出密钥流;或者第一ECU可以对输入加密算法的第一密钥和第一新鲜值进行运算,输出密钥流,参见图3。
进一步,生成密钥流的输入还可包括密钥流的长度(length)和/或CAN报文的标识和/或待传输的第一明文报文的标识。应理解,密钥流的长度也可以是第一ECU默认的长度。
步骤203,第一ECU对密钥流和第一明文报文进行异或运算,生成第一密文报文。
即密钥流⊕第一明文报文可得到第一密文报文(参见图3),其中,第一ECU传输的第一明文报文可以是PDU数据。
步骤204,第一ECU向第二ECU发送第一密文报文。
步骤205,第二ECU获取第一密文报文和第一新鲜值。
在一种可能的实现方式中,第二ECU可接收来自第一ECU的第一密文报文和第一新鲜值。即第一ECU可向第二ECU发送第一密文报文和第一新鲜值。
在另一种可能的实现方式中,第二ECU可从第一ECU中获取第一密文报文,从其它设备中(例如图1所示的通信系统中的域控制器或者网关)中获取第一新鲜值。
在再一种可能的实现方式中,第二ECU可从第一ECU的第一密文报文中解密得到第一新鲜值。
步骤206,第二ECU使用密钥推演算法,对共享密钥和第一预设参数进行运算,生成第一密钥。
此处,共享密钥为第二ECU与第一ECU共享的,第一预设参数和密钥推演算法可为第一ECU与第二ECU预先约定的。另外,该步骤206可参见上述步骤201的介绍,此处不再一一赘述。
该步骤206是可选地,第一密钥可以是第二ECU预置的。
步骤207,第二ECU对第一密钥和第一新鲜值进行运算,生成密钥流。
该步骤207可以参见上述步骤202的介绍,即将上述步骤202中的第一ECU替换为第二ECU,此处不再一一赘述。
步骤208,第二ECU对密钥流和第一密文报文进行异或运算,得到第一明文报文。
也就是说,密钥流与第一明文报文进行异或运算,得到第一密文报文;相反的,密钥流与第一密文报文进行异或运算,可以得到第一明文报文。
从上述步骤201至步骤208可以看出,第一ECU通过对第一明文报文进行加密,得到第一密文报文,将第一密文报文传输至第二ECU,从而可防止第一ECU传输的报文被窃听,有助于提高第一ECU传输报文的机密性。即便第一密文报文被攻击者窃取,也不能获取到该第一密文报文对应的第一明文报文。
本申请中,第一ECU还可对第一明文报文进行完整性保护,以防止攻击者对第一明文报文进行篡改和重放。也就是说,第一ECU可对待传输的第一明文报文进行完整性保护和加密保护,如此,既可以防止第一明文报文被窃听,还可以防止第一明文报文被重放攻击和篡改。如下示例性的给出了完整性保护和加密保护相结合的三种可能的实现方式。在下文的介绍中,以生成密钥流的运算是基于加密算法,第二ECU从第一ECU获取第一新鲜值为例说明。
实现方式一,第一ECU先进行加密保护后进行完整性保护。
如图4所示,为本申请提供的一种先进行加密保护后进行完整性保护的方法流程示意图。第一ECU可使用密钥推演算法对共享密钥和第一预设参数进行运算,生成第一密钥;对第一密钥和第一新鲜值进行运算,生成密钥流;对密钥流和第一明文报文进行异或运算,得到第一密文报文。
进一步,第一ECU使用密钥推演算法对共享密钥和第二预设参数进行运算,生成第二密钥;并对第二密钥、第一密文报文和第一新鲜值进行运算,生成消息认证码。
在一种可能的实现方式中,第一ECU可将第一密文报文、消息认证码和第一新鲜值按顺序排列,例如,将消息认证码放在第一新鲜值之后,第一新鲜值放在第一密文报文之后;再比如,将第一新鲜值放在消息认证码之后,第一密文报文放在第一新鲜值之后;第一ECU得到第二密文报文,并向第二ECU发送第二密文报文。
基于上述实现方式一,第二ECU可以先进行完整性校验,再解密;或者也可以完整性校验和解密同时进行。
在一种可能的实现方式中,第二ECU接收来自第一ECU的第二密文报文后,可分别获得第一密文报文、消息认证码和第一新鲜值。若第二ECU确定第一新鲜值大于第二新鲜值,则说明该第一明文报文未被重放攻击,其中,第二新鲜值为第二ECU接收第二密文报文时本地存储的新鲜值。进一步,第二ECU使用密钥推演算法对共享密钥和第二预设参数进行运算,生成第二密钥;并对第二密钥、第一密文报文和第一新鲜值进行运算,生成新的消息认证码。若第二ECU确定新的消息认证码与从获取的消息认证码一致,则完整性校验通过,即第一明文报文未被篡改和重放;若确定新的消息认证码与从第二密文报文中获取的消息认证码不一致,则完整性校验失败。完整性校验通过说明第二ECU接收到的第一明文报文和第一新鲜值均是完整的、且均未被篡改。
若确定完整性校验通过,则第二ECU对第一密文报文进行解密,具体过程可为:第二ECU使用密钥推演算法,对共享密钥和第一预设参数进行运算,生成第一密钥;对第一密钥和第一新鲜值进行运算,生成密钥流;并对密钥流和第一密文报文进行异或运算,得到第一明文报文。该第一明文报文即为第一ECU传输至第二ECU的有效消息。
若第二ECU确定完整性校验失败,则第二ECU不需要再对第一密文报文进行解密的过程。如此,第二ECU若先进行完整性校验,在完整性校验失败时,不需要再进行解密的过程。
实现方式二,第一ECU同时进行加密保护和完整性保护。
如图5所示,为本申请提供的一种同时进行完整性保护和加密保护的方法流程示意图。第一ECU使用密钥推演算法对共享密钥和第二预设参数进行运算,生成第二密钥;并对第二密钥、第一明文报文和第一新鲜值进行运算,生成消息认证码。
同时,第一ECU可使用密钥推演算法对共享密钥和第一预设参数进行运算,生成第一密钥,将第一密钥和第一新鲜值进行运算,生成密钥流;对密钥流和第一明文报文进行异或运算,得到第一密文报文;将第一密文报文、消息认证码和第一新鲜值按顺序排列,例如,消息认证码放在第一新鲜值后面,第一新鲜值放在第一密文报文后面;再比如,将第一新鲜值放在消息认证码之后,第一密文报文放在第一新鲜值之后;第一ECU可得到第二密文报文,并向第二ECU发送第二密文报文。
基于上述实现方式二,由于消息认证码是基于第一明文报文生成的,因此,第二ECU需要先进行解密,获得第一明文报文后,再进行完整性校验。
在一种可能的实现方式中,第二ECU接收来自第一ECU的第二密文报文,第二密文报文为将第一密文报文、消息认证码和第一新鲜值按顺序排列得到的;第二ECU可从第二密文报文中分别获得第一密文报文、消息认证码和第一新鲜值。第二ECU使用密钥推演算法,对共享密钥和第一预设参数进行运算,生成第一密钥;并对第一密钥和第一新鲜值进行运算,生成密钥流;对密钥流和第一密文报文进行异或运算,得到第一明文报文。若第二ECU确定第一新鲜值大于第二新鲜值时,使用密钥推演算法对共享密钥和第二预设参数进行运算,生成第二密钥,第二新鲜值为第二ECU接收第二密文报文时本地存储的新鲜值;并对第二密钥、第一明文报文和第一新鲜值进行运算,生成新的消息认证码。若第二ECU确定新的消息认证码与获取的消息认证码一致,则完整性校验通过;若确定新的消息认证码与获取的消息认证码不一致,则完整性校验失败。
实现方式三,第一ECU先进行完整性保护后进行加密保护。
如图6所示,为本申请提供的一种先进行完整性保护后进行加密保护的方法流程示意图。第一ECU使用密钥推演算法对共享密钥和第二预设参数进行运算,生成第二密钥;并对第二密钥、第一明文报文和第一新鲜值进行运算,生成消息认证码;将第一明文报文和消息认证码按顺序排列,例如,将消息认证码放在第一明文报文之后;再比如,将第一明文报文放在消息认证码之后;第一ECU得到第二明文报文。进一步,第一ECU对第一密钥和第一新鲜值进行运算,生成密钥流;对密钥流和第二明文报文进行异或运算,生成第一密文报文;并向第二ECU发送第一密文报文和第一新鲜值。
基于上述实现方式三,由于第一ECU生成的消息认证码是基于第一明文报文,因此,第二ECU需先进行解密,获取到第一明文报文后,再进行完整性校验。
在一种可能的实现方式中,第二ECU接收来自第一ECU的第一密文报文和第一新鲜值;使用密钥推演算法,对共享密钥和第一预设参数进行运算,生成第一密钥;并对第一密钥和第一新鲜值进行运算,生成密钥流;对密钥流和第一密文报文进行异或运算,得到第二明文报文,第二明文报文是将第一明文报文、第一新鲜值和消息认证码按顺序排列得到的。也就是说,第二ECU从第二明文报文中获取到第一明文报文、第一新鲜值和消息认证码。
为了确保该解密得到的第一明文报文未被重放攻击且未被篡改,第二ECU使用密钥推演算法对共享密钥和第二预设参数进行运算,生成第二密钥;并对第二密钥、第一明文报文和第一新鲜值进行运算,生成新的消息认证码。若第二ECU确定新的消息认证码与获取的消息认证码一致,则完整性校验通过。若第二ECU确定该新的消息认证码与获取的消息认证码不一致,则完整性校验失败,可直接丢弃该第一明文报文。
基于上述三种实现方式,在一种可能的实现方式中,第二ECU在确定校验通过后,可将获取到的第一新鲜值更新为本地存储的第二新鲜值。
需要说明是,上述三种实现方式中,为了进一步提高第一ECU传输报文的安全性,用于进行加密的第一密钥和用于进行完整性保护的第二密钥是不同的。示例性地,可通过输入不同的预设参数(如算法类型参数(algorithm type distinguisher))来实现。例如,生成第一密钥的预设参数为第一预设参数,生成第二密钥的预设参数为第二预设参数,第一预设参数和第二预设参数是不同的。比如,第一预设参数可为“0x01”,第二预设参数可为“0x02”;再比如,第一预设参数为“encryption”,第二预设参数为“integrity”。另外,第一预设参数和密钥推演算法可以是第一ECU和第二ECU约定的。
本申请中,生成第一密文报文的输入还可包括第一明文报文的标识、CAN报文的标识和密钥流的长度中的一个或多个。另外,生成消息认证码的输入还可包括第一明文报文的标识。若第一ECU生成消息认证码的输入中包括第一明文报文的标识,则第二ECU生成该新的消息认证码的输入中也可包括该第一明文报文的标识,其中,第二ECU可从第二密文报文的报文头中获取第一明文报文的标识。在一种可能的实现方式中,消息认证码可以为128位的字符串。
本申请中,为了减少第一ECU发送的负荷,在一种可能的实现方式中,可缩短第一ECU向第二ECU发送的新鲜值所占用的长度,例如可将新鲜值进行截断。也就是说,第一新鲜值可以是截断后的新鲜值。
在一种可能的实现方式中,截断后的新鲜值可从完整的新鲜值的LSB开始配置,也可以从完整的新鲜值的MSB开始配置。为了进一步减少第一ECU发送的负荷,可将消息认证码也进行截断。在一种可能的实现方式中,截断后的消息认证码可从MSB开始配置,也可以是从LSB开始配置。参阅图7,以截断后的消息认证码从MSB开始配置,截断后的新鲜值从LSB开始配置为例,将截断后的新鲜值和截断后的消息认证码与第一密文报文按顺序排列,得到第二密文,并向第二ECU发送第二密文报文。第二ECU接收到该第二密文报文后,从该第二密文报文中获取到第一密文报文、截断后的新鲜值和截断后的消息认证码。若第二ECU确定接收到的截断后的新鲜值比第二ECU本地保存的新鲜值中与该截断后的新鲜值对应的部分高,则说明接收到的第一明文报文未被重放攻击。进一步,可选地,第二ECU将本地保存的新鲜值中除与截断后的新鲜值的对应的部分外的部分与接收到的截断后的新鲜值连接起来,得到完整的新鲜值。若第二ECU确定接收到的截断后的新鲜值比本地保存的新鲜值中与该截断后的新鲜值对应的部分低,则将本地保存的新鲜值中除与截断后的新鲜值对应的部分外的部分加1后与接收到的截断后的新鲜值连接起来,得到完整的新鲜值。例如,截断后的新鲜值是从LSB开始配置的5位,第二ECU本地保存的新鲜值为15位,与该截断后的新鲜值对应的部分为本地保存的15位的新鲜值中从LSB开始的5位,除与该新鲜值对应的部分外的部分为本地保存的15位新鲜值中从MSB开始的10位。
需要说明的是,第二ECU生成新的消息认证码和密钥流的输入中的第一新鲜值即为该完整的新鲜值。
本申请中,第一ECU向第二ECU发送第一密文报文和第一新鲜值时,还可包括指示信息。该指示信息可用于指示第一ECU对第一明文报文进行了完整性保护;或者,该指示信息可用于第一ECU对第一明文报文进行了完整性保护和加密保护。第二ECU接收到该指示信息后,可根据该指示信息查看该密文报文是否有完整性保护。进一步,该指示信息还可用于指示第一ECU对第一明文报文进行了加密保护;或者,该指示信息还可用于指示第一ECU未对第一明文报文进行任何保护;或者,该指示信息还可用于指示第一ECU对第一明文报文进行了加密保护且未进行完整性保护;或者,该指示信息还可用于指示第一ECU对第一明文报文进行了完整性保护且未进行加密保护,等等。
在一种可能的实现方式中,该指示信息可以是独立于第一密文报文的信息,或者也可以是携带在第一密文报文或第二密文报文的报文头中。示例性地,该指示信息可以用1个字节标识,例如,可用0表示未对第一明文报文进行加密保护,1表示对第一明文报文进行了加密保护;或者可用0表示未对第一明文报文进行完整性保护,1表示对第一明文报文进行了完整性保护。示例性地,该指示信息还可以用2个字节表示,例如,00表示未对第一明文报文进行完整性保护且未进行加密保护;01表示未对第一明文报文进行完整性保护且进行了加密保护;10表示对第一明文报文进行了完整性保护且未进行加密保护;11表示对第一明文报文进行了完整性保护且进行了加密保护。应理解,报文头是不加密的,第二ECU接收到第二密文报文或第一密文报文后,可从报文头中可直接确定出该指示信息。
可以理解的是,为了实现上述实施例中功能,通信设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的模块及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
图8和图9为本申请的提供的可能的通信装置的结构示意图。这些通信装置可以用于实现上述方法实施例中第一ECU或第二ECU的功能,因此也能实现上述方法实施例所具备的有益效果。在本申请中,该通信装置可以是如图1所示的ECU,还可以是应用于ECU的模块(如芯片)。
如图8所示,该通信装置800包括处理模块801和收发模块802。通信装置800用于实现上述图2、图3、图4、图5或图6中所示的方法实施例中第一ECU或第二ECU的功能。
当通信装置800用于实现图2所示的方法实施例的第一ECU的功能时:处理模块801用于对第一密钥和第一新鲜值进行运算,生成密钥流;对密钥流和待传输的第一明文报文进行异或运算,生成第一密文报文;第一新鲜值为通信装置传输报文时,通信装置中的计数器产生的值,计数器用于记录通信装置传输报文的次数;收发模块802用于向第二ECU发送第一密文报文。
当通信装置800用于实现图2所示的方法实施例的第二ECU的功能时:处理模块801用于获取第一密文报文和第一新鲜值,第一密文报文来自第一ECU,第一新鲜值为第一ECU发送报文时,第一ECU中的计数器产生的值,计数器用于记录第一ECU发送报文的次数;对第一密钥和第一新鲜值进行运算,生成密钥流;对密钥流和第一密文报文进行异或运算,得到第一明文报文。
有关上述处理模块801和收发模块802更详细的描述可以参考图2所示的方法实施例中相关描述直接得到,此处不再一一赘述。
应理解,本申请实施例中的处理模块801可以由处理器或处理器相关电路组件实现,收发模块802可以由收发器或收发器相关电路组件实现。
基于上述内容和相同构思,如图9所示,本申请还提供一种通信装置900。该通信装置900可包括处理器901和收发器902。处理器901和收发器902之间相互耦合。可以理解的是,收发器902可以为接口电路或输入输出接口。可选地,通信装置900还可包括存储器903,用于存储处理器901执行的指令或存储处理器901运行指令所需要的输入数据或存储处理器901运行指令后产生的数据。
当通信装置900用于实现图2所示的方法时,处理器901用于执行上述处理模块801的功能,收发器902用于执行上述收发模块802的功能。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其它通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行计算机程序或指令时,全部或部分地执行本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid statedrive,SSD)。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的保护范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (30)
1.一种基于车内网的通信方法,其特征在于,包括:
第一电子控制单元ECU对第一密钥和第一新鲜值进行运算,生成密钥流;其中,所述第一新鲜值为所述第一ECU传输报文时,所述第一ECU中的计数器产生的值,所述计数器用于记录所述第一ECU传输报文的次数;
所述第一ECU对所述密钥流和待传输的第一明文报文进行异或运算,生成第一密文报文;
所述第一ECU向所述第二ECU发送所述第一密文报文。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一ECU对第二密钥、所述第一密文报文和所述第一新鲜值进行运算,生成消息认证码,所述消息认证码用于所述第二ECU对所述第一明文报文进行完整性校验;
所述第一ECU将所述第一密文报文、所述消息认证码和所述第一新鲜值按顺序排列,得到第二密文报文;
所述第一ECU向所述第二ECU发送所述第一密文报文,包括:
所述第一ECU向所述第二ECU发送所述第二密文报文。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一ECU对第二密钥、所述第一明文报文和所述第一新鲜值进行运算,生成消息认证码,所述消息认证码用于所述第二ECU对所述第一明文报文进行完整性校验;
所述第一ECU将所述第一密文报文、所述消息认证码和所述第一新鲜值按顺序排列,得到第二密文报文;
所述第一ECU向所述第二ECU发送所述第一密文报文,包括:
所述第一ECU向所述第二ECU发送所述第二密文报文。
4.如权利要求1所述的方法,其特征在于,所述第一ECU对所述密钥流和所述第一明文报文进行异或运算,生成第一密文报文,包括:
所述第一ECU对第二密钥和所述第一明文报文进行运算,生成消息认证码,所述消息认证码用于所述第二ECU对所述第一明文报文进行完整性校验;
所述第一ECU将所述第一明文报文和所述消息认证码按顺序排列,得到第二明文报文;
所述第一ECU对所述密钥流和所述第二明文报文进行异或运算,生成所述第一密文报文。
5.如权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
所述第一ECU使用密钥推演算法对共享密钥和第一预设参数进行运算,生成所述第一密钥,所述共享密钥为所述第一ECU与所述第二ECU共享的密钥。
6.如权利要求2至4任一项所述的方法,其特征在于,所述方法还包括:
所述第一ECU使用密钥推演算法对共享密钥和第二预设参数进行运算,生成第二密钥,所述共享密钥为所述第一ECU与所述第二ECU共享的密钥。
7.如权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
所述第一ECU向所述第二ECU发送指示信息,所述指示信息用于指示以下内容中的任一项:
所述第一ECU对所述第一明文报文进行了完整性保护;或者,
所述第一ECU对所述第一明文报文进行了完整性保护和加密保护。
8.一种基于车内网的通信方法,其特征在于,包括:
第二电子控制单元ECU获取第一密文报文和第一新鲜值;所述第一密文报文来自第一ECU,所述第一新鲜值为所述第一ECU发送报文时,所述第一ECU中的计数器产生的值,所述计数器用于记录所述第一ECU发送报文的次数;
所述第二ECU对第一密钥和所述第一新鲜值进行运算,生成密钥流;
所述第二ECU对所述密钥流和所述第一密文报文进行异或运算,得到第一明文报文。
9.如权利要求8所述的方法,其特征在于,所述第二ECU获取第一密文报文和第一新鲜值,包括:
所述第二ECU接收来自所述第一ECU的第二密文报文,所述第二密文报文是将所述第一密文报文、消息认证码和所述第一新鲜值按顺序排列得到的;
所述第二ECU从所述第二密文报文中,获取所述第一密文报文和所述第一新鲜值;
所述第二ECU对第一密钥和所述第一新鲜值进行运算,生成密钥流之前,还包括:
所述第二ECU从所述第二密文报文中,获取所述消息认证码;
所述第二ECU在确定所述第一新鲜值大于第二新鲜值时,对第二密钥、所述第一密文报文和所述第一新鲜值进行运算,生成新的消息认证码,所述第二新鲜值为所述第二ECU接收所述第二密文报文时本地存储的新鲜值;
所述第二ECU确定所述新的消息认证码与获取的所述消息认证码一致。
10.如权利要求8所述的方法,其特征在于,所述第二ECU获取第一密文报文和第一新鲜值,包括:
所述第二ECU接收来自所述第一ECU的第二密文报文,所述第二密文报文为将所述第一密文报文、消息认证码和所述第一新鲜值按顺序排列得到的;
所述第二ECU从所述第二密文报文中,获取所述第一密文报文、所述消息认证码和所述第一新鲜值;
所述第二ECU对第一密钥和所述第一新鲜值进行运算,生成密钥流之前,还包括:
所述第二ECU确定所述第一新鲜值大于第二新鲜值时,对第二密钥、所述第一明文报文和所述第一新鲜值进行运算,生成新的消息认证码,所述第二新鲜值为所述第二ECU接收所述第二密文报文时本地存储的新鲜值;
所述第二ECU确定所述新的消息认证码与获取的所述消息认证码一致。
11.如权利要求8所述的方法,其特征在于,所述第二ECU获取第一密文报文和第一新鲜值,包括:
所述第二ECU接收来自所述第一ECU的所述第一密文报文和所述第一新鲜值;
所述第二ECU对所述密钥流和所述第一密文报文进行异或运算,得到所述第一明文报文,包括:
所述第二ECU对所述密钥流和所述第一密文报文进行异或运算,得到第二明文报文,所述第二明文报文为所述第一明文报文和消息认证码按顺序排列得到的;
所述第二ECU从所述第二明文报文中获取所述第一明文报文和所述消息认证码;
所述方法还包括:
所述第二ECU对第二密钥、所述第一明文报文和所述第一新鲜值进行运算,生成新的消息认证码;
若所述第二ECU确定所述新的消息认证码与获取的所述消息认证码一致,确定所述第一明文报文是完整的。
12.如权利要求8至11任一项所述的方法,其特征在于,所述方法还包括:
所述第二ECU使用密钥推演算法对共享密钥和第一预设参数进行运算,生成所述第一密钥,所述共享密钥为所述第一ECU与所述第二ECU共享的密钥。
13.如权利要求9至11任一项所述的方法,其特征在于,所述方法还包括:
所述第二ECU使用密钥推演算法对共享密钥和第二预设参数进行运算,生成所述第二密钥,所述共享密钥为所述第一ECU与所述第二ECU共享的密钥。
14.如权利要求10或11所述的方法,其特征在于,所述方法还包括:
所述第二ECU接收来自所述第一ECU的指示信息,所述指示信息用于指示所述第一ECU对所述第一明文报文进行了完整性保护、或者用于指示所述第一ECU对所述第一明文报文进行了完整性保护和加密保护。
15.一种通信装置,其特征在于,包括处理模块和收发模块:
所述处理模块,用于对第一密钥和第一新鲜值进行运算,生成密钥流;对所述密钥流和待传输的第一明文报文进行异或运算,生成第一密文报文;其中,所述第一新鲜值为所述通信装置传输报文时,所述通信装置中的计数器产生的值,所述计数器用于记录所述通信装置传输报文的次数;
所述收发模块,向所述第二ECU发送所述第一密文报文。
16.如权利要求15所述的通信装置,其特征在于,所述处理模块,还用于:
对第二密钥、所述第一密文报文和所述第一新鲜值进行运算,生成消息认证码,所述消息认证码用于所述第二ECU对所述第一明文报文进行完整性校验;将所述第一密文报文、所述消息认证码和所述第一新鲜值按顺序排列,得到第二密文报文;
所述收发模块向所述第二ECU发送所述第一密文报文时,具体用于:向所述第二ECU发送所述第二密文报文。
17.如权利要求15所述的通信装置,其特征在于,所述处理模块,还用于:
对第二密钥、所述第一明文报文和所述第一新鲜值进行运算,生成消息认证码,所述消息认证码用于所述第二ECU对所述明文报文进行完整性校验;将所述第一密文报文、所述消息认证码和所述第一新鲜值按顺序排列,得到第二密文报文;
所述收发模块向所述第二ECU发送所述第一密文报文时,具体用于:向所述第二ECU发送所述第二密文报文。
18.如权利要求15所述的通信装置,其特征在于,所述处理模块对所述密钥流和待传输的第一明文报文进行异或运算,生成第一密文报文时,具体用于:
对第二密钥和所述第一明文报文进行运算,生成消息认证码,所述消息认证码用于所述第二ECU对所述第一明文报文进行完整性校验;将所述第一明文报文和所述消息认证码按顺序排列,得到第二明文报文;
对所述密钥流和所述第二明文报文进行异或运算,生成所述第一密文报文。
19.如权利要求15至18任一项所述的通信装置,其特征在于,所述处理模块,还用于使用密钥推演算法对共享密钥和第一预设参数进行运算,生成所述第一密钥,所述共享密钥为所述第一ECU与所述第二ECU共享的密钥。
20.如权利要求16至18任一项所述的通信装置,其特征在于,所述处理模块,还用于使用密钥推演算法对共享密钥和第二预设参数进行运算,生成第二密钥,所述共享密钥为所述第一ECU与所述第二ECU共享的密钥。
21.如权利要求15至20任一项所述的通信装置,其特征在于,所述收发模块,还用于向所述第二ECU发送指示信息,所述指示信息用于指示以下内容中的任一项:
所述通信装置对所述第一明文报文进行了完整性保护;或者,
所述通信装置对所述第一明文报文进行了完整性保护和加密保护。
22.一种通信装置,其特征在于,包括收发模块和处理模块:
所述收发模块,用于获取第一密文报文和第一新鲜值,所述第一密文报文来自第一ECU,所述第一新鲜值为所述通信装置发送报文时,所述通信装置中的计数器产生的值,所述计数器用于记录所述通信装置发送报文的次数;
所述处理模块,用于对第一密钥和所述第一新鲜值进行运算,生成密钥流;以及对所述密钥流和所述第一密文报文进行异或运算,得到第一明文报文。
23.如权利要求22所述的通信装置,其特征在于,所述收发模块获取第一密文报文和第一新鲜值时,具体用于:接收来自所述第一ECU的第二密文报文,所述第二密文报文是将所述第一密文报文、消息认证码和所述第一新鲜值按顺序排列得到的;从所述第二密文报文中,获取所述第一密文报文和所述第一新鲜值;
所述处理模块还用于在生成所述密钥流之前,从所述第二密文报文中获取所述消息认证码;在确定所述第一新鲜值大于第二新鲜值时,对第二密钥、所述第一密文报文和所述第一新鲜值进行运算,生成新的消息认证码;确定所述新的消息认证码与获取的消息认证码一致,所述第二新鲜值为所述第二ECU接收所述第二密文报文时本地存储的新鲜值。
24.如权利要求22所述的通信装置,其特征在于,所述收发模块获取第一密文报文和第一新鲜值时,具体用于:接收来自所述第一ECU的第二密文报文,所述第二密文报文为将所述第一密文报文、消息认证码和所述第一新鲜值按顺序排列得到的;从所述第二密文报文中,获取所述第一密文报文、所述消息认证码和所述第一新鲜值;
所述处理模块还用于在生成所述密钥流之前,在确定所述第一新鲜值大于第二新鲜值时,对所述第二密钥、所述第一明文报文和所述第一新鲜值进行运算,生成新的消息认证码;确定所述新的消息认证码与获取的消息认证码一致,所述第二新鲜值为所述第二ECU接收所述第二密文报文时本地存储的新鲜值。
25.如权利要求22所述的通信装置,其特征在于,所述收发模块获取第一密文报文和第一新鲜值时,具体用于:接收来自所述第一ECU的所述第一密文报文和所述第一新鲜值;
所述处理模块对所述密钥流和所述第一密文报文进行异或运算,得到所述第一明文报文时,具体用于:对所述密钥流和所述第一密文报文进行异或运算,得到第二明文报文,所述第二明文报文是将所述第一明文报文和消息认证码按顺序排列得到的;从所述第二明文报文中获取所述第一明文报文和所述消息认证码;
所述处理模块还用于在得到所述第一明文报文后,对第二密钥、所述第一明文报文和所述第一新鲜值进行运算,生成新的消息认证码;若确定所述新的消息认证码与获取的所述消息认证码一致,确定所述第一明文报文是完整的。
26.如权利要求24或25所述的通信装置,其特征在于,所述收发模块还用于:
接收来自所述第一ECU的指示信息,所述指示信息用于指示所述第一ECU对所述第一明文报文进行了完整性保护、或者用于指示所述第一ECU对所述第一明文报文进行了完整性保护和加密保护。
27.一种通信装置,其特征在于,包括处理器和收发器,所述收发器用于接收来自所述通信装置之外的其它通信装置的信号并传输至所述处理器或将来自所述处理器的信号发送给所述通信装置之外的其它通信装置,所述处理器通过逻辑电路或执行代码指令用于实现如权利要求1至7、或8至14中任一项所述的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序或指令,当所述计算机程序或指令被通信装置执行时,实现如权利要求1至7中任一项、或8至14中任一项所述的方法。
29.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序或指令,当所述计算机程序或指令被通信装置执行时,实现如权利要求1至7中任一项、或8至14中任一项所述的方法。
30.一种通信系统,其特征在于,包括权利要求15至21任一项的通信装置,以及权利要求22至26任一项的通信装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010025955.8A CN113132082A (zh) | 2020-01-10 | 2020-01-10 | 一种基于车内网的通信方法及装置 |
JP2022542134A JP2023509539A (ja) | 2020-01-10 | 2020-09-03 | 通信方法及び装置 |
EP20911709.2A EP4075717A4 (en) | 2020-01-10 | 2020-09-03 | NETWORK-BASED COMMUNICATION METHOD AND DEVICE IN A VEHICLE |
PCT/CN2020/113301 WO2021139190A1 (zh) | 2020-01-10 | 2020-09-03 | 一种基于车内网的通信方法及装置 |
US17/860,818 US20220353056A1 (en) | 2020-01-10 | 2022-07-08 | Communication method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010025955.8A CN113132082A (zh) | 2020-01-10 | 2020-01-10 | 一种基于车内网的通信方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113132082A true CN113132082A (zh) | 2021-07-16 |
Family
ID=76771525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010025955.8A Pending CN113132082A (zh) | 2020-01-10 | 2020-01-10 | 一种基于车内网的通信方法及装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220353056A1 (zh) |
EP (1) | EP4075717A4 (zh) |
JP (1) | JP2023509539A (zh) |
CN (1) | CN113132082A (zh) |
WO (1) | WO2021139190A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112688845A (zh) * | 2020-12-23 | 2021-04-20 | 北京天融信网络安全技术有限公司 | 车载can网络的通信方法及装置 |
CN116232662A (zh) * | 2022-12-26 | 2023-06-06 | 广东为辰信息科技有限公司 | 车内安全通信的计数器主从翻转处理方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114584385B (zh) * | 2022-03-09 | 2023-02-03 | 西安电子科技大学 | 一种车内网络安全通信方法、计算机设备、介质及终端 |
CN115174095B (zh) * | 2022-06-15 | 2024-06-07 | 安徽师范大学 | 一种基于云服务器的患者健康数据共享系统及数据共享方法 |
CN115242411B (zh) * | 2022-09-23 | 2022-12-02 | 合肥工业大学 | 一种基于量子随机数发生器的车内网安全通信方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106685653A (zh) * | 2016-12-29 | 2017-05-17 | 同济大学 | 一种基于信息安全技术的车辆远程固件更新方法及装置 |
CN106790053A (zh) * | 2016-12-20 | 2017-05-31 | 江苏大学 | 一种can总线中ecu安全通信的方法 |
CN108075897A (zh) * | 2016-11-07 | 2018-05-25 | 福特全球技术公司 | 控制器局域网消息认证 |
US20190109716A1 (en) * | 2016-03-14 | 2019-04-11 | Kddi Corporation | Communication network system, vehicle, count-value notification node, count-value sharing method, and stored computer program |
CN109672538A (zh) * | 2019-02-13 | 2019-04-23 | 北京仁信证科技有限公司 | 一种轻量级车载总线安全通信方法及安全通信系统 |
CN110377002A (zh) * | 2019-06-06 | 2019-10-25 | 西安电子科技大学 | 一种自适应的车内can总线安全控制方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5770602B2 (ja) * | 2011-10-31 | 2015-08-26 | トヨタ自動車株式会社 | 通信システムにおけるメッセージ認証方法および通信システム |
EP3605943B1 (en) * | 2014-11-13 | 2021-02-17 | Panasonic Intellectual Property Corporation of America | Key management method, vehicle-mounted network system, and key management device |
CN108965218B (zh) * | 2017-05-25 | 2020-09-29 | 华为技术有限公司 | 一种控制器区域网总线安全通信方法、装置及系统 |
-
2020
- 2020-01-10 CN CN202010025955.8A patent/CN113132082A/zh active Pending
- 2020-09-03 WO PCT/CN2020/113301 patent/WO2021139190A1/zh unknown
- 2020-09-03 EP EP20911709.2A patent/EP4075717A4/en active Pending
- 2020-09-03 JP JP2022542134A patent/JP2023509539A/ja active Pending
-
2022
- 2022-07-08 US US17/860,818 patent/US20220353056A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190109716A1 (en) * | 2016-03-14 | 2019-04-11 | Kddi Corporation | Communication network system, vehicle, count-value notification node, count-value sharing method, and stored computer program |
CN108075897A (zh) * | 2016-11-07 | 2018-05-25 | 福特全球技术公司 | 控制器局域网消息认证 |
CN106790053A (zh) * | 2016-12-20 | 2017-05-31 | 江苏大学 | 一种can总线中ecu安全通信的方法 |
CN106685653A (zh) * | 2016-12-29 | 2017-05-17 | 同济大学 | 一种基于信息安全技术的车辆远程固件更新方法及装置 |
CN109672538A (zh) * | 2019-02-13 | 2019-04-23 | 北京仁信证科技有限公司 | 一种轻量级车载总线安全通信方法及安全通信系统 |
CN110377002A (zh) * | 2019-06-06 | 2019-10-25 | 西安电子科技大学 | 一种自适应的车内can总线安全控制方法及系统 |
Non-Patent Citations (2)
Title |
---|
杨义先, 北京邮电大学出版社 * |
王海晖 主编: "计算机网络安全", 《计算机网络安全》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112688845A (zh) * | 2020-12-23 | 2021-04-20 | 北京天融信网络安全技术有限公司 | 车载can网络的通信方法及装置 |
CN116232662A (zh) * | 2022-12-26 | 2023-06-06 | 广东为辰信息科技有限公司 | 车内安全通信的计数器主从翻转处理方法 |
CN116232662B (zh) * | 2022-12-26 | 2024-03-29 | 广东为辰信息科技有限公司 | 车内安全通信的计数器主从翻转处理方法 |
Also Published As
Publication number | Publication date |
---|---|
EP4075717A4 (en) | 2023-01-25 |
US20220353056A1 (en) | 2022-11-03 |
JP2023509539A (ja) | 2023-03-08 |
EP4075717A1 (en) | 2022-10-19 |
WO2021139190A1 (zh) | 2021-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113132082A (zh) | 一种基于车内网的通信方法及装置 | |
CN111726274B (zh) | 一种汽车can总线数据通信方法、设备及存储介质 | |
US10862670B2 (en) | Automotive nonce-misuse-resistant authenticated encryption | |
JP6288219B1 (ja) | 通信システム | |
US20170063853A1 (en) | Data cipher and decipher based on device and data authentication | |
EP3624418B1 (en) | Method for data transmission, battery management system, and storage medium | |
JP2014204444A (ja) | センサへの操作及び/又はセンサのセンサデータへの操作を検出するための方法及び装置 | |
JP2013201510A (ja) | 車両用データ通信システム及び車両用データ通信装置 | |
KR101549034B1 (ko) | Can에서 데이터의 기밀성과 무결성을 보장하는 방법 | |
CN111865922B (zh) | 一种通信方法、装置、设备及存储介质 | |
Dariz et al. | Trade-off analysis of safety and security in CAN bus communication | |
CN111614621A (zh) | 物联网通信方法和系统 | |
CN109314644A (zh) | 数据提供系统、数据保护装置、数据提供方法以及计算机程序 | |
Siddiqui et al. | A secure communication framework for ecus | |
CN117318941B (zh) | 基于车内网的预置密钥分发方法、系统、终端及存储介质 | |
JP6547180B2 (ja) | 通信システム | |
CN113704789A (zh) | 一种车载通讯安全处理方法、装置、设备及存储介质 | |
JP6203798B2 (ja) | 車載制御システム、車両、管理装置、車載コンピュータ、データ共有方法、及びコンピュータプログラム | |
WO2023000313A1 (zh) | 一种密钥验证方法及相关装置 | |
Lotto et al. | A Survey and Comparative Analysis of Security Properties of CAN Authentication Protocols | |
US20230106378A1 (en) | Sufficiently Secure Controller Area Network | |
CN112740726B (zh) | 一种数据传输方法及装置 | |
CN113132092B (zh) | 通信方法和电子设备 | |
US11805110B2 (en) | Method for transmitting data packets | |
Qian et al. | ShuffleCAN: Enabling Moving Target Defense for Attack Mitigation on Automotive CAN |
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 |