CN112347481A - 安全启动方法、控制器和控制系统 - Google Patents
安全启动方法、控制器和控制系统 Download PDFInfo
- Publication number
- CN112347481A CN112347481A CN201910721190.9A CN201910721190A CN112347481A CN 112347481 A CN112347481 A CN 112347481A CN 201910721190 A CN201910721190 A CN 201910721190A CN 112347481 A CN112347481 A CN 112347481A
- Authority
- CN
- China
- Prior art keywords
- information
- controller
- target controller
- challenge
- target
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 140
- 230000004044 response Effects 0.000 claims abstract description 210
- 230000006854 communication Effects 0.000 claims abstract description 172
- 238000004891 communication Methods 0.000 claims description 132
- 238000012545 processing Methods 0.000 claims description 44
- 238000012795 verification Methods 0.000 claims description 28
- 238000004364 calculation method Methods 0.000 claims description 26
- 230000006870 function Effects 0.000 description 45
- 230000008569 process Effects 0.000 description 34
- 230000005540 biological transmission Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 18
- 238000012546 transfer Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 206010039203 Road traffic accident Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- 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/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
- H04L63/0442—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 wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- 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/50—Network services
- H04L67/55—Push-based network services
-
- 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/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- 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/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
-
- 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
-
- 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/3247—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 involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种安全启动方法、控制器和系统。其中所述安全启动方法包括:向辅助控制器发送启动信息,辅助控制器包括存储有第一公钥信息的安全储存单元,安全储存单元具有防止篡改的功能,第一公钥信息用于认证所述目标控制器,启动信息用于触发辅助控制器认证目标控制器的第一程序;接收辅助控制器发送的挑战信息,并根据挑战信息获得应答信息,应答信息包括第一信息和第二信息;向辅助控制器发送应答信息。本申请实施例提供的启动方法在目标控制器和辅助控制器进行通信过程中,在辅助控制器验证目标控制器的引导程序与系统的源可信和完整性时,目标控制器才能进入正常工作状态,才能达到目标控制器的基于硬件信任根的安全启动。
Description
技术领域
本申请涉及通信领域,尤其涉及一种安全启动方法、控制器和控制系统。
背景技术
现代的车辆,例如轿车、公共汽车等车辆中,都安装有许多车载控制器,众多的车载控制器通过内部局域网总线相互有线连接,进行通信以发送和接收控制消息和系统数据,实现控制车辆进行工作。如果车载控制器受到非法攻击或篡改,将会导致整车不受驾驶人控制,这样极易发生交通事故。因此,车载控制器的系统安全成为整车安全的重中之重。
现有技术中,为了保证车载控制器的系统安全,在车载控制器中增加安全硬件,用于存储该车载控制器系统的秘钥,并且存储的内容是无法进行篡改的。如果车载控制器的系统被非法攻击或篡改,在车载控制器启动后,对系统进行安全验证时,会发现非法攻击或篡改的系统生成的秘钥和安全硬件中存储的秘钥是不同的,这时车载控制器就不同正常启动。通过这种方法保证车载控制器安全启动。
但是现实中,很难做到每个车载控制器中都有安全硬件,而且,即使做到每个车载控制器中增加安全硬件,这无疑也增加了整车的成本。
发明内容
为了克服上述问题,本申请的实施例提供了一种安全启动方法、控制器和控制系统,用于通过应答协议,利用辅助控制器中的安全储存单元,让不具有安全储存单元的目标控制器可以基于硬件信任根的安全启动。
为了达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请提供一种安全启动方法,所述方法由目标控制器执行,包括:向辅助控制器发送启动信息,所述辅助控制器包括存储有第一公钥信息的安全储存单元,所述安全储存单元具有防止篡改的功能,所述第一公钥信息用于认证所述目标控制器,所述启动信息用于触发所述辅助控制器认证所述目标控制器的第一程序;接收所述辅助控制器发送的挑战信息,并根据所述挑战信息获得应答信息,所述应答信息包括第一信息和第二信息;向所述辅助控制器发送所述应答信息。目标控制器基于公钥系统,通过应答协议,与具有安全储存单元的辅助控制进行安全通信,实现了基于硬件信任根的安全启动。
在另一个可能的实现中,所述方法还包括:接收所述辅助控制器发送的运行信息,所述运行信息用于通知所述目标控制器所述第二信息是否通过验证;运行所述第一程序,所述第一程序包括引导代码控制程序和/或系统控制程序。通过运行信息,使得目标控制器可以判断安全启动是否完成,达到安全启动的状态。
在另一个可能的实现中,所述根据所述挑战信息获得应答信息,所述应答信息包括第一信息和第二信息,包括:所述挑战信息为C,根据所述C获得所述第一程序的镜像哈希值,将得到的所述镜像哈希值作C次方和并模N计算,获得所述第一信息;所述目标控制器存储有所述第一程序的镜像的哈希值的签名值,将所述签名值作C次方和并模N计算,获得所述第二信息;其中,C和N为正整数。
在另一个可能的实现中,所述目标控制器存储有通信密钥,所述方法还包括:在与所述辅助控制器进行通信过程中,使用所述通信密钥对所述目标控制器发送的所述启动信息和所述应答信息中的至少一个进行加密,并且使用所述通信密钥对所述目标控制器接收的所述挑战信息和所述运行信息中的至少一个进行解密。在目标控制器和辅助控制器之间进行通信过程中,目标控制器使用安全通讯,通过一个共同密钥对通信过程中的发送的内容进行加密和接收的内容进行解密,保证了在通信过程中信息传输的安全性和机密性。
第二方面,本申请提供一种安全启动方法,所述方法由辅助控制器执行,其中,所述辅助控制器包括存储有第一公钥信息的安全储存单元,所述安全储存单元具有防止篡改的功能,所述第一公钥信息用于认证目标控制器,所述方法包括:接收所述目标控制器发送的启动信息,所述启动信息用于触发所述辅助控制器认证所述目标控制器的第一程序;向所述目标控制器发送挑战信息;接收所述目标控制器发送的应答信息,所述应答信息包括所述第一信息和所述第二信息。辅助控制器基于公钥系统,通过应答协议,与不具有安全储存单元的目标控制器进行安全通信,实现了基于硬件信任根的安全启动。
在另一个可能的实现中,所述方法还包括:向所述目标控制器发送运行信息,所述运行信息用于通知所述目标控制器所述第二信息是否通过验证。
在另一个可能的实现中,所述向所述目标控制器发送运行信息,包括:将所述第一信息作所述第一公钥信息次方和并模N后,获得哈希值;当所述哈希值与所述第二信息相同时,向所述目标控制器发送所述运行信息。
在另一个可能的实现中,所述应答信息还包括第二公钥信息,所述方法还包括:验证所述第一公钥信息与所述第二公钥信息是否相同;当所述第一公钥信息与所述第二公钥信息相同时,验证所述第二信息。辅助控制器通过公钥系统进行验证,安全储存单元预先存储有目标控制器的公钥信息,然后通过比对目标控制器的镜像档案中的公钥信息和安全储存单元存储的公钥信息来验证目标控制器的安全性,保证了通信过程中信息传输的安全性。
在另一个可能的实现中,所述安全储存单元还存储有通信密钥,所述方法还包括:在与所述目标控制器进行通信过程中,使用所述通信密钥对所述辅助控制器发送的所述挑战信息和所述运行信息中的至少一个进行加密,并且使用所述通信密钥对所述辅助控制器接收的所述启动信息和所述应答信息中的至少一个进行解密。在目标控制器和辅助控制器之间进行通信过程中,辅助控制器使用安全通讯,通过一个共同密钥对通信过程中的发送的内容进行加密和接收的内容进行解密,进一步保证了通信过程中信息传输的安全性和机密性。
第三方面,本申请提供一种安全启动方法,所述方法由目标控制器执行,所述方法包括:向辅助控制器发送启动信息,所述辅助控制器包括存储有第一密钥信息的安全储存单元,所述安全储存单元具有防止篡改的功能,所述启动信息用于触发所述辅助控制器认证所述目标控制器的第一程序;接收所述辅助控制器发送的挑战信息,并根据所述挑战信息生成应答信息;将所述应答信息发送给所述辅助控制器。目标控制器基于密钥系统,通过应答协议,与具有安全储存单元的辅助控制进行安全通信,实现了基于硬件信任根的安全启动。
在另一个可能的实现中,所述方法还包括:接收所述辅助控制器发送的运行信息,所述运行信息用于通知所述目标控制器所述应答信息是否通过验证;运行所述第一程序,所述第一程序包括引导代码控制程序和/或系统控制程序。通过运行信息,使得目标控制器可以判断安全启动是否完成,达到安全启动的状态。
在另一个可能的实现中,所述根据所述挑战信息生成应答信息,包括:将所述挑战信息和所述第一程序的镜像进行哈希,获得所述应答信息。
在另一个可能的实现中,所述目标控制器存储有通信密钥,所述方法还包括:在与所述辅助控制器进行通信过程中,使用所述通信密钥对所述目标控制器发送的所述启动信息和所述应答信息中的至少一个进行加密,并且使用所述通信密钥对所述目标控制器接收的所述挑战信息和所述运行信息中的至少一个进行解密。在目标控制器和辅助控制器之间进行通信过程中,目标控制器使用安全通讯,通过一个共同密钥对通信过程中的发送的内容进行加密和接收的内容进行解密,保证了在通信过程中信息传输的安全性和机密性。
第四方面,本申请提供一种安全启动方法,所述方法由辅助控制器执行,其中,所述辅助控制器包括存储有第一密钥信息的安全储存单元,所述安全储存单元具有防止篡改的功能,所述第一秘钥信息用于认证所述目标控制器,所述方法包括:接收所述目标控制器发送的启动信息,所述启动信息用于触发所述辅助控制器认证所述目标控制器的第一程序;向所述目标控制器发送挑战信息;接收所述目标控制器发送的所述应答信息。辅助控制器基于密钥系统,通过应答协议,与不具有安全储存单元的目标控制器进行安全通信,实现了基于硬件信任根的安全启动。
在另一个可能的实现中,所述方法还包括:向所述目标控制器发送运行信息;所述运行信息用于通知所述目标控制器所述应答信息是否通过验证。
在另一个可能的实现中,所述安全存储单元还存储有所述目标控制器的所述第一程序,所述向所述目标控制器发送运行信息,包括:将所述第一密钥信息与所述应答信息进行哈希,得到哈希值;确定所述哈希值与所述挑战信息对应的所述第一程序的原始哈希值相同时,向所述目标控制器发送所述运行信息;所述原始哈希值是通过所述挑战信息和所述第一程序进行哈希,将得到的哈希值与所述第一密钥信息进行哈希得到的。辅助控制器通过密钥系统进行验证,安全储存单元预先存储有目标控制器的密钥信息,然后通过对目标控制器发送的哈希值进行哈希后与签名值进行比对,来验证目标控制器的安全性,保证了通信过程中信息传输的安全性。
在另一个可能的实现中,所述安全储存单元还存储有通信密钥,所述方法还包括:在与所述目标控制器进行通信过程中,使用所述通信密钥对所述辅助控制器发送的所述挑战信息和所述运行信息中的至少一个进行加密,并且使用所述通信密钥对所述辅助控制器接收的所述启动信息和所述应答信息中的至少一个进行解密。在目标控制器和辅助控制器之间进行通信过程中,辅助控制器使用安全通讯,通过一个共同密钥对通信过程中的发送的内容进行加密和接收的内容进行解密,进一步保证了通信过程中信息传输的安全性和机密性。
第五方面,本申请提供一种目标控制器,有益效果可以参见第一方面的描述,此处不再赘述。所述目标控制器具有实现上述第一方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述目标控制器的结构中包括发送单元、接收单元以及处理单元,还可以包括存储单元,这些单元可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第六方面,本申请提供一种辅助控制器,有益效果可以参见第二方面的描述此处不再赘述。所述辅助控制器具有实现上述第二方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述辅助控制器的结构中包括安全储存单元、接收单元、发送单元以及处理单元,这些单元可以执行上述第二方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第七方面,本申请提供一种目标控制器,有益效果可以参见第三方面的描述,此处不再赘述。所述目标控制器具有实现上述第三方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述目标控制器的结构中包括发送单元、接收单元以及处理单元,还可以包括存储单元,这些单元可以执行上述第三方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第八方面,本申请提供一种辅助控制器,有益效果可以参见第四方面的描述此处不再赘述。所述辅助控制器具有实现上述第四方面的方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述辅助控制器的结构中包括安全储存单元、接收单元、发送单元以及处理单元,这些单元可以执行上述第四方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第九方面,本申请提供一种控制系统,其特征在于,包括:如第五方面中的任一可能的实施例的目标控制器和第七方面中的任一可能的实施例的辅助控制器。
第十方面,本申请提供一种控制系统,其特征在于,包括:如第六方面中的任一可能的实施例的目标控制器和第八方面中的任一可能的实施例的辅助控制器。
第十一方面,本申请提供一种车载设备,其特征在于,包括:如第九方面所述的控制系统;其中,所述目标控制器通过实体总线与所述辅助控制器进行连接。
第十二方面,本申请提供一种车载设备,其特征在于,包括:如第十方面所述的控制系统;其中,所述目标控制器通过实体总线与所述辅助控制器进行连接。
第十三方面,本申请提供一种可读存储介质,用于存储有指令,或向另一个可读存储介质传输所述指令,当所述指令被执行时,使得如第一方面中的任一可能的实施例或第二方面中的任一可能的实施例被实现。
第十四方面,本申请提供一种可读存储介质,用于存储有指令,或向另一个可读存储介质传输所述指令,当所述指令被执行时,使得如第二方面中的任一可能的实施例或第四方面中的任一可能的实施例被实现。
第十五方面,本申请提供一种通信装置,包括:收发器、处理器和存储器;所述存储器存储有一个或多个程序,所述一个或多个程序包括指令,当所述指令被所述装置执行时,使得所述装置执行如第一方面中的任一可能的实施例或第三方面中的任一可能的实施例。
第十六方面,本申请提供一种通信装置,包括:收发器、处理器和存储器;所述存储器存储有一个或多个程序,所述一个或多个程序包括指令,当所述指令被所述装置执行时,使得所述装置执行如第二方面中的任一可能的实施例或第四方面中的任一可能的实施例。
附图说明
下面对实施例或现有技术描述中所需使用的附图作简单地介绍。
图1为本申请实施例提供的一种控制系统的结构示意图;
图2为本申请实施例提供的第一种安全启动方法的流程示意图;
图3为本申请实施例提供的第二种安全启动方法的流程示意图;
图4为本申请实施例提供的目标控制器与辅助控制器之间通信过程的流程示意图;
图5为本申请实施例提供的目标控制器与辅助控制器之间通过加密进行通信过程的流程示意图;
图6为本申请实施例提供的第三种安全启动方法的流程示意图;
图7为本申请实施例提供的第四种安全启动方法的流程示意图;
图8为本申请实施例提供的目标控制器与辅助控制器之间通信过程的流程示意图;
图9为本申请实施例提供的目标控制器与辅助控制器之间通过加密进行通信过程的流程示意图;
图10为本申请实施例提供的一种目标控制器的结构示意图;
图11为本申请实施例提供的一种辅助控制器的结构示意图;
图12为本申请实施例提供的另一种目标控制器的结构示意图;
图13为本申请实施例提供的另一种辅助控制器的结构示意图;
图14为本申请实施例提供的一种控制系统的结构示意图;
图15为本申请实施例提供的另一种控制系统的结构示意图;
图16为本申请实施例提供的一种通信装置的结构示意图;
图17为本申请实施例提供的另一种通信装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
需要优先说明的是,本申请以车载控制器为例进行讲述本申请的技术方案,对于本领域人员可知,本申请的技术方案并不仅限于车载系统的车载控制器,还可以适应于其它设备的控制器。
图1为本申请实施例提供的一种控制系统的结构示意图。如图1所示,所述系统包括目标控制器10和辅助控制器20。其中,目标控制器10通过实体总线与辅助控制器20进行连接,实现彼此之间进行通信。
目标控制器10是车辆安全启动过程中需要其他控制器进行安全性验证的控制器。其包括处理器11。其中,处理器11包括引导芯片(BootROM)、引导代码(BootCode)控制程序和系统(System)控制程序,引导芯片通过验证引导程序(Bootloader)的引导代码控制程序的源可信和完整性来启动引导程序,引导程序通过验证系统(System)控制程序的的源可信和完整性来启动系统控制程序。
辅助控制器20用于辅助没有安全储存单元的控制器进行安全性验证的控制器,其相对于目标控制器10,还包括有安全储存单元21。
安全储存单元21用于具有安全存储、真随机数产生、密码算法加速等功能建构的安全硬件。其中,安全存储功能是实现控制器安全启动的主要功能。在一个实施例中,以手机为例,手机芯片内有一个不可篡改的存储区,在出厂前写入一个公钥(Public key),出厂后,手机开机时,会使用这个公钥来验证启动程序中的硬件与软件。这种“安全”的来源是对于写在这个不可篡改的存储区的公钥的信任,这就是安全信任根(Root of Trust)。如果安全信任根是基于硬件,则称为基于硬件的安全信任根(Hardware Root of Trust),如果安全信任根是基于软件,则称为基于软件的安全信任根(Software Root of Trust)。由于硬件攻击的难度一般比软件攻击的难度要高,所以基于硬件的安全信任根可以达到较高的安全度。
安全储存单元21的存储空间一般分为主用空间和客用空间这两个部分,主用空间用于存储辅助控制器20进行安全启动时进行验证的信息,客用空间用于存储与辅助控制器20有线连接的目标控制器10进行安全启动时进行验证的信息。在目标控制器10启动过程中,当处理器11要验证引导程序的源可信和完整性时,通过与辅助控制器20的应答协议(challenge-response),比对辅助控制器20中的安全储存单元21存储的公钥信息与引导程序(Bootloader)中的公钥信息之间是否相同;当引导程序要验证系统的源可信和完整性时,通过与辅助控制器20的应答协议,比对辅助控制器20中的安全储存单元21存储的公钥信息与系统(System)中的公钥信息之间是否相同。
本申请实施例通过辅助控制器20中的安全储存单元21,在辅助控制器20与目标控制器10的互动协同下,达到目标控制器10的基于硬件信任根的安全启动。
本申请实施例提供的车载系统应用的场景可以为:具有安全储存单元的车载中央网关作为辅助控制器20,与其有线连接的其它控制器可以作为目标控制器10;在各个功能域中,以具有安全储存单元的域控制器作为辅助控制器20,协助在该功能域中的其它控制器作为目标控制器10;具有安全硬件的电源管理控制器作为辅助控制器20,辅助电源管理控制器管理的多个电芯控制器作为目标控制器10等等。
本申请以下实施例中辅助控制器在验证目标控制器过程中,以基于公钥系统进行验证的,也即目标控制器的镜像档案中有公钥信息,辅助控制器的安全储存单元预先存储有目标控制器的公钥信息,然后通过比对目标控制器的镜像档案中的公钥信息和安全储存单元存储的公钥信息来验证目标控制器的安全性。对于本领域人员可知,本申请的验证方法并不仅限于申请实施例提到的这一种方法,还可以为其它能够实现验证目标控制器的安全性的方法,在此不作限制。
图2为本申请实施例提供的第一种安全启动方法的流程示意图。如图2所示,本申请提供的安全启动方法,该方法由目标控制器执行,具体实现过程如下:
步骤S201,向辅助控制器发送启动信息。
在目标控制器发送启动信息前,辅助控制器已正常工作。
其中,启动信息是用于触发辅助控制器参与认证目标控制器的引导代码控制程序和/或系统控制程序的安全启动程序。
在本申请实施例中,目标控制器没有安全储存单元,辅助控制器有安全储存单元,其安全储存单元存储有用于认证目标控制器的第一公钥信息。
步骤S203,接收辅助控制器发送的挑战信息,并根据挑战信息产生第一信息和第二信息。
当目标控制器的引导代码控制程序接收辅助控制器发送的挑战信息后,计算引导代码控制程序的镜像的第一镜像哈希值和第一镜像签名值;当目标控制器的系统控制程序接收辅助控制器发送的挑战信息后,计算系统控制程序的镜像的第二镜像哈希值和第二镜像签名值。其中,第一信息为引导代码控制程序和/或系统控制程序的镜像的哈希值,第二信息为第一信息的签名值。
在一种可能的情况下,第一镜像哈希值是通过对引导代码控制程序的镜像进行哈希,然后将得到的镜像哈希值作C次方和并模N计算得到的;第一镜像签名值是通过目标控制器存储有引导代码控制程序的镜像的哈希值进行签名,然后将得到的镜像签名值作C次方和并模N计算得到的;第二镜像哈希值是通过对系统控制程序的镜像进行哈希,然后将得到的镜像哈希值作C次方和并模N计算得到的;第二镜像签名值是通过目标控制器存储有系统控制程序的镜像的哈希值进行签名,然后将得到的镜像签名值作C次方和并模N计算得到的。其中,C和N为正整数。
步骤S205,向所述辅助控制器发送应答信息。
其中,应答信息包括第一信息和第二信息。也即包括第一镜像哈希值和/或第二镜像哈希值、第一镜像签名值和/或第二镜像签名值。
步骤S207,接收辅助控制器发送的运行信息。其中,运行信息是辅助控制器通过第一公钥信息和第一信息验证第二信息时产生的。其作用是通知目标控制器第二信息是否通过验证。
在一种可能的实施例中,应答信息还包括目标控制器存储的第二公钥信息,用于与安全储存单元中的第一公钥信息进行比较。在确定第一公钥信息与第二公钥信息相同的情况下,辅助控制器再验证第二信息。
步骤209,运行所述第一程序。
其中,第一程序包括引导代码控制程序和/或系统控制程序。
在一种可能的实施例中,目标控制器存储有通信密钥,用于在与辅助控制器进行通信过程中,使用通信密钥对目标控制器发送的启动信息和应答信息中的至少一个进行加密,并且使用通信密钥对目标控制器接收的挑战信息和运行信息中的至少一个进行解密。以保证通信过程中信息的安全性和保密性。
在目标控制器和辅助控制器进行通信过程中,目标控制器接收到辅助控制器发送挑战信息(challenge)后,发送应答信息(response)给辅助控制器,辅助控制器通过应答协议、应答信息中的引导程序(Bootloader)与系统(System)的公钥信息、镜像哈希值和镜像签名值、以及在安全储存单元存储的公钥信息,来验证目标控制器启动过程中引导程序与系统的源可信和完整性。在辅助控制器验证目标控制器的引导程序与系统的源可信和完整性时,目标控制器才能进入正常工作状态。
本申请目标控制器基于公钥系统,通过应答协议,与具有安全储存单元的辅助控制进行安全通信。
图3为本申请实施例提供的第二种安全启动方法的流程示意图。如图3所示,本申请实施例提供的安全启动方法,该方法由辅助控制器执行,具体实现过程如下:
步骤S301,接收目标控制器发送的启动信息。
其中。启动信息用于触发认证目标控制器的第一程序。
在目标控制器通电后,进入引导代码控制程序,并向辅助控制器发送用于启动辅助控制器验证目标控制器安全性的启动信息,使辅助控制器进入辅助安全启动程序。
步骤S303,向目标控制器发送挑战信息。
挑战信息用于让目标控制器产生第一信息和第二信息。其中,第一信息为引导代码控制程序和/或系统控制程序的镜像的哈希值,第二信息为第一信息的签名值。
在一种可能的情况下,目标控制器中的引导代码控制程序接收挑战信息,目标控制器发送的第一应答信息包括第一镜像哈希值和第一镜像签名值。其中,第一镜像哈希值是通过对引导代码控制程序的镜像进行哈希,然后将得到的镜像哈希值作C次方和并模N计算得到的;第一镜像签名值是通过目标控制器存储有引导代码控制程序的镜像的哈希值进行签名,然后将得到的镜像签名值作C次方和并模N计算得到的。
目标控制器中的系统控制程序接收挑战信息,目标控制器发送的第二应答信息包括第二镜像哈希值和第二镜像签名值。其中,第二镜像哈希值是通过对系统控制程序的镜像进行哈希,然后将得到的镜像哈希值作C次方和并模N计算得到的;第二镜像签名值是通过目标控制器存储有系统控制程序的镜像的哈希值进行签名,然后将得到的镜像签名值作C次方和并模N计算得到的。
步骤S305,接收目标控制器发送的应答信息。
其中,应答信息包括第一信息和第二信息,第一信息包括第一镜像哈希值和/或第二镜像哈希值,第二信息包括第一镜像签名值和/或第二镜像签名值。
步骤S307,向目标控制器发送运行信息
其中,运行信息是辅助控制器通过第一公钥信息和第一信息验证第二信息时产生的。其作用是通知目标控制器第二信息是否通过验证。
在一种可能的实施例中,将第一镜像哈希值作第一公钥信息次方和并模N后,得到的哈希值与第一镜像签名值进行比较,在确定相同后,向目标控制器发送第二挑战信息;将第二镜像哈希值作第一公钥信息次方和并模N后,得到的哈希值与第二镜像签名值进行比较,在确定相同后,向目标控制器发送运行信息。
在一种可能的实施例中,应答信息还包括目标控制器存储的第二公钥信息,辅助控制器验证第一公钥信息与第二公钥信息是否相同,在确定第一公钥信息与第二公钥信息相同的情况下,再通过第一公钥信息和第一信息验证第二信息。
在一种可能的实施例中,安全储存单元还存储有通信密钥,用于在与目标控制器进行通信过程中,使用通信密钥对辅助控制器发送的挑战信息和运行信息中的至少一个进行加密,并且使用通信密钥对辅助控制器接收的启动信息和应答信息中的至少一个进行解密。以保证通信过程中信息的安全性和保密性。
在目标控制器和辅助控制器进行通信过程中,辅助控制器发送挑战信息(challenge)给目标控制器,目标控制器接收到挑战信息后,发送应答信息(response)给辅助控制器,辅助控制器通过应答协议、应答信息中的引导程序(Bootloader)与系统(System)的公钥信息、镜像哈希值和镜像签名值、以及在安全储存单元存储的公钥信息,来验证目标控制器启动过程中引导程序与系统的源可信和完整性。在辅助控制器验证目标控制器的引导程序与系统的源可信和完整性时,发送运行信息给目标控制器。
本申请辅助控制器基于公钥系统,通过应答协议,与不具有安全储存单元的目标控制器进行安全通信,实现了目标控制器可以基于硬件信任根的安全启动。
图4为本申请实施例提供的目标控制器与辅助控制器之间通信过程的流程示意图。如图4所示,目标控制器与辅助控制器之间通信过程具体如下:
步骤S401,目标控制器发送启动信息。
在步骤S401之前,辅助控制器已正常运行。目标控制器上电后,进入引导代码控制程序,并向辅助控制器发送启动信息。
其中,启动信息是用于触发辅助控制器参与认证目标控制器的引导代码控制程序和/或系统控制程序的安全启动程序。
步骤S402,辅助控制器接收到启动信息后,进入辅助启动目标控制器阶段,然后发出第一挑战信息给目标控制器。
其中,辅助控制器根据应答协议,生成一个挑战信息,发送给目标控制器中的引导代码控制程序,来验证引导程序的源可信和完整性。
步骤S403,目标控制器接收到第一挑战信息后,计算引导程序的镜像的哈希值和签名值。
在一个可能的实施例中,当辅助控制器要验证引导程序的源可信和完整性时,目标控制器计算引导程序(Bootloader)的镜像哈希,得到镜像哈希值Hash(Image),然后将该值作C次方并模N计算,得到第一镜像哈希值A1为:
A1=Hash(Image)C1modN;
其中,C1为第一挑战信息,C1和N为正整数。
在计算引导程序(Bootloader)的签名值过程中,目标控制器对第一镜像哈希值A1进行签名,得到签名值Signature,并将该值作C次方并模N计算,得到第一镜像签名值B1为:
B1=SignatureC1modN;
其中,C1为第一挑战信息,C1和N为正整数。
步骤S404,目标控制器发送第一应答信息给辅助控制器。
在一个可能的实施例中,第一应答信息(response)中包括第二公钥信息(e,N)、第一镜像哈希值A1和第一镜像签名值B1。其中,第二公钥信息(e,N)用于与安全储存单元中存储的第一公钥信息(e’,N)进行比对。
步骤S405,辅助控制器接收到第一应答信息后,对比安全储存单元中存储的第一公钥信息和接收到第二公钥信息是否相同。
其中,安全储存单元中必须存储有需要验证的控制器的公钥信息,如果没有存储有该控制器的公钥信息,则辅助控制器无法辅助验证该控制器的安全性。
辅助控制器比对第一公钥信息(e’,N)和第二公钥(e,N)信息是否相同,如果比对第一公钥信息(e’,N)与第二公钥信息(e,N)不相同,辅助控制器回复验证失败信息给目标控制器,目标控制器将无法启动。
步骤S406,在比对第一公钥信息与第二公钥信息相同的情况下,通过第一公钥信息和第一镜像哈希值验证第一镜像签名值。
在一个可能的实施例中,辅助控制器将第一镜像哈希值A1作第一公钥信息(e’,N)次方和并模N计算后,得到哈希值A1’为:
A1′=A1e′modN;
其中,e’为第一公钥信息,e’和N为正整数。
然后将哈希值A1’与第一镜像签名值B1进行比较,如果比对哈希值A1’与第一镜像签名值B1不相同,辅助控制器回复验证失败信息给目标控制器,目标控制器将无法启动。
步骤S407,在比对哈希值A1’与第一镜像签名值B1相同的情况下,辅助控制器发送第二挑战信息给目标控制器。
其中,辅助控制器根据应答协议,再次生成一个挑战信息(challenge),发送给目标控制器中的系统控制程序,来验证系统的源可信和完整性。
需要说明的是,辅助控制器生成的第一挑战信息(challenge)和第二挑战信息(challenge)是不同的。其中,第一挑战信息(challenge)用于发送给目标控制器中的代码控制程序,并计算出引导代码控制程序的第一镜像哈希值A1和第一签名值B1;第二挑战信息(challenge)用于发送给目标控制器中的系统控制程序,并计算出系统控制程序的第二镜像哈希值A2和第二签名值B2。
步骤S408,目标控制器接收到第二挑战信息后,计算系统的镜像的哈希值和签名值。
在一个可能的实施例中,当辅助控制器要验证系统的源可信和完整性时,计算系统(System)的镜像哈希,得到镜像哈希值Hash(Image),然后将该值作C次方并模N计算,得到第二镜像哈希值A2为:
A2=Hash(Image)C2modN;
其中,C2为第二挑战信息,C2和N为正整数。
在计算系统(System)的签名值过程中,目标控制器对第二镜像哈希值A2进行签名,得到签名值Signature,并将该值作C次方并模N计算,得到第二镜像签名值B2为:
B2=SignatureC2modN;
其中,C2为第二挑战信息,C2和N为正整数。
步骤S409,目标控制器发送第二应答信息给辅助控制器。
在一个可能的实施例中,第二应答信息(response)中包括第二公钥信息(e,N)、第二镜像哈希值A2和第二镜像签名值B2。其中,第二公钥信息(e,N)用于与安全储存单元中存储的第一公钥信息(e’,N)进行比对。
步骤S410,辅助控制器接收到第二应答信息后,对比安全储存单元中存储的第一公钥信息和接收到第二公钥信息是否相同。
辅助控制器比对第一公钥信息(e’,N)和第二公钥(e,N)信息是否相同,如果比对第一公钥信息(e’,N)与第二公钥信息(e,N)不相同,辅助控制器回复验证失败信息给目标控制器,目标控制器将无法启动。
在一个实施例中,第二应答信息(response)中的第二公钥信息与第一应答信息(response)中的第二公钥信息可以为相同,也可以为不相同,如果不相同的话,安全储存单元需要存储两个目标控制器的公钥信息,然后分别也目标控制器发送的两个应答信息(response)中的公钥信息进行比对。
在一个实施例中,第二应答信息(response)中可以不包括第二公钥信息,只要在步骤S405中验证了公钥信息相同后,就不要再次验证公钥信息。这时步骤S410就不需要了。
步骤S411,在比对第一公钥信息与第二公钥信息相同的情况下,通过第一公钥信息和第二镜像哈希值验证第二镜像签名值。
在一个可能的实施例中,辅助控制器将第二镜像哈希值A2作第一公钥信息(e’,N)次方和并模N计算后,得到哈希值A2’为:
A2′=A2e′modN;
其中,e’为第一公钥信息,e’和N为正整数。
然后将哈希值A2’与第二镜像签名值B2进行比较,如果比对哈希值A2’与第二镜像签名值B2不相同,辅助控制器回复验证失败信息给目标控制器,目标控制器将无法启动。
步骤S412,在比对哈希值A2’与第二镜像签名值B2相同的情况下,辅助控制器发送运行信息给目标控制器。
其中,运行信息是辅助控制器通过第一公钥信息和第一信息验证第二信息时产生的。其作用是运行引导代码控制程序和系统控制程序。
步骤S413,目标控制器接收到运行信息后,进入正常运行状态。
本申请目标控制器通过与具有安全储存单元的辅助控制器进行通信,使得不具有安全储存单元的目标控制器可以借助辅助控制器中的安全储存单元进行安全性验证,实现目标控制器进入正常运作状态。
在一个可能的实施例中,在目标控制器和辅助控制器之间进行通信过程中,使用安全通讯,通过一个共同密钥对通信过程中的目标控制器和辅助控制器发送的内容进行加密,以保证在通信过程中信息传输的安全性和机密性。
在一个可能的实施例中,在目标控制器和辅助控制器之间进行通信过程中,通过使用临时数(Nonce)作为抵挡重放攻击的保护。其中,在信息安全中,临时数(Nonce)是一个在加密通信只能使用一次的数字,实际使用时,可以采用一个随机数,或者流水号,重点每次使用时要有变化,用来抵挡重放攻击。
图5为本申请实施例提供的目标控制器与辅助控制器之间通过加密进行通信过程的流程示意图。如图5所示,目标控制器与辅助控制器之间通信过程具体如下:
步骤S501,目标控制器发送启动信息。
在步骤S501之前,辅助控制器已正常运行。目标控制器上电后,进入引导代码控制程序,并向辅助控制器发送启动信息。
启动信息是用于触发辅助控制器参与认证目标控制器的引导代码控制程序和/或系统控制程序的安全启动程序。其中,启动信息包括一个启动信号Initial和一个临时数N,目标控制器将该启动信息用密钥Ks进行加密保护,生成一个记为E(Ks,Initial,N)的传送信息发送给辅助控制器。
步骤S502,辅助控制器接收到启动信息后,进入辅助启动目标控制器阶段,然后发出第一挑战信息给目标控制器。
其中,辅助控制器根据应答协议,生成一个挑战信息(challenge),发送给目标控制器中的引导代码控制程序,来验证引导程序的源可信和完整性。
在辅助控制器接收到传送信息E(Ks,Initial,N)后,对其进行解密后,得到启动信号Initial,使辅助控制器进入辅助启动目标控制器阶段。同时,将挑战信息(challenge)和临时数N+1用密钥Ks进行加密保护,生成一个记为E1(Ks,challenge,N+1)的回送信息发送给目标控制器。其中,N+1表示为临时数值加1,也即表示是对步骤S501中的传送消息的接续。
步骤S503,目标控制器接收到第一挑战信息后,计算引导程序的镜像的哈希值和签名值。
在辅助控制器接收到传送信息E1(Ks,challenge,N+1)后,对其进行解密后,得到挑战信息(challenge),使辅助控制器计算引导程序的镜像哈希值和签名值。
在一个可能的实施例中,当辅助控制器要验证引导程序的源可信和完整性时,目标控制器计算引导程序(Bootloader)的镜像哈希,得到镜像哈希值Hash(Image),然后将该值作C次方并模N计算,得到第一镜像哈希值A1为:
A1=Hash(Im age)C1modN;
其中,C1为第一挑战信息,C1和N为正整数。
在计算引导程序(Bootloader)的签名值过程中,目标控制器对第一镜像哈希值A1进行签名,得到签名值Signature,并将该值作C次方并模N计算,得到第一镜像签名值B1为:
B1=SignatureC1modN;
其中,C1为第一挑战信息,C1和N为正整数。
步骤S504,目标控制器发送第一应答信息给辅助控制器。
在一个可能的实施例中,目标控制器将第二公钥信息(e,N)、第一镜像哈希值A1、第一签名值B1和临时数N+2用密钥Ks进行加密保护,生成一个记为E(Ks,A1,B1,(e,N),N+2)的传送信息发送给目标控制器。其中,N+2表示为临时数值加1,也即表示是对步骤S502中的回送消息的接续。
其中,第二公钥信息(e,N)用于与安全储存单元中存储的第一公钥信息(e’,N)进行比对。
步骤S505,辅助控制器接收到第一应答信息后,对比安全储存单元中存储的第一公钥信息和接收到第二公钥信息是否相同。
安全储存单元中必须存储有需要验证的控制器的公钥信息,如果没有存储有该控制器的公钥信息,则辅助控制器无法辅助验证该控制器的安全性。
辅助控制器比对第一公钥信息(e’,N)和第二公钥(e,N)信息是否相同,如果比对第一公钥信息(e’,N)与第二公钥信息(e,N)不相同,辅助控制器回复验证失败信息给目标控制器,目标控制器将无法启动。
其中,失败信息包括一条用于终止目标控制器启动的失败信号Not Pass和一个临时数N+3,辅助控制器将该失败信息用密钥Ks进行加密保护,生成一个记为E(Ks,Not Pass,N+3)的回送信息发送给目标控制器。N+3表示为临时数值加1,也即表示是对步骤S504中的传送消息的接续。
步骤S506,在比对第一公钥信息与第二公钥信息相同的情况下,通过第一公钥信息和第一镜像哈希值验证第一镜像签名值。
在一个可能的实施例中,辅助控制器将第一镜像哈希值A1作第一公钥信息(e’,N)次方和并模N计算后,得到哈希值A1’为:
A1′=A1e′modN;
其中,e’为第一公钥信息,e’和N为正整数。
然后将哈希值A1’与第一镜像签名值B1进行比较,如果比对哈希值A1’与第一镜像签名值B1不相同,辅助控制器回复验证失败信息给目标控制器,目标控制器将无法启动。
其中,失败信息包括一条用于终止目标控制器启动的失败信号Not Pass和一个临时数N+3,辅助控制器将该失败信息用密钥Ks进行加密保护,生成一个记为E(Ks,Not Pass,N+3)的回送信息发送给目标控制器。N+3表示为临时数值加1,也即表示是对步骤S504中的传送消息的接续。
步骤S507,在比对哈希值A1’与第一镜像签名值B1相同的情况下,辅助控制器发送第二挑战信息给目标控制器。
其中,辅助控制器根据应答协议,再次生成一个挑战信息(challenge),发送给目标控制器中的系统控制程序,来验证系统的源可信和完整性。
辅助控制器将挑战信息(challenge)和临时数N+4用密钥Ks进行加密保护,生成一个记为E2(Ks,challenge,N+3)的回送信息发送给目标控制器。N+3表示为临时数值加1,也即表示是对步骤S504中的传送消息的接续。
需要说明的是,辅助控制器生成的第一挑战信息(challenge)和第二挑战信息(challenge)是不同的。其中,第一挑战信息(challenge)用于发送给目标控制器中的引导代码控制程序,并计算出引导代码控制程序的第一镜像哈希值A1和第一签名值B1;第二挑战信息(challenge)用于发送给目标控制器中的系统控制程序,并计算出系统控制程序的第二镜像哈希值A2和第二签名值B2。
步骤S508,目标控制器接收到第二挑战信息后,计算系统的镜像的哈希值和签名值。
在辅助控制器接收到传送信息E2(Ks,challenge,N+3)后,对其进行解密后,得到挑战信息(challenge),使辅助控制器计算系统(System)的镜像的哈希值和签名值。
在一个可能的实施例中,当辅助控制器要验证系统的源可信和完整性时,计算系统(System)的镜像哈希,得到镜像哈希值Hash(Image),然后将该值作C次方并模N计算,得到第二镜像哈希值A2为:
A2=Hash(Image)C2modN;
其中,C2为第二挑战信息,C2和N为正整数。
在计算系统(System)的签名值过程中,目标控制器对第二镜像哈希值A2进行签名,得到签名值Signature,并将该值作C次方并模N计算,得到第二镜像签名值B2为:
B2=SignatureC2modN。
其中,C2为第二挑战信息,C2和N为正整数。
步骤S509,目标控制器发送第二应答信息给辅助控制器。
在一个可能的实施例中,目标控制器将第二公钥信息(e,N)、第二镜像哈希值A2、第二签名值B2和临时数N+4用密钥Ks进行加密保护,生成一个记为E(Ks,A2,B2,(e,N),N+4)的传送信息发送给目标控制器。其中,N+4表示为临时数值加1,也即表示是对步骤S507中的回送消息的接续。
其中,第二公钥信息(e,N)用于与安全储存单元中存储的第一公钥信息(e’,N)进行比对。
步骤S510,辅助控制器接收到第二应答信息后,对比安全储存单元中存储的第一公钥信息和接收到第二公钥信息是否相同。
辅助控制器比对第一公钥信息(e’,N)和第二公钥(e,N)信息是否相同,如果比对第一公钥信息(e’,N)与第二公钥信息(e,N)不相同,辅助控制器回复验证失败信息给目标控制器,目标控制器将无法启动。
其中,失败信息包括一条用于终止目标控制器启动的失败信号Not Pass和一个临时数N+5,辅助控制器将该失败信息用密钥Ks进行加密保护,生成一个记为E(Ks,Not Pass,N+5)的回送信息发送给目标控制器。N+5表示为临时数值加1,也即表示是对步骤S509中的传送消息的接续。
在一个实施例中,第二应答信息(response)中的第二公钥信息与第一应答信息(response)中的第二公钥信息可以为相同,也可以为不相同,如果不相同的话,安全储存单元需要存储两个目标控制器的公钥信息,然后分别也目标控制器发送的两个应答信息(response)中的公钥信息进行比对。
在一个实施例中,第二应答信息(response)中可以不包括第二公钥信息,只要在步骤S505中验证了公钥信息相同后,就不要再次验证公钥信息。这时步骤S510就不需要了。
步骤S511,在比对第一公钥信息与第二公钥信息相同的情况下,通过第一公钥信息和第二镜像哈希值验证第二镜像签名值。
在一个可能的实施例中,辅助控制器将第二镜像哈希值A2作第一公钥信息(e’,N)次方和并模N计算后,得到哈希值A2’为:
A2′=A2e′modN;
其中,e’为第一公钥信息,e’和N为正整数。
然后将哈希值A2’与第二镜像签名值B2进行比较,如果比对哈希值A2’与第二镜像签名值B2不相同,辅助控制器回复验证失败信息给目标控制器,目标控制器将无法启动。
其中,失败信息包括一条用于终止目标控制器启动的失败信号Not Pass和一个临时数N+5,辅助控制器将该失败信息用密钥Ks进行加密保护,生成一个记为E(Ks,Not Pass,N+5)的回送信息发送给目标控制器。N+5表示为临时数值加1,也即表示是对步骤S509中的传送消息的接续。
步骤S512,在比对哈希值A2’与第二镜像签名值B2相同的情况下,辅助控制器发送运行信息给目标控制器。
运行信息是辅助控制器通过第一公钥信息和第一信息验证第二信息时产生的。其作用是运行引导代码控制程序和系统控制程序。
其中,运行信息包括一条用于启动目标控制器的运行信号Pass和一个临时数N+5,辅助控制器将该运行信息用密钥Ks进行加密保护,生成一个记为E(Ks,Pass,N+5)的回送信息发送给目标控制器。N+5表示为临时数值加1,也即表示是对步骤S509中的传送消息的接续。
步骤S513,目标控制器接收到运行信息后,进入正常运行状态。
本申请目标控制器通过在目标控制器和辅助控制器之间进行通信过程中,通过对目标控制器和辅助控制器发送的内容进行加密,以保证在通信过程中信息传输的安全性和机密性;同时,通过使用临时数(Nonce)作为抵挡重放攻击的保护。
本申请以下实施例中辅助控制器在验证目标控制器过程中,以基于密钥系统进行验证的,也即辅助控制器的安全储存单元预先存储有目标控制器的密钥信息,然后通过对目标控制器发送的哈希值进行哈希后与签名值进行比对,来验证目标控制器的安全性,保证了通信过程中信息传输的安全性和机密性。对于本领域人员可知,本申请的验证方法并不仅限于申请实施例提到的这一种方法,还可以为其它能够实现验证目标控制器的安全性的方法,在此不作限制。
图6为本申请实施例提供的第三种安全启动方法的流程示意图。如图6所示,本申请提供的安全启动方法,该方法由目标控制器执行,具体实现过程如下:
步骤S601,向辅助控制器发送启动信息。
在目标控制器发送启动信息前,辅助控制器已正常工作。
其中,启动信息是用于触发辅助控制器参与认证目标控制器的引导代码控制程序和/或系统控制程序的安全启动程序。
在本申请实施例中,辅助控制器生成至少两个挑战信息。辅助控制器包括安全储存单元,安全储存单元具有防止篡改的功能,存储有第一密钥信息、引导代码控制程序和/或系统控制程序、以及至少两个原始哈希值。
在本申请实施例中,辅助控制器将产生多个用于发送给目标控制器获取相关信息的挑战信息(challenge),然后辅助控制器将多个挑战信息(challenge)分别与目标控制器的引导代码控制程序和/或系统控制程序进行哈希,得到哈希值后,再和安全储存单元中存储的密钥进行哈希,得到多个引导程序的原始哈希值和多个系统的原始哈希值。
步骤S603,接收辅助控制器发送的挑战信息,并根据挑战信息产生应答信息。
在一种可能的情况下,当目标控制器的引导代码控制程序接收从辅助控制器中生成的至少两个挑战信息中选择发送的第一挑战信息后,将第一挑战信息和引导代码控制程序的镜像进行哈希,得到第一镜像哈希值;当目标控制器的系统控制程序接收从辅助控制器中生成的至少两个挑战信息中选择发送的第二挑战信息后,将第二挑战信息和系统控制程序的镜像进行哈希,得到第二镜像哈希值。
步骤S605,向辅助控制器发送应答信息。
步骤S607,接收辅助控制器发送的运行信息。
其中,运行信息是辅助控制器通过第一密钥信息和原始哈希值验证应答信息时产生的。其作用是通知目标控制器应答信息是否通过验证。
步骤S609,运行第一程序。
其中,第一程序包括引导代码控制程序和/或系统控制程序。
在一种可能的实施例中,目标控制器存储有通信密钥,用于在与辅助控制器进行通信过程中,使用通信密钥对目标控制器发送的启动信息和应答信息中的至少一个进行加密,并且使用通信密钥对目标控制器接收的挑战信息和运行信息中的至少一个进行解密。以保证通信过程中信息的安全性和保密性。
在目标控制器和辅助控制器进行通信过程中,目标控制器接收到辅助控制器发送其生成的多个挑战信息(challenge)中的选择一个挑战信息(challenge)后,发送应答信息(response)给辅助控制器,辅助控制器通过应答协议、应答信息中的引导程序(Bootloader)与系统(System)的镜像哈希值、以及在安全储存单元存储的密钥信息,来验证目标控制器启动过程中引导程序与系统的源可信和完整性。在辅助控制器验证目标控制器的引导程序与系统的源可信和完整性时,目标控制器才能进入正常工作状态。
本申请目标控制器基于密钥系统,通过应答协议,与具有安全储存单元的辅助控制进行安全通信,实现了基于硬件信任根的安全启动。
图7为本申请实施例提供的第四种安全启动方法的流程示意图。如图7所示,本申请提供的安全启动方法,该方法由辅助控制器执行,具体实现过程如下:
步骤S701,接收目标控制器发送的启动信息。
其中,启动信息触发认证目标控制器的第一程序。
在目标控制器通电后,进入引导代码控制程序,并向辅助控制器发送用于启动辅助控制器验证目标控制器安全性的启动信息,使辅助控制器进入辅助安全启动程序。
在本申请实施例中,辅助控制器生成至少两个挑战信息。辅助控制器包括安全储存单元,安全储存单元具有防止篡改的功能,存储有第一密钥信息、引导代码控制程序和/或系统控制程序,以及至少两个挑战信息。
在本申请实施例中,辅助控制器将产生多个用于发送给目标控制器获取相关信息的挑战信息(challenge),然后辅助控制器将多个挑战信息(challenge)分别与目标控制器的引导代码控制程序和/或系统控制程序进行哈希,得到哈希值后,再和安全储存单元中存储的密钥进行哈希,得到多个引导程序的原始哈希值和多个系统的原始哈希值。
步骤S703,向目标控制器发送挑战信息。
挑战信息用于让目标控制器产生应答信息。其中,应答信息为引导代码控制程序和/或系统控制程序的镜像的哈希值。
在一种可能的情况下,目标控制器中的引导代码控制程序接收从辅助控制器中生成的至少两个挑战信息中选择发送的第一挑战信息,目标控制器发送的第一应答信息包括第一镜像哈希值。其中,第一镜像哈希值通过第一挑战信息和引导代码控制程序的镜像进行哈希得到的。目标控制器中的系统控制程序接收从辅助控制器中生成的至少两个挑战信息中选择发送的第二挑战信息,目标控制器发送的第二应答信息包括第二镜像哈希值。其中,第二镜像哈希值通过第二挑战信息和系统控制程序的镜像进行哈希得到的。
步骤S705,接收目标控制器发送的应答信息。
步骤S707,向目标控制器发送运行信息。
其中,运行信息是辅助控制器通过第一密钥信息和原始哈希值验证应答信息时产生的。其作用是通知目标控制器应答信息是否通过验证。
在一种可能的实施例中,将第一密钥信息与第一镜像哈希值进行哈希,得到的哈希值与第一挑战信息对应的引导代码控制程序的原始哈希值进行比较,在确定相同后,向目标控制器发送第二挑战信息;将第一密钥信息和第二镜像哈希值进行哈希,得到的哈希值与第二挑战信息对应的系统控制程序的原始哈希值进行比较,在确定相同后,向目标控制器发送运行信息。
在一种可能的实施例中,安全储存单元还存储有通信密钥,用于在与目标控制器进行通信过程中,使用通信密钥对辅助控制器发送的挑战信息和运行信息中的至少一个进行加密,并且使用通信密钥对辅助控制器接收的启动信息和应答信息中的至少一个进行解密。以保证通信过程中信息的安全性和保密性。
在目标控制器和辅助控制器进行通信过程中,辅助控制器从生成的多个挑战信息(challenge)中的选择一个挑战信息(challenge)发送给目标控制器,目标控制器接收到挑战信息后,发送应答信息(response)给辅助控制器,辅助控制器通过应答协议、应答信息中的引导程序(Bootloader)与系统(System)的镜像哈希值、以及在安全储存单元存储的密钥信息,来验证目标控制器启动过程中引导程序与系统的源可信和完整性。在辅助控制器验证目标控制器的引导程序与系统的源可信和完整性时,发送运行信息给目标控制器。
本申请辅助控制器基于密钥系统,通过应答协议,与不具有安全储存单元的目标控制器进行安全通信,实现了目标控制器可以基于硬件信任根的安全启动。
图8为本申请实施例提供的目标控制器与辅助控制器之间通信过程的流程示意图。如图8所示,目标控制器与辅助控制器之间通信过程具体如下:
步骤S801,目标控制器发送启动信息。
在步骤S801之前,辅助控制器已正常运行。目标控制器上电后,进入引导代码控制程序,并向辅助控制器发送启动信息。
其中,启动信息是用于触发辅助控制器参与认证目标控制器的引导代码控制程序和系统控制程序的安全启动程序。
步骤S802,辅助控制器接收到启动信息后,进入辅助启动目标控制器阶段,然后从生成的多个挑战信息(challenge)中的选择第一挑战信息(challenge)发送给目标控制器。
辅助控制器在出厂前,车厂或设备商将认证目标控制器用的密钥信息,刷写到辅助控制器中的安全储存单元。另外,辅助控制器中的安全储存单元还存储有目标控制器的引导程序(Bootloader)与系统(System)。
在本申请实施例中,辅助控制器将产生多个用于发送给目标控制器获取相关信息的挑战信息(challenge),然后辅助控制器将多个挑战信息(challenge)分别与目标控制器的引导程序(Bootloader)与系统(System)进行哈希,得到哈希值后,再和安全储存单元中存储的密钥进行哈希,得到多个引导程序的原始哈希值和多个系统的原始哈希值。
辅助控制器根据应答协议,从生成的多个挑战信息(challenge)中的选择一个挑战信息(challenge)发送给目标控制器中的引导代码控制程序,来验证引导程序的源可信和完整性。
步骤S803,目标控制器接收到第一挑战信息后,根据第一挑战信息计算引导程序的镜像哈希值。
在一个可能的实施例中,当辅助控制器要验证引导程序的源可信和完整性时,目标控制器对第一挑战信息(challenge)和引导程序(Bootloader)的镜像进行哈希,得到第一镜像哈希值A1。
步骤S804,目标控制器发送第一应答信息给辅助控制器。
目标控制器将第一镜像哈希值A1发送给辅助控制器,其中,第一镜像哈希值A1用于与第一挑战信息(challenge)对应的引导程序的原始哈希值进行比对。
步骤S805,辅助控制器接收到第一应答信息后,通过第一密钥信息和原始哈希值验证第一应答信息。
在一个可能的实施例中,辅助控制器接收到第一镜像哈希值A1后,将其和安全存储单元中的第一密钥信息进行哈希,得到新的第一镜像哈希值A1’,然后将其与第一挑战信息对应的引导程序的原始哈希值进行比对。如果比对新的第一镜像哈希值A1’和第一挑战信息对应的引导程序的原始哈希值不相同时,辅助控制器回复验证失败信息给目标控制器,目标控制器将无法启动。
步骤S806,在比对新的第一镜像哈希值和第一挑战信息对应的引导程序的原始哈希值相同的情况下,辅助控制器发送从生成的多个挑战信息中的第二挑战信息给目标控制器。
其中,辅助控制器根据应答协议,再次从生成的多个挑战信息(challenge)中选择一个挑战信息(challenge),发送给目标控制器中的系统控制程序,来验证系统的源可信和完整性。
需要说明的是,辅助控制器选择的第一挑战信息(challenge)和第二挑战信息(challenge)是不同的。其中,第一挑战信息(challenge)用于发送给目标控制器中的引导代码控制程序,并计算出引导代码控制程序的第一镜像哈希值;第二挑战信息(challenge)用于发送给目标控制器中的系统控制程序,并计算出系统控制程序的第二镜像哈希值。
步骤S807,目标控制器接收到第二挑战信息后,根据第二挑战信息计算系统的镜像的哈希值。
在一个可能的实施例中,当辅助控制器要验证系统的源可信和完整性时,目标控制器对第二挑战信息(challenge)和系统(System)的镜像进行哈希,得到第二镜像哈希值A2。
步骤S808,目标控制器发送第二应答信息给辅助控制器。
目标控制器将第二镜像哈希值A2发送给辅助控制器,其中,第二镜像哈希值A2用于与第二挑战信息(challenge)对应的系统的原始哈希值进行比对。
步骤S809,辅助控制器接收到第二应答信息后,通过第一密钥信息和原始哈希值验证第二应答信息。
在一个可能的实施例中,辅助控制器接收到第二镜像哈希值A2后,将其和安全存储单元中的第一密钥信息进行哈希,得到新的第二镜像哈希值A2’,然后将其与第二挑战信息对应的系统的原始哈希值进行比对。如果比对新的第二镜像哈希值A2’和第二挑战信息对应的系统的原始哈希值不相同时,辅助控制器回复验证失败信息给目标控制器,目标控制器将无法启动。
步骤S810,在比对新的第二镜像哈希值和第二挑战信息对应的系统的原始哈希值相同的情况下,辅助控制器发送运行信息给目标控制器。
其中,运行信息是辅助控制器通过第一密钥信息和原始哈希值验证应答信息时产生的。其作用是运行引导代码控制程序和/或系统控制程序。
步骤S811,目标控制器接收到运行信息后,进入正常运行状态。
本申请目标控制器通过与具有安全储存单元的辅助控制器进行通信,使得不具有安全储存单元的目标控制器可以借助辅助控制器中的安全储存单元进行安全性验证,实现目标控制器进入正常运作状态。同时,让辅助控制器中的安全储存单元存储有目标控制器的密钥信息、引导程序和系统,使得验证过程更加安全。
在一个可能的实施例中,在目标控制器和辅助控制器之间进行通信过程中,使用安全通讯,通过一个共同密钥对通信过程中的目标控制器和辅助控制器发送的内容进行加密,以保证在通信过程中信息传输的安全性和机密性。
在一个可能的实施例中,在目标控制器和辅助控制器之间进行通信过程中,通过使用临时数(Nonce)作为抵挡重放攻击的保护。
图9为本申请实施例提供的目标控制器与辅助控制器之间通过加密进行通信过程的流程示意图。如图9所示,目标控制器与辅助控制器之间通信过程具体如下:
步骤S901,目标控制器发送启动信息。
在步骤S901之前,辅助控制器已正常运行。目标控制器上电后,进入引导代码控制程序,并向辅助控制器发送启动信息。
其中,启动信息包括一个启动信号Initial和一个临时数N,目标控制器将该启动信息用密钥Ks进行加密保护,生成一个记为E(Ks,Initial,N)的传送信息发送给辅助控制器。
步骤S902,辅助控制器接收到启动信息后,进入辅助启动目标控制器阶段,然后从生成的多个挑战信息(challenge)中的选择第一挑战信息(challenge)发送给目标控制器。
辅助控制器在出厂前,车厂或设备商将认证目标控制器用的密钥信息、目标控制器的引导程序(Bootloader)与系统(System),刷写到辅助控制器中的安全储存单元。另外,辅助控制器中的安全储存单元还存储有通信密钥Ks。
在本申请实施例中,辅助控制器将产生多个用于发送给目标控制器获取相关信息的挑战信息(challenge),然后辅助控制器将多个挑战信息(challenge)分别与目标控制器的引导程序(Bootloader)与系统(System)进行哈希,得到哈希值后,再和安全储存单元中存储的密钥进行哈希,得到多个引导程序的原始哈希值和多个系统的原始哈希值。
辅助控制器根据应答协议,从生成的多个挑战信息(challenge)中的选择一个挑战信息(challenge)发送给目标控制器中的引导代码控制程序,来验证引导程序的源可信和完整性。
在辅助控制器接收到传送信息E(Ks,Initial,N)后,对其进行解密后,得到启动信号Initial,使辅助控制器进入辅助启动目标控制器阶段。同时,将第一挑战信息(challenge)和临时数N+1用密钥Ks进行加密保护,生成一个记为E1(Ks,challenge,N+1)的回送信息发送给目标控制器。其中,N+1表示为临时数值加1,也即表示是对步骤S901中的传送消息的接续。
步骤S903,目标控制器接收到第一挑战信息后,根据第一挑战信息计算引导程序的镜像哈希值。
在辅助控制器接收到传送信息E1(Ks,challenge,N+1)后,对其进行解密后,得到挑战信息(challenge)。当辅助控制器要验证引导程序的源可信和完整性时,目标控制器对第一挑战信息(challenge)和引导程序进行镜像哈希,得到第一镜像哈希值A1。
步骤S504,目标控制器发送第一应答信息给辅助控制器。
在一个可能的实施例中,目标控制器将第一镜像哈希值A1和临时数N+2用密钥Ks进行加密保护,生成一个记为E(Ks,A1,N+2)的传送信息发送给目标控制器。其中,N+2表示为临时数值加1,也即表示是对步骤S502中的回送消息的接续。
其中,第一镜像哈希值A1用于与第一挑战信息(challenge)对应的引导程序的原始哈希值进行比对。
步骤S905,辅助控制器接收到第一应答信息后,通过第一密钥信息和原始哈希值验证第一应答信息。
在一个可能的实施例中,辅助控制器接收到第一镜像哈希值A1后,将其和安全存储单元中的第一密钥信息进行哈希,得到新的第一镜像哈希值A1’,然后将其与第一挑战信息对应的引导程序的原始哈希值进行比对。如果比对新的第一镜像哈希值A1’和第一挑战信息对应的引导程序的原始哈希值不相同时,辅助控制器回复验证失败信息给目标控制器,目标控制器将无法启动。
其中,失败信息包括一条用于终止目标控制器启动的失败信号Not Pass和一个临时数N+3,辅助控制器将该失败信息用密钥Ks进行加密保护,生成一个记为E(Ks,Not Pass,N+3)的回送信息发送给目标控制器。N+3表示为临时数值加1,也即表示是对步骤S904中的传送消息的接续。
步骤S906,在比对新的第一镜像哈希值和第一挑战信息对应的引导程序的原始哈希值相同的情况下,辅助控制器发送从生成的多个挑战信息中的第二挑战信息给目标控制器。
其中,辅助控制器根据应答协议,再次从生成的多个挑战信息(challenge)中选择一个挑战信息(challenge),发送给目标控制器中的系统控制程序,来验证系统的源可信和完整性。
辅助控制器将挑战信息(challenge)和临时数N+4用密钥Ks进行加密保护,生成一个记为E2(Ks,challenge,N+3)的回送信息发送给目标控制器。N+3表示为临时数值加1,也即表示是对步骤S904中的传送消息的接续。
需要说明的是,辅助控制器选择的第一挑战信息(challenge)和第二挑战信息(challenge)是不同的。其中,第一挑战信息(challenge)用于发送给目标控制器中的引导代码控制程序,并计算出引导代码控制程序的第一镜像哈希值;第二挑战信息(challenge)用于发送给目标控制器中的系统控制程序,并计算出系统控制程序的第二镜像哈希值。
步骤S907,目标控制器接收到第二挑战信息后,根据第二挑战信息计算系统的镜像的哈希值。
在辅助控制器接收到传送信息E2(Ks,challenge,N+3)后,对其进行解密后,得到挑战信息(challenge),使辅助控制器计算系统的镜像哈希值和签名值。
在一个可能的实施例中,当辅助控制器要验证系统的源可信和完整性时,目标控制器对第二挑战信息(challenge)和系统(System)的镜像进行哈希,得到第二镜像哈希值A2。
步骤S908,目标控制器发送第二应答信息给辅助控制器。
在一个可能的实施例中,目标控制器将第二镜像哈希值A2和临时数N+4用密钥Ks进行加密保护,生成一个记为E(Ks,A2,N+4)的传送信息发送给目标控制器。其中,N+4表示为临时数值加1,也即表示是对步骤S507中的回送消息的接续。
其中,第二镜像哈希值A2用于与第二挑战信息(challenge)对应的系统的原始哈希值进行比对。
步骤S909,辅助控制器接收到第二应答信息后,通过第一密钥信息和原始哈希值验证第二应答信息。
在一个可能的实施例中,辅助控制器接收到第二镜像哈希值A2后,将其和安全存储单元中的第一密钥信息进行哈希,得到新的第二镜像哈希值A2’,然后将其与第二挑战信息对应的系统的原始哈希值进行比对。如果比对新的第二镜像哈希值A2’和第二挑战信息对应的系统的原始哈希值不相同时,辅助控制器回复验证失败信息给目标控制器,目标控制器将无法启动。
其中,失败信息包括一条用于终止目标控制器启动的失败信号Not Pass和一个临时数N+5,辅助控制器将该失败信息用密钥Ks进行加密保护,生成一个记为E(Ks,Not Pass,N+5)的回送信息发送给目标控制器。N+5表示为临时数值加1,也即表示是对步骤S908中的传送消息的接续。
步骤S910,在比对新的第二镜像哈希值和第二挑战信息对应的系统的原始哈希值相同的情况下,辅助控制器发送运行信息给目标控制器。
运行信息是辅助控制器通过第一密钥信息和原始哈希值验证应答信息时产生的。其作用是运行引导代码控制程序和/或系统控制程序。
其中,运行信息包括一条用于启动目标控制器的运行信号Pass和一个临时数N+5,辅助控制器将该运行信息用密钥Ks进行加密保护,生成一个记为E(Ks,Pass,N+5)的回送信息发送给目标控制器。N+5表示为临时数值加1,也即表示是对步骤S908中的传送消息的接续。
步骤S911,目标控制器接收到运行信息后,进入正常运行状态。
本申请目标控制器通过在目标控制器和辅助控制器之间进行通信过程中,通过对目标控制器和辅助控制器发送的内容进行加密,以保证在通信过程中信息传输的安全性和机密性;同时,通过使用临时数(Nonce)作为抵挡重放攻击的保护。
图10为本申请实施例提供的一种目标控制器的结构示意图。如图10所示,本申请提供的目标控制器10包括:接收单元1001、发送单元1003、处理单元1005和存储单元1007。
发送单元1003用于向辅助控制器发送启动信息。其中启动信息用于触发辅助控制器20参与认证目标控制器10的引导代码控制程序和/或系统控制程序的安全启动程序。辅助控制器20包括安全储存单元,安全储存单元具有防止篡改的功能,存储有用于认证目标控制器10的第一公钥信息。
存储单元接收单元1001用于接收辅助控制器20发送的挑战信息。
处理单元1005用于根据挑战信息获得应答信息。。其中,所述应答信息包括第一信息和第二信息,第一信息为引导代码控制程序和/或系统控制程序的镜像的哈希值,第二信息为第一信息的签名值。
发送单元1003还用于向辅助控制器20发送应答信息。
接收单元1001还用于接收辅助控制器20发送的运行信息,运行信息用于通知目标控制器第二信息是否通过验证。其中,运行信息是辅助控制器20通过第一公钥信息和第一信息验证第二信息时产生的。
处理单元1005还用于根据运行引导代码控制程序和/或系统控制程序。
在一个可能的实施例中,处理单元1005具体用于接收辅助控制器20发送的第一挑战信息后,计算引导代码控制程序的镜像的第一镜像哈希值和第一镜像签名值;接收辅助控制器20发送的第二挑战信息后,计算系统控制程序的镜像的第二镜像哈希值和第二镜像签名值。
在一个可能的实施例中,第一镜像哈希值是通过对引导代码控制程序的镜像进行哈希,然后作C次方和并模N计算得到的;第一镜像签名值是通过对第一镜像哈希值的镜像进行签名,然后作C次方和并模N计算得到的。第二镜像哈希值是通过对系统控制程序的镜像进行哈希,然后作C次方和并模N计算;第二镜像签名值是通过对第二镜像哈希值的镜像进行签名,然后作C次方和并模N计算,其中C和N为正整数。
在一个可能的实施例中,存储单元1007存储有第二公钥信息,用于与第一公钥信息进行比较。
在一个可能的实施例中,存储单元1007还用于存储通信密钥。处理单元还用于在与辅助控制器进行通信过程中,使用通信密钥对目标控制器发送的启动信息和应答信息中的至少一个进行加密,并且使用通信密钥对目标控制器接收的挑战信息和运行信息中的至少一个进行解密。
本申请的目标控制器在与辅助控制器进行通信过程中,目标控制器接收到辅助控制器发送挑战信息(challenge)后,发送应答信息(response)给辅助控制器,辅助控制器通过应答协议、应答信息中的引导程序(Bootloader)与系统(System)的公钥信息、镜像哈希值和镜像签名值、以及在安全储存单元存储的公钥信息,来验证目标控制器启动过程中引导程序与系统的源可信和完整性。在辅助控制器验证目标控制器的引导程序与系统的源可信和完整性时,目标控制器才能进入正常工作状态。
图11为本申请实施例提供的一种辅助控制器的结构示意图。如图11所示,本申请提供的辅助控制器20包括:接收单元1101、发送单元1103、处理单元1105和安全储存单元1107。
安全储存单元1107具有防止篡改的功能,存储有用于认证目标控制器10的第一公钥信息。
接收单元1101用于接收目标控制器10发送的启动信息。
处理单元1105用于根据启动信息触发认证目标控制器的引导代码控制程序和/或系统控制程序。
发送单元1103用于向目标控制器10发送挑战信息。其中,挑战信息用于让目标控制器10产生第一信息和第二信息。第一信息为引导代码控制程序和/或系统控制程序的镜像的哈希值,第二信息为第一信息的签名值。
接收单元1101还用于接收目标控制器10发送的应答信息。其中,应答信息包括第一信息和第二信息。
处理单元1105还用于通过第一公钥信息和第一信息验证第二信息。
发送单元1103还用于向目标控制器10发送运行信息。其中,运行信息用于通知目标控制器10第二信息是否通过验证。
在一个可能的实施例中,处理单元1105具体用于:将第一镜像哈希值作第一公钥信息次方和并模N后,得到的哈希值与第一镜像签名值进行比较,在确定相同后,向目标控制器10发送第二挑战信息;第一镜像哈希值是通过计算引导代码控制程序的镜像得到的,第一镜像签名值是通过对第一镜像哈希值的镜像进行签名得到的。将第二镜像哈希值作第一公钥信息次方和并模N后,得到的哈希值与第二镜像签名值进行比较,在确定相同后,向目标控制器10发送运行信息;第二镜像哈希值是通过计算系统控制程序的镜像得到的,第二镜像签名值是通过对第二镜像哈希值的镜像进行签名得到的。其中,应答信息包括第一镜像哈希值、第一镜像签名值、第二镜像哈希值和第二镜像签名值。
在一个可能的实施例中,当应答信息还包括第二公钥信息时,处理单元1105具体用于验证第一公钥信息与第二公钥信息是否相同,在确定第一公钥信息与第二公钥信息相同的情况下,再验证第二信息。
在一个可能的实施例中,安全储存单元1207还用于存储通信密钥。处理单元还用于在与目标控制器进行通信过程中,使用通信密钥对辅助控制器发送的挑战信息和运行信息中的至少一个进行加密,并且使用通信密钥对辅助控制器接收的启动信息和应答信息中的至少一个进行解密。
本申请辅助控制器在与目标控制器进行通信过程中,辅助控制器发送挑战信息(challenge)给目标控制器,目标控制器接收到挑战信息后,发送应答信息(response)给辅助控制器,辅助控制器通过应答协议、应答信息中的引导程序(Bootloader)与系统(System)的公钥信息、镜像哈希值和镜像签名值、以及在安全储存单元存储的公钥信息,来验证目标控制器启动过程中引导程序与系统的源可信和完整性。在辅助控制器验证目标控制器的引导程序与系统的源可信和完整性时,发送运行信息给目标控制器。
图12为本申请实施例提供的另一种目标控制器的结构示意图。如图12所示,本申请提供的目标控制器10包括:接收单元1201、发送单元1203、处理单元1205和存储单元1207。
发送单元1203用于向辅助控制器20发送启动信息。其中,启动信息用于触发辅助控制器20参与认证目标控制器10的引导代码控制程序和/或系统控制程序的安全启动程序。辅助控制器20生成至少两个挑战信息;辅助控制器20包括安全储存单元,安全储存单元具有防止篡改的功能,存储有第一密钥信息、引导代码控制程序和/或系统控制程序和至少两个挑战信息。
接收单元1201用于接收辅助控制器20发送的挑战信息。
处理单元1205用于根据挑战信息产生应答信息。其中,应答信息为引导代码控制程序和/或系统控制程序的镜像的哈希值。
发送单元1203还用于向辅助控制器20发送应答信息。
接收单元1201还用于接收辅助控制器20发送的运行信息。其中,运行信息是辅助控制器20通过第一密钥信息和原始哈希值验证应答信息时产生的。
处理单元1205还用于根据运行信息运行引导代码控制程序和/或系统控制程序。
在一个可能的实施例中,处理单元1205具体用于:接收从辅助控制器20中生成的至少两个挑战信息中选择发送的第一挑战信息后,将第一挑战信息和引导代码控制程序的镜像进行哈希,得到第一镜像哈希值;接收从辅助控制器中生成的至少两个挑战信息中选择发送的第二挑战信息后,将第二挑战信息和系统控制程序的镜像进行哈希,得到第二镜像哈希值。
在一个可能的实施例中,存储单元1207用于存储通信密钥。处理单元还用于在与辅助控制器进行通信过程中,使用通信密钥对目标控制器发送的启动信息和应答信息中的至少一个进行加密,并且使用通信密钥对目标控制器接收的挑战信息和运行信息中的至少一个进行解密。
本申请的目标控制器在与辅助控制器进行通信过程中,目标控制器接收到辅助控制器发送其生成的多个挑战信息(challenge)中的选择一个挑战信息(challenge)后,发送应答信息(response)给辅助控制器,辅助控制器通过应答协议、应答信息中的引导程序(Bootloader)与系统(System)的镜像哈希值、以及在安全储存单元存储的密钥信息,来验证目标控制器启动过程中引导程序与系统的源可信和完整性。在辅助控制器验证目标控制器的引导程序与系统的源可信和完整性时,目标控制器才能进入正常工作状态。
图13为本申请实施例提供的另一种辅助控制器的结构示意图。如图13所示,本申请提供的辅助控制器20包括:接收单元1301、发送单元1303、处理单元1305和安全储存单元1307。
安全储存单元1307具有防止篡改的功能,用于存储有第一密钥信息、引导代码控制程序和/或系统控制程序,以及至少两个挑战信息。
接收单元1301用于接收目标控制器10发送的启动信息。
处理单元1305用于根据启动信息触发参与认证目标控制器10的引导代码控制程序和/或系统控制程序的安全启动程序。
发送单元1303用于向目标控制器10发送挑战信息。其中,挑战信息用于让目标控制器10获取应答信息。应答信息为引导代码控制程序和/或系统控制程序的镜像的哈希值。
接收单元1301还用于接收目标控制器10发送的应答信息。
处理单元1305还用于通过第一密钥信息和原始哈希值验证应答信息。
发送单元1303还用于向目标控制器发送运行信息。其中,运行信息用于运行引导代码控制程序和/或系统控制程序。
其中,安全储存单元1307中存储的至少两个原始哈希值,具体为:将至少两个挑战信息分别与引导代码控制程序的镜像进行哈希,然后再与第一密钥信息进行哈希,得到至少两个引导代码控制程序的原始哈希值;将至少两个挑战信息分别与系统控制程序的镜像进行哈希,然后再与第一密钥信息进行哈希,得到至少两个系统控制程序的原始哈希值。
在一个可能的实施例中,处理单元1305具体用于:将第一密钥信息与第一镜像哈希值进行哈希,得到的哈希值与第一挑战信息对应的引导代码控制程序的原始哈希值进行比较,在确定相同后,向目标控制器10发送第二挑战信息;第一镜像哈希值通过第一挑战信息和引导代码控制程序的镜像进行哈希得到的。将第一密钥信息和第二镜像哈希值进行哈希,得到的哈希值与第二挑战信息对应的系统控制程序的原始哈希值进行比较,在确定相同后,向目标控制器10发送运行信息;第二镜像哈希值通过第二挑战信息和系统控制程序的镜像进行哈希得到的。其中,所述至少两个挑战信息包括所述第一挑战信息和所述第二挑战信息。
在一个可能的实施例中,安全储存单元1307还用于存储通信密钥。处理单元还用于在与目标控制器进行通信过程中,使用通信密钥对辅助控制器发送的挑战信息和运行信息中的至少一个进行加密,并且使用通信密钥对辅助控制器接收的启动信息和应答信息中的至少一个进行解密。。
本申请的辅助控制器在与目标控制器进行通信过程中,辅助控制器从生成的多个挑战信息(challenge)中的选择一个挑战信息(challenge)发送给目标控制器,目标控制器接收到挑战信息后,发送应答信息(response)给辅助控制器,辅助控制器通过应答协议、应答信息中的引导程序(Bootloader)与系统(System)的镜像哈希值、以及在安全储存单元存储的密钥信息,来验证目标控制器启动过程中引导程序与系统的源可信和完整性。在辅助控制器验证目标控制器的引导程序与系统的源可信和完整性时,发送运行信息给目标控制器。
说要特别说明的是,本申请实施例中辅助控制器和安全储存单元均具有验证其它控制器安全性的功能,本申请将以辅助控制器对其它控制器进行安全性验证为例进行讲述。如果已安全储存单元进行讲述的话,将上述提到的辅助控制器的功能全部由安全储存单元来执行。
图14为本申请实施例提供的一种控制系统的结构示意图。如图14所示,本申请提供的控制系统14包括目标控制器10和辅助控制器20。其中,辅助控制器20包括安全储存单元1401。其安全储存单元1401存储有用于认证目标控制器10的公钥信息。
在目标控制器和辅助控制器进行通信过程中,辅助控制器发送挑战信息(challenge)给目标控制器,目标控制器接收辅助控制器发送挑战信息(challenge),发送应答信息(response)给辅助控制器,辅助控制器通过应答协议、应答信息中的引导程序(Bootloader)与系统(System)的公钥信息、镜像哈希值和镜像签名值、以及在安全储存单元存储的公钥信息,来验证目标控制器启动过程中引导程序与系统的源可信和完整性。在辅助控制器验证目标控制器的引导程序与系统的源可信和完整性时,发送运行信息给目标控制器,目标控制器根据接收到的运行信息才能进入正常工作状态。
图15为本申请实施例提供的另一种控制系统的结构示意图。如图15所示,本申请提供的控制系统15包括目标控制器10和辅助控制器20。其中,辅助控制器20包括安全储存单元1501。其安全储存单元1401存储有辅助控制器生成至少两个挑战信息、目标控制器10的第一公钥信息、目标控制器10的引导代码控制程序和/或系统控制程序和至少两个挑战信息。
其中,安全储存单元1501中存储的至少两个原始哈希值,具体为:将至少两个挑战信息分别与引导代码控制程序的镜像进行哈希,然后再与第一公钥信息进行哈希,得到至少两个引导代码控制程序的原始哈希值;将至少两个挑战信息分别与系统控制程序的镜像进行哈希,然后再与第一公钥信息进行哈希,得到至少两个系统控制程序的原始哈希值。
在目标控制器和辅助控制器进行通信过程中,辅助控制器从生成的多个挑战信息(challenge)中的选择一个挑战信息(challenge)发送给目标控制器,目标控制器接收到辅助控制器发送的挑战信息(challenge),发送应答信息(response)给辅助控制器,辅助控制器通过应答协议、应答信息中的引导程序(Bootloader)与系统(System)的镜像哈希值、以及在安全储存单元1501存储的公钥信息,来验证目标控制器启动过程中引导程序与系统的源可信和完整性。在辅助控制器验证目标控制器的引导程序与系统的源可信和完整性时,发送运行信息给目标控制器,目标控制器根据接收到的运行信息才能进入正常工作状态。
本申请还提供的一种车载设备,其包括如图14所示的控制系统。其中目标控制器10与辅助控制通过实体总线连接,实现目标控制器和辅助控制器之间进行通信。
本申请还提供的另一种车载设备,其包括如图15所示的控制系统。其中目标控制器10与辅助控制通过实体总线连接,实现目标控制器和辅助控制器之间进行通信。
图16为本申请实施例提供的一种通信装置的结构示意图。如图16所示的通信装置1600,该通信装置1600可以包括传感器1601,显示器1602,处理器1603、存储器1604、通信接口1605以及总线1606。终端设备中的处理器1603、存储器1604和通信接口1605可以通过总线1606建立通信连接。
传感器1601,用于发送启动信息和应答信息,以及获取辅助控制器发送挑战信息和运行信息。
显示器1602,用于显示处理后的数据。
处理器1603可以为中央处理器(英文:central processing unit,缩写:CPU)。
存储器1604可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器1604也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘(hard disk drive,HDD)或固态硬盘(solid state drive,SSD);存储器1604还可以包括上述种类的存储器的组合。
上述实施例提供的安全启动方法,均由处理器1603来执行。第一程序、第二公钥信息、第一信息、第二信息和通信密钥等数据将存储在存储器中。另外,存储器1604中还将用于存储处理器1604执行的用于实现上述实施例所述的安全启动的方法对应的程序指令等等。
图17为本申请实施例提供的另一种通信装置的结构示意图。如图17所示的通信装置1700,该通信装置1700可以包括传感器1701,显示器1702,处理器1703、安全存储单元1704、通信接口1705以及总线1706。终端设备中的处理器1703、安全存储单元1704和通信接口1705可以通过总线1706建立通信连接。
传感器1701,用于发送挑战信息和运行信息,以及获取目标控制器发送启动信息和应答信息。
显示器1702,用于显示处理后的数据。
处理器1703可以为中央处理器(central processing unit,CPU)。
安全存储单元1704可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);安全存储单元1704也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘(harddisk drive,HDD)或固态硬盘(solid state drive,SSD);安全存储单元1704还可以包括上述种类的存储器的组合。其最大的特点是具有防篡改的功能。
上述实施例提供的安全启动方法,均由处理器1703来执行。第一公钥信息、目标控制器的第一程序和通信密钥等数据将存储在存储器中。另外,安全存储单元1704中还将用于存储处理器1704执行的用于实现上述实施例所述的安全启动的方法对应的程序指令等等。
本申请还提供的一种可读存储介质,用于存储有指令,当所述指令被执行时,使得如图2或如图6中所述的方法被实现。
本申请还提供的另一种可读存储介质,用于存储有指令,当所述指令被执行时,使得如图3或如图7中所述的方法被实现。
本申请还提供的一种包含指令的计算机程序产品,其特征在于,当其在终端上运行时,使得所述终端执行如图2或如图6中所述的方法。
本申请还提供的一种包含指令的计算机程序产品,其特征在于,当其在终端上运行时,使得所述终端执行如图3或如图7中所述的方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
此外,本申请实施例的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本申请中使用的术语“制品”涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括,但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,CD)、数字通用盘(digital versatiledisc,DVD)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasableprogrammable read-only memory,EPROM)、卡、棒或钥匙驱动器等)。另外,本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可包括但不限于,无线信道和能够存储、包含和/或承载指令和/或数据的各种其它介质。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
应当理解的是,在本申请实施例的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者接入网设备等)执行本申请实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (42)
1.一种安全启动方法,其特征在于,所述方法由目标控制器执行,包括:
向辅助控制器发送启动信息,所述辅助控制器包括存储有第一公钥信息的安全储存单元,所述安全储存单元具有防止篡改的功能,所述第一公钥信息用于认证所述目标控制器,所述启动信息用于触发所述辅助控制器认证所述目标控制器的第一程序;
接收所述辅助控制器发送的挑战信息,并根据所述挑战信息获得应答信息,所述应答信息包括第一信息和第二信息;
向所述辅助控制器发送所述应答信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述辅助控制器发送的运行信息,所述运行信息用于通知所述目标控制器所述第二信息是否通过验证;
运行所述第一程序,所述第一程序包括引导代码控制程序和/或系统控制程序。
3.根据权利要求1所述的方法,其特征在于,所述根据所述挑战信息获得应答信息,所述应答信息包括第一信息和第二信息,包括:
所述挑战信息为C,根据所述C获得所述第一程序的镜像哈希值,将得到的所述镜像哈希值作C次方和并模N计算,获得所述第一信息;
所述目标控制器存储有所述第一程序的镜像的哈希值的签名值,将所述签名值作C次方和并模N计算,获得所述第二信息;其中,C和N为正整数。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述目标控制器存储有通信密钥,所述方法还包括:
在与所述辅助控制器进行通信过程中,使用所述通信密钥对所述目标控制器发送的所述启动信息和所述应答信息中的至少一个进行加密,并且使用所述通信密钥对所述目标控制器接收的所述挑战信息和所述运行信息中的至少一个进行解密。
5.一种安全启动方法,其特征在于,所述方法由辅助控制器执行,其中,所述辅助控制器包括存储有第一公钥信息的安全储存单元,所述安全储存单元具有防止篡改的功能,所述第一公钥信息用于认证目标控制器,所述方法包括:
接收所述目标控制器发送的启动信息,所述启动信息用于触发所述辅助控制器认证所述目标控制器的第一程序;
向所述目标控制器发送挑战信息;
接收所述目标控制器发送的应答信息,所述应答信息包括所述第一信息和所述第二信息。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
向所述目标控制器发送运行信息,所述运行信息用于通知所述目标控制器所述第二信息是否通过验证。
7.根据权利要求6所述的方法,其特征在于,向所述目标控制器发送运行信息,包括:
将所述第一信息作所述第一公钥信息次方和并模N后,获得哈希值;
当所述哈希值与所述第二信息相同时,向所述目标控制器发送所述运行信息。
8.根据权利要求6所述的方法,其特征在于,所述应答信息还包括第二公钥信息,所述方法还包括:
验证所述第一公钥信息与所述第二公钥信息是否相同;
当所述第一公钥信息与所述第二公钥信息相同时,验证所述第二信息。
9.根据权利要求5-8中任一项所述的方法,其特征在于,所述安全储存单元还存储有通信密钥,所述方法还包括:
在与所述目标控制器进行通信过程中,使用所述通信密钥对所述辅助控制器发送的所述挑战信息和所述运行信息中的至少一个进行加密,并且使用所述通信密钥对所述辅助控制器接收的所述启动信息和所述应答信息中的至少一个进行解密。
10.一种安全启动方法,其特征在于,所述方法由目标控制器执行,所述方法包括:
向辅助控制器发送启动信息,所述辅助控制器包括存储有第一密钥信息的安全储存单元,所述安全储存单元具有防止篡改的功能,所述启动信息用于触发所述辅助控制器认证所述目标控制器的第一程序;
接收所述辅助控制器发送的挑战信息,并根据所述挑战信息生成应答信息;
向所述辅助控制器发送所述应答信息。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
接收所述辅助控制器发送的运行信息,所述运行信息用于通知所述目标控制器所述应答信息是否通过验证;
运行所述第一程序,所述第一程序包括引导代码控制程序和/或系统控制程序。
12.根据权利要求10所述的方法,其特征在于,所述根据所述挑战信息生成应答信息,包括:
将所述挑战信息和所述第一程序的镜像进行哈希,获得所述应答信息。
13.根据权利要求10-12中任一项所述的方法,其特征在于,所述目标控制器存储有通信密钥,所述方法还包括:
在与所述辅助控制器进行通信过程中,使用所述通信密钥对所述目标控制器发送的所述启动信息和所述应答信息中的至少一个进行加密,并且使用所述通信密钥对所述目标控制器接收的所述挑战信息和所述运行信息中的至少一个进行解密。
14.一种安全启动方法,其特征在于,所述方法由辅助控制器执行,其中,所述辅助控制器包括存储有第一密钥信息的安全储存单元,所述安全储存单元具有防止篡改的功能,所述第一秘钥信息用于认证所述目标控制器,所述方法包括:
接收所述目标控制器发送的启动信息,所述启动信息用于触发所述辅助控制器认证所述目标控制器的第一程序;
向所述目标控制器发送挑战信息;
接收所述目标控制器发送的所述应答信息。
15.据权利要求14所述的方法,其特征在于,所述方法还包括:
向所述目标控制器发送运行信息;所述运行信息用于通知所述目标控制器所述应答信息是过验证。
16.根据权利要求15所述的方法,其特征在于,所述安全存储单元还存储有所述目标控制器的所述第一程序,
所述向所述目标控制器发送运行信息,包括:
将所述第一密钥信息与所述应答信息进行哈希,得到哈希值;
确定所述哈希值与所述挑战信息对应的所述第一程序的原始哈希值相同时,向所述目标控制器发送所述运行信息;所述原始哈希值是通过所述挑战信息和所述第一程序进行哈希,将得到的哈希值与所述第一密钥信息进行哈希得到的。
17.根据权利要求14-16中任一项所述的方法,其特征在于,所述安全储存单元还存储有通信密钥,所述方法还包括:
在与所述目标控制器进行通信过程中,使用所述通信密钥对所述辅助控制器发送的所述挑战信息和所述运行信息中的至少一个进行加密,并且使用所述通信密钥对所述辅助控制器接收的所述启动信息和所述应答信息中的至少一个进行解密。
18.一种目标控制器,其特征在于,包括:
发送单元,用于向辅助控制器发送启动信息;所述启动信息用于触发所述辅助控制器认证所述目标控制器的第一程序;所述辅助控制器包括存储有第一公钥信息的安全储存单元,所述安全储存单元具有防止篡改的功能,所述第一公钥信息用于认证所述目标控制器;
接收单元,用于接收所述辅助控制器发送的挑战信息;
处理单元,用于根据所述挑战信息获得应答信息,所述应答信息包括第一信息和第二信息;
所述发送单元,还用于向所述辅助控制器发送所述应答信息。
19.根据权利要求18所述的目标控制器,其特征在于,所述接收单元,还用于接收所述辅助控制器发送的运行信息,所述运行信息用于通知所述目标控制器所述第二信息是否通过验证;
所述处理单元,还用于运行所述第一程序,所述第一程序包括引导代码控制程序和/或系统控制程序。
20.根据权利要求18所述的目标控制器,其特征在于,所述挑战信息为C,所述目标控制器包括:
所述处理单元,具体用于根据所述C获得所述第一程序的镜像哈希值,将得到的所述镜像哈希值作C次方和并模N计算,获得所述第一信息;
存储单元,用于存储有所述第一程序的镜像的哈希值的签名值;
所述处理单元,还用于将所述签名值作C次方和并模N计算,获得所述第二信息;其中,C和N为正整数。
21.根据权利要求18-20中任一项所述的目标控制器,其特征在于,所述目标控制器包括:
存储单元,用于存储通信密钥;
所述处理单元,还用于在与所述辅助控制器进行通信过程中,使用所述通信密钥对所述目标控制器发送的所述启动信息和所述应答信息中的至少一个进行加密,并且使用所述通信密钥对所述目标控制器接收的所述挑战信息和所述运行信息中的至少一个进行解密。
22.一种辅助控制器,其特征在于,包括:
安全储存单元,具有防止篡改的功能,用于存储用于认证所述目标控制器的第一公钥信息;
接收单元,用于接收目标控制器发送的启动信息;
处理单元,用于根据所述启动信息触发认证所述目标控制器的第一程序;
发送单元,用于向所述目标控制器发送挑战信息;
所述接收单元,还用于接收所述目标控制器发送的应答信息,所述应答信息包括所述第一信息和所述第二信息。
23.根据权利要求22所述的辅助控制器,其特征在于,
所述发送单元,还用于向所述目标控制器发送运行信息,所述运行信息用于通知所述目标控制器所述第二信息是否通过验证。
24.根据权利要求23所述的辅助控制器,其特征在于,
所述处理单元,具体用于将所述第一信息作所述第一公钥信息次方和并模N后,获得哈希值;以及
当所述哈希值与所述第二信息相同时,所述处理单元控制所述发送单元向所述目标控制器发送所述运行信息。
25.根据权利要求23所述的辅助控制器,其特征在于,所述应答信息还包括第二公钥信息,
所述处理单元,还用于验证所述第一公钥信息与所述第二公钥信息是否相同;以及
当所述第一公钥信息与所述第二公钥信息相同时,验证所述第二信息。
26.根据权利要求22-25中任一项所述的辅助控制器,其特征在于,
所述安全储存单元,还用于存储通信密钥;
所述处理单元,还用于在与所述目标控制器进行通信过程中,使用所述通信密钥对所述辅助控制器发送的所述挑战信息和所述运行信息中的至少一个进行加密,并且使用所述通信密钥对所述辅助控制器接收的所述启动信息和所述应答信息中的至少一个进行解密。
27.一种目标控制器,其特征在于,包括:
发送单元,用于向辅助控制器发送启动信息,所述启动信息用于触发所述辅助控制器认证所述目标控制器的第一程序;所述辅助控制器包括存储有第一密钥信息的安全储存单元,所述安全储存单元具有防止篡改的功能;
接收单元,用于接收所述辅助控制器发送的挑战信息;
处理单元,用于根据所述挑战信息生成应答信息;
所述发送单元,还用于向所述辅助控制器发送所述应答信息。
28.根据权利要求27所述的目标控制器,其特征在于,所述接收单元,还用于接收所述辅助控制器发送的运行信息,所述运行信息用于通知所述目标控制器所述应答信息是否通过验证;
所述处理单元,还用于运行所述第一程序,所述第一程序包括引导代码控制程序和/或系统控制程序。
29.根据权利要求27所述的目标控制器,其特征在于,所述处理单元,具体用于将所述挑战信息和所述第一程序的镜像进行哈希,获得所述应答信息。
30.根据权利要求27-29中任一项所述的目标控制器,其特征在于,所述目标控制器包括:
存储单元,用于存储通信密钥;
所述处理单元,还用于在与所述辅助控制器进行通信过程中,使用所述通信密钥对所述目标控制器发送的所述启动信息和所述应答信息中的至少一个进行加密,并且使用所述通信密钥对所述目标控制器接收的所述挑战信息和所述运行信息中的至少一个进行解密。
31.一种辅助控制器,其特征在于,包括:
安全储存单元,具有防止篡改的功能,用于存储用于认证所述目标控制器的第一密钥信息;
接收单元,用于接收目标控制器发送的启动信息;
处理单元,用于根据所述启动信息触发认证所述目标控制器的第一程序;
发送单元,用于向所述目标控制器发送挑战信息;
所述接收单元,还用于接收所述目标控制器发送的所述应答信息。
32.根据权利要求31所述的辅助控制器,其特征在于,
所述发送单元,还用于向所述目标控制器发送运行信息;所述运行信息用于通知所述目标控制器所述应答信息是否通过验证。
33.根据权利要求32所述的辅助控制器,其特征在于,
所述安全存储单元,还用于存储所述目标控制器的所述第一程序;
所述处理单元,具体用于将所述第一密钥信息与所述应答信息进行哈希,得到的哈希值;确定所述哈希值与所述挑战信息对应的所述第一程序的原始哈希值相同时,控制所述发送单元向所述目标控制器发送所述运行信息;所述原始哈希值是通过所述挑战信息和所述所述第一程序进行哈希,将得到的哈希值与所述第一密钥信息进行哈希得到的。
34.根据权利要求31中任一项所述的辅助控制器,其特征在于,
所述安全储存单元,还用于存储通信密钥;
所述处理单元,还用于在与所述目标控制器进行通信过程中,使用所述通信密钥对所述辅助控制器发送的所述挑战信息和所述运行信息中的至少一个进行加密,并且使用所述通信密钥对所述辅助控制器接收的所述启动信息和所述应答信息中的至少一个进行解密。
35.一种控制系统,其特征在于,包括:如权利要求18至权利要求21任一权利要求所述的目标控制器和如权利要求22至权利要求26任一权利要求所述的辅助控制器。
36.一种控制系统,其特征在于,包括:如权利要求27至权利要求30任一权利要求所述的目标控制器和如权利要求31至权利要求34任一权利要求所述的辅助控制器。
37.一种车载设备,其特征在于,包括:如权利要求38所述的控制系统;其中,所述目标控制器通过实体总线与所述辅助控制器进行连接。
38.一种车载设备,其特征在于,包括:如权利要求39所述的控制系统;其中,所述目标控制器通过实体总线与所述辅助控制器进行连接。
39.一种可读存储介质,用于存储指令,其特征在于,当所述指令被执行时,使得如权利要求1-4中的任一项或权利要求10-13中的任一项所述的方法被实现。
40.一种可读存储介质,用于存储指令,其特征在于,当所述指令被执行时,使得如权利要求5-9中的任一项或权利要求14-17中的任一项所述的方法被实现。
41.一种通信装置,其特征在于,包括:处理器和接口电路;
所述接口电路,用于接收代码指令并传输至所述处理器;
所述处理器用于运行所述代码指令以执行如权利要求1-4中的任一项或权利要求10-13中的任一项所述的方法。
42.一种通信装置,其特征在于,包括:处理器和接口电路;
所述接口电路,用于接收代码指令并传输至所述处理器;
所述处理器用于运行所述代码指令以执行如权利要求5-9中的任一项或权利要求14-17中的任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910721190.9A CN112347481B (zh) | 2019-08-06 | 2019-08-06 | 安全启动方法、控制器和控制系统 |
PCT/CN2020/075743 WO2021022802A1 (zh) | 2019-08-06 | 2020-02-18 | 安全启动方法、控制器和控制系统 |
EP20849123.3A EP3979113B1 (en) | 2019-08-06 | 2020-02-18 | Secure startup method, target controller, auxiliary controller, control system, vehicle-mounted device, and computer-readable storage medium |
US17/575,428 US20220182248A1 (en) | 2019-08-06 | 2022-01-13 | Secure startup method, controller, and control system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910721190.9A CN112347481B (zh) | 2019-08-06 | 2019-08-06 | 安全启动方法、控制器和控制系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112347481A true CN112347481A (zh) | 2021-02-09 |
CN112347481B CN112347481B (zh) | 2024-04-23 |
Family
ID=74366451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910721190.9A Active CN112347481B (zh) | 2019-08-06 | 2019-08-06 | 安全启动方法、控制器和控制系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220182248A1 (zh) |
EP (1) | EP3979113B1 (zh) |
CN (1) | CN112347481B (zh) |
WO (1) | WO2021022802A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281420A (zh) * | 2021-12-14 | 2022-04-05 | 延锋伟世通电子科技(上海)有限公司 | 基于硬件的随机数生成器的系统启动方法及系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102022129350A1 (de) | 2022-11-07 | 2024-05-08 | Infineon Technologies Ag | Fahrzeug, Vorrichtung, Computerprogramm und Verfahren zum Laden von Daten |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080165952A1 (en) * | 2007-01-07 | 2008-07-10 | Michael Smith | Secure Booting A Computing Device |
CN102819706A (zh) * | 2012-07-26 | 2012-12-12 | 重庆大学 | 在现有嵌入式设备上实现可信嵌入式系统的装置和方法 |
CN106295318A (zh) * | 2015-06-05 | 2017-01-04 | 北京壹人壹本信息科技有限公司 | 一种系统启动引导方法和装置 |
CN107220547A (zh) * | 2016-03-21 | 2017-09-29 | 展讯通信(上海)有限公司 | 终端设备及其启动方法 |
CN107729743A (zh) * | 2016-08-10 | 2018-02-23 | 中国电信股份有限公司 | 用于实现移动终端安全启动的方法、设备和系统 |
CN108399339A (zh) * | 2018-02-12 | 2018-08-14 | 广东为辰信息科技有限公司 | 一种基于安全芯片的可信启动方法 |
KR20180092596A (ko) * | 2017-02-10 | 2018-08-20 | 경희대학교 산학협력단 | 임베디드 보안 모듈을 이용한 IoT 디바이스 플랫폼의 보안 부팅 방법 및 시스템 |
CN108595982A (zh) * | 2018-03-19 | 2018-09-28 | 中国电子科技集团公司第三十研究所 | 一种基于多容器分离处理的安全计算架构方法及装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100608575B1 (ko) * | 2003-09-29 | 2006-08-03 | 삼성전자주식회사 | 자동 소유권 인증이 가능한 홈 네트워크 장치, 홈네트워크 시스템 및 그 방법 |
US8239686B1 (en) * | 2006-04-27 | 2012-08-07 | Vudu, Inc. | Method and system for protecting against the execution of unauthorized software |
US9455955B2 (en) * | 2006-05-17 | 2016-09-27 | Richard Fetik | Customizable storage controller with integrated F+ storage firewall protection |
US8984265B2 (en) * | 2007-03-30 | 2015-03-17 | Intel Corporation | Server active management technology (AMT) assisted secure boot |
US10332081B2 (en) * | 2012-03-16 | 2019-06-25 | Visa International Service Association | Pin entry for internet banking on media device |
EP2979392B1 (en) * | 2013-03-27 | 2019-08-14 | Irdeto B.V. | A challenge-response method and associated client device |
US9953166B2 (en) * | 2013-07-04 | 2018-04-24 | Microsemi SoC Corporation | Method for securely booting target processor in target system using a secure root of trust to verify a returned message authentication code recreated by the target processor |
US9705678B1 (en) * | 2014-04-17 | 2017-07-11 | Symantec Corporation | Fast CAN message authentication for vehicular systems |
US10482255B2 (en) * | 2016-02-16 | 2019-11-19 | Atmel Corporation | Controlled secure code authentication |
US20180010566A1 (en) * | 2016-07-06 | 2018-01-11 | Frank Barassi | Remote Starter System With Flashable Antenna |
KR101816651B1 (ko) * | 2017-02-14 | 2018-01-09 | 주식회사 코인플러그 | Utxo 기반 프로토콜의 블록체인 데이터베이스를 사용하여 서비스 제공 서버에 의하여 제공되는 서비스를 이용하기 위한 사용자의 로그인 요청에 대하여 pki 기반의 인증을 통해 로그인을 대행하는 방법 및 이를 이용한 서버 |
US10778450B1 (en) * | 2017-04-28 | 2020-09-15 | Wells Fargo Bank, N.A. | Gesture-extracted passwords for authenticated key exchange |
CN107241688A (zh) * | 2017-06-14 | 2017-10-10 | 北京小米移动软件有限公司 | 应用安装包的签名、验证方法、装置及存储介质 |
JP6329686B2 (ja) * | 2017-12-04 | 2018-05-23 | 株式会社コムテック | 車両用遠隔始動装置 |
WO2020035009A1 (zh) * | 2018-08-15 | 2020-02-20 | 飞天诚信科技股份有限公司 | 认证系统及其工作方法 |
US20200342109A1 (en) * | 2019-04-29 | 2020-10-29 | Hewlett Packard Enterprise Development Lp | Baseboard management controller to convey data |
-
2019
- 2019-08-06 CN CN201910721190.9A patent/CN112347481B/zh active Active
-
2020
- 2020-02-18 EP EP20849123.3A patent/EP3979113B1/en active Active
- 2020-02-18 WO PCT/CN2020/075743 patent/WO2021022802A1/zh unknown
-
2022
- 2022-01-13 US US17/575,428 patent/US20220182248A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080165952A1 (en) * | 2007-01-07 | 2008-07-10 | Michael Smith | Secure Booting A Computing Device |
CN102819706A (zh) * | 2012-07-26 | 2012-12-12 | 重庆大学 | 在现有嵌入式设备上实现可信嵌入式系统的装置和方法 |
CN106295318A (zh) * | 2015-06-05 | 2017-01-04 | 北京壹人壹本信息科技有限公司 | 一种系统启动引导方法和装置 |
CN107220547A (zh) * | 2016-03-21 | 2017-09-29 | 展讯通信(上海)有限公司 | 终端设备及其启动方法 |
CN107729743A (zh) * | 2016-08-10 | 2018-02-23 | 中国电信股份有限公司 | 用于实现移动终端安全启动的方法、设备和系统 |
KR20180092596A (ko) * | 2017-02-10 | 2018-08-20 | 경희대학교 산학협력단 | 임베디드 보안 모듈을 이용한 IoT 디바이스 플랫폼의 보안 부팅 방법 및 시스템 |
CN108399339A (zh) * | 2018-02-12 | 2018-08-14 | 广东为辰信息科技有限公司 | 一种基于安全芯片的可信启动方法 |
CN108595982A (zh) * | 2018-03-19 | 2018-09-28 | 中国电子科技集团公司第三十研究所 | 一种基于多容器分离处理的安全计算架构方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281420A (zh) * | 2021-12-14 | 2022-04-05 | 延锋伟世通电子科技(上海)有限公司 | 基于硬件的随机数生成器的系统启动方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20220182248A1 (en) | 2022-06-09 |
CN112347481B (zh) | 2024-04-23 |
EP3979113A1 (en) | 2022-04-06 |
EP3979113B1 (en) | 2023-06-28 |
EP3979113A4 (en) | 2022-08-31 |
WO2021022802A1 (zh) | 2021-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10708062B2 (en) | In-vehicle information communication system and authentication method | |
CN108496322B (zh) | 车载计算机系统、车辆、密钥生成装置、管理方法、密钥生成方法以及计算机可读取的记录介质 | |
US9479329B2 (en) | Motor vehicle control unit having a cryptographic device | |
US10091183B2 (en) | Method and decision gateway for authorizing a function of an embedded control unit | |
US20170200324A1 (en) | Device, method and system for collecting user-based insurance data in vehicles | |
CN111565182B (zh) | 一种车辆诊断方法、装置及存储介质 | |
JP2010011400A (ja) | 共通鍵方式の暗号通信システム | |
Wouters et al. | My other car is your car: compromising the Tesla Model X keyless entry system | |
CN109286500B (zh) | 车辆电子控制单元ecu认证方法、装置及设备 | |
TW201735578A (zh) | 受控的安全碼認證 | |
CN110730159B (zh) | 一种基于TrustZone的安全和可信混合系统启动方法 | |
CN113615220B (zh) | 一种安全通信方法和装置 | |
CN103269271A (zh) | 一种备份电子签名令牌中私钥的方法和系统 | |
JP6192673B2 (ja) | 鍵管理システム、鍵管理方法およびコンピュータプログラム | |
CN112165382A (zh) | 软件授权方法、装置、授权服务端及终端设备 | |
JP2010072976A (ja) | センタ装置,端末装置,および,認証システム | |
CN112448941A (zh) | 认证系统和用于认证微控制器的方法 | |
JP6387908B2 (ja) | 認証システム | |
CN109218025A (zh) | 方法、安全装置和安全系统 | |
CN112513844A (zh) | 用于处理和认证数字密钥的安全元件及其操作方法 | |
CN112347481B (zh) | 安全启动方法、控制器和控制系统 | |
CN109743283B (zh) | 一种信息传输方法及设备 | |
CN111459869B (zh) | 一种数据访问的方法、装置、设备及存储介质 | |
CN113316916A (zh) | 数字密钥共享系统中更新防盗令牌的设备及方法 | |
CN116346398A (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 |