CN114365450B - 密钥处理方法和装置 - Google Patents
密钥处理方法和装置 Download PDFInfo
- Publication number
- CN114365450B CN114365450B CN202180005221.6A CN202180005221A CN114365450B CN 114365450 B CN114365450 B CN 114365450B CN 202180005221 A CN202180005221 A CN 202180005221A CN 114365450 B CN114365450 B CN 114365450B
- Authority
- CN
- China
- Prior art keywords
- key
- storage area
- encryption information
- information
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title description 20
- 238000003860 storage Methods 0.000 claims abstract description 717
- 238000000034 method Methods 0.000 claims abstract description 164
- 238000012545 processing Methods 0.000 claims abstract description 96
- 238000004891 communication Methods 0.000 claims abstract description 60
- 230000015654 memory Effects 0.000 claims description 232
- 230000007246 mechanism Effects 0.000 claims description 131
- 238000012546 transfer Methods 0.000 claims description 14
- 238000010276 construction Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 68
- 230000001976 improved effect Effects 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 42
- 238000012795 verification Methods 0.000 description 21
- VIEYMVWPECAOCY-UHFFFAOYSA-N 7-amino-4-(chloromethyl)chromen-2-one Chemical compound ClCC1=CC(=O)OC2=CC(N)=CC=C21 VIEYMVWPECAOCY-UHFFFAOYSA-N 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 12
- 239000003795 chemical substances by application Substances 0.000 description 12
- 238000007726 management method Methods 0.000 description 12
- 241000208340 Araliaceae Species 0.000 description 11
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 11
- 235000003140 Panax quinquefolius Nutrition 0.000 description 11
- 235000008434 ginseng Nutrition 0.000 description 11
- 230000008093 supporting effect Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013016 damping Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- 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
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种密钥处理方法和装置,涉及通信技术领域,包括:第一设备确定第一存储区;第一存储区用于存储第一密钥;第一设备确定与第一存储区关联的第二存储区,第二存储区用于存储第二密钥,第二密钥为第一密钥的更新密钥。这样,可以避免现有技术中密钥更新的繁琐过程,利用第一存储区和第二存储区实现第一密钥的更新,可以简化密钥更新的操作,并提高密钥的更新效率。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种密钥处理方法和装置。
背景技术
随着社会的发展,智能汽车正在逐步进入人们的日常生活中。智能汽车内部包含多种设备,多种设备间的正常通信是保障汽车正常行驶的必要条件。其中,车内设备间通信的基础是密钥。现如今,车内密钥的管理可以依赖于云端的密钥管理系统(key managersystem,KMS),其各设备的密钥可以在车厂云端的KMS上进行管理。
随着车辆联网化的演进,车内以及车外的信息安全可能受到威胁,若长期使用相同密钥,可能会带来安全隐患,因此需要不定时的更换新密钥,保证密钥本身的安全。通常情况下,当更新汽车的密钥时,可以在专业的汽车维修点,通过工具链接到汽车的云端密钥管理中心并获取密钥信息,再逐一链接到汽车内的各设备,灌装新密钥。
然而,上述密钥更新方法的自动化程度低,且密钥更新过程繁琐,使得密钥更新的效率低下。
发明内容
本申请实施例提供一种密钥处理方法和装置,可以为支持密钥的更新提供至少两个存储区,进而基于两个存储区可以实现密钥的更新,简化密钥更新的操作。
第一方面,本申请实施例提供一种密钥处理方法,包括:第一设备确定第一存储区;第一存储区用于存储第一密钥;第一设备确定与第一存储区关联的第二存储区,第二存储区用于存储第二密钥,第二密钥为第一密钥的更新密钥。
这样,可以有效减少密钥更新的步骤,利用第一存储区和第二存储区实现第一密钥的更新,可以简化密钥更新的操作,并提高密钥的更新效率。
结合第一方面,在一种可能的实现方式中,第一设备确定与第一存储区关联的第二存储区,包括:根据硬件安全机制,第一设备确定与第一存储区关联的第二存储区;硬件安全机制用于更新第一密钥。
这样,通过扩展硬件安全机制,可以使得硬件安全机制为支持密钥的更新提供至少两个存储区,进而基于两个存储区实现密钥的更新,简化密钥更新的操作。
结合第一方面,在一种可能的实现方式中,第二存储区是由硬件安全机制预定义的,或者,第二存储区是根据硬件安全机制中的接口接收到的第一命令确定的。
这样,可以基于硬件安全机制,实现为第一存储区匹配第二存储区,进而可以基于上述两个存储区,实现密钥的更新,简化密钥更新的操作。
结合第一方面,在一种可能的实现方式中,在更新第一密钥时:第一存储区和第二存储区交替使用;或者,第一存储区始终用于存放更新后的密钥。
这样,在密钥的更新过程中,两个交替使用的存储区可以提升密钥更新的可靠性;始终用一个存储区可以节省密钥更新时对于存储区的占用。
结合第一方面,在一种可能的实现方式中,密钥的存储信息包括以下至少一项:用于指示密钥构建状态的信息、用于指示密钥是否正在使用的信息,或,用于指示密钥为更新前的密钥或者更新后的密钥的信息。
这样,在密钥的更新过程中,多种密钥的存储信息可以进一步保障密钥更新的安全性。
结合第一方面,在一种可能的实现方式中,第一密钥的存储信息还包括:用于指示第一密钥的存储区为第一存储区的信息或为第二存储区的信息,或,用于指示与第一密钥的存储区配对使用的存储区的信息。
这样,在密钥的更新过程中,多种密钥的存储信息可以进一步保障密钥更新的安全性。
结合第一方面,在一种可能的实现方式中,第一命令包括以下至少一项:用于指示将第一存储区和第二存储区设置为配对的命令、用于指示将第一存储区和第二存储区解除配对的命令、用于指示更新密钥的命令、用于指示清除更新前的密钥的命令、用于指示查询第一存储区和/或第二存储区的密钥信息的命令、或用于指示将密钥从一个存储区转移到另一个存储区的命令。
这样,在密钥的更新过程中,多种第一命令可以进一步实现密钥的更新,简化密钥更新的操作。
结合第一方面,在一种可能的实现方式中,根据硬件安全机制,第一设备确定与第一存储区关联的第二存储区,包括:第一设备接收来自第二设备的第一消息,第一消息包括用于指示第一存储区和第二存储区的第一加密信息;第一设备验证第一加密信息;在第一加密信息验证通过的情况下,第一设备确定与第一存储区关联的第二存储区。
这样,第一设备可以根据来自第二设备的第一消息,确定与第一存储区关联的第二存储区,进而可以基于两个存储区,实现密钥的更新,简化密钥更新的操作。
结合第一方面,在一种可能的实现方式中,在第一加密信息验证通过的情况下,第一设备确定与第一存储区关联的第二存储区,包括:在第一加密信息验证通过的情况下,第一设备校验第二存储区是否被占用;在第二存储区未被占用的情况下,第一设备确定与第一存储区关联的第二存储区。
这样,第一设备可以根据校验过程,获得可以使用的第二存储区,防止由于第二存储区被占用导致密钥更新出错的问题,进一步实现密钥的更新。
结合第一方面,在一种可能的实现方式中,第一加密信息包括:第一参数M1和第二参数M2;其中,M1与第一存储区的信息和第二存储区的信息有关,M2与M1以及第一密钥有关。
这样,可以利用第一加密信息和多个参数,可以保障密钥更新的可靠性。
结合第一方面,在一种可能的实现方式中,还包括:第一设备基于硬件安全机制解除第二存储区。
这样,解除第二存储区可以及时释放存储区的空间,提升存储区的利用效率,同时也可以简化密钥更新的操作。
结合第一方面,在一种可能的实现方式中,还包括:第一设备基于硬件安全机制更新第一密钥。
这样,可以通过扩展硬件安全机制,使得硬件安全机制可以支持为更新第一密钥提供至少两个存储区;进而可以基于两个存储区实现密钥的更新,简化密钥更新的操作,并提高密钥的更新效率。
结合第一方面,在一种可能的实现方式中,第一设备基于硬件安全机制更新第一密钥,包括:第一设备接收来自第二设备的第二消息,第二消息包括用于指示第一存储区、第二存储区以及第二密钥的第二加密信息;第一设备根据第二加密信息,得到第二密钥;第一设备将第二密钥存储在第二存储区;第一设备根据第二密钥和第二存储区构建第三加密信息,第三加密信息用于指示第一设备完成第二密钥的存储;第一设备向第二设备发送第三加密信息。
这样,第一设备可以根据来自第二设备的第二消息,确定第二密钥,进而可以基于第二密钥,实现密钥的更新,简化密钥更新的操作。
结合第一方面,在一种可能的实现方式中,第二加密信息包括:第三参数M3、第四参数M4和第五参数M5;其中,M3与第一存储区的信息和第二存储区的信息有关,M4与第二密钥有关,M5与M3、M4以及第一密钥有关。
这样,可以利用第二加密信息和多个参数,保障密钥更新的可靠性。
结合第一方面,在一种可能的实现方式中,第三加密信息包括:第六参数M6和第七参数M7;其中,M6与第二存储区的信息有关,M7与第二密钥有关。
这样,可以利用第三加密信息和多个参数,可以保障密钥更新的可靠性。
结合第一方面,在一种可能的实现方式中,第一设备向第二设备发送第三加密信息之后,方法还包括:第一设备接收来自第二设备的第四加密信息,第四加密信息用于指示第一设备删除第一密钥;第一设备验证第四加密信息;在第四加密信息验证通过的情况下,第一设备删除第一密钥;或者,在第四加密信息验证通过的情况下,第一设备删除第一密钥,将第二密钥从第二存储区转移到第一存储区,并解除第二存储区与第一存储区的关联关系。
这样,删除第一密钥,启动第二密钥,可以避免第一密钥对业务的干扰,同时可以简化密钥更新的操作。
结合第一方面,在一种可能的实现方式中,第四加密信息包括:第八参数M8和第九参数M9;其中,M8与第二存储区的信息有关,M9与M8以及第二密钥有关。
这样,可以利用第四加密信息和多个参数,可以保障密钥更新的可靠性。
结合第一方面,在一种可能的实现方式中,还包括:第一设备接收用于指示将第一存储区和第二存储区设置为配对的命令;根据用于指示将第一存储区和第二存储区设置为配对的命令,第一设备基于硬件安全机制生成第一加密信息;第一加密信息用于指示第一存储区和第二存储区;第一设备向第二设备发送第一消息;第一消息包括第一加密信息。
这样,第一设备可以根据命令,确定与第一存储区关联的第二存储区,进而可以基于两个存储区,实现密钥的更新,简化密钥更新的操作。
结合第一方面,在一种可能的实现方式中,还包括:第一设备接收用于指示更新密钥的命令;根据用于指示更新密钥的命令,第一设备基于硬件安全机制生成第二加密信息;第二加密信息用于指示第一存储区、第二存储区以及第二密钥;第一设备向第二设备发送第二消息,第二消息包括第二加密信息;第一设备接收来自第二设备的第三加密信息;第三加密信息用于指示第二设备完成第二密钥的存储;第一设备验证第三加密信息;在第三加密信息验证通过的情况下,第一设备确定第二密钥更新成功。
这样,可以通过扩展硬件安全机制,使得硬件安全机制可以支持为更新第一密钥提供至少两个存储区;进而可以基于两个存储区实现密钥的更新,简化密钥更新的操作,并提高密钥的更新效率。
结合第一方面,在一种可能的实现方式中,还包括:第一设备向第二设备发送第四加密信息;第四加密信息用于指示第一设备删除第一密钥。
这样,删除第一密钥,启动第二密钥,可以避免第一密钥对业务的干扰,同时可以简化密钥更新的操作。
第二方面,本申请实施例提供一种密钥处理装置,处理单元,用于确定第一存储区;第一存储区用于存储第一密钥;处理单元,还用于确定与第一存储区关联的第二存储区,第二存储区用于存储第二密钥,第二密钥为第一密钥的更新密钥。
结合第二方面,在一种可能的实现方式中,根据硬件安全机制,处理单元,具体用于确定与第一存储区关联的第二存储区;硬件安全机制用于更新第一密钥。
结合第二方面,在一种可能的实现方式中,第二存储区是由硬件安全机制预定义的,或者,第二存储区是根据硬件安全机制中的接口接收到的第一命令确定的。
结合第二方面,在一种可能的实现方式中,在更新第一密钥时:第一存储区和第二存储区交替使用;或者,第一存储区始终用于存放更新后的密钥。
结合第二方面,在一种可能的实现方式中,密钥的存储信息包括以下至少一项:用于指示密钥构建状态的信息、用于指示密钥是否正在使用的信息,或,用于指示密钥为更新前的密钥或者更新后的密钥的信息。
结合第二方面,在一种可能的实现方式中,第一密钥的存储信息还包括:用于指示第一密钥的存储区为第一存储区的信息或为第二存储区的信息,或,用于指示与第一密钥的存储区配对使用的存储区的信息。
结合第二方面,在一种可能的实现方式中,第一命令包括以下至少一项:用于指示将第一存储区和第二存储区设置为配对的命令、用于指示将第一存储区和第二存储区解除配对的命令、用于指示更新密钥的命令、用于指示清除更新前的密钥的命令、用于指示查询第一存储区和/或第二存储区的密钥信息的命令、或用于指示将密钥从一个存储区转移到另一个存储区的命令。
结合第二方面,在一种可能的实现方式中,通信单元,用于接收来自第二设备的第一消息,第一消息包括用于指示第一存储区和第二存储区的第一加密信息;处理单元,具体用于验证第一加密信息;在第一加密信息验证通过的情况下,处理单元,还具体用于确定与第一存储区关联的第二存储区。
结合第二方面,在一种可能的实现方式中,在第一加密信息验证通过的情况下,处理单元,具体用于校验第二存储区是否被占用;在第二存储区未被占用的情况下,处理单元,还具体用于确定与第一存储区关联的第二存储区。
结合第二方面,在一种可能的实现方式中,第一加密信息包括:第一参数M1和第二参数M2;其中,M1与第一存储区的信息和第二存储区的信息有关,M2与M1以及第一密钥有关。
结合第二方面,在一种可能的实现方式中,处理单元,还用于基于硬件安全机制解除第二存储区。
结合第二方面,在一种可能的实现方式中,处理单元,还用于基于硬件安全机制更新第一密钥。
结合第二方面,在一种可能的实现方式中,通信单元,具体用于接收来自第二设备的第二消息,第二消息包括用于指示第一存储区、第二存储区以及第二密钥的第二加密信息;处理单元,具体用于根据第二加密信息,得到第二密钥;处理单元,还具体用于将第二密钥存储在第二存储区;处理单元,还具体用于根据第二密钥和第二存储区构建第三加密信息,第三加密信息用于指示第一设备完成第二密钥的存储;通信单元,还具体用于向第二设备发送第三加密信息。
结合第二方面,在一种可能的实现方式中,第二加密信息包括:第三参数M3、第四参数M4和第五参数M5;其中,M3与第一存储区的信息和第二存储区的信息有关,M4与第二密钥有关,M5与M3、M4以及第一密钥有关。
结合第二方面,在一种可能的实现方式中,第三加密信息包括:第六参数M6和第七参数M7;其中,M6与第二存储区的信息有关,M7与第二密钥有关。
结合第二方面,在一种可能的实现方式中,通信单元,还用于接收来自第二设备的第四加密信息,第四加密信息用于指示第一设备删除第一密钥;处理单元,还用于验证第四加密信息;在第四加密信息验证通过的情况下,处理单元,还用于删除第一密钥;或者,在第四加密信息验证通过的情况下,处理单元,还用于删除第一密钥,将第二密钥从第二存储区转移到第一存储区,并解除第二存储区与第一存储区的关联关系。
结合第二方面,在一种可能的实现方式中,第四加密信息包括:第八参数M8和第九参数M9;其中,M8与第二存储区的信息有关,M9与M8以及第二密钥有关。
结合第二方面,在一种可能的实现方式中,通信单元,还用于接收用于指示将第一存储区和第二存储区设置为配对的命令;处理单元,还用于根据用于指示将第一存储区和第二存储区设置为配对的命令,第一设备基于硬件安全机制生成第一加密信息;第一加密信息用于指示第一存储区和第二存储区;通信单元,还用于向第二设备发送第一消息;第一消息包括第一加密信息。
结合第二方面,在一种可能的实现方式中,通信单元,还用于接收用于指示更新密钥的命令;根据用于指示更新密钥的命令,处理单元,还用于基于硬件安全机制生成第二加密信息;第二加密信息用于指示第一存储区、第二存储区以及第二密钥;通信单元,还用于向第二设备发送第二消息,第二消息包括第二加密信息;通信单元,还用于接收来自第二设备的第三加密信息;第三加密信息用于指示第二设备完成第二密钥的存储;处理单元,还用于验证第三加密信息;在第三加密信息验证通过的情况下,处理单元,还用于确定第二密钥更新成功。
结合第二方面,在一种可能的实现方式中,通信单元,还用于向第二设备发送第四加密信息;第四加密信息用于指示第一设备删除第一密钥。
第三方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行如第一方面以及第一方面中的任意一种可能的实现方式中描述的密钥处理方法。
第四方面,本申请实施例提供一种密钥处理装置,该装置包括处理器和存储器,存储器存储有指令,指令被处理器运行时,实现如第一方面以及第一方面中的任意一种可能的实现方式描述的密钥处理方法。
在一种可能的实现方式中,本申请实施例提供一种密钥处理装置,当第一设备为车端设备时,该装置包括处理器和存储器,存储器存储有指令,指令被处理器运行时,实现如第一方面以及第一方面中的任意一种可能的实现方式描述的基于车端设备的密钥处理方法。
在一种可能的实现方式中,本申请实施例提供一种密钥处理装置,当第一设备为云端设备时,该装置包括处理器和存储器,存储器存储有指令,指令被处理器运行时,实现如第一方面以及第一方面中的任意一种可能的实现方式中描述的基于云端设备的密钥处理方法。
第五方面,本申请实施例提供一种密钥处理系统,该系统包括基于云端设备的系统,和/或基于车端设备的系统,该系统可以执行第一方面以及第一方面中的任意一种可能的实现方式中描述的密钥处理方法。
第六方面,本申请提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以实现第一方面以及第一方面的任意一种可能的实现方式中任一项所描述的密钥处理方法。其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
在一种可能的实现中,本申请中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
第七方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在一个或多个处理器上运行时,实现第一方面以及第一方面中任意一种可能的实施方式所描述的方法。
第八方面,本申请实施例提供一种电子设备,包括:至少一个处理器所述至少一个处理器用于执行第一方面以及第一方面中任意一种可能的实施方式所描述的方法。
在一种可能的实现中,本申请中上述描述的电子设备还可以包括接口电路,接口电路用于为所述至少一个处理器提供信息输入和/或信息输出,所述至少一个处理器用于执行第一方面以及第一方面中任意一种可能的实施方式所描述的方法。
应当理解的是,本申请的第二方面至第八方面与本申请的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
图1为本申请实施例提供的一种密钥处理的场景示意图;
图2为本申请实施例提供的一种密钥处理方法的流程示意图;
图3为本申请实施例提供的一种设置第二存储区的流程示意图;
图4为本申请实施例提供的另一种设置第二存储区的流程示意图;
图5为本申请实施例提供的一种更新密钥的流程示意图;
图6为本申请实施例提供的另一种设置第二存储区的流程示意图;
图7为本申请实施例提供的另一种更新密钥的流程示意图;
图8为本申请实施例提供的一种密钥处理装置的结构示意图;
图9为本申请实施例提供的一种控制设备的硬件结构示意图;
图10为本申请实施例提供的一种芯片的结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一存储区和第二存储区仅仅是为了区分不同的存储区,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c,其中a,b,c可以是单个,也可以是多个。
为便于理解本申请实施例,首先对本申请中涉及到的一些词汇作简单说明。
1、车内密钥管理系统:可以为对车内各设备的密钥进行管理的系统,车内密钥管理系统可以实现密钥创建、密钥存储或密钥分发等功能,其用于对车内各设备的密钥进行管理,进而保障车内各设备间的安全通信。
2、硬件安全机制:为针对硬件模块的网络安全规范。该硬件安全机制可以用于实现汽车领域的密钥存储、硬件加密解密算法,以及支持用户通过编写程序,用以增加加密算法等,进而扩展加密形式等功能。例如,该硬件安全机制可以应用到车端的电子控制单元(electronic control unit,ECU)中,或者云端设备中,负责ECU中的密钥或者云端的密钥的安全存储与安全计算。该硬件安全机制可以包括硬件安全扩展(secure hardwareextension,SHE)机制(或称SHE规范)或硬件安全模块(hardware security module,HSM)机制等。
其中,SHE机制中对用于密钥更新的存储区、密钥存储区涉及的密钥信息、密钥的安全性验证条件、以及SHE支持的接口等内容进行了定义。示例性的,在SHE规范对用于密钥更新的存储区的定义中,描述了用于更新密钥的一些关键存储区以及该存储区的类型和地址,如下表1所示:
表1存储区的示意表
其中,如表1所示,non-volatile:可以为非易失性存储区,用于存储固定密钥,或安全启动的安全校验码BOOT_MAC。
volatile:为易失性存储区。
address列:列举SHE机制中涉及的可存储密钥的存储区的位置编号,下面对本申请实施例中涉及的主要的密钥存储区及其作用进行介绍:
MASTER_ECU_KEY:可以用于存储本ECU的主密钥,仅用于SHE内部更新自己或其他密钥。其中,该MASTER_ECU_KEY可以在各部件生产时,在产线上提前预置。
BOOT_MAC_KEY和BOOT_MAC:分别是SHE安全启动时,用于校验软件完整性的密钥,和软件完整性校验码。
KEY_1~KEY_10:可用于存储车内设备间通信的对称密钥(或称加密密钥,或者完整性密钥等),本申请实施例中,当讨论车内密钥的构建时,对于SHE规范,可以是存储在这几个存储区中。其中,该KEY_1~KEY_10需要以MASTER_ECU_KEY或现有密钥作为验证依据,可以从车厂或云端,通过工具分别灌装到车内各部件中。
RAM_KEY:可以用做任何用途。可通过以下三个命令来操作:
CMD_LOAD_PLAIN_KEY:以明文方式向该位置存储密钥,SHE不会对该命令输入的参数进行验证。意味着任何调用者,可通过该命令向其中存储任意值,因此不具有安全保障。
CMD_LOAD_KEY:以密文方式向该位置存储密钥,SHE会对入参进行完整性校验,然后解密。其中,入参可以理解为传入的参数,入参可以用于将参数传递给命令,例如CMD_LOAD_KEY等命令使用。
CMD_EXPORT_RAM_KEY:以密文方式导出该位置存储的密钥,导出的参数包括M1~M5,其中M1~M3可以作为CMD_LOAD_KEY入参,然后可以再通过CMD_LOAD_KEY命令,以密文的方式存储到RAM_KEY中(或使用SECRET_KEY进行加密和完整性保护)。
在SHE规范中,可以基于表1中的存储区,实现密钥的更新。
另外,SHE规范中除了对上述表1中的存储区进行定义,也对密钥存储区涉及的密钥信息进行定义。如表2所示,在向存储区灌装密钥时,每个密钥的都可以包含一些额外信息,例如写保护标识、安全启动失败标识等相关标识等,该相关标识可以如下表2所示:
表2密钥存储时涉及的其他标识示意表
其中,其中:“X”表示在灌装一个密钥时,必须通过一个已有密钥进行安全验证。
write-protection:为写保护,如果write-protection为1,则不允许更新,即便其中的密钥遭到泄露,也不允许更新。如果write-protection为0,则允许更新。
任意标识(wildcard unique identification item,wildcard UID):可以表示为是否允许使用任意UID来向对应存储区灌装(或称覆盖式更新)密钥。如果wildcard UID为1,则允许灌装。如果wildcard UID为0,则不允许灌装。其中,根据SHE规范,当UID取值为0时,wildcard UID的取值也为0。其中,UID:设备身份标识,例如该UID可以为ECU的标识号。
counter:为密钥的更新计数器,密钥每更新一次,则该计数器的数值可以增加1,counter可以用于防止重放攻击。
其中,在SHE规范对SHE支持的接口的定义中,描述了在SHE机制中支持的一些对外接口,如下表3所示:
表3 SHE支持的接口示意表
接口 | 简介 |
CMD_GENERATE_MAC | 生成消息认证码 |
CMD_VERIFY_MAC | 验证消息认证码 |
CMD_LOAD_KEY | 安全存储密钥,密钥经过加密和完整性保护 |
CMD_LOAD_PLAIN_KEY | 明文存储密钥,不安全 |
CMD_EXPORT_RAM_KEY | 导出RAM_KEY中的密钥 |
3、电子控制单元(electronic control unit,ECU),可以为以单片机为核心的电子控制装置,其具有强大数学运算与逻辑判断、数据管理和数据处理功能。ECU可以分为硬件和软件部分,硬件部分是构成ECU的物理元器件,软件部分是实现ECU控制功能的指令和数据系统。ECU对传感器传来的信号进行处理,利用控制指令控制相应的执行元件按指令动作。
4、预共享密钥(pre-shared key,PSK),或称为共享密钥,可以为在加密过程中进行身份验证的一种密钥。例如,设备间在进行数据交互之前,可以共享PSK,并且由双方保持通信,以便在其他身份验证方法如用户名和密码等应用之前,进行相互身份验证。
5、基于分组加密的消息认证码(cipher-based message authentication code,CMAC),可以用作消息的签名。
6、存储区的位置(memory slot),可以为存储区的逻辑地址或物理地址。例如第一存储区的位置可以为memory slot1;第二存储区的位置可以为memory slot2,此时memoryslot1与memory slot2可以不同,或也可以相同。
7、第一设备:可以为云端设备,也可以为车端设备或其他终端设备等。其中,第一设备可以支持基于SHE机制或HSM机制的密钥更新。
其中,云端设备可以为用于下发密钥的服务器,也可以是代理服务器,例如代理服务器可以是为车队服务的服务器等。本申请实施例对此不作限定。
车端设备可以是支持密钥更新的任意形式的车辆,也可以是车联的任一部件,例如,ECU,或任意形式的车辆辅助设备(例如车辆充电桩等)等,本申请实施例对此不作具体限定。
云端设备也可以是用于更新密钥的密钥客户端服务器,也可以是已从客户端服务器中获取并更新密钥的车队服务器或其他任意可能的服务器。
终端设备还可以包括用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等。终端设备可以是手机(mobile phone)、智能电视、穿戴式设备、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程手术(remote medicalsurgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smart city)中的无线终端或智慧家庭(smart home)中的无线终端等。
为了更好的理解本申请实施例的方法,下面首先对本申请实施例适用的应用场景进行描述。
本申请实施例中提供的密钥处理方法可以应用于各类型汽车进行密钥更新的场景中。如智能网联汽车、自动驾驶汽车或新能源汽车等汽车与云端设备进行交互,进行密钥更新的场景中。
通常情况下,当更新汽车密钥时,车辆需要在专门授权的维修点或者返厂,利用专门的工具链接到汽车的云端KMS,再逐一链接到车内各设备灌装新密钥,实现密钥的更新。
示例性的,以硬件安全机制为SHE机制为例,介绍基于SHE机制进行密钥的灌装时涉及的具体内容。其中,在SHE机制中,每个密钥在使用CMD_LOAD_KEY进行灌装时,需要满足该密钥的安全性验证条件,例如该安全验证条件可以如下表4所示:
表4安全验证条件示意表
其中:“X”表示在灌装一个密钥(行)时,必须通过一个已有密钥(列)进行安全验证(例如,用其已有密钥派生出加密密钥K1和完整性密钥K2,来保护CMD_LOAD_KEY的入参)。
示例性的,用户要向KEY_<n>位置灌装新密钥时,用户也需要提前知道当前MASTER_ECU_KEY存储的密钥、或者KEY_<n>位置存储的密钥进行安全性验证。KEY_<n>:表示KEY_1~KEY_10。
因此,根据SHE机制,要向某个位置灌装密钥(例如MASTER_ECU_KEY、BOOT_MAC_KEY、BOOT_MAC、KEY_<n>等)时,需要提前知道该位置存储的原始密钥,或者MASTER_ECU_KEY。
示例性的,当用户想要更新车内各设备的密钥时,可以将车辆开到专门授权的维修点。专门的维修人员可以基于SHE机制进行密钥更新。例如,当维修人员向SHE中的MASTER_ECU_KEY位置灌装新密钥时,可以利用工具链接到云端接口,并获取SHE中MASTER_ECU_KEY的当前值,基于MASTER_ECU_KEY的当前值构造CMD_LOAD_KEY命令入参。进一步,可以利用该工具链接到车内各设备接口,并通过CMD_LOAD_KEY命令,灌装新密钥,在灌装过程中,SHE会根据当前MASTER_ECU_KEY位置存储的值,对CMD_LOAD_KEY命令中的入参,进行安全校验(例如完整性校验和解密),当验证通过后,可以将命令中携带的新密钥存储到MASTER_ECU_KEY位置,完成密钥的灌装。
然而,上述基于硬件安全机制的密钥的更新方法,需要经过一系列繁琐的步骤,使得密钥更新效率低下。且基于硬件安全机制进行灌装时,如果在更新过程中,出现某些设备出现异常重启,导致车辆可能无法继续行驶时,可以通过其他车辆牵引返厂或运送到维修店,通过专用工具链接各设备分别更新。此时可能出现重启的设备仍是老密钥,而中心服务器(server)已是新密钥,使得该重启设备无法与中心server进行安全通信,从而导致密钥无法继续更新。
本申请实施例提供的一种密钥处理方法,可以简化密钥更新的操作,并提高密钥的更新效率。
示例性的,图1为本申请实施例提供的一种示例性密钥处理的场景示意图。
如图1所示,该场景中可以包括汽车101和云端设备(例如服务器)102。汽车101中包含需要进行密钥更新的第一部件。例如该第一部件可以为ECU等。示例性的,当用户想要对汽车内的第一部件进行密钥更新时,可以在车机屏幕或手机上触发更新密钥对应的按钮。进而汽车101与云端设备102可以基于硬件安全机制,利用本申请实施例提供的密钥处理方法进行数据交互,实现云端设备102将新密钥传输到汽车101内的第一部件上,完成密钥的更新。
下面通过几个示例性实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行说明。如下示出的实施例可以独立实现,也可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2为本申请实施例提供的一种密钥处理方法的流程示意图,如图2所示,该方法以包括:
S201、第一设备确定第一存储区。
S202、第一设备确定与第一存储区关联的第二存储区。
其中,第一存储区用于存储第一密钥,第二存储区用于存储第二密钥,第二密钥为第一密钥的更新密钥。
可以理解的,第一存储区可以为一个存储区,也可以为多个存储区;第二存储区也可以为一个存储区,也可以为多个存储区。在本申请实施例中,还可以存在第三存储区,例如,第一设备确定第一存储区,第一设备确定与第一存储区关联的第二存储区和第三存储区;又例如,第一设备确定第一存储区和第三存储区,第一设备确定与第一存储区和第三存储区关联的第二存储区。本申请实施例对存储器的数量、性质等均不作限定。
基于本申请实施例的硬件安全机制,第二存储区的确定可以为由硬件安全机制预定义的,或者,第二存储区是根据硬件安全机制中的接口接收到的第一命令确定的。其中,该第一命令可以为基于用户对于第二存储区的设置产生的命令。该预定义可以理解为不需要用户设定,硬件安全机制可以基于自身设定自动生成。
可能的实现方式中,第一存储区可以理解为主用存储区,第二存储区可以理解为备用存储区。其中,该第一存储区可以为始终用于存储密钥的存储区。第二存储区可以为临时设置或者固定设置用于存储密钥的存储区。其中,临时设置可以为,使用时临时设置第二存储区,使用完进行释放;固定设置可以为,使用前设置第二存储区,使用完维持该第二存储区。
示例性的,在临时设置的场景中,在进行密钥更新前,硬件安全机制可以临时为第一存储区设置第二存储区,当密钥更新完成后,可以释放该第二存储区。这种场景下,车内KMS进行密钥更新时可以使用第二存储区,其他场景和业务无法使用第二存储区,并且也无法感知该第二存储区。
示例性的,在固定设置的场景中,在进行密钥更新前,可以提前设置第二存储区,当密钥更新完成后,可以继续维持第二存储区。这种场景下,车内KMS在完成密钥的更新后,其他场景和业务,可根据业务需求来决定是否需要访问第二存储区。
该硬件安全机制可以为扩展的硬件安全机制。例如,该硬件安全机制可以为扩展的SHE机制或者扩展的HSM机制。示例性的,以硬件安全机制为扩展的SHE机制为例,本申请实施例扩展的SHE机制种定义了SHE密钥存储时的额外存储信息,以及SHE支持的第一命令等内容。
可选的,在利用第一存储区和第二存储区进行密钥更新时,可以用到以下密钥的存储信息。其中,该扩展的SHE机制可以为在表2的基础上,利用扩展的SHE存储密钥时的额外存储信息,如下表5所示:
表5 SHE密钥存储时的额外存储信息
其中:X:表示该项/行的内容,在存储时,可以包含有该列的内容。例如,当MASTER_ECU_KEY的构建状态buildstatus为X时,可以表示该MASTER_ECU_KEY项本身在存储时可以包含buildstatus的内容;或者该MASTER_ECU_KEY在存储时,其对应的行的支持更新supportupdate、密钥正在使用inuse、存储区为备用isslave以及存储区配对pairslot,可以包含buildstatus的内容。
X/-:表示该项/行的内容,在存储时,可以按照需求确定是否包含该列的内容,例如可以根据用户业务进行定制。
空白:表示该项/行的内容,在存储时,可以不用包含该列的内容。
如表5所示,第一密钥的存储信息可以包括:
第一指示信息:用于指示密钥构建状态的信息。其中,该第一指示信息的字段格式可以为:构建状态buildstatus(1bit),当buildstatus为0时,表示为该存储区未构建密钥,或理解为对应存储位置中,密钥无效;当buildstatus为1时,表示为该存储区的密钥构建成功,或理解为对应存储位置中,密钥有效。
第二指示信息:用于指示密钥是否支持更新的信息。其中,该第二指示信息的字段格式可以为:支持更新supportupdate(1bit),当supportupdate为1时,可以表示该存储区支持更新;当supportupdate为0时,可以表示该存储区不支持更新,可以忽略pairslot的值。
第三指示信息:用于指示密钥是否正在使用的信息。其中,该第三指示信息的字段格式可以为:密钥正在使用inuse(1bit),当inuse为1时,可以表示当前使用该位置存储的密钥;当inuse为0时,可以表示当前未使用该位置存储的密钥。其中,一对pair key,同一时刻始终有一个key的inuse被置1。
第四指示信息:用于指示密钥为更新前的密钥或者更新后的密钥的信息。其中,该第四指示信息的字段格式可以为:inuse+buildstatus。在inuse为0的基础上,如果buildstatus也为1,表示该存储区位置的密钥有效,但业务不可使用;如果buildstatus为0,则可以忽略inuse标记。
因此,inuse配合buildstatus:可以实现标记新密钥为“构建成功+使用中”的状态;或者老密钥为“构建成功+未启用”的状态。类似的,inuse、buildstatus再结合counter,可以判断密钥为新密钥还是老密钥。
第五指示信息:用于指示所述第一密钥的存储区为所述第一存储区的信息或为所述第二存储区的信息。其中,该第五指示信息的字段格式可以为:存储区为备用isslave(1bit),当isslave为0时,可以表示该存储区为主用存储区;当isslave为1时,可以表示该存储区为备用存储区。其中isslave的默认值可以为0。需要说明的是,isslave在supportupdate为1时才有效。对于配对(pair)方案,可以没有该字段;对于slave(备用)方案,可以含有该字段。
第六指示信息:用于指示与所述第一密钥的存储区配对使用的存储区的信息。其中,该第六指示信息的字段格式可以为:存储区配对pairslot(8bits)。需要说明的是,isslave在supportupdate为1时才有效。对于pair方案,可以含有该字段;对于slave方案,可以没有该字段。
可选的,在利用至少第一存储区和第二存储区进行密钥更新时,可以基于接口接收以下第一命令。其中,本申请实施例的扩展的SHE机制可以为在表4的基础上,扩展的SHE的接口接收的第一命令,例如该第一命令可以包括:用于指示将第一存储区和第二存储区设置为配对的命令、用于指示将第一存储区和第二存储区解除配对的命令、用于指示更新密钥的命令、用于指示清除更新前的密钥的命令、用于指示查询第一存储区和/或第二存储区的密钥信息的命令、或用于指示将密钥从一个存储区转移到另一个存储区的命令。
第一配对命令:用于将第一存储区和第二存储区设为pair。其中,该第一配对命令的字段格式可以为CMD_SET_KEY_PAIRSLOT。第一解除配对命令:用于将第一存储区和第二存储区解除配对。其中,该第一解除配对命令的字段格式可以为CMD_RESET_KEY_PAIRSLOT。
第一设置备用存储区命令:用于为第一存储区设置第二存储区。其中,该第一设置备用存储区命令的字段格式可以为CMD_SET_KEY_SLAVESLOT。
第一解除绑定备用存储区命令:用于为第一存储区解除绑定的第二存储区。其中,该第一解除绑定备用存储区命令的字段格式可以为CMD_RESET_KEY_SLAVESLOT。
第一更新密钥的命令:用于向SHE中指定的第一存储区(或第二存储区)存储新密钥。其中,该第一更新密钥的命令的字段格式可以为CMD_LOAD_KEY。
第一清除更新前的密钥的命令:用于清除与第一存储区关联的第二存储区中的第二密钥。其中,该第一清除更新前的密钥的命令的字段格式可以为CMD_RESET_PAIR_KEYINFO。
第二清除更新前的密钥的命令:用于将第二存储区的内容覆盖到入参指定的第一存储区,并清除第二存储区的内容。其中,该第二清除更新前的密钥的命令的字段格式还可以为CMD_SWITCH_SLAVE_KEYINFO。
第一查询存储区的密钥信息的命令:用于查询第一存储区(或第二存储区)的密钥信息(不包括密钥本身),例如该密钥信息可以包括:密钥的标记、counter或pairslot等信息,如果有pair或者slave的信息,也则可以返回pairslot对应密钥信息。其中,该第一查询存储区的密钥信息的命令的字段格式可以为CMD_GET_KEY_INFO。
第一将密钥从一个存储区转移到另一个存储区的命令:用于将密钥从一个存储区完整转移到另一个存储区。其中,该第一将密钥从一个存储区转移到另一个存储区的命令的字段格式可以为CMD_MOVE_KEY_SLOT。
第一从第二存储区获取密钥的命令:用于指示从第二存储区中获取密钥。其中,该第一从第二存储区获取密钥的命令的字段格式可以为CMD_SET_USE_SLAVE_KEYINFO。例如,该CMD_SET_USE_SLAVE_KEYINFO也可以告知SHE,后续使用指定存储区的密钥时,要从第二存储区中读取。如果第一存储区没有绑定第二存储区,该命令执行失败。
第一从第一存储区中获取密钥的命令:用于指示从第一存储区中获取密钥。其中,该第一从第一存储区中获取密钥的命令的字段格式可以为CMD_RESET_USE_SLAVE_KEYINFO。例如,该CMD_RESET_USE_SLAVE_KEYINFO也可以告知SHE,后续使用指定存储区的密钥时,要从第一存储区中读取。无论第一存储区是否绑定第二存储区,该命令都返回成功。
在图2对应的实施例的基础上,可能的实现方式中,S202还包括:根据硬件安全机制,第一设备确定与第一存储区关联的第二存储区。其中,硬件安全机制用于更新第一密钥。
示例性的,第一存储区可以理解为存储第一密钥的存储区,该第二存储区可以理解为第一存储区的备用存储区,第一设备可以基于备用存储区的设置方法,例如谁来指定备用存储区,或者不同密钥更新时是否使用相同或不同的备用存储区,以及上述方式的组合等,确定如何基于硬件安全机制为第一存储区配置备用存储区。其中,该设置时机可以为临时设置或固定设置;指定备用存储区可以为用户指定或SHE硬件机制自动指定。上述多种影响因素的组合以及每种组合对用户以及业务的影响如下表6所示:
表6备用存储区的设置组合,以及对用户、业务的影响分析示意表
其中,如表6所示,业务:可以理解为除车内KMS以外的其他业务,例如车内外信息安全通信等业务。
其中,业务若想感知备用存储区,可以理解为业务可以使用第二存储区,例如,在密钥更新时,业务可以交替使用第一存储区第二存储区存储更新后的密钥。
业务不感知备用存储区,可以理解为业务使用第一存储区,例如在密钥更新时,业务可以利用第一存储区存放更新后的密钥。
用户:可以理解为需要使用硬件安全机制中存储的密钥的业务,例如该用户可以包括车内KMS或车内数据通信业务等业务。
车内KMS的更新业务,为支持断电重启场景,可以感知备用存储区:可以理解为车内KMS进行更新密钥过程中,车内部分设备可能出现断电重启等异常情况。为了保证断电等异常重启后的设备不会脱离车辆的管理,车内KMS需要继续进行更新密钥时,访问临时存储在第二存储区中的密钥的过程。
受限:可以理解为在密钥更新过程中,为支持设备断电重启后,可以继续完成密钥的更新,车内KMS不能临时访问第二存储区。
需要移动:可以为在业务不想感知备用存储区的存储存在,并期望在密钥更新前后,始终使用同一个存储区中的密钥进行安全通信,因此硬件安全机制需要支持在密钥更新后,可以将密钥从一个存储区(例如第二存储区)移动到另一个存储区(例如第一存储区)。其中,这种移动,可以是提供一个独立功能,由用户操作;或者,也可以基于硬件安全机制由系统操作。
固定设置:对于硬件安全机制来说,有三种实现固定设置的方式:一种实现中,可以在安全芯片在生产时,通过硬件逻辑进行限定;另一种实现中,可以通过硬件安全机制中的固件逻辑进行限定,其可以随软件包进行升级;又一种实现中,可以由用户设置。
用户指定备用存储区的位置:可以理解为硬件安全机制需要提供对应的用户接口,以支持用户对于备用存储区的设置。
硬件机制指定备用存储区的位置:对于硬件安全机制,有两种方式实现备份安全区的设置的方式:
一种实现中,可以提供用户接口,当用户为某个密钥设置备用存储区时,可以由硬件机制自动指定具体的备用存储区的位置;这种方式下,可以对应临时设置,或者也可以对应固定设置。
另一种实现中,可以不提供用户接口。
不同密钥的备用存储区:如果使用相同的备用存储区,则可以节省存储区的占用;如果使用不同的备用存储区,则可以在支持密钥更新的同时,支持密钥的备份,提升密钥的可靠性,并支持并发处理多个不同密钥的更新。
示例性的,本申请实施例中,可以以业务若想感知备用存储区,能否实现,对备用存储区的设置的方法进行划分,例如可以划分为两类:当业务若想感知备用存储区,可以实现时的方案称为pair方案,可以理解的是,在pair方案中业务可以使用备用存储区;当业务若想感知备用存储区,不能实现时的方案称为slave方案,可以理解的是,在slave方案中业务使用主用存储区。具体的,不同的组合与不同方案的对应关系,如下表7所示:
表7不同组合与pair方案以及slave方案的对应关系
本申请实施例中,将以pair方案以及slave方案为例,分别对备用存储区的设置以及密钥更新过程进行描述。
需要说明的是,上述第一设备可以为车端设备,也可以为云端设备。当第一设备为车端设备时,第二设备为云端设备;当第一设备为云端设备时,第二设备为车端设备。第一设备为车端设备或云端设备时,可以对应于不同的实现。
示例性的,当第一设备为车端设备,第二设备为云端设备时,本申请实施例提供的一种密钥处理方法可以包括如下内容。
第一设备为存储第一密钥设置备用存储区的方法包括:第一设备接收来自第二设备的第一消息;第一设备验证第一加密信息;在第一加密信息验证通过的情况下,第一设备为第一存储区配置第二存储区。其中,第二存储区可以理解为备用存储区;第一加密信息是第二设备基于硬件安全机制生成的。
本申请实施例中,第一消息包括用于指示第一存储区和第二存储区的第一加密信息;第一加密信息包括:第一参数M1和第二参数M2;其中,M1与第一存储区的信息和第二存储区的信息有关;M2与M1以及第一密钥有关。
其中,在基于pair方案设置备用存储区的基础上,可以进一步的以云端设备为密钥更新提供存储区的个数将pair方案分为两种方式,包括:方式一和方式二。示例性的,方式一:云端设备为支持密钥更新设置一个存储区(如图3对应的实施例);方式二:云端设备为支持密钥更新设置两个存储区(如图4对应的实施例)。
其中,pair方案对应的组合,如表8所示:
表8 pair方案对应的组合
其中,对于硬件安全机制(如SHE机制等),自动指定存储区位置,但由用户决定某个密钥是否启用备用存储区时,SHE用户功能扩展汇总中的各接口中,可以不用指定备用存储区。例如,当硬件安全机制支持自动设定存储区位置时,用户可以启动某个密钥使用备用存储区,或者用户可以关闭某个密钥使用备用存储区。基于下述方案,对相应的参数做适当修改即可,在此不再赘述。
如果是于硬件安全机制中,采用固定设置中的在安全芯片在生产时,就已经硬件逻辑进行限定,或者通过硬件安全机制中的固件逻辑进行限定,但可随软件包进行升级时,则不需要提供用户设置功能的接口,但需要提供使用备用存储区密钥的接口。例如,可以由硬件逻辑或者固定逻辑指定备用存储区,并在进行密钥更新时基于接口使用该备用存储区。结合下述方案,该处理过程很容易得出,在此不再赘述。
示例性的,以pair方案中的基于固定设置,且由用户指定备用存储区(如表8中的序号6)的位置为例,介绍为第一存储区设置备用存储区的方法。例如两个存储区设置为一对pair的。可以理解的是,下文中的pair方案均可以为基于用户指定设置备用存储区对应的方式,下文将不再赘述。
例如,以第一存储区为MASTER_ECU_KEY为例,介绍pair方案中,在密钥更新前,通过CMD_SET_KEY_PAIRSLOT命令,为MASTER_ECU_KEY设置一个pair。比如将memory slot9位置的存储区设置为MASTER_ECU_KEY的pair,如下表9所示:
表9将memory slot 1与memory slot 9设置为pair,并支持更新MASTER_ECU_KEY的示意表
其中,该memory slot9的位置对应的存储区KEY_6可以理解为第二存储区。为便于理解,下文将备用存储区称为第二存储区。
方式一:云端设备为支持密钥更新设置一个存储区。示例性的,图3为本申请实施例提供的一种设置第二存储区的流程示意图。如图3所示,该流程中可以包括车内的目标设备(如ECU1),以及云端密钥管理中心。
如图3所示,车内各设备中可以包括:
车端的SHE(或者HSM):主要用于管理本设备上的密钥。
车端的KMS-S/A/C(可以包括KMS-服务器(server)、KMS-代理(agent)或KMS-客户端(client)):可以为部署在车内的KMS逻辑功能模块,在本申请实施例中,KMS-S/A/C可以用于协助管理车内密钥的更新功能,并负责将目标设备的SHE中的两个memory slot设置为一对pair。车端的KMS-S/A/C可以具体到车内每个设备。其中,部署的KMS逻辑功能,可以是车端的KMS-server(相对于车内其他设备而言)、车端的KMS-agent或车端的KMS-client。
具体的,车端的KMS-server:可以负责与云端密钥管理中心的KMS-服务器进行消息交互。在本方案中用于协助管理本设备、以及车内其他设备上的pair配置、密钥的更新等功能。
车端的KMS-agent:对于部分无法直接与云端进行消息通信的设备,可能需要一个agent进行中转和管理,例如该中转和管理的设备可以包括:控制器局域网络(controllerarea network,CAN)或者,CAN灵活的数据速率(flexible data-rate,FD)总线上的ECU,需要网关、车辆行驶动态控制系统(vehicle running dynamic control system,VDC)、多域控制器(multi domain controller,MDC)、或连续减震控制系统(continuous dampingcontrol,CDC)等设备。
车端的KMS-client:可以负责车端的KMS-agent以及车端的KMS-server之外的其他设备的管理。
云端密钥管理中心可以包括:
云端的KMS-服务器:用于向不同车辆,或者不同设备内的SHE或HSM等,设置pair,生成相关的命令入参,并传递给车内各设备的SHE或HSM等。
云端的HSM/SHE:为云端密钥管理中心提供了安全的硬件环境,并用于生成CMD_SET_KEY_PAIRSLOT等命令的入参,为不同车辆或者不同设备内HSM或SHE设置pair。
示例性的,以第一设备为车端,第二设备为云端进行示例说明,如图3所示,基于方式一的过程可以包括如下步骤:
S301、用户启动第一设备的KMS配置变更。
示例性的,该KMS配置变更可以为基于用户设置的第二存储区触发的配置变化。例如,当用户想要更新车内密钥时,可以在车机屏幕或手机上将两个存储区设置为配对,响应于用户的设置操作,可以在云端密钥管理中心上启动车内的KMS配置变更。
S302、第二设备中的KMS-server请求为ECU1构造第一加密信息。
本申请实施例中,该第一加密信息可以包括以下参数:将(1,9)设置为配对;保护密钥所在位置:1;密钥本地存储的位置:X,第二设备中的KMS-server将上述数据发送至第二设备中的HSM/SHE。
可以利用,第一存储区和第二存储区设置为配对的第一配对命令CMD_SET_KEY_PAIRSLOT构造第一加密信息。示例性的,响应于用户启动第一设备的KMS配置变更的操作,第二设备中的KMS-server可以请求为目标设备构造CMD_SET_KEY_PAIRSLOT命令的入参。
示例性的,涉及CMD_SET_KEY_PAIRSLOT功能的描述可以如下表10所示:
表10涉及CMD_SET_KEY_PAIRSLOT功能描述的示意表
其中,CMD_SET_KEY_PAIRSLOT表示将两个memory slot绑定为一对,用于支持密钥的更新。
入参:第一参数M1=密钥存储位置(KEY_ID)|memory slot1|memory slot2|counter;第二参数M2=CMAC(key,M1)。其中“|”可以理解为拼接,例如M1可以为将KEY_ID、memory slot1、memory slot2以及counter的对应的字节拼接到一起。例如,当传输M1的过程中,可以依次传输KEY_ID、memory slot1、memory slot2以及counter等字节。
KEY_ID:可以为使用哪个存储区的位置的密钥(key)作为M2的计算密钥,例如该KEY_ID可以为目标设备的MASTER_ECU_KEY。
key:可以为KEY_ID对应的key。
counter:可以为memory slot1和memory slot2中counter值的较大值加1,防止重放攻击。
CMD_SET_KEY_PAIRSLOT功能简介:例如通知SHE将memory slot1和memory slot2互相设置为对方的key pair。可以理解为,将memory slot1的值设置到memory slot2对应的key的pairslot位置;将memory slot2的值设置到memory slot1对应的key的pairslot位置。
SHE在设置一个密钥的pairslot时,可以自动将该密钥的supportupdate的值设置为1。
如果输入的memory slot1或memory slot2的值为0时,则可以返回ERC_KEY_INVALID。
其中,第二设备中的密钥的存储与第一设备各设备的密钥的存储位置可能不一致。尤其是硬件安全机制很可能不同,因此可能导致在第二设备构造CMD_SET_KEY_PAIRSLOT命令的入参时,用于M2计算的密钥(key)(在本申请实施例中可以指MASTER_ECU_KEY)在第二设备存储的地址memory slot(或其他存储地址表示方式),与第一设备各设备的存储位置可能不同。因此,第二设备中的HSM或SHE,在构造CMD_SET_KEY_PAIRSLOT命令入参时,需要提供目标设备和第二设备本地的MASTER_ECU_KEY的存储位置等足够的参数信息。
第二设备中的KMS-server将(1,9)设为pair,可以表示将目标设备中的memoryslot 1和memory slot 9设置为pair。
可以理解的是,(1,9),1丨9,1和9,1、9等表述均可以理解为,将目标设备中的memory slot 1和memory slot 9设置为一对pair。
可选的,如果目标设备的硬件安全机制,是采用其他方式访问硬件安全存储区的,则第二设备和目标设备的硬件安全机制需支持使用对应方式的取值,来生成CMD_SET_KEY_PAIRSLOT命令的入参。例如,若存储区采用的是物理地址,则这里存储区的位置对应的是存储区的物理地址。
保护密钥所在位置:1,可以表示在计算M2时,所用的key,在目标设备中的存储位置是memory slot 1。
在本地存储:X,可以表示在计算M2时,所用的key,在第二设备(或理解为云端)的安全环境中的存储位置是X。例如,key可以存储在第二设备中的X处,当构造入参时,可以从该X处获取key。
可以理解的是,第二设备的存储位置一般与目标设备中的存储位置不同。
S303、第二设备中的HSM/SHE构造第一加密信息。
本申请实施例中,构造第一加密信息的过程可以为,构造CMD_SET_KEY_PAIRSLOT入参:M1=密钥存储位置KEY_ID丨1丨9丨counter;M2=CMAC(key,M1)。
其中,进行M1构造时,KEY_ID:是指采用的目标设备中的的密钥的存储位置,部署云端密钥管理中的密钥存储位置。例如,当KEY_ID为1时,可以表示保护密钥在目标设备中的存储位置memory slot是1。其中,KEY_ID可以根据密钥更新的策略来选择,例如可以参考本申请实施例提供的表3中的数据。
可选的,M1中还可以包含其他参数,比如UID等,此时M1=UID|KEY_ID|1|9。
进行M2构造时,M2在利用CMAC算法计算MAC时,可以从第二设备本地存储位置X中获取目标设备的密钥。其中,该密钥必须与KEY_ID在目标设备中对应的密钥相同。
第二设备中的HSM/SHE构造CMD_SET_KEY_PAIRSLOT命令的入参的方法可以为:
一种实现中,第二设备中的HSM/SHE构造CMD_SET_KEY_PAIRSLOT命令的入参的方法,可以利用专用授权的工具,通过链接第二设备获得对应车辆的密钥,并构造入参。
另一种实现中,第二设备中的HSM/SHE构造CMD_SET_KEY_PAIRSLOT命令的入参的方法,还可以在第一设备中的各设备的KMS(如KMS-server、KMS-agent、KMS-client)自身构造。例如,第一设备中的各设备的KMS通过第二设备构造一个身份验证信息,并发给第一设备中的各设备的KMS,该身份验证信息用于第一设备中的各设备的KMS与自身的SHE或HSM进行身份验证,验证成功后,获得为本设备的SHE或其他设备的SHE,并设置pair所需的临时授权的密钥等。
S304、第二设备中的HSM/SHE将第一加密信息发送至第二设备中的KMS-server。
适应的,第二设备中的KMS-server接收该第二设备中的HSM/SHE发送的第一加密信息。
S305、第二设备中的KMS-server将包含第一加密信息的第一消息发送给第一设备内的各设备(如KMS-S/A/C)。
适应的,第一设备中的KMS-S/A/C接收该第二设备中的KMS-server发送的第一加密信息。其中,该第一消息可以包括第一加密信息,该第一加密信息可以为:CMD_SET_KEY_PAIRSLOT命令的入参(M1,M2)。
S306、第一设备中的KMS-S/A/C将第一加密信息发送至第一设备中的SHE。
适应的,第一设备中的SHE接收该第一设备中的KMS-S/A/C发送的第一加密信息。
S307、第一设备中的SHE验证第一加密信息。
例如,第一设备中的SHE可以利用M1中的密钥存储位置中的密钥,验证M1的MAC值,并与M2比较,验证完整性;验证密钥的counter的有效性。上述验证通过后,第一设备中的SHE将memory slot1和memory slot9设置为配对。
第一设备中的SHE(或HSM等),收到M1、M2后,可以利用M1中的KEY_ID对应的密钥(本申请实施例中可以是MASTER_ECU_KEY),验证计算M1的MAC值,并与M2进行比较,如果M1的MAC与M2相等,则验证完整性成功,继续进行后面的校验;否则失败,禁止本次操作,并返回失败。
第一设备中的SHE验证counter有效性,参考M1构造时对counter进行校验的过程,在此不再赘述。
第一设备中的SHE检查M1中的1和9是否可以被设置为一对pair:
其中,如果1或者9,已经被设置为pair了,则可以禁止执行本次命令操作,并返回失败,此时表示第二存储区被占用。
如果1和9中,都有正在使用的密钥,则可以禁止执行本次命令操作,返回失败,此时表示第二存储区被占用。
如果1或9中,只有其中1个有密钥,则可以允许执行本次命令操作。
如果1和9中,都没有密钥(比如1和9中为空白),则可以允许执行本次命令操作。这种情况下,KEY_ID应该选择其他密钥。
在上述允许本次操作中,第一设备中的SHE可以将memory slot 1中的pairslot设置为9,将memory slot 9中的pairslot设置为1。将两个memory slot(如1和9)中supportupdate设置为1,表示上述两个存储区中的密钥均支持更新。
上述完整性的验证通过后,第一设备中的SHE可以将memory slot 1和9设置为一对pair。
S308、第一设备中的SHE将设置的结果反馈(成功)发送至第一设备中的KMS-S/A/C。
适应的,第一设备中的KMS-S/A/C接收该第一设备中的SHE发送的结果反馈(成功)。
S309、第一设备中的KMS-S/A/C通过消息将CMD_SET_KEY_PAIRSLOT执行结果(成功)反馈给云端(如KMS-server)。
适应的,第二设备中的KMS-server接收该第一设备中的KMS-S/A/C发送的CMD_SET_KEY_PAIRSLOT执行结果(成功)。
S310、第二设备中的KMS-server更新云端车辆数据库。例如第一设备更新对应的KMS的配置文件信息的配置结果等。
基于此,车端或云端可以通过扩展硬件安全机制,使得硬件安全机制可以支持为第一存储区设置第二存储区;其中云端设备为密钥提供一个存储区的方式,可以减少设置第二存储区的所需的计算量,优化存储空间。
方式二:云端设备为支持密钥更新设置两个存储区。示例性的,图4为本申请实施例提供的另一种设置第二存储区的流程示意图。
如图4所示,第二设备中的HSM/SHE,在为CMD_SET_KEY_PAIRSLOT构造入参时,也可以同步为第二设备中的HSM/SHE对应的密钥,临时设置一个pair,以便在密钥的更新逻辑中,HSM/SHE可以将第二密钥暂时保存在Y中,待更新完成后,再将第二密钥移到X中。
示例性的,如图4所示,基于方式二的过程可以包括如下步骤:
S401、用户启动第一设备KMS配置变更。
S402、第二设备中的KMS-server请求为ECU1构造第一加密信息。
本申请实施例中,该第一加密信息可以包括;将(1,9)设置为配对;保护密钥所在位置:1;在本地存储:X;将(X,Y)设置为配对,第二设备中的KMS-server将上述数据发送至第二设备中的HSM/SHE。
S403、第二设备中的HSM/SHE构造第一加密信息。
本申请实施例中,构造第一加密信息的过程可以为,构造CMD_SET_KEY_PAIRSLOT入参:M1=KEY_ID丨1丨9丨counter;M2=CMAC(key,M1);并将第二设备中的X和Y设置为配对。
其中,第二设备中的HSM/SHE,在为X设置pair存储区时,也可以参考历史被设置过的存储区。例如,云端可以采用之前为X设置的pair的存储区,作为本次X的存储区。
可选的,第二设备中的HSM/SHE,在为X设置pair存储区时,可以在第一设备中的各设备设置成功后,HSM/SHE等内部硬件机制,自动为X设置一个pair存储区。或者在密钥更新前,自动为X设置一个pair存储区等。
S404-S410与上述S304-S310所示的步骤类似,在此不再赘述。
基于此,车端或云端可以通过扩展硬件安全机制,使得硬件安全机制可以支持为第一存储区设置第二存储区;其中云端设备为密钥提供两个存储区的方式,可以更加便于云端密钥的更新和存储。
上述为基于pair方案设置第二存储区的过程。可选的,可以基于pair方案解除备用存储区的设置。示例性的,以pair方案为例,下文对解除备用存储区的设置进行描述。
可能的实现方式中,还包括:第一设备基于硬件安全机制解除第二存储区。
示例性的,可以基于SHE机制中的CMD_RESET_KEY_PAIRSLOT命令解除第二存储区。例如,涉及CMD_RESET_KEY_PAIRSLOT功能的描述可以如下表11所示:
表11涉及CMD_RESET_KEY_PAIRSLOT功能描述的示意表
parameter | direction | width(bits) |
M1 | in | 16 |
M2 | in | 128 |
其中,CMD_RESET_KEY_PAIRSLOT可以为通知SHE将指定的两个memory slot解除配对。例如,可以将上述两个memory slot的pairslot值设置为0,同时SHE自动将该密钥的supportupdate的值设置为0,slave值也设置为0。
入参:M1=KEY_ID|memory slot|counter;M2=CMAC(key,M1)。
KEY_ID:可以为使用哪个key作为M2的计算密钥,例如该KEY_ID可以为目标设备的MASTER_ECU_KEY。
key:可以为KEY_ID对应的key。
counter:可以为memory slot中的更新的密钥所在的counter值加1,防止重放攻击。
如果输入的memory slot的值为0时,则可以忽略该操作,并返回ERC_KEY_INVALID。
本申请实施例中,对于将成为一对pair的两个存储区,解除配对的过程,可以参考上面的逻辑处理以及CMD_RESET_KEY_PAIRSLOT功能的描述,在此不再赘述。
基于此,车端或云端可以通过扩展硬件安全机制,使得硬件安全机制可以支持为第一存储区设置第二存储区;其中解除配对的功能可以简化密钥更新的操作。
上述以基于pair方案对设置存储区及解除存储区的过程进行介绍。下面以pair方案为例,对密钥更新过程进行描述。
可能的实现方式中,还包括:第一设备基于硬件安全机制更新第一密钥。本申请实施例中,第一设备基于硬件安全机制更新第一密钥的过程可以为:第一设备接收来自第二设备的第二消息;第一设备根据第二加密信息,得到第二密钥;第一设备将第二密钥存储在第二存储区;第一设备根据第二密钥和第二存储区构建第三加密信息;第一设备向第二设备发送第三加密信息。
其中,第二消息包括用于指示第一存储区、第二存储区以及第二密钥的第二加密信息;第三加密信息用于指示第一设备完成第二密钥的存储。
第二加密信息包括:第三参数M3、第四参数M4和第五参数M5。其中,M3与第一存储区的信息和第二存储区的信息有关;M4与第二密钥有关;M5与M3、M4以及第一密钥有关。例如,该第二加密信息可以为CMD_LOAD_KEY(M1,M2,M3)。
第三加密信息包括:第六参数M6和第七参数M7。其中,M6与第二存储区的信息有关;M7与第二密钥有关。例如,该第三加密信息可以为CMD_LOAD_KEY(M4,M5)。
其中,在基于pair方案实现密钥更新的基础上,可以进一步的以云端设备为密钥更新提供存储区的个数将pair方案分为两种方式,包括:方式A和方式B。具体的,方式A:为云端设备基于一个存储区支持密钥更新;方式B:为云端设备基于两个存储区支持密钥更新|(如图5对应的实施例)。
可以理解的是,方式A结合下述方式B的方案,该处理过程很容易得出,在此不再赘述。
方式B:云端设备基于两个存储区支持密钥更新。示例性的,图5为本申请实施例提供的一种更新密钥的流程示意图。如图5所示,该流程中可以包括车内的目标设备(如ECU1),以及云端密钥管理中心。
其中,车内各设备中可以包括:
车端的SHE(或者HSM):主要用于管理本设备上的密钥。
车端的KMS-S/A/C(包括KMS-server、KMS-agent或KMS-client):是指部署在车内的KMS逻辑功能模块,在本申请实施例中,KMS-S/A/C可以用于协助管理车内密钥的更新功能,并负责将本设备的SHE进行密钥更新功能。KMS-S/A/C可以具体到车内每个设备。其中,部署的KMS逻辑功能,可以是车端的KMS-server、车端的KMS-agent或车端的KMS-client。
车端的KMS-server:负责与云端密钥管理中心的KMS-服务器进行消息交互。在本方案中用于协助管理本设备、以及车内其他设备上的pair配置、密钥的更新等功能。
车端的KMS-agent:对于部分无法直接与云端进行消息通信的设备,可能需要一个agent进行中转和管理,例如该中站和管理的设备可以包括:CAN或CANFD总线上的ECU,需要网关、VDC、MDC或CDC等设备进行管理。
车端的KMS-client:可以负责车端的KMS-agent以及车端的KMS-server以外的其他设备的管理。
云端密钥管理中心可以包括:
云端的KMS-服务器:用于向不同车辆,或者不同设备内的SHE或HSM等,设置pair,生成相关的命令入参,并传递给车内各设备的SHE或HSM等。
云端的HSM/SHE:为云端密钥管理中心提供了安全的硬件环境,并用于生成CMD_LOAD_KEY等命令的入参。
如图5所示,假设需要对目标设备(或称ECU1)的MASTER_ECU_KEY进行更新,而当前使用的密钥存储在memory slot 1,且已经提前设置了memory slot 1和9为一对pair。则MASTER_ECU_KEY密钥更新的详细处理过程可以包括:
S501、启动密钥更新。
示例性的,可以由用户启动密钥更新,或者,在第一设备为第一存储区配置第二存储区后自动启动密钥更新。
S502、第二设备中的KMS-server通知构造第二加密信息。
本申请实施例中,构造第二加密信息涉及的参数可以包括,目标存储位置:9;保护密钥所在位置:1;老(old)MEK在本地存储:X;新(new)MEK在本地存储:Y;KMS-server将上述数据发送至第二设备中的HSM/SHE。
S503、第二设备中的HSM/SHE构造第二加密信息。
本申请实施例中,构造第二加密信息的过程可以包括,第二设备中的HSM/SHE为ECU1生成新的MEK,并存储到Y中;从X中取ECU1当前的MEK,并派生K1和K2;构造CMD_LOAD_KEY入参(M1,M2,M3)。
其中,M1=UID丨9丨1;M2=ENCCBC,K1,IV=0(counter丨配对类型标识(flags)丨“0…0”95丨new MEK);M3=CMAC(K2,M1丨M2)。
示例性的,涉及CMD_LOAD_KEY功能的描述可以如下表12所示:
表12涉及CMD_LOAD_KEY功能描述的示意表
parameter | direction | width(bits) |
M1 | in/入参 | 128 |
M2 | in/入参 | 256 |
M3 | in/入参 | 128 |
M4 | out/出参 | 256 |
M5 | out/出参 | 128 |
其中,CMD_LOAD_KEY可以用于向SHE中memory slot指定的存储区安全存储密钥。
入参:
M1=UID|memory slot|KEY_ID;
M2=ENCCBC,K1,IV=0(counter|flags|“0…0”95|KeyMemory slot);
M3=CMAC(K2,M1|M2)。
出参:
M4=UID|memory slot|KEY_ID|EncyptedValue;
M5=CMAC(K4,M4),
其中:
出参可以理解为传出的参数,出参可以用于将传出的参数传递给命令使用。
UID:可能为本ECU对应的UID,也可能是wildcard UID。
memory slot:可以指明本次命令向哪个memory slot存储密钥。
KEY_ID:可以指明使用哪个密钥派生出K1、K2。
ENCCBC,K1,IV=0:表示使用高级加密标准(advanced encryption standard,AES)的密码分组链接(cipher block chaining,CBC)模式加密。其中,IV的值可以为0,并使用K1作为加密密钥。
KeyMemory slot:表示要向memory slot位置存储的第二密钥。
EncyptedValue=ENCCBC,K3,IV=0(counter|“1”1|“0…0”99),其中:
K3:是由memory slot中存储的第二密钥(即KeyMemory slot)派生的加密密钥。
counter:同入参的counter值,28bits。
“1”1:表示1bit的1。
“0…0”99:表示填充99个bit的0。例如AES_CBC_128加密时,块长度为128bits。
K3和K4:是由memory slot存储的第二密钥(即KeyMemory slot)派生得到的加密密钥和完整性计算密钥。
示例性的,在CMD_LOAD_KEY命令入参的构造时,第二设备中的HSM/SHE需要为目标设备和云端密钥的存储位置可能不同的情况,提供足够的参数信息。如图5所示,在构造CMD_LOAD_KEY命令的入参时:
目标存储位置:9:表示MASTER_ECU_KEY的第二密钥,将存储在ECU1的SHE中的memory slot 9的位置。
保护密钥所在位置:1:表示在计算M2和M3时,所用依赖的密钥,在ECU1的SHE中的存储位置是memory slot 1,即MASTER_ECU_KEY密钥。这也是本次密钥更新时的第一密钥(或理解为当前使用的密钥)在ECU1的SHE中存储的位置。
计算M2和M3时,加密密钥K1,完整性计算密钥K2,是通过MASTER_ECU_KEY的当前密钥派生得到的。
old MEK在本地存储:X:MEK指MASTER_ECU_KEY,X表示第一密钥在云端安全环境HSM/SHE中的存储位置。该X用于告知云端安全环境,在计算M2、M3时,所用的加密密钥K1,以及完整性计算密钥K2,要通过云端安全环境中的HSM/SHE的X存储的密钥派生。这个X中存储的密钥必须与ECU1中memory slot 1当前存储的密钥相同。
new MEK在本地存储:Y:MEK指MASTER_ECU_KEY,表示更新密钥时,新的MASTER_ECU_KEY的密钥,在云端安全环境HSM/SHE中的临时存储位置(待更新完成后,云端可以将第二密钥存储在X,便于云端的密钥管理;当然第二密钥也可以一直存储在Y处,此时云端管理较麻烦些)。
云端为ECU1生成第二密钥的方式可以为:
一种实现中,云端可以利用HSM/SHE中自带的随机数功能,生成一个随机数rand,作为第二密钥new MEK,并存储到Y处。
另一种实现中,第二密钥也可以在生成的随机数基础上,利用第一密钥进行一次迭代派生,例如new MEK=CMAK(old MEK,rand)。
再一种实现中,第二密钥还可以是由第二设备中的KMS-server从其他地方获取(比如第三方设备生成的),并随构造CMD_LOAD_KEY命令入参的请求,发送至HSM/SHE等。
进一步的,可以基于CMD_LOAD_KEY的功能,以及上述第二密钥等参数,构建第二加密信息的入参,该入参的构建过程可以包括:
M1=UID|9|1。
其中,UID:可以为ECU1的UID。如果第一设备中的各设备的MASTER_ECU_KEY完全相同,则这里UID也可以是wildcard。
9表示ECU1中的memory slot 9;1表示ECU1中的memory slot 1。
M2=ENCCBC,K1,IV=0(counter|flags|“0…0”95|New MEK);
M3=CMAC(K2,M1|M2);
其中,加密密钥K1、完整性计算密钥K2,是通过MASTER_ECU_KEY的当前密钥派生得到的。
S504、第二设备中的HSM/SHE将第二加密信息发送至第二设备中的KMS-server。
适应的,第二设备中的KMS-server接收该第二设备中的HSM/SHE发送的第二加密信息。
S505、第二设备中的KMS-server将包含第二加密信息的第二消息发送给第一设备中的各设备(如KMS-S/A/C)。
其中,第二消息包括用于指示第一存储区、第二存储区以及第二密钥的第二加密信息。
适应的,第一设备中的KMS-S/A/C接收第二设备中的KMS-server发送的第二加密信息。
S506、第一设备中的KMS-S/A/C将第二加密信息发送至第一设备中的SHE,并执行密钥更新。
适应的,第一设备中的SHE接收到该第一设备中的KMS-S/A/C发送的第二加密信息。
S507、第一设备中的SHE验证第二加密信息,当第二加密信息验证成功后,可以构建第三加密信息。
本申请实施例中,当第二加密信息验证成功后,可以将第二密钥设置在memoryslot 9中。
其中,第一设备中的SHE对第二加密信息校验的过程可以为:
第一设备中的SHE检查M1中指示的1和9是否为一对pair。其中,第一设备中的SHE可以基于各自的pairslot中的值是否为对方,或者,各自的pairslot中的值是否为对方且supportupdate都为1,确定1和9是否为一对pair。
若1和9不是为一对pair,则可以按照普通的密钥灌装处理;若1和9为一对pair,则可以按照密钥更新处理,继续进行下述处理。
进一步的,第一设备中的SHE可以检查1中的密钥是否有效。其中,第一设备中的SHE基于密钥的buildstatus标识确定密钥的有效性。例如,当buildstatus的值为0时,则可以禁止本次命令操作;当buildstatus的值为1时,则可以表示1中的密钥有效,并可以继续进行下述处理。
进一步的,第一设备中的SHE可以利用1中的密钥,派生出K2,计算M3’=CMAC(K2,M1|M2),并与CMD_LOAD_KEY中的M3比较。如果M3与M3’不相等,则可以返回失败,并禁止本次CMD_LOAD_KEY命令的操作;如果M3与M3’相等,则表示完整性校验成功,则可以继续进行下述处理。
进一步的,利用1中的密钥,派生出K1,解密M2,得到counter、flags、和new MKE的值。
其中,第一设备中的SHE可以比较上述得到的counter的值是否比memory slot 1中的counter值大,如果不是,则可以禁止本次操作;如果该得到的counter的值比memoryslot 1中的counter值大,则可以继续进行下述处理。
进一步的,第一设备中的SHE可以将counter、flags、和new MKE存储到memoryslot 9中,并将memory slot 9位置的buildstatus值设置为1,inuse设置为0。
当第二加密信息验证成功后,第一设备中的SHE构建第三加密信息。其中,第三加密信息用于指示第一设备完成第二密钥的存储。其中,第三加密信息包括:第六参数M6和第七参数M7,该第六参数M6可以理解为下述的M4,第七参数M7可以理解为下述的M5,下文将不再赘述。
本申请实施例中,构建第三加密信息的过程可以包括,构建CMD_LOAD_KEY的出参M4和M5。M4=UID|9|9|EncyptedValue;M5=CMAC(K4,M4)。
EncyptedValue=ENCCBC,K3,IV=0(counter|“1”1|“0…0”99),其中:
K3:是由memory slot 9中存储的第二密钥(即new MKE)派生的加密密钥。
counter:同入参的counter值,28bits。
“1”1:表示1bit的1。
“0…0”99:表示填充99个bit的0。例如AES_CBC_128加密时,块长度为128bits。
K3和K4:是由memory slot 9中存储的第二密钥(即new MKE)派生得到的加密密钥和完整性计算密钥。
S508、第一设备中的SHE将第三加密信息发送至第一设备中的KMS-S/A/C。
适应的,第一设备中的KMS-S/A/C接收该第一设备中的SHE发送的第三加密信息。
S509、第一设备中的KMS-S/A/C通过消息将第三加密信息反馈给第二设备(如KMS-server)。
适应的,第二设备中的KMS-server接收该第一设备中的KMS-S/A/C发送的第三加密信息。
S510、第二设备中的KMS-server将第三加密信息发送至第二设备中的HSM/SHE。
适应的,第二设备中的HSM/SHE接收该第二设备中的KMS-server发送的ECU1的第三加密信息。
其中,本地密钥存储在第二设备的Y中。
S511、第二设备中的HSM/SHE验证第三加密信息。
第二设备中的HSM/SHE验证第三加密信息的过程可以包括,第二设备中的HSM/SHE使用Y中的密钥,派生K3和K4,校验M5,解密M4,进而校验第三加密信息。第三加密信息的校验过程与上述第一加密信息、第二加密信息的校验过程类似,在此不再赘述。
当第三加密信息验证成功后,第二设备中的HSM/SHE确定第一设备中的第二密钥安装成功。
S512、第二设备中的HSM/SHE将校验结果(成功)返回至第二设备中的KMS-server。
适应的,第二设备中的KMS-server接收该第二设备的HSM/SHE发送的校验结果(成功)。
上述为基于pair方案,实现密钥更新的过程。可选的,第一设备可以基于pair方案删除第一密钥。示例性的,以pair方案为例,下文对第一设备删除第一密钥的过程进行描述。
可能的实现方式中,第一设备向第二设备发送第三加密信息之后,还包括:第一设备接收来自第二设备的第四加密信息,第四加密信息用于指示第一设备删除第一密钥;第一设备验证第四加密信息;在第四加密信息验证通过的情况下,第一设备删除第一密钥;或者,在第四加密信息验证通过的情况下,第一设备删除第一密钥,将第二密钥从第二存储区转移到第一存储区,并解除第二存储区与第一存储区的关联关系。
本申请实施例中,第四加密信息包括:第八参数M8和第九参数M9;其中,M8与第二存储区的信息有关;M9与M8以及第二密钥有关。例如,该第四加密信息可以包括CMD_RESET_PAIR_KEYINFO(M1,M2)。
S513、第二设备中的KMS-server确定第二密钥存储成功,并启动第一密钥删除。
S514、第二设备中的KMS-server通知第二设备中的HSM/SHE构造第四加密信息。
本申请实施例中,第四加密信息用于指示第一设备删除第一密钥。其中,第四加密信息包括:第八参数M8和第九参数M9,该第八参数M8可以理解为下述M1,第九参数M9可以理解为下述的M2,下文将不再赘述。
其中,构造第四加密信息时涉及的参数可以包括,构造CMD_RESET_PAIR_KEYINFO中,第二密钥存储位置:9,new MEK在本地暂存:Y。
S515、第二设备中的HSM/SHE构造第四加密信息。
本申请实施例中,构造第四加密信息的过程可以包括,构造CMD_RESET_PAIR_KEYINFO的入参,M1=9|9|counter;M2=CMAC(new MEK,M1)。
示例性的,涉及CMD_RESET_PAIR_KEYINFO功能的描述可以如下表13所示:
表13涉及CMD_RESET_PAIR_KEYINFO功能描述的示意表
parameter | direction | Width(bits) |
M1 | in | 16 |
M2 | in | 128 |
CMD_RESET_PAIR_KEYINFO:可以表示通知SHE将memory slot对应key pair中的密钥信息清除掉,但不解除配对关系。例如,假设memory slot含有key pair,且pairslot值是memory slot1,则将memory slot1中的密钥信息清除掉、并将buildstatus的值设置为“0-未构建”、将inuse的值设置为0以及将Key ID的值设置为0。同时将memory slot中inuse标记设置为1,表示此时的memory slot可以立即启用。
入参:
M1=KEY_ID|memory slot|counter;M2=CMAC(key,M1)。
其中:
memory slot:将该存储块中pairslot对应的memory slot中密钥信息清除。
KEY_ID:可以为使用哪个key作为M2的计算密钥,例如该KEY_ID可以为目标设备的MASTER_ECU_KEY。
key:可以为KEY_ID对应的key。
counter:可以为memory slot中的counter值,防止重放攻击。
可以理解的是,当memory slot对应密钥的buildstatus值是为1,表示构建成功,且counter值等于CKMS_KH_BuildCounter的值时,可以允许执行该命令。否则忽略该命令。如果buildstatus的值为0,表示未构建,则可以返回ERC_KEY_NOT_BUILD;如果counter不等于CKMS_KH_BuildCounter的值,则可以返回ERC_KEY_IS_OLD。
如果该memory slot并没有形成配对,可以将memory slot中inuse标记设置为1,表示该memory slot可以启用。
如果输入的memory slot值为0时,则可以忽略本次操作,并返回ERC_KEY_INVALID。
其中,M1=9|9|counter,表示要清除memory slot 9的pair(1)中存储的第一密钥。如果M1=9|1|counter,则表示要清除memory slot 1中存储的第一密钥。
可选的,M1中还可以包含UID标识,即M1=UID|9|9|counter,用于指明第一设备中的哪个设备可以执行该命令操作。如果UID是wildcard,则表示所有设备都可以执行。
S516、第二设备中的HSM/SHE将第四加密信息发送至第二设备中的KMS-server。
适应的,第二设备中的KMS-server可以接收该第二设备中的HSM/SHE发送的第四加密信息。
S517、第二设备中的KMS-server通过消息将第四加密信息发送给第一设备中的各设备(如KMS-S/A/C)。
适应的,第一设备中的KMS-S/A/C接收该第二设备中的KMS-server发送的第四加密信息。
S518、第一设备中的KMS-S/A/C将第四加密信息发送至第一设备中的SHE。
适应的,第一设备中的SHE接收该第一设备中的KMS-S/A/C发送的第四加密信息。
S519、第一设备中的SHE对第四加密信息进行验证。
本申请实施例中,当第四加密信息校验成功后,第一设备中的SHE可以删除第一密钥。
第一设备中的SHE基于第四加密信息进行校验的过程可以包括:
第一设备中的SHE检查memory slot 9是否与另一个memory slot组成一对pair,如果不是一对pair,则可以禁止执行本操作;若是一对pair,则可以继续进行下述处理。
第一设备中的SHE检查memory slot 9中的密钥是否有效。第一设备中的SHE可以基于密钥的buildstatus标识是否为1确定密钥的有效性。例如,当buildstatus的值为0时,则可以禁止本操作;当buildstatus的值为1时,则可以表示9中的密钥有效,并可以继续进行下述处理。
第一设备中的SHE检查memory slot 9中的密钥是否比memory slot 1新(counter_9>counter_1)。如果counter_9>counter_1,则清除memory slot 1中的密钥,并将memory slot 9中的inuse值设置为1,表示启用本密钥,并返回成功,通过消息发送给云端密钥管理中心。如果counter_9≤counter_1,则可以禁止本次命令操作的执行。
第一设备中的SHE清除1中的密钥,并启动9中的密钥,并可以将9中的密钥的inuse设置为1。
S520、第一设备中的SHE将删除第一密钥的执行结果(成功)发送至第一设备中的KMS-S/A/C。
适应的,第一设备中的KMS-S/A/C接收该第一设备中的SHE发送的删除第一密钥的执行结果(成功)。
S521、第一设备中的KMS-S/A/C通过消息将删除第一密钥的执行结果(成功)反馈给云端(如KMS-server)。
适应的,第二设备中的KMS-server接收该第一设备中的KMS-S/A/C发送的删除第一密钥的执行结果(成功)。
在云端收到第一密钥删除成功的反馈消息后,可以通知第二设备中的HSM/SHE,将Y处存储的ECU1第二密钥移到X处。Y处的存储区清零,以便用于其他密钥的更新,或者其他用途等。可以理解的是,这种方式对于第二设备中的HSM/SHE来说,可以是slave方案。
可选的,第二设备中的HSM/SHE也可以采用pair方案,在本次第二密钥更新后,第二密钥保存在Y处。这样第二设备中的KMS-server也需要更新该车辆第二密钥的存储位置。
示例性的,除了上述将Y处存储的ECU1第二密钥移到X处的密钥,并清空Y处的存储区,也可以通过以下方法删除第一密钥。
可选的,可以单独提供一个密钥删除的功能命令。
可选的,CMD_LOAD_KEY等命令入参的构造也可以由其他设备构造完成,例如利用传递工具或者第二设备中的KMS-server传递给第一设备中的各设备等。
可选的,还可以通过新增另一个功能命令CMD_MOVE_KEY,将第二密钥new MEK从memory slot 9移动到memory slot 1。可以理解的是,这种方案与slave方式等同,区别在于没有设置isslave标识。
其中,在这种机制下,不同存储区的密钥更新,可以串行的使用同一个公共的第二存储区。例如,为memory slot1设置memory slot 9位置的存储区作为第二存储区,当利用memory slot1和memory slot 9实现memory slot1中的密钥更新操作后,可以解除memoryslot1和memory slot 9的配对,后续memory slot 9位置的存储区可以作为其他memoryslot的第二存储区。
可选的,在pair方案下,第一密钥和第二密钥也可以长期共存(可以理解为,为某种用途的密钥,固定设置一对pair的存储区)。比如用于可靠性保证,防止其中一个存储区的密钥损坏(比如密钥不可读、快闪(flash)存储区有坏区或内容跳变等),可以使用另一个密钥。这种在特定的功能安全高要求的业务场景下,比较有价值。该方案可以为:
示例性的,以MASTER_ECU_KEY、memory slot 1和memory slot 9为例。可以在存储在memory slot 1的密钥的有效性达到1/2的生命周期(lifetime)时,启动密钥更新;基于上述逻辑,在第二密钥使用CMD_LOAD_KEY安装到memory slot 9成功后,暂不删除第一密钥。车载业务可以优先使用存储在memory slot 1中的第一密钥(可以理解为memory slot1中的inuse是1,而memory slot 9的inuse是0,但两者的buildstatus都是1,表示密钥都有效)。
其中,此时memory slot 9中的密钥也是可以使用的。
当出现存储区损坏,比如memory slot 1中的密钥读取失败等时,memory slot 9中的密钥依然可以使用。因此可靠性更好,可以支撑更高等级的功能安全。
当memory slot 1的第一密钥lifetime超时,memory slot 9中第二密钥的有效性达到1/2的lifetime时,可以启动再次更新,并将最新的密钥存储到memory slot 1。业务可以使用memory slot 9中的密钥。
基于此,可以通过扩展硬件安全机制,使得硬件安全机制可以支持密钥的更新,这样可以简化密钥更新的操作,并提高密钥的更新效率;且在pair方案中,由于形成一对pair的两个存储区地位等价,业务可以轮流使用,因此可以提高业务的可靠性。
示例性的,当第一设备为云端设备,第二设备为车端设备时,本申请实施例提供的一种密钥处理方法可以包括如下内容。
可能的实现方式中,还包括:第一设备接收用于指示将第一存储区和第二存储区设置为配对的命令;根据用于指示将第一存储区和第二存储区设置为配对的命令,第一设备基于硬件安全机制生成第一加密信息;第一加密信息用于指示第一存储区和第二存储区;第一设备向第二设备发送第一消息;第一消息包括第一加密信息。
可能的实现方式中,还包括:第一设备接收用于指示更新密钥的命令;根据用于指示更新密钥的命令,第一设备基于硬件安全机制生成第二加密信息;第二加密信息用于指示第一存储区、第二存储区以及第二密钥;第一设备向第二设备发送第二消息,第二消息包括第二加密信息;第一设备接收来自第二设备的第三加密信息;第三加密信息用于指示第一设备完成第二密钥的存储;第一设备验证第三加密信息;在第三加密信息验证通过的情况下,第一设备确定第二密钥更新成功。
可能的实现方式中,还包括:第一设备向第二设备发送第四加密信息;第四加密信息用于指示第一设备删除第一密钥。
可以理解的是,上述当第一设备为云端设备时,一种密钥处理方法的具体实现,可以参照当第一设备为车端设备时的一种密钥处理方法,在此不再赘述。
上述为基于pair方案,实现密钥更新的过程。示例性的,以slave方案为例,对备用存储区的设置(如图6对应的实施例)以及密钥的更新(如图7对应的实施例)进行描述。其中,slave方案对应的组合,如表14所示:
表14 slave方案对应的组合
其中,备用存储区位置可以由硬件机制自动指定,用户可以决定某个密钥更新时,是否启用slave方案。该备用存储区可适用于固定设置、或临时设置。也可适用于临时设置中的相同备用存储区、不同备用存储区。
对于用户指定备用存储区位置的,可以参考上述pair方案的相关逻辑,在此不再赘述。
如果是采用固定设置中的在安全芯片在生产时,就已经硬件逻辑进行限定,或者,通过硬件安全机制中的固件逻辑进行限定,但可随软件包进行升级,则不需要提供用户设置功能的接口,需要提供使用备用存储区密钥的接口,则结合下面的方案,可以得出如何处理,在此不再赘述。
示例性的,以slave方案中的基于临时设置中的,硬件机制指定备用存储区(如表14中的序号3)的位置为例,介绍为第一存储区设置备用存储区的方法。可以理解的是,下文中的slave方案均可以为基于硬件机制指定设置备用存储区对应的方式,下文将不再赘述。
例如,以第一存储区为MASTER_ECU_KEY为例,介绍在slave方案下,在密钥更新前,通过CMD_SET_KEY_SLAVESLOT命令,由硬件机制自动为MASTER_ECU_KEY设置一个备用存储区,比如将SHE一个内部存储区位置Z(该位置用户不可见)设置为MASTER_ECU_KEY的备用存储区,如下表15所示:
表15将memory slot z作为备用存储区,并支持更新MASTER_ECU_KEY的示意表
其中,该memory slotZ的位置对应的硬件机制预留存储区可以理解为第二存储区。为便于理解,下文将备用存储区称为第二存储区。
示例性的,图6为本申请实施例提供的另一种设置第二存储区的流程示意图。如图6所示,该流程中可以包括车内的目标设备(如ECU1),以及云端密钥管理中心。
其中,车内的目标设备(如ECU1),以及云端密钥管理中心的功能与pair方案设置第二存储区中,各设备的功能类似,在此不再赘述。
如图6所示,基于slave方案设置第二存储区的过程可以包括:
S601、用户启动第一设备KMS配置变更。
S602、第二设备中的KMS-server请求为ECU1构造第一加密信息。
本申请实施例中,该第一加密信息可以包括以下参数:为(1)启动第二存储区;保护密钥所在位置:1;在本地存储:X;本地将Y设置为X的备用,第二设备中的KMS-server将上述数据发送至第二设备的HSM/SHE。
S603、第二设备中的HSM/SHE构造第一加密信息。
本申请实施例中,构造第一加密信息涉及的参数可以包括:M1=KEY_ID丨1丨counter;M2=CMAC(key,M1);第二设备中的HSM/SHE可以将Y设置为X的备用存储区,构造第一加密信息的过程与pair方案中构造第一加密信息的过程类似,在此不再赘述。
S604、第二设备中的HSM/SHE将第一加密信息发送至第二设备中的KMS-server。
适应的,第二设备中的KMS-server接收该第二设备中的HSM/SHE发送的第一加密信息。
S605、第二设备中的KMS-server将包含第一加密信息的第一消息发送给第一设备中的各设备(如KMS-S/A/C)。
适应的,第一设备中的KMS-S/A/C接收该第二设备中的KMS-server发送的第一加密信息。
S606、第一设备中的KMS-S/A/C将第一加密信息发送至第一设备中的SHE。
适应的,第一设备中的SHE接收该第一设备中的KMS-S/A/C发送的第一加密信息。
S607、第一设备中的SHE验证第一加密信息。
例如,第一设备中的SHE可以利用M1中的密钥存储位置对应的密钥,验证计算M1的MAC值,与M2比较,验证完整性;验证密钥的counter的有效性等。上述验证通过后,为memoryslot1设置第二存储区memory slot z。
可以理解的是,上述验证过程与pair方案中的验证过程类似,在此不再赘述。
S608、第一设备中的SHE将设置的结果反馈(成功)发送至第一设备中的KMS-S/A/C。
适应的,第一设备中的KMS-S/A/C接收该第一设备中的SHE发送的反馈结果(成功)。
S609、第一设备中的KMS-S/A/C通过消息将CMD_SET_KEY_SLAVESLOT执行结果(成功)反馈给云端(如KMS-server)。
适应的,第二设备中的KMS-server接收该第一设备中的KMS-S/A/C发送的CMD_SET_KEY_SLAVESLOT执行结果(成功)。
S610、第二设备中的KMS-server更新云端车辆数据库。例如第一设备对应的KMS的配置文件信息的配置结果等。
基于此,车端和云端可以通过扩展硬件安全机制,使得硬件安全机制可以支持密钥的更新;其中,基于slave方案,可以利用硬件机制预留存储区作为第二存储区,节省设置第二存储区的内存占用,并可以实现第二存储区的随用随取。
上述为基于slave方案设置第二存储区的过程。可选的,可以基于slave方案实现密钥的更新。示例性的,以slave方案为例,下文对实现密钥的更新的过程进行描述。
示例性的,图7为本申请实施例提供的另一种基于案更新密钥的流程示意图。如图7所示,该流程中可以包括车内的目标设备(如ECU1),以及云端密钥管理中心。
其中,车内的目标设备(如ECU1),以及云端密钥管理中心的功能与pair方案更新密钥时,各设备的功能类似,在此不再赘述。
如图7所示,假设需要对目标设备(或称ECU1)的MASTER_ECU_KEY进行更新,而当前使用的密钥存储在memory slot 1,且下次密钥更新时,第二密钥存储到存储区z中,则MASTER_ECU_KEY密钥更新的详细处理过程可以包括:
S701、启动密钥更新。
S702、第二设备中的KMS-server通知构造第二加密信息。
本申请实施例中,构造第二加密信息涉及的参数可以包括,目标存储位置:1;保护密钥所在位置:1;MEK在本地存储:X;第二设备中的KMS-server将上述数据发送至第二设备中的HSM/SHE。
S703、第二设备中的HSM/SHE构造第二加密信息。
本申请实施例中,构造第二加密信息的过程可以包括,第二设备中的HSM/SHE为ECU1生成新的MEK,存储到Y中;从X中取ECU1当前的MEK,并派生K1和K2;构造CMD_LOAD_KEY入参(M1,M2,M3)。
其中,M1=UID丨1丨1;M2=ENCCBC,K1,IV=0(counter丨flags丨“0…0”95丨newMEK);M3=CMAC(K2,M1丨M2)。上述构造第二加密信息的过程与pair方案中构造第二加密信息的过程类似,在此不再赘述。
S704、第二设备中的HSM/SHE将第二加密信息发送至第二设备中的KMS-server。
适应的,第二设备中的KMS-server接收该第二设备中的HSM/SHE发送的第二加密信息。
S705、第二设备中的KMS-server通过消息将包含第二加密信息的第二消息发送给第一设备中的各设备(如KMS-S/A/C)。
适应的,第一设备中的KMS-S/A/C接收该第二设备中的KMS-server发送的第二加密信息。
S706、第一设备中的KMS-S/A/C将第二加密信息发送至第一设备中的SHE,并执行密钥更新。
适应的,第一设备中的SHE接收该第一设备中的KMS-S/A/C发送的第二加密信息。
S707、第一设备中的SHE验证第二加密信息,当第二加密信息验证成功后,可以构建第三加密信息。
本申请实施例中,当第二加密信息验证成功后,可以将第二密钥设置在memoryslot z中。
第一设备中的SHE SHE基于CMD_LOAD_KEY命令的入参(M1,M2,M3)进行校验的过程可以包括:第一设备中的SHE可以利用1中的密钥,派生出K1,解密M2,得到new MKE。
第一设备中的SHE可以判断1是由有第二存储区,当1有第二存储区时,将new MKE存储到z中。
第一设备中的SHE构建CMD_LOAD_KEY的出参M4和M5。其中,M4中的memory slot为1,KEY_ID也为1;M4的加密密钥K3,M5的完整性计算的密钥K4都是通过9中存储的第二密钥派生的。
可以理解的是,上述验证方法与pair方案中的验证方法类似,在此不再赘述。
S708、第一设备中的SHE将第三加密信息发送至第一设备中的KMS-S/A/C。
适应的,第一设备中的KMS-S/A/C接收该第一设备中的SHE发送的第三加密信息。
S709、第一设备中的KMS-S/A/C通过消息将第三加密信息反馈给云端(如KMS-server)。
适应的,第二设备中的KMS-server接收该第一设备中的KMS-S/A/C发送的第三加密信息。
S710、第二设备中的KMS-server将第三加密信息发送至第二设备中的HSM/SHE。
适应的,第二设备中的HSM/SHE接收该第二设备中的KMS-server发送的第三加密信息。
S711、第二设备中的HSM/SHE验证第三加密信息。
第二设备中的HSM/SHE验证第三加密信息的过程可以包括,第二设备中的HSM/SHE验证ECU1的密钥存储在X,第二设备中的HSM/SHE发现在进行更新,使用第二存储区Y中的密钥,派生K3和K4,校验M5,解密M4,校验CMD_LOAD_KEY的执行结果。可以理解的是,上述验证方法与pair方案中的验证方法类似,在此不再赘述。
S712、第二设备中的HSM/SHE将校验结果(成功)返回至第二设备中的KMS-server。
适应的,第二设备中的KMS-server接收该第二设备中的HSM/SHE发送的校验结果(成功)。
S713、第二设备中的KMS-server确定第二密钥存储成功,并启动第一密钥删除。
S714、第二设备中的KMS-server通知第二设备中的HSM/SHE构造第四加密信息。
其中,该第四加密信息可以基于CMD_SWITCH_SLAVE_KEYINFO构造;MEK在本地暂存:X。
S715、第二设备中的HSM/SHE构造第四加密信息。
第二设备中的HSM/SHE构造第四加密信息的过程可以包括,构造CMD_SWITCH_SLAVE_KEYINFO的入参,M1=1|1;M2=CMAC(new MEK,M1)。上述构造第四加密信息的过程与pair方案中构造第四加密信息的过程类似,在此不再赘述。
S716、第二设备中的HSM/SHE将第四加密信息发送至第二设备中的KMS-server。
适应的,第二设备中的KMS-server接收该第二设备中的HSM/SHE发送的第四加密信息。
S717、第二设备中的KMS-server通过消息将第四加密信息发送给第一设备中的各设备(如KMS-S/A/C)。
适应的,第一设备中的KMS-S/A/C接收该第二设备中的KMS-server发送的第四加密信息。
S718、第一设备中的KMS-S/A/C将第四加密信息发送至第一设备中的SHE。
适应的,第一设备中的SHE接收该第一设备中的KMS-S/A/C发送的第四加密信息。
S719、第一设备中的SHE验证第四加密消息。
本申请实施例中,第一设备中的SHE验证第四加密消息的过程可以包括,第一设备中的SHE基于CMD_SWITCH_SLAVE_KEYINFO(M1,M2)进行校验,验证成功后,将z中的密钥移到1中,清除z中的内容。
可以理解的是,上述验证方法与pair方案中的验证方法类似,在此不再赘述。
其中,可以利用CMD_MOVE_KEY_SLOT命令,将一个Memory slotz对应的密钥移动到Memory slot1的位置,涉及CMD_MOVE_KEY_SLOT功能的描述可以如下表16所示:
表16涉及CMD_MOVE_KEY_SLOT功能描述的示意表
parameter | direction | width(bits) |
M1 | in | 24 |
M2 | in | 128 |
CMD_MOVE_KEY_SLOT:可以表示通知SHE将memory slot1对应的密钥移动到memoryslot2位置,并将memory slot1位置的密钥信息清除、将buildstatus的值设置为“0-未构建”、将inuse的值设置为0以及将Key ID的值设置为0。
入参:
M1=KEY_ID|memory slot1|memory slot2;M2=CMAC(key,M1)。
其中:
memory slot1:是要移动的密钥的原存储区,可以为密钥的源memory slot。
memory slot2:是要移动的密钥的目标存储区,可以为密钥的目的memory slot。
KEY_ID:可以为使用哪个key作为M2的计算密钥,例如该KEY_ID可以为目标设备的MASTER_ECU_KEY。
key:可以为KEY_ID对应的key。
如果memory slot1或memory slot2为0,则可以忽略该命令。
S720、第一设备中的SHE将删除第一密钥的执行结果(成功)发送至第一设备中的KMS-S/A/C。
适应的,第一设备中的KMS-S/A/C接收该第一设备中的SHE发送的删除第一密钥的执行结果(成功)。
S721、第一设备中的KMS-S/A/C通过消息将删除第一密钥的执行结果(成功)反馈给云端(如KMS-server)。
适应的,第二设备中的KMS-server接收该第一设备中的KMS-S/A/C发送的删除第一密钥的执行结果(成功)。
S722、第二设备中的KMS-server通知第二设备中的HSM/SHE删除ECU1的第一密钥,将第二密钥移入位置X,并将位置Y清零,作为下个ECU下次更新用。
可选的,在密钥更新过程中,可以利用CMD_GET_KEY_INFO查询存储区的密钥信息,示例性的,涉及CMD_GET_KEY_INFO功能的描述可以如下表17所示:
表17涉及CMD_GET_KEY_INFO功能描述的示意表
parameter | direction | width(bits) |
M1 | in | 16 |
M2 | in | 128 |
M3 | out | (13,或24)*8 |
M4 | out | 128 |
CMD_GET_KEY_INFO:可以理解为根据输入的memory slot1,返回keys的信息。比如memory slot1的密钥标记或pairslot等信息,如果有pair或slave,则可以同时返回pairkey或slave key信息。但无法查询密钥内容。
入参:
M1=KEY_ID|memory slot1;M2=CMAC(key,M1)。
出参:
M3=KEY_ID|memory slot1|key1 Info|flag[|memory slot2|key2 Info];
M4=CMAC(key,M3)。
其中:
KEY_ID:可以为使用哪个key作为M2计算。
其中,如果KEY_ID为0,表示该命令没有验证信息,此时可以忽略后面的M2以及M4。KEY_ID可以用于各设备启动时,CKMS检查各密钥的构建状态是否完成。例如,如果各密钥的构建状态没有完成,则可以上报告警,并禁止车辆行驶等。
key:是KEY_ID对应的key。
memory slot1:可以指明本次要查询哪个位置的key的信息。
key1 Info:可以指明memory slot1对应的key信息,见下面的key Info定义。
flag:可以标识key1是否形成配对或slave,可以表示后面是否含有memory slot2和key2Info。若flag值为0,则不含;若flag值为1,则含有,且表示pair;若flag值为2,则含有,且表示slave。
memory slot2:可以表示key1的pairslot字段的值,也是Key2对应的memoryslot。如果是slave,且外部不可访问时,则该memory slot2的值可以填0。
key2 Info:memory slot2对应的key信息。
key1 Info和key2 Info的结构是一样的,含有的字段如下(共10Bytes):
key Info=keyflags|00|counter(28bits)|pairslot|Key ID,
keyflags=write-protection(1bit)|secure boot failure(1bit)|debuggeractivation(1bit)|wildcard UID(1bit)|key usage(1bit)|plain key(1bit)|buildstatus(1bit)|supportupdate(1bit)|inuse(1bit)|isslave(1bit)。共10bits;
00:2bits,两个1bit的0;counter:28bits;pairslot:8bits;Key ID:32bits;总共10个字节。
基于此,第一设备和第二设备可以通过扩展硬件安全机制,使得硬件安全机制可以支持密钥的更新,简化密钥更新的操作,并提高密钥的更新效率;且基于slave方案进行密钥更新时,可以利用硬件机制预留存储区作为第二存储区,节省设置第二存储区的内存占用,并可以实现第二存储区的随用随取。
上面结合图2-图7,对本申请实施例提供的方法进行了说明,下面对本申请实施例提供的执行上述方法的装置进行描述。
示例性的,图8为本申请实施例提供的一种密钥处理装置的结构示意图,如图8所示,密钥处理装置80可以用于通信设备、电路、硬件组件或者芯片中,该密钥处理装置包括:处理单元801和通信单元802。其中,处理单元801用于支持密钥处理装置执行信息处理的步骤;通信单元802用于支持密钥处理装置执行数据发送或接收的步骤。
具体的,本申请实施例提供一种密钥处理装置,处理单元801,用于确定第一存储区;第一存储区用于存储第一密钥;处理单元801,还用于确定与第一存储区关联的第二存储区,第二存储区用于存储第二密钥,第二密钥为第一密钥的更新密钥。
可能的实现方式中,根据硬件安全机制,处理单元801,具体用于确定与第一存储区关联的第二存储区;硬件安全机制用于更新第一密钥。
可能的实现方式中,第二存储区是由硬件安全机制预定义的,或者,第二存储区是根据硬件安全机制中的接口接收到的第一命令确定的。
可能的实现方式中,在更新第一密钥时:第一存储区和第二存储区交替使用;或者,第一存储区始终用于存放更新后的密钥。
可能的实现方式中,密钥的存储信息包括以下至少一项:用于指示密钥构建状态的信息、用于指示密钥是否正在使用的信息,或,用于指示密钥为更新前的密钥或者更新后的密钥的信息。
可能的实现方式中,第一密钥的存储信息还包括:用于指示第一密钥的存储区为第一存储区的信息或为第二存储区的信息,或,用于指示与第一密钥的存储区配对使用的存储区的信息。
可能的实现方式中,第一命令包括以下至少一项:用于指示将第一存储区和第二存储区设置为配对的命令、用于指示将第一存储区和第二存储区解除配对的命令、用于指示更新密钥的命令、用于指示清除更新前的密钥的命令、用于指示查询第一存储区和/或第二存储区的密钥信息的命令、或用于指示将密钥从一个存储区转移到另一个存储区的命令。
可能的实现方式中,通信单元802,用于接收来自第二设备的第一消息,第一消息包括用于指示第一存储区和第二存储区的第一加密信息;处理单元801,具体用于验证第一加密信息;在第一加密信息验证通过的情况下,处理单元801,还具体用于确定与第一存储区关联的第二存储区。
可能的实现方式中,在第一加密信息验证通过的情况下,处理单元801,具体用于校验第二存储区是否被占用;在第二存储区未被占用的情况下,处理单元801,还具体用于确定与第一存储区关联的第二存储区。
可能的实现方式中,第一加密信息包括:第一参数M1和第二参数M2;其中,M1与第一存储区的信息和第二存储区的信息有关,M2与M1以及第一密钥有关。
可能的实现方式中,处理单元801,还用于基于硬件安全机制解除第二存储区。
可能的实现方式中,处理单元801,还用于基于硬件安全机制更新第一密钥。
可能的实现方式中,通信单元802,具体用于接收来自第二设备的第二消息,第二消息包括用于指示第一存储区、第二存储区以及第二密钥的第二加密信息;处理单元801,具体用于根据第二加密信息,得到第二密钥;处理单元801,还具体用于将第二密钥存储在第二存储区;处理单元801,还具体用于根据第二密钥和第二存储区构建第三加密信息,第三加密信息用于指示第一设备完成第二密钥的存储;通信单元802,还具体用于向第二设备发送第三加密信息。
可能的实现方式中,第二加密信息包括:第三参数M3、第四参数M4和第五参数M5;其中,M3与第一存储区的信息和第二存储区的信息有关,M4与第二密钥有关,M5与M3、M4以及第一密钥有关。
可能的实现方式中,第三加密信息包括:第六参数M6和第七参数M7;其中,M6与第二存储区的信息有关,M7与第二密钥有关。
可能的实现方式中,通信单元802,还用于接收来自第二设备的第四加密信息,第四加密信息用于指示第一设备删除第一密钥;处理单元801,还用于验证第四加密信息;在第四加密信息验证通过的情况下,处理单元801,还用于删除第一密钥;或者,在第四加密信息验证通过的情况下,处理单元801,还用于删除第一密钥,将第二密钥从第二存储区转移到第一存储区,并解除第二存储区与第一存储区的关联关系。
可能的实现方式中,第四加密信息包括:第八参数M8和第九参数M9;其中,M8与第二存储区的信息有关,M9与M8以及第二密钥有关。
可能的实现方式中,通信单元802,还用于接收用于指示将第一存储区和第二存储区设置为配对的命令;处理单元801,还用于根据用于指示将第一存储区和第二存储区设置为配对的命令,第一设备基于硬件安全机制生成第一加密信息;第一加密信息用于指示第一存储区和第二存储区;通信单元802,还用于向第二设备发送第一消息;第一消息包括第一加密信息。
可能的实现方式中,通信单元802,还用于接收用于指示更新密钥的命令;根据用于指示更新密钥的命令,处理单元801,还用于基于硬件安全机制生成第二加密信息;第二加密信息用于指示第一存储区、第二存储区以及第二密钥;通信单元802,还用于向第二设备发送第二消息,第二消息包括第二加密信息;通信单元802,还用于接收来自第二设备的第三加密信息;第三加密信息用于指示第二设备完成第二密钥的存储;处理单元801,还用于验证第三加密信息;在第三加密信息验证通过的情况下,处理单元801,还用于确定第二密钥更新成功。
可能的实现方式中,通信单元802,还用于向第二设备发送第四加密信息;第四加密信息用于指示第一设备删除第一密钥。
在一种可能的实施例中,密钥处理装置还可以包括:存储单元803。处理单元801、存储单元803通过线路相连。
存储单元803可以包括一个或者多个存储器,存储器可以是一个或者多个设备、电路中用于存储程序或者数据的器件。
存储单元803可以独立存在,通过通信线路与密钥处理装置具有的处理单元801相连。存储单元803也可以和处理单元801集成在一起。
其中,则通信单元802可以是输入或者输出接口、管脚或者电路等。示例性的,存储单元803可以存储雷达或目标设备的方法的计算机执行指令,以使处理单元801执行上述实施例中雷达或目标设备的方法。存储单元803可以是寄存器、缓存或者RAM等,存储单元803可以和处理单元801集成在一起。存储单元803可以是ROM或者可存储静态信息和指令的其他类型的静态存储设备,存储单元803可以与处理单元801相独立。
示例性的,图9为本申请实施例提供的一种控制设备的硬件结构示意图,如图9所示,该控制设备包括处理器901,通信线路904以及至少一个通信接口(图9中示例性的以通信接口903为例进行说明)。
处理器901可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路904可包括在上述组件之间传送信息的电路。
通信接口903,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线局域网(wireless local area networks,WLAN)等。
可能的,该控制设备还可以包括存储器902。
存储器902可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路904与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器902用于存储执行本申请方案的计算机执行指令,并由处理器901来控制执行。处理器901用于执行存储器902中存储的计算机执行指令,从而实现本申请实施例所提供的密钥处理方法。
可能的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器901可以包括一个或多个CPU,例如图9中的CPU0和CPU1。
在具体实现中,作为一种实施例,控制设备可以包括多个处理器,例如图9中的处理器901和处理器905。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
示例性的,图10为本申请实施例提供的一种芯片的结构示意图。芯片100包括一个或两个以上(包括两个)处理器1020和通信接口1030。
在一些实施方式中,存储器1040存储了如下的元素:可执行模块或者数据结构,或者他们的子集,或者他们的扩展集。
本申请实施例中,存储器1040可以包括只读存储器和随机存取存储器,并向处理器1020提供指令和数据。存储器1040的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,NVRAM)。
本申请实施例中,存储器1040、通信接口1030以及存储器1040通过总线系统2020耦合在一起。其中,总线系统2020除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。为了便于描述,在图10中将各种总线都标为总线系统2020。
上述本申请实施例描述的方法可以应用于处理器1020中,或者由处理器1020实现。处理器1020可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1020中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1020可以是通用处理器(例如,微处理器或常规处理器)、数字信号处理器(digitalsignal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门、晶体管逻辑器件或分立硬件组件,处理器1020可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。其中,软件模块可以位于随机存储器、只读存储器、可编程只读存储器或带电可擦写可编程存储器(electricallyerasable programmable read only memory,EEPROM)等本领域成熟的存储介质中。该存储介质位于存储器1040,处理器1020读取存储器1040中的信息,结合其硬件完成上述方法的步骤。
在上述实施例中,存储器存储的供处理器执行的指令可以以计算机程序产品的形式实现。其中,计算机程序产品可以是事先写入在存储器中,也可以是以软件形式下载并安装在存储器中。
计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。例如,可用介质可以包括磁性介质(例如,软盘、硬盘或磁带)、光介质(例如,数字通用光盘(digital versatile disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本申请实施例还提供了一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
作为一种可能的设计,计算机可读介质可以包括紧凑型光盘只读储存器(compactdisc read-only memory,CD-ROM)、RAM、ROM、EEPROM或其它光盘存储器;计算机可读介质可以包括磁盘存储器或其它磁盘存储设备。而且,任何连接线也可以被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,DSL或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,DSL或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘(CD),激光盘,光盘,数字通用光盘(digital versatile disc,DVD),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。
上述的组合也应包括在计算机可读介质的范围内。以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (38)
1.一种密钥处理方法,其特征在于,所述方法包括:
第一设备确定第一存储区;所述第一存储区用于存储第一密钥;
所述第一设备确定与所述第一存储区关联的第二存储区,所述第二存储区用于存储第二密钥,所述第二密钥为所述第一密钥的更新密钥;
所述第一设备确定与所述第一存储区关联的第二存储区,包括:
根据硬件安全机制,所述第一设备确定与所述第一存储区关联的所述第二存储区;所述硬件安全机制用于更新所述第一密钥;所述第二存储区是由所述硬件安全机制预定义的,或者,所述第二存储区是根据所述硬件安全机制中的接口接收到的第一命令确定的;
所述第一命令包括以下至少一项:用于指示将所述第一存储区和所述第二存储区设置为配对的命令、用于指示将所述第一存储区和所述第二存储区解除配对的命令、用于指示更新密钥的命令、用于指示清除更新前的密钥的命令、用于指示查询所述第一存储区和/或所述第二存储区的密钥信息的命令、或用于指示将密钥从一个存储区转移到另一个存储区的命令。
2.根据权利要求1所述的方法,其特征在于,在更新所述第一密钥时:
所述第一存储区和所述第二存储区交替使用;
或者,所述第一存储区始终用于存放更新后的密钥。
3.根据权利要求1所述的方法,其特征在于,所述密钥的存储信息包括以下至少一项:用于指示密钥构建状态的信息、用于指示密钥是否正在使用的信息,或,用于指示密钥为更新前的密钥或者更新后的密钥的信息。
4.根据权利要求3所述的方法,其特征在于,所述第一密钥的存储信息还包括:用于指示所述第一密钥的存储区为所述第一存储区的信息或为所述第二存储区的信息,或,用于指示与所述第一密钥的存储区配对使用的存储区的信息。
5.根据权利要求1所述的方法,其特征在于,所述根据硬件安全机制,所述第一设备确定与所述第一存储区关联的所述第二存储区,包括:
所述第一设备接收来自第二设备的第一消息,所述第一消息包括用于指示所述第一存储区和所述第二存储区的第一加密信息;
所述第一设备验证所述第一加密信息;
在所述第一加密信息验证通过的情况下,所述第一设备确定与所述第一存储区关联的所述第二存储区。
6.根据权利要求5所述的方法,其特征在于,所述在所述第一加密信息验证通过的情况下,所述第一设备确定与所述第一存储区关联的所述第二存储区,包括:
在所述第一加密信息验证通过的情况下,所述第一设备校验所述第二存储区是否被占用;
在所述第二存储区未被占用的情况下,所述第一设备确定与所述第一存储区关联的所述第二存储区。
7.根据权利要求5或6所述的方法,其特征在于,所述第一加密信息包括:第一参数M1和第二参数M2;
其中,所述M1与所述第一存储区的信息和所述第二存储区的信息有关,所述M2与所述M1以及所述第一密钥有关。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一设备基于所述硬件安全机制解除所述第二存储区。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一设备基于所述硬件安全机制更新所述第一密钥。
10.根据权利要求9所述的方法,其特征在于,所述第一设备基于所述硬件安全机制更新所述第一密钥,包括:
所述第一设备接收来自所述第二设备的第二消息,所述第二消息包括用于指示所述第一存储区、所述第二存储区以及第二密钥的第二加密信息;
所述第一设备根据所述第二加密信息,得到所述第二密钥;
所述第一设备将所述第二密钥存储在所述第二存储区;
所述第一设备根据所述第二密钥和所述第二存储区构建第三加密信息,所述第三加密信息用于指示所述第一设备完成所述第二密钥的存储;
所述第一设备向所述第二设备发送所述第三加密信息。
11.根据权利要求10所述的方法,其特征在于,所述第二加密信息包括:第三参数M3、第四参数M4和第五参数M5;
其中,所述M3与所述第一存储区的信息和所述第二存储区的信息有关,所述M4与所述第二密钥有关,所述M5与所述M3、所述M4以及所述第一密钥有关。
12.根据权利要求10所述的方法,其特征在于,所述第三加密信息包括:第六参数M6和第七参数M7;
其中,所述M6与所述第二存储区的信息有关,所述M7与所述第二密钥有关。
13.根据权利要求10-12任一项所述的方法,其特征在于,所述第一设备向所述第二设备发送所述第三加密信息之后,所述方法还包括:
所述第一设备接收来自所述第二设备的第四加密信息,所述第四加密信息用于指示所述第一设备删除所述第一密钥;
所述第一设备验证所述第四加密信息;
在所述第四加密信息验证通过的情况下,所述第一设备删除所述第一密钥;
或者,在所述第四加密信息验证通过的情况下,所述第一设备删除所述第一密钥,将所述第二密钥从所述第二存储区转移到所述第一存储区,并解除所述第二存储区与所述第一存储区的关联关系。
14.根据权利要求13所述的方法,其特征在于,所述第四加密信息包括:第八参数M8和第九参数M9;
其中,所述M8与所述第二存储区的信息有关,所述M9与所述M8以及所述第二密钥有关。
15.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一设备接收用于指示将所述第一存储区和所述第二存储区设置为配对的命令;
根据所述用于指示将所述第一存储区和所述第二存储区设置为配对的命令,所述第一设备基于所述硬件安全机制生成第一加密信息;所述第一加密信息用于指示所述第一存储区和所述第二存储区;
所述第一设备向第二设备发送第一消息;所述第一消息包括所述第一加密信息。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
所述第一设备接收所述用于指示更新密钥的命令;
根据所述用于指示更新密钥的命令,所述第一设备基于所述硬件安全机制生成第二加密信息;所述第二加密信息用于指示所述第一存储区、所述第二存储区以及所述第二密钥;
所述第一设备向所述第二设备发送第二消息,所述第二消息包括所述第二加密信息;
所述第一设备接收来自所述第二设备的第三加密信息;所述第三加密信息用于指示所述第二设备完成所述第二密钥的存储;
所述第一设备验证所述第三加密信息;
在所述第三加密信息验证通过的情况下,所述第一设备确定所述第二密钥更新成功。
17.根据权利要求16所述的方法,其特征在于,所述方法还包括:
所述第一设备向所述第二设备发送第四加密信息;所述第四加密信息用于指示所述第一设备删除所述第一密钥。
18.一种密钥处理装置,其特征在于,所述装置包括:
处理单元,用于确定第一存储区;所述第一存储区用于存储第一密钥;
所述处理单元,还用于确定与所述第一存储区关联的第二存储区,所述第二存储区用于存储第二密钥,所述第二密钥为所述第一密钥的更新密钥;所述处理单元,还用于根据硬件安全机制,确定与所述第一存储区关联的所述第二存储区;所述硬件安全机制用于更新所述第一密钥;所述第二存储区是由所述硬件安全机制预定义的,或者,所述第二存储区是根据所述硬件安全机制中的接口接收到的第一命令确定的;
所述第一命令包括以下至少一项:
用于指示将所述第一存储区和所述第二存储区设置为配对的命令、用于指示将所述第一存储区和所述第二存储区解除配对的命令、用于指示更新密钥的命令、用于指示清除更新前的密钥的命令、用于指示查询所述第一存储区和/或所述第二存储区的密钥信息的命令、或用于指示将密钥从一个存储区转移到另一个存储区的命令。
19.根据权利要求18所述的装置,其特征在于,在更新所述第一密钥时:
所述第一存储区和所述第二存储区交替使用;
或者,所述第一存储区始终用于存放更新后的密钥。
20.根据权利要求18所述的装置,其特征在于,所述密钥的存储信息包括以下至少一项:用于指示密钥构建状态的信息、用于指示密钥是否正在使用的信息,或,用于指示密钥为更新前的密钥或者更新后的密钥的信息。
21.根据权利要求20所述的装置,其特征在于,所述第一密钥的存储信息还包括:用于指示所述第一密钥的存储区为所述第一存储区的信息或为所述第二存储区的信息,或,用于指示与所述第一密钥的存储区配对使用的存储区的信息。
22.根据权利要求21所述的装置,其特征在于,还包括:通信单元,所述通信单元用于接收来自第二设备的第一消息,所述第一消息包括用于指示所述第一存储区和所述第二存储区的第一加密信息;
所述处理单元,具体用于验证所述第一加密信息;
在所述第一加密信息验证通过的情况下,所述处理单元,还具体用于确定与所述第一存储区关联的所述第二存储区。
23.根据权利要求22所述的装置,其特征在于,在所述第一加密信息验证通过的情况下,所述处理单元,具体用于校验所述第二存储区是否被占用;
在所述第二存储区未被占用的情况下,所述处理单元,还具体用于确定与所述第一存储区关联的所述第二存储区。
24.根据权利要求22或23所述的装置,其特征在于,所述第一加密信息包括:第一参数M1和第二参数M2;
其中,所述M1与所述第一存储区的信息和所述第二存储区的信息有关,所述M2与所述M1以及所述第一密钥有关。
25.根据权利要求24所述的装置,其特征在于,所述处理单元,还用于基于所述硬件安全机制解除所述第二存储区。
26.根据权利要求24所述的装置,其特征在于,所述处理单元,还用于基于所述硬件安全机制更新所述第一密钥。
27.根据权利要求26所述的装置,其特征在于,所述通信单元,具体用于接收来自所述第二设备的第二消息,所述第二消息包括用于指示所述第一存储区、所述第二存储区以及第二密钥的第二加密信息;
所述处理单元,具体用于根据所述第二加密信息,得到所述第二密钥;
所述处理单元,还具体用于将所述第二密钥存储在所述第二存储区;
所述处理单元,还具体用于根据所述第二密钥和所述第二存储区构建第三加密信息,所述第三加密信息用于指示第一设备完成所述第二密钥的存储;
所述通信单元,还具体用于向所述第二设备发送所述第三加密信息。
28.根据权利要求27所述的装置,其特征在于,所述第二加密信息包括:第三参数M3、第四参数M4和第五参数M5;
其中,所述M3与所述第一存储区的信息和所述第二存储区的信息有关,所述M4与所述第二密钥有关,所述M5与所述M3、所述M4以及所述第一密钥有关。
29.根据权利要求27所述的装置,其特征在于,所述第三加密信息包括:第六参数M6和第七参数M7;
其中,所述M6与所述第二存储区的信息有关,所述M7与所述第二密钥有关。
30.根据权利要求27-29任一项所述的装置,其特征在于,所述通信单元,还用于接收来自所述第二设备的第四加密信息,所述第四加密信息用于指示所述第一设备删除所述第一密钥;
所述处理单元,还用于验证所述第四加密信息;
在所述第四加密信息验证通过的情况下,所述处理单元,还用于删除所述第一密钥;
或者,在所述第四加密信息验证通过的情况下,所述处理单元,还用于删除所述第一密钥,将所述第二密钥从所述第二存储区转移到所述第一存储区,并解除所述第二存储区与所述第一存储区的关联关系。
31.根据权利要求30所述的装置,其特征在于,所述第四加密信息包括:第八参数M8和第九参数M9;
其中,所述M8与所述第二存储区的信息有关,所述M9与所述M8以及所述第二密钥有关。
32.根据权利要求18所述的装置,其特征在于,通信单元,还用于接收用于指示将所述第一存储区和所述第二存储区设置为配对的命令;
所述处理单元,还用于根据所述用于指示将所述第一存储区和所述第二存储区设置为配对的命令,第一设备基于所述硬件安全机制生成第一加密信息;所述第一加密信息用于指示所述第一存储区和所述第二存储区;
所述通信单元,还用于向第二设备发送第一消息;所述第一消息包括所述第一加密信息。
33.根据权利要求32所述的装置,其特征在于,所述通信单元,还用于接收所述用于指示更新密钥的命令;
根据所述用于指示更新密钥的命令,所述处理单元,还用于基于所述硬件安全机制生成第二加密信息;所述第二加密信息用于指示所述第一存储区、所述第二存储区以及所述第二密钥;
所述通信单元,还用于向所述第二设备发送第二消息,所述第二消息包括所述第二加密信息;
所述通信单元,还用于接收来自所述第二设备的第三加密信息;所述第三加密信息用于指示所述第二设备完成所述第二密钥的存储;
所述处理单元,还用于验证所述第三加密信息;
在所述第三加密信息验证通过的情况下,所述处理单元,还用于确定所述第二密钥更新成功。
34.根据权利要求33所述的装置,其特征在于,所述通信单元,还用于向所述第二设备发送第四加密信息;所述第四加密信息用于指示所述第一设备删除所述第一密钥。
35.一种电子设备,其特征在于,包括:至少一个处理器,所述处理器用于调用存储器中的程序,以执行如权利要求1-17任一项所述的方法中处理的步骤。
36.一种电子设备,其特征在于,包括:至少一个处理器和接口电路,所述接口电路用于为所述至少一个处理器提供信息输入和/或信息输出,所述至少一个处理器用于执行权利要求1-17任一项所述的方法。
37.一种芯片,其特征在于,包括至少一个处理器和接口;
所述接口,用于为所述至少一个处理器提供程序指令或者数据;
所述至少一个处理器用于执行所述程序行指令,以实现如权利要求1-17任一项所述的方法。
38.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述指令被执行时,使得计算机执行如权利要求1-17任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/090439 WO2022226819A1 (zh) | 2021-04-28 | 2021-04-28 | 密钥处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114365450A CN114365450A (zh) | 2022-04-15 |
CN114365450B true CN114365450B (zh) | 2023-03-21 |
Family
ID=81106031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180005221.6A Active CN114365450B (zh) | 2021-04-28 | 2021-04-28 | 密钥处理方法和装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4322467A4 (zh) |
CN (1) | CN114365450B (zh) |
WO (1) | WO2022226819A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118250685B (zh) * | 2024-05-30 | 2024-08-02 | 江西斐耳科技有限公司 | 一种应用于电子设备的密钥管理方法及系统 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09319673A (ja) * | 1996-05-27 | 1997-12-12 | Matsushita Electric Works Ltd | 暗号鍵更新方法およびそのシステム |
JP4201430B2 (ja) * | 1999-04-16 | 2008-12-24 | 富士通株式会社 | 光加入者線終端装置 |
KR102015859B1 (ko) * | 2012-11-16 | 2019-08-30 | 한국전자통신연구원 | Rfid 태그 및 rfid 태그의 키 갱신 방법 |
CN103346885B (zh) * | 2013-06-26 | 2016-02-24 | 飞天诚信科技股份有限公司 | 一种令牌设备的激活方法 |
JP6192673B2 (ja) * | 2015-03-04 | 2017-09-06 | Kddi株式会社 | 鍵管理システム、鍵管理方法およびコンピュータプログラム |
US9792229B2 (en) * | 2015-03-27 | 2017-10-17 | Intel Corporation | Protecting a memory |
JP6683588B2 (ja) * | 2016-11-10 | 2020-04-22 | Kddi株式会社 | 再利用システム、サーバ装置、再利用方法、及びコンピュータプログラム |
US20190068361A1 (en) * | 2017-08-30 | 2019-02-28 | Ford Global Technologies, Llc | In-vehicle group key distribution |
TWI674778B (zh) * | 2018-11-01 | 2019-10-11 | 財團法人資訊工業策進會 | 車輛資訊安全監控裝置 |
EP4106371A4 (en) * | 2020-03-13 | 2023-03-08 | Huawei Technologies Co., Ltd. | COMMUNICATION METHOD, APPARATUS AND SYSTEM |
-
2021
- 2021-04-28 CN CN202180005221.6A patent/CN114365450B/zh active Active
- 2021-04-28 WO PCT/CN2021/090439 patent/WO2022226819A1/zh active Application Filing
- 2021-04-28 EP EP21938305.6A patent/EP4322467A4/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4322467A1 (en) | 2024-02-14 |
WO2022226819A1 (zh) | 2022-11-03 |
CN114365450A (zh) | 2022-04-15 |
EP4322467A4 (en) | 2024-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220408261A1 (en) | Wireless access credential system | |
US11985238B2 (en) | Vehicle-mounted device upgrade method and related device | |
EP3926500B1 (en) | Device upgrade method and related device | |
CN113056898B (zh) | 获取密钥的方法、装置及密钥管理系统 | |
KR102450811B1 (ko) | 차량 내부 네트워크의 키 관리 시스템 | |
CN105187376A (zh) | 车联网中汽车内部网络的安全通信方法 | |
WO2022160124A1 (zh) | 一种服务授权管理方法及装置 | |
US11516194B2 (en) | Apparatus and method for in-vehicle network communication | |
CN109921908B (zh) | 一种can总线身份认证方法及身份认证系统 | |
AU2021319660B2 (en) | Method, system and apparatus for determining user plane security algorithm | |
CN107968707B (zh) | 一种用于对密钥进行分类存储的方法及系统 | |
CN114365450B (zh) | 密钥处理方法和装置 | |
WO2023279283A1 (zh) | 建立车辆安全通信的方法、车辆、终端及系统 | |
CN111786987B (zh) | 一种任务下发方法、装置、系统及设备 | |
EP3902198A1 (en) | Device and method for updating immobilizer token in digital key sharing system | |
CN114785532B (zh) | 一种基于双向签名认证的安全芯片通信方法及装置 | |
CN115426650A (zh) | 一种车辆控制方法、系统、介质及车辆 | |
CN113115308B (zh) | 用于车载单元的二次发行方法、认证方法和相关产品 | |
WO2021145234A1 (ja) | 自動バレーパーキングシステム | |
CN115706668A (zh) | 一种设备注册方法和物联网系统 | |
CN112214753A (zh) | 一种认证方法及装置、电子设备、存储介质 | |
CN117749355A (zh) | 一种通信方法及相关装置 | |
WO2022241799A1 (zh) | 一种密钥生成方法及装置 | |
JP2019047281A (ja) | 鍵管理システム | |
CN115514610B (zh) | 一种基于mqtt的物联网构建多联机的方法 |
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 |