KR20180059856A - 컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 기술들 - Google Patents

컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 기술들 Download PDF

Info

Publication number
KR20180059856A
KR20180059856A KR1020187011631A KR20187011631A KR20180059856A KR 20180059856 A KR20180059856 A KR 20180059856A KR 1020187011631 A KR1020187011631 A KR 1020187011631A KR 20187011631 A KR20187011631 A KR 20187011631A KR 20180059856 A KR20180059856 A KR 20180059856A
Authority
KR
South Korea
Prior art keywords
certificate
hash value
computing device
hash
action
Prior art date
Application number
KR1020187011631A
Other languages
English (en)
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 KR20180059856A publication Critical patent/KR20180059856A/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/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]
    • 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/3236Cryptographic 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 cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 기술들이 제공된다. 이러한 기술에 따른 예시적인 방법은, 인증서 액션이 수행될 인증서의 해시 값을 포함하는 이미지 파일을 수신하는 단계 ― 인증서 액션은 폐기 액션 또는 활성화 액션이고, 이미지 파일은 서명 인증서에 의해 서명됨 ―; 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 서명 인증서의 해시 값을 비교함으로써, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하는 단계; 및 이미지 파일이 유효한 인증서에 의해 서명되었고 그리고 인증서 액션이 수행될 인증서가 메모리 내에서 발견된 것에 대한 응답으로, 메모리 내의 인증서와 연관된 표시자의 값을 설정함으로써, 인증서 액션을 수행하는 단계를 포함한다.

Description

컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 기술들
[0001] 컴퓨팅 디바이스들, 이를테면 랩톱들, 모바일 폰들, 스마트 폰들, 스마트 워치들 및 다른 타입들의 컴퓨팅 디바이스들은 공개 키 인프라구조의 일부로서 암호화 인증서들을 사용할 수 있다. 인증서들은 컴퓨팅 디바이스에 의해 다양한 방식들로 사용될 수 있다. 예컨대, 컴퓨팅 디바이스에 의해 실행될 소프트웨어, 이를테면 운영 체제 파일들 및/또는 다른 소프트웨어가, 신뢰성있는 소스(trusted source)에 의해 제공된 것임을 보장하기 위해, 인증서들이, 컴퓨팅 디바이스 상에 배치될 이미지 파일들에 서명하는 데에 사용될 수 있다.
[0002] 인증 기관(CA)이 인증서를 부적절하게 발행하였거나 개인 키가 손상된 경우와 같은 특정 상황들에서는, 인증서가 변경불가능하게(irreversibly) 폐기될(revoked) 수 있다. 인증서는 또한, 인증서에 의해 식별되는 엔티티가 정책 요건들을 준수하지 않는 경우, 이를테면 허위 문서들의 발행, 소프트웨어 동작의 허위 진술, 또는 CA 운영자 또는 CA 고객이 지정한 임의의 다른 정책의 위반의 경우, 폐기될 수 있다. 폐기(revocation)의 가장 일반적인 이유는, 사용자가 더 이상 개인 키를 독점적으로 소유하고 있지 않다는 것이다(예컨대, 개인 키를 포함하고 있는 토큰을 분실했거나 도난당한 경우). 폐기의 가장 일반적인 구현은 CRL(Certification Revocation List)들을 사용한다. CRL은 디지털 인증서들의 리스트뿐만 아니라 각각의 인증서들의 폐기 이유를 열거한다. CRL은 모바일 컴퓨팅 시스템들 및/또는 내장된(embedded) 컴퓨팅 시스템 환경들에 대한 적합한 솔루션을 제공하지 않는데, 왜냐하면 CRL은 빈번하게 업데이트되어야 하고 종종 그러한 컴퓨팅 디바이스들의 제한된 메모리에서 상당량의 공간을 소비할 수 있기 때문이다.
[0003] 컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 예시적인 방법은, 컴퓨팅 디바이스에서, 인증서 액션(certificate action)이 수행될 인증서의 해시 값을 포함하는 이미지 파일을 수신하는 단계 ― 인증서 액션은 폐기 액션 또는 활성화(activation) 액션이고, 이미지 파일은 서명 인증서(signing certificate)에 의해 서명됨 ―; 컴퓨팅 디바이스의 1회 프로그램가능 메모리(one-time programmable memory)에 저장된 인증서들과 연관된 복수의 해시 값들과 서명 인증서의 해시 값을 비교함으로써, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하는 단계; 및 이미지 파일이 유효한 인증서에 의해 서명되었고 그리고 인증서 액션이 수행될 인증서가 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내에서 발견된 것에 대한 응답으로, 1회 프로그램가능 메모리 내의 인증서와 연관된 표시자의 값을 설정함으로써, 인증서 액션이 수행될 인증서에 대해 인증서 액션을 수행하는 단계를 포함한다.
[0004] 이러한 방법의 구현들은 다음 특징들 중 하나 또는 그 초과의 특징을 포함할 수 있다. 인증서 및 서명 인증서는 동일한 인증서이다. 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 서명 인증서의 해시 값을 비교함으로써, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하는 단계는, 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 서명 인증서의 해시 값과 매칭(match)되는 해시 값을 식별하는 단계, 및 식별된 해시 값과 연관된 인증서가 활성(active)인지의 여부를 결정하는 단계를 포함한다. 식별된 해시 값과 연관된 인증서가 활성인지의 여부를 결정하는 단계는, 식별된 해시 값의 해시 값을 결정하는 단계, 및 식별된 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제2 표시자가, 인증서가 활성임을 나타내는 값으로 설정되어 있는 지의 여부를 결정하는 단계를 포함한다. 식별된 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 표시자가, 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부를 결정하는 단계를 더 포함한다. 인증서 액션은 폐기 액션이며, 그리고 인증서에 대해 인증서 액션을 수행하는 단계는, 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 인증서의 해시 값과 매칭되는 해시 값을 식별하는 단계, 식별된 해시 값의 해시 값을 결정하는 단계, 및 식별된 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 표시자의 값을, 인증서를 변경불가능하게 폐기시키도록 설정하는 단계를 포함한다. 1회 프로그램가능 메모리 내의 제1 표시자의 값을 설정하기 전에, 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 연관되는 임의의 다른 최상위 인증서(root certificate)들이 활성이고 폐기되지 않았는지의 여부를 결정하는 단계를 더 포함한다. 인증서 액션은 활성화 액션이며, 그리고 인증서에 대해 인증서 액션을 수행하는 단계는, 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 인증서의 해시 값과 매칭되는 해시 값을 식별하는 단계, 인증서의 해시 값의 해시 값을 결정하는 단계, 및 인증서의 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제2 표시자의 값을, 인증서를 활성화시키도록 설정하는 단계를 포함한다. 인증서의 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 표시자가, 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부를 결정함으로써, 인증서가 폐기되었는지의 여부를 결정하는 단계를 더 포함한다. 1회 프로그램가능 메모리 내의 표시자는 퓨즈(fuse), 안티퓨즈(antifuse), 또는 하나 또는 그 초과의 데이터 비트들을 나타낼 수 있는 다른 타입의 표시자를 포함할 수 있다. 표시자의 값은, 퓨즈를 끊거나 또는 그렇지 않으면 1회 프로그램가능 메모리 내의 값을 변경불가능하게 설정함으로써 설정될 수 있다.
[0005] 본 개시내용에 따른 예시적인 장치는, 인증서 액션이 수행될 인증서의 해시 값을 포함하는 이미지 파일을 수신하기 위한 수단 ― 인증서 액션은 폐기 액션 또는 활성화 액션이고, 이미지 파일은 서명 인증서에 의해 서명됨 ―; 장치의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 서명 인증서의 해시 값을 비교함으로써, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하기 위한 수단; 및 이미지 파일이 유효한 인증서에 의해 서명되었고 그리고 인증서 액션이 수행될 인증서가 장치의 1회 프로그램가능 메모리 내에서 발견된 것에 대한 응답으로, 1회 프로그램가능 메모리 내의 인증서와 연관된 표시자의 값을 설정함으로써, 인증서에 대해 인증서 액션을 수행하기 위한 수단을 포함한다.
[0006] 이러한 장치의 구현들은 다음 특징들 중 하나 또는 그 초과의 특징을 포함할 수 있다. 인증서 및 서명 인증서는 동일한 인증서이다. 장치의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 서명 인증서의 해시 값을 비교함으로써, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하기 위한 수단은, 장치의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 서명 인증서의 해시 값과 매칭되는 해시 값을 식별하기 위한 수단, 및 식별된 해시 값과 연관된 인증서가 활성인지의 여부를 결정하기 위한 수단을 포함한다. 식별된 해시 값과 연관된 인증서가 활성인지의 여부를 결정하기 위한 수단은, 식별된 해시 값의 해시 값을 결정하기 위한 수단, 및 식별된 해시 값의 해시 값과 연관된, 장치의 1회 프로그램가능 메모리 내의 제2 표시자가, 인증서가 활성임을 나타내는 값으로 설정되어 있는 지의 여부를 결정하기 위한 수단을 포함한다. 식별된 해시 값의 해시 값과 연관된, 장치의 1회 프로그램가능 메모리 내의 제1 표시자가, 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부를 결정하기 위한 수단을 더 포함한다. 인증서 액션은 폐기 액션이며, 그리고 인증서에 대해 인증서 액션을 수행하기 위한 수단은, 장치의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 인증서의 해시 값과 매칭되는 해시 값을 식별하기 위한 수단, 인증서의 해시 값의 해시 값을 결정하기 위한 수단, 및 인증서의 해시 값의 해시 값과 연관된, 장치의 1회 프로그램가능 메모리 내의 제1 표시자의 값을, 인증서를 변경불가능하게 폐기시키도록 설정하기 위한 수단을 포함한다. 1회 프로그램가능 메모리 내의 제1 표시자의 값을 설정하기 전에, 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 연관된 임의의 다른 최상위 인증서들이 활성이고 폐기되지 않았는지의 여부를 결정하기 위한 수단을 더 포함한다. 인증서 액션은 활성화 액션이며, 그리고 인증서에 대해 인증서 액션을 수행하기 위한 수단은, 장치의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 인증서의 해시 값과 매칭되는 해시 값을 식별하기 위한 수단, 인증서의 해시 값의 해시 값을 결정하기 위한 수단, 및 인증서의 해시 값의 해시 값과 연관된, 장치의 1회 프로그램가능 메모리 내의 제2 표시자의 값을, 인증서를 활성화시키도록 설정하기 위한 수단을 포함한다. 인증서가 폐기되었는지의 여부를 결정하기 위한 수단을 더 포함하고, 인증서가 폐기되었는지의 여부를 결정하기 위한 수단은, 인증서의 해시 값의 해시 값과 연관된, 장치의 1회 프로그램가능 메모리 내의 제1 표시자가, 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부를 결정하기 위한 수단을 포함한다. 1회 프로그램가능 메모리 내의 표시자는 퓨즈, 안티퓨즈, 또는 하나 또는 그 초과의 데이터 비트들을 나타낼 수 있는 다른 타입의 표시자를 포함할 수 있다. 표시자의 값은, 퓨즈를 끊거나 또는 그렇지 않으면 1회 프로그램가능 메모리 내의 값을 변경불가능하게 설정함으로써 설정될 수 있다.
[0007] 본 개시내용에 따른 예시적인 컴퓨팅 디바이스는 1회 프로그램가능 메모리 및 1회 프로그램가능 메모리에 결합된 적어도 하나의 프로세서를 포함한다. 적어도 하나의 프로세서는, 인증서 액션이 수행될 인증서의 해시 값을 포함하는 이미지 파일을 수신하고 ― 인증서 액션은 폐기 액션 또는 활성화 액션이고, 이미지 파일은 서명 인증서에 의해 서명됨 ―; 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 서명 인증서의 해시 값을 비교함으로써, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하고; 그리고 이미지 파일이 유효한 인증서에 의해 서명되었고 그리고 인증서 액션이 수행될 인증서가 1회 프로그램가능 메모리 내에서 발견된 것에 대한 응답으로, 1회 프로그램가능 메모리 내의 인증서와 연관된 표시자의 값을 설정함으로써, 인증서에 대해 인증서 액션을 수행하도록 구성된다.
[0008] 이러한 컴퓨팅 디바이스의 구현들은 다음 특징들 중 하나 또는 그 초과의 특징을 포함할 수 있다. 인증서 및 서명 인증서는 동일한 인증서이다. 인증서 액션은 폐기 액션이며, 그리고 인증서에 대해 인증서 액션을 수행하도록 구성된 적어도 하나의 프로세서는, 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 인증서의 해시 값과 매칭되는 해시 값을 식별하고, 인증서의 해시 값의 해시 값을 결정하고, 그리고 인증서의 해시 값의 해시 값과 연관된, 1회 프로그램가능 메모리 내의 제1 표시자의 값을, 인증서를 변경불가능하게 폐기시키도록 설정하도록 추가로 구성된다. 적어도 하나의 프로세서는, 1회 프로그램가능 메모리 내의 제1 표시자의 값을 설정하기 전에, 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 연관된 임의의 다른 최상위 인증서들이 활성이고 폐기되지 않았는지의 여부를 결정하도록 추가로 구성된다. 인증서 액션은 활성화 액션이며, 그리고 인증서에 대해 인증서 액션을 수행하도록 구성된 적어도 하나의 프로세서는, 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 인증서의 해시 값과 매칭되는 해시 값을 식별하고, 인증서의 해시 값의 해시 값을 결정하고, 그리고 인증서의 해시 값의 해시 값과 연관된, 1회 프로그램가능 메모리 내의 제2 표시자의 값을, 인증서를 활성화시키도록 설정하도록 추가로 구성된다. 적어도 하나의 프로세서는 인증서가 폐기되었는지의 여부를 결정하도록 추가로 구성되고, 적어도 하나의 프로세서는, 인증서의 해시 값의 해시 값과 연관된, 1회 프로그램가능 메모리 내의 제1 표시자의 값이, 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부를 결정하도록 구성된다. 1회 프로그램가능 메모리 내의 표시자는 퓨즈, 안티퓨즈, 또는 하나 또는 그 초과의 데이터 비트들을 나타낼 수 있는 다른 타입의 표시자를 포함할 수 있다. 표시자의 값은, 퓨즈를 끊거나 또는 그렇지 않으면 1회 프로그램가능 메모리 내의 값을 변경불가능하게 설정함으로써 설정될 수 있다.
[0009] 본 개시내용에 따른 예시적인 비-일시적 컴퓨터-판독가능 매체에는 컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 컴퓨터-판독가능 명령들이 저장되어 있다. 저장된 명령들은, 컴퓨팅 디바이스로 하여금, 인증서 액션이 수행될 인증서의 해시 값을 포함하는 이미지 파일을 수신하고 ― 인증서 액션은 폐기 액션 또는 활성화 액션이고, 이미지 파일은 서명 인증서에 의해 서명됨 ―; 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 서명 인증서의 해시 값을 비교함으로써, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하고; 그리고 이미지 파일이 유효한 인증서에 의해 서명되었고 그리고 인증서 액션이 수행될 인증서가 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내에서 발견된 것에 대한 응답으로, 1회 프로그램가능 메모리 내의 인증서와 연관된 표시자의 값을 설정함으로써, 인증서에 대해 인증서 액션을 수행하게 하도록 구성된 명령들을 포함한다.
[0010] 이러한 비-일시적 컴퓨터-판독가능 매체의 구현들은 다음 특징들 중 하나 또는 그 초과의 특징을 포함할 수 있다. 인증서 및 서명 인증서는 동일한 인증서이다. 컴퓨팅 디바이스로 하여금, 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 서명 인증서의 해시 값을 비교함으로써, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하게 하도록 구성된 명령들은, 컴퓨팅 디바이스로 하여금, 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 서명 인증서의 해시 값과 매칭되는 해시 값을 식별하고, 그리고 식별된 해시 값과 연관된 인증서가 활성인지의 여부를 결정하게 하도록 구성된 명령들을 포함한다. 인증서 액션은 폐기 액션이며, 그리고 컴퓨팅 디바이스로 하여금 인증서에 대해 인증서 액션을 수행하게 하도록 구성된 명령들은, 컴퓨팅 디바이스로 하여금, 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 인증서의 해시 값과 매칭되는 해시 값을 식별하고, 인증서의 해시 값의 해시 값을 결정하고, 그리고 인증서의 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 표시자의 값을, 인증서를 변경불가능하게 폐기시키도록 설정하게 하도록 구성된 명령들을 포함한다. 인증서 액션은 활성화 액션이며, 그리고 컴퓨팅 디바이스로 하여금 인증서에 대해 인증서 액션을 수행하게 하도록 구성된 명령들은, 컴퓨팅 디바이스로 하여금, 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 인증서의 해시 값과 매칭되는 해시 값을 식별하고, 인증서의 해시 값의 해시 값을 결정하고, 그리고 인증서의 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제2 표시자의 값을, 인증서를 활성화시키도록 설정하게 하도록 구성된 명령들을 포함한다. 컴퓨팅 디바이스로 하여금 인증서가 폐기되었는지의 여부를 결정하게 하도록 구성된 명령들을 더 포함하고, 이 명령들은, 인증서의 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 표시자가, 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부를 결정하게 하도록 구성된 명령들을 포함한다. 1회 프로그램가능 메모리 내의 표시자는 퓨즈, 안티퓨즈, 또는 하나 또는 그 초과의 데이터 비트들을 나타낼 수 있는 다른 타입의 표시자를 포함할 수 있다. 표시자의 값은, 퓨즈를 끊거나 또는 그렇지 않으면 1회 프로그램가능 메모리 내의 값을 변경불가능하게 설정함으로써 설정될 수 있다.
[0011] 도 1은 본원에서 논의되는 기술들을 구현하기에 적합할 수 있는 예시적인 네트워크 아키텍처의 블록도이다.
[0012] 도 2는 도 1에 예시된 컴퓨팅 디바이스를 구현하는 데에 사용될 수 있는 예시적인 컴퓨팅 디바이스의 블록도이다.
[0013] 도 3은 도 2에 예시된 컴퓨팅 디바이스의 기능 블록도로서, 컴퓨팅 디바이스의 기능 유닛들을 예시한다.
[0014] 도 4는 본원에서 논의되는 기술들에 따른 프로비저닝(provisioning) 프로세스의 양상들을 예시하는 블록도이다.
[0015] 도 5는 본원에서 논의되는 기술들에 따른, 프로비저닝을 위한 예시적인 프로세스의 흐름도이다.
[0016] 도 6은 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 예시적인 프로세스의 흐름도이다.
[0017] 도 7은 본원에서 논의되는 기술들에 따른, 인증서가 컴퓨팅 디바이스 상에서 활성인지의 여부를 결정하기 위한 예시적인 프로세스의 흐름도이다.
[0018] 도 8은 본원에서 논의되는 기술들에 따른, 인증서가 컴퓨팅 디바이스 상에서 활성인지의 여부를 결정하기 위한 예시적인 프로세스의 흐름도이다.
[0019] 도 9는 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스 상의 인증서를 폐기시키기 위한 예시적인 프로세스의 흐름도이다.
[0020] 도 10은 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스 상의 인증서를 폐기시키기 위한 예시적인 프로세스의 흐름도이다.
[0021] 도 11은 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스 상의 인증서를 활성화시키기 위한 예시적인 프로세스의 흐름도이다.
[0022] 도 12는 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스 상의 인증서를 활성화시키기 위한 예시적인 프로세스의 흐름도이다.
[0023] 도 13은 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스 상에 인증서들을 프로비저닝하거나 디바이스 상에 이미 있는 인증서들을 관리하는 데에 사용될 수 있는 이미지 파일을 생성하기 위한 예시적인 프로세스의 흐름도이다.
[0024] 도 14는 본원에서 논의되는 기술들에 따른, 프로비저닝을 위한 예시적인 프로세스의 흐름도이다.
[0025] 본원에서는 컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 기술들이 개시된다. 인증서들은 최상위 인증서들 및/또는 증명 인증서(attestation certificate)들을 포함할 수 있다. 최상위 인증서는 하나 또는 그 초과의 증명 인증서들 및/또는 증명 인증서들의 하나 또는 그 초과의 버전들과 연관될 수 있다. 본원에서 논의되는 기술들은, 하나 또는 그 초과의 인증서들을 활성화시키고, 하나 또는 그 초과의 인증서들을 폐기시키고, 그리고/또는 하나 또는 그 초과의 인증서들에 대해 다른 액션들을 수행하기 위해 이러한 인증서들 중 하나 또는 그 초과에 대해 인증서 액션을 수행하는 데에 사용될 수 있다. 인증서 액션들은 컴퓨팅 디바이스에 제공되는 이미지 파일들에서 특정된다. 다음의 예들은 이러한 기술들을 예시한다.
[0026] 도 1은 본원에서 논의되는 기술들을 구현하기에 적합할 수 있는 예시적인 네트워크 아키텍처의 블록도이다. 본원에서 예시되는 특정 구성은 단지 본원에서 개시되는 기술들이 사용될 수 있는 하나의 네트워크 구성의 일례일 뿐이다. 게다가, 이러한 네트워크 아키텍처의 구현은, 본원에서 예시되지 않으며 명확하게 하기 위해 생략된 추가 엘리먼트들을 포함할 수 있다. 예시적인 네트워크 아키텍처는, 본원에서 개시되는 기술들이 구현될 수 있는 컴퓨팅 디바이스가 동작할 수 있는 네트워크 환경의 예를 제공한다.
[0027] 컴퓨팅 디바이스(120)는 도 1의 예에 예시된 바와 같은 모바일 디바이스일 수 있거나, 일반적으로 고정된 디바이스, 이를테면 데스크톱 컴퓨터 시스템일 수 있다. 컴퓨팅 디바이스(120)는, 사용자 장비(UE: User Equipment), 이동국, 단말, 액세스 단말, 가입자 유닛, 스테이션 등으로 지칭되는 모바일 통신 디바이스일 수 있다. 컴퓨팅 디바이스(120)는, 롱 텀 에볼루션(LTE: Long Term Evolution), WLAN 및 WiMAX 무선 통신 프로토콜들을 포함하는(하지만 이들로 제한되지 않음) 하나 또는 그 초과의 무선 통신 프로토콜들을 사용하여 통신하도록 구성된 무선 송신기를 포함하는 스마트폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 게임 콘솔, (스마트 워치와 같은) 웨어러블 디바이스 또는 다른 디바이스일 수 있다. 컴퓨팅 디바이스(120)는 또한, 다른 타입들의 무선 또는 유선 통신 프로토콜들을 지원하도록 구성될 수 있고, 다수의 서로 다른 무선 통신 프로토콜들을 지원하도록 구성될 수 있다. 컴퓨팅 디바이스(120)의 무선 송신기는 다른 디바이스들, 무선 송신기들(115) 및/또는 하나 또는 그 초과의 무선 기지국들(140)에 데이터를 전송하도록 그리고/또는 이들로부터 데이터를 수신하도록 구성될 수 있다.
[0028] 컴퓨팅 디바이스(120)는 또한, 무선 송신기들(115) 및 무선 기지국(140)과 같은 하나 또는 그 초과의 무선 기지국들 또는 무선 액세스 포인트들로부터 신호들을 측정하고, 무선 기지국들에 대한 (예컨대, 도래 시간(TOA: time of arrival) 또는 관측 도래 시간 차(OTDOA: observed time difference of arrival)에 대한) 타이밍 측정들, 신호 세기 측정들(예컨대, 수신 신호 세기 표시(RSSI: Receive Signal Strength Indication)), 왕복 시간(RTT: round-trip time) 및/또는 신호 품질 측정들을 획득하도록 구성될 수 있다. 의사 거리 측정들, 타이밍 측정들, 신호 세기 측정들 및/또는 신호 품질 측정들이 컴퓨팅 디바이스(120)에 대한 위치 추정치를 도출하는 데에 사용될 수 있다. 위치 추정치는 포지션 추정치(position estimate), 포지션 픽스(position fix) 등으로 또한 지칭될 수 있다. 이 예에서는 2개의 로컬 지상 무선 송신기들: 115a 및 115b가 예시된다. 그러나, 다른 구현들에서는, 더 많은 또는 더 적은 무선 송신기들(115)이 포함될 수 있다. 컴퓨팅 디바이스(120)는 또한, 위성들(170), 무선 기지국(140) 및/또는 무선 송신기들(115) 중 하나 또는 그 초과로부터의 신호들의 결합을 사용하여, 컴퓨팅 디바이스(120)의 포지션을 결정하도록 구성될 수 있다.
[0029] 무선 송신기들(115) 각각은 IEEE 802.11 무선 통신 표준들을 사용하여 동작하도록 구성된 WLAN 무선 액세스 포인트를 포함할 수 있다. 그러나, 일부 구현들에서, 무선 송신기들(115) 중 일부 또는 전부는 다른 무선 통신 프로토콜들을 이용하도록 구성될 수 있고, 일부 네트워크 환경들은 하나 초과의 타입의 무선 송신기를 포함할 수 있다. 게다가, 무선 송신기들(115)이 송신기들로서 식별되기는 하지만, 이러한 무선 송신기들(115)은 무선으로 데이터를 전송 및/또는 수신하도록 구성된 트랜시버들일 수 있다. 무선 송신기들(115)은 네트워크(110)에 대한 광대역 접속을 제공하는 백홀 접속을 통해 네트워크(110)에 접속될 수 있다. 네트워크(110)는 인터넷 그리고/또는 하나 또는 그 초과의 네트워크들의 결합일 수 있다. 예컨대, 무선 송신기(이를테면, 무선 송신기들(115) 중 하나)는, 그 특정 구현에 사용되고 있는 광대역 서비스의 타입에 따라 DSL 모뎀 또는 케이블 모뎀에 접속될 수 있다. 무선 송신기(이를테면, 무선 송신기들(115) 중 하나)는 모바일 통신 네트워크 제공자와 연관될 수 있고, 네트워크(110)를 통해 (도시되지 않은) 모바일 통신 네트워크 제공자의 네트워크와 통신하도록 구성될 수 있다. 무선 송신기(이를테면, 무선 송신기들(115) 중 하나)의 커버리지 영역은 무선 기지국(140)과 같은 하나 또는 그 초과의 매크로 셀 기지국들의 커버리지 영역, 또는 하나 또는 그 초과의 다른 지상 트랜시버들의 커버리지 영역과 중첩할 수 있다.
[0030] 무선 기지국(140)은 복수의 모바일 디바이스들, 이를테면 컴퓨팅 디바이스(120)에 대한 무선 네트워크 접속을 제공하도록 구성될 수 있다. 무선 기지국(140)은 매크로 셀 기지국, 펨토 셀 기지국, 피코 셀 기지국, 또는 다른 타입의 기지국을 포함할 수 있다. 무선 기지국(140)은 무선 송신기(이를테면, 무선 송신기들(115) 중 하나)보다 훨씬 더 큰 커버리지 영역을 가질 수 있거나, 또는 무선 송신기들(115)에 의해 제공된 커버리지 영역보다 더 작은 크기인 또는 비슷한 크기인 커버리지 영역을 제공하는 지상 트랜시버일 수 있다. 무선 기지국(140)은 하나 또는 그 초과의 무선 통신 프로토콜들을 사용하여 통신하도록 구성될 수 있다. 도 1에 예시된 예는 단일 무선 기지국을 포함하지만, 다른 구현들에서, 네트워크 환경은 적어도 부분적으로 중첩할 수 있는 커버리지 영역들을 갖는 하나 초과의 무선 기지국(140)을 포함할 가능성이 있다.
[0031] 컴퓨팅 디바이스(120)는, 위성(170a) 및 위성(170b)과 같은 하나 또는 그 초과의 위성들(170)로부터 신호들을 수신하여 측정하고 그리고 위성들(170)에 대한 의사 거리 측정들을 획득하도록 구성된 글로벌 항법 위성 시스템(GNSS: Global Navigation Satellite System) 수신기를 포함하도록 구성될 수 있다. 위성들(170)은, 미국의 글로벌 포지셔닝 시스템(GPS: Global Positioning System), 유럽의 갈릴레오(Galileo) 시스템, 러시아의 GLONASS 시스템, 또는 다른 어떤 GNSS일 수 있는 글로벌 항법 위성 시스템(GNSS)의 일부일 수 있다. GNSS 수신기는 또한 하나 초과의 GNSS 시스템에 속하는 위성들(170)로부터의 신호들을 검출하고 수신하도록 구성될 수 있다. 예컨대, 위성(170a)은 GPS 시스템에 속할 수 있는 한편, 위성(170b)은 갈릴레오 시스템에 속할 수 있다. 본원에서 예시되는 예시적인 네트워크 아키텍처는 단지 2개의 위성들만을 예시하지만, 다른 구현들은 이용가능한 더 많은 또는 더 적은 위성들을 가질 수 있고, 하나 또는 그 초과의 GNSS 시스템과 연관된 위성들을 가질 수 있으며, 그리고 컴퓨팅 디바이스(120)에서 볼 수 있는 위성들의 수는 컴퓨팅 디바이스(120)의 현재 지리적 위치 및 위성들(170)의 궤도들에 좌우될 수 있다. 일반적으로, 컴퓨팅 디바이스(120)는, 컴퓨팅 디바이스(120)의 위치를 결정하기 위해 삼각측량(trilateration)을 수행하기 위하여 적어도 4개의 SV들로부터 신호들을 포착하고자 시도할 것이다.
[0032] 신뢰성있는 엔티티(trusted entity)(160)는 컴퓨팅 디바이스(120)에 다운로딩가능한 콘텐츠, 이를테면 소프트웨어 및/또는 운영 체제 업데이트들을 제공하도록 구성될 수 있다. 신뢰성있는 엔티티(160)는 또한, 소프트웨어 이미지에 서명하는 데에 사용된 인증서에 기반하여, 서명된 소프트웨어 이미지의 진본성(authenticity)을 증명하도록 구성될 수 있다. 도 1에 예시된 예에서, 신뢰성있는 엔티티(160)는 단일 엔티티로서 예시된다. 그러나, 본원에서 논의되는 신뢰성있는 엔티티(160)에 기인한 논리적 기능들은 다양한 제3자(third party)들에 의해 운영되는 다수의 신뢰성있는 엔티티들에 걸쳐 분산될 수 있다. 게다가, 신뢰성있는 엔티티(160)의 기능성은 다수의 네트워크 접속된 서버들에 걸쳐 분산될 수 있다.
[0033] 도 1에 예시된 예시적인 네트워크 구성은 단지 본원에서 개시되는 기술들이 구현될 수 있는 네트워크의 하나의 가능한 구성의 일례일 뿐이다. 다른 네트워크 구성들은 도 1에 예시되지 않은 추가 엘리먼트들을 포함할 수 있고, 다양한 컴포넌트들이 도 1에 도시된 것과는 다른 구성으로 상호 접속될 수 있다. 게다가, 앞서 논의한 바와 같이, 컴퓨팅 디바이스(120)는, 컴퓨팅 디바이스(120)가 도 1에 예시된 무선 접속들 대신 또는 이에 추가하여 네트워크(110)에 대한 유선 접속을 포함하도록 구현될 수 있다. 게다가, 컴퓨팅 디바이스(120)는, 도 1에 예시된 것과 같은 모바일 디바이스로서의 컴퓨팅 디바이스(120)의 구현과는 달리, 상대적으로 고정된 위치, 이를테면 옮겨질 수 있지만 일반적으로는 동일한 위치에 유지되는 셋톱 박스, 서버 컴퓨터 시스템 또는 데스크톱 컴퓨터 시스템에 유지되도록 구성될 수 있다.
[0034] 도 2는 도 1에 예시된 컴퓨팅 디바이스(120)를 구현하는 데에 사용될 수 있는 컴퓨팅 디바이스의 블록도이다. 컴퓨팅 디바이스(120)는 도 4 - 도 14에 예시된 프로세스들을 적어도 부분적으로 구현하는 데에 사용될 수 있다. 컴퓨팅 디바이스(120)는 랩톱 또는 다른 개인용 컴퓨터 시스템들, 태블릿 컴퓨터들, 휴대 전화들, 스마트폰들, 게임 콘솔들, 웨어러블 디바이스들(예컨대, 스마트 워치, 헤드 장착형 디바이스 등)을 포함하는(하지만 이들로 제한되지 않음) 다양한 타입들의 컴퓨팅 디바이스들, 및/또는 다른 타입들의 컴퓨팅 디바이스들일 수 있다.
[0035] 컴퓨팅 디바이스(120)는, 버스(200)에 의해 서로 접속된, 적어도 하나의 프로세서(210), 무선 인터페이스(225), GNSS 인터페이스(265) 및 비-일시적 메모리(260)를 포함하는 컴퓨터 시스템을 포함한다. 적어도 하나의 프로세서(210)는 범용 프로세서를 포함할 수 있다. 컴퓨팅 디바이스(120)의 다른 구현들은 도 2의 예시적인 구현에 예시되지 않은 추가 엘리먼트들을 포함할 수 있고 그리고/또는 도 2에 예시된 예시적인 실시예에 예시된 엘리먼트들 전부를 포함하지 않을 수도 있다. 컴퓨팅 디바이스(120)의 일부 구현들은 GNSS 인터페이스(265) 및/또는 무선 인터페이스(225)를 포함하지 않을 수도 있다. 컴퓨팅 디바이스(120)는 무선 인터페이스(225) 대신 또는 이에 추가하여 유선 네트워크 인터페이스를 포함할 수 있다. 컴퓨팅 디바이스(120)는 셋톱 박스, 데스크톱 컴퓨팅 디바이스, 또는 옮겨질 수 있지만 일반적으로는 휴대 전화, 랩톱 컴퓨터, 태블릿 컴퓨터, 웨어러블 디바이스, 또는 모바일 디바이스로 지칭될 수 있는 다른 그러한 컴퓨팅 디바이스처럼 휴대용으로 의도되는 것은 아닐 수 있는 다른 디바이스로서 구현될 수 있다.
[0036] 무선 인터페이스(225)는 컴퓨팅 디바이스(120)가 WWAN, WLAN, 및/또는 다른 무선 통신 프로토콜들을 사용하여 데이터를 전송 및/또는 수신할 수 있게 하는 무선 수신기, 송신기, 트랜시버 및/또는 다른 엘리먼트들을 포함할 수 있다. 무선 인터페이스(225)는, 다수의 무선 통신 표준들을 사용하여 무선 신호들을 송신 및 수신할 수 있는 하나 또는 그 초과의 다중-모드 모뎀들을 포함할 수 있다. 무선 인터페이스(225)는, 무선 송신기들(115), 무선 기지국(140), 및/또는 무선 통신 프로토콜들을 사용하여 통신하도록 구성된 다른 무선 디바이스들로/로부터 통신들을 무선 신호들(250)로서 전송 및 수신하기 위한 안테나(245)에 접속된다. 도 2에 예시된 컴퓨팅 디바이스(120)는 단일 무선 인터페이스 및 단일 안테나를 포함하지만, 컴퓨팅 디바이스(120)의 다른 구현들은 다수의 무선 인터페이스들 및/또는 다수의 안테나들을 포함할 수 있다.
[0037] I/O 인터페이스(270)는, 컴퓨팅 디바이스(120)에 대한 데이터 입력들 및/또는 출력들을 제공할 수 있는 하나 또는 그 초과의 포트들 및/또는 다른 인터페이스들을 제공할 수 있다. 예컨대, I/O 인터페이스(270)는, 범용 직렬 버스(USB: Universal Serial Bus) 포트 및/또는 외부 디바이스들을 컴퓨팅 디바이스(120)에 접속하는 데에 사용될 수 있는 다른 타입의 포트와 같은 하나 또는 그 초과의 포트들을 포함할 수 있다. I/O 인터페이스(270)는 또한, 버튼들, 스위치들, 키패드, 터치스크린 및/또는 사용자로부터의 입력을 수신하기 위한 다른 수단과 같은 하나 또는 그 초과의 입력 디바이스들을 포함할 수 있다. I/O 인터페이스(270)는 또한, 오디오 및/또는 시각 콘텐츠를 출력하기 위한 하나 또는 그 초과의 수단, 이를테면 스크린, 스피커, 헤드폰 포트 및/또는 이러한 콘텐츠를 출력하기 위한 다른 수단을 포함할 수 있다.
[0038] GNSS 인터페이스(265)는, 컴퓨팅 디바이스(120)가 하나 또는 그 초과의 GNSS 시스템들과 연관된 송신기들로부터 신호들을 수신할 수 있게 하는 GNSS 수신기 및/또는 다른 엘리먼트들을 포함할 수 있다. GNSS 인터페이스(265)는 도 1에 예시된 위성들(170)과 같은 GNSS 송신기들로부터 신호들(280)을 수신하기 위한 안테나(275)에 접속된다. 컴퓨팅 디바이스(120)는 GNSS 시스템들과 연관된 위성들 및 다른 송신기들과 연관된 위성들로부터 수신된 신호들을 사용하여 컴퓨팅 디바이스(120)의 포지션을 결정하도록 구성될 수 있다. 컴퓨팅 디바이스(120)는 또한, 무선 송신기들(115) 및/또는 무선 기지국들(이를테면, 무선 기지국(140))로부터 수신된 신호들과 함께, GNSS 시스템들과 연관된 위성들 및 다른 송신기들로부터 수신된 신호들을 사용하여, 컴퓨팅 디바이스(120)의 포지션을 결정하도록 구성될 수 있다.
[0039] 프로세서(210)는 지능형 디바이스, 예컨대 개인용 컴퓨터 중앙 처리 유닛(CPU: central processing unit), 마이크로컨트롤러, 주문형 집적 회로(ASIC: application specific integrated circuit) 등일 수 있다. 메모리(260)는, 랜덤 액세스 메모리(RAM: random access memory), 판독 전용 메모리(ROM: read-only memory), 또는 이들의 결합을 포함할 수 있는 비-일시적 저장 디바이스이다. 메모리(260)는, (비록 설명은 소프트웨어가 기능(들)을 수행한다고 쓰여 있을 수 있지만) 본원에서 설명되는 기능들을 수행하도록 프로세서(210)를 제어하기 위한 명령들을 포함하는 프로세서-판독가능, 프로세서-실행가능 소프트웨어 코드를 저장할 수 있다. 소프트웨어는, 네트워크 접속을 통해 다운로드되거나, 디스크로부터 업로드되는 등에 의해 메모리(260)에 로딩될 수 있다. 또한, 소프트웨어는 직접적으로 실행 가능하지 않을 수 있는데, 예컨대 실행 전에 컴파일링을 필요로 할 수 있다.
[0040] 메모리(260) 내의 소프트웨어는 프로세서(210)가 무선 송신기들(115), 무선 기지국(140), 다른 모바일 디바이스들, 및/또는 무선 통신을 위해 구성된 다른 디바이스들로부터의 데이터 전송 및/또는 수신을 구현하는 것을 포함하는 다양한 동작들을 수행할 수 있게 하도록 구성된다. 메모리(260) 내의 소프트웨어는 또한, 프로세서(210)가 도 4 - 도 14에 예시된 프로세스들 중 하나 또는 그 초과의 프로세서의 전부 또는 일부를 수행할 수 있게 하도록 구성될 수 있다. 도 4 - 도 14에 예시된 프로세스들은 또한, 컴퓨팅 디바이스(120)의 하드웨어 컴포넌트들로 구현될 수 있거나 하드웨어 컴포넌트와 소프트웨어 컴포넌트의 결합으로서 구현될 수 있다.
[0041] 메모리(290)는 1회 프로그램가능 메모리 비휘발성 메모리이다. 메모리(290)는 데이터의 비트를 표현하는 데에 사용될 수 있는 하나 또는 그 초과의 표시자들을 포함할 수 있다. 비트의 값들은 어떠한 값으로 영구적으로 그리고 변경불가능하게 설정될 수 있다. 일부 구현들에서, 비트의 값은 특정 비트와 연관된 메모리 내의 퓨즈를 끊음으로써 영구적으로 설정될 수 있다. 도 4 - 도 14의 예시적인 구현들은 메모리(290)에 저장된 인증서를 영구적으로 폐기시키거나 활성화시키도록 비트를 영구적으로 설정하기 위해 퓨즈를 끊는 것을 논의한다. 그러나, 반드시 모든 1회 프로그램가능 메모리 비휘발성 메모리가 퓨즈들을 포함하는 것은 아니며, 다른 기술들을 사용하여 메모리 내의 표시자를 설정할 수 있다. 메모리(290)는 컴퓨팅 디바이스(120)에 의해 활용될 수 있는 최상위 인증서들, 증명 인증서들 또는 다른 타입들의 인증서들을 저장하는 데에 사용될 수 있고, 도 4 - 도 14에서 논의되는 기술들은 컴퓨팅 디바이스(120)에 대한 인증서들을 프로비저닝하고 그리고/또는 유지(maintain)하는 데에 사용될 수 있다.
[0042] 본원에서 논의되고 도 4 - 도 14에 예시되는 기술들에 있어서, 컴퓨팅 디바이스(120)에 프로비저닝되는 인증서들은 메모리(290)에 저장되지 않는다. 대신에, 각각의 인증서들의 해시가 메모리(290)에 저장될 수 있다. 이러한 접근법은 컴퓨팅 디바이스(120)의 1회 프로그램가능 메모리(290) 내의 공간을 보존하는 데에 사용될 수 있다. 1회 프로그램가능 메모리는, 컴퓨팅 디바이스(120)에 포함될 수 있는 판독-기록 메모리 컴포넌트들과 비교하여 비용이 많이 들 수 있다. 각각의 인증서들을 해싱(hashing)하는 것은 컴퓨팅 디바이스(120)에 저장되는 인증서들의 체인의 크기를 상당히 감소시킬 수 있다. 메모리(290)는 또한, 인증서들의 각각의 해시 값들을 메모리(290) 내의 하나 또는 그 초과의 퓨즈들의 세트에 매핑하는 해시 테이블들을 포함할 수 있다. 예컨대, 인증서의 해시는, 인증서가 폐기되었는지의 여부를 나타내는, 메모리 내의 제1 퓨즈 또는 다른 표시자를 가질 수 있으며, 그리고 인증서가 활성화되었는지의 여부를 나타내는 제2 퓨즈를 가질 수 있다. 인증서들의 활성화 및 폐기는, 적절한 퓨즈를 끊거나 메모리 내의 적절한 표시자를 설정함으로써 달성될 수 있다. 폐기는 변경불가능하다. 퓨즈가 끊어지거나 메모리 내의 다른 표시자의 값이 설정되면, 값은 변경될 수 없다. 게다가, 폐기되는 인증서에 의해 서명된 임의의 다른 인증서들 또한 폐기될 것이다.
[0043] 대안적으로, 메모리(290)는, 퓨즈들 대신에 안티퓨즈들, 또는 일단 설정되면 변경불가능하게 설정되는 값을 표현하는 데에 사용될 수 있는 다른 타입들의 표시자들을 활용하는 1회 프로그램가능 메모리(290)의 형태를 사용하여 구현될 수 있다. 본원에서 논의되는 예시적인 프로세스들이 비트 값을 설정하기 위해 퓨즈를 끊거나 비트 값을 결정하기 위해 퓨즈를 판독하는 것에 대해 논의하지만, 이러한 프로세스들은 또한, 안티퓨즈들 및/또는 다른 타입들의 표시자들을 포함하는 메모리를 사용하여 구현될 수 있고, 인증서의 활성화 및/또는 폐기는 적절한 안티퓨즈 또는 메모리 내의 다른 표시자를 영구적으로 설정함으로써 달성될 수 있다.
[0044] 도 3은 도 2에 예시된 컴퓨팅 디바이스(120)의 기능 블록도로서, 컴퓨팅 디바이스(120)의 기능 유닛들 및 메모리(290)의 콘텐츠를 예시한다. 컴퓨팅 디바이스(120)는 소프트웨어 업데이트 유닛(362), 인증서 관리 유닛(364) 및 데이터 액세스 유닛(366)을 포함할 수 있다. 기능 유닛들(362, 364 및 366)은 프로세서(210)에 의해 실행가능한, 메모리(260)에 저장되는 소프트웨어 모듈들로서 구현될 수 있다. 기능 유닛들은 컴퓨팅 디바이스(120)의 디지털 및/또는 아날로그 하드웨어 컴포넌트들로서 구현될 수 있고, 프로세서(210)의 컴포넌트들 및/또는 별도의 하드웨어 컴포넌트들로서 구현될 수 있다. 기능 유닛들은 또한, 하드웨어 컴포넌트와 소프트웨어 컴포넌트의 결합으로서 구현될 수 있다. 도 2 및 도 3에 예시된 컴퓨팅 디바이스(120)는 도 4 - 도 14에 예시된 프로세스들과 연관된 컴퓨팅 디바이스(120)를 구현하는 데에 사용될 수 있다. 프로세서(210) 및 기능 유닛들(362, 364, 및 366)은, 달리 명시되지 않는 한, 도 4 - 도 14에 예시된 프로세스들의 다양한 스테이지들을 구현하기 위한 수단을 제공할 수 있다.
[0045] 소프트웨어 업데이트 유닛(362)은, 컴퓨팅 디바이스(120)의 메모리(290)에 저장된 하나 또는 그 초과의 인증서들에 대한 소프트웨어 업데이트들, 구성 파일 업데이트들 및/또는 폐기들 및/또는 활성화 정보에 관한 인증서 액션 정보를 포함하는 이미지 파일들을 수신하도록 구성될 수 있다. 소프트웨어 업데이트 유닛(362)은 유선 또는 무선 네트워크 접속을 통해 신뢰성있는 엔티티(160)와 같은 네트워크 엔티티로부터 이미지 파일들을 수신하도록 구성될 수 있다. 이미지 파일들은, 네트워크(110) 및/또는 하나 또는 그 초과의 중재 네트워크들, 이를테면 무선 송신기들(115) 및/또는 무선 기지국(140)과 연관된 무선 통신 네트워크를 통해 송신될 수 있다. 신뢰성있는 엔티티(160) 또는 다른 네트워크 엔티티는 업데이트들 및/또는 인증서 액션 정보를 포함하는 이미지 파일들을 컴퓨팅 디바이스(120)에 푸시(push)할 수 있다. 소프트웨어 업데이트 유닛(362)은 또한, 신뢰성있는 엔티티(160) 또는 다른 네트워크 엔티티로부터의 소프트웨어 업데이트들을 요청하도록 그리고 신뢰성있는 엔티티(160) 또는 다른 네트워크 엔티티로부터 요청된 소프트웨어를 다운로드하도록 구성될 수 있다. 신뢰성있는 엔티티(160) 또는 다른 네트워크 엔티티는 또한, 컴퓨팅 디바이스(120)로부터의 요청에 대한 응답으로, 이미지 파일 또는 이미지 파일들을 컴퓨팅 디바이스(120)에 푸시하도록 구성될 수 있다. 소프트웨어 업데이트 유닛은, 컴퓨팅 디바이스의 메모리(290)에서 발견되는 유효한 인증서에 의해 이미지 파일이 서명된 것에 대한 응답으로, 이미지 파일에 포함된 업데이트들을 설치하고, 이미지 파일에 포함된 정보를 사용하여 구성 파일들을 업데이트하고, 그리고/또는 이미지 파일에서 식별되는 하나 또는 그 초과의 인증서 액션들을 수행할 수 있다. 인증서가 이미지 파일에 대한 유효한 서명 인증서가 되기 위해서는, 인증서가 활성이어야 하고 폐기되지 않았어야 한다.
[0046] 소프트웨어 업데이트 유닛(362)은 이미지 파일이 유효한 인증서에 의해 서명되었다는 것을 확인하기 위해 인증서 관리 유닛(364)과 함께 동작하도록 구성될 수 있다. 소프트웨어 업데이트 유닛은, 인증서 관리 유닛(364)에게 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 검증하고 그리고/또는 컴퓨팅 디바이스(120)의 메모리(290)에 저장된 인증서를 활성화시키기 위한 활성화 액션 또는 인증서를 폐기시키기 위한 폐기 액션과 같은, 인증서에 대한 인증서 액션을 수행할 것을 요청하도록 구성될 수 있다. 소프트웨어 업데이트 유닛(362)은, 이미지 파일이 유효한 인증서에 의해 서명되었음을 인증서 관리 유닛(364)이 나타내는 것에 대한 응답으로, 이미지 파일에 포함된 업데이트를 설치하고 그리고/또는 이미지 파일에 포함된 정보에 기반하여 구성 파일들을 업데이트하도록 구성될 수 있다. 이미지 파일이 유효한 인증서에 의해 서명되지 않은 경우, 이미지 파일은, 컴퓨팅 디바이스(120)의 제어를 취하고, 컴퓨팅 디바이스(120)의 메모리(290) 및/또는 메모리(260)로부터 민감한 정보를 포착하고, 그리고/또는 컴퓨팅 디바이스(120)의 다른 바람직하지 않은 거동을 유발하는 데에 사용될 수 있는 악성 소프트웨어 또는 구성 정보를 잠재적으로 포함할 수 있다.
[0047] 인증서 관리 유닛(364)은, 이미지 파일이 컴퓨팅 디바이스(120)의 메모리(290) 내에 저장된 유효한 인증서에 의해 서명되었음을 결정하도록 구성될 수 있다. 인증서 관리 유닛(364)은 또한, 컴퓨팅 디바이스(120)의 메모리(290)에 저장된 인증서를 활성화시키기 위한 활성화 액션 또는 인증서를 폐기시키기 위한 폐기 액션과 같은, 인증서에 대한 인증서 액션을 수행하도록 구성될 수 있다. 인증서 관리 유닛(364)은, 컴퓨팅 디바이스(120)의 메모리(290)에 저장된 인증서의 해시를 로케이팅(locating)하고, 메모리(290)의 해시 테이블에서 인증서의 해시를 검색(look up)하고, 인증서가 폐기되었는지의 여부를 나타내는, 인증서와 연관된 표시자에 대한 퓨즈를 끊거나 또는 그렇지 않으면 그러한 표시자의 값을 영구적으로 설정함으로써, 인증서를 폐기시키도록 구성될 수 있다. 인증서 관리 유닛(364)은, 컴퓨팅 디바이스(120)의 메모리(290)에 저장된 인증서의 해시를 로케이팅하고, 인증서가 폐기되었는지의 여부를 나타내는, 인증서와 연관된 표시자에 대한 퓨즈를 끊거나 또는 그렇지 않으면 그러한 표시자의 값을 영구적으로 설정함으로써, 인증서를 폐기시키도록 구성될 수 있다.
[0048] 인증서 관리 유닛(364)은, 활성이거나 활성화되지 않은 인증서에 대해 폐기 액션을 수행할 수 있다. 컴퓨팅 디바이스(120)가, 메모리(290)에 저장된 어떠한 활성 최상위 인증서들도 존재하지 않는 상태가 되는 것을 피하기 위해, 인증서 관리 유닛(364)은, 현재 활성인 인증서를 폐기시키기 전에, 임의의 다른 최상위 인증서들이 모바일 디바이스의 메모리(290)에 활성인 것으로서 마킹되어 있는 지의 여부를 결정하도록 구성될 수 있다. 소프트웨어 업데이트 유닛(362)은, 인증서 관리 유닛(364)에게 프로비저닝 프로세스 또는 폐기 또는 활성화 액션을 진행하기 전에 신뢰성있는 엔티티(160)에 의해 서명 인증서를 검증할 것을 요청하도록 구성될 수 있다. 소프트웨어 업데이트 유닛(362)은 서명되지 않은 이미지 파일들을 거부하거나, 서명되지 않은 이미지 파일들이 메모리(290) 내의 인증서들과 연관된 활성화 및 폐기 퓨즈들에 대한 업데이트들을 하는 것을 방지하도록 구성될 수 있다.
[0049] 인증서 관리 유닛(364)은, 폐기되는 인증서에 의해 서명된 임의의 인증서들을 폐기시키도록 구성될 수 있다. 인증서 관리 유닛(364)은, 인증서를 폐기할 때, 메모리(290)에 저장된 다른 인증서들을 검사하여, 폐기되는 인증서에 의해 서명된 그러한 인증서들을 식별하도록 구성될 수 있고, 그런 다음, 폐기되는 인증서에 따라 그러한 인증서들을 폐기할 수 있다. 나중에, 폐기된 인증서들 중 임의의 인증서를 활성화시키고자 하는 시도가 이후 이루어지는 경우, 인증서 관리 유닛(364)은 인증서와 연관된 퓨즈들을 판독하고 인증서가 이미 폐기되었다고 결정할 것이고, 인증서들의 활성화를 방지할 것이다.
[0050] 데이터 액세스 유닛(366)은 메모리(260), 메모리(290) 및/또는 컴퓨팅 디바이스(120)와 연관된 다른 데이터 저장 디바이스들에 데이터를 저장하도록 구성될 수 있다. 데이터 액세스 유닛(366)은 또한, 메모리(260) 및/또는 컴퓨팅 디바이스(120)와 연관된 다른 데이터 저장 디바이스들 내의 데이터에 액세스하도록 구성될 수 있다. 데이터 액세스 유닛(366)은 컴퓨팅 디바이스(120)의 다른 기능 유닛들 및/또는 컴포넌트들로부터의 요청들을 수신하고, 메모리(260), 메모리(290) 및/또는 컴퓨팅 디바이스(120)와 연관된 다른 데이터 저장 디바이스들에 데이터를 저장하고 그리고/또는 이에 저장된 데이터에 액세스하도록 구성될 수 있다.
[0051] 도 4는 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스의 메모리 내의 인증서들을 관리하는 양상들을 예시하는 블록도이다. 컴퓨팅 디바이스(120)는 하나 또는 그 초과의 인증서들과 연관될 수 있다. 인증서들은 최상위 인증서들 및 증명 인증서들을 포함할 수 있다. 1회 프로그램가능 메모리(290)의 크기는 제한되어 있으며, 본원에서 개시되는 기술들은 인증서들의 체인을 저장하는 데에 필요한 메모리의 양을 줄이기 위해 전체 인증서들을 저장하는 것을 피한다. 인증서들을 컴퓨팅 디바이스(120)의 메모리(290)에 저장하는 대신에, 컴퓨팅 디바이스(120)에 대한 인증서 정보를 저장하는 데에 필요한 메모리의 양을 줄이기 위해 각각의 인증서들의 해시가 메모리에 저장된다. 프로비저닝 프로세스는 컴퓨팅 디바이스(120)가 최종 사용자에게 제공되기 전에 어떤 시점에서 수행된다. 이러한 프로비저닝 프로세스는, 컴퓨팅 디바이스(120)가 최종 사용자에게 제공되기 전에 제조자, 재판매업자, 무선 통신 네트워크 제공자, 다른 엔티티에 의해 수행될 수 있다.
[0052] 도 4에 예시된 예에서, n개의 인증서들의 세트가 컴퓨팅 디바이스(120) 상에 프로비저닝되고, 여기서 n은 3과 같거나 그보다 큰 정수이다. 다른 구현들에서는, 3개 미만의 인증서들이 컴퓨팅 디바이스(120) 상에 프로비저닝될 수 있다. 해시 함수(410)가 각각의 인증서들(405-0, 405-1, ... 및 405-n)에 적용되어, 각각의 인증서들에 대한 해시 값(인증서의 해시(415))을 생성하는 바, 결과적으로 n개의 해시 값들을 발생시킨다. n개의 인증서들 중의 각각의 인증서의 해시 값은 컴퓨팅 디바이스(120)의 1회 프로그램가능 메모리(290)에 저장될 수 있다. 각각의 인증서들의 해시 값은 대응하는 인증서가 메모리(290)에서 차지하게 될 공간보다 훨씬 적은 공간을 차지할 수 있으며, 결과적으로, 컴퓨팅 디바이스(120)는 인증서 정보를 저장하는 데에 더 적은 메모리(290)를 요구할 수 있다. 결과적인 메모리 요구량(memory requirements)의 감소는 값비싼 1회 프로그램가능 메모리(290)를 다른 데이터를 저장하도록 자유롭게 할 수 있거나, 컴퓨팅 디바이스(120)에 의해 요구되는 1회 프로그램가능 메모리(290)의 전체 양을 결과적으로 감소시킬 수 있으며, 이는 컴퓨팅 디바이스(120)의 제조 비용을 감소시키는 것을 도울 수 있다.
[0053] 프로비저닝 기술들은 또한, 메모리(290)에 저장될 인증서 해시 테이블(440)을 생성하는 것을 포함할 수 있다. 해시 테이블(440)은, 인증서와 연관된 활성화 및/또는 폐기 표시자들로서 기능하는, 메모리 내의 퓨즈들의 세트와 메모리(290)에 저장된 인증서의 해시(415) 간의 매핑을 제공한다. 해시 테이블은, 인증서들의 해시(415)에 해시 함수(420)를 적용하여 각각의 인증서들에 대한 해시의 해시(425)를 결정함으로써 구성될 수 있다. 해시 함수(420)는 해시 함수(410)와 동일한 해시 함수일 수 있거나 상이한 해시 함수일 수 있다. 해시 함수(420)는 해시 값(425)의 각각의 해시가 상이한 값이 되도록 선택될 수 있다. 저장될 인증서들의 수 및 저장될 각각의 인증서들의 해시 값들은 사전에 알려지며, 이는 충돌들이 회피될 수 있도록, 각각의 인증서에 대한 해시 값의 해시(425)를 생성하는 해시 함수를 선택할 수 있게 한다. 메모리에 저장된 인증서의 각각의 해시(415)는, 인증서가 폐기되었는지의 여부를 나타내는 제1 퓨즈 또는 다른 표시자(430) 및 인증서가 활성화되었는지의 여부를 나타내는 제2 퓨즈 또는 다른 표시자(435)와 연관될 수 있다. 명확성을 위해 퓨즈들이 “제1” 및 “제2” 퓨즈들로서 지칭되었지만, 퓨즈들의 순서는 예에서 특정된 순서일 필요는 없다. 게다가, 상기 논의된 바와 같이, 메모리(290)는 퓨즈들을 활용하지 않는 상이한 타입의 1회 프로그램가능 메모리를 사용하여 구현될 수 있고, 참조되는 퓨즈들은 메모리(290)를 구현하는 데에 사용된 메모리의 타입에 적절한 값을 저장하기 위한 표시자를 나타내는 데에 사용될 수 있다.
[0054] 컴퓨팅 디바이스(120)는 메모리(290)에 저장된 하나 또는 그 초과의 인증서들에 대해 수행될 인증서 액션을 식별하는 이미지 파일을 수신하도록 구성될 수 있다. 이미지 파일은 수행될 폐기 액션 및/또는 활성화 액션에 관한 인증서 액션 정보를 포함할 수 있다. 인증서 액션 정보는 인증서 액션이 수행될 인증서의 해시를 포함할 수 있다. 이미지 파일 내에 전체 인증서가 아닌 인증서의 해시를 저장하는 것은 컴퓨팅 디바이스(120)에 제공될 이미지 파일들의 전체 크기를 감소시킬 수 있고, 이는 컴퓨팅 디바이스들에 이미지 파일들을 제공하는 데에 요구되는 전체 네트워크 자원들을 감소시킬 수 있어서, 결과적으로, 대역폭 사용을 줄이고, 주어진 시간 기간 동안 디바이스가 네트워크를 통해 전송할 수 있는 데이터의 양에 대한 상한선(caps)을 두는, 컴퓨팅 디바이스들에 대한 데이터 관련 비용을 줄인다. 폐기 및 활성화 액션들을 예시하는 예시적인 프로세스들이, 하기에서 상세히 논의될 도 6 - 도 12에서 예시된다.
[0055] 도 5 - 도 14에 예시된 프로세스들의 스테이지들의 순서는 본원에서 개시된 기술들의 예들로서 제공되며, 예시된 특정 순서로 이들 프로세스들의 스테이지들을 수행하는 것으로 본 개시내용의 범위를 제한하는 것으로 의도되지 않는다. 이들 프로세스들의 스테이지들의 순서는 본 개시내용의 범위를 벗어나지 않으면서 변경될 수 있다. 게다가, 추가적인 스테이지들이 추가될 수 있고 그리고/또는 본원에서 논의되는 프로세스들 중 하나 또는 그 초과의 프로세스들로부터 하나 또는 그 초과의 스테이지들이 제거될 수 있다.
[0056] 도 5는 본원에서 논의되는 기술들에 따른, 프로비저닝을 위한 예시적인 프로세스의 흐름도이다. 도 5에 예시된 기술은 메모리(290)에 저장될 인증서들을 컴퓨팅 디바이스(120)에 프로비저닝하는 데에 사용될 수 있다. 도 5에 예시된 기술은 컴퓨팅 디바이스(120)에 의해 사용될 인증서들을 프로비저닝하기 위해 컴퓨팅 디바이스(120)의 제조자 또는 판매자에 의해 수행될 수 있다. 도 5에 예시된 기술은, 컴퓨팅 디바이스(120)를 유선 또는 무선 접속을 통해 프로비저닝 서버에 접속함(이는 프로비저닝 서버가 컴퓨팅 디바이스(120)의 1회 프로그램가능 메모리(290)에 데이터를 기록할 수 있게 함)으로써 수행될 수 있다. 프로비저닝 서버는 신뢰성있는 엔티티(160)에 의해 구현될 수 있거나, 하나 또는 그 초과의 다른 네트워크 엔티티들을 포함할 수 있다. 프로비저닝 서버는 도 5에 예시된 기술의 스테이지들을 수행하도록 구성될 수 있다. 프로비저닝 서버는 도 2에 예시된 것과 유사한 컴퓨터 하드웨어를 사용하여 구현될 수 있다. 그러나, 프로비저닝 서버는 컴퓨팅 디바이스(120)에 포함되지 않은 부가적인 소프트웨어 및 하드웨어 컴포넌트들을 포함할 수 있다. 도 5에 예시된 프로세스는, 도 4에 예시된 바와 같은, 컴퓨팅 디바이스(120)의 메모리(290) 내의 인증서의 해시들(415) 및 해시 테이블(440)뿐만 아니라, 제1 퓨즈 또는 다른 표시자(430) 및 제2 퓨즈 또는 다른 표시자(435) 중 하나 또는 그 초과의 세트를 생성하는 데에 사용될 수 있다.
[0057] 컴퓨팅 디바이스에 프로비저닝될 하나 또는 그 초과의 인증서들에 대한 인증서 정보에 액세스할 수 있다(스테이지 505). 인증서는 컴퓨팅 디바이스(120)에 프로비저닝될 하나 또는 그 초과의 최상위 인증서들, 증명 인증서들, 및/또는 다른 타입들의 인증서들을 포함할 수 있다. 최상위 인증서는 하나 또는 그 초과의 증명 인증서들 및 각각의 증명 인증서의 하나 또는 그 초과의 버전들과 연관될 수 있다. 프로비저닝 서버는 컴퓨팅 디바이스에 프로비저닝될 인증서들을 포함하는 데이터베이스에 액세스할 수 있다.
[0058] 각각의 인증서들의 해시가 생성될 수 있다(스테이지 510). 프로비저닝 서버는 컴퓨팅 디바이스에 프로비저닝될 각각의 인증서들의 해시를 생성하도록 구성될 수 있다. 각각의 인증서들의 해시는 컴퓨팅 디바이스(120)의 1회 프로그램가능 메모리(290)에 저장될 수 있다(스테이지 515). 프로비저닝 서버는, 컴퓨팅 디바이스(120)의 메모리(290)에 보다 소형의 인증서들의 체인을 제공하기 위해, 컴퓨팅 디바이스(120)의 1회 프로그램가능 메모리(290)에 인증서들이 아닌 인증서들의 해시를 저장할 수 있다. 인증서들의 체인의 풋프린트가 보다 작게 되면, 1회 프로그램가능 메모리(290) 내에서 보다 적은 공간을 소비하는데, 이는 다른 데이터를 저장하는 데에 사용될 수 있거나, 또는 컴퓨팅 디바이스(120)가, 그렇지 않으면 컴퓨팅 디바이스(120)에 의해 요구되는 인증서 정보 및 다른 데이터를 저장하는 데에 요구되었을 그러한 메모리를 덜 포함하도록 허용할 수 있다.
[0059] 1회 프로그램가능 메모리 내의 표시자들의 세트에 각각의 인증서들의 해시 값을 매핑하는 해시 테이블이 생성될 수 있다(스테이지 520). 도 4에 예시된 해시 테이블(440)과 유사한 해시 테이블은 프로비저닝 서버에 의해 컴퓨팅 디바이스(120)의 메모리(290)에 생성될 수 있다. 퓨즈들 또는 다른 표시자들의 세트는, 해시 값의 해시(425)에 의해 표현되는 인증서와 연관된, 폐기 표시자로서 기능하는 제1 퓨즈 또는 다른 표시자(430) 및 활성화 표시자로서 기능하는 제2 퓨즈 또는 다른 표시자(435) 중 적어도 하나를 나타낼 수 있다.
[0060] 하나 또는 그 초과의 인증서들과 연관된, 폐기 표시자 및 활성화 표시자 중 적어도 하나와 연관되는, 메모리 내의 적어도 하나의 표시자의 값이 설정될 수 있다(스테이지 525). 상기 논의된 바와 같이, 각각의 표시자는 컴퓨팅 디바이스(120)의 메모리(290) 내의 하나 또는 그 초과의 퓨즈들에 의해 표현될 수 있고, 표시자의 값은 표시자와 연관된 하나 또는 그 초과의 퓨즈들을 끊음으로써 변경불가능하게 설정될 수 있다. 프로비저닝 서버는 인증서와 연관된 활성화 표시자 퓨즈를 끊음으로써 하나 또는 그 초과의 인증서들을 활성화시키도록 구성될 수 있다. 일부 구현들에서, 메모리(290)는 퓨즈들을 포함하지 않을 수도 있고, 하나 또는 그 초과의 표시자들은 메모리(290)를 포함하는 메모리의 타입에 적합한 기술을 사용하여 설정될 수 있다.
[0061] 일부 구현들에서, 프로비저닝 서버는 한 번에 하나 초과의 최상위 인증서를 활성화시킬 수 있다. 다른 구현들에서, 프로비저닝 서버는 컴퓨팅 디바이스(120) 상에서 단일의 최상위 인증서 만을 활성화시키도록 구성될 수 있다. 예컨대, 컴퓨팅 디바이스(120)는 한번에 단지 하나의 최상위 인증서 만이 활성이도록 구성될 수 있고, 인증서 관리 유닛(364)은 ROT(Root of Trust) 전송 피처(transfer feature)를 구현하도록 구성될 수 있는데, 여기에서, 인증서 관리 유닛(364)은 현재 활성인 최상위 인증서가 폐기될 수 있는 경우에만 다른 최상위 인증서를 활성화시킬 것이다. 프로비저닝 서버는 또한, 컴퓨팅 디바이스(120) 상에서 하나 또는 그 초과의 속성 인증서(attribution certificate)들을 활성화시키도록 구성될 수 있다. 프로비저닝 서버는 속성 인증서의 하나 또는 그 초과의 버전들을 활성화시키도록 구성될 수 있고, 이러한 속성 인증서의 다수의 버전들은 컴퓨팅 디바이스(120)의 메모리(290)에 프로비저닝된 인증서들에 존재한다. 프로비저닝 서버는 컴퓨팅 디바이스(120)의 메모리(290)에 프로비저닝된 하나 또는 그 초과의 인증서들을 폐기시키도록 구성될 수 있다. 프로비저닝 서버는, 컴퓨팅 디바이스(120) 및/또는 다른 컴퓨팅 디바이스들에 프로비저닝될 인증서들의 관리자가, 어떤 인증서들이 프로비저닝될지 뿐만 아니라, 각각의 인증서에 대한 활성화 및/또는 폐기 설정들을 구성할 수 있게 하는 사용자 인터페이스를 제공하도록 구성될 수 있다.
[0062] 도 13은 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스 상에 인증서들을 프로비저닝하거나 디바이스 상에 이미 있는 인증서들을 관리하는 데에 사용될 수 있는 이미지 파일을 생성하기 위한 예시적인 프로세스의 흐름도이다. 도 13에 예시된 기술은, 프로비저닝 서버를 사용하여, 메모리(290)에 저장될 인증서들을 컴퓨팅 디바이스(120)에 프로비저닝하는 데에 사용될 수 있다. 도 13에 예시된 기술은 컴퓨팅 디바이스(120)에 의해 사용될 인증서들을 프로비저닝하기 위해 컴퓨팅 디바이스(120)의 제조자 또는 판매자에 의해 수행될 수 있다. 도 13에 예시된 기술은, 컴퓨팅 디바이스(120) 상에 인증서들을 프로비저닝하는 데에 사용될 수 있는 이미지 파일을 생성함으로써 수행될 수 있다. 프로비저닝 서버는 신뢰성있는 엔티티(160)에 의해 구현될 수 있거나, 하나 또는 그 초과의 다른 네트워크 엔티티들을 포함할 수 있다. 프로비저닝 서버는 도 2에 예시된 것과 유사한 컴퓨터 하드웨어를 사용하여 구현될 수 있다. 그러나, 프로비저닝 서버는 컴퓨팅 디바이스(120)에 포함되지 않은 부가적인 소프트웨어 및 하드웨어 컴포넌트들을 포함할 수 있다.
[0063] 인증서 액션이 수행될 하나 또는 그 초과의 인증서들에 액세스할 수 있다(스테이지 1305). 인증서 액션은, 컴퓨팅 디바이스(120)에 인증서들이 프로비저닝되는 프로비저닝 액션일 수 있거나, 또는 컴퓨팅 디바이스(120) 상에 이미 프로비저닝된 인증서들과 연관된 활성화 액션 또는 폐기 액션일 수 있다.
[0064] 인증서들에 대한 인증서 액션 정보에 액세스할 수 있다(스테이지 1310). 인증서는 컴퓨팅 디바이스(120)에 프로비저닝될 하나 또는 그 초과의 최상위 인증서들, 증명 인증서들, 및/또는 다른 타입들의 인증서들을 포함할 수 있다. 최상위 인증서는 하나 또는 그 초과의 증명 인증서들 및 각각의 증명 인증서의 하나 또는 그 초과의 버전들과 연관될 수 있다. 프로비저닝 서버는 컴퓨팅 디바이스에 프로비저닝될 인증서들을 포함하는 데이터베이스에 액세스할 수 있다.
[0065] 각각의 인증서들에 대한 해시 값이 생성될 수 있다(스테이지 1315). 프로비저닝 서버는 컴퓨팅 디바이스에 프로비저닝될 각각의 인증서들의 해시를 생성하도록 구성될 수 있다. 프로비저닝 서버는 이미지 파일에 인증서들의 해시를 생성하는 데에 사용되는 해시 함수에 대한 식별자를 포함하도록 구성될 수 있고, 그에 따라, 컴퓨팅 디바이스는, 컴퓨팅 디바이스(120)에 프로비저닝되는 인증서들로 작업할 때 동일한 해시 함수를 활용할 수 있다.
[0066] 인증서들의 해시 값들 및 인증서 액션 정보를 포함하는 이미지 파일이 생성될 수 있다(스테이지 1320). 인증서들의 해시 값들 및 인증서들과 연관된 임의의 인증서 액션들은 컴퓨팅 디바이스(120)에 제공될 이미지 파일에 포함될 수 있다. 인증서들 자체가 아닌 인증서들의 해시를 포함시키게 되면, 이미지 파일의 크기를 상당히 감소시킬 수 있고, 이는 컴퓨팅 디바이스(120)에 이미지 파일을 전송하기 위한 네트워크 대역폭 및 이러한 대역폭을 활용하는 것과 연관된 비용을 감소시킬 수 있다.
[0067] 이미지 파일은, 활성인 서명 인증서에 의해 서명될 수 있다(스테이지 1325). 폐기 액션들 및/또는 활성화 액션들에 있어서, 서명 인증서는, 컴퓨팅 디바이스(120) 상에서 활성화되었고 폐기되지 않은 인증서일 수 있다. 서명 인증서가 인증서 액션의 대상이 될 수 있다. 예컨대, 서명 인증서는, 이미지 파일이 컴퓨팅 디바이스(120)에서 수신될 때 인증서가 컴퓨팅 디바이스(120) 상에서 활성화되어 폐기되지 않은 채로 유지되는 한, 이미지 파일에 포함된 인증서 액션시에 폐기될 수 있다. 프로비저닝 액션들의 경우, 인증서들이 컴퓨팅 디바이스(120) 상에서 아직 활성화되지 않았으며, 서명 인증서는, 그 서명 인증서가 활성이고 유효함을 보장하기 위해, 컴퓨팅 디바이스(120)의 인증서 관리 유닛(364)이 신뢰성있는 엔티티(160) 또는 다른 네트워크 엔티티에 의해 검증할 수 있는 인증서일 수 있다.
[0068] 그런 다음, 서명된 이미지 파일이 컴퓨팅 디바이스(120)에 제공될 수 있다(스테이지 1330). 그때, 프로비저닝 서버는 서명된 이미지 파일을 네트워크(110) 및/또는 다른 네트워크들을 통해 컴퓨팅 디바이스(120)에 전송할 수 있다. 프로비저닝 서버는, 서명된 이미지 파일이 프로비저닝 서버로부터의 또는 다른 네트워크 엔티티로부터의 다운로드에 대해 이용가능해지도록 할 수 있다.
[0069] 도 14는 본원에서 논의되는 기술들에 따른, 프로비저닝을 위한 예시적인 프로세스의 흐름도이다. 도 14에 예시된 프로세스는 도 1 - 도 3에 예시된 컴퓨팅 디바이스(120)와 같은 컴퓨팅 디바이스로 구현될 수 있고, 달리 명시되지 않는 한, 컴퓨팅 디바이스의 소프트웨어 업데이트 유닛(362) 및 인증서 관리 유닛(364)이 도 14의 프로세스의 스테이지들을 구현하기 위한 수단을 제공한다. 도 14에 예시된 프로세스는, 이를테면 도 13에 예시된 프로세스에 의해, 프로비저닝 서버에 의해 생성된 이미지 파일을 사용하여 컴퓨팅 디바이스(120)를 프로비저닝하는 데에 사용될 수 있다.
[0070] 모바일 디바이스에 프로비저닝될 인증서들 및 인증서 액션 정보를 포함하는 이미지 파일이 컴퓨팅 디바이스(120)에서 수신될 수 있다(스테이지 1405). 이미지 파일은, 그 이미지 파일이 컴퓨팅 디바이스(120) 상에 인증서들을 프로비저닝하기 위한 것임을 나타내는 프로비저닝 표시자를 포함할 수 있다. 소프트웨어 업데이트 유닛(362)은 메모리(290) 내의 표시자를 판독하고, 인증서들이 컴퓨팅 디바이스(120)에 이미 프로비저닝되었다면 프로세스를 중지시키도록 구성될 수 있다. 소프트웨어 업데이트 유닛(362)은 도 14에 예시된 프로비저닝 프로세스의 완료시 이러한 표시자를 설정하도록 구성될 수 있거나, 또는 도 5에 예시된 프로세스를 완료한 후에 프로비저닝 서버가 이러한 표시자를 설정할 수 있다. 프로비저닝 서버는 이미지 파일을 네트워크(110) 및/또는 다른 네트워크 접속을 통해 컴퓨팅 디바이스(120)에 전송할 수 있다. 컴퓨팅 디바이스(120)는 또한, 프로비저닝 서버에 의해 생성된 이미지 파일을 프로비저닝 서버 및/또는 다른 네트워크 엔티티, 이를테면 신뢰성있는 엔티티(160)로부터 다운로드하도록 구성될 수 있다. 이미지 파일은, 컴퓨팅 디바이스(120)에 프로비저닝될 하나 또는 그 초과의 인증서들, 및 이미지 파일에 포함된 하나 또는 그 초과의 인증서들에 대해 수행될 액션 또는 액션들을 식별하는, 이미지 파일에 포함된 하나 또는 그 초과의 인증서 액션 표시자들을 포함할 수 있다. 소프트웨어 업데이트 유닛(362)은, 이미지 파일에 포함된 인증서들을 컴퓨팅 디바이스(120)에 프로비저닝하기 전에, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하도록 구성될 수 있다. 소프트웨어 업데이트 유닛(362)은, 인증서 관리 유닛(364)에게 프로비저닝 프로세스를 진행하기 전에 신뢰성있는 엔티티(160)에 의해 서명 인증서를 검증할 것을 요청하도록 구성될 수 있다. 소프트웨어 업데이트 유닛(362)은 서명되지 않은 이미지 파일들을 거부하거나, 서명되지 않은 이미지 파일들이 메모리(290) 내의, 인증서들과 연관된 활성화 및 폐기 비트들에 대한 업데이트들을 하는 것을 방지하도록 구성될 수 있다.
[0071] 프로비저닝될 인증서들의 해시는 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 기록될 수 있다(스테이지 1410). 이미지 파일에 포함된 인증서들은 이미 프로비저닝 서버에 의해 해싱되었을 수 있으며, 인증서들의 해시는 이미지 파일에 포함되어 있을 수 있다. 인증서 관리 유닛(364)은, 해시들이 이미지 파일에 제공된 것에 대한 응답으로, 해시 파일에 포함된 인증서들의 해시들을 메모리(290)에 카피하도록 구성될 수 있다. 인증서 관리 유닛(364)은, 프로비저닝 서버가 각각의 인증서들의 해시를 제공한 것이 아니라, 인증서들을 포함한 이미지 파일을 제공한 경우, 이미지 파일에 포함된 각각의 인증서들의 해시를 생성하도록 구성될 수 있다. 그런 다음, 인증서 관리 유닛(364)은 인증서들의 해시를 메모리(290)에 기록할 수 있다.
[0072] 1회 프로그램가능 메모리 내의 표시자들의 세트에 각각의 인증서들의 해시 값을 매핑하는 해시 테이블이 생성될 수 있다(스테이지 1415). 도 4에 예시된 해시 테이블(440)과 유사한 해시 테이블은 인증서 관리 유닛(364)에 의해 컴퓨팅 디바이스(120)의 메모리(290)에 생성될 수 있다. 퓨즈들 또는 다른 표시자들의 세트는, 해시 값의 해시(425)에 의해 표현되는 인증서와 연관된, 폐기 표시자로서 기능하는 제1 퓨즈 또는 다른 표시자(430) 및 활성화 표시자로서 기능하는 제2 퓨즈 또는 다른 표시자(435) 중 적어도 하나를 포함할 수 있다. 상기 논의된 바와 같이, 메모리(290)가 퓨즈들을 포함하는 1회 프로그램가능 메모리의 타입인 경우, 제1 퓨즈 또는 다른 표시자(430) 및 제2 퓨즈 또는 다른 표시자(435)는 하나 또는 그 초과의 퓨즈들로서 각각 구현될 수 있다. 제1 퓨즈 또는 다른 표시자(430) 및 제2 퓨즈 또는 다른 표시자(435)는, 사용되고 있는 1회 프로그램가능 메모리의 타입에 대해 적절한, 제1 퓨즈 또는 다른 표시자(430) 및 제2 퓨즈 또는 다른 표시자(435)와 연관된 값들을 변경불가능하게(irrevocably) 설정하는 데에 사용될 수 있는, 메모리(290) 내의 안티퓨즈 또는 다른 타입의 표시자에 의해 각각 구현될 수 있다.
[0073] 하나 또는 그 초과의 인증서들 중의 각각의 인증서에 대한 폐기 표시자 및 활성화 표시자 중 적어도 하나와 연관되는, 메모리 내의 적어도 하나의 표시자의 값은, 하나 또는 그 초과의 인증서 액션들에 기반하여 설정될 수 있다(스테이지 1420). 상기 논의된 바와 같이, 각각의 표시자는 컴퓨팅 디바이스(120)의 메모리(290) 내의 하나 또는 그 초과의 퓨즈들 또는 다른 표시자들에 의해 표현될 수 있고, 표시자의 값은 표시자와 연관된 하나 또는 그 초과의 퓨즈들을 끊음으로써 또는 그렇지 않으면 1회 프로그램가능 메모리 내의 값을 변경불가능하게 설정함으로써, 변경불가능하게 설정될 수 있다. 메모리(290)를 구현하기 위해 다른 타입들의 1회 프로그램가능 메모리가 사용된 경우에는, 다른 타입들의 액션들을 사용하여 폐기 표시자 및/또는 활성화 표시자를 설정할 수 있다. 일부 구현들에서, 메모리(290)는 퓨즈들을 포함하지 않을 수도 있고, 하나 또는 그 초과의 표시자들은 메모리(290)를 포함하는 메모리의 타입에 적합한 기술을 사용하여 설정될 수 있다.
[0074] 인증서 관리 유닛(364)은, 인증서와 연관된 폐기 표시자로서 기능하는 제1 퓨즈 및/또는 활성화 표시자로서 기능하는 제2 퓨즈 또는 다른 표시자(435)의 값을 설정함으로써, 하나 또는 그 초과의 인증서들을 폐기 및/또는 활성화시키도록 구성될 수 있다. 인증서 관리 유닛(364)은 이미지 파일에 포함된 인증서 액션 표시자들에 기반하여 인증서들을 활성화 및/또는 폐기시키도록 구성될 수 있다. 인증서 액션 표시자는 또한, 이미지 파일에 포함된 인증서 액션 표시자와 연관된 인증서의 해시를 생성하는 데에 사용된 해싱 알고리즘(hashing algorithm)을 식별하는 표시자를 포함할 수 있고, 그에 따라, 인증서 관리 유닛(364)은 인증서들의 해시(415) 및 해시 테이블(440)을 생성할 때 정확한 해싱 알고리즘을 활용할 수 있게 된다.
[0075] 도 6은 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 예시적인 프로세스의 흐름도이다. 도 6에 예시된 프로세스는 도 1 - 도 3에 예시된 컴퓨팅 디바이스(120)와 같은 컴퓨팅 디바이스로 구현될 수 있고, 달리 명시되지 않는 한, 컴퓨팅 디바이스의 소프트웨어 업데이트 유닛(362) 및 인증서 관리 유닛(364)이 도 6의 프로세스의 스테이지들을 구현하기 위한 수단을 제공한다.
[0076] 인증서 액션이 수행될 인증서의 해시를 포함하는 이미지 파일이 모바일 디바이스에서 수신될 수 있다(스테이지 605). 인증서 액션은 폐기 액션 또는 활성화 액션일 수 있고, 이미지 파일은 서명 인증서에 의해 서명되었을 수 있다. 이미지 파일은 소프트웨어 업데이트들, 구성 파일 업데이트들, 및/또는 폐기들 및/또는 활성화 정보에 관한 인증서 액션 정보를 포함할 수 있다. 컴퓨팅 디바이스의 소프트웨어 업데이트 유닛(362)은 유선 또는 무선 네트워크 접속을 통해 컴퓨팅 디바이스(120)에서 이미지 파일을 수신하도록 구성될 수 있다. 상기 논의된 바와 같이, 이미지 파일은 신뢰성있는 엔티티(160) 또는 다른 네트워크 엔티티에 의해 제공될 수 있다. 일부 구현들에서, 이미지 파일은 또한, 유선 또는 무선 접속을 통해 컴퓨팅 디바이스(120)에 접속된 다른 컴퓨팅 디바이스로부터 액세스될 수 있다.
[0077] 서명 인증서는, 이미지 파일이 신뢰성있는 소스로부터 비롯되었음을 나타내기 위해 이미지 파일에 서명하는 데에 사용된 최상위 인증서 또는 증명 인증서이다. 서명 인증서의 유효성은, 컴퓨팅 디바이스(120)의 소프트웨어 또는 구성 파일들에 대한 임의의 업데이트들을 수행하기 전에 소프트웨어 업데이트 유닛(362)에 의해 체크될 수 있다. 소프트웨어 업데이트 유닛(362)은 또한, 컴퓨팅 디바이스(120)의 메모리(290) 내의 하나 또는 그 초과의 인증서들에 대한 임의의 인증서 액션들을 수행하기 전에 서명 인증서의 유효성을 체크할 수 있다.
[0078] 컴퓨팅 디바이스(120)의 메모리(290)에 저장된 인증서들은 서명된 이미지 파일에 인증서 액션 표시자를 포함시킴으로써 관리될 수 있다. 표시자는, 컴퓨팅 디바이스(120)의 1회 프로그램가능 메모리(290)에 저장될 수 있는 하나 또는 그 초과의 인증서들에 대해 수행될 인증서 액션을 식별할 수 있다. 인증서 액션은 인증서 액션이 수행될 인증서의 카피와 연관될 수 있다. 대안적으로, 인증서 액션은, 인증서 액션이 수행될 인증서의 해시와 연관될 수 있다. 인증서의 해시는, 컴퓨팅 디바이스(120)에 제공될 이미지 파일의 크기를 줄이기 위해 이미지 파일에 포함될 수 있다. 인증서 액션 표시자는 또한, 이미지 파일에 포함된 인증서 액션 표시자와 연관된 인증서의 해시를 생성하는 데에 사용된 해싱 알고리즘을 식별하는 표시자를 포함할 수 있고, 그에 따라, 인증서 관리 유닛(364)은 메모리(290)에 저장된 인증서들의 해시들과 인증서의 해시를 비교할 때 정확한 해싱 알고리즘을 활용할 수 있게 된다.
[0079] 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 적어도 하나의 해시 값과 서명 인증서의 해시 값을 비교함으로써, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부의 결정이 이루어질 수 있다(스테이지 610). 도 4와 관련하여 상기 논의된 바와 같이, 컴퓨팅 디바이스(120)가 프로비저닝되거나 초기에 구성될 때, 컴퓨팅 디바이스(120)에 의해 사용될 수 있는 최상위 인증서들 및/또는 증명 인증서들의 해시가 결정되어 컴퓨팅 디바이스(120)의 1회 프로그램가능 메모리(290)에 저장됨으로써, 컴퓨팅 디바이스(120)의 메모리(290)에 저장된 인증서들의 체인의 풋프린트를 감소시킬 수 있다.
[0080] 이미지 파일이 유효한 인증서에 의해 서명되었고 그리고 인증서 액션이 수행될 인증서가 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내에서 발견된 것에 대한 응답으로, 1회 프로그램가능 메모리 내의 인증서와 연관된 표시자의 값을 설정함으로써, 인증서에 대해 인증서 액션이 수행될 수 있다(스테이지 615). 표시자는, 1회 프로그램가능 메모리 내의 인증서와 연관된 적어도 하나의 퓨즈를 끊음으로써, 또는 사용되고 있는 1회 프로그램가능 메모리의 타입에 대해 적절한, 메모리(290) 내의 값을 변경불가능하게 저장하는 데에 사용될 수 있는, 메모리(290) 내의 다른 타입의 표시자를 설정함으로써, 설정될 수 있다. 인증서 관리 유닛(364)은, 이미지 파일이 유효한 인증서에 의해 서명되었고 그리고 액션이 수행될 인증서가 모바일 디바이스의 메모리(290) 내의 인증서 관리 유닛(364)에 의해 발견된 것에 대한 응답으로, 이미지 파일에 표시된 인증서 액션을 수행하도록 구성될 수 있다. 인증서 관리 유닛(364)은, 특정 최상위 인증서 또는 증명 인증서를, 그 인증서가 이전에 폐기되지 않은 경우에만 활성화시키도록 구성될 수 있다. 인증서는, 퓨즈를 끊거나, 또는 인증서가 폐기되었음을 나타내는, 인증서와 연관된, 메모리(290) 내의 표시자를 설정함으로써, 변경불가능하게 폐기될 수 있다. 인증서 관리 유닛(364)은, 최상위 인증서를 폐기시키기 전에, 활성인 임의의 다른 최상위 인증서들이 존재하는지의 여부를 결정하도록 구성될 수 있다. 인증서 관리 유닛(364)은, 컴퓨팅 디바이스(120)의 메모리(290)에 저장되어 있는, 활성이며 폐기되지 않은 적어도 하나의 다른 최상위 인증서가 존재하는 경우에만, 최상위 인증서를 폐기시키도록 구성될 수 있다.
[0081] 도 7은 본원에서 논의되는 기술들에 따른, 인증서가 컴퓨팅 디바이스 상에서 활성인지의 여부를 결정하기 위한 예시적인 프로세스의 흐름도이다. 도 7에 예시된 프로세스는 도 1 - 도 3에 예시된 컴퓨팅 디바이스(120)와 같은 컴퓨팅 디바이스로 구현될 수 있고, 달리 명시되지 않는 한, 컴퓨팅 디바이스의 소프트웨어 업데이트 유닛(362) 및 인증서 관리 유닛(364)이 도 7의 프로세스의 스테이지들을 구현하기 위한 수단을 제공한다. 도 7에 예시된 프로세스는 도 6에 예시된 프로세스의 스테이지(610)를 구현하는 데에 사용될 수 있다.
[0082] 도 7에 예시된 프로세스는, 인증서 관리 유닛(364)에 의해, 이미지 파일에 서명하는 데에 사용된 서명 인증서가 컴퓨팅 디바이스(120)의 메모리(290)에 저장된 인증서 정보에 따른 활성 인증서인지의 여부를 결정하는 데에 사용될 수 있다. 이미지 파일에 서명하는 데에 사용된 인증서가 활성이 아니거나 폐기된 경우, 인증서 관리 유닛(364)은, 메모리(290) 내의 인증서들을 폐기시키거나 활성화시키는 데에 사용될 수 있는, 파일에 포함된 임의의 인증서 액션 표시자들을 수행하지 않도록 구성될 수 있다. 게다가, 인증서 관리 유닛(364)은 서명 인증서가 활성 인증서였는지 또는 폐기되었는지의 여부를 소프트웨어 업데이트 유닛(362)에 통지하도록 구성될 수 있다. 소프트웨어 업데이트 유닛(362)은, 서명 인증서가 폐기되었거나 활성이 아닌 것에 대한 응답으로, 이미지 파일의 콘텐츠에 기반하여 소프트웨어 업데이트들을 설치하지 않고 그리고/또는 구성 파일들을 업데이트하지 않도록 구성될 수 있다.
[0083] 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 서명 인증서의 해시 값과 매칭되는 해시 값이 식별될 수 있다(스테이지 705). 도 4와 관련하여 상기 논의된 바와 같이, 인증서들의 체인의 풋프린트를 상당히 감소시키기 위해, 인증서들 자체가 아닌, 최상위 인증서들 및/또는 증명 인증서들 각각의 해시가 메모리(290) 내에 저장될 수 있다. 이미지 파일이 서명 인증서의 해시가 아닌 서명 인증서 자체를 포함하는 것에 대한 응답으로, 서명 인증서의 해시 값이 인증서 관리 유닛(364)에 의해 결정될 수 있다. 서명 인증서의 해시는 메모리(290)에 저장된 각각의 인증서들의 해시와 비교되어, 인증서가 메모리(290)에 포함된 인증서들 중 하나인지의 여부를 결정할 수 있다. 서명 인증서의 해시가 메모리(290) 내의 임의의 인증서들의 해시와 매칭하지 않는 경우, 인증서 관리 유닛(364)은 서명 인증서가 컴퓨팅 디바이스(120)에 저장된 활성 인증서들 중 하나가 아니라고 결정하도록 구성될 수 있으며, 프로세스는 스테이지(710)로 진행하지 않고 종료될 수 있다. 그러나, 인증서 관리 유닛(364)이 서명 인증서의 해시 값이 컴퓨팅 디바이스(120)의 메모리(290)에 저장된 인증서들 중 하나의 해시 값과 매칭한다고 결정하는 경우, 프로세스는 스테이지(710)로 진행되어, 매칭되는 해시 값과 연관된 인증서가 활성인지의 여부의 결정을 함으로써, 서명 인증서가 컴퓨팅 디바이스(120)의 메모리(290) 내의 활성 인증서임을 나타낸다.
[0084] 식별된 해시 값과 연관된 인증서가 활성인지의 여부의 결정이 이루어질 수 있다(스테이지 710). 도 4와 관련하여 상기 논의된 바와 같이, 해시 테이블은 컴퓨팅 디바이스(120)의 메모리(290)에 저장될 수 있다. 인증서 관리 유닛(364)은 1회 프로그램가능 메모리(290) 내의 퓨즈들 또는 다른 표시자들의 값들을 체크하여, 식별된 해시 값과 연관된 인증서가 활성이고 폐기되지 않았는지의 여부를 결정하도록 구성될 수 있어서, 동일한 해시 값을 갖는 서명 인증서가 활성이고 폐기되지 않은 인증서임을 나타낸다. 이러한 조건들이 충족되는 경우, 서명 인증서는 유효하며, 인증서 관리 유닛(364)은 이미지 파일에 포함된 인증서 액션을 진행하거나 이미지 파일에서 특정되는 다른 액션을 수행할 수 있다. 서명 인증서가 메모리 내의 활성 인증서인지의 여부를 결정하기 위한 예시적인 프로세스는 하기에서 논의되는 도 8에 예시된다.
[0085] 도 8은 본원에서 논의되는 기술들에 따른, 인증서가 컴퓨팅 디바이스(120) 상에서 활성인지의 여부를 결정하기 위한 예시적인 프로세스의 흐름도이다. 도 8에 예시된 프로세스는 도 1 - 도 3에 예시된 컴퓨팅 디바이스(120)와 같은 컴퓨팅 디바이스로 구현될 수 있고, 달리 명시되지 않는 한, 컴퓨팅 디바이스의 소프트웨어 업데이트 유닛(362) 및 인증서 관리 유닛(364)이 도 8의 프로세스의 스테이지들을 구현하기 위한 수단을 제공한다. 도 8에 예시된 프로세스는 도 7에 예시된 프로세스의 스테이지(710)를 구현하는 데에 사용될 수 있다. 도 8에 예시된 프로세스는, 인증서 관리 유닛(364)에 의해, 특정 인증서와 연관된, 1회 프로그램가능 메모리(290) 내의 퓨즈들을 체크함으로써, 그러한 인증서가 활성으로서 마킹되어 있고 폐기되지 않았는지의 여부를 결정하기 위해 사용될 수 있다.
[0086] 식별된 해시 값의 해시 값이 결정될 수 있다(스테이지 805). 스테이지(805)에서 식별되는 인증서의 해시 값의 해시 값은 인증서 관리 유닛(364)에 의해 결정될 수 있다. 해시 값의 해시 값은, 메모리(290)에서 인증서와 연관된 퓨즈들을 검색하는 데에 사용될 수 있다.
[0087] 식별된 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제2 퓨즈 또는 제2 표시자가, 인증서가 활성화되었음을 나타내는 값으로 설정되었는지의 여부에 대한 결정이 이루어질 수 있다(스테이지 810). 도 4와 관련하여 상기 논의된 바와 같이, 해시 테이블은 컴퓨팅 디바이스(120)의 메모리(290)에 저장될 수 있다. 해시 테이블은 메모리(290) 내의 퓨즈들의 세트에 각각의 인증서들의 해시를 매핑할 수 있다. 인증서의 해시가 해시 테이블에서 검색되어, 인증서가 활성화되었는지 그리고/또는 폐기되었는지의 여부를 나타내는 데에 사용될 수 있는, 메모리(290) 내의 퓨즈들의 세트의 위치를 식별하는 정보를 검색(retrieve)할 수 있다. 퓨즈들 또는 다른 표시자들의 세트는 인증서가 활성인지의 여부를 나타내는 제2 퓨즈 또는 제2 표시자, 및 인증서가 폐기되었는지의 여부를 나타내는 제1 퓨즈 또는 제1 표시자를 포함할 수 있다. 인증서 관리 유닛(364)은 이러한 퓨즈들 또는 다른 표시자들의 값들을 판독하여, 서명 인증서가 폐기되지 않았고 활성화되어 있는 지의 여부를 결정할 수 있다. 이러한 조건들이 충족되는 경우, 서명 인증서는 유효하며, 인증서 관리 유닛(364)은 이미지 파일에 포함된 인증서 액션을 진행하거나 이미지 파일에서 특정되는 다른 액션을 수행할 수 있다. 인증서 관리 유닛(364)은, 연관된 제2 퓨즈 또는 제2 표시자가 인증서가 활성임을 나타내는지의 여부를 결정할 수 있다. 제2 퓨즈가 끊어지지 않았거나 제2 표시자가 설정되지 않은 경우, 인증서는 활성화되지 않았으며, 인증서 관리 유닛(364)이 인증서가 활성이 아닌 것으로 결정하여 프로세스가 중단될 수 있다. 인증서가 활성으로 마킹되는 경우, 프로세스는 스테이지(815)로 계속될 수 있다.
[0088] 식별된 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 퓨즈 또는 제1 표시자가, 인증서가 폐기되었음을 나타내는 값으로 설정되었는지의 여부에 대한 결정이 이루어질 수 있다(스테이지 815). 인증서 관리 유닛(364)은 인증서와 연관된 제1 퓨즈 또는 제1 표시자가 끊어졌는지(이는 인증서가 변경불가능하게 폐기되었음을 나타냄)의 여부를 결정할 수 있다. 인증서 관리 유닛(364)은, 제2 퓨즈 또는 다른 표시자가 설정되어 있고 제1 퓨즈 또는 다른 표시자가 설정되지 않은 것에 대한 응답으로, 인증서가 활성이고 폐기되지 않았다고 결정하도록 구성될 수 있다. 인증서 관리 유닛(364)은, 제2 퓨즈 또는 제2 표시자가 설정된 것과 관계없이 제1 퓨즈 또는 다른 표시자가 설정된 경우, 인증서는 활성이 아니고 폐기되었다고 결정하도록 구성될 수 있다. 이전의 활성 인증서는, 메모리(290)를 구현하는 데에 사용되는 메모리의 타입에 따라, 인증서와 연관된 제1 표시자를 설정하거나 제1 퓨즈를 끊음으로써, 폐기될 수 있다.
[0089] 도 9는 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스 상의 인증서를 폐기시키기 위한 예시적인 프로세스의 흐름도이다. 도 9에 예시된 프로세스는 도 1 - 도 3에 예시된 컴퓨팅 디바이스(120)와 같은 컴퓨팅 디바이스로 구현될 수 있고, 달리 명시되지 않는 한, 컴퓨팅 디바이스의 소프트웨어 업데이트 유닛(362) 및 인증서 관리 유닛(364)이 도 9의 프로세스의 스테이지들을 구현하기 위한 수단을 제공한다. 도 9에 예시된 프로세스는 도 6에 예시된 프로세스의 스테이지(615)를 구현하는 데에 사용될 수 있으며, 여기서 인증서 액션은 폐기 액션이다.
[0090] 컴퓨팅 디바이스의 1회 프로그램가능 메모리(290)에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 폐기 액션이 수행될 인증서의 해시 값과 매칭되는 해시 값이 식별될 수 있다(스테이지 905). 소프트웨어 업데이트 유닛(362)은 메모리(290) 내에 저장될 수 있는 인증서의 폐기에 관한 인증서 액션 정보를 포함하는 이미지 파일을 수신할 수 있다. 인증서 액션 정보는 폐기될 인증서의 해시 값을 포함할 수 있다. 인증서 액션 정보는 또한 전체 인증서에 대한 참조(reference) 또는 폐기될 전체 인증서를 포함할 수 있고, 인증서 관리 유닛(364)은 인증서에 해시 함수를 적용하여 인증서의 해시 값을 생성하도록 구성될 수 있다. 도 4와 관련하여 상기 논의된 바와 같이, 컴퓨팅 디바이스(120)가 사용할 수 있는 복수의 인증서들의 해시 값이, 컴퓨팅 디바이스(120)의 메모리(290)에 저장될 수 있다. 해시 값들이 메모리(290)에 저장되는, 저장된 인증서들은 최상위 인증서들, 증명 인증서들 또는 이들의 결합을 포함할 수 있다. 인증서 관리 유닛(364)은, 인증서 액션 정보에 따라 폐기될 인증서의 해시 값을 메모리(290) 내의 각각의 인증서들의 해시와 비교하여, 폐기될 인증서의 해시 값과 매칭되는, 메모리 내의 인증서의 해시 값을 식별하도록 구성될 수 있다. 폐기될 인증서의 해시와 메모리(290) 내의 인증서들의 해시 간에 매칭되는 것이 발견되지 않는 경우, 폐기시키고자 했던 인증서가 메모리(290)에서 발견되지 않았기 때문에 프로세스는 스테이지(905)로 종료될 수 있다.
[0091] 식별된 해시 값의 해시 값이 결정될 수 있다(스테이지 910). 스테이지(905)에서 식별된 인증서의 해시 값의 해시 값은, 인증서가 활성화되었는지 그리고/또는 폐기되었는지의 여부를 나타내는 데에 사용될 수 있는, 메모리(290) 내의 퓨즈들의 세트의 위치를 식별하는 정보를 검색하는 데에 사용될 수 있다. 도 4를 다시 참조하면, 해시 테이블은 컴퓨팅 디바이스(120)의 메모리(290)에 저장될 수 있다. 해시 테이블은 메모리(290) 내의 퓨즈들의 세트에 각각의 인증서들의 해시를 매핑할 수 있다. 인증서의 해시가 해시 테이블에서 검색되어, 인증서가 활성화되었는지 그리고/또는 폐기되었는지의 여부를 나타내는 데에 사용될 수 있는, 메모리(290) 내의 퓨즈들의 세트의 위치를 식별하는 정보를 검색할 수 있다. 퓨즈들의 세트는 인증서가 활성인지의 여부를 나타내는 제2 퓨즈, 및 인증서가 폐기되었는지의 여부를 나타내는 제1 퓨즈를 포함할 수 있다. 인증서 관리 유닛(364)은 이러한 퓨즈들의 값들을 판독하여, 인증서가 폐기되지 않았고 활성화되어 있는 지의 여부를 결정할 수 있다. 인증서가 폐기되었음을 나타내는 제1 퓨즈가 이미 끊어진 경우, 인증서는 이미 폐기되었으며, 프로세스는 스테이지(910)로 종료될 수 있다. 그렇지 않으면, 프로세스는 스테이지(915)로 계속될 수 있다.
[0092] 인증서의 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 퓨즈 또는 제1 표시자의 값은, 인증서를 변경불가능하게 폐기시키도록 설정될 수 있다(스테이지 915). 인증서 관리 유닛(364)은, 인증서를 변경불가능하게 폐기시키기 위해, 메모리(290) 내의 폐기될 인증서와 연관된 제1 표시자의 값을 설정하거나 제1 퓨즈를 끊도록 구성될 수 있는데, 왜냐하면 메모리(290)는 1회 프로그램가능 메모리이기 때문이다. 제1 퓨즈 또는 다른 표시자에 의해 표현되는 비트가 설정되면, 인증서는 컴퓨팅 디바이스(120) 상에서 폐기되며, 활성화된 상태(activated) 또는 폐기되지 않은 상태(unrevoked)가 될 수 없다.
[0093] 도 10은 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스 상의 최상위 인증서를 폐기시키기 위한 예시적인 프로세스의 흐름도이다. 도 10에 예시된 프로세스는 도 1 - 도 3에 예시된 컴퓨팅 디바이스(120)와 같은 컴퓨팅 디바이스로 구현될 수 있고, 달리 명시되지 않는 한, 컴퓨팅 디바이스의 소프트웨어 업데이트 유닛(362) 및 인증서 관리 유닛(364)이 도 10의 프로세스의 스테이지들을 구현하기 위한 수단을 제공한다. 도 10에 예시된 프로세스는 도 9에 예시된 프로세스의 선택적인 추가적 스테이지를 구현하는 데에 사용될 수 있으며, 여기서 인증서 액션은 폐기 액션이다. 도 10에 예시된 프로세스는, 인증서와 연관된 제1 퓨즈가 끊어지는 스테이지(915) 이전에, 도 9의 스테이지들 중 임의의 스테이지 이전 또는 이후에 수행될 수 있고, 폐기될 인증서는 최상위 인증서이다. 도 10에 예시된 프로세스는, 최상위 인증서에 대한 폐기가 발행된 컴퓨팅 디바이스(120) 상에 적어도 하나의 유효한 다른 최상위 인증서가 남아있도록 보장하기 위해 사용될 수 있다.
[0094] 1회 프로그램가능 메모리 내의 제1 퓨즈 또는 제1 표시자의 값을 설정하기 전에, 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 연관되는 임의의 다른 최상위 인증서들이 활성이고 폐기되지 않았는지의 여부에 대한 결정이 이루어질 수 있다(스테이지 1005). 인증서 관리 유닛(364)은, 폐기될 인증서를 영구적으로 폐기시키기 전에, 컴퓨팅 디바이스(120) 상에 활성이고 폐기되지 않은 상태의 적어도 하나의 다른 최상위 인증서가 존재하는지의 여부를 결정하도록 구성될 수 있다. 인증서 관리 유닛(364)은, 메모리(290) 내의 각각의 인증서들과 연관된 제1 퓨즈 또는 제1 표시자 및 제2 퓨즈 또는 제2 표시자를 체크하여, 다른 최상위 인증서들 중 임의의 최상위 인증서가 활성이고 폐기되지 않은 상태인지의 여부를 결정하도록 구성될 수 있다. 예컨대, 메모리(290)가 퓨즈들을 사용하여 구현되는 경우, 다른 최상위 인증서와 연관된 제2 퓨즈는 인증서가 활성임을 나타내도록 끊어져야 하고, 다른 최상위 인증서와 연관된 제1 퓨즈는 끊어지면 안되는데, 이는 그러한 다른 최상위 인증서가 폐기되지 않았음을 나타낸다.
[0095] 도 11은 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스 상의 인증서를 활성화시키기 위한 예시적인 프로세스의 흐름도이다. 도 11에 예시된 프로세스는 도 1 - 도 3에 예시된 컴퓨팅 디바이스(120)와 같은 컴퓨팅 디바이스로 구현될 수 있고, 달리 명시되지 않는 한, 컴퓨팅 디바이스의 소프트웨어 업데이트 유닛(362) 및 인증서 관리 유닛(364)이 도 11의 프로세스의 스테이지들을 구현하기 위한 수단을 제공한다. 도 11에 예시된 프로세스는 도 6에 예시된 프로세스의 스테이지(615)를 구현하는 데에 사용될 수 있으며, 여기서 인증서 액션은 활성화 액션이다.
[0096] 컴퓨팅 디바이스의 1회 프로그램가능 메모리(290)에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 활성화 액션이 수행될 인증서의 해시 값과 매칭되는 해시 값이 식별될 수 있다(스테이지 1105). 소프트웨어 업데이트 유닛(362)은 메모리(290) 내에 저장될 수 있는 인증서의 활성화에 관한 인증서 액션 정보를 포함하는 이미지 파일을 수신할 수 있다. 인증서 액션 정보는 활성화될 인증서의 해시 값을 포함할 수 있다. 인증서 액션 정보는 또한 전체 인증서에 대한 참조 또는 활성화될 전체 인증서를 포함할 수 있으며, 그리고 인증서 관리 유닛(364)은 인증서의 해시가 이미지 파일에 제공되지 않은 것에 대한 응답으로, 인증서에 해시 함수를 적용하여 인증서의 해시 값을 생성하도록 구성될 수 있다. 도 4와 관련하여 상기 논의된 바와 같이, 컴퓨팅 디바이스(120)가 사용할 수 있는, 복수의 인증서들의 해시 값이, 컴퓨팅 디바이스(120)의 메모리(290)에 저장될 수 있다. 해시 값들이 메모리(290)에 저장되는, 저장된 인증서들은 최상위 인증서들, 증명 인증서들 또는 이들의 결합을 포함할 수 있다. 인증서 관리 유닛(364)은, 인증서 액션 정보에 따라 활성화될 인증서의 해시 값을 메모리(290) 내의 각각의 인증서들의 해시와 비교하여, 활성화될 인증서의 해시 값과 매칭되는, 메모리 내의 인증서의 해시 값을 식별하도록 구성될 수 있다. 활성화될 인증서의 해시와 메모리(290) 내의 인증서들의 해시 간에 매칭되는 것이 발견되지 않는 경우, 활성화시키고자 했던 인증서가 메모리(290)에서 발견되지 않았기 때문에 프로세스는 스테이지(1105)로 종료될 수 있다.
[0097] 식별된 해시 값의 해시 값이 결정될 수 있다(스테이지 1110). 스테이지(1105)에서 식별된 인증서의 해시 값의 해시 값은, 인증서가 활성화되었는지 그리고/또는 폐기되었는지의 여부를 나타내는 데에 사용될 수 있는, 메모리(290) 내의 퓨즈들의 세트의 위치를 식별하는 정보를 검색하는 데에 사용될 수 있다. 도 4를 다시 참조하면, 해시 테이블은 컴퓨팅 디바이스(120)의 메모리(290)에 저장될 수 있다. 해시 테이블은 메모리(290) 내의 퓨즈들의 세트에 각각의 인증서들의 해시를 매핑할 수 있다. 인증서의 해시가 해시 테이블에서 검색되어, 인증서가 활성화되었는지 그리고/또는 폐기되었는지의 여부를 나타내는 데에 사용될 수 있는, 메모리(290) 내의 퓨즈들의 세트의 위치를 식별하는 정보를 검색할 수 있다. 퓨즈들의 세트는 인증서가 활성인지의 여부를 나타내는 제2 퓨즈, 및 인증서가 폐기되었는지의 여부를 나타내는 제1 퓨즈를 포함할 수 있다. 인증서 관리 유닛(364)은 이러한 퓨즈들의 값들을 판독하여, 인증서가 폐기되지 않았고 활성화되어 있는 지의 여부를 결정할 수 있다. 인증서가 이미 활성화되었음을 나타내는 제2 퓨즈가 끊어진 경우, 인증서는 이미 활성화되었으며, 프로세스는 스테이지(1110)로 종료될 수 있다. 그렇지 않으면, 프로세스는 스테이지(1115)로 계속될 수 있다.
[0098] 인증서의 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제2 표시자의 값은, 인증서를 활성화시키도록 설정될 수 있다(스테이지 1115). 메모리(290)가 퓨즈들을 사용하여 구현되는 경우, 인증서 관리 유닛(364)은 인증서를 활성화시키기 위해, 메모리(290) 내의 활성화될 인증서와 연관된 제2 퓨즈를 끊도록 구성될 수 있다. 제2 퓨즈에 의해 표현되는 비트가 설정되면, 인증서가 활성화되지만, 메모리(290) 내의 인증서와 연관된 제1 퓨즈를 끊음으로써 인증서는 여전히 폐기될 수 있다. 인증서 관리 유닛(362)은, 메모리가 퓨즈들을 사용하지 않는 경우, 메모리(290)를 구현하는 데에 사용되는 1회 프로그램가능 메모리의 타입에 적절한 기술을 사용하여 제2 표시자를 설정하도록 구성될 수 있다.
[0099] 도 12는 본원에서 논의되는 기술들에 따른, 컴퓨팅 디바이스 상의 인증서를 활성화시키기 위한 예시적인 프로세스의 흐름도이다. 도 12에 예시된 프로세스는 도 11에 예시된 프로세스의 선택적인 추가적 스테이지를 구현하는 데에 사용될 수 있으며, 여기서 인증서 액션은 활성화 액션이다. 도 12에 예시된 프로세스는, 인증서와 연관된 제2 퓨즈가 끊어지는 스테이지(1115) 이전에, 도 12의 스테이지들 중 임의의 스테이지 이전 또는 이후에 수행될 수 있다. 도 12에 예시된 프로세스는, 이미 폐기된 인증서가 메모리(290)에서 활성화된 것으로 마킹되는 것을 방지하기 위해 사용될 수 있다.
[0100] 인증서의 해시 값의 해시 값과 연관된, 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 표시자가, 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부의 결정이 이루어질 수 있다(스테이지 1205). 메모리(290)가 퓨즈들을 포함하는 경우, 제1 퓨즈가 끊어진 경우, 인증서는 변경불가능하게 폐기되었으며 활성화될 수 없다. 인증서 관리 유닛(364)은, 인증서가 이미 폐기된 것에 대한 응답으로, 인증서의 활성화를 정지시키도록 구성될 수 있다. 도 12의 프로세스가 도 11의 프로세스의 일부로서 또는 도 11의 프로세스와 함께 수행되는 경우, 인증서 관리 유닛(364)은, 활성화될 인증서가 폐기되었다는 결정에 대한 응답으로, 도 11에 예시된 프로세스를 정지시키도록 구성될 수 있다. 인증서 관리 유닛(362)은, 메모리가 퓨즈들을 사용하지 않는 경우, 메모리(290)를 구현하는 데에 사용되는 1회 프로그램가능 메모리의 타입에 적절한 기술을 사용하여 제1 표시자가 설정되었는지의 여부를 결정하도록 구성될 수 있다.
[0101] 본원에서 설명된 방법들은 애플리케이션에 따라 다양한 수단들로 구현될 수 있다. 예컨대, 이러한 방법들은 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 임의의 결합으로 구현될 수 있다. 하드웨어 구현의 경우, 처리 유닛들은 하나 또는 그 초과의 주문형 집적 회로(ASIC)들, 디지털 신호 프로세서(DSP)들, 디지털 신호 처리 디바이스(DSPD: digital signal processing device)들, 프로그래밍 가능 로직 디바이스(PLD: programmable logic device)들, 필드 프로그래밍 가능 게이트 어레이(FPGA: field programmable gate array)들, 프로세서들, 제어기들, 마이크로컨트롤러들, 마이크로프로세서들, 전자 디바이스들, 본원에서 설명된 기능들을 수행하도록 설계된 다른 전자 유닛들, 또는 이들의 결합 내에 구현될 수 있다.
[0102] 펌웨어 및/또는 소프트웨어 구현의 경우, 방법들은 본원에서 설명된 기능들을 수행하는 모듈들(예컨대, 프로시저들, 함수들 등)로 구현될 수 있다. 명령들을 유형적으로 구현하는 임의의 기계 판독 가능 매체가 본원에서 설명된 방법들을 구현하는 데에 사용될 수 있다. 예컨대, 소프트웨어 코드들은 메모리에 저장되어 프로세서 유닛에 의해 실행될 수 있다. 메모리는 프로세서 유닛 내에 또는 프로세서 유닛 외부에 구현될 수 있다. 본원에서 사용된 바와 같이, "메모리"라는 용어는 임의의 타입의 장기, 단기, 휘발성, 비휘발성 또는 다른 메모리를 의미하며, 메모리의 임의의 특정 타입이나 메모리들의 개수, 또는 매체들의 타입으로 한정되는 것은 아니다. 유형 매체들은 랜덤 액세스 메모리, 자기 저장소, 광 저장 매체들 등과 같은 기계 판독 가능 매체들의 하나 또는 그 초과의 물리적 물건들을 포함한다.
[0103] 펌웨어 및/또는 소프트웨어로 구현된다면, 이 기능들은 컴퓨터 판독 가능 매체 상에 하나 또는 그 초과의 명령들 또는 코드로서 저장될 수 있다. 예들은 데이터 구조로 인코딩된 컴퓨터 판독 가능 매체 및 컴퓨터 프로그램으로 인코딩된 컴퓨터 판독 가능 매체를 포함한다. 컴퓨터 판독 가능 매체는 물리적 컴퓨터 저장 매체를 포함한다. 저장 매체는 컴퓨터에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 한정이 아닌 예시로, 이러한 컴퓨터 판독 가능 매체는 RAM, ROM, EEPROM, CD-ROM이나 다른 광 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 명령들이나 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있으며 컴퓨터에 의해 액세스 가능한 임의의 다른 매체를 포함할 수 있고, 본원에서 사용된 것과 같은 디스크(disk 및 disc)는 콤팩트 디스크(CD: compact disc), 레이저 디스크(laser disc), 광 디스크(optical disc), 디지털 다기능 디스크(DVD: digital versatile disc) 및 블루레이 디스크(Blu-ray disc)를 포함하며, 여기서 디스크(disk)들은 보통 데이터를 자기적으로 재생하는 한편, 디스크(disc)들은 데이터를 레이저들에 의해 광학적으로 재생한다. 상기의 것들의 결합들이 또한 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다. 이러한 매체들은 또한 기계 판독 가능할 수 있는 비-일시적 매체들의 예들을 제공하며, 여기서 컴퓨터들은 이러한 비-일시적 매체들로부터 판독할 수 있는 기계의 일례이다.
[0104] 본원에서 논의한 일반 원리들은 본 개시내용 또는 청구항들의 기술적 사상 또는 범위를 벗어나지 않으면서 다른 구현들에 적용될 수 있다.

