KR102168984B1 - 보안 디바이스 페어링 - Google Patents

보안 디바이스 페어링 Download PDF

Info

Publication number
KR102168984B1
KR102168984B1 KR1020187020554A KR20187020554A KR102168984B1 KR 102168984 B1 KR102168984 B1 KR 102168984B1 KR 1020187020554 A KR1020187020554 A KR 1020187020554A KR 20187020554 A KR20187020554 A KR 20187020554A KR 102168984 B1 KR102168984 B1 KR 102168984B1
Authority
KR
South Korea
Prior art keywords
firmware
pairing operation
hash value
pairing
computer system
Prior art date
Application number
KR1020187020554A
Other languages
English (en)
Other versions
KR20180096699A (ko
Inventor
트리스탄 에프. 스카프
콘래드 소어왈드
크레이그 에이. 마르치니악
제롤드 브이. 호크
재채리 에프. 파필리온
제프리 리
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20180096699A publication Critical patent/KR20180096699A/ko
Application granted granted Critical
Publication of KR102168984B1 publication Critical patent/KR102168984B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key 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/0841Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/50Secure pairing of devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Power Engineering (AREA)
  • General Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

디바이스들의 보안 통신에 관련된 기술들이 개시된다. 일 실시예에서, 제1 디바이스는 제1 디바이스와 제2 디바이스 간의 보안 통신 링크를 설정하기 위하여 제2 디바이스와 페어링 동작을 수행하도록 구성된다. 페어링 동작은 제2 디바이스로부터, 보안 통신 링크를 통한 통신 동안 제1 디바이스에 의해 실행될 펌웨어를 수신하는 단계, 및 펌웨어의 성공적인 검증에 응답하여, 통신 동안 제1 및 제2 디바이스들에 의해 사용될 공유된 암호키를 설정하는 단계를 포함한다. 일부 실시예들에서, 페어링 동작은 펌웨어의 해시 값 및 제2 디바이스의 공개키로부터 생성된 디지털 서명을 수신하는 단계, 및 디지털 서명으로부터 해시 값을 추출하고, 추출된 해시 값을 수신된 펌웨어의 해시 값과 비교함으로써 펌웨어를 검증하는 단계를 포함한다.

Description

보안 디바이스 페어링
본 개시내용은 일반적으로 컴퓨터 시스템에 관한 것으로, 더 상세하게는, 컴퓨팅 디바이스들 간의 보안 통신에 관한 것이다.
디바이스들 간의 단거리 통신을 가능하게 하는 다양한 프로토콜들이 개발되었다. 일부 경우들에서, 프로토콜들, 예컨대, 블루투스™는 사용자가 2개의 디바이스를 페어링하도록 요구할 수 있는데, 그 이후에 그것들은 서로 통신할 수 있다. 이것은, 사용자가 두 디바이스를 인에이블하여 서로 발견하도록 하고, 한 디바이스 상에 디스플레이된 코드를 다른 하나의 디바이스에 입력하는 것을 포함할 수 있다. 디스플레이된 코드가 입력된 코드와 매칭되는 경우, 디바이스들은 페어링 프로세스를 완료하고 서로 통신을 시작할 수 있다. 이러한 통신 패러다임 하에서, 사용자에 의해 입력된 코드는 하나의 디바이스를 다른 디바이스와 인증하는 데 채용된다.
본 개시내용은 디바이스들 간의 보안 통신 링크를 구축하기 위하여 2개의 디바이스 간에 페어링 동작이 수행되는 실시예들을 기술한다. 다양한 실시예들에서, 페어링 동작은 디바이스들 중 제1 디바이스가, 보안 링크를 통해 통신할 때 실행할 펌웨어를 제2 디바이스에 제공하는 것을 포함한다. 그와 같은 실시예에서, 제2 디바이스는 제1 디바이스의 통신에 사용되는 공유키를 구축하기 전에 펌웨어를 검증할 수 있다. 일부 실시예들에서, 페어링 동작은 또한 신뢰하는 개체가 서명된 데이터를 제1 디바이스에 제공하는 것을 포함하는데, 이는 서명된 데이터를 제2 디바이스에 전달한다. 그와 같은 실시예에서, 서명된 데이터는 펌웨어의 해시 값을 제1 디바이스의 식별자(예컨대, 제1 디바이스의 공개키)에 암호화하여 결합한다. 일부 실시예들에서, 서명된 데이터를 검증하면, 제2 디바이스는 서명된 데이터 내의 식별자를 이용하여 공유키를 유도해 낸다.
도 1은 2개의 컴퓨팅 디바이스를 페어링하기 위한 시스템의 일 실시예를 도시하는 블록도이다.
도 2는 컴퓨팅 디바이스와 페어링될 주변 디바이스의 일 실시예를 도시하는 블록도이다.
도 3은 컴퓨팅 디바이스의 일 실시예를 도시하는 블록도이다.
도 4a 및 도 4b는 페어링 동작들의 실시예들을 도시하는 통신 다이어그램들이다.
도 5는 페어링 동작과 연관된 방법의 일 실시예를 도시하는 흐름도이다.
본 개시내용은 "일 실시예" 또는 "실시예"에 대한 참조들을 포함한다. "일 실시예에서" 또는 "실시예에서"라는 문구가 나타난다고 해서, 반드시 동일한 실시예를 지칭하는 것은 아니다. 특정 특징들, 구조들 또는 특성들이 본 개시내용과 일관성을 유지하는 임의의 적합한 방식으로 조합될 수 있다.
본 개시내용 내에서, 상이한 개체들("유닛들", "회로들", 다른 컴포넌트들 등으로 다양하게 지칭될 수 있음)은 하나 이상의 태스크 또는 동작을 수행하도록 "구성된" 것으로 기술되거나 또는 청구될 수 있다. 이러한 설명은―[하나 이상의 태스크를 수행]하도록 구성된 [개체]―본 명세서에서 구조(즉, 전자 회로와 같은 물리적인 것)를 지칭하는 데 사용된다. 더 상세하게는, 이러한 설명은 이 구조가 동작 시 하나 이상의 태스크를 수행하도록 구성됨을 나타내는 데 사용된다. 구조가 현재 동작되고 있지 않더라도, 구조는 일부 태스크를 수행하도록 "구성된다"고 할 수 있다. 예를 들어, "암호화 동작을 수행하도록 구성된 보안 회로"는 문제의 집적 회로가 현재 사용되고 있지 않더라도(예컨대, 전원 공급이 연결되어 있지 않음), 동작 시 이 기능을 수행하는 회로부를 갖는 집적 회로를 포괄하도록 의도된다. 따라서, 일부 태스크를 수행하도록 "구성된" 것으로 기술된 또는 인용된 개체는 디바이스, 회로, 태스크 등을 구현하도록 실행가능한 프로그램 명령어들을 저장하고 있는 메모리와 같은 물리적인 것을 지칭한다. 이 구절은 본 명세서에서 무형의 것을 지칭하는 데 사용되지 않는다. 따라서, 구성하도록 "구성된" 것은 본 명세서에서 애플리케이션 프로그래밍 인터페이스(API)와 같은 소프트웨어 개체를 지칭하는 데 사용되지 않는다.
용어 "구성된"은 "구성가능한"을 의미하도록 의도되지 않는다. 예를 들어, 프로그램되지 않은 FPGA는, 그것이 일부 구체적인 기능을 수행하도록 "구성가능"할 수 있고, 프로그래밍 후 그 기능을 수행하도록 "구성"될 수 있지만, 그것을 수행하도록 "구성된" 것으로 고려되지 않을 것이다.
구조가 하나 이상의 태스크를 수행하도록 "구성"되었다고 첨부된 청구항들에 인용하는 것은 명백히 그 청구항 구성요소에 대하여 35 U.S.C. §(112)(f)를 적용하지 않도록 의도된다. 따라서, 출원된 본 출원서의 어떠한 청구항들도 수단+기능식 구성요소들을 갖는 것으로 해석되도록 의도되지 않는다. 출원인이 심사 시 Section(112)(f)의 적용을 바란다면, [기능을 수행]"하기 위한 수단" 구조를 이용하여 청구항 구성요소들을 열거할 것이다.
본 명세서에 사용된 바와 같이, 구체적으로 진술되지 않는 한, 용어 "제1", "제2" 등은 선행하고 있는 명사의 라벨로 사용될 뿐, 임의의 유형의 순번(예를 들어, 공간적, 시간적, 논리적 등)을 암시하는 것은 아니다. 예를 들어, 8개의 프로세싱 코어를 갖는 프로세서에서, 용어 "제1" 및 "제2" 프로세싱 코어는 8개의 프로세싱 코어 중 2개를 임의로 지칭하는 데 사용될 수 있다. 다시 말해서, 예를 들어, "제1" 및 "제2" 프로세싱 코어는 논리적 프로세싱 코어 0 및 1에 제한되지 않는다.
본 명세서에서 사용되는 바와 같이, 용어 "기초하여"는 결정에 영향을 주는 하나 이상의 인자들을 기술하기 위해 사용된다. 이러한 용어는 추가적인 요인들이 결정에 영향을 줄 수 있는 가능성을 배제하지 않는다. 즉, 결정은 단지 특정 요인들에 기초하거나 또는 그 특정 요인들뿐만 아니라 다른, 불특정 요인들에 기초할 수 있다. "B에 기초하여 A를 결정한다"라는 문구를 고려해보자. 이 구절은 B가 A를 결정하는 데 사용되는 요인이거나 또는 A의 결정에 영향을 준다고 명시한다. 이 구절은 A의 결정이 또한 일부 다른 요인, 예컨대 C에 기초할 수 있다는 것을 배재하지 않는다. 이 구절은 또한 A가 단지 B에 기초하여 결정되는 실시예를 포괄하도록 의도되지 않는다. 본 명세서에 사용된 바와 같이, 구절 "기초하여"는 따라서 구절 "적어도 부분적으로 기초하여"와 동의어이다.
본 개시내용은 디바이스들 간의 통신을 인에이블하기 위하여 디바이스들이 서로 페어링되는 실시예들을 기재한다. 본 명세서에 사용된 바와 같이, 용어 "페어링"은 종래 기술에서 그것이 이해되는 의미에 따라 해석될 것이고, 2개의 디바이스 간의 통신 링크를 구축하는 프로세스를 포함한다. 아래에 기재되는 바와 같이, 다양한 실시예들에서, 페어링 동작은 하나 또는 두 디바이스의 신분을 검증하는 신뢰하는, 별개의 컴퓨팅 시스템에 의존하여 2개의 디바이스 간에 수행될 수 있다. 신뢰하는 컴퓨팅 시스템이 성공적으로 신분을 검증할 수 있는 경우, 시스템은 이것을 두 디바이스에 알릴 수 있고, 이는 구축된 통신 링크를 통해 보안 통신을 위한 공유키의 교환을 포함하는 페어링 동작을 완료하게 될 수 있다. 한편, 신뢰하는 컴퓨팅 시스템이 성공적으로 신분을 검증할 수 없는 경우, 페어링 동작은 통신 링크가 구축되기 전에 중단될 수 있다. 일부 경우들에서, 신뢰하는 컴퓨팅 시스템에 의존하여 디바이스들을 인증하는 것은 사용자가 디바이스들의 페어링을 시도하는 것을 신뢰하는 것보다―특히 사용자가 나쁜 의도를 갖는 경우 더 안전할 수 있다.
아래에 논의되는 다양한 실시예들에서, 페어링 동작은 또한 하나의 디바이스에서 다른 디바이스로 펌웨어의 통신을 포함할 수 있는데, 펌웨어는 페어링 동작에서 구축된 보안 링크를 통한 통신 동안 수신 디바이스에 의해 실행될 것이다. 그와 같은 실시예에서, 신뢰하는 컴퓨팅 시스템은 펌웨어의 유효성을 증명하는 정보(예컨대, 서명된 데이터)를 제공할 수 있다. 일부 실시예들에서, 수신 디바이스는 페어링 동작에서 공유키를 교환하고 펌웨어를 실행하기 전에 이 제공된 정보를 기초로 수신된 펌웨어를 검증할 수 있다. 일부 경우들에서, 이러한 방식으로 펌웨어를 검증하는 것은 펌웨어를 수신하는 디바이스가 결함이 있는 펌웨어로 인해 위험해질 수 있는 위험을 감소시킴으로써 추가적인 보안을 제공할 수 있다.
이제 도 1을 참조하면, 디바이스들을 페어링하기 위한 시스템(10)의 블록도가 도시된다. 도시된 실시예에서, 시스템(10)은 주변 디바이스(110), 컴퓨팅 디바이스(120), 및 신뢰하는 서버(130)를 포함한다. 도시된 바와 같이, 주변 디바이스(110)는 제어기(115)를 포함할 수 있고, 컴퓨팅 디바이스(120)는 보안 엔클레이브 프로세서(SEP)(125)를 포함할 수 있다. 일부 실시예들에서, 시스템(10)은 도시된 것과 상이하게 구현될 수 있다.
주변 디바이스(110)는, 일 실시예에서, 컴퓨팅 디바이스(120)를 위한 입력 및/또는 출력 동작들을 수행하도록 구성된 디바이스이다. 예를 들어, 일 실시예에서, 디바이스(110)는 사용자로부터의 키 누르기를 수신하고, 그 정보를 컴퓨팅 디바이스(120)에 전달하도록 구성된 키보드를 포함한다. 다른 실시예에서, 디바이스(110)는 컴퓨팅 디바이스(120)에 의해 생성된 프레임들을 디스플레이할 뿐만 아니라, 사용자 터치 입력을 수신하도록 구성된 터치 스크린을 포함한다. 일부 실시예들에서, 디바이스(110)는 또한 도 2에 대하여 아래 논의된 바와 같은 사용자 생체 측정 데이터를 수집하도록 구성된 바이오센서를 포함할 수 있다. 다양한 실시예들에서, 디바이스(110)는 디바이스(120)로부터 디커플링되도록 구성된다. 즉, 디바이스(110)는 초기에 하나의 디바이스(120)와 페어링하고, 이어서 다른 디바이스(120)와 후속적으로 페어링할 수 있다. 일부 실시예들에서, 디바이스(110)는 또한 다수의 디바이스들과 병렬로 페어링되도록(즉, 구축된 링크들을 통해 통신하도록) 구성될 수 있다. 일부 실시예들에서, 디바이스(110)는 USB(universal serial bus)와 같은 유선 상호연결을 통해 디바이스(120)에 결합되도록 구성된다. 다른 실시예들에서, 디바이스(110)는 블루투스™를 지원하는 것과 같은 무선 상호연결을 통해 디바이스(120)에 결합되도록 구성된다.
컴퓨팅 디바이스(120)는, 일 실시예에서, 디바이스(110)의 입/출력(I/O) 기능을 사용하도록 구성된 컴퓨팅 디바이스이다. 따라서, 디바이스(110)가 키보드를 포함하는 일 실시예에서, 디바이스(120)는 키보드 상의 키들이 눌리는 것에 응답하여 다양한 동작들을 수행하도록 구성될 수 있다. 디바이스(110)가 바이오센서를 포함하는 일부 실시예들에서, 디바이스(120)는 수신된 생체 측정 데이터를 이전에 사용자로부터 저장된 생체 측정 데이터와 비교함으로써 사용자를 인증하도록 구성될 수 있다. 디바이스(120)는 임의의 적합한 컴퓨팅 디바이스, 예컨대, 데스크톱 컴퓨터, 랩톱 컴퓨터, 모바일 디바이스(예컨대, 이동 전화기, 태블릿 등), 서버 컴퓨터 등일 수 있다.
다양한 실시예들에서, 디바이스들(110, 120)은 그것들 사이의 보안 접속(122)을 구축하는 페어링 동작을 수행하도록 구성된다. 따라서, 그러한 실시예에서, 페어링 동작은 사용될 암호화 알고리즘의 협상(예컨대, 128 비트, 192 비트, 또는 256 비트 AES(advance encryption standard) 이용 여부) 및 사용될 해당 암호키들의 구축을 포함할 수 있다. 다양한 실시예들에서, 페어링 동작은, 접속(122)을 통해 전달되는 정보를 암호화 및 복호화하는 데 사용되는 공유 비밀(예컨대, 암호키)을 구축하기 위하여, DH(Diffie-Hellman) 키 교환과 같은 키 교환의 수행을 포함한다. 일부 실시예들에서, 디바이스들(110, 120)은 ECDH(elliptic curve DH) 교환을 수행하도록 구성되는데, 이때 디바이스들(110, 120)에 의해 사용되는 공개키 쌍들에 기초하여 공유키가 구축된다. 즉, 디바이스(110)는 자체에 저장된 개인키 및 디바이스(120)로부터 수신된 공개키에 기초하여 공유키를 결정할 수 있다. 유사하게, 디바이스(120)는 디바이스(110)에 송신된 공개키에 대응하는 자체에 저장된 개인키 및 디바이스(120)의 개인키에 대응하는 디바이스(120)로부터 수신된 공개키에 기초하여 공유키를 결정할 수 있다. 일부 실시예들에서, 디바이스(120)에 의해 수행되는 암호화 동작들(접속(122)을 통해 송신된 정보의 암호화 및 복호화 포함)은 도 1에 도시된 SEP(115)에 의해 수행된다. 도 3에 대하여 아래 논의된 바와 같이, 일부 실시예들에서, SEP(125)는 디바이스(120)에 의해 사용되는 암호키들을 안전하게 저장하도록 구성된 전용 보안 회로이고, 이 키들을 이용하여 암호화 동작들을 수행하기 위한 회로부를 포함한다. (본 명세서에 사용된 바와 같이, 용어 "보안 회로"는 격리된, 내부 리소스가 외부 회로에 의해 직접 액세스되는 것을 차단하는 회로를 지칭함.) 아래 논의되는 바와 같이, 이 페어링 동작은 신뢰하는 서버(130)에 의존하여 접속(122)이 구축되도록 허용하기 전에 디바이스들(110, 120)을 인증할 수 있다.
일부 실시예들에서, 주변 디바이스(110)는 또한 디바이스들(110, 120)에 의해 수행되는 페어링 동작의 일부로서 펌웨어(FW)(124)를 수신하도록 구성된다. 일부 실시예들에서, 펌웨어(124)는 신뢰하는 서버(130)로부터 디바이스(120)를 통해 수신되거나 또는 디바이스(120)로부터 직접 수신된다. 다양한 실시예들에서, 이 펌웨어(124)는 제어기(115)에 의해 실행되어 페어링 동작의 일부분 동안 및/또는 접속(122)을 통한 통신 동안 디바이스(110)에 대하여 기재된 다양한 기능을 수행할 수 있다. 따라서, 일부 실시예들에서, 펌웨어(124)는 접속(122)을 통해 전송된 정보의 암호화 및 복호화를 구현하도록 실행가능할 수 있다. 일부 실시예들에서, 페어링 동작 동안 펌웨어(124)를 수신함으로써, 디바이스(110)는 컴퓨팅 디바이스들(120)의 선택에 따라 상이한 버전들의 펌웨어(124)를 실행할 수 있다. 즉, 디바이스(110)는 제1 컴퓨팅 디바이스(120)와 페어링한 후 제1 버전의 펌웨어(124)를 실행하고, 이어서 나중에 제2 컴퓨팅 디바이스(120)와 페어링한 후 상이한, 제2 버전의 펌웨어(124)를 실행할 수 있다. 일부 실시예들에서, 디바이스(110)는 디바이스(120)와 임의의 키 교환을 수행하고 펌웨어를 실행하기 전에 임의의 수신된 펌웨어(124)의 무결성을 검증하도록 구성된다. 다음에 논의되는 바와 같이, 이 검증은 신뢰하는 서버(130)에 의해 제공되는 정보에 기초할 수 있다.
신뢰하는 서버(130)는, 일 실시예에서, 디바이스들(110, 120)에 의해 신뢰받으며, 디바이스들(110, 120)의 신분을 검증하도록 구성된 컴퓨터 시스템이다. 도시된 실시예에서, 서버(130)는 검증 요청(132)을 수신하고, 이러한 검증들의 결과를 나타내는 검증 정보(134)를 제공하도록 구성된다. 단일 서버로 도시되지만, 일부 실시예들에서, 서버(130)는 서버(130)에 대하여 본 명세서에서 기재된 기능을 구현하도록 구성된 컴퓨터 클러스터(즉, 클라우드)를 구현하는 다수의 서버들 중 하나일 수 있다. 다양한 실시예들에서, 서버(130)는 서로 페어링하도록 허용된 인증된 디바이스들의 리스트를 보유한다. 그와 같은 실시예에서, 이 리스트는 주어진 디바이스(110 또는 120)를 고유하게 식별할 수 있는 인증 정보를 포함할 수 있다. 일부 실시예들에서, 이 인증 정보는 디바이스의 일련 번호(또는 디바이스를 식별하는 일부 다른 값)를 포함할 수 있는데, 이는 디바이스의 제조 시 디바이스에 저장될 수 있다. 일부 실시예들에서, 이 인증 정보는 또한 각각의 디바이스(110, 120)에 대한 공개키 증명서를 포함하는데, 각각의 증명서는 그 디바이스에 의해 사용되는 공개키를 포함한다. 그와 같은 실시예에서, 해당 개인키는 제조 시 디바이스에 저장될 수 있고, 서버(130)에 저장된 공개키를 이용하여 검증가능한 디지털 서명을 생성함으로써 디바이스를 인증하는 데 사용가능하다. 다양한 실시예들에서, 서버(130)는 또한 이 리스트에서 디바이스들(110, 120)을 제거함으로써(또는 일부 실시예들에서 그것들을 블랙리스트에 추가함으로써) 보증된 대로 디바이스들(110, 120)을 무효화하도록 구성된다.
다양한 실시예들에서, 신뢰하는 서버(130)는 또한 디바이스(110)에 의해 펌웨어(124)를 검증하는 데 사용가능한 검증 정보(134) 내의 정보를 포함하도록 구성된다. 일부 실시예들에서, 서버(130)는 펌웨어(124)의 허용가능한 버전들의 리스트를 보유할 수 있다. 디바이스(110)에 의해 사용될 펌웨어(124)의 버전이 실행에 허용가능한 경우, 일부 실시예들에서, 서버(130)는 검증 정보(134)에 펌웨어(124)의 해시 값을 포함할 수 있는데, 해시 값은 SHA(secure hash algorithm)에 따른 해시 함수와 같은 해시 함수를 펌웨어(124)에 적용함으로써 생성된다. 이 해시 값을 수신하게 되면, 디바이스(110)는 이 해시 값을, 수신된 펌웨어(124)를 검증하기 위하여 수신된 펌웨어(124)로부터 생성된 것과 비교할 수 있다. 일부 실시예들에서, 정보(134)는 또한 디바이스(110)에 의해 실행되도록 허용가능한 펌웨어(124)의 가장 낮은 버전을 식별하는 값(도 2를 참조하여 아래 논의되는 바와 같이 "에포크"라고 불림)을 포함할 수 있다. 따라서, 펌웨어(124)를 검증하면서, 디바이스(110)는 또한 수신된 펌웨어(124)의 버전이 정보(134)에 명시된 에포크에 따르는지(예컨대, 에포크보다 크거나 같은지) 검증할 수 있다. 일부 경우들에서, 특정 버전의 펌웨어에 문제가 있다고 결정되는 경우, 서버(130)는 에포크를 업데이트하여 펌웨어(124)의 더 새로운 버전을 식별하고, 그에 따라, 임의의 구형 문제 버전은 실행되지 않도록 무효화할 수 있다.
다양한 실시예들에서, 신뢰하는 서버(130)는 디바이스들(110, 120) 중 하나 또는 둘 모두의 신분을 디바이스(110)에 의해 실행될 특정 펌웨어(124)에 암호화하여 결합하는 검증 정보(134)를 생성하도록 구성된다. 도 4a에 대하여 아래 논의된 바와 같이, 다양한 실시예들에서, 디바이스들(110, 120)은, 요청(132) 시, 컴퓨팅 디바이스(120)가 주변 디바이스(110)로부터 인증 정보를 수집하고, 디바이스(120)에 대한 인증 정보와 함께 그 정보를 서버(130)에 전달하는 것으로 시작하는 초기 페어링 동작을 수행할 수 있다. 요청(132)은 또한 디바이스(110)에 제공될 펌웨어(124)의 해시 값을 포함할 수 있다. 이 인증 정보 및 해시 값의 성공적인 검증에 응답하여, 서버(130)는 수신된 인증 정보 및 수신된 해시 값 중 전체 또는 일부분으로부터 서명된 데이터(즉, 하나 이상의 디지털 서명)를 생성함으로써 검증 정보(134)를 생산할 수 있다. 디바이스들(110 및/또는 120)은 이어서 서버의 공개키 증명서에서 식별된 공개키를 이용하여 서명된 데이터를 검증할 수 있다. 이 검증은 또한 서명된 해시 값을 추출하고, 그것을 이용하여 펌웨어(124)를 검증하는 것을 포함할 수 있다. 서명된 데이터의 검증이 실패하는 경우(또는 서버(130)가 성공적으로 인증 정보 또는 해시 값을 검증할 수 없는 경우), 디바이스들(110, 120)은 페어링 동작을 중단하도록 구성될 수 있다. 일부 실시예들에서, 페어링 동작의 중단은 서명된 인증 정보가 디바이스들(110, 120) 간에 공유키를 구축하는 데 사용될 수 있는 임의의 키 교환의 수행 전에 일어날 수 있고, 이는 도 4a를 참조하여 아래 논의되는 바와 같다. 검증이 성공적인 경우, 디바이스(110)는 수신된 펌웨어(124)의 실행을 시작할 수 있고, 페어링 동작은 완료될 수 있다.
성공적인 페어링 동작을 완료하게 되면, 다양한 실시예들에서, 주변 디바이스(110)는 신속한 후속 페어링 동작들에 이용가능한 토큰을 생성하도록 구성된다. 도 2 및 도 4b에 대하여 아래 논의된 바와 같이, 다양한 실시예들에서, 디바이스(110)는 키 입력된 해시 함수를 이용하여 토큰을 생성하도록 구성되고, 이는 디바이스(120)에 제공된다. 디바이스(120)가 나중에 디바이스(110)와 페어링 동작의 수행을 시도할 때, 디바이스(120)는 이전에 생성된 토큰을 제공할 수 있다(서버(130)로부터 검증 정보(134)를 획득하는 것과 반대임). 디바이스(110)는 이어서 제공된 토큰을 검증하고, 디바이스(120)와의 페어링 동작을 완료하게 될 수 있다. 그러나, 디바이스(110)가 토큰을 검증할 수 없는 경우, 디바이스(110)는 디바이스(120)로 하여금 페어링이 성공적으로 완료될 수 있기 전에 초기 페어링 동작의 수행으로 후퇴하도록 지시할 수 있다. 일부 실시예들에서, 토큰의 사용은 디바이스(110)가 이전 페어링에 관한 상태를 유지하지 않도록 해줄 수 있고, 이로써 다수의 디바이스들과 페어링되거나 비휘발성 메모리가 제한적일 때 현저하게 메모리를 절약할 수 있다. 즉, 디바이스(120)와의 각각의 페어링에 대한 기록을 저장하는 대신에, 디바이스(110)는 토큰에 의존하여 페어링이 이전에 서버(130)에 의해 허가되었음을 결정할 수 있다. (다른 실시예들에서, 그러나, 디바이스(110)는 토큰을 사용하는 대신에 이전 페어링 동작들로부터의 상태 정보를 저장할 수 있다.) 일부 실시예들에서, 토큰의 사용은 또한 서버(130)와의 통신이 현재 실현불가능할 때, 예컨대, 디바이스들(110, 120)이 인터넷 액세스가 안되는 비행기 안에 있을 때 페어링을 허용할 수 있다.
이제 도 2를 참조하면, 주변 디바이스(110)의 블록도가 도시된다. 도시된 실시예에서, 디바이스(110)는 제어기(115)를 포함하며, 이는 하나 이상의 프로세서(210), 랜덤 액세스 메모리(RAM)(220), 비휘발성 메모리(NVM)(230), 및 판독 전용 메모리(ROM)(240)를 포함한다. 도시된 바와 같이, 주변 디바이스(110)는 또한 바이오센서(260A)를 포함하는 하나 이상의 I/O 인터페이스(260)를 포함한다. 도시된 실시예에서, RAM(220)은 펌웨어(124), 난스(nonce)(224), 및 토큰(226)을 포함한다. NVM(230)은 하나 이상의 공개키 쌍(232), 고유 ID(UID)(234), 및 에포크(236)를 포함한다. ROM(240)은 서버 증명서(242) 및 생성 정보(244)를 포함한다. 일부 실시예들에서, 주변 디바이스(110)는 도시된 것과 상이하게 구현될 수 있다. 예를 들어, 구성요소들(222 내지 244)은 메모리들(220, 230, 및 240) 사이에서 상이하게 배열될 수 있다.
위에 언급된 바와 같이, 펌웨어(124)는, 일 실시예에서, 디바이스(120)로부터 수신되고, 주변 디바이스(110)로 하여금 위에서 기재한 기능을 수행하게 하도록 실행가능하다. 도시된 실시예에서, 펌웨어(124)는 컴퓨터 판독가능 매체(즉, RAM(220))에 저장되고, 하나 이상의 프로세서(210)에 의해 실행가능하다. 일부 실시예들에서, 펌웨어(124)는 도시된 것과 상이하게 저장될 수 있다. 일부 실시예들에서, 프로세서들(210)은 도 3을 참조하여 아래 CPU(320)에 대하여 기재된 기능을 구현할 수 있고; 메모리들(220 내지 240)은 또한 메모리(330)에 대하여 기재된 기능을 구현할 수 있다.
난스(224)는, 일 실시예에서, 디바이스(110)에 의해 생성되고, 서버(130)에 의해 제공된 서명된 데이터에 포함되는 수치이고, 이는 도 4a에 대하여 아래 논의된 바와 같다. 본 명세서에 사용된 바와 같이, 용어 "난스"는 종래 기술에서 그것이 이해되는 의미에 따라 해석될 것이고, 암호화 동작에서 단지 한번 사용되는 임의의 수를 포함한다. 난스(224)의 포함은 디바이스(120)가 서버(130)로부터 받은, 더 이상 유효하지 않을 수 있는 구 버전의 서명된 데이터를 제공하는 것을 방지할 수 있다.
토큰(226)은, 일 실시예에서, 후속 페어링 동작들을 용이하게 하기 위하여 디바이스(110)에 의해 생성되고 디바이스(120)에 제공되는 값이고, 이는 도 4b에 대하여 논의되는 바와 같다. 위에 언급된 바와 같이, 토큰(226)은 키 입력된 해시 함수를 이용하여 생성될 수 있다. 따라서, 일 실시예에서, 토큰(226)은 디바이스(120)의 공개키, 에포크(236), 및 펌웨어(124)의 해시 값으로부터 생성된 해시 기반 메시지 인증 코드(HMAC)이다. 그와 같은 실시예에서, 디바이스(110)는 HMAC에 대한 키로서 UID(234)를 사용할 수 있다. 위에 언급된 바와 같이, 토큰(226)의 사용은 디바이스(110)가 이전 페어링에 관한 상태를 유지하지 않도록 해줄 수 있다. 대신, 토큰(226)을 수신하게 되면, 디바이스(110)는 이전에 사용된 정보, 예컨대, 디바이스(120)의 공개키, 에포크(236), 및 펌웨어(124)의 해시 값을 추출할 수 있다.
공개키 쌍들(232)은, 일 실시예에서, 디바이스(110)에 의해 컴퓨팅 디바이스(120)와 같은 다른 디바이스들과 통신하는 데 사용되는 공개키 및 개인키이다. 일부 실시예들에서, 주어진 쌍(232)은 ECDH 키 교환을 이용하여 디바이스(120)와 공유키를 설정하는 데 사용된다. 일부 실시예들에서, 키 쌍들(232)은 임시 키―즉, 짧은 시간에만 사용된 뒤, 교체되는 키이다.
고유 식별자(UID)(234)는, 일 실시예에서, 제조 시 디바이스(110)에 저장되는 개인키이다. 다양한 실시예들에서, 디바이스(110)는 UID(234)를 이용하여 신뢰하는 서버(130)를 이용한 인증을 위하여 디지털 서명을 생성한다. 일부 실시예들에서, UID(234)는 임시 키들(232)이 디바이스(110)에 소속되도록 설정하기 위하여 임시 키들(232)에 서명하는 데 사용되는 장기 키이다.
에포크(236)는, 일 실시예에서, 디바이스(110)가 실행하도록 허용되는 펌웨어(124)의 최소 버전을 나타내는 저장된 값이다. 일부 실시예들에서, 에포크(236)는 제조 시 저장될 수 있지만, 다양한 이슈들(예컨대, 식별된 보안 취약점)로 인해 특정 버전의 펌웨어(124)가 호출될 때 신뢰하는 서버(130)에 의해 주기적으로 업데이트될 수 있다. 다양한 실시예들에서, 디바이스(110)는 펌웨어(124)가 적어도 이 최소 버전이라고 보장하기 위하여 에포크(236)를 수신된 펌웨어(124)의 버전과 비교하도록 구성된다.
서버 증명서(242)는, 일 실시예에서, 신뢰하는 서버(130)에 대한 디지털 증명서이고, 서버(130)의 해당 개인키로 생성된 임의의 서명된 데이터를 검증하는 데 사용가능한 공개키를 포함한다. 따라서, 증명서(242)를 이용하여 검증 정보(134)의 무결성을 검증하고, 정보(134)에서 데이터를 추출한다. 일부 실시예들에서, 증명서(242)는 디바이스(110)의 제조 시 디바이스(110)에 저장된다.
생성 정보(244)는, 일 실시예에서, 디바이스(110)를 기술하는 정보이다. 일부 실시예들에서, 정보(244)는 일련 번호, 제조 및 모델 정보 등을 포함할 수 있다. 일부 실시예들에서, 정보(244)는 디바이스(110)를 인증하고, 디바이스(110)에 적절한 펌웨어(124)를 선택하는 데 사용될 수 있다.
I/O 인터페이스들(260)은, 일 실시예에서, 사용자 입력을 수집 및/또는 정보를 사용자에 제공하도록 구성된 인터페이스 디바이스들이다. 다양한 실시예들에서, 인터페이스들(260)에 입력되고 인터페이스들(260)에 의해 출력되는 정보는 보안 접속(122)을 통해 안전하게 교환될 수 있다. 위에 언급된 바와 같이, SEP(125)는 디바이스(120)에서 이 정보의 암호화 및 복호화를 수행할 수 있다. 인터페이스들(260)은 임의의 적합한 디바이스들, 예컨대, 일부 실시예들에서, 키보드, 터치 스크린, 마이크로폰, 바이오센서(260A), 아래에 논의되는 임의의 주변장치들(340) 등을 포함할 수 있다.
바이오센서(260A)는, 일 실시예에서, 주변 디바이스(110)의 사용자에 대한 생체 측정 데이터를 검출하도록 구성된다. 생체 측정 데이터는 사용자의 물리적 또는 행동적 특성에 기초하여 다른 사람들 중에서 사용자를 고유하게(적어도 높은 정확도로) 식별하는 데이터일 수 있다. 예를 들어, 일부 실시예들에서, 센서(260A)는 사용자로부터 지문 데이터를 캡처하는 지문 센서이다. 일부 실시예들에서, SEP(125)는 허가된 사용자의 이전에 캡처된 지문 데이터를 보관하고, 사용자를 인증하기 위하여 센서(260A)로부터 새로 수신된 지문 데이터와 그것을 비교하도록 구성된다. (다른 실시예에서, 바이오센서(260A)가 비교를 수행할 수 있다.) 지문 데이터가 매칭되는 경우, SEP(125)는 요청된 서비스, 예컨대, 컴퓨팅 디바이스(120)에 로깅의 수행을 허용할 수 있다. 일부 실시예들에서, SEP(125)와 바이오센서(260A) 간의 통신은 접속(122)을 통해 암호화되어 다른 개체가 교환된 지문 데이터를 볼 수 없도록 할 수 있다. 일부 실시예들에서, 음성 인식(특정 사용자의 음성을 식별함), 홍채 스캐닝 등과 같은 다른 유형들의 생체 측정 데이터가 센서(260A)에 의해 캡처될 수 있다.
이제 도 3을 참조하면, 컴퓨팅 디바이스(120)의 블록도가 도시된다. 도시된 실시예들에서, 컴퓨팅 디바이스(120)는 CPU(320), SEP(125), 메모리(330), 통신 조직(350)을 통해 결합된 주변장치들(340)을 포함한다. 도시된 바와 같이, CPU(320)는 하나 이상의 프로세서(P)(322)를 포함할 수 있다. 도시된 실시예에서, SEP(125)는 하나 이상의 프로세서(P)(312), 보안 메모리(314), 및 하나 이상의 보안 주변장치(316)를 포함한다. SEP(114)는, 그러나, 임의의 바람직한 회로부(예컨대, 암호화 하드웨어, 암호화 기능에 사용되는 소정 동작들을, 가속하는 하드웨어 등)를 포함한다. 따라서, 프로세서(312)로 도시되지만, 다른 실시예들에서, 프로세서가 포함되지 않을 수 있다.
위에 언급된 바와 같이, SEP(125)는 다양한 실시예들에서 다양한 암호화 동작들을 수행하도록 구성된 보안 회로이다. 다양한 실시예들에서, SEP(125)는 세심하게 제어되는 인터페이스를 제외한 나머지 컴퓨팅 디바이스(120)로부터 분리될 수 있다(따라서, SEP 프로세서(312), 보안 메모리(314), 및 보안 주변장치들(316)을 위한 보안 엔클레이브를 형성함). SEP(125)에 대한 인터페이스는 세심하게 제어되기 때문에, SEP 프로세서(312), 보안 메모리(314), 및 보안 주변장치들(316)에 대한 직접 액세스는 금지될 수 있다. 일 실시예에서, 보안 메일함 메커니즘이 구현될 수 있다. 보안 메일함 메커니즘에서, 외부 디바이스들은 메시지들을 받은메일함에 이전할 수 있다. SEP 프로세서(312)는 메시지를 읽고 해석한 뒤, 메시지에 응답하여 취할 행동들을 결정할 수 있다. SEP 프로세서(312)로부터의 응답 메시지들은 보낸메일함을 통해 전송될 수 있는데, 이는 또한 보안 메일함 메커니즘의 일부이다. 외부 컴포넌트들로부터의 커맨드/요청 및 외부 컴포넌트들에 대한 결과를 전달하기만 하는 다른 인터페이스들이 이용될 수 있다. 외부 디바이스에서 SEP(125)로의 다른 액세스가 허용되지 않을 수 있고, 따라서 SEP(125)는 "액세스로부터 보호"될 수 있다. 더 구체적으로, SEP(125)의 외부에서 실행되는 소프트웨어는 SEP(125)의 보안 컴포넌트들에 대한 직접 액세스가 금지될 수 있다. SEP 프로세서(312)는 커맨드가 수행될 지 결정할 수 있다. 일부 경우들에서, 커맨드를 수행하는 여부에 대한 결정은 커맨드의 소스에 의해 영향을 받을 수 있다. 즉, 한 소스로부터의 커맨드는 허용될 수 있지만, 다른 소스로부터의 커맨드는 허용되지 않을 수 있다.
일부 실시예들에서, SEP 프로세서(312)는 SEP(125)에 대하여 기재된 기능의 구현을 용이하게 하는 안전하게 로딩된 소프트웨어를 실행할 수 있다. 예를 들어, 보안 메모리(314)는 SEP 프로세서(312)에 의해 실행가능한 소프트웨어를 포함할 수 있다. 하나 이상의 보안 주변장치들(316)이 외부 인터페이스를 가질 수 있으며, 이는 소프트웨어의 소스에 연결될 수 있다(예컨대, 플래시 메모리와 같은 비휘발성 메모리). 다른 실시예에서, 소프트웨어의 소스는 다른 주변장치(316)에 결합된 비휘발성 메모리일 수 있고, 소프트웨어는 제3자의 염탐을 방지하기 위하여 암호화될 수 있다. 소스로부터의 소프트웨어는 인증되거나 또는 다른 방식으로 안전하게 검증될 수 있고, SEP 프로세서(312)에 의해 실행될 수 있다. 일부 실시예들에서, 소프트웨어는 SEP(125)에 할당된 메모리(330) 내의 보안 구역 안으로 로딩될 수 있고, SEP 프로세서(312)는 실행을 위해 보안 구역으로부터 소프트웨어를 인출할 수 있다. 소프트웨어는 염탐을 방지하기 위하여 암호화된 형태로 메모리(330)에 저장될 수 있다. 보안 소프트웨어의 보안을 보장하기 위하여 취하는 단계에도 불구하고, 보안 소프트웨어는 여전히 저장된 개인키에 직접 액세스/획득이 금지될 수 있다. 실시예에서, 오직 하드웨어만이 개인키에 액세스할 수 있다.
도시된 실시예에서, 보안 메모리(314)는 또한 하나 이상의 공개키 쌍(318) 및 고유 식별자(UID)(319)를 포함한다. 위에서 논의한 쌍들(232)에 유사하게, 쌍들(318)은 디바이스(120)에 의해 디바이스(110)와 같은 다른 디바이스들과 통신하기 위하여 사용되는 공개키 및 개인키이다. 일부 실시예들에서, 주어진 쌍(318)은 ECDH 키 교환을 이용하여 디바이스(120)와 공유키를 설정하는 데 (쌍(232)과 함께) 사용된다. 일부 실시예들에서, 키 쌍들(318)은 임시 키이다. 도 4a에 대하여 아래 논의된 일 실시예에서, 교환되는 ECDH 키에 사용될 공개키는 정보(134)에 제공된 서명된 데이터에 포함된다. UID(234)와 유사하게, UID(319)는, 일 실시예에서, 제조 시 디바이스(120)에 저장되는 개인키이다. 다양한 실시예들에서, 디바이스(120)는 UID(319)를 이용하여 신뢰하는 서버(130)를 이용한 인증을 위하여 디지털 서명을 생성한다. 일부 실시예들에서, UID(319)는 임시 키들(페어링318)이 디바이스(120)에 소속되도록 설정하기 위하여 임시 키 쌍들(232)에 서명하는 데 사용되는 장기 키이다.
보안 주변장치들(316)은 SEP(125)에 의해 수행되는 보안 서비스들을 보조하도록 구성된 하드웨어일 수 있다. 따라서, 보안 주변장치들(316)은 다양한 인증 알고리즘들을 구현/가속하는 인증 하드웨어, 암호화를 수행/가속하도록 구성된 암호화 하드웨어, 보안 인터페이스를 통해 (컴퓨팅 디바이스(120)의) 외부 디바이스와 통신하도록 구성된 보안 인터페이스 제어기 등을 포함할 수 있다.
위에 언급된 바와 같이, CPU(320)는 하나 이상의 프로세서(322)를 포함할 수 있다. 일반적으로, 프로세서는 프로세서에 의해 구현된 명령어 세트 아키텍처에 정의된 명령어들을 실행하도록 구성된 회로부를 포함할 수 있다. 프로세서들(322)은 시스템 온 칩(SOC) 또는 다른 레벨의 집적과 같은 다른 컴포넌트들과의 집적 회로 상에 구현되는 프로세서 코어들을 포함할 수 있다(또는 이에 대응할 수 있다). 프로세서들(322)은 별개의 마이크로프로세서, 멀티칩 모듈 구현부 내에 집적화된 프로세서 코어 및/또는 마이크로프로세서, 다수의 집적 회로들로서 구현된 프로세서 등을 추가로 포함할 수 있다.
프로세서들(322)은 운영 체제와 같은 시스템의 메인 제어 소프트웨어를 실행할 수 있다. 일반적으로, 사용 시 CPU(320)에 의해 실행되는 소프트웨어는 시스템의 다른 컴포넌트들을 제어하여 시스템의 원하는 기능을 실현할 수 있다. 프로세서들은 또한 다른 소프트웨어를 실행할 수 있다. 이러한 애플리케이션들은 사용자 기능성을 제공할 수 있고, 하위 레벨 디바이스 제어, 스케줄링, 메모리 관리 등을 위해 운영체제에 의존할 수 있다. 따라서, 프로세서들(322)(또는 CPU(320))은 또한 애플리케이션 프로세서들로 지칭될 수 있다. CPU(320)는 다른 하드웨어, 예컨대, L2 캐시 및/또는 시스템의 다른 컴포넌트들에 대한 인터페이스(예컨대, 통신 조직(350)에 대한 인터페이스)를 추가로 포함할 수 있다.
메모리(330)는 일반적으로 데이터를 저장하기 위한 회로부를 포함할 수 있다. 예를 들어, 메모리(330)는 SRAM(static random access memory), DRAM(dynamic RAM), 예컨대 더블 데이터 레이트(DDR, DDR2, DDR3, DDR4 등) DRAM을 포함하는 SDRAM(synchronous DRAM)일 수 있다. 저전력/모바일 버전들의 DDR DRAM(예컨대, LPDDR, mDDR 등)이 지원될 수 있다. 디바이스(120)는 동작들을 순서화하고(및 잠재적으로 재순서화), 동작들을 메모리(330)에 제시하기 위하여, 메모리 동작들을 위한 큐를 포함할 수 있는 메모리 제어기(미도시)를 포함할 수 있다. 메모리 제어기는 메모리로의 기록을 기다리는 기록 데이터 및 메모리 동작의 소스로의 복귀를 기다리는 판독 데이터를 저장하는 데이터 버퍼들을 더 포함할 수 있다. 일부 실시예들에서, 메모리 제어기는 최근 액세스된 메모리 데이터를 저장하는 메모리 캐시를 포함할 수 있다. 일부 실시예들에서, 메모리(330)는 하나 이상의 프로세서(322)에 의해 디바이스(120)로 하여금 디바이스(120)에 대하여 본 명세서에서 기재된 다양한 기능을 수행하게 하도록 실행가능한 프로그램 명령어들을 포함할 수 있다.
주변장치들(340)은 디바이스(120)에 포함된 추가적인 하드웨어 기능의 임의의 세트일 수 있다. 예를 들어, 주변장치들(340)은 비디오 주변장치들, 예컨대 카메라 또는 다른 이미지 센서로부터의 이미지 캡처 데이터를 처리하도록 구성된 이미지 신호 프로세서, 하나 이상의 디스플레이 디바이스 상에 비디오 데이터를 표시하도록 구성된 디스플레이 제어기, 그래픽 처리 유닛(GPU), 비디오 인코더/디코더, 스케일러(scaler), 로테이터(rotator), 블렌더(blender) 등을 포함할 수 있다. 주변장치들(340)은 마이크로폰, 스피커와 같은 오디오 주변장치, 마이크로폰 및 스피커에 대한 인터페이스, 오디오 프로세서, 디지털 신호 프로세서, 믹서 등을 포함할 수 있다. 주변장치들(340)은 USB(Universal Serial Bus), PCIe(PCI Express)를 포함하는 PCI(peripheral component interconnect), 직렬 포트 및 병렬 포트 등과 같은 인터페이스들을 포함하는 다양한 인터페이스들에 대한 인터페이스 제어기들을 포함할 수 있다. 주변장치들(340)은 MAC(media access controller)과 같은 네트워킹 주변장치들을 포함할 수 있다. 하드웨어의 임의의 세트가 포함될 수 있다.
통신 조직(350)은 디바이스(120)의 컴포넌트들 사이의 통신을 위한 임의의 통신 상호연결 및 프로토콜일 수 있다. 통신 조직(350)은 공유 버스 구성, 크로스 바(cross bar) 구성, 및 브릿지를 이용한 계층적 버스를 포함하는 버스-기반일 수 있다. 통신 조직(350)은 또한 패킷 기반일 수 있고, 브리지를 갖는 계층구조, 크로스 바, 포인트-투-포인트(point-to-point), 또는 다른 상호접속부들일 수 있다.
이제 도 4a를 참조하면, 초기 페어링 동작(400)의 통신 다이어그램이 도시된다. 다양한 실시예들에서, 초기 페어링 동작(400)은 디바이스들(110, 120)이 이전에 페어링되어 있지 않거나 또는 성공적으로 페어링 동작(450)을 수행할 수 없을 때, 구성요소들(110 내지 130)에 의해 수행될 수 있다.
도시된 실시예에서, 페어링 동작(400)은 컴퓨팅 디바이스(120)가 402에서 주변 디바이스(110)에게 그것의 일련 번호 요청을 송신하고, 404에서 대응하는 응답을 수신하는 것으로 시작한다. 디바이스(120)는 또한 406에서 난스(224) 및 에포크(236) 요청을 송신할 수 있고, 이는 408에서 디바이스(110)로부터의 응답으로 제공될 수 있다. 일부 실시예들에서, 디바이스(110)는 일련 번호, 난스, 및/또는 에포크를 UID(234)를 이용하여 서명할 수 있다. 일부 실시예들에서, 도 4a에 도시된 것과 상이한 정보가 디바이스(120)에 의해 수집될 수 있다.
수신된 일련 번호 및 에포크(236)에 기초하여, 디바이스(120)는 그것이 현재 디바이스(110)에 적합한 버전의 펌웨어(124)를 저장하고 있는지 결정할 수 있다. 그것이 적절한 버전의 펌웨어(124)를 포함하지 않은 경우, 일부 실시예들에서, 디바이스(120)는 410에서 펌웨어(124) 요청을 발행할 수 있고, 이는 412에서 응답으로 제공될 수 있다. 디바이스(120)가 펌웨어(124)를 수신하거나 또는 자체에 저장된 사본을 사용하도록 결정하게 되면, 디바이스(120)는 FWHV로 도시된 펌웨어(124)의 해시 값을 생성할 수 있다.
도시된 실시예에서, 컴퓨팅 디바이스(120)는 이어서 414에서 디바이스(120)의 공개키(Cpub)(쌍(318)으로부터의 공개키에 대응함), 난스, 수신된 에포크(236), 및 생성된 해시 값의 서명을 요구하는 검증 요청(132)을 송신한다. 일부 실시예들에서, 이 요청(132)은 또한 디바이스(110)의 일련 번호, 공개키 등과 같은 서명을 위한 추가적인 정보를 포함할 수 있고; 요청(132)은 또한 UID(319)를 이용하여 서명될 수 있다. 신뢰하는 서버(130)는 이어서 도 1에 대하여 위에서 논의된 보관중인 리스트를 이용함으로써 요청(132) 내의 정보를 검증할 수 있다. 성공적인 검증에 응답하여, 신뢰하는 서버(130)는 416에서 요청(132)에 포함된 정보로부터 생성된 디지털 서명을 포함하는 도 1의 검증 정보(134)를 제공할 수 있다.
디지털 서명이 수신되면, 컴퓨팅 디바이스(120)는 418에서 디바이스(110)에 서명 및 펌웨어를 제공할 수 있다. 주변 디바이스(110)는 이어서 증명서(242)를 이용하여 서명의 유효성을 확인할 수 있다. 디바이스(110)는 또한 펌웨어(124)가 유효함을 보장하기 위하여, 서명으로부터 서명된 해시 값을 추출하여 추출된 해시 값을 수신된 펌웨어(124)로부터 생성된 것과 비교할 수 있다. 일부 실시예들에서, 디바이스(110)는 그것의 저장된 에포크(236)를 서명 내의 서명된 에포크로 업데이트하고, 수신된 펌웨어가 저장된 에포크(236)를 준수함을 확인할 수 있다. 디바이스(110)가 성공적으로 서명 및 펌웨어를 검증한 경우, 디바이스(110)는 420에서 펌웨어(124)의 부팅을 수행할 수 있다.
새로운 펌웨어(124)가 부팅된 후, 주변 디바이스(110)는 접속(122)을 통해 암호화된 정보를 교환하는 데 사용될 공유키를 설정하기 위하여 422에서 키 교환을 수행할 수 있다. 위에서 논의한 바와 같이, 이 교환은 ECDH를 이용하여 채용될 수 있다. 그와 같은 실시예에서, 디바이스(110)는 수신된 디지털 서명 내의 서명된 공개키(Cpub)를 이용하여 공유키를 결정할 수 있다. 디바이스(110)는 또한 그것의 공개키(키 쌍(232)에 대응함)를 제공하여, 디바이스(120)가 또한 공유키를 유도할 수 있도록 할 수 있다.
성공적으로 키 교환을 완료하면, 디바이스(110)는 마지막으로 424에서 토큰(226)을 생성할 수 있다. 도시된 실시예에서, 디바이스(110)는 그것의 UID(234)를 키로 사용하여 Cpub의 해시 값(Cpub HV로 나타냄), 현재 에포크(236), 수신된 펌웨어(124)의 해시 값으로부터 메시지 인증 코드(MAC)을 생성한다. (토큰이 생성되지 않는 일부 실시예들에서, 디바이스(110)는 단지 이 정보를 저장할 수 있고, 이것은 후속 페어링 동작 동안 그것을 사용할 수 있다.) 426에서, 디바이스(110)는 토큰을 디바이스(120)에 제공하여, 토큰이 다음에 논의되는 바와 같이 후속 페어링 동작을 신속하게 처리하는 데 사용될 수 있도록 한다.
이제 도 4b를 참조하면, 후속 페어링 동작(450)의 통신 다이어그램이 도시된다. 다양한 실시예들에서, 초기 페어링 동작(400)이 성공적으로 완료되면, 후속 페어링 동작(450)이 디바이스들(110, 120)에 의해 수행된다.
도시된 실시예에서, 동작(450)은 452에서 디바이스(120)가 디바이스(110)에 그것의 일련 번호에 대하여 질의하는 것으로 시작한다. 454에서 일련 번호를 수신하게 되면, 컴퓨팅 디바이스(120)는 그것이 일련 번호와 연관된 임의의 토큰들(226)을 저장하고 있는지 결정할 수 있다. 저장한 경우, 456에서 디바이스(120)는 토큰(226), 펌웨어(124), 및 그것의 공개키(Cpub)를 송신한다.
토큰을 수신하게 되면, 디바이스(110)는 토큰(226)을 검증하고, 토큰을 이용하여 펌웨어(124)를 검증할 수 있다. 일부 실시예들에서, 토큰을 검증하는 것은 디바이스(110)가 424에서와 유사한 방식으로 수신된 정보로부터의 토큰(226)을 재계산하는 것 및 수신된 토큰(226)을 재계산된 토큰(226)과 비교하여 그것들이 매칭되도록 보장하는 것을 포함할 수 있다. 그렇게 할 때, 디바이스(110)는 또한 1) 디바이스(120)가 토큰이 생성되었을 때 통신했던 디바이스와 동일한지, 그리고 2) 이전에 실행된 동일한 펌웨어(124)가 곧 실행되는지 검증할 것이다. 그러나, 토큰들이 매칭되지 않는 경우, 수신된 펌웨어(124), 공개키(Cpub), 및/또는 에포크(236)는 교체될 수 있다. 결과적으로, 디바이스(110)는 디바이스(120)로 하여금 초기 페어링 동작(400)의 수행을 철회하게 명령할 수 있다. 그러나, 검증이 성공적인 경우, 디바이스(110)는 다시 펌웨어(124)를 부팅할 수 있다. 이 때, 디바이스(110)는 위에서 논의한 키 교환(422)과 유사한 방식으로 디바이스(120)와 키 교환(460)을 수행할 수 있다.
도 5를 참조하면, 방법(500)의 흐름도가 도시된다. 방법(500)은 신뢰하는 서버(130)와 같은 컴퓨터 시스템에 의해 수행될 수 있는 방법의 일 실시예이다. 일부 경우들에서, 방법(500)을 수행함으로써 더 안전한 페어링 동작이 위에서 언급된 이유들로 인해 수행될 수 있다.
단계(510)에서, 컴퓨터 시스템은, 제1 디바이스(예컨대, 컴퓨팅 디바이스(120))로부터, 제1 디바이스와 제2 디바이스(예컨대, 주변 디바이스(110)) 간의 페어링 동작에 사용가능한 디지털 서명에 대한 요청(예컨대, 요청(132))을 수신한다. 일부 실시예들에서, 제2 디바이스와 페어링이 허용된 디바이스들을 나타내는 리스트를 저장하고 있는 컴퓨터 시스템은 단계(520)로 진행하기 전에 제1 디바이스가 리스트에 명시되어 있는지 결정한다.
단계(520)에서, 컴퓨터 시스템은 제1 디바이스의 식별자(예컨대, 쌍(318)의 공개키) 및 제2 디바이스에 의해 실행될 펌웨어(예컨대, 펌웨어(124))의 해시 값에 기초하여 요청된 디지털 서명(예컨대, 검증 정보(134))을 생성한다. 일부 실시예들에서, 컴퓨터 시스템은 에포크 값(예컨대, 에포크(236))을 제2 디바이스에 제공하는데, 에포크 값은 제2 디바이스에 의해 실행되도록 허용되는 펌웨어의 최소 버전을 나타낸다. 에포크 값을 제공함으로써 제2 디바이스는 디지털 서명과 연관된 펌웨어의 사용을 중단하게 된다. 일부 실시예들에서, 단계(520)는 또한 컴퓨터 시스템이 펌웨어를 제1 디바이스에 제공하는 것을 포함하며, 이는 페어링 동작동안 펌웨어를 제2 디바이스에 전달한다.
다양한 실시예들에서, 방법(500)은 다른 디바이스들과의 후속 페어링 동작들 동안 반복될 수 있다. 따라서, 후속 수행은 컴퓨터 시스템이, 제3 디바이스로부터, 제3 디바이스와 제2 디바이스 간의 페어링 동작에 사용가능한 다른 디지털 서명에 대한 요청을 수신하는 것, 및 컴퓨터 시스템이 제3 디바이스의 식별자 및 제2 디바이스에 의해 실행될 펌웨어의 해시 값에 기초하여 다른 요청된 디지털 서명을 생성하는 것을 포함할 수 있다.
***
특정 실시예들이 전술되었지만, 이들 실시예들은 단일 실시예만이 특정 특징부에 대해 전술된 경우에도 본 개시내용의 범주를 제한하도록 의도되지 않는다. 본 개시내용에 제공된 특징부들의 예들은 달리 언급되지 않는 한 제한적인 것이 아니라 예시적인 것으로 의도된다. 상기의 설명은 본 발명의 이익을 취하는 당업자에게 자명한 바와 같이 그러한 대안물들, 수정물들, 및 등가물들을 포괄하도록 의도된다.
본 개시내용의 범주는, 본 명세서에 다뤄진 문제점들 중 임의의 것 또는 전부를 완화시키든 아니든, (명시적으로 또는 묵시적으로) 본 명세서에 개시된 임의의 특징부 또는 특징부들의 조합, 또는 그의 임의의 일반화를 포함한다. 따라서, 특징부들의 임의의 그러한 조합에 대해 본 출원(또는 그에 대한 우선권을 주장하는 출원)의 심사 동안에 새로운 청구범위가 작성될 수 있다. 구체적으로, 첨부된 청구범위를 참조하면, 종속항들로부터의 특징부들은 독립항들의 특징부들과 조합될 수 있으며, 각자의 독립항들로부터의 특징부들은 첨부된 청구범위에 열거된 특정 조합들로 조합될 수 있을 뿐 아니라 임의의 적절한 방식으로 조합될 수 있다.

