KR20180023059A - 키를 안전하게 활성화 또는 취소하기 위한 컴퓨팅 디바이스 - Google Patents

키를 안전하게 활성화 또는 취소하기 위한 컴퓨팅 디바이스 Download PDF

Info

Publication number
KR20180023059A
KR20180023059A KR1020187005483A KR20187005483A KR20180023059A KR 20180023059 A KR20180023059 A KR 20180023059A KR 1020187005483 A KR1020187005483 A KR 1020187005483A KR 20187005483 A KR20187005483 A KR 20187005483A KR 20180023059 A KR20180023059 A KR 20180023059A
Authority
KR
South Korea
Prior art keywords
key
stored
previously used
certificate
computing device
Prior art date
Application number
KR1020187005483A
Other languages
English (en)
Other versions
KR101952395B1 (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 KR20180023059A publication Critical patent/KR20180023059A/ko
Application granted granted Critical
Publication of KR101952395B1 publication Critical patent/KR101952395B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/4401Bootstrapping
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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
    • 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/3263Cryptographic 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/3268Cryptographic 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 validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

키를 안전하게 활성화 또는 취소하기 위한 장치 및 방법이 개시된다. 예컨대, 장치는, 복수의 미리-저장된 키들을 저장하기 위한 저장 디바이스; 키 활성화 커맨드 및 미리-저장된 키들 중 하나의 키와 연관된 인증서를 수신하기 위한 통신 인터페이스; 및 프로세서를 포함할 수 있다. 프로세서는 저장 디바이스 및 통신 인터페이스에 커플링될 수 있으며, 미리-저장된 키 및 인증서로 장치를 리부팅하기 위한 키 활성화 커맨드를 구현하고 그리고 리부팅이 성공적인지를 결정하도록 구성될 수 있다.

Description

키를 안전하게 활성화 또는 취소하기 위한 컴퓨팅 디바이스
[0001] 본 출원은 "COMPUTING DEVICE TO SECURELY ACTIVATE OR REVOKE A KEY"라는 명칭으로 2015년 8월 26일자로 출원된 미국 특허 출원 일련번호 제14/836,651호의 계속 출원이고 이에 대한 우선권의 이득을 주장하며, 상기 출원은 인용에 의해 본원에 포함된다.
[0002] 본 발명은, 키(key)를 안전하게 활성화 또는 취소(revoke)하는 컴퓨팅 디바이스에 관한 것이다.
[0003] 현대의 컴퓨팅 디바이스들은 종종 보안 부팅(boot) 절차를 적용한다. 이러한 공통 절차는 통상적으로, 공개 키(public key)를 하드웨어에 앵커링(anchoring)하는 것에 의해 그리고 전체 소프트웨어 애플리케이션 이미지의 해시(hash)를 보유하는 서명된 인증서(signed certificate)로 애플리케이션 소프트웨어에 공개 키를 연쇄(chain)시키기 위해 이용된다. 공개 키는, 누구도 개인 키(private key)에 액세스할 수 없도록 보안 서버에 상주하는 개인 키와 쌍을 이룰 수 있으며, 개인 키는, 새로운 소프트웨어 애플리케이션 업그레이드들을 허용하여 컴퓨팅 디바이스들 상에서 실행되게 하기 위해, 서명된 인증서들을 생성할 수 있다.
[0004] 불운하게도, 개인 키가 손상된 경우들이 발생했으며, 그러한 경우들에서, 회사는 자신의 컴퓨팅 디바이스들을 제어하지 못할 수 있다. 일 예로서, 개인 키를 해킹한 해커는, 컴퓨팅 디바이스의 제어를 획득하기 위해(예컨대, 사용자의 프라이버시(privacy)를 침해하기 위해) 그들 특유의 소프트웨어 애플리케이션 이미지들을 컴퓨팅 디바이스에 송신할 수 있다.
[0005] 키를 안전하게 활성화 또는 취소하기 위한 장치 및 방법이 개시된다. 예컨대, 장치는, 복수의 미리-저장된(pre-stored) 키들을 저장하기 위한 저장 디바이스; 키 활성화 커맨드(activate key command), 및 미리-저장된 키들 중 하나의 키와 연관된 인증서를 수신하기 위한 통신 인터페이스; 및 프로세서를 포함할 수 있다. 프로세서는 저장 디바이스 및 통신 인터페이스에 커플링될 수 있으며, 미리-저장된 키 및 인증서로 장치를 리부팅(reboot)하기 위한 키 활성화 커맨드를 구현하고 그리고 리부팅이 성공적인지를 결정하도록 구성될 수 있다. 일 실시예에서, 리부팅이 성공적인 경우, 프로세서는, 추가적인 리부팅들을 위해 인증서를 저장하고 그리고 이전에 사용된 미리-저장된 키를 취소하기 위한 키 취소 커맨드(revoke key command)를 송출(issue)하도록 구성된다.
[0006] 도 1은, 실시예들이 실시될 수 있는 컴퓨팅 디바이스의 다이어그램이다.
[0007] 도 2는, 실시예들이 실시될 수 있는 시스템의 다이어그램이다.
[0008] 도 3은, 허가된 또는 허가되지 않은 부팅 프로세스를 도시하는 다이어그램이다.
[0009] 도 4는, 새로운 키가 활성화되었는지를 결정하기 위한 프로세스를 예시하는 다이어그램이다.
[0010] 도 5는, 공개 키를 취소하는 것을 예시하는 다이어그램이다.
[0011] 도 6은, 키 활성화 커맨드를 구현하기 위한 프로세스의 예를 예시하는 흐름도이다.
[0012] "예시적인" 또는 "예"라는 단어는, "예, 예시, 또는 예증으로서 기능하는 것"을 의미하도록 본원에서 사용된다. "예시적인" 것으로서 또는 "예"로서 본원에 설명된 임의의 양상 또는 실시예는, 다른 양상들 또는 실시예들에 비해 반드시 바람직하거나 유리한 것으로 해석될 필요는 없다.
[0013] 본원에서 사용되는 바와 같이, "컴퓨팅 시스템 또는 디바이스"라는 용어는, 랩톱 컴퓨터들, 태블릿들, 스마트폰들, 텔레비전들, 데스크톱 컴퓨터들, 가전 제품들, 셀룰러 텔레폰들, 와치(watch)들, 웨어러블(wearable) 디바이스들, IoT(Internet of Things) 디바이스들, 개인용 텔레비전 디바이스들, PDA(personal data assistant)들, 팜-탑(palm-top) 컴퓨터들, 무선 전자 메일 수신기들, 멀티미디어 인터넷 가능 셀룰러 텔레폰들, GPS(Global Positioning System) 수신기들, 무선 게이밍 제어기들, 자동차 디바이스들, 인터렉티브(interactive) 게임 디바이스들, 노트북들, 스마트북들, 넷북들, 모바일 텔레비전 디바이스들, 카메라들, 인포테인먼트(infotainment) 디바이스들, 게이트웨이들 등 또는 임의의 컴퓨팅 디바이스 또는 데이터 프로세싱 장치를 포함(그러나 이에 제한되지 않음)하는 컴퓨팅 디바이스의 임의의 형태를 지칭한다. 컴퓨팅 디바이스, 컴퓨팅 시스템, 장치 등의 용어들은 상호교환가능하게 사용될 수 있음이 인식되어야 한다.
[0014] 이후에 상세히 설명될 바와 같이, 인증서를 활성화시키는 데 활용될 수 있는 예시적인 컴퓨팅 디바이스(100)가 도 1에 예시된다. 버스(105)를 통해 전기적으로 커플링될 수 있는(또는 그렇지 않으면, 적절히 통신할 수 있는) 하드웨어 엘리먼트들을 포함하는 컴퓨팅 디바이스(100)가 도시된다. 하드웨어 엘리먼트들은, 하나 또는 그 초과의 범용 프로세서들 및/또는 하나 또는 그 초과의 특수-목적 프로세서들(이를테면, 디지털 신호 프로세싱 칩들, 그래픽 가속 프로세서들 등)을 제한 없이 포함하는 하나 또는 그 초과의 프로세서들(110); 하나 또는 그 초과의 입력 디바이스들(115)(예컨대, 키보드, 키패드, 터치스크린, 마우스 등); 적어도 디스플레이 디바이스(121)를 포함하고 그리고 스피커, 프린터 등을 제한 없이 더 포함할 수 있는 하나 또는 그 초과의 출력 디바이스들(120)을 포함할 수 있다. 부가적으로, 컴퓨팅 디바이스(100)는 매우 다양한 센서들(122)을 포함할 수 있다. 센서들(122)은, 클록(clock), ALS(ambient light sensor), 생체인식 센서(예컨대, 혈압 모니터 등), 가속도계, 자이로스코프, 자력계, 배향 센서, 지문 센서, 기상 센서(예컨대, 온도, 바람, 습도, 기압 등), GPS(Global Positioning Sensor), IR(infrared) 센서, 근접 센서, NFC(near field communication) 센서, 마이크로폰, 카메라를 포함할 수 있다. 컴퓨팅 디바이스(100)는 임의의 타입의 센서를 포함할 수 있음이 인식되어야 한다. 일 실시예에서, 이후에 설명될 바와 같이, 활성화 및 취소 기능들에 활용될 수 있는 하드웨어 엘리먼트들은, 보안 프로세서들, 하드웨어 보안 코어들, 암호-엔진(crypto-engine)들 등을 포함할 수 있다.
[0015] 컴퓨팅 디바이스(100)는, (로컬 및/또는 네트워크 액세스가능한 저장부를 제한 없이 포함할 수 있고, 그리고/또는 디스크 드라이브, 드라이브 어레이, 광학 저장 디바이스, 솔리드-스테이트(solid-state) 저장 디바이스, 이를테면, 프로그래밍가능하고, 플래시-업데이트가능한(flash-updateable) 식일 수 있는 "RAM(random access memory)" 및/또는 "ROM(read-only memory)"를 제한 없이 포함할 수 있는) 하나 또는 그 초과의 비-일시적인 저장 디바이스들(125)을 더 포함할 수 있다(그리고/또는 이들과 통신할 수 있음). 그러한 저장 디바이스들은, 다양한 파일 시스템들, 데이터베이스 구조들 등을 제한 없이 포함하는 임의의 적절한 데이터 저장소들을 구현하도록 구성될 수 있다.
[0016] 컴퓨팅 디바이스(100)는 또한, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 디바이스, 무선 통신 디바이스 및/또는 칩셋(이를테면, Bluetooth 디바이스, 802.11 디바이스, Wi-Fi 디바이스, WiMax 디바이스, 셀룰러 통신 디바이스들 등) 등을 제한 없이 포함할 수 있는 통신 서브시스템 및/또는 인터페이스(130)를 포함할 수 있다. 통신 서브시스템 및/또는 인터페이스(130)는, 데이터가 네트워크, 다른 컴퓨터 시스템들, 및/또는 본원에 설명된 임의의 다른 디바이스들과 교환되는 것을 허용할 수 있다. 많은 실시예들에서, 컴퓨팅 디바이스(100)는, 위에서 설명된 바와 같은 RAM 또는 ROM 디바이스를 포함할 수 있는 작업 메모리(135)를 더 포함할 것이다.
[0017] 컴퓨팅 디바이스(100)는 또한, 운영 시스템(140), 애플리케이션들(145), 디바이스 드라이버들, 실행가능 라이브러리들, 및/또는 다른 코드를 비롯하여, 작업 메모리(135) 내에 현재 로케이팅되어 있는 것으로 도시된 펌웨어 엘리먼트들, 소프트웨어 엘리먼트들을 포함할 수 있다. 일 실시예에서, 애플리케이션은, 본원에 설명되는 바와 같은 방법들을 구현하고 그리고/또는 시스템들을 구성하고 실시예들을 구현하도록 설계될 수 있다. 단지 예로서, 아래에 논의된 방법(들)에 관하여 설명된 하나 또는 그 초과의 절차들은, 컴퓨팅 디바이스(및/또는 컴퓨팅 디바이스 내의 프로세서)에 의해 실행가능한 코드 및/또는 명령들로 구현될 수 있고; 일 양상에서, 그런 다음, 그러한 코드 및/또는 명령들은, 본원에 설명된 실시예들에 따른 설명된 방법들에 따라, 하나 또는 그 초과의 동작들을 수행하도록 컴퓨팅 디바이스(100)를 구성하고 그리고/또는 적응시키는 데 사용될 수 있다.
[0018] 이들 명령들 및/또는 코드의 세트는, 위에서 설명된 저장 디바이스(들)(125)와 같은 비-일시적인 컴퓨터-판독가능 저장 매체 상에 저장될 수 있다. 일부 경우들에서, 저장 매체는 컴퓨터 시스템, 이를테면 컴퓨팅 디바이스(100) 내에 포함될 수 있다. 다른 실시예들에서, 저장 매체는 컴퓨터 시스템과 별개(예컨대, 컴팩트 디스크와 같은 착탈형 매체)일 수 있고, 그리고/또는 저장 매체가 저장 매체 상에 저장된 명령들/코드로 범용 컴퓨터를 프로그래밍하고, 구성하고 그리고/또는 적응시키는 데 사용될 수 있도록 설치 패키지로 제공될 수 있다. 이들 명령들은 컴퓨터화된 컴퓨팅 디바이스(100)에 의해 실행가능한 실행가능 코드의 형태를 취할 수 있고, 그리고/또는 (그 후, 컴퓨팅 디바이스(100) 상에서의 컴파일(compilation) 및/또는 설치 시에, (예컨대, 다양한 일반적으로 이용가능한 컴파일러들, 설치 프로그램들, 압축/압축해제 유틸리티들 등 중 임의의 것을 사용하여) 실행가능한 코드의 형태를 취하는) 소스 및/또는 설치가능한 코드의 형태를 취할 수 있다.
[0019] 특정 요건들에 따라 상당한 변형들이 이루어질 수 있음이 당업자들에게 명백할 것이다. 예컨대, 커스터마이징된 하드웨어가 또한 사용될 수 있고, 그리고/또는 특정 엘리먼트들이 본원에 설명된 실시예들을 구현하도록 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 결합들로 구현될 수 있다. 추가로, 네트워크 입력/출력 디바이스들과 같은 다른 컴퓨팅 디바이스들로의 연결이 이용될 수 있다.
[0020] 양상들은, 컴퓨팅 디바이스(100)에 대한 새로운 인증서를 활성화시키기 위한 장치 및 방법에 관한 것일 수 있다. 특히, 양상들은, 컴퓨팅 디바이스(100) 상에 저장된 미리-저장된 키 및 서버로부터 컴퓨팅 디바이스(100)에 송신되는 새로운 인증서를 활용하여 새로운 RoT(Root-of-Trust)로 전환하기 위한 장치 또는 방법에 관한 것일 수 있다.
[0021] 일 실시예에서, 이후에 더 상세히 설명될 바와 같이, 컴퓨팅 디바이스(100)는 복수의 미리-저장된 키들 및 통신 인터페이스(130)를 포함할 수 있다. 저장 디바이스(125)는 복수의 미리-저장된 키들을 저장할 수 있다. 복수의 미리-저장된 키들을 위한 다양한 타입들의 저장 디바이스들이 이후에 설명될 것이다. 통신 인터페이스(130)는, 원격 서버로부터, 키 활성화 커맨드, 및 미리-저장된 키들 중 하나와 연관된 인증서(예컨대, 이후 새로운 인증서로 지칭됨)를 수신할 수 있다. 새로운 인증서는 새로운 키에 의해 서명되고 그리고 새로운 키 그 자체는 아니라는 것이 유의되어야 한다. 다시 말해서, 이미 컴퓨팅 디바이스(100) 상에 있을 수 있지만 비활성이었던 키가 활성화된다. 일단 활성화되면, 설명될 바와 같이, 새로운 키로 작업하기 위해, 연관된 인증서가 교체될 필요가 있다. 앞서 설명된 바와 같이, 프로세서(110)는, 저장 디바이스(125) 및 통신 인터페이스(130)에 커플링될 수 있다. 컴퓨팅 디바이스(100)의 프로세서(110)는, 컴퓨팅 디바이스의 미리-저장된 키 및 서버로부터 수신된 새로운 인증서로 컴퓨팅 디바이스(100)를 리부팅시키기 위한 키 활성화 커맨드를 구현하도록 구성될 수 있다. 리부팅이 성공적인 경우, 프로세서(110)는, 미리-저장된 키를 활용하는 것과 함께 추가적인 리부팅들을 위해 새로운 인증서를 저장하도록 구성될 수 있고 그리고 이전에 사용된 미리-저장된 키의 사용을 취소할 수 있다. 반면에, 리부팅이 성공적이지 않은 경우, 프로세서(110)는, 이전에 사용된 미리-저장된 키 및 대응하는 이전에 사용된 인증서로 동작들을 재개하도록 구성될 수 있다. 일 실시예에서, 프로세서(110)는, 이후에 설명될 활성화 및 취소 기능들에 활용될 수 있는 특정 타입의 프로세싱 하드웨어 엘리먼트들, 이를테면, 보안 프로세서, 하드웨어 보안 코어, 암호-엔진 등일 수 있다.
[0022] 도 2를 부가적으로 참조하면, 원격 서버(200)와 함께 컴퓨팅 디바이스(100)가 도시된다. 원격 서버(200)는, 프로세서(210), 메모리(212), 및 컴퓨팅 디바이스(100)와 통신하기 위한 통신 인터페이스(230)를 포함할 수 있다. 일 실시예에서, 서버(200)는, 키 활성화 커맨드들, 예전 키 취소 커맨드들, 및 새로운 인증서들을 무선 또는 유선 링크(250)를 통해 컴퓨팅 디바이스(100)에 송신하기 위한 적절한 컴퓨팅 디바이스일 수 있다. 이러한 커맨드들은 이후에 더 상세히 논의될 것이다. 서버(200)는, 이러한 기능들을 수행하기 위한 프로세서, 메모리, 및 통신 인터페이스를 갖는 적절한 컴퓨팅 디바이스일 수 있음이 인식되어야 한다. 추가로, 서버(200)는 컴퓨팅 디바이스(100)와 이러한 타입들의 커맨드들을 가능하게 하기 위해 몇몇 부류의 비밀(secret)을 가져야 함이 인식되어야 한다. 예컨대, 새로운 인증서는, 컴퓨팅 디바이스(100)의 미리-저장된 공개 키들 중 하나와 연관된, 서버(200)의 개인 키에 의해 서명될 수 있다. 따라서, 공개 키는, 보안 서버(200)에 상주하는 개인 키와 쌍을 이룰 수 있다. 이는, 활용될 수 있는 비대칭적 공개/개인 암호화 기법의 일 타입이다. 그러나, 임의의 적절한 타입의 비대칭적 또는 대칭적 기법(들)이 활용될 수 있음이 인식되어야 한다.
[0023] 컴퓨팅 디바이스(100)는, 링크(250)를 거쳐 통신 인터페이스(130)를 통해 키 활성화 커맨드들, 예전 키 취소 커맨드들, 및 새로운 인증서들을 수신할 수 있다. 프로세서(110)의 제어 하에서, 컴퓨팅 디바이스(100)는 키 활성화 커맨드를 구현할 수 있다. 키 활성화 커맨드는, 컴퓨팅 디바이스 상에 저장된 새로운 미리-저장된 키 및 서버(200)로부터 수신된 새로운 인증서로 컴퓨팅 디바이스(100)의 리부팅을 커맨딩(command)하는 것을 포함할 수 있다. 그런 다음, 컴퓨팅 디바이스(100)는 리부팅이 성공적이었는지를 결정할 수 있다. 리부팅이 성공적이었는 경우, 프로세서(110)는, 새로운 미리-저장된 키의 사용과 함께 추가적인 리부팅들을 위한 새로운 인증서의 저장을 추가적으로 커맨딩할 수 있고, 그리고 또한, 이전에 사용된 미리-저장된 키를 취소할 수 있다. 반면에, 리부팅이 성공적이지 않았던 경우, 프로세서(110)는, 이전에 사용된 미리-저장된 키 및 대응하는 이전에 사용된 인증서로 동작들을 재개하도록 구성될 수 있다.
[0024] 도 3을 부가적으로 참조하여 일 예(300)가 제공될 수 있다. 일 예로서, 애플리케이션(예컨대, 원격 컴퓨팅 디바이스를 위한 운영 시스템 또는 특정 애플리케이션)이 부트 업(boot up)될 수 있다. 도 3에 도시된 바와 같이, 프로세서(110)에 의한 부트 업 동안, 보안 해싱 알고리즘(306)이 애플리케이션 이미지(304)에 적용되어 다이제스트(digest)(308)를 생성할 수 있다. 다음으로, 애플리케이션 다이제스트(308)의 제1 반복이 제품 ID와 연접(concatenate)(310)될 수 있고, 플래시 애플리케이션 다이제스트(314)를 계산하기 위해 이러한 값에 대해 추가적인 보안 해싱 알고리즘(312)이 수행될 수 있다. 추가로, 프로세서(110)는, RoT(Root of Trust)(330)의 공개 키들 중 하나에 의해 복호화되는 서명된 인증서(324)에 기반하여 인증서 다이제스트(350)를 계산할 수 있다. 예컨대, 4개의 공개 키들(공개 키 1(332), 공개 키 2(334), 공개 키 3(336), 및 공개 키 4(338))이 도시된다. 이러한 예에서, 제1 이전에 사용된 미리-저장된 공개 키(키 1(332))가 인증서 다이제스트(350)를 생성하는 데 활용된다. 해시(342)를 이용하여 시그니쳐(signature)가 검증될 수 있다(블록 340). 임의의 경우에서, 프로세서(110)는, 플래시 다이제스트(314)를 인증서 다이제스트(350)와 비교하기 위한 비교 기능(360)을 구현하며, 이미지 인증이 매칭하는 경우, 애플리케이션이 인증되고(통과됨(362)) 그리고 부팅하도록 허용된다(예컨대, 인증된 이미지(304)로부터의 부팅 또는 실행 코드로 진행함). 반면에, 이미지 인증이 매칭하지 않는 경우, 인증이 실패하고(실패됨(362)) 그리고 애플리케이션은 부팅하는 것이 허용되지 않는다. 따라서, 애플리케이션의 리부팅은 성공적이거나 성공적이지 않은 것 중 어느 하나이다.
[0025] 앞서 설명된 바와 같이, 불운하게도, 개인 키들이 손상된 경우들이 존재했으며, 그러한 경우, 컴퓨팅 디바이스를 제어하지 못할 수 있다. 일 예로서, 개인 키를 해킹한 해커는, 컴퓨팅 디바이스의 제어를 획득하기 위해(예컨대, 사용자의 프라이버시를 침해하기 위해) 그들 특유의 소프트웨어 애플리케이션 이미지들을 컴퓨팅 디바이스에 송신할 수 있다.
[0026] 일 실시예에 따르면, 컴퓨팅 디바이스(100)에 이미 저장되어 있는 미리-저장된 공개 키와 함께 새로운 인증서(324)가 애플리케이션의 부트 업을 제어하는 데 활용될 수 있도록, 키 활성화 커맨드 및 새로운 인증서가 서버(200)에 의해 컴퓨팅 디바이스(100)에 전송될 수 있다.
[0027] 이러한 실시예에서, 도 4를 부가적으로 참조하면, 프로세스(400)가 구현될 수 있으며, 여기서, 새로운 서명된 인증서(324) 및 새로운 미리-저장된 공개 키(예컨대, 공개 키 2(334))가 활용될 수 있다. 예컨대, 프로세스(400)는, 구현될 수 있는 상이한 타입들의 단계들을 예시한다. 먼저, 현재 단계(402)는, 오리지널(original) RoT(Root-of-Trust)가 활용되고 키 활성화 커맨드 및 키 취소 커맨드가 구현되지 않은(예컨대, 0으로 표시됨) 이전 절차를 예시한다.
[0028] 이러한 예에 따르면, 프로세서(110)는, 새로운 미리-저장된 공개 키(예컨대, 공개 키 2(334))가, 서버(200)로부터 전송된 새로운 수신된 서명된 인증서(324)와 함께 활용되는 키 활성화 커맨드 단계(404)를 구현할 수 있다. 단계(404)에서, 새로운 공개 키(공개 키 2(334))가 활성화되고 그리고 예전 서명된 인증서가 서버(200)로부터 수신된 새로운 서명된 인증서(324)로 교체된다. 이를 가능하게 하기 위해 적절한 패스워드들 및 시그니쳐들 또는 다른 암호 수단이 활용될 수 있음이 인식되어야 한다. 다음으로, 단계(406)에서, 프로세서(110)는, 공개 키 2(334) 및 새로운 서명된 인증서(324)를 활용하는 RoT(300)로 리부팅을 수행하고 그리고 그 리부팅이 성공적인지를 결정한다. 이를 가능하게 하기 위해 적절한 패스워드들 및 시그니쳐들이 활용될 수 있음이 인식되어야 한다. 일 예로서, 도 3을 참조하면, 이러한 예시에서는, 프로세서(110)는 서버(200)로부터 수신된 새로운 서명된 인증서(324)로 애플리케이션을 리부팅하도록 컴퓨팅 디바이스의 리부팅을 커맨딩한다. 애플리케이션 이미지(304)는, 제품 ID가 결부되는 다이제스트(308)를 계산하도록 적용되는 보안 해시 알고리즘(306)을 또한 가지며, 이러한 데이터는 플래시 다이제스트(314)를 계산하도록 적용되는 다른 보안 해시 알고리즘(312)을 또한 갖는다. 추가로, 프로세서(110)는, 인증서 다이제스트(350)를 생성하기 위해, 새롭게 활성화된 공개 키 2(334)에 의해 복호화되는 새로운 서명된 인증서(324)에 기반하여 인증서 다이제스트(350)를 계산한다. 해시(342)를 이용하여 시그니쳐가 검증될 수 있다(블록 340). 임의의 경우에서, 프로세서(110)는, 플래시 다이제스트(314)를 인증서 다이제스트(350)와 비교하기 위한 비교 기능(360)을 구현하며, 이미지 인증이 매칭하는 경우, 애플리케이션이 인증되고(통과됨(362)) 그리고 부팅하도록 허용된다. 반면에, 이미지 인증이 매칭하지 않는 경우, 인증이 실패하고(실패됨(362)) 그리고 애플리케이션은 부팅하는 것이 허용되지 않는다. 따라서, 애플리케이션의 리부팅은 성공적이거나 성공적이지 않은 것 중 어느 하나이다. 이러한 방식으로, 새로운 서명된 인증서(324) 및 새롭게 활성화된 공개 키 2(334)가 리부팅에 대해 성공적이었는지 여부가 테스트된다.
[0029] 리부팅이 성공적인 경우, 단계(408)에서, 새로운 서명된 인증서(324)가 프로세서(110)에 의해 영구적으로 저장되고 모든 추가적인 리부팅들에 대해 활용되며, RoT의 공개 키 2(334)가 활성화된다. 추가로, 이후 더 상세히 설명될 바와 같이, RoT의 공개 키 1(332)은 취소 커맨드에 의해 취소되고 그리고 삭제되거나 무효화되며, 다시 사용될 수 없다. 반면에, 단계(410)에서, 리부팅이 성공적이지 않은 경우, 프로세서(110)는, RoT의 이전에 사용된 미리-저장된 공개 키 1(332)및 대응하는 이전에 사용된 서명된 인증서로 동작들을 재개하도록 구성된다. 이러한 방식으로, 어떤 이유로 인해 새로운 서명된 인증서를 이용한 애플리케이션의 리부팅이 성공적이지 않은 경우, 오리지널 공개 키 및 오리지널 서명된 인증서와 함께 더 예전의 현재 단계(402)가 단순히 활용될 수 있다.
[0030] 앞서 설명된 절차 동안, 미리-저장된 키들 중 2개 또는 그 초과(예컨대, 키 1(332) 및 키 2(334))가 동시에 활성일 수 있음이 인식되어야 한다. 이러한 방식으로, 활성화 및 취소가 분리될 수 있다. 또한, 활성화 단계 후에 취소 단계가 후속되는 예가 설명되었지만, 취소 단계 이후의 활성화 단계와 같은 임의의 적절한 순서가 활용될 수 있음이 인식되어야 한다. 부가적으로, 다수의 활성 키들 및 취소된 키들이 프로세스 동안 활용될 수 있으며, 앞서 설명된 프로세스는 단지 일 예이므로, 임의의 적절한 프로세스가 활용될 수 있다. 추가로, 프로세서(110)(예컨대, 보안 프로세서, 하드웨어 보안 코어, 암호-엔진 등)는 비허가된 키 활성화 커맨드들 및 비허가된 키 취소 커맨드들을 방지하도록 구성될 수 있음이 인식되어야 한다. 예컨대, 키 활성화 및 취소 커맨드들은 서버(200)에서 적절한 개인 키들로 서명될 수 있고 그리고 적절하게 쌍을 이룬 공개 키들로 컴퓨팅 디바이스(100)의 프로세서(110)에 의해 인증될 수 있다. 그러나, 키 활성화 및 취소 커맨드들의 인증을 위한 임의의 적절한 인증 기법이 하드웨어 또는 소프트웨어로 활용될 수 있음이 인식되어야 한다.
[0031] 이러한 방법론을 활용함으로써, 프로세스(400)는, 전환 동안 어떠한 통신에도 의존함이 없이(통신은 장애들에 민감할 수 있음) 안전한 루트(root) 전환을 달성하고 그리고 다수의 애플리케이션 이미지들을 저장하기 위한 플래시 메모리 영역에 의존하지 않는다(플래시 메모리 영역은 또한 장애들에 민감하거나 사이즈 측면에서 제한될 수 있음). 이러한 기능성은, 제한된 메모리 및 프로세싱 능력을 갖는 원격 IoT(Internet of Things) 디바이스들(예컨대, 온도 조절 장치들, 조명들, 원격 센서들, 연기 검출기들 등)에 유용할 수 있음이 인식되어야 한다. 따라서, 컴퓨팅 디바이스가 IoT 디바이스와 같은 원격 디바이스인 예시들에서, 이러한 프로세스는 매우 유용할 수 있다.
[0032] 특히, 이러한 동작들이 인간의 어떠한 도움도 없이 원격 서버(200)로부터의 활성화 커맨드들에 기반하여 원격으로 구현될 수 있는 IoT 디바이스들과 같은 원격 컴퓨팅 디바이스들(100)의 경우, 그리고 많은 경우에, 심지어 소유자가 이러한 동작들을 인지함이 없이도, 새로운 공개 키 및 새로운 서명된 인증서의 사용은, 개인 키가 유출되었을 수 있고 해커가 이러한 원격 컴퓨팅 디바이스들을 잠재적으로 제어할 수 있는 경우들에 활용될 수 있다. IoT 디바이스들의 동작에서, 이러한 구현은 수백만 개의 원격 디바이스들을 커버할 수 있음이 인식되어야 한다. 따라서, 이전 프로세스에서 설명된 바와 같이, 새로운 서명된 인증서 및 새로운 공개 키의 사용을 위한 활성화 커맨드는, "데드(dead)" 디바이스들이 발생할 개연성이 있지 않도록, 폴 백(fall back)과 함께 항상 성공적으로 발생해야 한다. 이러한 방식으로, 앞서 설명된 프로세스의 실시예들은, 예전 공개 키의 취소를 새로운 공개 키의 활성화와 분리시킴으로써, 그리고 컴퓨팅 디바이스가, 새로운 공개 키가 성공적이라는 것을 결정하고 새로운 공개 키가 성공적인 경우에만 예전 공개 키를 취소되게 할 안전한 스테이지를 허용함으로써, 매우 유익한 구현을 제공한다. 새로운 서명된 인증서 및 새로운 공개 키가 실패하는 경우라 하더라도, 예전 공개 키 및 예전 서명된 인증서는 신뢰될 수 있다.
[0033] 앞서 설명된 컴퓨팅 디바이스(100) 및 서버(200)의 통신 인터페이스들은, 키 활성화 커맨드, 새로운 서명된 인증서, 및 예전 키 취소 커맨드가 무선 링크(250)를 통해 송신되는 무선 인터페이스들일 수 있음이 인식되어야 한다. 이는 컴퓨팅 디바이스(100)가 제한된 메모리들 및 프로세서들을 갖는 원격 디바이스들, 이를테면 IoT 디바이스들인 경우일 수 있고, 이는 수백만 개의 상이한 원격 디바이스들을 포함할 수 있다. 그러나, 유선 링크들이 또한 활용될 수 있음이 인식되어야 한다. 부가적으로, 앞서 설명된 프로세스는 임의의 타입의 컴퓨팅 디바이스에 대해 활용될 수 있고 이전 설명들은 단지 예들임이 인식되어야 한다. 또한, 일단 리부팅이 성공적이면, 새로운 서명된 인증서가 수용되고, 새로운 공개 키가 활성화되고, 그리고 예전 공개 키가 취소되며, 프로세서(100)의 제어 하에 있는 컴퓨팅 디바이스(110)가 확인응답 메시지를 서버(200)에 송신할 수 있음으로써, 서버(200)는, 원격 컴퓨팅 디바이스(100)가 인증 목적들을 위해 새로운 서명된 인증서 및 새로운 공개 키를 현재 활용하고 있다는 기록들을 유지할 수 있음이 인식되어야 한다.
[0034] 도 5를 부가적으로 참조하면, 이전에 사용된 미리-저장된 공개 키를 취소하는 예시가 예시된다. 설명될 바와 같이, 일 실시예에서, 프로세서(110)는, 이전에 사용된 미리-저장된 공개 키와 연관된 하드웨어 퓨즈(fuse)가 블로잉(blow)될 것을 커맨딩할 수 있다. 도 5의 예에서 볼 수 있는 바와 같이, 시스템(500)이 구현될 수 있으며, 여기서, 각각의 키가 활성 키, 취소된 키, 또는 비활성 키 중 하나인 4개의 공개 키들(330)(예컨대, 공개 키 1(332), 공개 키 2(334), 공개 키 3(336), 공개 키 4(338))이 하드웨어 설계(510)에서 구현될 수 있다. 일 예로서, 활성 키들, 취소된 키들, 또는 비활성 키들은 OTP(one time programmable) 메모리들을 통해 구현될 수 있다. 이러한 예에서, 설명될 바와 같이, 공개 키 1(332)은 취소될 수 있고 공개 키 2(334)는 활성화될 수 있는 반면, 공개 키들(336, 338)은 비활성으로 유지될 수 있다. 이러한 방식으로, 각각의 키의 상태(예컨대, 활성, 취소됨, 비활성)가 각각의 OTP 블록에 의해 저장된다. 이러한 예에서, 앞서 설명된 바와 같이, 공개 키 1(332)이 취소되는, 1로 셋팅된 키 취소 커맨드 벡터(502)가 셋팅될 수 있으며, 이는 라인(530)을 통해 볼 수 있다. 이러한 예시에서, 이전에 사용된 미리-저장된 공개 키 1(332)과 연관된 하드웨어 퓨즈가 블로잉된다. 이러한 예시에서, 이전에 사용된 미리-저장된 공개 키 1(332)은 결코 다시 사용되지 않을 수 있다. 이는, 1로 셋팅된 키 활성화 커맨드 벡터(504)를 통해 활성화되는 새로운 미리-저장된 공개 키 2(334)에 기반할 수 있으며, 이러한 경우, 컴퓨팅 디바이스(100) 상에서의 애플리케이션의 리부팅에 대해 공개 키 2(334)가 활용될 것이다(라인(520) 참조). 따라서, 일 예에서, 공개 키들은 키 활성화 커맨드 벡터들(504)을 통해 활성화되고 그리고 키 취소 커맨드 벡터들(502)을 통해 취소될 수 있다. 추가로, 취소된 키들의 경우, 하드웨어 퓨즈들은, 이전에 사용된 미리-저장된 키들이 결코 다시 활용되지 않을 수 있도록 블로잉될 수 있다. 이전 예는 4개의 공개 키들(330)(예컨대, 공개 키 1(332), 공개 키 2(334), 공개 키 3(336), 공개 키 4(338))의 RoT(root of trust)를 예시적인 구현으로서 활용했음이 인식되어야 한다. 그러나, 임의의 적절한 수의 키들이 대응하는 키 활성화 커맨드들 및 키 취소 커맨드들과 함께 활용될 수 있음이 인식되어야 한다. 공개 키 1 및 공개 키 2가 활용되고 있는 예는 단지 예들이다. 공개 키들 3, 4 등이 또한 활용될 수 있다. 또한, 앞서 설명된 프로세스에 따라 임의의 적절한 수의 이용가능 공개 키들이 활용될 수 있다. 따라서, 수정가능하지 않은 방식으로 공개 키들 또는 그들의 다이제스트를 저장하기 위해 OTP 블록들(때때로 eFuse들로 지칭됨)이 사용될 수 있다. 키가 생산 시에 알려지고 고정된 경우, 대안적인 저장 수단은 ROM을 활용하는 것일 수 있음이 인식되어야 한다. 임의의 적절한 타입의 "저장 디바이스"가 활용될 수 있음이 인식되어야 한다.
[0035] 도 6을 부가적으로 참조하여, 앞서 설명된 실시예들을 구현하기 위한 방법 프로세스(600)가 이후 논의될 것이다. 블록(602)에서, 컴퓨팅 디바이스(100)는 서버(200)로부터 키 활성화 커맨드를 수신한다. 블록(604)에서, 컴퓨팅 디바이스(100)는, 컴퓨팅 디바이스(100) 상에 저장된 복수의 미리-저장된 키들 중 하나와 연관된 서명된 인증서를 서버(200)로부터 수신한다. 블록(606)에서, 컴퓨팅 디바이스(100)는 키 활성화 커맨드를 구현한다. 특히, 블록(608)에서, 컴퓨팅 디바이스(100)는, 미리-저장된 공개 키 및 새로운 서명된 인증서로 애플리케이션을 리부팅한다. 다음으로, 결정 블록(610)에서, 컴퓨팅 디바이스(100)는 리부팅이 성공적이었는지 여부를 결정한다. 리부팅이 성공적이었는 경우, 컴퓨팅 디바이스(100)는, 이전에 사용된 미리-저장된 공개 키를 취소하고 새로운 서명된 인증서를 저장하며, 새로운 서명된 인증서 및 미리-저장된 공개 키로 추가적인 리부팅들을 구현한다(블록 614). 반면에, 리부팅이 성공적이지 않았던 경우, 컴퓨팅 디바이스(100)는, 이전에 사용된 미리-저장된 공개 키 및 대응하는 이전에 사용된 서명된 인증서로 동작들을 재개하도록 구성된다(블록 612).
[0036] 앞서 설명된 본 발명의 양상들은, 앞서 설명된 바와 같이, 디바이스들(예컨대, 컴퓨팅 디바이스(100))의 프로세서들(예컨대, 프로세서(110))에 의한 명령들의 실행과 함께 구현될 수 있음이 인식되어야 한다. 특히, 프로세서들을 포함하는(그러나 이에 제한되지 않음) 디바이스들의 회로는, 본 발명의 실시예들에 따른 방법들 또는 프로세스들(예컨대, 도 2-6의 프로세스들 및 기능들)을 실행하기 위해, 명령들의 실행, 루틴, 또는 프로그램의 제어 하에 동작할 수 있다. 예컨대, 그러한 프로그램은, (예컨대, 메모리 및/또는 다른 위치들에 저장된) 펌웨어 또는 소프트웨어로 구현될 수 있고, 프로세서들 및/또는 디바이스들의 다른 회로에 의해 구현될 수 있다. 추가로, 프로세서, 마이크로프로세서, 회로, 제어기 등의 용어들은 로직, 커맨드들, 명령들, 소프트웨어, 펌웨어, 기능 등을 실행하는 것이 가능한 임의의 타입의 로직 또는 회로를 지칭한다는 것이 인식되어야 한다.
[0037] 디바이스들이 무선 디바이스들인 경우, 이들은 임의의 적합한 무선 통신 기술에 기초하거나 또는 그렇지 않으면 이를 지원하는 무선 네트워크를 통해서 하나 또는 그 초과의 무선 통신 링크들을 통해 통신할 수 있음이 인식되어야 한다. 예컨대, 일부 양상들에서, 무선 디바이스 및 다른 디바이스들은 무선 네트워크를 포함하는 네트워크와 연관될 수 있다. 일부 양상들에서, 네트워크는 인체 영역 네트워크 또는 개인 영역 네트워크(예컨대, 초-광대역 네트워크)를 포함할 수 있다. 일부 양상들에서, 네트워크는 로컬 영역 네트워크 또는 광역 네트워크를 포함할 수 있다. 무선 디바이스는, 예컨대, 3G, LTE, Advanced LTE , 4G, 5G, CDMA, TDMA, OFDM, OFDMA, WiMAX, 및 WiFi와 같은 다양한 무선 통신 기술들, 프로토콜들, 또는 표준들 중 하나 또는 그 초과를 지원하거나 또는 그렇지 않으면 사용할 수 있다. 유사하게, 무선 디바이스는 다양한 대응하는 변조 또는 멀티플렉싱 방식들 중 하나 또는 그 초과를 지원하거나 또는 그렇지 않으면 사용할 수 있다. 따라서, 무선 디바이스는, 위의 무선 통신 기술들 또는 다른 무선 통신 기술들을 사용하여 하나 또는 그 초과의 무선 통신 링크들을 통해 설정 및 통신하기 위한 적절한 컴포넌트들(예컨대, 에어(air) 인터페이스들)을 포함할 수 있다. 예컨대, 디바이스는, 무선 매체를 통한 통신을 용이하게 하는 다양한 컴포넌트들(예컨대, 신호 생성기들 및 신호 프로세서들)을 포함할 수 있는 연관된 송신기 및 수신기 컴포넌트들(예컨대, 송신기 및 수신기)을 갖는 무선 트랜시버를 포함할 수 있다. 따라서, 잘 알려져 있는 바와 같이, 무선 디바이스는 다른 모바일 디바이스들, 셀 폰들, 다른 유선 및 무선 컴퓨터들, 인터넷 웹 사이트들 등과 무선으로 통신할 수 있다.
[0038] 본원에서의 교시들은 다양한 장치들(예컨대, 디바이스들)로 통합될 수 있다(예컨대, 그 장치들 내에 구현되거나 또는 그 장치들에 의해 수행될 수 있음). 예컨대, 본원에 교시된 하나 또는 그 초과의 양상들은, 폰(예컨대, 셀룰러 폰), "PDA(personal data assistant)", 태블릿, 웨어러블 디바이스, IoT(Internet of Things) 디바이스, 모바일 컴퓨터, 랩톱 컴퓨터, 엔터테인먼트 디바이스(예컨대, 뮤직 또는 비디오 디바이스), 헤드셋(예컨대, 헤드폰들, 이어피스(earpiece) 등), 의료 디바이스(예컨대, 생체인식 센서, 심박수 모니터, 보수계, EKG 디바이스 등), 사용자 I/O 디바이스, 컴퓨터, 유선 컴퓨터, 고정형 컴퓨터, 데스크톱 컴퓨터, 서버, 매장(point-of-sale) 디바이스, 셋-톱 박스, 또는 임의의 다른 타입의 컴퓨팅 디바이스로 통합될 수 있다. 이러한 디바이스들은 상이한 전력 및 데이터 요건들을 가질 수 있다.
[0039] 일부 양상들에서, 무선 디바이스는 통신 시스템에 대한 액세스 디바이스(예컨대, Wi-Fi 액세스 포인트)를 포함할 수 있다. 그러한 액세스 디바이스는, 예컨대, 유선 또는 무선 통신 링크를 통해 다른 네트워크(예컨대, 광역 네트워크, 이를테면 인터넷 또는 셀룰러 네트워크)로의 연결을 제공할 수 있다. 따라서, 액세스 디바이스는, 다른 디바이스(예컨대, WiFi 스테이션)가 다른 네트워크 또는 몇몇 다른 기능성에 액세스하는 것을 가능하게 할 수 있다.
[0040] 정보 및 신호들은 다양한 상이한 기술들 및 기법들 중 임의의 기술 및 기법을 사용하여 표현될 수 있음을 당업자들은 이해할 것이다. 예컨대, 위의 설명 전반에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광학 필드들 또는 광학 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.
[0041] 본원에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 결합들로서 구현될 수 있음을 당업자들은 추가적으로 인식할 것이다. 하드웨어, 펌웨어, 또는 소프트웨어의 이러한 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 그들의 기능의 관점들에서 일반적으로 위에 설명되었다. 이러한 기능이 하드웨어로서 구현되는지, 펌웨어로서 구현되는지, 또는 소프트웨어로서 구현되는지는 특정 애플리케이션 및 전체 시스템에 부과된 설계 제한들에 의존한다. 당업자들은 설명된 기능을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수 있지만, 이러한 구현 결정들이 본 발명의 범위를 벗어나는 것으로 해석되어서는 안 된다.
[0042] 본원에 개시된 실시예들과 관련하여 설명되는 다양한 예시적인 로직 블록들, 모듈들, 및 회로들은 범용 프로세서, DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(field programmable gate array), SoC(system on a chip) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들 또는 본원에 설명된 기능들을 수행하도록 설계되는 이들의 임의의 조합으로 구현 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있거나, 임의의 타입의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 조합, 예컨대 DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 또는 그 초과의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수 있다.
[0043] 본원에 개시된 실시예들과 관련하여 설명되는 알고리즘 또는 방법의 단계들은 직접적으로 하드웨어로, 펌웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이들의 결합으로 구현될 수 있다. 소프트웨어 모듈은, RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 착탈식 디스크, CD-ROM, 또는 당업계에 알려져 있는 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는 프로세서에 커플링되고, 그러한 프로세서는 저장 매체로부터 정보를 판독하고, 저장 매체에 정보를 기입할 수 있다. 대안으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC는 사용자 단말에 상주할 수 있다. 대안으로, 프로세서 및 저장 매체는 사용자 단말에서 이산 컴포넌트들로서 상주할 수 있다.
[0044] 하나 또는 그 초과의 예시적인 실시예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 컴퓨터 프로그램 제품으로서 소프트웨어로 구현되면, 이 기능들은 컴퓨터-판독가능 매체에 하나 또는 그 초과의 명령 또는 코드로서 저장되거나 이를 통해 송신될 수 있다. 컴퓨터-판독가능 매체는, 일 장소에서 다른 장소로의 컴퓨터 프로그램의 전달을 가능하게 하는 임의의 매체를 포함하는 통신 매체 및 컴퓨터 저장 매체 둘 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 제한이 아닌 예로서, 그러한 컴퓨터-판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 반송 또는 저장하는 데 사용될 수 있고, 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결수단(connection)이 컴퓨터-판독가능 매체로 적절히 지칭된다. 예컨대, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선, DSL(digital subscriber line), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들을 사용하여 웹 사이트, 서버 또는 다른 원격 소스로부터 송신된다면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 본원에서 사용되는 디스크(disk) 및 디스크(disc)는 CD(compact disc), 레이저 디스크(disc), 광학 디스크(disc), DVD(digital versatile disc), 플로피 디스크(disk) 및 blu-ray 디스크(disc)를 포함하며, 여기서 디스크(disk)들은 일반적으로 데이터를 자기적으로 재생하지만, 디스크(disc)들은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 상기의 것들의 결합들이 또한 컴퓨터-판독가능 매체의 범위 내에 포함되어야 한다.
[0045] 개시된 실시예들의 이전 설명은 임의의 당업자가 본 발명을 사용 또는 실시할 수 있도록 제공된다. 이들 실시예들에 대한 다양한 변형들은 당업자들에게 용이하게 명백할 것이며, 본원에 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않으면서 다른 실시예들에 적용될 수 있다. 따라서, 본 발명은 본원에 도시된 실시예들로 제한되도록 의도되는 것이 아니라, 본원에 개시된 원리들 및 신규한 특성들과 일치하는 가장 넓은 범위에 부합할 것이다.

Claims (19)

  1. 하드웨어 장치로서,
    복수의 미리-저장된 키(pre-stored key)들을 저장하기 위한 저장 디바이스;
    서버로부터, 키 활성화 커맨드(activate key command), 및 상기 미리-저장된 키들 중 하나와 연관된 인증서를 수신하기 위한 통신 인터페이스; 및
    상기 저장 디바이스 및 상기 통신 인터페이스에 커플링되는 프로세서를 포함하며,
    상기 프로세서는,
    상기 미리-저장된 키들 중 하나, 및 상기 미리-저장된 키들 중 하나와 연관된, 상기 서버로부터 수신된 상기 인증서로 상기 장치를 리부팅(reboot)하기 위한 상기 키 활성화 커맨드를 구현하고,
    상기 리부팅이 성공적인지를 결정
    하도록 구성되고,
    상기 리부팅이 성공적이지 않은 경우, 상기 프로세서는, 이전에 사용된 미리-저장된 키 및 대응하는 이전에 사용된 인증서로 동작들을 재개하도록 구성되고,
    상기 리부팅이 성공적인 경우, 상기 프로세서는 추가로, 추가적인 리부팅들을 위해 상기 인증서를 저장하고 그리고 이전에 사용된 미리-저장된 키를 취소(revoke)하도록 구성되는, 하드웨어 장치.
  2. 제1항에 있어서,
    상기 리부팅이 성공적인 경우, 상기 프로세서는 추가로, 상기 이전에 사용된 미리-저장된 키를 취소하기 위한 키 취소 커맨드(revoke key command)를 송출(issue)하도록 구성되는, 하드웨어 장치.
  3. 제1항에 있어서,
    적어도, 활성화를 위한 미리-저장된 키 및 취소를 위한 미리-저장된 키를 포함하여, 상기 복수의 미리-저장된 키들 중 2개 또는 그 초과는 동시에 활성인, 하드웨어 장치.
  4. 제1항에 있어서,
    상기 프로세서는 추가로, 비허가된 키 활성화 커맨드들 및 비허가된 키 취소 커맨드들을 방지하도록 구성되는, 하드웨어 장치.
  5. 제1항에 있어서,
    상기 이전에 사용된 미리-저장된 키를 취소하는 것은, 상기 이전에 사용된 미리-저장된 키와 연관된 하드웨어 퓨즈(fuse)가 블로잉(blow)되는 것을 상기 프로세서가 커맨딩(command)하는 것을 더 포함하는, 하드웨어 장치.
  6. 제1항에 있어서,
    상기 통신 인터페이스는 무선 인터페이스이고, 그리고 상기 키 활성화 커맨드는 무선으로 송신되는, 하드웨어 장치.
  7. 방법으로서,
    컴퓨팅 디바이스에 의해,
    서버로부터, 상기 컴퓨팅 디바이스 상에 저장된 복수의 미리-저장된 키들 중 하나와 연관된 인증서, 및 키 활성화 커맨드를 수신하는 단계; 및
    상기 키 활성화 커맨드를 구현하는 단계
    를 포함하며,
    상기 키 활성화 커맨드를 구현하는 단계는,
    상기 미리-저장된 키들 중 하나, 및 상기 미리-저장된 키들 중 하나와 연관된, 상기 서버로부터 수신된 상기 인증서로 상기 컴퓨팅 디바이스를 리부팅하는 단계,
    상기 리부팅이 성공적인지를 결정하는 단계
    를 포함하고,
    상기 방법은, 상기 리부팅이 성공적이지 않은 경우, 이전에 사용된 미리-저장된 키 및 대응하는 이전에 사용된 인증서로 동작들을 재개하는 단계를 더 포함하고, 그리고 상기 리부팅이 성공적인 경우, 추가적인 리부팅들을 위해 상기 인증서를 저장하고 그리고 이전에 사용된 미리-저장된 키를 취소하는 단계를 더 포함하는, 방법.
  8. 제7항에 있어서,
    적어도, 활성화를 위한 미리-저장된 키 및 취소를 위한 미리-저장된 키를 포함하여, 상기 복수의 미리-저장된 키들 중 2개 또는 그 초과는 동시에 활성인, 방법.
  9. 제7항에 있어서,
    비허가된 키 활성화 커맨드들 및 비허가된 키 취소 커맨드들을 방지하는 단계를 더 포함하는, 방법.
  10. 제7항에 있어서,
    상기 이전에 사용된 미리-저장된 키를 취소하는 단계는, 상기 이전에 사용된 미리-저장된 키와 연관된 하드웨어 퓨즈가 블로잉되는 것을 커맨딩하는 단계를 더 포함하는, 방법.
  11. 제7항에 있어서,
    상기 키 활성화 커맨드는 서버로부터 상기 컴퓨팅 디바이스로 무선으로 송신되는, 방법.
  12. 코드를 포함하는 비-일시적인 컴퓨터-판독가능 저장 매체로서,
    상기 코드는, 컴퓨팅 디바이스의 프로세서에 의해 실행되는 경우, 상기 프로세서로 하여금, 상기 컴퓨팅 디바이스에 의해,
    서버로부터, 상기 컴퓨팅 디바이스 상에 저장된 복수의 미리-저장된 키들 중 하나와 연관된 인증서, 및 키 활성화 커맨드를 수신하게 하고; 그리고
    상기 키 활성화 커맨드를 구현하게 하며,
    상기 키 활성화 커맨드를 구현하게 하는 것은,
    상기 미리-저장된 키들 중 하나, 및 상기 미리-저장된 키들 중 하나와 연관된, 상기 서버로부터 수신된 상기 인증서로 상기 컴퓨팅 디바이스를 리부팅하는 것,
    상기 리부팅이 성공적인지를 결정하는 것
    을 포함하고,
    상기 비-일시적인 컴퓨터-판독가능 저장 매체는, 상기 리부팅이 성공적이지 않은 경우, 이전에 사용된 미리-저장된 키 및 대응하는 이전에 사용된 인증서로 동작들을 재개하기 위한 코드를 더 포함하고, 그리고 상기 리부팅이 성공적인 경우, 추가적인 리부팅들을 위해 상기 인증서를 저장하고 그리고 이전에 사용된 미리-저장된 키를 취소하기 위한 코드를 더 포함하는, 비-일시적인 컴퓨터-판독가능 저장 매체.
  13. 제12항에 있어서,
    적어도, 활성화를 위한 미리-저장된 키 및 취소를 위한 미리-저장된 키를 포함하여, 상기 복수의 미리-저장된 키들 중 2개 또는 그 초과는 동시에 활성인, 비-일시적인 컴퓨터-판독가능 저장 매체.
  14. 제12항에 있어서,
    비허가된 키 활성화 커맨드들 및 비허가된 키 취소 커맨드들을 방지하기 위한 코드를 더 포함하는, 비-일시적인 컴퓨터-판독가능 저장 매체.
  15. 제12항에 있어서,
    상기 이전에 사용된 미리-저장된 키를 취소하는 것은, 상기 이전에 사용된 미리-저장된 키와 연관된 하드웨어 퓨즈가 블로잉되는 것을 커맨딩하기 위한 코드를 더 포함하는, 비-일시적인 컴퓨터-판독가능 저장 매체.
  16. 제12항에 있어서,
    상기 키 활성화 커맨드는 서버로부터 상기 컴퓨팅 디바이스로 무선으로 송신되는, 비-일시적인 컴퓨터-판독가능 저장 매체.
  17. 컴퓨터 장치로서,
    복수의 미리-저장된 키들을 저장하기 위한 수단;
    서버로부터, 상기 복수의 미리-저장된 키들 중 하나와 연관된 인증서, 및 키 활성화 커맨드를 수신하기 위한 수단; 및
    상기 키 활성화 커맨드를 구현하기 위한 수단을 포함하며,
    상기 키 활성화 커맨드를 구현하기 위한 수단은,
    상기 미리-저장된 키들 중 하나, 및 상기 미리-저장된 키들 중 하나와 연관된, 상기 서버로부터 수신된 상기 인증서로 상기 컴퓨터 장치를 리부팅하기 위한 수단,
    상기 리부팅이 성공적인지를 결정하기 위한 수단
    을 포함하고,
    상기 컴퓨터 장치는, 상기 리부팅이 성공적이지 않은 경우, 이전에 사용된 미리-저장된 키 및 대응하는 이전에 사용된 인증서로 동작들을 재개하기 위한 수단을 더 포함하고, 그리고 상기 리부팅이 성공적인 경우, 추가적인 리부팅들을 위해 상기 인증서를 저장하기 위한 수단 및 이전에 사용된 미리-저장된 키를 취소하기 위한 수단을 더 포함하는, 컴퓨터 장치.
  18. 제17항에 있어서,
    적어도, 활성화를 위한 미리-저장된 키 및 취소를 위한 미리-저장된 키를 포함하여, 상기 복수의 미리-저장된 키들 중 2개 또는 그 초과는 동시에 활성인, 컴퓨터 장치.
  19. 제17항에 있어서,
    비허가된 키 활성화 커맨드들 및 비허가된 키 취소 커맨드들을 방지하기 위한 수단을 더 포함하는, 컴퓨터 장치.
KR1020187005483A 2015-08-26 2016-07-15 키를 안전하게 활성화 또는 취소하기 위한 컴퓨팅 디바이스 KR101952395B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/836,651 2015-08-26
US14/836,651 US9798887B2 (en) 2015-08-26 2015-08-26 Computing device to securely activate or revoke a key
PCT/US2016/042605 WO2017034700A1 (en) 2015-08-26 2016-07-15 Computing device to securely activate or revoke a key

Publications (2)

Publication Number Publication Date
KR20180023059A true KR20180023059A (ko) 2018-03-06
KR101952395B1 KR101952395B1 (ko) 2019-02-26

Family

ID=56557908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187005483A KR101952395B1 (ko) 2015-08-26 2016-07-15 키를 안전하게 활성화 또는 취소하기 위한 컴퓨팅 디바이스

Country Status (7)

Country Link
US (1) US9798887B2 (ko)
EP (1) EP3342094A1 (ko)
JP (1) JP6569006B2 (ko)
KR (1) KR101952395B1 (ko)
CN (1) CN107925570B (ko)
BR (1) BR112018003471A2 (ko)
WO (1) WO2017034700A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656502B (zh) * 2016-09-26 2020-09-01 上海兆芯集成电路有限公司 计算机系统及安全执行的方法
JP2018174448A (ja) * 2017-03-31 2018-11-08 富士通株式会社 通信装置、データ取得システム、データ取得制御方法
TWI648741B (zh) * 2017-06-05 2019-01-21 慧榮科技股份有限公司 資料儲存裝置之控制器以及進階資料抹除的方法
US10862831B2 (en) * 2017-08-03 2020-12-08 Digital 14 Llc System, method, and computer program product providing end-to-end security of centrally accessible group membership information
US11496519B1 (en) * 2019-11-29 2022-11-08 Amazon Technologies, Inc. Managing security in isolated network environments
KR20220026079A (ko) 2020-08-25 2022-03-04 삼성전자주식회사 스토리지 장치
US11423154B2 (en) * 2020-10-26 2022-08-23 Micron Technology, Inc. Endpoint authentication based on boot-time binding of multiple components
SE2250569A1 (en) * 2022-05-11 2023-11-12 Scania Cv Ab Methods and control arrangements for replacing a compromised certificate authority asymmetric key pair used by vehicles
CN117061251B (zh) * 2023-10-12 2024-01-30 兴原认证中心有限公司 一种用于认证平台的pki证书暂停撤销方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192610A1 (en) * 2006-02-10 2007-08-16 Chun Dexter T Method and apparatus for securely booting from an external storage device
US8019084B1 (en) * 2001-04-23 2011-09-13 Diebold, Incorporated Automated banking machine remote key load system and method
US20130091345A1 (en) * 2011-10-06 2013-04-11 Cisco Technology, Inc. Authentication of computer system boot instructions
US20130111203A1 (en) * 2011-10-28 2013-05-02 GM Global Technology Operations LLC Method to replace bootloader public key
US8560823B1 (en) * 2007-04-24 2013-10-15 Marvell International Ltd. Trusted modular firmware update using digital certificate

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4558176A (en) * 1982-09-20 1985-12-10 Arnold Mark G Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
US4972472A (en) 1985-03-15 1990-11-20 Tandem Computers Incorporated Method and apparatus for changing the master key in a cryptographic system
CN1973480A (zh) * 2004-04-21 2007-05-30 松下电器产业株式会社 内容提供系统、信息处理设备以及存储卡
US7870383B2 (en) * 2006-02-09 2011-01-11 International Business Machines Corporation System, method and program to update certificates in a computer
US20100030897A1 (en) * 2006-12-20 2010-02-04 Rob Stradling Method and System for Installing a Root Certificate on a Computer With a Root Update Mechanism
JP5096022B2 (ja) * 2007-03-15 2012-12-12 株式会社リコー 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム
GB2454640A (en) * 2007-07-05 2009-05-20 Vodafone Plc Received message verification
US8694761B2 (en) 2008-12-31 2014-04-08 Vincent Zimmer System and method to secure boot both UEFI and legacy option ROM's with common policy engine
AU2010221174A1 (en) * 2009-03-06 2011-09-29 Interdigital Patent Holdings, Inc. Platform validation and management of wireless devices
EP2337299A1 (en) 2009-12-18 2011-06-22 Alcatel Lucent A method, a first user equipment, a second user equipment, a computer program and a computer program product
SG184853A1 (en) * 2010-04-12 2012-11-29 Interdigital Patent Holdings Staged control release in boot process
US8918641B2 (en) * 2011-05-26 2014-12-23 Intel Corporation Dynamic platform reconfiguration by multi-tenant service providers
US9971895B2 (en) * 2012-12-22 2018-05-15 Samsung Electronics Co., Ltd. Method and apparatus for supporting dynamic change of authentication means secure booting
US9495544B2 (en) * 2013-06-27 2016-11-15 Visa International Service Association Secure data transmission and verification with untrusted computing devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019084B1 (en) * 2001-04-23 2011-09-13 Diebold, Incorporated Automated banking machine remote key load system and method
US20070192610A1 (en) * 2006-02-10 2007-08-16 Chun Dexter T Method and apparatus for securely booting from an external storage device
US8560823B1 (en) * 2007-04-24 2013-10-15 Marvell International Ltd. Trusted modular firmware update using digital certificate
US20130091345A1 (en) * 2011-10-06 2013-04-11 Cisco Technology, Inc. Authentication of computer system boot instructions
US20130111203A1 (en) * 2011-10-28 2013-05-02 GM Global Technology Operations LLC Method to replace bootloader public key

Also Published As

Publication number Publication date
CN107925570A (zh) 2018-04-17
EP3342094A1 (en) 2018-07-04
JP2018525934A (ja) 2018-09-06
KR101952395B1 (ko) 2019-02-26
BR112018003471A2 (pt) 2018-09-25
US9798887B2 (en) 2017-10-24
JP6569006B2 (ja) 2019-08-28
US20170060595A1 (en) 2017-03-02
WO2017034700A1 (en) 2017-03-02
CN107925570B (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
KR101952395B1 (ko) 키를 안전하게 활성화 또는 취소하기 위한 컴퓨팅 디바이스
US9973485B2 (en) Apparatus and method to securely receive a key
US10069826B2 (en) Secure sensor data transport and processing
US9935773B2 (en) Trusted platform module certification and attestation utilizing an anonymous key system
KR102013983B1 (ko) 애플리케이션 무결성 인증 방법 및 인증 서버
US20180035293A1 (en) Authenticating a device utilizing a secure display
US11429366B2 (en) Electronic device for updating firmware by using security integrated circuit and operation method thereof
JP2016519544A (ja) 自己認証デバイス及び自己認証方法
US20160065375A1 (en) Dynamic integrity validation of a high level operating system
KR20140112399A (ko) 어플리케이션 접근 제어 방법 및 이를 구현하는 전자 장치
CN106355077B (zh) 认证应用处理器的显示驱动器集成电路和移动装置
JP6440721B2 (ja) コンピューティングデバイスによるアプリケーションの使用の認証
US11520859B2 (en) Display of protected content using trusted execution environment
US20180019870A1 (en) Device to limit access to storage to authenticated actors only
US20180152307A1 (en) Device to provide trusted time assurance
US20180101669A1 (en) Device to perform secure biometric authentication
JP2015194937A (ja) 情報処理装置、認証制御方法及びプログラム
WO2023200904A1 (en) Devices, systems and methods for securing communication integrity
KR20230143897A (ko) 바이오스의 패스워드 초기화를 위한 전자 장치들의 동작 방법 및 그 전자 장치들

Legal Events

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