Claims (30)

  1. 컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 방법으로서,
    상기 컴퓨팅 디바이스에서, 인증서 액션(certificate action)이 수행될 제1 인증서의 해시 값을 포함하는 이미지 파일을 수신하는 단계 ― 상기 인증서 액션은 폐기(revocation) 액션 또는 활성화(activation) 액션이고, 상기 이미지 파일은 서명 인증서(signing certificate)에 의해 서명됨 ―;
    상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리(one-time programmable memory)에 해시 테이블로서 저장된, 인증서들과 연관된 복수의 해시 값들과 상기 서명 인증서의 해시 값을 비교함으로써, 상기 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하는 단계 ― 상기 서명 인증서의 해시 값을 비교하는 것은, 상기 해시 테이블 내의 상기 서명 인증서의 해시 값에 기반하여 상기 서명 인증서가 유효한지의 여부를 나타내는 표시자 비트의 어드레스를 획득하는 것을 더 포함함 ― ; 및
    상기 이미지 파일이 유효한 인증서에 의해 서명되었고 그리고 상기 제1 인증서의 해시 값이 상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리의 해시 테이블에서 발견된 것에 대한 응답으로, 상기 1회 프로그램가능 메모리 내의 상기 제1 인증서와 연관된 표시자 비트의 값을 설정함으로써, 상기 제1 인증서에 대해 인증서 액션을 수행하는 단계를 포함하는,
    컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 방법.
  2. 제1 항에 있어서,
    상기 서명 인증서 및 상기 제1 인증서는 동일한 인증서인,
    컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 방법.
  3. 제1 항에 있어서,
    상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 서명 인증서의 해시 값을 비교함으로써, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하는 단계는,
    상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 상기 서명 인증서의 해시 값과 매칭(match)되는 해시 값을 식별하는 단계; 및
    식별된 해시 값과 연관된 인증서가 활성(active)인지의 여부를 결정하는 단계를 더 포함하는,
    컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 방법.
  4. 제3 항에 있어서,
    상기 식별된 해시 값과 연관된 인증서가 활성인지의 여부를 결정하는 단계는,
    상기 식별된 해시 값의 해시 값을 결정하는 단계; 및
    상기 식별된 해시 값의 해시 값과 연관된, 상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제2 표시자 비트가, 상기 인증서가 활성임을 나타내는 값으로 설정되어 있는 지의 여부를 결정하는 단계를 더 포함하는,
    컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 방법.
  5. 제4 항에 있어서,
    상기 식별된 해시 값의 해시 값과 연관된, 상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 표시자 비트가, 상기 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부를 결정하는 단계를 더 포함하는,
    컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 방법.
  6. 제1 항에 있어서,
    상기 인증서 액션은 폐기 액션이며, 그리고 상기 제1 인증서에 대해 인증서 액션을 수행하는 단계는,
    상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 상기 제1 인증서의 해시 값과 매칭되는 해시 값을 식별하는 단계;
    식별된 해시 값의 해시 값을 결정하는 단계; 및
    상기 식별된 해시 값의 해시 값과 연관된, 상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 표시자 비트의 값을, 상기 제1 인증서를 변경불가능하게(irrevocably) 폐기시키도록 설정하는 단계를 더 포함하는,
    컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 방법.
  7. 제6 항에 있어서,
    상기 1회 프로그램가능 메모리 내의 상기 제1 표시자 비트의 값을 설정하기 전에, 상기 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 연관되는 임의의 다른 최상위 인증서(root certificate)들이 활성이고 폐기되지 않았는지의 여부를 결정하는 단계를 더 포함하는,
    컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 방법.
  8. 제1 항에 있어서,
    상기 인증서 액션은 활성화 액션이며, 그리고 상기 제1 인증서에 대해 인증서 액션을 수행하는 단계는,
    상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 상기 제1 인증서의 해시 값과 매칭되는 해시 값을 식별하는 단계;
    상기 제1 인증서의 해시 값의 해시 값을 결정하는 단계; 및
    상기 제1 인증서의 해시 값의 해시 값과 연관된, 상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제2 표시자 비트의 값을, 상기 제1 인증서를 활성화시키도록 설정하는 단계를 더 포함하는,
    컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 방법.
  9. 제8 항에 있어서,
    상기 제1 인증서의 해시 값의 해시 값과 연관된, 상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 표시자 비트가, 상기 제1 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부를 결정함으로써,
    상기 제1 인증서가 폐기되었는지의 여부를 결정하는 단계를 더 포함하는,
    컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 방법.
  10. 장치로서,
    인증서 액션이 수행될 제1 인증서의 해시 값을 포함하는 이미지 파일을 수신하기 위한 수단 ― 상기 인증서 액션은 폐기 액션 또는 활성화 액션이고, 상기 이미지 파일은 서명 인증서에 의해 서명됨 ―;
    상기 장치의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 상기 서명 인증서의 해시 값을 비교함으로써, 상기 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하기 위한 수단 ― 제2 인증서의 해시 값을 비교하는 것은, 해시 테이블 내의 상기 제2 인증서의 해시 값에 기반하여 상기 제2 인증서가 유효한지의 여부를 나타내는 표시자 비트의 어드레스를 획득하는 것을 더 포함함 ― ; 및
    상기 이미지 파일이 유효한 인증서에 의해 서명되었고 그리고 상기 제1 인증서의 해시 값이 상기 장치의 1회 프로그램가능 메모리의 해시 테이블에서 발견된 것에 대한 응답으로, 상기 1회 프로그램가능 메모리 내의 상기 제1 인증서와 연관된 표시자 비트의 값을 설정함으로써, 상기 제1 인증서에 대해 인증서 액션을 수행하기 위한 수단을 포함하는,
    장치.
  11. 제10 항에 있어서,
    상기 서명 인증서 및 상기 제1 인증서는 동일한 인증서인,
    장치.
  12. 제10 항에 있어서,
    상기 장치의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 서명 인증서의 해시 값을 비교함으로써, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하기 위한 수단은,
    상기 장치의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 상기 서명 인증서의 해시 값과 매칭되는 해시 값을 식별하기 위한 수단; 및
    식별된 해시 값과 연관된 인증서가 활성인지의 여부를 결정하기 위한 수단을 더 포함하는,
    장치.
  13. 제12 항에 있어서,
    상기 식별된 해시 값과 연관된 인증서가 활성인지의 여부를 결정하기 위한 수단은,
    상기 식별된 해시 값의 해시 값을 결정하기 위한 수단; 및
    상기 식별된 해시 값의 해시 값과 연관된, 상기 장치의 1회 프로그램가능 메모리 내의 제2 표시자 비트가, 상기 인증서가 활성임을 나타내는 값으로 설정되어 있는 지의 여부를 결정하기 위한 수단을 더 포함하는,
    장치.
  14. 제13 항에 있어서,
    상기 식별된 해시 값의 해시 값과 연관된, 상기 장치의 1회 프로그램가능 메모리 내의 제1 표시자 비트가, 상기 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부를 결정하기 위한 수단을 더 포함하는,
    장치.
  15. 제10 항에 있어서,
    상기 인증서 액션은 폐기 액션이며, 그리고 상기 제1 인증서에 대해 인증서 액션을 수행하기 위한 수단은,
    상기 장치의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 상기 제1 인증서의 해시 값과 매칭되는 해시 값을 식별하기 위한 수단;
    상기 제1 인증서의 해시 값의 해시 값을 결정하기 위한 수단; 및
    상기 제1 인증서의 해시 값의 해시 값과 연관된, 상기 장치의 1회 프로그램가능 메모리 내의 제1 표시자 비트의 값을, 상기 제1 인증서를 변경불가능하게 폐기시키도록 설정하기 위한 수단을 더 포함하는,
    장치.
  16. 제15 항에 있어서,
    상기 1회 프로그램가능 메모리 내의 상기 제1 표시자 비트의 값을 설정하기 전에, 상기 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 연관되는 임의의 다른 최상위 인증서들이 활성이고 폐기되지 않았는지의 여부를 결정하기 위한 수단을 더 포함하는,
    장치.
  17. 제10 항에 있어서,
    상기 인증서 액션은 활성화 액션이며, 그리고 상기 제1 인증서에 대해 인증서 액션을 수행하기 위한 수단은,
    상기 장치의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 상기 제1 인증서의 해시 값과 매칭되는 해시 값을 식별하기 위한 수단;
    상기 제1 인증서의 해시 값의 해시 값을 결정하기 위한 수단; 및
    상기 제1 인증서의 해시 값의 해시 값과 연관된, 상기 장치의 1회 프로그램가능 메모리 내의 제2 표시자 비트를, 상기 제1 인증서를 활성화시키도록 설정하기 위한 수단을 더 포함하는,
    장치.
  18. 제17 항에 있어서,
    상기 제1 인증서가 폐기되었는지의 여부를 결정하기 위한 수단을 더 포함하고,
    상기 제1 인증서가 폐기되었는지의 여부를 결정하기 위한 수단은,
    상기 제1 인증서의 해시 값의 해시 값과 연관된, 상기 장치의 1회 프로그램가능 메모리 내의 제1 표시자 비트가, 상기 제1 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부를 결정하기 위한 수단을 포함하는,
    장치.
  19. 컴퓨팅 디바이스로서,
    1회 프로그램가능 메모리; 및
    상기 1회 프로그램가능 메모리에 결합된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는:
    인증서 액션이 수행될 제1 인증서의 해시 값을 포함하는 이미지 파일을 수신하고 ― 상기 인증서 액션은 폐기 액션 또는 활성화 액션이고, 상기 이미지 파일은 서명 인증서에 의해 서명됨 ―;
    상기 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 상기 서명 인증서의 해시 값을 비교함으로써, 상기 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하고 ― 제2 인증서의 해시 값을 비교하는 것은, 해시 테이블 내의 상기 제2 인증서의 해시 값에 기반하여 상기 제2 인증서가 유효한지의 여부를 나타내는 표시자 비트의 어드레스를 획득하는 것을 더 포함함 ― ; 및
    상기 이미지 파일이 유효한 인증서에 의해 서명되었고 그리고 상기 제1 인증서의 해시 값이 상기 1회 프로그램가능 메모리의 해시 테이블에서 발견된 것에 대한 응답으로, 상기 1회 프로그램가능 메모리 내의 상기 제1 인증서와 연관된 표시자 비트의 값을 설정함으로써, 상기 제1 인증서에 대해 인증서 액션을 수행하도록 구성되는,
    컴퓨팅 디바이스.
  20. 제19 항에 있어서,
    상기 서명 인증서 및 상기 제1 인증서는 동일한 인증서인,
    컴퓨팅 디바이스.
  21. 제19 항에 있어서,
    상기 인증서 액션은 폐기 액션이며, 그리고 상기 제1 인증서에 대해 인증서 액션을 수행하도록 구성된 상기 적어도 하나의 프로세서는:
    상기 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 상기 제1 인증서의 해시 값과 매칭되는 해시 값을 식별하고;
    상기 제1 인증서의 해시 값의 해시 값을 결정하고; 그리고
    상기 제1 인증서의 해시 값의 해시 값과 연관된, 상기 1회 프로그램가능 메모리 내의 제1 표시자 비트의 값을, 상기 제1 인증서를 변경불가능하게 폐기시키도록 설정하도록 추가로 구성되는,
    컴퓨팅 디바이스.
  22. 제21 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 1회 프로그램가능 메모리 내의 상기 제1 표시자 비트의 값을 설정하기 전에, 상기 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 연관되는 임의의 다른 최상위 인증서들이 활성이고 폐기되지 않았는지의 여부를 결정하도록 추가로 구성되는,
    컴퓨팅 디바이스.
  23. 제19 항에 있어서,
    상기 인증서 액션은 활성화 액션이며, 그리고 상기 제1 인증서에 대해 인증서 액션을 수행하도록 구성된 상기 적어도 하나의 프로세서는;
    상기 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 상기 제1 인증서의 해시 값과 매칭되는 해시 값을 식별하고;
    상기 제1 인증서의 해시 값의 해시 값을 결정하고; 그리고
    상기 제1 인증서의 해시 값의 해시 값과 연관된, 상기 1회 프로그램가능 메모리 내의 제2 표시자 비트의 값을, 상기 제1 인증서를 활성화시키도록 설정하도록 추가로 구성되는,
    컴퓨팅 디바이스.
  24. 제23 항에 있어서,
    상기 적어도 하나의 프로세서는 상기 제1 인증서가 폐기되었는지의 여부를 결정하도록 추가로 구성되고,
    상기 적어도 하나의 프로세서는:
    상기 제1 인증서의 해시 값의 해시 값과 연관된, 상기 1회 프로그램가능 메모리 내의 제1 표시자 비트가, 상기 제1 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부를 결정하도록 구성되는,
    컴퓨팅 디바이스.
  25. 컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 컴퓨터-판독가능 명령들이 저장되어 있는 비-일시적 컴퓨터-판독가능 저장 매체로서,
    상기 컴퓨터-판독가능 명령들은 상기 컴퓨팅 디바이스로 하여금:
    인증서 액션이 수행될 제1 인증서의 해시 값을 포함하는 이미지 파일을 수신하게 하고 ― 상기 인증서 액션은 폐기 액션 또는 활성화 액션이고, 상기 이미지 파일은 서명 인증서에 의해 서명됨 ―;
    상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 상기 서명 인증서의 해시 값을 비교함으로써, 상기 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하게 하고 ― 제2 인증서의 해시 값을 비교하는 것은, 해시 테이블 내의 상기 제2 인증서의 해시 값에 기반하여 상기 제2 인증서가 유효한지의 여부를 나타내는 표시자 비트의 어드레스를 획득하는 것을 더 포함함 ― ; 및
    상기 이미지 파일이 유효한 인증서에 의해 서명되었고 그리고 상기 제1 인증서의 해시 값이 상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리에서 발견된 것에 대한 응답으로, 상기 1회 프로그램가능 메모리 내의 상기 제1 인증서와 연관된 표시자 비트의 값을 설정함으로써, 상기 제1 인증서에 대해 인증서 액션을 수행하게 하도록 구성된 명령들을 포함하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  26. 제25 항에 있어서,
    상기 서명 인증서 및 상기 제1 인증서는 동일한 인증서인,
    비-일시적 컴퓨터-판독가능 저장 매체.
  27. 제25 항에 있어서,
    상기 컴퓨팅 디바이스로 하여금, 상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들과 서명 인증서의 해시 값을 비교함으로써, 이미지 파일이 유효한 인증서에 의해 서명되었는지의 여부를 결정하게 하도록 구성된 명령들은,
    상기 컴퓨팅 디바이스로 하여금:
    상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 상기 서명 인증서의 해시 값과 매칭되는 해시 값을 식별하게 하고; 그리고
    식별된 해시 값과 연관된 인증서가 활성인지의 여부를 결정하게 하도록 구성된 명령들을 더 포함하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  28. 제25 항에 있어서,
    상기 인증서 액션은 폐기 액션이며, 그리고
    상기 컴퓨팅 디바이스로 하여금 상기 제1 인증서에 대해 인증서 액션을 수행하게 하도록 구성된 명령들은,
    상기 컴퓨팅 디바이스로 하여금:
    상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 상기 제1 인증서의 해시 값과 매칭되는 해시 값을 식별하게 하고;
    상기 제1 인증서의 해시 값의 해시 값을 결정하게 하고; 그리고
    상기 제1 인증서의 해시 값의 해시 값과 연관된, 상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 표시자 비트의 값을, 상기 제1 인증서를 변경불가능하게 폐기시키도록 설정하게 하도록 구성된 명령을 더 포함하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  29. 제25 항에 있어서,
    상기 인증서 액션은 활성화 액션이며, 그리고
    상기 컴퓨팅 디바이스로 하여금 상기 제1 인증서에 대해 인증서 액션을 수행하게 하도록 구성된 명령들은,
    상기 컴퓨팅 디바이스로 하여금:
    상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리에 저장된 인증서들과 연관된 복수의 해시 값들 중에서 상기 제1 인증서의 해시 값과 매칭되는 해시 값을 식별하게 하고;
    상기 제1 인증서의 해시 값의 해시 값을 결정하게 하고; 그리고
    상기 제1 인증서의 해시 값의 해시 값과 연관된, 상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제2 표시자 비트의 값을, 상기 제1 인증서를 활성화시키도록 설정하게 하도록 구성된 명령들을 더 포함하는,
    비-일시적 컴퓨터-판독가능 저장 매체.
  30. 제29 항에 있어서,
    상기 컴퓨팅 디바이스로 하여금 상기 제1 인증서가 폐기되었는지의 여부를 결정하게 하도록 구성된 명령들을 더 포함하고,
    상기 컴퓨팅 디바이스는:
    상기 제1 인증서의 해시 값의 해시 값과 연관된, 상기 컴퓨팅 디바이스의 1회 프로그램가능 메모리 내의 제1 표시자 비트가, 상기 제1 인증서가 폐기되지 않았음을 나타내는 값으로 설정되어 있는 지의 여부를 결정하도록 구성되는,
    비-일시적 컴퓨터-판독가능 저장 매체.