Claims (20)

  1. 제1 디바이스(110)로서,
    하나 이상의 프로세서(210, 115); 및
    내부에 프로그램 명령어들이 저장된 메모리(220)를 포함하고, 상기 프로그램 명령어들은 상기 하나 이상의 프로세서에 의해 상기 제1 디바이스로 하여금:
    상기 제1 디바이스와 제2 디바이스 간의 보안 통신 링크를 설정하기 위하여 상기 제2 디바이스(120)와 페어링 동작(400)을 수행하고 - 상기 페어링 동작은:
    상기 보안 통신 링크를 통한 통신 동안 상기 제1 디바이스에 의해 실행될 펌웨어를 상기 제2 디바이스로부터 수신하는 단계(418); 및
    상기 펌웨어의 성공적인 검증에 응답하여, 상기 통신 동안 상기 제1 및 제2 디바이스들에 의해 사용될 공유된 암호키를 설정하는 단계(422)를 포함함 -,
    상기 보안 통신 링크를 통한 통신 동안 상기 검증된 펌웨어를 실행하게 실행가능한, 제1 디바이스(110).
  2. 제1항에 있어서, 상기 페어링 동작(400)은:
    컴퓨터 시스템(130)으로부터, 상기 펌웨어의 해시 값과 상기 제2 디바이스의 공개키를 암호화하여 결합하는 디지털 서명을 수신하는 단계(416); 및
    상기 디지털 서명으로부터 상기 해시 값을 추출하고, 상기 추출된 해시 값을 상기 수신된 펌웨어의 해시 값과 비교함으로써 상기 펌웨어를 검증하는 단계(420)를 포함하는, 제1 디바이스(110).
  3. 제2항에 있어서, 상기 페어링 동작(400)은 상기 공개키를 이용하여 상기 공유된 암호키를 설정하는 단계를 포함하는, 제1 디바이스(110).
  4. 제1항에 있어서, 상기 프로그램 명령어들은 상기 제1 디바이스로 하여금:
    상기 제1 디바이스에 의해 실행되도록 허용가능한 상기 펌웨어의 최소 버전을 나타내는 값을 저장하게 실행가능하고;
    상기 페어링 동작(400)은 상기 수신된 펌웨어의 버전이 상기 최소 버전 이상임을 검증하는 단계를 포함하는, 제1 디바이스(110).
  5. 제4항에 있어서, 상기 프로그램 명령어들은 상기 제1 디바이스로 하여금:
    상기 제1 디바이스에 의해 실행되도록 허용가능한 상기 최소 버전으로서 상기 펌웨어의 다른 버전을 나타내는 업데이트된 값을 수신하고;
    상기 저장된 값을 상기 업데이트된 값으로 대체하게 실행가능한, 제1 디바이스(110).
  6. 제1항에 있어서, 상기 프로그램 명령어들은 상기 제1 디바이스로 하여금:
    상기 제2 디바이스(120)와 후속 페어링 동작(450)을 수행하게 실행가능하고, 상기 후속 페어링 동작은:
    상기 제2 디바이스로부터 펌웨어를 수신하는 단계(456); 및
    상기 페어링 동작 동안 수신된 상기 펌웨어가 상기 후속 페어링 동작 동안 수신된 상기 펌웨어와 매칭되는지 검증하는 단계(458)를 포함하는, 제1 디바이스(110).
  7. 제6항에 있어서, 상기 페어링 동작(400)은 상기 제1 디바이스가, 상기 제2 디바이스(120)에, 상기 제2 디바이스의 신분 및 상기 페어링 동작 동안 수신된 상기 펌웨어의 해시 값에 기초하여 생성된 토큰(426)을 제공하는 단계를 포함하고;
    상기 후속 페어링 동작(450)은:
    상기 제2 디바이스로부터 상기 토큰을 수신하는 단계(456); 및
    상기 토큰과 연관된 상기 해시 값이 상기 후속 페어링 동작 동안 수신된 상기 펌웨어의 해시 값과 매칭되는지 검증하는 단계(458)를 포함하는, 제1 디바이스(110).
  8. 제6항에 있어서, 상기 페어링 동작(400)은 상기 제1 디바이스가 상기 페어링 동작 동안 수신된 상기 펌웨어의 해시 값 및 상기 제2 디바이스(120)의 신분을 저장하는 단계를 포함하고;
    상기 후속 페어링 동작(450)은:
    상기 저장된 해시 값에 기초하여, 상기 후속 페어링 동안 수신된 상기 펌웨어가 상기 페어링 동작 동안 수신된 상기 펌웨어인지 검증하는 단계; 및
    상기 저장된 신분에 기초하여, 상기 후속 페어링 동안 수신된 상기 펌웨어가 상기 제2 디바이스로부터 온 것인지 검증하는 단계를 포함하는, 제1 디바이스(110).
  9. 제1항에 있어서,
    사용자의 생체 측정 정보를 캡처하도록 구성된 바이오센서(260A)를 추가로 포함하고, 상기 프로그램 명령어들은 상기 제1 디바이스로 하여금 상기 보안 통신 링크를 통해 상기 캡처된 생체 측정 정보를 전달하게 실행가능한, 제1 디바이스(110).
  10. 제9항에 있어서,
    사용자로부터의 입력을 캡처하도록 구성된 키보드(260)를 추가로 포함하고, 상기 프로그램 명령어들은 상기 제1 디바이스로 하여금 상기 보안 통신 링크를 통해 상기 캡처된 입력을 전달하게 실행가능한, 제1 디바이스(110).
  11. 제1 디바이스(120)로서,
    하나 이상의 프로세서(320);
    내부에 프로그램 명령어들이 저장된 메모리(330)를 포함하고, 상기 프로그램 명령어들은 상기 하나 이상의 프로세서에 의해 상기 제1 디바이스로 하여금:
    상기 제1 디바이스와 제2 디바이스 간의 보안 통신 링크를 설정하기 위하여 상기 제2 디바이스(110)와 페어링 동작(400)을 수행하게 실행가능하고, 상기 페어링 동작은:
    컴퓨터 시스템(130)으로부터, 상기 보안 통신 링크를 통한 통신 동안 상기 제1 디바이스의 식별자를 상기 제2 디바이스에 의해 실행될 펌웨어에 결합하는 서명된 데이터를 수신하는 단계(416);
    상기 서명된 데이터 및 상기 펌웨어를 상기 제2 디바이스에 송신하는 단계(418); 및
    상기 펌웨어의 성공적인 검증에 응답하여, 통신 동안 상기 제1 및 제2 디바이스들에 의해 사용될 공유된 암호키를 설정하는 단계(422)를 포함하는, 제1 디바이스(120).
  12. 제11항에 있어서, 상기 페어링 동작(400)은:
    상기 제2 디바이스(110)로부터 난스(nonce)를 수신하는 단계(408); 및
    상기 컴퓨터 시스템(130)에 상기 서명된 데이터에 대한 요청을 송신하는 단계(414)를 포함하고, 상기 요청은 상기 난스를 명시하고, 상기 서명된 데이터는 상기 난스를 상기 제1 디바이스의 상기 식별자 및 상기 펌웨어에 결합하는, 제1 디바이스(120).
  13. 제11항에 있어서,
    보안 회로(125)를 추가로 포함하고, 상기 보안 회로는:
    상기 페어링 동작(400) 동안 생성되는 공유키를 저장하고;
    상기 저장된 공유키를 이용하여, 상기 보안 통신 링크를 통해 상기 제2 디바이스(110)로부터 수신된 정보를 복호화하도록 구성된, 제1 디바이스(120).
  14. 제13항에 있어서, 상기 제1 디바이스의 상기 식별자는 상기 제1 디바이스의 공개키이고;
    상기 보안 회로(125)는:
    상기 공개키에 대응하는 개인키를 이용하여, ECDH(elliptic curve diffie-hellman) 프로토콜을 통해 상기 공유키를 생성하도록 구성된, 제1 디바이스(120).
  15. 제11항에 있어서, 상기 페어링 동작(400)은:
    상기 제2 디바이스(110)로부터, 후속 페어링 동작(450) 동안 상기 제1 디바이스를 상기 제2 디바이스에 인증하는 데 사용가능한 토큰을 수신하는 단계(426)를 포함하는, 제1 디바이스(120).
  16. 방법으로서,
    컴퓨터 시스템(130)이, 제1 디바이스(120)로부터, 상기 제1 디바이스와 제2 디바이스(110) 간의 페어링 동작(400)에 사용가능한 디지털 서명에 대한 요청을 수신하는 단계(414) - 상기 페어링 동작은 상기 제2 디바이스에 의해 실행될 펌웨어의 교환을 포함함 -; 및
    상기 컴퓨터 시스템이 제1 디바이스의 식별자 및 상기 펌웨어의 해시 값에 기초하여 상기 요청된 디지털 서명을 생성하는 단계를 포함하고,
    상기 페어링 동작은 상기 디지털 서명에 기초하는 상기 펌웨어의 검증에 응답하여 상기 제1 및 제2 디바이스들에 의해 사용될 공유된 암호키를 설정하는 것을 포함하는, 방법.
  17. 제16항에 있어서,
    상기 컴퓨터 시스템(130)이 상기 제2 디바이스에 에포크 값을 제공하는 단계(416)를 추가로 포함하고, 상기 에포크 값은 상기 제2 디바이스에 의해 실행되도록 허용되는 펌웨어의 최소 버전을 나타내고, 상기 제공하는 단계는 상기 제2 디바이스로 하여금 상기 디지털 서명과 연관된 상기 펌웨어의 이용을 중단하게 하는, 방법.
  18. 제16항에 있어서,
    상기 컴퓨터 시스템(130)이 상기 제2 디바이스와 페어링하도록 허용된 디바이스들을 나타내는 리스트를 저장하는 단계; 및
    상기 컴퓨터 시스템이 상기 요청된 디지털 서명을 생성하기 전에 상기 제1 디바이스가 상기 리스트에 명시되어 있는지 결정하는 단계를 추가로 포함하는, 방법.
  19. 제16항에 있어서,
    상기 컴퓨터 시스템(130)이, 제3 디바이스로부터, 상기 제3 디바이스와 상기 제2 디바이스 간의 페어링 동작에 사용가능한 다른 디지털 서명에 대한 요청을 수신하는 단계; 및
    상기 컴퓨터 시스템이 제3 디바이스의 식별자 및 상기 제2 디바이스에 의해 실행될 펌웨어의 해시 값에 기초하여 상기 요청된 다른 디지털 서명을 생성하는 단계를 추가로 포함하는, 방법.
  20. 제16항에 있어서,
    상기 컴퓨터 시스템(130)이 제1 디바이스(120)에 상기 펌웨어를 제공하는 단계(412)를 추가로 포함하고, 상기 제1 디바이스는 상기 페어링 동작 동안 상기 펌웨어를 상기 제2 디바이스(110)에 전달하는, 방법.
