KR20210132216A - 동작 동안 긴급 차량의 아이덴티티 검증 - Google Patents
동작 동안 긴급 차량의 아이덴티티 검증 Download PDFInfo
- Publication number
- KR20210132216A KR20210132216A KR1020217034177A KR20217034177A KR20210132216A KR 20210132216 A KR20210132216 A KR 20210132216A KR 1020217034177 A KR1020217034177 A KR 1020217034177A KR 20217034177 A KR20217034177 A KR 20217034177A KR 20210132216 A KR20210132216 A KR 20210132216A
- Authority
- KR
- South Korea
- Prior art keywords
- key
- vehicle
- secret
- computing device
- identity
- Prior art date
Links
- 238000012795 verification Methods 0.000 title description 60
- 230000015654 memory Effects 0.000 claims abstract description 226
- 238000000034 method Methods 0.000 claims abstract description 151
- 230000004044 response Effects 0.000 claims abstract description 48
- 238000004891 communication Methods 0.000 claims description 126
- 238000003860 storage Methods 0.000 claims description 47
- 230000009471 action Effects 0.000 claims description 16
- 230000008859 change Effects 0.000 claims description 11
- 238000012790 confirmation Methods 0.000 claims description 5
- 230000003213 activating effect Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 79
- 230000006870 function Effects 0.000 description 72
- 239000010410 layer Substances 0.000 description 67
- 230000008569 process Effects 0.000 description 47
- 230000004224 protection Effects 0.000 description 33
- 230000007246 mechanism Effects 0.000 description 30
- 238000013459 approach Methods 0.000 description 26
- 101100453289 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) JSN1 gene Proteins 0.000 description 24
- 238000004519 manufacturing process Methods 0.000 description 19
- 101100024116 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MPT5 gene Proteins 0.000 description 18
- 101100138725 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PUF2 gene Proteins 0.000 description 18
- 238000002347 injection Methods 0.000 description 16
- 239000007924 injection Substances 0.000 description 16
- 238000012360 testing method Methods 0.000 description 16
- 101150070699 PUF3 gene Proteins 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 13
- 101100340317 Arabidopsis thaliana IDL1 gene Proteins 0.000 description 12
- 101100138728 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PUF4 gene Proteins 0.000 description 11
- 239000004065 semiconductor Substances 0.000 description 11
- 230000008901 benefit Effects 0.000 description 8
- 239000000243 solution Substances 0.000 description 8
- 238000009795 derivation Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 101000579425 Homo sapiens Proto-oncogene tyrosine-protein kinase receptor Ret Proteins 0.000 description 6
- 102100028286 Proto-oncogene tyrosine-protein kinase receptor Ret Human genes 0.000 description 6
- 230000001010 compromised effect Effects 0.000 description 6
- 238000012937 correction Methods 0.000 description 6
- 241001465754 Metazoa Species 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 229910052710 silicon Inorganic materials 0.000 description 4
- 239000010703 silicon Substances 0.000 description 4
- 230000032683 aging Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 101710088052 Ditrans,polycis-undecaprenyl-diphosphate synthase ((2E,6E)-farnesyl-diphosphate specific) Proteins 0.000 description 2
- 101100186820 Drosophila melanogaster sicily gene Proteins 0.000 description 2
- 101150102752 MTC2 gene Proteins 0.000 description 2
- 101710130822 Tritrans,polycis-undecaprenyl-diphosphate synthase (geranylgeranyl-diphosphate specific) Proteins 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000005672 electromagnetic field Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- -1 ... Proteins 0.000 description 1
- 102100034112 Alkyldihydroxyacetonephosphate synthase, peroxisomal Human genes 0.000 description 1
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 1
- 101100299648 Caenorhabditis elegans puf-5 gene Proteins 0.000 description 1
- 101000799143 Homo sapiens Alkyldihydroxyacetonephosphate synthase, peroxisomal Proteins 0.000 description 1
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 241000282376 Panthera tigris Species 0.000 description 1
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000000848 angular dependent Auger electron spectroscopy Methods 0.000 description 1
- 230000009118 appropriate response Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000000383 hazardous chemical Substances 0.000 description 1
- 230000003862 health status Effects 0.000 description 1
- 244000144980 herd Species 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000000696 magnetic material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003071 parasitic effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000005067 remediation Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/09—Arrangements for giving variable traffic instructions
- G08G1/0962—Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
- G08G1/0965—Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages responding to signals from another vehicle, e.g. emergency vehicle
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/01—Detecting movement of traffic to be counted or controlled
- G08G1/017—Detecting movement of traffic to be counted or controlled identifying vehicles
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/09—Arrangements for giving variable traffic instructions
- G08G1/0962—Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/09—Arrangements for giving variable traffic instructions
- G08G1/0962—Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
- G08G1/0967—Systems involving transmission of highway information, e.g. weather, speed limits
- G08G1/096708—Systems involving transmission of highway information, e.g. weather, speed limits where the received information might be used to generate an automatic action on the vehicle control
- G08G1/096725—Systems involving transmission of highway information, e.g. weather, speed limits where the received information might be used to generate an automatic action on the vehicle control where the received information generates an automatic action on the vehicle control
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/09—Arrangements for giving variable traffic instructions
- G08G1/0962—Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
- G08G1/0967—Systems involving transmission of highway information, e.g. weather, speed limits
- G08G1/096766—Systems involving transmission of highway information, e.g. weather, speed limits where the system is characterised by the origin of the information transmission
- G08G1/096791—Systems involving transmission of highway information, e.g. weather, speed limits where the system is characterised by the origin of the information transmission where the origin of the information is another vehicle
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- 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/321—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 a third party or a trusted authority
- H04L9/3213—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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- 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/3226—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 a predetermined code, e.g. password, passphrase or PIN
-
- 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/3226—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 a predetermined code, e.g. password, passphrase or PIN
- H04L9/3228—One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
-
- 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/3234—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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/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
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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
- H04L9/3273—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 for mutual authentication
-
- 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
- H04L9/3278—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 using physically unclonable functions [PUF]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
- H04W12/069—Authentication using certificates or pre-shared keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
- H04W12/106—Packet or message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/60—Context-dependent security
- H04W12/69—Identity-dependent
- H04W12/71—Hardware identity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/84—Vehicles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Atmospheric Sciences (AREA)
- Power Engineering (AREA)
- Business, Economics & Management (AREA)
- Emergency Management (AREA)
- Storage Device Security (AREA)
- Traffic Control Systems (AREA)
Abstract
방법은 제1 차량의 컴퓨팅 디바이스에 의해 호스트 디바이스로부터 명령을 수신하는 단계; 명령을 수신한 것에 응답하여, 메모리에 새로운 디바이스 비밀을 저장하는 단계; 컴퓨팅 디바이스에 의해, 새로운 디바이스 비밀을 사용하여 식별자, 인증서 및 공개 키를 포함하는 트리플을 생성하는 단계; 및 컴퓨팅 디바이스에 의해, 트리플을 제2 차량에 발송하는 단계를 포함하고, 제2 차량은 트리플을 사용하여 제1 차량의 아이덴티티를 검증하도록 구성된다.
Description
관련 출원
본 출원은 "동작 동안 긴급 차량의 아이덴티티 검증"이라는 제목으로 2019년 3월 25일에 출원된 미국 특허 출원 일련 번호 16/363,088에 대한 우선권을 주장하고, 이의 전체 개시가 본 출원에 참조로 통합된다.
본 출원은 Pisasale et al.에 의한 "시끄러운 환경에서의 키 생성 및 보안 저장"이라는 제목으로 2018년 5월 3일에 출원된 미국 정규 출원 일련 번호 15/970,660에 관한 것으로, 이 출원의 전체 내용은 마치 본 출원에 완전히 개시된 것처럼 참조로 통합된다.
본 출원은 Mondello et al.에 의한 "메시지 인증 코드를 이용한 물리적 복제 방지 기능"이라는 제목으로 2017년 12월 22일 출원된 미국 정규 출원 일련 번호 15/853,498에 관한 것으로, 이 출원의 전체 내용은 마치 본 출원에 완전히 개시된 것처럼 참조로 통합된다.
본 출원은 Mondello et al.에 의한 "모노토닉 카운터를 이용한 비밀키의 안전한 배포"라는 제목으로 2018년 4월 27일에 출원된 미국 정규 출원 일련 번호 15/965,731에 관한 것으로, 이 출원의 전체 내용은 마치 본 출원에 완전히 개시된 것처럼 참조로 통합된다.
기술 분야
본 출원에 개시된 적어도 일부 실시예는 전반적으로 컴퓨팅 디바이스에 대한 아이덴티티 검증에 관한 것으로, 보다 구체적으로 동작 동안 차량에 대한 아이덴티티 검증으로 한정되지는 않는다.
물리적 복제 방지 기능(PUF : physical unclonable function)은 예를 들어, 마이크로프로세서와 같은 반도체 디바이스에 대한 고유한 아이덴티티 역할을 할 수 있는 디지털 값을 제공한다. 예를 들어, PUF는 반도체 제조 동안에 자연적으로 발생하는 물리적 변화를 기반으로 하며, 이는 동일한 반도체 칩을 구별하는 것을 허용한다.
PUF는 전형적으로 암호화에 사용된다. PUF는 예를 들어, 물리적 구조로 구현된 물리적 엔티티일 수 있다. PUF는 종종 집적 회로에서 구현되며 전형적으로 높은 보안 요구 사항을 갖는 애플리케이션에서 사용된다. 예를 들어, PUF는 고유하고 위조 불가능한 디바이스 식별자(identifier)로 사용될 수 있다. PUF는 보안 키 생성을 위해 그리고 임의성의 소스로도 사용할 수 있다.
디바이스 아이덴티피케이션과 관련된 일 예에서, Microsoft® Azure® IoT 플랫폼은 Microsoft에서 제공되는 클라우드 서비스 세트이다. Azure® IoT 플랫폼은 DICE(Device Identity Composition Engine) 및 다양한 종류의 HSM(Hardware Security Modules)을 지원한다. DICE는 TCG(Trusted Computing Group)에서 곧 출시될 디바이스 아이덴티피케이션 및 증명 표준으로, 이는 제조업체가 실리콘 게이트를 사용하여 하드웨어 기반 디바이스 아이덴티피케이션을 생성하는 것을 가능하게 한다. HSM은 디바이스 아이덴티티를 보호하고 하드웨어 기반 디바이스 증명 및 제로 터치 프로비저닝(zero touch provisioning)과 같은 고급 기능을 제공하는데 사용된다.
DICE는 인증, 보안 부팅 및 원격 증명과 같은 보안 솔루션을 구축하는데 사용하기 위한 신뢰를 고착하기 위해 HSM 풋프린트(footprint)를 사용하는 확장 가능한 보안 프레임워크를 제공한다. DICE는 IoT 디바이스를 특성화하는 제약 컴퓨팅의 최신 환경에 유용하며 TCG(Trusted Computing Group’s) 및 TPM(Trusted Platform Module)과 같은 보다 전통적인 보안 프레임워크 표준에 대한 대안을 제공한다. Azure® IoT 플랫폼에는 일부 실리콘 공급업체의 HSM에서 DICE에 대한 HSM 지원이 있다.
신뢰 서비스와 관련된 일 예에서, RIoT(Robust Internet-of-Things)은 컴퓨팅 디바이스에 신뢰 서비스를 제공하기 위한 아키텍처이다. 신뢰 서비스는 디바이스 아이덴티티(identity), 증명(attestation) 및 데이터 무결성(data integrity)을 포함한다. RIoT 아키텍처는 멀웨어에 의해 손상된 디바이스에 대한 신뢰를 원격에서 재수립하는데 사용될 수 있다. 또한, RIoT 서비스는 매우 작은 디바이스에서도 저렴한 비용으로 제공될 수 있다.
보안 기술을 향상시키는 것은 현장에서 제품에 대한 보다 빈번한 소프트웨어 업데이트를 필요로 하게 되었다. 그러나, 이러한 업데이트는 사람의 개입 없이 관리 및 검증되어야 한다. RIoT는 이러한 기술적 문제를 해결하는데 사용될 수 있다.
RIoT는 많은 보안 시나리오에 대한 암호화 동작 및 키 관리를 위한 기반을 제공한다. 인증, 무결성 검증 및 데이터 보호에는 암호화 및 복호화를 위한 암호화 키 뿐만 아니라 데이터를 해시(hash) 및 서명하는 메커니즘이 필요하다. 대부분의 인터넷 연결 디바이스는 또한 암호화를 사용하여 다른 디바이스와의 통신을 보호한다.
RIoT에 의해 제공되는 암호화 서비스는 디바이스 아이덴티티, 데이터 보호 및 증명을 포함한다. 디바이스 아이덴티티와 관련하여, 디바이스는 전형적으로 암호화 키의 소유를 증명하여 자신을 인증한다. 디바이스와 관련된 키가 추출되고 복제되면 디바이스를 가장(impersonate)할 수 있다.
데이터 보호와 관련하여, 디바이스는 전형적으로 암호화를 사용하여 로컬에 저장된 데이터를 암호화하고 무결성을 보호한다. 암호화 키가 인증된 코드에만 액세스할 수 있는 경우, 인증되지 않은 소프트웨어는 데이터를 복호화하거나 수정할 수 없다.
증명과 관련하여, 디바이스는 때때로 실행 중인 코드와 보안 구성을 보고해야 할 필요가 있다. 예를 들어, 증명은 디바이스가 최신 코드를 실행하고 있음을 증명하는데 사용된다.
키가 소프트웨어에서만 관리되는 경우, 소프트웨어 컴포넌트의 버그로 인해 키 손상이 발생할 수 있다. 소프트웨어 전용 시스템의 경우, 키 손상 후 신뢰를 복원하는 주요 방법은 업데이트된 소프트웨어를 설치하고 디바이스에 대한 새 키를 프로비저닝하는 것이다. 이는 서버 및 모바일 디바이스에 시간이 많이 소요되며, 디바이스가 물리적으로 액세스할 수 없는 경우에는 불가능하다.
원격 재프로비저닝(re-provisioning)을 안전하게 하기 위한 일부 접근 방식은 하드웨어 기반 보안을 사용한다. 소프트웨어 레벨 공격을 통해 해커는 하드웨어로 보호되는(hardware-protected) 키를 사용할 수 있지만 추출할 수는 없으므로 하드웨어로 보호되는 키는 손상된 시스템의 안전한 재프로비저닝을 위한 유용한 빌딩 블록이다. TPM(Trusted Platform Module)은 키에 대한 하드웨어 보호를 제공하고 디바이스가 실행 중인 소프트웨어를 보고(증명)할 수 있도록 하는 보안 모듈의 일 예이다. 따라서, 손상된 TPM가 구비된 디바이스는 새 키를 안전하게 발급 받을 수 있고 증명 보고서(attestation report)를 제공할 수 있다.
TPM은 컴퓨팅 플랫폼(예를 들어, SoC 통합 및 프로세서 모드 격리 펌웨어 TPM 사용)에서 널리 이용 가능하다. 그러나, TPM은 종종 비실용적이다. 예를 들어, 작은 IoT 디바이스는 비용과 전력 요구 사항이 크게 증가하지 않고는 TPM을 지원할 수 없다.
RIoT는 소형 컴퓨팅 디바이스에 디바이스 보안을 제공하는데 사용될 수 있지만 임의의 프로세서 또는 컴퓨터 시스템에도 적용될 수 있다. RIoT 코어 외부의 소프트웨어 컴포넌트가 손상되면, RIoT는 보안 패치 및 재프로비저닝을 제공한다. RIoT는 또한 암호화 키 보호에 대해 다른 접근 방식을 사용한다. RIoT 프레임워크에서 사용되는 가장 보호된 암호화 키는 부팅하는 동안 잠시만 사용할 수 있다.
실시예는 유사한 도면 번호가 유사한 엘리먼트를 나타내는 첨부 도면의 도면에서 제한이 아니라 예시의 방식으로 예시된다.
도 1은 일 실시예에 따른 컴퓨팅 디바이스의 아이덴티티를 검증하는 호스트 디바이스를 도시한다.
도 2는 일 실시예에 따른 아이덴티티 컴포넌트 및 검증 컴포넌트를 갖는 예시적인 컴퓨팅 시스템을 도시한다.
도 3은 일 실시예에 따른 차량의 예시적인 컴퓨팅 디바이스를 도시한다.
도 4는 일 실시예에 따른 차량의 예시적인 컴퓨팅 디바이스와 통신하는 예시적인 호스트 디바이스를 도시한다.
도 5a는 일 실시예에 따른 호스트 디바이스에 대한 식별자, 인증서(certificate) 및 키를 생성하는 애플리케이션 보드를 도시한다.
도 5b는 일 실시예에 따른 계층(layer)을 사용하여 단계적으로 부팅하는 예시적인 컴퓨팅 시스템을 도시한다.
도 6은 일 실시예에 따른 비대칭 제너레이터를 사용하여 식별자, 인증서, 및 키를 생성하는 예시적인 컴퓨팅 디바이스를 도시한다.
도 7은 일 실시예에 따른 복호화 동작을 사용하여 컴퓨팅 디바이스의 아이덴티티를 검증하는 검증 컴포넌트를 도시한다.
도 8은 일 실시예에 따른 인증서를 검증하기 위한 예시적인 프로세스의 블록도를 도시한다.
도 9는 일 실시예에 따른 식별자, 인증서, 및 키를 사용하여 컴퓨팅 디바이스의 아이덴티티를 검증하는 방법을 도시한다.
도 10은 일 실시예에 따른 물리적 복제 방지 기능(PUF : physical unclonable function) 디바이스로부터 입력을 수신하는 메시지 인증 코드(MAC : message authentication code)의 출력으로부터 고유 키를 생성하기 위한 시스템을 도시한다.
도 11은 일 실시예에 따른 선택기 모듈에 의해 선택된 하나 이상의 PUF 디바이스로부터 입력을 수신하는 MAC의 출력으로부터 고유 키를 생성하기 위한 시스템을 도시한다.
도 12는 일 실시예에 따른 하나 이상의 PUF 디바이스로부터의 입력 및 모노토닉 카운터(monotonic counter)(및/또는 NONCE, 타임스탬프 등과 같은 다른 프레시니스 메커니즘(freshness mechanism)으로부터의 입력)로부터의 입력을 수신하는 MAC의 출력으로부터 고유 키를 생성하기 위한 시스템을 도시한다.
도 13은 일 실시예에 따른 하나 이상의 PUF로부터 제공된 하나 이상의 입력 값을 사용하는 MAC으로부터의 출력을 생성하기 위한 방법을 도시한다.
도 14는 일 실시예에 따른 세션 키를 생성하기 위해 추가적인 MAC을 추가하는 하나 이상의 PUF 디바이스로부터의 입력 및 모노토닉 카운터로부터의 입력(및/또는 NONCE, 타임 스탬프 등과 같은 다른 프레시니스 메커니즘으로부터의 입력)을 수신하는 MAC의 출력으로부터 루트 키(root key)를 생성하기 위한 시스템을 도시한다.
도 15는 일 실시예에 따른 난독화된 키를 비휘발성 메모리에 저장하기 위한 컴퓨팅 디바이스를 도시한다.
도 16은 일 실시예에 따른 난독화 프로세스 동안 생성된 중간 키의 예를 도시한다.
도 17은 일 실시예에 따른 도 16의 난독화 프로세스 동안 생성된 다른 중간 키의 예를 도시한다.
도 18은 일 실시예에 따른 난독화된 키를 생성하고 비휘발성 메모리에 저장하는 방법을 도시한다.
도 19는 일 실시예에 따른 키 주입에 기초하여 초기 키를 생성하고, 초기 키를 난독화하고, 난독화된 키를 비휘발성 메모리에 저장하기 위한 컴퓨팅 디바이스를 도시한다.
도 20은 일 실시예에 따른 물리적 복제 방지 기능(PUF)을 사용하여 아이덴티티를 생성하기 위한 컴퓨팅 디바이스를 도시한다.
도 21은 일 실시예에 따른 시스템 위조(tampering)가 발생했는지 여부를 결정하는데 사용하기 위해 시스템의 모노토닉 카운터에 의해 제공된 초기 값을 발송하는 시스템을 도시한다.
도 22는 일 실시예에 따른 물리적 복제 방지 기능(PUF)을 사용하여 컴퓨팅 디바이스에 대한 아이덴티티를 생성하기 위한 방법을 도시한다.
도 23은 일 실시예에 따른 하나 이상의 인증서를 사용하여 긴급 차량의 아이덴티티를 검증하는 주변 차량을 도시한다.
도 24는 일 실시예에 따른 식별자, 인증서 및 공개 키를 이용하여 차량의 아이덴티티를 검증하는 방법을 도시한다.
도 1은 일 실시예에 따른 컴퓨팅 디바이스의 아이덴티티를 검증하는 호스트 디바이스를 도시한다.
도 2는 일 실시예에 따른 아이덴티티 컴포넌트 및 검증 컴포넌트를 갖는 예시적인 컴퓨팅 시스템을 도시한다.
도 3은 일 실시예에 따른 차량의 예시적인 컴퓨팅 디바이스를 도시한다.
도 4는 일 실시예에 따른 차량의 예시적인 컴퓨팅 디바이스와 통신하는 예시적인 호스트 디바이스를 도시한다.
도 5a는 일 실시예에 따른 호스트 디바이스에 대한 식별자, 인증서(certificate) 및 키를 생성하는 애플리케이션 보드를 도시한다.
도 5b는 일 실시예에 따른 계층(layer)을 사용하여 단계적으로 부팅하는 예시적인 컴퓨팅 시스템을 도시한다.
도 6은 일 실시예에 따른 비대칭 제너레이터를 사용하여 식별자, 인증서, 및 키를 생성하는 예시적인 컴퓨팅 디바이스를 도시한다.
도 7은 일 실시예에 따른 복호화 동작을 사용하여 컴퓨팅 디바이스의 아이덴티티를 검증하는 검증 컴포넌트를 도시한다.
도 8은 일 실시예에 따른 인증서를 검증하기 위한 예시적인 프로세스의 블록도를 도시한다.
도 9는 일 실시예에 따른 식별자, 인증서, 및 키를 사용하여 컴퓨팅 디바이스의 아이덴티티를 검증하는 방법을 도시한다.
도 10은 일 실시예에 따른 물리적 복제 방지 기능(PUF : physical unclonable function) 디바이스로부터 입력을 수신하는 메시지 인증 코드(MAC : message authentication code)의 출력으로부터 고유 키를 생성하기 위한 시스템을 도시한다.
도 11은 일 실시예에 따른 선택기 모듈에 의해 선택된 하나 이상의 PUF 디바이스로부터 입력을 수신하는 MAC의 출력으로부터 고유 키를 생성하기 위한 시스템을 도시한다.
도 12는 일 실시예에 따른 하나 이상의 PUF 디바이스로부터의 입력 및 모노토닉 카운터(monotonic counter)(및/또는 NONCE, 타임스탬프 등과 같은 다른 프레시니스 메커니즘(freshness mechanism)으로부터의 입력)로부터의 입력을 수신하는 MAC의 출력으로부터 고유 키를 생성하기 위한 시스템을 도시한다.
도 13은 일 실시예에 따른 하나 이상의 PUF로부터 제공된 하나 이상의 입력 값을 사용하는 MAC으로부터의 출력을 생성하기 위한 방법을 도시한다.
도 14는 일 실시예에 따른 세션 키를 생성하기 위해 추가적인 MAC을 추가하는 하나 이상의 PUF 디바이스로부터의 입력 및 모노토닉 카운터로부터의 입력(및/또는 NONCE, 타임 스탬프 등과 같은 다른 프레시니스 메커니즘으로부터의 입력)을 수신하는 MAC의 출력으로부터 루트 키(root key)를 생성하기 위한 시스템을 도시한다.
도 15는 일 실시예에 따른 난독화된 키를 비휘발성 메모리에 저장하기 위한 컴퓨팅 디바이스를 도시한다.
도 16은 일 실시예에 따른 난독화 프로세스 동안 생성된 중간 키의 예를 도시한다.
도 17은 일 실시예에 따른 도 16의 난독화 프로세스 동안 생성된 다른 중간 키의 예를 도시한다.
도 18은 일 실시예에 따른 난독화된 키를 생성하고 비휘발성 메모리에 저장하는 방법을 도시한다.
도 19는 일 실시예에 따른 키 주입에 기초하여 초기 키를 생성하고, 초기 키를 난독화하고, 난독화된 키를 비휘발성 메모리에 저장하기 위한 컴퓨팅 디바이스를 도시한다.
도 20은 일 실시예에 따른 물리적 복제 방지 기능(PUF)을 사용하여 아이덴티티를 생성하기 위한 컴퓨팅 디바이스를 도시한다.
도 21은 일 실시예에 따른 시스템 위조(tampering)가 발생했는지 여부를 결정하는데 사용하기 위해 시스템의 모노토닉 카운터에 의해 제공된 초기 값을 발송하는 시스템을 도시한다.
도 22는 일 실시예에 따른 물리적 복제 방지 기능(PUF)을 사용하여 컴퓨팅 디바이스에 대한 아이덴티티를 생성하기 위한 방법을 도시한다.
도 23은 일 실시예에 따른 하나 이상의 인증서를 사용하여 긴급 차량의 아이덴티티를 검증하는 주변 차량을 도시한다.
도 24는 일 실시예에 따른 식별자, 인증서 및 공개 키를 이용하여 차량의 아이덴티티를 검증하는 방법을 도시한다.
본 출원의 적어도 일부 실시예는 하나 이상의 컴퓨팅 디바이스에 대한 아이덴티티 검증에 관한 것이다. 다양한 실시예에서, 호스트 디바이스는 메시지를 컴퓨팅 디바이스에 발송함으로써 컴퓨팅 디바이스의 아이덴티티를 검증한다. 컴퓨팅 디바이스는 메시지를 사용하여 호스트 디바이스로 발송되는 식별자, 인증서 및 키를 생성한다. 호스트 디바이스는 생성된 식별자, 인증서 및 키를 사용하여 컴퓨팅 디바이스의 아이덴티티를 검증한다.
다른 실시예는 PUF(physical unclonable function)을 사용하여 컴퓨팅 디바이스에 대한 아이덴티티를 생성하는 것에 관한 것이다. 이하에서 설명되는 다양한 실시예에서, 호스트 디바이스가 상기에서 설명된 아이덴티티를 검증하기 전에, 상기의 컴퓨팅 디바이스는 적어도 하나의 PUF를 사용하여 셀프 아이덴티티(self-identity)를 생성할 수 있다. 하나 이상의 PUF를 사용하여 아이덴티티를 생성하는 것에 관한 다양한 실시예는 "PUF를 사용하여 컴퓨팅 디바이스에 대한 아이덴티티 생성"이라는 제목의 아래 섹션에서 설명된다.
또 다른 실시예는 제1 차량에 아이덴티티를 할당하고, 제1 차량의 아이덴티티를 검증하기 위해 제2 차량을 사용하는 것에 관한 것이다. 일 실시예에서, 제1 차량은 긴급 차량(emergency vehicle)이다. 다른 실시예에서, 제1 차량은 동작 상태 및/또는 차량 클래스와 연관된 차량일 수 있다. 차량(예를 들어, 긴급 차량)의 아이덴티티 할당 및 검증에 관한 다양한 실시예는 "차량에 대한 아이덴티티 할당 및 검증"이라는 제목의 아래 섹션에 설명된다.
아이덴티티 검증과 관련된 일부 예들에서, 컴퓨팅 디바이스는 플래시 메모리 디바이스일 수 있다. 일부 예에서, 플래시 메모리는 컴퓨팅 시스템(예를 들어, 자율 주행 차량(autonomous vehicle)의 애플리케이션 컨트롤러)에 강력한 레벨의 보안 기능을 추가하기 위해 레버리지(leverage)된다.
플래시 메모리는 수많은 컴퓨터 시스템에서 사용된다. 직렬 NOR, 병렬 NOR, 직렬 NAND, 병렬 NAND, e.MMC, UFS 등을 포함하여 오늘날 다양한 유형의 플래시 메모리가 존재한다. 이러한 소켓은 다양한 산업 및 애플리케이션에 걸쳐 대부분의 임베디드 시스템에 사용된다.
예를 들어, 직렬 NOR는 의료 디바이스, 공장 자동화 보드, 자동차 ECU, 스마트 미터 및 인터넷 게이트웨이와 같은 광범위한 애플리케이션에서 사용된다. 칩셋 아키텍처(프로세서, 컨트롤러 또는 SoC), 운영 체제 및 이러한 애플리케이션 전반에 걸쳐 사용되는 공급망(supply chain)의 다양성을 감안할 때 플래시 메모리는 이러한 시스템의 공통 분모 빌딩 블록이다.
오늘날 컴퓨터 시스템 복원력은 전형적으로 디바이스에 통합되고 디바이스가 제공하는 보안 기능에 대한 솔루션에 의해 레저리지되는 신뢰 루트의 위치에 의해 특성화 된다. 신뢰 루트에 대한 더 많은 정보에 대하여는, NIST(National Institute of Technology)에서 만든 특별 간행물 800-164의 정의를 참조하라. 기존 산업은 하드웨어와 소프트웨어 능력을 혼합하여 시스템 레벨에서 다양한 신뢰 루트 구현을 사용하므로 접근 방식의 단편화와 보안 레벨의 혼란이라는 기술적 문제가 발생한다. 이 난해한 옵션 어레이는 중요한 코드와 데이터가 저장되는 비휘발성 메모리를 보호하는 방법에 대한 핵심 제한 사항도 있다.
기존 접근 방식은 프로세서 및 하드웨어 보안 모듈(HSM : hardware security module)과 같은 다른 보안 엘리먼트에 의존하여 시스템에 중요한 보안 서비스를 제공한다. 이로 인해 개별 플래시 메모리 컴포넌트가 시스템에 중요한 코드와 데이터를 저장하는 많은 시스템의 최저 부팅 레벨에서 보안 격차(security gap)가 발생했다. 플래시(flash)는 많은 해커가 더 높은 레벨의 코드로부터 스스로를 은폐하고 제거에 저항할 수 있는 APT(Advanced Persistent Threats)를 만드는 표적이 되었다. 대부분의 경우, 플래시 메모리는 새로운 악성 코드로 재이미지화(re-image)되거나 재기록되고, 이는 해당 디바이스의 무결성을 훼손한다.
아이덴티티의 검증에 관한 본 개시의 다양한 실시예는 상술한 기술적 문제에 대한 기술적 해결책을 제공한다. 일부 실시예에서, 컴퓨팅 디바이스는 하드웨어 기반 신뢰 루트를 플래시 메모리 디바이스에 통합하여 IoT 디바이스에 대한 강력한 암호화 아이덴티티 및 헬스(health) 관리를 가능하게 한다. 메모리내 필수 보안 프리미티브(primitive)를 이동시킴으로써 메모리 자체에 저장된 코드와 데이터의 무결성을 보호하는 것이 더 간단해진다. 이 접근 방식은 구현의 복잡성과 비용을 최소화하면서 시스템 레벨 보안을 크게 향상시킬 수 있다.
일 실시예에서, 새로운 IoT 디바이스 관리 능력은 플래시 메모리 및 관련 소프트웨어를 사용하여 Microsoft® Azure® IoT 클라우드에 의한 디바이스 온보딩 및 관리를 인에이블(enable) 함으로써 플래시 메모리를 레버리지한다. 일 예에서, 솔루션은 중요한 디바이스 프로비저닝 서비스(예를 들어, Azure IoT Hub DPS(Device Provisioning Service))의 기반이 되는 암호화 아이덴티티를 제공한다. 일 예에서, 인에이블된 메모리와 함께 이 DPS는 올바른 IoT 허브 뿐만 아니라 다른 서비스에 대한 디바이스의 제로 터치 프로비저닝을 가능하게 할 수 있다.
일부 실시예에서, 상기 능력을 구현하기 위해, DICE(Device Identity Composition Engine)가 사용된다(DICE는 TCG(Trusted Computing Group)로부터의 곧 나올 표준이다). 일 예에서, 인에이블된 메모리는 신뢰할 수 있는 하드웨어만 Microsoft Azure IoT 클라우드에 대한 액세스 권한을 얻을 수 있도록 허용한다. 일 예에서, IoT 디바이스의 헬스와 아이덴티티는 전형적으로 중요한 코드가 저장되는 메모리에서 검증된다. 각각의 IoT 디바이스의 고유한 아이덴티티는 이제 부팅 프로세스에서 시작하여 새로운 레벨에서 종단간(end-to-end) 디바이스 무결성을 제공할 수 있다. 이를 통해 하드웨어 기반 디바이스 증명 및 프로비저닝과 같은 추가 기능은 물론 필요한 경우 디바이스의 관리 교정(remediation)을 가능하게 할 수 있다.
일 실시예에서, 방법은 컴퓨팅 디바이스(예를 들어, 직렬 NOR 플래시 메모리 디바이스)에 의해 호스트 디바이스(예를 들어, CPU, GPU, FPGA 또는 차량의 애플리케이션 컨트롤러)로부터 메시지를 수신하는 단계; 컴퓨팅 디바이스에 의해, 식별자(예를 들어, 공개 식별자 IDL1 공개), 인증서(예를 들어, IDL1 인증서), 및 키(예를 들어, KL1 공개)를 생성하는 단계로서, 식별자는 컴퓨팅 디바이스의 아이덴티티와 연관되고, 인증서는 메시지를 사용하여 생성되는, 상기 생성하는 단계; 및 컴퓨팅 디바이스에 의해, 식별자, 인증서, 및 키를 호스트 디바이스에 발송하는 단계를 포함하고, 호스트 디바이스는 식별자, 인증서, 및 키를 사용하여 컴퓨팅 디바이스의 아이덴티티를 검증하도록 구성된다.
일부 실시예에서, 상기의 컴퓨팅 디바이스(예를 들어, 플래시 메모리 디바이스)는 DICE-RIoT 기능을 통합하며, 이는 상술된 식별자, 인증서 및 키를 생성하는데 사용되고, 호스트 디바이스에 의해 사용되어 컴퓨팅 디바이스의 아이덴티티를 검증한다. 일 예에서, 컴퓨팅 디바이스는 DICE-RIoT 프로토콜의 계층 간의 아이덴티피케이션 단계(identification step)의 시퀀스가 기반이 되는 프리미티브 키 역할을 하는 디바이스 비밀을 저장한다. 일 예에서, DICE-RIoT 기능의 계층 L0 및 L1은 하드웨어 및/또는 소프트웨어를 사용하여 컴퓨팅 디바이스에서 구현된다. 일 예에서, 계층 L0은 하드웨어에서만 구현된다.
도 1은 일 실시예에 따른 컴퓨팅 디바이스(141)의 아이덴티티를 검증하는 호스트 디바이스(151)를 도시한다. 호스트 디바이스(151)는 컴퓨팅 디바이스(141)에 메시지를 발송한다. 일 실시예에서, 호스트 디바이스(151)는 재생(replay) 공격을 피하기 위해 컴퓨팅 디바이스(141)에 메시지를 발송하는데 사용하기 위한 프레시니스(freshness)를 생성하는 프레시니스 메커니즘(미도시)을 포함한다. 일 예에서, 컴퓨팅 디바이스(141)에 발송된 각각의 메시지는 모노토닉 카운터에 의해 생성된 프레시니스를 포함한다.
일 예에서, 메시지는 빈 스트링(string), 기존의 알려진 스트링(예를 들어, 호스트 디바이스(151)의 제조자 또는 운영자에게 알려진 영숫자 스트링)이거나, 다른 값(예를 들어, 컴퓨팅 디바이스에 할당된 아이덴티티 값)일 수 있다. 일 예에서, 메시지는 디바이스의 고유 아이덴티티(UID)이다.
메시지 수신에 응답하여, 컴퓨팅 디바이스(141)는 식별자, 인증서, 및 키를 생성한다. 식별자는 컴퓨팅 디바이스(141)의 아이덴티티와 연관된다. 컴퓨팅 디바이스(141)는 아이덴티티 컴포넌트(147)의 동작 및/또는 컴퓨팅 디바이스(141)의 다른 기능을 제어하는 하나 이상의 프로세서(143)를 포함한다.
식별자, 인증서, 및 키는 아이덴티티 컴포넌트(147)에 의해 생성되고 디바이스 비밀(device secret)(149)에 기초한다. 일 예에서, 디바이스 비밀(149)은 컴퓨팅 디바이스(141)의 메모리에 저장된 UDS(unique device secret)이다. 일 예에서, 아이덴티티 컴포넌트(147)는 DICE-RIoT 프로토콜의 구현을 위한 프리미티브 키로서 UDS를 사용한다. 식별자, 인증서 및 키는 DICE-RIoT 프로토콜의 계층 L1으로부터의 출력이다(예를 들어, 도 6 참조). 일 실시예에서, 계층 L1의 아이덴티티는 컴퓨팅 디바이스(141) 자체, 컴퓨팅 디바이스(141)의 제조업체, 컴포넌트로서 컴퓨팅 디바이스(141)를 포함하는 사물의 제조업체, 및/또는 컴퓨팅 디바이스(141)의 메모리에 저장된 애플리케이션 또는 다른 소프트웨어의 아이덴티티에 대응한다. 일 예에서, 애플리케이션 아이덴티티(예를 들어, ID 번호)는 휴대폰, TV, STB 등에 대한 것이며, 문자와 숫자의 고유한 조합이 사물을 식별하는데 사용된다.
일 예에서, 계층 L1의 아이덴티티는 ASCII 스트링이다. 예를 들어, 아이덴티티는 사물 이름과 연쇄된 제조업체 이름일 수 있다(예를 들어, LG | TV_model_123_year_2018 등). 일 예에서, 아이덴티티는 16진법 형식으로 표현될 수 있다(예를 들어, 53 61 6D 73 75 6E 67 20 7C 20 54 56 5F 6D 6F 64 65 6C 5F 31 32 33 5F 79 65 61 72 5F 32 30 31 38).
일 실시예에서, 제조업체는 생산되고 있는 아이템의 클래스 또는 세트에 대해 UDS를 사용할 수 있다. 다른 실시예에서, 각각의 엔트리는 고유한 UDS를 가질 수 있다. 예를 들어, TV의 UDS는 UDS = 0x12234…4444가 될 수 있고 랩톱의 UDS는 UDS = 0xaabb…00322가 될 수 있다.
일 실시예에서, 디바이스 비밀(149)은 메모리(145)에 컴퓨팅 디바이스(141)에 의해 저장된 비밀 키이다. 아이덴티티 컴포넌트(147)는 도출된 비밀을 생성하기 위해 메시지 인증 코드(MAC)에 대한 입력으로서 비밀 키를 사용한다. 일 예에서, 도출된 비밀은 DICE-RIoT 프로토콜에서 FDS(fused derived secret)이다.
일 예에서, 메모리(145)는 컴퓨팅 디바이스(141)를 부팅하기 위한 초기 부트 코드를 저장하는 판독 전용 메모리(ROM)를 포함한다. FDS는 부팅 동작 동안 프로세서(143)에 의해 초기 부트 코드에 제공되는 키이다. 일 예에서, ROM은 DICE-RIoT 프로토콜의 계층 L0에 해당한다.
호스트 디바이스(151)는 검증 컴포넌트(153)에 대한 입력으로서 식별자, 인증서 및 키를 사용하며, 이는 컴퓨팅 디바이스(141)의 아이덴티티를 검증한다. 일 실시예에서, 검증 컴포넌트(153)는 결과를 제공하기 위해 식별자를 사용하여 적어도 하나의 복호화 동작을 수행한다. 결과는 컴퓨터 디바이스(141)의 아이덴티티가 유효한지 여부를 결정하기 위해 키와 비교된다. 그렇다면, 호스트 디바이스(151)는 컴퓨팅 디바이스(141)로부터 수신된 키를 사용하여 컴퓨팅 디바이스(141)와 추가 통신을 수행한다. 예를 들어, 호스트 디바이스(151)가 "트리플(triple)"(식별자, 인증서 및 키)을 검증하면, 키는 컴퓨팅 디바이스(141)와 호스트 디바이스(151) 사이에서 교환되는 임의의 다른 정보를 증명하는데 사용될 수 있다.
일 실시예에서, 디지털 아이덴티피케이션은 수많은 "사물"에 (예를 들어, 사물 인터넷에 따라) 할당된다. 일 예에서, 사물은 차량과 같은 물리적 객체 또는 차량 내부에 존재하는 물리적 아이템이다. 일 예에서, 사물은 사람이나 동물이다. 예를 들어, 각각의 사람이나 동물에게 고유한 디지털 식별자를 할당할 수 있다.
일부 경우에, 제품 제조업체는 각각의 제품이 정품임을 증명할 수 있기를 원한다. 현재, 이 문제는 신뢰할 수 있는 판매자에게만 구매하거나 구매한 것이 정품임을 보증하는 일종의 법적 인증서를 갖는 다른 사람에게서 사물을 구매함으로써 해결된다. 다만, 사물이 도용하는 경우, 전자 아이덴티티가 없는 경우에는 사물을 부적절하게 사용하지 않도록 차단하거나 로컬화하기 어렵다. 일 예에서, 로컬화(localization)는 사물이 공공 인프라와 상호 작용하려고 할 때 아이덴티티를 기반으로 한다. 일 예에서, 차단(blocking)은 공공 인프라를 사용하려는 사물의 아이덴티티를 증명할 수 없다는 것을 기반으로 한다.
일 실시예에서, 컴퓨팅 디바이스(141)는 고유 서명을 컴퓨팅 디바이스(141)에 대응하는 신뢰 체인에 연관시키기 위해 아이덴티티 컴포넌트(147)를 사용하여 DICE-RIoT 프로토콜을 구현한다. 컴퓨팅 디바이스(141)는 계층 L0 및 L1을 수립한다. 신뢰 체인은 계층 L2, …를 수립하는 호스트 디바이스(151)에 의해 계속된다. 일 예에서, 고유 식별자는 정의된 환경(예를 들어, 지리적 파라미터에 의해 정의된 신뢰 구역)의 모든 객체, 사람 및 동물에 할당될 수 있다.
일 실시예에서, 컴퓨팅 디바이스(141)는 아이덴티티가 할당되기를 원하는 사물의 컴포넌트이다. 예를 들어, 사물은 컴퓨팅 디바이스(141)를 포함하는 자율 주행 차량일 수 있다. 예를 들어, 컴퓨팅 디바이스(141)는 차량의 애플리케이션 컨트롤러에 의해 사용되는 플래시 메모리일 수 있다.
컴퓨팅 디바이스(141)가 제조될 때, 제조업체는 UDS를 메모리(145)에 주입할 수 있다. 일 예에서, UDS는 컴퓨팅 디바이스(141)를 사용하여 추가적인 제조 동작을 수행할 고객과 합의되고 공유될 수 있다. 다른 예에서, UDS는 원래 제조업체에서 랜덤하게 생성한 다음 보안 인프라스트럭처 (예를 들어, 인터넷과 같은 네트워크를 통해)를 사용하여 고객에게 전달될 수 있다.
일 예에서, 고객은 컴퓨팅 디바이스(141)를 통합하는 차량의 제조업체일 수 있다. 많은 경우에, 차량 제조업체는 컴퓨팅 디바이스(141)의 판매자에게 알려지지 않도록 UDS를 변경하기를 원한다. 이러한 경우에, 고객은 호스트 디바이스(151)에 의해 컴퓨팅 디바이스(141)에 제공되는 인증된 교체 명령을 사용하여 UDS를 교체할 수 있다.
일부 실시예에서, 고객은 고객 불변 정보를 컴퓨팅 디바이스(141)의 메모리(145)에 주입할 수 있다. 일 예에서, 불변 정보는 고유한 FDS를 생성하는데 사용되며, 차별화 요소(differentiator)로서 단독으로 사용되지는 않는다. 고객 불변 정보는 고객에 의해 제조된 다양한 객체를 구별하는데 사용된다. 예를 들어, 고객 불변 정보는 프리미티브 정보를 정의하기 위한 문자 및/또는 숫자의 조합일 수 있다 (예를 들어, 날짜, 시간, 로트 위치(lot position), 웨이퍼 위치, 웨이퍼 내 x, y 위치 등의 정보 중 일부 또는 전부의 조합).
예를 들어, 많은 경우에, 불변 정보는 또한 사용자(예를 들어, 제조업체로부터 디바이스를 받는 고객)에 의해 수행된 암호화 피처 구성으로부터의 데이터를 포함한다. 이 구성 또는 설정은 인증된 명령(실행될 키에 대한 지식이 필요한 명령)을 통해서만 수행될 수 있다. 사용자는 키에 대한 지식을 가지고 있다(예를 들어, 제조업체로부터 보안 인프라스트럭처를 통해 키를 제공받은 경우). 불변 정보는 디바이스의 고유 아이덴티티(UID)와 다른 컴퓨팅 디바이스의 암호화 아이덴티티 형태를 나타낸다. 일 예에서, 정보의 불변 세트에 암호화 구성을 포함하는 것은 불변 정보를 자가 맞춤화하는데 유용한 도구를 사용자에게 제공한다.
일 실시예에서, 컴퓨팅 디바이스(141)는 프레시니스를 생성하는 프레시니스 메커니즘을 포함한다. 프레시니스는 호스트 디바이스(151)로 발송될 때 식별자, 인증서 및 키와 함께 제공될 수 있다. 프레시니스는 또한 호스트 디바이스(151)와의 다른 통신과 함께 사용될 수 있다.
일 실시예에서, 컴퓨팅 디바이스(141)는 애플리케이션 보드(application board) 상의 컴포넌트이다. 애플리케이션 보드의 다른 컴포넌트(미도시)는 디바이스 비밀(149)에 대한 지식(예를 들어, 주입된 UDS에 대한 지식)을 사용하여 컴퓨팅 디바이스(141)의 아이덴티티를 검증할 수 있다. 컴포넌트는 컴퓨팅 디바이스(141)가 UDS의 소유를 증명하기 위해 메시지 인증 코드를 사용하여 출력을 생성하는 것을 요청한다. 예를 들어, 메시지 인증 코드는 다음과 같을 수 있다 : HMAC(UDS, "애플리케이션 보드 메시지 | 프레시니스")
다른 실시예에서, FDS는 또한 디바이스의 소유(예를 들어, 비밀 키(들)에 대한 지식)를 증명하기 위한 기준으로서 사용될 수 있다. FDS는 이 방식으로 UDS에서 도출된다 : FDS = HMAC-SHA256 [UDS, SHA256("L1의 아이덴티티")]
따라서, 메시지 인증 코드는 다음과 같을 수 있다 : HMAC(FDS, "애플리케이션 보드 메시지 | 프레시니스")
도 2는 일 실시예에 따른 아이덴티티 컴포넌트(107) 및 검증 컴포넌트(109)를 갖는 예시적인 컴퓨팅 시스템을 도시한다. 호스트 시스템(101)은 버스(103)를 통해 메모리 시스템(105)과 통신한다. 메모리 시스템(105)의 프로세싱 디바이스(111)는 비휘발성 메모리(121)의 메모리 영역(111, 113, … , 119)에 대한 판독/기록 액세스 권한을 갖는다. 일 예에서, 호스트 시스템(101)은 또한 휘발성 메모리(123)로부터 데이터를 판독하고 휘발성 메모리에 데이터를 기록한다. 일 예에서, 아이덴티티 컴포넌트(107)는 DICE-RIoT 프로토콜의 계층 L0 및 L1을 지원한다. 일 예에서, 비휘발성 메모리(121)는 부트 코드를 저장한다.
검증 컴포넌트(109)는 메모리 시스템(105)의 아이덴티티를 검증하는데 사용된다. 검증 컴포넌트(109)는 예를 들어, 상술한 바와 같이, 호스트 시스템(101)으로부터 호스트 메시지를 수신한 것에 응답하여 아이덴티티 컴포넌트(107)에 의해 생성된 식별자, 인증서, 및 키를 포함하는 트리플을 사용한다.
아이덴티티 컴포넌트(107)는 도 1의 아이덴티티 컴포넌트(147)의 예이다. 검증 컴포넌트(109)는 도 1의 검증 컴포넌트(153)의 예이다.
메모리 시스템(105)은 키 저장소(157) 및 키 제너레이터(159)를 포함한다. 일 예에서, 키 저장소(157)는 루트 키, 세션 키, UDS(DICE-RIoT), 및/또는 메모리 시스템(105)에 의한 암호화 동작에 사용되는 다른 키를 저장할 수 있다.
일 예에서, 키 제너레이터(159)는 검증 컴포넌트(109)에 의한 검증에 사용하기 위해 호스트 시스템(101)으로 발송된 공개 키(public key)를 생성한다. 공개 키는 전술한 바와 같이 식별자 및 인증서도 포함하는 트리플의 일부로서 발송된다.
메모리 시스템(105)은 프레시니스 제너레이터(155)를 포함한다. 일 예에서, 프레시니스 제너레이터(155)는 인증된 명령에 사용될 수 있다. 일 예에서, 다수의 프레시니스 제너레이터(155)가 사용될 수 있다. 일 예에서, 프레시니스 제너레이터(155)는 호스트 시스템(101)에 의해 사용 가능하다.
일 예에서, 프로세싱 디바이스(111) 및 메모리 영역들(111, 113, …, 119)은 동일한 칩 또는 다이 상에 있다. 일부 실시예에서, 메모리 영역은 기계 학습 프로세싱 동안 호스트 시스템(101) 및/또는 프로세싱 디바이스(111)에 의해 사용되는 데이터 또는 호스트 시스템(101) 또는 프로세싱 디바이스(111) 상에서 실행하는 소프트웨어 프로세스(들)에 의해 생성된 다른 런타임 데이터를 저장한다.
컴퓨팅 시스템은 호스트 시스템(101)으로부터 새로운 데이터를 레코딩하기 위해 메모리 영역(111)(예를 들어, 플래시 메모리의 레코딩 세그먼트)을 선택하는 메모리 시스템(105)에 기록 컴포넌트를 포함할 수 있다. 컴퓨팅 시스템(100)은 메모리 영역(111)의 선택을 적어도 가능하게 하기 위해 메모리 시스템(105)의 기록 컴포넌트(107)와 조정하는 호스트 시스템(101)의 기록 컴포넌트를 더 포함할 수 있다.
일 예에서, 휘발성 메모리(123)는 호스트 시스템(101)의 프로세싱 디바이스(미도시)를 위한 시스템 메모리로서 사용된다. 일 실시예에서, 호스트 시스템(101)의 프로세스는 데이터를 레코딩하기 위한 메모리 영역을 선택한다. 일 예에서, 호스트 시스템(101)은 자율 주행 차량에서 실행되는 센서 및/또는 소프트웨어 프로세스로부터의 데이터에 부분적으로 기초하여 메모리 영역을 선택할 수 있다. 일 예에서, 전술한 데이터는 호스트 시스템(101)에 의해 메모리 영역을 선택하는 프로세싱 디바이스(111)에 제공된다.
일부 실시예에서, 호스트 시스템(101) 또는 프로세싱 디바이스(111)는 아이덴티티 컴포넌트(107) 및/또는 검증 컴포넌트(109)의 적어도 일부를 포함한다. 다른 실시예에서 또는 조합하여, 프로세싱 디바이스(111) 및/또는 호스트 시스템(101)의 프로세싱 디바이스는 아이덴티티 컴포넌트(107) 및/또는 검증 컴포넌트(109)의 적어도 일부를 포함한다. 예를 들어, 프로세싱 디바이스(111) 및/또는 호스트 시스템(101)의 프로세싱 디바이스는 아이덴티티 컴포넌트(107) 및/또는 검증 컴포넌트(109)를 구현하는 로직 회로부를 포함할 수 있다. 예를 들어, 호스트 시스템(101)의 컨트롤러 또는 프로세싱 디바이스(예를 들어, CPU, FPGA 또는 GPU)는 본 출원에서 설명된 아이덴티티 컴포넌트(107) 및/또는 검증 컴포넌트(109)의 동작을 수행하기 위해 메모리에 저장된 명령을 실행하도록 구성될 수 있다.
일부 실시예에서, 아이덴티티 컴포넌트(107)는 메모리 시스템(105)에 배치된 집적 회로 칩에서 구현된다. 다른 실시예에서, 호스트 시스템(101)의 검증 컴포넌트(109)는 호스트 시스템(101), 디바이스 드라이버 또는 애플리케이션의 운영 체제의 일부이다.
메모리 시스템(105)의 예는 메모리 버스를 통해 중앙 프로세싱 유닛(CPU)에 연결된 메모리 모듈이다. 메모리 모듈의 예는 DIMM(Dual In-Line Memory Module), SO-DIMM(Small Outline DIMM), NVDIMM(Non-Volatile Dual In-Line Memory Module) 등을 포함한다. 일부 실시예에서, 메모리 시스템은 메모리 기능과 저장 기능을 모두 제공하는 하이브리드 메모리/저장 시스템일 수 있다. 일반적으로, 호스트 시스템은 하나 이상의 메모리 영역을 포함하는 메모리 시스템을 활용할 수 있다. 호스트 시스템은 메모리 시스템에 저장될 데이터를 제공할 수 있고, 메모리 시스템으로부터 검색될 데이터를 요청할 수 있다. 일 예에서, 호스트는 휘발성 및 비휘발성 메모리를 포함하는 다양한 유형의 메모리에 액세스할 수 있다.
호스트 시스템(101)은 차량의 컨트롤러, 네트워크 서버, 모바일 디바이스, 셀룰러 전화, 임베디드 시스템(예를 들어, 시스템 온 칩(SOC)을 갖는 임베디드 시스템 및 내부 또는 외부 메모리), 또는 메모리와 프로세싱 디바이스를 포함하는 임의의 컴퓨팅 디바이스와 같은 컴퓨팅 디바이스일 수 있다. 호스트 시스템(101)은 호스트 시스템(101)이 메모리 시스템(105)으로부터 데이터를 판독하거나 메모리 시스템에 데이터를 기록할 수 있도록 메모리 시스템(105)을 포함하거나 이에 결합될 수 있다. 호스트 시스템(101)은 물리적 호스트 인터페이스를 통해 메모리 시스템에(105)에 결합될 수 있다. 본 출원에 사용된, "결합된(coupled to)"은 일반적으로 컴포넌트 사이의 연결을 의미하며, 이는 전기적, 광학적, 자기적 등과 같은 연결을 포함하여 유선이든 무선이든 간접 통신 연결 또는 직접 통신 연결(예를 들어, 개재 컴포넌트 없음)일 수 있다. 물리적 호스트 인터페이스의 예는 SATA(Serial Advanced Technology Attachment) 인터페이스, PCIe(Peripheral Component Interconnect Express) 인터페이스, USB(Universal Serial Bus) 인터페이스, 파이버 채널, SAS(Serial Attached SCSI), DDR(Double Data Rate) 메모리 버스 등을 포함하지만 이에 한정되지는 않는다. 물리적 호스트 인터페이스는 호스트 시스템(101)과 메모리 시스템(105) 사이에서 데이터를 송신하는데 사용될 수 있다. 물리적 호스트 인터페이스는 메모리 시스템(105)과 호스트 시스템(101) 사이의 제어, 어드레스, 데이터, 및 다른 신호 전달을 위한 인터페이스를 제공할 수 있다.
도 2는 예로서 메모리 시스템(105)을 도시한다. 일반적으로, 호스트 시스템(101)은 동일한 통신 연결, 다수의 개별 통신 연결, 및/또는 통신 연결의 조합을 통해 다수의 메모리 시스템에 액세스할 수 있다.
호스트 시스템(101)은 프로세싱 디바이스 및 컨트롤러를 포함할 수 있다. 호스트 시스템(101)의 프로세싱 디바이스는 예를 들어, 마이크로프로세서, 중앙 프로세싱 유닛(CPU), 프로세서의 프로세싱 코어, 실행 유닛 등일 수 있다. 일부 경우에, 호스트 시스템의 컨트롤러는 메모리 컨트롤러, 메모리 관리 유닛 및/또는 개시자(initiator)로 지칭될 수 있다. 일 예에서, 컨트롤러는 호스트 시스템(101)과 메모리 시스템(105) 사이의 버스(103)를 통한 통신을 제어한다. 이러한 통신은 전술한 바와 같이 메모리 시스템(105)의 아이덴티티를 검증하기 위한 호스트 메시지의 발송을 포함한다.
호스트 시스템(101)의 컨트롤러는 메모리 시스템(105)의 컨트롤러와 통신하여 비휘발성 메모리(121)의 메모리 영역에서 데이터 판독, 데이터 기록 또는 데이터 소거와 같은 동작을 수행할 수 있다. 일부 예에서, 컨트롤러는 프로세싱 디바이스(111)의 동일한 패키지 내에 통합된다. 다른 경우에, 컨트롤러는 프로세싱 디바이스(111)의 패키지와 분리된다. 컨트롤러 및/또는 프로세싱 디바이스는 하나 이상의 집적 회로 및/또는 이산 컴포넌트, 버퍼 메모리, 캐시 메모리, 또는 이들의 조합과 같은 하드웨어를 포함할 수 있다. 컨트롤러 및/또는 프로세싱 디바이스는 마이크로컨트롤러, 특수 목적 로직 회로부(예를 들어, FPGA(Field Programmable Gate Array), ASIC(Application Specific Integrated Circuit) 등), 또는 다른 적절한 프로세서일 수 있다.
일 실시예에서, 메모리 영역(111, 113, …, 119)은 상이한 유형의 비휘발성 메모리 컴포넌트의 임의의 조합을 포함할 수 있다. 또한, 메모리 영역의 메모리 셀은 데이터를 저장하는데 사용되는 유닛을 지칭할 수 있는 메모리 페이지 또는 데이터 블록으로 그룹화될 수 있다. 일부 실시예에서, 휘발성 메모리(123)는 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 및 동기식 동적 랜덤 액세스 메모리(SDRAM)일 수 있지만, 이에 한정되지는 않는다.
일 실시예에서, 메모리 시스템(105)의 하나 이상의 컨트롤러는 메모리 영역(111, 113, …, 119)과 통신하여 데이터 판독, 데이터 기록, 또는 데이터 소거와 같은 동작을 수행할 수 있다. 각각의 컨트롤러는 하나 이상의 집적 회로 및/또는 개별 컴포넌트, 버퍼 메모리, 또는 이들의 조합과 같은 하드웨어를 포함할 수 있다. 각각의 컨트롤러는 마이크로컨트롤러, 특수 목적 로직 회로부(예를 들어, FPGA(Field Programmable Gate Array), ASIC(Application Specific Integrated Circuit) 등) 또는 다른 적절한 프로세서일 수 있다. 컨트롤러(들)는 로컬 메모리에 저장된 명령을 실행하도록 구성된 프로세싱 디바이스(프로세서)를 포함할 수 있다. 일 예에서, 컨트롤러의 로컬 메모리는 메모리 시스템(105)과 호스트 시스템(101) 간의 통신을 처리하는 것을 포함하여 메모리 시스템(105)의 동작을 제어하는 다양한 프로세스, 동작, 로직 흐름 및 루틴을 수행하기 위한 지침을 저장하도록 구성된 임베디드 메모리를 포함한다. 일부 실시예에서, 로컬 메모리는 메모리 포인터, 페치된 데이터 등을 저장하는 메모리 레지스터를 포함할 수 있다. 로컬 메모리는 또한 마이크로 코드를 저장하기 위한 판독 전용 메모리(ROM)를 포함할 수 있다.
일반적으로, 메모리 시스템(105)의 컨트롤러(들)는 호스트 시스템(101) 및/또는 프로세싱 디바이스(111)로부터 명령 또는 동작을 수신할 수 있고, 메모리 영역에 대한 데이터 기록 카운터에 기초하여 메모리 영역의 선택을 달성하기 위해 명령 또는 동작을 지침 또는 적절한 명령으로 변환할 수 있다. 컨트롤러는 또한 다른 동작 또한 마모 평준화(wear-leveling), 가비지 컬렉션 동작, 에러 검출 및 ECC(error-correcting code) 동작, 암호화 동작, 캐싱 동작, 메모리 영역과 관련이 있는 로직 블록 어드레스와 물리적 블록 어드레스 간의 어드레스 변환을 담당할 수 있다. 컨트롤러는 물리적 호스트 인터페이스를 통해 호스트 시스템(101)과 통신하기 위한 호스트 인터페이스 회로부를 더 포함할 수 있다. 호스트 인터페이스 회로부는 호스트 시스템으로부터 수신된 명령을 하나 이상의 메모리 영역에 액세스하기 위한 명령 지침으로 변환할 수 있을 뿐만 아니라 메모리 영역과 관련된 응답을 호스트 시스템(101)에 대한 정보로 변환할 수 있다.
메모리 시스템(105)은 또한 도시되지 않은 추가 회로부 또는 컴포넌트를 포함할 수 있다. 일부 실시예에서, 메모리 시스템(105)은 하나 이상의 컨트롤러로부터 어드레스를 수신하고 어드레스를 디코딩하여 메모리 영역에 액세스할 수 있는 캐시 또는 버퍼(예를 들어, DRAM 또는 SRAM) 및 어드레스 회로부(예를 들어, 행 디코더 및 열 디코더)를 포함할 수 있다.
일부 실시예에서, 호스트 시스템(101) 또는 메모리 시스템(105), 및/또는 프로세싱 디바이스(111)의 컨트롤러는 아이덴티티 컴포넌트(107) 및/또는 검증 컴포넌트(109)의 적어도 일부를 포함한다. 예를 들어, 컨트롤러 및/또는 프로세싱 디바이스(111)는 아이덴티티 컴포넌트(107) 및/또는 검증 컴포넌트(109)를 구현하는 로직 회로부를 포함할 수 있다. 예를 들어, 프로세싱 디바이스(프로세서)는 본 출원에서 설명된 아이덴티티 컴포넌트(107)에 대한 영역에 대한 판독/기록 액세스를 제공하는 동작을 수행하기 위해 메모리에 저장된 지침을 실행하도록 구성될 수 있다. 일부 실시예에서, 검증 컴포넌트(109)는 운영 체제, 디바이스 드라이버, 또는 애플리케이션의 일부이다.
도 3은 일 실시예에 따른 차량(100)의 예시적인 컴퓨팅 디바이스를 도시한다. 예를 들어, 차량(100)은 자율 주행 차량, 비 자율 주행 차량, 긴급 차량, 서비스 차량 등일 수 있다.
차량(100)은 온보드 컴퓨터와 같은 차량 컴퓨팅 디바이스(110)를 포함한다. 차량 컴퓨팅 디바이스(110)는 도 1의 호스트 디바이스(151)의 예이다. 다른 예시에서 차량 컴퓨팅 디바이스(110)는 도 2의 호스트 시스템(101)의 예시이고, 메모리(160)는 메모리 시스템(105)의 예이다.
차량 컴퓨팅 디바이스(110)는 안테나(140)에 결합된(또는 포함하는), 리더기, 기록기 및/또는 후술되는 기능을 수행할 수 있는 다른 컴퓨팅 디바이스와 같은 차량 통신 컴포넌트(130)에 결합된 프로세서(120)를 포함한다. 차량 통신 컴포넌트(130)는 비휘발성 플래시 메모리와 같은 메모리(160)에 결합된 프로세서(150)를 포함하지만, 실시예는 이러한 종류의 메모리 디바이스로 한정되지 않는다.
일 예에서, 메모리(160)는 차량(100)이 아래에 설명된 통신 인터페이스(예를 들어, 소위 DICE-RIoT 프로토콜)를 사용하여 체크 포인트(check point)에 접근할 때 이 정보를 제공할 수 있는 방식으로 차량(예를 들어, 운전자, 승객 및 운반 물품)과 관련된 모든 정보를 저장하도록 적응된다.
일 예에서, 차량 정보(예를 들어, 차량 아이덴티티/번호판)는 이미 차량 메모리(160)에 저장되어 있고, 차량(100)은 예를 들어, 통신 컴포넌트(130)를 통해 알려진 DICE-RIoT 프로토콜 또는 유사한 프로토콜을 사용하여, 승객의 전자 ID 및/또는 휴대 수하물, 물품 등의 ID를 식별하고, 그리고 나서 이 정보를 메모리(160)에 저장한다. 일 예에서, 전자 ID, 운송된 수하물 및 상품 컨테이너는 무선 트랜스폰더, NFC, 블루투스, RFID, 비컨택 센서, 자기 바(magnetic bar) 등이 구비되고, 통신 컴포넌트(130)는 리더기 및/또는 전자기장을 사용하여 이러한 원격 소스로부터 필요한 정보를 획득할 수 있다.
일 예에서, 모든 승객 ID 및/또는 휴대 수하물, 상품 등의 ID는 통신 컴포넌트와 데이터를 교환할 수 있는 전자 디바이스가 구비되어 있다. 이러한 전자 디바이스는 전력에 의해 공급되기 때문에 활성일 수 있거나 전기 디바이스가 근접할 때 필요한 전기 공급을 제공하는 외부 전원에 의해 활성화되고 및 전원이 공급될 수 있다는 점에서 능동 또는 수동 엘리먼트일 수 있다.
렌탈 차량 또는 자율 주행 차량은 리더기 및/또는 전자기장을 사용하여 차량 내부 또는 근처에서 정보를 획득할 수 있거나 대안으로, 예를 들어, 렌탈 차량의 운전자가 이전 예약으로 인해 렌탈 시스템에 이미 알려진 경우와 같이 원격 소스로부터 정보를 수신할 수 있다. 운전자가 차량을 픽업하기 위해 도착하면 실시간으로 추가 확인이 수행될 수 있다.
유사하게, 운송된 수하물 및 차량(100)에 의해 운반된 상품(또한 승객에 관한)에 대한 모든 정보는 항상 최신 상태로 유지될 수 있다. 이를 위해 승객의 전자 ID 및/또는 휴대 수하물 및 물품의 ID는 수하물 및 승객이 소유하거나 소유한 물품(미도시)과 관련된 무선 트랜스폰더로 인해 실시간으로 업데이트된다.
일 예에서, 차량 통신 컴포넌트(130)와 근접 소스(예를 들어, 상품 트랜스폰더 등) 사이의 통신은 DICE-RIoT 프로토콜을 통해 발생한다.
일 예에서, 차량 컴퓨팅 디바이스(110)는 조향 및 속도와 같은 차량(100)의 동작 파라미터를 제어할 수 있다. 예를 들어, 컨트롤러(미도시)는 조향 제어 시스템(170) 및 속도 제어 시스템(180)에 결합될 수 있다. 또한, 차량 컴퓨팅 디바이스(110)는 정보 시스템(190)에 연결될 수 있다. 정보 시스템(190)은 다음을 표시하도록 구성될 수 있다. 루트 정보 또는 체크 포인트 보안 메시지와 같은 메시지를 디스플레이하도록 구성될 수 있고, 시각적 경고를 디스플레이하고/또는 청각적 경고를 출력할 수 있다. 통신 컴포넌트(130)는 외부 컴퓨팅 디바이스(미도시)와 같은 추가 컴퓨팅 디바이스로부터 정보를 수신할 수 있다.
도 4는 일 실시예에 따른 차량(300)의 예시적인 컴퓨팅 디바이스와 통신하는 호스트 디바이스(350)를 갖는 예시적인 시스템(390)을 도시한다. 컴퓨팅 디바이스는 근거리 통신 디바이스(예를 들어, NFC 태그)와 같은 수동 통신 컴포넌트(310)를 포함한다. 통신 컴포넌트(310)는 차량(300)에 있을 수 있고, 이는 차량(100)에 도 3에 도시된 바와 같이 구성될 수 있고, 차량용 통신 컴포넌트(130)로 구성될 수 있는 통신 컴포넌트(310) 외에 차량(100)의 컴포넌트를 포함한다. 통신 컴포넌트(310)는 차량(300)에 관한 정보(차량 아이덴티티, 운전자/승객 정보, 휴대 물품 정보 등)를 저장하는 비휘발성 저장 컴포넌트(330)를 갖는 칩(320)(예를 들어, 차량(300)을 위한 CPU 또는 애플리케이션 컨트롤러를 구현함)을 포함한다. 통신 컴포넌트(310)는 안테나(340)를 포함할 수 있다.
호스트 디바이스(350)는, 예를 들어, 통신 컴포넌트(310)로부터 정보를 수신하고 및/또는 통신 컴포넌트에 정보를 송신할 수 있는 능동 통신 디바이스(예를 들어, 전원을 포함)이다. 일부 예들에서, 호스트 디바이스(350)는 톨 리더기(toll reader)와 같은 리더기(예를 들어, NFC 리더기), 또는 다른 컴포넌트들을 포함할 수 있다. 호스트 디바이스(350)는 체크 포인트 부근(예를 들어, 신뢰 구역의 경계에서) 또는 일반적으로 제한된 액세스 영역 부근에 배열된(예를 들어, 내장된) 외부 디바이스일 수 있다. 일부 실시예에서, 호스트 디바이스(350)는 또한 휴대용 디바이스로 사용하기 위해 경찰관에 의해 휴대될 수 있다.
호스트 디바이스(350)는 프로세서(360), 비휘발성 메모리와 같은 메모리(370), 및 안테나(380)를 포함할 수 있다. 메모리(370)는 호스트 디바이스(350)가 통신 컴포넌트(310)와 통신할 수 있게 하는 NFC 프로토콜을 포함할 수 있다. 예를 들어, 호스트 디바이스(350) 및 통신 컴포넌트(310)는 예를 들어, ISO/IEC 18000-3 국제 표준에 따라 약 13.56 메가 헤르츠에서와 같은 NFC 프로토콜을 사용하여 통신할 수 있다. RFID 태그를 사용하는 다른 접근 방식이 사용될 수 있다.
호스트 디바이스(350)는 또한 서버 또는 다른 컴퓨팅 디바이스와 통신할 수 있다(예를 들어, 무선 네트워크를 통해 중앙 운영 센터와 통신함). 예를 들어, 호스트 디바이스(350)는 서버 또는 통신 센터에 무선으로 결합되거나 유선으로 연결될 수 있다. 일부 예들에서, 호스트 디바이스(350)는 WIFI를 통해 또는 인터넷을 통해 운영 센터와 통신할 수 있다. 호스트 디바이스(350)는 차량(300)이 안테나(340)를 안테나(380)의 통신 거리 내에 가져올 때 통신 컴포넌트(310)에 전력을 공급할 수 있다. 일부 예에서, 호스트 디바이스(350)는 운영 센터로부터 실시간 정보를 수신할 수 있고 해당 정보를 차량(300)에 송신할 수 있다. 일부 실시예에서, 통신 컴포넌트(310)는 자체 배터리를 가질 수 있다.
일 실시예에서, 호스트 디바이스(350)는 정보 교환을 허용하도록 구성된 통신 컴포넌트(310)(예를 들어, 능동 디바이스)가 구비된 차량(300)으로부터/로 정보를 판독/발송하도록 적응된다.
다시 도 3에 도시된 바와 같이, 차량(100)의 차량 통신 컴포넌트(130)는 승객 ID, 운송된 수하물 및/또는 상품에 관한 실시간 관련 정보를 픽업하기 위해 내부적으로 활성화될 수 있다(예를 들어, 상기의 도 4와 관련하여 논의된 무선 통신 컴포넌트가 구비된 경우). 차량의 컴퓨팅 디바이스는 몇 미터(예를 들어, 2-3미터)의 공간 범위에서 정보를 검출하여 승객, 수하물 및 물품에 해당하는 모든 데이터가 획득될 수 있다. 일 예에서, 이것은 통신이 시작 및/또는 강화될 수 있도록 특정 근접도 내에서 외부 통신 컴포넌트(예를 들어, 서버 또는 호스트 디바이스로 동작하는 다른 컴퓨팅 디바이스)에 차량이 접근할 때 발생한다. 통신 거리는 예를 들어, 2-3미터이다.
일 실시예에서, 차량 통신 컴포넌트(130)는 외부 엔티티 및/또는 내부 엔티티와 통신할 때 데이터를 암호화할 수 있다. 일부 경우에, 운송된 수하물, 물품 또는 승객에 관한 데이터가 기밀이거나 기밀 정보(예를 들어, 승객의 건강 상태, 기밀 문서 또는 위험 물질)를 포함할 수 있다. 그러한 경우에, 차량 컴퓨팅 디바이스와 관련된 메모리 부분에 저장된 정보 및 데이터는 암호화된 데이터로서 유지되는 것이 바람직하다.
아래에서 논의되는 다양한 실시예들에서, 내부 차량 컴퓨팅 디바이스와 외부 엔티티(예를 들어, 호스트 디바이스로서 동작하는 서버) 사이의 암호화 및 복호화된 통신을 위한 방법이 논의된다. 일 예에서, 이 방법은 차량 내부 컴퓨팅 디바이스와 차량에 탑승된 승객, 수하물 및 물품과 관련된 전자 컴포넌트 사이에도 적용될 수 있다.
일 예에서, 차량용 통신 컴포넌트(130)는 차량 공개 키를 외부 통신 컴포넌트(예를 들어, 호스트 디바이스(151)로서 작용함)에 발송하고, 외부 통신 컴포넌트는 차량용 통신 컴포넌트(130)에 외부 공개 키를 발송한다. 이러한 공개 키(차량 및 외부)는 각각의 개별 통신 컴포넌트로 발송되는 데이터를 암호화하고 각각의 아이덴티티를 검증하고 확인 및 다른 정보를 교환하는데 사용할 수 있다. 일 예로서, 아래에서 더 설명되는 바와 같이, 차량 통신 컴포넌트(130)는 수신된 외부 공개 키를 사용하여 데이터를 암호화하고, 암호화된 데이터를 외부 통신 컴포넌트에 발송할 수 있다. 마찬가지로, 외부 통신 컴포넌트는 수신된 차량 공개 키를 사용하여 데이터를 암호화하고, 암호화된 데이터를 차량 통신 컴포넌트(130)에 발송할 수 있다. 차량(100)에 의해 발송되는 데이터는 자동차 정보, 승객 정보, 상품 정보 등을 포함할 수 있다. 정보는 옵션으로 차량(100)의 아이덴티티를 검증하기 위해 디지털 서명과 함께 발송될 수 있다. 또한, 정보는 차량(100)에 제공되고 차량(100)의 대시보드에 디스플레이되거나 차량(100)과 관련된 컴퓨팅 디바이스(예를 들어, 차량을 모니터링하는 중앙 서버 또는 사용자 디바이스)의 이메일로 발송될 수 있다. 차량의 전자 서명과 함께 차량의 아이덴티피케이션, VIN 번호 등을 기반으로 차량이 인식될 수 있다.
일 예에서, 차량과 외부 엔티티 사이에서 교환되는 데이터는 다른 것에 의해 사용되는 프레시니스를 가질 수 있다. 예를 들어, 동일한 지침을 나타내기 위해 차량이 외부 엔티티로 발송된 데이터는 각각의 특정 시간 프레임에서 또는 발송되는 특정 양의 데이터에 대해 변경될 수 있다. 이렇게 하면 해커가 이전에 발송된 데이터에 포함된 기밀 정보를 가로채서 동일한 데이터를 다시 발송하여 동일한 결과를 얻는 것을 방지할 수 있다. 데이터가 약간 변경되었지만 여전히 동일한 지침을 나타내는 경우, 해커는 나중에 동일한 정보를 발송할 수 있으며 수신자는 변경된 데이터가 동일한 지침을 수행할 것으로 기대하므로 동일한 지침이 수행되지 않는다.
차량(100)과 외부 엔티티(예를 들어, 컴퓨팅 시스템 또는 디바이스)(미도시) 사이에서 교환되는 데이터는 아래에서 설명되는 바와 같이 다수의 암호화 및/또는 복호화 방법을 사용하여 수행될 수 있다. 데이터의 보안은 인증되지 않은 활동이 차량(100) 및 외부 엔티티의 동작을 방해하는 것을 보증할 수 있다.
도 5a는 일 실시예에 따른 호스트 디바이스로 발송되는 식별자, 인증서, 및 키를 포함하는 트리플을 생성하는 애플리케이션 보드를 도시한다. 호스트 디바이스는 트리플을 사용하여 애플리케이션 보드의 아이덴티티를 검증한다. 애플리케이션 보드는 도 1의 컴퓨팅 디바이스(141)의 예이다. 호스트 디바이스는 도 1의 호스트 디바이스(151)의 일 예이다.
일 실시예에서, 애플리케이션 보드 및 호스트는 DICE(device identification composition engine)-RIoT(robust internet of things) 프로토콜을 사용하여 통신(예를 들어, 정보 및 데이터에 대해)을 위한 암호화 및/또는 복호화 동작을 수행하는 통신 컴포넌트를 포함한다. 일 예에서, DICE-RIoT 프로토콜은 차량 통신 컴포넌트와 외부 통신 컴포넌트 간의 통신 뿐만 아니라 차량 통신 컴포넌트와 각각의 승객 ID, 수하물, 물품 등에 관련된 다양한 무선 전자 디바이스 간의 차량 환경 내부에서 수행되는 통신에 적용된다.
도 5b는 일 실시예에 따른 계층을 사용하여 단계적으로 부팅하는 예시적인 컴퓨팅 시스템을 도시한다. 시스템은 본 개시의 실시예에 따른 외부 통신 컴포넌트(430') 및 차량 통신 컴포넌트(430'')를 포함한다. 차량이 외부 엔티티에 접근하거나 그 근접함에 따라, 차량의 관련 차량 통신 컴포넌트(430'')는 예를 들어, 센서(예를 들어, 라디오 주파수 아이덴티피케이션 센서 또는 RFID 또는 유사한 것)를 사용하여 위에서 설명한 바와 같이 외부 엔티티와 데이터를 교환할 수 있다.
다른 실시예에서, 컴포넌트(430')는 차량에 위치된 애플리케이션 보드일 수 있고, 컴포넌트(430'')는 또한 컴포넌트(430')(예를 들어, 위의 도 1과 관련하여 논의된)의 아이덴티티를 검증하기 위해 DICE-RIoT 프로토콜을 사용하는 차량에 위치된 호스트 디바이스일 수 있다.
일 실시예에서, DICE-RIoT 프로토콜은 계층을 사용하여 단계적으로 부팅하기 위해 컴퓨팅 디바이스에 의해 사용되며, 각각의 계층은 후속 계층을 인증 및 로딩하고 각각의 계층에서 점점 더 정교한 런타임 서비스를 제공한다. 따라서, 계층은 이전 계층에 의해 제공될 수 있고 후속 계층에 제공될 수 있으며, 이에 의해 하위 계층 위에 구축되고 더 높은 차수의 계층을 제공하는 계층의 상호 연결된 웹을 생성한다. 대안으로, DICE-RIoT 프로토콜 대신 다른 프로토콜이 사용될 수 있다.
통신 프로토콜의 일 예시적인 구현에서, 통신 프로토콜의 보안은 제조 동안(또는 나중에) 설정되는 디바이스 비밀(예를 들어, UDS)인 비밀 값에 기초한다. 디바이스 비밀 UDS는 그것이 프로비저닝된 디바이스 내에 존재한다(예를 들어, 도 1의 디바이스 비밀(149)로서 저장됨).
디바이스 비밀 UDS는 부팅 시 제1 단계 ROM 기반 부트 로더(loader)에 액세스할 수 있다. 그런 다음, 시스템은 다음 부팅 사이클까지 디바이스 비밀에 액세스할 수 없도록 하는 메커니즘을 제공하고, 부트 로더(예를 들어, 부트 계층)만 디바이스 비밀 UDS에 액세스할 수 있다. 따라서, 이 접근 방식에서, 부팅은 디바이스 비밀 UDS로 시작하는 특정 아키텍처에서 계층화된다.
도 5b에 도시된 바와 같이, 계층 0, L0 및 계층 1, L1은 외부 통신 컴포넌트(430') 내에 있다. 계층 0 L0은 계층 1 L1에 대한 키 FDS(fuse derived secret)를 제공할 수 있다. FDS 키는 계층 1 L1의 코드 아이덴티티 및 다른 보안 관련 데이터를 기반으로 할 수 있다. 특정 프로토콜(예를 들어, RIoT(robust internet of things) 코어 프로토콜)은 FDS를 사용하여 로딩하는 계층 1 L1의 코드를 확인할 수 있다. 일 예에서, 특정 프로토콜은 DICE(device identification composition engine) 및/또는 RIoT 코어 프로토콜을 포함할 수 있다. 예를 들어, FDS는 계층 1 L1 펌웨어 이미지 자체, 인증된 계층 1 L1 펌웨어를 암호화 방식으로 식별하는 매니페스트(manifest), 보안 부팅 구현 컨텍스트에서 서명된 펌웨어의 펌웨어 버전 번호 및/또는 디바이스에 대한 보안에 중요한 구성 설정을 포함할 수 있다. 디바이스 비밀 UDS는 FDS를 생성하는데 사용될 수 있으며 외부 통신 컴포넌트의 메모리에 저장된다. 따라서, 계층 0 L0은 실제 디바이스 비밀 UDS를 절대 공개하지 않으며, 부트 체인의 다음 계층에 도출 키(derived key)(예를 들어, FDS 키)를 제공한다.
외부 통신 컴포넌트(430')는 화살표(410')로 도시된 바와 같이 차량 통신 컴포넌트(430'')에 데이터를 송신하도록 구성된다. 송신된 데이터는 도 6과 관련하여 설명되는 바와 같이, 공개인 외부 아이덴티피케이션, 인증서(예를 들어, 외부 아이덴티피케이션 인증서), 및/또는 외부 공개 키를 포함할 수 있다. 차량 통신 컴포넌트(430'')의 계층 2 L2는 송신된 데이터를 수신하고, 운영 체제, OS, 예를 들어, 제1 애플리케이션(App1) 및 제2 애플리케이션(App2)의 동작에서 데이터를 실행할 수 있다.
마찬가지로, 차량 통신 컴포넌트(430'')는 화살표(410'')로 도시된 바와 같이 공개된 차량 아이덴티피케이션(identification), 인증서(예를 들어, 차량 아이덴티피케이션 인증서) 및/또는 차량 공개 키를 포함하는 데이터를 송신할 수 있다. 예를 들어, 인증 후(예를 들어, 인증서를 검증한 후), 차량 통신 컴포넌트(430'')는 차량의 추가 인증, 아이덴티피케이션 및/또는 검증을 위해 차량 아이덴티피케이션 번호, VIN을 발송할 수 있다.
도 5b 및 도 6에 도시된 바와 같이, 예시적인 동작에서, 외부 통신 컴포넌트(430')는 디바이스 비밀 DS를 판독하고, 계층 1 L1의 아이덴티티를 해시하고, 다음 계산을 수행할 수 있다:
FDS = KDF [UDS, 해시("불변 정보")]
여기서 KDF는 암호화 단방향 키 도출 함수(예를 들어, HMAC-SHA256)이다. 위의 계산에서, 해시는 SHA256, MD5, SHA3 등과 같은 임의의 암호화 프리미티브일 수 있다.
적어도 일 예에서, 차량은 익명 로그인 또는 인증된 로그인 중 하나를 사용하여 통신할 수 있다. 인증된 로그인은 차량이 익명 모드에서 통신할 때 액세스할 수 없는 추가 정보를 획득할 수 있도록 한다. 적어도 일 예에서, 인증은 아래에 설명되는 바와 같이 공개 키의 교환과 같은 차량 아이덴티피케이션 번호 VIN 및/또는 인증 정보를 제공하는 것을 포함할 수 있다. 익명 및 인증 모드 중 하나에서, 외부 엔티티(예를 들어, 신뢰 구역 경계의 검문소 경찰)는 차량과 통신하여 외부 엔티티와 관련된 외부 공개 키를 차량에 제공할 수 있다.
도 6은 일 실시예에 따른 비대칭 제너레이터를 사용하여 식별자, 인증서, 및 키를 생성하는 예시적인 컴퓨팅 디바이스를 도시한다. 일 실시예에서, 컴퓨팅 디바이스는 파라미터를 결정하기 위한 프로세스를 구현한다(예를 들어, 외부 디바이스의 계층 L1, 또는 대안적인 실시예에서 내부 컴퓨팅 디바이스의 계층 L1 내에서).
일 실시예에서, 파라미터는 차량 통신 컴포넌트(예를 들어, 도 5b의 도면 번호(430''))의 계층 2 L2에 발송되는 (도 5의 화살표 (510')로 표시된) 외부 공개 아이덴티피케이션, 외부 인증서, 및 외부 공개 키를 포함하여 결정된다. 도 6의 화살표 (510' 및 510'')은 도 5b의 화살표 (410' 및 410'')에 각각 대응한다. 또한, 도 6의 계층들은 도 5b의 계층에 대응한다.
다른 실시예에서, 호스트 디바이스로부터의 메시지("호스트 메시지")는 암호화를 위한 병합된 데이터를 제공하기 위해 패턴(데이터) 병합(531)에 의해 외부 공개 키와 병합된다. 병합된 데이터는 암호화기(encryptor)(530)에 대한 입력이다. 일 예에서, 호스트 메시지는 외부 공개 키와 연쇄(concatenate)된다. 생성된 파라미터는 호스트 디바이스로 발송되고 컴퓨팅 디바이스의 아이덴티티를 검증하는데 사용되는 트리플을 포함한다. 예를 들어, 외부 공개 아이덴티티, 외부 인증서 및 외부 공개 키는 호스트 디바이스의 검증 컴포넌트에 의해 아이덴티티를 검증하는데 사용된다. 일 예에서, 호스트 디바이스는 도 1의 호스트 디바이스(151)이다.
도 6에 도시된 바와 같이, 계층 0 L0으로부터의 FDS는 계층 1 L1으로 발송되고, 비대칭 ID 제너레이터(520)에 의해 사용되어 공개 아이덴티티, IDlk공개 및 개인 아이덴티티, IDk개인을 생성한다. 약어 "IDlk공개"에서”lk"는 일반 계층 k(이 예에서는, 계층 1 L1)를 나타내고 "공개(public)"은 아이덴티티가 공개적으로 공유됨을 나타낸다. 공개 아이덴티피케이션 IDlk공개는 외부 통신 컴포넌트의 계층 1 L1의 오른쪽 및 외부로 확장되는 화살표에 의해 공유되는 것으로 예시된다. 생성된 개인 아이덴티피케이션 IDk개인은 암호화기(530)로의 키 입력으로 사용된다. 암호화기(530)는 예를 들어, 데이터를 암호화하는데 사용되는 임의의 프로세서, 컴퓨팅 디바이스 등일 수 있다.
외부 통신 컴포넌트의 계층 1 L1은 비대칭 키 제너레이터(540)를 포함할 수 있다. 적어도 일 예에서, 난수 제너레이터(RND)는 옵션으로 비대칭 키 제너레이터(540)에 난수를 입력할 수 있다. 비대칭 키 제너레이터(540)는 도 5b의 외부 통신 컴포넌트(430')와 같은 외부 통신 컴포넌트와 연관된 공개 키 KLk공개(외부 공개 키라고 함) 및 개인 키 KLK개인(외부 개인 키라고 함)를 생성할 수 있다.
외부 공개 키 KLk공개는 암호화기(530)에 대한 입력("데이터"로서)일 수 있다. 상기에서 언급한 바와 같이, 일부 실시예에서, 아이덴티티 검증 프로세스의 일부로서 호스트 디바이스로부터 이전에 수신된 호스트 메시지는 KLk공개와 병합되어 병합된 데이터를 암호화기(530)에 대한 입력 데이터로서 제공한다.
암호화기(530)는 외부 개인 아이덴티피케이션 IDk개인 및 외부 공개 키 KLk공개의 입력을 사용하여 결과 K'를 생성할 수 있다. 외부 개인 키 KLK개인과 결과 K'는 추가 암호화기(550)에 입력될 수 있으며, 그 결과 K''가 출력된다. 출력 K''는 외부 인증서, IDL1인증서며 계층 2 L2로 송신된다(또는 대안으로 아이덴티티를 검증하는 호스트 디바이스로 송신됨). 외부 인증서 IDL1인증서는 디바이스로부터 발송된 데이터의 출처를 검증 및/또는 인증하는 능력을 제공할 수 있다. 일 예로서, 외부 통신 컴포넌트로부터 발송된 데이터는 인증서를 검증함으로써 외부 통신 컴포넌트의 아이덴티티와 연관될 수 있으며, 이는 도 7와 관련하여 더 설명될 것이다. 또한, 외부 공개 키 KL1공개 키는 계층 2 L2로 송신될 수 있다. 따라서, 외부 통신 컴포넌트의 공개 아이덴티피케이션 IDl1공개, 인증서 IDL1인증서 및 외부 공개 키 KL1공개 키는 차량 통신 컴포넌트의 계층 2 L2로 송신될 수 있다.
도 7은 일 실시예에 따른 복호화 동작을 사용하여 컴퓨팅 디바이스의 아이덴티티를 검증하는 검증 컴포넌트를 도시한다. 검증 컴포넌트는 복호화기(decryptor)(730, 750)를 포함한다. 검증 컴포넌트는 본 개시의 실시예에 따른 인증서를 검증하기 위한 프로세스를 구현한다.
도 7의 예시된 예에서, 공개 키 KL1공개, 인증서 IDL1인증서 및 공개 아이덴티피케이션 IDL1공개는 외부 통신 컴포넌트(예를 들어, 도 5b의 외부 통신 컴포넌트(430')의 계층 1 L1)로부터 제공된다.
인증서 IDL1인증서 및 외부 공개 키 KL1공개의 데이터는 복호화기(730)에 대한 입력으로 사용될 수 있다. 복호화기(730)는 데이터를 복호화하는데 사용되는 임의의 프로세서, 컴퓨팅 디바이스 등일 수 있다. 인증서 IDL1인증서 및 외부 공개 키 KL1공개의 복호화 결과는 공개 아이덴티티 IDL1공개와 함께 복호화기(750)에 대한 입력으로 사용될 수 있으며, 결과적으로 출력이 된다. 외부 공개 키 KL1공개 및 복호화기(750)로부터의 출력은 블록(760)에 예시된 바와 같이 인증서가 검증되었는지 여부를 표시할 수 있으며, 결과적으로 출력으로서 예 또는 아니오가 된다. 개인 키는 단일 계층과 관련되며 특정 인증서는 특정 계층에 의해서만 생성될 수 있다.
검증 중인 인증서에 응답하여(예를 들어, 인증 후), 검증 중인 디바이스로부터 수신된 데이터가 수락되고, 복호화되고, 및/또는 프로세싱될 수 있다. 검증되지 않은 인증서에 대한 응답으로, 검증 중인 디바이스로부터 수신된 데이터는 폐기, 제거 및/또는 무시될 수 있다. 이러한 방식으로, 부정한 데이터(nefarious data)를 발송하는 인증되지 않은 디바이스가 검출되고 회피될 수 있다. 예를 들어, 프로세싱될 데이터를 발송하는 해커가 식별되고 해킹 데이터가 프로세싱되지 않을 수 있다.
대안적인 실시예에서, 공개 키 KL1공개, 인증서 IDL1인증서, 및 공개 아이덴티피케이션 IDL1공개가 도 1의 컴퓨팅 디바이스(141)로부터 또는 도 2의 메모리 시스템(105)으로부터 제공된다. 이 트리플은 호스트 디바이스로부터 호스트 메시지를 수신하는 것에 응답하여 컴퓨팅 디바이스(141)에 의해 생성된다. IDL1인증서를 복호화기(730)에 대한 입력으로 제공하기 전에, IDL1인증서와 호스트 디바이스로부터의 메시지("호스트 메시지")는 패턴(데이터) 병합(731)에 의해 병합된다. 일 예에서, 병합은 데이터의 연쇄이다. 병합된 데이터는 복호화기(730)에 대한 입력으로 제공된다. 그런 다음 검증 프로세스는 상기에서 설명된 바와 같이 진행된다.
도 8은 일 실시예에 따른 인증서를 검증하기 위한 예시적인 프로세스의 블록도를 도시한다. 디바이스가 후속 부인(repudiation)을 피하기 위해 검증될 수 있는 데이터를 발송하는 경우, 서명이 생성되어 데이터와 함께 발송될 수 있다. 예를 들어, 제 1 디바이스는 제 2 디바이스의 요청을 할 수 있고, 제 2 디바이스가 요청을 수행하면, 제 1 디바이스는 제 1 디바이스가 그러한 요청을 한 적이 없음을 나타낼 수 있다. 서명 사용과 같은 부인 방지 접근 방식(anti-repudiation approach)은 제1 디바이스의 부인을 방지하고, 제2 디바이스가 후속 어려움 없이 요청된 작업을 수행할 수 있도록 한다.
차량 컴퓨팅 디바이스(810'')(예를 들어, 도 3의 차량 컴퓨팅 디바이스(110) 또는 도 1의 컴퓨팅 디바이스(141))는 데이터 Dat''를 외부 컴퓨팅 디바이스(810')(또는 일반적으로 임의의 다른 컴퓨팅 디바이스)로 발송할 수 있다. 차량 컴퓨팅 디바이스(810'')는 차량 개인 키 KLK개인을 사용하여 서명 Sk를 생성할 수 있다. 서명 Sk는 외부 컴퓨팅 디바이스(810')로 송신될 수 있다. 외부 컴퓨팅 디바이스(810')는 데이터 Dat' 및 이전에 수신된 공개 키 KLk공개(예를 들어, 차량 공개 키)를 사용하여 검증할 수 있다. 이러한 방식으로, 서명 검증은 개인 키를 사용하여 서명을 암호화하고 공개 키를 사용하여 서명을 복호화하도록 동작한다. 이러한 방식으로, 각각의 디바이스에 대한 고유 서명은 서명을 발송하는 디바이스에 대해 비공개로 유지되는 동시에 수신 디바이스가 검증을 위해 서명을 복호화할 수 있도록 한다. 이는 데이터의 암호화/복호화와 대조되는 것으로, 이는 수신 디바이스의 공개 키를 사용하여 발송 디바이스에 의해 암호화되고 수신자의 개인 키를 사용하여 수신 디바이스에 의해 복호화한다. 적어도 일 예에서, 차량은 내부 암호화 프로세스(예를 들어, ECDSA(Elliptical Curve Digital signature) 또는 유사한 프로세스)를 사용하여 디지털 서명을 검증할 수 있다.
인증서 및 공개 키의 교환 및 검증으로 인해, 디바이스는 서로 안전한 방식으로 통신할 수 있다. 차량이 외부 엔티티(예를 들어, 신뢰 구역 경계, 경계 보안 엔티티 또는 일반적으로, 전자 제어되는 호스트 디바이스)에 접근하면, 개별 통신 디바이스(개별 인증서를 검증하는 도 7에 도시된 능력을 가짐)는 인증서를 교환하고 서로 통신한다. 인증 후(예를 들어, 인증서 및 공개 키를 외부 엔티티로부터 수신/검증한 후), 차량은 메모리에 저장되고 그리고 관련된 모든 필요한 정보 예컨대, 번호판/ID, VIN, 보험 번호, 운전자 정보(예를 들어, ID, 국경 전환에 대한 최종 허가), 승객 정보, 운송 상품 정보 등을 전달할 수 있다. 그런 다음 수신된 정보를 확인한 후, 외부 엔터티는 전환 요청의 결과를 차량에 전달하고, 이 정보는 수신자의 공개 키를 사용하여 암호화될 수 있다. 교환된 메시지/정보는 전술한 DICE-RIOT 프로토콜을 이용하여 암호화/복호화될 수 있다. 일부 실시예에서, 소위 불변 정보(예를 들어, 번호판/아이덴티티, VIN, 보험 번호)는 암호화되지 않은 반면, 다른 정보는 암호화된다. 즉, 교환된 메시지에는, 암호화되지 않은 데이터와 암호화된 데이터가 있을 수 있다 : 따라서, 정보가 암호화되거나 암호화되지 않거나 혼합될 수 있다. 그런 다음 인증서/공개 키를 사용하여 메시지 콘텐츠가 유효한지 확인함으로써 메시지의 정확성이 보장된다.
도 9는 일 실시예에 따른 식별자, 인증서, 및 키를 사용하여 컴퓨팅 디바이스의 아이덴티티를 검증하는 방법을 도시한다. 도 9는 도 1 내지 도 7의 시스템에서 구현될 수 있다.
도 9의 방법은 하드웨어(예를 들어, 프로세싱 디바이스, 회로부, 전용 로직, 프로그램 가능 로직, 마이크로코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예를 들어, 프로세싱 디바이스 상에서 수행되거나 실행되는 지침들) 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예에서, 도 9의 방법은 도 1의 아이덴티티 컴포넌트(147) 및 검증 컴포넌트(153)에 의해 적어도 부분적으로 수행된다.
특정한 순서나 순서로 표시되어 있지만 달리 명시되지 않는 한 프로세스의 순서는 수정될 수 있다. 따라서, 도시된 실시예는 예시적으로만 이해되어야 하며, 도시된 프로세스는 다른 순서로 수행될 수 있으며, 일부 프로세스는 병렬로 수행될 수 있다. 또한, 다양한 실시예에서 하나 이상의 프로세스가 생략될 수 있다. 따라서, 모든 실시예에서 모든 프로세스가 필요한 것은 아니다. 다른 프로세스 흐름이 가능하다.
블록(921)에서, 호스트 디바이스로부터 메시지가 수신된다. 예를 들어, 컴퓨팅 디바이스(141)는 호스트 디바이스(151)로부터 메시지(예를 들어, "호스트 메시지" 또는 "호스트 메시지 | 프레시니스")를 수신한다.
블록(923)에서, 식별자, 인증서 및 키(예를 들어, 공개 키 KL1공개)가 생성된다. 식별자는 컴퓨팅 디바이스의 아이덴티티와 연관된다. 인증서는 호스트 디바이스로부터의 메시지(예를 들어, "호스트 메시지")를 사용하여 생성된다. 일 실시예에서, 메시지는 암호화 이전에 공개 키와 병합된다. 이 암호화는 개인 식별자 IDL1개인을 키로 사용한다. 개인 식별자 IDL1개인은 공개 식별자 IDL1공개(예를 들어, 비대칭 ID 제너레이터(520)에 의해 생성된 관련 쌍)과 연관된다.
일 예에서, 아이덴티티 컴포넌트(147)는 트리플을 제공하기 위해 식별자, 인증서, 및 키를 생성한다. 일 예에서, 트리플은 DICE-RIoT 프로토콜을 기반으로 생성된다. 일 예에서, 트리플은 도 6에 도시된 바와 같이 생성된다.
일 예에서, DICE-RIOT 프로토콜을 사용하여, 각각의 계층(Lk)은 다음 계층(Lk+1)에 키 및 인증서 세트를 제공하고, 각각의 인증서는 수신 계층에서 검증될 수 있다. 퓨즈 도출 비밀(fuse derived secret) FDS는 다음과 같이 계산된다 : FDS = HMAC-SHA256 [ UDS, SHA256("L1의 아이덴티티") ]
일 예에서, DICE-RIoT 아키텍처의 계층 1 L1은 호스트 디바이스에서 발송된 호스트 메시지를 사용하여 인증서를 생성한다. 계층 1은 다음과 같이 연관된 두 개의 키 쌍을 계산한다:
(IDlk공개, IDlk개인) 및 (KLk공개, KLK개인)
계층 1은 다음과 같이 두 개의 서명도 계산한다:
K'= 암호화(IDlk개인 ,KLk공개|호스트 메시지)
K''= 암호화(KLK개인, K')
상기의 프로세싱으로부터, 계층 1은 다음과 같은 트리플을 제공한다 :
KL1= {IDL1공개, IDL1 인증서, KL1공개 }
보다 일반적으로, 각각의 계층은 다음과 같은 트리플을 제공한다:
KLk= 각각의 k=1:N에 대한 {키 및 인증서 세트}
개별 트리플을 사용하여, 각각의 계층은 다음 계층에 대한 아이덴티티를 증명할 수 있다.
일 예에서, 계층 2는 애플리케이션 펌웨어에 대응하고, 후속 계층은 호스트 디바이스의 애플리케이션 및/또는 운영 체제에 대응한다.
블록 (925)에서, 생성된 식별자, 인증서 및 키가 호스트 디바이스로 발송된다. 호스트 디바이스는 식별자, 인증서 및 키를 사용하여 컴퓨팅 디바이스의 아이덴티티를 검증한다. 일 예에서, 호스트 디바이스(151)는 컴퓨팅 디바이스(141)로부터 식별자, 인증서, 및 키를 수신한다. 호스트 디바이스(151)는 컴퓨팅 디바이스의 아이덴티티를 검증하기 위해 검증 컴포넌트(153)를 사용한다.
일 예에서, 검증 컴포넌트(153)는 검증 프로세스의 일부로서 복호화 동작을 수행한다. 복호화는 컴퓨팅 디바이스(141)로부터 수신된 키를 사용하여 복호화에 앞서 인증서와 호스트로부터의 메시지를 병합하는 것을 포함한다. 일 예에서, 컴퓨팅 디바이스의 아이덴티티의 검증은 도 7에 예시된 바와 같이 수행된다.
일 예에서, 복호화 작업은 다음과 같이 수행된다 :
K'를 제공하기 위해 KL1공개를 사용하여 복호화(IDL1인증서)
IDL1공개를 사용하여 K'를 복호화하여 결과 제공
결과는 KL1공개와 비교된다. 결과가 KL1공개와 같으면, 아이덴티티가 검증된다. 일 예에서, 애플리케이션 보드 아이덴티티가 검증된다.
일 실시예에서, 인간 또는 동물의 아이덴티티가 증명된다. 사람의 아이덴티티 검증은 상술한 바와 같이 컴퓨팅 디바이스(141)의 아이덴티티를 검증하는 것과 유사하게 수행된다. 일 예에서, 컴퓨팅 디바이스(141)는 사람의 여권에 통합된다. 여권을 발급한 국가의 행정 부서는 문서 클래스(예를 들어, 운전 면허증, 여권, 신분증 등)에 특정한 UDS를 사용할 수 있다. 예를 들어, 이탈리아, 시칠리아, 메시나, 여권 사무소의 경우, UDS = 0x12234…4444이다. 독일, 바이에른, 뮌헨, 여권 사무소의 경우, UDS = 0xaabb…00322
여권에 관한 일 예에서, L1의 아이덴티티는 다음과 같은 ASCII 스트링이다:
국가 | 문서 유형 | 등(예를 들어, "이탈리아, 시칠리아, 메시나, 여권 사무소")
할당의 "세분성(granularity)"은 각각의 국가의 행정에 의해 결정될 수 있다.
도 9의 방법의 다양한 실시예는 다양한 장점을 제공한다. 예를 들어, 제3자 키 인프라스트럭처(예를 들어, PKI = 공개 키 인프라스트럭처)를 사용하지 않고 특정 공장에서 생산된 것으로 식별 및 인증할 수 있다. 재생 보호되는 것으로 인해, 악의적이거나 해커맨이 중간에 공격하는 것이 방지된다. 이 방법은 사물의 대량 생산에 사용할 수 있다.
또한, 고객 UDS는 하드웨어 레벨에서 보호된다(예를 들어, 컴포넌트 외부의 계층 0의 액세스 불가능성). UDS는 아무나에 의해 판독될 수 없지만 대체될 수 있다(예를 들어, 고객만이 보안 프로토콜을 사용하여 이것을 수행할 수 있음). 보안 프로토콜의 예에는 인증된 재생 보호 명령 및/또는 Diffie Hellman(예를 들어, ECDH 타원 곡선 Diffie Hellman)과 같은 비밀 공유 알고리즘을 기반으로 하는 보안 프로토콜이 포함된다. 일 예에서, UDS는 보안 인프라스트럭처를 사용하여 고객(최종 사용자가 아님)에게 전달된다. UDS는 고객에 의해 맞춤화될 수 있다.
또한, 컴포넌트 인식은 인터넷이나 다른 네트워크 연결이 없는 경우에도 동작할 수 있다. 또한, 이 방법을 사용하여 신뢰 구역 경계(예를 들어, 국경, 내부 검문소 등)에서 사물, 동물, 사람의 아이덴티티를 쉽게 확인할 수 있다.
일 예에서, UDS에 대한 지식은 호스트 디바이스가 UDS를 안전하게 교체할 수 있도록 한다. 예를 들어, 다음과 같은 경우 교체가 수행될 수 있다 : 호스트가 사물의 아이덴티티를 변경하기를 원하거나 호스트가 사물의 아이덴티티를 다른 사람(원 제조업체 포함)에게 알려지지 않기를 원하지 않은 경우.
다른 예에서, 교체 명령은 호스트 디바이스에 의해 사용된다. 예를 들어, 호스트 디바이스는 UDS 교체 명령을 컴퓨팅 디바이스에 발송할 수 있다. 교체 명령은 기존 UDS와 컴퓨팅 디바이스에 귀속될 새 UDS를 포함한다. 일 예에서, 교체 명령은 다음과 같은 해시 값을 포함하는 필드를 갖는다 : 해시 (기존 UDS| 새 UDS).
다른 예에서, 다음과 같은 필드를 갖는 인증된 재생 보호 명령이 사용된다: 교체_명령 | 프레시니스 | 서명
여기서, 서명 = MAC [비밀 키, 교체_명령 | 프레시니스 | 해시(기존 UDS | 새 UDS)]
비밀 키는 추가 키이며, 디바이스에 있는 인증된 명령에 사용되는 키이다. 예를 들어, 비밀 키는 아래에서 설명되는 세션 키일 수 있다(예를 들어, 도 12 참조).
일 실시예에서, 방법은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(141))에 의해 호스트 디바이스(예를 들어, 호스트 디바이스(151))로부터 메시지를 수신하는 단계; 컴퓨팅 디바이스에 의해, 식별자, 인증서 및 키를 생성하는 단계로서, 식별자는 컴퓨팅 디바이스의 아이덴티티와 연관되고, 인증서는 메시지를 사용하여 생성되는, 상기 생성하는 단계; 및 컴퓨팅 디바이스에 의해, 식별자, 인증서, 및 키를 호스트 디바이스에 발송하는 단계를 포함하고, 호스트 디바이스는 식별자, 인증서, 및 키를 사용하여 컴퓨팅 디바이스의 아이덴티티를 검증하도록 구성된다.
일 실시예에서, 컴퓨팅 디바이스의 아이덴티티를 검증하는 단계는 제1 데이터를 제공하기 위해 메시지와 인증서를 연쇄시키는 단계(concatenating)를 포함한다.
일 실시예에서, 컴퓨팅 디바이스의 아이덴티티를 검증하는 단계는 제2 데이터를 제공하기 위해 키를 사용하여 제1 데이터를 복호화하는 단계를 더 포함한다.
일 실시예에서, 컴퓨팅 디바이스의 아이덴티티를 검증하는 단계는 결과를 제공하기 위해 식별자를 사용하여 제2 데이터를 복호화하는 단계, 및 그 결과를 키와 비교하는 단계를 더 포함한다.
일 실시예에서, 식별자는 공개 식별자이고, 컴퓨팅 디바이스는 비밀 키를 저장하고, 방법은 : 도출된 비밀을 생성하기 위해 메시지 인증 코드에 대한 입력으로서 비밀 키를 사용하는 단계;를 더 포함하고, 공개 식별자는 비대칭 제너레이터에 대한 입력으로서 도출된 비밀을 사용하여 생성된다.
일 실시예에서, 식별자는 제1 공개 식별자이고, 컴퓨팅 디바이스는 제1 공개 식별자를 생성하는데 사용되는 제1 디바이스 비밀을 저장하고, 방법은 호스트 디바이스로부터 교체 명령을 수신하는 단계; 교체 명령을 수신한 것에 응답하여, 제1 디바이스 비밀을 제2 디바이스 비밀로 교체하는 단계; 및 상기 제2 디바이스 비밀을 사용하여 생성된 제2 공개 식별자를 상기 호스트 디바이스로 발송하는 단계를 더 포함한다.
일 실시예에서, 키는 공개 키이고, 인증서를 생성하는 단계는 암호화를 위한 데이터 입력을 제공하기 위해 공개 키와 메시지를 연쇄시키는 단계를 포함한다.
일 실시예에서, 식별자는 공개 식별자이고, 제1 비대칭 제너레이터는 관련 쌍으로서 공개 식별자 및 개인 식별자를 생성하고; 키는 공개 키이고 제2 비대칭 제너레이터는 공개 키와 개인 키를 연관된 쌍으로 생성하고; 및 인증서를 생성하는 단계는, 제1 데이터를 제공하기 위해 메시지를 공개 키와 연쇄시키는 단계; 제2 데이터를 제공하기 위해 개인 식별자를 사용하여 제1 데이터를 암호화하는 단계; 및 인증서를 제공하기 위해 개인 키를 사용하여 제2 데이터를 암호화하는 단계를 포함한다.
일 실시예에서, 키는 공개 키이고, 방법은 비대칭 키 제너레이터에 대한 입력으로서 난수를 생성하는 단계를 더 포함하고, 공개 키 및 연관된 개인 키는 비대칭 키 제너레이터를 사용하여 생성된다.
일 실시예에서, 난수는 PUF(physical unclonable function)을 사용하여 생성된다.
일 실시예에서, 시스템은 적어도 하나의 프로세서; 및 메모리로서, 적어도 하나의 프로세서에: 메시지를 컴퓨팅 디바이스에 발송하고; 컴퓨팅 디바이스로부터, 식별자, 인증서, 및 키를 수신하고, 식별자는 컴퓨팅 디바이스의 아이덴티티와 연관되고, 인증서는 메시지를 사용하여 컴퓨팅 디바이스에 의해 생성되고; 및 식별자, 인증서 및 키를 사용하여 컴퓨팅 디바이스의 아이덴티티를 검증할 것을 지시하도록 구성된 명령을 포함하는, 상기 메모리를 포함한다.
일 실시예에서, 컴퓨팅 디바이스의 아이덴티티를 검증하는 단계는: 제1 데이터를 제공하기 위해 메시지와 인증서를 연쇄시키는 단계; 제2 데이터를 제공하기 위해 키를 사용하여 제1 데이터를 복호화하는 단계; 결과를 제공하기 위해 식별자를 사용하여 제2 데이터를 복호화하는 단계; 및 결과를 키와 비교하는 단계를 포함한다.
일 실시예에서, 식별자는 제1 공개 식별자이고, 컴퓨팅 디바이스는 제1 공개 식별자를 생성하는데 사용되는 제1 디바이스 비밀을 저장하고, 지침은 적어도 하나의 프로세서에 : 컴퓨팅 디바이스에 교체 명령을 발송할 것을 지시하도록 추가로 구성되고, 교체 명령은 컴퓨팅 디바이스로 하여금 제1 디바이스 비밀을 제2 디바이스 비밀로 교체하게 하고, 컴퓨팅 디바이스로부터, 제2 디바이스 비밀을 사용하여 생성된 제2 공개 식별자를 수신하게 한다.
일 실시예에서, 컴퓨팅 디바이스는 도출된 비밀을 제공하는 메시지 인증 코드에 대한 입력으로서 제2 디바이스 비밀을 사용하고, 도출된 비밀을 사용하여 제2 공개 식별자를 생성하도록 구성된다.
일 실시예에서, 교체 명령은 제1 디바이스 비밀에 기초한 값을 갖는 필드를 포함한다.
일 실시예에서, 시스템은 프레시니스를 생성하도록 구성된 프레시니스 메커니즘을 더 포함하고, 컴퓨팅 디바이스에 발송된 메시지는 프레시니스를 포함한다.
일 실시예에서, 컴퓨팅 디바이스의 아이덴티티는 영숫자 스트링을 포함한다.
일 실시예에서, 비일시적 컴퓨터 저장 매체는 컴퓨팅 디바이스에서 실행될 때 컴퓨팅 디바이스로 하여금 적어도: 호스트 디바이스로부터 메시지를 수신하고; 식별자, 인증서, 및 키를 생성하고, 식별자는 컴퓨팅 디바이스의 아이덴티티에 대응하고, 인증서는 메시지를 사용하여 생성되고; 및 식별자, 인증서, 및 키를 컴퓨팅 디바이스의 아이덴티티를 검증하는데 사용하기 위해 호스트 디바이스에 발송하게 하는 지침을 저장한다.
일 실시예에서, 식별자는 개인 식별자와 연관된 공개 식별자이고, 키는 개인 키와 연관된 공개 키이고, 인증서를 생성하는 단계는 : 제1 데이터를 제공하기 위해 메시지를 공개 키와 연쇄시키는 단계; 제2 데이터를 제공하기 위해 개인 식별자를 사용하여 제1 데이터를 암호화하는 단계; 및 인증서를 제공하기 위해 개인 키를 사용하여 제2 데이터를 암호화하는 단계를 포함한다.
일 실시예에서, 컴퓨팅 디바이스의 아이덴티티를 검증하는 단계는 결과를 제공하기 위해 식별자를 사용하여 복호화 동작을 수행하는 단계, 및 그 결과를 키와 비교하는 단계를 포함한다.
PUF(Physical Unclonable Function)을 사용하여 값 생성
아래에 개시된 적어도 일부 실시예는 물리적 복제 방지 기능(PUF)을 사용하여 값을 생성하기 위한 개선된 아키텍처를 제공한다. 일부 실시예들에서, PUF 값은 그 자체가 디바이스 비밀로서 사용될 수 있거나, 디바이스 비밀을 생성하기 위해 사용될 수 있다. 일 예에서, PUF 값은 상기에서 설명된 DICE-RIoT 프로토콜과 사용하기 위한 UDS(unique device secret)로서 사용된다(예를 들어, 도 5a 및 도 5b 참조). 일 예에서, PUF에 의해 생성된 값은 MAC(message authentication code)에 대한 입력으로 사용된다. MAC의 출력은 UDS로서 사용된다.
일부 실시예에서, PUF 값, 또는 PUF 값으로부터 생성된 값은 난수(예를 들어, 디바이스 특정 난수)로서 사용될 수 있다. 일 예에서, 난수(예를 들어, RND)는 상기에서 설명된 비대칭 키 제너레이터를 통해 연관된 공개 키 및 개인 키를 생성할 때 입력으로 사용된다(예를 들어, 도 6 참조).
일반적으로, 아래 아키텍처는 하나 이상의 PUF로부터 제공된 입력을 메시지 인증 코드(MAC)에 공급함으로써 출력을 생성한다. MAC의 출력은 향상된 PUF(예를 들어, 상기의 UDS)를 제공한다.
일반적으로, 반도체 칩 제조업체는 예를 들어, 반도체 웨이퍼로부터 제공되는 각각의 칩 또는 다이에 대한 고유한 비밀 키를 프로그래밍하는 키 주입 문제에 직면해 있다. 칩에 주입된 비밀 키가 누출되거나 노출되지 않도록 안전한 환경에서 키 주입을 수행하는 것이 바람직하다. 또한 칩 생산 후에 키가 해킹되거나 다시 판독될 수 없도록 하는 것이 바람직하다. 예를 들어, 키 주입 절차가 제3자 인프라스트럭처에서 인증되거나 실행되는 경우가 있다.
칩 제조업체는 암호화 능력을 포함하는 칩의 생산 비용을 줄이기를 원한다. 칩 제조업체는 또한 제조된 칩의 일관된 레벨의 보안 성능을 유지하면서 생산 흐름을 단순화하기를 원한다. 그러나, 키 주입은 더 비싼 생산 단계 중 하나이다.
칩 제조업체는 또한 의사 난수 제너레이터로 사용될 때 PUF의 균일성을 개선하는 문제에 직면한다. 일부 경우에, 이 문제는 PUF에 의해 제공되는 시드 값(seed value)을 기반으로 하는 현상으로 인해 다이스(dice) 간의 교차 상관을 포함할 수 있다.
PUF는 예를 들어, 각각의 다이에 대해 고유한 온칩 기생 효과, 온칩 경로 지연 등과 같은 예측할 수 없는 물리적 현상을 기반으로 한다. 이러한 현상은 예를 들어, 의사 난수 제너레이터에 시드 값을 제공하는데 사용된다.
생산 라인에서 선택된 두 개의 서로 다른 칩은 상이한 PUF 값을 가져야 한다. 각각의 칩에서 생성된 PUF 값은 디바이스의 수명 동안 변경되지 않아야 한다. 두 칩이 유사한 키를 가지고 있는 경우(예를 들어, 그것들 사이에 낮은 해밍 거리(Hamming distance)가 있는 경우), 한 칩의 키를 사용하여 다른 칩의 키를 추측하는 것이 가능할 수 있다(예를 들어, 역상(preimage) 해커 공격).
아래에 설명된 개선된 PUF 아키텍처를 사용하면 각각의 칩 또는 다이에 PUF의 기능을 제공하기에 적절한 출력 값을 제공함으로써 하나 이상의 상기의 문제에 대한 솔루션을 제공할 수 있다. 아래의 개선된 PUF 아키텍처는 각각의 칩 또는 다이가 칩 또는 다이의 전원을 켤 때마다 고유한 보안 키를 자동으로 생성할 수 있도록 하는 PUF를 사용한다. 보안 키는 해킹되거나 손상될 수 있는 비휘발성 메모리에 저장될 필요가 없다.
개선된 PUF 아키텍처는 예를 들어, 반도체 칩에 통합되는 암호화 기능 또는 프로세스에 의해 사용하기 위한 개선된 PUF 출력(예를 들어, 고유 키)을 생성하기 위해 MAC을 추가로 사용한다. 예를 들어, MAC을 사용하면 상이한 칩에서 생성된 키 간의 해밍 거리가 증가할 수 있다.
본 출원에 개시된 적어도 일부 실시예에서, MAC로부터의 출력을 사용하는 개선된 PUF 아키텍처는 시드 또는 다른 값을 생성하는 방식으로 제공된다. 따라서, 개선된 PUF 아키텍처는 예를 들어, 제조 비용을 줄이고 최종 칩에서 PUF 동작의 신뢰성 및/또는 균일성을 개선하는 키 주입을 수행하는 방법을 제공한다.
일 실시예에서, 방법은 : 적어도 하나의 PUF에 의해, 적어도 하나의 값을 제공하는 단계; 및 MAC에 기초하여, 제1 출력을 생성하는 단계를 포함하고, MAC은 제1 출력을 생성하기 위한 입력으로서 적어도 하나의 PUF에 의해 제공된 적어도 하나의 값을 사용한다.
일 실시예에서, 시스템은 : 적어도 하나의 PUF 디바이스; 상기 적어도 하나의 PUF 디바이스에 의해 제공되는 적어도 하나의 값에 기초하여 제1 입력을 수신하도록 구성된 메시지 인증 코드 MAC 모듈; 적어도 하나의 프로세서; 및 제1 입력에 기초하여 MAC 모듈로부터의 제1 출력을 생성하도록 적어도 하나의 프로세서에 지시하도록 구성된 명령을 포함하는 메모리를 포함한다. 다양한 실시예에서, MAC 모듈은 하드웨어 및/또는 소프트웨어를 사용하여 구현될 수 있다.
일 실시예에서, 시스템은 MAC 모듈에 값을 제공하는데 사용하기 위해 PUF 디바이스 중 하나 이상을 선택하는데 사용되는 선택기 모듈을 더 포함한다. 예를 들어, 여러 PUF 디바이스로부터 제공되는 값을 링크하여 MAC 모듈에 대한 입력으로 제공할 수 있다. 다양한 실시예에서, 선택기 모듈은 하드웨어 및/또는 소프트웨어를 사용하여 구현될 수 있다.
도 10은 일 실시예에 따른 물리적 복제 방지 기능(PUF) 디바이스(121)로부터 입력을 수신하는 메시지 인증 코드(MAC)(123)의 출력으로부터 고유 키(125)를 생성하기 위한 시스템을 도시한다. 시스템은 메시지 인증 코드(MAC) 모듈(123)의 출력으로부터 고유 키(125)(또는 다른 값)를 생성하는데 사용되는 PUF 아키텍처(111)를 제공한다. MAC 모듈(123)은 물리적 복제 방지 기능(PUF) 디바이스(121)로부터 획득된 입력 값을 수신한다.
도 10의 PUF 디바이스(121)는 예를 들어, 다양한 상이한 공지된 유형의 PUF 중 임의의 하나일 수 있다. MAC 모듈(123)은, 예를 들어, SHA1, SHA2, MD5, CRC, TIGER 등과 같은 단방향 기능을 제공한다.
아키텍처(111)는, 예를 들어, 칩들 간에 생성된 PUF 값 또는 코드의 해밍 거리를 개선할 수 있다. MAC 기능은 예측할 수 없다(예를 들어, MAC 기능에 제공된 단일 비트 차이가 있는 입력 시퀀스는 두 개의 완전히 다른 출력 결과를 제공함). 따라서, MAC 기능에 대한 입력은 출력에 대한 지식만 있으면 인식하거나 판별할 수 없다. 아키텍처(111)는 또한 예를 들어, 의사 난수 제너레이터로서 PUF의 균일성을 개선할 수 있다.
일 예에서, PUF 아키텍처(111)에 의해 생성된 값(예를 들어, 고유 키(125) 또는 다른 값)은 N 비트를 갖는 숫자일 수 있으며, 여기서 N은 PUF 아키텍처(111)를 포함하는 칩(예를 들어, 메모리 디바이스(103) 또는 다른 디바이스)에 구현된 암호화 알고리즘에 의존한다. 일 예에서, 칩은 HMAC-SHA256을 사용하는 암호화 기능을 구현하며, 이 경우 MAC 모듈(123)로부터의 출력은 256비트의 크기 N을 갖는다. MAC 모듈(123)로부터의 출력의 사용은 키로 사용하기에 (추가 압축 또는 패딩(padding)을 필요로 하지 않고)적절한 출력 값에 대한 메시지 길이를 제공한다.
PUF 아키텍처(111)는 예시된 메모리 디바이스(103)와 같은 디바이스에서 구현되거나, 예를 들어, 웨이퍼 제조 생산 라인에 의해 제공되는 다수의 반도체 칩에서 구현되는 집적 회로와 같은 다른 유형의 컴퓨팅 디바이스에서 구현될 수 있다.
일 실시예에서, MAC 모듈(123)은 예를 들어, 메모리 디바이스(103)에 대한 암호화 기능을 제공할 수 있는 암호화 모듈(127)과 협력 및/또는 그 내부로 또는 그 일부로서 통합된다. 예를 들어, MAC 모듈(123)의 출력은 MAC이 다른 암호화 목적으로 메모리 디바이스(103)에 의해 사용되기 때문에 키로 사용하기에 적합해야 한다.
PUF 아키텍처(111), 암호화 모듈(127), 및/또는 메모리 디바이스(103)의 다른 기능의 동작은 컨트롤러(107)에 의해 제어될 수 있다. 컨트롤러(107)는 예를 들어, 하나 이상의 마이크로프로세서를 포함할 수 있다.
도 10에서, 호스트(101)는 통신 채널을 통해 메모리 디바이스(103)와 통신할 수 있다. 호스트(101)는 메모리 디바이스(103)와 같은 컴퓨터 주변 디바이스가 인터커넥트(interconnect) 예컨대, 컴퓨터 버스(예를 들어, PCI(Peripheral Component Interconnect), PCI eXtended(PCI-X), PCI Express(PCIe)), 통신 부분 및/또는 컴퓨터 네트워크를 통해 부착될 수 있는 하나 이상의 중앙 프로세싱 유닛(CPU)을 갖는 컴퓨터일 수 있다.
일 실시예에서, 고유 키(125)는 메모리 디바이스(103)에 대한 아이덴티티를 제공하기 위해 UDS로서 사용된다. 컨트롤러(107)는 DICE-RIoT 아키텍처에서 계층 0 L0 및 계층 1 L1을 구현한다. 호스트 인터페이스(105)를 통해 호스트(101)로부터 호스트 메시지를 수신한 것에 응답하여, 암호화 모듈(127)은 전술한 바와 같이 트리플을 생성하기 위한 프로세싱을 수행한다. 호스트(101)는 트리플을 사용하여 메모리 디바이스(103)의 아이덴티티를 검증한다. 메모리 디바이스(103)는 컴퓨팅 디바이스(141)의 예이다.
예시적인 설명을 위해, 전형적으로 두 가지 기술적 문제가 있다는 것에 주목할 수 있다. 제1 문제는 호스트에 보드의 아이덴티티를 증명하는 것이다. DICE-RIoT에 대해 상기에서 논의한 것과 같이 공개 트리플 및 비대칭 암호화를 사용하여 문제를 처리할 수 있다. 이 접근 방식은 안전하고 우아하지만, 일부 경우에, 회로부 보드 자체에서 직접 사용하기에는 너무 비싸고 시간이 많이 걸릴 수 있다. 제2 문제는 보드에 있는 메모리의 아이덴티티를 보드에 증명하는 것이다(예를 들어, 인증되지 않은 메모리 교체를 방지하기 위해)(이것은 예를 들어, 전원을 켤 때마다 수행됨). 제2 문제는 위의 공개 트리플 및 비대칭 암호화를 사용하여 해결될 수 있다. 그러나, 단순히 MAC 기능에 기반한 더 가벼운 보안 메커니즘은 종종 제2 문제를 처리하는데 충분하다.
메모리 디바이스(103)는 호스트(101)에 대한 데이터를 예를 들어, 비휘발성 저장 매체(109)에 저장하는데 사용될 수 있다. 일반적으로 메모리 디바이스의 예는 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD), 플래시 메모리, 동적 랜덤 액세스 메모리, 자기 테이프, 네트워크 부착 저장 디바이스 등을 포함한다. 메모리 디바이스(103)는 통신 채널을 사용하여 호스트(101)와의 통신을 구현하는 호스트 인터페이스(105)를 갖는다. 예를 들어, 호스트(101)와 메모리 디바이스(103) 사이의 통신 채널은 일 실시예에서 PCI Express 또는 PCle(Peripheral Component Interconnect Express) 버스이고; 호스트(101)와 메모리 디바이스(103)는 NVMe 프로토콜(NVMHCI(Non-Volatile Memory Host Controller Interface Specification), NVMe(NVM Express)라고도 함)을 사용하여 서로 통신한다.
일부 구현예에서, 호스트(101)와 메모리 디바이스(103) 사이의 통신 채널은 컴퓨터 네트워크 예컨대, 근거리 통신망, 무선 근거리 통신망, 무선 개인 통신망, 셀룰러 통신망, 광대역 고속 상시 연결 무선 통신 연결(예를 들어, 현재 또는 미래 세대의 모바일 네트워크 링크)를 포함하고; 호스트(101)와 메모리 디바이스(103)는 NVMe 프로토콜과 유사한 데이터 저장 관리 및 사용 명령을 사용하여 서로 통신하도록 구성될 수 있다.
컨트롤러(107)는 호스트(101)로부터의 통신에 응답하는 동작 및/또는 다른 동작을 수행하기 위해 펌웨어(104)를 실행할 수 있다. 일반적으로 펌웨어는 엔지니어링 컴퓨팅 디바이스의 제어, 모니터링 및 데이터 조작을 제공하는 일종의 컴퓨터 프로그램이다. 도 10에서, 펌웨어(104)는 아래에서 추가로 논의되는 바와 같이 PUF 아키텍처(111)의 동작과 같은 메모리 디바이스(103)를 동작함에 있어서 컨트롤러(107)의 동작을 제어한다.
메모리 디바이스(103)는 강성 디스크에 코팅된 자성 재료 및/또는 집적 회로의 메모리 셀과 같은 비휘발성 저장 매체(109)를 갖는다. 저장 매체(109)는 비휘발성 저장 매체(109)에 저장된 데이터/정보를 유지하기 위해 전력이 필요하지 않다는 점에서 비휘발성이며, 이 데이터/정보는 비휘발성 저장 매체(109)의 전원이 꺼졌다가 다시 켜진 후에 검색될 수 있다. 메모리 셀은 NANDgate 기반 플래시 메모리, PCM(Phase-Change Memory), MRAM(Magnetic Memory), 저항성 랜덤 액세스 메모리 및 3D XPoint와 같은 다양한 메모리/저장 기술을 사용하여 구현될 수 있어서, 저장 매체(109)는 비휘발성이며 전원 없이 며칠, 몇 달, 몇 년 동안 저장된 데이터를 유지할 수 있다.
메모리 디바이스(103)는 컨트롤러(107)의 계산 성능을 개선하고 및/또는 호스트(101)와 비휘발성 저장 매체(109) 사이에서 전송되는 데이터를 위한 버퍼를 제공하기 위해 컨트롤러(107)에 의해 사용되는 지침 및 런타임 데이터의 저장을 위한 휘발성 DRAM(Dynamic Random-Access Memory)(106)을 포함한다. DRAM(106)은 내부에 저장된 데이터/정보를 유지하기 위해 전원이 필요하다는 점에서 휘발성이며, 전원이 차단되면 데이터/정보가 즉시 또는 빠르게 손실된다.
휘발성 DRAM(106)은 전형적으로 비휘발성 저장 매체(109)보다 레이턴시가 짧지만 전원이 제거되면 데이터가 빠르게 손실된다. 따라서, 성능을 개선하기 위해 현재 컴퓨팅 작업에서 컨트롤러(107)에 사용되는 지침 및 데이터를 일시적으로 저장하기 위해 휘발성 DRAM(106)을 사용하는 것이 유리하다. 일부 예에서, 휘발성 DRAM(106)은 일부 애플리케이션에서 DRAM보다 더 적은 전력을 사용하는 휘발성 SRAM(Static Random-Access Memory)으로 교체된다. 비휘발성 저장 매체(109)가 휘발성 DRAM(106)에 필적하는 데이터 액세스 성능(예를 들어, 레이턴시, 판독/기록 속도)을 가질 때, 휘발성 DRAM(106)은 제거될 수 있고; 컨트롤러(107)는 휘발성 DRAM(106) 상에서 동작하는 대신 지침 및 데이터를 위해 비휘발성 저장 매체(109) 상에서 동작함으로써 계산을 수행할 수 있다.
예를 들어, 교차점(cross point) 저장 및 메모리 디바이스(예를 들어, 3D XPoint 메모리)는 휘발성 DRAM(106)에 필적하는 데이터 액세스 성능을 가지고 있다. 교차점 메모리 디바이스는 트랜지스터가 없는 메모리 소자를 사용하며, 각각 소자는 메모리 셀과 선택기가 하나의 열(column)로 적층되어 있다. 메모리 소자 열은 2개의 수직 와이어 계층을 통해 연결되며, 하나는 메모리 소자 열 위에 있고, 다른 하나는 메모리 소자 열 아래에 있다. 각각의 메모리 소자는 두 계층 각각에 있는 한 와이어의 교차점에서 개별적으로 선택될 수 있다. 교차점 메모리 디바이스는 빠르고 비휘발성이며 프로세싱 및 저장을 위한 통합 메모리 풀(pool)로 사용될 수 있다.
일부 예에서, 컨트롤러(107)는 휘발성 DRAM(106) 및/또는 비휘발성 저장 매체(109)보다 우수한 데이터 액세스 성능을 가진 인프로세서(in-processor) 캐시 메모리를 가지고 있다. 따라서, 현재 컴퓨팅 작업에 사용되는 지침 및 데이터의 일부는 컨트롤러(107)의 컴퓨팅 동작 동안 컨트롤러(107)의 인프로세서 캐시 메모리에 캐싱된다. 일부 예에서, 컨트롤러(107)는 다수의 프로세서를 갖고, 각각은 자신의 인프로세서 캐시 메모리를 갖는다.
옵션으로, 컨트롤러(107)는 메모리 디바이스(103)에 구성된 데이터 및/또는 지침을 사용하여 데이터 집약적인 인메모리 처리를 수행한다. 예를 들어, 호스트(101)으로부터의 요청에 응답하여, 컨트롤러(107)는 실시간 메모리 디바이스(103)에 저장된 데이터 세트의 분석을 수행하고, 응답으로서 감소된 데이터 세트를 호스트(101)에 전달한다. 예를 들어, 일부 애플리케이션에서, 메모리 디바이스(103)는 센서 입력을 저장하기 위해 실시간 센서에 연결되고; 컨트롤러(107)의 프로세서는 메모리 디바이스(103) 및/또는 호스트(101)를 통해 적어도 부분적으로 구현되는 인공 지능(AI) 시스템을 지원하기 위해 센서 입력에 기초하여 기계 학습 및/또는 패턴 인식을 수행하도록 구성된다.
일부 구현에서, 컨트롤러(107)의 프로세서는 컴퓨터 칩 제조에서 메모리(예를 들어, 106 또는 109)와 통합되어 메모리에서의 프로세싱을 가능하게 하고 폰 노이만(von Neumann) 아키텍처에 따라 별도로 구성된 프로세서와 메모리 간의 데이터 이동 레이턴시로 인한 스루풋 제한의 결과로 컴퓨팅 성능을 제한하는 폰 노이만 병목 현상을 극복한다. 프로세싱과 메모리의 통합은 프로세싱 속도와 메모리 전송 속도를 높이고 레이턴시와 전력 사용량을 줄인다.
메모리 디바이스(103)는 클라우드 컴퓨팅 시스템, 에지 컴퓨팅 시스템, 포그(fog) 컴퓨팅 시스템 및/또는 독립형 컴퓨터와 같은 다양한 컴퓨팅 시스템에서 사용될 수 있다. 클라우드 컴퓨팅 시스템에서, 원격 컴퓨터 서버는 네트워크로 연결되어 데이터를 저장, 관리 및 프로세싱한다. 에지 컴퓨팅 시스템은 데이터 소스에 가까운 컴퓨터 네트워크의 에지에서 데이터 프로세싱을 수행하여 클라우드 컴퓨팅을 최적화하므로 중앙 집중식 서버 및/또는 데이터 저장소와의 데이터 통신을 줄인다. 포그 컴퓨팅 시스템은 하나 이상의 최종 사용자 디바이스 또는 근거리 사용자 에지 디바이스를 사용하여 데이터를 저장하므로 중앙 집중식 데이터 웨어하우스에 데이터를 저장할 필요성을 줄이거나 없앤다.
본 출원에 개시된 적어도 일부 실시예는 펌웨어(104)와 같은 컨트롤러(107)에 의해 실행되는 컴퓨터 지침을 사용하여 구현될 수 있다. 일부 경우에, 하드웨어 회로는 펌웨어(104)의 기능 중 적어도 일부를 구현하기 위해 사용될 수 있다. 펌웨어(104)는 초기에 비휘발성 저장 매체(109) 또는 다른 비휘발성 디바이스에 저장될 수 있고, 컨트롤러(107)에 의한 실행을 위해 휘발성 DRAM(106) 및/또는 인프로세서 캐시 메모리에 로딩될 수 있다.
예를 들어, 펌웨어(104)는 PUF 아키텍처를 동작하는데 있어서 아래에서 논의되는 기술들을 사용하도록 구성될 수 있다. 그러나, 아래에서 논의되는 기술은 상기에서 논의된 예 및/또는 도 10의 컴퓨터 시스템에서 사용되는 것에 한정되지 않는다.
일부 구현에서, MAC 모듈(123)의 출력은 예를 들어, 루트 키 또는 시드 값을 제공하는데 사용될 수 있다. 다른 구현에서, 출력은 하나 이상의 세션 키를 생성하는데 사용될 수 있다.
일 실시예에서, MAC 모듈(123)의 출력은 다른 컴퓨팅 디바이스로 송신될 수 있다. 예를 들어, 고유 키(125)는 호스트 인터페이스(105)를 통해 호스트(101)로 송신될 수 있다.
도 11은 일 실시예에 따른 선택기 모듈(204)에 의해 선택된 하나 이상의 PUF 디바이스로부터 입력을 수신하는 MAC(123)의 출력으로부터 고유 키(125)를 생성하기 위한 시스템을 도시한다. 시스템은 도 10의 아키텍처(111)와 유사한 PUF 아키텍처를 사용하여 MAC 모듈(123)의 출력으로부터 고유 키(125)를 생성하지만, 그러나, 일 실시예에 따라 다수의 PUF 디바이스(202) 및 선택기 모듈(204)을 포함한다. MAC 모듈(123)은 선택기 모듈(204)에 의해 선택된 하나 이상의 PUF 디바이스(202)로부터 입력을 수신한다. 일 예에서, PUF 디바이스(202)는 PUF 디바이스(121)를 포함한다.
PUF 디바이스들(202)은 예를 들어, 동일하거나 상이할 수 있다(예를 들어, 상이한 랜덤 물리적 현상에 기초하여). 일 실시예에서, 선택기 모듈(204)은 MAC 모듈(123)에 대한 입력으로서 제공할 값을 획득할 PUF 디바이스(202) 중 하나 이상을 선택하기 위한 지능형 PUF 선택 블록 또는 회로의 역할을 한다.
일 실시예에서, 선택기 모듈(204)은 PUF 디바이스(202)를 테스트한 결과에 적어도 부분적으로 기초하여 PUF 디바이스(202)를 선택한다. 예를 들어, 선택기 모듈(204)은 각각의 PUF 디바이스(202)의 반복성을 테스트할 수 있다. 임의의 PUF 디바이스(202)가 테스트에 실패하면, 선택기 모듈(204)은 MAC 모듈(123)에 입력 값을 제공하는 것에서 실패한 디바이스를 제외한다. 일 예에서, 실패한 디바이스는 일시적으로 또는 무기한으로 제외될 수 있다.
일부 구현에서, 선택기 모듈(204)은 생산 동안 및/또는 현장에서 사용하는 동안(예를 들어, 각각의 PUF 디바이스(202)에 의해 제공되는 값의 반복성을 검사함으로써) 각각의 칩의 PUF 기능을 테스트하는 것을 허용한다. 주어진 PUF 디바이스에 의해 제공되는 둘 이상의 값이 다른 경우, PUF 디바이스는 고장난 것으로 결정되고 MAC 모듈(123)에 대한 입력으로서 사용에서 제외된다.
일 실시예에서, 선택기 모듈(204)은 MAC 모듈(123)로부터의 개선된 PUF 출력을 계산하기 위한 소스로서 다수의 PUF 디바이스(202)를 동시에 사용하는데 사용된다. 예를 들어, 선택기 모듈(204)은 MAC 모듈(123)에 대한 입력으로서 제공하기 위해 제1 PUF 디바이스로부터의 값을 제2 PUF 디바이스로부터의 값과 링크할 수 있다. 일부 구현들에서, 이 아키텍처는 몇몇 상이한 물리적 현상에 대한 의존성으로 인해 강건한(robust) PUF 출력을 획득하는 것을 허용한다.
도 12는 일 실시예에 따른, 하나 이상의 PUF 디바이스로부터의 입력 및 모노토닉 카운터(302)로부터의 입력(및/또는 NONCE, 타임스탬프 등과 같은 다른 프레시니스 메커니즘으로부터의 입력)을 수신하는 MAC의 출력으로부터 고유 키를 생성하기 위한 시스템을 도시한다. 시스템은 일 실시예에 따른 MAC 모듈(123)의 출력으로부터 고유 키(125)를 생성한다. 도 12에 도시된 PUF 아키텍처는 모노토닉 카운터(302)가 선택기 모듈(204)에 값을 제공하기 위해 포함되는 것을 제외하고는 도 11에 도시된 PUF 아키텍처와 유사하다. 다양한 실시예에서, 모노토닉 카운터(302)는 하드웨어 및/또는 소프트웨어를 사용하여 구현될 수 있다.
MAC 모듈(123)은 하나 이상의 PUF 디바이스(202)로부터 입력을 수신하고, 모노토닉 카운터(302)로부터 입력을 수신한다. 일 예에서, PUF 디바이스(202) 및 모노토닉 카운터(302)로부터 획득된 값은 링크되고 그런 다음 MAC 모듈(123)에 대한 입력으로서 제공된다. 일부 구현에서, 모노토닉 카운터(302)는 요청될 때만 값을 증분시키는 비휘발성 카운터이다. 일부 실시예에서, 모노토닉 카운터(302)는 칩의 각각의 전원켜기 사이클 후에 증분된다.
일부 구현에서, 도 12의 PUF 아키텍처는 반도체 칩과 예를 들어, 공개 키 메커니즘과 같은 애플리케이션의 다른 컴포넌트 간에 키를 안전하게 공유하는 방법을 제공하는데 사용될 수 있다.
일부 구현에서, 모노토닉 카운터(302)는 PUF의 각각의 계산 전에 증분되며, 이는 MAC 모듈(123)의 입력이 각각의 사이클에서 다르므로 제공된 출력(및/또는 출력 패턴)은 다른 것을 보장한다. 일부 예에서, 이 접근 방식은 세션 키를 생성하는데 사용할 수 있으며, 여기서 각각의 세션 키가 상이하다.
일부 실시예에서, 선택기 모듈(204)은 MAC 모듈(123)에 대한 입력으로서 카운터 값을 제공하는 것으로부터 모노토닉 카운터(302)(또는 NONCE, 타임스탬프와 같은 다른 프레시니스 메커니즘)를 선택적으로 포함하거나 배제할 수 있다.
일부 실시예에서, 모노토닉 카운터(302)는 또한 암호화 모듈(127)에 의해 사용된다. 일부 실시예에서, 모노토닉 카운터를 포함하는 PUF 아키텍처는 세션 키 제너레이터로 사용되어 각각의 사이클에서 다른 키를 보장할 수 있다. 일부 구현에서, 생성된 세션 키는 다음과 같은 방식으로 보호된다 : 세션 키 = MAC [하나 이상의 PUF | MTC 또는 다른 프레시니스]
다른 실시예에서, 메커니즘은 다음과 같이 사용된다:
세션 키 = MACkey_기반 [Root_Key, MTC 또는 다른 프레시니스 메커니즘]
여기서:Root_Key = 위의 MAC 모듈(123)에서 제공되는 출력 값 또는 칩에 있는 임의의 다른 종류의 키.
위의 MACkey_기반 기능은 예를 들어, 비밀키 기반의 MAC 알고리즘이다. 예를 들어, 암호화에는 두 가지 유형의 MAC 알고리즘이 있을 수 있다:
1. 예를 들어, HMAC 계열(HMAC-SHA256은 키 기반)과 같은 비밀 키를 기반으로 하는 알고리즘.
2. 예를 들어, SHA256과 같은 비밀 키를 기반으로 하지 않는 알고리즘(SHA 독립 실행형은 키 기반이 아님).
키 기반 MAC은 키를 알려진 값(예를 들어, 0x000… 0xFFFF 등…)으로 설정하여 키 기반이 아닌 MAC으로 변환될 수 있다는 것에 유의하여야 한다.
도 13은 일 실시예에 따른 하나 이상의 PUF로부터 제공되는 하나 이상의 입력 값을 사용하는 MAC으로부터 출력을 생성하는 방법을 도시한다. 예를 들어, 도 13의 방법은 도 10의 메모리 디바이스(103)로 구현될 수 있다.
도 13의 방법은 블록(411)에서 적어도 하나의 PUF에 의해 하나 이상의 값을 제공하는 단계(예를 들어, PUF 디바이스(202) 중 하나 이상으로부터 값을 제공하는 단계)를 포함한다.
블록(413)에서, 예를 들어, 상기에서 설명된 바와 같이 PUF들 중 하나 이상의 반복성이 테스트될 수 있다. 이 테스트는 옵션이다.
블록 (415)에서, 블록 (413)에서 테스트가 수행되었고 PUF 디바이스가 테스트에 실패한 것으로 결정되면, 실패한 PUF 디바이스는 MAC에 대한 입력을 제공하는 것으로부터 제외된다. 이러한 배제는 예를 들어, 상기에서 논의된 바와 같이 선택기 모듈(204)에 의해 수행될 수 있다.
블록(417)에서, 모노토닉 카운터(예를 들어, 모노토닉 카운터(302))로부터 값이 제공된다. PUF 아키텍처에서 모노토닉 카운터 사용은 옵션이다.
블록 (419)에서, MAC에 대한 입력으로서 PUF에 의해 제공되는 하나 이상의 값(및 옵션으로 모노토닉 카운터로부터의 적어도 하나의 값)을 사용하는 MAC으로부터 출력이 생성된다.
이제 컴퓨팅 디바이스에서 구현되는 방법에 대한 다양한 다른 실시예가 아래에서 설명되며, 상기 방법은 적어도 하나의 물리적 복제 방지 기능(PUF)에 의해 적어도 하나의 값을 제공하는 단계; 및 메시지 인증 코드(MAC)에 기초하여 제1 출력을 생성하는 단계를 포함하며, 상기 MAC은 상기 제1 출력을 생성하기 위한 입력으로서 상기 적어도 하나의 PUF에 의해 제공되는 적어도 하나의 값을 사용한다.
일 실시예에서, 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스이고, 방법은 제1 출력을 제2 컴퓨팅 디바이스로 송신하는 단계를 더 포함하고, 상기 제1 출력은 제1 컴퓨팅 디바이스의 고유 식별자이다.
일 실시예에서, 적어도 하나의 값을 제공하는 단계는 제1 PUF로부터 제1 값을 선택하고, 제2 PUF로부터 제2 값을 선택하는 단계를 포함한다.
일 실시예에서, 방법은 모노토닉 카운터로부터 값을 제공하는 단계; 제1 출력을 생성하는 단계는 제1 출력을 생성하기 위해 MAC에 대한 추가 입력으로서 모노토닉 카운터로부터의 값을 사용하는 단계를 더 포함한다.
일 실시예에서, 상기 방법은 MAC에 의해 제공되는 개별 출력에 기초하여 복수의 세션 키를 생성하는 단계로서, 상기 모노토닉 카운터는 MAC에 대한 입력으로서 사용되는 값을 제공하는, 상기 생성하는 단계; 및 상기 세션 키들 각각을 생성한 후 상기 모노토닉 카운터를 증분시키는 단계를 더 포함한다.
일 실시예에서, 상기 방법은: 적어도 하나의 PUF 중 제1 PUF의 반복성을 테스트하는 단계; 및 제1 PUF가 테스트에 실패했다는 결정에 기초하여, 제1 출력을 생성할 때 MAC에 임의의 입력을 제공하는 것에서 제1 PUF를 제외하는 단계를 포함한다.
일 실시예에서, 테스트는 제1 PUF에 의해 제공되는 둘 이상의 값을 비교하는 단계를 포함한다.
일 실시예에서, 컴퓨팅 디바이스는 메모리 디바이스이고, 메모리 디바이스는 MAC을 사용하여 생성된 출력 값을 저장하도록 구성된 비휘발성 저장 매체를 포함한다.
일 실시예에서, 방법은 적어도 하나의 프로세서에 의해 적어도 하나의 암호화 기능을 수행하는 단계를 더 포함하고, 상기 적어도 하나의 암호화 기능을 수행하는 단계는 MAC을 사용하여 생성된 출력 값을 사용하는 단계를 포함한다.
일 실시예에서, 비일시적 컴퓨터 저장 매체는 메모리 디바이스(예를 들어, 메모리 디바이스(103))에서 실행될 때 메모리 디바이스로 하여금 방법을 수행하게 하는 지침을 저장하며, 상기 방법은 : 하나 이상의 물리적 복제 방지 기능(PUF)에 의해, 적어도 하나의 값을 제공하는 단계; 및 메시지 인증 코드(MAC)에 기초하여 제1 출력을 생성하는 단계를 포함하며, 상기 MAC은 상기 제1 출력을 생성하기 위한 입력으로서 상기 적어도 하나의 PUF에 의해 제공되는 적어도 하나의 값을 사용한다.
아래에 설명된 다양한 다른 실시예에서, 도 4의 방법은 다음을 포함하는 시스템에서 수행될 수 있다: 적어도 하나의 물리적 복제 방지 기능(PUF) 디바이스; 상기 적어도 하나의 PUF 디바이스에 의해 제공되는 적어도 하나의 값에 기초하여 제1 입력을 수신하도록 구성된 메시지 인증 코드(MAC) 모듈; 적어도 하나의 프로세서; 및 제1 입력에 기초하여 MAC 모듈로부터의 제1 출력을 생성하도록 적어도 하나의 프로세서에 지시하도록 구성된 지침을 포함하는 메모리.
일 실시예에서, MAC 모듈은 회로를 포함한다. 일 실시예에서, MAC 모듈로부터의 제1 출력은 다이를 식별하는 키이다. 일 실시예에서, MAC 모듈로부터의 제1 출력은 루트 키(root key)이고, 지침은 MAC 모듈로부터의 출력을 사용하여 세션 키를 생성하도록 적어도 하나의 프로세서에 지시하도록 추가로 구성된다.
일 실시예에서, 시스템은 반도체 칩의 일부이고(예를 들어, 반도체 웨이퍼로부터 획득된 여러 칩 중 하나의 칩), MAC 모듈의 제1 출력은 칩을 식별하는 고유한 값이고, 상기 지침은 고유 값을 컴퓨팅 디바이스에 송신하도록 적어도 하나의 프로세서에 지시하도록 추가로 구성된다.
일 실시예에서, 적어도 하나의 PUF 디바이스는 복수의 PUF 디바이스들(예를 들어, PUF 디바이스들(202))을 포함하고, 시스템은 적어도 하나 값을 제공하는 적어도 하나의 PUF 디바이스를 선택하도록 구성된 선택기 모듈을 더 포함한다.
일 실시예에서, 선택기 모듈은 제1 PUF 디바이스로부터의 제1 값과 제2 PUF 디바이스로부터의 제2 값을 링크시킴으로써 MAC 모듈에 대한 제1 입력을 생성하도록 추가로 구성된다.
일 실시예에서, 시스템은 카운터 값을 제공하도록 구성된 모노토닉 카운터를 더 포함하고, 지침은 적어도 하나의 PUF 디바이스에 의해 제공되는 적어도 하나의 값과 카운터 값을 링크시킴으로써 제1 입력을 생성하도록 적어도 하나의 프로세서에 지시하도록 추가로 구성된다.
일 실시예에서, 시스템은 적어도 하나의 값을 제공하는 적어도 하나의 PUF 디바이스를 선택하도록 구성된 선택기 모듈을 더 포함하고, 상기 카운터 값을 적어도 하나의 PUF 디바이스에 의해 제공되는 적어도 하나의 값과 링크시키는 단계 선택기 모듈에 의해 수행된다.
일 실시예에서, 모노토닉 카운터는 제1 입력을 생성한 후에 증분된 값을 제공하기 위해 카운터 값을 증분하도록 추가로 구성되며; 상기 지침은 상기 적어도 하나의 PUF 디바이스에 의해 제공되는 적어도 하나의 새로운 값 및 상기 증분된 값에 기초하여, 상기 MAC 모듈로부터 제2 출력을 생성하도록 상기 적어도 하나의 프로세서에 명령하도록 추가로 구성된다.
도 14는 일 실시예에 따른 세션 키를 생성하기 위해 추가적인 MAC을 추가하고, 하나 이상의 PUF 디바이스로부터의 입력 및 모노토닉 카운터로부터의 입력(및/또는 NONCE, 타임 스탬프 등과 같은 다른 프레시니스 메커니즘으로부터의 입력)을 수신하는 MAC의 출력으로부터 루트 키를 생성하기 위한 시스템을 도시한다.
일 실시예에서, 시스템은 일 실시예에 따른 루트 키 입력을 사용하여 세션 키를 생성하기 위해 추가적인 MAC 모듈(504)을 추가하고, 하나 이상의 PUF 디바이스(202)로부터 입력을 수신하고, 모노토닉 카운터(302)로부터의 입력(및/또는 NONCE, 타임 스탬프 등과 같은 다른 프레시니스 메커니즘으로부터의 입력)을 수신하는 MAC의 출력으로부터 루트 키를 생성한다. 이 실시예에서, MAC 모듈(123)은 MAC 모듈(123)로부터의 출력으로서 루트 키(502)를 제공한다. 루트 키(502)는 MAC 모듈(504)에 대한 입력이며, 이는 상기에서 설명된 세션 키 = MACkey_기반 [Root_Key, MTC 또는 다른 프레시니스 메커니즘]과 같은 MAC 기능을 사용할 수 있다. 이 키 기반 기능의 루트 키 입력은 예시된 바와 같이 루트 키(502)일 수 있다.
추가로, 일 실시예에서, 모노토닉 카운터(302)는 MAC 모듈(504)에 입력을 제공할 수 있다. 다른 실시예에서, 다른 모노토닉 카운터 또는 칩으로부터의 다른 값이 모노토닉 카운터(302)를 사용하는 대신 MAC 모듈(504)에 대한 입력으로서 제공될 수 있다. 일부 경우에, 모노토닉 카운터(302)는 MAC 모듈(504)에 카운터 값을 제공하지만 선택기 모듈(204)에는 제공하지 않는다. 다른 경우에, 카운터 값은 두 MAC 모듈에 제공되거나 두 모듈에서 제외될 수 있다.
키 생성 및 보안 저장
상기에서 언급한 바와 같이, PUF는 보안 키 생성에 사용될 수 있다. 아래에서 논의되는 다양한 실시예는 적어도 하나의 PUF를 사용하여 초기 키를 생성하고, 초기 키의 난독화를 증가시키기 위한 프로세싱을 적용하고, 최종 난독화 키를 비휘발성 메모리에 저장하는 것에 관한 것이다. 최종 난독화 키 및/또는 최종 난독화 키를 생성하는데 사용되는 중간 키는 다른 컴퓨팅 디바이스와 공유될 수 있고 다른 컴퓨팅 디바이스와의 보안 통신(예를 들어, 공유 키에 기반한 대칭 암호화를 사용한 메시징)에 사용될 수 있다. 일부 실시예에서, 보안 키 생성은 자동차 애플리케이션(예를 들어, 자율 주행 차량의 컨트롤러)에서 사용되는 컴퓨팅 디바이스에 대해 수행된다.
대안적인 실시예에서, 초기 키는 상기의 적어도 하나의 PUF를 사용할 필요가 없는 다른 방식으로 생성된다. 일 실시예에서, 초기 키는 주입된 키를 사용하여 생성될 수 있다. 예를 들어, 초기 키는 공장이나 다른 안전한 환경에서 주입되어 칩에 존재한다. 이 경우, 초기 키의 난독화를 증가시키기 위한 프로세싱을적용하는 것은 주입된 키에 난독화 프로세싱을 적용하여 수행된다.
자동차 환경은 키 생성 단계 동안 "노이즈(noise)"을 도입하는 기술적 문제를 제시한다. 아래의 다양한 실시예는 비휘발성 메모리 영역 내부에 난독화된 키를 저장함으로써 이러한 유도된 노이즈로 인한 키 변동을 줄이거나 피하기 위한 방법론을 사용함으로써 이 문제에 대한 기술적 해결책을 제공한다.
자동차 환경은 다양한 방식으로 키 생성에 영향을 미칠 수 있다. 예를 들어, 엔진 전원을 켜면 컴퓨팅 디바이스에 대한 인가 파워가 저하되어 키가 잘못된 방식으로 생성될 수 있다. 극단적인 온도는 키를 생성하는 회로에도 영향을 미칠 수 있다. 전력선으로부터의 자기장과 같은 다른 소스는 심벌간(inter-symbol) 간섭 또는 누화를 일으켜 호스트가 디바이스를 인식하지 못하게 할 수 있다.
대조적으로, 키가 안전한 환경에서 생성되고 메모리에 저장된다면, 그것은 노이즈에 영향을 받지 않는다. 안전한 환경은 컴퓨팅 디바이스 제품의 최종 사용자(end user)/고객 간에 키를 전파하는데 사용되는 전략에 따라 예를 들어, 자동차, 테스트 환경 또는 공장(예를 들어, 키를 생성하는 컴퓨팅 디바이스를 제조하는)에 직접 장착될 수 있다.
일 예에서, 차량에 사용되는 ADAS 또는 다른 컴퓨팅 시스템은 전원 공급 디바이스의 변동에 영향을 받는다. 이것은 예를 들어, 차량을 켜고, 제동을 걸고, 엔진에 전력을 공급하는 동안 발생할 수 있다.
아래에서 논의되는 바와 같이 키를 생성 및 저장하기 위한 다양한 실시예는 외부 요인(예를 들어, 전원 변동, 온도 및 다른 외부 노이즈 소스)과 실질적으로 독립적이라는 장점을 제공한다. 일부 실시예의 또 다른 장점은 예를 들어, 매 사이클에 대해, 키 벡터의 생성이 동일하다는 것이다.
키를 저장할 때, 일부 실시예에서 제공되는 또 다른 장점은 키가 하드웨어 공격(예를 들어, 해커가 배치할 수 있음)에 대해 실질적으로 면역성이 있다는 것이다. 예를 들어, 하나의 이러한 공격은 현재 변동을 키와 관련된 비트와 연관시키기 위해 디바이스의 전원 켜짐 전류를 모니터링하는 것이다. 다른 공격은 예를 들어, 전압 측정(예를 들어, Vdd 공급 전압)을 사용할 수 있다. 일부 공격은 예를 들어, 온도 변화를 사용하여 디바이스 동작을 방해할 수 있다.
일부 실시예에서, 초기 키는 도 10 내지 도 14에 대해 상기에서 설명된 접근법 및/또는 아키텍처를 사용하여 생성될 수 있다. 예를 들어, PUF는 키를 저장하는 컴퓨팅 디바이스의 모든 전원 켜기 사이클에 대해 키를 생성하는데 사용된다. 대안적인 실시예에서, 초기 키를 생성하기 위해 다른 접근법이 사용될 수 있다.
하나의 예시적인 접근 방식에서, 앞서 상기에서 논의된 바와 같이, 키 주입은 적어도 하나의 PUF 및 MAC 알고리즘(예를 들어, SHA256)을 사용하여 다른 디바이스와 상당히 다른 디바이스에 대한 키를 생성한다. MAC 암호화 알고리즘은 PUF에 의해 생성된 비트의 엔트로피를 증가시키는 장점을 제공한다.
일 실시예에서, 생성된 키(예를 들어, PUF 및 MAC 알고리즘에서 제공되는 초기 키)는 해커 공격을 줄이거나 피하고 저장된 키의 신뢰성을 향상시키기 위해, 키에 대해 전처리가 수행된 후 디바이스의 비휘발성 영역에 저장된다. 일 실시예에서, 키가 저장된 후, 키를 생성하는 회로가 비활성화될 수 있다. 전처리는 일반적으로 본 출원에서 난독화 프로세싱으로 지칭된다. 일 예에서, 회로부 및/또는 다른 로직이 디바이스에서 난독화 프로세싱을 구현하는데 사용된다. 일 예에서, 키는 외부 노이즈 소스와 독립적이기 때문에 저장된 키는 디바이스에 의해 판독될 수 있다. 내부 메커니즘은 디바이스의 임의의 데이터를 판독하는데 사용된다.
다양한 실시예에서, 본 출원에서 설명된 키를 저장하는 것은 노이즈에 대한 마진을 증가시킨다. 또한 이는 해커가 전력 모니터링이나 다른 해킹 방법을 사용하여 저장된 키를 판독 어렵게 만든다.
본 출원에서 적어도 일부 실시예는 PUF 및 암호화 알고리즘(예를 들어, HMAC-SHA256)을 사용하여 그렇지 않으면 키가 디바이스의 전원을 켤 때부터 다음 전원을 켤 때까지 달라질 수 있는 온도 또는 전압과 같은 외부 요인과 독립적으로 키 생성을 만들 수 있다. 이 경우, 호스트가 디바이스와 메시지를 교환할 수 있는 것이 문제가 될 수 있다. 다양한 실시예는 외부 요인에 의해 영향을 받지 않도록 메모리에 저장된 키를 배치함으로써 키 생성을 보다 강건하게 한다.
일 실시예에서, 키는 디바이스에서 한 번 생성되고, 디바이스의 비휘발성 메모리에 저장된다. 일 예에서, 키는 리셋이 SRAM에 적용되기 전에 SRAM의 콘텐츠를 사용하여 생성될 수 있다. PUF의 함수인 키는 PUF로부터 출력되는 의사 랜덤 값을 이용하여 생성된다. SRAM의 콘텐츠는 기기 또는 다른 디바이스를 리셋하기 전에 판독된다. 원하는 대로 명령 시퀀스를 통해 다른 시간에 키를 다시 생성할 수도 있다. 일 예에서, 생성된 키는 상기에서 설명된 바와 같이 DICE-RIoT 프로토콜에서 UDS로 사용된다. 일 예에서, 명령 시퀀스는 상기에서 설명된 바와 같이 이전에 생성된 UDS를 새로운 UDS로 교체하기 위해 교체 명령을 사용한다.
일 실시예에서, 키 생성은 디바이스에 의해 구현되는 암호화와 무관하다. 생성된 키는 호스트와 공유된다. 이 실시예는 예를 들어, 키 사용 동안 디바이스가 흡수하는 전류의 형상을 분석함으로써 공격자가 키를 추측하고 이를 내부적으로 사용하는 것을 방지하는 방식으로 디바이스에 키를 저장하고/하거나 키를 판독한다.
또한, 예를 들어, 비대칭 암호화에서 생성된 키는 시스템의 비밀 키인 가변 암호(variable password)가 된다. 키는 다른 사람과 공유되지 않는다. 공개 키 암호화의 경우, 키는 해당 공개 키를 생성하는데 사용된다.
다양한 실시예에서, 주입된 키를 사용하거나 하나 이상의 PUF를 사용하여(예를 들어, 초기 키 PUF0을 제공하기 위해) 초기 키가 생성된다. 그런 다음 초기 키는 아래에 설명된 것과 같은 중간 키(예를 들어, PUF1, PUF2, …, PUF5)를 제공하기 위해 하나 이상의 난독화 프로세싱 단계를 거친다. 이 프로세싱으로부터의 출력(예를 들어, PUF5)은 디바이스의 비휘발성 메모리에 저장된 난독화된 키이다. 주입된 키를 사용할 때, PUF0의 비제한적인 예에 대해 아래에 설명된 것과 유사하게 난독화 프로세싱이 주입된 키에 적용된다.
일 실시예에서, 상기에서 언급한 바와 같이, 초기 주입된 키의 경우에 메커니즘이 다음과 같이 사용된다:
세션 키 = MACkey_기반 [Root_Key, MTC 또는 다른 최신 메커니즘]
여기서: Root_Key = 칩에 존재하는 다른 종류의 키(예를 들어, 키는 공장 또는 다른 보안 환경에서 칩에 주입된 초기 키일 수 있음)
일 실시예에서, 디바이스의 제1 전원이 켜질 때, 특수 시퀀스는 디바이스의 적어도 하나의 회로(예를 들어, 판독 회로)를 깨우고 회로(들)가 적절하게 실행되고 있는지 검증한다. 그런 다음 디바이스는 상기에서 언급한 바와 같이 초기 키 PUF0을 생성한다. 이 키는 아래에 설명된 대로 저장하거나 추가 프로세싱하여 보안 저장을 위해 더욱 강건하게 만들 수 있다.
중간 키인 PUF1은 PUF0을 미리 결정된 비트 시퀀스(예를 들어, 다른 사람이 알고 있는 시퀀스)와 연쇄시켜 PUF1을 생성함으로써 생성된다. 일 실시예에서, PUF1은 키를 올바르게 판독하는 디바이스의 능력을 검증하고 전력 공급의 변동과 같은 노이즈가 생성된 키에 영향을 미치지 않는 것을 보증하는데 사용된다.
다음 중간 키 PUF2가 생성된다. PUF1은 PUF2를 생성하기 위해 반전된 비트 패턴(예를 들어, PUF1의 비트를 반전함으로써 형성되고, 때때로 본 출원에서 PUF1 바(bar)로 지칭됨)과 인터리빙(interleave)된다.
일 실시예에서, PUF2는 0과 1의 동일한 비트 수를 갖는다. 이것은 디바이스의 형상을 임의의 키(예를 들어, 디바이스에 저장된 임의의 키)에 대해 실질적으로 동일하게 만든다. 이렇게 하면 디바이스에 의해 키가 판독될 때 디바이스 전류의 형상을 보고 공격자가 키 값을 추측할 가능성이 줄어든다.
다음 중간 키인 PUF3가 생성된다. PUF2의 비트는 의사 랜덤 비트와 인터리빙되어 PUF3을 형성한다. 이것은 키를 난독화하는데 더 도움이 된다. 일 실시예에서, 의사 랜덤 비트는 해시 함수를 사용하여 PUF1 또는 PUF2로부터 도출된다. 예를 들어, 이러한 도출 비트는 PUF2에 추가 되어 PUF3을 형성한다.
다음 중간 키 PUF4가 생성된다. 에러 정정 코드(ECC)는 디바이스의 내부 회로부에 의해 생성된다(예를 들어, 프로그래밍 동안에). ECC의 비트는 PUF3에 추가 되어 PUF4를 생성한다. 일 실시예에서, ECC 비트는 예를 들어, 디바이스 내구성 한계, X선 및 입자에 의해 야기될 수 있는 비휘발성 메모리(예를 들어, NVRAM) 에이징(aging)의 영향으로부터 보호하는 것을 돕는다. 비휘발성 메모리 에이징은 예를 들어, 비트 플립(flip)을 유발할 수 있는 NV 셀의 전자 수 증가로 인해 발생할 수도 있다.
다음 중간 키 PUF5가 생성된다. PUF5는 PUF4의 여러 사본을 연쇄시킨 것이다. PUF5에 존재하는 다수의 PUF4 사본의 중복성을 갖는 것은 나중에 키를 올바르게 판독할 수 있는 가능성을 증가시켜 강건성을 더욱 증가시킨다. 일 실시예에서, PUF5의 여러 사본은 강건성을 추가로 증가시키기 위해 비휘발성 메모리 저장소의 다양한 영역에 저장된다. 예를 들어, 한 영역에서 PUF5가 손상되더라도 다른 영역에서 PUF5를 판독할 수 있으므로 올바른 키가 추출될 수 있다.
일 실시예에서, PUF1 또는 PUF3은 대칭 암호화를 위해 호스트와 공유되거나 비대칭 암호화를 위한 공개 키를 생성하는데 사용되는 키이다. 일 실시예에서, PUF4 및 PUF5는 최종 사용자 또는 호스트와 공유되지 않는다.
상기의 접근 방식은 PUF2, PUF3, PUF4 및/또는 PUF5가 난독화된 키를 생성하는데 필요하지 않다는 점에서 모듈식이다. 대신, 다양한 실시예에서, 전술한 난독화 단계 중 하나 이상이 초기 키에 적용될 수 있고, 더 나아가 순서가 변경될 수 있다. 예를 들어, Vdd 전압 공급 강하가 없는 것으로 알려진 시스템의 경우, 난독화 단계 수를 줄일 수 있다.
일 실시예에서, 난독화된 키를 저장할 때, 비트 패턴은 비휘발성 저장 매체 주위에 물리적으로 확산될 것이다(예를 들어, 다른 행 및 단어로). 예를 들어, 디바이스는 비트를 동시에 판독하고 다수의 비트 에러로부터 보호할 수 있다.
도 15는 일 실시예에 따른 난독화된 키(635)를 비휘발성 메모리(예를 들어, 비휘발성 저장 매체(109))에 저장하기 위한 컴퓨팅 디바이스(603)를 도시한다. 컴퓨팅 디바이스(603)는 도 1의 컴퓨팅 디바이스(141)의 예이다. 일 예에서, 난독화된 키는 UDS로 사용된다. (주의) 예를 들어, 난독화는 키의 값을 이해하려는 해커의 가능한 시도를 피하기 위해 키의 비트에 엔트로피(entropy)를 추가한다. 디바이스는 난독화로 사용되는 추가 비트를 제거하여 항상 키를 추출할 수 있다. 일 예에서, 일반적인 해커 공격은 통계 도구를 사용하여 특정 시간 프레임에 디바이스에 의해 흡수된 전류 프로파일을 프로세싱함으로써 디바이스 내부에서 생성/정교화된 비밀 키를 추측하는 것으로 구성된다. 난독화는 이 문제를 상당히 완화한다.
초기 키(625)는 적어도 하나의 물리적 복제 방지 기능 디바이스(121)에 의해 제공되는 값을 기반으로 생성된다. 난독화된 키(635)는 초기 키(625)를 기반으로 생성된다. 난독화된 키(635)는 생성된 후 비휘발성 저장 매체 (109)에 저장된다.
일 실시예에서, 메시지 인증 코드(MAC)(123)는 입력으로서 PUF 디바이스(121)로부터의 값을 사용하고 출력으로서 초기 키(625)를 제공한다. 일 실시예에서, 난독화 프로세싱 모듈(630)은 예를 들어, 상기에서 논의된 바와 같이 난독화된 키(635)(예를 들어, PUF5)를 제공하기 위해 초기 키(625)에 대한 프로세싱을 수행하는데 사용된다.
일 실시예에서, 난독화된 키(635)는 Mondello et al.에 의한 " SECURE DISTRIBUTION OF SECRET KEY USING A MONOTONIC COUNTER"라는 제목으로 2018년 4월 27일 출원된 관련 미국 정규 특허 출원 일련 번호 15/965,731에 설명된 바와 같이 다른 컴퓨팅 디바이스에 안전하게 배포되고, 이 출원의 전체 내용이 본 출원에 완전히 개시된 것처럼 참조로 통합된다. 다른 실시예에서, 초기 키(625) 및/또는 본 출원에서 설명된 난독화 프로세싱으로부터의 임의의 하나 이상의 중간 키가 동일하거나 유사한 방식으로 안전하게 배포될 수 있다. 옵션으로, 최종 사용자/고객은 초기 키(예를 들어, PUF0), 중간 키 및/또는 최종 난독화된 키(예를 들어, PUF5)의 값을 판독 위해 전술한 접근 방식을 사용한다. 예를 들어, 최종 사용자는 디바이스에 의한 내부 키 생성의 적절한 실행을 검증하고, 키 생성의 통계적 품질을 모니터링할 수 있다.
도 16은 일 실시예에 따른 난독화 프로세싱 모듈(630)에 의한 난독화 프로세스 동안 생성된 중간 키(PUF2)의 예를 도시한다. 상기에서 언급한 바와 같이, PUF1의 비트는 반전되어 반전된 비트(702)를 제공한다. 비트(702)는 예시된 바와 같이 PUF1의 비트와 인터리빙된다. 예를 들어, 예시된 키의 모든 제2 비트는 인터리빙된 반전 비트(702)이다.
도 17은 일 실시예에 따른 도 16의 난독화 프로세스 동안에 생성된 다른 중간 키(PUF3) (이 예에서, PUF3은 PUF2에 기초함)의 일 예를 도시한다. 상기에서 언급한 바와 같이, PUF2의 비트는 의사 랜덤 비트(802)와 추가로 인터리빙된다. 예시된 바와 같이, 비트(802)는 PUF2와 인터리빙된다. 예를 들어, 예시된 키의 모든 제3 비트는 인터리빙된 의사 랜덤 비트(802)이다.
도 18은 일 실시예에 따른 비휘발성 메모리(예를 들어, 비휘발성 저장 매체(109))에 난독화된 키(예를 들어, 난독화된 키(635))를 생성하고 저장하기 위한 방법을 도시한다. 일 예에서, 도 2의 메모리 시스템(105)은 난독화된 키를 비휘발성 메모리(121)에 저장한다.
블록(911)에서, 초기 키는 적어도 하나의 물리적 복제 방지 기능(PUF)에 의해 제공된 값에 기초하여 생성된다.
다른 실시예에서, 블록 (911)에서 초기 키는 키 주입에 의해 생성된다. 예를 들어, 초기 키는 제조 과정에서 칩에 주입된 값일 수 있다.
블록(913)에서, 초기 키에 기초하여 난독화된 키가 생성된다. 예를 들어, 생성된 난독화 키는 PUF3 또는 PUF5이다.
블록 (915)에서, 난독화된 키는 컴퓨팅 디바이스의 비휘발성 메모리에 저장된다. 예를 들어, 난독화된 키는 NAND 플래시 메모리 또는 EEPROM에 저장된다.
일 실시예에서, 방법은 키 주입을 사용하여 초기 키를 생성하는 단계; 상기 초기 키에 기초하여 난독화된 키를 생성하는 단계; 및 난독화된 키를 비휘발성 메모리에 저장하는 단계를 포함한다. 예를 들어, 초기 키는 제조 시 키 주입 프로세스 동안에 주입된 키일 수 있다.
일 실시예에서, 방법은 키 주입에 의해 또는 적어도 하나의 물리적 복제 방지 기능(PUF)에 의해 제공되는 값에 기초하여 제공되는 초기 키를 생성하는 단계; 상기 초기 키에 기초하여 난독화된 키를 생성하는 단계; 및 난독화된 키를 컴퓨팅 디바이스의 비휘발성 메모리에 저장하는 단계를 포함한다.
일 실시예에서, 초기 키를 생성하는 단계는 초기 키를 생성하기 위해 메시지 인증 코드(MAC)에 대한 입력으로서 PUF로부터의 값(또는, 예를 들어, 칩 상의 다른 값)을 사용하는 단계를 포함한다.
일 실시예에서, 난독화된 키는 사용자 어드레스 지정 가능 메모리 공간 외부의 비휘발성 메모리에 저장된다.
일 실시예에서, 난독화된 키를 생성하는 단계는 초기 키를 미리 결정된 비트 패턴과 연쇄시키는 단계를 포함한다.
일 실시예에서, 초기 키를 비트의 미리 결정된 패턴과 연쇄시키는 단계는 제1 키(예를 들어, PUF1)를 제공하고; 및 상기 난독화된 키를 생성하는 단계는 상기 제1 키를 반전된 비트 패턴과 인터리빙하는 단계를 더 포함하고, 상기 반전된 비트 패턴은 상기 제1 키의 비트를 반전시킴으로써 제공된다.
일 실시예에서, 제1 키를 반전된 비트 패턴과 인터리빙하는 단계는 제2 키(예를 들어, PUF2)를 제공하고; 난독화된 키를 생성하는 단계는 의사 랜덤 비트와 제2 키를 인터리빙하는 단계를 더 포함한다.
일 실시예에서, 방법은 해시 함수를 사용하여 제1 키 또는 제2 키로부터 의사 랜덤 비트를 도출하는 단계를 더 포함한다.
일 실시예에서, 의사 랜덤 비트와 제2 키를 인터리빙하는 단계는 제3 키(예를 들어, PUF3)를 제공하고; 난독화된 키를 생성하는 단계는 제3 키를 에러 정정 코드 비트와 연쇄시키는 단계를 더 포함한다.
일 실시예에서, 컴퓨팅 디바이스는 제1 컴퓨팅 디바이스이고, 방법은 초기 키, 제1 키, 또는 제3 키 중 적어도 하나를 제2 컴퓨팅 디바이스와 공유하는 단계, 및 공유된 초기 키, 제1 키 또는 제3 키 중 적어도 하나를 사용하여 암호화된 제2 컴퓨팅 디바이스로부터 메시지를 수신하는 단계를 더 포함한다.
일 실시예에서, 에러 정정 코드 비트와 제3 키를 연쇄시키는 단계는 제4 키(예를 들어, PUF4)를 제공하고; 난독화된 키를 생성하는 단계는 제4 키를 제4 키의 하나 이상의 사본과 연쇄시키는 단계를 더 포함한다.
일 실시예에서, 제4 키를 제4 키의 하나 이상의 사본과 연쇄시키는 단계는 제5 키(예를 들어, PUF5)를 제공하고; 난독화된 키를 저장하는 단계는 제5 키의 제2 사본이 저장된 행 또는 블록과 다른 비휘발성 메모리 행 또는 블록 중 적어도 하나에 제5 키의 제1 사본을 저장하는 단계를 포함한다.
일 실시예에서, 시스템은 : 제1 값을 제공하도록 구성된 적어도 하나의 물리적 복제 방지 기능(PUF) 디바이스(예를 들어, PUF 디바이스(121)); 난독화된 키(예를 들어, 키(635))를 저장하도록 구성된 비휘발성 메모리(예를 들어, 비휘발성 저장 매체(109)); 적어도 하나의 프로세서; 및 상기 적어도 하나의 프로세서에, 상기 적어도 하나의 PUF 디바이스에 의해 제공되는 제1 값에 기초하여 초기 키를 생성하고; 초기 키를 기반으로 난독화된 키를 생성하고; 및 난독화된 키를 비휘발성 메모리에 저장할 것을 지시하도록 구성된 지침을 포함하는 메모리를 포함한다.
일 실시예에서, 시스템은 적어도 하나의 PUF 디바이스에 의해 제공되는 값을 수신하도록 구성된 메시지 인증 코드(MAC) 모듈(예를 들어, MAC(123))을 더 포함하고, 상기 초기 키를 생성하는 것은 초기 키를 생성하기 위해 MAC 모듈에 대한 입력으로서 제1 값을 사용하는 것을 포함한다.
일 실시예에서, 난독화된 키를 생성하는 단계는 : 키를 미리 결정된 비트 패턴과 연쇄시키는 단계; 제1 키를 제1 키의 반전된 비트 패턴과 인터리빙하는 단계; 키를 의사 랜덤 비트와 인터리빙하는 단계; 에러 정정 코드 비트와 키를 연쇄시키는 단계; 또는 제2 키의 하나 이상의 사본과 제2 키를 연쇄시키는 단계 중 적어도 하나를 포함한다.
일 실시예에서, 저장된 난독화된 키는 동일한 수의 0비트와 1비트를 갖는다.
일 실시예에서, 난독화된 키를 생성하는 단계는 초기 키를 비트의 제1 패턴과 연쇄시키는 단계를 포함한다.
일 실시예에서, 초기 키를 비트의 제1 패턴과 연쇄시키는 것은 제1 키가 제공되고; 난독화된 키를 생성하는 단계는 제1 키를 비트의 제2 패턴과 인터리빙하는 단계를 더 포함한다.
일 실시예에서, 난독화된 키를 생성하는 단계는 키를 의사 랜덤 비트와 인터리빙하는 단계를 더 포함한다.
일 실시예에서, 난독화된 키를 생성하는 단계는 키를 에러 정정 코드 비트와 연쇄시키는 단계를 더 포함한다.
일 실시예에서, 비일시적 컴퓨터 저장 매체는 컴퓨팅 디바이스에서 실행될 때 컴퓨팅 디바이스로 하여금 방법을 수행하게 하는 지침을 저장하며, 상기 방법은 적어도 하나의 물리적 복제 방지 기능을 사용하여 초기 키를 생성하는 단계(PUF); 초기 키를 기반으로 난독화된 키를 생성하는 단계; 및 난독화된 키를 비휘발성 메모리에 저장하는 단계를 포함한다.
도 19는 일 실시예에 따른 키 주입(1010)에 기초하여 초기 키(625)를 생성하고, 초기 키를 난독화하고, 난독화된 키를 비휘발성 메모리에 저장하는데 사용되는 컴퓨팅 디바이스(1003)를 도시한다.
일 실시예에서, 초기 키(625)는 주입된 키(1010)를 사용하여 생성된다. 예를 들어, 초기 키(625)는 제조, 또는 다른 조립 또는 테스트 동안 공장 또는 다른 안전한 환경에서 주입됨으로써 칩에 존재한다. 일 예에서, 초기 키(625)는 컴퓨팅 디바이스(1003)에 대한 초기 UDS로서 사용된다. 난독화는 또한 UDS에 적용될 수 있다. UDS는 DICE-RIoT가 키 및 인증서의 보안 생성을 생성하기 위해 사용하기 시작하는 비밀이다. 초기 키의 난독화를 증가시키기 위한 프로세싱을 적용하는 것은 주입된 키(예를 들어, 키 주입(1010)으로부터의 값)에 난독화 프로세싱을 적용하여(예를 들어, 모듈 (630)을 통해) 수행된다. 다른 실시예에서, 난독화 프로세싱은 칩 또는 다이에 저장되거나 그렇지 않으면 존재할 수 있는 임의의 다른 값에 적용될 수 있다.
키 생성 및 보안 저장의 변형
다양한 추가의 비제한적인 실시예가 이제 아래에서 설명된다. 일 실시예에서, 시스템 보드의 최초 전원 공급 이후(또는 동안), 암호화 엔진(예를 들어, 암호화 모듈(127))을 포함하는 디바이스를 켜기 위해 특별한 시퀀스가 활성화된다. 시퀀스는 내부 PUF를 추가로 깨우고(wake-up) 그 기능을 검증하고, 그런 다음 PUF는 예를 들어, 상기에서 설명된 초기 값 PUF0을 생성한다. PUF0 값은 온칩 알고리즘에 의해(예를 들어, 난독화 프로세싱 모듈(630)에 의해) 프로세싱되고 비휘발성 어레이의 특정 영역(사용자 어드레스 지정 가능 공간 외부)에 기록된다. 대안적인 실시예에서, PUF0 값 대신에, 주입된 키는 저장을 위한 난독화된 키를 제공하기 위해 후술되는 바와 유사하게 온칩 알고리즘에 의해 프로세싱된다.
일 실시예에서, 난독화 프로세싱은 Vdd(전압) 및/또는 온도 오류 해커 공격을 방지하기 위해 수행된다. 이 프로세싱에는 PUF0을 잘 알려진 패턴(예를 들어, 고정된 양의 0/1 비트 포함)과 연쇄시키는 것이 포함된다. 이러한 비트는 디바이스(예를 들어, 칩)의 수명 동안 PUF 값이 내부적으로 판독될 때, 판독 회로부가 0/1 비트를 적절하게 구별할 수 있는지 여부를 결정할 수 있도록 한다. 예를 들어, PUF1 =PUF0 || 010101…01
다음으로, 위의 프로세싱(예를 들어, PUF1)의 결과는 (예를 들어, Icc 해커 분석을 피하기 위해) 더미 비트로 추가로 구현된다. 구체적으로, 예를 들어, PUF1의 비트는 PUF1의 반전된 버전(즉, PUF1의 각각의 비트를 반전하여 형성되는 PUF1 바)과 인터리빙된이다. 예를 들어, PUF2= PUF1 인터리빙된 PUF1 바.
일 실시예에서, 인터리빙의 규칙은 칩/디바이스에 존재하는 (예를 들어, NV 비휘발성 어레이의) 열 디코더의 종류에 따라 다르다. 이 디바이스는 (비휘발성 어레이에서) PUF 값을 판독할 때마다, 판독 회로부가 PUF1 및 PUF1 바에서 동일한 수의 비트를 (단일 샷으로) 프로세싱하는 것을 보장한다. 이렇게 하면 공급 전류(Idd)에서 규칙적인 형상을 제공하는 0 및 1 값에서 동일한 수의 비트를 판독하는 것을 보장한다.
다음으로, PUF2의 비트는 의사 랜덤 비트와 추가로 인터리빙된다. 일 예에서, 인터리빙은 비휘발성 어레이 열 디코더 구조에 따라 다르다. 일 실시예에서, 출력은 특정 수의 의사 랜덤 비트로 채워진 동일한 수의 PUF2 비트를 갖는다 (예를 들어, PUF2 패턴에 존재할 수 있는 최종 잔여 상관을 난독화하기 위해).
일 실시예에서, 의사 랜덤 비트는 해시 함수를 사용하여 PUF1 또는 PUF2로부터 도출될 수 있다. 다른 대체 접근 방식도 사용될 수 있다.
일 실시예에서, 옵션으로, 비휘발성 에이징으로 인한 비트 손실을 줄이거나 방지하기 위해, PUF3의 비트는 에러 정정 코드(ECC) 비트와 연쇄된다. 일 실시예에서, PUF4의 비트는 옵션으로 1회 이상 복제된다(이는 또한 ECC 능력을 확장함). 예를 들어, 전술한 것은 NAND 메모리 상에서 구현될 수 있다. 일 예에서, PUF5 =PUF4 || PUF4 || … || PUF4
일 실시예에서, PUF5의 값은 비휘발성 메모리 어레이의 다른 행 및/또는 블록에 두 번 이상 기록될 수 있다.
상기의 난독화 프로세싱의 결과로, 예를 들어, 최종 PUF 값이 비휘발성 어레이 블록에 기록되면, 해당 값을 사용하여 키 신뢰성(예를 들어, 노이즈, 또는 전하 손실)에 대한 우려, 또는 Vdd 오류 공격에 의해 그 값을 강제하거나 Idd 분석에 의해 그 값을 유추하려는 임의의 시도가 감소되거나 전혀 고려되지 않는다.
일 실시예에서, 난독화 프로세싱이 완료되면 PUF 회로부가 비활성화될 수 있다. 일 실시예에서, 비활성화 후, PUF 디바이스는 다른 목적을 위해 디바이스에서 내부적으로 사용되는 값을 제공할 수 있다(예를 들어, 비휘발성 어레이 내부의 표준 판독 동작을 사용하여).
일 실시예에서, 키 비트는 PUF3로부터 키를 추출할 때 랜덤 비트와 구별된다. 예를 들어, 키를 저장하는 디바이스의 내부 로직은 PUF 5에서 이전 또는 원래 PUF(예를 들어, PUF3)로 리턴하는데 필요한 위치와 방법을 알고 있다.
일 실시예에서, 키 비트의 비트 위치는 키를 추출하는 디바이스에 의해 알려져 있다. 예를 들어, 디바이스의 내부 로직은 디자인 선택에 따라 중간 PUF 또는 최종 키 PUF5 중 하나를 수신할 수 있다. 그런 다음 역순으로 동작을 적용하면 원래 PUF를 획득할 것이다. 예를 들어, PUF1에서 PUF5까지의 프로세싱 단계는 해커가 콘텐츠(예를 들어, 키 비트)를 판독하고, 및 원래 키로 돌아가서 결정하기 위해 적용된 동작(들)을 알아야 하는 방식으로 난독화된 PUF를 저장하기 위해 실행된다.
PUF를 사용하여 컴퓨팅 디바이스에 대한 아이덴티티 생성
이제 물리적 복제 방지 기능(PUF)을 사용하여 컴퓨팅 디바이스에 대한 아이덴티티를 생성하는 것과 관련된 다양한 실시예가 이하에서 설명된다. 이하의 설명의 일반성은 상기에서 설명된 다양한 실시예에 의해 제한되지 않는다.
이전 접근 방식에서, 컴퓨팅 디바이스에 대한 아이덴티티를 수립하기 위해 컴퓨팅 디바이스의 제조업체가 해당 컴퓨팅 디바이스를 구매하는 고객과 하나 이상의 비밀 키를 공유할 필요가 있다. 그러나, 비밀키를 공유하는 것은 고객과 키를 공유하기 위한 번거롭고 복잡하며 값비싼 보안 채널과 인프라스트럭처가 필요하기 때문에 기술적인 문제를 야기한다. 또한, 키 공유를 구현하려면 개인 서비스가 필요하다. 더욱이, 전술한 보안 요구 사항은 보안 조치가 해커 또는 다른 인증되지 않은 사람에 의해 손상될 수 있는 위험을 증가시킬 수 있다.
아래에서 논의되는 본 개시의 다양한 실시예들은 상기의 기술적 문제들에 대한 기술적 해결책을 제공한다. 다양한 실시예에서, 컴퓨팅 디바이스는 하나 이상의 PUF를 사용하여 아이덴티티를 생성한다. 일 예에서, 아이덴티티는 UDS이다.
일 실시예에서, 컴퓨팅 디바이스에 대한 아이덴티티의 생성은 자동 방식으로 할당된다(예를 들어, 예정된 시간 또는 미리 결정된 이벤트의 발생에 기초하여, 컴퓨팅 디바이스가 PUF를 사용하여 UDS를 자체 생성할 것이다). PUF를 사용하여 아이덴티티를 할당함으로써, 아이덴티티 할당의 복잡성과 비용을 줄일 수 있다.
컴퓨팅 디바이스가 아이덴티티를 생성한 후, 그것은 식별자, 인증서 및 키의 트리플(triple)을 생성하는데 사용될 수 있다. 일 실시예에서, 트리플은 호스트 디바이스로부터 메시지를 수신하는 것에 응답하여 생성된다. 호스트 디바이스는 생성된 식별자, 인증서 및 키를 사용하여 컴퓨팅 디바이스의 아이덴티티를 검증할 수 있다. 아이덴티티가 검증된 후, 호스트 디바이스와 컴퓨팅 디바이스에 의한 추가 보안 통신이 키를 사용하여 수행될 수 있다.
일부 실시예에서, 컴퓨팅 디바이스는 호스트 디바이스로부터 명령을 수신하는 것에 응답하여 아이덴티티를 생성한다. 예를 들어, 명령은 컴퓨팅 디바이스에 의해 인증되는 보안 교체 명령일 수 있다. 아이덴티티를 생성한 후, 컴퓨팅 디바이스는 교체 아이덴티티가 생성되었음을 확인하기 위해 확인 메시지(confirmation message)를 호스트 디바이스에 발송한다. 일 예에서, 교체 아이덴티티는 비휘발성 메모리에 저장되고 이전에 저장된 UDS(예를 들어, 컴퓨팅 디바이스의 원래 제조자에 의해 할당된 UDS)를 교체하는 새로운 UDS이다.
일 실시예에서, 아이덴티티는 컴퓨팅 디바이스의 메모리에 저장된 디바이스 비밀 (예를 들어, 예컨대, 상기에서 논의된 DICE-RIoT 프로토콜에서 사용되는 UDS)이다. 적어도 하나의 값은 컴퓨팅 디바이스의 하나 이상의 PUF에 의해 제공된다. 컴퓨팅 디바이스는 KDF(key derivative function)를 사용하여 디바이스 비밀을 생성한다. 하나 이상의 PUF에 제공된 값(들)은 KDF에 대한 입력(들)이다. KDF의 출력은 디바이스 비밀(device secret)을 제공한다. KDF의 출력은 디바이스 비밀로서 컴퓨팅 디바이스의 메모리에 저장된다.
일 예에서, KDF는 해시(hash)이다. 일 예에서, KDF는 메시지 인증 코드이다.
일 실시예에서, 컴퓨팅 디바이스는 호스트 디바이스와 통신하는데 사용되는 비밀 키를 저장하고, KDF는 메시지 인증 코드(MAC)이다. 하나 이상의 PUF에 의해 제공되는 적어도 하나의 값은 MAC에 대한 제1 입력이고, 비밀 키는 MAC에 대한 제2 입력으로 사용된다.
일부 예에서, 컴퓨팅 디바이스는 플래시 메모리 디바이스일 수 있다. 예를 들어, 직렬 NOR가 사용될 수 있다.
도 20은 일 실시예에 따른 물리적 복제 방지 기능(PUF)(2005)을 사용하여 아이덴티티(예를 들어, 컴퓨팅 디바이스(141)용 UDS)를 생성하는데 사용되는 컴퓨팅 디바이스(141)를 도시한다. 보다 구체적으로, 값은 PUF (2005)에 의해 제공된다. 이 값은 키 도출 함수(KDF) (2007)에 대한 입력으로 제공된다. KDF의 출력은 디바이스 비밀(149)로 저장된다.
일 실시예에서, 디바이스 비밀(149)은 DICE-RIoT 프로토콜에서 사용되는 UDS이다. 상기에서 설명된 것과 유사하게, UDS는 호스트 디바이스(151)로 발송하기 위한 트리플을 생성하기 위한 베이시스(basis)로 사용될 수 있다. 이 트리플은 컴퓨팅 디바이스(141)와의 보안 통신을 위해 호스트 디바이스(151)에 의해 사용될 수 있는 공개 키를 포함한다.
일 실시예에서, 디바이스 비밀의 생성은 호스트 인터페이스(2009)를 통해 호스트 디바이스(151)로부터 명령을 수신하는 것에 응답하여 수행된다. 일 예에서, 명령은 교체 명령이다. 일 예에서, 명령은 비밀 키를 사용하여 호스트 디바이스(151)에 의해 서명된 서명(signature)를 수반한다. 디바이스 비밀을 생성한 후, 확인 메시지는 호스트 인터페이스(2009)를 통해 호스트 디바이스(151)로 발송된다.
일 실시예에서, 컴퓨팅 디바이스(141)는 비밀 키(2013)를 저장한다. 예를 들어, 비밀 키(2013)는 호스트 디바이스(151)와 공유될 수 있다. 일 예에서, 호스트 디바이스(151)는 비밀 키(2013)를 사용하여 교체 명령과 함께 발송된 서명에 서명하기 위해 비밀 키(2013)를 사용한다.
일 실시예에서, KDF(2007)는 메시지 인증 코드이다. 비밀 키(2013)는 디바이스 비밀을 생성할 때 KDF(2007)에 대한 키 입력으로 사용된다. PUF(2005)으로부터의 값은 KDF(2007)에 대한 데이터 입력으로 사용된다.
프레시니스 메커니즘(freshness mechanism)은 모노토닉 카운터(2003)를 사용하여 컴퓨팅 디바이스(141)에서 구현된다. 모노토닉 카운터(2003)는 호스트 디바이스(151)와의 보안 통신에서 프레시니스로 사용하기 위한 값을 제공할 수 있다.
고유 식별자(UID)(2001)는 컴퓨팅 디바이스(141)의 메모리에 저장된다. 예를 들어, UID(2001)는 공장에서 주입된다.
일 실시예에서, 컴퓨팅 디바이스(141)는 잘 알려진 UDS(예를 들어, 진부한(trivial) UDS = 0x00000…000 또는 이와 유사한 것)를 가진 고객에게 전달된다. 고객은 공장에서 호스트 디바이스(151)를 사용하여 컴퓨팅 디바이스(141)가 새로운 UDS(예를 들어, UDS_puf)를 자체 생성하도록 요청한다. 이 단계는 인증된 명령을 사용하여 수행될 수 있다. 비밀 키(2013)를 알고 있는 고객 또는 호스트 디바이스 만이 이 동작을 수행할 수 있다 (예를 들어, 비밀 키(2013)는 컴퓨팅 디바이스(141)에 의해 지원되는 인증된 명령 세트를 관리하기 위해 보다 일반적으로 사용될 수 있음).
UDS_puf가 생성되면, 그것은 원래(진부한) UDS를 교체하는데 사용된다. 교체는 인증된 명령을 사용하여 발생한다. 외부 호스트 디바이스(고객)는 UDS_puf를 판독할 수 있다.
생성된 UDS_puf는 DICE-RIoT 프로토콜을 구현하는데 사용될 수 있다. 예를 들어, FDS는 식별 컴포넌트(147) 및 식별 컴포넌트(107)에 대해 상기에서 설명된 것과 유사하게 UDS_puf를 사용하여 계산될 수 있다. 일 예에서, FDS = HMAC-SHA256[UDS, SHA256("L1의 아이덴티티")]이다.
또한, 식별자, 인증서 및 키를 포함하는 트리플(예를 들어, KL1)은 도 1에 대해 상기 설명된 것과 유사하게 UDS_puf를 사용하여 생성될 수 있다. 호스트 디바이스는 컴퓨팅 디바이스(141)와의 신뢰할 수 있는 통신을 위해 키(예를 들어, KL1공개)를 사용한다.
일 실시예에서, 상기의 아이덴티티 생성 메커니즘은 애플리케이션 보드를 처음 사용할 때 컴퓨팅 디바이스(예를 들어, 프로세서를 포함하는 애플리케이션 보드)에 의해 자동으로, 또는 예정된 또는 미리 결정된 이벤트(예를 들어, 고객에 의해 스케줄링/결정되고, 업데이트 등과 같은 컴퓨팅 디바이스의 구성으로서 메모리(145)에 저장됨)가 발생하면 현장에서 실행될 수 있다.
일 실시예에서, 셀프 아이덴티티(self-identity) 생성은 다음과 같이 수행된다: 구성기 호스트 디바이스(configurator host device)(예를 들어, 소프트웨어가 있는 랩톱)는 자율 주행 차량 버스에 결합된 컴퓨팅 디바이스에 연결된다(예를 들어, 보안 무선 인터페이스 등). 호스트 디바이스는 인증된 명령을 사용하여 컴퓨팅 디바이스가 UDS(예를 들어, UDSPUF)를 자체 생성하도록 요청한다. 인증은 비밀 키 (2013)을 기반으로 한다(예를 들어, 비밀 키는 제조업체에 의해 주입되고, 보안 인프라를 통해 고객에게 제공될 수 있음).
인증된 명령 실행은 인증된 응답(예를 들어, 도 20에 예시된 "확인")으로 확인된다. UDSPUF 생성이 끝나면 호스트 디바이스는 보안 프로토콜을 사용하여 생성된 UDSPUF에 대해 알린다 (예를 들어, 모노토닉 카운터(2003)에 의해 제공되는 프레시니스를 사용하여 보안 유선 및/또는 무선 네트워크(들)을 통해 발송함으로써).
일 실시예에서, 호스트 인터페이스(2009)는 인증 및 재생 보호 명령을 지원하는 명령 인터페이스이다. 일 실시예에서, 인증은 비밀 키(예를 들어, 비밀 키(2013))에 기초하고, MAC 알고리즘(예를 들어, HMAC)을 사용한다. 일 예에서, 명령 opcode, 명령 파라미터, 및 프레시니스에 기초한 서명을 포함하는 아이덴티티 생성 명령이 호스트 디바이스(151)로부터 수신된다. 일 예에서 서명 = MAC(opcode | 파라미터 | 프레시니스, 비밀 키)이다.
일 실시예에서, 컴퓨팅 디바이스(141)는 서명을 포함하는 아이덴티티 생성 확인을 제공한다. 일 예에서 서명 = MAC(명령 결과 | 프레시니스, 비밀 키)이다.
일 실시예에서, 비밀 키(2013)는 공장에서 주입된다. 일 예에서, 비밀 키는 대칭일 수 있다(예를 들어, HMAC-SHA256 기반). 다른 예에서 비밀 키는 비대칭 체계(예를 들어, ECDSA)를 사용할 수 있다.
디바이스 비밀(149)(예를 들어, UDSPUF)은 다양한 옵션을 사용하여 생성될 수 있다. 예를 들어, 생성 흐름이 활성화되면, 적절한 인증 및 재생 보호 명령을 사용하여, 다음과 같이 선택된 명령 옵션에 따라 UDSPUF가 생성된다 :
옵션 #1: PUF 패턴(때때로 "PUF RAW"로 지칭됨) (때때로 UDSRAW로 지칭됨)으로부터의 적어도 하나의 값이 판독되고, KDF (2007)(키 도출 함수)(예를 들어, SHA256)에 제공된다. 그러한 프로세스의 결과는 최종 키(key)이다. 따라서: UDSPUF = KDF(UDSRAW)
옵션 #2: PUF RAW 패턴(UDSRAW)이 판독되고 UDSPUF는 다음과 같이 계산된다 : UDSPUF = KDF(UDSRAW | UID) 여기서, UID는 모든 디바이스에 할당된 공개 고유 아이덴티티이다(일부 경우에는 UID 비보안 디바이스에도 할당될 수 있음). 일 실시예에서, UID(2001)는 KDF에 대한 입력으로서 사용된다.
옵션 #3: PUF RAW 패턴(UDSRAW)이 판독되고 UDSPUF는 다음과 같이 계산된다 : UDSPUF = KDF(UDSRAW | UID | HASH(사용자 패턴)) 여기서, 사용자 패턴은 셀프 아이덴티티 생성을 요청하는 명령 페이로드에 호스트에 의해 제공된다.
옵션 #4: PUF RAW 패턴(UDSRAW)이 판독되고 UDSPUF가 다음과 같이 계산된다 : UDSPUF = KDF(UDSRAW | UID | HASH(사용자 패턴)| 프레시니스(freshness)) 여기서, 프레시니스는 예를 들어, 명령 페이로드에 제공된 프레시니스이다.
보다 구체적으로, UDS는 UDSPUF = KDF[(호스트 디바이스에 의해 제공되는 정보 | 디바이스에 존재하는 정보)]로 계산된다. KDF 기능은 단순한 비밀 키를 사용하는 MAC 함수(예를 들어, HMAC-SHA256) 또는 HASH 함수(예를 들어, SHA256)로 사용될 수 있다.
일 예에서, MAC 함수가 KDF로 사용될 때, 사용된 비밀 키는 인증된 명령을 제공하는데 사용된 것과 동일한 키이다. 디바이스 비밀(예를 들어, UDS)은 다음 옵션 중 하나를 사용하여 생성될 수 있다 :
옵션 #5: UDSPUF = MAC [Secret_Key, (UDSRAW)]
옵션 #6: UDSPUF = MAC [Secret_Key, (UDSRAW | UID)]
옵션 #7: UDSPUF = MAC [Secret_Key, (UDSRAW | UID | HASH(사용자 패턴))]
옵션 #8: UDSPUF = MAC [Secret_Key, (UDSRAW | UID | HASH(사용자 패턴)| 프레시니스)]
보다 구체적으로, UDSPUF = MAC [Secret_Key, (호스트에 의해 제공된 정보 | 디바이스에 존재하는 정보)]
상기에서 언급된 바와 같이, UDSPUF는 생성된 후에 호스트 디바이스(151)에 통신될 수 있다. 일 실시예에서, 호스트 디바이스(151)는 UDSPUF를 직접 판독할 수 있다. UDSPUF는 미리 정해진 횟수만큼 만 판독될 수 있다(예를 들어, 한 번 또는 몇 번). 일 예에서, 아래 도 21에 대해 설명된 프로세스가 사용될 수 있다. UDSPUF를 미리 결정된 횟수만큼 판독한 후에, 판독 메커니즘이 영구적으로 비활성화된다. 예를 들어, 이 접근 방식은 보안 환경(예를 들어, 컴퓨팅 디바이스(141)을 사용하여 컴퓨팅 시스템 또는 다른 제품을 조립할 때 고객의 공장)에서 사용될 수 있다.
일 예에서, UDSPUF는 호스트 디바이스(151)로부터 수신된 공개 키를 사용하여 컴퓨팅 디바이스(141)에 의해 암호화되고, 그런 다음 UDSPUF는 호스트 디바이스(151)로 발송된다. 이 절차 후에, UDSPUF 판독 메커니즘은 영구적으로 비활성화된다.
다른 실시예에서, 컴퓨팅 디바이스(141)는 난독화 프로세싱 모듈(obfuscation processing module)(2011)을 포함한다. 난독화 프로세싱 모듈(2011)은 도 15의 난독화 프로세싱 모듈(630) 또는 도 19의 난독화 프로세싱 모듈(630)의 예이다.
일 실시예에서, UDSPUF는 호스트 공개 키로 암호화되고 호스트 디바이스로 통신된다; 호스트 디바이스는 해당 비밀 키를 사용하여 그것을 복호화한다. 호스트 공개 키는 특정 통신 셋업 단계 동안 컴퓨팅 디바이스(141)로 통신된다. 일 실시예에서, UDSPUF의 공유는 인증된 명령을 사용하여 직접 판독 동작에 의해 수행될 수 있고, 미리 결정된 수의 판독(예를 들어, 일반적으로 단 한 번) 후에, 그러한 판독 동작은 영원히 비활성화된다. 컴퓨팅 디바이스(141)는 위조 방지(anti-tamper) 영역에 UDS 키를 저장한다. 내부(컴퓨팅 디바이스) 사용을 위해 UDS 키를 사용할 때마다, 정보 누출을 피하기 위해 난독화 메커니즘이 사용된다(예를 들어, 해커가 전류 또는 전압 파형 프로파일을 분석하는 것과 같이 저장된 UDS 키를 추측하는 해커의 기회를 피함). 예를 들어, 사용된 난독화 메커니즘은 도 15, 18, 19에 대해 상기에서 설명된 바와 같을 수 있다.
일 실시예에서, 컴퓨팅 디바이스(141)는 암호화된 디바이스 비밀을 호스트 디바이스(151)로 발송하기 전에 디바이스 비밀을 난독화한다.
도 21은 일 실시예에 따른 시스템 위조가 발생했는지 여부를 결정하는데 사용하기 위해 시스템의 모노토닉 카운터에 의해 제공된 초기 값을 발송하는 시스템을 도시한다. 일 예에서, 시스템은 도 20의 컴퓨팅 디바이스(141)이다.
일부 실시예에서, 시스템은 다른 디바이스(예를 들어, 호스트 디바이스 151)와의 보안 통신을 위해 비밀 키를 사용한다. 비밀 키는 생성되어 시스템에 저장된다(예를 들어, 시스템 보드의 초기 조립 후 공장에서 키 삽입). 시스템의 모노토닉 카운터는 초기 값을 제공하는데 사용된다.
다른 실시예에서, 비밀 키는 DICE-RIoT 프로토콜과 함께 사용되는 UDS이다. 비밀 키는 호스트 디바이스(예를 들어, 호스트 디바이스(151))로부터의 명령에 응답하여 생성된다.
일 실시예에서, 초기 값은 물리적 시스템의 의도된 수신자에게 전자 통신에 의해 발송된다(예를 들어, 수신자는 물리적 시스템이 수신자의 위치로 물리적으로 전송된 후 물리적 시스템을 수신할 것이다). 시스템을 수신한 후, 수신자는 모노토닉 카운터로부터 출력 값을 판독한다. 수신자(예를 들어, 초기 값을 더 일찍 수신한 수신자의 컴퓨팅 디바이스 또는 서버를 사용하여)는 초기 값과 출력 값을 비교하여 시스템에 위조가 발생했는지 여부를 결정한다. 일 예에서, 위조(tampering)는 물리적 전송 동안에 시스템의 비밀 키에 액세스하려는 침입자가 무단으로 시도하는 것이다.
일 실시예에서, 비밀 키는 예를 들어, 진정한 RNG(random number generator) 또는 PUF를 사용하여 생성되거나 공장과 같은 보안 환경에서 시스템(메모리)에 미리 주입될 수 있다.
일 실시예에서, 생성된 키는 모노토닉 카운터의 초기 값과 연관된다. 초기 값은 시스템 수신자에 의해 저장된 키에 액세스하려는 인증되지 않은 시도가 있는지 여부를 결정하는데 사용된다. 일 실시예에서, 키 주입 프로세스는 물리적 복제 방지 기능(PUF)의 출력을 사용하여 키를 저장하는 컴퓨팅 디바이스의 모든 파워온 사이클에 대해 키를 생성할 수 있다.
보다 구체적으로, 도 21은 일 실시예에 따른 시스템(351)에 대한 위조가 발생했는지 여부를 결정하는데 사용하기 위해 모노토닉 카운터(355)에 의해 제공된 초기 값을 발송하는 시스템(351)을 도시한다. 예를 들어, 시스템(351)이 시스템(351)의 물리적 전송 동안 저장된 키에 대한 인증되지 않은 액세스를 추구하는 해커에 의해 위조되었는지 여부가 결정될 수 있다. 일 예에서, 시스템(351)은 비휘발성 메모리(306), 프로세서 (들) (304), 모노토닉 카운터(들) (355) 및 전원 공급 디바이스(318)을 포함하는 시스템 보드이다.
하나 이상의 키(314)는 프로세서(304)의 제어 하에 생성된다. 비휘발성 메모리(306)는 생성된 키를 저장하는데 사용된다. 비휘발성 메모리(306)는, 예를 들어, 비휘발성 메모리 디바이스(예를 들어, 3D 교차점 저장소)이다.
모노토닉 카운터(355)는 초기 값을 제공하도록 초기화된다. 이 초기값은 저장된 키(314)와 연관된다. 초기값은 프로세서(304)에 의해 외부 인터페이스(312)를 통해 다른 컴퓨팅 디바이스로 발송된다. 예를 들어, 초기 값은 제조 및 키 삽입이 완료된 후 시스템(351)이 배송될 수신자의 서버로 발송될 수 있다.
시스템(351)이 수신자에 의해 수신될 때, 수신자의 컴퓨팅 디바이스는 초기 값을 결정한다. 예를 들어, 컴퓨팅 디바이스는 상기에서 설명된 바와 같이 발송될 때 수신된 초기 값을 메모리에 저장할 수 있다. 컴퓨팅 디바이스는 모노토닉 카운터(355)로부터의 출력 값을 판독한다. 이 출력 값은 시스템(351)에 위조가 있었는지 여부를 결정하기 위해 초기 값과 비교된다.
일 실시예에서, 수신자의 컴퓨팅 디바이스는 모노토닉 카운터(355)가 증분하게 하는 발생된 이벤트의 수를 결정한다. 예를 들어, 모노토닉 카운터(355)로부터의 출력 값은 (예를 들어, 전원 공급 디바이스(318)를 모니터링함으로써 검출된) 시스템(351)의 각각의 전원 켜짐 동작에서 증분하도록 구성될 수 있다. 모노토닉 카운터(355)로부터의 출력 값은 추가로 및/또는 대안적으로 저장된 키(314)의 판독 액세스를 수행하려는 각각의 시도에서 증분하도록 구성될 수 있다.
예를 들어, 모노토닉 카운터를 증분시키게 하는 알려진 이벤트의 수를 추적함으로써, 발신자로부터 수신된 초기 값은 이 알려진 이벤트의 수를 기반으로 조정될 수 있다. 그런 다음, 조정된 초기 값은 모노토닉 카운터(355)로부터 판독된 출력 값과 비교된다. 값이 일치하면, 위조가 발생되지 않은 것이다. 값이 일치하지 않으면, 컴퓨팅 디바이스는 위조가 검출된 것으로 결정된다.
위조가 검출되었다는 결정에 응답하여, 시스템(351)의 하나 이상의 기능이 비활성화될 수 있다. 일 실시예에서, 프로세서(304)는 위조가 검출되었다는 표시를 포함하는 수신자의 컴퓨팅 디바이스로부터 통신을 수신한다. 통신을 수신하는 것에 응답하여, 프로세서(304)는 시스템(351)의 적어도 하나의 기능을 비활성화한다. 일 예에서, 비활성화된 기능은 저장된 키(314)에 대한 판독 액세스이다.
일 실시예에서, 시스템(351)은 모노토닉 카운터(355)로부터 출력된 카운터 값이 미리 결정된 최대값을 초과할 수 없도록 구성될 수 있다. 예를 들어, 각각의 카운터 값이 모노토닉 카운터(355)로부터 판독될 때, 카운터 값이 미리 결정된 최대값을 초과하는지 여부가 결정된다. 카운터 값이 미리 결정된 최대값을 초과하면, 저장된 키(314)에 대한 판독 액세스가 영구적으로 비활성화될 수 있다(예를 들어, 프로세서(304)의 제어 하에).
일 실시예에서, 시스템(351)은 반도체 다이에 구현된다. 다른 실시예에서, 시스템(351)은 시스템 보드 상에 형성된다. 애플리케이션은 시스템 메모리(353)에 저장되고 프로세서(304)에 의해 실행된다. 애플리케이션의 실행은 시스템(351)의 전원이 켜진 후에 발생한다. 예를 들어, 시스템(351)의 수신자는 시스템에 어떠한 위조도 발생하지 않았다고 결정한 후 애플리케이션을 실행할 수 있다.
일 실시예에서, 키(314)는 하나 이상의 물리적 복제 방지 기능(PUF)으로부터의 출력 값을 사용하여 생성된다. 예를 들어, 키는 시스템(351)의 각각의 전원 켜기(power-on) 사이클에 대해 생성된다. 다른 예에서, 키(314)는 외부 인터페이스(312)를 통해 수신된 호스트 디바이스로부터의 교체 명령에 응답하여 생성된 UDS이다.
일 실시예에서, 시스템(351)은 키(314)를 저장하는 컨트롤러이다. 외부 인터페이스(312)는 모노토닉 카운터(355)로부터 컨트롤러와 동일한 시스템 보드 상의 외부 비휘발성 메모리 디바이스(미도시)로 초기값을 발송하는데 사용된다. 외부 비휘발성 메모리 디바이스는 모노토닉 카운터(355)로부터 출력 값을 판독하고 시스템(351)으로부터 수신된 초기 값과 출력 값을 비교함으로써 위조가 발생했는지 여부를 결정한다.
일 실시예에서, 시스템 메모리(353)는 휘발성 메모리(308) 및/또는 비휘발성 메모리(306)를 포함한다. 암호화 모듈(316)은 키(314)(예를 들어, 대칭 키)를 사용하여 외부 인터페이스(312)를 통한 보안 통신을 위한 암호화 동작을 수행하는데 사용된다.
이제 비밀 키 공유가 다양한 추가 실시예에서 설명된다. 보안 통신 채널은 통신에 참여하는 행위자(actor) 간의 키 공유를 통해 셋업된다. 신뢰할 수 있는 플랫폼 모듈 보드에 사용되는 컴포넌트에는 예를 들어, 공개 키 암호화와 같은 체계를 구현하기에 충분한 프로세싱 능력이 없는 경우가 많다.
일 실시예에서, 하나 이상의 비밀 키는 디바이스/보드 제조업체와 OEM/최종 고객 간에 공유된다. 또한, 현장에서 같은 보드에 있는 상이한 디바이스 간에 필요에 따라 키가 공유될 수 있다. 상기에서 설명된 것처럼 보안 디바이스 내부에서 하나 이상의 모노토닉 카운터가 사용된다.
일 예에서, 디바이스가 공장 또는 제조업체 테스트 라인을 떠나기 전에, 하나 이상의 비밀 키가 디바이스 능력 및 사용자 요구 사항에 따라 디바이스 내부에 주입된다(예를 들어, 다음과 같은 하나 이상의 비밀 키: k=1,.,N인 Secret_Keyk ).
디바이스 기능 및 사용자 요구에 따라 하나 이상의 모노토닉 카운터가 초기화된다 (N(N≥1)개의 상이한 MTC → MTCk=0). MTC(모노토닉 카운터)는 시스템/디바이스의 전원이 켜질 때와 저장된 비밀 키를 판독하려고 시도할 때마다 출력 값을 증분시키도록 구성된다.
각각의 MTCk의 값은 공개될 수 있고, 고객과 공유될 수 있다(예를 들어, MTCk로서). 명령 시퀀스(예를 들어, 시스템 디자인자가 임의로 결정)는 디바이스로부터 키를 판독하는데 사용되며, 명령 시퀀스는 공개될 수 있다(예를 들어, 방법의 강도는 판독 프로토콜의 비밀성을 기반으로 하지 않음).
일 실시예에서, 각각의 비밀 키에 대해 전용 MTC를 사용할 필요는 없다. 이는 사용 중인 보안 서비스 유형에 따라 다를 수 있다. 예를 들어, 일부 키는 함께 판독할 수 있으며, 단일 MTC만 필요하다.
일 실시예에서, 시스템이 수신자(예를 들어, 고객/사용자) 위치에 도달한 후 여러 동작이 수행된다. 수신자의 컴퓨팅 디바이스는 먼저 모노토닉 카운터(들)(355)의 초기 값(들)을 결정한다. 예를 들어, MTCk = (MTC0)k의 값이 검색된다(예를 들어, 디바이스가 공장에서 출고되는 순간에 기록되고 발송된 초기 값). MTCk 값은 MTC 또는 관련 키마다 상이할 수 있다.
그런 다음, 수신자 고객/사용자는 시스템(351)의 전원을 켠다. 처음으로 처리되는 동작은 MTCk값의 판독이다. 각각의 MTCk 값이 예상된(수신된) 초기 값[예를 들어, MTCk = (MTC0+1)k]과 일치하는 경우, 디바이스는 물리적 배송 또는 다른 전달 중에 전원이 켜지지 않은 것으로 결정되고, 시스템(351)이 최종 사용자/고객에 의해 인증된 것으로(위조되지 않은)고려된다.
하나 이상의 값이 일치하지 않으면 위조가 발생한 것이다. 예를 들어, 인증되지 않은 사람이 디바이스의 전원을 켜고 저장된 키를 판독하려고 했다. 위조가 발생한 경우, 디바이스가 폐기되고 위조 표시를 발신자(예를 들어, 전송 회사)에게 전달되어 추가 기술 보안 문제를 방지한다.
다른 실시예에서, 다수의 판독 동작은 시스템(351)의 수신자에 의해 수행된다. 예를 들어, 디바이스는 공장을 떠나 고객/OEM에 도착한다. 고객이 하나 이상의 키를 판독하고 관련 MTCk가 1씩 증분된다. 증분된 MTCj가 실리콘 공장(발신자)에 의해 미리 설정된 값(MTCj MAX)을 초과하면, 키(Secret_Keyj) 판독이 영구적으로 비활성화된다.
이 예에서, MTCj MAX는 각각의 MTC에 대해 발신자와 고객이 합의한 미리 결정된 최대값이다. 이 방법론은 MTC 값을 체크하거나 수행할 수 있기 전/후 키 판독을 한 번 이상 시도를 허용한다. 이를 통해 예를 들어, 인증되지 않은 액세스를 발견할 수 있으며 동시에 OEM/고객이 비활성화되기 전에 키 판독을 몇 번 수행할 수 있다는 것을 보장한다.
판독 프로세스 동안, 하나 이상의 MTC에 예기치 않은 값이 있는 경우(예를 들어, 알려진 판독 및 전원 켜기 동작의 수에 대한 조정 후에 초기 값과 판독 값이 일치하지 않는 경우), 디바이스는 폐기된다. 일 실시예에서, 일단 모든 키가 판독되면, 관련된 MTCk는 클린업(clean-up)되고 다른 목적(예를 들어, 시스템 디자인자에 의해 구성되고 원해진 암호화 프로세싱 기능 등)을 위해 재사용될 수 있다.
다른 예에서, 디바이스/보드 사용이 모니터링된다. 이 예는 보안 디바이스에 이미 존재하는 모노토닉 카운터를 사용한다(예를 들어, 암호화 모듈(316)에서 사용하기 위해 존재). 디바이스가 실리콘 공장을 떠나기 전에 테스트 라인에서 다음이 수행된다: 초기화 M(M≥1) 상이한 MTC → MTCk=0. 이러한 MTC 카운터는 디바이스의 전원을 켤 때마다 증분된다. 각각의 카운터는 0(또는 원하는 경우 다른 초기 값)으로 초기화될 수 있다.
수신자 최종 사용자는 수신된 MTCk 값을 사용하여 시스템(351)에 관한 다양한 정보를 얻을 수 있다: 예를 들어: 컴포넌트/보드의 인증되지 않은 사용 검출, 컴포넌트가 납땜 제거(desolder)되어 보드 외부에서 해킹되어 사용되었는지 결정 , 고객 서비스, 디바이스 보드 보증 정책 및 파워 상실을 기반으로 요금 메커니즘을 구현하기 위한 파워 사이클 횟수.
일 실시예에서, 수수료 메커니즘을 구현하는 것은 값을 특정 용도와 연관시키는 것을 수반한다. 고객에게 애플리케이션을 제공할 수 있으며 고객은 특정 사용을 잠금 해제하기 위해 요금을 지불해야 한다.
일 실시예에서, 비밀 키는 동일한 시스템 보드의 상이한 디바이스 간에 공유된다(예를 들어, 최종 사용자가 사용할 때 현장에서 공유됨). 키는 동일한 보드의 컴포넌트 간(예를 들어, 프로세서 간) 교환을 통해 공유된다.
일 실시예에서, 하나 이상의 모노토닉 카운터(MTCk) 각각은 초기 값을 0으로 설정함으로써 초기화된다. 일 예에서, MTCk=0으로 설정할 때, MTCk는 숫자 k로 표시되는 특정 키와 관련된 카운터이다. MTCk= 0은 카운터의 초기 값이 0임을 나타낸다. 각각의 k는 디바이스에 저장된 내부 키의 수에 해당하는 카운터 번호 중 하나를 나타낸다. 각각의 카운터의 값은 디바이스의 비휘발성 메모리 영역에 저장된다.
일 실시예에서, 디바이스의 전원 켜기(때로는, 전원 켜기(power-up)라고도 함)가 검출된다. 이 디바이스는 전원 공급 디바이스의 값을 측정하기 위한 내부 회로부를 포함한다. 전원 공급 디바이스가 특정 임계값을 초과하면, 회로부가 내부 신호를 트리거하여 전원 켜기 이벤트의 존재(검출)를 표시한다. 이 신호는 모노토닉 카운터의 증분을 야기할 수 있다.
일 실시예에서, 비밀 키를 판독하려는 시도가 검출된다. 카운터(MTCk)는 파워가 검출될 때마다(상기에서 언급한 대로), 키를 판독하는 명령 시퀀스가 디바이스 인터페이스에 의해 인식될 때마다 증분된다. 초기 MTCk 값을 알면, 디바이스 배송이 완료되면 디바이스의 최종 수신자(예를 들어, 최종 사용자/고객)가 디바이스(및 카운터) 상태를 알 수 있다. 따라서, 이동 중에 전원을 켜거나 디바이스를 판독하려는 시도가 있는 경우, 각각의 MTCk에 저장된 카운터 값의 변동이 생성된다.
일 실시예에서, 명령 시퀀스는 디바이스로부터 키를 판독하는데 사용된다. 예를 들어, 디바이스는 다른 컴퓨팅 컴포넌트 또는 디바이스의 명령을 수락하는 외부 인터페이스를 갖는다. 최대 카운터 값에 도달할 때까지 키를 판독할 수 있다. 일 예에서, 디바이스는 인터페이스에서 : 명령(예를 들어, 0x9b) + 인수(0x34) + 서명의 시퀀스를 갖는다. 디바이스는 키를 판독하고 출력에서 제공해야 한다는 것을 이해한다.
일 실시예에서, 디바이스의 테스트 후(예를 들어, 초기 공장에서), 각각의 키에 대한 MTCk는 초기화로부터의 초기 값을 가질 것이다. 따라서, 예를 들어, k = 3이면 : MTC0 = 20d, MTC1 = 25d, MTC2 = 10이다. MTC0, MTC1, MTC2 값은 초기 값 세트로 고객에게 발송/전송된다. 고객이 디바이스를 받으면, 고객은 명령 시퀀스를 사용하여 값을 판독한다. 그런 다음 고객(예를 들어, 컴퓨팅 디바이스 사용)은 배송 중에 디바이스가 손상되었는지 여부를 결정한다. 일 예에서, 모노토닉 카운터 값은 상기에서 설명된 명령 시퀀스를 사용하여 판독된다.
일 실시예에서, 미리 결정된 최대 카운터 값이 미리 설정된다. 예를 들어, 최대값 사전 설정은 고객 절차에 따라 선택될 수 있다. 예를 들어, 고객이 키를 10번 판독을 원한다고 가정한다. 또한, MTCk는 전원이 켜질 때만 증분된다고 가정하고, MTC0(전원 켜기에만 관련됨) 및 MTC1(키 판독 명령 절차에만 관련됨)의 두 카운터가 있다고 가정한다. 공장 테스트 후, MTC0 및 MTC1 값 모니터링을 기반으로, MTC0 = 30, MTC1 = 25가 발견되었다. 일 예에서, 내부 임계값은 MTC0의 경우 40으로 설정되고 MTC1의 경우 35로 설정된다.
일 실시예에서, 키와 연관된 MTC는 전원이 켜지고 키를 판독하려는 시도에 따라 증분한다. 두 이벤트 중 하나가 발생할 때마다 MTC가 증분한다.
일 실시예에서, 모노토닉 카운터는 저장된 키의 최종 판독 후에 클린업된다(옵션으로 디바이스의 다른 프로세싱을 위해 재사용될 수 있음). 시스템 디자인자는 이를 원하는 대로 구성할 수 있다. 최종 판독은 예를 들어, 악성 이벤트의 검출기로서 MTC 카운팅의 목적이 더 이상 필요하지 않을 때이다. 이렇게 하면 카운터가 다른 용도로 사용될 수 있는 자원으로 풀리거나 카운터가 계속 계산될 수 있다.
일 실시예에서, 모노토닉 카운터는 납땜 제거되는 컴포넌트, 수수료 메커니즘 구현, 보증 구현 등과 같은 다양한 유형의 정보를 획득하는데 사용될 수 있다. 카운터 값의 증분이 외부에서 트리거될 수 있기 때문에, 카운터는 다양한 유형의 발생을 모니터링하는데 사용될 수 있다.
일 실시예에서, 다수의 키 판독 옵션이 제공된다. 일 예에서, MTC 값의 초기화(키와 관련된 MTCk의 경우)를 위해, 최대 임계값은 컴포넌트의 수신자 및/또는 최종 사용자에 의한 각각의 키의 판독을 허용하도록 설정된다. 다수의 판독 옵션은 특정 키를 판독하기 위한 최대 시도 횟수(키마다 다를 수 있음)에 따라 임계값 변경을 허용할 수 있다.
일 실시예에서, 다양한 유형의 디바이스는 상기의 방법을 사용할 수 있다. 예를 들어, CPU 또는 MCU는 전형적으로 외부 액세스로 액세스할 수 없는 내부 하드웨어 보안 모듈을 갖는다. 일 예에서, 올바르게 작동하기 위해 디바이스 또는 컴포넌트에 저장된 동일한 키(예를 들어, 대칭 키 접근 방식이 사용되는 경우)가 필요하다. 이러한 경우, CPU/MCU는 인증된 엔터티, 디바이스 또는 컴포넌트에 대한 키 배포/공유의 장점을 얻는다. 이 공유를 통해 키 판독을 허용할 수 있다(예를 들어, 이 공유는 MTCk 임계값의 값 프로그래밍에 대응한다).
일 실시예에서, 상기의 방법은 고객 펌웨어 주입을 위해 사용된다. 예를 들어, 상기의 방법을 사용하면 디바이스(예를 들어, 애플리케이션 펌웨어) 내부에 중요한 콘텐츠를 저장하고 보안되지 않은 환경에서 디바이스의 이동을 구현할 수 있다(펌웨어/디바이스의 무결성을 손상시키지 않으면서). 일 예에서, 펌웨어 주입의 경우, 전송 중 MTCk 카운터 값의 예기치 않은 변경은 펌웨어 손상이 발생했음을 나타내는 인덱스로 사용된다.
도 22는 일 실시예에 따른 물리적 복제 방지 기능(PUF)을 사용하여 컴퓨팅 디바이스에 대한 아이덴티티를 생성하기 위한 방법을 도시한다. 예를 들어, 도 22 방법은 도 20의 시스템에서 구현될 수 있다.
도 22의 방법은 하드웨어(예를 들어, 프로세싱 디바이스, 회로부, 전용 로직, 프로그램 가능 로직, 마이크로코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예를 들어, 프로세싱 디바이스에서 수행되거나 실행되는 지침) 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예에서, 도 22의 방법은 적어도 부분적으로 도 20의 프로세서(143)에 의해 수행된다.
특정 시퀀스 또는 순서로 도시되지만, 달리 명시되지 않는 한 프로세스의 순서는 수정될 수 있다. 따라서, 예시된 실시예는 단지 예시적인 것으로 이해되어야 하며, 예시된 프로세스는 다른 순서로 수행될 수 있으며, 일부 프로세스는 병렬로 수행될 수 있다. 또한, 다양한 실시예에서 하나 이상의 프로세스가 생략될 수 있다. 따라서, 모든 실시예에서 모든 프로세스가 필요한 것은 아니다. 다른 프로세스 흐름이 가능하다.
블록 (2211)에서, 적어도 하나의 값은 적어도 하나의 물리적 복제 방지 기능(PUF)에 의해 제공된다. 예를 들어, PUF (2005)는 값을 출력으로 제공한다.
블록(2213)에서, 키 도출 함수(KDF)를 사용하여 디바이스 비밀이 생성된다. 적어도 하나의 PUF에 의해 제공된 적어도 하나의 값은 KDF에 대한 입력으로 사용된다. 예를 들어, PUF (2005)의 출력은 KDF (2007)의 입력으로 사용된다.
블록 (2215)에서, 생성된 디바이스 비밀이 저장된다. 예를 들어, KDF(2007)은 디바이스 비밀 (149)로 저장된 출력을 생성한다.
일 실시예에서, 방법은 : 컴퓨팅 디바이스에 의해 디바이스 비밀(예를 들어, 디바이스 비밀 (149)로 저장된 UDS)을 생성하는 단계를 포함하고, 상기 생성하는 단계는: 적어도 하나의 물리적 복제 방지 기능(PUF)에 의해, 적어도 하나의 값을 제공하는 단계; 및 키 도출 함수(예를 들어, KDF (2007))를 사용하여 디바이스 비밀을 생성하는 단계로서, 적어도 하나의 PUF에 의해 제공된 적어도 하나의 값은 KDF에 대한 입력이고; 및 상기 생성된 디바이스 비밀을 컴퓨팅 디바이스의 메모리에 저장하는 단계를 포함한다.
일 실시예에서, 생성된 디바이스 비밀을 저장하는 단계는 메모리에 이전에 저장된 디바이스 비밀을 생성된 디바이스 비밀로 교체하는 단계를 포함한다.
일 실시예에서, KDF는 해시(hash) 또는 메시지 인증 코드이다.
일 실시예에서, 방법은 호스트 디바이스와 통신하는데 사용되는 비밀 키를 저장하는 단계를 더 포함하며, KDF는 메시지 인증 코드(MAC)이고, 적어도 하나의 PUF에 의해 제공되는 적어도 하나의 값은 MAC에 대한 제1 입력이고, 비밀 키는 MAC에 대한 제2 입력이다.
일 실시예에서, 디바이스 비밀은 이벤트에 응답하여 생성되고, 이벤트는 컴퓨팅 디바이스에 의해, 호스트 디바이스로부터 명령을 수신한다.
일 실시예에서, 방법은 호스트 디바이스로부터 호스트 공개 키를 수신하는 단계, 호스트 공개 키를 사용하여 생성된 디바이스 비밀을 암호화하는 단계, 암호화된 디바이스 비밀을 호스트 디바이스로 발송하는 단계를 더 포함한다.
일 실시예에서, 방법은 암호화된 디바이스 비밀을 호스트 디바이스로 발송한 후, 메모리의 디바이스 비밀에 대한 판독 액세스를 영구적으로 비활성화하는 단계를 더 포함한다.
일 실시예에서, 방법은 암호화된 디바이스 비밀을 호스트 디바이스로 발송하기 전에 디바이스 비밀을 난독화하는 단계를 더 포함한다.
일 실시예에서, 방법은 컴퓨팅 디바이스에 의해, 메모리에 비밀 키(예를 들어, 비밀 키 (2013))를 저장하는 단계를 더 포함하며, 명령은 메시지 인증 코드(MAC)를 사용하여 컴퓨팅 디바이스에 의해 인증되고, 비밀 키는 MAC에 대한 입력으로 사용된다.
일 실시예에서, 호스트 디바이스는 명령을 인증하기 위한 서명을 발송하고, 서명은 MAC을 사용하여 생성되며, 호스트 디바이스에 의해 생성된 프레시니스(freshness)는 MAC에 대한 입력으로 사용된다.
일 실시예에서, 프레시니스는 KDF에 대한 추가 입력이다.
일 실시예에서, 호스트 디바이스는 사용자 패턴에 명령을 제공하고, 사용자 패턴의 해시는 KDF에 대한 추가 입력이다.
일 실시예에서, 방법은 디바이스 비밀을 생성하기 전에 컴퓨팅 디바이스에 의해 명령을 인증하는 단계를 더 포함한다.
일 실시예에서, 방법은 컴퓨팅 디바이스의 고유 식별자를 저장하는 단계를 더 포함하며, 고유 식별자는 KDF에 대한 추가 입력이다.
일 실시예에서, 디바이스 비밀은 이벤트에 응답하여 생성되고, 이벤트는 컴퓨팅 디바이스에 의한 컴퓨팅 시스템 사용의 검출이다.
일 실시예에서, 사용은 컴퓨팅 시스템에 의한 애플리케이션의 실행이다. 일 실시예에서, 사용은 부트 로딩 프로세스의 시작이다.
일 실시예에서, 청구항 1의 방법에 있어서, 디바이스 비밀은 이벤트에 응답하여 생성되고, 상기 이벤트는 시간 스케줄된 이벤트이다.
일 실시예에서, 시스템은 다음을 포함한다: 적어도 하나의 프로세서; 및
적어도 하나의 프로세서에: 디바이스 비밀을 생성하는 것을 지시하도록 구성된 지침을 포함하는 메모리를 포함하고, 상기 생성하는 단계는: 적어도 하나의 물리적 복제 방지 기능(PUF)에 의해 적어도 하나의 값을 제공하는 단계; 및 키 도출 함수(KDF)를 사용하여 디바이스 비밀을 생성하는 단계, 적어도 하나의 PUF에 의해 제공된 적어도 하나의 값은 KDF에 대한 입력이고; 및 컴퓨팅 디바이스의 메모리에 생성된 디바이스 비밀을 저장하는 단계를 포함한다.
일 실시예에서, 지침은 적어도 하나의 프로세서에 다음을 지시하도록 추가로 구성된다: 호스트 디바이스로부터 교체 명령을 수신하고; 생성된 디바이스 비밀을 사용하여 생성된 공개 식별자를 호스트 디바이스로 발송하고; 상기 디바이스 비밀은 교체 명령을 수신하는 것에 응답하여 생성되고; 생성된 디바이스 비밀을 저장하는 단계는 이전에 저장된 디바이스 비밀을 생성된 디바이스 비밀로 교체하는 단계를 포함한다.
일 실시예에서, 비일시적 컴퓨터 저장 매체는 지침을 저장하고, 지침이 컴퓨팅 디바이스에서 실행될 때 컴퓨팅 디바이스가 적어도: 적어도 하나의 물리적 복제 방지 기능(PUF)에 의해 적어도 하나의 값을 제공하고; 키 도출 함수(KDF)를 사용하여 디바이스 비밀을 생성하고, 적어도 하나의 PUF에 의해 제공되는 적어도 하나의 값은 KDF에 대한 입력이고; 생성된 디바이스 비밀을 메모리에 저장하게 한다.
차량에 대한 아이덴티티 할당 및 검증
이제 차량의 아이덴티티를 할당하고 검증하는 것과 관련된 다양한 실시예가 이하에서 설명된다. 다양한 실시예에서, 아이덴티티는 제1 차량(예를 들어, 긴급 차량)에 할당되고, 제2 차량은 제1 차량의 아이덴티티를 검증한다. 예를 들어, 아이덴티티는 호스트 디바이스(예를 들어, 도 1의 호스트 디바이스(151))로부터 제1 차량의 컴퓨팅 디바이스(예를 들어, 도 1의 컴퓨팅 디바이스(141))에 의해 수신된 교체 명령에 기초하여 할당될 수 있다.
예를 들어, 아이덴티티는 제1 차량에 의해 제공되는 트리플에 기초한 검증 방법을 사용하여 제2 차량에 의해 검증될 수 있다. 이 검증 방법은 컴퓨팅 디바이스(141)로부터 수신된 트리플을 사용하여 호스트 디바이스(151)에 의해 수행되는 것과 유사하게 수행된다. 제1 차량은 동작 상태 및/또는 차량 클래스와 연관된 차량일 수 있습니다(예를 들어, 제1 차량은 특정 엔티티에 의해 소유된 차량 무리(fleet)의 구성원일 수 있음). 이하 설명의 일반성은 상기에서 설명된 다양한 실시예에 의해 제한되지 않는다.
이전 접근 방식에서, 긴급 차량, 경찰 차량, 또는 특별한 상태를 가진 다른 차량인 차량의 아이덴티티는 아이덴티티가 차량 외부에서 전자적으로 통신되지 않는다는 점에서 긴급 차량과 격리된 수동 접근 및/또는 접근들에 의해 표시되었다. 예를 들어, 깜박이는 적색등 또는 다른 긴급 표시기는 차량이 긴급 동작 상태에서 긴급 차량임을 나타내기 위해 활성화된다. 그러나, 이러한 긴급 상황은 어떠한 방식으로도 차량 외부로 통신되지 않는다.
전술한 내용은 차량 및/또는 차량의 상태를 식별하는데 기술적인 문제를 야기한다. 예를 들어, 다른 차량은 긴급 차량의 아이덴티티나 상태를 쉽게 결정할 수 없다. 예를 들어, 다른 차량은 시각적 관찰에 의존하여 긴급 차량의 아이덴티티 및/또는 상태를 결정해야 한다. 이로 인해 다른 차량이 긴급 차량에 적절한 응답 또는 반응을 취하는데 지연이 발생할 수 있다. 예를 들어, 다른 차량은 긴급 차량이 더 빨리 지나갈 수 있도록 옆으로 이동할 때 반응이 느리다.
또한, 자율 주행하는 차량의 경우, 자율 주행 차량이 특정 클래스의 차량을 인식할 수 있는 능력을 갖는 안전한 교통 관리가 요구된다. 이는 부분적으로 자율 주행 차량이 특정 클래스의 차량이 있을 때 적절한 대응 조치를 취할 수 있도록 하기 위한 것이다. 차량 클래스는 경찰차, 소방차, 구급차와 같은 긴급 차량이 포함할 수 있다. 다른 클래스의 차량에는 택시 및 버스와 같은 공공 서비스 차량이 포함될 수 있다. 그러나, 다른 클래스의 차량에는 개인 또는 회사 무리의 차량이 포함될 수 있다. 자율 주행 차량이 다른 차량의 적절한 클래스를 인식하지 못하면 부적절한 교통 내비게이션 응답으로 이어져 이는 사고 또는 다른 피해를 유발할 수 있다.
더욱이, 보안 아이덴티티 메커니즘의 결여는 차량 복제, 중간자 공격 및 재생 공격과 같은 해커 공격을 허용할 수 있다. 이는 자율 주행 차량의 보안의 안전한 동작을 손상시킬 수 있다.
아래에서 논의되는 본 개시의 다양한 실시예는 긴급 차량의 아이덴티티를 할당 및 검증하는 것과 관련된 상기 기술적인 문제에 대한 기술적 솔루션을 제공한다. 다양한 실시예에서, 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(141))는 차량에 대한 아이덴티티를 생성하고, 차량이 다른 차량에 의해 검증되도록 허용한다. 아이덴티티는 차량의 클래스에 해당한다. 일 예에서, 아이덴티티는 상기에서 설명된 바와 같이 DICE-RIoT 프로토콜에 사용되는 고유 디바이스 비밀(UDS)이다.
일 실시예에서, 공공 또는 사설 조직 또는 엔터티는 차량 무리의 아이덴티티를 맞춤화한다(예를 들어, 아이덴티티는 차량 클래스에 대응함). 이는 인증된 명령(예를 들어, 상기에서 설명된 교체 명령)을 각각의 차량에 발송하여 수행된다. 명령은 차량이 호스트 디바이스에 의해 제공되는 UDS를 할당하거나 업데이트된 UDS를 생성하게 한다(예를 들어, 상기에서 설명된 차량의 컴퓨팅 디바이스에서 PUF를 사용하여). 그런 다음 UDS는 동작 중 아이덴티티 맞춤형 차량의 아이덴티티를 검증하기 위해 주변의 다른 차량에 의해 사용된다.
일 실시예에서, 각각의 주변 차량은 "긴급" 차량으로부터 하나 이상의 인증서 및 키를 수신한다. 예시적인 논의를 위해, 긴급 차량이 아래에 설명 및 예시되어 있다. 다만, 이하의 실시예는 긴급 차량에만 한정되는 것은 아니다. 대신, 이러한 실시예는 다른 유형의 차량과 함께 사용될 수 있다. 또한, 차량은 육상, 항공 및/또는 수상 기반 차량(예를 들어, 드론, 보트, 비행기 등)일 수 있다.
일 실시예에서, 주변 차량은 긴급 차량의 아이덴티티를 검증하는데 사용되는 검증 컴포넌트를 포함하는 컴퓨팅 디바이스을 갖는다. 일 예에서, 검증 컴포넌트는 도 1의 검증 컴포넌트(153)이다. 일 예에서, 주변 차량은 앞서 설명된 DICE-RIoT 프로토콜을 사용하여 생성된 트리플의 일부로서 인증서 및 공개 키를 수신한다. 주변 차량은 긴급 차량/경찰/다른 차량의 존재 여부를 검정하여 긴급 차량과 통신(예를 들어, 보험 코디네이트(insurance coordinate), 번호판 데이터 등)을 안전하게 교환할 수 있다. 이러한 안전한 무선 통신을 통해 주변 차량이 긴급차량의 번호판 등을 보지 않고도 긴급 차량을 인지할 수 있다는 장점이 있다. 비 자율 주행 차량의 경우, 긴급 차량과의 통신은 다른 방법(예를 들어, 디스플레이에 경고 표시 및/또는 차량 내 엔터테인먼트 시스템, 클러스터 등을 사용)을 사용하여 운전자에게 통신될 수 있다.
일 실시예에서, 긴급 차량 및 모든 주변 차량은 DICE-RIoT 프로토콜을 사용하여 아이덴티티 할당 및 검증을 지원하는 컴퓨팅 디바이스를 갖는다. 이러한 아이덴티티 장비가 있는 각각의 차량은 공공 기관 또는 민간 회사에 의해 무리(예를 들어, 긴급 차량, 택시 등)의 일부가 되도록 맞춤화될 수 있다.
각각의 차량의 컴퓨팅 디바이스는 원래 예를 들어, 상기에서 설명한 UDS제네릭으로 제조될 수 있다. 차량 소유자는 인증 및 재생 보호 명령(예를 들어, 다양한 실시예에서 전술된 교체 명령)을 사용하여 UDS를 교체함으로써 컴퓨팅 디바이스를 사용하여 차량을 맞춤화할 수 있다. 한 가지 장점은 컴포넌트에 아이덴티티를 증명할 수 있는 능력이 있기 때문에 컴포넌트를 교체할 위험이 없다는 것이다.
일 실시예에서, UDS제네릭 교체는 공공 기관이 비밀 UDS(예를 들어, UDS경찰서, UDS소방관)를 주입할 수 있게 한다. 이 UDS는 대중(다른 차량 포함)에 의해 인식될 수 있는 하나 이상의 공인 인증서를 생성하는데 사용된다. 이를 통해 공공 기관 및/또는 다른 차량이 안전한 방식으로 차량과 통신하여 보안 서비스를 구현할 수 있다. 일 예에서, 생성된 인증서는 상기의 도 1에 대해 논의된 UDS 및 아이덴티티 컴포넌트(147)를 사용하여 생성된 트리플의 일부이다.
일 예에서, 개인 회사는 자체 무리의 차량을 인식하고 차량과의 보안 무선 통신을 구현하기 위해 비밀 UDS를 주입할 수 있다. 차량에는 예를 들어, 택시, 버스, 선박, 드론 등이 포함될 수 있다.
공공 또는 민간 기관의 중앙 서버에 의한 차량과의 통신은 임의 종류의 통신 시스템 유선 또는 무선(예를 들어, Wi-Fi, 3G-5G 셀룰러, 블루투스 등), 광 무선 통신(예를 들어, OWC) 등에 의해 수행될 수 있다.
도 23은 일 실시예에 따른 하나 이상의 인증서(2321)를 사용하여 긴급 차량(2303)의 아이덴티티를 검증하는 주변 차량(2311)을 도시한다. 긴급 차량(2303)의 아이덴티티는 기관 컴퓨팅 디바이스(2305)에 의해 이전에 할당되었다. 일 예에서, 기관 컴퓨팅 디바이스(2305)는 호스트 인터페이스(2009)를 통해 컴퓨팅 디바이스(2301)에 교체 명령을 발송한다.
교체 명령을 수신한 것에 응답하여, 컴퓨팅 디바이스(2301)는 컴퓨팅 디바이스(2301) 및/또는 긴급 차량(2303)의 메모리에 새로운 디바이스 비밀을 저장한다. 아이덴티티 컴포넌트(147)는 새로운 디바이스 비밀을 사용하여 인증서(2321)의 일부로 저장되는 인증서를 생성한다. 일 예에서, 아이덴티티 컴포넌트(147)는 인증서를 포함하는 트리플을 생성한다. 생성된 트리플은 또한 키 저장소(157)에 저장된 공개 키를 포함한다.
일 실시예에서, 주변 차량(2311)은 주변 근접(예를 들어, 500미터 이하, 또는 50미터 이하, 또는 5미터 이하의 거리 이내)에서 긴급 차량(2303)의 존재를 검출하는 자율 주행 차량이다. 긴급 차량(2303)의 존재를 검출한 것에 응답하여, 주변 차량(2311)은 아이덴티티를 요청하는 통신을 발송한다. 이 요청에 응답하여, 하나 이상의 인증서(2321)가 주변 차량(2311)의 검증 컴포넌트(153)로 통신된다. 일 예에서, 검증 컴포넌트(153)는 DICE-RIoT 프로토콜에 대해 상기에서 논의된 트리플을 수신한다.
검증 상대(153)는 긴급 차량(2303)의 아이덴티티를 검증한다. 일 예에서, 아이덴티티가 할당된 다음 상기의 도 5-7 및 9에 대해 설명된 접근 방식을 사용하여 검증된다.
일 실시예에서, 긴급 차량(2303)의 아이덴티티를 검증한 후, 주변 차량(2311)은 아이덴티티와 연관된 차량의 클래스를 결정할 수 있다. 예를 들어, 주변 차량(2311)은 클래스가 긴급 차량에 해당한 것으로 결정할 수 있다. 일 실시예에서, 주변 차량(2311)은 공개 식별자 및 대응하는 클래스의 공개 데이터베이스를 유지하는 공용 서버(2307)와 통신할 수 있다. 일 실시예에서, 기관 컴퓨팅 디바이스(2305)는 긴급 차량(2303)이 호스트 인터페이스(2009)를 통해 새로운 아이덴티티를 할당 받을 때마다 업데이트 통신을 공용 서버(2307)로 발송한다.
다른 실시예에서, 긴급 차량(2303)은 또한 교통 제어 인프라스트럭처와 통신한다. 예를 들어, 교통 제어 시스템(2309)은 긴급 차량(2303)의 근접한 존재를 검출할 수 있고(예를 들어, 주변 차량(2311)에 대해 위에서와 유사하게) 주변 차량(2311)에 대해 상기에서 설명된 것과 유사하게 아이덴티티를 요청할 수 있다. 긴급 차량(2303)의 아이덴티티 검증에 응답하여, 교통 제어 시스템(2309)은 긴급 차량(2303)의 자유로운 통과를 허용하기 위해 상태를 변경할 수 있다. 예를 들어, 교통 제어 시스템(2309)은 긴급 차량의 통과를 허용하기 위해 교통 제어 신호를 적색에서 녹색으로 변경할 수 있다.
주변 차량(2311)이 긴급 차량(2303)의 아이덴티티를 검증한 후, 주변 차량(2311)은 통신 인터페이스(2313 및 2315)를 사용하여 후속 보안 통신을 수행하기 위해 긴급 차량(2303)으로부터 수신된 공개 키를 트리플의 일부로 사용할 수 있다.
일 실시예에서, 주변 차량(2311)의 컨트롤러(2319)는 검증 컴포넌트(153)를 구현하기 위해 소프트웨어를 실행한다. 긴급 차량의 아이덴티티인 것으로 아이덴티티를 검증한 것에 응답하여, 컨트롤러(2319)는 주변 차량(2311)의 다양한 시스템의 구성 및/또는 동작을 변경할 수 있다. 예를 들어, 운전자 및/또는 승객에게 경고가 디스플레이(2317) 상에 제시될 수 있다. 또한, 예를 들어, 차량의 내비게이션 경로 및/또는 속도가 변경될 수 있다. 또한, 차량을 감속시키기 위한 브레이크 시스템과 같은 차량의 시스템이 활성화될 수 있다.
도 24는 일 실시예에 따른 식별자, 인증서 및 공개 키를 이용하여 차량의 아이덴티티를 검증하는 방법을 도시한다. 예를 들어, 도 24의 방법은 도 1, 2 및 20의 시스템에서 구현될 수 있다.
도 24의 방법은 하드웨어(예를 들어, 프로세싱 디바이스, 회로부, 전용 로직, 프로그램 가능 로직, 마이크로코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예를 들어, 프로세싱 디바이스 상에서 수행되거나 실행되는 지침) 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예에서, 도 24의 방법은 도 20의 프로세서(143)에 의해 적어도 부분적으로 수행된다.
특정 시퀀스 또는 순서로 도시되지만, 달리 명시되지 않는 한, 프로세스의 순서는 수정될 수 있다. 따라서, 도시된 실시예는 단지 예시적인 것으로 이해되어야 하며, 도시된 프로세스는 다른 순서로 수행될 수 있으며, 일부 프로세스는 병렬로 수행될 수 있다. 또한, 다양한 실시예에서 하나 이상의 프로세스가 생략될 수 있다. 따라서, 모든 실시예에서 모든 프로세스가 필요한 것은 아니다. 다른 프로세스 흐름이 가능하다.
블록 (2401)에서, 명령은 호스트 디바이스로부터 제1 차량에 의해 수신된다. 예를 들어, 인증된 명령은 긴급 차량(2303)의 컴퓨팅 디바이스(2301)에 의해 기관 컴퓨팅 디바이스(2305)로부터 수신된다.
블록 (2403)에서, 명령을 수신한 것에 응답하여, 새로운 디바이스 비밀이 메모리에 저장된다. 예를 들어, 명령은 교체 명령이고, 컴퓨팅 디바이스(2301)는 새로운 디바이스 비밀(예를 들어, UDS)을 메모리에 저장한다. 새로운 디바이스 비밀은 이전에 저장된 디바이스 비밀을 교체한다. 새로운 디바이스 비밀은 기관 컴퓨팅 디바이스(2305)로부터의 명령과 함께 수신될 수 있다. 대안적으로, 새로운 디바이스 비밀은 예를 들어, PUF를 사용하여 컴퓨팅 디바이스(2301)에 의해 생성될 수 있다.
일 예에서, 기관 컴퓨팅 디바이스(2305)는 경찰차이다. 경찰 차량은 긴급 상황 발생 시, 긴급 차량(2303)의 상태를 일반 승용차에서 긴급 차량으로 승격시킬 수 있다. 이것은 미리 결정된 시간, 거리 동안만 존재하거나 승격된 차량이 지정된 목적지에 도달할 때까지 존재하는 할당일 수 있다.
블록 (2405)에서, 트리플이 새로운 디바이스 비밀을 사용하여 생성된다. 트리플은 식별자, 인증서 및 공개 키를 포함한다. 일 예에서, 컴퓨팅 디바이스(2301)는 상기의 다양한 실시예에 대해 설명된 것과 유사하게 트리플을 생성하기 위해 아이덴티티 컴포넌트(147)를 사용한다.
블록 (2407)에서, 트리플이 제2 차량으로 발송된다. 제2 차량은 트리플을 이용하여 제1 차량의 아이덴티티를 검증하도록 구성된다. 예를 들어, 트리플은 키 저장소(157)로부터의 하나 이상의 대응하는 키(예를 들어, 공개 키 및 공개 식별자) 및 인증서(2321)를 포함한다. 주변 차량(2311)의 검증 컴포넌트(153)는 트리플을 사용하여 긴급 차량(2303)의 아이덴티티를 검증한다. 일 실시예에서, 주변 차량(2311)은 예를 들어, 긴급 상태의 차량에 대한 것으로 아이덴티티를 검증한 것에 응답하여 액션을 수행하도록 구성된다.
일 실시예에서, 방법은 제1 차량(예를 들어, 긴급 차량(2303))의 컴퓨팅 디바이스에 의해 호스트 디바이스(예를 들어, 기관 컴퓨팅 디바이스(2305))로부터 명령을 수신하는 단계; 명령을 수신한 것에 응답하여, 컴퓨팅 디바이스의 메모리에 새로운 디바이스 비밀을 저장하는 단계; 새로운 디바이스 비밀을 사용하는 컴퓨팅 디바이스에 의해, 식별자, 인증서(예를 들어, 인증서(2321)), 및 공개 키를 포함하는 트리플을 생성하는 단계; 및 컴퓨팅 디바이스에 의해, 트리플을 제2 차량(예를 들어, 주변 차량(2311))에 발송하는 단계를 포함하고, 제2 차량은 트리플을 사용하여 제1 차량의 아이덴티티를 검증하도록 구성된다.
일 실시예에서, 새로운 디바이스 비밀은: 호스트 디바이스로부터 수신되고; 호스트 디바이스로부터 명령을 수신한 후 컴퓨팅 디바이스에 의해 생성된다.
일 실시예에서, 새로운 디바이스 비밀은 제1 차량의 미리 결정된 상태 또는 클래스와 연관된다. 예를 들어, 상태는 긴급 상태이다.
일 실시예에서, 제2 차량은 제1 차량의 아이덴티티 검증에 대한 응답으로 액션을 수행하도록 구성된다.
일 실시예에서, 액션은 제2 차량의 사용자 디스플레이에 경고를 제시하는 것, 제2 차량의 내비게이션 경로 또는 속도를 변경하는 것, 또는 제2 차량의 브레이크 시스템을 활성화하는 것 중 적어도 하나이다.
일 실시예에서, 방법은 컴퓨팅 디바이스에 의해 트리플을 교통 제어 시스템(예를 들어, 교통 제어 시스템(2309))으로 발송하는 단계를 더 포함하고, 교통 제어 시스템은: 트리플을 사용하여 제1 차량의 아이덴티티를 검증하고; 및 제1 차량의 아이덴티티 검증에 응답하여, 제1 차량의 통과를 허용하도록 교통 제어 시스템의 상태를 변경하도록 구성된다.
일 실시예에서, 새로운 디바이스 비밀은 컴퓨팅 디바이스의 메모리에서 이전에 저장된 디바이스 비밀을 교체한다.
일 실시예에서, 방법은 호스트 디바이스와 통신하는데 사용되는 비밀 키를 저장하는 단계를 더 포함하고, 비밀 키는 새로운 디바이스 비밀을 생성하기 위한 메시지 인증 코드에 대한 입력으로 사용된다.
일 실시예에서, 명령은 비밀 키를 사용하여 인증되고, 방법은 새로운 디바이스 비밀이 저장되었다는 확인을 컴퓨팅 디바이스에 의해 호스트 디바이스로 발송하는 단계를 더 포함한다.
일 실시예에서, 방법은, 제2 차량이 제1 차량의 아이덴티티를 검증한 후, 개인 키를 사용하여 컴퓨팅 디바이스에 의해 메시지를 암호화하는 단계, 개인 키(private key) 및 공개 키(public key)는 연관된 새로운 디바이스 비밀을 사용하여 생성된 관련 쌍이고; 및 상기 컴퓨팅 디바이스에 의해, 상기 암호화된 메시지를 상기 제2 차량로 전송하는 단계를 더 포함하고, 상기 암호화된 메시지는 프레시니스를 포함한다.
일 실시예에서, 메시지는 구성 데이터를 포함하고, 제2 차량은 메시지를 수신한 것에 응답하여, 액션을 수행하도록 구성되며, 액션은 구성 데이터에 따라 제2 차량에 의해 수행된다.
일 실시예에서, 제1 차량에 사용하기 위한 시스템은: 적어도 하나의 프로세서; 및: 적어도 하나의 프로세서에 다음을 지시하도록 구성된 지침을 포함하는 메모리를 포함한다 : 호스트 디바이스로부터 명령을 수신하고; 명령을 수신한 것에 응답하여, 새로운 디바이스 비밀을 저장하고; 새로운 디바이스 비밀을 사용하여 인증서를 생성하고; 및 제2 차량으로 인증서를 발송하고, 제2 차량은 인증서를 사용하여 제1 차량의 아이덴티티를 검증하도록 구성된다.
일 실시예에서, 새로운 디바이스 비밀은: 호스트 디바이스로부터 수신되고; 호스트 디바이스로부터 명령을 수신한 후 시스템에 의해 생성된다.
일 실시예에서, 시스템은 호스트 디바이스와의 통신을 위한 비밀 키를 저장하는 메모리를 더 포함하고, 상기 지침은 적어도 하나의 프로세서에 새로운 디바이스 비밀을 생성하기 위해 메시지 인증 코드에 대한 입력으로서 비밀 키를 사용하도록 지시하도록 추가로 구성된다.
일 실시예에서, 제2 차량은 제1 차량의 아이덴티티를 검증하는 것에 응답하여 액션을 수행하도록 구성되고, 액션은 제2 차량의 사용자 디스플레이에 경고를 제시하는 것, 제2 차량의 내비게이션 경로 또는 속도, 또는 제2 차량의 브레이크 시스템 활성화하는 것 중 적어도 하나이다.
일 실시예에서, 새로운 디바이스 비밀은 제1 차량의 미리 결정된 상태 또는 클래스와 연관된다.
일 실시예에서, 비일시적 컴퓨터 저장 매체는 지침을 저장하고, 지침이 제1 차량의 컴퓨팅 디바이스에서 실행될 때 컴퓨팅 디바이스가 적어도: 호스트 디바이스로부터 명령을 수신하고, 명령을 수신한 것에 응답하여, 새로운 디바이스 비밀을 메모리에 저장하고; 새로운 디바이스 비밀을 사용하여 식별자, 인증서 및 공개 키를 포함하는 트리플을 생성하고; 및 트리플을 제2 차량에 발송하게 하고, 제2 차량은 트리플을 사용하여 제1 차량의 아이덴티티를 검증하도록 구성된다.
일 실시예에서, 메모리에 새로운 디바이스 비밀을 저장하는 것은 이전에 저장된 디바이스 비밀을 새로운 디바이스 비밀로 교체하는 것을 포함하고, 지침은 또한 컴퓨팅 디바이스로 하여금 식별자를 호스트 디바이스에 발송하게 한다.
일 실시예에서, 식별자는 공개 식별자이고, 제1 비대칭 제너레이터는 관련 쌍으로서 공개 식별자와 개인 식별자를 생성하고; 및 제2 비대칭 제너레이터는 공개 키와 개인 키를 관련 쌍으로 생성한다.
일 실시예에서, 트리플은 호스트 디바이스로부터 메시지를 수신하는 단계; 제1 데이터를 제공하기 위해 메시지를 공개 키로 연쇄(concatenate)시키는 단계; 제2 데이터를 제공하기 위해 개인 식별자를 사용하여 제1 데이터를 암호화하는 단계; 및 인증서를 제공하기 위해 개인 키를 사용하여 제2 데이터를 암호화하는 단계를 포함한다.
일 실시예에서, UDS는 공공 기관 또는 민간 기관(예를 들어, 기관 컴퓨팅 디바이스(2305) 사용)에 의해 하나 이상의 차량에 할당된다. 각각의 기관은 특정 UDS기관(또는 UDS고객)를 할당할 수 있다.
예를 들어, 기관은 구성기(예를 들어, 소프트웨어가 있는 랩톱)를 차량 버스(예를 들어, SOTA, OTA 등 사용)에 연결할 수 있다. 인증된 명령 로드를 사용함으로써, 새로운 디바이스 비밀(UDS)은 컴퓨팅 디바이스(예를 들어, 컴퓨팅 디바이스(2301))의 레지스터에 UDS고객으로 저장된다. 인증은 제조업체에 의해 주입된 비밀 키를 기반으로 하며 예를 들어, 상기에서 설명된 것처럼 보안 인프라로 고객에게 제공된다. 프레시니스 메커니즘은 상기에서 설명된 모노토닉 카운터로 구현된다.
일 예에서, 인증된 교체 명령을 사용함으로써, UDS기관은 현재 UDS를 교체한다. 그러나, UDS를 교체할 필요는 없다. UDS 할당 프로세스는 컴퓨팅 디바이스에 저장된 초기 UDS일 수 있다.
각각의 인증된 명령 실행은 컴퓨팅 디바이스로부터의 인증된 응답으로 확인된다. UDS기관를 사용하여, 컴퓨팅 디바이스는 공개 식별자, 공개 인증서 및 공개 키를 포함하는 트리플을 생성한다. 컴퓨팅 디바이스는 또한 상기에서 설명된 개인 키 및 개인 식별자를 생성한다.
일 실시예에서, 수신자 차량(예를 들어, 주변 차량 (2311))은 상기에서 설명된 바와 같이 아이덴티티가 할당된 차량의 아이덴티티를 검증한다. 일 예에서 차량은 긴급 차량이며, 검증을 수행하는데 인터넷이나 무선 연결이 필요하지 않다. 긴급 차량은 잘 알려진 공개 트리플 {IDL1 공개, IDL1 인증서, KL1 공개}을 생성하고, KL1 개인 키로 모든 메시지에 서명한다. 수신자 차량은 발신자 차량의 KL1 공개으로 서명을 검증한다. 이는 해당 차량만이 KL1 공개의 동반자인 KL1 개인 키를 알고 있기 때문에 인증된 적절한 발신자 차량에서 메시지가 왔다는 증거를 제공한다. 긴급 차량의 인증서는 모든 차량에 사전 설치되어 인터넷 또는 다른 통신 연결이 끊긴 경우 긴급 차량 인식이 수행하는 것을 보장할 수 있다.
일 예에서, 차량은 공공 시설 서비스에 의해 제어된다. 차량과 통신하기 위해 인터넷 또는 다른 통신 연결이 사용된다. 필요한 경우, 수신자 차량은 보안 공개 카탈로그(예를 들어, 공용 서버(2307)에 저장됨)에서 트리플 {IDL1 공개, IDL1인증서, KL1 공개}을 검증할 수 있다. 모든 메시지는 KL1 개인 키로 서명되고, 수신자 차량은 발신자 차량의 KL1 공개로 서명을 검증한다.
일 예에서, 차량은 개인 회사에 의해 제어되는 무리의 개인 차량이다. 각각의 차량은 무리의 모든 차량에 알려진 트리플 {IDL1 공개, IDL1인증서, KL1 공개}을 생성한다. 차량은 KL1 개인 키로 모든 메시지에 서명하고, 수신자 차량은 발신자 차량의 KL1 공개로 서명을 검증한다.
일 실시예에서, 차량 간의 통신은 패킷을 교환함으로써 수행된다. 각각의 패킷은 재생 공격을 피하기 위해 프레시니스 필드(freshnes field)를 갖는다. 차량 간 통신의 예는 정지, 발신자 차량 따라가기, 어딘가에 사고가 있음, 사고 위치에 대한 데이터, 도움 요청, 도로 상황 정보 요청 등의 정보를 포함한다.
마무리
비일시적 컴퓨터 저장 매체는 펌웨어(104)의 지침을 저장하거나 프로세서(143) 또는 프로세싱 디바이스(111)에 대한 지침을 저장하는데 사용될 수 있다. 지침이 예를 들어, 메모리 디바이스(103) 또는 컴퓨팅 디바이스(603)의 컨트롤러(107)에 의해 실행될 때, 지침은 컨트롤러(107)가 상기에서 논의된 방법 중 임의의 것을 수행하게 한다.
이 설명에서, 다양한 기능 및 동작은 설명을 단순화하기 위해 컴퓨터 지침에 의해 수행되거나 발생하는 것으로 설명될 수 있다. 그러나, 당업자는 그러한 표현이 의미하는 것이 기능이 마이크로프로세서와 같은 하나 이상의 컨트롤러 또는 프로세서에 의한 컴퓨터 지침의 실행으로부터 발생한다는 것을 인식할 것이다. 대안으로 또는 조합하여 기능 및 동작은 ASIC(Application-Specific Integrated Circuit) 또는 FPGA(Field-Programmable Gate Array)를 사용하는 것과 같이 소프트웨어 지침을 사용하거나 사용하지 않고 특수 목적 회로를 사용하여 구현될 수 있다. 실시예는 소프트웨어 지침 없이 또는 소프트웨어 지침과 조합하여 유선 회로부를 사용하여 구현될 수 있다. 따라서, 이 기술은 하드웨어 회로부와 소프트웨어의 임의의 특정 조합이나 데이터 프로세싱 시스템에 의해 실행되는 지침에 대한 특정 소스로 제한되지 않는다.
일부 실시예는 완전한 기능을 갖춘 컴퓨터 및 컴퓨터 시스템에서 구현될 수 있지만, 다양한 실시예는 다양한 형태의 컴퓨팅 제품으로 배포될 수 있으며 실제로 배포에 영향을 미치는데 사용되는 특정 유형의 기계 또는 컴퓨터 판독 가능 매체에 관계없이 적용될 수 있다.
개시된 적어도 일부 양태는 적어도 부분적으로 소프트웨어로 구현될 수 있다. 즉, 기술은 ROM, 휘발성 RAM, 비휘발성 메모리, 캐시 또는 원격 저장 디바이스와 같은 메모리에 포함된 지침 시퀀스를 실행하는 마이크로프로세서 또는 마이크로컨트롤러와 같은 프로세서에 응답하여 컴퓨터 시스템 또는 다른 데이터 프로세싱 시스템에서 수행될 수 있다.
실시예를 구현하기 위해 실행되는 루틴은 운영 체제 또는 특정 애플리케이션, 컴포넌트, 프로그램, 객체, 모듈 또는 "컴퓨터 프로그램"이라고 하는 지침의 시퀀스의 일부로 구현될 수 있다. 컴퓨터 프로그램은 전형적으로 컴퓨터의 다양한 메모리 및 저장 디바이스에 다양한 시간에 설정된 하나 이상의 지침으로 구성되며, 컴퓨터의 하나 이상의 프로세서에 의해 판독되고 실행될 때 컴퓨터가 다양한 양태를 포함하는 엘리먼트를 실행하는데 필요한 동작을 수행하게 한다.
유형의 비일시적 컴퓨터 저장 매체는 데이터 프로세싱 시스템에 의해 실행될 때, 시스템이 다양한 방법을 수행하게 하는 소프트웨어 및 데이터를 저장하는데 사용할 수 있다. 실행 가능한 소프트웨어 및 데이터는 예를 들어, ROM, 휘발성 RAM, 비휘발성 메모리 및/또는 캐시를 비롯한 다양한 위치에 저장될 수 있다. 이 소프트웨어 및/또는 데이터의 일부는 이러한 저장 디바이스 중 하나에 저장될 수 있다. 또한 중앙 집중식 서버 또는 피어 투 피어 (peer-to-peer) 네트워크에서 데이터와 지침이 획득될 수 있다. 데이터 및 지침의 다른 부분은 상이한 시간에 상이한 통신 세션 또는 동일한 통신 세션에서 상이한 중앙 집중식 서버 및/또는 피어 투 피어 네트워크에서 획득될 수 있다. 데이터와 지침은 애플리케이션을 실행하기 전에 그 전체가 획득될 수 있다. 대안적으로, 실행에 필요할 때 데이터 및 지침의 일부를 동적으로 적시에 획득할 수 있다. 따라서, 데이터 및 지침이 특정 시간에 그 전체가 기계 판독 가능한 매체에 있을 필요는 없다.
컴퓨터 판독 가능 저장 매체의 예는 다른 것 중에서 휘발성 및 비휘발성 메모리 디바이스, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 플래시 메모리 디바이스, 플로피 및 다른 이동식 디스크, 자기 디스크 저장 매체 및 광학 저장 매체(예를 들어, CD ROM(Compact Disk Read-Only Memory), DVD(Digital Versatile Disk) 등) 등과 같은 레코딩 가능 및 레코딩 가능하지 않은 유형 매체를 포함하지만 이에 한정되지는 않는다. 지침은 전기적, 광학적, 음향적 또는 반송파, 적외선 신호, 디지털 신호 등과 같은 전파되는 신호의 다른 형태와 같은 일시적인 매체로 구현될 수 있다. 일시적인 매체는 전형적으로 지침을 송신하는데 사용되지만 지침을 저장할 수 있는 것으로 간주되지 않는다.
다양한 실시예에서, 하드와이어드 회로부는 기술을 구현하기 위해 소프트웨어 지침과 함께 사용될 수 있다. 따라서, 이 기술은 하드웨어 회로부와 소프트웨어의 특정 조합이나 데이터 프로세싱 시스템에 의해 실행되는 지침에 대한 특정 소스로 제한되지 않는다.
도면 중 일부는 특정 순서로 다수의 동작을 설명하지만, 순서에 의존하지 않는 동작은 재정렬될 수 있고 다른 동작은 결합되거나 분할될 수 있다. 일부 재정렬 또는 다른 그룹화가 구체적으로 언급되지만, 다른 것들은 당업자에게 명백할 것이고 따라서, 대안의 완전한 목록을 제시하지 않는다. 더욱이, 단계는 하드웨어, 펌웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있음을 인식해야 한다.
상기 설명 및 도면은 예시적이며 제한하는 것으로 해석되어서는 안 된다. 철저한 이해를 돕기 위해 여러 가지 구체적인 세부 사항이 설명되어 있다. 그러나, 어떤 경우에는, 설명을 모호하게 하는 것을 피하기 위해 잘 알려져 있거나 통상적인 세부 사항을 설명하지 않는다. 본 개시에서 하나 또는 실시예에 대한 언급은 반드시 동일한 실시예에 대한 언급은 아니며; 및 그러한 언급은 적어도 하나를 의미한다.
전술한 명세서에서, 개시는 그 특정 예시적인 실시예를 참조하여 설명되었다. 하기 청구범위에 기재된 더 넓은 취지 및 범위를 벗어나지 않고 다양한 수정이 이루어질 수 있음이 명백할 것이다. 따라서, 본 명세서 및 도면은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.
Claims (20)
- 방법에 있어서,
제1 차량의 컴퓨팅 디바이스에 의해, 호스트 디바이스로부터 명령을 수신하는 단계;
상기 명령을 수신한 것에 응답하여, 메모리에 새로운 디바이스 비밀을 저장하는 단계;
새로운 디바이스 비밀(device secret)을 사용하여 상기 컴퓨팅 디바이스에 의해, 식별자, 인증서 및 공개 키를 포함하는 트리플(triple)을 생성하는 단계; 및
상기 컴퓨팅 디바이스에 의해, 상기 트리플을 제2 차량에 발송하는 단계를 포함하고, 상기 제2 차량은 상기 트리플을 사용하여 상기 제1 차량의 아이덴티티(identity)를 검증하도록 구성된, 방법. - 청구항 1에 있어서, 상기 새로운 디바이스 비밀은,
상기 호스트 디바이스로부터 수신되거나; 또는
상기 호스트 디바이스로부터 상기 명령을 수신한 후, 상기 컴퓨팅 디바이스에 의해 생성되는, 방법. - 청구항 1에 있어서, 상기 새로운 디바이스 비밀은 상기 제1 차량의 미리 결정된 상태 또는 클래스와 연관되는, 방법.
- 청구항 1에 있어서, 상기 제2 차량은 상기 제1 차량의 아이덴티티 검증에 응답하여 액션(action)을 수행하도록 구성된, 방법.
- 청구항 4에 있어서, 상기 액션은 상기 제2 차량의 사용자 디스플레이에 경고를 표시하는 것, 상기 제2 차량의 내비게이션 경로 또는 속도를 변경하는 것, 또는 상기 제2 차량의 브레이크 시스템을 활성화하는 것 중 적어도 하나인, 방법.
- 청구항 1에 있어서, 상기 컴퓨팅 디바이스에 의해, 상기 트리플을 교통 제어 시스템으로 발송하는 단계를 더 포함하고, 상기 교통 제어 시스템은,
상기 트리플을 사용하여 상기 제1 차량의 아이덴티티를 검증하고; 및
상기 제1 차량의 아이덴티티 검증에 응답하여, 상기 제1 차량의 통과를 허용하도록 상기 교통 제어 시스템의 상태를 변경하도록 구성된, 방법. - 청구항 1에 있어서, 상기 새로운 디바이스 비밀은 상기 메모리에 이전에 저장된 디바이스 비밀을 교체하는, 방법.
- 청구항 1에 있어서, 상기 호스트 디바이스와 통신하는데 사용되는 비밀 키를 저장하는 단계를 더 포함하고, 상기 비밀 키는 상기 새로운 디바이스 비밀을 생성하기 위해 메시지 인증 코드에 대한 입력으로 사용되는, 방법.
- 청구항 8에 있어서, 상기 명령은 상기 비밀 키를 사용하여 인증되고, 상기 방법은 상기 컴퓨팅 디바이스에 의해, 상기 새로운 디바이스 비밀이 저장되었다는 확인을 상기 호스트 디바이스로 발송하는 단계를 더 포함하는, 방법.
- 청구항 1에 있어서, 상기 제2 차량이 상기 제1 차량의 아이덴티티를 검증한 후에,
개인 키를 사용하여 상기 컴퓨팅 디바이스에 의해, 메시지를 암호화하는 단계로서, 상기 개인 키 및 상기 공개 키는 상기 새로운 디바이스 비밀을 사용하여 생성된 관련 쌍인, 상기 암호화하는 단계; 및
상기 컴퓨팅 디바이스에 의해, 상기 암호화된 메시지를 상기 제2 차량에 발송하는 단계를 더 포함하되, 상기 암호화된 메시지는 프레시니스(freshness)를 포함하는, 방법. - 청구항 10에 있어서, 상기 메시지는 구성 데이터를 포함하고, 상기 제2 차량은 상기 메시지를 수신한 것 응답하여 액션을 수행하도록 구성되며, 상기 액션은 상기 구성 데이터에 따라 상기 제2 차량에 의해 수행되는, 방법.
- 제1 차량에 사용하기 위한 시스템에 있어서, 상기 시스템은,
적어도 하나의 프로세서; 및
지침을 포함하는 메모리로서, 상기 지침은 적어도 하나의 프로세서에,
호스트 디바이스로부터 명령을 수신하고;
상기 명령을 수신한 것에 응답하여 새로운 디바이스 비밀을 저장하고;
상기 새로운 디바이스 비밀을 사용하여 인증서를 생성하고; 및
상기 인증서를 제2 차량에 발송하도록 지시하도록 구성되고, 상기 제2 차량은 상기 인증서를 사용하여 상기 제1 차량의 아이덴티티를 검증하도록 구성된, 시스템. - 청구항 12에 있어서, 상기 새로운 디바이스 비밀은,
상기 호스트 디바이스로부터 수신되거나; 또는
상기 호스트 디바이스로부터 상기 명령을 수신한 후, 상기 시스템에 의해 생성되는, 시스템. - 청구항 12에 있어서, 상기 호스트 디바이스와의 통신을 위한 비밀 키를 저장하는 메모리를 더 포함하고, 상기 지침은 상기 새로운 디바이스 비밀을 생성하기 위해 상기 비밀 키를 메시지 인증 코드에 대한 입력으로 사용하도록 상기 적어도 하나의 프로세서에 지시하도록 추가로 구성된, 시스템.
- 청구항 12에 있어서, 상기 제2 차량은 상기 제1 차량의 아이덴티티를 검증한 것에 응답하여, 액션을 수행하도록 구성되고, 상기 액션은 상기 제2 차량의 사용자 디스플레이 상에 경보를 제시하는 것, 상기 제2 차량의 내비게이션 경로 또는 속도를 변경하거나, 상기 제2 차량의 브레이크 시스템을 활성화하는 단계 중 적어도 하나인, 시스템.
- 청구항 12에 있어서, 상기 새로운 디바이스 비밀은 상기 제1 차량의 미리 결정된 상태 또는 클래스와 연관된, 시스템.
- 지침을 저장하는 비 일시적 컴퓨터 저장 매체에 있어서, 상기 지침이 제1 차량의 컴퓨팅 디바이스 상에서 실행될 때, 상기 컴퓨팅 디바이스가 적어도,
호스트 디바이스로부터 명령을 수신하고;
상기 명령을 수신한 것에 응답하여, 새로운 디바이스 비밀을 메모리에 저장하고;
상기 새로운 디바이스 비밀을 사용하여, 식별자, 인증서 및 공개 키를 포함하는 트리플을 생성하고; 및
상기 트리플을 제2 차량에 발송하게 하고, 상기 제2 차량은 상기 트리플을 사용하여 상기 제1 차량의 아이덴티티를 검증하도록 구성된, 비 일시적 컴퓨터 저장 매체. - 청구항 17에 있어서, 상기 새로운 디바이스 비밀을 메모리에 저장하는 것은 이전에 저장된 디바이스 비밀을 상기 새로운 디바이스 비밀로 교체하는 것을 포함하고, 상기 지침은 추가로 상기 컴퓨팅 디바이스가 상기 식별자를 상기 호스트 디바이스로 발송하게 하는, 비 일시적 컴퓨터 저장 매체.
- 청구항 17에 있어서,
상기 식별자는 공개 식별자이고, 제1 비대칭 제너레이터는 관련 쌍으로서 상기 공개 식별자와 개인 식별자를 생성하고; 및
제2 비대칭 제너레이터는 관련 쌍으로서 상기 공개 키와 개인 키를 생성하는, 비 일시적 컴퓨터 저장 매체. - 청구항 19에 있어서, 상기 트리플을 생성하는 것은,
상기 호스트 디바이스로부터 메시지를 수신하는 것;
제1 데이터를 제공하기 위해 상기 공개 키와 상기 메시지를 연쇄시키는 것(concatenating);
상기 제2 데이터를 제공하기 위해 상기 개인 식별자를 사용하여 상기 제1 데이터를 암호화하는 것; 및
상기 인증서를 제공하기 위해 상기 개인 키를 사용하여 상기 제2 데이터를 암호화하는 것을 포함하는, 비 일시적 컴퓨터 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/363,088 | 2019-03-25 | ||
US16/363,088 US11361660B2 (en) | 2019-03-25 | 2019-03-25 | Verifying identity of an emergency vehicle during operation |
PCT/US2020/020909 WO2020197724A1 (en) | 2019-03-25 | 2020-03-04 | Verifying identity of an emergency vehicle during operation |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210132216A true KR20210132216A (ko) | 2021-11-03 |
Family
ID=72607576
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217034177A KR20210132216A (ko) | 2019-03-25 | 2020-03-04 | 동작 동안 긴급 차량의 아이덴티티 검증 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11361660B2 (ko) |
EP (1) | EP3949255A4 (ko) |
JP (1) | JP2022528070A (ko) |
KR (1) | KR20210132216A (ko) |
CN (1) | CN113826351A (ko) |
WO (1) | WO2020197724A1 (ko) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10536279B2 (en) * | 2017-10-22 | 2020-01-14 | Lg Electronics, Inc. | Cryptographic methods and systems for managing digital certificates |
US11624630B2 (en) * | 2019-02-12 | 2023-04-11 | International Business Machines Corporation | Using augmented reality to present vehicle navigation requirements |
US11361660B2 (en) * | 2019-03-25 | 2022-06-14 | Micron Technology, Inc. | Verifying identity of an emergency vehicle during operation |
US11271755B2 (en) * | 2019-03-25 | 2022-03-08 | Micron Technology, Inc. | Verifying vehicular identity |
US11218330B2 (en) | 2019-03-25 | 2022-01-04 | Micron Technology, Inc. | Generating an identity for a computing device using a physical unclonable function |
US11233650B2 (en) | 2019-03-25 | 2022-01-25 | Micron Technology, Inc. | Verifying identity of a vehicle entering a trust zone |
US11323275B2 (en) | 2019-03-25 | 2022-05-03 | Micron Technology, Inc. | Verification of identity using a secret key |
US10896606B1 (en) * | 2019-09-13 | 2021-01-19 | Bendix Commercial Vehicle Systems Llc | Emergency vehicle detection and right-of-way deference control in platooning |
US12067104B2 (en) * | 2019-09-25 | 2024-08-20 | Hilti Aktiengesellschaft | Systems and methods for data security within power tools |
US11796997B1 (en) * | 2020-03-25 | 2023-10-24 | Gm Cruise Holdings Llc | Emergency vehicle interactions using external triggers |
DE102021101101A1 (de) | 2021-01-20 | 2022-07-21 | zereOS GmbH | Adapter und Verfahren zum Beeinflussen oder Diagnostizieren eines Geräts |
US11770701B2 (en) | 2021-02-05 | 2023-09-26 | Argo AI, LLC | Secure communications with autonomous vehicles |
CN113329371B (zh) * | 2021-04-29 | 2022-12-20 | 北京航空航天大学 | 一种基于puf的5g车联网v2v匿名认证与密钥协商方法 |
US20230127278A1 (en) * | 2021-10-22 | 2023-04-27 | Micron Technology, Inc. | Multi-factor authentication for a memory system based on internal asymmetric keys |
US11897500B2 (en) * | 2021-12-13 | 2024-02-13 | Gm Cruise Holdings Llc | Secure management of digital authentication information for autonomous vehicles |
US20230237507A1 (en) * | 2022-01-26 | 2023-07-27 | Robert Bosch Gmbh | System and method for generating a digital vehicle identification number |
CN114726540B (zh) * | 2022-04-06 | 2024-01-02 | 芯安微众(上海)微电子技术有限公司 | 一种车辆可信数字身份生成方法 |
Family Cites Families (131)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6119105A (en) | 1996-06-17 | 2000-09-12 | Verifone, Inc. | System, method and article of manufacture for initiation of software distribution from a point of certificate creation utilizing an extensible, flexible architecture |
AU4794101A (en) | 2000-04-11 | 2001-10-23 | Richard M Mathis | Method and apparatus for computer memory protection and verification |
US20020038420A1 (en) * | 2000-04-13 | 2002-03-28 | Collins Timothy S. | Method for efficient public key based certification for mobile and desktop environments |
US20020165912A1 (en) * | 2001-02-25 | 2002-11-07 | Storymail, Inc. | Secure certificate and system and method for issuing and using same |
US20020199001A1 (en) * | 2001-02-25 | 2002-12-26 | Storymail, Inc. | System and method for conducting a secure response communication session |
KR100427323B1 (ko) | 2001-08-31 | 2004-04-14 | 현대자동차주식회사 | 차고문 자동 개폐 제어장치 및 방법 |
US20030147534A1 (en) * | 2002-02-06 | 2003-08-07 | Ablay Sewim F. | Method and apparatus for in-vehicle device authentication and secure data delivery in a distributed vehicle network |
US7228420B2 (en) * | 2002-06-28 | 2007-06-05 | Temic Automotive Of North America, Inc. | Method and system for technician authentication of a vehicle |
US20040003234A1 (en) * | 2002-06-28 | 2004-01-01 | Jurgen Reinold | Method and system for vehicle authentication of a subassembly |
US7600114B2 (en) * | 2002-06-28 | 2009-10-06 | Temic Automotive Of North America, Inc. | Method and system for vehicle authentication of another vehicle |
US7010682B2 (en) * | 2002-06-28 | 2006-03-07 | Motorola, Inc. | Method and system for vehicle authentication of a component |
US7131005B2 (en) * | 2002-06-28 | 2006-10-31 | Motorola, Inc. | Method and system for component authentication of a vehicle |
US6977580B2 (en) | 2002-09-26 | 2005-12-20 | International Business Machines Corporation | Apparatus, system and method of securing perimeters of security zones from suspect vehicles |
US7165181B2 (en) | 2002-11-27 | 2007-01-16 | Intel Corporation | System and method for establishing trust without revealing identity |
WO2005101727A1 (ja) | 2004-04-15 | 2005-10-27 | Matsushita Electric Industrial Co., Ltd. | 通信装置、通信システム及び認証方法 |
WO2006026347A2 (en) | 2004-08-25 | 2006-03-09 | The Marenco Group | Anti-carjacking system |
US7525435B2 (en) | 2005-08-02 | 2009-04-28 | Performance Partners, Llc | Method, apparatus, and system for securing areas of use of vehicles |
US7613891B2 (en) | 2006-05-04 | 2009-11-03 | Intel Corporation | Methods and apparatus for providing a read access control system associated with a flash device |
US20100138652A1 (en) | 2006-07-07 | 2010-06-03 | Rotem Sela | Content control method using certificate revocation lists |
KR100823738B1 (ko) | 2006-09-29 | 2008-04-21 | 한국전자통신연구원 | 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법 |
US9830637B2 (en) | 2007-02-23 | 2017-11-28 | Epona Llc | System and method for processing vehicle transactions |
DE602007000729D1 (de) * | 2007-06-15 | 2009-04-30 | Ntt Docomo Inc | Verfahren und Vorrichtung zur Authentifizierung |
US20090179775A1 (en) * | 2008-01-10 | 2009-07-16 | Gm Global Technology Operations, Inc. | Secure information system |
US8230215B2 (en) * | 2008-04-11 | 2012-07-24 | Toyota Motor Engineering & Manufacturing North America, Inc. | Method for allocating multiple authentication certificates to vehicles in a vehicle-to-vehicle communication network |
US8761390B2 (en) * | 2008-06-30 | 2014-06-24 | Gm Global Technology Operations | Production of cryptographic keys for an embedded processing device |
US8484486B2 (en) | 2008-08-06 | 2013-07-09 | Silver Spring Networks, Inc. | Integrated cryptographic security module for a network node |
TWM356972U (en) | 2008-12-17 | 2009-05-11 | Univ Kun Shan | Portable storage device with local and remote identity recognition function |
US8499154B2 (en) * | 2009-01-27 | 2013-07-30 | GM Global Technology Operations LLC | System and method for establishing a secure connection with a mobile device |
JP5612514B2 (ja) | 2010-03-24 | 2014-10-22 | パナソニック株式会社 | 不揮発性メモリコントローラ及び不揮発性記憶装置 |
US8499155B2 (en) * | 2010-03-24 | 2013-07-30 | GM Global Technology Operations LLC | Adaptive certificate distribution mechanism in vehicular networks using variable inter-certificate refresh period |
US10153908B2 (en) * | 2010-04-30 | 2018-12-11 | T-Central, Inc. | Secure communication of IOT devices for vehicles |
US20120038489A1 (en) | 2010-08-12 | 2012-02-16 | Goldshmidt Ehud | System and method for spontaneous p2p communication between identified vehicles |
JP2012118805A (ja) | 2010-12-01 | 2012-06-21 | Sony Corp | 情報処理装置、リムーバブルストレージ装置、情報処理方法、及び情報処理システム |
US8996868B2 (en) * | 2010-12-15 | 2015-03-31 | Electronics And Telecommunications Research Institute | Method of authenticating vehicle communication |
US8526606B2 (en) * | 2010-12-20 | 2013-09-03 | GM Global Technology Operations LLC | On-demand secure key generation in a vehicle-to-vehicle communication network |
US9467293B1 (en) | 2010-12-22 | 2016-10-11 | Emc Corporation | Generating authentication codes associated with devices |
EP2479731B1 (en) | 2011-01-18 | 2015-09-23 | Alcatel Lucent | User/vehicle-ID associating access rights and privileges |
KR101881167B1 (ko) | 2011-06-13 | 2018-07-23 | 주식회사 케이티 | 차량 제어 시스템 |
US8924737B2 (en) * | 2011-08-25 | 2014-12-30 | Microsoft Corporation | Digital signing authority dependent platform secret |
US8700916B2 (en) | 2011-12-02 | 2014-04-15 | Cisco Technology, Inc. | Utilizing physically unclonable functions to derive device specific keying material for protection of information |
WO2013109857A1 (en) | 2012-01-20 | 2013-07-25 | Interdigital Patent Holdings, Inc. | Identity management with local functionality |
DE102012201164B4 (de) | 2012-01-26 | 2017-12-07 | Infineon Technologies Ag | Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes |
US9166958B2 (en) * | 2012-07-17 | 2015-10-20 | Texas Instruments Incorporated | ID-based control unit-key fob pairing |
US10079678B2 (en) | 2012-07-24 | 2018-09-18 | Intel Corporation | Providing access to encrypted data |
US8525169B1 (en) | 2012-08-10 | 2013-09-03 | International Business Machines Corporation | Reliable physical unclonable function for device authentication |
US9742563B2 (en) | 2012-09-28 | 2017-08-22 | Intel Corporation | Secure provisioning of secret keys during integrated circuit manufacturing |
JP5967822B2 (ja) | 2012-10-12 | 2016-08-10 | ルネサスエレクトロニクス株式会社 | 車載通信システム及び装置 |
JP5939126B2 (ja) | 2012-10-17 | 2016-06-22 | 株式会社デンソー | 車載装置および車両盗難防止システム |
US20140164778A1 (en) * | 2012-12-07 | 2014-06-12 | Andrei Yoryevich Sherbakov | Method for producing and storage of digital certificates |
US8885819B2 (en) | 2012-12-27 | 2014-11-11 | Intel Corporation | Fuse attestation to secure the provisioning of secret keys during integrated circuit manufacturing |
US8938792B2 (en) | 2012-12-28 | 2015-01-20 | Intel Corporation | Device authentication using a physically unclonable functions based key generation system |
JP2014158105A (ja) * | 2013-02-14 | 2014-08-28 | Panasonic Corp | 端末装置 |
US20140245010A1 (en) | 2013-02-25 | 2014-08-28 | Kabushiki Kaisha Toshiba | Device and authentication method therefor |
DE102013203415B4 (de) | 2013-02-28 | 2016-02-11 | Siemens Aktiengesellschaft | Erstellen eines abgeleiteten Schlüssels aus einem kryptographischen Schlüssel mittels einer physikalisch nicht klonbaren Funktion |
WO2014138626A1 (en) * | 2013-03-08 | 2014-09-12 | Robert Bosch Gmbh | Systems and methods for maintaining integrity and secrecy in untrusted computing platforms |
US9906372B2 (en) | 2013-06-03 | 2018-02-27 | Intel Deutschland Gmbh | Authentication devices, key generator devices, methods for controlling an authentication device, and methods for controlling a key generator |
US9769658B2 (en) * | 2013-06-23 | 2017-09-19 | Shlomi Dolev | Certificating vehicle public key with vehicle attributes |
KR101521412B1 (ko) | 2013-07-11 | 2015-05-19 | 가톨릭관동대학교산학협력단 | 인증기반 메시지 집계 프로토콜 관리시스템 |
US20150256522A1 (en) | 2013-09-16 | 2015-09-10 | Clutch Authentication Systems, Llc | System and method for communication over color encoded light patterns |
US9992031B2 (en) | 2013-09-27 | 2018-06-05 | Intel Corporation | Dark bits to reduce physically unclonable function error rates |
US10033814B2 (en) * | 2013-10-08 | 2018-07-24 | Ictk Holdings Co., Ltd. | Vehicle security network device and design method therefor |
US11349675B2 (en) * | 2013-10-18 | 2022-05-31 | Alcatel-Lucent Usa Inc. | Tamper-resistant and scalable mutual authentication for machine-to-machine devices |
FR3013138B1 (fr) | 2013-11-12 | 2015-10-30 | Morpho | Procede et systeme de controle lors de l'acces ou la sortie d'une zone |
DE102013227087A1 (de) | 2013-12-23 | 2015-06-25 | Siemens Aktiengesellschaft | Gesichertes Bereitstellen eines Schlüssels |
US9647832B2 (en) | 2014-01-13 | 2017-05-09 | Visa International Service Association | Efficient methods for protecting identity in authenticated transmissions |
CN104901931B (zh) * | 2014-03-05 | 2018-10-12 | 财团法人工业技术研究院 | 证书管理方法与装置 |
TWI730941B (zh) * | 2014-04-09 | 2021-06-21 | 南韓商Ictk控股有限公司 | 驗證裝置及方法 |
CN105337725B (zh) | 2014-08-08 | 2019-04-23 | 中国科学院数据与通信保护研究教育中心 | 一种密钥管理装置及方法 |
WO2016026023A1 (en) * | 2014-08-19 | 2016-02-25 | Aeryon Labs Inc. | Secure system for emergency-mode operation, system monitoring and trusted access vehicle location and recovery |
US10805093B2 (en) | 2014-10-13 | 2020-10-13 | Intrinsic-Id B.V. | Cryptographic device comprising a physical unclonable function |
US9935937B1 (en) | 2014-11-05 | 2018-04-03 | Amazon Technologies, Inc. | Implementing network security policies using TPM-based credentials |
WO2016075792A1 (ja) * | 2014-11-13 | 2016-05-19 | キヤノン株式会社 | 情報処理装置、制御方法、及び、プログラム |
EP4254875A3 (en) | 2014-11-13 | 2023-11-15 | Panasonic Intellectual Property Corporation of America | Key management method, vehicle-mounted network system, and key management device |
JP2016116134A (ja) * | 2014-12-16 | 2016-06-23 | パナソニックIpマネジメント株式会社 | 署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法 |
US9604651B1 (en) | 2015-08-05 | 2017-03-28 | Sprint Communications Company L.P. | Vehicle telematics unit communication authorization and authentication and communication service provisioning |
US10402792B2 (en) | 2015-08-13 | 2019-09-03 | The Toronto-Dominion Bank | Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers |
JP6389152B2 (ja) * | 2015-08-24 | 2018-09-12 | 三菱電機株式会社 | 車載器および車載器プログラム |
US9917687B2 (en) | 2015-10-12 | 2018-03-13 | Microsoft Technology Licensing, Llc | Migrating secrets using hardware roots of trust for devices |
CN108701276B (zh) | 2015-10-14 | 2022-04-12 | 剑桥区块链有限责任公司 | 用于管理数字身份的系统和方法 |
DE102015220224A1 (de) * | 2015-10-16 | 2017-04-20 | Volkswagen Aktiengesellschaft | Verfahren zur geschützten Kommunikation eines Fahrzeugs |
DE102015220227A1 (de) * | 2015-10-16 | 2017-04-20 | Volkswagen Aktiengesellschaft | Verfahren und System für eine asymmetrische Schlüsselherleitung |
CN108352984B (zh) | 2015-11-05 | 2021-06-01 | 三菱电机株式会社 | 安全装置和安全方法 |
US9832024B2 (en) * | 2015-11-13 | 2017-11-28 | Visa International Service Association | Methods and systems for PKI-based authentication |
KR101782483B1 (ko) | 2015-12-03 | 2017-10-23 | 현대오토에버 주식회사 | 차량 애드 혹 네트워크에서의 차량 인증서 생성 방법 및 장치 |
JP5991561B2 (ja) * | 2015-12-25 | 2016-09-14 | パナソニックIpマネジメント株式会社 | 無線装置 |
JP6684690B2 (ja) | 2016-01-08 | 2020-04-22 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム |
US10484351B2 (en) | 2016-01-28 | 2019-11-19 | Etas Embedded Systems Canada Inc. | System and method for certificate selection in vehicle-to-vehicle applications to enhance privacy |
US9990783B2 (en) * | 2016-02-16 | 2018-06-05 | GM Global Technology Operations LLC | Regulating vehicle access using cryptographic methods |
DE102016205198A1 (de) | 2016-03-30 | 2017-10-05 | Siemens Aktiengesellschaft | Nachweisen einer Authentizität eines Gerätes mithilfe eines Berechtigungsnachweises |
JP6479262B2 (ja) * | 2016-04-28 | 2019-03-06 | 三菱電機株式会社 | 車上装置、地上データ管理装置、地車間通信セキュリティシステム及び地車間通信方法 |
WO2017194335A2 (en) | 2016-05-09 | 2017-11-16 | Intrinsic Id B.V. | Programming device arranged to obtain and store a random bit string in a memory device |
CN109417480A (zh) * | 2016-06-17 | 2019-03-01 | Kddi株式会社 | 系统、认证站、车载计算机、车辆、公开密钥证书发行方法以及程序 |
KR102562786B1 (ko) | 2016-07-07 | 2023-08-03 | 엘지이노텍 주식회사 | 차량 운전 보조 장치 및 이를 포함하는 주차 관제 시스템 |
KR102598613B1 (ko) * | 2016-07-21 | 2023-11-07 | 삼성전자주식회사 | 개인 인증 및 차량 인증 기반으로 차량 정보를 제공하는 시스템 및 방법 |
US10390221B2 (en) * | 2016-07-25 | 2019-08-20 | Ford Global Technologies, Llc | Private vehicle-to-vehicle communication |
US20180060813A1 (en) | 2016-08-23 | 2018-03-01 | Ford Global Technologies, Llc | Autonomous delivery vehicle system |
US10285051B2 (en) * | 2016-09-20 | 2019-05-07 | 2236008 Ontario Inc. | In-vehicle networking |
US10397215B2 (en) | 2016-09-27 | 2019-08-27 | Visa International Service Assocation | Secure element installation and provisioning |
US10491405B2 (en) * | 2016-10-04 | 2019-11-26 | Denso International America, Inc. | Cryptographic security verification of incoming messages |
US10297147B2 (en) * | 2016-12-06 | 2019-05-21 | Flir Commercial Systems, Inc. | Methods and apparatus for monitoring traffic data |
EP3563546B1 (en) | 2016-12-30 | 2021-11-10 | INTEL Corporation | Decentralized data storage and processing for iot devices |
PH12017000044B1 (en) | 2017-02-13 | 2018-08-20 | Samsung Electronics Co Ltd | Vehicle parking area access management system and method |
WO2018160193A1 (en) | 2017-03-03 | 2018-09-07 | Ford Global Technologies, Llc | Vehicle parking control |
US10972291B2 (en) * | 2017-03-31 | 2021-04-06 | Intel Corporation | Securing communications |
US11341251B2 (en) | 2017-04-19 | 2022-05-24 | Quintessencelabs Pty Ltd. | Encryption enabling storage systems |
US10984136B2 (en) * | 2017-04-21 | 2021-04-20 | Micron Technology, Inc. | Secure memory device with unique identifier for authentication |
US10783600B2 (en) | 2017-05-25 | 2020-09-22 | GM Global Technology Operations LLC | Method and system using a blockchain database for data exchange between vehicles and entities |
JP6754325B2 (ja) * | 2017-06-20 | 2020-09-09 | 国立大学法人東海国立大学機構 | 車載認証システム、車載認証装置、コンピュータプログラム及び通信装置の認証方法 |
US20190027044A1 (en) | 2017-07-19 | 2019-01-24 | Aptiv Technologies Limited | Automated secured-area access system for an automated vehicle |
JP6773617B2 (ja) * | 2017-08-21 | 2020-10-21 | 株式会社東芝 | 更新制御装置、ソフトウェア更新システムおよび更新制御方法 |
EP3673615A1 (en) * | 2017-08-24 | 2020-07-01 | T-Central, Inc. | Secure communication of iot devices for vehicles |
JP6903529B2 (ja) | 2017-09-11 | 2021-07-14 | 株式会社東芝 | 情報処理装置、情報処理方法およびプログラム |
US11140141B2 (en) * | 2017-09-18 | 2021-10-05 | Fiske Software Llc | Multiparty key exchange |
CA3020431A1 (en) | 2017-10-11 | 2019-04-11 | Marc Chelnik | Vehicle parking authorization assurance system |
US10536279B2 (en) * | 2017-10-22 | 2020-01-14 | Lg Electronics, Inc. | Cryptographic methods and systems for managing digital certificates |
US10812257B2 (en) | 2017-11-13 | 2020-10-20 | Volkswagen Ag | Systems and methods for a cryptographically guaranteed vehicle identity |
WO2019124953A1 (en) * | 2017-12-20 | 2019-06-27 | Lg Electronics Inc. | Cryptographic methods and systems for authentication in connected vehicle systems and for other uses |
US11011056B2 (en) | 2018-01-29 | 2021-05-18 | Fujitsu Limited | Fragmentation-aware intelligent autonomous intersection management using a space-time resource model |
US10917237B2 (en) | 2018-04-16 | 2021-02-09 | Microsoft Technology Licensing, Llc | Attestable and destructible device identity |
WO2020074933A1 (en) | 2018-10-12 | 2020-04-16 | Micron Technology, Inc. | Method and apparatus to recognize transported passengers and goods |
CN112912939A (zh) | 2018-10-12 | 2021-06-04 | 美光科技公司 | 改进的车辆通信 |
US10425401B1 (en) * | 2018-10-31 | 2019-09-24 | ISARA Corporation | Extensions for using a digital certificate with multiple cryptosystems |
US10868667B2 (en) | 2018-11-06 | 2020-12-15 | GM Global Technology Operations LLC | Blockchain enhanced V2X communication system and method |
US11139990B2 (en) * | 2018-12-29 | 2021-10-05 | Intel Corporation | Automatically verifying vehicle identity and validating vehicle presence |
KR20200091689A (ko) | 2019-01-23 | 2020-07-31 | 한국전자통신연구원 | 차량 통신을 위한 보안 관리 시스템, 그것의 동작 방법, 및 그것을 포함하는 차량 통신 서비스 제공 시스템의 메시지 처리 방법 |
US11361660B2 (en) * | 2019-03-25 | 2022-06-14 | Micron Technology, Inc. | Verifying identity of an emergency vehicle during operation |
US11271755B2 (en) * | 2019-03-25 | 2022-03-08 | Micron Technology, Inc. | Verifying vehicular identity |
US11218330B2 (en) | 2019-03-25 | 2022-01-04 | Micron Technology, Inc. | Generating an identity for a computing device using a physical unclonable function |
US11456880B2 (en) * | 2019-03-25 | 2022-09-27 | Micron Technology, Inc. | Cryptographically secure mechanism for remotely controlling an autonomous vehicle |
US11233650B2 (en) * | 2019-03-25 | 2022-01-25 | Micron Technology, Inc. | Verifying identity of a vehicle entering a trust zone |
US11323275B2 (en) * | 2019-03-25 | 2022-05-03 | Micron Technology, Inc. | Verification of identity using a secret key |
-
2019
- 2019-03-25 US US16/363,088 patent/US11361660B2/en active Active
-
2020
- 2020-03-04 KR KR1020217034177A patent/KR20210132216A/ko not_active Application Discontinuation
- 2020-03-04 EP EP20777658.4A patent/EP3949255A4/en not_active Withdrawn
- 2020-03-04 CN CN202080033402.5A patent/CN113826351A/zh active Pending
- 2020-03-04 WO PCT/US2020/020909 patent/WO2020197724A1/en unknown
- 2020-03-04 JP JP2021557291A patent/JP2022528070A/ja not_active Ceased
-
2022
- 2022-05-11 US US17/742,333 patent/US20220277650A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN113826351A (zh) | 2021-12-21 |
US20220277650A1 (en) | 2022-09-01 |
WO2020197724A1 (en) | 2020-10-01 |
EP3949255A1 (en) | 2022-02-09 |
JP2022528070A (ja) | 2022-06-08 |
EP3949255A4 (en) | 2022-12-21 |
US20200312136A1 (en) | 2020-10-01 |
US11361660B2 (en) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11962701B2 (en) | Verifying identity of a vehicle entering a trust zone | |
US20220277650A1 (en) | Verifying Identity of an Emergency Vehicle During Operation | |
US20220078035A1 (en) | Generating an identity for a computing device using a physical unclonable function | |
TWI740409B (zh) | 使用密鑰之身份驗證 | |
CN112042151B (zh) | 使用单调计数器的机密密钥的安全分发 | |
US20130086385A1 (en) | System and Method for Providing Hardware-Based Security | |
CN102456111B (zh) | 一种Linux操作系统许可控制的方法及系统 | |
US11063747B2 (en) | Secure monitoring using block chain | |
US11615207B2 (en) | Security processor configured to authenticate user and authorize user for user data and computing system including the same | |
EP2575068A1 (en) | System and method for providing hardware-based security | |
CN115037492A (zh) | 基于在存储器装置中实施的安全特征的在线安全服务 | |
CN117077142A (zh) | 经由身份验证跟踪具有安全存储器装置的端点中的组件的活动 | |
CN115037494A (zh) | 无需预先定制端点的云服务登入 | |
CN115037491A (zh) | 具有被保护用于可靠身份验证的存储器装置的端点群组中的订阅共享 | |
CN115021949A (zh) | 具有被保护用于可靠身份验证的存储器装置的端点的识别管理方法和系统 | |
CN115021950A (zh) | 用于端点的在线服务商店 | |
CN115037493A (zh) | 监测具有安全存储器装置的端点的完整性以用于身份认证 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |