KR20190104401A - 모바일 디바이스를 사용한 시스템 액세스 - Google Patents
모바일 디바이스를 사용한 시스템 액세스 Download PDFInfo
- Publication number
- KR20190104401A KR20190104401A KR1020197023775A KR20197023775A KR20190104401A KR 20190104401 A KR20190104401 A KR 20190104401A KR 1020197023775 A KR1020197023775 A KR 1020197023775A KR 20197023775 A KR20197023775 A KR 20197023775A KR 20190104401 A KR20190104401 A KR 20190104401A
- Authority
- KR
- South Korea
- Prior art keywords
- key
- certificate
- mobile device
- public key
- signature
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/50—Secure pairing of devices
-
- 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
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C9/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00309—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys operated with bidirectional data transmission between data carrier and locks
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07C—TIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
- G07C9/00—Individual registration on entry or exit
- G07C9/00174—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys
- G07C9/00896—Electronically operated locks; Circuits therefor; Nonmechanical keys therefor, e.g. passive or active electrical keys or other data carriers without mechanical keys specially adapted for particular uses
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/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
- H04L9/3265—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 using certificate chains, trees or paths; Hierarchical trust model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/041—Key generation or derivation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
- H04W12/047—Key management, e.g. using generic bootstrapping architecture [GBA] without using a trusted network node as an anchor
- H04W12/0471—Key exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
-
- 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/08—Access security
-
- 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/72—Signcrypting, i.e. digital signing and encrypting simultaneously
-
- 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/80—Wireless
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
예를 들어, 시스템 기능(예컨대, 시스템에 대한 물리적 액세스, 엔진/모터 등을 시작함)에 대한 액세스를 허용하도록 모바일 전자 디바이스를 인증하기 위한, 전자 보안과 관련된 기술들이 개시된다. 일부 실시예들에서, 시스템 및 모바일 디바이스는 페어링 프로세스 동안 공개 키 쌍들의 공개 키들을 교환한다. 일부 실시예들에서, 비대칭 거래 프로세스는 보안 키 교환(예를 들어, 타원 곡선 디피-헬만(Diffie-Hellman))을 사용하여 확립된 키를 통해 키 도출 함수를 사용하여 공유 비밀을 생성하는 단계, 및 모바일 디바이스를 식별하는 임의의 정보를 송신하기 전에 시스템의 서명을 검증하는 단계를 포함한다. 다양한 실시예들에서, 개시된 기술들은 거래 보안 및 식별 정보의 프라이버시를 증가시킬 수 있다.
Description
기술분야
본 개시내용은 일반적으로 전자 보안에 관한 것이며, 보다 구체적으로는, 다른 시스템으로의 액세스를 얻기 위해 모바일 디바이스를 사용하기 위한 암호화 기술들에 관한 것이다.
배경기술
시스템의 기능에 대한 액세스를 얻기 위한 전통적인 기술들(예컨대, 시스템의 물리적 액세스 또는 일부 기능에 액세스하는 것)은 물리적 키들 또는 전자 키 포브(fob)들의 사용을 요구할 수 있다. 이러한 전통적인 키들을 운반하는 것은 불편할 수 있고, 키가 손실되거나 도난당한 경우 악의적인 엔티티들이 액세스를 획득하게 할 수 있다.
도 1a는 일부 실시예들에 따른, 모바일 디바이스와 제어 유닛 사이의 예시적인 페어링(pairing) 통신들을 예시하는 블록도이다.
도 1b는 일부 실시예들에 따른, 모바일 디바이스와 제어 유닛 사이의 예시적인 요청 및 인증 통신들을 예시하는 블록도이다.
도 1c는 일부 실시예들에 따른, 제어 유닛을 제어하기 위해 다른 모바일 디바이스에 인가를 승인하기 위한 예시적인 통신들을 예시하는 블록도이다.
도 2는 일부 실시예들에 따른, 예시적인 모바일 디바이스를 예시하는 블록도이다.
도 3은 일부 실시예들에 따른, 페어링을 위한 예시적인 기술들을 예시하는 통신도이다.
도 4는 일부 실시예들에 따른, 동작을 인가하기 위한 예시적인 기술들을 예시하는 통신도이다.
도 5는 일부 실시예들에 따른, 다른 디바이스를 인가하기 위한 예시적인 기술들을 예시하는 통신도이다.
도 6a 및 도 6b는 일부 실시예들에 따른, 다른 디바이스의 서버-기반 인가를 위한 예시적인 기술들을 예시하는 통신도를 구성한다.
도 7a 및 도 7b는 일부 실시예들에 따른, 시스템의 모바일 디바이스와 프로세싱 요소를 페어링하기 위한 예시적인 방법들을 예시하는 흐름도들이다.
도 8a 및 도 8b는 일부 실시예들에 따른, 시스템에 의한 하나 이상의 동작들을 인가하기 위해 모바일 디바이스를 인증하기 위한 예시적인 방법들을 예시하는 흐름도들이다.
도 9a 내지 도 9c는 일부 실시예들에 따른, 다수의 거래 유형들을 갖는 동작을 인가하기 위한 예시적인 기술들을 예시하는 통신도를 구성한다.
도 10은 일부 실시예들에 따른, 표준 거래 유형을 갖는 동작을 인가하기 위한 예시적인 기술들을 예시하는 통신도이다.
도 11은 일부 실시예들에 따른, 예시적인 페어링 기술을 예시하는 통신도이다.
도 12는 일부 실시예들에 따른, 예시적인 모바일 시스템 요소들을 예시하는 블록도이다.
도 13은 일부 실시예들에 따른, 모바일 디바이스 및 시스템의 예시적인 컴포넌트들을 예시하는 블록도이다.
도 14는 일부 실시예들에 따른, 예시적인 메일박스 구조를 예시하는 도면이다.
도 15는 일부 실시예들에 따른, 다른 디바이스와의 예시적인 오프라인 공유를 예시하는 통신도이다.
도 16은 일부 실시예들에 따른, 다른 디바이스와의 예시적인 온라인 공유를 예시하는 통신도이다.
도 17은 일부 실시예들에 따른, 예시적인 키 폐기를 예시하는 도면이다.
도 18은 일부 실시예들에 따른, 예시적인 메일박스 사용을 예시하는 도면이다.
도 19 내지 도 24는 일부 실시예들에 따른, 예시적인 인증서 체인들을 예시하는 블록도들이다.
도 25는 일부 실시예들에 따른, 설계 정보를 저장하는 예시적인 컴퓨터 판독가능 매체를 예시하는 블록도이다.
도 26은 일부 실시예들에 따른, 인증을 위한 예시적인 모바일 측 방법을 예시하는 흐름도이다.
도 27은 일부 실시예들에 따른, 인증을 위한 예시적인 시스템 측 방법을 예시하는 흐름도이다.
도 28은 일부 실시예들에 따른, 페어링에서 디지털 키 구조 증명(digital key structure attestation)을 위한 예시적인 기술을 예시하는 블록도이다.
본 개시내용은 "일 실시예" 또는 "실시예"에 대한 참조들을 포함한다. "일 실시예에서" 또는 "실시예에서"라는 문구들의 등장들은 반드시 동일한 실시예를 지칭하는 것은 아니다. 특정 특징들, 구조들 또는 특성들이 본 개시내용과 일관성을 유지하는 임의의 적합한 방식으로 조합될 수 있다.
본 개시내용 내에서, 상이한 엔티티들("유닛들", "회로들", 다른 컴포넌트들 등으로 다양하게 지칭될 수 있음)은 하나 이상의 태스크들 또는 동작들을 수행하도록 "구성된" 것으로 설명되거나 또는 청구될 수 있다. 이러한 설명은-[하나 이상의 태스크들을 수행]하도록 구성된 [엔티티]-본 명세서에서 구조(즉, 전자 회로와 같은 물리적인 것)를 지칭하는 데 사용된다. 더 상세하게는, 이러한 설명은 이 구조가 동작 시 하나 이상의 태스크들을 수행하도록 구성됨을 나타내는 데 사용된다. 구조가 현재 동작되고 있지 않더라도, 구조는 일부 태스크를 수행하도록 "구성된다"고 할 수 있다. 예를 들어, "인증을 수행하도록 구성된 보안 회로"는 문제의 집적 회로가 현재 사용되고 있지 않더라도(예컨대, 전원 공급이 접속되어 있지 않음), 동작 시 이 기능을 수행하는 회로부를 갖는 집적 회로를 포괄하도록 의도된다. 따라서, 일부 태스크를 수행하도록 "구성된" 것으로 설명된 또는 인용된 엔티티는 디바이스, 회로, 태스크를 구현하도록 실행가능한 프로그램 명령어들을 저장하는 메모리 등과 같은 물리적인 것을 지칭한다. 이러한 문구는 무형인 것을 지칭하기 위해 본 명세서에서 사용되지는 않는다. 따라서, 구성하도록 "구성된" 것은 본 명세서에서 애플리케이션 프로그래밍 인터페이스(API)와 같은 소프트웨어 엔티티를 지칭하는 데 사용되지 않는다.
용어 "구성된"은 "구성가능한"을 의미하도록 의도되지 않는다. 예를 들어, 프로그램되지 않은 FPGA는, 그것이 일부 구체적인 기능을 수행하도록 "구성가능"할 수 있고, 프로그래밍 후 그 기능을 수행하도록 "구성"될 수 있지만, 그것을 수행하도록 "구성된" 것으로 고려되지 않을 것이다.
구조가 하나 이상의 태스크들을 수행하도록 "구성"되었다고 첨부된 청구항들에 인용하는 것은 명백히 그 청구항 구성요소에 대하여 35 U.S.C. §(112)(f)를 적용하지 않도록 의도된다. 따라서, 출원된 본 출원서의 어떠한 청구항들도 수단+기능식 구성요소들을 갖는 것으로 해석되도록 의도되지 않는다. 출원인이 심사 시 Section(112)(f)의 적용을 바란다면, [기능을 수행]"하기 위한 수단" 구조를 이용하여 청구항 구성요소들을 열거할 것이다.
본 명세서에 사용된 바와 같이, 구체적으로 진술되지 않는 한, 용어 "제1", "제2" 등은 선행하고 있는 명사의 라벨로 사용될 뿐, 임의의 유형의 순번(예를 들어, 공간적, 시간적, 논리적 등)을 암시하는 것은 아니다. 예를 들어, 모바일 디바이스는 제1 사용자 및 제2 사용자를 가질 수 있다. 용어 "제1"은 디바이스의 초기 사용자로 제한되지 않는다. 용어 "제1"은 또한 모바일 디바이스의 하나의 사용자만이 존재할 때 사용될 수 있다.
본 명세서에서 사용되는 바와 같이, 용어 "기초하여"는 결정에 영향을 주는 하나 이상의 인자들을 설명하기 위해 사용된다. 이러한 용어는 추가적인 인자들이 결정에 영향을 줄 수 있는 가능성을 배제하지 않는다. 즉, 결정은 단지 특정 인자들에 기초하거나 또는 그 특정 인자들 뿐만 아니라 다른, 불특정 인자들에 기초할 수 있다. "B에 기초하여 A를 결정한다"라는 문구를 고려한다. 이러한 문구는 B가 A를 결정하는 데 사용되거나 A의 결정에 영향을 주는 인자라는 것을 명시한다. 이러한 문구는 A의 결정이 C와 같은 일부 다른 인자에 또한 기초할 수 있음을 배제하지 않는다. 또한, 이러한 문구는 A가 B만에 기초하여 결정되는 실시예를 커버하도록 의도된다. 따라서, 본 명세서에서 사용되는 바와 같이, "에 기초하여"라는 문구는 "적어도 부분적으로 기초하여"라는 문구와 동의어이다.
도 1b는 일부 실시예들에 따른, 모바일 디바이스와 제어 유닛 사이의 예시적인 요청 및 인증 통신들을 예시하는 블록도이다.
도 1c는 일부 실시예들에 따른, 제어 유닛을 제어하기 위해 다른 모바일 디바이스에 인가를 승인하기 위한 예시적인 통신들을 예시하는 블록도이다.
도 2는 일부 실시예들에 따른, 예시적인 모바일 디바이스를 예시하는 블록도이다.
도 3은 일부 실시예들에 따른, 페어링을 위한 예시적인 기술들을 예시하는 통신도이다.
도 4는 일부 실시예들에 따른, 동작을 인가하기 위한 예시적인 기술들을 예시하는 통신도이다.
도 5는 일부 실시예들에 따른, 다른 디바이스를 인가하기 위한 예시적인 기술들을 예시하는 통신도이다.
도 6a 및 도 6b는 일부 실시예들에 따른, 다른 디바이스의 서버-기반 인가를 위한 예시적인 기술들을 예시하는 통신도를 구성한다.
도 7a 및 도 7b는 일부 실시예들에 따른, 시스템의 모바일 디바이스와 프로세싱 요소를 페어링하기 위한 예시적인 방법들을 예시하는 흐름도들이다.
도 8a 및 도 8b는 일부 실시예들에 따른, 시스템에 의한 하나 이상의 동작들을 인가하기 위해 모바일 디바이스를 인증하기 위한 예시적인 방법들을 예시하는 흐름도들이다.
도 9a 내지 도 9c는 일부 실시예들에 따른, 다수의 거래 유형들을 갖는 동작을 인가하기 위한 예시적인 기술들을 예시하는 통신도를 구성한다.
도 10은 일부 실시예들에 따른, 표준 거래 유형을 갖는 동작을 인가하기 위한 예시적인 기술들을 예시하는 통신도이다.
도 11은 일부 실시예들에 따른, 예시적인 페어링 기술을 예시하는 통신도이다.
도 12는 일부 실시예들에 따른, 예시적인 모바일 시스템 요소들을 예시하는 블록도이다.
도 13은 일부 실시예들에 따른, 모바일 디바이스 및 시스템의 예시적인 컴포넌트들을 예시하는 블록도이다.
도 14는 일부 실시예들에 따른, 예시적인 메일박스 구조를 예시하는 도면이다.
도 15는 일부 실시예들에 따른, 다른 디바이스와의 예시적인 오프라인 공유를 예시하는 통신도이다.
도 16은 일부 실시예들에 따른, 다른 디바이스와의 예시적인 온라인 공유를 예시하는 통신도이다.
도 17은 일부 실시예들에 따른, 예시적인 키 폐기를 예시하는 도면이다.
도 18은 일부 실시예들에 따른, 예시적인 메일박스 사용을 예시하는 도면이다.
도 19 내지 도 24는 일부 실시예들에 따른, 예시적인 인증서 체인들을 예시하는 블록도들이다.
도 25는 일부 실시예들에 따른, 설계 정보를 저장하는 예시적인 컴퓨터 판독가능 매체를 예시하는 블록도이다.
도 26은 일부 실시예들에 따른, 인증을 위한 예시적인 모바일 측 방법을 예시하는 흐름도이다.
도 27은 일부 실시예들에 따른, 인증을 위한 예시적인 시스템 측 방법을 예시하는 흐름도이다.
도 28은 일부 실시예들에 따른, 페어링에서 디지털 키 구조 증명(digital key structure attestation)을 위한 예시적인 기술을 예시하는 블록도이다.
본 개시내용은 "일 실시예" 또는 "실시예"에 대한 참조들을 포함한다. "일 실시예에서" 또는 "실시예에서"라는 문구들의 등장들은 반드시 동일한 실시예를 지칭하는 것은 아니다. 특정 특징들, 구조들 또는 특성들이 본 개시내용과 일관성을 유지하는 임의의 적합한 방식으로 조합될 수 있다.
본 개시내용 내에서, 상이한 엔티티들("유닛들", "회로들", 다른 컴포넌트들 등으로 다양하게 지칭될 수 있음)은 하나 이상의 태스크들 또는 동작들을 수행하도록 "구성된" 것으로 설명되거나 또는 청구될 수 있다. 이러한 설명은-[하나 이상의 태스크들을 수행]하도록 구성된 [엔티티]-본 명세서에서 구조(즉, 전자 회로와 같은 물리적인 것)를 지칭하는 데 사용된다. 더 상세하게는, 이러한 설명은 이 구조가 동작 시 하나 이상의 태스크들을 수행하도록 구성됨을 나타내는 데 사용된다. 구조가 현재 동작되고 있지 않더라도, 구조는 일부 태스크를 수행하도록 "구성된다"고 할 수 있다. 예를 들어, "인증을 수행하도록 구성된 보안 회로"는 문제의 집적 회로가 현재 사용되고 있지 않더라도(예컨대, 전원 공급이 접속되어 있지 않음), 동작 시 이 기능을 수행하는 회로부를 갖는 집적 회로를 포괄하도록 의도된다. 따라서, 일부 태스크를 수행하도록 "구성된" 것으로 설명된 또는 인용된 엔티티는 디바이스, 회로, 태스크를 구현하도록 실행가능한 프로그램 명령어들을 저장하는 메모리 등과 같은 물리적인 것을 지칭한다. 이러한 문구는 무형인 것을 지칭하기 위해 본 명세서에서 사용되지는 않는다. 따라서, 구성하도록 "구성된" 것은 본 명세서에서 애플리케이션 프로그래밍 인터페이스(API)와 같은 소프트웨어 엔티티를 지칭하는 데 사용되지 않는다.
용어 "구성된"은 "구성가능한"을 의미하도록 의도되지 않는다. 예를 들어, 프로그램되지 않은 FPGA는, 그것이 일부 구체적인 기능을 수행하도록 "구성가능"할 수 있고, 프로그래밍 후 그 기능을 수행하도록 "구성"될 수 있지만, 그것을 수행하도록 "구성된" 것으로 고려되지 않을 것이다.
구조가 하나 이상의 태스크들을 수행하도록 "구성"되었다고 첨부된 청구항들에 인용하는 것은 명백히 그 청구항 구성요소에 대하여 35 U.S.C. §(112)(f)를 적용하지 않도록 의도된다. 따라서, 출원된 본 출원서의 어떠한 청구항들도 수단+기능식 구성요소들을 갖는 것으로 해석되도록 의도되지 않는다. 출원인이 심사 시 Section(112)(f)의 적용을 바란다면, [기능을 수행]"하기 위한 수단" 구조를 이용하여 청구항 구성요소들을 열거할 것이다.
본 명세서에 사용된 바와 같이, 구체적으로 진술되지 않는 한, 용어 "제1", "제2" 등은 선행하고 있는 명사의 라벨로 사용될 뿐, 임의의 유형의 순번(예를 들어, 공간적, 시간적, 논리적 등)을 암시하는 것은 아니다. 예를 들어, 모바일 디바이스는 제1 사용자 및 제2 사용자를 가질 수 있다. 용어 "제1"은 디바이스의 초기 사용자로 제한되지 않는다. 용어 "제1"은 또한 모바일 디바이스의 하나의 사용자만이 존재할 때 사용될 수 있다.
본 명세서에서 사용되는 바와 같이, 용어 "기초하여"는 결정에 영향을 주는 하나 이상의 인자들을 설명하기 위해 사용된다. 이러한 용어는 추가적인 인자들이 결정에 영향을 줄 수 있는 가능성을 배제하지 않는다. 즉, 결정은 단지 특정 인자들에 기초하거나 또는 그 특정 인자들 뿐만 아니라 다른, 불특정 인자들에 기초할 수 있다. "B에 기초하여 A를 결정한다"라는 문구를 고려한다. 이러한 문구는 B가 A를 결정하는 데 사용되거나 A의 결정에 영향을 주는 인자라는 것을 명시한다. 이러한 문구는 A의 결정이 C와 같은 일부 다른 인자에 또한 기초할 수 있음을 배제하지 않는다. 또한, 이러한 문구는 A가 B만에 기초하여 결정되는 실시예를 커버하도록 의도된다. 따라서, 본 명세서에서 사용되는 바와 같이, "에 기초하여"라는 문구는 "적어도 부분적으로 기초하여"라는 문구와 동의어이다.
예시적인 실시예들에 대한 개요
본 개시내용은 모바일 디바이스가 시스템의 기능에 대한 액세스를 얻기 위해 사용되는 실시예들을 설명한다. 일부 실시예들에서, 비대칭 암호화는 모바일 디바이스와 시스템 사이에 보안 채널을 확립하기 위해 사용된다. 보안 채널을 사용하여, 시스템은 이전에 저장된 공개 키(예를 들어, 페어링 프로세스의 일부로서 저장된 키)를 사용하여 모바일 디바이스의 보안 요소(SE)와 같은 보안 회로에 의해 생성된 서명을 검증함으로써 디바이스를 인증할 수 있다. 시스템의 제어 유닛(예컨대, ECU)과 같은 프로세서는 장기 키 쌍들을 저장하고, 짧은 수명의 비대칭 키 쌍들을 생성하고, 서명들을 검증하도록 구성될 수 있다. 모바일 디바이스는 장기 비대칭 키 쌍들을 저장하도록 구성된 SE를 포함할 수 있다.
다양한 실시예들에서, 모바일 디바이스는 초기에 시스템과 페어링 절차를 수행한다. 이러한 절차는 모바일 디바이스가 짧은 수명의 공개 키 쌍들을 시스템과 교환하는 것, 및 모바일 디바이스의 프로세서가 교환된 키들에 기초하여(예를 들어, 타원 곡선 디피-헬만(ECDH)을 사용하여) 시스템과 공유 비밀을 생성하는 것을 포함할 수 있다. 모바일 디바이스의 보안 회로는 또한 시스템이 모바일 디바이스를 인증할 수 있도록 공개 키 쌍을 생성할 수 있다. 보안 회로는 예를 들어 보안 요소일 수 있다. 본 명세서에 사용되는 바와 같이, 용어 "보안 요소"는 본 기술 분야에서 그의 이해되는 의미에 따라 해석되어야 하는데, 이는 그 정보의 인가되지 않은 추출에 저항하는 변조-저항적 방식으로 정보를 저장하도록 구성되는 회로부(예를 들어, 종종 단일-칩 마이크로제어기)를 포함한다. 보안 요소들에 대한 폼 팩터들의 비제한적인 예들은 UICC, 내장된 SE, 및 마이크로SD를 포함한다. 일부 실시예들에서, 보안 요소는 또한 예를 들어 결제 거래들과 같은 다른 유형들의 거래들을 위해 사용된다. 결제 거래들에 대해, 보안 요소는 결제 기기들(예를 들어, 신용 카드들) 및 소유자들(예를 들어, 카드홀더들)에 대한 데이터, 물리적 위치들 또는 빌딩으로의 진입, 송신 액세스 등을 암호로 저장할 수 있다. 일부 실시예들에서, 보안 요소 기능의 적어도 일부분은 클라우드-기반일 수 있다. 이러한 실시예들에서, 디바이스 상의 보안 요소는 서버 상에 저장되는 실제 요구 정보를 검색하는 데 사용될 수 있는 가상 정보를 저장할 수 있다. 일부 실시예들에서, 다른 유형들의 보안 회로들 또는 보안 프로세서들은, 예를 들어, 아래에서 논의되는 보안 엔클레이브 프로세서를 포함하는 보안 요소에 의해 수행되는 것으로 설명되는 기능을 수행할 수 있다.
키 교환 후에, 모바일 디바이스는 이어서 개인 키를 사용하여 키 쌍에 대한 인증서를 암호화하고 암호화된 인증서를 시스템에 전송할 수 있다. 모바일 디바이스는 이어서 공개 키 쌍에 기초하여 도출된 값을 디스플레이할 수 있고, 그 값이 또한 시스템의 디스플레이 상에 디스플레이됨을 확인하도록 모바일 디바이스의 사용자에게 요청할 수 있고, 이는 인증서의 공개 키에 기초한 값을 도출할 수 있다.
모바일 디바이스가 다른 시스템과 페어링되면, 모바일 디바이스는 다른 시스템과의 교환을 수행하여, 일부 실시예들에서, 도어를 열거나, 엔진을 시작하거나 모터를 활성화하는 것과 같은 다른 시스템의 기능을 가능하게 하고, 통화하고, 미디어를 재생하고, 특정 속력 초과로 이동하게 할 수 있다. 일부 실시예들에서, 교환은, 모바일 디바이스의 프로세서가 세션을 위한 시스템 및 모바일 디바이스에 챌린지를 발행하는 시스템과 공유되는 다른 암호화 키를 생성하는 것을 포함한다. 챌린지를 수신하는 것에 응답하여, 모바일 디바이스의 보안 요소는 이전에 생성된 공개 키 쌍의 개인 키를 사용하여 응답을 생성한다. 다른 실시예들에서, 보안 요소들로 고려되지 않는 다른 보안 회로들이 유사한 기능을 수행하기 위해 사용될 수 있다. 이어서, 모바일 디바이스는 응답을 다른 암호화 키로 암호화하고 응답을 검증을 위해 시스템에 전송한다. 성공적인 검증에 응답하여, 시스템은 요청된 기능을 가능하게 할 수 있다.
일부 경우들에서, 시스템의 소유자는 다른 사용자의 모바일 디바이스가 시스템에 액세스할 수 있게 하기를 원할 수 있다. 일부 실시예들에서, 다른 사용자의 모바일 디바이스의 보안 요소는 공개 키 쌍 및 공개 키에 대한 대응하는 인증서 서명 요청을 생성할 수 있다. 이어서, 다른 사용자의 디바이스는 인증서 서명 요청을 소유자의 모바일 디바이스의 보안 요소에 전송할 수 있으며, 이는 공개 키에 대한 인증서를 생성한다. 이어서, 소유자의 모바일 디바이스는 생성된 인증서를 다른 사용자의 모바일 디바이스에 전송하여, 그 모바일 디바이스가 시스템의 기능을 가능하게 하도록 허용할 수 있다.
모바일 디바이스 및 시스템은 본 명세서에 설명된 기능을 구현하기 위한 임의의 적합한 하드웨어를 포함할 수 있다. 따라서, 이러한 하드웨어는 상호접속부(예컨대, 시스템 버스)를 통해 시스템 메모리 및 I/O 인터페이스(들) 또는 디바이스들에 결합된 프로세서 서브시스템을 포함할 수 있다. 모바일 디바이스로서 설명되지만, 이러한 디바이스는 서버 시스템, 개인용 컴퓨터 시스템, 데스크톱 컴퓨터, 랩톱 또는 노트북 컴퓨터, 메인프레임 컴퓨터 시스템, 태블릿 컴퓨터, 핸드헬드 컴퓨터, 워크스테이션, 네트워크 컴퓨터, 소비자 디바이스, 예컨대 모바일 폰, 음악 플레이어, 또는 개인 휴대 정보 단말(PDA)을 포함하지만 이로 한정되지 않는 다양한 유형들의 디바이스들 중 임의의 것일 수 있다. . 모바일 디바이스 및/또는 시스템은 또한 비일시적 컴퓨터 판독가능 매체에 구현된 프로그램 명령어들을 실행함으로써 다양한 기능을 구현할 수 있다. 아래에서 더 상세히 설명되는 도 2는 하드웨어 실시예들의 추가적인 비제한적인 예들을 도시한다.
일부 실시예들에서, 개시된 기술들은 유리하게는, 물리적 키들, 오프라인 키 공유, 디바이스들 및 시스템들에 걸친 상호운용성, 기본 무선 프로토콜(들), 스케일링가능 시스템들 등과 독립적인 동작과 등가인 프라이버시를 제공할 수 있다. 일부 실시예들에서, 모바일 디바이스 개인 키들은 모바일 디바이스에 포함된 보안 회로부(예를 들어, 보안 요소)를 결코 남기지 않는다. 일부 실시예들에서, 개시된 기술들은 신뢰되지 않은 채널을 통해 사용될 수 있고, 능동 및/또는 수동 염탐자(eavesdropper)들에 대한 보호를 제공할 수 있다.
본 명세서에 사용되는 바와 같이, 용어 "보안 채널"은 데이터를 통신하거나 또는 암호화된 데이터 또는 서명된 데이터를 의도된 참가자들에만 알려진 암호화 키들을 사용하여 통신하기 위한 전용 경로(즉, 의도된 참가자들만이 공유하는 경로) 중 어느 하나를 지칭한다. 본 명세서에 사용되는 바와 같이, 용어 "보안 회로"는 하나 이상의 서비스들을 수행하고 인증된 응답을 외부 요청자에게 리턴하도록 구성되는 회로들의 부류 중 하나를 지칭한다. 보안 회로에 의해 리턴된 결과는 임의의 형태의 인증 없이 결과를 단순히 리턴하는 회로의 신뢰도를 초과하는 신뢰도의 표시를 갖는 것으로 간주된다. 따라서, 액세스된 데이터의 소스를 인증하지 않는 데이터를 (예를 들어, 제3자 애플리케이션들에 액세스가능한 신뢰되지 않은 메모리 영역으로부터) 제공하는 회로는 본 출원의 의미 내에서 보안 회로로 간주되지 않을 것이다. 본 명세서에 개시된 실시예들에서, 보안 요소 및 보안 엔클레이브 프로세서는 보안 회로들의 예들로서 제공된다. 리턴되는 결과들을 인증함으로써, 예를 들어, 검증가능한 암호화 서명으로 서명함으로써, 보안 회로는 이에 따라 위장 방지 기능을 제공할 수 있다. 유사하게, 개인 또는 비밀 키를 사용하여 결과들을 암호화함으로써, 보안 회로가 암호화된 데이터의 소스를 인증할 수 있다(다양한 실시예들에서, 암호화는 단독으로 또는 서명들과 조합하여 사용될 수 있다). 또한, 일부 경우들에서, 보안 회로는 "변조-저항적"이라고 말할 수 있는데, 이는 하나 이상의 서비스들을 수행하는 보안 회로의 부분들의 손상을 방지하는 메커니즘들을 언급하는 기술분야의 용어이다. 예를 들어, 보안 메일박스는 보안 회로의 일부분(예를 들어, 미리 정의된 메모리 영역)만이 다른 회로부에 직접 액세스가능하도록 구현될 수 있다. 유사하게, 보안 회로에 의해 실행되는 펌웨어는 다른 프로세싱 요소들에 액세스가능하지 않은 영역에서 암호화, 서명 및/또는 저장될 수 있다.
도 1a는 일부 실시예들에 따른, 시스템 및 모바일 디바이스의 제어 유닛과 같은 회로부 사이의 예시적인 페어링 통신들(145)을 예시하는 블록도이다. 단일 제어 유닛이 예시를 위해 다양한 예들에서 논의되지만, 유사한 기술들이 다수의 상이한 제어 유닛 또는 프로세서들(예컨대, 마이크로제어기들) 및 상이한 차량 기능들을 제어하는 다양한 유형의 제어 유닛 또는 프로세서들과 함께 사용될 수 있다. 용어 "ECU"는 제어 유닛의 일례이며, 차량의 하나 이상의 동작들을 제어하도록 구성된 회로부를 포함하는 잘 이해되는 의미에 따라 해석되도록 의도되는 기술분야의 용어이다.
시스템(110)은, 예시된 실시예에서, 제어 유닛(137)을 포함하고, 사용자로부터 페어링 요청(140)을 수신한다. 일부 실시예들에서, 시스템(110)은 차량 또는 그의 컴포넌트, 예를 들어, ECU이다. 차량들의 예는 항공기, 해양 선박, RV들, 자동차들, 버스들, 레일(railed) 차량들, 우주선, 로봇 디바이스들 등을 제한 없이 포함한다. 차량들이 아닐 수 있는 시스템들의 예들은, 건물들과 같은 물리적 위치들, 수송 액세스 제어, 및 사물 인터넷들 또는 가정용 자동화 디바이스들 또는 제어기들을 추가로 포함한다. 시스템(110)에 의해 수행되는 바와 같이 설명된 다양한 액션들은 시스템(110)에 포함된 프로세서, 컴포넌트, 또는 디바이스에 의해 수행될 수 있다는 것에 유의한다. 페어링 요청은, 예를 들어, 시스템(110) 내의 터치스크린을 사용하여 입력된 입력을 통해, 예를 들어, 시스템(110)에서 개시될 수 있고, 사용자를 식별하는 정보 및/또는 사용자의 초기 인증을 위한 정보, 예컨대, 개인 식별 번호(PIN), 패스워드, 생체 측정 인증 등을 포함할 수 있다. 다양한 실시예들에서, 정보는 본 명세서에서 논의된 무선 통신들에 비해 대역 외에서 전송될 수 있다. 일부 실시예들에서, 시스템의 제조자 또는 제공자는 시스템(110)의 판매시 사용자에게 초기 핀(PIN)을 제공하고, 이는 이어서 페어링 요청(140)에 사용된다.
모바일 디바이스(130)는, 예시된 실시예에서, 애플리케이션 프로세서(AP)(136) 및 무선 인터페이스(132)(예컨대, NFC 인터페이스, 블루투스 인터페이스, Wi-Fi 직접 인터페이스 등)를 포함하며, 이는 이어서 SE(134)를 포함한다. 일부 실시예들에서, SE(134)는 모바일 디바이스(130)와 시스템(110) 사이의 보안 통신들을 용이하게 하기 위해 다양한 암호화 동작들을 수행하도록 구성된다. 본 명세서에서 NFC 통신들이 논의되지만, 이는 본 개시내용의 범주를 제한하고자 하는 것이 아님에 유의한다. 다른 실시예들에서, 다양한 적절한 인터페이스들 중 임의의 것이 Wi-Fi 직접, 블루투스 등과 같은 개시된 기술들과 함께 사용될 수 있다. 또한, 다양한 실시예들에서, 특정 유형의 요소(예컨대, 애플리케이션 프로세서, 보안 요소, ECU 등)를 참조하여 본 명세서에서 논의되는 다양한 기능은 다른 유형들의 요소들에 의해 수행될 수 있다.
모바일 디바이스(130)와 시스템(110)의 페어링은 공유 비밀(또한 공유 키로 지칭될 수 있음)의 확립을 수반할 수 있고, 시스템(110)에 의해 SE(134)로부터 장기 공개 키를 저장하는 것을 포함할 수 있다. 예시적인 페어링 절차의 상세한 설명은 도 3을 참조하여 아래에 논의된다. 일단 페어링되면, SE(134)는 또한 모바일 디바이스(130)가 예컨대 도 4를 참조하여 아래에서 논의되는 바와 같이 다양한 동작들을 수행하도록 시스템(110)에 지시하는 거래들을 용이하게 할 수 있다.
도 1b는 일부 실시예들에 따른, 동작을 수행하기 위한 시스템과 모바일 디바이스 사이의 예시적인 통신들을 예시하는 블록도이다. 동작의 예들은, 도어 잠금장치를 여는 것, 엔진을 시작하는 것, 기능을 인에이블 또는 디스에이블하는 것, 재생되는 미디어를 변경하는 것, 시스템을 광역 네트워크에 접속하거나 접속해제하는 것, 추가적인 사용자들을 인가 또는 제거하는 것, 키체인 데이터에 대한 액세스, 구매하는 능력 등을 포함한다. 예시된 실시예에서, SE(134)는 AP(136)에 의해 개시된 요청(150)에 대한 인증 통신(155)을 수행하도록 구성된다.
도 1c는 제어 유닛(137)에 대해 다른 모바일 디바이스(160)에 인가를 승인하기 위한 예시적인 통신들을 예시하는 블록도이다. 이는 페어링된 디바이스의 사용자가, 예컨대, 친구들 또는 가족 멤버들의 하나 이상의 다른 디바이스들에 대한 액세스를 승인하게 할 수 있다. 예시된 실시예에서, SE(134)는 인증 통신들(170)에 기초하여 모바일 디바이스(160)가 모바일 디바이스(130)로부터 인가를 수신했다는 것을 시스템(110)이 확인할 수 있게 하는 인가 승인(165)(예를 들어, 서명된 인증서를 포함할 수 있음)을 모바일 디바이스(160)에 전송한다. 예시된 실시예에서, 모바일 디바이스(160)는 SE(134)에 의해 서명될 키를 포함할 수 있는 인가 요청(162)을 전송한다.
예시적인 모바일 디바이스 구현
이제 도 2을 참조하면, 일부 실시예들에 따른 모바일 디바이스(130)의 블록도가 도시된다. 모바일 디바이스(130)는 무선 인터페이스(132), SE(134), 및 바이오센서(138)를 포함할 수 있다. 예시된 실시예들에서, 모바일 디바이스(130)는 통신 조직(260)을 통해 결합된 보안 엔클레이브 프로세서(SEP)(210), 셀룰러 인터페이스(220), CPU(230), 메모리(240), 주변장치들(250)을 추가로 포함한다. 도시된 바와 같이, SEP(210)는 하나 이상의 프로세서들(P)(212), 보안 메모리(214), 및 하나 이상의 보안 주변장치들(216)을 포함할 수 있다. SE(134)는 하나 이상의 프로세서들(P)(222) 및 메모리(224)를 포함할 수 있다. CPU(320)는 하나 이상의 프로세서들(P)(232)을 포함할 수 있다. 메모리(240)는 인터페이스 애플리케이션(242)을 저장할 수 있다. 일부 실시예들에서, 모바일 디바이스(130)는 도시된 것과 상이하게 구현될 수 있다.
일부 실시예들에서, SEP(210)는 하나 이상의 인가된 사용자들의 이전에 캡처된 생체 측정 템플릿 데이터(218)를 유지하고, 사용자를 인증하기 위하여 그것을 바이오센서(138)에 의해 캡처된 새로 수신된 데이터와 비교하도록 구성된다. (다른 실시예에서, 바이오센서(138) 또는 SE(134)가 비교를 수행할 수 있다.) 예시된 실시예에서, SEP(210)는 생체 측정 템플릿(218) 내의 지문들, 얼굴 생체 측정 데이터(예를 들어, 홍채 데이터, 음성 데이터, 얼굴 또는 신체 특성들) 등으로부터 수집된 생체 측정 데이터를 저장하도록 구성된다. 지문 실시예들에서, 각각의 템플릿(218)은 특정 등록된 사용자에 대응할 수 있고, 고유 인덱스 값을 할당받을 수 있다. 일부 실시예들에서, 바이오센서(138)로부터 수신된 생체 측정 데이터가 템플릿(218)에 저장된 생체 측정 데이터와 매칭되는 경우, SEP(210)는 매칭 템플릿(218)과 연관된 고유 인덱스 값을 SE(134)에 제공하도록 구성되고, SE(134)는, 이어서, 인덱스 값을 사용하여, 인증되는 알려진 사용자에 대한 대응하는 식별 정보를 검색한다. 일부 실시예들에서, SEP(210)는 다수의 템플릿들(218)을 저장할 수 있다. 다양한 실시예들에서, SEP(210), SE(134), 및/또는 바이오센서(138) 사이의 통신들은 CPU(230)와 같은 다른 엔티티가 그들의 통신들을 볼 수 없도록 암호화된다.
다양한 실시예들에서, SEP(210)는 생체 측정 데이터를 안전하게 저장하도록 구성된다. 따라서, 다양한 실시예들에서, SEP(210)는 세심하게 제어되는 인터페이스를 제외한 나머지 모바일 디바이스(130)로부터 분리된다(따라서, SEP 프로세서(212), 보안 메모리(214), 및 보안 주변장치들(216)을 위한 보안 엔클레이브를 형성함). SEP(210)에 대한 인터페이스는 세심하게 제어되기 때문에, SEP 프로세서(212), 보안 메모리(214), 및 보안 주변장치들(216)에 대한 직접 액세스는 금지될 수 있다. 일 실시예에서, 보안 메일박스 메커니즘이 구현될 수 있다. 보안 메일박스 메커니즘에서, 외부 디바이스들은 메시지들을 받은메일박스에 송신할 수 있다. SEP 프로세서(212)는 메시지를 읽고 해석한 뒤, 메시지에 응답하여 취할 행동들을 결정할 수 있다. SEP 프로세서(212)로부터의 응답 메시지들은 보낸메일박스를 통해 송신될 수 있는데, 이는 또한 보안 메일박스 메커니즘의 일부이다. 다른 회로부는 메일박스 메커니즘을 통해서와는 다른 SEP(210)의 내부 자원들에 액세스할 수 없다. 외부 컴포넌트들로부터의 커맨드/요청 및 외부 컴포넌트들에 대한 결과를 전달하기만 하는 다른 인터페이스들이 이용될 수 있다. 외부 디바이스에서 SEP(210)로의 다른 액세스가 허용되지 않을 수 있고, 따라서 SEP(210)는 "액세스로부터 보호"될 수 있다. 더 구체적으로, SEP(210)의 외부에서 실행되는 소프트웨어는 SEP(210)의 보안 컴포넌트들에 대한 직접 액세스가 금지될 수 있다. SEP 프로세서(212)는 커맨드가 수행될 지 결정할 수 있다. 일부 경우들에서, 커맨드를 수행하는 여부에 대한 결정은 커맨드의 소스에 의해 영향을 받을 수 있다. 즉, 한 소스로부터의 커맨드는 허용될 수 있지만, 다른 소스로부터의 커맨드는 허용되지 않을 수 있다.
다양한 실시예들에서, SEP(210)는 SE(134)를 참조하여 설명된 기능을 수행하도록 구성될 수 있고 그리고/또는 그 반대일 수 있다. 일부 실시예들에서, SE(134)는 디바이스(130)의 아이덴티티를 인증하도록 구성되는 반면, SEP(210)는 디바이스(130)의 현재 사용자의 아이덴티티를 인증하도록 구성된다(이는 일부 실시예들에서, 시스템 액세스에 또한 요구될 수 있음).
일부 실시예들에서, SEP 프로세서(212)는 SEP(210)에 대하여 기재된 기능의 구현을 용이하게 하는 안전하게 로딩된 소프트웨어를 실행할 수 있다. 예를 들어, 보안 메모리(214)는 SEP 프로세서(212)에 의해 실행가능한 소프트웨어를 포함할 수 있다. 하나 이상의 보안 주변장치들(216)이 외부 인터페이스를 가질 수 있으며, 이는 소프트웨어의 소스에 접속될 수 있다(예컨대, 플래시 메모리와 같은 비휘발성 메모리). 다른 실시예에서, 소프트웨어의 소스는 다른 주변장치(216)에 결합된 비휘발성 메모리일 수 있고, 소프트웨어는 제3자에 의한 염탐을 방지하기 위하여 암호화될 수 있다. 소스로부터의 소프트웨어는 인증되거나 또는 다른 방식으로 안전하게 검증될 수 있고, SEP 프로세서(212)에 의해 실행될 수 있다. 일부 실시예들에서, 소프트웨어는 SEP(210)에 할당된 메모리(214) 내의 보안 구역 안으로 로딩될 수 있고, SEP 프로세서(212)는 실행을 위해 보안 구역으로부터 소프트웨어를 페치할 수 있다. 소프트웨어는 염탐을 방지하기 위하여 암호화된 형태로 메모리(240)에 저장될 수 있다. 보안 소프트웨어의 보안을 보장하기 위하여 취하는 단계에도 불구하고, 보안 소프트웨어는 여전히 저장된 개인 키에 직접 액세스/획득이 금지될 수 있다. 실시예에서, 오직 하드웨어만이 개인 키에 액세스할 수 있다.
보안 주변장치들(216)은 SEP(210)에 의해 수행되는 보안 서비스들을 보조하도록 구성된 하드웨어일 수 있다. 따라서, 보안 주변장치들(216)은 다양한 인증 알고리즘들을 구현/가속하는 인증 하드웨어, 암호화를 수행/가속하도록 구성된 암호화 하드웨어, 보안 인터페이스를 통해 (모바일 디바이스(130)의) 외부 디바이스와 통신하도록 구성된 보안 인터페이스 제어기 등을 포함할 수 있다.
일부 실시예들에서, SE(134)는 공개 키 정보(228)와 같은 메모리(224)에 저장된 기밀 정보에 대한 액세스를 제한하기 위해 SEP(210)와 유사한 기능을 구현할 수 있다. 예를 들어, SE(134)는 프로세서(222) 및 메모리(224)에의 액세스를 제한하기 위해 메일박스를 구현할 수 있다. 다양한 실시예들에서, SE 프로세서(222)는 또한 메모리(224)에 저장된 애플릿(226)과 같은 본 명세서에 설명된 기능을 구현하기 위해 안전하게 로딩된 소프트웨어를 실행한다.
애플릿(226)은, 일 실시예에서, 모바일 디바이스(130)의 등록 및 판독기를 이용한 인증을 수행하도록 실행가능하다. 등록과 관련하여, 애플릿(226)들은 공개 키 쌍들을 생성하고 대응하는 인증서들을 획득하도록 실행가능할 수 있으며, 이는 공개 키 정보(228)로서 메모리(224)에 저장될 수 있다.
인터페이스 애플리케이션(242)은, 일부 실시예들에서, 등록 및 인증이 수행될 때 SEP(210), SE(134)와 모바일 디바이스(130)의 사용자 사이의 인터페이싱을 용이하게 하도록 실행가능하다. 따라서, 애플리케이션(242)은 사용자에게 이들 프로세스 동안 다양한 액션들을 수행할 것을 지시하는 다양한 프롬프트들을 사용자에게 제공할 수 있다. 애플리케이션(242)은 또한 이러한 프로세스들 동안 적절할 때 바이오센서(138), SEP(210) 및/또는 SE(134)를 활성화시킬 수 있다. 애플리케이션(242)에 의해 수행되는 다양한 액션들이 아래에서 더 상세히 설명된다.
셀룰러 인터페이스(220)는, 일부 실시예들에서, 모바일 디바이스(130)와 시스템들(120 및 140)과 같은 하나 이상의 외부 시스템들 사이의 상호작용을 용이하게 하도록 구성된 장거리 무선통신장치이다. 셀룰러 링크(220)는 기저대역 프로세서, 아날로그 RF 신호 프로세싱 회로부(예컨대, 필터들, 믹서들, 발진기들, 증폭기들 등을 포함함), (예컨대, 디지털 변조 뿐만 아니라 다른 디지털 프로세싱을 위한) 디지털 프로세싱 회로부, 하나 이상의 안테나들 등과 같은 장거리 네트워크들과 인터페이싱하기 위한 적합한 회로부를 포함할 수 있다. 셀룰러 인터페이스(220)는 GSM, UMTS, CDMA2000, LTE, LTE-A 등과 같은 다수의 무선 액세스 기술들/무선 통신 프로토콜들 중 임의의 것을 사용하여 통신하도록 구성될 수 있다.
위에 언급된 바와 같이, CPU(230)는 하나 이상의 프로세서(232)를 포함할 수 있다. 일반적으로, 프로세서는 프로세서에 의해 구현된 명령어 세트 아키텍처에 정의된 명령어들을 실행하도록 구성된 회로부를 포함할 수 있다. 프로세서들(232)은 시스템 온 칩(SOC) 또는 다른 레벨의 집적과 같은 다른 컴포넌트들과의 집적 회로 상에 구현되는 프로세서 코어들을 포함할 수 있다(또는 이에 대응할 수 있다). 프로세서들(232)은 별개의 마이크로프로세서, 멀티칩 모듈 구현부 내에 집적화된 프로세서 코어 및/또는 마이크로프로세서, 다수의 집적 회로들로서 구현된 프로세서 등을 추가로 포함할 수 있다.
프로세서들(232)은 운영 체제와 같은 시스템의 메인 제어 소프트웨어를 실행할 수 있다. 일반적으로, 사용 시 CPU(230)에 의해 실행되는 소프트웨어는 시스템의 다른 컴포넌트들을 제어하여 시스템의 원하는 기능을 실현할 수 있다. 프로세서들은 또한 다른 소프트웨어를 실행할 수 있다. 이들 애플리케이션들은 사용자 기능을 제공할 수 있고, 저-레벨 디바이스 제어, 스케줄링, 메모리 관리 등을 위해 운영 체제에 의존할 수 있다. 따라서, 프로세서들(232)(또는 CPU(230))은 또한 애플리케이션 프로세서들로 지칭될 수 있다. CPU(230)는 다른 하드웨어, 예컨대, L2 캐시 및/또는 시스템의 다른 컴포넌트들에 대한 인터페이스(예컨대, 통신 조직(260)에 대한 인터페이스)를 추가로 포함할 수 있다.
메모리(240)는 일반적으로 데이터를 저장하기 위한 회로부를 포함할 수 있다. 예를 들어, 메모리(240)는 SRAM(static random access memory), DRAM(dynamic RAM), 예컨대 더블 데이터 레이트(DDR, DDR2, DDR3, DDR4 등) DRAM을 포함하는 SDRAM(synchronous DRAM)일 수 있다. 저전력/모바일 버전들의 DDR DRAM(예컨대, LPDDR, mDDR 등)이 지원될 수 있다. 디바이스(130)는 동작들을 순서화하고(및 잠재적으로 재순서화), 동작들을 메모리(240)에 제시하기 위하여, 메모리 동작들을 위한 큐를 포함할 수 있는 메모리 제어기(미도시)를 포함할 수 있다. 메모리 제어기는 메모리로의 기록을 기다리는 기록 데이터 및 메모리 동작의 소스로의 리턴을 기다리는 판독 데이터를 저장하는 데이터 버퍼들을 더 포함할 수 있다. 일부 실시예들에서, 메모리 제어기는 최근 액세스된 메모리 데이터를 저장하는 메모리 캐시를 포함할 수 있다. 일부 실시예들에서, 메모리(330)는 하나 이상의 프로세서(232)에 의해 디바이스(130)로 하여금 디바이스(130)에 대하여 본 명세서에서 기재된 다양한 기능을 수행하게 하도록 실행가능한 애플리케이션(242)의 명령어들과 같은 프로그램 명령어들을 포함할 수 있다.
주변장치들(250)은 디바이스(130)에 포함된 추가적인 하드웨어 기능의 임의의 세트일 수 있다. 예를 들어, 주변장치들(340)은 비디오 주변장치들, 예를 들어, 카메라 또는 다른 이미지 센서로부터의 이미지 캡처 데이터를 프로세싱하도록 구성된 이미지 신호 프로세서, 하나 이상의 디스플레이 디바이스 상에 비디오 데이터를 디스플레이하도록 구성된 디스플레이 제어기들, 그래픽 프로세싱 유닛(GPU)들, 비디오 인코더/디코더들, 스케일러(scaler)들, 로테이터(rotator)들, 블렌더(blender)들 등을 포함할 수 있다. 주변장치들(250)은 오디오 주변장치들, 예를 들어, 마이크로폰들, 스피커들, 마이크로폰들 및 스피커들에 대한 인터페이스들, 오디오 프로세서들, 디지털 신호 프로세서들, 믹서들 등을 포함할 수 있다. 주변장치들(250)은, 인터페이스들, 예를 들어, 범용 직렬 버스(USB), PCI 익스프레스(PCIe)를 포함한 주변장치 컴포넌트 상호접속부(PCI), 직렬 및 병렬 포트들 등을 포함한 다양한 인터페이스들에 대한 인터페이스 제어기들을 포함할 수 있다. 주변장치들(250)은 네트워킹 주변장치들, 예를 들어, 미디어 액세스 제어기(MAC)들을 포함할 수 있다. 하드웨어의 임의의 세트가 포함될 수 있다.
통신 조직(260)은 디바이스(130)의 컴포넌트들 사이의 통신을 위한 임의의 통신 상호접속부 및 프로토콜일 수 있다. 통신 조직(260)은 공유 버스 구성, 크로스 바(cross bar) 구성, 및 브릿지를 이용한 계층적 버스를 포함하는 버스-기반일 수 있다. 통신 조직(260)은 또한 패킷 기반일 수 있고, 브릿지를 갖는 계층구조, 크로스 바, 포인트-투-포인트(point-to-point), 또는 다른 상호접속부들일 수 있다.
도 2는 모바일 디바이스(130) 내의 컴포넌트들을 도시하지만, 시스템(110) 또는 모바일 디바이스(160)에 대해 설명된 기능과 같은 본 명세서에 설명된 다른 기능을 구현하는 데 사용되는 컴퓨터 시스템들 내에 유사한 컴포넌트들이 존재할 수 있다는 것에 유의한다. 따라서, 이러한 시스템들은 또한 CPU들, 메모리, 다양한 네트워크 인터페이스들, 및 전술된 것들과 같은 주변장치들을 포함할 수 있다.
예시적인 페어링 기술들
도 3은 페어링 절차를 위한 사용자(310), 시스템(110)(예컨대, 제어 유닛(137)을 사용함), 애플리케이션 프로세서(136), 및 SE(134) 사이의 예시적인 메시지들을 예시하는 통신도이다. 일부 실시예들에서, 페어링 절차는 모바일 디바이스(130)에 의해 저장되는 장기 공개 키 system.PK 및 시스템(110)에 의해 저장되는 장기 공개 키 se.PK를 생성한다. 이어서, 이들 키들은 예를 들어 도 4를 참조하여 아래에서 설명되는 바와 같이 다양한 거래들에 사용될 수 있다.
도 3의 절차에서, 사용자(310)는 예컨대 시스템의 콘솔 인터페이스 또는 일부 다른 입력 디바이스를 사용하여 302에서 시스템(110)과의 페어링을 시작한다. 예시된 실시예에서, 시스템(110)은 이어서 현재 상태가 304에서 페어링되지 않은 것(예컨대, 시스템이 현재 다른 모바일 디바이스와 페어링되지 않은 것)을 체크한다. 다른 실시예들에서, 페어링은 시스템(110)이 다른 디바이스와 이미 페어링되더라도 허용될 수 있다. 한 번에 하나의 모바일 디바이스만이 페어링되게 하는 것은 보안성을 개선할 수 있지만 유연성을 제한할 수 있다(그러나, 이는 아래에서 더 상세히 논의되는 바와 같이, 페어링된 모바일 디바이스가 다른 모바일 디바이스들을 인가하도록 허용함으로써 완화될 수 있다).
예시된 실시예에서, 사용자(310)는 시스템(110)에 인증 정보를 제출한다. 이것은 사용자 핀, 패스워드, 시스템에 대한 포브 또는 키의 존재, 생체 측정들 등을 포함할 수 있다. 일부 실시예들에서, 다수의 유형들의 인증 정보가 요구될 수 있다. 이는 인가되지 않은 개인들이 페어링 절차를 개시하는 것을 방지할 수 있다. 일반적으로 말하면, 시스템(110)은 소유자 키를 시스템에 추가하기 전에 페어링 상태에 대한 진입을 요구할 수 있고, 이러한 상태에 들어가기 전에 사용자가 시스템의 소유권을 증명할 것을 요구할 수 있다. 소유권을 증명하기 위한 기술은 시스템(110)의 제조자에 의해 정의될 수 있다.
예시된 실시예에서, 306에서, 시스템(110)은 인증 정보를 검증하고, 이에 응답하여, 단기 키 쌍을 생성한다. 예시된 실시예에서, 시스템(110)은 이 시점에서 "진행 상태에서의 페어링"으로 스위칭한다. 다른 실시예들에서, 다른 상태들이 사용될 수 있고, 상태들은 도시된 것과는 상이한 지점들에서 입력되거나 또는 종료될 수 있다는 것에 유의한다.
예시된 실시예에서, 키 쌍은 단기 공개 키 system.ePK 및 단기 비밀 키 system.eSK를 포함한다. 키들은 이들이 제한적 사용이라는, 예컨대 단지 특정 사용 횟수(이들이 단지 단일 사용에 대해 유효한 실시예들을 포함함)에 대해서만 유효하거나 특정 시간 간격 동안에만 유효하다는 의미에서 "단기"일 수 있다. 단기 키들은 각각의 거래의 종료 시에 삭제될 수 있다. 단기 키들이 만료 후에 무효하기 때문에, 이는 키들이 어떻게든 인터셉트되는 경우, 키들이 인가되지 않은 개인에 의해 재사용되는 것을 방지할 수 있다.
예시된 실시예에서, 사용자(310)는 또한 308에서 AP(136)를 통해 모바일 디바이스(130)와의 페어링 절차를 시작한다. 이는 예를 들어 터치 스크린과 같은 모바일 디바이스(130)의 입력 디바이스를 사용하여 수행될 수 있다. 사용자는, 예를 들어, 애플리케이션을 열고 페어 옵션을 선택함으로써 페어링 절차를 개시할 수 있다. 일부 실시예들에서, 사용자가 페어링 애플리케이션으로 내비게이팅할 것을 요구하기보다는, 모바일 디바이스(130)는, 예를 들어, 시스템(110)에 의한 통신들에 응답하여 페어링 동작이 요구됨을 확인하기 위한 입력을 사용자에게 자동으로 프롬프트하도록 구성된다. 다른 실시예들에서, 페어링이 발생하고 있다는 표시를 브로드캐스트하는 것을 회피하기 위해 디바이스들 둘 모두 상에서 페어링 프로세스의 사용자 개시가 요구될 수 있다. 모바일 디바이스(130)는 또한 패스워드, 생체 측정 스캔, 핀 등과 같은 인증 정보를 사용자에게 프롬프트할 수 있다.
페어링 절차의 개시에 응답하여, 312에서, AP(136)는 또한 예시된 실시예에서 단기 키 쌍 phone.ePK 및 phone.eSK를 생성한다. 예시된 실시예에서, 시스템(110) 및 AP(135)는 이어서 그 각자의 생성된 단기 공개 키들 system.ePK 및 phone.ePK를 314 및 316에서 교환한다. 이어서, 318에서, 각각의 디바이스는 교환된 공개 키들 및 그들 각자의 비밀 키들에 기초하여 공유 비밀을 도출한다. 위에서 논의된 바와 같이, ECDH는 공유 비밀을 도출하는 데 사용될 수 있다. 프로세스의 이 시점에서, 예시된 실시예에서, 비인증된 보안 채널이 단기 키들을 사용하여 시스템(110)과 모바일 디바이스(130) 사이에서 확립되었다. 다른 실시예들에서, 공유 비밀 또는 키를 확립하기 위해 다른 기술들이 사용될 수 있다. 공유 비밀을 획득하기 위한 개시된 기술들은 예시의 목적을 위해 개시되지만, 본 개시내용의 범주를 제한하고자 하는 것은 아니다.
예시된 실시예에서, 시스템(110)은 이어서 322에서 공유 비밀을 사용하여 암호화된 인증서(system.Cert)를 전송한다. 특정 예시된 실시예에서, 공유 비밀은 암호화 키(KENC) 및 메시지 인가 코드(KMAC)를 포함한다. 이들은 시스템 측의 system.eSK/phone.ePK 및 모바일 디바이스 측의 phone.eSK/system.ePK로부터 도출된 공유된 대칭 키들일 수 있다. 이들 키들은 AP(136) 및 시스템(110)의 ECU 상에 저장될 수 있고, 각각의 거래 후에 삭제될 수 있다. 예시된 실시예에서, 표기(KENC, KMAC)(데이터)는 KENC를 사용하는 암호화 동작 및 KMAC를 사용하는 해싱 동작을 나타낸다(여기서, 해시 출력은 키 교환의 무결성을 보호하는 데 사용될 수 있다). AP(136)는, 예시된 실시예에서, 324에서 공유 비밀을 사용하여 시스템 공개 키 system.PK를 암호화된 인증서 system.Cert로부터 추출한다.
예시된 실시예에서, 326에서, AP(136)는 이어서 SE(134)로부터 생성될 새로운 키 쌍을 요청한다. 예시된 실시예에서, SE(134)는 328에서 공개/개인 키 쌍 se.SK 및 se.PK 및 대응하는 인증서 se.Cert를 생성한다. 예시된 실시예에서, 인증서는 공개 키를 설명할 수 있는 공개 키에 대한 래퍼(wrapper)이고, SE(134)가 그러한 공개 키들을 발행하도록 인가됨을 나타낼 수 있다. 인증서는 자체 서명될 수 있거나 또는 인증서 기관으로부터의 인증서에 기초할 수 있다(예컨대, SE(134)가 중간 기관인 경우). SE(135)는 332에서 인증서 se.Cert를 AP(136)에 전송하고, AP(136)는 이어서 (예시된 실시예에서 KENC 및 KMAC 기술들을 사용하여) 공유 비밀을 사용하여 인증서를 암호화하고, 암호화된 인증서를 334에서 보안 채널을 통해 시스템(110)에 전송한다.
예시된 실시예에서, 시스템(110)은 이어서 MAC를 검증하고, 336에서 인증서 se.Cert를 복호화한다. 이어서, 시스템(110)은 (예를 들어, 모바일 디바이스(130)의 제조자 또는 OEM으로부터 획득된) 모바일 디바이스와 연관된 인가된 엔티티로부터의 루트 인증서를 사용하여 se.Cert를 검증하고, 공개 키 se.PK를 se.Cert로부터 추출한다. 일부 실시예들에서, 모바일 디바이스(130)의 제조자는 이러한 절차를 용이하게 하기 위해 그의 루트 인증서를 다양한 시스템 제조자들에게 제공할 수 있다.
이어서, 예시된 실시예에서, 텍스트 확인이 수행되고(이러한 단계는 다른 실시예들에서 생략될 수 있음), 모바일 디바이스(130) 및 시스템(110) 둘 모두는 공유 비밀에 기초하여 텍스트 정보를 생성하고 338에서 텍스트 정보를 사용자에게 디스플레이한다. 예시된 실시예에서, 사용자는 이어서 텍스트가 디바이스들 둘 모두 상에서 동일함을 시스템(110)에 나타낸다. 이는 페어링 절차 동안 인가되지 않은 엔티티들에 의한 변조를 검출 및 회피하는 데 사용될 수 있다(예를 들어, 디스플레이된 텍스트가 매칭되지 않게 할 것임).
예시된 실시예에서, 시스템(110)은 이어서 342에서 소유자 권한들(예컨대, 모바일 디바이스(130)가 수행하도록 인가된 동작들을 특정하는 정보)을 갖는 se.PK를 저장한다. 이러한 장기 SE 공개 키는 모바일 디바이스(130)로부터 미래의 요청들을 인증하는 데 사용될 수 있다. 모바일 디바이스(130)에 대한 소유자 권한들의 예들은, 제한 없이, 도어를 여는 것, 엔진을 시작하는 것, 시스템(110)으로부터의 키들(예컨대, 소유자 및 친구 키들)을 추가/제거하는 것, 다른 당사자에게 키 공유를 위임하는 것, 권한들을 변경하는 것, 시스템을 페어링되지 않은 상태로 설정하는 것, 키체인 데이터(예컨대, 웹사이트 사용자명들, 패스워드들, WLAN 네트워크 정보, 결제 정보 등)에 액세스하는 것, 시스템(110) 내에서 구매하는 것, 다른 암호화 동작들을 수행하는 것 등을 포함할 수 있다. 예시된 실시예에서, 시스템(110)은 또한 페어링된 상태로 스위칭되며, 이는 (예컨대, 모바일 디바이스(130)가 페어링되지 않을 때까지) 후속 페어링을 방지할 수 있다. 일부 실시예들에서, 소유권 전달은, (예컨대, 도 5의 절차를 사용하여) 새로운 사용자에게 소유자 권한들을 제공하고, 이어서 페어링되지 않은 상태로 전환하지 않으면서 이전 소유자의 키를 폐기함으로써 수행될 수 있다. 다른 실시예들에서, 페어링되지 않은 상태로의 전환은 소유권을 다른 모바일 디바이스에 전달하는 데 요구될 수 있다.
일부 실시예들에서, 시스템(110)과 페어링하기 위해 회전 핀이 사용된다. 예를 들어, 시스템(110)은 성공적인 페어링 시에 사용자에게 새로운 핀을 디스플레이할 수 있으며, 여기서 새로운 핀은 다른 모바일 디바이스에 대한 다른 페어링 전에 사용자에 의해 입력되도록 요구된다. 이는 인가되지 않은 사용자들에 의해 개시되는 페어링들을 방지할 수 있다.
다양한 동작들이 본 명세서에서 AP(136), SE(134), 또는 SEP(210) 중 하나에 의해 수행되는 것으로 논의된다. 이들 실시예들은 설명의 목적으로 논의되지만, 본 개시내용의 범주를 제한하고자 하는 것은 아니다. 다른 실시예들에서, 이들 프로세서들 중 하나에 의해 수행되는 바와 같이 설명된 액션들은 이들 프로세서들 및/또는 다른 프로세싱 요소들 중 다른 것들 또는 조합들에 의해 수행될 수 있다. 일례로서, SEP(210)는 추가적인 보안이 요구되는 경우 SE(134)에 의해 수행되는 바와 같이 설명된 다양한 동작들에 대한 생체 측정 인증을 요구하는 데 사용될 수 있다. 또한, 본 명세서에 개시된 다양한 통신도들 내의 메시지들의 순서화 및 유형들은 본 개시내용의 범주를 제한하고자 하는 것은 아니며; 다양한 실시예들에서, 유사한 메시지들이 상이한 순서로 전송될 수 있고, 개시된 메시지들이 생략될 수 있고/있거나 추가적인 메시지들이 활용될 수 있다.
일부 실시예들에서, 사용자는 또한 페어링 해제 동작을 개시할 수 있는데, 이는 시스템(110)을 페어링되지 않은 상태로 전환할 수 있다. 이는, 예를 들어, 시스템의 소유권을 전달하기 위해 또는 사용자가 새로운 모바일 디바이스를 구매하는 경우, 시스템(110)의 소유자 디바이스로서 새로운 디바이스를 등록하기 위해 사용될 수 있다. 이러한 프로세스의 경우, 모바일 디바이스(130)는 개인 키 se.SK로 인증하면서 특정 커맨드를 전송할 수 있다. 일부 실시예들에서, 페어링 해제는 또한, 예컨대, 마지막 페어링 동작으로부터 새로운 핀을 입력함으로써, 시스템(110)의 인터페이스를 통해 수행될 수 있다.
일부 실시예들에서, 시스템(110)은 도 3의 동작들 동안 "페어링" 상태에서 동작하고 이러한 상태에서 페어링 요청들을 거부하도록 구성된다. 일부 실시예들에서, 시스템(110)은 다수의 실패한 페어링 시도들(그 수는 구성가능할 수 있음) 후에 차단된 상태로 전환하도록 구성된다. 차단된 상태에서, 사용자는 복구 핀을 획득하기 위해 제조자에게 접촉할 필요가 있을 수 있는데, 복구 핀은 소유자의 증명을 나타낸 후에만 제공될 수 있다.
일부 실시예들에서, 대역외 통신들은 보안 채널을 확립하는 데 사용될 수 있다. 예를 들어, 시스템(110)은, 예컨대 모바일 디바이스(130)의 카메라를 사용하여 이미지, 텍스트, 또는 애니메이션을 스캐닝함으로써, 패스워드를 동적으로 생성하고 패스워드를 모바일 디바이스(130)에 대역외에서 전송할 수 있다. 이미지, 텍스트, 또는 정보는, 예를 들어, 시스템(110)의 멀티미디어 시스템 상에 디스플레이될 수 있다. 이러한 대역외 공유 비밀은 비인증된 보안 채널을 확립하기 위해 보안 원격 패스워드(SRP)와 같은 패스워드 인증된 키 교환(PAKE) 기술과 함께 사용될 수 있다. 이러한 실시예들에서, 시스템(110)에 의해 디스플레이된 텍스트와 모바일 디바이스(130)에 의해 디스플레이된
텍스트 사이의 사용자에 의한 텍스트 매칭은 생략될 수 있는데, 이는, 예컨대, 대역외 통신들이 중간자 공격들을 방지할 수 있기 때문이다.
일부 실시예들에서, 블루투스 페어링과 같은 기존의 페어링은 모바일 디바이스(130)로부터 시스템(110)으로 se.Cert를 전송하는 데 사용될 수 있다.
예시적인 동작 인가 기술들
도 4는 시스템(110)에 의한 동작을 인가하기 위한 (예컨대, 제어 유닛(137)을 통한) 시스템(110), 애플리케이션 프로세서(136), 및 SE(134) 사이의 예시적인 메시지들을 예시하는 통신도이다. 예시된 실시예에서, 통신들은 시스템(110)에 의해 수행될 동작을 특정하는 모바일 디바이스(130)로부터의 커맨드를 인증하는 데 사용된다.
예시된 실시예에서, 402에서 시스템(110)은 AP(136)와의 통신을 시작한다. 일부 실시예들에서, 이것은 폴링 메시지들(예컨대, NFC 충돌방지 강화된 비접촉 폴링(ECP) 메시지들)을 전송하는 것을 포함한다. 다른 실시예들에서, 다른 통신 개시 기술들이 사용될 수 있다. 이에 응답하여, (다른 실시예들에서는 SE(134)와 같은 다른 프로세싱 요소들이 단기 키 쌍을 생성할 수 있지만) AP(136)가 404에서, 예시된 실시예에서 단기 키 쌍 phone.eSK 및 phone.ePK를 생성한다. 키 쌍들의 예들은 타원 곡선 암호화(elliptic curve cryptography, ECC) 쌍들, AES 암호화를 사용하여 생성된 쌍들 등을 포함한다. 예시된 실시예에서, AP(136)는 406에서 이러한 키 쌍 및 채널 협상 옵션들을 시스템(110)에 전송한다. 일부 실시예들에서, 시스템(110)과 통신 거리 내에 있다고 결정하는 것에 응답하여, 모바일 디바이스(130)는 시스템(110)에 대한 하나 이상의 커맨드들의 입력을 사용자에게 자동으로 프롬프트할 수 있다.
예시된 실시예에서, 408에서, 시스템(110)은 또한 단기 키 쌍(system.eSK 및 system.ePK)을 생성하고 시스템(110)과의 보안 통신들에서 사용하기 위한 KENC 및 KMAC를 도출한다. (일부 실시예들에서, ECC가 또한 이러한 키 쌍에 사용될 수 있다). 예시된 실시예에서, 시스템(110)은 또한 system.ePK 및 phone.ePK 단기 공개 키들을 포함하고 system.SK로 서명된 system.eCert 인증서를 생성한다.
예시된 실시예에서, 412에서 시스템(110)은 또한 하기 정보, 즉, 요청된 동작, 이유, 및 챌린지를 포함하는 데이터 구조인 동작 사전(OD)를 생성한다. 이러한 경우에, 동작은 챌린지의 서명일 수 있다(예를 들어, 시스템(110)은 SE(134) 비밀 키를 사용하여 SE(134)에 의해 챌린지가 서명될 것을 요청한다). 이유는 시스템에 의해 수행될 동작을 특정할 수 있다(예컨대, 물리적 액세스를 허용하거나 시스템의 구동을 허용함). 이어서, 시스템(110)은 KENC 및 KMAC를 사용하여 OD를 암호화 및 MAC 설정하고, 또한 424에서 공개 키 system.PK에 대해 인증서 system.eCert를 전송한다. AP(136)는 (예를 들어, 페어링 프로세스 동안 저장된 바와 같은) 공개 키 system.PK를 사용하여 system.eCert를 검증하고, system.eCert로부터 단기 공개 키 system.ePK를 추출한다. AP(136)는 또한 system.ePK 및 phone.eSK를 사용하여 공유 비밀(이러한 실시예에서 KENC 및 KMAC)을 도출한다. 이어서, AP(136)는 MAC를 검증하고 426에서 KENC를 사용하여 OD를 복호화한다. 도 4의 보안 채널은 프라이버시 목적으로 사용될 수 있음에 유의한다.
예시된 실시예에서, AP(136)는 이어서 428에서 SE(134)로부터 OD의 서명을 요청한다. SE(134)는, 432에서 비밀 키 se.SK로 OD에 서명함으로써 ODSignature를 컴퓨팅하고, 434에서 ODSignature를 AP(136)에 리턴한다. 예시된 실시예에서, 서명은 OD 내의 챌린지의 것일 수 있다. 장기 비밀 키 se.SK를 사용하는 암호화는 프라이버시 민감 데이터가 중간자 공격에서 누출되는 것을 방지할 수 있고, 폰이 염탐자로의 누설 없이 시스템(110)과 고유 식별자 또는 인증서를 공유할 수 있게 할 수 있다. 일부 실시예들에서, 모바일 디바이스(130)는 서명 단계에 대한 사용자 인증, 예컨대 서명을 위해 SEP(210)를 사용하는 생체 측정 인증을 요구하도록 추가로 구성된다. 일반적으로, 일부 실시예들에서, 모바일 디바이스(130)는 이러한 단계에서 터치 ID 또는 다른 사용자 검증을 요구하도록 구성될 수 있다.
예시된 실시예에서, AP(136)는 이어서 커맨드(일부 실시예들에서, 시스템(110)에 의해 수행될 원하는 동작(들)을 나타냄) 및 MAC들을 설정하고, 436에서 시스템(110)에 대한 응답을 암호화한다. 예시된 실시예에서, 응답은 438에서 ODSignature, 공개 키 se.PK의 해시 및 커맨드를 포함한다. 이는 확립된 보안 채널을 활용할 수 있고 시스템(110)이 모바일 디바이스(130)를 인증할 수 있게 할 수 있다. 암호화 및 MAC 둘 모두가 다양한 실시예들에서 논의되지만, MAC를 사용하지 않고 비밀 키를 사용하여 암호화하는 것이 다른 실시예들에서 사용될 수 있다는 것에 유의한다.
예시된 실시예에서, 442에서 시스템(110)은 공유 비밀의 KMAC 부분을 사용하여 MAC를 검증하고, 공유 비밀의 KENC 부분을 사용하여 ODSignature를 복호화하고, (페어링 절차 동안 수신 및 저장된 바와 같은) se.PK를 사용하여 ODSignature를 검증한다. 예시된 실시예에서, 시스템(110)은 연관된 액세스 정책을 적용한다(예를 들어, 사용자가 요청된 동작(들)을 수행하도록 허용되는지 여부를 결정하고, 사용자가 인가된 경우 커맨드를 실행한다). 예를 들어, 시스템(110)은 내부에 대한 액세스를 허용하기 위해 도어를 잠금해제할 수 있고, 시스템이 구동될 수 있게 하고, 알람이 디스에이블될 수 있게 등을 할 수 있다.
일부 실시예들에서, 개시된 기술들은 모바일 디바이스(130)가 사용자 동의 없이 고유 식별자들 또는 데이터를 해제하는 것(예컨대, 모바일 디바이스가 악성 무선통신장치를 사용하여 추적되게 할 수 있는 것)을 방지한다. 특히, 공개 키 인증서들, 공개 키 해시들, 또는 다른 종류의 키/디바이스 고유 식별자들이 사용자 디바이스를 추적하는 데 사용될 수 있지만, 개시된 기술들은 이러한 정보를 교환하기 전에 보안 채널을 확립함으로써 그리고/또는 이러한 정보를 송신하기 전에 시스템을 인증함으로써 이러한 정보가 인터셉트되는 것을 방지할 수 있다.
일부 실시예들에서, 개시된 기술들은 순방향 비밀 속성을 가지며, 이는 장기 키를 획득하도록 관리하는 공격자가 과거의 통신들을 복호화할 수 있는 것을 방지한다. 일부 실시예들에서, 이러한 속성은 각각의 측에서 단기 키들을 사용함으로써 달성된다. 다른 실시예들에서, 더 이완된 순방향 비밀 속성은 시스템 측에서 장기 키를 그리고 모바일 디바이스 측에서 단기 키들을 사용하여 구현될 수 있다. 이는 시스템 측의 구현을 단순화할 수 있다.
일부 실시예들에서, AP(136)에 의해 수행되는 것으로 설명된 동작들(예컨대, 보안 채널의 확립)은 SE(134)에 의해 수행될 수 있으며, 이는 시스템(110)의 제어의 관점에서 유연성을 감소시킬 수 있지만 전체 보안을 개선할 수 있다.
다양한 실시예들에서, 사용자 인증은 디바이스(130)의 인증에 더하여 수행될 수 있다. 인증은 인가되지 않은 사용자들이 모바일 디바이스(130)를 사용하여 시스템(110)에 인가를 승인하는 것을 방지할 수 있다. 인증은 예를 들어 SEP(210)에 의해 적어도 부분적으로 수행될 수 있으며, 이는 SE(134)가 인증이 완료될 때까지 페어링 또는 인가 세션에 대한 추가 통신들을 수행하는 것을 방지할 수 있다. 일부 실시예들에서, 생체 측정 템플릿들은 시스템에 포함된 보안 회로에 저장될 수 있고, 생체 측정 인증의 적어도 일부분을 수행하도록 구성될 수 있다. 다른 실시예들에서, 생체 측정 인증은 모바일 디바이스에 의해 완전히 처리될 수 있다. 다른 실시예들에서, 모바일 디바이스(160)의 인증은, 예를 들어, 사용자가 시스템 액세스를 위해 그들의 모바일 디바이스를 다른 사용자에게 물리적으로 대여할 수 있게 하기 위해, 모바일 디바이스(160)의 사용자를 인증하지 않고서 수행될 수 있다.
다른 모바일 디바이스에 대한 예시적인 승인들
도 5는 다른 모바일 디바이스(160)에 인가를 승인하기 위한 시스템(110), 애플리케이션 프로세서(136), 및 SE(134) 사이의 예시적인 메시지들을 예시하는 통신도이다. 피공유자 디바이스(인가가 공유되고 있는 디바이스)에 인가를 승인하기 위한 추가 실시예들은 도 15를 참조하여 아래에서 논의된다.
502에서 예시된 실시예에서, 시스템(110)의 소유자의 AP(136)는 다른 모바일 디바이스에 대해 인가될 권한들의 세트를 선택한다. 예를 들어, 소유자는 다른 모바일 디바이스에 대해 이용가능한 속도 제한, 다른 모바일 디바이스가 시스템(110)에 액세스하는 하루 중 시간 등을 제한할 수 있다. 용어 "소유자"가 편의상 본 명세서에 사용되지만, 모바일 디바이스가 시스템(110)과 이전에 페어링되었던 한, AP(136) 및 SE(134)가 실제로 시스템(110)을 소유하지 않은 사용자의 모바일 디바이스에 포함될 수 있다는 것에 유의한다.
예시된 실시예에서, 소유자 AP(136)는, 504에서, 키 공유가 요구된다는 통지 및 다른 AP(536)에 대한 권한들을 특정하는 정보를 전송한다(여기서, 예시된 실시예에서, 다른 AP(536) 및 다른 SE(534)는 다른 모바일 디바이스(160)에 포함된다). AP(536)는 506에서 권한 정보 및 키 쌍 생성 요청을 SE(534)에 전송하며, 이는 508에서 공개/개인 키(쌍 se_other.SK 및 se_other.PK) 및 대응하는 인증서 se_other.Cert를 생성한다. 예시된 실시예에서, SE(534)는 또한 (권한들에 대한 인가되지 않은 변화들을 방지할 수 있는) 권한들을 인증서에 내장한다. 이어서, SE(534)는 512에서 se_other.Cert를 AP(536)에 다시 전송하며, 이는 514에서 이를 서명 요청으로 AP(136)에 포워딩한다.
예시된 실시예에서, 516에서 AP(136)는 (예컨대, 모바일 디바이스(160)의 폰 제조자로부터의) 루트 인증서를 사용하여 se_other.Cert를 체크하고, (예컨대, 이들이 변경되지 않았음을 보장하기 위해) 권한들을 체크하고, 사용자를 인증한다. 인증은 생체 측정 인증, PIN, 사용자명/패스워드 조합 등을 포함할 수 있다. AP(136)는 이어서 518에서 서명 요청 및 se_other.Cert를 SE(134)에 전송하고, 522에서 인증서를 se.SK로 서명하고, 서명된 인증서 se_other.CertSignature를 524에서 AP(136)에 리턴한다. 모바일 디바이스들 사이의 통신은 (예를 들어, NFC 또는 블루투스와 같은 직접 무선 접속을 통해) 국부적으로 또는 네트워크를 통해 수행될 수 있다. 일반적으로 말해서, 본 명세서에서 논의되는 디바이스들 사이의 다양한 통신들은, 예를 들어, 로컬 직접 무선 접속을 통해 원격으로 또는 매우 근접하게 수행될 수 있다.
예시된 실시예에서, AP(136)는 서명을 526에서 AP(536)에 전송하고, 이어서 AP(536)는 528에서 시스템(110)과의 액세스 거래에서 키 식별자로서 서명을 사용한다. 시스템(110)은 권한들을 강제하기 위해 서명 내의 권한들을 체크할 수 있다. 모바일 디바이스(160)에 의한 거래들은 예를 들어 도 4의 거래와 유사하게 수행될 수 있다. 이러한 방식으로, 모바일 디바이스(130)의 사용자는 시스템(110)을 사용하여 특정 세트의 동작들을 수행하도록 모바일 디바이스(160)를 안전하게 인가할 수 있다. 이는 친구들, 가족 멤버들, 대여자들 등이 시스템(110)에 액세스하도록 허용하는 데 사용될 수 있다. 승차 공유 컨텍스트들에서, 모바일 디바이스(160)는 시스템(110)에 대한 액세스를 대여 또는 공유하는 개인 또는 엔티티일 수 있다.
일부 실시예들에서, 키 공유는 공유 네트워크를 위한 관리 회사와 같은 제3자에게 위임될 수 있다. 이러한 시나리오에서, 서버는 (예를 들어, 모바일 디바이스(160)에 의해 생성되는 대신에) 키 쌍을 생성할 수 있어서, 소유자 디바이스가 공유 네트워크의 루트 인증서를 사용하여 공개 키의 기원을 검증할 수 있다. 관리 회사에는 하기의 권한들, 예를 들어, 도어를 여는 것, 엔진을 시작하는 것, 시스템(110)에/으로부터 친구 공개 키들을 추가/제거하는 것, 및 만료일이 제공될 수 있다.
또한, 일부 실시예들에서, 모바일 디바이스(130)는 사용자 입력에 응답하여 다른 모바일 디바이스(들)에 대한 특정 키들을 폐기하도록 구성된다. 이러한 실시예들에서, 시스템(110)은 대응하는 인증서를 제거하거나, 또는 (원한다면 인증서가 나중에 다시-인에이블될 수 있도록) 이를 폐기되는 것으로 마킹할 수 있다. 폐기되면, 다른 모바일 디바이스가 동작을 수행하도록 시스템(110)에 명령하려고 시도하는 경우, 거래는 허용되지 않을 것이다. 일부 실시예들에서, 소유자 모바일 디바이스가 시스템(110)으로부터 페어링되지 않은 경우, 시스템(110)은 또한 인가된 임의의 친구 키들을 폐기하도록 구성된다.
일부 실시예들에서, 인가된 친구들에 대한 권한들은, 제한 없이, 도어를 여는 것, 엔진을 시작하는 것, 시스템으로부터의 공개 키를 제거하는 것, 키 만료일, 속도 제한, 위치 제한, 시간 제한 등을 포함할 수 있다.
일부 실시예들에서, 시스템 제조자와 같은 다른 당사자는 시스템에 의해 어떤 동작들이 허용되는지(예컨대, 새로운 키들 또는 새로운 소유자 페어링을 추가함)에 관한 입력을 원할 수 있다. 이것은, 예를 들어, 제조자가 보증 목적을 위해 소유권 변화들을 더 잘 추적할 수 있게 할 수 있다. 이러한 실시예들에서, 특정 동작들을 위해 사용자의 디바이스에 의해 수행되는 서명들에 더하여, 다른 당사자의 서버로부터의 서명이 또한 특정 동작들을 수행하기 전에 시스템(110)에 의해 요청될 수 있다.
다양한 개시된 실시예들에서, 페어링 및 키 공유는 (예컨대, 시스템이 광역 네트워크에 접속되지 않은 경우) 오프라인으로 수행될 수 있다. 개인 키들은 모바일 디바이스에 내장된 보안 요소 또는 SEP를 결코 남기지 않을 수 있으며, 이는 변조를 방지할 수 있다. 또한, 개시된 기술들은 종래의 기술들에 비해 액세스 거래들에 필요한 교환들의 수를 감소시킬 수 있다. 개시된 기술들은 신뢰되지 않은 채널을 통해서도 보안을 제공할 수 있다. 또한, 개시된 기술들은 능동 및 수동 염탐자들 둘 모두에 대한 보호를 제공할 수 있다.
다음의 표는 일부 실시예들에 따른, 본 명세서에 개시된 다양한 동작들에 사용될 수 있는 비제한적인 예시적인 암호화 알고리즘들을 제공한다:
예시적인 온라인 동작들
전술된 다양한 실시예들은 서로 가까운 디바이스들 사이에서 오프라인으로(예컨대, 광역 네트워크 접속 없이) 수행될 수 있다. 일부 실시예들에서, 시스템 제조자는 또한 원격 동작들의 실행을 위해 광역 네트워크(예컨대, 인터넷)를 통한 통신을 허용할 수 있다. 일부 실시예들에서, 제조자 또는 일부 다른 엔티티는 네트워크 액세스를 제공하는 프록시로서 작용하여, 시스템이 네트워크에 직접 노출되지 않게 할 수 있다. 엔티티는 엔티티의 서버에 시스템 인증을 요구할 수 있다. 시스템에 친구 키들을 추가하기 위한 온라인 기술들이 아래에서 논의된다(친구 키들은 또한 본 명세서에서 피공유자 키들로 지칭될 수 있고, 용어 "친구"는 편의상 사용되지만, 피공유자/친구와 소유자 사이의 임의의 특정 관계를 암시하는 것으로 의도되지 않는다). 다른 실시예들에서, 유사한 온라인 기술들이 특히 본 명세서에서 논의되는 다양한 다른 동작들 중 임의의 것에 대해 사용될 수 있다.
일부 실시예들에서, 제어 유닛(137)에 저장된 공개 키들은, 예를 들어, 최상의 노력 기준으로, 서버와 동기화된다. 예를 들어, 새로운 소유자가 페어링되고 새로운 친구 키가 추가될 때마다, 시스템(110)은 그의 저장된 공개 키들을 서버와 동기화하려고 시도하도록 구성될 수 있다. 일부 실시예들에서, 시스템(110)은 인터넷을 통해 시스템(110)에 도달하는 방식으로 사용될 비-비밀 고유 식별자 및 균일 자원 식별자(URL)를 제공하도록 구성된다. 이는 모바일 디바이스(130)가 서버와의 보안 세션을 확립하게 할 수 있다(예를 들어, 전송 계층 보안(TLS)과 같은 프로토콜을 사용하여 디바이스(130)가 서버를 인증할 수 있게 한다). 일단 세션이 확립되면, 디바이스(130)는 시스템(110)에 의해 제공되는 챌린지들 및/또는 시스템(110)에 의해 실행될 커맨드들에 서명하기 위해 SE(134)를 사용할 수 있다. 서버는 요청들을 시스템(110)에 송신하기 전에 패킷 포맷 및 서명들을 체크하기 위한 프록시로서 작용할 수 있다. 서버는 또한 서비스 공격들 또는 유해-포맷된 패킷들의 거부에 대한 방화벽 타입 보호를 제공할 수 있다. 일부 실시예들에서, 디바이스(130)의 서버 인증은, 디바이스(130)가 유효한 키로 서버 챌린지를 성공적으로 서명한 후에 클라이언트 인증을 포함할 수 있다.
일부 실시예들에서, 시스템 제조자와 같은 엔티티는, 예를 들어 새로운 키들 또는 소유자 페어링의 발행과 같은, 본 명세서에 설명된 다양한 동작들의 감독(supervision)을 원할 수 있다. 이러한 실시예들에서, 소유자 디바이스 또는 친구 디바이스에 의해 제공되는 서명에 더하여, 시스템(110)은 또한 특정 동작들을 수행하기 전에 엔티티의 서버(들)로부터의 서명을 요구할 수 있다. 그러나, 이러한 감독은 이러한 동작들이 오프라인으로 수행되는 것을 방지할 수 있다.
예를 들어, 서버는 새로운 키가 발행된 것을 모바일 디바이스(130), 디바이스(160), 및/또는 시스템(110)에 의해 통지받을 수 있어서, 관련된 당사자들 중 적어도 하나가 서버 서명을 검색하기 위해 온라인이 될(서버에 접속될) 필요가 있다. 수반되는 디바이스들 중 어느 것도 서버에 도달할 수 없는 경우, 이러한 실시예들에서, 시스템(110)은 서명이 엔티티로부터 검색될 수 있을 때까지 새로운 키가 제한된 기능과 함께 사용되게 할 수 있다. 예를 들어, 새로운 친구 사용자가 시스템에 액세스하도록 허용될 수 있지만, 온라인 인가가 완료될 때까지 단지 임계 속력으로 그리고 지정된 위치의 임계 거리 내에서 이를 구동할 수 있다. 일부 실시예들에서, 서버는, 예를 들어, 서버가 이용가능하지 않게 되는 경우, 서버 서명을 위한 요건들을 원격으로 디스에이블하도록 구성된다.
도 6a 및 도 6b는 일부 실시예들에 따른, 서버(610)의 관여를 갖는 예시적인 통신들을 도시한다. 도 6b는 도 6a에서의 통신들의 계속임에 유의한다.
예시된 실시예에서, 통신들은 AP(136)가 620에서 se_other.CertSignature를 수신할 때까지 도 5를 참조하여 전술된 바와 같이 진행한다. 그 시점에서, 예시된 실시예에서, AP(136)는, (예를 들어, 인터넷을 통해) 서버(610)로의 네트워크 접속이 622에서 이용가능한 경우 se_other.Cert 및 se_other.CertSignature의 서버 서명을 요청한다. 그렇다면, 서버(610)는 se_other.CertSignature를 체크하고, 624에서 se_other.CertSignature가 유효하면 se_other.Cert에 서명한다. 서버(610)는 또한 예시된 실시예에서, 만료 시간까지 se_other.Cert를 저장한다. 서버(610)는 이어서 626에서 se_otherServer.CertSignature를 AP(136)로 전송한다.
AP(136)는, 예시된 실시예에서, 628에서 se_other.CertSignature 및 se_otherServer.CertSignature를 다른 AP(536)에 전송한다(서버 서명이 수신된 경우; 그렇지 않으면, AP(136)는 서버 서명없이 제1 서명을 전송한다). se_otherServer.CertSignature가 제공되지 않는 경우, AP(536)는 예시된 실시예에서 632에서 서버(610)로부터의 서명을 요청하도록 구성된다.
이제 도 6b를 참조하면, 서버(610)는 634에서 AP(136)로부터의 요청과 유사하게 AP(536)로부터의 요청을 처리할 수 있다. 예시된 실시예에서, 이어서 AP(536)는 638에서 시스템(110)과의 거래를 개시하고 se_other.Cert, se_other.CertSignature 및 se_otherServerCertSignature를 전송한다(서버 서명이 수신된 경우; 그렇지 않으면 이는 생략될 수 있다).
시스템(110)은, 예시된 실시예에서, 서버 서명이 수신되지 않았을 경우 644에서 이를 요청하고, 접속이 이용가능한 경우 648에서 서버(610)로부터 응답을 수신한다. 이어서, 시스템(110)은 존재하는 경우 se_otherServer.CertSignature를 체크하고, 또한 652에서 se_otherCertSignature를 체크한다. 둘 모두의 서명들이 검증되는 경우, 시스템(110)은 거래에 대한 se_other.Cert에 대한 권한들을 적용하도록 구성된다. 서버 서명이 획득되지 않은 경우, 시스템(110)은 거래에 대한 더 제한된 세트의 권한들을 허용하도록 구성될 수 있다(또는 거래를 완전히 거부할 수 있다).
도 6a 및 도 6b의 예의 거래에서 수반되는 각각의 디바이스는 서버(610)로부터 서명들을 요청하도록 구성되지만, 이는 다른 실시예들에서는 그러하지 않을 수 있다. 또한, 서버 서명들을 요청하기 위해 다른 디바이스들에 의해 유사한 기술들이 사용될 수 있다. 다양한 실시예들에서, 개시된 기술들은 서버(610)가 보안 방식으로 시스템(110)과의 거래들을 감독하는 것을 허용할 수 있다.
일부 실시예들에서, 대규모 페어링은 엔티티가 일 군의 시스템들을 관리하게 할 수 있다. 예를 들어, 소유자 키들은 엔티티의 서버(들) 상에서 생성될 수 있고, 공개 키들은 제조 동안 시스템 프로세서들(예컨대, ECU들)에 개별적으로 저장될 수 있다. 일부 실시예들에서, 동일한 공개 키가 모든 시스템들에 푸시(push)될 수 있고, 후속하여 본 명세서에 설명된 소유권 전송 기술들을 사용하여 전송될 수 있다.
시스템 제조자는 생성 동안 시스템 프로세서들(예컨대, ECU들)에 루트 인증서들을 프로비저닝할 수 있다. 제조자는 또한, 예컨대, 다른 폰 제조자들을 지원하기 위해 생성 후에 새로운 인증서들을 푸시할 수 있다. 이러한 인증서들은 보안 요소 제조자들, 폰 제조자들, 및/또는 시스템 제조자들에 대한 루트 인증서들을 포함할 수 있다.
예시적인 방법
도 7a는 일부 실시예들에 따른, 모바일 디바이스에 의한, 시스템과 페어링하기 위한 방법을 예시하는 흐름도이다. 도 7a에 예시된 방법은 다른 것들 중에서도, 본 명세서에 개시되는 컴퓨터 회로부, 시스템들, 디바이스들, 요소들 또는 컴포넌트들 중 임의의 것과 공조하여 사용될 수 있다. 다양한 실시예들에서, 도시된 방법 요소들 중 일부는 동시에 수행되거나 도시된 바와는 상이한 순서로 수행될 수 있거나, 또는 생략될 수 있다. 추가 방법 요소들이 또한 원하는 대로 수행될 수 있다.
710에서, 예시된 실시예에서, 시스템과 페어링 동작을 수행하라는 제1 요청을 수신하는 것에 응답하여, 모바일 디바이스는 시스템과 제1 공유 암호화 키를 확립한다. 이것은 단기 키 쌍을 확립하는 것 및 단기 키 쌍에 기초하여 공유 비밀을 도출하는 것을 포함할 수 있다. 공유 비밀을 도출하는 것은 ECDH 또는 일부 다른 비대칭 암호화 기술을 사용할 수 있다. 페어링 동작을 수행하라는 요청은 시스템으로부터 또는 사용자로부터 (예컨대, 입력 컴포넌트를 통해) 수신될 수 있다. 다양한 실시예들이 차량 및 모바일 폰을 참조하여 본 명세서에 설명된다는 것에 유의한다. 이들 디바이스들은 예시의 목적으로 포함되지만, 본 개시내용의 범주를 제한하고자 하는 것은 아니다. 다양한 실시예들에서, 개시된 기술들은 다양한 유형들의 디바이스들 중 둘 이상의 디바이스들 사이의 상호 인증을 위해 사용될 수 있다. 예를 들어, 유사한 기술들이 페어링된 웨어러블 디바이스들, 분산 센서들, 사물 인터넷 디바이스들 등을 갖는 디바이스들을 인증하는 데 사용될 수 있다.
720에서, 예시된 실시예에서, 보안 회로(예를 들어, SE(134) 또는 SEP(210))는 공개 키 쌍 및 공개 키 쌍의 공개 키를 포함하는 공개 키 쌍에 대응하는 인증서(예를 들어, se.Cert)를 생성한다. 일부 실시예들에서, 이것은 보안 회로에 의해 수행된다.
730에서, 예시된 실시예에서, 모바일 디바이스는 제1 공유 키를 사용하여 인증서를 암호화한다.
740에서, 예시된 실시예에서, 모바일 디바이스는 암호화된 인증서를 시스템에 전송한다. 이는 모바일 디바이스 측으로부터의 페어링 프로세스를 종료할 수 있다. 다른 실시예들에서, 모바일 디바이스는 성공적인 페어링의 표시를 수신할 수 있다.
일부 실시예들에서, 모바일 디바이스는 공개 키 쌍에 기초하여 생성된 값을 디스플레이하도록 그리고 시스템이 또한 그 값을 디스플레이하는지를 확인하기 위해 모바일 디바이스의 사용자에게 요청하도록 구성된다. 이는 일부 실시예들에서 의도되지 않거나 악의적인 페어링을 회피할 수 있다.
일부 실시예들에서, 다른 모바일 디바이스가 시스템에 액세스하게 하기 위한 제2 요청에 응답하여, 모바일 디바이스는 공개 키 쌍의 개인 키를 사용하여, 다른 모바일 디바이스의 보안 회로에 의해 생성된 다른 공개 키 쌍에 대한 인증서에 서명한다. 일부 실시예들에서, 모바일 디바이스는 광역 네트워크를 통해, 보안 회로에 의해 서명된 인증서의 서버 서명을 요청하고, 서버 서명은 다른 모바일 디바이스에 의해 요청된 동작을 승인할지 여부를 결정하기 위해 시스템에 의해 사용가능하다.
일부 실시예들에서, 모바일 디바이스는 모바일 디바이스가 모바일 디바이스의 사용자에 의해 특정된 권한들의 세트 중의 권한들에 허용되는지 여부를 나타낸다.
도 7b는 일부 실시예들에 따른, 시스템에 의한, 모바일 디바이스와 페어링하기 위한 방법을 예시하는 흐름도이다. 도 7b에 예시된 방법은 다른 것들 중에서도, 본 명세서에 개시되는 컴퓨터 회로부, 시스템들, 디바이스들, 요소들 또는 컴포넌트들 중 임의의 것과 공조하여 사용될 수 있다. 다양한 실시예들에서, 도시된 방법 요소들 중 일부는 동시에 수행되거나 도시된 바와는 상이한 순서로 수행될 수 있거나, 또는 생략될 수 있다. 추가 방법 요소들이 또한 원하는 대로 수행될 수 있다.
750에서, 예시된 실시예에서, 시스템의 프로세싱 요소는 (예를 들어, 도 7a의 요소(710)의 키일 수 있는) 모바일 디바이스와의 제1 공유 암호화 키를 확립한다.
760에서, 예시된 실시예에서, 시스템의 프로세싱 요소는 제1 공개 키 쌍에 대응하고 쌍의 공개 키를 포함하는 모바일 디바이스로부터의 암호화된 인증서를 수신한다. 공개 키 쌍은 예를 들어 모바일 디바이스의 보안 회로에 의해 생성될 수 있다.
770에서, 예시된 실시예에서, 시스템의 프로세싱 요소는 제1 공유 암호화 키를 사용하여 암호화된 인증서를 복호화하고 복호화된 인증서를 저장한다.
도 8a는 일부 실시예들에 따른, 모바일 디바이스에 의한, 인증을 위한 방법을 예시하는 흐름도이다. 도 8a에 예시된 방법은 다른 것들 중에서도, 본 명세서에 개시되는 컴퓨터 회로부, 시스템들, 디바이스들, 요소들 또는 컴포넌트들 중 임의의 것과 공조하여 사용될 수 있다. 다양한 실시예들에서, 도시된 방법 요소들 중 일부는 동시에 수행되거나 도시된 바와는 상이한 순서로 수행될 수 있거나, 또는 생략될 수 있다. 추가 방법 요소들이 또한 원하는 대로 수행될 수 있다.
810에서, 예시된 실시예에서, 모바일 디바이스는 (예를 들어, 페어링을 위해 사용되는 제1 공유 암호화 키와는 상이할 수 있는) 시스템과의 제2 공유 암호화 키를 확립한다. 이는 시스템의 근접성을 검출하는 것 등에 기초하여 시스템으로부터의 통신에 기초하여 수행될 수 있다. 이는, 예를 들어, 단기 키 쌍 및 ECDH의 사용을 포함할 수 있다.
820에서, 예시된 실시예에서, 모바일 디바이스는 시스템으로부터 챌린지를 수신하고, 시스템과 페어링 세션 동안 확립된 공개 키 쌍의 개인 키(예를 들어, se.SK)를 사용하여 시스템으로부터 수신된 챌린지에 대한 응답을 생성한다. 예를 들어, 보안 회로는 비밀 키를 사용하여 챌린지에 서명할 수 있다.
830에서, 예시된 실시예에서, 모바일 디바이스는 제2 공유 암호화 키를 사용하여 응답을 암호화한다.
840에서, 예시된 실시예에서, 모바일 디바이스는 암호화된 응답을 시스템에 송신한다.
도 8b는 일부 실시예들에 따른, 시스템에 의한, 모바일 디바이스를 인증하기 위한 방법을 예시하는 흐름도이다. 도 8b에 예시된 방법은 다른 것들 중에서도, 본 명세서에 개시되는 컴퓨터 회로부, 시스템들, 디바이스들, 요소들 또는 컴포넌트들 중 임의의 것과 공조하여 사용될 수 있다. 다양한 실시예들에서, 도시된 방법 요소들 중 일부는 동시에 수행되거나 도시된 바와는 상이한 순서로 수행될 수 있거나, 또는 생략될 수 있다. 추가 방법 요소들이 또한 원하는 대로 수행될 수 있다.
850에서, 예시된 실시예에서, 시스템의 프로세싱 요소는 모바일 디바이스와의 제2 공유 암호화 키(예를 들어, 도 8a의 요소(810)의 키)를 확립한다.
860에서, 예시된 실시예에서, 프로세싱 요소는 요청된 동작에 응답하여 모바일 디바이스에 챌린지를 발행한다. 동작은 모바일 디바이스에 의해 (예컨대, 시스템에 대한 근접성에 기초하여), 모바일 디바이스로의 사용 입력에 기초하여, 시스템으로부터 수신된 정보에 기초하는 등으로 자동으로 요청될 수 있다. 챌린지는 예를 들어 동작 사전에 포함될 수 있다. 챌린지는 공유 암호화 키를 사용하여 암호화될 수 있다. 일부 실시예들에서, 요청된 동작을 나타내는 정보가 챌린지에 포함되고, 이는 요청된 동작이 실제로 요구되는지 여부를 모바일 디바이스가 확인할 수 있게 할 수 있다.
870에서, 예시된 실시예에서, 프로세싱 요소는 챌린지에 대한 응답을 수신하고, 제2 공유 암호화 키를 사용하여 응답을 복호화한다.
880에서, 예시된 실시예에서, 프로세싱 요소는 요청된 동작을 인가하기 전에 페어링 세션 동안 확립된 공개 키 쌍의 개인 키를 사용하여 모바일 디바이스에 의해 응답이 서명되는 것을 검증한다. 예를 들어, 프로세싱 요소는 se.SK를 사용하여 응답이 서명된 것을 검증하기 위해 se.PK를 사용할 수 있다. 일부 실시예들에서, 프로세싱 요소는 도 8b의 하나 이상의 요소들이 실패하는 경우(예를 들어, 공유 암호화 키가 성공적으로 확립되지 않고, 챌린지에 대한 응답이 부정확하고, 챌린지에 대한 응답이 적절히 서명되지 않는 경우 등), 요청된 동작을 거부한다.
예시적인 멀티-거래-유형 실시예들
일부 실시예들에서, 다수의 유형들의 인증 거래들이 지원된다. 도 9a 내지 도 9c는 2 가지 유형들의 거래들(본 명세서에서 "표준" 및 "빠른" 거래들로 지칭될 수 있음)을 갖는 예시적인 거래 흐름을 예시하는 통신도들이다. 일부 실시예들에서, 표준 거래는 미리 확립된 대칭 키를 수반하지 않지만, 하나 이상의 후속 고속 대칭 거래들에 사용하기 위해 저장되고 이용가능한 그러한 키를 생성하는 데 사용될 수 있다. 도 9b 및 도 9c는 도 9a에서 개시된 통신들의 계속임에 유의한다.
도 9a에서, 시스템(110) 및 모바일 디바이스(130)는 각자의 단기 키 쌍들을 생성하고, 요소들(902 내지 906)에서 통신들을 시작한다. 단기 키 쌍들은 통신을 시작하기 전에 및/또는 후에 생성될 수 있음에 유의한다. 이러한 프로세스는 시간이 소요되기 때문에, 다양한 실시예들에서, 사용자-가시적 거래 시간을 감소시키기 위해 거래가 시작되기 전에 키들을 생성하는 것이 바람직할 수 있다. 통신들의 시작은, 예를 들어 통신들을 개시하기 위해 ECP와의 NFC 충돌-방지를 사용하는 시스템(110)을 포함할 수 있다. 908에서, 시스템(110)은 이어서 현재 거래에 대한 랜덤(또는 의사 랜덤) transaction.ID를 생성하고, 메시지(910)를 전송한다(예시된 실시예에서, 이는 선택 액세스 메시지이지만, 다양한 유형들의 메시지들이 다른 실시예들에서 사용될 수 있다). 일부 실시예들에서, 이러한 메시지는 거래를 수행하기 위해 모바일 디바이스(130) 상에서 (예컨대, SE(134)에 의해) 실행가능한 애플릿의 애플릿 ID를 나타낸다.
하기 용어들 및 표기들이 본 명세서에서 사용될 수 있다:
AP는 일부 실시예들에서, 예컨대 모바일 디바이스의 애플리케이션 프로세서이다.
CASD는 일부 실시예들에서, 제어 기관 보안 도메인이고, 그에 저장된 인증서들은 "SE 인증서들"로 지칭될 수 있다.
DoS는 서비스 거부를 지칭한다.
ECP는 향상된 비접촉식 폴링을 지칭한다.
HCI는 호스트 통신 인터페이스를 지칭한다.
IVe는 일부 실시예들에서, 대칭 암호화를 위한 초기 벡터이다. 이러한 벡터는 모든 거래에서, 예를 들어 다양한 transaction.ID로 인해 변할 수 있다.
KAEseed는 일부 실시예들에서, 암호화 및 MAC 세션 키들을 도출하는 데 사용되는 대칭 장기 키이다. 이는 양측에서 NVM에 저장될 수 있고, 고속 거래들에 대한 루트 키로서 사용될 수 있다. 이의 수명은 시스템 측에서 구현되는 보안 정책에 의해 결정될 수 있다(예를 들어, 갱신까지 10 개의 거래 최대치, 엔진 시작 시에 항상 갱신 등).
KAEe는 일부 실시예들에서, phoneIdentifier 및 기밀 페이로드들을 암호화하는 데 사용되는 도출된 대칭 키이다.
KAEm은 일부 실시예들에서, phoneTag를 계산하는 데 사용되는 도출된 대칭 키이다.
KDF는 일부 실시예들에서, 키 도출 함수이다. 다양한 실시예들에서, 상이한 도출 상수들이 동일한 입력 비밀로부터의 도출들을 위해 사용될 수 있다.
KTS는 일부 실시예들에서, 키 추적 서버이다.
LPM은 저전력 모드를 지칭한다.
PAKE는 패스워드 인증된 키 교환을 지칭한다.
phone.Cryptogram은 일부 실시예들에서, 고유의 공개 거래 데이터에 대해 계산된 MAC 값이다. 그것은 디바이스가 시스템과 동일한 대칭 키를 소유하고 있다는 것을 나타낼 수 있다. 그것은 일부 실시예들에서, 단지 고속 거래에서만 사용된다.
system.Sig는 일부 실시예들에서, 시스템이 system.SK를 소유하고 있음을 나타내기 위해 사용된다. 그것은 단기 키들, 시스템 식별자, 및 transaction.ID 모두에 대해 서명될 수 있다.
DH는 일부 실시예들에서, 디피-헬만 키 교환 함수이다.
transaction.ID는 일부 실시예들에서, 대칭 키 도출 및 MAC/서명 생성을 위해 양측에서 가변 요소로서 사용되는 거래의 고유 식별자이다.
systemIdentifier는 일부 실시예들에서, 시스템의 고유 식별자이다. NFC 거래들 경우, 그것은 RF 필드의 도달에 의해 보호될 수 있다. BT 거래들에 대해, 그것은 BT 채널의 프라이버시 보호에 의존할 수 있다. 디바이스 측에서, 그것은 시스템의 장기 공개 키를 결정하는 데 사용될 수 있다.
phoneIdentifier는 일부 실시예들에서, 디바이스의 고유 식별자이다. 일부 실시예들에서, 그것은 폰이 시스템 아이덴티티를 검증한 후에 보안 채널에서 이를 전송함으로써 거래 동안 프라이버시를 위해 보호된다. 이는, 어떤 흐름이 취해질 것인지를 나타내는 서명 transaction.Type 판독기-결정 값, 고속 또는 표준/전체를 검증하기 위한 디바이스 공개 키를 선택하기 위해 시스템 측에서 사용될 수 있다.
transaction.Type은 일부 실시예들에서, 어떤 흐름이 취해질 것인지를 나타내는 판독기-결정 값, 예를 들어, (다른 가능한 유형의 거래들 중에서) 고속 또는 표준/전체이다.
phoneData는 일부 실시예들에서, 암호화된 폰 식별자 및 선택적인 메일박스 데이터이다.
phoneTag는 일부 실시예들에서, 거래 관련 데이터에 대해 계산된 MAC이다.
phoneAuthenticatedData는 일부 실시예들에서, 폰 식별자 및 폰 서명을 포함한다.
표기 KAEe:KAEm:IVe= KDF(...)는 3 개의 값 모두가 상이한 도출 상수들을 사용하여 동일한 KDF로부터 도출됨을 의미한다. 상수들은 본 문헌에서 특정되지 않는다.
표기 phoneData:phoneTag = EncMac(KAEe:KAEm)(IV=IVe, AD = …, AE = …)은 phoneData가 KAEe로 암호화된 데이터 AE이고, phoneTag가 KAEm을 사용한 AD에 대한 MAC 값임을 의미한다.
912에서, 예시된 실시예에서, 모바일 디바이스(130)는 단기 폰 공개 키 phone.ePK를 갖는 선택 응답을 전송하도록 표시된 애플릿을 실행한다. 일부 실시예들에서, 시스템(110)은 개시된 동작들을 수행하도록 구성된 프로세서에 phone.ePK를 전송하기 위해 BUS-S1 전송을 사용할 수 있다. 다양한 실시예들에서, 시스템(110)은 보안 요소 판독기들로서 동작할 수 있고 암호화 동작들을 수행하도록 구성된 하나 이상의 프로세서들과 통신할 수 있는 (예를 들어, 도어 핸들들 내의, 점화 근처 등의) 하나 이상의 NFC 디바이스들을 포함할 수 있다. 이들 통신에 사용되는 버스들은 상대적으로 느릴 수 있어서, 일부 실시예들에서, 고속 거래 기술들은 표준 거래 기술들에 비해 이들 버스들 상에서 송신되는 데이터의 양을 감소시킬 수 있다.
914에서, 시스템(110)은 이어서 시스템 공개 키 system.ePK "시스템 식별자" 값(시스템(110)에 고유할 수 있음) 및 거래 ID를 포함하는 AUTH0 커맨드를 전송한다. AUTH0 커맨드는 또한 어떤 유형의 거래가 실행되어야 하는지, 예컨대, 표준 또는 고속을 나타낼 수 있다. 이에 응답하여, 모바일 디바이스(130)는 랜덤 공유 비밀 KAEseed를 생성하거나, 거래를 위해 이전에 협상된 KAEseed를 선택한다. 일부 실시예들에서, 생성/선택은 시스템 식별자에 관한 정보를 전달하는 것을 회피하기 위해(예컨대, 시스템 식별자가 디바이스에 이미 알려져 있는지 여부를 나타내는 것을 회피하기 위해) 일정한 시간 간격을 사용하여 수행된다. 예시된 실시예에서, 시스템 식별자가 알려져 있고 대응하는 KAEseed가 존재하는 경우 기존의 KAEseed가 선택될 수 있다. 이는 아래에서 더 상세히 논의되는 바와 같이, 고속-경로 거래들에 사용될 수 있다. 그렇지 않다면, 생성된 랜덤 KAEseed가 선택될 수 있다.
이어서, 916에서, 모바일 디바이스(130)는, 예시된 실시예에서, 선택된 KAEseed, transaction.id 및 스트링 "auth1"을 사용하는 동일한 KDF를 사용하여 KAEe 및 KAEm을 컴퓨팅한다(이러한 스트링이 예시의 목적을 위해 사용되지만, 양측에 알려진 다양한 값들 중 임의의 것이 다양한 실시예들에서 구현될 수 있다는 것에 유의한다). (모바일 디바이스(130)가 고속 거래 유형들을 위해 KAEe를 생성하지 않을 수 있음에 유의한다). 모바일 디바이스(130)는 추가로 ("AUTH0 cmd" | phone.ePK | system.ePK | systemIdentifier | system.PK | transaction.ID | phoneIdentifier | phone.PK)의 MAC(KAEm)로서 phone.Cryptogram을 결정하고, phone.Cryptogram를 갖는 AUTH0 응답을 전송한다. phone.Cryptogram은 시스템(110)에 의해 다른 버스 전송 BUS-S2를 수반할 수 있다. 일부 실시예들에서, 모바일 디바이스는 표준 거래들에 대한 KAE 값들을 컴퓨팅하거나 암호를 생성하지 않는다.
920에서, AUTH0 응답에 기초하여, 시스템(110)은 표준 및 고속 기술들에 대해 상이하게 진행할 수 있다. 표준 기술들의 경우(예를 들어, 정책 또는 컨텍스트가 표준 인증을 요구하는 경우 또는 phone.Cryptogram이 검증될 수 없는 경우), 시스템(110)은 phone.Cryptogram을 무시하고(또는 단순히 암호가 없는 확인응답 메시지를 수신함) 도 9b의 요소들로 진행한다. 고속 기술의 경우, 시스템(110)은 매칭되는 phone.Cryptogram이 발견될 때까지 알려진 폰들을 검색한다. 시스템(110)은 이어서 그 모바일 디바이스에 대한 미리 협상된 시드의 KDF(예를 들어, 이전 표준 거래로부터의 KAEseed[i]) 및 transaction.ID로서 KAEm(및 표준 거래들의 경우 KAEe)을 컴퓨팅한다. 알려진 모바일 디바이스들을 검색하는 이러한 기술은 모바일 디바이스(130)의 식별자를 퍼블리싱(publishing)하는 것을 회피할 수 있으며, 이는 프라이버시를 증가시킬 수 있고 예를 들어, 모바일 디바이스(130)의 추적을 회피할 수 있다. 일반적으로 말하면, 개시된 기술들은 디바이스를 추적하는 데 사용될 수 있는 공개 키 인증서, 공개 키 해시, 또는 다른 키/디바이스 고유 식별자들의 해제를 회피할 수 있다.
이어서, 시스템(110)은 phone.Cryptogram MAC를 검증하려고 시도하고, 성공적인 검증에 응답하여 요청된 동작을 즉시 인증하고 인가할 수 있다(이는 고속 거래를 종료할 수 있음). phone.Cryptogram의 검증이 성공적이지 않은 경우, 표준 거래 기술들이 진행될 수 있다.
이제 도 9b를 참조하면, 930에서, 시스템(110)은 (이것이 고속 거래가 아니기 때문에) phone.Cryptogram을 폐기하고, system.ePK, phone.ePK, 시스템 식별자, 및 system.SK로 서명된 transaction.ID를 포함하는 system.eCert를 생성하여 system.Sig를 생성한다. 이어서, 예시된 실시예에서, 시스템(110)은 system.Sig를 포함하는 AUTH1 커맨드(934)를 전송한다. 이는 시스템(110)에 의한 system.Sig BUS-S3의 다른 버스 전송을 수반할 수 있다.
이어서, 예시된 실시예에서, 시스템(110)은 system.eSK 및 phone.ePK, system.ePK, phone.ePK, and system.PK의 DH 키 교환의 KDF를 사용하여 KAEseed를 컴퓨팅한다. 일부 실시예들에서, 이러한 KAEseed는 공유된 대칭키로서 저장되고 후속 고속 거래들에 사용될 수 있다. 이러한 공유 비밀은 무기한으로 사용될 수 있거나, 제한적 사용일 수 있다(예를 들어, 특정 시간 간격 또는 사용 횟수 후에 만료될 수 있다). 일반적으로 말하면, KAEseed는 단기 키들 및 시스템 공개 키(예를 들어, system.PK)를 포함하는 KDF에 대한 타원 곡선 암호화를 사용하여 계산된 공유 비밀의 예이다. 이어서, 시스템(110)은 KAEseed의 KDF 및 transaction.ID를 사용하여 KAEe, KAEm 및 IVe를 컴퓨팅한다.
모바일 디바이스(130)는, 예시된 실시예에서, 932에서, 공개 키 system.PK 및 수신된 system.Sig를 사용하여 system.eCert를 검증한다. 이어서, 모바일 디바이스(130)는 시스템(110)의 systemIdentifier를 위한 비휘발성 메모리에 KAEseed를 저장한다. 이어서, 모바일 디바이스(130)는 검증이 성공적이면 이전에 컴퓨팅된 폰 데이터 및 phoneSig로서 phoneAuthenticatedData를 생성하고, phoneAuthenticatedData를 갖는 AUTH1 응답(940)을 전송한다. 일부 실시예들에서, 이것은 시스템(110)에 의한 phoneAuthenticatedData의 다른 버스 전송을 수반할 수 있다.
이어서, 예시된 실시예에서, 시스템(110)은 942에서 KAEm을 사용하여 MACing phoneAuthenticatedData에 의해 phoneTag'를 생성하고, phoneIdentifier를 복호화하고, phoneIdentifier를 사용하여 phone.PK를 검색 및 검증하고, 공개 키 phone.PK를 사용하여 phone.Sig를 검증하고, 임의의 패킷 데이터를 복호화하고, 모바일 디바이스(130)의 phoneIdentifier를 위한 비휘발성 메모리에 KAEseed를 저장한다. 검증이 성공적이었으면, 시스템(110)은 모터 또는 엔진 등을 시작하는 것과 같은 요청된 동작을 인가할 수 있다.
일부 실시예들에서, 표준 거래 유형은 공원 밖에서 엔진 또는 시프팅 시스템(110)을 시작하는 것과 같은 특정 유형의 액션들에 대해 요구된다. 일부 실시예들에서, 고속 거래 유형은 시스템(110) 내의 다른 판독기들에 비해 더 느린 버스들(예를 들어, 내부 콘솔이 아닌 도어 내에 위치된 판독기들)를 갖는 NFC 판독기들에 사용될 수 있다.
이제 도 9c를 참조하면, 시스템(110) 및 모바일 디바이스(130)는, 944 및 946에 나타난 바와 같이, KAEseed, transaction.ID, phone.ePK, 및 하나 이상의 공지된 값들 또는 스트링들의 KDF들을 사용하여 KS1, KS2, IV1, 및 IV2를 컴퓨팅할 수 있다. 일부 실시예들에서, 이들 값들은 시스템(110)과 모바일 디바이스(130) 사이에서 추가 정보를 전송하기 위한 세션에 사용될 수 있다.
일부 실시예들에서, 모바일 디바이스(130)는 시스템(110)으로부터 데이터를 저장하는 데 사용되는 하나 이상의 메일박스들을 포함한다. 예시적인 메일박스 구현예들이 도 18을 참조하여 아래에서 논의된다. 일부 실시예들에서, 프라이버시 보호 메일박스는 암호화없이 AP(136)에 액세스가능한 반면, 기밀 메일박스는 보안 NFC를 통해 시스템(110)에 대해서만 액세스가능하다. 일반적으로 말하면, 메일박스(들)는 시스템(110)의 제조자 또는 설계자에 의해 정의된 포맷일 수 있는 다양한 정보를 저장하는 데 사용될 수 있다. 일부 실시예들에서, 정보는 고정자 토큰을 포함할 수 있다. 일부 실시예들에서, 정보는 하나 이상의 액션들(예컨대, 시트 및 미러 위치에 관한 편안함 설정들 등)을 수행하기 위한 파라미터들을 나타내는 설정들을 포함할 수 있다. 따라서, 모바일 디바이스(130)에 대한 개시된 기술들은 다양한 상이한 유형의 시스템들과의 통신들을 가능하게 할 수 있다.
일부 실시예들에서, 시스템(110)은 모바일 디바이스(130)와의 페어링 동안 고정화 키를 저장하기 위해 기밀 메일박스를 사용한다. (예를 들어, 엔진을 시작하는 것과 같은) 특정 액션들을 수행하기 전에, 시스템(110)은 기밀 메일박스로부터 하나 이상의 고정화 키들을 검색하고 검증할 수 있다. 시스템(110)은 요청된 액션을 인가하기 위해 사용되자마자 키들을 폐기할 수 있다.
일부 실시예들에서, 사설 메일박스는, 예를 들어, 제3자 애플리케이션들, 진단들, 커맨드들, 무선 페어링 정보 등을 위한 사용자 설정들을 저장하는 데 사용된다. 일부 실시예들에서, 사설 메일박스는 랜덤 액세스를 지원한다.
일부 실시예들에서, KAEseed는 또한 초광대역(UWB) 통신들을 위한 대칭 키로서 사용될 수 있다. 이들 통신들은 모바일 디바이스(130) 및 시스템(110)의 근접성을 검증하기 위해 비행시간(time-of-flight)을 활용할 수 있다. 본 명세서에서 논의되는 공유 비밀 기술들은 그러한 통신들이 실제로 인가된 디바이스로 수행되고 있다는 것을 인증하는 데 사용될 수 있다.
일부 실시예들에서, 다른 모바일 디바이스들과 공유되는 키들의 유효성은 시스템(110)이 전체 액세스 리스트를 수신할 때 자동으로 증분되는 생성 카운터를 통해 관리된다(그러나, 카운터는 리스트에 대한 증분 추가가 수행될 때 변경되지 않은 채로 유지될 수 있는데, 예를 들어, 기존의 엔트리들이 유효로 유지되도록 허용한다). 카운터는 단조(monotonic)일 수 있고, 롤오버(rollover)를 회피하도록 크기설정될 수 있다. 이들 실시예들에서, 카운터의 값보다 낮은 생성 카운터로 서명된 임의의 이전 또는 계류 중인 요청이 시스템(110)에 의해 거부될 수 있다. 이는, 사용자가 그의 액세스에 대해 만료되도록 의도했을 때 사용자들이 시스템(110)에 대한 액세스를 친구의 모바일 디바이스들을 우발적으로 남겨 두는 것을 회피할 수 있다.
KDF를 이용한 예시적인 표준 거래
도 10은 일부 실시예들에 따른 비대칭 거래를 예시한다. 일부 실시예들에서, 그러한 거래 동안 확립된 공유 비밀(예를 들어, 하기에 논의되는 KAEseed)은 후속 고속-경로(예를 들어, 대칭) 기술들을 위해 디바이스들에 의해 저장될 수 있다. 일부 실시예들에서, 도 10에 도시된 기술들은 도 9a 내지 도 9c에 도시된 것들과 유사하지만, 표준 기술에만 초점을 맞춘다(그리고 고속-경로 기술에 관한 세부사항들을 생략함). 일부 실시예들에서, 비대칭 암호화는 상대적으로 더 강한 인증 및 순방향 비밀을 제공하는 반면, 고속 거래는 (예컨대, 프로세싱 자원들이 제한될 때) 증가된 성능을 제공할 수 있다. 일부 실시예들에서, 최초로 친구 디바이스(본 명세서에서 "피공유자"로 또한 지칭됨)가 시스템(110)에 접촉할 때 항상 표준 거래가 최초로 사용된다. 표준 거래는 고속 거래가 요청되는 경우에도 모바일 디바이스(130)에 의해(예를 들어, 제1 접촉 또는 미지의 시스템의 경우), 또는 시스템(110)에 의해(대칭 키가 확립되지 않은 경우) 강제될 수 있다.
일반적으로 말하면, 예시된 실시예에서, (페어링으로부터의) 단기 키 쌍들 및 이전에 결정된 장기 키들이 공유 비밀(KAEseed)을 협상하기 위해 사용된다. 공유 비밀은 (장기 비밀 키를 사용하여 서명된) 서명을 생성하기 위해 모바일 디바이스에 의해 사용되고, 서명은 폰 ID와 같은 다른 폰 데이터와 함께 암호화된다. 모바일 디바이스는 시스템으로부터 서명된 인증서를 검증한 후에 데이터를 시스템에 전송한다. 시스템은 폰 데이터를 검증하고, 그것을 복호화하고, 폰 ID를 사용하여 폰 phone.PK를 검색하고, 이어서 phone.PK를 사용하여 서명을 검증한다. 예시된 실시예에서, 시스템 및 모바일 디바이스는 이어서 표준 거래 동안 확립된 값들을 사용하여, 다양한 통신들 및 목적을 위해 사용될 수 있는 메일박스 데이터를 전송한다.
더욱 더 일반적으로, 도 10은 시스템이 인증 재료를 생성하고, 모바일 디바이스(130)로 재료를 전송하는 것을 수반하고 모바일 디바이스(130)는 재료를 인증하고, 사설 채널을 생성하고, 종단 인증 재료를 생성한다. 시스템(110)은 이어서 모바일 디바이스를 인증하고 보안 채널을 생성할 수 있다. 인증은 하나 이상의 액션들을 인가하는 데 사용될 수 있고, 사설 및/또는 보안 채널들은 다양한 유형들의 정보를 교환하는 데 사용될 수 있다. 개시된 기술들은 모바일 디바이스(130)가 임의의 식별 정보를 제공하기 전에 시스템(110)의 인증을 허용할 수 있고, 또한 보안 채널을 사용하여 모바일 디바이스(130)에 대한 정보를 식별하기 위한 암호화를 제공할 수 있다.
보다 구체적으로, 1002에서, 예시된 실시예에서, 시스템(110)은 시스템 단기 키 쌍(예를 들어, system.eSK 및 system.ePK)을 생성한다. 1004에서, 시스템(110)은 (다른 기술들이 다른 실시예들에서 사용될 수 있지만) 향상된 비접촉식 폴링에 의한 NFC 충돌-방지를 수행한다. 1006에서, 모바일 디바이스(130)는 폰 단기 키 쌍(예컨대, phone.eSK 및 phone.ePK)을 생성하고, 1008에서 폴링 검출 시에 웨이크업한다.
1010에서, 예시된 실시예에서, 시스템(110)은 랜덤 거래 id를 생성하고 애플리케이션 식별자 메시지(1012)를 모바일 디바이스(130)에 전송한다. 예를 들어, 메시지는 모바일 디바이스(130) 상의 적절한 애플리케이션을 선택하기 위한 애플리케이션 식별자를 나타내는 선택 액세스 AID 메시지일 수 있다. 모바일 디바이스(130)는 1014에서 폰 단기 공개 키 phone.ePK로 응답한다. 일부 실시예들에서, 거래는 선택 커맨드/응답, AUTH0 커맨드/응답, AUTH1 커맨드/응답, 및 선택적으로 하나 이상의 SET/GET 커맨드/응답들을 포함한다(AUTH 및 SET/GET 메시지들은 아래에서 더 상세히 논의된다).
1016에서, 예시된 실시예에서, 시스템(110)은 거래 파라미터들을 갖는 커맨드를 전송한다. 이것은, 일부 실시예들에서, AUTH0 커맨드로 지칭될 수 있다. 일부 실시예들에서, 이러한 커맨드는 system.ePK | systemIdentifier | transaction.ID | transaction.type=표준을 포함한다. 다른 예들에서, transaction.type은 고속 거래 또는 일부 다른 유형의 거래를 나타낼 수 있다. 따라서, AUTH0 커맨드는, 적용가능한 경우, 고속 거래에 대해 이미 확립된 대칭 비밀에 기초하여 암호를 계산하기 위해 디바이스에 의해 필요한 시스템 공개 정보(정적 식별자 및 랜덤 세션 정보)를 제공할 수 있다. 예시된 표준 거래의 경우, 1018에서의 응답은 단지 데이터 없이 확인응답일 수 있다.
1020에서, 예시된 실시예에서, 시스템(110)은 거래 id 및 시스템 식별자를 갖는 단기 인증서를 생성하고, 서명을 생성하기 위해 인증서에 서명한다. 이것은, 예를 들어, system.ePK | phone.ePK | systemIdentifier | transaction.ID를 포함하는 단기 인증서 system.eCert를 생성하는 것을 포함할 수 있다. 이것은 서명 system.Sig를 획득하기 위해 페어링(예를 들어, system.SK)으로부터 비밀 키로 서명될 수 있다.
1022에서, 예시된 실시예에서, 모바일 디바이스(130)는 도출된 공유 비밀을 생성하고, 서명을 생성하고, 도출된 공유 비밀에 기초하여 서명을 암호화한다. 일부 실시예들에서, 이것은 KAEseed = KDF(DH(system.ePK, phone.eSK), system.ePK | phone.ePK | system.PK)를 생성하는 것을 포함한다. 이러한 예에서, 디피 헬만 함수 DH는 공유 비밀을 생성하는 데 사용되는 키 교환 함수의 일례이고, 키 도출 함수 KDF는 키 교환 함수의 출력, 및 공개 키들 system.ePK, phone.ePK, and system.PK에 기초하여 도출된 공유 비밀을 생성한다. 일부 실시예들에서, 모바일 디바이스(130)는 또한 다양화기= transaction.identifier | phone.ePK | system.ePK | systemIdentifier | system.PK를 정의한다. 일부 실시예들에서, 모바일 디바이스(130)는 KAEe1:KAEm1:IVe1=KDF(KAEseed, diversifier | "폰 대 시스템") 및 computes KAEe2:KAEm2:IVe2= KDF(KAEseed, 다양화기| "시스템 대 폰")을 컴퓨팅한다. 이러한 도출된 대칭 키들은 폰 및/또는 기밀 페이로드들을 식별하는 정보를 암호화하는 데 사용될 수 있으며, 이는 이러한 정보의 보안을 증가시킬 수 있다.
일부 실시예들에서, 모바일 디바이스(130)는 서명 phone.Sig = Sign(phone.SK, transaction.Identifier | phone.ePK | system.ePK)을 생성한다. 일부 실시예들에서, 모바일 디바이스(130)는 phone.Data:phone.Tag = EncryptMac (KAEe1:KAEm1:IVe1: 카운터=0) (phone.Identifier | phone.Sig | [메일박스 데이터])를 컴퓨팅한다.
1024에서, 예시된 실시예에서, 모바일 디바이스(130)는 시스템으로부터 단기 인증서 system.eCert using system.ePK | phone.ePK | systemIdentifier | transaction.Identifier를 재구성한다. 이는 아래에서 논의되는 바와 같이 시스템으로부터 단기 인증서의 검증을 용이하게 할 수 있다.
1026에서, 예시된 실시예에서, 시스템(110)은 1020에서 생성된 단기 인증서 및 서명을 전송한다. 이러한 메시지는 AUTH1 커맨드로 지칭될 수 있다. 일부 실시예들에서, 시스템(110)은 서명을 전송함으로써 이러한 메시지 내에서 그 자신을 디바이스에 인증한다.
1028에서, 예시된 실시예에서, 모바일 디바이스(130)는 서명 system.Sig 및 시스템 공개 키 system.PK를 사용하여 단기 인증서 system.eCert을 검증한다. 디바이스가 서명을 검증할 수 있는 경우, 디바이스는 시스템(110)의 검증된 식별자와 새로운 대칭 공유 비밀 KAEseed를 연관시킬 수 있다.
동시에, 시스템(110)은 예시된 실시예에서 동일한 대칭 공유 비밀을 계산한다. 특히, 예시된 실시예에서, 1030에서, 시스템(110)은 도출된 공유 비밀 KAE 시드= KDF(DH(system.eSK, phone.ePK), system.ePK | phone.ePK | system.PK)를 컴퓨팅한다. 시스템(110)은 또한 KAEe1:KAEm1:IVe1=KDF(KAEseed, 다양화기 | "폰 대 시스템")을 컴퓨팅할 수 있다.
1032에서, 모바일 디바이스(130)는 암호화된 서명 및 모바일 디바이스 식별자를 갖는 응답(AUTH1 응답으로 지칭될 수 있음)을 전송한다. 보다 구체적으로, 모바일 디바이스(130)는, 위에서 논의된 바와 같이, 다양한 미리 계산된 암호화된 및 MAC 설정된 데이터를 포함할 수 있는, 이러한 메시지에서 phone.Data 및 phone.Tag를 전송할 수 있다.
1034에서, 시스템(110)은 모바일 디바이스(130)로부터의 데이터를 복호화하고, 식별자를 사용하여 폰의 공개 키를 검색하고, 공개 키를 사용하여 서명 phone.Sig를 검증한다. 특히, 이것은 phone.Tag를 검증하고, phone.Data를 복호화하고, phone.Identifier를 사용하여 phone.PK를 검색하고, phone.PK를 사용하여 phone.Sig를 검증하고, phone.Identifier와 연관된 KAEseed를 저장하는 것을 포함할 수 있다. 따라서, 시스템(110)이 디바이스 서명(phone.Sig)을 성공적으로 검증할 수 있는 경우, 그것은 대칭 비밀을 디바이스와 연관시킨다. 추가적인 메일박스 데이터는 시스템 측에서 복호화되고 사용될 수 있다.
다양한 거래들에서, 디바이스(130)는, 예를 들어, 보안 채널을 생성하기 위해 도출된 키들(KAEm, KAEe)을 사용하여, 거래의 종료 시에 사설 및/또는 기밀 메일박스들의 내용을 요청할 수 있다.
따라서, 예시된 실시예에서, 디바이스(130)는 단기 키들에 걸쳐 DH를 사용하여 공유 비밀(KAEseed)을 계산하고, 장기 시스템 키 system.PK를 포함하는 KDF를 계산한다. 그것은 또한 phone.sK를 사용하여 디바이스 서명(phoneSig)을 계산한다. 한편, 시스템은 장기 시스템 키 system.SK에 의해 서명된 단기 인증서를 생성하고 그의 서명을 디바이스에 송신한다. 동일한 단기 인증서를 재구성한 디바이스는 서명을 검증하고, 성공적인 경우, 시스템 식별자와 관련된 공유 비밀(KAEseed)을 저장한다. 이어서, KAEseed는 도래하는 고속 거래들에 사용될 수 있을 뿐만 아니라, 도출된 대칭 키들(KAEe, KAEm)을 사용하여 최종 페이로드 전송을 보안할 수 있다. AUTH1 응답을 수신하는 경우, 시스템은, phoneAuthenticatedData의 일부로서 수신된 복호화된 폰 식별자를 사용하여, 폰 서명을 검증하기 위해 디바이스의 공개 키를 검색한다. 성공적인 경우, 시스템은 선택적 페이로드(예를 들어, 고정자 토큰)를 복호화하고, 이러한 디바이스에 대한 KAEseed를 영구 메모리에 저장한다. 선택적으로, 도출된 세션 키들은 이어서 디바이스로부터 시스템으로의 페이로드(예를 들어, 고정자 토큰)를 전송하는 데 사용될 수 있다. UWB 시스템에서, 보안 범위의 마스터 키(SASK)는 KAEseed로부터 도출될 수 있다.
일부 실시예들에서, 이러한 거래에 의해 해결되는 프라이버시 문제는 폰이 미인가된 판독기들에게 phoneIdentifier를 해제하는 것을 방지하는 것이다. 공개 키 인증서, 공개 키 해시 또는 임의의 종류의 키/디바이스 고유 식별자를 해제하는 것은 사용자의 동의 없이 디바이스를 추적하는 잠재적인 방식으로서 고려될 수 있다. 디바이스 측에서 KAEseed의 선택은 systemIdentifier가 디바이스에 의해 공격자에게 알려졌는지 여부에 관한 어떠한 지식도 개시하지 않도록 일정 시간 설계로 구현될 수 있다. 일부 실시예들에서, 예를 들어, 단기 키들의 사용으로 인해, 본 명세서에서 논의된 다양한 거래들에서 순방향 비밀이 제공된다.
일부 실시예들에서, 성능을 증가시키기 위해 도 10의 거래들에 대한 다양한 수정이 이루어질 수 있다. 예를 들어, 콤팩트 또는 압축된 형태가 ECC 포인트들에, 예를 들어 공개 키 크기들을 감소시키기 위해 사용될 수 있다. 일부 실시예들에서, (예를 들어, 충전 eCert보다는) system.eCert를 재구성하는 데 필요한 최소 양의 데이터가 전송될 수 있다. 일부 실시예들에서, 단기 키들, systemIdentifier, transaction.ID 등과 같은 데이터가 프리페치될 수 있다. 또한, 효율적인 EC 곡선의 선택은 성능을 향상시킬 수 있다.
예시적인 페어링 실시예들
도 11은 일부 실시예들에 따른, 세션 키를 생성하기 위해 PAKE를 사용하는 페어링 거래를 예시하는 통신도이다.
일부 실시예들에서, 페어링 전에, 시스템(110)은 그것이 수신하는 공개 키들의 기원을 검증하기 위해 디바이스 제조자의 루트 인증서들을 저장한다. 일부 실시예들에서, 시스템은 OEM 백엔드 내에 저장된 루트 인증서를 사용한다(그리고, 이들 실시예들에서 페어링 동안 온라인이어야 한다). 다른 실시예들에서, 인증서는 디바이스에 의해 제공될 수 있다. 이러한 경우에, 시스템은 시스템에 의해 검증될 수 있는 권한에 의해 서명되어야 한다. 일부 실시예들에서, 페어링 전에, 시스템은 1102에서 텔레매틱스(telematics)를 통해 시스템 제조자의 백엔드로부터 비밀(pairingPassword)을 수신하였고, 사용자는 시스템 제조자의 웹 포털/앱/딜러/사용자 매뉴얼로부터 비밀(pairingPassword)을 획득하고 1104에서 그것을 사용한다. 예시된 실시예에서, K는 PAKE 알고리즘에 의해 양측에서 생성된 대칭 세션 키이다.
일부 실시예들에서, PAKE 프로토콜을 사용하여, 1116 및 1120에서의 세션 키 K에 기초하여 보안 채널이 확립된다. 예시된 실시예에서, 단기 키들은 양측 상에서(1106 및 1108에서) 생성되고, 페어링 요청(1110) 및 확인응답(1112)은 보안 채널을 확립하기 전에 교환된다. 메시지들(1121 및 1124)에서, 인증서들 system.Cert 및 phone.Cert는 이러한 채널을 통해 안전하게 교환된다. 인증서 교환 및 검증 후에, 시스템은 이어서 데이터를 프로비저닝하기 위해 본 명세서에(예를 들어, 도 10에서 설명된 표준 거래를 실행할 수 있다.
일부 실시예들에서, 페어링 모드에 놓일 때, 시스템은 백엔드에 도달하고 pairingPassword 값을 요청한다. 페어링 모드에 진입하기 위한 조건들은 시스템 OEM 에 의해 정의될 수 있다. 이어서, 백엔드는 pairingPassword를 생성하고, 이를 시스템에 송신하고, 이를 OEM 사용자 계정을 통해 사용자에게 병렬로 제공한다. 사용자는 (예를 들어, 웹 브라우저에서 또는 설치된 OEM 앱을 통해) pairingPassword를 검색한다. 이어서, 사용자는 OEM 앱에서 또는 OS에서, 모바일 디바이스 상에서의 페어링 모드를 시작하고, pairingPassword를 입력한다. pairingPassword는 또한 본 명세서에서 핀으로 지칭될 수 있음에 유의한다. OEM 앱은 적절한 OS API를 통해 pairingPassword를 애플릿으로 직접 송신할 수 있다. 디바이스 및 시스템 둘 모두가 페어링 패스워드에 기초하여 단기 키 쌍을 생성했을 때, 일부 실시예들에서, UI들 둘 모두는 사용자에게 NFC 콘솔 판독기 상에서 자신의 디바이스를 탭핑하도록 초대한다. 일부 실시예들에서, 시스템(110)은, 예를 들어, 허용되는 실패한 페어링 시도들의 수, 성공적인 페어링 후 거동, 너무 많은 실패한 시도 후의 거동, 너무 많은 실패한 시도 후의 복구 절차들, 시스템에 대한 비밀 전달, 및/또는 소유자에게 비밀 전달을 포함하는 pairingPassword에 대한 하나 이상의 정책들을 구현할 수 있다.
일부 실시예들에서, 차량은 페어링 동안 디지털 키가 어떻게 모바일 디바이스에 의해 설정되어야 하는지를 특정하는 구성 정보를 전송한다. 이러한 구성 정보는, 예컨대, 어떤 유형의 거래들이 허용되는지, 시스템 메타데이터, 시작일, 만료일 등을 나타내는 다양한 필드들을 포함할 수 있다. 모바일 디바이스의 운영 체제는 구성에 따라 디지털 키를 생성하도록 보안 요소 상의 하나 이상의 애플릿에 지시할 수 있다. SE는 또한 장기 공개 키 쌍 phone.PK 및 phone.SK를 생성할 수 있다. 일부 실시예들에서, SE는 (디지털 키가 구성에 따라 생성되었다는 증명으로서) 구성 정보를 갖는 인증서를 생성하고, 이를 phone.SK를 사용하여 서명한다. 이들 실시예들에서, 시스템(110)은 인증서를 검증하고 구성 정보가 정확하다는 것을 확인함으로써 디지털 키가 적절히 생성되었음을 검증할 수 있다. 증명을 갖는 보다 상세한 예가 도 28에 도시되어 있으며, 아래에서 상세히 논의된다.
예시적인 시스템들 및 컴포넌트들의 개요
도 12는 일부 실시예들에 따른, 예시적인 분산형 시스템을 예시하는 블록도이다. 예시된 실시예에서, 시스템은 모바일 디바이스 제조자 백엔드(1230), 키 추적 서버(1250), OEM 비즈니스 백엔드(1270), 및 다른 백엔드(1210)를 포함한다. 예시된 실시예에서, 이들 백엔드 시스템들 중 하나는 소유자 디바이스(130), 시스템(110), 친구 디바이스(160), 및 서비스 디바이스(1220)와 통신한다.
일부 실시예들에서, 시스템(110)은 텔레매틱스 링크를 통해 OEM 비즈니스 백엔드에 링크된다. 이러한 링크는 보안 통신 채널을 제공할 수 있고, 시스템 OEM에 의해 완전히 제어될 수 있다. 일부 실시예들에서, 시스템은 소유자 페어링, 시스템 잠금/잠금해제, 엔진 시작 등과 같은 액션들을 위해 모바일 디바이스들과 통신하기 위해 NFC 판독기들을 구비한다. 예시된 실시예에서, 디바이스들은 또한 키 추적 서버(1250)와 통신하여 발행된 디지털 키들을 추적하고, 서명하고, 폐기할 수 있다. 일부 실시예들에서, 소유자 디바이스는 OEM 앱을 통해 OEM 비즈니스 백엔드(예컨대, 소유자 계정을 호스팅할 수 있음)에 통신한다. 일부 실시예들에서, 친구 및 서비스 디바이스들은 메인 서비스들에 대한 OEM 비즈니스 백엔드에 링크할 필요가 없다. 일부 실시예들에서, 이러한 디바이스들은 OEM 앱을 사용하여 선택적인 계정들에 액세스할 수 있다. 디바이스들은 다양한 제조자들에 의해 제조될 수 있고, 다수의 각자의 모바일 디바이스 제조자 백엔드들과 통신할 수 있다.
일부 실시예들에서, KTS(1250)는, 차량과 연관된 키들의 변경을 로깅하는 동안, 체크 및 서명 기능을 제공하기 위해 비즈니스 백엔드를 신뢰할 수 있다. 일부 실시예들에서, 키 공유를 위해, KTS(1250)는 친구의 공개 키, 친구에 대한 액세스 권리들, 친구에 대한 생성 카운터, 시작일 및 만료일, 키 식별자, SE 서명, 소유자 서명, 및 KTS 서명을 기록한다.
일부 실시예들에서, 제조자 백엔드(1230)는 디바이스들 상의 시스템 키 애플리케이션(또는 애플릿)의 라이프 사이클을 관리하고, 루트 애플 OEM 인증서를 애플리케이션 내에 프로비저닝하는 것을 담당한다. 그것은 또한 디바이스들을 보류, 복구 및 와이핑하기 위한 서비스들을 제공할 수 있다. 일부 실시예들에서, 디바이스 OEM 백엔드(들)는 시스템 OEM 비즈니스 백엔드(1270)와 강하게 통합되지 않을 수 있다. 일부 실시예들에서, 일부 접속들은 OEM 기반 폐기 또는 소유자에 대한 디바이스 손실/도난 통지들에 대해 사용될 수 있다. 백엔드(1230)는 일부 실시예에서 다른 백엔드들에 실시간으로 접속되지 않는다. 일부 실시예들에서, 디바이스 OEM SE 루트 인증서들의 교환은 모든 소유되지 않은 루트 인증서들을 검증 및 서명하고 그들을 모바일 디바이스들 내에 프로비저닝하기 위해 모든 디바이스 OEM들 사이에서 단지 한 번만 행해진다. 일부 실시예들에서, 개시된 기술들을 사용하는 모든 디바이스들은 시스템과 통신할 수 있는 보안 회로(예컨대, 인증된 보안 요소) 및 단거리 무선(예를 들어, NFC) 능력을 포함해야 한다. 디바이스들의 화이트리스팅은 각각의 시스템 OEM에 의해 수행될 수 있다.
도 13은 일부 실시예들에 따른, 예시적인 단거리 무선(예컨대, NFC) 접속성을 예시하는 블록도이다. 예시된 실시예에서, 모바일 디바이스(130)는 NFC 제어기(1332)에 접속되는 애플리케이션 프로세서(136)를 포함한다. 예시된 실시예에서, NFC 제어기는 보안 요소(134)에 접속하고, NFC 안테나로부터 보안 요소 또는 애플리케이션 프로세서(136)로의 라우팅을 제어한다. 일부 실시예들에서, 애플리케이션 프로세서(136)는 NFC 거래들에 대해 어웨이크 상태일 필요가 없다. 일부 실시예들에서, 시스템은 적어도 2 개의 NFC 판독기들, 예컨대 예시된 도어-핸들 판독기(1330) 및 콘솔 판독기(1335)를 구비한다. 일부 실시예들에서, 하나의 ECU(137C)는 모든 판독기들을 제어하고, 본 명세서에서 논의된 다양한 암호화 동작들을 포함하는, NFC를 통해 통신 프로토콜들을 실행하는 소프트웨어를 포함한다. 예시된 실시예에서, 다른 ECU(137B)는 스크린 출력 및 하나 이상의 사용자 입력 디바이스들(1325)을 제어한다. 다른 ECU(137A)는 또한 텔레매틱스 링크(1320)를 통해 시스템 OEM 백엔드에 대한 보안 채널을 확립할 수 있다. 다양한 실시예들에서, ECU 전개는 상이한 OEM들에 대해 상이할 수 있다는 것에 유의한다.
일부 실시예들에서, NFC 컴포넌트는 카드 에뮬레이션 모드 및 지원 ECP(예컨대, ECP 2.0) 및 필드 검출 모드를 사용한다. 일부 실시예들에서, SE(134)는 대칭 및 비대칭 암호화를 지원하고, 식별 및 공개 키 서명을 위한 로컬 인증 권한(CA)을 저장하고, 시스템 키 애플리케이션을 포함하고/하거나 카드 콘텐츠 애플리케이션을 포함한다. 일부 실시예들에서, 시스템 키 애플리케이션은 고속 및 표준 거래들을 구현하도록 구성되고, 고정자 토큰들을 저장 및 관리하고, 소유자 페어링, 공유 및 폐기를 관리한다. 일부 실시예들에서, 애플리케이션은 운영 체제가 공유/고정자 토큰들에 대해 이용가능한 키들의 수, 이미 공유된 키들의 수, 이미 공유된 키들에 관한 정보, 및/또는 다른 소유자들로부터 수신된 키들에 관한 정보를 질의할 수 있게 한다. 애플리케이션은 공유된 키들을 추적할 수 있고, 다른 제조자들의 SE들로부터의 서명들을 검증할 수 있다. 애플리케이션은 특정된 키의 사용을 일시적으로 디스에이블하도록 구성될 수 있다. 일부 실시예들에서, 애플리케이션은 SE(134) 상에 로딩되기 전에 검증될 수 있다.
일부 실시예들에서, 운영 체제는 소유자 페어링, 거래, 키 공유 및 폐기와 같은 주요 특징들을 기본적으로 구현한다. 일부 실시예들에서, 그것은, 근접 공유(예컨대, 에어-드롭)를 통해 키를 전송 및 수신하고, 원격 공유(예컨대, 아이메시지)를 통해 키를 전송 및 수신하고, 다른 폰 OEM 디바이스들로/로부터 키를 전송 및 수신하고, 발행된 친구 키들의 리스트를 보여주고, 공유하기 위해 이용가능한 키들의 수를 보여주고, 키가 시스템 상에서 사용된 때를 보여주고, 키 공유를 위해 사용되는 공개 키의 SE 서명들을 검증하기 위해 다른 제조자 SE들의 제조자-서명된 루트 인증서들을 저장하고, (OEM 사용자 계정 인증서들을 사용하지 않고) 시스템과 원격으로 통신하기 위해 시스템 OEM 서버에 대한 보안 세션을 개방하도록 구성된다. 일부 실시예들에서, 운영 체제는, 페어링 프로세스 동안 소유자 핀을 백엔드로부터 디바이스 SE에 전달하는 것, 각각의 연관된 시스템의 디지털 키에 대한 사설 메일박스 슬롯에 개별적으로 판독 및 기록하는 것, 각각의 연관된 시스템의 디지털 키에 대한 기밀 메일박스 슬롯에 개별적으로 기록하는 것, 원격 커맨드 실행을 위해 애플리케이션에 액세스하는 것, 디바이스 대신에 (예컨대, 전문 서비스들을 위해) 친구 키를 서버와 공유하는 것, 디바이스 대신에 (예컨대, 공유 또는 전문 서비스들을 위해) 서버로부터 친구 또는 애드 혹 키를 수신하는 것, 디바이스 상의 공유 키들에 관한 기밀이 아닌 정보를 검색하는 것, 및/또는 키를 폐기하는 것을 허용하는 시스템 OEM 애플리케이션에 API들을 제공한다.
일부 실시예들에서, 운영 체제는 특정 유형의 액션들에 대한 인증(또는 특정 인증 유형, 예컨대 생체 측정 인증)을 요청하도록 구성된다. 이러한 액션들은, 예를 들어, 소유자 페어링, 풀 키 공유, 서비스 키 공유, 키 폐기(소유자에 의해 요청된 바와 같은 소유자 디바이스 상에서, 친구에 의해 요청된 바와 같은 친구 디바이스 상에서, 소유자에 의해 요청된 바와 같은 친구 디바이스 상에서, 친구에게 전송된 요청으로 소유자 디바이스 상에서를 포함함)를 포함할 수 있다. 일부 실시예들에서, 모든 요청들은 백엔드를 통해서뿐만 아니라 시스템(110)으로 이동한다. 일부 실시예들에서, 인증을 요구하지 않는 액션들의 예들(예컨대, 디바이스 상에서 사용자에 의해 명시적으로 구성되지 않는 한)은 도어 잠금/잠금해제 거래들, 엔진 시작 거래, 특정 상황들에서 친구의 제1 거래, 및 KTS(1250) 또는 (예를 들어, 조용한 폐기를 위해) 소유자/친구 디바이스로부터의 키 폐기 요청의 수신을 포함할 수 있다.
특정 프로세서, 소프트웨어 컴포넌트, 또는 하드웨어 컴포넌트에 의해 수행되는 것으로 본 명세서에 설명된 다양한 기능이 예시의 목적을 위해 논의되지만 본 개시내용의 범주를 제한하고자 하는 것은 아님에 유의한다. 다른 실시예들에서, 다양한 기능이 본 명세서에 설명된 것들과는 다른 요소들에 의해 수행될 수 있다.
일부 실시예들에서, 모바일 디바이스(130)는, 예를 들어, 셀룰러 폰과 페어링될 수 있는 시계와 같은 웨어러블 디바이스이다. 디바이스(130)를 참조하여 본 명세서에 설명된 기능은, 일부 실시예들에서, 그러한 디바이스들 사이에서 분할될 수 있다.
일부 실시예들에서, 시스템(110)은 소유자 공개 키 및/또는 디바이스 정보와 같은 소유자 페어링 정보를 KTS(1250)에 제공하도록 구성된다. 일부 실시예들에서, 시스템(110)은 기밀이 아닌 키 공유 정보의 백업을 통해 소유자 디바이스를 변경하는 것을 지원할 수 있다.
일부 실시예들에서, 클라우드 서비스 시스템은 (온라인인 경우) 손실되거나 도난당한 디바이스 상에서 디지털 키 기능을 일시적으로 디스에이블하고, (온라인인 경우) 손실되거나 도난당한 디바이스 상에서 디지털 키들을 원격으로 와이핑하고, 사용자 아이덴티티를 디바이스 아이덴티티에 안전하게 바인딩하고/하거나 새로운 디바이스 상에서 공유된 키들의 복구를 용이하게 하기 위해 디지털 키 공유 정보를 백업하도록 구성될 수 있다.
키 추적 서버(1250)는, 일부 실시예들에서, 저장된 데이터에 대한 프라이버시 보호를 제공하도록 구성된다. 일부 실시예들에서, KTS(1250)는 시스템이 도난되었고 소유자가 액세스를 인가했을 때에만 데이터 질의에 대해 액세스된다. 일부 실시예들에서, KTS(1250)는 시스템 OEM 비즈니스 백엔드로부터 프라이버시 분리를 갖고, 키들을 기록 및 서명하고, 서명 전에 서비스 유효성 및 키 정책을 체크한다(예를 들어, 그것은 서비스 만료, 더 이상 디지털 키들이 없는 것과 같은 특정 이유로 서명되지 않거나 에러 코드를 전송하고, 서비스 가입을 체크하고, 서비스에 대한 서명된 키들의 수를 체크하고, 소유자 서명의 유효성을 (예를 들어, 페어링 동안 시스템(110)으로부터 수신된 owner.PK를 사용하여) 체크하고/하거나 (예를 들어, 제조자 OEM 루트 인증서에 대한 액세스를 사용하여) SE 서명의 유효성을 체크한다). KTS(1250)는 또한 그들이 시스템 내에서 또는 시스템 OEM 백엔드 내에서 삭제되었을 때 디바이스들 상의 키들을 폐기할 수 있고, 그들이 디바이스 상에서 삭제되었을 때 시스템 OEM 백엔드를 통해 시스템 내의 키들을 폐기할 수 있고/있거나, 공유된 친구 키 정보가 제1 친구 거래 전에 시스템에 이미 프로비저닝되었다는 통지를 친구 디바이스에 제공할 수 있다.
일부 실시예들에서, 제안된 시스템은 시스템 및 디바이스를 상호 인증하기 위해 비대칭 암호화를 사용한다. 일부 실시예들에서, 디바이스는 알려진 시스템들에만 그의 아이덴티티를 드러낸다. 더 고속 거래가 필요한 상황들의 경우, 후속 거래들은 비대칭 거래에 동의된 공유 비밀을 사용하여 대칭 암호화를 통해 디바이스를 인증할 수 있다. 디바이스 내에 키들을 프로비저닝하는 데 TSM이 필요하지 않다. 공개 키들은 소유자 디바이스의 시스템에 대한 페어링을 통해 상호 교환될 수 있다. 이어서, 소유자는 디지털 키들을 친구들 및 가족 멤버들에게 분배할 수 있다. 시스템은 모든 관련 특징들에 대해 완전히 오프라인(즉, 어떠한 서버 접속도 필요하지 않음)으로 작업하는 것으로 고려된다. 규제 또는 비즈니스 제약들이 일부 상황들에서 온라인 접속들을 요구하는 경우, 그들의 추가는 시스템 설계에 의해 지원된다.
일부 실시예들에서, 다수의 유형들의 키들이 구현되고, 주어진 디바이스가 다수의 시스템들에 대한 키들을 유지할 수 있다(그리고 이들 시스템들에 대해 상이한 행들을 가질 수 있다). 일부 실시예들에서, 다음의 키 유형들이 구현된다: 소유자, 친구, 전문 서비스 제공자, 시스템 공유, 및 애드 혹 서비스.
일부 실시예들에서, 시스템은 단지 하나의 소유자 디바이스를 수용한다. 페어링되지 않은 상태에서, 시스템과 연관될 디바이스는 소유자 디바이스로 간주된다. 소유자 디바이스가 시스템과 연관된 후, 시스템은 페어링되지 않은 상태로부터 페어링된 상태로 스위칭한다. 소유자 디바이스 키는 소유자 페어링 프로세스를 통해 키 추적 서버에 의해 추적된다. 적절한 권한들을 정의하고 할당하는 것은 시스템 OEM이 담당한다(아래 참조). 시스템은 몇몇 친구 디바이스들을 수용할 수 있다. 친구 디바이스들은 시스템에 대한 제한된 권한들을 가질 수 있다. 그들은 키를 발행할 때 소유자에 의해 할당되고, 친구 키들에 대한 시스템 OEM 정책에 따라 시스템에 의해 체크된다. 그들은 또한 시스템에 의해 수용되기 위해 추적 서버에 등록될 필요가 있을 수 있다. 전문 서비스 제공자 키들의 발행은 기본적으로 관리되는 것이 아니라 앱을 통해 관리된다. 앱은 소유자가 전문 서비스 제공자(PSP)와 키를 공유하는 방식을 제공한다. 서버에 의해 표현되는 PSP는 친구와 유사하지만, 그의 사용을 위해 고정자 토큰을 필요로 하지 않는다. 그것은, 고정자 토큰을 포함하고, PSP가 항상 온라인인 것으로 가정됨에 따라 KTS에 의해 추적되는 고용자에게 키를 발행한다. 고용자 디바이스는 키를 공유할 수 없다. 시스템 공유 모델에서, 소유자는 시스템 공유 회사의 서버이다. 그것은 사용자들을 공유하는 시스템에 친구 키들을 발행하고, 키들이 추적되는 시스템 e를 취한다. 사용자를 공유하는 시스템은 자신의 디바이스로부터 애드 혹 서비스 키들을 발행할 수 있다. 시스템 온라인/오프라인 상황들에 대해, 친구 키들에 대한 것과 동일한 규칙들이 시스템과의 제1 거래에 관하여 적용된다. 애드 혹 구현들의 경우, 시스템은 동시에 활성인 단일 서비스 디바이스를 수용한다. 일부 실시예들에서, 서비스 디바이스들은 다른 엔티티들에 대한 추가 키들을 발행할 수 없다. 그들은 다른 제한된 권한들을 가질 수 있다.
일부 실시예들에서, 디지털 키는 (예를 들어, 그의 타입에 따라) 키 식별자, 키 친화적 이름, VIN, 시스템 공개 키, 키 고정자 토큰, 스페어 고정자 토큰들, 소유자 권한들, 디바이스 공개 키, 디바이스 및 OS 정보, 키 유형, 수신기 계정 식별자, 키 추적 서비스 URL, 시스템 메타데이터, 시작일, 만료일, 수신기 권한들, SE 서명, 키 추적 서명 등과 같은 다양한 필드들 중 하나 이상을 포함하는 데이터 구조에 의해 표현된다. 일부 실시예들에서, 디지털 키들은 데이터 구조의 하나의 인스턴스에 의해 표현된다. 상이한 유형들의 키들이 또한 상이한 세트들의 필드들을 가질 수 있다.
일부 실시예들에서, 권한들은 시스템과 연관된 각각의 디바이스의 대응하는 공개 키들과 함께 시스템에 의해 저장된다. 시스템 OEM 정책에 따라, 접속이 이용가능하다면, 권한들이 네트워크를 통해 소유자에 의해 변경될 수 있다. 권한들의 변화가 허용되지 않을 때, 현재 키가 폐기될 수 있고, 권한들의 변화를 반영하기 위해 새로운 키가 발행되어야 한다.
공유 키의 예시적인 제1 사용
일부 실시예들에서, 키가 친구 또는 가족 멤버와 공유될 때, 시스템(110)은 요구되는 서명을 검증한 후에, 친구의 새로운 공개 키를 저장해야 한다(아래에서 더 상세히 논의된다). 일부 실시예들에서, 표준 거래 흐름이 이러한 상황에서 사용된다. 일부 실시예들에서, 소유자에 대한 표준 거래 흐름에 대해, 하기 추가 암호화 요소들이 사용된다: SE.sig, owner.SK, owner.Sig, friend.ePK/friend.eSK, friend.PK/friend.SK, friend.Cert, and KTS.sig. 일부 실시예들에서, SE.Sig는 인증된 보안 요소에 의해 키가 생성되었음을 증명하는 공개 키의 서명이다. 일부 실시예들에서, owner.SK는 소유자의 시스템에 대한 액세스를 공유할 때 친구의 공개 키에 서명하는 데 사용되는 소유자의 디바이스에서의 장기 개인 키이다. 이러한 키는 표준 거래 흐름(phone.SK로 명명됨)에 사용되는 것과 동일한 키일 수 있다. 일부 실시예들에서, 아이덴티티 및 권한들이 정확하고 키가 인증된 보안 요소 상에서 생성되었다고 소유자가 검증했을 때 소유자가 친구의 공개 키에 서명할 때 owner.Sig가 생성된다. 일부 실시예에서, friend.ePK/friend.eSK는 각각의 거래에 대해 생성된 단기 키 쌍이고, 각각의 거래 후에 삭제될 수 있다. 일부 실시예들에서, friend.PK/friend.SK는 디바이스 페어링 동안 친구의 폰에 의해 생성되는 장기 키 쌍이다. 하나의 키 쌍이 연관된 시스템마다 생성될 수 있다. 일부 실시예들에서, friend.Cert는 friend.PK를 내장하는 인증서이다. 일부 실시예들에서, 그것은 se_friend.SK, owner.SK 및 (선택적으로) tracking.SK에 의해 서명된다. 일부 실시예들에서, 일단 friend.PK가 시스템 내에 성공적으로 저장되면, 인증서는 쓸모없게 된다. 일부 실시예들에서, KTS.Sig는 새로운 키가 기록되었다는 것을 시스템에 통지하는 키 추적 서버에 의해 추가되는 선택적 서명이다.
이러한 거래 변형예에서, 최초로 친구가 시스템에 접근하기 전에 친구의 공개 키가 백엔드에 의해 시스템 내로 푸시되지 않았다고 가정될 수 있다. 페이로드는 AUTH1 응답에서 또는 세션 메시지들 중 하나에서 [메일박스 데이터]로서 디바이스 측에서 송신될 수 있다. 예를 들어, mailbox_ data = SE 서명, 소유자 서명, 및 키 추적 서명을 포함하는 friend.Cert일 수 있다. 데이터를 전송할 때, 디바이스(130)는 수신된 시스템 식별자에 기초하여 데이터를 준비할 수 있다. 백엔드가 제1 친구 거래 이전에 시스템 내에 이미 모든 데이터를 프로비저닝하도록 관리했을 때, 디바이스는 KTS 링크를 통해 통지를 얻고 데이터를 전송하는 것을 억제할 수 있다. 일부 실시예들에서, 페이로드는, 친구의 공개 키, 보안 요소에 의한 친구의 공개 키의 서명, 소유자에 의한 친구의 공개 키의 서명, 키 추적 서버에 의한 친구의 공개 키의 선택적인 서명, 소유자가 서명하기 전에 공개 키에 부착한 권한들, 친구의 SE 서명의 검증을 허용하는 친구의 SE 인증서 및/또는 소유자의 SE 서명의 검증을 허용하는 소유자의 SE 인증서를 포함할 수 있는 키 공유 프로세스에서 친구에 의해 획득된 데이터 요소들로 이루어진다.
예시적인 고정자 토큰 기술들
일부 실시예들에서, 고정자 토큰은 보안을 증가시키기 위해 사용될 수 있다. 일부 실시예들에서, 모바일 디바이스(130)는 시스템(110)과의 모든 엔진 시작 거래에서 ImmobilizerToken으로 불리는 데이터의 비밀 조각을 저장 및 해제할 수 있다. ImmobilizerToken은 엔진을 시작할 수 있게 하기 위해 다양한 ECU들에 의해 검증될 수 있지만, 예를 들어, 도난방지 역측정으로서 시스템 내에 영구적으로 저장되지 않을 수 있다. 그 결과, 일부 실시예들에서, 시스템은, ImmobilizerToken이 키 포브 또는 연관된 모바일 디바이스에 의해 분산될 때까지 시작될 수 없다. 일부 실시예들에서, 고정자 토큰은 결코 복제되지 않아야 한다. 일부 실시예들에서, 시스템(110)은 모바일 디바이스(130)에 의해 컴퓨팅된 서명의 검증 시에, ImmobilizerToken을 국부적으로 저장하고 이를 ECU들로 해제할 수 있는 보안 요소를 내장할 수 있다. 그 경우에, 디바이스는, 예를 들어, 시스템이 단순히 디지털 서명 검증 및 그의 보안 요소의 보안에 의존할 수 있기 때문에, 이러한 토큰을 저장 및 해제할 필요가 없을 수 있다.
고정자 토큰들이 예시의 목적을 위해 본 명세서에서 논의되지만, 이러한 논의는 본 개시내용의 범주를 제한하고자 하는 것이 아님에 유의한다. 오히려, 고정자 토큰들은 개시된 기술들을 사용하여 처리될 수 있는 보안 토큰 또는 제2 레벨 보안 토큰의 일례이다.
다양한 기술들은 고정자 토큰을 모바일 디바이스의 보안 요소에 저장하기 위해 사용될 수 있고, 시스템 제조자들 간에 다를 수 있다. 일부 실시예들에서, 고정자 토큰(들)(또는 그의 세트)은 소유자 페어링 단계 동안 시스템(110)에 의해 생성되고, 표준 거래로 개방된 보안 채널을 통해 디바이스(130)에 푸시된다. 일부 실시예들에서, 고정자 토큰(들)(또는 그의 세트)은 소유자 페어링 단계 동안 시스템 제조자 백엔드에 의해 생성되고 네트워크를 통해 디바이스에 푸시된다. 일부 실시예들에서, 고정자 토큰은 소유자에 의해 친구로 제공되고, 키 공유 동안 친구의 공개 키로 암호화된다. 일부 실시예들에서, 친구가 서비스 키를 생성할 때, 친구는 그의 고정자 토큰을 서비스 키 소유자에게 제공한다. 시스템에 의해 또는 네트워크를 통해 다음 거래에서, 친구는 친구의 공개 키로 등록된 새로운 고정자 토큰을 수신한다. 소유자가 폐기하거나 친구가 그의 모바일 키를 삭제할 때, 고정자 토큰이 또한 삭제된다. 그 경우에, 소유자는 새로운 고정자 토큰을 획득하여 새로운 친구 키를 공유할 수 있다. 소유자에게 새로운 고정자 토큰의 발행은 소유자가 친구의 디바이스로부터의 폐기 수신을 생성하는 것 및/또는 시스템이 친구의 공개 키 및 대응하는 고정자 토큰이 삭제되었음을 확인하는 것과 관련될 수 있다. 일부 실시예들에서, 디바이스는 기밀 메일박스 내에 고정자 토큰들을 저장한다. 메일박스는 슬롯들로 조직될 수 있다. 이는 하나의 고정자 토큰 패키지(예를 들어, 친구+애드 혹)를 포함하는 슬롯을, (예컨대, 키 공유를 통해) 유효한 SE 서명을 갖는 검증된 친구 디바이스로부터 수신된 공개 키와 연관시키는 것을 허용할 수 있다.
도 14는 일부 실시예들에 따른, 예시적인 메일박스 조직을 예시하는 블록도이다. 예시된 실시예에서, 3 개의 슬롯들이 채워진 소유자의 기밀 메일박스에 대한 4 개의 슬롯들이 있다(그러나, 임의의 수의 슬롯들이 다른 실시예들에서 구현될 수 있다). 예시된 실시예에서, 각각의 슬롯은 최대 2 개의 고정자 토큰들을 저장하도록 구성된다. 일부 실시예들에서, 각각의 슬롯은 공개 키(예를 들어, 친구 PK(1430) 또는 소유자 PK(1440))에 할당될 수 있다. 예시된 예에서, 제1 슬롯(1410)은 프로비저닝되지 않았고, 소유자 PK(1440)를 갖는 제4 슬롯은 소유자를 위해 예비된다. 제2 슬롯(1420)은, 예시된 실시예에서, 예컨대, 소유자 페어링 동안, 할당되지 않은 고정자 토큰들(1422 및 1424)을 수신하였다. 친구 PK(1430)를 갖는 제3 슬롯은 공유의 증거로서 고정자 토큰들의 친구 공개 키 및 해시들을 포함한다. 키가 시스템의 친구 디바이스 상에서 폐기될 때, 동기화 프로세스는 소유자에 대한 폐기 수신을 제공할 수 있다. 수신은 친구 디바이스의 보안 요소에 의해 서명되거나 달리 인증될 수 있다. 수신을 수신하는 것에 응답하여, 소유자 디바이스 애플리케이션은 수신 및 폐기된 공개 키 자체에서 공개 키에 대응하는 메일박스 슬롯의 모든 콘텐츠를 삭제할 수 있다.
일부 실시예들에서, 사설 메일박스는, 예를 들어, 모바일 디바이스(130)의 메인 프로세서를 수반하지 않고서 데이터를 시스템(110)에 이용가능하게 함으로써, 저전력 모드(LPM) 동작을 용이하게 할 수 있다. 일부 실시예들에서, 보안 요소는, 예를 들어, 디바이스가 LPM에 있는 동안 사설 메일박스 데이터에 대한 액세스를 제공할 수 있다.
추가적인 키 공유 및 추적 실시예들
다양한 실시예들에서, 소유자는 다른 사람 또는 엔티티와 키를 공유하기를 원할 것이다. 소유자는 개인 또는 회사일 수 있다. 일부 실시예들에서, 소유자는 친구에 의해 생성된 공개 키에 서명하고 이를 일부 특정 권한들과 연관시킨다. 오프라인 기술은 (예를 들어, 도 15에 도시된 바와 같이) 시스템(110)이 네트워크를 통해 도달될 수 없을 때 사용될 수 있는 반면 온라인 기술은 (예컨대, 도 16에 도시된 바와 같이) 시스템(110)이 도달될 수 있을 때 사용될 수 있다.
예시된 실시예에서, 1502에서, 시스템은 초기에 카운터 system.GenCount(공유 키들의 수와 연관됨), 소유자 공개 키 owner.PK, (공유가 이미 발생한 경우) 피공유자 인증서들, 및 시스템 인증서 system.Cert를 저장한다. 소유자 디바이스(130)는 카운터 CopyGenCount, owner.PK, 및 임의의 현재 피공유자 인증서들의 사본을 저장한다. 일부 실시예들에서, 키 공유는 현재 카운터 값을 유지하는 반면, 공유 키를 폐기하는 것은 카운터 값을 증가시킨다. 1506에서, 소유자 디바이스(130)는 한 세트의 권한들을 선택하고, 이어서 1508에서 키 공유 시도 및 권한들을 피공유자 디바이스(160)에 통지한다.
1510에서, 예시된 실시예에서, 친구의 디바이스는 장기 공개 키 쌍(예컨대, newSharee.SK 및 newSharee.PK로 지칭됨)을 생성한다. 예시된 실시예에서, 피공유자 디바이스(160)는 또한 암호화를 위한 공개 및 개인 키 쌍(예를 들어, newSharee.encSK 및 newSharee.encPK)을 생성한다. 피공유자 디바이스(160)는 또한 표시된 권한들을 내장하는 인증서를 생성한다.
1512에서, 피공유자(160)는 인증서 newSharee.Cert를 시그널링 요청에서 소유자 디바이스(130)에 전송한다. 소유자 디바이스(130)가 디지털 키를 친구와 공유하도록 요청하는 경우, 친구의 SE는 SE 상에서 로컬 CA에 의해 서명된 공개 키를 포함하는 인증서 newSharee.Cert를 생성할 수 있다. 인증서는 소유자가 친구의 공개 키의 진위를 검증할 수 있게 하는 데이터 요소들을 포함할 수 있다. 서명 검증을 위한 인증서 체인들에 대한 상세한 기술들이 아래에서 논의된다.
1514에서, 소유자 디바이스(130)는 (예를 들어, 피공유자 디바이스(160)의 폰 제조자 또는 폰 OEM의) 루트 인증서를 사용하여 newSharee.Cert를 체크하고, 내장된 권한들이 소유자에 의해 선택된 것들과 매칭되는 것을 체크하고, (예를 들어, 생체 측정 인증, 패스코드 등을 사용하여) 사용자를 인증한다. 인증이 실패하면, 일부 실시예들에서, 소유자 디바이스(130)는 공유로 진행하지 않도록 구성된다. 이것은 예를 들어, 도난당한 소유자 디바이스들에 의한 공유를 방지할 수 있다.
1516에서, 소유자 디바이스(130)는 하나 이상의 데이터 요소들, 예컨대, 권한들 및 생성 카운터를 디지털 키 구조에 추가하고, 이를 소유자 개인 키 owner.SK로 서명하고, 완료 데이터를 wrappedData로서 친구에게 다시 전송한다. 일부 실시예들에서, 이것은 newSharee.GenCount=CopyGenCount; newSharee.Sig = owner.SK를 갖는 sign(newSharee.Cert|newSharee.GenCount); 및 래핑된 데이터 = newSharee.encPK로 ImmobilizerToken[+data] 암호화라고 결정하는 단계를 포함한다. 이는, 예를 들어, 소유자 디바이스(130)가 권한들을 확인하였다는 것을 시스템(110)이 검증하게 할 수 있다.
1518에서, 소유자 디바이스(130)는 서명, 카운터, 및 암호화된 데이터를 피공유자 디바이스(160)에 전송한다. 이는, 예를 들어, newSharee.GenCount, newSharee.Sig, and wrappedData를 포함할 수 있다.
1520에서, 예시된 실시예에서, 피공유자(160)는 서명 및 카운터를 시스템(110)에 전송한다. 1522에서, 시스템은 서명 및 인증서를 검증하고, 카운터를 체크하고, 인가된 리스트에 피공유자를 추가한다. 예를 들어, 이것은 newSharee.Sig를 검증하고, newSharee.Cert를 검증하고, newSharee.GenCount==system.GenCount를 검증하고, 성공적이면, 인가된 리스트에 피공유자를 추가하는 것을 포함할 수 있다.
일부 실시예들에서, 개시된 오프라인 기술들은, 다양한 상황들에서, 예를 들어, 광역 네트워크 접속 또는 서버에 대한 임의의 접속 없이, 분산형 키 공유를 허용할 수 있다.
일부 실시예들에서, 생성 카운터는 폐기된 키들의 재사용을 보호한다. 일부 실시예들에서, 소유자 또는 친구 중 어느 하나가 키 추적 서버에 도달하여 서명을 획득할 수 있다. 일부 실시예들에서, 키 추적 서버 또는 소유자 디바이스 중 어느 하나는 시스템 OEM 비즈니스 백엔드에 도달하여, 공유된 디지털 키 구조의 하나 이상의 관련 요소들, 예를 들어, 친구의 공개 키, 권한들, 생성 카운터, 시작일 및 만료일, 키 식별자, 키 친화적 이름, SE 서명, 소유자 서명, 및/또는 KTS 서명을 시스템에 제공한다.
도 16은 예시적인 온라인 통신들을 예시하는 상세한 통신도이다. 예시된 실시예에서, 몇몇 요소들은 도 15의 요소들과 유사하다. 예시된 실시예에서, 소유자 디바이스는 또한 현재의 피공유자 디바이스들의 세트에 대한 새로운 액세스 리스트를 생성하고, 새로운 액세스 리스트의 서명된 사본을 시스템(110)에 전송한다.
일부 실시예들에서, 시스템 제조자는 선택적으로 원격 동작들의 실행을 위해 디바이스들에 의해 인터넷과 같은 광역 네트워크를 통해 시스템(110)이 도달되게 할 수 있다. 시스템이 인터넷에 직접 노출되고 공격들에 더 취약하게 되는 것을 회피하기 위해, 시스템 제조자 서버는 시스템 제조자의 서버에 대한 디바이스의 인증 시에 시스템에 대한 액세스를 제공하는 프록시로서 작용할 수 있다. 일부 실시예들에서, 시스템 ECU에 저장된 공개 키들은 시스템 제조자의 서버 상에서 최상의 노력으로 동기화된다. 일부 실시예들에서, 새로운 소유자가 페어링될 때마다 그리고 새로운 친구 키가 추가될 때마다, 시스템은 그의 저장된 공개 키들뿐만 아니라 시스템 제조자의 서버와의 폐기 리스트를 동기화하려고 시도한다. 디바이스와의 페어링 동안, 시스템은 인터넷을 통해 시스템에 도달하는 방식으로서 시스템 제조자의 서버와 함께 사용될 비-비밀 고유 식별자 및 URI를 디바이스에 제공할 수 있다. 이러한 URI 및 고유 식별자를 사용하여, 디바이스는 시스템 제조자의 서버와의 보안 세션을 확립할 수 있다. 보안 세션은 디바이스가 서버를 인증할 수 있도록 TLS와 같은 표준 프로토콜을 사용할 수 있다. 이러한 세션이 확립되면, 디바이스는 보안 요소를 사용하여 시스템에 의해 제공되는 챌린지들 및 시스템에 의해 실행될 커맨드들에 서명할 수 있다. 프록시로서 작용하는 시스템 제조자의 서버는 요청들을 시스템에 송신하기 전에 패킷 포맷 및 서명들이 정확한지를 체크할 수 있다. 서비스 거부 또는 유해-포맷된 패킷에 대한 방화벽-유형 보호는 또한 시스템 제조자의 서버에 의해 처리될 수 있다. 일부 실시예들에서, TLS 서버 인증은, 디바이스가 유효 키로 서버 챌린지를 성공적으로 서명한 후에 클라이언트 인증으로 업그레이드될 수 있으며, 이는 증가된 복잡성을 대가로 도스 공격들을 필터링하는 것을 도울 수 있다.
일부 실시예들에서, 다음의 온라인 원격 동작들은 OEM 서버와의 보안 세션 내에서 이용가능하다: 도어 잠금/잠금해제, 트렁크 잠금해제, 친구 키 폐기, 소유자 디바이스 제거, 소유자 디바이스 언페어링, 및/또는 에어 컨디셔닝 또는 가열과 같은 편안함 액션들.
시스템 제조자는 새로운 키들 또는 소유자 페어링의 발행과 같은, 본 명세서의 동작들 중 일부를 추적하고/하거나 제어하는 것을 원할 수 있다. 이와 관련하여, 친구/소유자들 디바이스에 의해 수행되는 서명에 더하여, 시스템 제조자의 서버들에 의해 생성된 서명은 특정 동작들을 허용하기 위해 시스템에 의해 요구될 수 있다. 그러나, 그러한 요건들은 이러한 동작들에 관한 오프라인 능력들을 방지할 수 있다. 시스템 제조자의 서버는 새로운 키가 발행되었음을 소유자의 디바이스, 친구의 디바이스 또는 시스템에 의해 통지받을 수 있어서, 수반된 3 개의 당사자들 중 적어도 하나가 서버로부터 서명을 검색하기 위해 온라인이어야 한다. 당사자들 중 어느 것도 서버에 도달할 수 없는 경우, 시스템은, 서명이 시스템 제조자의 서버로부터 검색될 수 있을 때까지, 예를 들어, 제한된 능력들로, 여전히 키가 일시적으로 사용되게 할 수 있다. 일부 실시예들에서, 시스템 제조자는, 예컨대, 그의 서버가 어떤 포인트에서 이용가능하지 않게 되는 경우에, 추가 서버 서명에 대한 필요성을 원격으로 디스에이블할 수 있다.
일부 실시예들에서, 시스템이 오프라인인 경우, 친구의 디바이스는 전술한 바와 같이 제1 거래에서 시스템에 데이터 요소들을 제시한다. 고정자 토큰의 전송은 이러한 거래의 일부로서 수행될 수 있다. 일부 실시예들에서, 메일박스가 이러한 전송에 사용될 수 있다. 소유자 및 친구가 상이한 제조자들로부터의 디바이스들을 사용할 때, 전송자는 수신기의 공개 키에 서명하기 위해 SE에 의해 사용되는 제어 기관 보안 도메인(CASD) 인증서와 같은 인증서를 제공할 수 있다.
일부 실시예들에서, 키 추적을 위해, SE는, SE가 와이핑될 때까지 안정된 임시 보안 요소 아이덴티티(로컬 CA)를 제공한다. 이러한 아이덴티티는 디바이스 제조자에 의해 제어될 수 있고, 제조자 로컬 CA 루트 인증서를 사용하여 시스템 OEM에 의해 검증될 수 있다. 아이덴티티는 제조자 백엔드에 의해 SE-ID로 링크될 수 있으며, 이는 외부 아이덴티티들에 노출되지 않는다. 일부 실시예들에서, 키 추적 서버(1250)는 디지털 키에 서명하기 전에 디바이스 적격성을 검증하는 것을 담당한다. 검증은 보안 요소의 서명을 검증하는 것을 허용하는 디바이스 제조자 임시 루트 인증서를 사용하여 수행될 수 있다. 또한, 디바이스는 다음의 정보를 전달할 수 있다: 디바이스 제조자, 디바이스 하드웨어, 디바이스 OS 버전, 및/또는 JCOP 플랫폼 식별자.
일부 실시예들에서, KTS(1250)는 저장된 데이터에 대한 프라이버시 보호를 제공하기 위해 OEM 비즈니스 백엔드로부터 물리적으로 그리고 논리적으로 분리된다. 일부 실시예들에서, KTS(1250)는 시스템이 도난되었고 소유자가 액세스를 인가했을 때에만 데이터 질의에 대해 액세스되고, 따라서 비즈니스 목적을 위해 이용되지 않을 수 있다. 일부 실시예들에서, 모바일 키를 갖는 임의의 디바이스는 모바일 키에서 시스템으로부터 소유자 디바이스로 그리고 소유자 디바이스로부터 친구 및 서비스 디바이스들로 전달되는 URL로 인해 KTS와 접촉할 수 있다. 일부 실시예들에서, KTS는 하기의 통신 인터페이스들을 갖는다: KTS - 디바이스, KTS - OEM 비즈니스 백엔드/시스템, KTS - 디바이스.
일부 실시예들에서, KTS - 디바이스 인터페이스는 양 당사자들이 통신을 시작할 수 있게 하지만, 제1 단계는 모바일 키를 수신한 후에 디바이스에 의해 취해져야 한다. 이러한 인터페이스는, 친구 디바이스가 새로운 모바일 키를 서버에 제공하는 경우 다음의 동작들을 위해 사용될 수 있다: 서비스 유효성을 체크하고, 서비스에 대한 서명된 키들의 수를 체크하고, (예를 들어, 폰 OEM 루트 인증서에 대한 액세스를 이용하여) SE 서명의 유효성을 체크하고, (예를 들어, 시스템 PK들의 사본을 사용하여) 소유자 서명의 유효성을 체크하고, 모바일 키 및 디바이스 정보를 등록하고, 제1 거래에서 시스템에 제시된 모바일 키 데이터에 서명하고, (시스템이 온라인이면) 시스템에 프로비저닝하기 위해 모바일 키 데이터를 시스템 OEM 백엔드에 제공하고, 서명된 모바일 키를 다시 디바이스에 전송하거나 에러 또는 이유 코드를 제공한다. 이유 코드들의 예들은: SE 서명이 무효인 것/SE가 화이트리스팅되지 않은 것, 소유자 서명이 무효인 것/알려지지 않은 것, 서비스 가입이 무효인 것, 및/또는 최대 수의 발행된 모바일 키들이 도달된 것을 포함할 수 있다. 일부 실시예들에서, 이러한 인터페이스는 폐기 요청을 서버에 전송하기 위해 친구가 친구의 디바이스 상의 키를 삭제할 때 사용될 수 있다. 일부 실시예들에서, 이러한 인터페이스는, KTS(1250)가 성공적인 폐기에 관하여 소유자 디바이스에 통지할 때 사용될 수 있다. 예를 들어, 모바일 키 상태의 변화가 발생할 때, KTS(1250)는 소유자 디바이스와 접촉하여 애플릿 상태를 업데이트할 수 있다(친구 공개 키 및 연관된 추적 데이터(예컨대, 도 14에 도시된 바와 같은 친구 모바일 키 데이터의 해시)를 제거할 수 있다).
일부 실시예들에서, KTS - OEM 비즈니스 백엔드/시스템 인터페이스는 시스템 내의 폐기 요청을 OEM 비즈니스 백엔드에 통지하고/하거나, 삭제가 OEM 소유자 또는 친구 계정을 통해 또는 시스템 내에서 개시될 때 디바이스 상의 키의 폐기를 요청하는 데 사용된다.
예시적인 키 폐기 기술들
키들은 시스템(110) 및 모바일 디바이스(130)를 포함하는 다양한 위치들에서 폐기될 수 있다. 일부 실시예들에서, 키들의 유효성은 시스템이 전체 액세스 리스트를 수신할 때 증분되는 생성 카운터를 사용하여 관리된다. 키를 제거하기 위해, 새로운 액세스 리스트는 폐기될 키를 포함하지 않고, 현재 액세스 리스트들에 대해 적어도 1만큼 증분된 생성된 카운터를 포함한다. 일부 실시예들에서, 시스템(110)은 새로운 현재 값보다 낮은 생성 카운터로 서명된 임의의 이전 또는 계류중인 요청들을 거부하도록 구성된다. 일부 실시예들에서, 생성 카운터는 리스트에 대한 증분 추가가 수행될 때 변경되지 않고 유지되고, 따라서 기존의 엔트리들이 유효하게 유지되게 한다. 일부 실시예들에서, 카운터는 단조이며, 롤오버를 회피하기에 충분히 큰 값들로 카운팅하도록 구성된다.
도 17은 모바일 디바이스(130)에 의한 예시적인 키 폐기를 예시하는 통신도이다. 예시된 실시예에서, 모바일 디바이스(130)는 1702에서 생성된 보안 채널을 통해 1704에서 키 폐기 요청을 수신한다. 1706에서, 모바일 디바이스(130)는 이어서 키를 폐기되는 것으로 마킹하기 위해 보안 요소(또는 일부 다른 보안 회로)에게 지시한다. 이러한 상태에서, 키는 거래에서 사용될 수 없지만, 폐기 증명에 서명하기 위해서만 사용될 수 있다. 일부 실시예들에서, 모바일 디바이스(130)는, phone.SK에 의해 서명될 수 있는, 1706에 도시된 바와 같이, 폐기된 키 상의 폐기 증명을 SE로부터 요청하도록 구성된다. 예시된 실시예에서, 모바일 디바이스는 폐기 증명(1708)을 리턴하고, 서버(146)는 1710에서 phone.PK를 사용하여 폐기 증명의 진위를 검증한다. 일부 실시예들에서, 모바일 디바이스(130)는 요소들(1712 내지 1716)에 도시된 바와 같이, SE가 폐기된 상태에 있는 키들을 삭제하도록 지시하도록 구성된다. 다른 실시예들에서, 본 명세서에서 논의된 다양한 요소들 중 임의의 것이 폐기 증명을 검증하도록 구성될 수 있다. 일부 실시예들에서, 폐기 흐름은 OEM 백엔드에 도달하고 키 상태를 동기화하도록 요청하는 디바이스들에 대한 푸시 통지에 의해 개시된다.
다양한 실시예들에서, 개시된 기술들은 폐기된 키들이 피공유자 디바이스 상에서 실제로 제거되었거나 동결되었다는 증명을 이용하여 시스템, 소유자-디바이스, 및/또는 인터넷-기반 폐기들을 허용할 수 있다. 폐기 기술들은 또한, 예를 들어, 다른 소유자 디바이스와의 페어링 전에, 소유자 디바이스들 상에서 사용될 수 있다. 일부 실시예들에서, 도 17의 개시된 폐기 기술들은, 예를 들어, 서버를 수반하지 않고, 친구와 소유자 모바일 디바이스들 사이에 직접 사용될 수 있다. 예를 들어, 친구 디바이스는 소유자 디바이스(130)에 직접 폐기 수신을 전송할 수 있다.
예시적인 메일박스 기술들
도 18는 일부 실시예들에 따른, 예시적인 메일박스 기술들을 예시하는 블록도이다. 예시된 실시예에서, 애플리케이션 프로세서(136)는 사설 메일박스(1830)에 대한 판독 및 기록 액세스 및 기밀 메일박스(1840)에 대한 기록 액세스를 갖는 OS 및 애플리케이션(1810)을 실행한다. 예시된 실시예에서, 보안 요소(134)는 또한 장기 시스템 공개 키 및 폰 비밀 키를 위한 저장소(1820)를 포함한다. 시스템(110)은, 예시된 실시예에서, 시스템 비밀 키 및 폰 개인 키에 대한 저장소(1825)를 포함하고, 또한 사용자 설정들을 위한 저장소(1835) 및 고정자 토큰에 대한 저장소(1845)를 포함한다.
일부 실시예들에서, 메일박스 메커니즘은 보안 요소가 애플리케이션 프로세서(136) 및 시스템(110)에 의해 액세스가능한 소형 데이터 버퍼들을 저장할 수 있게 한다. 이들 데이터 버퍼들은 보안 요소들의 휘발성 또는 비휘발성 메모리에 저장될 수 있고, 거래들 또는 프로비저닝 동안 판독/기록될 수 있다. 일부 실시예들에서, 디바이스(130) 상에 생성된 각각의 키는 상이한 보안 속성들을 갖는 2 개의 메일박스들과 연관되고 상이한 사용으로 타겟화된다.
일부 실시예들에서, 사설 메일박스(1830)은 예를 들어 디바이스 내부 유선 링크를 사용하여 애플리케이션 프로세서(136)에 액세스가능하게 판독 및 기록된다. 일부 실시예들에서, 그것은 또한, 예를 들어, 전술된 보안 채널이 등록된 system.PK와 확립되면 RF 인터페이스를 사용하여 시스템(110)에 의해 액세스가능하게 판독 및 기록된다. 교환된 데이터는 폰 추적을 방지하기 위해 확립된 보안 채널에 의해 보호될 수 있다. 일부 실시예들에서, 이러한 메일박스는, AP(136)로부터 시스템으로 사용자 설정들을 전송하고, 시스템으로부터 AP(136)로 진단 정보를 전송하고, 시스템에 특정 커맨드들을 전송하고/하거나, 시스템에 블루투스 페어링 정보를 전송하는 데 사용될 수 있다. 일부 실시예들에서, 이러한 메일박스는 랜덤 액세스를 지원하고, 그의 콘텐츠는 오프셋/길이 파라미터들을 사용하여 판독/기록될 수 있다.
일부 실시예들에서, 기밀 메일박스(1840)는 시스템에 액세스가능하게 판독 및 기록되고, 애플리케이션 프로세서(136)에 의해 액세스가능하게 기록된다. 일부 실시예들에서, 그것은 또한, 데이터가 newSharee.encPK로 암호화될 때, 애플리케이션 프로세서(136)에 의해, 예를 들어, 내부 유선 링크를 통해 기록될 수 있다. 일부 실시예들에서, 기밀 메일박스의 콘텐츠는 키 객체 구성에 의해 및 사용자 동의로 허용되는 경우 다른 신뢰된 보안 요소의 인증서/발행키로 암호화되어 내보내질 수 있다. 일부 실시예들에서, RF를 통해 교환되는 임의의 데이터는 사용자 추적을 방지하기 위해 확립된 보안 채널에 의해 보호된다. 일부 실시예들에서, 이러한 메일박스는: 소유자 디바이스로부터 친구 디바이스로의 고정자 토큰 프로비저닝, 시스템으로부터 디바이스로의 고정자 토큰 프로비저닝, 및/또는 디바이스로부터 시스템으로의 고정자 토큰 해제를 위해 사용될 수 있다. 일부 실시예들에서, 이러한 메일박스는 랜덤 액세스를 지원하고, 그의 콘텐츠는 오프셋/길이 파라미터들을 사용하여 판독/기록될 수 있다. 예를 들어, 고정자 토큰들의 세트는, 도 14를 참조하여 위에서 논의된 바와 같이, 기밀 메일박스 내의 상이한 오프셋들에서 기록/판독될 수 있다.
예시적인 인증서 체인들
일부 실시예들에서, 공개 키 인프라구조(PKI) 메커니즘들은 특정 디지털 키까지 신뢰의 체인을 구축하는 데 사용된다. 일부 실시예들에서, 이러한 체인들은 디바이스 인증서 체인, 시스템 인증서 체인, 소유자 페어링 키 증명, 및 키 공유 키 증명을 포함한다.
일부 실시예들에서, 디바이스 제조자들은 다른 디바이스 제조자들로부터 인증서 서명 요청들(CSR)을 처리하기 위해 보안 서비스를 제공해야 한다. 주어진 시스템 제조자에 대해 화이트리스팅된 모든 디바이스 제조자들에 대해 루트 인증서들의 교차 서명이 필요할 수 있다. 서명된 인증서들은 오직 소유 디바이스 제조자에 의해 또는 모든 다른 디바이스 제조자들에 의해 디바이스 OS 내에 내장될 수 있다. 후자의 옵션은 키 공유 동안 인증서를 위한 데이터 전송을 감소시킬 수 있지만, 모든 다른 디바이스들이 디바이스 OEM의 인증서를 저장할 것을 요구할 수 있다. 일부 실시예들에서, 시스템 제조자들은 모든 화이트리스팅된 디바이스 제조자들로부터의 CSR들을 아너링(honor)하기 위해 보안 서비스를 제공해야 한다. 일부 실시예들에서, 서명된 인증서들은 디바이스의 OS에 저장되고 검증을 위해 소유자 페어링 동안 제공된다.
도 19는 일부 실시예들에 따른, 예시적인 디바이스 인증서 체인을 예시하는 블록도이다. 예시된 실시예에서, 제조자 루트 인증서(2102)는 루트 개인 키(2108)를 사용하여 자체-서명되고 보안 요소(134)의 보안 프로비저닝을 위해 사용된다(루트 개인 키는 또한 로컬 CA 인증서(1232) 및 로컬 CA 개인 키(1234)의 생성 프로비저닝을 위해 사용된다.
예시된 실시예에서, OEM 1 루트 인증서(2112)는 OEM 루트 개인 키(2118)를 사용하여 자체 서명되는데, 이는 또한 제품 프로비저닝 동안 SE(2110)에 제공되는 CASD 인증서(2114)에 서명하는 데 사용된다. 예시된 실시예에서, OEM 1 루트 인증서(2112)는 또한 신뢰된 교환을 사용하여 폰 OEM 백엔드(2172)로부터 폰 제조자 백엔드(1230)로 제공된다. 백엔드(1230)는 서명(2106)으로 루트 인증서(2112)에 서명하고 서명된 인증서를 OS(2120)에 프로비저닝한다.
따라서, 일부 실시예들에서, 각각의 적격 보안 요소는 공개 키가 진정한 SE 상에서 생성되었다는 것을 SE가 증명할 수 있게 하는 생성 프로비저닝된 공개 키 쌍(예를 들어, CASD)을 포함한다. 예시된 실시예에서, CASD 공개 키는 OEM 백엔드에서 안전하게 유지되는 루트 키에 의해 서명된 인증서에 내장된다. 제조자는 CASD 서명에 기초하여, 인스턴스 키 쌍의 진위를 증명하는 애플릿 인스턴스에 저장된 로컬 CA 인증서에 서명할 수 있다. 이는 인증서 체인으로부터의 SEID와 같은 정적 식별자들의 제거를 허용할 수 있다. 디바이스가 수신된 키들의 SE 서명을 검증하게 하기 위해, 모든 적격 디바이스 OEM들의 루트 인증서들은 일부 실시예들에서 각각의 백엔드들 사이에서 교환되고, 이어서 수신 디바이스 OEM 루트 개인 키(2118)로 서명된다. 대응하는 루트 인증서는 모든 OEM 디바이스들의 SE들 내에 안전하게 프로비저닝된다. 서명된 OEM 루트 인증서는 모든 OEM 디바이스들에 저장된다. 인증서의 진위가 SE에서의 각각의 사용 전에 검증됨에 따라 보안 저장소가 필요하지 않다.
다양한 기술들에서, 개시된 기술들은 본 명세서에 개시된 기술들을 구현하기 위해 다양한 제조자들로부터의 모바일 디바이스들의 사용을 용이하게 할 수 있다.
도 20은 일부 실시예들에 따른, 예시적인 디바이스 인증서 체인을 예시하는 블록도이다. 예시된 실시예에서, 제조자 루트 인증서(2102)는 (예컨대, 신뢰된 교환을 통해) 시스템 OEM 백엔드(1270)의 루트 개인 키(2218)를 사용하여 서명된다(OEM 서명(2219)). 일부 실시예들에서, 디바이스 OEM이 시스템 제조자에 의해 화이트리스팅되거나 시스템 OEM이 디바이스 제조자에 의해 지원되면 디바이스 루트 인증서들은 시스템 OEM 루트 개인 키에 의해 서명된다. 일부 실시예들에서, OEM 1 루트 인증서(2212)는 각각의 시스템(110)에 안전하게 저장된다. 예시된 실시예에서, 서명된 제조자 루트 인증서(2102)는 디바이스 운영 체제(2120)에 저장된다.
일부 실시예들에서, 예컨대, 시스템이 디바이스 루트 인증서들을 저장하도록 구성될 때, 소유자 페어링 교환이 단순화될 수 있다. 그 경우에, 디바이스 OEM이 시스템 OEM 서명된 루트 인증서(2102)를 디바이스 OS에 저장할 필요가 없을 수 있다.
도 21은 일부 실시예들에 따른, 시스템 OEM 서명된 로컬 CA를 갖는 예시적인 기술을 예시하는 블록도이다. 일부 실시예들에서, 로컬 CA 인증서가 셋업에서 시스템 OEM에 의해 서명될 때, 시스템(110)은 그의 내장된 시스템 OEM 루트 인증서를 직접 사용하여 소유자 공개 키 인증서를 검증할 수 있다. 예시된 실시예에서, 제조자 로컬 CA 인증서(2132)는 디바이스 OS(2120)에 저장되고, 디바이스 제조자 백엔드(1230) 및 시스템 OEM 백엔드(1270) 둘 모두에 의해 서명된다.
도 22는 일부 실시예들에 따른, 예시적인 소유자 페어링 인증서 체인을 예시하는 블록도이다. 소유자 페어링 세션 동안, 소유자 디바이스(130)는 일부 실시예들에서 장기 키 쌍을 생성한다. 공개 키는, SE 인증서(2132) 및 시스템 OEM-서명된 디바이스 루트 인증서(2102)와 함께, 시스템(110)에 전송되는 디바이스 공개 키 인증서(2432)를 생성하기 위해 소유자 디바이스 SE에 의해 서명된다. 이어서 시스템은 시스템 OEM 루트 인증서(2112)를 사용하여 디바이스 OEM 루트 인증서(2102)를 검증하고, 디바이스 OEM 루트 인증서(2102)를 사용하여 SE 인증서(2132)를 검증하고, SE 인증서(2132)를 사용하여 디바이스 공개 키를 검증할 수 있다. 일부 실시예들에서, 모든 검증들이 성공적일 때, 디바이스 공개 키는 소유자 공개 키로서 시스템에 저장된다.
도 23은 일부 실시예들에 따른, 시스템 OEM-서명된 로컬 CA를 사용하는 예시적인 소유자 페어링을 예시하는 블록도이다. 시스템이 각각의 화이트리스팅된 디바이스 OEM의 (시스템 OEM 서명된) 루트 인증서들을 저장하도록 구성되는 일부 실시예들에서, 이어서, 디바이스 OEM 루트 인증이 보안 메모리에 저장되어 있다면, 소유자 페어링의 일부로서 디바이스 OEM 루트 인증 뿐만 아니라 디바이스 OEM 루트 인증서 검증을 제공할 필요성이 제거될 수 있다. 시스템 내의 모든 디바이스 OEM 인증서들을 저장할 필요성은, 소유자 디바이스가 도시된 바와 같이 시스템 OEM에 의해 서명된 로컬 CA 인증서를 제공할 때 제거될 수 있다.
예시된 실시예에서, 제조자 로컬 CA 인증서(2132)는 제조자(서명(2307))에 의해 그리고 OEM(서명(2519))에 의해 서명되고, OEM 1 루트 인증서(2112)를 사용하여 검증되고, 이어서 디바이스 공개 키 인증서(2442)를 검증하는 데 사용된다.
도 24는 일부 실시예들에 따른, 예시적인 키 공유 인증서 체인을 예시하는 블록도이다. 일부 실시예들에서, 서명된 공개 키가 키 공유 프로세스 동안 친구 디바이스로부터 소유자 디바이스로 전송되는 경우, 소유자 디바이스의 보안 요소는 CA 식별자 필드를 통해 SE 인증서를 식별할 수 있고 AP로부터 대응하는 OEM 루트 인증서를 검색한다. 예시된 실시예에서, SE(134)는 OEM 인증서(2112)를 검증하기 위해 제조자 루트 인증서를 사용하고, 이어서 OEM 인증서를 사용하여 OEM SE(2110)로부터 수신된 OEM CASD 인증서(SE 인증서로도 지칭될 수 있음)를 검증한다. 이어서, 그것은 OEM CASD 인증서를 사용하여 친구의 공개 키 인증서를 검증한다. 일부 실시예들에서, 검증들이 성공적일 때, 소유자 디바이스는 소유자 공개 키와 연관된 개인 키를 사용하여 친구의 공개 키에 서명하고, 이는 또한 (소유자 페어링에서) 시스템에 저장된다.
일부 실시예들에서, OEM CASD 인증서는, 예를 들어, 디바이스 OEM 서명에 의해 SE 제조자 서명을 대체하는 로컬 CA 방식으로 대체될 수 있다.
추가 실시예들
일부 실시예들에서, 장치는, 보안 회로; 및 시스템과 페어링 동작을 수행하라는 제1 요청을 수신하는 것에 응답하여, 시스템과 제1 공유 암호화 키를 확립하도록 구성된 하나 이상의 프로세싱 요소들을 포함하고; 보안 회로는 공개 키 쌍 및 공개 키 쌍에 대응하는 인증서를 생성하도록 구성되고, 인증서는 공개 키 쌍의 공개 키를 포함하고; 장치는, 제1 공유 키를 사용하여 인증서를 암호화하고; 암호화된 인증서를 시스템에 전송하도록 구성된다.
일부 실시예들에서, 보안 회로는 결제 거래들에 대한 결제 데이터를 저장하도록 추가로 구성된 보안 요소이다. 일부 실시예들에서, 장치는, 공개 키 쌍에 기초하여 생성된 값을 디스플레이하고; 시스템이 또한 그 값을 디스플레이하는지를 확인하기 위해 장치의 사용자에게 요청하도록 추가로 구성된다. 일부 실시예들에서, 장치는 시스템이 동작을 수행하게 하라는 제2 요청을 수신하는 것에 응답하여: 제2 공유 암호화 키를 확립하고; 공개 키 쌍의 개인 키를 사용하여 시스템으로부터 수신된 챌린지에 대한 응답을 생성하고; 제2 공유 암호화 키를 사용하여 응답을 암호화하고; 암호화된 응답을 시스템에 전송하도록 구성된다. 일부 실시예들에서, 동작은 시스템의 도어를 개방하는 것, 시스템의 내비게이션 시스템을 가능하게 하는 것, 또는 시스템의 엔진을 시작하는 것을 포함한다. 일부 실시예들에서, 장치는 다른 모바일 디바이스가 시스템에 액세스하게 하기 위한 제2 요청을 수신하는 것에 응답하여, 공개 키 쌍의 개인 키를 사용하여, 다른 모바일 디바이스의 보안 회로에 의해 생성된 다른 공개 키 쌍에 대한 인증서에 서명하도록 구성된다. 일부 실시예들에서, 장치는 광역 네트워크를 통해, 보안 회로에 의해 서명된 인증서의 서버 서명을 요청하도록 추가로 구성되고, 서버 서명은 다른 모바일 디바이스에 의해 요청된 동작을 승인할지 여부를 결정하기 위해 시스템에 의해 사용가능하다. 일부 실시예들에서, 장치는 다른 모바일 디바이스가 모바일 디바이스의 사용자에 의해 특정된 권한들의 세트 중 하나를 수행하도록 허용되는지 여부를 나타내도록 추가로 구성된다.
일부 실시예들에서, 비일시적 컴퓨터 판독가능 매체는 동작들을 야기하도록 컴퓨팅 디바이스에 의해 실행가능한 저장된 명령어들을 가지며, 동작들은, 시스템과 페어링 동작을 수행하라는 제1 요청을 수신하는 것; 제1 요청에 응답하여, 시스템과 제1 공유 암호화 키를 확립하는 것; 디바이스의 보안 회로를 사용하여 공개 키 쌍 및 공개 키 쌍에 대응하는 인증서를 생성하는 것 - 인증서는 공개 키 쌍의 공개 키를 포함함 -; 제1 공유 키를 사용하여 인증서를 암호화하는 것; 및 암호화된 인증서를 시스템에 전송하는 것을 포함한다.
일부 실시예들에서, 동작들은, 공개 키 쌍에 기초하여 생성된 값을 디스플레이하는 것; 및 시스템이 값을 디스플레이하는지를 확인하기 위해 컴퓨팅 디바이스의 사용자에게 요청하는 것을 추가로 포함한다. 일부 실시예들에서, 동작들은, 시스템이 동작을 수행하게 하는 제2 요청을 수신하는 것; 제2 요청에 응답하여: 제2 공유 암호화 키를 확립하는 것; 시스템으로부터 수신된 챌린지에 대한 응답을 생성하기 위해 공개 키 쌍의 개인 키 및 보안 회로를 사용하는 것; 제2 공유 암호화 키로 응답을 암호화하는 것; 및 시스템에 응답을 전송하는 것을 추가로 포함한다.
일부 실시예들에서, 동작들은, 다른 모바일 디바이스가 시스템에 액세스하게 하도록 하는 제2 요청을 수신하는 것; 및 제2 요청에 응답하여, 다른 모바일 디바이스의 보안 회로에 의해 생성된 다른 공개 키 쌍에 대한 인증서에 서명하기 위해 공개 키 쌍의 개인 키 및 보안 회로를 사용하는 것을 더 포함한다.
일부 실시예들에서, 장치는 시스템에 포함되거나 시스템에 결합되도록 구성되고, 장치는: 모바일 디바이스와 제1 공유 암호화 키를 확립하고; 모바일 디바이스로부터 암호화된 인증서를 수신하고 - 인증서는 제1 공개 키 쌍에 대응하고, 제1 공개 키 쌍의 공개 키를 포함하고, 인증서는 제1 공유 암호화된 키를 사용하여 암호화되고 -; 암호화된 인증서를 복호화하고 복호화된 인증서를 저장하도록 구성된 하나 이상의 프로세싱 요소들을 포함한다.
일부 실시예들에서, 하나 이상의 프로세싱 요소들은, 제1 공개 키 쌍에 기초하여 값을 생성하고, 모바일 디바이스 상에 디스플레이된 대응하는 값으로 사용자에 의한 비교를 위해 그 값이 시스템의 디스플레이 상에 디스플레이되게 하도록 추가로 구성된다. 일부 실시예들에서, 하나 이상의 프로세싱 요소들은, 모바일 디바이스가 권한을 갖는 시스템에 의한 하나 이상의 동작들 중 어느 것에 액세스할지를 나타내는 정보를 저장하도록 추가로 구성된다. 일부 실시예들에서, 하나 이상의 프로세싱 요소들은, 시스템이 동작을 수행하게 하는 요청에 대해, 모바일 디바이스에 챌린지를 발행하고; 모바일 디바이스와 제2 공유 암호화 키를 협상하고; 챌린지에 대한 응답을 수신하고 제2 공유 암호화 키를 사용하여 응답을 복호화하고; 동작을 인가하기 전에 제1 공개 키 쌍의 개인 키를 사용하여 응답이 모바일 디바이스에 의해 서명됨을 검증하도록 추가로 구성된다. 일부 실시예들에서, 하나 이상의 프로세싱 요소들은, 다른 모바일 디바이스에 의해 생성된 공개 키 쌍에 대한 인증서를 수신하고; 인증서가 모바일 디바이스에 의해 제1 공개 키 쌍의 개인 키에 의해 서명된다고 결정하는 것에 응답하여, 다른 모바일 디바이스에 대한 인증서를 저장하고; 다른 모바일 디바이스에 대한 저장된 인증서에 기초하여 다른 모바일 디바이스에 대한 동작을 인가할지 여부를 결정하도록 추가로 구성된다.
일부 실시예들에서, 비일시적 컴퓨터 판독가능 매체는, 동작들을 야기하도록 시스템의 컴퓨팅 디바이스에 의해 실행가능한 저장된 명령어들을 가지며, 동작들은, 모바일 디바이스와 제1 공유 암호화 키를 확립하는 것; 모바일 디바이스로부터 암호화된 인증서를 수신하는 것 - 인증서는 제1 공개 키 쌍에 대응하고, 제1 공개 키 쌍의 공개 키를 포함하고, 인증서는 제1 공유 암호화된 키를 사용하여 암호화됨 -; 및 암호화된 인증서를 복호화하고 복호화된 인증서를 저장하는 것을 포함한다.
일부 실시예들에서, 동작들은, 시스템이 동작을 수행하게 하는 요청에 대해, 모바일 디바이스에 챌린지를 발행하는 것; 모바일 디바이스와 제2 공유 암호화 키를 협상하는 것; 챌린지에 대한 응답을 수신하고 제2 공유 암호화 키를 사용하여 응답을 복호화하는 것; 동작을 인가하기 전에 제1 공개 키 쌍의 개인 키를 사용하여 응답이 모바일 디바이스에 의해 서명됨을 검증하는 것을 추가로 포함한다. 일부 실시예들에서, 동작들은, 다른 모바일 디바이스에 의해 생성된 공개 키 쌍에 대한 인증서를 수신하는 것; 인증서가 모바일 디바이스에 의해 제1 공개 키 쌍의 개인 키에 의해 서명된다고 결정하는 것에 응답하여, 다른 모바일 디바이스에 대한 인증서를 저장하는 것; 및 다른 모바일 디바이스에 대한 저장된 인증서에 기초하여 다른 모바일 디바이스에 대한 동작을 인가할지 여부를 결정하는 것을 추가로 포함한다.
예시적인 컴퓨터 판독가능 매체
본 개시내용은 위에서 상세하게 다양한 예시적인 회로들을 기술하였다. 본 개시내용은 그러한 회로부를 포함하는 실시예뿐만 아니라, 그러한 회로부를 특정하는 설계 정보를 포함하는 컴퓨터 판독가능 저장 매체도 커버하고자 하는 것이다. 따라서, 본 개시내용은 개시된 회로부를 포함하는 장치뿐만 아니라 개시된 회로부를 포함하는 하드웨어(예컨대, 집적 회로)를 생성하도록 구성된 제조 시스템에 의해 인식되는 포맷으로 회로부를 특정하는 저장 매체를 커버하는 청구범위를 지원하도록 의도된다. 그러한 저장 매체에 대한 청구범위는, 예를 들어 회로 설계를 생성하지만 그 자체가 설계를 제조하지는 않는 엔티티(entity)를 커버하도록 의도된다.
도 25는 일부 실시예들에 따른, 회로 설계 정보를 저장하는 예시적인 비일시적 컴퓨터 판독가능 저장 매체를 예시하는 블록도이다. 예시된 실시예에서, 반도체 제조 시스템(2720)은 비일시적 컴퓨터 판독가능 매체(2710) 상에 저장된 설계 정보(2715)를 프로세싱하고 설계 정보(2715)에 기초하여 집적 회로(2730)를 제조하도록 구성된다.
비일시적 컴퓨터 판독가능 매체(2710)는 다양한 적절한 타입들의 메모리 디바이스들 또는 저장 디바이스들 중 임의의 것을 포함할 수 있다. 매체(2710)는, 설치 매체, 예를 들어, CD-ROM, 플로피 디스크들, 또는 테이프 디바이스; DRAM, DDR RAM, SRAM, EDO RAM, 램버스(Rambus) RAM 등과 같은 컴퓨터 시스템 메모리 또는 랜덤 액세스 메모리; 플래시, 자기 매체, 예컨대, 하드 드라이브, 또는 광학 저장소와 같은 비휘발성 메모리; 레지스터들, 또는 다른 유사한 타입들의 메모리 요소들일 수 있다. 매체(2710)는 또한 다른 타입들의 비일시적 메모리 또는 이들의 조합들을 포함할 수 있다. 매체(2710)는 상이한 위치들, 예를 들어, 네트워크를 통해 접속되는 상이한 컴퓨터 시스템들에 상주할 수 있는 둘 이상의 메모리 매체들을 포함할 수 있다.
설계 정보(2715)는, 제한 없이, VHDL, Verilog, SystemC, Syste㎷erilog, RHDL, M, MyHDL 등과 같은 하드웨어 설명 언어들을 포함하는 다양한 적절한 컴퓨터 언어들 중 임의의 것을 사용하여 특정될 수 있다. 설계 정보(2715)는 집적 회로(2730)의 적어도 일부분을 제조하기 위해 반도체 제조 시스템(2720)에 의해 사용가능할 수 있다. 설계 정보(2715)의 포맷은 적어도 하나의 반도체 제조 시스템(2720)에 의해 인식될 수 있다. 일부 실시예들에서, 설계 정보(2715)는 또한 집적 회로(2730)의 합성 및/또는 레이아웃을 특정하는 하나 이상의 셀 라이브러리를 포함할 수 있다. 일부 실시예들에서, 설계 정보는 셀 라이브러리 요소들 및 그들의 접속성을 특정하는 넷리스트(netlist)의 형태로 전체적으로 또는 부분적으로 특정된다.
반도체 제조 시스템(2720)은 집적 회로들을 제조하도록 구성된 다양한 적절한 요소들 중 임의의 것을 포함할 수 있다. 이는, 예를 들어 반도체 재료들을 (예를 들어, 마스킹을 포함할 수 있는 웨이퍼 상에) 적층시키는 것, 재료들을 제거하는 것, 적층된 재료들의 형상을 변경시키는 것, 재료들을 (예를 들어, 재료들을 도핑하거나 또는 자외선 처리를 사용하여 유전 상수들을 변경함으로써) 변경시키는 것 등을 위한 요소들을 포함할 수 있다. 반도체 제조 시스템(2720)은 또한 정확한 동작을 위해 제조된 회로들의 다양한 테스트를 수행하도록 구성될 수 있다.
다양한 실시예들에서, 집적 회로(2730)는 설계 정보(2715)에 의해 특정된 회로 설계에 따라 동작하도록 구성되며, 이는 본 명세서에 기술된 기능 중 임의의 것을 수행하는 것을 포함할 수 있다. 예를 들어, 집적 회로(2730)는 도 1a 내지 도 1c 또는 도 2에 도시된 다양한 요소들 중 임의의 것을 포함할 수 있다. 추가로, 집적 회로(2730)는 다른 컴포넌트들과 함께 본 명세서에 기술된 다양한 기능들을 수행하도록 구성될 수 있다. 추가로, 본 명세서에 기술된 기능은 다수의 접속된 집적 회로들에 의해 수행될 수 있다.
본 명세서에 사용되는 바와 같이, "~하도록 구성된 회로의 설계를 특정하는 설계 정보"라는 형태의 문구는 요소가 충족되기 위해 해당 회로가 제조되어야 한다는 것을 의미하지 않는다. 오히려, 이 문구는 설계 정보가, 제조 시에, 표시된 액션들을 수행하도록 구성될 것이거나 특정된 컴포넌트들을 포함할 회로를 기술한다는 것을 나타낸다.
도 26은 일부 실시예들에 따라, 디바이스가 다른 디바이스로부터 서명된 인증서를 검증한 후까지는 식별 정보를 전송하지 않는 인증을 위한 예시적인 방법을 예시하는 흐름도이다. 도 26에 예시된 방법은 다른 것들 중에서도, 본 명세서에 개시되는 컴퓨터 회로부, 시스템들, 디바이스들, 요소들 또는 컴포넌트들 중 임의의 것과 공조하여 사용될 수 있다. 다양한 실시예들에서, 도시된 방법 요소들 중 일부는 동시에 수행되거나 도시된 바와는 상이한 순서로 수행될 수 있거나, 또는 생략될 수 있다. 추가 방법 요소들이 또한 원하는 대로 수행될 수 있다.
2810에서, 예시된 실시예에서, 디바이스(예컨대, 모바일 디바이스)는 제1 공개 키 및 제1 개인 키를 포함하는 제1 단기 키 쌍을 생성한다. phone.ePK 및 phone.eSK는 제1 단기 키 쌍의 일례이다.
2820에서, 예시된 실시예에서, 디바이스는 시스템에 의해 생성된 제2 공개 키를 결정하며, 여기서 제2 공개 키는 제2 단기 키 쌍 내에 포함된다. System.ePK는 제2 공개 키의 일례이다.
2830에서, 예시된 실시예에서, 디바이스는, 입력들로서 제1 개인 키 및 제2 공개 키를 사용하는 키 교환 함수를 사용하여 제1 공유 비밀을 생성한다. 예를 들어, 키 교환 함수는 DH(car.ePK, phone.eSK)일 수 있고 그의 출력은 제1 공유 비밀일 수 있다.
2840에서, 예시된 실시예에서, 디바이스는 적어도 하기의 입력들, 즉, 제1 공유 비밀, 제1 공개 키, 및 디바이스와 시스템 사이의 페어링 세션 동안 이전에 확립된 시스템의 공개 키를 사용하는 키 도출 함수를 사용하여 도출된 공유 비밀을 생성한다. KAEseed는 도출된 공유 비밀의 일례이고 system.PK는 시스템의 공개 키의 일례이다.
2850에서, 예시된 실시예에서, 디바이스는 페어링 세션 동안 확립된 디바이스의 개인 키로 거래 정보에 서명함으로써 서명을 생성한다. Phone.Sig는 그러한 서명의 일례이다.
2860에서, 예시된 실시예에서, 디바이스는 도출된 공유 비밀에 기초하여 디바이스를 식별하는 정보 및 서명을 암호화한다. phoneIdentifier는 디바이스를 식별하는 정보의 일례이다.
2870에서, 예시된 실시예에서, 디바이스는 시스템의 공개 키를 사용하여 시스템으로부터 수신된 서명된 인증서를 검증하고, 여기서 인증서는 페어링 세션 동안 확립된 시스템의 대응하는 개인 키로 서명된다. 다양한 실시예들에서, 디바이스는 서명된 인증서의 검증 이후까지는 거래 동안 식별 정보를 송신하지 않는다.
2880에서, 예시된 실시예에서, 서명된 인증서의 검증에 응답하여, 디바이스는 암호화된 서명과 정보를 시스템에 송신한다. 일부 실시예들에서, 이러한 송신은 AUTH1 응답에 대응한다.
도 27은 일부 실시예들에 따른, 시스템 측 인증을 위한 예시적인 방법을 예시하는 흐름도이다. 도 27에 예시된 방법은 다른 것들 중에서도, 본 명세서에 개시되는 컴퓨터 회로부, 시스템들, 디바이스들, 요소들 또는 컴포넌트들 중 임의의 것과 공조하여 사용될 수 있다. 다양한 실시예들에서, 도시된 방법 요소들 중 일부는 동시에 수행되거나 도시된 바와는 상이한 순서로 수행될 수 있거나, 또는 생략될 수 있다. 추가 방법 요소들이 또한 원하는 대로 수행될 수 있다.
2910에서, 예시된 실시예에서, 시스템(예를 들어, 차량)은 모바일 디바이스와의 페어링 세션 동안 확립된 시스템의 개인 키로 거래 정보에 서명함으로써 서명을 생성한다.
2920에서, 예시된 실시예에서, 시스템은 서명을 모바일 디바이스로 송신한다.
2930에서, 예시된 실시예에서, 시스템은 송신된 서명에 응답하여 모바일 디바이스로부터 암호화된 서명을 수신한다.
2940에서, 예시된 실시예에서, 시스템은 제1 공개 키 및 제1 개인 키를 포함하는 제1 단기 키 쌍을 생성한다.
2950에서, 예시된 실시예에서, 시스템은 모바일 디바이스에 의해 생성된 제2 공개 키를 결정하며, 여기서 제2 공개 키는 제2 단기 키 쌍 내에 포함된다.
2960에서, 예시된 실시예에서, 시스템은 입력들로서 제1 개인 키 및 제2 공개 키를 사용하는 키 교환 함수를 사용하여 제1 공유 비밀을 생성한다.
2970에서, 예시된 실시예에서, 시스템은 적어도 하기의 입력들, 즉, 제1 공유 비밀, 제1 공개 키, 및 페어링 세션 동안 이전에 확립된 시스템의 공개 키를 사용하는 키 도출 함수를 사용하여 도출된 공유 비밀을 생성한다.
2980에서, 예시된 실시예에서, 시스템은 도출된 공유 비밀을 사용하여 서명을 복호화한다.
2990에서, 예시된 실시예에서, 시스템은 페어링 세션 동안 확립된 모바일 디바이스의 공개 키를 사용하여 서명을 검증한다.
2995에서, 예시된 실시예에서, 시스템은 검증에 기초하여 하나 이상의 액션들을 인가한다.
예시적인 디지털 키 증명 기술들
도 28은 일부 실시예들에 따른, 페어링 동안의 예시적인 디지털 키 증명을 예시하는 블록도이다. 예시된 실시예에서, 서버(3010)는 페어링 패스워드들(3002)을 생성하고 시스템 패스워드 및 염(3004)을 시스템(110)에 전송하도록 구성된다. 보안 원격 패스워드(SRP)(증강된 PAKE 프로토콜)가 예시를 위해 예시된 예에서 사용되지만, 개시된 증명 기술들은 다양한 보안 프로토콜들과 함께 사용될 수 있다는 것에 유의한다. 예시된 실시예에서, 염은 일방향 해시 함수에 대한 추가 입력으로서 사용되는 랜덤 데이터이고, 시스템 패스워드를 보호하기 위해 사용될 수 있다.
3006에서, 모바일 디바이스 OS(2120)는 서버(3010)에 로그인하고 소유자 패스워드를 페치한다. 3008에서, SRP는 보안 채널을 생성하는 데 사용되고, 시스템(110)은 디지털 키 구성 데이터를 제공한다. 이러한 구성 정보는, 예를 들어, 어떤 유형의 거래들이 허용되는지, 시스템 메타데이터, 시작일, 만료일, 공개 키들, 시스템 식별자 등을 나타내는 다양한 필드들을 포함할 수 있다. 일부 실시예들에서, 시스템(110)은, 디지털 키가 구성 데이터에 따라 생성되었다는 것을 모바일 디바이스가 적절히 증명하지 않는 한 페어링을 거부하도록 구성된다.
3012에서, 모바일 디바이스 OS(2120)는 구성 정보에 따라 디지털 키를 생성하라는 커맨드를 SE 애플릿(3030)에 전송한다. SE 애플릿(3030)은 디지털 키를 생성하고(이는 본 명세서에서 논의된 다양한 정보, 예컨대 페어링 세션에 대한 장기 공개 키 쌍을 포함할 수 있음), 3014에서 증명 및 공개 키를 모바일 디바이스 OS(2120)로 전송한다. OS는 이어서 증명(3016)을 시스템(110)에 전송한다.
이어서, 시스템(110)은, 3018에서, 증명 데이터를 검증하고, 검증에 기초하여 공개 키를 수용하거나 거부한다. 이것은, OS로부터의 서명된 인증서에 내장된 구성 데이터를 3008에서 전송된 구성 데이터와 비교하는 것 및 인증서가 SE로부터 것임을 확인하기 위해 인증서의 서명을 검증하는 것을 포함할 수 있다. 이는, 다양한 실시예들에서, 시스템(110)이 모바일 디바이스(130)와의 페어링을 허용하기 전에 디지털 키가 적절히 생성되었음을 확인하게 할 수 있다.
OS(2120) 및 애플릿(3030)에 대해 설명된 기능은 단일 모듈에 의해 수행될 수 있으며, 이는 다른 실시예들에서 단일 프로세서 상에서 실행될 수 있다는 것에 유의한다. 도 28에서의 개시된 기능 분포는 예시의 목적으로 포함되지만, 본 개시내용의 범주를 제한하고자 하는 것은 아니다.
***
특정 실시예들이 위에서 설명되고 아래의 첨부된 부록에서 도시되었지만, 이들 실시예들은 단일 실시예만이 특정 특징부에 대해 설명된 경우에도 본 개시내용의 범주를 제한하고자 하는 것은 아니다. 본 개시내용에 제공된 특징부들의 예들은 달리 언급되지 않는 한 제한적인 것이 아니라 예시적인 것으로 의도된다. 일례로서, 용어 "폰"에 대한 참조들은 임의의 적합한 모바일 디바이스를 포함할 수 있다. 따라서, 위 및 아래의 설명들은 본 개시내용의 이익을 취하는 당업자에게 자명한 바와 같이 그러한 대안물들, 수정물들, 및 등가물들을 포괄하도록 의도된다.
본 개시내용의 범주는, 본 명세서에 다뤄진 문제점들 중 임의의 것 또는 전부를 완화시키든 아니든, (명시적으로 또는 묵시적으로) 본 명세서에 개시된 임의의 특징부 또는 특징부들의 조합, 또는 그의 임의의 일반화를 포함한다. 따라서, 특징부들의 임의의 그러한 조합에 대해 본 출원(또는 그에 대한 우선권을 주장하는 출원)의 심사 동안에 새로운 청구범위가 작성될 수 있다. 구체적으로, 첨부된 청구범위를 참조하면, 종속항들로부터의 특징부들은 독립항들의 특징부들과 조합될 수 있으며, 각자의 독립항들로부터의 특징부들은 첨부된 청구범위에 열거된 특정 조합들로 조합될 수 있을 뿐 아니라 임의의 적절한 방식으로 조합될 수 있다.
Claims (18)
- 장치로서,
하나 이상의 프로세싱 요소들을 포함하며, 상기 하나 이상의 프로세싱 요소들은,
제1 공개 키 및 제1 개인 키를 포함하는 제1 단기 키 쌍을 생성하고;
시스템에 의해 생성된 제2 공개 키를 결정하고 - 상기 제2 공개 키는 제2 단기 키 쌍 내에 포함됨 -;
입력들로서 상기 제1 개인 키 및 상기 제2 공개 키를 사용하는 키 교환 함수를 사용하여 제1 공유 비밀을 생성하고;
적어도 하기의 입력들, 즉, 상기 제1 공유 비밀, 상기 제1 공개 키, 및 상기 장치와 상기 시스템 사이의 페어링(paring) 세션 동안 이전에 확립된 상기 시스템의 공개 키를 사용하는 키 도출 함수를 사용하여 도출된 공유 비밀을 생성하고;
상기 페어링 세션 동안 확립된 상기 장치의 개인 키로 거래 정보에 서명함으로써 서명을 생성하고;
상기 도출된 공유 비밀에 기초하여 상기 장치를 식별하는 상기 서명과 정보를 암호화하고;
상기 시스템의 상기 공개 키를 사용하여 상기 시스템으로부터 수신된 서명된 인증서를 검증하고 - 상기 인증서는 상기 페어링 세션 동안 확립된 상기 시스템의 대응하는 개인 키로 서명됨 -;
상기 서명된 인증서의 검증에 응답하여, 상기 암호화된 서명과 정보를 상기 시스템에 송신하도록 구성되는, 장치. - 제1항에 있어서, 상기 장치는 상기 서명된 인증서의 검증 후까지는 상기 장치를 식별하는 정보를 상기 시스템에 전송하지 않도록 구성되는, 장치.
- 제1항에 있어서, 상기 키 교환 함수는 타원 곡선 디피 헬만(Diffie Hellman, DH) 함수인, 장치.
- 제1항에 있어서, 상기 시스템의 하나 이상의 기능들에 대한 액세스를 다른 디바이스와 공유하기 위해, 상기 장치는,
상기 다른 디바이스로부터 인증서 서명 요청을 수신하고;
상기 다른 디바이스와 연관된 인가된 엔티티의 루트 인증서를 사용하여 상기 수신된 인증서를 검증하고;
상기 장치의 사용자를 인증하고;
상기 시스템과 상기 페어링 세션 동안 확립된 상기 장치의 상기 개인 키를 사용하여 상기 인증서에 서명하고;
상기 서명된 인증서를 상기 다른 디바이스에 송신하도록 구성되는, 장치. - 제4항에 있어서, 상기 인증서 서명 요청 및 상기 서명된 인증서는 광역 네트워크를 사용하지 않고 직접 무선 접속을 통해 송신되는, 장치.
- 제4항에 있어서, 상기 장치는 상기 시스템에 대한 보안 토큰을 암호화하고 상기 암호화된 보안 토큰을 상기 다른 디바이스에 송신하도록 구성되는, 장치.
- 제4항에 있어서, 상기 장치는 상기 다른 디바이스로부터의 공개 키를 사용하여 보안 토큰을 암호화하고 상기 공개 키와 연관된 메일박스 위치에 상기 보안 토큰을 저장하도록 구성되는, 장치.
- 제4항에 있어서, 사용자에 의한 상기 공유 액세스의 폐기에 응답하여, 상기 장치는 폐기 메시지를 전송하고;
상기 다른 디바이스의 보안 회로로부터의 폐기 수신에 기초하여 상기 공유 액세스의 폐기를 확인하도록 구성되는, 장치. - 제1항에 있어서, 페어링 프로세스 동안, 상기 장치는 디지털 키 데이터 구조에 대한 구성 정보를 내장하는 인증서를 생성하고 상기 장치의 보안 회로의 개인 키를 사용하여 상기 인증서에 서명하여, 상기 구성 정보에 따라 상기 디지털 키 데이터 구조의 생성을 증명하도록 구성되는, 장치.
- 장치로서,
하나 이상의 프로세싱 요소들을 포함하며, 상기 하나 이상의 프로세싱 요소들은,
모바일 디바이스와 페어링 세션 동안 확립된 상기 장치의 개인 키로 거래 정보에 서명함으로써 서명을 생성하고;
상기 서명을 상기 모바일 디바이스에 송신하고;
상기 송신된 서명에 응답하여 상기 모바일 디바이스로부터 암호화된 서명을 수신하고;
제1 공개 키 및 제1 개인 키를 포함하는 제1 단기 키 쌍을 생성하고;
상기 모바일 디바이스에 의해 생성된 제2 공개 키를 결정하고 - 상기 제2 공개 키는 제2 단기 키 쌍 내에 포함됨 -;
입력들로서 상기 제1 개인 키 및 상기 제2 공개 키를 사용하는 키 교환 함수를 사용하여 제1 공유 비밀을 생성하고;
적어도 하기의 입력들, 즉, 상기 제1 공유 비밀, 상기 제1 공개 키, 및 상기 페어링 세션 동안 이전에 확립된 상기 장치의 공개 키를 사용하는 키 도출 함수를 사용하여 도출된 공유 비밀을 생성하고;
상기 도출된 공유 비밀을 사용하여 상기 서명을 복호화하고;
상기 페어링 세션 동안 확립된 상기 모바일 디바이스의 공개 키를 사용하여 상기 서명을 검증하고;
상기 검증에 기초하여 하나 이상의 액션들을 인가하도록 구성되는, 장치. - 제10항에 있어서, 상기 장치는,
비대칭 인증 절차 동안 페어링 세션 동안 확립된 상기 모바일 디바이스의 개인 키를 사용하여 서명된 다른 디바이스로부터의 인증서를 수신하고;
상기 인증서를 검증하는 것에 기초하여 하나 이상의 액션들을 인가하도록 구성되는, 장치. - 제11항에 있어서, 상기 장치는 보안 토큰을 검증하는 것에 기초하여 하나 이상의 액션들을 인가할지 여부를 결정하기 위해 메일박스 내에 저장된 암호화된 보안 토큰에 액세스하도록 구성되는, 장치.
- 동작들을 수행하도록 컴퓨팅 디바이스에 의해 실행가능한 명령어들이 저장된 비일시적 컴퓨터 판독가능 매체로서, 상기 동작들은,
제1 공개 키 및 제1 개인 키를 포함하는 제1 단기 키 쌍을 생성하는 것;
시스템에 의해 생성된 제2 공개 키를 결정하는 것 - 상기 제2 공개 키는 제2 단기 키 쌍 내에 포함됨 -;
입력들로서 상기 제1 개인 키 및 상기 제2 공개 키를 사용하는 키 교환 함수를 사용하여 제1 공유 비밀을 생성하는 것;
적어도 하기의 입력들, 즉, 상기 제1 공유 비밀, 상기 제1 공개 키, 및 장치와 상기 시스템 사이의 페어링 세션 동안 이전에 확립된 상기 시스템의 공개 키를 사용하는 키 도출 함수를 사용하여 도출된 공유 비밀을 생성하는 것;
상기 페어링 세션 동안 확립된 상기 장치의 개인 키로 거래 정보에 서명함으로써 서명을 생성하는 것;
상기 도출된 공유 비밀에 기초하여 상기 장치를 식별하는 상기 서명과 정보를 암호화하는 것;
상기 시스템의 상기 공개 키를 사용하여 상기 시스템으로부터 수신된 서명된 인증서를 검증하는 것 - 상기 인증서는 상기 시스템의 대응하는 개인 키로 서명됨 -; 및
상기 서명된 인증서의 검증에 응답하여, 상기 암호화된 서명과 정보를 상기 시스템에 송신하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체. - 제13항에 있어서, 상기 동작들은,
상기 시스템의 하나 이상의 기능들에 대한 액세스를 다른 디바이스와 공유하는 것을 추가로 포함하고, 상기 공유하는 것은,
상기 다른 디바이스로부터 인증서 서명 요청을 수신하는 것;
상기 다른 디바이스와 연관된 인가된 엔티티의 루트 인증서를 사용하여 상기 수신된 인증서를 검증하는 것;
상기 장치의 사용자를 인증하는 것;
상기 시스템과 상기 페어링 세션 동안 확립된 상기 장치의 상기 개인 키를 사용하여 상기 인증서에 서명하는 것; 및
상기 서명된 인증서를 상기 다른 디바이스에 송신하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체. - 제14항에 있어서, 상기 인증서 서명 요청 및 상기 서명된 인증서는 광역 네트워크를 사용하지 않고 직접 무선 접속을 통해 송신되는, 비일시적 컴퓨터 판독가능 매체.
- 제14항에 있어서, 상기 동작들은,
상기 시스템에 대한 보안 토큰을 암호화하고 상기 보안 토큰을 상기 다른 디바이스에 송신하는 것을 추가로 포함하는, 비일시적 컴퓨터 판독가능 매체. - 제13항에 있어서, 상기 동작들은,
사용자에 의한 공유 액세스의 폐기에 응답하여, 폐기 메시지를 전송하고 폐기 수신을 검증하는 것을 추가로 포함하는, 비일시적 컴퓨터 판독가능 매체. - 제13항에 있어서, 상기 동작들은 하나 이상의 인가된 액션들에 대한 파라미터들을 결정하기 위해 상기 시스템에 액세스가능한 보안 메일박스 내에 하나 이상의 설정들을 저장하는 것을 추가로 포함하는, 비일시적 컴퓨터 판독가능 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020227016314A KR102600545B1 (ko) | 2017-03-01 | 2018-03-01 | 모바일 디바이스를 사용한 시스템 액세스 |
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762465806P | 2017-03-01 | 2017-03-01 | |
US62/465,806 | 2017-03-01 | ||
US201762471926P | 2017-03-15 | 2017-03-15 | |
US62/471,926 | 2017-03-15 | ||
US201762565039P | 2017-09-28 | 2017-09-28 | |
US62/565,039 | 2017-09-28 | ||
PCT/US2018/020494 WO2018160863A1 (en) | 2017-03-01 | 2018-03-01 | System access using a mobile device |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227016314A Division KR102600545B1 (ko) | 2017-03-01 | 2018-03-01 | 모바일 디바이스를 사용한 시스템 액세스 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190104401A true KR20190104401A (ko) | 2019-09-09 |
KR102399582B1 KR102399582B1 (ko) | 2022-05-18 |
Family
ID=61622821
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197023775A KR102399582B1 (ko) | 2017-03-01 | 2018-03-01 | 모바일 디바이스를 사용한 시스템 액세스 |
KR1020227016314A KR102600545B1 (ko) | 2017-03-01 | 2018-03-01 | 모바일 디바이스를 사용한 시스템 액세스 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227016314A KR102600545B1 (ko) | 2017-03-01 | 2018-03-01 | 모바일 디바이스를 사용한 시스템 액세스 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11128478B2 (ko) |
EP (2) | EP3748900A1 (ko) |
JP (1) | JP6861292B2 (ko) |
KR (2) | KR102399582B1 (ko) |
CN (2) | CN114584982A (ko) |
AU (1) | AU2018228890B2 (ko) |
WO (1) | WO2018160863A1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210102057A (ko) * | 2020-02-06 | 2021-08-19 | 구글 엘엘씨 | 콘텐츠 플랫폼에서 사용자 상호작용 확인 |
WO2023085588A1 (ko) * | 2021-11-10 | 2023-05-19 | 삼성전자 주식회사 | 운전자 인증에 기반한 차량 제어 방법 및 전자 장치 |
US11882327B2 (en) | 2020-02-06 | 2024-01-23 | Google Llc | Verifying display of third party content at a client device |
US12002312B2 (en) | 2019-11-07 | 2024-06-04 | Assa Abloy Ab | Upper layer device architecture for ultra-wide band enabled device |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10181055B2 (en) | 2007-09-27 | 2019-01-15 | Clevx, Llc | Data security system with encryption |
US10778417B2 (en) * | 2007-09-27 | 2020-09-15 | Clevx, Llc | Self-encrypting module with embedded wireless user authentication |
US11190936B2 (en) | 2007-09-27 | 2021-11-30 | Clevx, Llc | Wireless authentication system |
US9779596B2 (en) | 2012-10-24 | 2017-10-03 | Apple Inc. | Devices and methods for locating accessories of an electronic device |
US10462600B2 (en) | 2014-10-09 | 2019-10-29 | Tile, Inc. | Secure and private cloud based broadcast identification |
SG10201609247YA (en) * | 2016-11-04 | 2018-06-28 | Huawei Int Pte Ltd | System and method for configuring a wireless device for wireless network access |
EP3552188A1 (en) * | 2016-12-06 | 2019-10-16 | Assa Abloy AB | Providing access to a lock by service consumer device |
FR3060161A1 (fr) * | 2016-12-08 | 2018-06-15 | Orange | Technique de gestion d'un droit d'acces a un service pour un dispositif communicant |
WO2018151953A1 (en) | 2017-02-15 | 2018-08-23 | Mastercard International Incorporated | Offline transaction system and method |
WO2018198813A1 (ja) * | 2017-04-28 | 2018-11-01 | ソニー株式会社 | 通信装置および方法 |
US11042609B2 (en) * | 2017-08-03 | 2021-06-22 | Cable Television Laboratories, Inc. | Systems and methods for secure element registration and provisioning |
JP6717793B2 (ja) * | 2017-10-10 | 2020-07-08 | 株式会社東海理化電機製作所 | カーシェアリングシステム及びカーシェア装置 |
US11935040B1 (en) * | 2017-10-20 | 2024-03-19 | Stripe, Inc. | Offline mode for distribution of encryption keys |
KR102511778B1 (ko) * | 2018-03-05 | 2023-03-21 | 삼성전자주식회사 | 전자 디바이스 및 전자 디바이스의 디지털 키 프로비저닝 수행 방법 |
JP7026777B2 (ja) * | 2018-03-19 | 2022-02-28 | 株式会社Nttドコモ | 通信システム、通信方法 |
US10878429B2 (en) * | 2018-03-28 | 2020-12-29 | Konstantinos Bakalis | Systems and methods for using codes and images within a blockchain |
CN111937348B (zh) * | 2018-04-09 | 2024-02-09 | 三菱电机株式会社 | 认证系统及计算机可读取的记录介质 |
US11777936B2 (en) | 2018-06-11 | 2023-10-03 | Apple Inc. | Friend key sharing |
KR20200034020A (ko) * | 2018-09-12 | 2020-03-31 | 삼성전자주식회사 | 전자 장치 및 그의 제어 방법 |
US11443028B2 (en) * | 2018-09-27 | 2022-09-13 | Apple Inc. | Digital credential revocation |
US11641563B2 (en) | 2018-09-28 | 2023-05-02 | Apple Inc. | System and method for locating wireless accessories |
US10959092B2 (en) | 2018-10-16 | 2021-03-23 | Aeris Communications, Inc. | Method and system for pairing wireless mobile device with IoT device |
KR20200050828A (ko) * | 2018-11-02 | 2020-05-12 | 삼성전자주식회사 | 이모빌라이저 토큰 관리 시스템 |
US10966086B2 (en) * | 2018-11-08 | 2021-03-30 | Palo Alto Research Center Incorporated | System and method for securely enabling a user with a mobile device to access the capabilities of a standalone computing device |
WO2020105892A1 (ko) * | 2018-11-20 | 2020-05-28 | 삼성전자 주식회사 | 디바이스가 디지털 키를 공유하는 방법 |
US10825275B2 (en) | 2018-12-19 | 2020-11-03 | Ranjeev K. Singh | Blockchain-controlled and location-validated locking systems and methods |
EP3674934A1 (en) * | 2018-12-26 | 2020-07-01 | Thales Dis France SA | Biometric acquisition system and method |
KR20200089562A (ko) * | 2019-01-17 | 2020-07-27 | 삼성전자주식회사 | 공유된 키를 등록하기 위한 방법 및 장치 |
KR20200090490A (ko) * | 2019-01-21 | 2020-07-29 | 삼성전자주식회사 | 디지털 키 공유 시스템에서 이모빌라이저 토큰을 업데이트하는 장치 및 방법 |
RU2726884C1 (ru) * | 2019-02-07 | 2020-07-16 | Акционерное общество "Лаборатория Касперского" | Система и способ контроля доступа к кибер-физической системе |
US11084461B2 (en) * | 2019-02-15 | 2021-08-10 | Ford Global Technologies, Llc | Vehicle data protection |
KR20200112559A (ko) * | 2019-03-22 | 2020-10-05 | 삼성전자주식회사 | 통신 방법 및 통신 디바이스 |
US10749680B1 (en) * | 2019-03-25 | 2020-08-18 | Micron Technology, Inc. | Secure communication between a vehicle and a remote device |
EP3716567A1 (de) * | 2019-03-28 | 2020-09-30 | Tecpharma Licensing AG | Sichere kommunikationsverbindung zwischen medizinischen geräten einer datenmanagementvorrichtung |
US11863671B1 (en) | 2019-04-17 | 2024-01-02 | Apple Inc. | Accessory assisted account recovery |
CN113812175A (zh) * | 2019-04-17 | 2021-12-17 | 苹果公司 | 为无线附件共享密钥 |
US11218307B1 (en) * | 2019-04-24 | 2022-01-04 | Wells Fargo Bank, N.A. | Systems and methods for generation of the last obfuscated secret using a seed |
US11405782B2 (en) * | 2019-07-11 | 2022-08-02 | Mastercard International Incorporated | Methods and systems for securing and utilizing a personal data store on a mobile device |
US11234125B2 (en) * | 2019-08-09 | 2022-01-25 | Rosemount Inc. | Two-factor authentication for wireless field devices |
US11201748B2 (en) | 2019-08-20 | 2021-12-14 | Tile, Inc. | Data protection in a tracking device environment |
KR20220051306A (ko) * | 2019-08-23 | 2022-04-26 | 삼성전자주식회사 | 전자 디바이스 및 전자 디바이스가 타겟 디바이스에게 제어 명령을 전달하는 방법 |
EP4032224A4 (en) * | 2019-09-16 | 2023-10-11 | Noodle Technology Inc. | PROVISION AND AUTHENTICATION OF DEVICE CERTIFICATES |
US11153758B2 (en) * | 2019-09-19 | 2021-10-19 | Tile, Inc. | End-to-end encryption with distributed key management in a tracking device environment |
WO2021058522A1 (en) * | 2019-09-25 | 2021-04-01 | Hilti Aktiengesellschaft | Systems and methods for data security within power tools |
SE1951173A1 (en) | 2019-10-17 | 2021-04-18 | Assa Abloy Ab | Authenticating with an authentication server for requesting access to a physical space |
US11368290B2 (en) | 2019-10-20 | 2022-06-21 | Tile, Inc. | Key diversification in a tracking device environment |
CN110769393B (zh) * | 2019-11-07 | 2021-12-24 | 公安部交通管理科学研究所 | 一种车路协同的身份认证系统及方法 |
US11693941B2 (en) * | 2019-12-11 | 2023-07-04 | Prodatakey, Inc. | Multi-factor authentication for access control using a wearable device |
CN115174043B (zh) * | 2019-12-31 | 2024-07-05 | 华为技术有限公司 | 一种分享设备的方法及电子设备 |
US11438316B2 (en) * | 2020-01-16 | 2022-09-06 | 360 It, Uab | Sharing encrypted items with participants verification |
KR102642788B1 (ko) | 2020-01-27 | 2024-03-05 | 애플 인크. | 모바일 키 등록 및 사용 |
EP3866428B1 (en) | 2020-02-13 | 2021-12-29 | Axis AB | A method for re-provisioning a digital security certificate and a system and a non-transitory computer program product thereof |
US11621945B2 (en) * | 2020-02-21 | 2023-04-04 | Sdse Networks, Inc | Method and system for secure communications |
US11153102B2 (en) * | 2020-03-16 | 2021-10-19 | Dell Products L.P. | Systems and methods to identify a certificate authority within an offline manufacturing facility |
CN115485684A (zh) * | 2020-05-07 | 2022-12-16 | 德克斯康公司 | 安全健康管理系统 |
DE102020205993B3 (de) | 2020-05-13 | 2021-09-16 | Volkswagen Aktiengesellschaft | Konzept zum Austausch von kryptographischen Schlüsselinformationen |
DE102020205994A1 (de) | 2020-05-13 | 2021-11-18 | Volkswagen Aktiengesellschaft | Konzept zum Austausch von verschlüsselten Daten |
CN111737678B (zh) * | 2020-06-18 | 2024-05-24 | 海尔优家智能科技(北京)有限公司 | 目标设备的绑定方法及装置、存储介质、电子装置 |
US11457364B2 (en) * | 2020-07-02 | 2022-09-27 | Ford Global Technologies, Llc | Wireless channel PIN key revocation and renewal |
CN111917756B (zh) * | 2020-07-27 | 2022-05-27 | 杭州叙简科技股份有限公司 | 一种执法记录仪基于公钥路由的加密系统及加密方法 |
EP3952201A1 (en) * | 2020-08-07 | 2022-02-09 | ABB Schweiz AG | Trust establishment through certificate management in open platform communications unified architecture |
US11889302B2 (en) | 2020-08-28 | 2024-01-30 | Apple Inc. | Maintenance of wireless devices |
US11414049B2 (en) | 2020-09-08 | 2022-08-16 | Ford Global Technologies, Llc | Key delivery and connectivity management for phone-based keys |
AU2021349869B2 (en) * | 2020-09-28 | 2024-05-23 | Jamf Software, Llc | Passwordless authentication |
US20220109662A1 (en) * | 2020-10-02 | 2022-04-07 | Michael Jenkins | Systems and methods for managing and transferring personalized vehicle settings and digital vehicle keys |
CN112702172B (zh) * | 2020-12-24 | 2023-04-25 | 北方工业大学 | 基于v2p的泊车服务隐私保护系统和方法 |
CA3203527A1 (en) * | 2020-12-31 | 2022-07-07 | Matvey MUKHA | Physical access control system with secure relay |
CN115037492B (zh) * | 2021-03-03 | 2024-09-10 | 美光科技公司 | 用于存储器认证的方法、系统和计算机存储媒体 |
US12073705B2 (en) | 2021-05-07 | 2024-08-27 | Apple Inc. | Separation alerts for notification while traveling |
KR20220161068A (ko) * | 2021-05-28 | 2022-12-06 | 삼성에스디에스 주식회사 | 근접 통신 방법 및 장치 |
KR20220161066A (ko) * | 2021-05-28 | 2022-12-06 | 삼성에스디에스 주식회사 | 근접 통신 방법 및 장치 |
US11783654B2 (en) * | 2021-06-06 | 2023-10-10 | Apple Inc. | Techniques for authenticating building/room access terminals |
DE102021117792A1 (de) | 2021-07-09 | 2023-01-12 | Bks Gmbh | Verfahren, Vorrichtungen und System zum Zugriff auf eine Produktionseinrichtung |
US11863683B2 (en) * | 2021-09-10 | 2024-01-02 | Lenovo (Singapore) Pte. Ltd | Method and device for providing communication path |
US11785449B2 (en) | 2021-09-30 | 2023-10-10 | Visa International Service Association | Secure on-demand ultra-wideband communication channels systems and methods |
CN114007220B (zh) * | 2021-10-20 | 2023-12-08 | 武汉大学 | 短期阶段会话密钥生成方法、认证密钥协商方法及系统 |
US11734972B2 (en) * | 2021-11-24 | 2023-08-22 | Rivian Ip Holdings, Llc | Systems and methods for securely managing vehicle information |
CN114282237B (zh) * | 2021-12-21 | 2023-01-17 | 北京百度网讯科技有限公司 | 一种通信方法、装置、设备及存储介质 |
US20230254696A1 (en) * | 2022-02-09 | 2023-08-10 | Unibeam Ltd. | Sim based application action authentication |
WO2023172800A1 (en) * | 2022-03-07 | 2023-09-14 | Visa International Service Association | Offline access for vehicles |
US20230291548A1 (en) * | 2022-03-08 | 2023-09-14 | Western Digital Technologies, Inc. | Authorization requests from a data storage device to multiple manager devices |
WO2023228220A1 (en) * | 2022-05-23 | 2023-11-30 | Assa Abloy Ab | Authentication with authorization credential exchange |
EP4300885A1 (en) * | 2022-07-01 | 2024-01-03 | Bayerische Motoren Werke Aktiengesellschaft | Secure element, trusted authority, device, key management server, backend, method and computer program |
EP4307740A1 (en) * | 2022-07-15 | 2024-01-17 | Bayerische Motoren Werke Aktiengesellschaft | Apparatus, device, method and computer program |
FR3144463A1 (fr) * | 2022-12-23 | 2024-06-28 | Ledger | Procédé pour la sauvegarde et la restauration d'un secret détenu par un portefeuille de cryptoactifs |
SE2350196A1 (en) * | 2023-02-20 | 2024-08-21 | Abloy Oy | Controlling access to a restricted physical space using an authorisation signal and unlock trigger signal |
US20240297792A1 (en) * | 2023-03-03 | 2024-09-05 | Sierra Wireless, Inc. | System and method for secure approval of operations requested by a device management system |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150372811A1 (en) * | 2014-06-18 | 2015-12-24 | Eric Le Saint | Efficient methods for authenticated communication |
US20160099814A1 (en) * | 2013-06-13 | 2016-04-07 | Intel Corporation | Secure pairing for secure communication across devices |
KR20170015462A (ko) * | 2014-07-03 | 2017-02-08 | 애플 인크. | 보안 통신 채널을 설정하기 위한 방법들 및 장치 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3841987A (en) | 1972-03-10 | 1974-10-15 | Bosch Gmbh Robert | Electro-chemical oxygen sensor,particularly for use in the exhaust system of internal combustion engines |
US5761305A (en) | 1995-04-21 | 1998-06-02 | Certicom Corporation | Key agreement and transport protocol with implicit signatures |
GB2377287B (en) * | 2001-07-06 | 2005-07-13 | Livedevices Ltd | Improvements relating to internet-connected devices |
US20060075222A1 (en) * | 2004-10-06 | 2006-04-06 | Seamus Moloney | System for personal group management based on subscriber certificates |
AU2004324546B2 (en) * | 2004-10-29 | 2009-12-24 | Thomson Licensing | Secure authenticated channel |
US7496347B2 (en) * | 2004-11-12 | 2009-02-24 | Velocita Wireless Llc | Method and apparatus for providing secure wireless communication |
EP1851902A1 (en) * | 2005-02-25 | 2007-11-07 | QUALCOMM Incorporated | Small public-key based digital signatures for authentication |
CN101005359B (zh) * | 2006-01-18 | 2010-12-08 | 华为技术有限公司 | 一种实现终端设备间安全通信的方法及装置 |
WO2009078139A1 (ja) * | 2007-12-14 | 2009-06-25 | Nec Corporation | 署名生成装置および署名検証装置 |
US8452017B2 (en) | 2007-12-21 | 2013-05-28 | Research In Motion Limited | Methods and systems for secure channel initialization transaction security based on a low entropy shared secret |
CN101719250B (zh) * | 2009-12-10 | 2013-07-24 | 中国联合网络通信集团有限公司 | 支付认证方法、平台和系统 |
WO2011109301A1 (en) | 2010-03-01 | 2011-09-09 | Relayrides, Inc. | Car sharing |
FR2965434B1 (fr) | 2010-09-28 | 2015-12-11 | Valeo Securite Habitacle | Procede d'appairage d'un telephone mobile avec un vehicule automobile et ensemble de verrouillage/deverrouillage |
US9003490B2 (en) | 2011-03-16 | 2015-04-07 | Red Hat, Inc. | Using entitlement certificates to manage product assets |
US9189900B1 (en) * | 2011-04-22 | 2015-11-17 | Angel A. Penilla | Methods and systems for assigning e-keys to users to access and drive vehicles |
US9219604B2 (en) * | 2011-05-09 | 2015-12-22 | Cleversafe, Inc. | Generating an encrypted message for storage |
JP5512601B2 (ja) * | 2011-05-27 | 2014-06-04 | 日本電信電話株式会社 | 情報共有システム、方法、装置及びプログラム |
US9166958B2 (en) | 2012-07-17 | 2015-10-20 | Texas Instruments Incorporated | ID-based control unit-key fob pairing |
CN102802036B (zh) * | 2012-07-26 | 2015-04-29 | 深圳创维-Rgb电子有限公司 | 一种数字电视认证的系统及方法 |
US20140040621A1 (en) * | 2012-08-03 | 2014-02-06 | Infineon Technologies Ag | Mobile Electronic Device |
US8831224B2 (en) * | 2012-09-14 | 2014-09-09 | GM Global Technology Operations LLC | Method and apparatus for secure pairing of mobile devices with vehicles using telematics system |
US9218700B2 (en) | 2012-12-14 | 2015-12-22 | GM Global Technology Operations LLC | Method and system for secure and authorized communication between a vehicle and wireless communication devices or key fobs |
US8841987B1 (en) | 2013-11-22 | 2014-09-23 | Local Motion, Inc. | Upgrade kit for an ignition key and methods |
KR101540023B1 (ko) * | 2013-11-12 | 2015-07-29 | 주식회사 시큐아이 | 보안 장치 및 그것의 인증된 사용자 기기 관리 방법 |
JP6187251B2 (ja) * | 2013-12-27 | 2017-08-30 | 富士通株式会社 | データ通信方法、およびデータ通信装置 |
AU2015214079C1 (en) | 2014-02-05 | 2017-01-19 | Apple Inc. | Uniform communication protocols for communication between controllers and accessories |
US9680646B2 (en) | 2015-02-05 | 2017-06-13 | Apple Inc. | Relay service for communication between controllers and accessories |
US10484172B2 (en) | 2015-06-05 | 2019-11-19 | Apple Inc. | Secure circuit for encryption key generation |
US9990783B2 (en) | 2016-02-16 | 2018-06-05 | GM Global Technology Operations LLC | Regulating vehicle access using cryptographic methods |
AU2017250352B2 (en) | 2016-04-14 | 2020-04-16 | Apple Inc. | Methods and architectures for secure ranging |
CN106127079B (zh) * | 2016-07-15 | 2019-04-12 | 中电长城网际系统应用有限公司 | 一种数据共享方法及装置 |
-
2018
- 2018-03-01 AU AU2018228890A patent/AU2018228890B2/en active Active
- 2018-03-01 EP EP20188408.7A patent/EP3748900A1/en active Pending
- 2018-03-01 EP EP18710738.8A patent/EP3590225B1/en active Active
- 2018-03-01 CN CN202210160382.9A patent/CN114584982A/zh active Pending
- 2018-03-01 WO PCT/US2018/020494 patent/WO2018160863A1/en unknown
- 2018-03-01 JP JP2019547391A patent/JP6861292B2/ja active Active
- 2018-03-01 KR KR1020197023775A patent/KR102399582B1/ko active IP Right Grant
- 2018-03-01 US US16/490,418 patent/US11128478B2/en active Active
- 2018-03-01 KR KR1020227016314A patent/KR102600545B1/ko active IP Right Grant
- 2018-03-01 CN CN201880011318.6A patent/CN110291754B/zh active Active
-
2021
- 2021-09-20 US US17/479,571 patent/US11888594B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160099814A1 (en) * | 2013-06-13 | 2016-04-07 | Intel Corporation | Secure pairing for secure communication across devices |
US20150372811A1 (en) * | 2014-06-18 | 2015-12-24 | Eric Le Saint | Efficient methods for authenticated communication |
KR20170015462A (ko) * | 2014-07-03 | 2017-02-08 | 애플 인크. | 보안 통신 채널을 설정하기 위한 방법들 및 장치 |
Non-Patent Citations (1)
Title |
---|
Behrouz A. Forouzan, Cryptography & Network Security, The McGraw-Hill companies(2007.) 1부.* * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12002312B2 (en) | 2019-11-07 | 2024-06-04 | Assa Abloy Ab | Upper layer device architecture for ultra-wide band enabled device |
KR20210102057A (ko) * | 2020-02-06 | 2021-08-19 | 구글 엘엘씨 | 콘텐츠 플랫폼에서 사용자 상호작용 확인 |
US11882327B2 (en) | 2020-02-06 | 2024-01-23 | Google Llc | Verifying display of third party content at a client device |
US12028460B2 (en) | 2020-02-06 | 2024-07-02 | Google Llc | Verifying user interactions on a content platform |
WO2023085588A1 (ko) * | 2021-11-10 | 2023-05-19 | 삼성전자 주식회사 | 운전자 인증에 기반한 차량 제어 방법 및 전자 장치 |
Also Published As
Publication number | Publication date |
---|---|
JP6861292B2 (ja) | 2021-04-21 |
US20200052905A1 (en) | 2020-02-13 |
JP2020511069A (ja) | 2020-04-09 |
KR20220069117A (ko) | 2022-05-26 |
EP3590225B1 (en) | 2020-08-12 |
CN110291754B (zh) | 2022-02-15 |
KR102600545B1 (ko) | 2023-11-08 |
US11888594B2 (en) | 2024-01-30 |
EP3590225A1 (en) | 2020-01-08 |
CN110291754A (zh) | 2019-09-27 |
US11128478B2 (en) | 2021-09-21 |
AU2018228890A1 (en) | 2019-09-19 |
WO2018160863A1 (en) | 2018-09-07 |
EP3748900A1 (en) | 2020-12-09 |
KR102399582B1 (ko) | 2022-05-18 |
CN114584982A (zh) | 2022-06-03 |
AU2018228890B2 (en) | 2020-08-06 |
US20220078029A1 (en) | 2022-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102399582B1 (ko) | 모바일 디바이스를 사용한 시스템 액세스 | |
US11777936B2 (en) | Friend key sharing | |
US20240039714A1 (en) | Secure Circuit For Encryption Key Generation | |
US9875368B1 (en) | Remote authorization of usage of protected data in trusted execution environments | |
CN106537403B (zh) | 用于从多个装置访问数据的系统 | |
USH2270H1 (en) | Open protocol for authentication and key establishment with privacy | |
US11522695B2 (en) | Sharing system access using a mobile device | |
KR20210133985A (ko) | 새로운 인증기를 보증하기 위한 시스템 및 방법 | |
WO2016105591A1 (en) | Systems and methods for authentication using multiple devices | |
TW201428535A (zh) | 用於管理存取控制之基於原則技術 | |
US8397281B2 (en) | Service assisted secret provisioning | |
WO2021190197A1 (zh) | 生物支付设备的认证方法、装置、计算机设备和存储介质 | |
WO2018011267A1 (en) | Method for providing secure digital signatures | |
US20190044721A1 (en) | Device authorization using symmetric key systems and methods |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) |