KR1020187020554A 2016-01-10 2016-12-15 보안 디바이스 페어링 KR102168984B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662276933P 2016-01-10 2016-01-10
US62/276,933 2016-01-10
US15/274,836 2016-09-23
US15/274,836 US10382210B2 (en) 2016-01-10 2016-09-23 Secure device pairing
PCT/US2016/067007 WO2017120011A1 (en) 2016-01-10 2016-12-15 Secure device pairing

Publications (2)

Publication Number Publication Date
KR20180096699A KR20180096699A (ko) 2018-08-29
KR102168984B1 true KR102168984B1 (ko) 2020-10-22

Family

ID=57714707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187020554A KR102168984B1 (ko) 2016-01-10 2016-12-15 보안 디바이스 페어링

Country Status (6)

Country Link
US (3) US10382210B2 (ko)
EP (1) EP3400730B1 (ko)
KR (1) KR102168984B1 (ko)
CN (2) CN112954676A (ko)
AU (1) AU2016385445C1 (ko)
WO (1) WO2017120011A1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10193694B1 (en) * 2015-10-26 2019-01-29 Marvell International Ltd. Method and apparatus for securely configuring parameters of a system-on-a-chip (SOC)
FR3054056B1 (fr) * 2016-07-13 2018-06-29 Safran Identity & Security Procede de mise en relation securisee d'un premier dispositif avec un deuxieme dispositif
WO2018044146A1 (en) * 2016-09-05 2018-03-08 Lg Electronics Inc. Lightweight and escrow-less authenticated key agreement for the internet of things
US10872155B2 (en) * 2016-11-16 2020-12-22 Samsung Electronics Co., Ltd. Computing system for managing firmware and firmware managing method thereof
CN108270554B (zh) * 2016-12-30 2022-06-10 国民技术股份有限公司 一种终端配对方法及系统
US11463439B2 (en) * 2017-04-21 2022-10-04 Qwerx Inc. Systems and methods for device authentication and protection of communication on a system on chip
US10122699B1 (en) * 2017-05-31 2018-11-06 InfoSci, LLC Systems and methods for ephemeral shared data set management and communication protection
US11151235B2 (en) 2017-08-01 2021-10-19 Apple Inc. Biometric authentication techniques
CN109325328B (zh) * 2017-08-01 2022-08-30 苹果公司 用于生物特征认证的装置、方法和存储介质
WO2019130042A1 (en) * 2017-12-29 2019-07-04 Vandelay Integrity control of a secured peripheral device
US11677730B2 (en) 2018-01-24 2023-06-13 Intel Corporation Device authentication
SE1850155A1 (en) * 2018-02-13 2019-08-14 Fingerprint Cards Ab Registration of data at a sensor reader and request of data at the sensor reader
IL258379A (en) 2018-03-26 2018-05-31 Kazuar Advanced Tech Ltd Secure remote terminal
US11494485B2 (en) 2018-04-30 2022-11-08 Google Llc Uniform enclave interface
CN112005237B (zh) * 2018-04-30 2024-04-30 谷歌有限责任公司 安全区中的处理器与处理加速器之间的安全协作
WO2019212580A1 (en) * 2018-04-30 2019-11-07 Google Llc Enclave interactions
WO2019231252A1 (en) 2018-05-31 2019-12-05 Samsung Electronics Co., Ltd. Electronic device for authenticating user and operating method thereof
US11151255B2 (en) * 2018-10-26 2021-10-19 Dell Products L.P. Method to securely allow a customer to install and boot their own firmware, without compromising secure boot
KR101991775B1 (ko) * 2018-12-18 2019-06-21 (주)엘에스시스텍 Fpga기반의 데이터 암복호화 방법
US10887181B2 (en) * 2019-01-09 2021-01-05 Microsoft Technology Licensing, Llc Out-of-band service discovery for peripheral devices
US11387983B2 (en) * 2019-03-25 2022-07-12 Micron Technology, Inc. Secure medical apparatus communication
US11540137B2 (en) * 2019-04-17 2022-12-27 Apple Inc. Pairing devices based on distance
WO2021006487A1 (ko) * 2019-07-09 2021-01-14 엘지전자 주식회사 무선전력 수신장치 및 무선전력 전송장치
US11489675B1 (en) * 2019-07-12 2022-11-01 Allscripts Software, Llc Computing system for electronic message tamper-roofing
EP3809733A1 (en) 2019-10-17 2021-04-21 TRUMPF Medizin Systeme GmbH + Co. KG System comprising a medical apparatus and a remote control device, method for pairing the remote control device and the medical apparatus, and method for operating the medical apparatus
KR102488326B1 (ko) * 2020-03-27 2023-01-16 한국전력공사 이종 계량기의 통신을 지원하는 방법
KR20220091970A (ko) * 2020-12-24 2022-07-01 삼성전자주식회사 아이디 및 패스워드를 공유하기 위한 전자 장치, 그 동작 방법 및 서버
WO2022144438A1 (en) * 2020-12-31 2022-07-07 Onespan Nv A system, apparatus and method for memory efficient updating of firmware
US20240048382A1 (en) * 2022-08-03 2024-02-08 1080 Network, Llc Systems, methods, and computing platforms for executing credential-less network-based communication exchanges
CN116340954B (zh) * 2023-03-24 2024-01-23 合芯科技有限公司 一种数据安全通道建立方法、系统控制处理器和启动固件

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150074420A1 (en) * 2013-09-11 2015-03-12 Kyocera Document Solutions Inc. Embedded system, information processing unit, and image forming apparatus

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004100487A1 (en) 2003-05-12 2004-11-18 Docomo Communications Laboratories Europe Gmbh Network security method and system
JP5763872B2 (ja) * 2003-05-30 2015-08-12 アップル インコーポレイテッド 電子装置へのアクセスを制御するマン・マシン・インターフェース
EP1635508A1 (en) * 2004-09-08 2006-03-15 Koninklijke Philips Electronics N.V. Secure pairing for wireless communications devices
US8650399B2 (en) 2008-02-29 2014-02-11 Spansion Llc Memory device and chip set processor pairing
KR101714108B1 (ko) * 2009-12-04 2017-03-08 크라이프토그라피 리서치, 인코포레이티드 검증가능 누출 방지 암호화 및 복호화
US8464061B2 (en) * 2010-08-30 2013-06-11 Apple Inc. Secure wireless link between two devices using probes
US20130311692A1 (en) * 2012-05-21 2013-11-21 Qualcomm Incorporated Apparatus and method for direct pairing in a wireless docking system
US20140068744A1 (en) * 2012-09-06 2014-03-06 Plantronics, Inc. Surrogate Secure Pairing of Devices
US9124434B2 (en) * 2013-02-01 2015-09-01 Microsoft Technology Licensing, Llc Securing a computing device accessory
US9356918B2 (en) 2013-03-13 2016-05-31 Google Inc. Identification delegation for devices
US9407619B2 (en) * 2013-03-17 2016-08-02 NXT-ID, Inc. Un-password™: risk aware end-to-end multi-factor authentication via dynamic pairing
CN103391197B (zh) * 2013-07-19 2016-06-08 武汉大学 一种基于手机令牌和NFC技术的Web身份认证方法
US9621645B2 (en) * 2013-12-30 2017-04-11 Google Inc. Device pairing via a cloud server
KR102139546B1 (ko) 2014-03-11 2020-07-30 삼성전자주식회사 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법
CN104980928B (zh) * 2014-04-03 2018-12-07 华为终端(东莞)有限公司 一种用于建立安全连接的方法、设备及系统
US9407636B2 (en) * 2014-05-19 2016-08-02 Intel Corporation Method and apparatus for securely saving and restoring the state of a computing platform

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150074420A1 (en) * 2013-09-11 2015-03-12 Kyocera Document Solutions Inc. Embedded system, information processing unit, and image forming apparatus