KR1020187011631A 2015-09-25 2016-08-11 컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 기술들 KR20180059856A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/865,448 2015-09-25
US14/865,448 US20170093586A1 (en) 2015-09-25 2015-09-25 Techniques for managing certificates on a computing device
PCT/US2016/046586 WO2017052832A1 (en) 2015-09-25 2016-08-11 Techniques for managing certificates on a computing device

Publications (1)

Publication Number Publication Date
KR20180059856A true KR20180059856A (ko) 2018-06-05

Family

ID=56787702

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187011631A KR20180059856A (ko) 2015-09-25 2016-08-11 컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 기술들

Country Status (7)

Country Link
US (1) US20170093586A1 (ko)
EP (1) EP3353945A1 (ko)
JP (1) JP2018533282A (ko)
KR (1) KR20180059856A (ko)
CN (1) CN108028760A (ko)
BR (1) BR112018006102A2 (ko)
WO (1) WO2017052832A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022059914A1 (ko) * 2020-09-18 2022-03-24 삼성전자주식회사 전자 장치 및 그 제어 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10181956B2 (en) * 2015-12-21 2019-01-15 Hewlett-Packard Development Company, L.P. Key revocation
US10819696B2 (en) * 2017-07-13 2020-10-27 Microsoft Technology Licensing, Llc Key attestation statement generation providing device anonymity
CN110059475A (zh) * 2018-01-18 2019-07-26 伊姆西Ip控股有限责任公司 用于数据保护的方法、设备和计算机程序产品
US12010247B2 (en) * 2019-05-14 2024-06-11 Volkswagen Aktiengesellschaft Implementation of a butterfly key expansion scheme
US11102243B1 (en) * 2019-06-26 2021-08-24 Amazon Technologies, Inc. Resource address resolution based on resource ownership changes to block communications with computing resources
KR20210017083A (ko) * 2019-08-06 2021-02-17 삼성전자주식회사 퓨즈된 키에 기반하여 증명 인증서를 생성하는 전자 장치 및 방법
US11269637B2 (en) * 2020-07-23 2022-03-08 Hewlett Packard Enterprise Development Lp Validating machine-readable instructions using an iterative validation process
CN112491859B (zh) * 2020-11-20 2023-06-20 上海连尚网络科技有限公司 域名证书检测方法、装置、电子设备和计算机可读介质
WO2023230248A1 (en) * 2022-05-27 2023-11-30 Toposware, Inc. Decentralized interoperable cross subnet architecture

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000072149A1 (en) * 1999-05-25 2000-11-30 Motorola Inc. Pre-verification of applications in mobile computing
EP1429224A1 (en) * 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware run-time authentication
US7395428B2 (en) * 2003-07-01 2008-07-01 Microsoft Corporation Delegating certificate validation
EP2053531B1 (en) * 2007-10-25 2014-07-30 BlackBerry Limited Authentication certificate management for access to a wireless communication device
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
US8621591B2 (en) * 2010-10-19 2013-12-31 Symantec Corporation Software signing certificate reputation model

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022059914A1 (ko) * 2020-09-18 2022-03-24 삼성전자주식회사 전자 장치 및 그 제어 방법

