KR20170095394A - 보안 배터리 인증 - Google Patents

보안 배터리 인증 Download PDF

Info

Publication number
KR20170095394A
KR20170095394A KR1020177022123A KR20177022123A KR20170095394A KR 20170095394 A KR20170095394 A KR 20170095394A KR 1020177022123 A KR1020177022123 A KR 1020177022123A KR 20177022123 A KR20177022123 A KR 20177022123A KR 20170095394 A KR20170095394 A KR 20170095394A
Authority
KR
South Korea
Prior art keywords
battery unit
battery
certificate
security credentials
key
Prior art date
Application number
KR1020177022123A
Other languages
English (en)
Other versions
KR101867789B1 (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 KR20170095394A publication Critical patent/KR20170095394A/ko
Application granted granted Critical
Publication of KR101867789B1 publication Critical patent/KR101867789B1/ko

Links

Images

Classifications

    • 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/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Power Sources (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

실시예는 적어도 하나의 프로세서 의해 실행되는 방법을 포함하고, 적어도 하나의 프로세서는, 모바일 컴퓨팅 노드가 (a) 부팅, 및 (b) 부팅 후의 그리고 런-타임 동안의 배터리 교체 중 적어도 하나에 관여하는 동안 적어도 하나의 프로세서를 포함하는 모바일 컴퓨팅 노드에 포함되는 배터리로부터의 보안 자격증명들을 수신하는 아웃-오브-밴드 암호프로세서; 암호프로세서가 인증 키에 액세스하는 단계; 및 암호프로세서가 보안 자격증명들 및 인증 키에 기초하여, 아웃-오브-밴드 프로세싱을 통해 배터리를 성공적으로 인증하는 단계를 포함한다. 실시예에서, 보안 자격증명들은 인증서 내에 포함된다. 다른 실시예들이 본원에서 설명된다.

Description

보안 배터리 인증{SECURE BATTERY AUTHENTICATION}
실시예들은 보안 컴퓨팅에 관련된다. 보다 구체적으로는, 실시예는 전원을 컴퓨팅 노드와 안전하게 통합하는 것에 관련된다.
모바일 컴퓨팅 노드들은 사용자들이 다양한 위치들로부터의 다양한 작업들을 수행하게 함으로써 사용자들에게 편의를 제공한다. 모바일 컴퓨팅 노드들은, 예를 들어, 셀룰러 폰, 스마트폰, 태블릿, Ultrabook®, 노트북, 랩톱, 개인용 정보통신 단말, 및 모바일 프로세서 기반 플랫폼을 포함한다. 이러한 편의를 달성하기 위해 다수의 사용자들은 그에 결합되거나 컴퓨팅 노드 하우징 내에 포함된 배터리와 같은 모바일 전원을 이용하여 컴퓨팅 노드들을 동작시킨다. 컴퓨팅 노드를 위해 설계된 배터리를 이용하는 것은 컴퓨팅 노드의 적절하고 안전한 기능수행을 보장하는 것을 돕는다. 그러나, 컴퓨팅 노드를 위해 설계되거나 허가되지 않은 배터리를 사용하면 부정적인 결과들을 가질 수 있다. 예를 들어, 허가되지 않은 배터리를 이용하면 컴퓨팅 노드에 안전하지 않은 레벨(예를 들어, 화재 또는 컴퓨팅 노드 플랫폼에 대한 손상을 야기할 수 있는 너무 높은 에너지 레벨) 또는 (컴퓨팅 노드에 대해 수용불가능한 성능을 초래할 수 있는) 불충분한 레벨로 에너지를 공급할 수 있다. 또한, 배터리는 배터리에 결합된 메모리 내에 포함된 악의적인 코드를 통해 컴퓨팅 노드에 악성 코드(malware)를 도입할 수 있다.
본 발명의 실시예들은, 제한적이 아닌, 예시적인 실시예들로서 설명되고, 첨부하는 도면들에서 예시될 것이며, 도면들에서 유사한 참조번호들은 유사한 구성요소들을 나타낸다:
도 1은 본 발명의 실시예의 시스템 아키텍처를 포함한다.
도 2는 본 발명의 실시예에 대한 흐름도이다.
도 3은 본 발명의 실시예의 보안 암호프로세서(secure cryptoprocessor) 아키텍처를 포함한다.
도 4는 본 발명의 실시예의 보안 모듈에 대한 관계도를 포함한다.
도 5는 본 발명의 실시예의 인증 자격증명(authentication credentials)을 업데이팅하는 흐름도를 포함한다.
도 6은 본 발명의 실시예와 사용하는 시스템을 포함한다.
다양한 동작들이 다수의 개별 동작들로서, 그리고, 예시적인 실시예들을 이해하는데 있어서 가장 도움이 되는 방식으로 설명될 것이다; 그러나, 설명의 순서는 이러한 동작들이 순서에 반드시 순서에 의존하는 것을 의미하는 것으로서 해석되지 않아야 한다. 특히, 이러한 동작들은 제시의 순서로 수행될 필요는 없다. 또한, 개별 동작들로서 동작들에 대한 설명들은 동작들이 반드시 독립적으로 및/또는 개별 엔티티에 의해 수행되는 것을 요구하는 것으로 해석되지 않아야 한다. 개별 모듈로서의 엔티티들 및/또는 모듈들의 설명들은 마찬가지로, 모듈들이 별개이거나 및/또는 개별 동작들을 수행하는 것을 요구하는 것으로 해석되지 않아야 한다. 다양한 실시예들에서, 예시된 그리고/또는 설명된 동작들, 엔티티들, 데이터, 및/또는 모듈들은 합병되고, 추가의 하위-부분들로 나누어지고, 및/또는 생략될 수 있다. "실시예"라는 구문이 반복적으로 사용된다. 구문은 일반적으로 동일한 실시예를 지칭하지 않는다; 그러나, 그럴수도 있다. "포함하는(comprising)", "갖는(having)", 및 "포함하는(including)"이라는 용어들은, 맥락이 달리 지시하지 않는 한, 동의어이다. 구문 "A/B"는 "A 또는 B"를 의미한다. 구문 "A 및/또는 B"는 "(A), (B), 또는 (A 및 B)"를 의미한다. 구문 "A, B 및 C의 적어도 하나"는 "(A), (B), (C), (A 및 B), (A 및 C), (B 및 C) 또는 (A, B 및 C)"를 의미한다.
보안 배터리 식별(identification) 및 인증(authentication)은 승인되지 않은(unauthorized) 배터리를 컴퓨팅 노드와 사용하는 것을 막거나 방지하는 것을 돕는다. 승인되지 않은 배터리들(예를 들어, 공인되지 않은(non-certified) 배터리들)은, 사용자 및/또는 모바일 컴퓨팅 플랫폼을 손상시킬 수 있는 안전하지 않은 동작 조건들을 부과한다. 또한, 플랫폼 상에서 실행하는 (승인되지 않은 배터리를 이용하여 저장된 명령어들을 통해 컴퓨팅 노드에 도입된) 악의적인 소프트웨어 컴포넌트들은, 예를 들어, 배터리 충전 파라미터를 부적절하게 수정할 수 있고, 이에 의해, 최종 사용자 및/또는 플랫폼의 생명을 위태롭게 한다.
펌웨어 및/또는 BIOS에서 실행되는 "배터리 상태 표시기" 또는 "배터리 크기 표시기"는 배터리 상태 또는 배터리 크기를 알려진 값들에 대해 비교함으로써 초기 유효성검증(primitive validation)을 수행할 수 있다. 그러나, 펌웨어/BIOS를 사용하는 것은 이러한 초기 유효성검증이 운영 제체(OS) 기반 컴포넌트들에 의존하게 하고 OS 기반 컴포넌트들을 사용하는 것은 다수의 사용자들이 원하는 것보다 덜 안전하다. 또한, OS에 대한 노출과는 무관하게, 그러한 방법들은 배터리 제조사, 배터리의 버전 및 모델, 배터리의 로트 번호(lot number) 등과 같은 보안 정보를 안전하게 제공하지 않을 수 있다.
실시예는 오직 신뢰된 배터리(예를 들어, 공인된(certified) 배터리)만이 모바일 컴퓨팅 노드 상에서 설치되고 동작되도록 하는 보안 배터리 인증을 포함한다. 실시예는 TEE(Trusted Execution Environment)와 같은, 보안 환경 내에서 실행되는 펌웨어/소프트웨어/가상 컴포넌트를 이용하여 배터리 인증 확인을 수행한다. 하나의 그러한 TEE는 Intel® Trusted Execution Technology(TXT)를 포함한다. TEE(또는 다른 방식의 보안 환경)는 TPM(Trusted Platform Module)을 사용하여 아웃 오브 밴드(out-of-band)인(OS에 종속되지 않는) 보안 암호프로세싱(cryptoprocessing)을 수행할 수 있다. 그것이 TPM에 기초하든 또는 일부 다른 보안 환경에 기초하든, 특정 구현과는 무관하게, 실시예는, 예를 들어, 내장된(예를 들어, 배터리 하우징에 포함된 메모리 내에), 보안의, 서명된 인증서(signed certificate)(예를 들어, X.509 인증서)을 갖는 배터리만이 모바일 디바이스에 전력공급하게 허용되도록 보안 암호화(secure cryptography) 프로토콜들을 이용하여 배터리 인증을 수행한다.
실시예에서, 배터리 식별/인증은 프리-부트(pre-boot)에서(즉, 모바일 컴퓨팅 노드 OS에 대한 부팅 프로세스가 완료되기 전에) 및/또는 배터리의 핫 스왑핑(hot swapping)(예를 들어, OS 런-타임 모드 동안에 배터리들을 교환하는 것)에서 수행된다.
실시예에서, 배터리는, 예를 들어, 배터리 제조사의 식별, 인증서 및/또는 배터리에 대한 만료 일자, 전력 제약들(예를 들어, 배터리는 특정 전압 또는 주파수 레벨을 만족하는 전원으로부터만 충전될 수 있음), 배터리가 사용될 수 있는 장소에 대한 지리적 제한(예를 들어, GPS(global position system) 감지 위치에 기초하여 배터리는 세계의 특정 지역들에서는 기술적 또는 비-기술적 이유로 인해 동작가능하지 않을 수 있음), 온도 또는 습도와 같은 환경 조건/제약들(예를 들어, 온도는 모바일 디바이스에 의해 감지될 수 있고 배터리가 임계 온도 또는 습도 위에서 동작해서는 안된다는 것을 나타냄), 등과 같은 세부사항들에 대한 내장된 서명된 인증서에 대해 확인된다. 따라서, 다양한 실시예들에서, 디바이스에 대한 지리적 위치 또는 최근에 취해진 온도 또는 습도 판독치와 같은 실시간 조건들이 인증에 사용될 수 있다. 따라서, 위의 세부사항 중 임의의 것을 포함하는 인증서가 배터리로부터 플랫폼으로 전달될 수 있다. 그 후, 플랫폼은 이러한 세부사항들을 플랫폼 내에 포함된 대응하는 정보(예를 들어, TPM 또는 TPM 내에서 암호해독된 정책 또는 구성 파일 내에 저장된 정보)와 안전하게 비교한다.
도 1은 실시예에서 모바일 컴퓨팅 노드(100)에 대한 아키텍처를 포함한다. 펌웨어 및/또는 BIOS(125) 내에서 실행되는 "배터리 상태 표시기" 또는 "배터리 크기 표시기"는 배터리 상태 또는 배터리 크기를 알려진 값들에 대해 비교함으로써 초기 유효성검증을 수행하고 관련된 인터럽트들을 MSI(message signal interrupt) 핸들러(155)를 통해 커널(kernel)(110)에 보고할 수 있다.
펌웨어(105) 컴포넌트는 BSM(Battery Security Management) 모듈(120)을 포함하는 보안 변형 억제(secure tamper resistant) TEE 내에서 동작하며, BAI(Battery Authentication and Identification) 모듈을 더 포함한다. BAI 모듈은 프리-부트 조건들 동안에 및/또는 배터리(135)가 스왑핑되거나 교체되는 임의의 시간 동안에 배터리(135)를 안전하게 식별 및 인증한다. BAI 모듈은 배터리로부터 수신된 내장된 서명된 인증서에 기초하여 배터리를 인증한다. BAI는 인증서와 같은 데이터를 호스트(예를 들어, BSM(120))와 배터리(135) 간의 통신을 용이하게 하는 하드웨어 인터페이스를 통해 교환한다.
BSM(120) 내에 또한 포함된 배터리 관리자(BM) 모듈은 정책을 집행한다. 따라서, BAI 모듈이 배터리(135)로부터의 인증서를 암호해독 또는 "푸는(unwrap)" 경우에, 인증서 내의 값들 중 일부(예를 들어, 인증서에 대한 만료일자, 배터리에 대한 버전 또는 로트 번호)가 BM의 정책에서의 대응하는 값들에 대해 비교될 수 있다. 따라서, BM의 정책은, 오직 배터리 버전 2.4 또는 그 위의 버전이 수용가능하고 배터리의 인증서를 판독할 시에, 이것이 버전 2.1이므로 배터리가 인증되거나 유효한 것으로 간주되지 않는다고 지시할 수 있다.
실시예에서, BM 모듈은 적절한 셧다운(graceful shutdown)이 있도록 보장하기 위해 배터리 전압을 모니터링하는 것을 담당한다. 이는 배터리 전압이 "LOWBATT"(낮은 배터리) 전압 임계치 아래로 떨어지는 것으로 인해 하드웨어가 시스템을 부적절하게 셧다운(ungracefully shutdown)하기 전에 셧다운이 일어나는 것을 보장할 수 있다. 예를 들어, 배터리(135)를 모니터링하는 동안, 배터리 전압(VBATT) 용량이 미리정의된 임계치(예를 들어, 임계치들이 OEM/제조사에 의해 특정되는 TEE 환경 공간에서 구성가능한 값) 아래로 떨어지는 경우, BM의 에너지 관리 정책들은 배터리 제어 유닛(BCU) 및 배터리 서비스(175)에 의해 트리거될 것이다. 그러한 "서비스"는 시스템 동작 모드 내내 활성인 소프트웨어 컴포넌트를 포함할 수 있고, 요청하는 모듈들(예를 들어, 플랫폼 전력 관리자(Platform Power Manager), 퓨얼 게이지 모니터(Fuel Gauge Monitor) 등)에 배터리 관련 서비스들을 제공할 수 있다. BM 서브시스템은 배터리 없음(empty)/고갈(depletion) 조건이 만족되는 경우 제어된 셧다운을 개시할 수 있다.
BSM(120)은 배터리 레벨을 모니터링하는 것을 담당하고 배터리(135) 또는 플랫폼(100)이 과도 방전에 의해 손상되는 것을 방지하기 위한 액션을 취한다. 모니터링은, 액션을 트리거할 수 있는 혼성 신호 통합 회로(mixed signal integrated circuit)(MSIC)(130) 내의 임계치 레지스터들이 존재하더라도, 주로 OS 공간(커널(110))에서 행해진다. 이것은 주로 MSIC 임계치들이 모든 다른 메커니즘이 실패하는 경우 플랫폼을 보호하기 위해 페일세이프(failsafe) 메커니즘으로서 작동하기 때문이다. 플랫폼을 셧다운하기 위한 소프트웨어 임계치들은 MSIC(130) 내에 설정된 임계치들보다 더 높을 것이다.
실시예에서, 배터리 충전은 배터리 충전 모듈(BCM)(170)이 배터리 온도를 모니터링하여 배터리(135)를 과열하는 것을 방지하는 동안 행해진다. 또한, BCM(170)은 또한 특정된 전압들 및 전류들에서 배터리를 충전하는 것을 규제한다. MSIC(130)와 같은 전력 관리 모듈은 배터리 전압이 LOWBATTLS(예를 들어, 2.7v와 같음)에 도달할 때까지 배터리 충전을 제어한다. BSM(120)은 BSM(120) 구성들 내에 정의된 LOWBATTLS 및 부트 임계치 사이에서 배터리 충전을 제어한다. MSIC(130)은 또한 유효하지 않은 배터리의 경우에 및/또는 커널이 손상된(compromised) 경우에 충전을 제어한다. ACPI(Advanced Configuration and Power Interface)와 같은 배터리 및 충전 드라이버 및/또는 IPC(Inter-process communication) 드라이버(150)는 LOWBATTLS 및 BSM 임계치 레벨을 넘어서는 배터리 충전을 제어한다.
BSM 충전기 검출은, 배터리(135)가 OS 부트에 대한 권장된 임계치 전압에 도달할 때까지 충전을 관리하는 BSM 모듈(120)에 의해 핸들링된다. 포스트 OS 부트 USB 드라이버는 어댑터 열거(adapter enumeration) 및 세션 기술 프로토콜(SDP) 어댑터로부터의 입력 전류(예를 들어, 100㎃ - 500㎃)를 절충(negotiation)하는 것을 핸들링한다. 어댑터 삽입/제거는 배터리 서비스(175)에 보고되며, 이는 사용자 레벨(115) 애플리케이션(들)에 대한 적절한 상태를 디스플레이한다.
퓨얼 게이지(FG) 모니터링 모듈(165)은 배터리 조건들을 모니터링(예를 들어, 전류 모니터 드라이버(160)를 통해 전류를 모니터링)하고 배터리 수명을 예측한다. 이것은 사용자에게 낮은 배터리 조건이 존재하는 경우를 알려주고 사용자에게 플랫폼이 곧 셧다운될 수 있음을 경고한다. 배터리에 남은 충전량에 영향을 주는 파라미터들 중 일부는 배터리 유형, 설계 용량(방전 곡선에 의해 특성화됨), 배터리 노화(battery aging), 및 온도이다. 이들 파라미터들 중 임의의 것이 BM 정책의 값들과 인증서로부터의 값들을 비교하는 것에 기초하여 인증서를 인증하는 BSM(120)과 배터리(135) 사이에서 전송된 인증서 내에 포함될 수 있다.
MSIC(130)는 쿨롱 계수기를 이용하여 배터리 전압, 배터리 전류, 및 배터리(135)를 출입하는 전하량을 판독/모니터링한다. 이러한 모니터링된 값들은 배터리(135)의 전하를 추정하는 FG 모듈(165)에 공급될 수 있다. 이 프로세스는 BM에 의해 관리된다. 값은 범용 입력/출력(GPIO) 제어기들(140) 및 대응하는 드라이버(145)를 통해 FG 모듈(165)에 공급될 수 있다.
시스템(100)의 블록들이 개방형 I2C 버스들을 통해 상호접속된다.
도 2는 실시예에서 BSM(도 1 참조)에 대한 흐름도를 포함한다. 블록(205)은 프로세스를 시작하고 다이아몬드 형태(210)에서는 시스템 부트 또는 배터리의 핫 스왑핑 동안에 배터리의 존재를 (도 1의 BAI 모듈을 통해) 검출한다. 블록(215)에서, BAI는 BM 정책들을 로딩하고, 블록(220)은 RSA 키 또는 TPM과 같은 암호프로세서의 보안 저장소로부터의 키들을 로딩한다. 블록(225)에서 BAI는 제공된 RSA 키(들)(일부 실시예들에서, 플랫폼 제조사/조립자에 의한 제조 시간 동안에 제공되었고 일반적으로 인증 키(들)로서 지칭될 수 있음)을 사용하여 배터리로부터의 서명된 인증서를 인증한다. 서명된 인증서는, 다양한 실시예들에서, 인증서, 해시, 평가(measurements), 그리고 엔티티 또는 제품(예를 들어, 배터리, 레지스터 구성)을 안전하게 식별하는데 사용되는 다른 시스템/메커니즘을 포함할 수 있는 보안 자격증명의 하나의 예이다. 또한, BAI는 BM 정책 설정에 기초하여 배터리 유효성검증을 수행할 수 있다. BM 정책 설정에 기초한 이러한 유효성검증은 인증 프로세스의 일부로서 간주될 수 있다. 인증이 실패하는 경우(다이아몬드 형태(230)으로부터 우측 분기 참조), BSM은 특정 기능성(예를 들어, 전체 전력으로 플랫폼을 동작시키는 능력)을 디스에이블하고 MSIC를 재구성하여 전력 레벨들을 제어한다(블록들(240, 245). 재구성된 값들은 안전 모드와 같이 제한된 용량으로 시스템을 동작시키는 것에 대응할 수 있다. 실패의 유형에 기초하여, BSM은, 예를 들어, 적절한 플랫폼 셧다운(graceful platform shutdown), 실패를 로깅하기, 실패와 관련하여 사용자에게 경고하기 등과 같은 정책 설정들(예를 들어, BM 정책 설정들)에서 권장된 액션들을 취할 수 있다. 성공적인 인증 시에(블록(235), BSM은 배터리의 핫 스왑핑, 배터리 충전, 배터리 방전, 전압 또는 전류 임계치 위반 등을 모니터링하고 BM 정책(들)에 정의된 적절한 대응하는 액션들을 취하는 모니터링 모드로 진입한다.
실시예에서, BSM은 TPM과 같은 보안 암호프로세서 내에 위치될 수 있다. 미국 특허 번호 제7,711,960호(캘리포니아, 산타 클라라 소재의 Intel®Corporsation에 양도됨)에 설명된 바와 같이, 신뢰된 플랫폼은 데이터 암호화 및 암호해독 및 데이터 저장소와 같은 데이터 보안 기능들을 제공할 수 있다.(미국 특허 번호 제7,711,960호는 또한 이하에 더 설명되는 보안 블롭(blob)들을 업데이팅하는 것을 언급한다.)
신뢰된 플랫폼의 컴포넌트는 TPM, 무결성의 손실을 검출하기 위해 암호화 해싱을 수행할 수 있는 모듈, 데이터의 승인되지 않은 공개를 막기 위한 공개 키 및 비밀 키 암호화, 및 송신된 정보를 인증하는 디지털 서명이다. TPM은 키들, 비밀들 및 해시 값들을 보호하기 위해 하드웨어에 고정되어 있을 수 있는 저장소를 가질 수 있다.
신뢰된 플랫폼은, 구성을 평가하고 데이터를 구성에 봉인함으로써, 신뢰된 플랫폼이 기밀 데이터에 대한 액세스를 갖는 경우 안전 구성에서 동작하는 것을 보여줄 수 있다. 구성의 평가치는 해싱되고 PCR(Platform Configuration Register)들 내에 저장될 수 있다. 신뢰된 플랫폼은 신뢰된 플랫폼의 특정 구성하에서만 데이터에 대한 액세스를 허용할 수 있다. TPM 봉인 동작은 PCR 값들 또는 승인 값의 특정 세트로 데이터를 암호화할 수 있다. 데이터를 봉인해제하기 위해, 그리고 그에 의해 데이터에 대한 액세스를 획득하기 위해, 승인이 제공되어야 하고 PCR들 내에 저장된 값들의 세트가 봉인 동작에서 사용된 세트와 매칭해야만 한다. 마찬가지로, 서명 키는 TPM 내의 키 생성 동안에 PCR 값들의 세트로 잠겨있을 수 있다. 그러한 키는, 예를 들어, 배터리로부터 전달된 또는 배터리와 관련된 (그리고 가능하게는 플랫폼 또는 TPM 내에 저장되는) 인증서를 암호해독하는데 사용된 키를 포함할 수 있다.
신뢰된 플랫폼은 구성들이 발행될 인증서들에 대해 신뢰될 수 있거나 구성될수 있다는 인증서들을 발행할 수 있다. 하나의 방법은 특정 구성에 잠겨진 키에 대해 TPM_CertifyKey 기능을 실행하는 것을 수반한다. 결과는 키가 잠금되는 구성을 명시하고 인증할 수 있다. 키가 특정 구성에 대해 잠겨 있지 않은 경우, 키에 대한 액세스가 이용가능한 구성을 명시하고 인증하는 것을 어려울 수 있다.
이제 도 3을 참조하면, 컴퓨팅 플랫폼(300)의 구성에 대한 키에 액세싱하기 위해 승인 데이터를 결합하는 승인 블롭을 생성함으로써 암호화 키에 대한 액세스를 제어할 수 있는 컴퓨팅 플랫폼(300)의 실시예가 도시된다. 키는 배터리로부터 전달된 인증서를 암호해독하는데 필요한 키를 포함할 수 있다. 컴퓨팅 플랫폼(300)의 실시예는 또한 암호화 키의 인증서를 서명함으로써 컴퓨팅 플랫폼(300)의 허가된 구성들에 대해 증명할 수 있다. 이러한 키는 배터리로부터의 인증서를 암호해독하는데 사용된 키가 아닌 키일 수 있다. 이러한 키는 보안 배터리/플랫폼 구성을 갖는 것을 나타내기 위해 플랫폼이 생성하는 다른 인증서를 수반할 수 있다.
컴퓨팅 플랫폼(300)은 하드웨어 및 소프트웨어 양자를 포함한다. 플랫폼(300)은 랜덤 액세스 메모리(RAM)(305), 비휘발성 메모리(325), 프로세서(355), TPM(360), 통신 어댑터(365), 및 시스템 버스(320)에 의해 접속된 입력/출력(I/O) 인터페이스 어댑터(375)를 포함한다. 보안 애플리케이션(310) 및 OS(315)가 RAM(305)에 저장된다. 보안 애플리케이션(310)은 TPM(360) 내의 암호화 키에 대한 액세스를 제어하고, (배터리로부터 수신된 인증서를 암호해독하기 위한 키와 같은) 암호화 키에 액세싱하기 위한 컴퓨터 프로그램 명령어들을 포함할 수 있다. 애플리케이션(310)은 TPM(360)에 의해 실행될 명령들을 제공함으로써 동작할 수 있다. OS(315)는 암호화 키에 대한 액세스를 제어하고 컴퓨팅 플랫폼의 허가된 구성들을 증명하는데 유용한 OS들(모바일 컴퓨팅 노드 OS들과 같은)을 포함할 수 있다.
비휘발성 메모리(325)는 플래시 메모리(340) 및 부트 ROM(345)를 포함할 수 있고, 이는 플랫폼(300)의 부팅을 제어하는 소프트웨어로 구성된다. 부트 ROM(345)은 플랫폼(300)의 POST(power-on-self-test)를 제어할 수 있다. POST는 일련의 시스템 확인을 수행할 수 있다. POST는 부트 ROM이 정확하게 동작하고 있는지를 플랫폼(300)의 다양한 부분들 내에 로딩된 코드와 BIOS 내에 저장된 코드를 비교함으로써 확인할 수 있다. POST 동안에, 전기 신호는 레지스터들로부터의 잔존 데이터(left-over data)를 소거(clear)할 수 있다. 이것은 또한 프로그램 명령어 카운터를 특정 어드레스, 프로세서(355)가 실행을 시작하기 위한 다음 명령어의 어드레스로 설정할 수 있다. 어드레스는 BIOS 내에 저장된 프로세서(355)에 대해 부트 프로그램의 시작을 지칭할 수 있다.
TPM(360)은 검색 모듈(361), 구성 모듈(362), 암호화 모듈(363), 및 증명 모듈(attestation module)(364)를 포함한다. 저장소 및 검색 모듈(361)은 데이터를 저장할 수 있고 데이터를 이용가능하기 위한 승인시에만 애플리케이션(310)과 같은 프로그램에 의한 데이터에 대한 액세스를 허용할 수 있다. 구성 모듈(362)은 컴퓨팅 플랫폼(300)의 구성의 상태를 결정할 수 있다(즉, 구성을 "평가(measure)"). 암호화 모듈(363)은 키 생성, 암호화, 및 암호해독과 같은 암호화 기능들을 수행할 수 있다. 모듈(263)은 배터리로부터의 인증서를 암호해독하는 키 또는 키들을 포함할 수 있다. 증명 모듈(364)는 플랫폼(300)의 허가된 구성들에 대해 증명할 수 있다. TPM(360)은 보안 애플리케이션(310) 및 다른 프로그램들로부터의 명령들에 응답하여 그의 기능들을 수행할 수 있다. 일부 실시예들에서, TPM(360)은 하드웨어로 구현될 수 있다. 추가의 실시예들에서, TPM(360)은 스마트 카드와 유사한 모듈로 이루어질 수 있다. 다른 실시예들에서, TPM(360)은 소프트웨어 구현될 수 있다.
통신 어댑터(365)는 하나의 컴퓨터가, 다른 컴퓨터들(370)과 같은 다른 컴퓨터에 직접 또는 무선 네트워크를 통해 데이터 통신을 전송하는 하드웨어 레벨의 데이터 통신을 구현할 수 있다. 통신 어댑터들의 예들은 무선 네트워크 통신을 위한 802.11b 어댑터들을 포함한다.
I/O 인터페이스 어댑터(375)는 사용자-지향 I/O를 구현하며, 예를 들어, 그를 통해 소프트웨어 드라이버들 및 컴퓨터 하드웨어가 디스플레이 디바이스(385)와 같은 디스플레이 디바이스로의 출력뿐 아니라 사용자 입력 디바이스(380)로부터의 입력을 제어한다. 사용자 입력 디바이스(380)는 키보드 및 마우스 양자를 포함할 수 있다. 일부 실시예들은 언어 해석기, 바 코드 스캐너, 텍스트 스캐너, 태블릿, 터치 스크린, 및/또는 다른 유형의 사용자 입력 디바이스들과 같은 다른 사용자 입력 디바이스들을 포함할 수 있다.
도 4는, 배터리로부터의 인증서(도 3의 모듈(363) 내에 위치될 수 있음)를 암호해독하기 위한 키와 같은, 암호화 키에 대한 액세스를 제어하는 예시적인 데이터 다이어그램(400)을 도시한다. 다이어그램은 TPM 키(405), 승인 블롭들(410 및 415), 복구 블롭(420), TPM 키(425), 민감성 데이터(430)(배터리에 의해 플랫폼에 통신된 인증서를 암호해독하기 위한 키를 포함할 수 있음), 및 해시(435)를 포함한다. TPM 키(405)는, 블롭들(410, 415, 및 420) 및 TPM 키(425)와 같은 다른 데이터 구조들을 암호화하는데 사용될 수 있는 암호화 키이다. 일부 실시예들에서, TPM 키(405)는 TPM 저장소 키를 포함할 수 있다. TPM 저장소 키는 데이터 또는 다른 키들을 암호화하는데 사용된 대칭 키로 구성될 수 있다. TPM 저장소 키들은 계층구조를 형성할 수 있다. TPM 저장소 루트 키는 계층구조의 루트를 형성할 수 있다. 차일드 키들은 페어런트 키들에 의해 랩핑(wrapped)될 수 있다. 다른 실시예들에서, TPM 키(405)는 TPM의 외부에 생성될 수 있고, TPM 내로 불러올 수 있다(imported).
블롭들(410, 415, 420)은 데이터의 외부 저장을 위해 TPM에 의해 생성될 수 있는 데이터 구조들이다. 실시예에서, 블롭(410)은 TPM의 구성 1(PCR들의 값들의 제1 세트에 의해 표현됨)에 대해 잠겨 있고, 블롭(415)는 TPM의 구성 2에 대해 잠겨 있고, 블롭(420)은 복수 승인(복구 관할부(recovery authority)에 의해 소유될 수 있는 승인 데이터)에 대해 잠겨 있다. 복구 관할부는, TPM 또는 컴퓨팅 플랫폼과 관련된 시스템 문제를 포함하는 컴퓨팅 플랫폼의 구성을 업데이트(예를 들어, 배터리 교체)하는 시도가 실패한 것과 같은, 긴급 상황에서 민감성 데이터에 액세스하는 권한을 가질 수 있다. 복구 관할부는 기업 정보 기술(IT) 부문으로 구성될 수 있다. 블롭들(410, 415, 및 420)의 각각은 "데이터 키 승인"(TPM 키(425)를 잠금해제하는 승인 데이터(예를 들어, 키))를 포함한다. 블롭들(410, 415, 420) 중 임의의 블롭을 잠금해제하는 것은 데이터 키 승인을 TPM 키(425)를 잠금해제하는데 이용가능하게 만들 수 있다. 따라서, 블롭들(410, 415, 및 420)은 승인 블롭의 유형을 구성한다.
TPM 키(425)는 민감성 데이터(430)를 암호화하는데 사용되는 TPM 키이고, 이는 배터리로부터의 인증서를 암호해독하기 위한 키를 포함할 수 있다. TPM 키(425)는 TPM 저장소 키로 구성될 수 있다. TPM 키(425)는 TPM 키(405)에 의해 암호화될 수 있다. 데이터 키 승인의 제공은 TPM 키(425)를 잠금해제하거나 암호해독하는데 필요할 수 있고, 이에 의해 TPM 키(425)를 민감성 데이터(430)를 잠금해제하는데 이용가능하게 할 수 있다. 민감성 데이터(430)는 배터리에 의해 플랫폼에 전송된 인증서를 암호해독하기 위한 공개 키(또는 배터리에 의해 플랫폼에 전송된 인증서를 암호해독하기 위한 비밀 키)를 포함할 수 있다.
도 4의 데이터 구조들은 TPM을 포함하는 컴퓨팅 플랫폼의 다수의 구성들 내의 민감성 데이터(430)를 암호해독하기 위해 TPM 키(425)의 잠금해제를 인에이블할 수 있다. 민감성 데이터를 사용하는 애플리케이션이 론칭되는 경우, 애플리케이션은 현재 TPM PCR들 내의 값들에 대해 잠겨 있는 승인 블롭을 발견할 때까지 승인 블롭들에 대한 저장소 영역 내의 승인 블롭(410) 및 승인 블롭(415)을 탐색할 수 있다. 이러한 블롭들 각각은 상이하게 구성된 배터리에 대응할 수 있고, 따라서, 플랫폼이 다수의 배터리들과 동작하게 한다. 애플리케이션이 현재의 PCR 값들(배터리 상에 있거나 또는 배터리 외부에 있지만 그와 관련된 PCR 값들과 같은)에 대해 잠겨 있는 승인 블롭을 발견하는 경우, 애플리케이션은 블롭에 포함된 데이터 키 승인을 암호해독할 수 있고, 데이터 키 승인을 사용하여 TPM 키(425)를 잠금해제하여 민감성 데이터(430)를 암호해독할 수 있다. 추가의 실시예들에서, 다수의 구성들 내의 민감성 데이터(430)에 액세스할 수 있는 애플리케이션은 가상 TPM, TPM-유사 기능성을 제공하는 로직 디바이스로 구성될 수 있다.
현재 구성이 데이터에 액세스하도록 허가된 것이 아닌 경우, 승인 블롭들(410, 415)을 잠금해제하는 것은 가능하지 않을 수 있다. 그러나, 복구 블롭(420)은 플랫폼 구성에 무관하게 민감성 데이터(430)에 액세싱하는 것을 가능하게 할 수 있다. 복구 승인의 제공은 복구 블롭(420)을 잠금해제할 수 있고, 이에 의해, 데이터 키 승인을 TPM 키(425)를 잠금해제하는데 이용가능하게 한다.
도 4의 데이터 구조들은, 승인 블롭들(410 및 415)가 봉인되는 구성들 이외에도 구성들로부터의 민감성 데이터(430)에 대한 액세스를 가능하게 하도록 수정될 수 있다. 다른 플랫폼 구성에 의한 민감성 데이터(430)에 대한 액세스를 가능하게 하기 위해(예를 들어, 신뢰된 당사자가 이미 릴리즈된 플랫폼과 기능하기를 원하는 새롭게 릴리즈된 배터리에 대한 구성에 대해), 민감성 데이터(430)를 사용하는 애플리케이션은 다른 플랫폼 구성 하에서 플랫폼이 가질 수 있는 PCR 값들(예를 들어, 새롭게 릴리즈된 배터리가 플랫폼 내로 로딩되자마자 존재할 PCR 값들)을 획득할 수 있다. 예를 들어, 다른 플랫폼 구성이 설치될 수 있고 PCR 값들이 평가된다. 다른 예로서, 업그레이드 서비스는 TPM을 포함하는 플랫폼과 동일한 플랫폼 상에 다른 플랫폼 구성을 설치할 수 있고 다른 플랫폼 상의 구성을 평가할 수 있다. 두 플랫폼들은 동일한 PCR 값들을 가질 수 있다. 그 후 업그레이드 서비스는 애플리케이션에 평가치를 제공할 수 있다. 애플리케이션은 데이터 키의 새로운 사본을 암호화함으로써 새로운 승인 블롭을 생성할 수 있고, 그것을 다른 플랫폼 구성을 나타내는 PCR 값들에 대해 잠금할 수 있다. 일부 실시예들에서, 새로운 승인 블롭을 생성하는 애플리케이션는 가상 TPM으로 구성될 수 있다.
민감성 데이터(430)를 구성 하에서 이용가능하게 하는 애플리케이션은, 민감성 데이터(430)에 대한 액세스가 이용가능한 이전 구성만큼 구성이 안전하다는 어떤 보장을 원할 수 있다. 애플리케이션은 업그레이드 서비스, 이전 구성만큼 안전하다는 것을 결정하고 구성을 분석하도록 신뢰될수 있는 권한에 의존할 수있다. 민감성 데이터(430)의 초기 생성 동안에, 업그레이드 서비스에 대한 공개 키는 민감성 데이터 내로 주입될 수 있다(이것은 플랫폼에 대한 원래의 장비 제조사(OEM)에 의해 수행될 수 있음). 따라서, 민감성 데이터는 하나 이상의 키를 포함할 수 있다(예를 들어, 배터리로부터의 인증서를 암호해독하기 위한 키, 플랫폼 제조사 등과 같이, 업데이트 서비스로부터 업그레이드 블롭들을 잠금해제/언랩(unwrap)/암호해독하기 위한 공개 키). 추가의 구성에 대한 승인 블롭을 생성하기 전에, 애플리케이션은 추가의 구성의 업그레이드 서비스에 의한 서명된 허가(signed approval)를 요구할 수 있다.
도 4의 데이터 구조들은 또한 승인 블롭을 삭제하여 승인 블롭이 봉인되는 구성(예를 들어, 이전에 허가되었지만 기술적 문제의 이력 등으로 인해 더 이상 허가되지 않는 배터리) 하에서 민감성 데이터에 대한 액세스를 방지하도록 수정될 수 있다. 예를 들어, 컴퓨팅 플랫폼이 업데이트된 후에, 오래된 구성에 대해 잠겨진 승인 블롭이 삭제될 수 있다. 오래된 승인 블롭의 캐싱된 버전이 삭제 후에 사용되지 않을 것을 보장하기 위해, 안티-리플레이(anti-replay) 메커니즘이 사용될 수 있다. 예시적인 메커니즘은 승인 블롭들 및 민감성 데이터(예를 들어, 키 또는 키들)의 가장 최근에 업데이트된 세트의 해시를 현재 로딩된 승인 블롭들 및 민감성 데이터의 해시와 비교할 수 있다. 두 해시들의 동일성은 현재 로딩된 승인 블롭들이 새로운 세트이며 캐싱된 오래된 세트가 아님을 나타낼 수 있다. 해시는 스트링 또는 메시지를 고정 길이 출력 스트링으로 변환하는 수학적 연산이다. 해시 함수는 메시지를 찾기 매우 어렵게 하기 위해 고안되었고, 메시지의 해시는 주어진 메시지 요약을 생성한다. 따라서, 두 메시지들의 해시들이 동일하다면, 메시지들이 동일할 것이라는 가능성(likelihood)이 강한것이다.
민감성 데이터(430)를 사용하는 애플리케이션은 승인 블롭들 및 민감성 데이터를 애플리케이션이 승인 블롭들을 수정할 때마다 해싱할 수 있다. 그리고 나서, 애플리케이션은 결과적인 해시(435)를 TPM 비휘발성 RAM 또는 DIR(data integrity register)와 같은 비휘발성 저장소에 저장할 수 있다. DIR은 TPM 비휘발성 저장소의 다른 형식을 포함할 수 있다. 해시(435)는 또한 TPM 의 외부에 저장될 수 있다. 각각의 부트시에, 애플리케이션은 현재의 승인 블롭들 및 민감성 데이터의 해시를 계산할 수 있다. 현재의 상태의 해시가 해시(435), 이전 업데이트에서 저장된 승인 블롭들 및 민감성 데이터의 해시와 매칭하는 경우, 승인 블롭들(410, 415) 및 민감성 데이터(430)는 새로운 것일 수 있다.
도 5는 TPM 기능을 활용하여 (배터리로부터의 인증서를 암호해독하기 위한 키와 같은)암호화 키에 대한 액세스를 제어하는 애플리케이션에 의해 암호화 키를 수신하는 것(박스(505))을 포함하는 방법(500)을 포함한다. 박스(505)의 키는 플랫폼 구축/조립 시에 플랫폼 제조사에 의해 임베딩됨으로써 "수신"될 수 있다. 일부 실시예들에서, 암호화 키는 키를 생성하는 TPM으로부터 수신될 수 있다(박스(510)). 다른 실시예에서, 암호화 키는 다른 소스들로부터 수신될 수 있다. 예를 들어, 애플리케이션 그 자체가 암호화 키를 생성할 수 있다.
박스(515)는 암호화 키의 사용을 위한 승인을 수신하는 것을 포함한다. 승인의 제공은 암호해독에 이용가능한 암호화 키의 사용을 허용할 수 있다. 일부 실시예들에서, 승인은 난수(random number)를 발생시킴으로써 생성될 수 있다(블록(520)). 예를 들어, TPM 상의 내장 기능(built-in function)은 랜덤한 160비트 숫자들을 발생시킬 수 있다. 다른 실시예들에서, 승인은 패스워드 또는 패스워드의 해시로 구성될 수 있다.
블록(525)는 플랫폼 구성(예를 들어, 배터리 구성)의 PCR 값들을 수신하는 것을 포함한다. 일부 실시예들에서, 애플리케이션은, 컴퓨팅 플랫폼이 구성으로 설정되고 PCR 값들이 평가된 후에 값들을 획득함으로써 PCR 값들을 수신할 수 있다. 다른 실시예들에서, PCR 값들은 업그레이드 서비스로부터 획득될 수 있다.
애플리케이션은 구성(예를 들어, 배터리 구성)이 신뢰할만한 지를 결정할 수 있다(요소(530)). 예를 들어, 애플리케이션은 신뢰된 업그레이드 서비스(로부터 구성을 수신(그리고 블록(505)로부터의 키를 사용하여 신뢰된 업그레이드 서비스로부터의 정보를 암호해독)할 수 있고 또는 구성은 신뢰된 판매자로부터의 소프트웨어를 포함할 수 있다. 구성이 신뢰될 수 있는 경우, 애플리케이션은 승인을 포함하고 구성의 PCR 값들에 결속되는 암호화된 승인 블롭을 생성할 수 있다(요소(535)). 블롭은 TPM의 PCR 값들이 블롭이 잠겨있는 PCR 값들에 매칭되는 경우에만 암호해독될 수 있다. 구성이 신뢰할만하지 않다면, 애플리케이션은 추가의 구성을 위해 블롭들을 생성할지를 결정할 수 있다.(요소(560)).
일부 실시예들에서, 컴퓨팅 플랫폼은 PCR 값들이 수신된 구성의 컴포넌트를 형성하는 소프트웨어 또는 펌웨어를 설치하도록 수정될 수 있다(요소(540)). 컴퓨팅 플랫폼 상에 설치된 하나 이상의 애플리케이션, 다른 소프트웨어, 또는 펌웨어는 업그레이드될 수 있고; 추가의 애플리케이션, 소프트웨어, 또는 펌웨어의 컴포넌트가 추가 또는 삭제될 수 있고; 또는 새로운 버전의 소프트웨어 또는 펌웨어가 오래된 버전과 교체될 수 있다. 이전의 구성을 나타내는 블롭(오래된 블롭)은 삭제될 수 있다(요소(545)). 예를 들어, 오래된 블롭은 업그레이되었던 쓸모없는 배터리 구성을 나타낼 수 있다. 그러나, 대안의 실시예들에서, 오래된 블롭이 유지될 수 있다. 오래된 구성은 컴퓨팅 플랫폼이 동작할 수 있는 여러 대안의 구성들 중 하나를 나타낼 수 있다.
삭제된 오래된 블롭의 캐싱된 버전이 민감성 데이터에 대한 액세스를 얻기 위해 사용되지 않는 것을 보장하기 위해, 안티-리플레이 메커니즘이 사용될 수 있다. 승인 블롭들이 새롭게 생성된 승인 블롭으로 업데이트되면(요소(540)), 키에 의해 보호되는 민감성 데이터(예를 들어, 배터리 인증서에 대응하는 키) 및 키에 대한 승인 블롭들의 세트가 해싱될 수 있다(요소(550)). 해시는 DIR 또는 TPM의 다른 비휘발성 저장소와 같은 비휘발성 저장소 또는 컴퓨팅 플랫폼 상의 다른 비휘발성 저장소 내에 저장될 수 있다(요소(555)). 그 후, 민감성 데이터를 제어하는 애플리케이션이 부팅되는 경우, 애플리케이션은 현재 승인 블롭들 및 민감성 데이터의 해시를 계산하고 해시를 저장된 해시와 비교할 수 있다. 그 후, 해시들이 매칭하면, 승인 블롭들은 현재의 세트이고 오래된 캐싱된 세트가 아니다.
민감성 데이터에 대한 액세스를 허가하는 추가의 구성들이 존재하는 경우(요소(560)), 요소(525)로부터 요소(555)까지의 흐름도(500)의 각각의 요소는 반복될 수 있다. 그렇지 않은 경우, 암호화 키에 대한 액세스를 제어하는 것이 종료될 수 있다.
실시예들은 다수의 상이한 유형의 시스템에서 사용될 수 있다. 예를 들어, 일 실시예에서, 통신 디바이스는 본원에서 설명된 다양한 방법들 및 기법들을 수행하도록 구성될 수 있다. 물론, 본 발명의 범주는 통신 디바이스로 제한되는 것은 아니며, 그 대신에 다른 실시예들은 명령어들을 프로세싱하기 위한 다른 유형의 장치에 관한 것일 수 있다. 명령어들을 프로세싱하는 장치는 본원에서 설명된 방법들 중 임의의 것을 수행하도록 구성될 수 있다. 그리고 장치는 본원에서 설명된 방법들 중 임의의 것을 수행하는 수단을 더 포함할 수 있다.
프로그램 명령어들은 명령어들로 프로그램되는 범용 또는 전용 프로세싱 시스템으로 하여금 본원에서 설명된 동작들을 수행하게 하도록 사용될 수 있다. 대안적으로, 동작들은 동작들을 수행하기 위한 배선 로직(hardwired logic)을 포함하는 특정 하드웨어 컴포넌트들에 의해 또는 프로그램된 컴퓨터 컴포넌트들과 맞춤형 하드웨어 컴포넌트들의 임의의 조합에 의해 수행될 수 있다. 본원에서 설명된 방법들은, (a) 프로세싱 시스템 또는 다른 전자 디바이스가 방법들을 수행하도록 프로그램하는데 사용될 수 있는 명령어들을 저장한 하나 이상의 머신 판독가능한 매체를 포함할 수 있는 컴퓨터 프로그램 제품, 또는 (b) 시스템으로 하여금 방법들을 수행하게 하는 명령어들을 저장한 적어도 하나의 저장 매체로서 제공될 수 있다. 본원에서 사용된 용어 "머신 판독가능한 매체" 또는 "저장 매체"는 머신에 의한 실행을 위해 명령어들의 시퀀스를 저장 또는 인코딩할 수 있고, 머신으로 하여금 본원에서 설명된 방법들 중 임의의 것을 수행하게 하는 임의의 매체를 포함할 것이다. 따라서, 용어 "머신 판독가능한 매체" 또는 "저장 매체"는, 이것으로 제한되는 것은 아니지만, 고체 상태 메모리들, 광학 및 자성 디스크들, ROM(read-only memory), PROM(programmable ROM), EPROM(erasable PROM), EEPROM(electrically EPROM), 디스크 드라이브, 플로피 디스크, CD-ROM(compact disk ROM), DVD(digital versatile disk), 플래시 메모리, 자기-광학 디스크를 포함할 것이다. 프로그램 코드는 패킷들, 직렬 데이터, 병렬 데이터 등의 형태로 전송될 수 있으며, 압축되거나 암호화된 형태로 사용될 수 있다. 또한, 소프트웨어가 액션을 취하거나 결과를 야기하는 하나의 형태 또는 다른 형태(예를 들어, 프로그램, 프로시저, 프로세스, 애플리케이션, 모듈, 로직 등)로 소프트웨어를 언급하는 것이 본 기술분야에서 통상적이다. 그러한 표현은 단지 프로세싱 시스템에 의한 소프트웨어의 실행이 프로세서로 하여금 액션을 수행하거나 결과를 내도록 하는 것임을 말하는 일종의 약칭이다.
이제, 도 6을 참조하면, 본 발명의 실시예에 따른 시스템 실시예(1000)의 블록도가 도시된다. 제1 프로세싱 요소(1070) 및 제2 프로세싱 요소(1080)를 포함하는 멀티프로세서 시스템(1000)이 도시된다. 2개의 프로세싱 요소(1070 및 1080)가 도시되어 있지만, 시스템(1000)의 실시예는 또한 하나의 그러한 처리 요소만을 포함할 수 있다는 것을 이해해야 한다. 시스템(1000)은 포인트-투-포인트 상호접속 시스템으로서 도시되어 있는데, 여기서 제1 프로세싱 요소(1070) 및 제2 프로세싱 요소(1080)는 포인트-투-포인트 상호접속(1050)을 통해 결합된다. 예시된 상호접속들 중 임의의 것 또는 모든 것들이 포인트-투-포인트 상호접속이 아니라 멀티-드롭 버스로서 구현될 수 있다는 것을 이해해야 한다. 도시된 바와 같이, 각각의 프로세싱 요소들(1070 및 1080)은 제1 및 제2 프로세서 코어들(즉, 프로세서 코어들(1074a 및 1074b)과 프로세서 코어들(1084a 및 1084b))을 포함하는 멀티코어 프로세서들일 수 있다. 그러한 코어들(1074, 1074b, 1084a, 1084b)은 본원에서 설명한 방법들과 유사한 방식으로 명령어 코드를 실행하도록 구성될 수 있다.
각각의 프로세싱 요소(1070, 1080)는 적어도 하나의 공유 캐시를 포함할 수 있다. 공유 캐시는, 각각, 코어들(1074a, 1074b, 1084a, 및 1084b)과 같은, 프로세서의 하나 이상의 컴포넌트들에 의해 활용되는 데이터(예를 들어, 명령어들)를 저장할 수 있다. 예를 들면, 공유 캐시는 프로세서의 컴포넌트들에 의한 보다 빠른 액세스를 위해 메모리(1032, 1034)에 저장되는 데이터를 국부적으로 캐시할 수 있다. 하나 이상의 실시예들에서, 공유 캐시는 레벨 2(L2), 레벨 3(L3), 레벨 4(L4), 또는 다른 레벨의 캐시와 같은 하나 이상의 중간 레벨 캐시들, 최종 레벨 캐시(LLC), 및/또는 이들의 조합들을 포함할 수 있다.
2개의 프로세싱 요소(1070, 1080)만이 도시되어 있지만, 본 발명의 범주는 이것으로 한정되지 않는다는 것을 이해해야 한다. 기타 실시예들에서, 주어진 프로세서에는 하나 이상의 부가적 프로세싱 요소들이 존재할 수 있다. 대안으로서, 프로세싱 요소들(1070, 1080) 중 하나 이상은 프로세서 이외의 요소, 예를 들어 가속기 또는 필드 프로그래머블 게이트 어레이일 수 있다. 예를 들어, 추가적 프로세싱 요소(들)는 제1 프로세서(1070)와 동일한 추가적 프로세서(들), 제1 프로세서(1070)와는 이질적이거나 비대칭인 추가적 프로세서(들), (예를 들어, 그래픽 가속기들 또는 디지털 신호 프로세싱(DSP) 유닛들과 같은) 가속기들, 필드 프로그래머블 게이트 어레이들, 또는 임의의 다른 프로세싱 요소를 포함할 수 있다. 아키텍처, 마이크로아키텍처, 열, 전력 소비 특성 등을 포함하는 장점의 척도(metrics)의 스펙트럼의 관점에서 프로세싱 요소들(1070, 1080) 사이에는 다양한 차이들이 존재할 수 있다. 이들 차이들은 프로세싱 요소들(1070, 1080) 간의 비대칭성 및 이질성으로서 자기 자신들을 효과적으로 드러낼 수 있다. 적어도 일 실시예에서, 다양한 프로세싱 요소들(1070, 1080)은 동일 다이 패키지 내에 상주할 수 있다.
제1 프로세싱 요소(1070)는 메모리 제어기 로직(MC)(1072) 및 포인트-투-포인트(P-P) 인터페이스들(1076 및 1078)을 더 포함할 수 있다. 유사하게, 제2 프로세싱 요소(1080)는 MC(1082) 및 P-P 인터페이스들(1086 및 1088)을 포함할 수 있다. 도 6에 도시된 바와 같이, MC들(1072 및 1082)은 프로세서들을 각자의 메모리들, 즉 메모리(1032) 및 메모리(1034)에 결합하며, 이들 메모리들은 각자의 프로세서들에 국부적으로 부착되는 메인 메모리의 부분들일 수 있다. MC 로직(1072 및 1082)이 프로세싱 요소(1070, 1080) 내에 통합된 것으로 도시되어 있지만, 대안적인 실시예들에서 MC 로직은 프로세싱 요소들(1070, 1080) 내에 통합되는 것이 아니라 프로세싱 요소들 외부에 있는 이산 로직일 수 있다.
제1 프로세싱 요소(1070) 및 제2 프로세싱 요소(1080)는 각각 P-P 상호접속들(1062, 10104)을 통해 P-P 인터페이스들(1076, 1086)을 통해 I/O 서브시스템(1090)에 결합될 수 있다. 도시된 바와 같이, I/O 서브시스템(1090)은 P-P 인터페이스들(1094 및 1098)을 포함한다. 또한, I/O 서브시스템(1090)은 I/O 서브시스템(1090)을 고성능 그래픽 엔진(1038)과 결합하는 인터페이스(1092)를 포함한다. 일 실시예에서, 버스가 사용되어 그래픽 엔진(1038)을 I/O 서브시스템(1090)에 결합할 수 있다. 대안적으로, 포인트-투-포인트 상호접속(1039)은 이러한 컴포넌트들을 서로 결합할 수 있다. 실시예에서, 버스가 사용되어 TPM 또는 다른 아웃-오브-밴드 암호프로세서(도시되지 않음)를 I/O 서브시스템(1090)에 결합할 수 있다.
다음으로, I/O 서브시스템(1090)은 인터페이스(1096)를 통해 제1 버스(10110)에 결합될 수 있다. 일 실시예에서, 제1 버스(10110)는 PCI(Peripheral Component Interconnect) 버스일 수 있거나, 또는 PCI Express 버스 또는 또 다른 제3세대 I/O 상호접속 버스와 같은 버스일 수 있지만, 본 발명의 범주는 이것으로 제한되지는 않는다.
도시된 바와 같이, 다양한 I/O 디바이스들(1014, 1024)이, 제1 버스(10110)를 제2 버스(1020)에 결합할 수 있는 버스 브리지(1018)와 함께, 제1 버스(10110)에 결합될 수 있다. 일 실시예에서, 제2 버스(1020)는 LPC(Low Pin Count) 버스일 수 있다. 일 실시예에서, 예를 들어 키보드/마우스(1022), (결국 컴퓨터 네트워크와 통신할 수 있는) 통신 디바이스(들)(1026), 및 코드(1030)를 포함할 수 있는 디스크 드라이브 또는 다른 대용량 저장소 디바이스와 같은 데이터 저장소 유닛(1028)을 포함하는 다양한 디바이스들이 제2 버스(1020)에 결합될 수 있다. 코드(1030)는 전술한 방법들 중 하나 이상의 방법의 실시예들을 수행하기 위한 명령어들을 포함할 수 있다. 또한, 오디오 I/O(1024)가 제2 버스(1020)에 연결될 수 있다.
기타 실시예들이 상정된다는 점을 유의한다. 예를 들어, 도시된 포인트-투-포인트 아키텍처 대신에, 시스템은 멀티-드롭 버스 또는 다른 그러한 통신 토폴로지를 구현할 수 있다. 또한, 도면의 요소들은 대안적으로 도면에 도시된 것보다 많거나 적은 통합된 칩들을 사용하여 구획될 수 있다.
예 1은 적어도 하나의 프로세서에 의해 실행되는 방법을 포함하고, 본 방법은, 모바일 컴퓨팅 노드가 (a) 부팅, 및 (b) 부팅 후의 그리고 런-타임 동안의 배터리의 교환 중 적어도 하나에 관여하는 동안, 적어도 하나의 프로세서를 포함하는 모바일 컴퓨팅 노드에 포함되는, 배터리로부터의 보안 자격증명들을 아웃-오브-밴드 암호프로세서가 수신하는 단계; 암호프로세서가 인증 키에 액세싱하는 단계를 포함하고, 암호프로세서는 보안 자격증명 및 인증 키에 기초하여, 아웃-오브-밴드 프로세싱을 통해, 배터리를 성공적으로 인증한다. 실시예에서, 인증 키는 모바일 컴퓨팅 노드의 제조 동안에 OEM에 의해 TPM 내에 주입 또는 임베딩될 수 있다. 또한, 키에 액세싱하는 것은 키를 생성하고, 그 후 키에 액세싱하는 것을 포함할 수 있다. 암호프로세서가 보안 자격증명 및 인증 키에 "기초하여" 배터리를 성공적으로 인증하는 것은, 자격증명에 직접적으로 또는 간접적으로 기초하는 것을 포함한다. 예를 들어, 전달된 자격증명으로부터 도출된 추가의 자격증명(예를 들어, 해싱된, 다른 정보와 연결된(concatenated) 등)이 인증을 위해 사용될 수 있다.
예 2에서, 예 1의 발명은, 보안 자격증명이 인증서를 포함하는 것을 선택적으로 포함할 수 있다.
예 3에서, 예 1-2의 발명은, 인증서가 인증서에 대한 만료일자, 배터리에 대한 전압 제약, 배터리에 대한 대기 제약(atmospheric restriction), 배터리에 대한 버전 식별자, 배터리의 판매자에 대한 식별자, 및 배터리에 대한 지리적 제약 중 적어도 하나를 포함하는 인증서 값을 포함하는 것을 선택적으로 포함할 수 있다.
예 4에서, 예 1-3의 발명은, 모바일 컴퓨팅 노드에 대한 실시간 조건을 판정하는 것; 및 실시간 조건 및 인증서 값을 비교하는 것에 기초하여 배터리를 인증하는 것을 선택적으로 포함할 수 있다. 예를 들어, 인증서 값은 지리적 한정자(예를 들어, 배터리는 오직 국가 Z에서 활용될 수 있음)를 포함할 수 있고 노드는, 노드가 인증서에 포함되지 않은 국가에 위치된다는 것을 판정할 수 있고, 노드를 적절하게 셧다운하도록 진행할 수 있다.
예 5에서, 예 1-4의 발명은, 추가의 인증서를 이용하여 인증서를 업데이팅하는 것을 선택적으로 포함할 수 있다. 새로운 배터리는 새로운 인증서를 포함할 수 있다. 도 5에 도시된 바와 같이, 새로운 키(블록(550))는 플랫폼에 제공될 수 있고, 새로운 키는 새로운 배터리와 관련된 새로운 인증서에 대응한다.
예 6에서, 예 1-5의 발명은, 인증서를 업데이팅하기 전에 배터리를 성공적으로 인증하는 것을 선택적으로 포함할 수 있고, 배터리를 성공적으로 인증하는 것 및 인증서를 업데이팅하는 것 사이에는 모바일 컴퓨팅 노드를 재부팅하지 않는다. 따라서, 일 실시예에서, 인증들 사이에서 플랫폼 재부팅 없이 모두, 이전의 인증서는 다른 인증서가 인증되기 전에 인증될 필요가 있을 수 있다. 일 실시예에서, 인증들 사이에서 플랫폼 재부팅 없이 모두, 이전의 인증서는, 다른 인증서가 수신되기 전에 인증될 필요가 있을 수 있다.
예 7에서, 예 1-6의 발명은, 추가의 컴퓨팅 노드로부터 추가의 인증서를 수신하는 것을 선택적으로 포함할 수 있다. 그러한 노드는 클라우드에 포함될 수 있다.
예 8에서, 예 1-7의 발명은, 모바일 컴퓨팅 노드가 배터리의 진위성(authenticity)을 증명하는 추가의 인증서를 추가의 컴퓨팅 노드에 전송하는 것을 선택적으로 포함할 수 있다. 추가의 인증서는 플랫폼/배터리 조합의 보안을 증명할 수 있다.
예 9에서, 예 1-8의 발명은, 배터리에 대한 해싱된 값과 암호프로세서 내에 위치된 레지스터들 내에 저장된 추가의 해싱된 값을 비교하는 것에 기초하여 배터리를 인증하는 것을 선택적으로 포함할 수 있고; 여기서, 배터리에 대해 해싱된 값은 (a) 배터리로부터 수신된 것, 및 (b) 배터리로부터 수신된 정보에 기초한 것 중 적어도 하나이다. 실시예에서, 해싱된 값은 인증서에 포함될 수 있거나, 임의의 인증서로부터 분리되고 떨어져 있을 수 있다.
예 9의 다른 실시예에서, 디바이스 및 배터리 양자는 인증에 있어서 그들이 각각 사용하는 베이스 키를 획득하기 위해(예를 들어, 이전에 본적 없는 인증서/새롭게 릴리즈된 인증서를 포함하는 새롭게 릴리즈된 배터리로부터의 인증서를 암호해독하기 위해) 클라우드 기반 서버에 자신들을 인증할 수 있다.
예 10에서, 예 1-9의 발명은, 보안 자격증명이 배터리의 구성의 평가치를 포함하는 것을 선택적으로 포함할 수 있다. 그러한 평가는, 예를 들어, 배터리 하우징/패키지 내에 포함된 레지스터들에 기초할 수 있다.
예 11에서, 예 1-10의 발명은, 암호프로세서가 배터리를 성공적으로 인증하는 경우 제1 모드에서 그리고 암호프로세서가 배터리를 인증하는 것을 성공하지 못한 경우 제2 모드에서 모바일 컴퓨팅 노드를 동작시키는 것을 선택적으로 포함하고, 제2 모드는 모바일 컴퓨팅 노드를 완전하게 파워 다운(power down)하는 것보다 더 많은 기능성을 갖지만, 제1 모드보다 더 적은 기능성을 갖는다. 예를 들어, 실시예는, 배터리가 인증되지만, 오직 안전 모드에서만 인증되는 경우, 플랫폼이 제약없는 모드(unhindered mode)에서 동작하게 하는 것을 포함할 수 있고, 여기서, 배터리가 인증되지 않은 경우, 특권 레벨 액세스가 제약되고 전체적 기능성이 축소된다.
예 12에서, 예 1-11의 발명은, 배터리가 배터리 하우징에 포함되고, 보안 자격증명은 배터리 하우징 및 암호프로세서 중 적어도 하나 내에 위치된 레지스터들 내에 저장된 정보에 기초하는 것을 선택적으로 포함할 수 있다. 실시예는, 레지스터들의 평가치, 그 평가치의 해시, 레지스터들의 평가치와 난수와의 연결(concatenation) 등을 포함함으로써 레지스터 정보에 기초한 자격증명을 가질 수 있다.
예 13에서, 예 1-12의 발명은, 암호프로세서가 하드웨어 TPM, 소프트웨어 TPM, 및 가상 TPM 중 하나를 포함하는 것을 선택적으로 포함할 수 있다.
예 14에서, 예 1-13의 발명은, 추가의 컴퓨팅 노드로부터 추가의 보안 자격증명을 수신하는 것, 그리고 암호프로세서가, 추가의 보안 자격증명들과 인증 키 및 추가의 인증 키 중 적어도 하나에 기초하여, 모바일 컴퓨팅 노드에 포함된 추가의 배터리를 성공적으로 인증하는 것을 선택적으로 포함할 수 있다. 따라서, 실시예에서, 상이한 레지스터 설정들을 갖는 새로운 배터리가 플랫폼에 도입될 수 있다. 플랫폼은 추가의 보안 자격증명을 포함하는 새로운 블롭을 수신할 수 있다. 플랫폼은 이러한 추가의 자격증명을 이용하여 새로운 배터리의 레지스터 설정들(또는 일부 도출된 그의 해석(rendition))을 인증할 수 있다. 플랫폼은 이전의 인증서를 암호해독하는데 사용된 키 또는 새로운 인증서에 대해 사용된 새로운 키를 이용하여 이러한 설정을 포함하는 인증서를 암호해독함으로써 새로운 배터리의 레지스터 설정들을 액세스할 수 있다.
예 15에서, 예 1-14의 발명은, 암호프로세서가, 보안 자격증명에 포함된 제1 값과, 모바일 컴퓨팅 노드 내에 포함된 구성 파일 내에 포함되는, 제1 값에 대응하는 제2 값에 기초하여 배터리를 성공적으로 인증하는 것을 선택적으로 포함할 수 있다. 따라서, 실시예에서, 인증서에 포함된 그러한 전압 설정(예를 들어, 특정 범위 내의 값)과 같은 값이 구성 파일 내의 값에 대해 직접적으로 또는 간접적으로 비교될 수 있다.
예 16에서, 예 1-15의 발명은, 구성 파일이 암호프로세서 내에 저장되는 것을 선택적으로 포함할 수 있다. 예를 들어, 파일은 TPM의 보안 저장소 내에 위치될 수 있다. 그러나, 파일은 그 대신에 클라우드 내에 위치될 수 있다.
예 17에서, 예 1-16의 발명은, 암호프로세서가, 추가의 배터리로부터 추가의 보안 자격증명을 수신하고; 추가의 인증 키를 수신하고; 및 추가의 보안 자격증명 및 추가의 인증 키에 기초하여, 아웃-오브-밴드 프로세싱을 통해 추가의 배터리를 성공적으로 인증하는 것을 선택적으로 포함할 수 있다. 추가의 키는, 일 실시예에서, 업데이트 블롭을 통해 수신될 수 있다. 업데이트 블롭은 인증서를 통해 노드에 전송된 정보와 비교할 다른 인자들을 포함할 수 있다.
예 18에서, 예 1-17의 발명은, 보안 자격증명이 배터리의 구성의 평가치 및 평가치에 기초한 정보 중 적어도 하나를 포함하는 것을 선택적으로 포함할 수 있다.
예 19에서, 예 1-18의 발명은, 암호프로세서가, 추가의 인증 정보를 수신하고; 추가의 인증 정보에 기초하여, 아웃-오브-밴드 프로세싱을 통해 배터리 및 추가의 배터리 중 적어도 하나를 성공적으로 인증하는 것을 선택적으로 포함할 수 있다. 추가의 인증 정보는, 일 실시예에서, 업데이트 블롭을 통해 수신될 수 있다. 업데이트 블롭은 인증서를 통해 노드에 전송된 정보와 비교할 다른 인자들을 포함할 수 있다.
예 20은, 배터리; 및 배터리에 결합된 아웃-오브-밴드 암호프로세서를 더 포함하는 모바일 컴퓨팅 노드를 포함하는 장치를 포함하고, 암호프로세서는 (ⅰ)(a) 부팅, 및 (ⅰ)(b) 부팅 후의 그리고 런-타임 동안의 배터리 교환 중 적어도 하나에 모바일 컴퓨팅 노드가 관여하는 동안 (ⅰ) 보안 자격증명들을 수신하고; (ⅱ) 인증 키에 액세스하고; 및 (ⅲ) 보안 자격증명들 및 인증 키에 기초하여 아웃-오브-밴드 프로세싱을 통해 배터리를 성공적으로 인증한다.
예 21에서, 예 20의 발명은, 암호프로세서가, 추가의 배터리로부터 추가의 보안 자격증명을 수신하고; 추가의 인증 키를 수신하고; 추가의 보안 자격증명 및 추가의 인증 키에 기초하여, 아웃-오브-밴드 프로세싱을 통해 추가의 배터리를 성공적으로 인증하는 것을 선택적으로 포함할 수 있다.
예 22에서, 예 20-21의 발명은, 암호프로세서가, 추가의 인증 정보를 수신하고; 및 추가의 인증 정보에 기초하여, 아웃-오브-밴드 프로세싱을 통해 배터리 및 추가의 배터리 중 적어도 하나를 성공적으로 인증하는 것을 선택적으로 포함할 수 있다.
예 23은 명령어들을 저장한 적어도 하나의 저장 매체를 포함하고, 명령어들은, 아웃-오브-밴드 암호프로세서로 하여금, 모바일 컴퓨팅 노드가 (a) 부팅; 및 (b) 부팅 후의 그리고 런-타임 동안의 배터리 교환 중 적어도 하나에 관여하는 동안 암호프로세서를 포함하는 모바일 컴퓨팅 노드에 포함되는 배터리로부터의 보안 자격증명을 수신하고; 인증 키에 액세스하고; 보안 자격증명 및 인증 키에 기초하여 아웃-오브-밴드 프로세싱을 통해 배터리를 성공적으로 인증하게 한다.
예 24에서, 예 23의 발명은, 암호프로세서로 하여금, 추가의 배터리로부터 추가의 보안 자격증명을 수신하고; 추가의 인증 키를 수신하고; 추가의 보안 자격증명 및 추가의 인증 키에 기초하여, 아웃-오브-밴드 프로세싱을 통해 추가의 배터리를 성공적으로 인증하게 하는 명령어들을 선택적으로 포함할 수 있다.
예 25에서, 예 23-24의 발명은, 암호프로세서로 하여금, 추가의 인증 정보를 수신하고; 추가의 인증 정보에 기초하여, 아웃-오브-밴드 프로세싱을 통해 배터리 및 추가의 배터리 중 적어도 하나를 성공적으로 인증하게 하는 명령어들을 선택적으로 포함할 수 있다.
본 발명은 제한된 수의 실시예들에 대하여 설명되었지만, 관련 기술분야의 통상의 기술자라면 그것으로부터의 다수의 수정물들 및 변형물들을 인식할 것이다. 첨부 청구항들은 이러한 본 발명의 진정한 사상 및 범위 내에 있는 이러한 모든 수정물들 및 변형물들을 포함한다고 의도된다.

Claims (25)

  1. 배터리에 부착 또는 내장하기 위한 장치로서,
    보안 자격증명들(security credentials)을 저장하기 위한 메모리; 및
    상기 배터리의 핫 스왑핑(hot swapping) 동안 상기 배터리가 컴퓨팅 장치에 삽입되는 것에 적어도 부분적으로 기초하여 상기 컴퓨팅 장치로부터의 요청을 수신하고,
    상기 보안 자격증명들을 상기 메모리로부터 상기 컴퓨팅 장치로 송신하는 회로
    를 포함하고,
    상기 컴퓨팅 장치는 상기 컴퓨팅 장치에 저장된 인증 키(authentication key)에 액세스하여, 상기 보안 자격증명들 및 상기 인증 키에 적어도 부분적으로 기초하여 상기 배터리를 인증하는, 장치.
  2. 제1항에 있어서,
    상기 보안 자격증명들은 비밀 키-공개 키 쌍 중의 비밀 키를 이용하여 서명된 인증서(certificate)를 포함하고,
    상기 인증 키는 상기 공개 키를 포함하는, 장치.
  3. 제2항에 있어서,
    상기 컴퓨팅 장치는,
    상기 인증 키를 이용하여 상기 인증서를 암호해독하고,
    암호해독된 상기 인증서에 적어도 부분적으로 기초하여 상기 배터리를 인증하는, 장치.
  4. 제1항에 있어서,
    상기 인증 키는 제1 인증 키이고,
    상기 보안 자격증명들은 제2 인증 키를 이용하여 서명된 인증서를 포함하는, 장치.
  5. 제4항에 있어서,
    상기 인증서는 상기 배터리와 관련된 고유 식별 번호 또는 상기 배터리의 시리얼 번호 중 하나를 포함하는, 장치.
  6. 컴퓨팅 장치 내의 프로세서에 의해 실행될 때, 상기 프로세서로 하여금, 하나 이상의 동작을 수행하게 하는 명령어들이 저장되는 비-일시적 컴퓨터 판독가능한 저장 매체로서, 상기 하나 이상의 동작은,
    배터리 유닛의 핫 스왑핑 동안 상기 배터리 유닛이 상기 컴퓨팅 장치에 삽입되는 것에 적어도 부분적으로 기초하여 상기 배터리 유닛으로부터 보안 자격증명들을 수신하는 동작;
    상기 컴퓨팅 장치에 저장된 인증 키에 액세스하는 동작; 및
    상기 보안 자격증명들 및 상기 인증 키에 적어도 부분적으로 기초하여 상기 배터리 유닛을 인증하는 동작
    을 포함하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  7. 제6항에 있어서,
    상기 보안 자격증명들은 인증서(certificate)를 포함하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  8. 제7항에 있어서,
    상기 인증서는 상기 배터리 유닛과 관련된 고유 식별 번호 또는 상기 배터리 유닛의 시리얼 번호 중 하나를 포함하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  9. 제6항에 있어서,
    상기 인증 키는 공개 키를 포함하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  10. 제6항에 있어서,
    상기 보안 자격증명들은 비밀 키-공개 키 쌍 중의 비밀 키를 이용하여 서명된 인증서를 포함하고,
    상기 인증 키는 상기 공개 키를 포함하며,
    상기 명령어들은, 실행될 때, 상기 프로세서로 하여금,
    상기 공개 키를 이용하여 상기 인증서를 암호해독하는 동작, 및
    상기 공개 키를 이용하여 상기 인증서를 성공적으로 암호해독하는 것에 적어도 부분적으로 응답하여 상기 배터리 유닛을 인증하는 동작을 포함하는 하나 이상의 동작을 수행하게 하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  11. 제6항 내지 제10항 중 어느 한 항에 있어서,
    상기 배터리 유닛은 제1 배터리 유닛이고, 상기 보안 자격증명들은 제1 보안 자격증명들이고, 상기 명령어들은, 상기 프로세서로 하여금,
    제2 배터리 유닛의 핫 스왑핑 동안 상기 제2 배터리 유닛이 상기 컴퓨팅 장치에 삽입되는 것에 응답하여 상기 제2 배터리 유닛으로부터 제2 보안 자격증명들을 수신하는 동작;
    상기 인증 키를 이용하여 상기 제2 보안 자격증명들을 암호해독하는 데 실패하는 동작; 및
    상기 제2 보안 자격증명들을 암호해독하는 데 실패한 것에 적어도 부분적으로 기초하여 상기 제2 배터리 유닛이 인증되지 않았다고 결정하는 동작
    을 포함하는 하나 이상의 동작을 더 수행하게 하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  12. 제11항에 있어서,
    상기 명령어들은, 상기 프로세서로 하여금,
    상기 제1 배터리 유닛이 상기 컴퓨팅 장치에 삽입되어 있는 동안 상기 제1 배터리 유닛이 인증된 것에 적어도 부분적으로 응답하여 상기 컴퓨팅 장치를 제1 모드에서 동작하게 하는 동작; 및
    상기 제2 배터리 유닛이 상기 컴퓨팅 장치에 삽입되어 있는 동안 상기 제2 배터리 유닛이 인증되지 않은 것에 적어도 부분적으로 응답하여 상기 컴퓨팅 장치를 제2 모드에서 동작시키는 동작
    을 포함하는 하나 이상의 동작을 수행하게 하는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  13. 제11항에 있어서,
    상기 제2 모드는 상기 컴퓨팅 노드를 파워 다운(power down)하는 것보다 더 많은 기능성을 갖지만, 제1 모드보다 더 적은 기능성을 갖는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  14. 제6항 내지 제10항 중 어느 한 항에 있어서,
    상기 보안 자격증명들은 상기 배터리 유닛 내에 위치된 레지스터들 내에 저장되는, 비-일시적 컴퓨터 판독가능한 저장 매체.
  15. 장치로서,
    배터리 유닛을 수용하기 위한 하우징; 및
    상기 장치의 런-타임 동안 상기 배터리 유닛이 상기 하우징 내에 삽입되는 것에 응답하여 상기 배터리 유닛으로부터 보안 자격증명들을 수신하고,
    상기 장치 내에 저장된 인증 키에 액세스하고,
    상기 보안 자격증명들 및 상기 인증 키에 적어도 부분적으로 기초하여 상기 배터리 유닛을 인증하는 회로
    를 포함하는, 장치.
  16. 제15항에 있어서,
    상기 보안 자격증명들은 인증서를 포함하는, 장치.
  17. 제16항에 있어서,
    상기 인증서는 상기 배터리 유닛과 연관된 고유 식별 번호 또는 상기 배터리 유닛의 시리얼 번호 중 하나를 포함하는, 장치.
  18. 제15항에 있어서,
    상기 인증 키는 공개 키를 포함하는, 장치
  19. 제15항에 있어서,
    상기 보안 자격증명들은 인증서를 포함하고,
    상기 인증 키는 공개 키를 포함하며,
    상기 회로는 또한:
    상기 공개 키를 이용하여 상기 인증서를 암호해독하고,
    상기 공개 키를 이용하여 상기 인증서를 성공적으로 암호해독하는 것에 적어도 부분적으로 응답하여 상기 배터리 유닛을 인증하는, 장치.
  20. 제15항 내지 제19항 중 어느 한 항에 있어서,
    상기 배터리 유닛은 제1 배터리 유닛이고, 상기 보안 자격증명들은 제1 보안 자격증명들이며, 상기 회로는 또한,
    제2 배터리 유닛의 핫 스왑핑 동안 상기 제2 배터리 유닛이 상기 하우징 내에 삽입되는 것에 응답하여 상기 제2 배터리 유닛으로부터 제2 보안 자격증명들을 수신하고,
    상기 인증 키를 이용하여 상기 제2 보안 자격증명들을 암호해독하는 데 실패하고,
    상기 제2 보안 자격증명들을 암호해독하는 데 실패한 것에 적어도 부분적으로 기초하여, 상기 제2 배터리 유닛이 인증되지 않았다고 결정하는, 장치.
  21. 제15항 내지 제19항 중 어느 한 항에 있어서,
    상기 배터리 유닛이,
    상기 장치에 전력을 공급하기 위한 배터리; 및
    상기 보안 자격증명들을 저장하기 위한 메모리
    를 포함하는, 장치.
  22. 제15항 내지 제19항 중 어느 한 항에 있어서,
    상기 장치는 셀룰러 폰 또는 랩톱 중 하나인, 장치.
  23. 시스템으로서,
    배터리 유닛을 수용하기 위한 하우징;
    프로세서;
    상기 프로세서에 연결된 메모리 -상기 메모리는 명령어들을 저장함 -; 및
    상기 프로세서로 하여금 또 다른 시스템과 통신하게 해주는 무선 인터페이스
    를 포함하며, 상기 프로세서는,
    상기 시스템이 동작하는 동안 상기 배터리 유닛이 상기 하우징 내에 삽입되는 것에 응답하여, 상기 배터리 유닛으로부터 서명된 인증서를 수신하고,
    상기 메모리 내에 저장된 공개 키에 액세스하고,
    상기 서명된 인증서와 상기 공개 키에 적어도 부분적으로 기초하여, 상기 배터리 유닛이 인증된 제조사로부터의 것인지를 결정하는, 시스템.
  24. 제23항에 있어서,
    상기 프로세서는 또한,
    상기 공개 키를 이용하여 상기 서명된 인증서를 암호해독하고,
    상기 공개 키를 이용하여 상기 서명된 인증서를 성공적으로 암호해독하는 것에 적어도 부분적으로 응답하여 상기 배터리 유닛을 인증하는, 시스템.
  25. 제23항에 있어서,
    상기 프로세서는 또한,
    상기 공개 키를 이용하여 상기 서명된 인증서를 암호해독하는 데 실패하고,
    상기 공개 키를 이용하여 상기 서명된 인증서를 암호해독하는 데 실패한 것에 적어도 부분적으로 응답하여, 상기 배터리 유닛이 인증된 제조자로부터의 것이 아닌 것으로 결정하는, 시스템.
KR1020177022123A 2013-06-13 2013-06-13 보안 배터리 인증 KR101867789B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/045593 WO2014200490A1 (en) 2013-06-13 2013-06-13 Secure battery authentication

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157032615A Division KR101768583B1 (ko) 2013-06-13 2013-06-13 보안 배터리 인증

Publications (2)

Publication Number Publication Date
KR20170095394A true KR20170095394A (ko) 2017-08-22
KR101867789B1 KR101867789B1 (ko) 2018-06-15

Family

ID=52022620

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177022123A KR101867789B1 (ko) 2013-06-13 2013-06-13 보안 배터리 인증
KR1020157032615A KR101768583B1 (ko) 2013-06-13 2013-06-13 보안 배터리 인증

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020157032615A KR101768583B1 (ko) 2013-06-13 2013-06-13 보안 배터리 인증

Country Status (4)

Country Link
US (1) US9596085B2 (ko)
EP (2) EP3236376A1 (ko)
KR (2) KR101867789B1 (ko)
WO (1) WO2014200490A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103491248B (zh) * 2013-09-16 2016-01-20 华为技术有限公司 一种低电量开机的方法及用户设备
AU2014360510B2 (en) * 2013-12-03 2017-08-03 Radio Systems Corporation Method and apparatus for verifying battery authenticity
US9542558B2 (en) * 2014-03-12 2017-01-10 Apple Inc. Secure factory data generation and restoration
JP2017073951A (ja) * 2015-10-09 2017-04-13 キヤノン株式会社 電子機器及びプログラム
US10303623B2 (en) * 2016-04-08 2019-05-28 Cryptography Research, Inc. Non-volatile memory for secure storage of authentication data
US10177910B2 (en) * 2016-08-31 2019-01-08 Microsoft Technology Licensing, Llc Preserving protected secrets across a secure boot update
FR3060161A1 (fr) * 2016-12-08 2018-06-15 Orange Technique de gestion d'un droit d'acces a un service pour un dispositif communicant
US10467439B2 (en) * 2017-07-05 2019-11-05 Dell Products, L.P. Detecting tampering of memory contents in an information handling system
DE102017213010A1 (de) 2017-07-28 2019-01-31 Audi Ag Gesamtvorrichtung mit einer Authentifizierungsanordnung und Verfahren zur Authentifizierung
US20200119586A1 (en) * 2018-10-15 2020-04-16 Avigilon Corporation Wireless charging of depleted mobile device for access control
US11641363B2 (en) * 2019-01-14 2023-05-02 Qatar Foundation For Education, Science And Community Development Methods and systems for verifying the authenticity of a remote service
US11281764B2 (en) 2019-06-28 2022-03-22 Intel Corporation Safe battery authentication
CN114342437A (zh) 2019-07-19 2022-04-12 瑟德韦夫公司 物联网设备的反克隆系统
US11068035B2 (en) * 2019-09-12 2021-07-20 Dell Products L.P. Dynamic secure ACPI power resource enumeration objects for embedded devices
CN111327626B (zh) * 2020-03-03 2022-07-22 英华达(上海)科技有限公司 电池数据验证与交换的方法及系统
US11474579B2 (en) * 2020-04-29 2022-10-18 Intel Corporation Verified high-power transition and fast charging with pre-boot scaling
US11362521B2 (en) 2020-06-22 2022-06-14 Ola Electric Mobility Private Limited Offline mutual authentication for battery swapping

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120046015A1 (en) * 2005-10-14 2012-02-23 Research In Motion Limited Battery pack authentication for a mobile communication device
US20120284514A1 (en) * 2011-05-06 2012-11-08 Certicom Corporation Managing data for authentication devices

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343493B2 (en) 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
AU2003271923A1 (en) * 2002-10-17 2004-05-04 Vodafone Group Plc. Facilitating and authenticating transactions
US20040117318A1 (en) 2002-12-16 2004-06-17 Grawrock David W. Portable token controlling trusted environment launch
US7366906B2 (en) * 2003-03-19 2008-04-29 Ricoh Company, Ltd. Digital certificate management system, digital certificate management apparatus, digital certificate management method, program and computer readable information recording medium
US8271783B2 (en) 2004-04-19 2012-09-18 Hewlett-Packard Development Company, L.P. Subordinate trusted platform module
US7380119B2 (en) 2004-04-29 2008-05-27 International Business Machines Corporation Method and system for virtualization of trusted platform modules
US20060178170A1 (en) * 2005-02-08 2006-08-10 Samsung Electronics Co., Ltd. Wireless communication device having battery authentication, and associated method
JP5064003B2 (ja) * 2005-12-20 2012-10-31 パナソニック株式会社 認証システム、及び認証装置
US20080024268A1 (en) * 2006-07-14 2008-01-31 Wong Hong W Component authentication for computer systems
US7711960B2 (en) 2006-08-29 2010-05-04 Intel Corporation Mechanisms to control access to cryptographic keys and to attest to the approved configurations of computer platforms
JP4892008B2 (ja) * 2007-02-07 2012-03-07 日本電信電話株式会社 証明書認証方法、証明書発行装置及び認証装置
JP2009187380A (ja) * 2008-02-07 2009-08-20 Renesas Technology Corp データ処理システム
US8633801B2 (en) 2008-04-09 2014-01-21 Panasonic Corporation Battery authentication system, electronic device, battery, and battery charger
WO2010013090A1 (en) 2008-07-28 2010-02-04 Wisekey Sa Method and means for digital authentication of valuable goods
US20110093714A1 (en) 2009-10-20 2011-04-21 Infineon Technologies Ag Systems and methods for asymmetric cryptographic accessory authentication
US8621212B2 (en) * 2009-12-22 2013-12-31 Infineon Technologies Ag Systems and methods for cryptographically enhanced automatic blacklist management and enforcement
JP5499358B2 (ja) 2010-03-24 2014-05-21 独立行政法人産業技術総合研究所 認証処理方法及び装置
US8843650B2 (en) * 2012-01-09 2014-09-23 Fujitsu Limited Trusted network booting system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120046015A1 (en) * 2005-10-14 2012-02-23 Research In Motion Limited Battery pack authentication for a mobile communication device
US20120284514A1 (en) * 2011-05-06 2012-11-08 Certicom Corporation Managing data for authentication devices

Also Published As

Publication number Publication date
EP3008653A1 (en) 2016-04-20
KR20150143750A (ko) 2015-12-23
US9596085B2 (en) 2017-03-14
KR101867789B1 (ko) 2018-06-15
US20150172054A1 (en) 2015-06-18
EP3008653A4 (en) 2017-01-25
EP3236376A1 (en) 2017-10-25
WO2014200490A1 (en) 2014-12-18
KR101768583B1 (ko) 2017-08-30

Similar Documents

Publication Publication Date Title
KR101867789B1 (ko) 보안 배터리 인증
US11921860B2 (en) Rollback resistant security
US10176330B2 (en) Global platform health management
TWI640893B (zh) 授權將於目標計算裝置上執行之操作的方法
KR101662618B1 (ko) 단일 신뢰 플랫폼 모듈을 가진 플랫폼 컴포넌트의 측정
CN102063591B (zh) 基于可信平台的平台配置寄存器参考值的更新方法
EP2727040B1 (en) A secure hosted execution architecture
US20110246778A1 (en) Providing security mechanisms for virtual machine images
US20110093693A1 (en) Binding a cryptographic module to a platform
CN101657792A (zh) 可信部件更新系统和方法
WO2017133559A1 (zh) 安全启动方法及装置
US20200026882A1 (en) Methods and systems for activating measurement based on a trusted card
US11228421B1 (en) Secure secrets to mitigate against attacks on cryptographic systems
EP2005356A1 (en) Authentication of a request to alter at least one of a bios and a setting associated with the bios
US10956619B2 (en) Devices and method of operation thereof
CN112181513B (zh) 一种基于硬件板卡的控制主机系统引导的可信度量方法
CN112231709B (zh) 一种带远程升级功能的系统安全设计方法
JP6930884B2 (ja) Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラム
CN111597560B (zh) 一种安全可信模组启动方法及系统
KR101953444B1 (ko) 하드웨어 수준 보안을 보장하는 가상화 기반 소프트웨어 보안 방법 및 이를 이용하는 장치
Jiang et al. Implementing a arm-based secure boot scheme for the isolated execution environment
JP5806187B2 (ja) 秘密情報の交換方法およびコンピュータ
US20240037216A1 (en) Systems And Methods For Creating Trustworthy Orchestration Instructions Within A Containerized Computing Environment For Validation Within An Alternate Computing Environment
CN114816549A (zh) 一种保护bootloader及其环境变量的方法及系统

Legal Events

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