Also Published As

Publication number Publication date
AU2016385445B2 (en) 2019-06-13
WO2017120011A1 (en) 2017-07-13
CN108476404B (zh) 2021-04-16
AU2016385445C1 (en) 2019-11-21
CN108476404A (zh) 2018-08-31
US20200213133A1 (en) 2020-07-02
US11601287B2 (en) 2023-03-07
US20210281426A1 (en) 2021-09-09
EP3400730B1 (en) 2019-12-04
EP3400730A1 (en) 2018-11-14
US10382210B2 (en) 2019-08-13
US10951419B2 (en) 2021-03-16
US20170201380A1 (en) 2017-07-13
KR20180096699A (ko) 2018-08-29
CN112954676A (zh) 2021-06-11
AU2016385445A1 (en) 2018-08-16

Similar Documents

Publication Publication Date Title
KR102168984B1 (ko) 보안 디바이스 페어링
US20240039714A1 (en) Secure Circuit For Encryption Key Generation
CN110741370B (zh) 利用用户输入的生物识别认证
KR102399582B1 (ko) 모바일 디바이스를 사용한 시스템 액세스
US10839391B2 (en) Method and apparatus for secure offline payment
US11777936B2 (en) Friend key sharing
TWI679551B (zh) 進程的身份認證方法和裝置
JP2017033537A (ja) 外部不揮発性メモリに間接アクセスするセキュリティデバイス
US11658959B2 (en) User authentication framework
CN113039544A (zh) 应用程序完整性证实
US20210397716A1 (en) Securely Signing Configuration Settings
US11722467B2 (en) Secured communication from within non-volatile memory device
CN109643340B (zh) 具有多个用户的安全元件
WO2019120231A1 (zh) 确定tpm可信状态的方法、装置及存储介质
US10826690B2 (en) Technologies for establishing device locality
US20210160081A1 (en) Multiple-Key Verification Information for Mobile Device Identity Document

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right