KR20230137422A - 디지털 장치를 위한 신뢰할 수 있는 컴퓨팅 - Google Patents
디지털 장치를 위한 신뢰할 수 있는 컴퓨팅 Download PDFInfo
- Publication number
- KR20230137422A KR20230137422A KR1020237029396A KR20237029396A KR20230137422A KR 20230137422 A KR20230137422 A KR 20230137422A KR 1020237029396 A KR1020237029396 A KR 1020237029396A KR 20237029396 A KR20237029396 A KR 20237029396A KR 20230137422 A KR20230137422 A KR 20230137422A
- Authority
- KR
- South Korea
- Prior art keywords
- private key
- signature
- computing device
- key
- host computing
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000004519 manufacturing process Methods 0.000 claims description 10
- 238000013461 design Methods 0.000 abstract description 11
- 238000005516 engineering process Methods 0.000 abstract description 10
- 238000012795 verification Methods 0.000 abstract description 8
- 238000012545 processing Methods 0.000 abstract description 5
- 230000006399 behavior Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 206010011906 Death Diseases 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
이 문서는 디지털 장치에 신뢰할 수 있는 컴퓨팅을 제공하기 위한 기술과 시스템에 대해 설명한다. 기술 및 시스템은 신뢰할 수 있는 컴퓨팅 및 프로세싱을 제공하기 위해 암호화 알고리즘을 사용할 수 있다. 그렇게 함으로써 이 기술은 진정한 계산을 보장하고 악의적인(nefarious) 행위를 방지하는 데 도움이 된다. 예를 들어, 디자니와 연관된 서명을 수신하고(290) 서명을 검증하는(290) 방법이 설명된다. 서명(290)은 호스트 컴퓨팅 장치(102)의 디자니와 연관될 수 있으며, 서명(290)은 호스트 컴퓨팅 장치(102)의 집적 회로(120) 및 제1 비대칭 키 쌍의 제1 개인 키와 연관된 펌웨어에 따라 생성될 수 있다. 서명 검증은 제2 개인 키(210) 및 제2 공개 키(214)를 갖는 제2 비대칭 키 쌍에 기초할 수 있으며, 제2 개인 키(210)는 호스트 컴퓨팅 장치(102)의 1회 기록 메모리(110)에 저장된다.
Description
본 명세서는 디지털 장치를 위한 신뢰할 수 있는 컴퓨팅에 관한 것이다
디지털 컴퓨팅 장치는 종종 다양한 집적 회로로 구성된다. 이러한 집적 회로는 때때로 리비전(revision)이 필요할 수 있다. 리비전은 인터넷, 이동식 미디어 또는 다른 도구에서 원격으로 얻을 수 있다. 부정하고 악의적인 행위를 방지하기 위해 칩 및 장치 설계자는 기본 펌웨어에 대한 변경을 제한하는 메커니즘을 엄격하게 사용한다.
일반적으로 안전하지만 앞서 언급한 메커니즘은 디지털 컴퓨팅 장치 및 다양한 집적 회로의 구성 가능성을 제한한다. 보호 장치의 경우와 마찬가지로 보안은 디지털 컴퓨팅 장치의 사용 용이성, 리비전, 적응 및 재동작에 도전할 수 있다.
이 문서에는 컴퓨팅 시스템의 보안 및 복원력 향상을 목표로 하는 디지털 장치용 신뢰할 수 있는 컴퓨팅을 제공하는 기술 및 장치가 포함되어 있다. 이러한 기술은 컴퓨팅 시스템에 대한 신뢰를 구축하여 보안 부팅 기능과 시스템 리소스에 대한 보안 프로세싱을 제공할 수 있다.
이러한 기술과 시스템은 암호화 알고리즘을 사용하여 신뢰할 수 있는 컴퓨팅 및 프로세싱을 제공할 수 있다. 그렇게 함으로써 이 기술은 진정한 계산을 보장하고 악의적인 행위를 방지하는 데 도움이 된다. 예를 들어, 디자니(designee)와 연관된 제1 서명을 수신하고 제1 서명을 검증하는 방법이 설명된다. 서명은 호스트 컴퓨팅 장치의 디자니와 연관될 수 있고, 서명은 호스트 컴퓨팅 장치의 집적 회로와 연관된 펌웨어 및 제1 비대칭 키 쌍의 제1 개인 키에 따라 생성될 수 있다. 제2 비대칭 키 쌍을 사용하는 경우, 서명 유효성 검사에는 제2 개인 키와 제2 공개 키가 있으며 제2 개인 키는 호스트의 1회 기록 메모리에 저장된다.
이 문서는 또한 디지털 저장 장치를 갖는 컴퓨터 판독 가능 매체를 설명한다. 디지털 저장소(스토리지)에는 읽기 전용, 1회 기록 파티션 및 비휘발성 부분이 포함된다. 컴퓨터 판독 가능 매체는 읽기 전용의 1회 기록 파티션에 저장된 제2 개인 키와 비휘발성 부분에 저장된 제1 공개 키를 포함할 수 있다. 컴퓨터가 읽을 수 있는 형식으로 디지털 저장소에 저장된 검증 프로그램은 개인 키로 서명되고 공개 키로 해독된 다이제스트(digests)를 원본 파일의 다이제스트와 비교하여 서명을 검증한다.
위에서 설명한 방법과 같은 한 양태의 선택적 특징은 다른 양태와 결합될 수 있다.
이 문서는 디지털 저장소와 프로세서가 있는 시스템에 대해서도 설명한다. 디지털 저장소에는 읽기 전용, 1회 기록 파티션 및 비휘발성 부분이 포함된다. 컴퓨터 판독 가능 매체는 읽기 전용의 1회 기록 파티션에 저장된 제2 개인 키와 비휘발성 부분에 저장된 제1 공개 키를 포함할 수 있다. 컴퓨터 판독 가능 매체는 또한 수신된 서명을 검증하는 컴퓨터 판독 가능 형태로 디지털 저장소에 저장된 검증 프로그램을 포함한다.
이는 신뢰 시스템이 호스트 컴퓨팅 장치의 집적 회로에서 실행되는 무단 펌웨어 리비전(revision)을 방지하는 호스트 컴퓨팅 시스템에서 신뢰할 수 있는 프로세싱 및 컴퓨팅을 보장할 수 있도록 한다.
이 요약은 디지털 장치에 대한 신뢰 컴퓨팅에 관한 단순화된 개념을 소개하기 위해 제공되며, 이는 아래의 상세한 설명 및 도면에서 추가로 설명된다. 이 요약은 청구된 요지의 본질적인 특징을 식별하기 위한 것이 아니며 청구된 주제의 범위를 결정하는 데 사용하기 위한 것이 아니다.
디지털 장치에 신뢰할 수 있는 컴퓨팅을 제공하는 하나 이상의 양태에 대한 세부 사항은 다음 도면을 참조하여 이 문서에 설명되어 있다. 유사한 기능 및 컴포넌트를 참조하기 위해 도면 전체에서 동일한 번호가 사용된다.
도 1은 본 발명의 하나 이상의 구현에 따라 디지털 장치를 위한 신뢰 컴퓨팅을 가능하게 하는 기술이 구현될 수 있는 예시적인 환경을 도시한다.
도 2는 본 발명의 하나 이상의 구현에 따른 예시적인 컴퓨팅 장치를 도시한다.
도 3은 본 발명의 하나 이상의 구현에 따른 예시적인 컴퓨터 판독 가능 매체를 도시한다.
도 4는 본 개시내용의 하나 이상의 구현에 따라 매니페스트(manifest)를 업데이트하기 위한 예시적인 방법을 예시한다.
도 5는 본 발명의 하나 이상의 구현에 따라 소프트웨어의 실행을 제한하는 예시적인 방법을 도시한다.
도 6은 본 개시내용의 하나 이상의 구현에 따라 디자니(designee)를 활성화하기 위한 예시적인 방법을 예시한다.
도 1은 본 발명의 하나 이상의 구현에 따라 디지털 장치를 위한 신뢰 컴퓨팅을 가능하게 하는 기술이 구현될 수 있는 예시적인 환경을 도시한다.
도 2는 본 발명의 하나 이상의 구현에 따른 예시적인 컴퓨팅 장치를 도시한다.
도 3은 본 발명의 하나 이상의 구현에 따른 예시적인 컴퓨터 판독 가능 매체를 도시한다.
도 4는 본 개시내용의 하나 이상의 구현에 따라 매니페스트(manifest)를 업데이트하기 위한 예시적인 방법을 예시한다.
도 5는 본 발명의 하나 이상의 구현에 따라 소프트웨어의 실행을 제한하는 예시적인 방법을 도시한다.
도 6은 본 개시내용의 하나 이상의 구현에 따라 디자니(designee)를 활성화하기 위한 예시적인 방법을 예시한다.
개요
예시적인 컴퓨팅 시스템(예: 서버 블레이드)은 마더보드 또는 기타 인쇄 회로 기판에 장착된 다양한 집적 회로 및 하드웨어 컴포넌트를 포함한다. 집적 회로와 하드웨어 컴포넌트는 상호 연결되어 통신하고 상호 작용한다. 컴포넌트 간의 통신 및 상호 작용은 암호화 메커니즘에 기초하여 신뢰를 설정할 수 있다.
컴퓨팅 시스템에 계층 구조로 통신하는 다양한 컴포넌트가 있다고 가정한다. 예를 들어 루트 컴포넌트는 암호화 키(예: 공개-개인 키 쌍)와 연결될 수 있다. 키 중 하나 또는 둘 다 루트 컴포넌트에 저장될 수 있다. 예를 들어 루트 컴포넌트에는 개인 키로 서명된 펌웨어의 검증(verification)을 제공하기 위해 공개 키가 있을 수 있다. 서명 또는 보증(endorsement)은 개인 키로 암호화되고 공개 키로 검증되는 메시지이다. 메시지는 비트 세트 또는 비트 세트의 다이제스트(digest)일 수 있다. 컴퓨팅 시스템에서 펌웨어를 수신하면 루트 컴포넌트의 다운스트림 컴포넌트는 공개 키에 따라 펌웨어를 실행하기 위해 루트 컴포넌트로부터 인증을 받아야 한다.
개인 키를 원래 장비 제조업체 또는 디자니가 보관하는 경우, 컴퓨팅 시스템의 펌웨어는 개인 키 소유자만 업데이트할 수 있다. 본 명세서 전반에 걸쳐 설명된 바와 같이, 개인 키는 무단 액세스를 방지하고 권한 지정으로서 대체 키의 발행을 허용하기 위해 루트 컴포넌트 또는 다른 보안 저장소에 저장된다. 예를 들어, 기본 키(primary key)는 추가 개인-공용 키 쌍을 발행하고 그리고 해당 개인-공용 키 쌍이 컴퓨팅 시스템용 펌웨어에 서명하고 유효성을 검사하도록 하는 데 사용될 수 있다. 따라서 루트 컴포넌트와 연결된 공개 키는 개인-공용 키 쌍이 적법하고 발행된 쌍에 의해 서명되고 검증된 펌웨어가 적법하다는 것을 추가로 검증할 수 있다.
본 개시에 의해 교시된 예로서, 루트 컴포넌트는 발행되고 유효한 개인-공개 키 쌍의 매니페스트 또는 저장소를 유지할 수 있다. 매니페스트는 컴퓨팅 시스템에 대해 발행된 서명 권한을 추적, 업데이트 및 제거하기 위해 각 개인-공개 키 쌍과 연관된 식별자, 공개 키 및 다이제스트를 유지할 수 있다.
이러한 컴퓨팅 시스템은 본 개시에 의해 교시된 바와 같이 공격 벡터에 대해 강화될 수 있다. 예를 들어 루트 컴포넌트에 대한 물리적 액세스를 방지하기 위해 퓨즈가 있을 수 있다. 컴퓨팅 시스템은 레이스(race) 조건(예를 들어, 사용 시간에 대한 확인 시간)에 대해 추가로 강화될 수 있다. 예를 들어, 루트 컴포넌트는 수신된 펌웨어에 서명하고 플랫폼의 다운스트림 컴포넌트는 루트 컴포넌트와 연결된 공개 키에 대해 서명을 검증한다. 따라서 침입(intrusions)은 루트 키트 및 기타 악의적 행위를 수행할 수 없다.
이 예에서는 루트 컴포넌트에 따라 펌웨어 업데이트 및 하드웨어 컴포넌트 동작에 대한 유효성 검사가 유지된다. 제조 후 공개-개인 키 쌍의 발행을 허용함으로써 컴퓨팅 시스템 및 장치는 수명 종료 또는 지원 종료 후에도 유지될 수 있다. 실제로 지원은 새로운 공개-개인 키 쌍의 발행을 통해 추가 엔티티로 원활하게 이전될 수 있다.
대체 또는 추가 예에서 루트 컴포넌트의 공개-개인 키 쌍은 제조 시 루트 컴포넌트에 기록될 수 있다. 키는 모델 유형 또는 모델 번호에 따라 장치에 대해 고유하거나 실질적으로 고유할 수 있다. 예를 들어, 키는 난수 생성기 및 컴퓨팅 시스템의 다른 하드웨어 컴포넌트 식별자를 기반으로 생성될 수 있다. 키 값의 오버랩 또는 의도적인 오버랩에 대한 수치적 가능성이 있을 수 있다. 키 값은 시간(예: 데이터-시간) 값 또는 제조 시 제공되는 기타 정보(예: 위치, 브랜드, 모델 번호)에 추가로 기반할 수 있다. 소유자 또는 디자니는 제조 시 장치와 연관된 당사자이거나 제조 후 펌웨어 스튜어드(steward)로 지정된 당사자일 수 있다. 예를 들어, 장치 또는 회로는 장치 지원을 종료하거나 장치 지원을 회사 B로 넘기기 위해서만 회사 A에서 제조할 수 있다. 회사 B는 하나 이상의 펌웨어 또는 칩셋의 소유자 또는 스튜어드로 지정될 수 있으며 이 권한을 사용하여 장치의 펌웨어 업데이트에 서명할 수 있다.
본 발명의 일례는 컴퓨팅 시스템에 개인 키를 저장하는 것을 포함한다. 컴퓨팅 시스템의 다른 컴포넌트에 대한 펌웨어 서명 및 실행 권한은 해당 개인 키를 기반으로 할 수 있다. 실제로, 본 명세서에서 제공되는 이러한 구현 및 다른 구현의 이러한 적용은 사용자 경험을 증가시키고 디바이스 유지 보수 기간을 연장한다. 이들은 설명된 기술 및 장치가 컴퓨팅 시스템의 보안을 개선하는 데 사용될 수 있는 방법에 대한 몇 가지 예일 뿐이며, 다른 예 및 구현은 이 문서 전체에서 설명된다. 문서는 이제 예제 운영 환경으로 넘어가고 그 후에 예제 장치, 방법 및 시스템이 설명된다.
운영 환경
도 1은 본 발명의 하나 이상의 구현에 따라 데이터를 인증하고 숨길 수 있는 호스트 컴퓨팅 장치(컴퓨터)(102)의 예시적인 장치 다이어그램(100)을 도시한다. 호스트 컴퓨팅 장치(102)는 명확성을 위해 도 1에서 생략된 추가 컴포넌트 및 인터페이스를 포함할 수 있다. 호스트 컴퓨팅 장치(102)는 다양한 전자 장치 또는 사용자 장치일 수 있다. 예를 들어, 호스트 컴퓨팅 장치(102)는 휴대폰(102-1), 태블릿 장치(102-2), 랩탑 컴퓨터(102-3), 데스크탑 컴퓨터(102-4), 서버, 클라우드 컴퓨터, 또는 디지털 논리를 사용하는 계산 도구일 수 있다.
호스트 컴퓨팅 장치(102)는 하나 이상의 프로세서(104)를 포함한다. 프로세서(104)는 임의의 구현일 수 있고 컴퓨터 판독 가능 매체(106)와 연관될 수 있다. 컴퓨터 판독 가능 매체(106)는 랜덤 액세스 메모리(RAM)(108), 판독 전용 메모리(ROM)(110) 또는 비휘발성 메모리(NVM)(112)를 포함할 수 있고 비일시적이다. 하나의 예가 보안 부팅 및 기타 신뢰할 수 있는 컴퓨팅 구현을 제공하는 도 1에 도시되어 있다. 프로세서 또는 컴퓨터 판독 가능 매체의 임의의 조합 및 수를 사용할 수 있다. 컴퓨터 판독 가능 매체는 호스트 컴퓨팅 장치(102) 또는 이들의 임의의 조합의 온보드 또는 오프보드에 위치할 수 있다. 예를 들어, 컴퓨터 판독 가능 매체(106)는 네트워크 액세스 가능 위치(예: 클라우드) 또는 이동식 장치(예: 썸 드라이브)일 수 있다.
호스트 컴퓨팅 장치(102)의 데이터를 저장하고 프로세싱 버퍼를 제공하기 위해 임의의 유형의 컴퓨터 판독 가능 매체(106)(예: RAM(Random-Access Memory), SRAM(Static RAM), 동적 RAM(DRAM), 비휘발성 RAM(NVRAM), 읽기 전용 메모리(ROM), 플래시 메모리)가 사용될 수 있다. 데이터에는 운영 체제, 하나 이상의 애플리케이션, 사용자 데이터 및 멀티미디어 데이터가 포함될 수 있다. 데이터는 본 개시내용의 교시를 구현하도록 동작가능한 명령어를 포함하는 검증 프로그램을 포함하는 컴퓨터 판독가능 형태의 명령어를 포함할 수 있다. 명령어는 임의의 구현일 수 있으며 FPGA(field-programmable gate arrays), 기계 코드, 어셈블리 코드, 상위 코드(예: RUBY) 또는 이들의 조합을 포함할 수 있다. 프로세서는 본 개시에 제공된 바와 같은 단계 및 실행의 조합을 따르도록 명령어를 실행할 수 있다.
호스트 컴퓨팅 장치(102)는 많은 전기 부품 또는 칩 중 하나로서 집적 회로(120)를 포함할 수 있다. 집적 회로(120)는 호스트 컴퓨팅 장치(102)와 연관된 모노리스(monolith) 또는 의사-모노리스(pseudo-monolith) 회로일 수 있다. 예를 들어, 집적 회로(120)는 TPM(Trusted Platform Module)일 수 있다. 집적 회로는 호스트 컴퓨팅 장치(102)와 연관된 임의의 칩, 컴포넌트, 회로 또는 이들의 임의의 조합일 수 있다. 집적 회로(120)는 설치된 펌웨어(122)를 포함할 수 있다. 예로서, 설치된 펌웨어(122)는 집적 회로(120)를 동작시키기 위한 임의의 명령어 세트를 포함할 수 있다. 설치된 펌웨어(122)는 집적 회로(120)와 연관된 임의의 유형의 메모리에 유지될 수 있다. 설치된 펌웨어(122)는 더 높은 수준의 소프트웨어에 서비스를 제공하는 기본(elementary) 또는 기본 기능(basic functions)을 임의의 개수로 포함할 수 있다. 디자니(130) 또는 임의의 다른 엔티티(예를 들어, 사용자, 제어기)는 리비전된 펌웨어(revised firmware)(124)로 설치된 펌웨어(122)를 업데이트하기를 원할 수 있다. 리비전된 펌웨어(124)는 설치된 펌웨어(122)에 대한 임의의 유형의 소프트웨어 업데이트일 수 있다.
도 2는 본 개시내용의 하나 이상의 구현에 따른 예시적인 호스트 컴퓨팅 장치(102)를 도시한다. 호스트 개인 키(210)는 ROM(110)에 배치될 수 있다. ROM(110)은 퓨즈 또는 ROM(110)의 변경을 방지하는 다른 메커니즘을 통해 ROM 기판에 바인딩된 1회 기록 메모리(write-once memory)일 수 있다. 추가로, ROM(110)은 변조 또는 무단 액세스가 시도되는 경우에 호스트 컴퓨팅 장치(102)를 잠그는 변조 방지 메커니즘을 포함할 수 있다. ROM(110)은 NVM(112)과 전기 통신한다. ROM(110)과 NVM(112) 사이의 전기 통신은 양방향일 수 있으며, 여기서 NVM(112)에 저장된 매니페스트(220)는 매니페스트(220)의 진정성을 보장하기 위해 호스트 개인 키(210)에 의해 서명된 서명을 포함한다. 매니페스트(220) 또는 그 안에 있는 엔트리와 관련하여, 호스트 개인 키에 의해 서명되고 그리고 암호화 라이브러리(212)와 함께 NVM(112)에 저장될 수 있다. 암호화 라이브러리(212)와 관련하,여 호스트 개인 키(210) 및 NVM(112)에 대한 격리된 액세스를 가질 수 있다.
호스트 개인 키(210) 및 본 명세서에서 설명된 다른 키는 다양한 구현일 수 있다. 호스트 개인 키(210)는 다양한 알고리즘을 사용하여 생성될 수 있다. 예를 들어, RSA-SHA3-512를 사용할 수 있다.
예에서, 암호화 라이브러리(212)는 호스트 개인 키(210)에 의해 서명된 개인 및 공개 키를 생성하기 위한 명령어를 포함한다. 라이브러리는 오픈 소스(예: OPENSSL)이거나 폐쇄 소스일 수 있다. 암호화 라이브러리(212)는 호스트 개인 키(210)를 기반으로 이전 디자니 엔트리(230)을 생성하는 데 사용된다. 이전 디자니 엔트리(230)는 제조 동안 구성될 수 있고 현재 디자니(current-designee) 공개 키(232)를 포함한다.
지정 상태에 따라 매니페스트(220)는 하나 이상의 엔트리(230, 240)를 포함할 수 있다. 예로서, 현재 디자니 엔트리(240)는 새로운 디자니 공개 키(242)를 포함하고 새로운 디자니를 위한 추가 키를 제공한다. 엔트리(230, 240)와 각각 연관된 공개 키(232, 242)는 수정된(리비전된) 펌웨어(124)를 검증하기 위해 집적 회로(120)에 저장된다.
수정된(리비전된) 펌웨어(124)는 현재 디자니(132)에 따라 발행될 수 있고, 현재 디자니(132)는 집적 회로(120)에 대해 수정된 펌웨어(124)를 제공하는 다양한 엔티티일 수 있다. 예에서, 현재 디자니(132)는 이전 디자니 엔트리(230)와 연관되고 공개 키(232)와 연관된 디자니 개인 키(오너(Owner) 개인 키)(234)로 수정된 펌웨어(124)에 서명하여 디자니 서명(290)을 형성한다. 즉, 디자니 개인 키(234)와 디자니 공개 키(232)는 비대칭 키 쌍이며; 디자니 개인 키(234)는 수정된 펌웨어(124)를 디지털 서명하는 데 사용되며, 그에 따라 디자니 서명(designee signature)(290)을 생성한다. 디자니 서명(290) 및 수정된 펌웨어(124)는 인터넷(200)을 통해 호스트 컴퓨팅 장치(102)의 네트워크 인터페이스 카드(250)로 전송된다. 부트 시, 집적 회로(120)는 수정된 펌웨어(124)가 유효한지 검증하기 위해 호스트 컴퓨팅 장치(102) 내에 저장된 수정된 펌웨어(124)를 검사하고, 호스트 공개 키(214)는 수정된 펌웨어(124)가 호스트 개인 키(210)에 의해 승인된 개인 키에 의해 서명되었음을 보장하기 위해 수정된 펌웨어(124)를 검사하는데 사용될 수 있다. 수정된 펌웨어(124)는 호스트 공개 키(214) 또는 디자니 공개 키(232)에 의해 검증되어 펌웨어가 이전 디자니 엔트리(230)의 현재 디자니에게 할당된 개인 키에 의해 서명되었음을 보장할 수 있다.
도 3을 참조하면, 본 발명의 하나 이상의 구현에 따른 예시적인 컴퓨터 판독 가능 매체(106)가 도시되어 있다. 컴퓨터 판독 가능 매체(106)는 특정 개별 컴포넌트가 아닌 호스트 컴퓨팅 장치(102)를 통해 배포될 수 있다. 예에서, 컴퓨터 판독 가능 매체(106)는 호스트 개인 키(210) 및 암호화 라이브러리(212)를 또한 포함할 수 있는 ROM(110)을 포함한다. 컴퓨터 판독 가능 매체(106)는 플래시 정보 섹션(330)을 포함하는 NVM(112)을 더 포함할 수 있다. 플래시 정보 섹션(330)은 이전 디자니 엔트리(230) 및 현재 디자니 엔트리(240)을 포함하는 매니페스트(Manifest)(220)를 수용할 수 있다. 컴퓨터 판독 가능 매체(106)는 하나 이상의 플래시 뱅크(350)를 더 포함할 수 있다. 플래시 뱅크(350)는 ROM 확장 메모리(ROM EXT)(352), 디자니 인증서 메모리(Certificates)(354), 부트로더 메모리(BootLoader)(356), 커널 메모리(Kernel)(358), 및 호스트 컴퓨팅 장치(102)와 연관된 다른 데이터 메모리(Data)(360)를 저장할 수 있다. ROM 확장 메모리(352)는 NVM(112)에 저장되고 호스트 개인 키(210)에 의해 서명된 정보를 포함한다. ROM 확장 메모리(352)는 또한 기능을 포함할 수 있으며; 이러한 기능 중 하나는 실행 권한을 다음 부팅 단계로 넘기기 전에 매니페스트(220)에 대한 액세스를 비활성화할 수 있다.
ROM 확장 메모리(352)는 ROM(110)의 기능을 확장하는 수정 가능한 코드를 나타낼 수 있다. ROM(110)은 초기 부트스트랩, 보안 부팅 및 보안 구성을 담당할 수 있다. ROM 확장 메모리(352)는 하드웨어 문제를 수정하기 위한 패치 적용, 보안 설정 적용 및 키 프로비저닝(provisioning) 수행과 관련될 수 있다.
부트로더 메모리(356)는 디자니 개인 키(234)에 의해 서명될 수 있고, 커널 메모리(358)는 또한 디자니 개인 키(234)에 의해 서명될 수 있다. 이와 같이, 부트로더 메모리(356) 및 커널 메모리(358)에 저장된 정보의 진정성은 디자니 공개 키(232)에 의해 검증될 수 있다. 호스트 공개 키(214)는 ROM 확장 메모리(352)에 더 저장될 수 있고 호스트 개인 키(210)에 의해 서명된 ROM 확장 서명에 의해 무결성이 보호될 수 있다.
본 명세서에서 설명된 키는 집적 회로(120) 또는 호스트 컴퓨팅 장치(102)와 연관된 다른 컴포넌트에 기초할 수 있다. 키는 집적 회로(120)와 연관된 정보로부터 도출될 수 있다. 예를 들어, 키는 집적 회로(120)의 일련 번호 또는 모델 번호에서 파생될 수 있다.
예시 방법
도 4를 참조하면, 본 발명의 하나 이상의 구현에 따라 매니페스트(220)를 업데이트하기 위한 예시적인 방법(400)이 도시되어 있다. 방법(400)은 수행되는 동작 및 단계를 지정하는 블록 세트로 도시되어 있지만 각 블록에 의해 동작을 수행하기 위해 표시된 순서 또는 조합으로 반드시 제한되는 것은 아니다. 또한, 하나 이상의 동작 중 임의의 동작을 반복, 결합, 재구성, 생략 또는 연결하여 다양한 추가 및/또는 대체 방법을 제공할 수 있다. 다음 설명의 일부에서, 선행 도면의 예를 참조할 수 있으며, 참조는 단지 예를 위한 것일 뿐이다. 기술은 하나의 장치에서 작동하는 하나의 엔티티 또는 여러 엔티티의 성능으로 제한되지 않는다.
매니페스트(220)는 슬롯 지정(slot designation)(402), 식별자 지정(404), 공개 키 저장소(public-key repository)(406) 및 다이제스트 저장소(408)에 대응하는 조직적 지정(organizational designations)을 갖는 것으로 도시되며, 매니페스트(220)의 이전 디자니 엔트리(230)에서 절정(culminating)에 이른다. 공개 키 저장소(repository)(406)는 디자니 공개 키(232)를 포함할 수 있다. 슬롯 지정(402)은 이전 디자니 엔트리(230)(예를 들어, 이전 또는 최초 디자니) 및 현재 디자니 엔트리(240)(예를 들어, 현재 디자니)에 엔트리를 할당하는 2개의 값으로 제한될 수 있다. 식별자 지정(404)은 엔트리(230, 240)를 고유하게 식별할 수 있다. 예로서, 엔트리(230, 240)에는 호스트 컴퓨팅 시스템(102)의 각 디자니에 대응하도록 증가하는 식별자가 할당될 수 있다. 공개 키 저장소(406)는 이전 디자니(130) 및 현재 디자니(132)와 연관된 키를 포함할 수 있다. 컬럼(columns)에 걸쳐 계속해서, 다이제스트 저장소(408)는 제1 엔트리 또는 이전-디자니 엔트리(230)와 연관된 이전-디자니 다이제스트(410)를 포함한다. 이전 디자니 다이제스트(410)는 MAC(Message Authentication Code), HMAC(keyed-hash message authentication code) 또는 다른 유형의 무결성 및 인증 함수일 수 있다.
이전 디자니 다이제스트(410)는 암호화 라이브러리(212)에 의해 관리되는 대칭 키에 기초할 수 있다. 대칭 키는 제조 중에 프로비저닝되고 ROM(110)의 1회 기록 저장소(스토리지)에 저장된다. 이전 디자니 다이제스트(410)가 이전 디자니 엔트리(230)과 연관되는 경우, 현재 디자니 엔트리(240)과 연관된 현재 디자니 다이제스트(412)는 키를 보관 체인에 바인딩하려는 노력으로 이전 디자니 다이제스트(410)에 기초할 수 있다.
초기화 단계(Initialize)(420) 동안, 호스트 컴퓨팅 장치(102)는 ROM(110) 및 ROM 확장 메모리(352)에 저장된 기능으로 이전 디자니 엔트리(230)을 생성할 수 있다. 프로비저닝 단계(Provision)(440)는 현재 디자니(132)와 연관된 공개 키를 포함하는 추가 엔트리 또는 현재 디자니 엔트리(240)을 매니페스트(220)에 발행하여 디자니 개인 키(234)에 의해 서명된 서명을 검증한다. 활성화 단계(Activate)(460)는 단 하나의 활성화된 엔트리, 현재 디자니 엔트리(240)으로 매니페스트(220)를 발행한다. 이전 디자니 엔트리(230)는 매니페스트(220)에서 삭제되거나 비활성화된다.
도 5를 참조하면, 본 발명의 하나 이상의 구현에 따라 소프트웨어의 실행을 제한하기 위한 예시적인 방법(500)이 도시되어 있다. 방법(500)은 호스트 컴퓨팅 장치(102)에 의해 수행될 수 있다. 블록(502)에서, 디자니 서명(오너 서명)(290)이 수신된다. 디자니 서명(290)은 설치된 펌웨어(122) 또는 수정된 펌웨어(124)에 기초할 수 있다. 디자니 서명(290)은 개인 키에 기초할 수 있음을 이해해야 한다. 개인 키는 제조 중에 호스트에 할당되고 ROM(110) 또는 다른 곳에 저장될 수 있다. 다른 예에서, 개인 키는 현재 디자니(132)에게 할당되고 현재 디자니(132)에 의해 안전하게 저장될 수 있다.
블록(504)에서, 디자니 서명(290)은 호스트 컴퓨팅 시스템(102)에 의해 검증된다. 디자니 서명(290)은 다양한 방식으로 여러 프로세스 및 단계를 통해 검증될 수 있다. 비제한적인 예로서, 디자니 서명(290)은 디자니 공개 키(232)의 해시를 계산하고 디자니 공개 키(232)가 호스트 개인 키(210)에 의해 보증되었음을 보장하기 위해 호스트 공개 키(214)에 의한 디자니 공개 키(232)의 보증을 해독함으로써 검증될 수 있다. 보증(endorsement)은 디자니 공개 키(232)와 연관된 이전 디자니 엔트리(230)에 저장될 수 있다.
대안적으로 또는 부가적으로, 디자니 서명(290)은 ROM 확장 메모리(352)의 해시를 계산하고 호스트 공개 키(214)로 ROM 확장 메모리(352)의 승인을 해독함으로써 검증될 수 있다. 호스트 공개 키(214)는 디자니 공개 키(232)의 호스트 개인 키(210)에 의한 보증을 확인하기 위해 직접적으로 또는 간접적으로 사용될 수 있다. 호스트 개인 키(210)는 디자니 공개 키(232), ROM 확장 메모리(352), 호스트 컴퓨팅 장치(102)와 연관된 다른 메모리, 또는 디자니 공개 키(232)를 검증하기 위해 이들의 임의의 조합을 승인할 수 있다.
디자니 서명(290)은 수정된 펌웨어(124)의 해시를 계산함으로써 검증될 수 있다. 디자니 서명(290)은 디자니 공개 키(232)로 해독될 수 있다. 임의의 고유성 알고리즘 또는 암호화 메커니즘은 여기에서 설명된 해싱, 암호화 및 해독을 위해 사용될 수 있다(예: 순환 중복 검사, 체크섬, 키가 있는 암호화 해시 함수, 키가 없는 암호화 해시 함수). 고유성 알고리즘은 다른 정보 또는 그 일부와 함께 수정된 펌웨어(124)에서 수행될 수 있다. 예를 들어, 수정된 펌웨어(124)의 해시가 복호화된 디자니 서명(290)과 동일하고(예를 들어, 동일하고) 사용된 복호화 키가 호스트 공개 키(214)에 의해 인증된 경우, 펌웨어(124)는 인증된 것으로 간주되고 집적 회로(120)에서 실행될 수 있다.
블록(506)에서, 수정된 펌웨어(124)는 디자니 공개 키(232)와 같은 디자니 공개 키에 따라 검증된다. 예로서, 디자니 공개 키(232)는 NVM(112) 상에 저장될 수 있고 디자니 서명(290) 또는 전체 펌웨어(124)를 해독하기 위해 액세스될 수 있다. 펌웨어(124)가 디자니(132)에 의해 암호화되었거나 디자니(132)에 의해 서명되었음을 검증하기 위해 비교가 실행될 수 있다. 이와 같이, 펌웨어(124)는 두 개의 공개 키 검증을 포함하는 프로세스를 통해 검증될 수 있다. 검증 중 하나는 디자니 공개 키(232)가 유효하고 루트 서명을 사용하여 호스트 개인 키(210)에 의해 서명되었음을 보장할 수 있다. 그러한 검증은 호스트 공개 키(214)에 의해 수행될 수 있다. 또 다른 검증은 펌웨어(124)가 디자니 개인 키(234)를 사용하여 디자니(132)에 의해 서명되었음을 보장할 수 있다. 이와 같이, 프로세스는 호스트 컴퓨팅 장치(102) 내에 저장된 신뢰 루트를 통해 호스트 컴퓨팅 장치(102)에 의한 소유권을 가변 디자니(varying designees)(132)로 이전할 수 있게 한다.
블록(508)에서, 수정된 펌웨어(124)의 실행은 집적 회로(120) 또는 다른 구현에 의해 제한될 수 있다. 예로서, 집적 회로(120)는 위에서 설명된 비교 또는 비교들의 논리적 결과에 기초한 인에이블 비트를 포함할 수 있다. 해시와 해독된 디자니 서명(290)이 동일하지 않으면 집적 회로(120)에서 펌웨어(124)의 실행이 방지된다. 펌웨어의 실행 제한은 호스트 컴퓨팅 장치(102)의 임의의 펌웨어로 확장될 수 있다. 집적 회로에 대한 전원이 제거될 수 있다.
호스트 개인 키(210)는 집적 회로(120), 호스트 컴퓨팅 장치(102)에 배치된 다른 집적 회로, 난수, 제조자와 연관된 임의의 다른 정보(예를 들어, 호스트 컴퓨팅 장치(102)의 모델, 소프트웨어 또는 회로), 또는 이들의 임의의 조합에 기초할 수 있다. 호스트 개인 키(210)는 실질적으로 호스트 컴퓨팅 장치(102)에 대해 고유하거나 호스트 컴퓨팅 장치(102) 세트(예를 들어, 모델 유형, 모델 번호)에 대해 고유할 수 있다. 모델 번호는 제품을 식별하기 위해 제조업체가 지정한 다양한 명칭일 수 있다. 모델 유형은 제품 그룹 또는 모델 번호를 식별하기 위해 제조업체가 지정한 다양한 명칭일 수 있다.
절대적 고유성은 수치 알고리즘에 의해 수치적으로 달성되지 않을 수 있으며 실질적으로 고유하다는 것은 세트 내에 고유한 호스트 개인 키(210)를 갖는 유사한 호스트 컴퓨팅 장치(102)의 특정 세트의 고유성을 포함할 수 있다. 실제로 다른 예에서는 구현된 현실이 아니라 제조업체 의도가 실질적인 고유성을 정의할 수 있다.
도 6을 참조하면, 본 개시내용의 하나 이상의 구현에 따라 디자니를 활성화하기 위한 예시적인 방법이 예시된다. 블록(602)에서 논스(nonce)가 전송된다. 논스는 1회용 숫자일 수 있고 호스트 컴퓨팅 장치(102)의 클록에 기초할 수 있다. 논스는 호스트 컴퓨팅 장치(102)의 결정론적 랜덤 비트 생성기에 기초할 수 있다. 호스트 컴퓨팅 장치(102)는 소유권 이전 요청에 응답하여 논스를 전송할 수 있다. 예에서, 논스는 호스트 컴퓨팅 장치(102)와 연관된 장치 식별자와 함께 발송된다. 디바이스 식별자, 논스 및 요청은 호스트 컴퓨팅 장치(102)에 의해 서명된다. 추가 예로서, 새로운 디자니가 소유권 이전을 요청할 수 있다고 가정한다. 수명 종료 또는 지원 종료 발행으로 인해 새 디자니가 필요한 경우와 같이 이 새 디자니는 제조업체 및 현재 디자니와 다른 엔티티가 될 수 있다.
블록(604)에서 서명된 잠금해제 명령이 수신된다. 호스트 컴퓨팅 장치(102)는 잠금 해제 명령을 요청할 수 있다. 클라우드 기반 애플리케이션 또는 다른 구현은 호스트 컴퓨팅 장치(102)에 의해 전송된 잠금 해제 명령 요청을 수신할 수 있다. 현재 디자니(132)는 잠금해제 명령 요청에 대한 액세스가 승인될 수 있고 디자니 개인 키에 의해 서명된 잠금해제 명령의 전송을 인가할 수 있다. 서명된 잠금 해제 명령은 호스트 컴퓨팅 장치(102)가 NVM(112)의 소유권 상태를 잠금 해제하여 현재 디자니 엔트리(240) 또는 새로운 디자니에 대응하는 다른 엔티티를 기록하도록 승인한다.
블록(606)에서, 호스트 컴퓨팅 장치(102)는 디자니 개인 키(234)에 의해 서명된 바와 같이 현재 디자니(132)에 의한 잠금 해제 명령의 서명을 검증한다. 검증은 잠금 해제 명령의 해시와 잠금 해제 명령의 복호화된 서명을 비교하는 것을 포함할 수 있다. 서명된 명령의 검증(유효성 검사)는 NVM(112)을 잠금 해제하여 현재 디자니 엔트리(240)가 기록될 수 있도록 한다.
블록(608)에서, 호스트 컴퓨팅 장치(102)는 현재 디자니 다이제스트(412)를 계산한다. 현재 디자니 다이제스트(412)는 MAC(Message Authentication Code), HMAC(keyed-hash message authentication code) 또는 다른 유형의 무결성 및 인증 함수일 수 있다. 현재 디자니 다이제스트(412)는 암호화 라이브러리(212)에 의해 관리되는 대칭 키에 기초할 수 있다. 대칭 키는 발급된 공개 및 개인 키의 안전한 전송을 가능하게 하기 위해 새로운 디자니 또는 장치 제조업체에 알려질 수 있다. 대칭 키는 제조 중에 프로비저닝되고 ROM(110)의 1회 기록 저장소에 저장된다. 이전 디자니 다이제스트(410)가 이전 디자니 엔트리(230)와 연관되는 경우, 현재 디자니 엔트리(240)와 연관된 현재 디자니 다이제스트(412)는 키를 보관 체인에 바인딩하려는 노력으로 이전 디자니 다이제스트(410)에 기초할 수 있다.
블록(610)에서, 현재 디자니 다이제스트(412)가 NVM(112)에 기록된다. 현재 디자니 다이제스트(412)를 작성할 때, 호스트 컴퓨팅 장치(102)는 매니페스트(220), ROM 확장(354), 나머지 플래시 뱅크(350) 또는 이들의 임의의 조합을 재서명할 수 있다. 블록(612)에서, 이전 디자니 엔트리(이전 오너 엔트리)(230)이 매니페스트(220)에서 삭제, 소거 또는 제거된다. 이전-디자니 다이제스트(410)를 삭제할 때, 호스트 컴퓨팅 장치(102)는 매니페스트(220), ROM 확장(354), 나머지 플래시 뱅크(350) 또는 이들의 조합을 재서명할 수 있다.
블록(614)에서 새로운 공개 키가 공개 키 저장소(406)에 기록되고 현재 디자니 엔트리(240)와 연관될 수 있다. 새로운 공개 키는 디자니 공개 키(232)일 수 있다. 이와 같이, 블록(616)에서, 새로운 공개 키는 본 명세서 전반에 걸쳐 설명된 방법을 사용하여 펌웨어 리비전을 인가(인증)(Authorize)하는 데 사용될 수 있다. 본 명세서에서 블록이라고 하는 이들 단계 중 임의의 단계는 생략, 재배열 또는 복제될 수 있음을 이해해야 한다.
결론
디지털 장치를 위한 신뢰할 수 있는 컴퓨팅을 가능하게 하는 기술 및 장치의 구현이 기능 및/또는 방법에 특정한 언어로 설명되었지만, 첨부된 청구범위의 요지는 설명된 특정 특징 또는 방법으로 반드시 제한되지 않는다는 것을 이해해야 한다. 오히려 특정 기능 및 방법은 디지털 장치에 대한 신뢰할 수 있는 컴퓨팅을 가능하게 하는 예시 구현으로 공개된다.
Claims (15)
- 방법으로서,
호스트 컴퓨팅 장치(102)의 디자니(designee)와 연관된 서명(290)을 수신(502)하는 단계 -상기 서명(290)은 호스트 컴퓨팅 장치(100)의 집적 회로와 연관된 펌웨어 및 제1 비대칭 키 쌍의 제1 개인 키(234)에 따라 생성됨-; 그리고
제2 개인 키(210) 및 제2 공개 키(214)를 갖는 제2 비대칭 키 쌍에 기초하여 상기 서명(290)을 검증하는 단계(504)를 포함하며, 상기 제2 개인 키는 상기 호스트 컴퓨팅 장치(102)의 1회 기록 메모리(write-once memory)(110)에 저장된 것을 특징으로 하는 방법. - 제1항에 있어서, 상기 서명을 검증하는 것은 상기 제2 공개 키에 의해 상기 펌웨어와 연관된 제1 공개 키에 더 기초하는 것을 특징으로 하는 방법.
- 제2항에 있어서, 상기 방법은,
상기 제1 공개 키로 상기 펌웨어를 검증하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 방법은,
상기 서명 및 상기 제2 개인 키에 기초하여 상기 펌웨어의 실행을 제한하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제4항에 있어서, 상기 실행을 제한하는 것은 추가로 상기 제2 개인 키에 의해 정의된 루트 서명에 따르는 것을 특징으로 하는 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 제2 개인 키는 상기 호스트 컴퓨팅 장치의 제조 동안 상기 1회 기록 메모리에 기록되는 것을 특징으로 하는 방법.
- 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 서명은 상기 제1 개인 키에 의해 보증되는 것을 특징으로 하는 방법.
- 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 제2 개인 키는 상기 집적 회로와 연관된 정보로부터 도출되고 그리고 상기 호스트 컴퓨팅 장치와 동일한 모델 유형을 갖는 다른 컴퓨팅 장치와 관련하여 상기 호스트 컴퓨팅 장치에 고유한 것을 특징으로 하는 방법.
- 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 제2 개인 키는 상기 호스트 컴퓨팅 장치의 제어기와 연관된 정보로부터 도출되고 그리고 상기 호스트 컴퓨팅 장치와 동일한 모델을 갖는 장치와 관련하여 상기 호스트 컴퓨팅 장치에 고유한 것을 특징으로 하는 방법.
- 방법으로서,
호스트 컴퓨팅 장치의 1회 기록 메모리에 저장된 제2 개인 키에 고유한 장치 식별자와 함께 논스(nonce)를 전송하는 단계;
상기 논스 및 상기 장치 식별자에 기초하여 서명된 명령을 수신하는 단계; 그리고
상기 호스트 컴퓨팅 장치의 디자니(designee)와 연관된 제1 공개 키에 따라 상기 서명된 명령을 검증하는 단계를 포함하는 것을 특징으로 하는 방법. - 제10항에 있어서, 상기 방법은,
대칭 키 및 새로운 디자니와 연관된 새로운 디자니 식별자에 기초하여 인증 코드를 생성하는 단계;
읽기 전용 메모리 확장의 추가 엔트리에 상기 인증 코드를 기록하는 단계; 그리고
상기 읽기 전용 메모리 확장에서 상기 디자니와 연관된 이전 디자니 엔트리를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제11항에 있어서, 상기 방법은,
새로운 비대칭 키 쌍의 새로운 공개 키를 상기 추가 엔트리에 기록하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 제12항에 있어서, 새로운 비대칭 키 쌍의 새로운 개인 키를 새로운 디자니에게 전송하는 단계를 더 포함하는 것을 특징으로 하는 방법.
- 제13항에 있어서, 상기 방법은,
상기 새로운 디자니와 연관된 상기 새로운 개인 키에 따라 생성된 서명을 수신하는 단계; 그리고
상기 제2 개인 키와 제2 공개 키를 갖는 제2 비대칭 키 쌍에 기초하여 상기 서명을 검증하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 실행될 때 컴퓨팅 장치의 프로세서가 청구항 제1항 내지 제14항 중 어느 한 항의 방법을 수행하도록 구성하는 명령어를 포함하는 컴퓨터 판독 가능 매체.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/019399 WO2022182341A1 (en) | 2021-02-24 | 2021-02-24 | Trusted computing for digital devices |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230137422A true KR20230137422A (ko) | 2023-10-04 |
Family
ID=74885077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237029396A KR20230137422A (ko) | 2021-02-24 | 2021-02-24 | 디지털 장치를 위한 신뢰할 수 있는 컴퓨팅 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20240126886A1 (ko) |
EP (1) | EP4147148A1 (ko) |
JP (1) | JP2024507531A (ko) |
KR (1) | KR20230137422A (ko) |
CN (1) | CN116964580A (ko) |
WO (1) | WO2022182341A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12019752B2 (en) * | 2021-10-06 | 2024-06-25 | Hewlett Packard Enterprise Development Lp | Security dominion of computing device |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7069452B1 (en) * | 2000-07-12 | 2006-06-27 | International Business Machines Corporation | Methods, systems and computer program products for secure firmware updates |
US20070277038A1 (en) * | 2006-05-25 | 2007-11-29 | General Dynamics C4 Systems, Inc. | Method for authentication of software within a product |
US8566613B2 (en) * | 2010-06-11 | 2013-10-22 | Intel Corporation | Multi-owner deployment of firmware images |
-
2021
- 2021-02-24 CN CN202180094009.1A patent/CN116964580A/zh active Pending
- 2021-02-24 WO PCT/US2021/019399 patent/WO2022182341A1/en active Application Filing
- 2021-02-24 JP JP2023550268A patent/JP2024507531A/ja active Pending
- 2021-02-24 KR KR1020237029396A patent/KR20230137422A/ko unknown
- 2021-02-24 US US18/547,291 patent/US20240126886A1/en active Pending
- 2021-02-24 EP EP21712663.0A patent/EP4147148A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2024507531A (ja) | 2024-02-20 |
EP4147148A1 (en) | 2023-03-15 |
CN116964580A (zh) | 2023-10-27 |
WO2022182341A1 (en) | 2022-09-01 |
US20240126886A1 (en) | 2024-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109313690B (zh) | 自包含的加密引导策略验证 | |
EP3284000B1 (en) | Secure software authentication and verification | |
US10771264B2 (en) | Securing firmware | |
US20200153808A1 (en) | Method and System for an Efficient Shared-Derived Secret Provisioning Mechanism | |
CN109800050B (zh) | 一种虚拟机的内存管理方法、装置、相关设备及*** | |
CN105706048B (zh) | 使用硬件信任根的媒体客户端装置鉴权 | |
US20130019105A1 (en) | Secure software and hardware association technique | |
JP2013514587A (ja) | 証明書失効リストを用いたコンテンツ管理方法 | |
KR20090109589A (ko) | 프로세서 내에서의 보호된 리소스들로의 억세스에 대한 안전한 보호 방법 | |
JP2007512787A (ja) | トラステッド・モバイル・プラットフォーム・アーキテクチャ | |
EP3292495B1 (en) | Cryptographic data | |
US10282549B2 (en) | Modifying service operating system of baseboard management controller | |
CN107798233B (zh) | 用于配置分级信任链的目标域的方法和电子设备 | |
US20190042725A1 (en) | System, Apparatus And Method For Independently Recovering A Credential | |
CN109814934B (zh) | 数据处理方法、装置、可读介质和*** | |
Schleiffer et al. | Secure key management-a key feature for modern vehicle electronics | |
US11861182B2 (en) | Integrated circuit device with an authentication module | |
US20240126886A1 (en) | Trusted Computing for Digital Devices | |
US12026561B2 (en) | Dynamic authentication and authorization of a containerized process | |
WO2023222238A1 (en) | Apparatus and method for secure boot using authorized subkeys | |
Arthur et al. | Keys | |
KR20070017455A (ko) | 프로세서 내에서의 보호된 리소스들로의 억세스에 대한안전한 보호 방법 |