Also Published As

Publication number Publication date
CN108028760A (zh) 2018-05-11
EP3353945A1 (en) 2018-08-01
BR112018006102A2 (pt) 2018-10-23
JP2018533282A (ja) 2018-11-08
US20170093586A1 (en) 2017-03-30
WO2017052832A1 (en) 2017-03-30

Similar Documents

Publication Publication Date Title
KR20180059856A (ko) 컴퓨팅 디바이스 상의 인증서들을 관리하기 위한 기술들
JP6894059B2 (ja) ビーコンメッセージの伝送
US11943615B2 (en) Method and apparatus for discussing digital certificate by ESIM terminal and server
JP6694952B2 (ja) 検証された位置情報の生成および発行
CN110678770B (zh) 定位信息验证
KR102284954B1 (ko) 무선 통신 시스템에서 단말에 프로파일을 다운로드 하는 방법 및 장치
US9065908B2 (en) Method and system for ensuring user and/or device anonymity for location based services (LBS)
WO2015165325A1 (zh) 终端安全认证方法、装置及系统
US9100192B2 (en) Apparatus and method for provisioning an endorsement key certificate for a firmware trusted platform module
EP3648487B1 (en) Method for updating firmware and related apparatus
KR20180108910A (ko) 보안 통신 채널을 설정하기 위한 방법들 및 장치
WO2018166109A1 (zh) 一种终端检测方法及终端
KR20160144991A (ko) 보조 디바이스를 사용한 서비스 승인
US9967290B2 (en) Systems and methods for automating client-side discovery of public keys of external contacts that are secured by DANE using DNSSEC
CN110688648B (zh) 安全芯片固件更新方法及装置
US9032186B2 (en) Utilization of a microcode interpreter built in to a processor
BR112013018940A2 (pt) método e aparelho para gerenciar identidade para terminal móvel
EP3511853A1 (en) Security authentication method, integrated circuit and system
US20240259781A1 (en) Method and apparatus for recovering profile in case of device change failure
US20160196134A1 (en) Secure storage synchronization
CN112512048A (zh) 移动网络接入系统、方法、存储介质及电子设备
EP3884449A1 (en) Method and system for a network device to obtain a trusted state representation of the state of the distributed ledger technology network
US20210021990A1 (en) Detection and communication of locking configuration information modification
US10599828B2 (en) Single key authentication method
US11972032B2 (en) Authentication of an original equipment manufacturer entity