KR20210119585A - 집적회로들에서의 보안 피쳐 및 키 관리 - Google Patents

집적회로들에서의 보안 피쳐 및 키 관리 Download PDF

Info

Publication number
KR20210119585A
KR20210119585A KR1020217030967A KR20217030967A KR20210119585A KR 20210119585 A KR20210119585 A KR 20210119585A KR 1020217030967 A KR1020217030967 A KR 1020217030967A KR 20217030967 A KR20217030967 A KR 20217030967A KR 20210119585 A KR20210119585 A KR 20210119585A
Authority
KR
South Korea
Prior art keywords
authorizer
core
root
enabled
delegating
Prior art date
Application number
KR1020217030967A
Other languages
English (en)
Other versions
KR102378157B1 (ko
Inventor
폴 칼 코처
벤자민 체-밍 준
앤드류 존 레이저슨
Original Assignee
크라이프토그라피 리서치, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 크라이프토그라피 리서치, 인코포레이티드 filed Critical 크라이프토그라피 리서치, 인코포레이티드
Priority to KR1020227008926A priority Critical patent/KR102470524B1/ko
Publication of KR20210119585A publication Critical patent/KR20210119585A/ko
Application granted granted Critical
Publication of KR102378157B1 publication Critical patent/KR102378157B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect

Abstract

집적회로들에서 보안 피쳐 및 키 관리를 제공하는 메커니즘이 설명된다. 예시적인 집적회로는, 비밀 키를 저장하는 보안 메모리, 및 보안 메모리에 커플링되어, 디지털 서명된 지령을 수신하고, 비밀 키를 이용하여 그 지령과 연관된 서명을 검증하고, 그리고 그 지령을 이용하여 집적회로의 동작을 구성하는 보안 관리기 코어를 포함한다.

Description

집적회로들에서의 보안 피쳐 및 키 관리{SECURE FEATURE AND KEY MANAGEMENT IN INTEGRATED CIRCUITS}
현재, 시스템온칩 (system-on-a-chip) 판매자들은 동일한 칩의 많은 상이한 변종들을 판매할 수도 있으며, 여기서 각각의 변종은 특정의 애플리케이션용으로 구성된다. 칩 구성은 종종 하나 이상의 퓨즈들을 끊음으로써 또는 아니면 칩 상의 일회 프로그래밍가능 메모리를 프로그래밍함으로써 일어난다. 이 칩 구성의 유형은 일반적으로 1-방향 프로세스이며, 되돌려질 수 없다. 구성 프로세스의 영속성을 피하는 하나의 방법은 (예컨대, 최종 구성 설정을 발생하기 위해 다수의 비트들을 함께 배타적-OR 연산함으로써) 이전 설정을 수정하기 위해 결합될 수 있는 일회 프로그래밍가능 메모리 내에 여분 또는 예비 비트들을 추가하는 것이다. 이 리던던시의 유형은 제한된 유연성을 가지며, 그러나, 칩 상에 추가적인 공간 (real estate) 을 차지하는 추가적인 퓨즈들을 필요로 한다. 게다가, 설정 이면에 다수의 퓨즈들을 갖는 것은 칩들 추가 비용을 구성하는 다수의 프로그래밍 스텝들을 수행해야 하는 필요성을 제거하지 않는다. 이와 유사하게, 오늘날 칩 판매자들 (또는, 그들의 계약자들) 에 의해 구성들이 계속해서 수행되며, 그들은 따라서 다수의 퓨즈 구성들을 가진 칩들의 물품목록들을 보유한다.
동일한 칩의 상이한 변종들의 비축은 종종 비효율적이다. 예를 들어, 특정의 애플리케이션용으로 구성되는 비축된 칩들은, 그들이 과잉 생산되었거나 또는 고객들의 칩 구성 요구들이 변하면, 잠재적으로 낭비된다. 게다가, 일부 경우, 그 구성된 칩들의 물품목록이 그 요구를 만족시키기에 불충분하면, 주문 실행이 지연될 수 있다. 더욱이, 현재 칩 판매자에 의한 구성의 모델은 칩 판매자들과 하향스트림 고객들 사이에 실현가능한 비즈니스 관계들 및 매출원들의 범위를 제한할 수 있다. 예를 들어, 현재의 모델은 그들의 초기 판매 이후 칩들의 재구성으로부터 장래의 수입을 발생하는 능력을 제한할 수도 있다. 하향스트림 고객이 그 구성된 피쳐 (feature) 세트를 넘어서 피쳐들을 획득하기를 원하면, 현재의 칩들은 일반적으로 이 기능을 잠금해제하는 수단이 부족하며, 따라서 하향스트림 피쳐 구현 (enablement) 을 매출원으로서 이용할 기회가 없다.
더욱이, 보안 시스템들 및 애플리케이션들에 대한 요구가 증가하고 있다. 현재, 전해지는 바에 의하면, 보안 칩들은 종종 작업 현장에서 보안 키들로 프로그래밍된다. 보안 키들은 예를 들어, 저장된 데이터를 보호하거나, 디지털 콘텐츠에의 액세스를 제어하거나, 또는 트랜잭션들에 이용되는 데이터를 암호화/인증하는 것과 같은, 다양한 방법들로 사용될 수도 있다. 오늘날, 이들 키들은 일회 프로그래밍가능 메모리에 저장될 수 있으며, 일회 프로그래밍가능 메모리는 키들을 직접 보유하거나 또는 여러 기능들을 위한 키들을 유도하는, 암호 기능들과 함께 사용되는 베이스 키를 보유할 수도 있다. 일반적으로, 보안은 보안 시설에서 키 로딩 프로세스를 수행함으로써 제공된다.
본 개시물의 여러 실시형태들의 예들이 이하 설명될 것이다.
예 #1 에 따르면, 방법은 집적회로의 보안 관리기 (security manager) 에 의해, 루트 서명된 블록을 수신하는 단계; 보안 관리기에 의해, 루트 서명된 블록과 연관되는 서명을 비밀 키를 이용하여 검증하는 단계; 보안 관리기에 의해, 루트 서명된 블록으로부터의 지령을 추출하는 단계; 및 보안 관리기에 의해, 추출된 지령을 실행하는 단계를 포함할 수도 있으며, 여기서, 실행된 지령은 집적회로의 동작에 관련된다.
예 #2 에 따르면, 방법은 집적회로의 보안 관리기에 의해, 위임 서명된 블록을 수신하는 단계; 보안 관리기에 의해, 위임 허가들 및 위임 인가자 시스템과 연관되는 키를 식별하는 단계; 보안 관리기에 의해, 위임 서명된 블록과 연관되는 서명을 위임 인가자 시스템과 연관되는 키를 이용하여 검증하는 단계; 보안 관리기에 의해, 위임 서명된 블록으로부터의 지령을 추출하는 단계; 보안 관리기에 의해, 위임 허가들을 이용하여 그 추출된 지령이 허용된다는 것을 검증하는 단계; 및 보안 관리기에 의해, 추출된 지령을 실행하는 단계를 포함할 수도 있으며, 여기서, 실행된 지령은 집적회로의 동작에 관련된다.
예 #3 에 따르면, 방법은 집적회로의 보안 관리기에 의해, 집적회로의 복수의 피쳐들의 피쳐의 상태를 업데이트하는 지령을 수신하는 단계; 보안 관리기에 의해, 피쳐의 상태에 대한 업데이트가 영속적인지 여부를 결정하는 단계; 및 그 업데이트가 영속적이면, 그 지령을 메모리에 저장하는 단계; 및 피쳐의 상태를 업데이트하기 위해 그 지령을 실행하는 단계를 포함할 수도 있다. 일 실시형태에서, 피쳐의 상태는 시간 관련된 인자, 또는 집적회로의 특성, 또는 디바이스의 특성을 포함하는 하나 이상의 인자들에 따라서 업데이트된다.
예 #4 에 따르면, 방법은 집적회로의 보안 관리기에 의해, 집적회로의 피쳐의 상태에 관련되는, 감사 시스템으로부터 수신되는 챌린지 (challenge) 를 수신하는 단계; 그 챌린지에 응답하여, 컴퓨팅, 보안 관리기에 의해, 감사 입증 값을 피쳐의 비밀 키 및 상태의 함수로서 계산하는 단계; 및 그 감사 입증 값을 감사 시스템에 제공하는 단계를 포함할 수도 있다.
예 #5 에 따르면, 방법은 구성기 입력 파일 및 하드웨어 상수를 포함하는 구성기 (configurator) 입력 데이터를 수신하는 단계; 및 입력 데이터를 이용하여 집적회로 설계 파일들을 발생하는 단계를 포함할 수도 있으며, 여기서, 집적회로 설계 파일들은 추출기 하드웨어 정의, 하나 이상의 하위-추출기 하드웨어 정의들, 및 상태 캐시를 포함한다.
예 #6 에 따르면, 방법은 집적회로의 피쳐들 및 키들에 대한 정책들을 정의하는 구성기 동작 입력을 수신하는 단계; 구성기 동작 입력 데이터를 이용하여 집적회로에 대한 동작 구성 맵을 발생하는 단계; 및 동작 구성 맵으로부터 맵핑 파일들을 생성하는 단계를 포함할 수도 있다.
예 #7 에 따르면, 방법은 집적회로의 파워-온 또는 리셋 시, 집적회로의 보안 관리기에 의해, 무결성 체크 값을 취출하는 단계; 보안 관리기에 의해, 보안 메모리에서의 지령 세그먼트들을 프로세싱함으로써 무결성 체크를 수행하는 단계; 및 무결성 체크 값에 기초하여, 지령 세그먼트들 중 임의의 세그먼트가 무결성 에러를 갖는지 여부를 결정하는 단계를 포함할 수도 있다.
예 #8 에 따르면, 방법은 엔터티들로부터 수신된 지령들을 집적회로의 보안 관리기에 의해 추적하는 단계; 그 지령들을 대응하는 엔터티들과 연관시키는 단계; 및 각각의 엔터티로부터 수신된 지령들에 기초하여, 엔터티들의 각각에게 청구하는 단계를 포함할 수도 있다.
이하 본 출원의 예시적인 실시형태들을 나타낸 첨부 도면들을 참조한다:
도 1a 는 예시적인 생태계를 도시하는 블록도이다.
도 1b 는 생태계 내에서 보안-관리기-이용가능 디바이스에 대한 예시적인 수명주기를 나타내는 플로우차트이다.
도 2a 는 보안-관리기-이용가능 칩들을 가지는 하나 이상의 디바이스들을 구성하고 관리하는 예시적인 동작 시스템을 블록도 형태로 도시한다.
도 2b 는 보안-관리기-이용가능 IC 와 연관된 피쳐 공간의 예시적인 실시형태의 블록도이다.
도 3 은 본원에서 설명된 방법들을 수행하기 위한 보안-관리기-이용가능 IC 를 포함하는 시스템의 예시적인 실시형태의 블록도이다.
도 4 는 보안-관리기 코어의 예시적인 실시형태의 블록도이다.
도 5 는 루트-인가자 (root-authority) 시스템에 의해 서명된 지령들에 대한 루트-서명된 블록의 발생을 위한 예시적인 방법의 플로우 차트이다.
도 6 은 보안-관리기 코어에 의해, 도 5 에서 발생된 루트-서명된 블록을 프로세싱하는 예시적인 방법의 플로우 차트이다.
도 7 은 위임-서명된 블록과 연관될 수 있는 루트-서명된 블록의 발생을 위한 예시적인 방법의 플로우 차트이다.
도 8 은 위임-서명된 블록의 발생을 위한 예시적인 방법의 플로우 차트이다.
도 9a 는 보안-관리기 코어에 의해, 도 8 에서 발생된 위임-서명된 블록 및 그 연관된 루트-서명된 블록을 프로세싱하는 예시적인 방법의 플로우 차트이다.
도 9b 는 보안-관리기 코어에 의해, 루트-서명된 블록으로부터 취출된 지령들을 프로세싱하는 예시적인 방법의 플로우 차트이다.
도 10 은 보안-관리기-이용가능 IC 내 피쳐 관리를 위한 예시적인 방법의 플로우 차트이다.
도 11 은 페이로드 키의 전송을 위한 위임-서명된 블록을 발생하는 예시적인 방법의 플로우 차트이다.
도 12 는 보안-관리기 코어에 의해, 페이로드를 포함하는 하나 이상의 서명된 블록들을 프로세싱하는 예시적인 방법의 플로우 차트이다.
도 13a 는 보안-관리기-이용가능 IC 의 설계 프로세스 동안 구성기 시스템을 이용하는 예시적인 방법의 플로우 차트이다.
도 13b 는 칩 개발 이후 구성기 시스템을 이용하는 예시적인 방법의 플로우 차트이다.
도 14 는 보안-관리기-이용가능 IC 의 초기화를 위한 예시적인 방법의 플로우 차트이다.
도 15 는 예시적인 개인화 프로세스를 블록도 형태로 예시한다.
도 16 은 보안-관리기-이용가능 IC 에 대한 피쳐 업데이트를 위한 요청의 인가를 위한, 위임-인가자 시스템에 의해 수행되는, 예시적인 방법의 플로우 차트이다.
도 17 은 보안-관리기-이용가능 IC 에 대한 피쳐 업데이트를 위한 요청의 인가를 위한, 루트-인가자 시스템에 의해 수행되는, 예시적인 방법의 플로우 차트이다.
이하, 첨부 도면들에 예시된 본 예시적인 실시형태들을 자세하게 참조한다.
1. 컨셉들
1.1. 생태계 개관
이하, 예시적인 생태계 (100) 를 블록도 형태로 도시하는 도 1a 를, 참조한다. 도 1a 에 나타낸 바와 같이, 시스템 (100) 은 집적회로 ("IC") 제공자 (105), 제 3 자 IP 제공자 (107), IC 제조업자 (110), IP 및/또는 보안 키 제공자 (115), 보안 서비스 (120), 청구서 발부 및 보고 서비스 (122), 제품 판매자 (125), 디바이스 관리자 (127), 및 최종 사용자 (130) 를 포함할 수도 있다. 간결성을 위해, 이 예시적인 생태계에서, 단지 각각의 엔터티 중 하나가 도시된다. 실제는, 본원에서 설명된 원리들와 부합하는 생태계는 각각의 엔터티 (즉, 동일한 ICs 를 공급하는 다수의 IC 제조업자들, 동일한 IC 설계를 이용하는 제품들을 제공하는 다수의 제품 판매자들, 및 다수의 고객들) 중 하나 이상을 가질 수도 있다. 도 1a 에 나타낸 일부 스텝들은 또한 여러 회사들을 수반할 수도 있다 (예컨대, IC 제조는 웨이퍼들을 제조하고, 초기 테스팅을 수행하고, 웨이퍼들을 절단하고, 패키지 칩들을 패키징하는 등을 행하기 위해 상이한 회사들 및/또는 스테이지들을 수반할 수도 있다). 게다가, 일부 경우, 일부 엔터티들 및 그들의 기능들이 단일 엔터티 내에 포함될 수 있다. 예를 들어, 일부 회사들은 ICs 를 설계와 제조를 모두 행하며, 이 경우, IC 제조업자 (110) 및 IC 제공자 (105) 는 동일한 엔터티일 수 있다.
IC 제공자 (105) 는 칩 생산을 위해 칩 설계들을 IC 제조업자 (110) 에게 제공하는 엔터티이다. 구체적으로 설명하면, IC 제공자 (105) 는 칩의 일부 양태들이 제조 이후에 (예컨대, 특정의 애플리케이션들에 대해 또는 특정의 피쳐들을 인에이블/디스에이블하도록) 구성될 수 있도록, 구성가능한 ICs 에 대한 칩 설계들을 제공한다. 예를 들어, IC 제공자 (105) 는 설계에 보안 관리기 (security manager) ("SM") 코어를 포함할 수 있거나, 또는 그 제조된 IC 가 SM 코어를 포함하도록 지정할 수 있다. SM 코어를 포함하는 IC 는 SM-이용가능 IC 로서 지칭된다. 그 중에서도, SM 코어는, IC 의 하나 이상의 구성가능한 (configurable) 피쳐들 ("Features") 이 원하는 구성 및 보안 요구들에 따라서, 잠금되거나 또는 잠금해제될 수 있게 (또는, 아니면, 예컨대, CPU 의 성능을 조정하기 위해 PLL 을 동조시키는 것 또는 피쳐에 의한 사용을 위해 비밀 키를 전달하는 것과 같이 구성될 수 있게) 한다. SM-이용가능 IC 는 예를 들어, 하나의 (또는, 어쩌면, 더 이상의) SM 코어들, 및 하나의 (또는, 더 이상의) 보안 영속성 메모리들을 포함한다. 그리고, 아래에서 자세하게 설명되는 바와 같이, SM-이용가능 IC 는 옵션적으로 일부 다른 엘리먼트들 (예컨대, 하나 이상의 추출기들, 하나 이상의 피쳐들 등), 또는 이들의 어떤 조합을 포함할 수도 있다. IC 제공자 (105) 는 루트-공개 키를, IC 제조업자 (110) 에 제공되는 마스크의 일부로서 포함할 수 있다. IC 제공자 (105) 는 루트 인가자로서 역할을 할 수도 있는 보안 서비스 (120) 로부터 루트-공개 키 (root-public key ) 를 획득할 수도 있다.
루트 인가자는 SM 프로그래밍 능력들을 관리하는 루트-인가자 시스템과 연관되는 엔터티이며, 능력들의 서브세트들을 하나 이상의 위임 인가자들과 연관되는 하나 이상의 위임-인가자 시스템들에 할당할 수 있다. 아래에서 좀더 자세히 설명하는 바와 같이, 루트-인가자 시스템은 SM-이용가능 IC 의 구성을 제어할 수도 있다. SM-이용가능 IC 의 구성은 예를 들어, SM-이용가능 IC 의 피쳐 관리를 수행하는 것, SM-이용가능 IC 의 키 관리를 수행하는 것, 또는 이들의 조합을 포함할 수도 있다. 루트-인가자 시스템은 시스템 (100) 에서 다른 엔터티들에 의해 소유되는 SM-이용가능 ICs 의 피쳐 관리를 제어할 수도 있다. 예를 들어, 루트-인가자 시스템은 SM-이용가능 ICs 과 연관되는 피쳐들을 잠금하거나, 잠금해제하거나, 또는 구성하는 암호로-검증가능한 (예컨대, 디지털 서명된) 지령들을 직접 생성할 수도 있다. 게다가, 루트-인가자 시스템은, SM-이용가능 ICs 에 대한 구성 변경들이 IC 제조업자 (110), 제품 판매자 (125), 디바이스 관리자 (127), 최종-사용자 (130), 다른 엔터티들, 또는 이들의 어떤 조합에 의해 생성될 수 있도록 하는 제한된 인가 (limited authorization ) 를 생성할 수도 있다.
루트-인가자 시스템은 또한 SM-이용가능 ICs 에 대한 키 관리를 제어할 수도 있다. 예를 들어, 루트-인가자 시스템은 SM 코어에게 페이로드들 (예컨대, 비밀 키들, 또는 다른 값들) 을 (SM-이용가능 IC 상에서 실행하는 소프트웨어로를 포함하여) SM-이용가능 IC 의 다른 부분들로 안전하게 전달하도록 인가할 수도 있다. 루트-인가자 시스템은 하나 이상의 위임-인가자 시스템들에게 페이로드들을 안전하게 전달하도록 인가할 수도 있다.
위에서 언급한 바와 같이, 루트 인가자는 루트 인가자 시스템과 연관된 엔터티이다. 따라서, 본원에서 설명된 실시형태들은 보안 서비스 (120) 를 루트 인가자로서 부를 수도 있지만, 다른 엔터티들이 루트 인가자로서 역할을 할 수도 있는 것으로 고려된다. 예를 들어, IC 제공자 (105), 제품 판매자 (125), 또는 일부 다른 엔터티.
이전 문단들은 또 다른 엔터티에 대한 허가들을 부여하는 루트 인가자를 기술한다. 이들 허가들의 수신자는 위임 인가자 (delegate authority) 로서 지칭된다. 일부 경우, 위임 인가자는 루트-인가자 시스템의 SM 프로그래밍 능력들의 서브세트를 부여받은 위임-인가자 시스템과 연관된다. SM 프로그래밍 능력들의 서브세트는 위임-인가자 시스템들 사이에 상이할 수도 있다. 위임 인가자는 제품 판매자 (125), IC 제조업자 (110), 디바이스 관리자 (127), 일부 다른 엔터티, 또는 이들의 어떤 조합일 수도 있다.
아래에서 자세히 설명되는 바와 같이, 루트-인가자 시스템, 하나 이상의 위임 인가자 시스템들 또는 이들의 어떤 조합은, 시스템 (100) 에서 SM-이용가능 ICs 의 변경 (예컨대, 피쳐 및 키 관리 동작들) 에 걸쳐서 일부 (또는, 풀) 제어를 가질 수도 있다.
IC 제조업자 (110) 는 ICs 를 제조하는 엔터티이다. 위에서 설명한 바와 같이, 일부 ICs 는 칩이 제조 이후에 특정의 애플리케이션들에 대해 구성될 수 있도록, 구성가능하다. 시스템온칩 ("SOC"), 주문형 집적회로들 (ASICs), FPGAs, 모바일 라디오 칩들, 및 프로세서들 (예컨대, CPUs) 이, 본원에서 설명되는 실시형태들과 함께 사용하기에 적합한 ICs 의 예들이다. 일반적으로, 피쳐 관리는 독립적으로 사용될 수 있는 다수의 기능들을 통합하거나, 또는 구성가능한 기능들을 갖거나, 또는 (예컨대, 디버그/테스트 모드들과 같은) 칩 수명주기들에서의 상이한 스테이지들에서 인에이블/디스에이블되어야 하는 능력들을 갖는 칩들에 특히 가장 적합하다. 그리고, 키 관리 애플리케이션들에 대해서는, 암호 키들 또는 유사한 비밀들을 이용하는 임의의 칩이 우수한 후보일 수도 있다. IC 제조업자 (110) 는 SM 코어를 포함하는 ICs 를 제조할 수도 있다. IC 제조업자 (110) 는 하나 이상의 보안 키들, 디바이스 ID, 초기 피쳐 구성 설정들, 또는 이들의 어떤 조합을, SM 코어에 그의 제조 프로세스, 테스팅 프로세스, 또는 양자의 일부로서 내장할 수도 있다. 이를 행하기 위해서, IC 제조업자 (110) 는 아래에서 자세하게 설명되는 커스터마이제이션의 제 1 스테이지를 제공하도록 장비된다. 구체적으로 설명하면, IC 제조업자 (110) 는 SM-이용가능 ICs 에 대한 특정의 구성 변경들을 행할 수 있는 경우에 위임 인가자일 수도 있다. 예를 들어, 다수의 프로세서들을 포함하는 IC 에서, IC 제조업자 (110) 는 SM-이용가능 IC 에서 이용가능한 프로세서들의 개수를 설정하도록 허용될 수 있지만, 각각의 프로세서에 대한 클록 레이트를 설정하도록 허용되지 않을 수도 있다. 미도시된 일부 실시형태들에서, IC 제조업자 (110) 및 IC 제공자 (105) 는 동일한 엔터티이다.
게다가, IC 제조업자 (110) 는 그들이 설계 사양 내에서 동작하고 있다는 것을 보장하기 위해 그 제조된 ICs 에 대해 테스팅을 수행할 수도 있다. 일부의 경우, 웨이퍼 분류와 같은 테스팅 프로세스들은 상이한 시설에서 및/또는 IC 제조와는 다른 회사에 의해 수행될 수도 있으며, 이 경우, 라벨 "IC 제조업자 (110)" 는 이들 역할들/스텝들의 조합을 나타낸다. IC 제조업자 (110) 는 SM-이용가능 ICs 를 제품 판매자 (125) 에 제공한다.
제품 판매자 (125) 는 SM-이용가능 ICs 를 이후 최종 사용자 (130) 에게 이용가능하게 되는 하나 이상의 제품들 (예컨대, SM-이용가능 디바이스들) 에 통합한다. 일부 실시형태들에서, 제품 판매자 (125) 는 디바이스 또는 서비스 소매업자이며, SM-이용가능 디바이스들을 최종 사용자 (130) 에게 직접 이용가능하게 한다. 다른 실시형태들에서, 제품 판매자 (125) 는 최종 사용자 (130) 에게의 배포를 위해서 SM-이용가능 디바이스들을 하나 이상의 제 3 자 디바이스 또는 서비스 소매업자들 (미도시) 에게 배포한다.
제품 판매자 (125) 는 SM-이용가능 ICs 의 추가적인 커스터마이제이션을 추가할 수도 있다. 이를 행하기 위해서, 제품 판매자 (125) 는 SM-이용가능 ICs 에 대한 어떤 특정의 구성 변경들을 행할 수 있는 경우에 위임 인가자일 수도 있다. 예를 들어, 위임 인가자로서, 제품 판매자 (125) 의 위임-인가자 시스템은 루트-인가자 시스템에 의해 어떤 능력들을 허용받을 수도 있다.
설령 제품이 최종 사용자 (130) 에게 판매된 이후에도, 또한 SM-이용가능 IC 에서의 피쳐들을 추가로 구성하거나 또는 인에이블하는 것이 가능하다. 예를 들어, 최종 사용자 (130) 및/또는 제품은, SM-이용가능 IC 에서의 피쳐들을 인에이블하기 위해, 제품 판매자 (125), 디바이스 관리자 (127), 보안 서비스 (120), 위임 인가자, 루트 인가자, 또는 이들의 어떤 조합과 조화를 이룰 수도 있다. 예를 들어, 이 프로세스는 (예컨대, 요청 메시지를 셀룰러 데이터 네트워크를 통해서 송신하기 위해 제품에서의 라디오를 이용함으로써) 네트워크를 거쳐서 요청을 송신하고, 그리고, (예컨대, 셀룰러 데이터 네트워크로부터 메시지를 수신하기 위해 제품에서의 라디오를 이용함으로써) 그 요청된 구성 변경들을 인가하는 칩-특정의 메시지를 수신하는 것을 수반할 수도 있다.
일부 경우, 제품 판매자 (125) 는 또한 SM-이용가능 디바이스 상에 설치된 하나 이상의 애플리케이션들에 대한 애플리케이션 저작자로서 역할을 할 수도 있다. 게다가, 제품 판매자 (125) 는 애플리케이션과 연관된 기능을 관리하는 애플리케이션 운영자로서 역할을 할 수도 있다. 이와 유사하게, 제품 판매자 (125) 는 또한 SM-이용가능 디바이스들과 호환가능한 운영 시스템을 배포하는 운영 시스템 판매자로서 역할을 할 수도 있다. 제품 판매자 (125) 는 또한 예컨대, SM-이용가능 디바이스에 사용가능할 수도 있는 하나 이상의 서비스들 또는 능력들을 관리하는 (모바일 네트워크 운영자와 같은) 서비스 운영자로서 역할을 할 수도 있다.
다른 실시형태들에서, 다른 엔터티들, 하나 이상의 제 3 자들 (미도시), 또는 이들의 어떤 조합은, 애플리케이션 작자, 운영 시스템 판매자, 애플리케이션 운영자, 또는 이들의 어떤 조합일 수도 있다.
IP 및/또는 보안 키 제공자 (115) 는 SM-이용가능 IC 와 함께 이용하기 위한 보안 키들을 관리한다. 공개 키들 및 비밀 키들을 포함하는, 보안 키 값들은, IC 제조업자 (110), 보안 서비스 (120), 제품 판매자 (125), 디바이스 관리자 (127), 또는 이들의 어떤 조합에게 제공될 수도 있다. 미도시된 일부 실시형태들에서, IP 및/또는 보안 키 제공자 (115) 는 또한 보안 키들을 제 3 자 IP 제공자 (107), IC 제공자 (105), 또는 이들의 어떤 조합에게 제공할 수도 있다.
보안 서비스 (120) 는 생태계에서의 엔터티들에 의해 사용될 수도 있는 보안 키들에 대한 중앙 배포자로서 역할을 할 수도 있다. 예를 들어, 보안 서비스 (120) 는 IP 및/또는 보안 키 제공자 (115) 로부터 (또는, 다수의 보안 키 제공자들로부터) 보안 키들을 획득하고 그들을 시스템 (100) 에서의 다른 엔터티들에게 배포할 수도 있다. 예를 들어, SM-이용가능 모바일 전화기 애플리케이션들 프로세서는 독립적으로 동작하거나 및/또는 특정의 IC 제공자 (105) 에 묶이지 않은 다수를 포함하여, 복수의 IP 및/또는 보안 키 제공자들 (115) 로부터의 키들로 프로그래밍될 수도 있다. 이러한 IP 및/또는 보안 키 제공자들 (115) 의 예들은 전자 지불 시스템들, DRM/저작권 침해 방지 시스템들, 아이덴티티 시스템들 등을, 제한 없이 포함한다. 일부 실시형태들에서, 보안 서비스 (120) 는 루트-인가자 시스템을 포함하고 SM-이용가능 IC 에 대한 루트 인가자로서 역할을 할 수도 있다. 다른 실시형태들에서, 집성 (aggregation) 및 루트 인가자 역할들은 분리될 수도 있다. 루트 인가자로서, 보안 서비스 (120) 는 위임 인가자들인, 시스템 (100) 에서의 하나 이상의 다른 엔터티들에게, 예를 들어, SM-이용가능 ICs 과 연관되는 어떤 피쳐들을 잠금하거나 또는 잠금해제하도록 인가하고, 키들을 SM-이용가능 IC 의 일부들 등으로 (또는, SM-이용가능 IC 상에서 실행하는 소프트웨어로) 안전하게 전달할 수도 있다. 아래에서 자세히 설명되는 바와 같이, 위임 인가자는 SM-이용가능 ICs 에 대한 어떤 구성 변경들을 행하도록 인가받고, 루트 인가자에 의해 암호로 승인된 특권들 (privileges) 을 적용받도록 인가받는다.
청구서 발부 및 보고 서비스 (122) 는 시스템 (100) 내 다른 엔터티들의 일부 또는 모두에 커플링할 수도 있다. 일부 경우들에서 시스템 (100) 에서 하나 이상의 엔터티들은 SM-이용가능 ICs 에 대한 어떤 구성 설정들에 대한 요금을 청구하기를 (예컨대, 부가 가치 피쳐를 인에이블하기를) 원할 수도 있다. 청구서 발부 및 보고 서비스 (122) 는 생태계에서의 여러 엔터티들에 의해 여러 트랜잭션 유형들과 연관되는 요금들을 추적한다. 예를 들어, 엔터티는 SM-이용가능 IC(s) 과 연관되는 피쳐들을 인에이블하거나 또는 디스에이블하기 위해 또는 키를 SM-이용가능 IC(s) 로 전달하기 위해 지불할 것을 요구받을 수도 있다. 청구서 발부 및 보고 서비스 (122) 는 예를 들어, 위임-인가자 시스템들로부터 전자 트랜잭션 또는 감사 기록들 (audit records) 을 수신함으로써, 위임들에 의해 수행되는 트랜잭션들의 수에 관한 정보를 수집한다. 그 수집된 기록들에 기초하여, 청구서 발부 및 보고 서비스 (122) 는 다수의 칩 유형들 및 트랜잭션 유형들 (예컨대, 인에이블된 피쳐들의 종류들) 전반에 걸쳐서 청구서 발부 금액들을 집합하고, 궁극적으로, 피쳐들을 인에이블하거나 또는 다른 트랜잭션들을 수행하는 엔터티들에 의해 빚을 지고 있는 금액들을 계산할 수도 있다. 이와 유사하게, 이하에서 설명하는 바와 같이, 청구서 발부 및 보고 서비스 (122) 는 제 3 자 IP 제공자들 (107) 과 같은 제 3 자들에 의해 빚을 지고 있는 금액들을 계산하는 것을 도울 수 있다. 청구서 발부 및 보고 서비스 (122) 에 의한 청구서 발부 계산들에의 입력들은 수행되는 트랜잭션들의 수, 어느 피쳐들이 인에이블되었는지, 피쳐들이 인에이블된 시간 길이 등을 한정 없이, 포함할 수 있다. 일부 실시형태들에서, 루트 인가자 또는 위임 인가자는 SM-이용가능 IC 에 대한 피쳐를 인에이블하거나 또는 구성하기 전에 지급이 수신되는 정책을 부과할 수도 있으며, 그러나, 다른 경우들에서, 청구서 발부 및 지급은 구현 이후에 수행될 수도 있다. 어느 경우에나, 보안 서비스 (120) 는 루트-인가자 시스템 및 하나 이상의 위임-인가자 시스템들과의 그의 통신들을 통해서, 수행되는 트랜잭션들의 수에 대한 제한들을 동적으로 조정할 수 있다. 일부 실시형태들에서, 청구서 발부 및 보고 서비스 (122) 는 보안 서비스 (120) 의 일부분이다. 다른 실시형태들에서, 청구서 발부 및 보고 서비스 (122) 는 단지 트랜잭션 추적을 수행할 수도 있으며, 그리고 청구서 발부 및 금융 프로세스들이 별개로 (또는, 심지어 수동으로) 수행될 수도 있다.
시스템 (100) 은 제 3 자 IP 제공자 (107) (또는, 앞에서 언급한 바와 같이, 여러 제 3 자 IP 제공자들 (107)) 를 포함할 수도 있다. 제 3 자 IP 제공자 (107) 는 SM-이용가능 IC 에의 통합을 위해 하나 이상의 피쳐들 또는 피쳐들의 부분들을 IC 제공자 (105) 에게 제공할 수도 있다. 또는, 일부 경우에, 제 3 자 IP 제공자 (107) 는 IC 제공자 (105) 에게 하나 이상의 기존 피쳐들 또는 피쳐들의 부분들을 사용하도록 간단히 라이센싱할 수도 있다. 통합된 피쳐는 그의 위임된 능력들 내에서 동작하는 루트 인가자 또는 위임 인가자 동작에 의해 인에이블될 수도 있다. 일부 실시형태들에서, 제 3 자 IP 제공자 (107) 가 IP 블록의 사용을 위해 보충될 때까지 피쳐는 인에이블되지 않는다 (예컨대, 잠금해제된다). 예를 들어, 청구서 발부 및 보고 서비스 (122) 의 상황에서 설명된 바와 같이, 위임 인가자 시스템에, 지급이 청구서 발부 및 보고 서비스 (122) 에 의해 및/또는 제 3 자 IP 제공자 (107) 에 의해 수신될 때까지 피쳐 활성화를 인가하는 능력 또는 인가가 제공되지 않을 수도 있다.
최종 사용자 (130) 는 제품 (예컨대, SM-이용가능 IC 를 포함하는 디바이스) 을 이용하는 엔터티이다. 최종 사용자 (130) 는 예를 들어, IC 제조업자 (110), 제품 판매자 (125), 디바이스 관리자 (127), 또는 일부 제 3 자 디바이스 또는 서비스 소매업자로부터 SM-이용가능 디바이스를 구입할 수도 있다.
일부 실시형태들에서, 시스템 (100) 은 디바이스 관리자 (127) 를 포함한다. 디바이스 관리자 (127) 는 SM-이용가능 ICs 에 대한 특정의 구성 변경들을 행하는 경우에 위임 인가자일 수도 있다. 최종 사용자 (130) 는 그후 SM-이용가능 IC 에서의 피쳐들을 인에이블하기 위해 디바이스 관리자 (127) (또는, 보안 서비스 (120) 등) 와 조화될 수도 있다. 이 프로세스는 네트워크를 거쳐서 요청을 송신하고, 인가 응답을 수신하고, 그리고 그 요청된 피쳐를 실제로 인에이블하기 위해서, (부분이 예를 들어, 위임 인가자를 인가하는 보안 서비스 (120) 에서의 루트 인가자 시스템로부터의 디지털 서명, 및 위임 인가자로서 역할을 하는 디바이스 관리자 (127) 로부터의 디지털 서명 양쪽을 포함할 수도 있는) 응답 메시지의 적어도 일부분을 SM-이용가능 IC 에 제공하는 사용자 및/또는 디바이스를 포함할 수도 있다. 그 요청은 지급, 지급이 이루어졌다는 확인, 또는 장래 지급을 하겠다는 약속을 포함할 수도 있다. 게다가, 일부 실시형태들에서, 디바이스 관리자 (127) 는 시스템 (100) 에서의 SM-이용가능 ICs 의 변경 (예컨대, 피쳐 및 키 관리 동작들) 을 통한 일부 직접 또는 간접 제어를 가지는 디바이스 또는 서비스 소매업자일 수도 있다.
게다가, 미도시된 일부 실시형태들에서, 시스템 (100) 은 디바이스 피쳐 관리자 또는 디바이스 키 관리자를 포함할 수도 있다. 디바이스 피쳐 관리자는 SM-이용가능 ICs 를 수반하는 (예컨대, 키 관리 동작들, 피쳐 관리 동작들, 또는 이들의 어떤 조합을 통한) 구성 변경들을 인가하는 어떤 제한된 능력들을 가진 위임 인가자일 수도 있다.
게다가, 일부 실시형태들에서, 루트 인가자는 안전하게, 시스템 (100) 에서의 다른 엔터티들로 하여금, SM-이용가능 IC 또는 테스팅을 위한 SM-이용가능 디바이스의 하나 이상의 피쳐들을 인에이블하거나 또는 부분적으로 인에이블하는 것을 가능하게 한다. 예를 들어, 루트 인가자는 루트-인가자 시스템을 통해서, (예컨대, 다음번에 SM-이용가능 IC 가 파워업되거나 또는 리셋될 때까지 피쳐가 단지 인에이블되도록) 설정된 시간 기간 동안 또는 다수의 파워-업들 동안 SM-이용가능 IC 에서의 피쳐를 인에이블할 (또는 부분적으로 인에이블할) 수도 있다. 이와 유사하게, 일부 실시형태들에서, 위임은, 루트 인가자에 의해 허용되면, 위임-인가자 시스템을 통해서, 또한 SM-이용가능 IC 또는 테스팅을 위한 디바이스의 피쳐들을 인에이블하거나 또는 부분적으로 인에이블하도록 허용받을 수도 있다.
상기 엔터티들 중 하나 이상은 하나 이상의 통신 네트워크 운영자들에 의해 운영되는 하나 이상의 네트워크들을 통해서 서로 커플링될 수도 있다. 이들 네트워크들 중 일부는 하나 이상의 네트워크 관리자들에 의해 유지될 수도 있다.
이하, 생태계 (예컨대, 시스템 (100)) 내 SM-이용가능 디바이스에 대한 예시적인 수명주기 (140) 를 나타내는 도 1b 을 참조한다. 수명주기는 다음 스텝들을 특정의 순서로 개시하지만, 스텝들 중 적어도 일부가, 적절한 경우, 이동되거나, 수정되거나, 또는 삭제될 수 있는 것으로 이해된다.
단계 142 에서, SM-이용가능 IC 가 설계된다. 아래에서 자세히 설명되는 바와 같이, 설계 프로세스는 예를 들어, 구성기, SM 판매자로부터 수신된 네트리스트, 및 하드웨어 구성 키들 및 상수들을 발생하는 수단을 이용할 수도 있다. 예를 들어, 이 발생 프로세스는 루트 인가자 시스템을 수반할 수도 있으며, 예컨대 일부 실시형태들에서, 루트 인가자 시스템은 공개 키 암호시스템에 대한 키 쌍을 발생할 수 있으며, 여기서, 공개 키는 하드웨어 구성 키로서 내보내지며, 사설 키는 (예컨대, 위임들을 인가하기 위해) 루트 인가자 시스템에서 보유된다. SM-이용가능 IC 설계는 제조된 SM-이용가능 IC 에 하드와이어드될 수도 있는 하나 이상의 보안 키들을 포함할 수도 있다. SM-이용가능 IC 설계는 (예컨대, 스텝들 150, 155 에서, 또는 양쪽에서) 제조된 SM-이용가능 IC 에 프로그래밍될 수 있는 하나 이상의 보안 키들에 대한 저장을 허용하도록 구성될 수도 있다.
단계 145 에서, SM-이용가능 IC 가 SM-이용가능 IC 설계에 기초하여 제조되고 테스트된다. 각각의 SM-이용가능 IC 는 하나 이상의 SM 코어들을 가질 수도 있으며, 여기서 각각의 SM 코어는 하나 이상의 피쳐들을 제어할 수도 있다. 아래에서 자세히 설명되는 바와 같이, 피쳐들은 하나 이상의 SM 지령들, 또는 이들의 어떤 조합을 통해서, 하나 이상의 보안 키들에 의해 인가되는 바에 따라, 변경되거나, 인에이블되거나, 디스에이블되거나, 또는 이들의 어떤 조합을 행할 수도 있다. 게다가, 일부 실시형태들에서, 제 3 자 제공자들 (예컨대, 제 3 자 제공자 (107)) 로부터의 피쳐들 또는 피쳐들의 부분들은 SM-이용가능 IC 에 통합될 수도 있다. 예를 들어, 제 3 자 제공자가 큰 이미지 파일들을 고속으로 렌더링하는데 사용되는 피쳐를 제공할 수도 있으며, 그러나, 처음에는 인에이블되지 않는다. 테스팅은 SM-이용가능 IC 의 피쳐들이 정확하게 동작하고 있는지 여부를 확인하기 위해 행해질 수도 있다. 예를 들어, 위임 인가자는 루트 인가자 (또는, 루트 인가자 자신) 에 의해 허용되면, (예컨대, 고정된 시간 동안 및/또는 칩이 리셋될 때까지) 일시적으로 하나 이상의 피쳐들로 하여금 테스트하는 것을 촉진하게 할 수도 있다. 실시형태에 따라서, 스텝 145 은 IC 제조업자 (110), IC 제공자 (105), 일부 다른 엔터티 (예컨대, 특수화된 테스팅 시설), 또는 이들의 어떤 조합에 의해 수행될 수도 있다.
단계 150 에서, 커스터마이제이션의 제 1 스테이지가 발생한다. 이 스텝에서, SM-이용가능 IC 는 디바이스 식별자 ("ID") 를 할당받을 수도 있으며 루트-인가자 시스템, 위임-인가자 시스템, 하나 이상의 키스플릿들, 또는 베이스 키들로부터 하나 이상의 키들로 구성될 수도 있다.
키스플릿 (keysplit) 은 상이한 키스플릿과 결합될 때, 완전한 키 (예컨대, 베이스 키) 를 형성하는 키의 부분이다. 키스플릿들은 예를 들어, 모든 상이한 키스플릿들의 지식을 전혀 갖지 않는 상이한 당사자들에 의해 상이한 키스플릿들로 SM-이용가능 IC 에서의 SM 코어를 프로그래밍시킴으로써, 베이스 키들의 보안을 증가시키는데 이용될 수도 있다. 결합하는 기능을 통한, 키스플릿들의 조합은, 베이스 키를 제공하기 위해 SM 코어 내에서 일어난다. 프로그래밍 당사자들이 아무도 모든 키스플릿들을 알지 못하기 때문에, 단일 퍼실리티 (facility) 의 손상 (compromise) 이 베이스 키를 반드시 손상하지는 않는다.
예시적인 구성 프로세스가 아래에서 좀더 자세하게 설명된다. 다른 파라미터들은 또한 커스터마이제이션의 제 1 스테이지 동안 설정될 수도 있다. 예를 들어, SM-이용가능 IC 가 다수의 프로세서들을 포함하면, 커스터마이제이션의 제 1 스테이지는 제품 판매자 (125) 에 의해 처음에 사용될 수도 있는 프로세서들의 수를 설정할 수도 있다. 또는, 예를 들어, 커스터마이제이션의 제 1 스테이지는 불충분한 부하의 오버히팅 (overheating) 을 억제하거나 또는 테스팅 (145) 동안 결정된 최대 레이트들을 매칭하도록 각각의 프로세서에 대한 최대 클록 레이트를 설정할 수도 있다. 예를 들어, 이러한 제한들을 안전하게 저장하는 것은 부정한 배포자들이 더 낮은-속도 부분들을 더 높은 속도 등급으로서 부정하게 말하는 것을 방지할 수 있다. 미도시된 안적인 실시형태들에서, 스텝 150 이 없으며, 대신, 커스터마이제이션의 제 1 스테이지가 스텝 (155) 의 부분으로서 수행된다.
단계 155 에서, 커스터마이제이션의 제 2 스테이지가 발생한다. 예를 들어, SM-이용가능 ICs 의 동일한 시리즈는 상이한 제품 판매자들에 대한 요구사항들을 만족하도록 추가로 구성될 수도 있다. 많은 경우들에서, 일부 제품 판매자들은 SM-이용가능 ICs 이 특별히 구성되기를 원할 수도 있다. 이 커스터마이제이션의 스테이지 동안, SM 코어의 피쳐 상태는 SM-이용가능 IC 를 각각의 제품 판매자의 요구들에 커스트마이즈하도록 업데이트될 수도 있다. 피쳐 상태를 업데이트하는 것은 SM-이용가능 IC 과 연관되는 하나 이상의 피쳐들을 디스에이블하거나, 인에이블하거나, 또는 변경하는 것 뿐만 아니라, 추가적인 키들을 로드하거나, 또는 이들의 어떤 조합을 행하는 것을 포함할 수도 있다. 커스터마이제이션의 이 제 2 스테이지는 예를 들어, IC 제조업자 (110), IC 제공자 (105), 제품 판매자 (125), 일부 다른 엔터티, 또는 이들의 어떤 조합에 의해 수행될 수도 있다. 비용 관심사들 (concerns) 은 일반적으로 커스터마이제이션 스텝들의 수를 가능한 한 작게 유지하는 것을 돕지만, 일부 애플리케이션들은 2개보다 많거나 또는 적은 커스터마이제이션의 스테이지들을 채용할 수도 있다. 2개의 커스터마이제이션의 스테이지들 (150 및 160) 은 예를 들어, IC 의 웨이퍼-레벨 테스트 및 패키지-레벨 테스트에서 각각 수행될 수 있다는 점에 유의한다.
단계 160 에서, SM-이용가능 IC 가 제품 제조 프로세스 동안 SM-이용가능 디바이스를 만들기 위해 디바이스에 통합된다. SM-이용가능 IC 의 피쳐 상태는 이 지점에서 역시 업데이트할 수도 있다. 예를 들어, 제품 판매자는 피쳐들의 조합들이 SM-이용가능 디바이스들의 상이한 제품 라인들을 만들도록 인에이블할 수도 있다. 이 프로그래밍 프로세스는 (예컨대, 정확한 기록들이 청구서 발부 및 보고 서비스 (122) 에 궁극적으로 제공되는 것을 보장하기 위해) 보안 서비스 (120) 로부터 배포된 하드웨어 보안 모듈을 이용하여 보호될 수 있다. 이러한 방법으로, 제품 판매자 (125) 는 단지 IC 제공자 (105) 로부터 단일 유형의 칩을 입수하여 그의 물품목록에 유지할 필요가 있으며, 따라서 이 칩은 제품 조립 동안 설정되는 상이한 구성들로 다수의 제품들에 사용될 수 있다. 청구서 발부 및 보고 서비스 (122) 는 인에이블되는 능력들이 (예컨대, IC 제공자 (105) 가 칩의 구성에 따라서 각각의 칩에 대해 적합한 금액을 수금할 수 있도록) 지불받는 것을 보장하도록 역할을 한다. 키들은 또한 SM 코어에 스텝 160 의 부분으로서 프로그래밍될 수도 있다. 예를 들어, 제품 판매자는 (제품 판매자 (125) 에게는 알려져 있지만 IC 제공자 (105) 에게는 알려져 있지 않은 키와 같은) 각각의 SM-이용가능 디바이스에서의 고유한 키를 프로그래밍할 수도 있다.
단계 165 에서, SM-이용가능 디바이스가 배포된다. SM-이용가능 디바이스는 예를 들어, 또 다른 제품 판매자, 재판매자, 최종 사용자 (130), 디바이스 관리자 (127), 또는 생태계에서의 다른 엔터티에게 배포될 수도 있다.
단계 170 에서, SM-이용가능 디바이스의 인-필드 (in-field) 관리가 행해질 수 있다. (제품 판매자를 떠난 SM-이용가능 디바이스는 필드 (field) 에 있다고 한다. 이것은 최종 사용자의 손들에 있다는 것과 반드시 같은 것을 의미할 필요는 없으며, 예컨대, 모바일 폰 캐리어 운영자는 최종 사용자 (130) 에게 전달하기 전에 폰의 커스터마이제이션 또는 프로비져닝을 수행할 수도 있다는 점에 유의한다.) 인-필드 관리는 SM-이용가능 디바이스의 피쳐 상태를 업데이트해달라는 요청이 수신되는 것을 포함할 수 있다. 예를 들어, SM-이용가능 IC 의 특수 오디오 구성요소를 인에이블하라는 요청이 수신될 수도 있다. 이러한 요청들은 예를 들어, 그 요청을 루트 인가자 또는 적합하게 인가된 위임 인가자에게 전송하는 최종 사용자 (130) 또는 디바이스 자신에 의해 개시될 수도 있다. 인필드 관리는 따라서 SM-이용가능 디바이스로의 하나 이상의 인가들 및/또는 보안 키들의 송신을 수반한다. 아래에서 자세히 설명되는 바와 같이, 보안 키 전달 및 피쳐 관리는 루트 인가자에 의해, SM-이용가능 디바이스과 통신하는 루트-인가자 시스템을 통해서, 또는 위임 인가자에 의해, 그의 위임된 SM-프로그래밍 능력들 내에서 작용하고 그리고 SM-이용가능 디바이스와 통신하는 위임-인가자 시스템을 통해서 수행될 수도 있다. 응답의 수신 시, SM-이용가능 디바이스 에서의 소프트웨어는 인가가 요청된 동작 (예컨대, 피쳐 구성, 키잉 등) 을 수행하기 전에 특정의 디바이스에 유효하다고 검증하는 (루트 인가자 및/또는 위임 인가자로부터의 암호 인가를 포함한) 응답의 부분들을 SM 코어에 제공한다.
단독으로 또는 다른 엔터티들과 함께 작용하는 앞에서 언급된 엔터티들 중 임의의 엔터티는 SM-이용가능 디바이스의 키들 및 피쳐들을 제어하기 위해, 전술한 업데이트, 관리, 및 감사 메시지들을 요청하거나, 발생하거나, 캐시하거나, 송신하거나, 또는 수정할 수도 있다. 디바이스 수명주기의 여러 지점들에서 역할들을 가진 이들 엔터티들의 각각은 독립적으로 동작할 수도 있으며, SM-이용가능 디바이스 또는 그 디바이스와 상호작용하는 기반구조의 상이한 정도의 소유권을 가질 수도 있다. 어떤 키들 또는 피쳐들의 배치는 지급들, 감사들, 또는 SM-코어 활동의 촉진이 어떤 액션들을 수행하도록 요청하는 다른 비즈니스 합의들을 수반할 수도 있으며, SM-코어 메시지들을 공식화하거나 해석하거나, 상기 메시지들을 통신하거나 저장하거나, 액션들을 인가하는 프로세스는 전술한 엔터티들 중 하나 이상에 의해 수행될 수도 있다.
2. 보안 관리기 시스템 아키텍쳐
하나 이상의 SM-이용가능 디바이스들을 구성하고 관리하는 예시적인 동작 시스템 (200) 을 블록도 형태로 나타낸 도 2a 를 참조한다. 시스템 (200) 은 네트워크 (205) 에 의해 동작가능하게 접속된, 공중 지상 모바일 네트워크 (PLMN) (210), 루트 인가자 (215), 루트-인가자 시스템 (217), 위임 인가자 (220), 위임-인가자 시스템 (222), IC 제공자 (105), SM-이용가능 디바이스들 (240, 245, 250, 255, 및 260), SM-이용가능 ICs (265), 무선 액세스 지점 (275), 구성기 시스템들 (280), 및 추가적인 엔터티들 (287) 중 일부 또는 모두를 포함할 수 있다.
네트워크 (205) 는 예를 들어, 인터넷, 인트라넷, 근거리 네트워크, 광역 네트워크, 캠퍼스 영역 네트워크, 도시권 네트워크, 엑스트라넷, 사설 엑스트라넷, 2개 이상의 커플링된 전자 디바이스들의 임의의 세트, 또는 이들 또는 다른 적합한 네트워크들 중 임의의 네트워크들의 조합일 수 있다. 네트워크 (205) 는 또한 무선 광역 네트워크 (WWAN) 또는, 일부의 경우, 셀룰러 네트워크로서 또한 지칭되는, PLMN (210) 과 통신할 수 있다. 간결성을 위해, 네트워크 (205) 는 단일 엔터티로서 도시되지만, 다수의 네트워크들이 존재할 수 있는 것도 가능하다. 예를 들어, 사설 엑스트라넷은 도 2a 에서의 다른 엔터티들이 인터넷에 의해 접속되더라도 IC 제공자 (105) 및 루트 인가자 (215) 에 접속할 수도 있다.
루트 인가자 (215) 은 SM 프로그래밍 능력들을 관리하고 그 능력들의 서브세트들을 하나 이상의 위임 인가자들 (220) 에게 할당할 수 있는 엔터티 (예컨대, 보안 서비스 (120)) 이다. 루트 인가자 (215) 은 SM-이용가능 ICs (265) 및 SM-이용가능 디바이스들 (240, 245, 250, 255, 및 260) 을 관리하는 암호 키들을 포함하는 (또는, 아니면, 그에 액세스하는) 루트-인가자 시스템 (217) 과 연관된다. 루트-인가자 시스템 (217) 은 하나 이상의 루트-서명된 블록들 ("RSBs") 을 발생하도록 구성된다. 아래에서 자세히 설명되는 바와 같이, RSB 는 하나 이상의 SM 지령들, 지령 템플릿들, 하나 이상의 위임 허가들, 하나 이상의 키들 (예컨대, 위임-공개 키), 또는 이들의 어떤 조합을 포함할 수 있다. RSB 는 SM 코어에서의 공개 키에 대응하는 루트-사설 키 (예컨대, RSA 사설 키) 를 이용하여 루트-인가자 시스템 (217) 에 의해 서명된 적어도 하나의 디지털 인증서를 포함한다. 루트-인가자 시스템 (217) 은 하나 이상의 RSBs 또는 다른 데이터를 구성기 시스템 (280), SM-이용가능 ICs (265), 위임-인가자 시스템 (222), SM-이용가능 디바이스들 (예컨대, 240, 245, 250, 255, 또는 260), 하나 이상의 다른 엔터티들 (287), 전자 저장 매체 (미도시), 또는 이들의 어떤 조합에 제공하도록 구성될 수도 있다. 게다가, 루트-인가자 시스템 (217) 은 루트-인가자 시스템 (217) 의 사용자에 의해 명령될 때 RSB 를 제공하도록 구성될 수도 있다. 루트-인가자 시스템 (217) 은 단일 컴퓨터 상에 구현될 수 있거나, 또는 일부 경우, 지리적으로 흩어져 있을 수도 있는 (예컨대, 임계치 서명 시스템에 대한 키 할당들을 포함하며; 여기서, 다수의 키 할당들로부터의 협력이 디지털 서명들을 계산하는데 요구되는) 복수의 컴퓨터들 전반에 걸쳐 분산될 수도 있다.
아래에서 자세히 설명되는 바와 같이, 루트-인가자 시스템 (217) 은 특권들을 하나 이상의 위임-인가자 시스템들 (222) 에게 위임하도록 구성될 수도 있다. 루트-인가자 시스템 (217) 은 또한 하나 이상의 구성기 시스템들 (280) 에 대한 시스템 및 네트리스트 키 상수들을 발생하도록 구성될 수도 있다. 게다가, 루트-인가자 시스템 (217) 은 (아래에서 설명되는) 커스터마이제이션 프로세스 동안에 사용되는 마스터 키들을 관리하도록 구성될 수도 있다. 루트 인가자 시스템 (217) 은 또한 SM 코어 집적 및 ASIC 제조를 돕기 위해 테스트 벡터들 및 다른 값들을 생성하도록 구성될 수도 있다.
일부 실시형태들에서, 루트-인가자 시스템 (217) 은 추가적인 위임들을 생성하는 능력을 위임하도록 구성될 수도 있다. 이 실시형태에서, 제 1 위임-인가자 시스템은 제 1 위임-인가자 시스템의 SM 프로그래밍 능력들의 서브세트를 각각 가지는 하나 이상의 제 2 위임-인가자 시스템들을 생성하도록 구성될 수도 있다. (제한이 있으면) 위임들의 레벨들의 최대 개수들은 구성가능한 옵션일 수 있다. 단순화된 실시형태는 위임 인가자들에 대한 SM 코어에서의 지원을 생략하고, 대신, 모든 태스크들에 대한 루트 비밀 키를 이용할 수 있다 (예컨대, 여기서, 위임 인가자들로서 역할을 하는 엔터티들은 루트 서명 키를 포함하는 서명 디바이스들을 갖거나 및/또는 네트워크를 통해서 이러한 디바이스와 상호작용한다).
루트-인가자 시스템 (217) 은 추가된 보안 및/또는 성능을 제공하기 위해 변조 방지 서명 모듈(들) (미도시) 을 포함할 수도 있다. 위임-인가자 시스템 (222) 은 단지 루트 인가자 시스템 (217) 의 인가자의 서브세트를 활용하도록 루트-인가자 시스템 (217) 에 의해 인가를 일반적으로 부여받는다. 루트 및 위임 인가자 시스템들 (217 및 222) 의 특권 스테이지들은 예를 들어, 암호 키들, 서명 소프트웨어에 의해 강제되는 제한 사항들, 운영자 정책들, 및 변조 방지 서명 모듈들 내 정책들에 의해 관리될 수도 있다.
시스템 (200) 은 다수의 위임 인가자들 (220) 을 포함할 수 있다. 위임 인가자 (220) 은 위임-인가자 시스템 (222) 과 연관되는 엔터티이다. 위임-인가자 시스템 (222) 은 루트-인가자 시스템 (217) 에 의해 SM 프로그래밍 능력들의 서브세트를 제공받고 있다. 위임 인가자 (220) 의 예들은 예를 들어, 제품 판매자 (125), IC 제조업자 (110), 디바이스 관리자 (127), 서비스 운영자, 소매업자, 일부 다른 엔터티 (예컨대, 도 1a 를 참조하여 설명한 바와 같이), 또는 이들의 어떤 조합을 포함할 수도 있다.
위임-인가자 시스템 (222) 은 루트-인가자 시스템 (217) 으로부터 그에 위임된 어떤 능력들 (예컨대, 키 관리 동작들의 일부, 피쳐 관리 동작들, 또는 양쪽) 을 가질 수도 있다. 이들 능력들은 긍정적 인가들의 세트로서 또는 제한 사항들의 세트로서 전달될 수 있다. 예를 들어, 특권들은 서명된 메시지들 (예컨대, 서명된 블록들) 이 인가자 시스템들에 의해 제공되는 것을 통한 제어, 인가자 시스템들에 의해 사용되는 서명 키(들) 의 규제, 인가자 시스템들 중 하나에 의해 서명될 수도 있는 페이로드들의 특정의 유형들의 규제, 통신들 채널/목적지들 및 SM-코어로 전달될 수 있는 메시지들의 유형들의 규제, 또는 이들의 어떤 조합을 통해서, 루트-인가자 시스템 (217) 에 의해, 위임-인가자 시스템 (222) 으로, 전달되고 제한될 수도 있다. 위임될 수도 있는 예시적인 특권들은, 어떤 하드웨어 능력들을 인에이블하거나 또는 디스에이블하거나, 성능 설정들 또는 다른 값들을 조정하거나, 어떤 외부 인터페이스들의 사용을 가능하게 하거나, 동작의 어떤 모드들의 사용을 가능하게 하거나, 테스트 모드들 (예컨대, 제어 진단 및 디버그 모드) 을 인에이블하거나 또는 디스에이블하거나, 특정의 모드 또는 피쳐가 활성일 (예컨대, 단지 제조 프로세스 동안에만 활성일) 때에 걸쳐서 제어하는 능력; SM-이용가능 ICs 의 피쳐들의 어떤 구성 설정들의 값들을 조정하거나, 하나 이상의 키 암호화 키들을 유도하거나 및/또는 사용하거나, 어떤 SM-이용가능 ICs 에 의한 사용을 위한 키들을 암호화하거나, 키들을 IC 하위 구성요소들에 공급하거나, SM-이용가능 IC 의 구성을 일반적으로 조정하거나, SM 코어, 프로그램 키들/ 키스플릿들에 의해 액세스가능한 상태 정보를 감사하거나, 인-필드 SM-이용가능 IC 상에서 진단의 활동을 수행하거나, 프로세스 변동을 보상하기 위해 아날로그 회로들을 교정하거나 또는 튜닝하거나, 특정의 제품에서의 입력 클록 및 원하는 동작 주파수에 대한 PLL 을 구성하거나, 라디오(들) 의 전력 및 주파수를 조정하거나, 내부 열적 고장안전 (failsafe) 에 의해 강제되는 제한들 (열적 제한들은 상이한 제품들에서 사용되는 패키징 및 냉각 솔루션에 기초하여 변할 수도 있다) 을 구성하거나, 배터리 충전 회로를 구성하는 능력 등등을 포함한다.
위임-인가자 시스템 (222) 에 대한 루트 인가자 시스템의 (217) 인가는 또한 위임-인가자 시스템 (222) 이 (예컨대, SM 코어에게 피쳐 구성 데이터를 비휘발성/일회 프로그래밍가능 메모리에 저장하도록 명령함으로써) 피쳐들을 영속적으로 또는 휘발성으로 구성할 수 있는지 여부, 인가들이 단일 IC 에 또는 ICs 의 특정의 클래스 또는 그룹에 바인딩되어야 하는지 여부, (인가들이 재사용되는 것을 방지하기 위해) 인가들이 난수 발생기 상태에 바인딩되어야 하는지 여부를 제한 없이 포함하여, 위임-인가자 시스템 (222) 의 인가들에 관한 제한 사항들을 포함할 수 있다.
앞에서 언급한 바와 같이, 피쳐 설정들은 간단한 2진 온/오프 설정들에 한정되지 않는다. 예를 들어, 구성에서의 변경들에 대한 인가를 요구하는데 위임-인가자 시스템 (222) 또는 루트-인가자 시스템 (217) 을 이용하는 것을 바람직하게 만드는 관심사들 (예컨대, 보안, 신뢰성, 책임 등) 이 있을 수도 있다. 예를 들어, PLL 을 잘못 구성하는 것 또는 부정확한 아날로그 보정을 이용하는 것이 SM-이용가능 IC 로 하여금 오작동하도록 할 수 있으며, 따라서 PLL 설정들이 SM 코어에 의해 보호될 수 있다.
아래에서 자세히 설명되는 바와 같이, 위임-인가자 시스템 (222) 은 하나 이상의 위임-서명된 블록들 ("DSBs") 을 발생하도록 구성된다. 위임-인가자 시스템 (222) 은 DSB 를 구성기 시스템 (280), SM-이용가능 ICs (265), 루트-인가자 시스템 (217), IC 제공자 (105), SM-이용가능 디바이스들 (예컨대, 240, 245, 250, 255, 또는 260), 전자 저장 매체 (미도시), 하나 이상의 엔터티들 (287), 또는 이들의 어떤 조합에 제공하도록 구성될 수도 있다. 게다가, 위임-인가자 시스템 (222) 은 위임-인가자 시스템 (222) 의 사용자에 의해 명령될 때 DSB 를 제공하도록 구성될 수도 있다. 하나 이상의 엔터티들 (287) 은 위임 인가자 또는 루트 인가자가 아니지만, RSBs, 위임-서명된 블록들 ("DSBs"), 또는 이들의 어떤 조합을 여전히 수신할 수도 있는 엔터티들이다. 예를 들어, 일부 실시형태들에서, 디바이스 관리자 (127), IP 및/또는 보안 키 제공자 (115), 에스크로 서비스 제공자 등은, 위임 인가자가 아니지만, RSBs, DSBs, 또는 이들의 어떤 조합을 여전히 수신할 수도 있다.
위임-인가자 시스템 (222) 은 보안 키들 (예컨대, 위임 사설 키들, AES 키들, 또는 양쪽) 중 하나 이상을 저장하도록 구성된 변조-방지 서명 모듈 (미도시) 을 포함할 수도 있다. 예를 들어, 변조-방지 서명 모듈은 스마트카드 또는 하드웨어 보안 모듈 ("HSM") 일 수도 있다.
일부 실시형태들에서, 위임-인가자 시스템 (222) 은 추가적인 위임들을 생성하는 능력을 갖는다. 이러한 일 실시형태에서, SM 프로그래밍 능력들을 제공하는 시스템은 현재 보유하고 있는 능력들보다 더 많은 SM 프로그래밍 능력들을 위임하는 것이 금지될 수 있다. 예를 들어, 루트-인가자 시스템 (217) 이 SM 프로그래밍 능력을 추가적인 위임-인가자 시스템들 (미도시) 에 할당하는 능력과 함께 단지 SM 프로그래밍 능력들 A, B, 및 C 를 위임-인가자 시스템 (222) 에 제공하면, 위임-인가자 시스템 (222) 은 SM 프로그래밍 능력 D 을 추가로 제공할 수 없을 것이지만, 위임 허가 C 없이 A 및 B 를 위임할 수 있다. 위임-인가자 시스템 (222) 은 단일 컴퓨터 상에서 구현될 수 있거나, 또는 일부 경우, 복수의 컴퓨터들 전체에 걸쳐서 분산될 수 있다. 분산된 위임들은 앞에서 설명된 바와 같이 임계치 서명들을 이용할 수 있다. 위임 인가자 시스템 (222) 은 또한 신뢰성 및 성능을 위해 다수의 여분의 및/또는 클러스터된 구성요소들을 포함할 수도 있다.
게다가, 일부 실시형태들에서, 루트-인가자 시스템 (215), 위임-인가자 시스템 (222), 또는 양쪽은, 서명된 블록들 (예컨대, RSB, DSB) 을 하나 이상의 전자 저장 매체들 (미도시) 에 저장하도록 구성될 수도 있다. 전자 저장 매체들은 예를 들어, 휘발성 (예컨대, SRAM, DRAM, 또는 다른 반도체 메모리) 또는 비-휘발성 (예컨대, 하드 디스크, R/W 광 디스크, 플래시 드라이브), 또는 이들의 어떤 조합일 수도 있다. RSBs 및/또는 DSBs 는 또한 SM-디바이스들 내에 저장될 수도 있다 (예컨대, 디바이스가 리셋될 때까지 RSB/DSB 쌍이 피쳐를 단지 구성하면, 제품이 리셋할 때마다 구성이 로드될 필요가 있을 수도 있다).
시스템 (200) 은 다수의 SM-이용가능 디바이스들, 예를 들어, SM-이용가능 디바이스들 (240, 245, 250, 255, 및 260) 을 포함할 수 있다. SM-이용가능 디바이스들 (240, 245, 250, 255, 및 260) 은 예를 들어, 스마트폰들, 태블릿들, 넷북들, 데스크탑 컴퓨터들, 셋탑 박스들, 모바일 디바이스들, 랩탑 컴퓨터들, 디지털 비디오 리코더들, 유료 TV 셋탑 박스들, 자동차들, 제조 장비, 디지털 및 비디오 카메라들, 배터리들, 그리고, 주변장치들, 비디오 게임 사용자 인터페이스들 및 다른 사용자 인터페이스들을 인증하는 디바이스들 등일 수 있다. 도 2a 의 예시적인 시스템은 다수의 SM 디바이스들로 도시되며, 시스템은 하나의 또는 임의 개수의 SM-이용가능 디바이스들로 구현될 수도 있다. SM-이용가능 디바이스들 (240, 245, 250, 255, 및 260) 은 결국 위임-인가자 시스템들 (222) 을 인가할 수 있는 루트-인가자 시스템 (217) 로부터의 서명들 또는 다른 인가들을 검증한다. 게다가, SM-이용가능 디바이스 (예컨대, SM-이용가능 디바이스들 (240, 245, 250, 255, 및 260) 와, 루트-인가자 시스템 (217), 위임-인가자 시스템들 (222), 또는 양쪽 사이의 커플링은, 일시적일 수도 있다. 예를 들어, 커플링은 SM-이용가능 IC 의 동작들을 수정하는데 요구되는 시간 동안 존재할 수도 있다. SM-이용가능 디바이스 (260) 및 SM-이용가능 IC (265) 에 대한 인가들은 루트-인가자 시스템 (217) 또는 위임-인가자 시스템들 (222) 에 의해 생성되고, 하나 이상의 디바이스 테스터들 (미도시), 프로그래밍 픽스쳐들 (fixtures) (미도시), 또는 다른 중재자들 (미도시) 을 통해서 전달될 수도 있다.
디바이스 테스터는, 일반적으로, ICs 의 기능을 테스트하도록 구성된다. 특히 SM-이용가능 ICs 에 대해, 디바이스 테스터는 (예컨대, 프로그래밍 지령들을 SM 코어에 제공함으로써) 정보 (예컨대, 키들, 디바이스 ID 등) 를 SM-이용가능 ICs 에 프로그래밍하도록 추가로 구성될 수도 있다. 디바이스 테스터 또는 프로그래밍 픽스쳐는 또한 디바이스 식별 정보 및 구성 정보를 포함한, 디바이스 및 그의 SM 코어에 관한 정보를 데이터베이스에 기록할 수도 있다. 각각의 디바이스 테스터는 하나 이상의 SM-이용가능 디바이스들을 루트-인가자 시스템, 위임-인가자 시스템, 또는 양쪽에 커플링하도록 구성될 수도 있다. 다양한 피쳐들 또는 용량들을 가질지도 모르는 시스템들 또는 디바이스들이 SM-이용가능 IC 의 사용에 이상적으로 적합하다.
SM-이용가능 디바이스는 하나 이상의 SM-이용가능 ICs (예컨대, 265) 를 포함할 수도 있다. 이와 유사하게, SM-이용가능 ICs (265) 는 예를 들어, 하나 이상의 SM 코어들, 및 하나 이상의 보안 메모리들을 포함할 수도 있다. 그리고, 아래에서 자세히 설명되는 바와 같이, SM-이용가능 IC 는 옵션적으로, 일부 다른 엘리먼트들 (예컨대, 하나 이상의 추출기들, 하나 이상의 피쳐들을 제어하기 위한 출력들 등), 또는 이들의 어떤 조합을 포함할 수도 있다. 아래에서 설명하는 바와 같이, 어떤 변경들이 키 관리 또는 피쳐 관리 동작들을 통해서 SM-이용가능 IC (265) 에 대해 이루어질 수도 있다.
SM-이용가능 디바이스들 (240, 245, 250, 255, 및 260) 은 PLMN (210) 을 통한 셀룰러 통신용으로 장비되거나, 무선 액세스 지점 (275) 을 이용하는 Wi-Fi 통신들용으로 장비되거나, 또는 네트워크 (210) 를 이용한 셀룰러 및 Wi-Fi 통신들 양쪽이 가능하거나, 또는 이들의 임의의 조합이 가능할 수도 있다. 무선 액세스 지점 (275) 은 IEEE 802.11 사양들 중 하나에 따라서 동작하는 WLANs 으로 구성될 수 있다. 예를 들어, SM-이용가능 디바이스 (250) 는 무선 액세스 지점 (275) 을 이용하여 네트워크 (205) 에 무선으로 커플링되며, SM-이용가능 디바이스 (240) 는 PLMN (210) 를 통해서 네트워크 (205) 에 커플링된다. SM-이용가능 디바이스들 (240, 245, 250, 255, 및 260) 이 지원할 수 있는 다른 통신 인터페이스들의 예들은 이더넷, JTAG, 직렬/USB, I2C 등을 포함한다.
SM-이용가능 디바이스들 (240, 245, 250, 255, 및 260) 은, 설령 프로그래밍 이전에 동일했던 ICs 를 구성하더라도, 상이하게 구성될 수도 있다. 가전제품에서, 유사한 실리콘 또는 (예컨대, 동일한 마스크 세트로부터 제조된) ICs 가 구성에 의해 제어되는 성능에서의 차이를 가진, 넓은 범위의 제품들 (예를 들어, 고급 및 저급 제품들 양쪽) 에, 사용될 수도 있다. 피쳐 풍부한 제품 (feature rich product) 은 예를 들어, 진보된 오디오 능력들 (예컨대, 서라운드 사운드), 다수의 HD 비디오 스트림들, 많은 다양한 입력들 및 출력들, 케이블 또는 위성을 포함한 다수의 케이블 제공자들 또는 무선 특정의 모뎀들 및 트랜스코더들, 여러 튜너들 등에 대한 지원, 화면속 화면과 같은 뷰잉 (viewing) 피쳐들, Wi-Fi 지원 등을 가질지도 모른다. 이와 유사하게, 스마트폰에 사용하도록 의도되는 SM-이용가능 IC 는, GPS, 여러 무선 네트워크 라디오 프로토콜들, Wi-Fi, 근거리장 통신 기반의 금융 거래들, BLUETOOTH 또는 다른 무선 주변장치 인터페이스, 오버디에어 비디오 서비스들, HD 비디오 지원, 무선 비디오 인터페이스들, 추가적인 외부 비디오 인터페이스들, 매우 많은 그리고 여러 해상도들의 카메라들 및 센서들, 여러 스크린 사이즈들 및 해상도들에 대한 지원, 햅틱들에 대한 프로세싱, 그래픽들, 및 비디오 향상 및 가속도와 같은, 능력들에 대한 피쳐 관리되는 지원을 포함할 수도 있다. SM-이용가능 ICs 에서의 SM 코어들은 예를 들어, 가용 또는 사용가능한 메모리, 또는 가용 프로세서들의 속도 및 개수와 같은, 시스템 리소스들의 사이즈 및 성능을 관리하는데 이용될 수 있다. 미도시된 일부 실시형태들에서, SM-이용가능 디바이스 (예컨대, 240, 245, 250, 255, 및 260) 는 또한 구성기 시스템 (280) 에 동작가능하게 커플링될 수도 있다. 미사용된 피쳐들에 대한 IP 라이센싱 비용들을 감소시키기는 것, 비-동작하거나 또는 미테스트된 실리콘 영역들을 사용불능시키는 것, 더 고급 부분들의 판매들을 잠식하는 것을 피하는 것, 보안 위험들을 일으킬 수도 있는 모드들/설정들을 디스에이블하는 것 등을 포함하여, 특정의 피쳐가 특정의 칩 상에서 디스에이블되어야 하는 많은 이유들이 있을 수 있다.
위임 인가자 (220) (예컨대, IC 제공자 (105) 또는 IC 제조업자 (110)) 는 구성기 시스템 (280) 으로부터 구성 데이터를 수신할 수도 있다. 구성기 시스템 (280) 에 의해 발생된 데이터는 위임 인가자 (220) 에게 특정의 피쳐들 또는 키들을 어드레스하는 (address) 방법을 통지할 수도 있다.
예시적인 실시형태에서, SM 코어 피쳐 공간은 SM-이용가능 IC 의 특정의 기능 또는 구성 양태들을 제어하는 값들을 포함하는 메모리에 저장된 어드레스 공간이다. 도 2b 는 SM 이용가능 IC 와 연관되는 피쳐 공간 (285) 의 예시적인 실시형태의 블록도이다. 피쳐 공간 (285) 은 하나 이상의 값들 (295) 을 포함하며, 이 값들의 각각은 연관된 어드레스 (290) 를 갖는다. 예를 들어, 값 "GPS 라디오 인에이블됨 " 은 피쳐 공간에서 어드레스 0 에 할당될지도 모른다. 멀티-비트 PLL 구성 값과 같은, 피쳐 어드레스 공간에서의 다른 값이, 다수의 비트들 (및 대응하는 어드레스들) 을 포괄할 수도 있다.
일부 실시형태들에서, 피쳐 공간 (285) 에서의 값들 중 하나 이상은 SM-이용가능 IC 의 다른 피쳐들보다는, SM 코어 자체에 관련될 수도 있다. 이러한 피쳐 공간 값들은 내부 피쳐들로서 알려져 있다. 예를 들어, 내부 피쳐는 어떤 베이스 키가 사용하는데 이용가능한지 여부, (제품 제조업자의 아이덴티티, 제품이 판매된 지리적 영역과 같은) 디바이스에 관한 운반 정보 등을 제어할지도 모른다. 이들 내부 피쳐들은 (예컨대, 하나의 지리적 영역에서 디바이스들에 대해 의도되는 인가가 또 다른 지리적 영역에서의 디바이스들 상에서 동작하지 않도록) 인가들을 제어하는데 사용될 수 있다.
내부 피쳐들은 디바이스 엘리먼트들을 제어하는데 사용되는 피쳐들과 유사한 방법으로 어드레스가능하며 제어된다. 내부 피쳐들은 디바이스의 엘리먼트들을 안내하는 좀더 구체적인 SM 코어 출력들에 이후 맵핑되는 더 높은 레벨 특권 또는 피쳐 조건을 나타내기 위해 사용될 수도 있다. 예를 들어, 내부 피쳐는 수치적인 속도 등급을 1 부터 7 까지 나타낼 수도 있으며, 반면 SM 코어 출력들은 속도 등급에 맵핑하는 더 많은 개수의 PLL 클록 제어 설정들을 설정하기 위한 제어 신호들을 포함한다. 이러한 방법으로, 추후 설명되는 바와 같이, 수치적인 속도 등급 설정은 그 동작이 특정의 속도 등급들에 제한되는 SM 코어 지령들을 형성하기 위한 조건으로서 사용될 수 있다. 또 다른 예에서, 내부 피쳐들은 부여된 그룹 식별자, 디바이스 식별자들, 또는 디바이스가 어떤 아이덴티티에 의해 패키징되거나, 제조되거나, 또는 판매되었다는 사실을 추적하기 위해 SM 코어 내에 사용될 수 있다. 이 예에서, 제조 엔터티는 그의 제조업자 ID 를 내부 피쳐에 프로그래밍하는 허가를 가진 위임 인가자 (220) 일 수 있다. SM-코어 지령들은 내부 피쳐들을 해석하고 그 결과들을 이용하여 SM 코어가 다른 피쳐들 또는 키들을 관리할지를 제어할 수 있다. 예를 들어, SM 코어는 어떤 키들을 단지 출력하거나 또는 특정의 네트워크 운영자에 의해 운영되는 디바이스들에 대해 또는 단지 소매-이전 (pre-retail) 상태에서의 디바이스들에 대해 어떤 디버그 설정들을 허용할 수도 있다.
도 2a 를 다시 참조하면, 구성기 시스템 (280) 은 또한 디바이스 특정의 키들을 SM 코어 키 인터페이스에 맵핑하도록 구성될 수도 있다. 구성기 시스템 (280) 은 이들 설정들 및 구성들을 관리하기 위해 칩 개발 동안 및 이후 양쪽에서 이용될 수 있다.
구성기 시스템 (280) 은 하나 이상의 구성기 입력 파일들, 하드웨어 ("HW") 상수들, 또는 이들의 어떤 조합을 수신하고, 그들을 프로세싱하여 하나 이상의 추출기 하드웨어 정의들, 하나 이상의 하위-추출기 하드웨어 정의들, 및 IC 구성 맵을 발생하도록 구성될 수도 있다. 발생된 정의들은 예를 들어, SM-이용가능 IC 의 구성요소들을 기술하는 Verilog 모듈들이다. 하나 이상의 구성기 입력 파일들은 SM-이용가능 IC 에 대한 특정의 구성을 정의하고, 리스트 SM-이용가능 IC 상의 하나 이상의 보안 키들 및 그들의 연관된 목적지들, SM 코어에 의해 관리되는 피쳐들의 이름들 및 어드레스들 등을 리스트할 수도 있다. 예를 들어, 하나 이상의 구성기 입력 파일들은 명명된 피쳐 신호들, 구성 비트들, 구성 비트들의 그룹핑, 보안 키 버스 출력들, 보안 키 버스 속성들, 보안 메모리 맵핑 속성들, 또는 이들의 어떤 조합과 같은 것을 규정하도록 구성될 수도 있다. 구성기 시스템 (280) 에 의해 관리되며 (예컨대, 실리콘에 고정되며, 동일한 마스크들로 제조되는 모든 칩들에 대해 공통인) 하드웨어에 내장될 수도 있는 하드웨어 상수들의 예들은, 예를 들어, 칩 제품 ID, 루트 인가자로부터의 하나 이상의 키들 (예컨대, 루트-인가자 시스템 공개 키), 위임 인가자로부터의 하나 이상의 키들, 하나 이상의 베이스 키들, 하나 이상의 추가적인 보안 키들, 에러 정정 데이터, 피쳐 제어들을 위한 디폴트 값들 등을 포함한다.
발생된 추출기 하드웨어 정의는 버스 출력들을 SM 코어로부터 여러 하위-추출기들로 라우팅하기 위해 IC 설계에 사용된다. 하위-추출기 하드웨어 정의들이 하나 이상의 구성기 입력 파일들에서 규정된 바와 같이, 피쳐 공간 비트들을 추출기로부터 명명된 피쳐들 및 키들에 맵핑하기 위해, IC 설계에 사용된다. 추출기 하드웨어 정의 및 임의의 하위-추출기 하드웨어 정의들은 추출기 및 하위-추출기들을 포함하는 SM-이용가능 IC 설계를 발생하기 위해 사용된다.
구성기 시스템 (280) 은 또한 기존 회로 설계 레이아웃의 변경을 최소화하는데 사용될 수도 있는, 구성에서의 변경들을 추적하는 상태 캐시를 이용하도록 구성될 수도 있다. 상태 캐시는 예를 들어, 맵 파일, IC 구성 맵 등일 수도 있다. 일부 실시형태들에서, 상태 캐시를 업데이트하는데 맵 파일을 이용하는 대신, 구성기 (280) 는 상태 캐시를 구현하기 위해 이전 출력을 재판독하도록 구성된다.
일부 실시형태들에서, 구성기 시스템 (280) 은 하나 이상의 지령 맵핑 파일들, 하나 이상의 펌웨어 맵핑 파일들, 및 하나 이상의 문서화 파일들을 추가로 발생하도록 구성될 수도 있다. 지령 맵핑 파일들은 예를 들어, 지령들을 SM-이용가능 IC 에 의해 이해가능한 형태로 맵핑하는데 사용되는 파일이다. 펌웨어 맵핑 파일들은 소프트웨어 개발에 요구되는 정의들 및 구조들을 포함하는 파일들 (예컨대, 헤더 및 소스 파일 등) 이다. 문서화 파일들은 SM-이용가능 IC 설계의 개관을 제공한다. 게다가, 문서화 파일들은 소프트웨어 구성요소들의 설계에 사용되는 환경 및 구성 원리들을 포함할 수 있다. 문서화 파일들은 다음 포맷들, 즉 XML, HTML, 텍스트, PDF, MICROSOFT WORD 등 중 하나 이상으로 존재할 수도 있다.
구성기 시스템 (280) 은 하나 이상의 SM-이용가능 ICs (265) 의 생산에 사용될 수도 있다. 미도시된 일부 실시형태들에서, 구성기 시스템 (280) 은 SM-이용가능 디바이스들 (240, 245, 250, 255, 및 260) 중 하나 이상의 생산에 사용될 수 있다. 구성기 시스템 (280) 은 하나 이상의 프로세서들 (미도시), 메모리 (미도시), 및 데이터 인터페이스 (미도시) 를 포함할 수 있다. 구성기 시스템 (280) 은 단일 컴퓨터 상에 구현될 수 있거나, 또는 일부 경우, 복수의 컴퓨터들 전체에 걸쳐서 분산될 수 있다.
도 3 은 본원에서 설명되는 방법들을 수행하는 SM 코어를 포함하는 시스템 (300) 의 예시적인 실시형태의 블록도이다. 시스템 (300) 은 SM 코어 (305), 보안 메모리 (310), 추출기 (320), 버스 (360), 프로세서 (355), 추출기 인터페이스 (375), 키 인터페이스 (376), 구성 값 인터페이스 (377), 호스트 메모리 (370), 피쳐들 (325, 330, 및 335), 하위-추출기들 (340, 345, 및 350), 레지스터 인터페이스 (358), 테스터 인터페이스 (365), 또는 이들의 어떤 조합을 포함할 수도 있다. SM-이용가능 IC 는 SM 코어 (305) 및 보안 메모리 (310) 를 포함하며, 옵션적으로, SM 시스템 (300) 의 나타낸 다른 엘리먼트들 (예컨대, 추출기 (320), 버스 (360), 프로세서 (355), 추출기 인터페이스 (375), 하위-추출기들 (340, 345, 및 350), 키 인터페이스 (376), 구성 값 인터페이스 (377), 호스트 메모리 (370), 피쳐들 (325, 330, 및 335) 등) 의 일부 (또는, 모두) 를 포함할 수도 있다. 단지 각각의 구성요소 중 하나가 도 3 에 도시되지만, 시스템 (300) 은 명명된 구성요소들의 임의의 구성요소 중 2 이상을 포함할 수도 있는 것으로 이해되어야 한다. 예를 들어, 시스템 (300) 은 다수의 프로세서들 (355) 을 가질 수도 있다. 이와 유사하게, 도 3 의 예시적인 시스템은 단일 SM 코어 (305) 와 함께 도시되지만, SM-이용가능 IC 는 다수의 SM 코어들 (305) 을 포함할 수도 있다. 또, 일부 실시형태들에서, 시스템 (300) 은 테스터에 (광학적, 전기적, 또는 무선 송신을 이용하여 통신가능하게 커플링되는 것처럼) 동작가능하게 커플링될 수도 있는 테스터 인터페이스 ("I/F") (365) 를 포함할 수도 있다. 미도시된 일부 실시형태들에서, 하나 이상의 하위-추출기들 (340, 345, 및 350) 은 추출기 (320) 와 결합될 수도 있다.
게다가, 일부 실시형태들 (미도시) 에서, SM 코어 (305) 는 하나 이상의 피쳐들 (미도시) 과 직접 접속할 수도 있으며, 모든 이러한 접속들이 직접 처리되면, 추출기 (320) 및 하위-추출기들은 필요되지 않을 수도 있다. 그리고, 일부 실시형태들에서, 피쳐들 (325, 330, 및 335) 은 추출기 (320), 하나 이상의 하위-추출기들 (예컨대, 340, 345, 및 350), 및 인터페이스들 (375, 376, 377) 을 이용하여 계속해서 접속될 수도 있다.
게다가, SM 코어 (305) 는 신호들을 직접 판독하여 시스템 (300) 의 다른 구성요소들에 기록할 수도 있다. 일부 실시형태들에서, SM 코어 (305) 는 예를 들어, 전용 인터페이스 (미도시) 를 통해서 또는 버스 (360) 를 통해서 시스템 상태를 샘플링하거나, 데이터 파라미터들을 판독하거나 등등을 할 수도 있다. 예를 들어, SM 코어 (305) 는 버스 (360) 에 걸쳐서 판독 동작들을 발하여, 원하는 정보를 획득할 수도 있다.
시스템 (300) 은 보안 메모리 (310) 를 포함한다. 보안 메모리 (310) 는 단일 보안 메모리 및/또는 다수의 동종 또는 이종 보안 메모리들일 수 있다. 보안 메모리 (310) 는 각각의 비트의 설정이 비휘발성 형태로 고정될 수도 있는 디지털 메모리의 유형일 수도 있다. 보안 메모리 (310) 는 예를 들어, 퓨즈 메모리, 안티퓨즈 메모리, 일회 프로그래밍가능 ("OTP") 메모리, 소거가능한 프로그래밍가능 판독전용 메모리 ("EPROM"), 전기적으로 소거가능한 프로그래밍가능 판독전용 메모리 ("EEPROM"), (배터리-백업형 RAM 을 포함한) RAM, 또는 이들의 어떤 조합을 포함할 수도 있다. 일부 실시형태들에서, 보안 메모리 (310) 가 퓨즈 또는 안티-퓨즈 메모리인 경우, 보안 메모리 (310) 는 (예컨대, 이전에-기록된 데이터를 오버라이드하거나 또는 재맵핑함으로써) 보안 메모리 (310) 에 이전에 저장된 정보를 수정하는 능력을 제공하는 여분의 경로들을 포함할 수도 있다. 현존하는 기술 및 보안 피쳐들에 따라서, 보안 메모리 (310) 의 콘텐츠는 암호화되거나 및/또는 인증될 수도 있으며, SM 코어 (305) 대신 블록들에 의한 판독들로부터 보호될 수도 있으며, 일회-프로그래밍가능하도록 구성될 수도 있다. 또한, 보안 메모리 (310) 는 단지 SM 코어 (305) 가 보안 메모리 (310) 에 접속되도록, 또는 SM-이용가능 IC 의 다른 구성요소들이 보안 메모리 (310) 로부터 판독될 수도 있지만 단지 SM 코어 (305) 가 보안 메모리 (310) 에 기록할 수도 있도록, 분리될 수도 있다. 보안 메모리 (310) 는 또한 SM 코어 (305) 가 아닌 SM-이용가능 IC 의 구성요소들에 의해 판독될 수도 있는 하나 이상의 부분들, 및 SM 코어 (305) 에 의해 단지 판독될 수도 있는 하나 이상의 부분들로 파티셔닝될 수도 있다. SM 코어 (305) 는 보안 메모리 (310) 에 대해 모든 제조 테스트 및 프로그래밍 동작들을 수행하는 것을 직접 담당할 수도 있다. 게다가, 일부 실시형태들에서, 보안 메모리 (310) 는 예를 들어, IC 로부터 어떤 층들을 제거하거나, IC 의 현미경 사진들을 캡쳐하거나, 또는 동작 동안 IC 를 전기적으로 탐침함으로써 그의 콘텐츠를 학습하려는 노력들을 방해하도록 설계된다. 게다가, 일부 실시형태들에서, SM 코어 (305) 는 래퍼 (315) 를 포함한다. 래퍼 (315) 는 SM 코어 (305) 로부터의 요청들을 보안 메모리 (310) 에 의해 이해되는 요청들로 변환하며, 반대의 경우도 가능하다. 일부 실시형태들에서, 보안 메모리 (310) 는 SM 코어 (305) 에 통합될 수도 있다.
시스템 (300) 은 하나 이상의 피쳐들 (325, 330, 및 335) 을 포함한다. 하위-추출기들 (340, 345, 350 ) 을 통해서 피쳐들 (325, 330, 및 335) 로 전달되는 입력들이 일반적으로 구성가능하며, 이에 따라서, (예컨대, 키 관리 및 피쳐 관리 동작들을 통한) 피쳐들 (325, 330, 및 335) 과 연관되는 기능의 구성성 (configurability) 을 제공한다. 이러한 구성 변경들은 레지스터 인터페이스 (358) 를 통해서 SM 코어 (305) 로 전달되는 (아래에 설명되는) SM 지령들에 의해 수행될 수도 있다.
피쳐들 (325, 330, 및 335) 은 하드웨어, 소프트웨어, 및 이들의 조합들을 포함할 수도 있다. 예를 들어, 피쳐들 (325, 330, 및 335) 은 위성 위치확인 서비스, 하나 이상의 프로세서들 (예컨대, CPU, 그래픽스 프로세서, 암호화 코어 등), 추가적인 메모리, USB 포트들, 비디오 입력 또는 출력 포트들, 오디오 입력 또는 출력 포트들, 진보된 그래픽들 능력들 (예컨대, 화면 속 화면, 다수의 HD 비디오 스트림들, 그래픽들 가속도 등) 을 제공하는 회로, 하나 이상의 네트워크들 (예컨대, Wi-Fi, 근거리장, BLUETOOTH 등) 에의 접속을 위한 네트워크 송수신기들, 카메라들 등일 수도 있다 상기 피쳐들의 리스팅은, 피쳐들이 키 관리 또는 피쳐 관리 동작들을 통해서 구성가능한 임의의 구성요소 또는 능력을 포함할 수도 있기 때문에, 제한하는 것으로 간주되지 않아야 한다. 피쳐 능력들은 위에서, 예를 들어, 도 2a 를 참조하여, 그리고 아래에서, 예를 들어, 피쳐 관리 섹션에서 설명된다. 일부 실시형태들에서, 피쳐 또는 피쳐의 일부가 제 3 자 IP 제공자에 의해 제공된다. 피쳐들 (325, 330, 및 335) 은 하위-추출기들 (340, 345, 및 350) 과 각각 연관된다. 미도시된 일부 실시형태들에서, 다수의 피쳐들이 단일 하위-추출기를 공유할 수도 있다. 하위-추출기들 (340, 345, 및 350) 은 SM-이용가능 IC 설계들 전반에 걸쳐서 (구성 값들 및 키들과 같은) SM 코어 출력들의 전달을 촉진한다. 게다가, 위에서 설명한 바와 같이, 하위-추출기들 (340, 345, 및 350) 은 옵션적이며, (최고-레벨 ASIC 플로어플래닝 (floorplanning) 및/또는 라우팅이 도전적인 것들을 포함한) 다수의 피쳐들을 포함하는 크거나 또는 복잡한 SM-이용가능 ICs 에 일반적으로 사용된다. 추출기 (320) 는 출력들을 SM 코어 (305) 로부터, 결국 신호들을 피쳐들 (325, 330, 및 335) 로 각각 전달하는 하위-추출기들 (340, 345, 및 350) 로 전달하도록 구성된다.
예시적인 시스템 (300) 은 추출기 (320) 를 포함한다. 추출기 (320) 는 정보 (예컨대, 키들 및 피쳐 상태) 를 수신하여, SM 코어 (305) 로부터 의도된 목적지 피쳐와 연관되는 적합한 하위-추출기(들) 로, 그 피쳐에 적합한 형태로 라우팅하도록 구성된 하드웨어 구성요소이다. 피쳐 상태는 목적지 피쳐에 의해 이해될 수 있는 형태가 되도록, SM-코어 (305) 그리고 어쩌면 추출기 (320) 에 의해 프로세싱된 정보를 지칭한다. 피쳐 상태는 피쳐 공간에서 하나 이상의 연관된 어드레스들을 가질 수도 있다. 일 예로서, 피쳐 상태는 인에이블 신호들, 메타데이터, 구성 또는 보정 정보, 또는 피쳐들에 유용한 다른 데이터를 포함할 수도 있다.
추출기 (320) 는 SM 코어 (305) 에, 그리고 하나 이상의 피쳐들 (예컨대, 피쳐 (325), 피쳐 (330), 및 피쳐 (335)) 에 동작가능하게 커플링된다. 일부 실시형태들에서, 추출기 (320) 는 SM 코어 (305) 에 추출기 인터페이스 (375) 를 통해서 커플링된다. 추출기 인터페이스 (375) 는 SM 코어 (305) 로부터 추출기 (320) 로의 (피쳐 데이터, 보안 키들, 및 기타 등등과 같은) 정보의 통신을 제공한다. 피쳐 데이터는 비밀이거나 또는 비밀이 아닐 수도 있으며, 그리고 피쳐를 구성하는데 사용되는 일반적인 데이터이다. 추출기 인터페이스 (375) 는 SM 코어 (305) 를 추출기 (320) 에 커플링하는 와이어들을 포함할 수도 있다. 추출기 (320) 는 그후 그 정보를 각각의 목적지 피쳐와 연관되는 하위-추출기(들) 로 키 인터페이스 (376), 구성 값 인터페이스 (377), 또는 이들의 조합을 통해서 전달한다. 키 인터페이스 (376) 는 비밀 정보 (예컨대, RSA 및 EC-DSA 와 같은 공개 키 시스템들에 대한 사설 키들, AES 또는 삼중 DES 와 같은 암호시스템들에 대한 대칭 키들, 및 HDCP 또는 EMV 와 같은 프로토콜들에 대한 키들과 같은, 암호 키들) 을 전달하도록 구성된 통신 경로이다. 예를 들어, 추출기 (320) 는 128-비트 키 및 목표 키 어드레스를 하나 이상의 피쳐들 (예컨대, 325, 330, 및/또는 350) 로 키 인터페이스 (376) 를 통해서 통신할 수도 있다. 추출기 (320) 는 목적지 피쳐와 연관되는 특정의 하위-추출기를 식별하기 위해 목표 어드레스를 디코딩하도록 구성될 수도 있다. 예를 들어, 하위-추출기 (340), 하위-추출기 (345), 및 하위-추출기 (350) 는 피쳐들 (325, 330, 및 335) 과 각각 연관된다. 구성 값 인터페이스 (377) 는 피쳐 관리 동작들과 연관되는 피쳐 데이터를 전달하도록 구성된 통신 경로이다. 예를 들어, 하나 이상의 피쳐들 (예컨대, 325, 330, 335, 또는 이들의 어떤 조합) 이 구성되거나 또는 인에이블되면, 추출기 (320) 는 그 피쳐 데이터를 적합한 하위-추출기로 구성 값 인터페이스 (377) 를 통해서 전달한다. 이와 유사하게, 특정의 피쳐가 주어진 어드레스들과 연관되는 값들을 필요로 하지 않으면 (및/또는 보안상 이유들로, 수신하도록 허용되지 않으면), 추출기 및/또는 하위-추출기는 목적지들에 이 값들을 알려주지 않을 수 있다. 불필요한 값들을 알려주지 않는 것은 그들을 필요로 하지 않는 하위-추출기들 또는 피쳐들로의 값들의 불필요한 라우팅 및 전달을 회피함으로써 ASICs 에 대한 효율을 향상시킬 수 있다. 일부 실시형태들에서, 추출기 인터페이스 (375) 는 SM 코어 (305) 로부터 추출기 (320) 로의 정보의 양방향 통신을 제공한다. 다른 실시형태들에서, 추출기 인터페이스 (375) 는 SM 코어 (305) 로부터 추출기 (320) 로의 정보의 1-방향 통신을 제공한다. 키 인터페이스 (376) 및 구성 값 인터페이스 (377) 는 SM 추출기 (320) 를 하나 이상의 하위-추출기들 (240, 234, 및 350) 에 커플링하는 와이어들을 포함할 수도 있다.
추출기 인터페이스 (375), 키 인터페이스 (376), 및 구성 값 인터페이스 (377), 또는 이들의 어떤 조합은, SM 코어 (305) 를 추출기 (320) 및 하위-추출기들 (340, 345, 및 350) 에 커플링한다. 인터페이스들의 조합은 예를 들어, 데이터 값들을 연속적으로 전송함으로써, 값 변경 (change-of-value) 이벤트가 발생하거나 (예컨대, 피쳐를 인에이블하거나) 또는 (예컨대, 피쳐가 파워온이기 때문에) 요청이 수신될 때 데이터를 전송함으로써, 또는 이들의 어떤 조합으로서, 데이터를 SM 코어 (305) 로부터 특정의 피쳐로 송신할 수도 있다.
SM 코어와 연관된 피쳐 공간의 각각의 엘리먼트의 현재 값은 예를 들어, (아래에 설명되는) 보안 메모리 (310), 또는 SM 사설 메모리들에 저장될 수도 있다. 일부 실시형태들에서, 주어진 동작 (예를 들어, 아래에서 설명되는, RSB 또는 DSB 의 프로세싱) 은 단지 피쳐 공간의 엘리먼트들의 서브세트를 업데이트할 수도 있다. 값 변경 이벤트들이 SM 코어 (305) 로부터 추출기 (320) 로 통신되는 실시형태들에서, (비록 요구되지는 않지만) 단지 특정의 페이로드에 의해 영향을 받는 피쳐 공간의 엘리먼트들의 값들이 그 페이로드의 프로세싱 시에, SM 코어 (305) 로부터 추출기 (320) 로 통신될 것으로 예상된다. 피쳐 공간에서의 값들의 모두가 SM 코어 (305) 로부터 추출기 (320) 로 연속적으로 움직여지는 실시형태들에서, 특정의 페이로드에 의해 영향을 받는 값들은 예컨대, 추출기 (320) 로의 통신을 위해 SM 사설 메모리로부터의 영향을 받지 않은 피쳐 공간의 이전 값들과 결합될 수도 있다.
시스템 (300) 은 프로세서 (355) 를 포함할 수도 있다. 프로세서 (355) 는 예를 들어, 단일 또는 다중 마이크로프로세서들, 필드 프로그래밍가능 게이트 어레이 (FPGA) 엘리먼트들, 또는 디지털 신호 프로세서들 (DSPs) 일 수도 있다. 프로세서 (355) 의 구체적인 예들은 예를 들어, x86 프로세서, ARM 프로세서, MIPS 마이크로프로세서, 8051 마이크로제어기 등이다. 프로세서 (355) 는 SM 코어 (305), 호스트 메모리 (370), 테스터 I/F (365), 또는 이들의 어떤 조합에, 버스 (360) 를 통해서 커플링될 수도 있다. 일부 실시형태들에서, 프로세서 (355) 는 SM 코어 (305) 와 직접 통신하거나, SM 코어 (305) 를 통해서 보안 메모리 (310) 를 판독하고 프로그래밍하거나, SM 코어 (305) 상태 및 시스템 상태를 취출하거나, 지령들을 SM 코어 (305) 로 전송하거나, SM 코어 (305) 로부터 소프트웨어 프로세서 (355) 에 의한 실행을 위해 인가된 (부트 루틴들, 운영 시스템 구성요소들, 애플리케이션들 등과 같은) 암호 해시들을 수신하거나, 또는 이들의 어떤 조합을 행하도록 구성될 수도 있다. 게다가, 이들 액세스들을 수행하는 복수의 프로세서들이 있을 수도 있다. 게다가, 일부 실시형태들에서, 프로세서 (355) 는 더 높은 특권의 코드 (higher privileged code) 를, 예를 들어, ARM TrustZone® 를 이용하여, 링 0 에서, 또는 보안 가상 머신 모니터 (SVMM) 에서 실행하는 능력을 갖는다. 낮은-특권의 프로세서 (355) 또는 프로세스는 SM 코어 (305) 의 일부 또는 모든 능력들을 이용하여 차단될 수도 있다. 레지스터 인터페이스 (358) 는 요청의 아이덴티티 및 특권 레벨을 통신하는데 이용될 수도 있으며, SM 코어 (305) 는 레지스터 인터페이스 (358) 를 통해서 수신된 SM 지령들을 받아 들여 프로세싱할 때 요청자의 특권 레벨을 고려할 수 있다.
시스템 (300) 은 호스트 메모리 (370) 를 포함할 수도 있다. 호스트 메모리 (370) 는 휘발성 (예컨대, SRAM, DRAM, 또는 다른 반도체 메모리) 또는 비-휘발성 (예컨대, 하드 디스크, R/W 광 디스크, 플래시 드라이브), 또는 이들의 어떤 조합일 수도 있다. 호스트 메모리 (370) 는 프로세서 (355), SM 코어 (305), 테스터 I/F (365), 또는 이들의 어떤 조합에 동작가능하게 커플링된다. 이 실시형태에서, 호스트 메모리 (370) 는 시스템 (300) 의 하나 이상의 구성요소들에 버스 (360) 를 통해서 커플링된다.
시스템 (300) 은 테스터 I/F (365) 를 포함할 수도 있다. 테스터 I/F (365) 는 테스터 시스템(들) (미도시) 에 대한 인터페이스이다. 테스터 I/F (365) 는 예를 들어, SM 코어 (305) 가 제조 상태에 있을 때, SM-이용가능 IC 가 인-필드에 있을 때, 프로세서 (355) 가 아직 동작하지 않을 때 (또는, 오동작하고 있을 때), 또는 이들의 어떤 조합일 때, SM 코어 (305) 로의 통신 경로를 제공하도록 구성될 수도 있다. 테스터 I/F (365) 는 스캐닝 인터페이스, 테스트 인터페이스, 연합 검사 수행 그룹 ("JTAG") 인터페이스, 범용 직렬 버스 인터페이스, 진보된 주변장치 버스 ("APB") 인터페이스 등일 수도 있다. 테스터 시스템은 올바른 동작에 대해 시스템 (300) 을 테스트할 수 있도록 시스템 (300) 에 커플링될 수도 있다. 예를 들어, 테스터 시스템은 시스템 (300) 이 피쳐들을 인에이블하거나, 피쳐들을 디스에이블하거나, 보안 메모리 (310) 를 프로그래밍하는 등을 보장하도록 구성될 수 있다. 테스터 시스템은 하나 이상의 프로세서들 및 메모리를 포함할 수도 있으며, SM 코어 (305) 에서의 동작들을 인가하는 위임 인가 시스템과 통신할 (또는, 포함할) 수도 있다.
시스템 (300) 은 SM 코어 (305) 를 포함한다. SM 코어 (305) 는 보안 메모리 (310), 추출기 (320), 및 프로세서 (355), 호스트 메모리 (370), 및 테스터 I/F (365) 에 레지스터 인터페이스 ("I/F") (358) 및 버스 (360) 를 통해서 동작가능하게 커플링될 수도 있다. 게다가, 일부 실시형태들 (미도시) 에서, SM 코어 (305) 는 프로세서 (355), 호스트 메모리 (370), 및 테스터 I/F (365) 의 일부 또는 모두에 직접 접속될 수도 있다. SM 코어 (305) 는 하나 이상의 SM 사설 메모리들 (미도시) 을 포함한다. 이들 하나 이상의 사설 메모리들은 하나 이상의 보안 키들 (예컨대, 베이스 키들, 개인화 키들, 전송 키들, 네트리스트 키들, 루트 또는 위임 인가자 공개 키들 등), 보안 메모리 (310) 내 로케이션들로의 하나 이상의 포인터들, 래퍼 (315) 에 대한 명령들, 피쳐 어드레스들과 연관되는 현재 구성 상태, 지령 프로세싱 중재자들 등을 포함한, SM 코어에 의해 사용되는 데이터를 저장하는데 사용될 수도 있다. 일부 실시형태들에서, 하나 이상의 보안 키들 및 제품 칩 ID 는 SM 코어 (305) 에 하드-와이어될 수도 있다 (예컨대, 루트-인가자 공개 키들, 보안 메모리 (310) 가 오동작하고 있거나 또는 미구성되면 이용가능해야 하는 베이스 키들 등). 하나 이상의 보안 키들은 대칭 키들, 공개 비대칭 키들, 사설 비대칭 키들, 또는 이들의 어떤 조합을 포함할 수도 있다. 일부 실시형태들에서, 하나 이상의 보안 키들은 SM 코어에 고유하며, 다른 것들은 SM 코어들의 시리즈 간에 공유될 수도 있다. SM 코어 시리즈는 어떤 점에서 관련될 수도 있는 SM 코어들의 세트를 지칭한다. 예를 들어, 주어진 마스크 설계로부터 제조된 SM-이용가능 ICs 의 모두에서의 SM 코어들은 시리즈로서 간주될지도 모른다. 이의 대안으로, 유사한 SM-이용가능 ICs 의 패밀리 중 임의의 패밀리에서 SM 코어들의 모두가 시리즈로 간주될지도 모른다.
예시적인 실시형태에서, SM 코어 (305) 는 도 4 를 참조하여 추가로 설명되는, 제로 이상의 위임 서명된 블록들 ("DSBs") 뿐만 아니라 루트-서명된 블록 ("RSB") 를 포함할 수도 있는 하나 이상의 서명된 블록들을 수신하도록 구성된다. SM 코어 (305) 는 서명된 블록들과 연관되는 서명들을 검증하고, 하나 이상의 피쳐들 (예컨대, 325, 330, 335) 에 대해 의도된 값들 (예컨대, 구성 설정들 또는 키들) 뿐만 아니라 제한 사항들/바인딩들 (이하 참조) 을 규정하는 연관된 페이로드를 추출하도록 구성된다. 제한 사항들의 예들은 (피쳐 어드레스 공간에 저장된 값들에 대한 요구된 상태들, 또는 특정의 디바이스 ID 를 지시하는 한계들, 또는 피쳐들이 조작될 수 있는 것에 대한 한계들 등과 같은) SM 코어들이 페이로드를 받아들여야 하는 것에 대한 한계들을 포함하며, SM 코어 (305) 는 루트 인가자의 공개 키를 이용하여 페이로드를 인증하고, 그리고, 예를 들어, SM-이용가능 IC 에 내장되거나 또는 보안 메모리 (210) 에 저장된 값들로부터 유도된 사설 키를 이용하여, 서명된 블록들로부터 페이로드를 추출하도록 (예컨대, 암호화하도록) 구성될 수도 있다. SM 코어 (305) 는 페이로드를 프로세싱하는 일부 또는 결과들을 의도된 하나 이상의 피쳐들 (예컨대, 325, 330, 335) 로 추출기 (320) 를 통해서 배포하도록 구성된다.
일부 실시형태들에서, SM 코어 (305) 는 SM-이용가능 IC 의 피쳐 상태를 업데이트하는 명령들을 실행하거나, 피쳐들로의 키 전달을 촉진하거나, (예컨대, 있다면, 보안 메모리 (310) 에 기록하는데 필요한 파라미터들을 구성하기 위해) 보안 메모리 (310) 의 구성을 인에이블하는 등을 행하도록 구성될 수도 있다. 예를 들어, SM 코어 (305) 는 피쳐 (325) 를 디스에이블하고 피쳐 (330) 를 인에이블하도록 명령받을 수도 있다. 제공되는 실시형태 및 명령들에 따라서, SM 코어 (305) 는 (예컨대, 보안 메모리 (310) 를 업데이트함으로써) 영속적인 (persistent) 변경들을, (예컨대, SM 사설 메모리를 업데이트함으로써) 비-영속적인 (non-persistent) 변경들을, 또는 양쪽을 행할 수도 있다. 영속적인 변경들은, IC 인에이블 칩이 리-부트한 후 그 변경이 지속하도록, SM-이용가능 IC 가 파워 다운된 후에 지속하는 변경들이다. 비-영속적인 변경들은 미리 결정된 시간 기간 또는 이벤트들에 대해 지속하는 변경들이다. 예를 들어, 비-영속적인 변경은 실행들의 어떤 횟수 동안, 전력이 디바이스 상에서 손실될 때까지 등 동안 단지 우수할 수도 있다. SM 코어 (305) 는 보안 디지털 ("SD") 카드 암호화, 플래시 메모리/하드 디스크 암호화, 높은-대역폭 디지털 콘텐츠 보호 ("HDCP"), 디지털 권리들 관리 ("DRM") 시스템들, 가상 사설 네트워크(들) ("VPN"), 지급 수단들 (예컨대, EMV), 패스워드 관리기들, 라디오 링크 암호화, 주변장치 인증, 다른 보안 동작들 등에 대한 키들을 관리하고 전달하도록 구성될 수도 있다.
게다가, SM 코어 (305) 는 IC 구성 프로세스에 사용될 수도 있는 하나 이상의 하드웨어 ("HW") 상수들을 수신하도록 구성될 수도 있다. HW 상수들은 예를 들어, 제품 칩 ID, 루트-인가자 시스템에 대한 (RSA 또는 EC-DSA 공개 키와 같은) 하나 이상의 키들, 위임-인가자 시스템으로부터의 하나 이상의 키들, 하나 이상의 베이스 키들, 하나 이상의 추가적인 보안 키들, SM 코어 (305) 동작에 대한 파라미터들 (예컨대, 메모리 사용, 지원되는 지령들 등), 에러 정정 데이터 등을 포함할 수도 있다. 제품 칩 ID 는 특정의 SM-이용가능 IC, 또는 특정의 SM-이용가능 IC 시리즈, 또는 양쪽을, 식별 값으로 고유하게 식별할 수 있다. 보안 키들은 대칭적이거나 또는 비대칭적일 수도 있다 (그리고, 비대칭적이면, 공개 또는 사설). 일부 실시형태들에서, 하나 이상의 베이스 키들은 마스터 키, SM-이용가능 IC 시리즈의 식별 코드, 칩-특정의 식별자, 또는 이들의 어떤 조합으로부터 유도될 수도 있다. 에러 정정 데이터는 예를 들어, 보안 키들 중 하나 이상과 관련된 체크섬들 (checksums) 을 포함할 수 있다.
SM 코어 (305) 는 프로세서 (355) 에 대한 인터럽트들을 발생하도록 구성될 수도 있다. 예를 들어, SM 코어 (305) 는 SM-이용가능 IC 의 피쳐 상태가 업데이트되었을 때, 추가적인 I/O 를 수신할 준비가 되어 있을 때, 키가 출력되었을 때 등등일 때 인터럽트를 발생하도록 구성될 수도 있다.
SM 코어 (305) 는 하나 이상의 내장 자체 검사들 (self checks) 을 실행하도록 구성될 수도 있다. 예를 들어, SM 코어 (305) 는 처음 파워업될 때, 테스트 인터페이스의 제어하에서 등등일 때, 자체-체크를 수행하도록 구성될 수도 있다.
일부 실시형태들에서, 시스템 (300) 은 도 3 에 나타낸 구성요소들의 모두를 결합하는 (시스템온칩과 같은) 단일 IC, 또는 (프로세서 (355) 및 호스트 메모리 (370) 를 제외한 모두와 같은) 구성요소들의 대부분이다.
일부 실시형태들에서, 시스템 (300) 의 모두 또는 일부는 외부 소스들에 의해 변조하는 것을 방지하도록 구성될 수도 있다. 예를 들어, SM 코어 (305) 는 보안 메시 (미도시) 를 포함하거나 또는 보안 메시 (security mesh ) 하에서 제조될 수도 있다. 보안 메시는 1차 로직 회로들의 상부에, 예컨대, 집적회로 상의 상부 금속 층들 중 하나 이상을 이용하여 제조되는 와이어 네트워크이다. 보안 메시는 그 메시를 포함하는 와이어들에 대한 손상들 검출하도록 의도된 활성 센서 네트워크와 페어링될 수도 있다. 이 실시형태에서, SM 코어 (305) 는 보안 메시 와이어링의 일부가 손상되었다고 활성 센서가 표시하면, 민감한 동작들을 수행하는 것을 거부하도록 구성된다. 게다가, SM 코어 (305) 는 보안 메모리 (310) 를 소거하는 것과 같은, 다른 대책들을 수행하도록 구성될 수도 있다.
도 4 는 예시적인 SM 코어 (305) 의 블록도를 도시한다. 예시적인 SM 코어 (305) 는 암호화 모듈 (410), 실행 엔진 모듈 (420), 통신 모듈 (430), 및 데이터 저장 모듈 (440), 또는 이들의 어떤 조합을 포함할 수도 있다. 이들 모듈들 중 하나 이상이 삭제되거나, 수정되거나, 또는 다른 모듈들과 함께 결합될 수 있다는 것을 명백히 알 수 있다.
암호화 모듈 (410) 은 인증, 암호화 기능, 암호해독 기능, 또는 이들의 어떤 조합을 제공하도록 구성된, 하드웨어 구성요소, 소프트웨어 구성요소, 또는 이들의 조합일 수도 있다. 예를 들어, 암호화 모듈 (410) 은 대칭 암호화 기능, 대칭 암호해독 기능, 비대칭 암호화 기능, 비대칭적인 암호해독 기능, 비대칭적인 서명/서명 검증, 키 합의, 또는 이들의 어떤 조합을 제공하도록 구성될 수도 있다. 일부 실시형태들에서, 암호화 모듈 (410) 은 루트 서명된 블록 ("RSB") 과 연관되는 하나 이상의 디지털 서명들을 검증하도록 구성될 수도 있다. RSB 는 예를 들어, 하나 이상의 SM 지령들, 지령 템플릿들, 하나 이상의 위임 허가들, 하나 이상의 키들 (예컨대, 위임 공개 키), 또는 이들의 어떤 조합을 포함할 수 있다. RSB 는 루트-인가자의 사설 키 (즉, 루트-인가자 시스템 (217) 의 사설 키) 에 의해 서명된 적어도 하나의 디지털 서명을 포함한다. 암호화 모듈 (410) 은 RSB 의 디지털 서명을 대응하는 루트 인가자 공개 키를 이용하여 인증하도록 구성될 수도 있다. 일부 실시형태들에서, 인증은 RSA, DSA, 또는 ECDSA 를 이용하여 수행될 수도 있다. (SM-이용가능 IC 로부터의 인증 비밀의 추출이 관심사가 아닌 것들과 같은) 다른 실시형태들에서, 인증은 HMAC 와 같은, 대칭 인증 방식을 이용하여 수행될 수도 있다. 인증 방식은 이들 또는 다른 알고리즘들의 조합을 이용할 수도 있다. 인증 방식은 PKCS#1 또는 ANSI X9 와 같은 표준을 구현할 수도 있거나, 또는 독점적일 수도 있다.
게다가, 암호화 모듈 (410) 은 위임 서명된 블록 ("DSB") 과 연관되는 하나 이상의 디지털 서명들을 검증하도록 구성될 수도 있다. DSB 는 예를 들어, 하나 이상의 SM 지령들, (암호화된 또는 미암호화된) 페이로드, 하나 이상의 키들, 또는 이들의 어떤 조합을 포함할 수도 있다. 일 실시형태에서, 각각의 DSB 는 위임 인가자의 공개 키를 규정하고 인가하는 RSB 보다 항상 선행된다. DSB 는 위임-인가자 시스템 (예컨대, 위임-인가자 시스템 (222)) 에 의해 서명된 적어도 하나의 디지털 서명을 포함할 수도 있다. 유효한 DSB 의 수신 및 검증 후, 암호화 모듈 (410) 은 (DSB 에 적합한 경우) 하나 이상의 혼합 키들, 하나 이상의 전송 키들, 하나 이상의 검증자들 (예컨대, 키 검증에 사용되는 값들), 또는 이들의 어떤 조합을, SM-이용가능 IC 에서의 하나 이상의 베이스 키들을 이용하여, 유도할 수도 있다. 게다가, 암호화 모듈 (410) 은 하나 이상의 베이스 키들을 형성하기 위해 복수의 키스플릿들을 결합하도록 구성될 수도 있다.
게다가, 일부 실시형태들에서, RSB 및/또는 DSB 는 암호화된 페이로드 부분(들) 을 포함할 수도 있다. 이 실시형태에서, 암호화 모듈 (410) 은 암호화된 페이로드 부분(들) 을, 예컨대 베이스 키들 또는 베이스 키들로부터 유도된 키들을 이용하여, 암호화해제하여 입증하도록 구성될 수도 있다. 암호화 모듈 (410) 은 일단 RSB, 또는 DSB, 또는 양쪽이 인증되면, 검증된 지령들을 실행 모듈 (420) 에 제공하도록 구성된다. 암호화 모듈 (410) 은 실행 엔진 모듈 (420), 통신 모듈 (430), 및 데이터 저장 모듈 (440) 에 커플링될 수 있다.
게다가, 허용가능 허가들의 세트에 종속하는, DSB 는 또 다른 다음 DSB 와 연관된다는 것을 표시할 수도 있으며, 다음 DSB 를 제 1 DSB 와는 상이한 (예컨대, 더 좁은) 허용가능 허가들의 세트에 추가로 제한할 수도 있다.
일부 실시형태들에서, 암호화 모듈 (410) 은 레지스터 I/F (예컨대, 레지스터 I/F (358)) 를 이용하여 테스터 또는 CPU 애플리케이션와 같은 SM 코어 외부에 있는 디바이스 또는 구성요소와, 무작위 세션 키를 협상하도록 구성될 수도 있다. 협상된 세션 키는 예를 들어, 보안 터널을 개방하거나 또는 후속 RSB, DSB, 또는 양쪽에서 통신되는 비밀들을 보호하는데 사용될 수 있다.
게다가, 예시적인 RSBs 및 DSBs 의 양태들은 도 5 내지 도 9b 를 참조하여 아래에서 자세히 설명된다.
실행 엔진 모듈 (420) 은 SM 지령들을 수신하여 실행하도록 구성된, 하드웨어 구성요소, 소프트웨어 구성요소, 또는 이들의 조합일 수도 있다. SM 지령들은 루트-인가자 시스템 (예컨대, 루트-인가자 시스템 (217)), 위임-인가자 시스템 (예컨대, 위임-인가자 시스템 (222)), (예컨대, 부트 프로세스 동안) SM 코어 (305) 와 연관되는 보안 메모리 (예컨대, 보안 메모리 (310)), 또는 이들의 어떤 조합으로부터 수신될 수도 있다. SM 지령들은 예를 들어, 로드 지령들, 키 유도 지령들, 암호해독 지령들, 보안 메모리 기록 지령들, 조건부 연산들, 정책 구성 동작들 등을 포함할 수도 있다. 로드 지령들은 예를 들어, 피쳐들로 전달되는 구성 출력들에 대한 및/또는 SM 코어에 내부적으로 사용되는 상태에 대한 비-영속적인 변경들을 가능하게 할 수도 있다. 키 유도 지령들은 아래에서 자세히 설명되는 바와 같이 예를 들어, 키 트리를 이용하여, 베이스 키로부터 하나 이상의 보안 키들을 유도하는데 이용될 수도 있다. 암호해독 지령들은 수신된 페이로드를 암호화해제할 때에 그리고 비밀 키들 출력을 암호화해제하여 피쳐들로 출력할 때에 사용될 수도 있다. 보안 메모리 기록 지령들은 특정의 명령들 또는 다른 변경들을 보안 메모리에 기록하는데 사용될 수도 있다. (예를 들어, 기록 지령은 SM-이용가능 IC 에 대한 영속적인 변경을 행하는데 사용될 수도 있다.) 조건부 연산들이 다른 지령들이 특정의 SM 코어 상에서 실행하는데 적합한지 여부 (또는 어느 다른 지령들이 특정의 SM 코어 상에서 실행하는데 적합한지 여부) 를 결정하는데 사용될 수도 있다. 정책 구성 동작들이 다른 지령들이 행할 수도 있는 것에 대한 한계들 규정하는데 사용될 수도 있다 (이하 참조).
위에서 설명한 SM 지령들에 추가하여, 일부 SM 지령들 (예컨대, 정책 구성 지령들) 은 예를 들어, RSB 또는 DSB 의 사용을, 특정의 제품 칩 ID 에; 제품 칩 IDs 의 범위에; 특정의 제품 제조업자에; SM 코어에 의해 관리되는 임의의 피쳐 구성의 값에 기초하여, 주어진 칩 시리즈에; 블록을 이용할 때 위임자가 어떤 피쳐(들) 을 테스트하는 것을 요구하는데; 또는 이들의 어떤 조합에 제한할 수도 있다. 일부 실시형태들에서, SM 지령들은 또한 RSB, 또는 DSB, 또는 양쪽을, (예컨대, 난수 발생기에 기초하여) SM 코어에 의해 유도되는 무작위 일회 챌린지 (random one-time challenge) 의 RSB/DSB 디지털 서명에의 통합을 요구함으로써, "단일 사용" 에 제한할 수도 있다. 정책 구성 지령들은 또한 다른 하드웨어로부터 SM 코어에 접속된 신호들의 상태, 예를 들어, 변조 검출 회로로부터의 출력, 보안 메모리 (310) 의 에러 상태 등에 기초하여 한계들을 가할 수 있다. 실행 엔진 모듈 (420) 은 암호화 모듈 (410), 통신 모듈 (430), 및 데이터 저장 모듈 (440) 에 커플링될 수 있다.
통신 모듈 (430) 은 SM 코어 (305) 와 외부 세계 사이에 인터페이스로서 역할을 하도록 구성된, 하드웨어 구성요소, 소프트웨어 구성요소, 또는 이들의 조합일 수도 있다. 예를 들어, 통신 모듈 (430) 은 CPU (예컨대, 프로세서 (355)), 호스트 메모리 (예컨대, 호스트 메모리 (370)), 보안 메모리 (예컨대, 보안 메모리 (310)), 추출기 (예컨대, 추출기 (320)), 테스터 인터페이스 (예컨대, 테스터 I/F (365)), IC 상의 임의의 다른 구성요소들, 또는 이들의 어떤 조합과 인터페이스하도록 구성될 수도 있다. 통신 모듈 (430) 은 (예컨대, 버스 (360) 를 통해서) 하나 이상의 버스들, 보안 메모리 등으로부터 지령들을 수신하도록 구성될 수도 있다. 게다가, 통신 모듈 (430) 은 정보를 여러 특징들로 (예컨대, 직접, 또는 추출기 (320), 또는 양쪽을 통해서) 전송하는 것을 도울 수도 있다. 일부 실시형태들에서, 통신 모듈 (430) 은 보안 메모리 래퍼 (예컨대, 래퍼 (315)) 를 포함한다. 보안 메모리 래퍼 (wrapper) 는 SM 코어 (305) 로부터의 지령들을 SM 코어 (305) 와 연관되는 보안 메모리에 의해 인식가능한 포맷으로 변환하도록 구성된다. 통신 모듈 (430) 은 암호화 모듈 (410), 실행 엔진 모듈 (420), 및 데이터 저장 모듈 (440) 에 커플링될 수 있다.
데이터 저장 모듈 (440) 은 하나 이상의 SM 사설 메모리들을 포함할 수도 있다. 데이터 저장 모듈 (440) 은 하나 이상의 보안 키들 (예컨대, 디바이스 키들 또는 디바이스 키들의 그룹), 제품 칩 ID, 하나 이상의 SM 지령들, 부트 명령들, 피쳐 데이터, 구성 데이터, 영속적인 피쳐 정보 등을 저장하도록 구성될 수도 있다. 일부 실시형태들에서, 데이터 저장 모듈은 메모리 레이아웃들 및 사용에 관한 정보와 같은, SM 코어 (305) 동작에서의 영속적인 변경들을 행하는데 사용되는 정보를 추가적으로 저장할 수도 있다. 데이터 저장 모듈 (440) 은 (정적 RAMs 과 같은) SM 코어 (305) 외부에 있는 하나 이상의 메모리 구조들을 포함하거나 그와 인터페이스할 수도 있거나, 또는 내부 스토리지 (예컨대, 이러한 스토리지가 휘발성이거나, 또는 사용가능하면 휘발성 메모리가 사용될 수도 있으면, 레지스터들, 레지스터 파일들, 정적 RAM 등) 을 포함할 수도 있다. 데이터 저장 모듈 (440) 은 또한 위임-인가자 시스템 공개 키와 같은, 암호 값을 저장할 수도 있다. 데이터 저장 모듈 (440) 은 암호화 모듈 (410), 실행 엔진 모듈 (420), 및 통신 모듈 (430) 에 커플링될 수 있다.
3. 보안 관리기 기능
루트-인가자가 SM-이용가능 IC 에서의 SM 코어가 동작을 수행하도록 (예컨대, 키들 또는 피쳐 상태를 업데이트하도록) 요청하기 위해, 루트-인가자 시스템은 하나 이상의 SM 지령들의 관점에서 동작을 정의한다. SM 지령들은, 실행될 때, (특히) SM-이용가능 IC 에서의 SM 코어에 의해 관리되는 피쳐 상태를 업데이트할 수도 있다. 루트-인가자 시스템은 SM 지령들을 SM 코어에 의해 인식되는 2진수 포맷으로 인코딩하며 디지털 서명을 그 지령들에 포함시킨다. 지령들과 서명의 조합은 서명된 블록으로서 알려져 있다. 루트-인가자 시스템으로부터의 서명된 블록들은 루트-서명된 블록들 ("RSBs") 으로서 지칭되며, 위임-인가자 시스템으로부터의 서명된 블록들은 위임-서명된 블록들 ("DSBs") 으로서 지칭된다.
위임-서명된 블록을 수반하지 않는 간단한 경우, SM-이용가능 IC 에서의 SM 코어는 루트-인가자 시스템으로부터 지령들을 수신한다. 루트-인가자 시스템 공개 키는 SM-이용가능 IC 에 내장될 수도 있다. 도 5 는 루트-인가자 시스템에 의해 서명된 지령들을 포함하는 루트-서명된 블록의 발생을 위한 예시적인 방법의 플로우 차트이다. 단계 500 에서, 루트-인가자 시스템은 하나 이상의 SM 지령들을, 예컨대, 서명 요청 또는 입력 파일로부터 수신한다. SM 지령들의 블록은 그후 RSB 를 생성하기 위해 루트-인가자 시스템에 의해 루트-인가자 시스템 사설 키를 이용하여 디지털 서명된다 (510). 단계 520 에서, 완료된 RSB 가 루트-인가자 시스템에 의해 제공된다. RSB 의 수신자는 루트 인가자가 (예컨대, 테스터 I/F (365) 를 통해서) 통신할 수 있는 SM 코어일 수도 있거나, 또는 RSB 는 SM 코어에 의해 궁극적으로 수신되기 전에, 임의 개수의 엔터티들 (예컨대, 중재자들, 서버들, 구성요소들, 애플리케이션들, 네트워크들, 스토리지 로케이션들/파일들 등) 을 통해서 전달될 수도 있다.
도 6 은 SM-이용가능 IC 에서의 SM 코어에 의해, 도 5 에서 발생된 RSB 를 프로세싱하는 예시적인 방법의 플로우 차트이다. 단계 600 에서, RSB 는 SM 코어에서 수신된다. SM 코어는 그후 예를 들어, SM-이용가능 IC 에 저장되고 하드웨어 상수로서 SM 코어에 제공될 수도 있거나, 또는 보안 메모리 (예컨대, 보안 메모리 (310)) 에 저장될 수도 있는, 루트-인가자 시스템 공개 키를 획득한다 (610).
SM 코어는 그후 루트-인가자 시스템 공개 키를 이용하여 RSB 의 디지털 서명을 검증한다 (620). 서명이 유효하지 않다고 디지털 서명 검증 결과가 표시하면 (630), 프로세스가 종료된다 (690). 디지털 서명이 유효하면, SM 코어는 RSB 에 포함된 하나 이상의 SM 지령들을 프로세싱한다 (640). SM 지령(들) 을 프로세싱하는 동안 에러가 발생하면 (650), 에러가 예를 들어, 레지스터 I/F (358) 또는 인터럽트를 이용하여, 보고되고 (660), 프로세스가 종료된다 (690). 예를 들어, 제품 칩 ID 가 특정의 범위 이내에 속하는지, 그리고 SM 코어에 알려진 제품 칩 ID 가 외부 이 범위의 밖에 속하는지 여부를 SM 지령이 체크하면, 에러가 발생할 수도 있다. 프로세싱 동안 어떤 에러도 발생하지 않으면, SM 코어는 임의의 추가적인 SM 지령들이 프로세싱될 것이 남아 있는지 여부를 결정한다 (670). 프로세싱될 필요가 있는 추가적인 SM 지령들이 존재하면, 흐름은 스텝 640 으로 되돌아가고, 프로세스는 모든 SM 지령들이 프로세싱될 때까지 계속된다. 일단 모든 SM 지령들이 프로세싱되면, SM 코어는 예를 들어, 레지스터 I/F (358) 또는 인터럽트를 이용하여 성공을 보고하고 (680), 프로세스가 종료된다 (690).
도 7 은 DSB 와 연관될 수 있는 RSB 의 발생을 위한 예시적인 방법의 플로우 차트이다. 단계 700 에서, 루트-인가자 시스템은 하나 이상의 입력 파라미터들을 수신한다. 입력 파라미터들은 하나 이상의 SM 지령들, 위임자가 서명하도록 의도되는 것에 대한 지령 템플릿들, 위임 허가들, 위임-인가자 시스템 공개 키, 다른 데이터, 또는 이들의 어떤 조합을 포함할 수 있다. 위임-인가자 시스템 공개 키는 위임-인가자 시스템에 의해 제어되는 대응하는 위임-인가자 시스템 사설 키를 갖는다.
위에서 설명한 바와 같이, SM 지령들은 SM 코어에게 SM-이용가능 IC 의 상태에 영향을 미치도록 지시하는 정보를 포함할 수도 있다. 게다가, RSB 가 DSB 와 연관될 (예컨대, 위임-인가자 시스템 공개 키를 포함할) 때, SM 지령들은 (상기 RSB-단독 경우에서 처럼) 어떤 조건들에 기초하여 프로세싱하는 것을 중지하는 지령들을 포함할 수도 있다. 예를 들어, RSB 는 RSB 프로세싱을 계속하고 연관된 DSB 가 실행하도록 허용하기 전에, 칩이 제조의 어떤 스테이지에 있거나, 또는 특정의 제품 칩 ID 범위 내에 있거나, 또는 특정의 일련 번호 범위 내에 있거나, 또는 특정의 그룹 또는 서브세트와 연관되는 설정들을 갖거나, 또는 특정의 에러 상태에 있거나 있지 않는다는 등을 확인하는 지령들을 포함할 수 있다. (디바이스 수명주기, 제품 OEM 식별자, 사용자 유형, 지리적 영역, 그룹 식별자, 소매 SKU, 일자 등과 같은) SM 코어에 의해 관리되는 상태에 대한 조건들에 기초를 두는 능력은, 어느 디바이스들이 주어진 RSB 를 받아들일 수 있는지, 그리고 어느 RSB 가 그들 디바이스들 상에서 이루어질지를 제어할 때에 많은 유연성을 허용한다는 점에 유의한다. 따라서, DSBs 는 루트-인가자 시스템에 의해 제시된 기준들을 만족시키지 않는 디바이스들 상에서 실행되는 것으로부터 방지될 수도 있다.
일부 실시형태들에서, 루트-인가자 시스템은 또한 DSBs 의 형태, 또는 콘텐츠, 또는 양쪽을 지시하는 지령 템플릿들을 수신하여 서명할 수도 있다. 위임-인가자 시스템은 의도된 형태의 DSBs 를 단지 서명하는 것을 보증하는 방법으로 루트-인가자 시스템의 서명을 검증할 수 있다. 지령 템플릿 내에, 포함된 SM 지령들의 설명들, 또한 어떤 조정들이 이루어질 수도 있는지가 있을 수도 있다. 위임-인가자 시스템에서의 하드웨어 보안 모듈은 템플릿 상의 루트 서명을 검증하고, 허용된 변경들을 행하고 (또는, 단지 허용된 변경들이 이루어졌다고 검증하고), 그후 (성공적이면) 위임 서명된 블록 (DSB) 을 서명할 수 있다. 이 접근법은 루트 인가자가 (위임-인가자 시스템에 의해) 위임들에 대한 한계들을 가하는 것을 가능하게 한다는 점에 유의한다. 위임 서명에 대한 이러한 한계들은 SM 코어에 의해 강제되는 한계들을 보완한다 (예컨대, 제품 칩 ID 가 주어진 범위에 있다는 것을 확인하는 테스트들을 RSB 가 포함하는 경우, 범위 외부의 디바이스 상에서 실행하면 DSB 의 어떤 수용 이전에 에러가 발생할 것이다) 는 점에 유의한다.
위임 허가들은 일반적으로 루트 인가자가 SM 코어에 걸쳐서 위임을 가지는 것을 가능하게 하는 능력들을 기술한다. 예를 들어, 위임 허가들은 업데이팅을 위해 특정의 피쳐들을 인가하는 것, 보안 메모리 (310) 내 물리적인 어드레스들의 범위에 기록하는 것을 인가하는 것, DSB 를 프로세싱하는 동안 어느 SM 지령들이 SM 코어에 의해 실행될 수 있는지를 인가하는 것, 보안 키들의 송신을 위한 목적지들을 인가하는 것, 하나 이상의 키 버스들에의 액세스를 인가하는 것, 하나 이상의 주변장치 디바이스들에의 액세스를 인가하는 것, 또는 이들의 어떤 조합을 포함할 수도 있다.
RSB (또는, 인가되면, DSB) 는 SM 코어에서의 허가 데이터 필드들을 설정할 수 있다. 이들은 예를 들어, 피쳐 공간에서의 어드레스들에 맵핑될 수도 있다. 이러한 설정들은 그들이 또 다른 RSB 에 의해 변경되지 않는 한 (또는, 변경될 때까지) 또는 칩이 리셋될 때까지 지속할 수도 있다. 예를 들어, 예시적인 RSB 는, SM 코어에 의해 프로세싱될 때, 어떤 능력들이 활용될 수 있는지를 규정하기 위해 능력 마스크들의 시리즈에 비트들을 설정할 수도 있다. 또 다른 예에서, RSB 는, SM 코어에 의해 실행될 때, SM 코어가 보안 메모리 (310) 의 레이아웃 및 구성에 대해 만드는 가정들을 제어하는 SM 코어에서의 포인터들을 조정할 수도 있다.
RSB 는, SM 코어에 의해 프로세싱될 때, 또한 후속 DSB 에 의한 사용을 위해 데이터를 준비할 수도 있다. 예를 들어, RSB 는 데이터가 데이터 저장 모듈 (예컨대, 데이터 저장 모듈 (440)) 에 저장되게 할 수도 있으며, DSB 는 그 데이터가 데이터 저장 모듈로부터 취출되게 할 수도 있다. 게다가, RSB 의 실행 전에, 프로세서 (예컨대, 프로세서 (355)) 는 예를 들어, 레지스터 I/F (358) 를 이용함으로써, 데이터 저장 모듈에 데이터가 저장되게 할 수도 있다. RSB 는 SM 코어가 어떤 기준들과의 순응성을 위해 그 데이터를 검사하게 하고, 그 기준들이 만족되면, 후속 DSB 에 의한 사용을 위해 그 데이터를 데이터 저장 모듈 (440) 에 남겨두게 할 수도 있다. 이 경우, 그 데이터가 루트-인가자 시스템 보다는 프로세서에 의해 제공되더라도, 그럼에도 불구하고 데이터는 루트-인가자 시스템의 허가를 받는다. 예를 들어, 이것은 디바이스 상의 펌웨어가 루트 또는 위임 인가자에 의해 서명되지 않는 파라미터들을 제공하는 것을 가능하게 만든다.
RSB 는 DSB 서명이 RSB 에 의해 규정된 형태의 어떤 양의 "바인딩 데이터" 를 포함하는 것을 필요로 할 수도 있다. 이것은 바인딩 데이터가 변하는 각각의 경우에 대해 DSB 서명 프로세스가 별개로 수행되도록 강제한다. 예를 들어, RSB 는 SM 코어에게 난수 발생기에 의해 발생되는 값을 샘플링하도록 지시하고, 그리고, DSB 서명 인가자가 SM 코어와 "라이브" 접속하고 있게 강제하며 DSB 의 재생을 방지하는 샘플링된 값을 DSB 서명이 포함하도록 요구할 수 있다. 또 다른 예에서, RSB 는 디바이스 ID 및 수명주기 상태를 포함하도록 바인딩 데이터를 설정하여, 서명된 DSB 가 다른 디바이스들 상에서 재생되는 것을 방지할 수 있다. 바인딩 데이터가 위임 인가자 시스템에 의해 서명에 포함되기 (따라서, 위임 인가자 시스템에게 알려지고 보안 서비스 (120) 에 보고되는 위임 인가자 시스템 로그들에 있을 수 있기) 때문에, RSB 가 또한 바인딩 데이터로서 규정할 수도 있으며, 루트 인가자가 보증하기를 원하는 파라미터들이 정확하게 로그된다.
일부 실시형태들에서, RSB 는, SM 코어에 의해 프로세싱될 때, SM 코어와 연관되는 일회 프로그래밍가능 (OTP) 메모리 (예컨대, 보안 메모리 (310)) 에 기록할 수 있다. 예를 들어, OTP 메모리 내에 포함된 명령들은 부트 업 프로세스의 부분으로서, SM-이용가능 IC 의 피쳐 X 를 인에이블할 수도 있다. RSB 는 부트 업 프로세스 동안, 피쳐 X 가 인에이블되거나, 또는 더 이상 인에이블되지 않도록, SM 코어에게 보안 메모리 (310) 를 수정하도록 지시할 수도 있다. 게다가, 일부 실시형태들에서, DSB 는 또한 프로그래밍된 OTP 메모리의 콘텐츠에 대해 (일반적으로는 제한된) 변경들을 행하는 허가를 받을 수도 있다.
단계 710 에서, 입력 파라미터들이 RSB 를 생성하기 위해 루트-인가자 시스템 사설 키를 이용하여 루트-인가자 시스템에 의해 디지털 서명되는, 루트 서명된 블록으로 형성된다. 단계 720 에서, RSB 가 예컨대, 위임-인가자 시스템 또는 위임-인가자 시스템들을 감독하는 보안 서비스 (예컨대, 보안 서비스 (120)) 으로 전달된다.
도 8 은 DSB 의 발생을 위한 예시적인 방법의 플로우 차트이다. 단계 800 에서, 위임-인가자 시스템은 하나 이상의 위임 입력 파라미터들을 수신한다. 위임 입력 파라미터들은 예를 들어, 도 7 에서 발생된 RSB, DSM 에의 포함을 위한 하나 이상의 SM 지령들, 다른 페이로드 데이터 (암호화된 또는 미암호화된), 하나 이상의 키들, 또는 이들의 어떤 조합을 포함할 수도 있다. SM 지령들은 실행될 때, SM-이용가능 IC 의 피쳐 상태를 업데이트하는 SM 지령들을 포함할 수도 있다. SM 지령들은 앞에서 설명된 바와 같이, 루트-인가자 시스템에 의해 서령된 지령 템플릿의 일부로서 수신될 수도 있다. 단계 810 에서, 위임 입력 파라미터들은 DSB 를 생성하기 위해, 위임-인가자 시스템에 의해 (RSB 에 포함된 위임-인가자 공개 키에 대응하는 사설 키를 이용하여) 디지털 서명될 수도 있다. 단계 820 에서, DSB 는 예를 들어, SM-이용가능 IC (직접 또는 여러 중재자들) 에 제공되며 SM 코어에 의해 프로세싱된다.
미도시된 일부 실시형태들에서, 위임-인가자 시스템은 위임 입력 파라미터들을 디지털 서명하기 전에 RSB 내 위임 허가들을 검증한다. 이것은 예를 들어, RSB 가 오염되거나 또는 루트 인가자가 인가한 것을 초과하는 어떤 것을 서명하도록 위임 인가자 시스템이 요청받는 문제들을 방지하는 것을 도울 수 있다.
도 9a 는 SM 코어에 의해, 도 8 에서 발생된 DSB (뿐만 아니라, 연관된 RSB) 를 프로세싱하는 예시적인 방법의 플로우 차트이다. 단계 900 에서, DSB 와 연관된 RSB 가 SM 코어에서 수신된다. SM 코어는 그후 루트-인가자 공개 키를 이용하여 RSB 의 디지털 서명을 검증한다 (905). 디지털 서명이 유효하지 않으면, RSB 는 거부되고, 프로세스가 종료된다 (915). 디지털 서명이 유효하면, SM 코어는 RSB 에 포함된 SM 지령들을 프로세싱하기 시작한다 (912).
하나 이상의 SM 지령들 중 임의의 지령이 프로세싱하는데 실패하거나 또는 아니면 에러를 발생하면 (920), RSB 는 거부되고, 프로세스가 종료된다 (915). 예를 들어, 위임-인가자 시스템이 제한된 SM 프로그래밍 능력들을 갖도록 구성되는 제품 칩 IDs 의 범위가 RSB 에서의 SM 지령들에 의해 지정되었고 SM-이용가능 IC 가 그 범위 외부의 제품 칩 ID 를 소유하면, SM 코어는 RSB 를 실패하고 거부해야 한다 (915). 이 실시형태에서, 프로세스가 스텝 915 에서 종료하면, 그리고 연관된 DSB 에 도달하면, 연관된 DSB 는 프로세싱됨이 없이 무시되거나 폐기될 수도 있다. 미도시된 다른 실시형태들에서, SM 코어는 RSB 및 DSB 를 동시에 수신할 수도 있다. 이러한 실시형태들에서, RSB 를 프로세싱하는 동안 에러로 인해 프로세스가 종료하면, DSB 는 무시되고 프로세싱됨이 없이 폐기될 수도 있다. 미도시된 다른 실시형태들에서, SM 코어는 RSB 의 프로세싱과 동시에, 또는 RSB 가 수신되기 전에 DSB 를 수신할 수도 있다. SM 코어의 특정의 실시형태가 RSBs 및 DSBs 를 수신하는 방법에 상관없이, RSB 가 거부되면, SM 코어는 임의의 연관된 DSB 를 프로세싱하기를 거부하거나 (또는 아니면 거절할) 수 있다.
RSB 내 SM 지령들이 성공적으로 프로세싱되면, SM 코어는 RSB 로부터 위임 허가들 및 위임-인가자 공개 키를 추출한다 (925). 단계 926 에서, SM 코어는 RSB 와 연관되는 DSB 를 수신한다. 위에서 언급한 바와 같이, 미도시된 일부 실시형태들에서, DSB 및 RSB 는 동시에 또는 상이한 시간들에서 수신될 수도 있다.
SM 코어는 RSB 에 포함된 위임-인가자 공개 키를 이용하여 DSB 의 디지털 서명을 검증한다 (930). 디지털 서명이 유효하지 않으면, DSB 는 거부되고, 프로세스가 종료된다 (935). 디지털 서명이 유효하면, SM 코어는 위임 DSB 로부터 SM 지령들을 추출한다 (940). SM 코어는 그후 그 추출된 SM 지령이 허용되는지 여부를 결정한다 (945). SM 코어는 그 추출된 SM 지령을 위임 허가들과 비교하고 SM 지령들을 RSB 에 포함된 위임 허가들과의 순응성에 대해 검사함으로써, 이 결정을 행한다. 추출된 SM 지령이 위임 허가들에 의해 허용되지 않으면, 추출된 SM 지령은 실행되지 않으며, 에러가 보고되고 (950), 흐름은 스텝 960 으로 이동한다. 에러는 적합한 경우, 위임 인가자, 루트 인가자, 또는 다른 엔터티들에게 결국 통지할 수도 있는, SM-이용가능 IC, 테스터 등 상에서 실행하는 소프트웨어에 보고될 수도 있다.
추출된 SM 지령이 허용되면, SM 코어는 그 추출된 SM 지령을 실행한다 (955). 미도시된 일부 실시형태들에서, 에러는 SM 지령의 실행 동안 발생할 수도 있으며, 이 경우, 흐름은 스텝 950 으로 이동할 수 있다.
SM 코어는 그후 임의의 추출된 SM 지령들이 프로세싱될 것이 남아 있는지를 결정한다 (960). 모든 추출된 SM 지령들이 프로세싱되었으면, SM 코어는 DSB 의 성공적인 실행을 보고한다 (965). 보고는 SM-이용가능 IC 의 사용자, 위임 인가자, 루트 인가자, 또는 이들의 어떤 조합에게 보고될 수도 있다. 그러나, 추가적인 SM-지령들이 프로세싱될 것이 남아 있으면, 그 흐름은 스텝 945 으로 이동한다.
미도시된 일부 실시형태들에서, 추출된 SM 지령이 허용되지 않고 에러가 보고될 때 (960), 프로세스가 그후 종료되며 DSB 블록이 거부된다.
도 9b 는 SM 코어에 의해, RSB 로부터 취출된 SM 지령들을 프로세싱하는 예시적인 방법의 플로우 차트이다. 스텝들 900, 905, 및 915 은 도 9a 에 나타낸 바와 같다. 도 9b 의 나머지는 SM 지령들을 프로세싱하고 (912) 그리고 도 9a 로부터의 결과들을 체크하는 (920) 스텝들의 예시적인 실시형태를 자세히 설명한다. 도 9b 에서의 세부 사항들은, 일단 디지털 서명이 유효한 것으로 확인되면, 시작된다. SM 코어는 RSB 로부터 하나 이상의 SM 지령들을 추출한다 (970). SM 코어는 그 효과에서의 제한 사항들이 추출된 SM 지령의 실행을 허용하는지 여부를 결정한다 (975). 지령이 인가되지 않으면, 스텝 975 는 에러를 트리거한다. 스텝 975 는 그후 에러를 트리거할 수도 있는 지령을 실행하도록 시도한다. 에러 시, SM 코어는 에러를 보고하고 (980), RSB 의 나머지 (그리고, 그 결과로서, 임의의 연관된 DSB (915)) 를 거부한다. 그 추출된 SM 지령이 성공적으로 실행되면, SM 코어는 임의의 추출된 SM 지령들이 여전히 프로세싱될 것이 남아 있는지 여부를 결정한다 (985). 임의의 추가적인 지령들이 대기하면, 프로세스는 다음 지령을 계속한다. 일단 모든 추출된 SM 지령들이 프로세싱되었으면, 방법은 도 9a 에서의 스텝 925 로 진행한다.
(예컨대, RSBs 및/또는 RSBs 에서의) 비교 테스트들은 예를 들어, 2개의 값들이 서로보다 큰지 또는 작은지 여부, 서로 같은지 등을 테스트할 수도 있다. 게다가, 일부 실시형태들에서, 비교 테스트는 비트 마스크들 또는 기타 임의의 다른 종류의 테스트들을 포함할 수도 있다. 비교의 결과는 즉시 에러, 또는 후속 동작들의 (예컨대, 점프와 같은) 흐름 제어 변경 또는 수정/스킵일 수도 있다.
일부 실시형태들에서, 위임-인가자 시스템은 어떤 피쳐 공간 값(들) 을 테스트하도록 요구될 수도 있다. 이것은 특정의 피쳐 공간 값(들) 이 루트-인가자 시스템에 이용가능하지 않을 때 유용할 수도 있다. 예를 들어, 루트-인가자 시스템은 위임-인가자 시스템에게, 예를 들어, 그 네트워크에서의 모든 SM-이용가능 디바이스들에 대한, 단일 SM-이용가능 디바이스의 어떤 피쳐들의 구성을 수정하는 DSB(s) 를 발생하도록 인가하기를 원할 수도 있다. 이 실시형태에서, 루트-인가자 시스템은 피쳐들이 수정될 하나 이상의 SM-이용가능 디바이스들의 각각에 대해 상이한 RSB 를 발생하기 보다는, 단일 RSB 를 단지 발생한다. 단일 디바이스들에의 DSBs 의 바인딩을 강제하는 것은 위임 인가자 시스템 서명이 각각의 디바이스에 대해 새로운 DSB 를 만들게 강제하고 --이에 의해, 위임 인가자 시스템에 의해 서명 동작들의 수에 가해지는 제한들이 위임 인가자가 구성할 수 있는 디바이스들의 개수를 효과적으로 제한하도록 보장한다는 점에 유의한다.
일 예로서, SM-이용가능 IC 는 RSB 로부터 추출된 SM 지령을 프로세싱하는 동안, 값 (예컨대, 제품 칩 ID, 또는 무작위 일회 챌린지) 을 중간 스토리지 로케이션에 기록할 수도 있다. SM 코어가 DSB 의 서명을 검증할 때, SM 코어는 중간 스토리지의 콘텐츠를 서명 검증 프로세스에서 수반되는 암호 해싱 동작에 포함시킨다. 예를 들어, 중간 스토리지에서의 값은 암호 해시를 계산할 때 DSB 지령들과 연쇄될 수도 있다. SM-이용가능 IC 가 DSB 서명을 검증할 때, 중간 스토리지에서의 값이 DSB 에 의해 발생될 때 위임-인가자 시스템에 의해 사용되는 값과 동일하지 않으면, 계산된 해시는 서명된 해시와 매칭하지 않을 것이며, SM 코어는 그후 DSB 를 거부할 수도 있다.
게다가, 일부 실시형태들에서, RSB 는 SM 코어가 하나 이상의 SM 지령(들) 을 유지하기 위해 중간 스토리지를 이용하여 DSB 에 의해 수행될 수도 있는 활동을 제한하거나 또는 수정하도록 한다. 이 실시형태에서, RSB 에서의 SM 지령(들) 은 데이터가 중간 스토리지에 기록될 수 있도록 할 수도 있다. SM 코어는 그후 DSB 서명을 검증하고, 유효하면, SM 코어는 그후 즉시 스토리지에 기록된 데이터를 지령으로서 취급하고, 그 데이터를 실행한다. 예를 들어, 중간 스토리지에서의 데이터는 지령 "값 64 를 피쳐 어드레스 X 에 기록한다" (예컨대, 여기서, X 는 무선 주파수를 구성할지도 모른다) 의 표현을 가질 수도 있다. 전체 지령을 공식화함으로써, 이 예에서 RSB 는 위임-인가자 시스템에게 그 주파수를 임의의 다른 값이 아닌, 오직 64로 단지 설정하도록 인가한다. 이 실시형태의 확장 부분에서, RSB 는 DSB 로 하여금 중간 스토리지의 제한된 부분을 수정가능하게 함으로써 그 지령의 제한된 변형들을 행하도록 DSB 에게 인가하는 위임 허가들을 포함할 수도 있다. 예를 들어, 그 위임이 주파수에 대응하는 파라미터의 최소-유효 4 비트들을 변경하도록 단지 허용되었으면, 이것은 위임-인가자 시스템로 하여금 그 주파수를 64 로부터 79 까지의 임의의 값으로 설정가능하게 할 것이다.
일 실시형태에서, SM 코어는 피쳐 및 키 관리를 위한 제어 메시지들을 필터링하는데 사용되는 보안 시간 참조 (secure time reference ) 를 관리한다. 시간 참조는 SM 코어 내에 유지될 수도 있거나 또는 SM 코어에 시간을 제공하는 별개의 블록에 있을 수도 있다. 이 예에서, 서명된 블록 (예컨대, RSB, DSB) 은 키 출력 또는 피쳐 조정을 지시할 수도 있으며, 그러나, 그 시간이 어떤 시간 윈도우 내에 존재하면 단지 이용가능하다. 서명된 블록은 SM 코어가 현재 시간 값과의 지시된 비교를 수행하게 하는 지령들을 포함한다. 예를 들어, 이것은 시험 키들 또는 시험 피쳐들이 시험 기간 밖에서 로드되는 것을 방지하는데 이용될 수 있다. 추가 보안을 위해, 시간 참조는 (예컨대, 그 시간이 보안 서버 상의 클록에 유래하도록) SM 피쳐 신호들에 의해 관리되고 설정될 수 있다. 이 경우, 전술한 RSB-규정된 바인딩 데이터는 시간 설정이 서명 인가자로서 역할을 하는 루트 또는 위임-인가자 시스템과 라이브 상호작용하여 수행될 것을 요구하는데 이용될 수 있다. 이의 대안으로, 신뢰받는 시간 소스는 미신뢰된 소프트웨어에 의해 참조가 조정될 수 있게 함으로써 생성될 수도 있으며, 그러나 여기서, 신뢰받은 시간 서버와의 라이브 RSB 및/또는 DSB 상호작용을 통해서 시간 참조가 유효한 것으로 태그되었으므로, (SM 코어 내부 또는 외부에서) 추적 값은 디바이스 시간 참조가 조정되는지, 파워다운되는지, 또는 리셋되는지를 모니터링한다.
3.1 피쳐 관리
피쳐 관리는 SM-이용가능 IC 의 구성 및 다른 피쳐 상태가 업데이트되는지 여부 및 어떤 방법으로 업데이트되는지를 제어하는데 사용될 수도 있다. SM-이용가능 IC 의 피쳐 상태는 SM-이용가능 디바이스의 능력들, 예를 들어, 피쳐들의 동작을 인에블하거나, 디스에이블하거나, 아니면 안전하게 구성하는 능력, 제품 칩 ID 에 기초하여 하드웨어 능력들을 구성하거나, SM-이용가능 IC 의 지리적 로케이션에 기초하여 하드웨어 능력들을 구성하거나, 성능 설정들을 구성하거나, 어떤 외부 인터페이스들의 사용을 가능하게 하거나 또는 구성하거나, 어떤 동작의 모드들의 사용을 바이패스하거나 (예컨대, 어떤 동작의 기능적 모드들을 바이패스하거나, ROM 을 패치하거나, 마이크로코드를 조정하는 등을 행하는 버그 픽스들 모드들을 인에이블/디스에이블하거나), 테스트 모드들 (예컨대, 제어 진단 및 디버그 모드) 을 인에이블하거나 디스에이블하거나, 특정의 모드 또는 피쳐가 활성일 (예컨대, 제조 프로세스 동안 단지 활성일) 때에 걸쳐서 제어하는 능력, 피쳐들에 의해 사용되는 파라미터들을 조정하거나, SM-이용가능 IC 의 구성을 조정하거나, SM 코어에 액세스가능한 구성 또는 다른 정보를 입증하는 감사 동작들을 수행하거나, 인-필드 디바이스들 상에서 진단의 활동을 안전하게 수행하거나, 프로세스 변형을 보상하기 위해 아날로그 회로들을 교정하거나 튜닝하거나, (예컨대, 특정의 제품에서의 입력 클록 및 원하는 동작 주파수를 위한 PLL 을 구성하는) 디바이스 구성 데이터를 설정하거나, 특정의 제품 또는 영역에 적용가능한 규제 요구사항들에 기초하여 라디오들의 전력 및 주파수를 조정하거나, 내부 열적 안전 장치에 의해 강제되는 제한들 (열적 제한들은 상이한 제품들에 사용되는 패키징 및 냉각 솔루션에 기초하여 변할 수도 있다) 을 구성하거나, 배터리 충전 회로를 구성하거나, SM-이용가능 IC 의 잠재적인 능력들 또는 업그레이들을 인에이블하거나, (예컨대, 소프트웨어에 구성 상태를 제공함으로써) SM-이용가능 디바이스 상에의 광고 메시지들의 디스플레이를 디스에이블하거나, SM-이용가능 IC 상의 CPU 의 더 높은 동작 성능으로의 인-필드 업그레이드를 인에이블하거나 등을 행하는 능력 등 (또는, 이들의 조합들) 을 제어할 수 있다. 예를 들어, 진단 및 디버그 모드를 제어하는 것은 디버그 피쳐를 일시적으로 (예컨대, 다음 리셋까지) 인에이블할 수도 있다. 게다가, 일부 실시형태들에서, 피쳐 상태가 업데이트되는지 여부는 (예컨대, 청구서 발부 및 보고 서비스 (122) 에 의해 관리되는 바와 같은) 요금이 지급되었는지 여부에 의존한다.
SM 코어 (및, SM-이용가능 IC) 의 예시적인 아키텍쳐는, 피쳐 구성 설정들이 비밀이 아니지만 피쳐 설정들의 변형이 (예컨대, 루트 인가자로부터 기인하는) 특권들을 필요로 한다고 가정한다. 비밀 키들에 대해, 값들의 비밀을 보호하도록 추가로 요구될 수도 있으며, 따라서, 비밀 값들은 다음 섹션에서 좀더 자세히 설명되는, 키 관리 기능을 이용함으로써 처리될 수도 있다. 디지털 서명들이 피쳐 변경들 (뿐만 아니라 키-관련된 동작들) 이 단지 인가된 당사자들에 의해 수행될 수도 있다는 것을 보장하기 위해 사용될 수도 있다.
피쳐 관리는 비-휘발성 메모리 (예컨대, 보안 메모리 (310)) 에서의 피쳐 변경들을 기록하는 것, 단지 다음 리셋까지 활성인 피쳐 변경들을 인에이블하는 것, (클록 사이클 카운터 또는 실시간 클록에 의해 측정되는 바와 같은) 고정된 시간 기간 동안 단지 유효한 피쳐 변경들을 인에이블하는 것, 동작의 선택 모드들을 인에이블하는 것 (예컨대, 진단 및 디버그 모드, PLL 구성 등을 제어하는 것), 또는 이들의 어떤 조합을 포함할 수도 있다.
도 10 은 SM-이용가능 IC 의 피쳐 관리를 위한 예시적인 방법의 플로우 차트이다. 스텝 1005 에서, SM-이용가능 IC 는 하나 이상의 서명된 블록들 (예컨대, 하나 이상의 RSB, DSBs, 또는 이들의 조합) 을 수신한다. 서명된 블록들은 SM-이용가능 IC 에서의 SM 코어에 의해 프로세싱될 때, SM 코어로 하여금 관리하는 피쳐 상태를 업데이트를 가능하게 하는 업데이트 정보를 포함한다. 이 정보는 예를 들어, 하나 이상의 SM 지령들, 하나 이상의 키들, 또는 이들의 조합을 포함할 수도 있다. SM 코어는 대응하는 공개 키를 이용하여, 서명된 블록의 디지털 서명을 입증한다 (1015). 예를 들어, 서명된 블록이 RSB 이면, SM 코어는 디지털 서명을 입증하기 위해 (예컨대, SM-이용가능 IC 에 저장된) 루트-인가자 공개 키를 이용한다. 이와 유사하게, 서명된 블록이 DSB 이면, SM 코어는 DSB 의 디지털 서명을 입증하기 위해 (RSB 로부터의) 위임-인가자 공개 키를 이용할 수도 있다. 대안적인 실시형태들에서, SM-이용가능 IC (또는, IC 를 포함하는 디바이스) 는 요구되는 적합한 공개 키 또는 다른 정보를 취출하기 위해, 루트-인가자 시스템, 위임-인가자 시스템, 제 3 자 서버, 또는 이들의 어떤 조합을 접촉할 수도 있다.
디지털 서명이 유효하지 않으면, 프로세스가 종료된다 (1020). 디지털 서명이 유효하면, SM 코어는 현재 허가들이 요청된 피쳐 업데이트를 허용하는지 여부를 결정한다 (1025). 이 실시형태에서, 허가들은 보안 메모리 (310), RSBs, DSBs, 또는 이들의 어떤 조합에서의 SM-지령들 또는 설정들로부터 설정될 수 있다. 그 허가들이 피쳐 업데이트를 허용하지 않으면, 프로세스가 종료된다 (1020). 그 허가들이 피쳐 업데이트를 허용하면, SM 코어는 SM 지령이 영속적인 피쳐 업데이트로서 실행될지를 결정한다 (1030). (영속적인 피쳐 업데이트는 예컨대, 변경이 비휘발성 메모리에 기록되기 때문에, SM-이용가능 IC 가 리셋된 후 계속하는 업데이트이다.) 예이면, SM 코어는, 적합한 경우, 비-휘발성 보안 메모리 (예컨대, 보안 메모리 (310)) 에 대한 영속적인 피쳐 업데이트를 수행하기 위해 SM-지령, 키 값(들), 피쳐 구성 값, 또는 이들의 조합을 저장하며 (1035), 그리고, 옵션적으로 또한 SM 코어에서의 대응하는 피쳐 상태를 업데이트한다 (1040). SM 지령이 영속적인 피쳐 업데이트로서 실행되지 않으면, 프로세스는 스텝 1040 로 이동하고, SM 코어에 의해 관리되는 피쳐 상태를 업데이트하며, 프로세스가 완료된다 (1045).
3.2 키 관리
키 관리 기능은 페이로드들, 예를 들어, 비밀 키들 또는 다른 값들을 안전하게 전달하기 위해 사용될 수도 있다. 목적지들은 SM-이용가능 IC, 하드웨어 블록들, 또는 심지어 SM-이용가능 IC 를 포함하는 디바이스의 다른 부분들 상에서 실행하는 소프트웨어를 포함할 수도 있다. SM-이용가능 IC 는 여러 영구적으로-저장된 디바이스-특정의 대칭 키들 (베이스 키들) 을 포함한다. 베이스 키들은 추가적인 키들의 보안 전달을 부트스트랩하는데 사용될 수 있다. 페이로드를 포함하는 서명된 블록을 수신한 후, SM-이용가능 IC 는 페이로드를 추출하기 전에 블록(들) 의 서명들 및 임의의 연관된 허가들을 입증한다. 키 관리 지령을 조우하자 마자, SM-이용가능 IC 는 베이스 키로부터 전송 키를 먼저 유도하고, 그후 전송 키를 이용하여 지령에 포함되거나 또는 그에 의해 참조되는 키를 암호화해제하고, 그리고 마지막으로 해독된 키를 또 다른 하드웨어 유닛으로 전달하는 키 언래핑 프로세스 (key unwrapping process) 를 행한다. 위에서 설명한 바와 같이, 도 3 을 참조하면, 해독된 키는 예를 들어, 직접, 또는 추출기, 키 인터페이스, 및 하위-추출기를 통해서, 하드웨어 유닛으로 전달될 수도 있다. 키 관리 지령들은 보안 시설에서 실행될 필요가 없으며; 페이로드들은 미신뢰된 통신들 채널들을 통해서 SM-이용가능 ICs 를 포함하는 제품들로 인필드 전달될 수도 있다.
일 실시형태에서, 키 언래핑 프로세스는 부-채널 및 고장 유도 공격들에 대한 보호들을 제공하는 키 트리 구성을 이용한다. 키 트리 구성은 단일 시작 키로부터의 다수의 상이한 키들의 생성을 가능하게 하며, 그 생성된 키들의 각각은 그후 다수의 추가적인 상이한 키들을 생성하기 위해 연속적으로 사용될 수도 있다. 키 언래핑 프로세스의 대안적인 실시형태들은 (AES 와 같은) 블록 암호들, 비대칭적인 알고리즘들 (예컨대, RSA) 등을 이용할 수도 있다.
도 11 은 페이로드의 보안 전송을 위한 DSB 를 발생하는 예시적인 방법의 플로우 차트이다. 위에서 설명한 바와 같이, 페이로드는 비밀 키를 포함할 수도 있다. 단계 1100 에서, 위임-인가자 시스템은 그의 계산을 위해 베이스 키를 수신한다. 베이스 키는 예를 들어, 글로벌 베이스 키 또는 칩-특정의 베이스 키일 수도 있다. 위임-인가자 시스템은 예를 들어, IC 제조업자 (110), 제품 판매자 (125), 또는 보안 서비스 (120) 로부터 베이스 키를 수신할 수도 있다. 위임-인가자 시스템은 또한 제품에 (예컨대, SM 코어에 대한 보안 메모리 (310)) 에 저장된 값을 암호화해제하거나 또는 아니면 프로세싱함으로써 베이스 키를 결정할 수도 있다.
여러 실시형태들에서, 글로벌 베이스 키는 다수의 SM-이용가능 ICs 에 의해 사용될 수도 있다. 예를 들어, 글로벌 베이스 키는 SM-이용가능 IC 에 HW 상수로서 제공되는 루트-인가자 시스템 키일 수도 있다. 다른 실시형태들에서, 베이스 키는 디바이스-특정의 키, 예컨대, SM 코어에 프로그래밍된 베이스 키이다. 일부 경우, 디바이스-특정의 키는 제품 칩 ID 로부터 부분적으로 유도된다. 또 다른 실시형태에서, 위임-인가자 시스템은 혼합 키 또는 (베이스 키보다는) 혼합 키에 대한 전구체를 획득한다. 예를 들어, 각각의 칩이 고유한 디바이스-특정의 디바이스 키 KCHIP 를 가지면, 루트 인가자는 (예컨대, 보안 서비스 (120) 를 통해서) 각각의 칩에 대한 F(KCHIP, DelegatelD) 의 테이블/데이터베이스를 가진 위임-인가자 시스템으로 배포하여, 위임 기기가 그 칩에 대한 테이블 엔트리를 그의 혼합 키로서 사용가능하게 (또는, 혼합 키를 형성가능하게) 할 수도 있으며, 반면 RSB 는 SM 코어에게 동일한 값에 도달하도록 특정의 위임의 DelegatelD 에 대한 F(KCHIP, DelegatelD) 를 계산하도록 지시할 수 있으며, 여기서, F 는 해시와 같은 암호 연산이다. 더 일반적으로는, 위임된 베이스 키는 위임된 키 데이터베이스의 부분으로서 전달될 수 있으며, 그리고, SM 코어에게 알려진 1차 베이스 키, SM 코어에 알려지거나 (예컨대, RSB 및/또는 DSB 에서의) SM 코어로 전달될 수 있는 (위임 ID 와 같은) 파라미터 값들, 및 하나 이상의 키 발생 기능들을 이용하여 전달될 수 있다. 예를 들어, 혼합 키는 키 래더들 (ladders), HMAC, 해시 함수들, 또는 다른 키 유도 방법들을 이용하여 유도될 수도 있다. 데이터베이스는 예를 들어, 칩 당 하나의 위임된 베이스 키 또는 더 이상을 포함할 수도 있다. 위임된 베이스 키는 루트-인가자 시스템에 의해 발생될 수도 있다. 예를 들어, 루트 인가자는 예를 들어, AES 및 1-방향 기능들의 시리즈를 이용하여 마스터 키로부터 디바이스 특정의 베이스 키를 유도할 수도 있다. 이와 같이 유도 및 키 제어는 제 3 자가 키들을 부적하게 관리할 경우에 더 높은-값 키들이 손상되는 것으로부터 방지하는 것을 도울 수도 있다.
스텝 1105 에서 (예컨대, 위에서 설명된 대안적인 실시형태들에 대해, 혼합 키가 이미 이전에 전달되지 않았다면), 위임-인가자 시스템은 혼합 키를 유도한다. 위임-인가자 시스템은 이전 스텝에서 유도된 키 상의 하나 이상의 일방 함수들의 시리즈를 이용함으로써 혼합 키를 유도할 수도 있다. 예를 들어, 혼합 키는 키 트리 연산들, HMAC 계산들, 해시 함수들, 또는 다른 키 유도 방법들을 이용하여 유도될 수도 있다. 베이스 키로부터의 추가적인 추상화는 직접 공격으로부터 베이스 키를 보호하는 것을 도울 수도 있다.
단계 1110 에서, 위임-인가자 시스템은 일방 함수들의 시리즈를 이용하여 혼합 키로부터 하나 이상의 전송 키들을 유도한다. 스텝 1110 은 대칭 암호해독법, 비대칭 암호해독법, 1-방향 암호 기능들, 또는 이들의 어떤 조합을 수반할 수도 있다. 위임 인가자 시스템은 그후 예를 들어, 마스터 키로부터 페이로드 키를 유도하거나, 또는 사전 계산된 데이터 테이블로부터 페이로드 키를 취출하거나 또는 네트워크를 통해서 페이로드 키를 페치함으로써, 페이로드 키를 획득할 수도 있다. 일부 실시형태들에서, 사전 계산된 테이블은 (HDCP, EMV 등과 같은 특정의 시스템 또는 프로토콜에 대한 키들을 발하는 것을 담당하는 엔터티와 같은) 키들을 발하하거나, 또는 위임 인가자 시스템에 의해 이전에 발생된 제 3 자에 의해 발생될 수도 있다. 페이로드 키들은 암호화되어 저장되고, 그후 위임 인가자 시스템에 의해 페이로드 키를 획득하는 프로세스의 부분으로서 해독될 수도 있다 (1120).
단계 1130 에서, 위임-인가자 시스템은 하나 이상의 전송 키들을 이용하여 페이로드 키를 암호화한다.
단계 1135 에서, 위임-인가자 시스템은 암호화된 페이로드 키 및 혼합 키 (또는, 또 다른 키) 를 이용하여 검증자 (validator) 를 유도한다. 구체적으로 설명하면, 검증자는 암호화된 페이로드 키 및 혼합 키를 최종 출력이 검증자인 하나 이상의 일방 함수들의 시리즈로의 입력들로서 제공함으로써 발생될 수도 있다. 검증자는 SM 코어 (또는, 암호화된 페이로드 키의 잠재적으로 다른 수신자들) 이 암호화된 페이로드 키가 유효하고 수정되지 않는다는 것을 검증하는 것을 가능하게 한다.
단계 1140 에서, 위임-인가자 시스템은 (서명할 때에 수반되는 다른 값들에 더해서, SM 코어 및 추출기/하위추출기들이 페이로드를 궁극적으로 전달해야 하는 어드레스를 포함할 수도 있는) 하나 이상의 위임 입력 파라미터들을 수신한다. 그리고, 스텝 1150 에서, 위임 입력 파라미터들, 암호화된 페이로드 키, 및 검증자는 그후 DSB 를 생성하기 위해 위임-인가자 시스템 사설 키를 이용하여 위임-인가자 시스템에 의해 디지털 서명된다. 단계 1160 에서, DSB 가 제공된다.
이의 대안으로, 미도시된 일부 실시형태들에서, 스텝 1135 은 생략되며, 따라서, 스텝 1150 에서, 검증자는 디지털 서명되지 않으며, 제공되는 (1160) DSB 의 일부가 아니다.
도 12 는 SM 코어에 의해, 페이로드를 포함하는 하나 이상의 서명된 블록들을 프로세싱하는 예시적인 방법의 플로우 차트이다. 예를 들어, 하나 이상의 서명된 블록들은 RSB 및 (예컨대, 도 11 의 프로세스를 통해서 발생된) 연관된 DSB 일 수도 있다. 또 다른 실시형태에서, 페이로드는 DSB 없이 RSB 내에 포함될 수도 있다.
단계 1200 에서, 하나 이상의 서명된 블록들 (예컨대, 하나 이상의 RSB, DSBs, 또는 이들의 조합) 이 SM 코어에서 수신된다. (검증자를 가진 암호화된 페이로드와 같은) 추가적인 미서명된 데이터가 또한 수신될 수도 있다. 이들 엘리먼트들은 동시에, 또는 상이한 시간들에서 수신될 수도 있다.
단계 1210 에서, SM 코어는 하나 이상의 서명된 블록들의 디지털 서명들이 유효하다고 검증하고, 그리고 임의의 DSBs 의 위임 허가들이 유효하다고 검증한다. 검증 프로세스는 도 9a 및 도 9b 를 참조하여 위에서 설명된 검증 프로세스와 유사하다. 하나 이상의 서명된 블록들에 대한 디지털 서명들이 유효하지 않거나, 또는 위임 허가들이 유효하지 않으면, SM 코어는 하나 이상의 서명된 블록들을 거부하고 (1215), 프로세스가 종료된다 (1250). 그러나, 디지털 서명들 및 허가들이 유효하면, SM 코어는 SM 코어에게 알려진 베이스 키 (예컨대, 글로벌 키 또는 위임된 베이스 키) 를 이용하여, 예컨대, 혼합 키를 발생하는데 사용되는 동일한 알고리즘 (도 11 과 관련된 설명 참조) 을 이용하여, 혼합 키를 유도한다 (1220). SM 코어는 그후 도 11 에서 전송 키를 발생하는데 사용되는 동일한 알고리즘 및 베이스 키를 이용하여 전송 키를 유도할 수도 있다 (1225).
SM 코어는 DSB 로부터 (또는, 그것이 암호화된 페이로드가 존재하는 경우이면 RSB 로부터 또는 미서명된 데이터로부터) 암호화된 페이로드 키를 추출하고 (1230), 그리고, 암호화된 페이로드 키 및 혼합 키를 이용하여, 도 11 에서 전송 키를 발생하는데 사용되는 동일한 알고리즘을 이용하여, 검증자를 유도한다 (1235). SM 코어는 그후 검증자가 올바른지를 결정할 수도 있다 (1240). SM 코어는 스텝 1235 에서 유도된 검증자를, (예컨대, DSB 에서) 페이로드 키와 함께 수신된 검증자와 비교함으로써 이 결정을 행한다. 2개의 검증자들이 매칭하지 않으면, 이것은 에러이며 (1215), 프로세스가 종료된다 (1250). 검증자들이 매칭하지 않으면, SM 코어는 전송 키를 이용하여 암호화된 페이로드 키를 암호화해제하고 (1245), 프로세스가 종료된다 (1250).
이의 대안으로, 미도시된 일부 실시형태들에서, 스텝들 1235 및 1240 은 생략되며, 따라서, 암호화된 페이로드 키는 검증자의 사용 없이 해독될 수도 있다. 스텝들 1235 및 1240 은 또한 예컨대, 검증자를, 그것을 독립적으로 계산함이 없이 (예컨대, RSA, EC-DSA, 또는 검증자에 포함된 다른 디지털 서명을 검증함으로써) 검증함으로써 검증자를 검증하는 다른 방법들과 대체될 수도 있다.
게다가, 일부 실시형태들 (미도시) 에서, 암호화된 페이로드 키는 DSB 로부터 추출되지 않으며 (1230), 그러나 대신에, (예를 들어) RSB (또는, 다른 서명된 블록) 으로부터, 보안 메모리 (예컨대, 보안 메모리 (310)) 로부터 취출되거나, 레지스터 I/F (예컨대, 레지스터 I/F (358)) 를 통해서 서명된 블록들로부터 별개로 제공되거나, 또는 SM 코어 내 사설 메모리로부터 취출될 수도 있다.
3.3 감사
*여러 경우에, SM-이용가능 IC 의 상태를 검증하는 것이 바람직할 수도 있다. 감사 능력들은 예를 들어, 이전 피쳐 관리 지령이 디바이스에 적절히 제공되었다는 것을 보장하기 위해, 또는 디바이스의 진정성을 검증하기 위해 사용될 수 있다. 예를 들어, 고객이 피쳐를 인에이블한 트랜잭션의 반환을 요청하면, 구매 가격을 반환하기 전에 피쳐가 디스에이블되었다는 것을 검증하는 것이 바람직할 수도 있다.
일반적인 감사 프로세스는 감사 엔터티로부터 챌린지를 수신하는 것을 포함할 수 있다. 이 챌린지는 무작위 파라미터일 수 있으며, 그 응답이 특정의 요청에 응답하여 발생되었다는 수신확인을 가능하게 하기 위해서 포함된다. 챌린지를 수신한 후, SM-이용가능 IC 는 (1) 비밀 키 (예컨대, 감사 지령에 규정된 베이스 키) 를 알고 있다는 것, 및 (2) (예컨대, 챌린지에 규정된 기준들을 만족하는) 적합한 상태의 값 또는 상태의 성질을 알고 있다는 것을 검증하는 입증을 발생할 수도 있다. 예를 들어, 감사 지령에 응답하여, 예시적인 SM 코어는 비밀 키의 함수 및 감사되는 피쳐 상태에서 비트들의 함수인 감사 입증 값을 계산할 수도 있다. 감사 계산에의 비밀 키의 포함은 비밀 키를 알고 있지 않은 상대방 (adversary) 이 감사 응답들을 위조하는 것을 방지한다. 감사 엔터티는 궁극적으로 그 응답을 검증한다. 상태 감사는 입증들을 안전하게 하기 위해, (메시지 인증 코드들과 같은) 대칭 암호해독법 및/또는 (디지털 서명들과 같은) 공개 키 암호해독법을 이용할 수도 있다.
예시적인 실시형태에서, 감사 요청들은 옵션적으로, 지령 서명자가 또한 선택된 비밀 키를 알고 있다는 것을 검증하는 검증자를 포함할 수도 있다. SM 코어는 예를 들어, 이 검증자가 내부적으로-계산된 참조와 매칭하면 감사 입증을 단지 발생할 수 있다. 그 요청에 관한 검증자는 미인가자된 당사자가 감사 지령들을 호출하는 것을 방지하도록 도울 수 있다.
SM 코어 내부 피쳐들을 포함하는, 임의의 피쳐 상태의 값은, 잠재적으로 감사될 수도 있다. 예를 들어, 감사 기능을 이용하여, 이전 피쳐 관리 지령이 SM 이용가능 IC 에 적절히 제공되었다는 것을 검증하기 위해, 이전 지령은 그의 성공을 나타내는 내부 비트를 설정할 수 있으며, 그후 이 비트는 이어서 감사될 수 있다. 감사 엔터티의 목표가 단지 SM 코어 (그의 상태가 아닌) 를 포함하는 디바이스의 진정성을 단지 검증하면, 임의의 피쳐 상태가 그 응답에 포함되는 것이 필요하지 않을 수도 있다.
감사는 글로벌 키들, 디바이스 특정의 키들, SM-이용가능 ICs 의 시리즈에 의해 공유되는 키들, 또는 이들의 어떤 조합을 포함하여, SM 코어에 이용가능한 임의의 키들을 이용하여 수행될 수 있다. 디바이스-특정의 키들을 이용하는 실시형태들에서, 키들의 데이터베이스는 감사 응답의 검증 (뿐만 아니라 어쩌면 감사 요청들의 생성) 을 촉진하기 위해, (예를 들어, 루트 인가자, IC 제조업자, 제품 판매자, 보안 서비스 등에 의해) 감사자에게 이용가능하게 될 수도 있다.
4. 구성기 및 컴파일러 기능
구성기 시스템 (예컨대, 구성기 시스템 (280)) 은 SM-이용가능 IC 의 설계 프로세스 동안 사용될 수도 있다. 구성기 시스템은 피쳐들 및 다른 목적지들에의 SM 코어 관리된 피쳐 공간 및 키들의 맵핑 또는 IC 에서의 사용들을 추적하고 자동화하기 위해 ASIC 설계 프로세스 동안 동작된다. 도 13a 는 SM-이용가능 IC 의 설계 프로세스 동안 구성기 시스템을 이용하는 예시적인 방법의 플로우 차트이다. 단계 1310 에서, 구성기 시스템은 구성기 입력 데이터를 수신한다. 구성기 입력 데이터는 하나 이상의 구성기 입력 파일들, 하드웨어 ("HW") 상수들, 또는 이들의 어떤 조합을 포함할 수도 있다.
하나 이상의 구성기 입력 파일들은 SM-이용가능 IC 에 대한 원하는 구성에 관한 정보를 정의한다. 예를 들어, 이들 파일들은, 구성 값들이 각각의 피쳐로 전달되어야 하는, 구성 값들에 대한 이름들 및 사이즈들 (예컨대, 비트들의 수), 피쳐 어드레스 공간 내 구성 값들의 그룹핑 또는 로케이션, 구성 값들에 대한 디폴트 (예컨대, 파워-온) 값들, 보안 키 버스 목적지들에 대한 이름들 및 속성들, (목적지들에 대한 키 사이즈들과 같은) 보안 키 버스 속성들, (보안 메모리 (310) 의 레이아웃에 관한 정보와 같은) 보안 메모리 맵핑 속성들, 또는 이들의 어떤 조합과 같은 것들을 규정할 수도 있다.
HW 상수들은 구성기 입력 파일들에 포함되거나 또는 따로 수신될 수도 있다. 구성기에의 HW 상수들 입력의 예들은 예를 들어, 제품 칩 IDs, (루트 인가자 공개 키를 잠재적으로 포함하는) 루트 인가자로부터의 하나 이상의 키들, 위임 인가자로부터의 하나 이상의 키들, 하나 이상의 베이스 키들, 하나 이상의 추가적인 보안 키들, 에러 정정 데이터 등을 포함할 수도 있다.
단계 1320 에서, 구성기 시스템은 IC 설계 파일들을 발생한다. 이들 IC 설계 파일들은 추출기 하드웨어 정의(들), 하위-추출기 하드웨어 정의(들), 및 상태 캐시 데이터 (예컨대, IC 구성 맵 정보) 를 포함할 수도 있다. 일부 실시형태들에서, 이전 IC 구성 맵 정보는 SM-이용가능 IC 설계에 대한 변경들을 포함하고 있을 때 기존 회로 설계 레이아웃의 변경을 최소화기 위해, 스텝 1310 에서 구성기 입력 데이터와 함께 포함될 수도 있다. 이 경우, 구성기는 요청된 변경을 행하기 위해 최소-충격적인 방법을 식별하려고 한다. 예를 들어, 새로운 값이 피쳐 어드레스 공간에 삽입되면, 이것은 (예컨대, 기존 값들에 대한 로케이션들을 재생성하는 것과는 대조적으로) 삽입을 위해 이전에-미사용된 로케이션을 식별하기 위해 이전 맵을 이용하는 것을 포함할 수도 있다. 이와 유사하게, 값이 피쳐 어드레스 공간으로부터 제거되면, 구성기는 나머지 피쳐들을 재할당하는 것과는 대조적으로 간극을 제거하기 위해 이전 맵 정보를 이용할 수도 있다.
예컨대, 칩 설계가 대규모의 제조를 위해 준비되기 때문에, 칩 설계가 제지된다 (locked down) (스텝 1330). 여기서, 제조할 때에 사용되는 마스크 세트들에 영향을 미치는 구성기 출력들은 더 이상 변경될 수 없다. 도 13b 는 제조를 위해 칩 설계가 위탁된 후 어떻게 구성기가 이용될 수 있는지에 대한 예시적인 프로세스의 플로우 차트이다.
단계 1340 에서, 구성기 시스템은 구성기 동작 입력 데이터를 수신한다. 구성기 동작 입력 데이터는 도 13a 에서 발생된 IC 구성 맵 뿐만 아니라 (예컨대, 동작 SM 구성 파일에서의) 추가적인 데이터를 포함할 수도 있다. 동작 SM 구성 파일은 예를 들어, 어떻게 특정의 SM-이용가능 IC 과 연관되는 피쳐들 및 키들이 사용될 수 있는지에 관한 정책들, 명명 규약들에 대한 변경들, 보안 메모리 (310) 의 SM 코어의 사용에 대한 레이아웃 및 구성 합의들, 및 피쳐 어드레스들에의 내부 피쳐들의 맵핑을 기술할 수도 있다.
단계 1350 에서, 구성기 시스템은 동작 구성 맵을 내부적으로 발생한다. 도 13b 에서의 스텝들이 도 13a 에서의 스텝들보다 이후에 수행될 수 있기 때문에, 스텝 1350 에서 발생된 맵은 도 13a 동안 준비될 수 있는 것보다 좀더 종합적이고 최신인 피쳐 어드레스 범위들의 맵핑일 수도 있으며, 그러나, 도 13b 에서의 프로세스는 일반적으로 칩 하드웨어에 실제로 영향을 미치는 도 13a 로부터의 출력들이 변경되지 않을 수 있다고 가정해야 한다.
단계 1360 에서, 구성기 시스템은 그의 동작 구성 맵으로부터 맵핑 파일들을 발생한다. 이들 맵핑 파일들은 하나 이상의 지령 맵핑 파일들 및 하나 이상의 펌웨어 맵핑 파일들을 포함한다. 지령 맵핑 파일들은 예를 들어, 지령들을 SM 코어에 의해 이해가능한 형태로 맵핑하는데 사용되는 파일들이다. 예를 들어, 루트 인가자 시스템이 특정의 구성 값을 주어진 피쳐로 반송하기를 원하면, 이 파일은 루트 인가자 시스템이 그 구성 값 및 피쳐에 대응하는 피쳐 공간 어드레스를 식별하는 것을 도울 수 있다. 펌웨어 맵핑 파일들은 소프트웨어 개발에 요구되는 정의들 및 구조들 (예컨대, C 또는 C++ 헤더 및 소스 파일 등) 을 포함하는 파일들이다. 일부 실시형태들에서, 동작 구성 맵은 동작 입력 데이터에 대한 추가적인 변경들을 포함할 때 기존 동작 설계의 변경을 최소화하기 위해 스텝 1340 에서 구성기 동작 입력 데이터와 함께 포함될 수도 있다.
게다가, 일부 실시형태들에서, 구성기 시스템은 문서화 파일들을 발생한다. 문서화 파일들 (documentation files) 은 피쳐 공간에서의 할당된 이름들 및 연관된 어드레스들의 리스트(들), 구성 값들이 각각의 피쳐로 전송되는 것의 리스트(들), 지원되는 키들에 관한 정보, 피쳐 어드레스 공간에서의 값들에 대한 디폴트 값들 등과 같은, SM-이용가능 IC 설계의 개관을 제공한다. 게다가, 문서화 파일들은 소프트웨어 구성요소들의 설계에 사용되는 환경 및 구성 원리들을 포함할 수 있다. 문서화 파일들은 XML, HTML, 텍스트, PDF, WORD 등과 같은 포맷들로 출력될 수도 있다.
5. 동작 생태계
5.1 보안 메모리 지령 세그먼트들 및 파워-온 프로세스
예시적인 실시형태에서, 지령 세그먼트 영역은 SM-이용가능 IC 의 부분인 보안 메모리 (310) 에 상주한다. 이 영역은 각각의 리셋 시에 SM-이용가능 IC 에 의해 실행되는 SM 지령들을 유지한다. 저장된 SM 지령들은 세그먼트들로 편성되며, 피쳐 공간에서의 값(들) 의 영속적인 설정들, 및 SM-이용가능 IC 가 각각의 리셋 시에 지령을 실행하거나 (예컨대, 펌웨어 암호해독 키와 같은 키를 전달하거나) 및/또는 구성 동작들을 SM-이용가능 IC 내에서 영속적으로 수행하는 것이 바람직한 다른 경우들에 영향을 미치는데 사용될 수도 있다.
보안 메모리는 일반적으로 영속적이며, 그리고, (일회 프로그래밍가능 메모리들을 이용하는 것들과 같은) 일부 실시형태들에서는, 용이하게 덮어 기록되지 않을 수도 있으며, 이것은 강건성을 향상시키기 위한 방책들을 필요로 할 수 있다. 하나의 가능한 실패는 기록 프로세스 동안, 예를 들어, 전력 실패로 인해 차단되는 "테어링 (tearing)" 이다. 차단된 지령 세그먼트는 SM-이용가능 IC 가 장래의 리셋들 시에 이용불가능하게 만들지 않도록 기록하는 것이 바람직하다. 또 다른 가능한 실패는 예컨대, 실리콘 열화 또는 외부 조건들로 인한, 보안 메모리에 저장된 데이터의 오염이다. 또, 충격이 최소이고 단일 오염 이벤트가 SM-이용가능 IC 를 이용불가능하게 만들 가능성이 없어야 하는 것이 바람직하다. 또한, (예컨대, 공격의 일부로서) 보안 메모리의 오염은 SM-코어에 의해 강제되는 SM-이용가능 IC 동작에 대한 임의의 제한 사항들의 우회속임 (circumvention ) 을 불가능하게 하는 것이 바람직하다.
SM 지령들은 SM 코어가 보안 메모리에 기록하는 방법을 제어하는 정보를 포함할 수도 있다. 예를 들어, 테어-방지 (tear-resistant) 플래그 (테어 방지 모드), 또는 에러 시 재개 플래그 (에러 시 재개 모드), 또는 조합이 있을 지도 모른다.
테어 방지 모드가 활성일 때, 예시적인 SM 코어는 지령 세그먼트를 기록하는 프로세스 (또는, 다른 기록 동작) 의 시작 시에 "스킵 단어 (skip word)" 를 보안 메모리에 기록한다. 기록이 완료되지 않으면, 스킵 단어는 SM 코어로 하여금, 후속 리셋들 시에 이것을 (예컨대, 부분적으로-기록된 데이터를 포함하는 영역에 걸쳐서 스킵할 수도 있도록) 인식하도록 한다. 스킵 단어를 기록한 후, SM 코어는 페이로드 (예컨대, 메인 지령 세그먼트 콘텐츠) 를 기록하고, 그후 최종적으로 (예컨대, 단어에서의 모든 비트들을 1 의 값으로 설정함으로써) 스킵 단어를 지울 수 있다. 테어 방지 모드를 이용하지 않을 때, SM-이용가능 IC 는 보안 메모리의 하나의 단어를 저장하는 스킵 단어를 기록하지 않으며, 그러나, SM 코어가 기록이 완료되지 않으면, 후속 리셋들 시에 심각한 고장을 등록할 수도 있다는 것을 의미한다. (심각한 고장은, 예컨대, 계속해서 동작하는 것이 일반적으로 보안을 손상할지도 모르기 때문에, SM 코어로 하여금 SM-이용가능 IC 가 진입하는 감소된-기능 상태에 진입하도록 한다.) 일단 스킵 단어가 삭제되면, 세그먼트는 의무적 (mandatory) 이 되며, 각각의 후속 리셋 시에 사용될 것이다 (즉, 스킵 단어가 삭제된 후 세그먼트를 판독할 때 수정불가능한 문제에 직면하면, SM-이용가능 IC 는 심각한 고장을 일으킬 것이다). 테어-방지 모드를 이용할지의 여부의 선택은 프로그래밍 환경에 의존할 수도 있으며, 예컨대, 테어 방지 모드를 디스에이블하는 향상된 효율은 제어된 공장 환경에서 더 바람직할 수도 있으며, 반면 테어 방지는 인필드 기록들에 대해 의무적일 수도 있다.
에러 시 재개 모드에 있어, SM-이용가능 IC 는 보안 메모리 바깥에서 그 세그먼트를 판독하는 문제가 존재하면 지령 세그먼트를 무시하기 위해 허용가능하다는 것을 나타내는 플래그를 지령 세그먼트 헤더에 설정한다. 예를 들어, 에러 시 재개 플래그는 SM-이용가능 IC 의 능력들을 인에이블하는 세그먼트 상에 설정될지도 모른다. 보안 메모리로부터 판독될 수 없기 때문에, SM-이용가능 IC 가 세그먼트를 스킵하면, 한편, SM-이용가능 IC 의 능력은 세그먼트가 적절히 판독되어 프로세싱된 경우보다 더 낮을 수도 있으며, 어떤 보안 위험도 야기되지 않는다.
SM-이용가능 IC 는 테어 방지 플래그 및 에러 시 재개 플래그 중 전무, 하나, 또는 양쪽이 보안 메모리에 기록된 임의의 주어진 세그먼트 (또는, 다른 데이터 값) 에 대해 규정될 수 있게 할 수도 있다. SM-이용가능 IC 는 또한 보안 메모리에의 모든 기록들을 위해 특정의 모드들의 조합의 사용을 필요로 할 수도 있다.
리셋 후, SM 코어는 그의 보안 메모리 (예컨대, 보안 메모리 (310)) 에 저장된 지령 세그먼트들에 의해 지시되는 바와 같이, 피쳐 및 키 상태를 자동적으로 초기화한다. 도 14 는 SM-이용가능 IC 의 초기화를 위한 예시적인 방법의 플로우 차트이다
단계 1405 에서, SM-이용가능 IC 가 파워-온되거나 리셋된다. SM 코어는 이 스텝의 부분으로서 리셋될 수도 있다. SM 코어는 그후 SM-이용가능 IC 와 연관되는 제품 칩 ID 및 무결성 체크 값을 취출한다 (1410). (무결성 체크 값은 예를 들어, 패리티 체크, 해밍 코드 등과 연관된 값일 수도 있다) SM-이용가능 IC 는 무결성 에러가 일어났는지 (예컨대, 제품 칩 ID 또는 무결성 체크 값이 오염되었는지) 를 결정하기 위해 무결성 체크를 수행한다 (1415). 무결성 에러가 발생하면, 에러가 보고되고 (1420), 프로세스가 중지되며 (1445), SM 코어는 "심각한 고장" 상태에 진입할 수도 있다. 어떤 무결성 에러도 발생하지 않으면, SM 코어는 보안 메모리로부터 지령 세그먼트를 취출한다 (1425).
SM 코어는 보안 메모리에 포함된 지령 세그먼트들을 예측가능한 순서로 프로세싱한다. 예를 들어, 세그먼트들은 보안 메모리에 연속적으로 로케이트될 수도 있거나, 또는 각각의 세그먼트은 프로세싱될 다음 세그먼트의 메모리 어드레스를 포함할 수도 있다. 일부의 경우, 에러 (1430) 는 SM-이용가능 IC 가 프로세싱할 다음 지령 세그먼트의 로케이션을 신뢰성 있게 결정할 수 없게 할 수도 있으며, 이 경우, 코어는 다음 세그먼트를 폴백 메카니즘 (예컨대, 알려진 헤더 값에 대한 탐색) 을 이용하여 로케이트하거나, 또는 이것을 심각한 고장으로서 취급하려고 시도할 수도 있다. 에러가 발생하지 않으면, SM 코어는 그 지령 세그먼트에서 지령(들) 을 실행한다 (1435). SM 코어는 그후 임의의 추가적인 지령 세그먼트가 실행될 것이 남아 있는지를 결정한다 (1440). 그렇다면, 흐름은 스텝 1425 로 이동한다.
어떤 지령 세그먼트들도 남아 있지 않으면, SM 코어는 초기 피쳐 상태가 준비되어 있다고, 시스템 외부 (예컨대, 프로세서 (355), SM-이용가능 IC 의 피쳐들 또는 다른 부분들, 또는 SM-이용가능 IC 를 포함하는 디바이스) 에 통지한다 (1455). 이 통지는 다른 구성요소들이 그들을 요구하기 전에 SM 코어로부터의 필요한 값들이 준비되어 있다는 것을 보장하기 위해, 예를 들어, 리셋에서 SM 코어보다는 SM-이용가능 IC 의 모든 부분들을 유지함으로써, 칩의 다른 부분들의 부트-업을 시퀀싱하는데 SM-이용가능 IC 에 의해 이용될 수도 있다. 프로세스는 그후 종료된다 (스텝 1460).
스텝 1430 으로 되돌아가서, 에러가 발생하면, SM-이용가능 IC 는 다음 지령 세그먼트로 스킵하는 것이 허용가능한지 여부를 결정한다 (1445). 예를 들어, 지령 세그먼트의 헤더는 SM 코어에게 해결이 어려운 지령 세그먼트를 스킵하도록 명령하는, 스킵 단어 또는 에러 시 재개 플래그를 포함할 수도 있다. 해결이 어려운 지령 세그먼트를 스킵하는 것이 허용가능하면, SM-이용가능 IC 는 (예컨대, 추후 분석을 위해 에러 정보를 저장함으로써) 비-치명적인 에러를 보고하고 (1450), 스텝 1440 으로 이동할 수 있다. 해결이 어려운 지령 세그먼트를 스킵하는 것이 허용불가능하다고 SM-이용가능 IC 가 결정하면, 더 심각한 에러가 보고되며 (1420), 프로세스가 중단된다 (1445).
SM 코어는 예를 들어, 도 14 에서 설명된 초기화 프로세스 이전, 그 동안, 이후에, 베이스 키들을 초기화할 수도 있다. 최대 성능 및 유연성을 위해, SM 코어는 부트 동안 수행되는 지령 세그먼트들에 의해 요구되는 그들 베이스 키들을 단지 초기화하고, 그후 SM-이용가능 IC 의 나머지가 부트 업하도록 릴리즈된 후 나머지 베이스 키들을 초기화할 수도 있다.
일부 실시형태들에서, 보안 메모리에서의 에러들 (예컨대, 메모리 무결성 에러) 는 루트-인가자 시스템에 의해 복구될 수도 있다. 에러들은 예를 들어, 이전 RSB 또는 DSB 에 의해 기록되었을 수도 있다. 루트-인가자 시스템은 SM-이용가능 IC 로 하여금 에러를 초래하는 지령 세그먼트를 스킵가능하게 하는 오버라이드 지령을 포함하는 RSB 를 전송할 수도 있다. 게다가, RSB 는 잘못된 (faulty) 지령 세그먼트를 대체하거나 또는 정정하는 추가적인 SM 지령들을 포함할 수도 있다. 게다가, 일부 실시형태들에서, 보안 메모리에서의 잘못된 데이터가 위임-인가자 시스템으로부터의 DSB 에 의해 기록되었으면, 상이한 위임-인가자 시스템은 SM-이용가능 IC 로 하여금 에러를 초래하는 지령 세그먼트를 스킵가능하게 하는 오버라이드 지령을 포함하는 DSB 를 전송할 수도 있다. 게다가, DSB 는 잘못된 지령 세그먼트에 의해 이전에 처리된 테스크들을 수행하는 추가적인 SM 지령들을 포함할 수도 있다.
5.2 개인화 (Personalization)
개인화는 SM-이용가능 IC 로의 (예컨대, 디바이스-특정의) 키들 및 데이터 (예컨대, 지령 세그먼트들) 의 프로그래밍을 지칭한다. 개인화된 비밀 키들은 키 관리 및 감사 기능을 위해 사용될 수도 있다. SM-이용가능 IC 에 프로그래밍되는 제 1 값들 중 하나는 제품 칩 ID 일 수도 있다.
키 정보는 키스플릿들로서 저장될 수도 있다. 초기화 동안, SM 코어는 예를 들어, 키스플릿들, 네트리스트에 저장된 정보, 또는 양쪽으로부터 디바이스 키들을 재구성한다. 예를 들어, P1 키스플릿은 웨이퍼 테스트에서, 디바이스에 프로그래밍된 제 1 키스플릿으로서, 프로그래밍될 수도 있다. P2 키스플릿은 패키지된 다이 테스트에서 프로그래밍될 수도 있다. P1 및 P2 키스플릿들은 베이스 키를 형성하기 위해 SM 코어에 의해 결합된다. 결합하는 기능은 P1 또는 P2 키스플릿 (그러나, 양쪽은 아님) 의 지식이 베이스 키를 결정하는데 불충분한 경우에 선택될 수도 있다. 게다가, 하나 이상의 추가적인 키스플릿들은 디바이스 어셈블리 또는 테스트 동안 저장될 수도 있으며, 추가적인 베이스 키(들) 을 결정하기 위해 SM 코어에 의해 사용될 수도 있다. 예를 들어, 제품 제조업자는 그의 제조 프로세스들의 부분으로서, IC 제공자 또는 IC 제조업자에게 알려져 있지 않은 키를 저장하기를 원할 수도 있다. 개인화 데이터에 더해서, SM-이용가능 ICs 는 고유 제품 칩 IDs, 생산 추적 (manufacturing tracing)/일자 정보, 로트 IDs, 웨이퍼 IDs, 제품 유형들, 디바이스 이력 데이터, 및 다른 정보의 모든 방식으로 프로그래밍될 수도 있다.
도 15 는 예시적인 개인화 프로세스를 블록도 형태로 예시한다. 단계 1510 에서, 위임-인가자 시스템은 SM-이용가능 IC 에 프로그래밍될 정보를 획득한다. 이 정보는 예를 들어, 하나 이상의 베이스 키들, 하나 이상의 키스플릿들 (예컨대, P1, P2 등), 제품 칩 ID, 또는 이들의 어떤 조합을 포함할 수도 있다. 프로그래밍되는 정보는 위임-인가자 시스템에 커플링된 보안 스토리지 또는 보안 디바이스 (예컨대, 스마트카드 또는 HSM) 로부터 획득될 수도 있다.
단계 1520 에서, 위임-인가자 시스템은 적합한 메모리 기록 지령들을 포함하는 DSB 를 디바이스 테스터로 전송한다. 전송되는 정보는 암호화될 수도 있다. 디바이스 테스터는 DSB (그의 동반하는 RSB 와 함께) 를 SM-이용가능 ICs 로 전송하며, 여기서, 메모리를 프로그래밍하기 위해 SM 코어에 의해 수신되고, 검증되고, 그리고 (유효하면) 실행된다.
단계 1530 에서, 위임-인가자 시스템은 감사 로그를 하나 이상의 SM-이용가능 ICs 이 성공적으로 개인화되었다는 것을 나타내는 정보로 업데이트할 수도 있으며, 프로세스가 종료된다 (1540). 앞에서 설명된 바와 같이, 이들 감사 로그들은 그후 보안 서비스 (120) 로 전송될 수도 있다.
게다가, SM-이용가능 IC 에 입력되는 임의의 키들은 미암호화된 또는 암호화된 형태로 존재할 수도 있다. SM-이용가능 IC 및/또는 SM 코어는 개인화를 위한 암호화된 키 전송의 하나 이상의 메커니즘들을 지원할 수도 있다. 예를 들어, SM 코어는 이전에 프로그래밍된 키 (예컨대, 루트 인가자로부터의 하나 이상의 키들, 위임 인가자로부터의 하나 이상의 키들, 실리콘에 내장된 하나 이상의 베이스 키들, 하나 이상의 추가적인 보안 키들 등) 을 이용하여, 프로그래밍될 데이터를 암호화해제할 수도 있다. 게다가, SM 코어는 예컨대, SM-이용가능 IC 로의 전송 전에 개인화 키를 암호화하기 위해 공유된 키를 사용할 수 있는 위임-인가자 시스템과의 공유된 키를 발생하기 위해서, 비대칭 암호화를 이용하여, 세션 키의 교환 또는 발생을 가능하게 할 수도 있다. 세션 키가 프로그래밍될 키를 암호화해제하는데 SM 코어에 의해 사용된다. 일부 실시형태들에서, 이 프로토콜은 예컨대, SM 코어와 개인화에 수반되는 외부 디바이스 (예컨대, 위임-인가자 시스템) 사이에 상호 인증을 제공하기 위해, 세션 키를 SM 코어에 이용가능한 추가적인 대칭 키 값들과 결합함으로써, 확장될 수도 있다.
키 전송 메카니즘들 중 임의의 메카니즘이 각각의 개인화 스텝에 대해 독립적으로 선택될 수도 있다. 게다가, SM-이용가능 IC 는 키들이 개인화되는 순서에 관한 임의의 제한 사항들을 반드시 부과할 필요가 없어, 동일한 원래 마스크 세트로부터 제조되는 칩들이 상이한 애플리케이션들 또는 고객들에 대해 상이한 시퀀스들로 개인화되는 것을 가능하게 한다.
설령 임의의 개인화가 수행되기 이전이라도, 위임-인가자 시스템은 예컨대, 테스팅을 위해 피쳐 상태를 업데이트하는 DSBs 를 발생할 수도 있다. 일 실시형태에서, SM 코어는 위임-인가자 시스템으로 전송되는 무작위 챌린지 값을 발생한다. 위임-인가자 시스템은 챌린지 값에 속박되며 피쳐 관리, 키 관리, 또는 양쪽을 수행하는 DSB 를, 비-영속적인 기준으로 소망되는 바에 따라, 발생하여 전송한다. 예를 들어, 위임-인가자 시스템은 다음 리셋까지 SM-이용가능 IC 의 하나 이상의 피쳐들을 인에이블할 수도 있다. 따라서, SM-이용가능 디바이스의 동작이 테스트되는 것이 가능하다. 따라서, 설령 칩의 보안 메모리가 완전히 오류가 생기거나 또는 프로그래밍되지 않더라도, 보안 동작들은 여전히 수행될 수 있다.
5.3 SM-이용가능 디바이스들의 피쳐 상태에 대한 인-필드 업데이트들
SM-이용가능 디바이스들의 사용자들은 피쳐 상태에 대한 업데이트들을 요청가능할 수도 있다. 이들 변경들을 인가하는 메시지들 (예컨대, RSBs/DSBs) 은 그들이 (인터넷과 같은) 미신뢰된 채널들을 통해서 안전하게 전송될 수 있도록 칩-특정적이거나 또는 아니면 제한될 수 있다. 상인들, 시스템 운영자들, 디바이스 판매자들, 및 디바이스 제조업자들은 또한 SM-이용가능 ICs 에서의 피쳐들을 업데이트해달라는 지령들을 요청할 수 있다. 일부 상황들에서, 그 요청은 피쳐 업데이트가 SM-이용가능 디바이스로 통신되는 방법과는 독립적으로 전송된다. 예를 들어, 어떤 피쳐 능력의 잠금해제를 제공하는 메시지들의 시리즈를 사전 계산하는 것이 가능하며, 여기서, 각각의 메시지는 상이한 특정의 제품 칩 ID 에 대해 공식화된다. 이 사전 계산된 리스트는 루트 인가자 시스템 또는 위임 인가자 시스템가 직접 접속하지 않는 서버에 의해 저장될 수도 있다. (지급이 수신된 이후와 같은) 적합한 경우, 사전 계산 리스트에서의 엔트리들은 SM-이용가능 디바이스들로 릴리즈될 수 있다.
도 16 은 SM-이용가능 IC 에 대한 피쳐 업데이트를 위한 요청의 인가를 위한 예시적인 방법의 플로우 차트이며, 여기서, 업데이트는 위임-인가자 시스템 (예컨대, 위임-인가자 시스템 (222)) 에 의해 인가된다.
단계 1600 에서, 위임-인가자 시스템은 SM-이용가능 IC 와 연관된 업데이트 피쳐 상태에 대한 요청을 수신한다. 그 요청은 네트워크를 통한 메시지, 이메일, 웹-포털을 통해서 수신된 지령, 전화 요청, SMS 메시지 등일 수도 있다. 게다가, 일부 실시형태들에서, 그 요청은 그 요청을 처리하는 위임-인가자 시스템에 부속하는 서브시스템으로부터 유래할 수도 있다. (예를 들어, 부속물은 사용자 데이터베이스에서의 증명서 또는 지급을 확인함으로써 그 요청을 인증하고, 그후 승인된 (approved) 요청들을 메인 위임-인가자 시스템으로 포워딩할 수도 있다.)
단계 1610 에서, 위임-인가자 시스템은 이 요청이 인가되는지 여부의 그의 결정을 행한다. 예를 들어, 위임-인가자 시스템은 정보 또는 지원을 위해 제 3 자 (예컨대, 청구서 발부 및 보고 서비스 (122), 또는 보안 서비스 (120)) 와 접촉할 수도 있다. 그 요청이 허가되지 않으면, 위임-인가자 시스템은 인가 실패를 사용자에게 보고하고 (1620), 프로세스가 종료된다 (1660). 예를 들어, 위임-인가자 시스템은 인가 실패 및 그 실패에 대한 이유를 나타내는 이메일을 사용자에게 전송할 수도 있다.
인가 요청이 허가되면, 위임-인가자 시스템은 RSB 를 획득한다 (1630). RSB 는 루트-인가자 시스템 또는 보안 서비스로부터 취출될 수도 있거나, 또는 이전에 수신되었으면, RSB 는 위임-인가자 시스템 내부에 있는 (또는, 아니면, 그와 연관되는) 스토리지로부터 취출될 수도 있다.
위임-인가자 시스템은 그후 DSB 를 생성한다 (1640). DSB 는 예를 들어, 도들 8, 9a, 9b, 및 11 을 참조하여 위에서 설명된 프로세스 또는 프로세스들의 일부를 이용하여 생성될 수도 있다.
위임-인가자 시스템은 DSB 를 제공하며 (1650), 프로세스가 종료된다 (1660). 예를 들어, 위임-인가자 시스템은 DSB 를 사용자의 SM-이용가능 디바이스로 네트워크 (예컨대, 셀룰러 또는 인터넷) 을 통해서 송신할 수도 있다. 또는, 일부 실시형태들에서, 위임-인가자 시스템은 (예컨대, 보안 웹사이트 상에 포스팅함으로써) 다운로드를 위해 DSB 를 사용자에게 이용가능하게 만든다.
도 17 은 SM-이용가능 IC에 대한 피쳐 업데이트를 위한 요청의 인가를 위한 예시적인 방법의 플로우 차트이며, 여기서, 업데이트는 루트-인가자 시스템 (예컨대, 루트-인가자 시스템 (217)) 에 의해 인가된다.
단계 1710 에서, 루트-인가자 시스템은 SM-이용가능 IC 와 연관되는 피쳐 상태를 업데이트해달라는 요청을 수신한다. 그 요청은 네트워크를 통한 메시지, 이메일, 웹-포털을 통해서 수신된 지령, 전화기 요청, SMS 메시지 등일 수도 있다. 게다가, 일부 실시형태들에서, 그 요청은 그 요청을 처리하는 위임-인가자 시스템에 부속하는 서브시스템으로부터 유래할 수도 있다. (예를 들어, 부속물은 사용자 데이터베이스에서의 증명서 또는 지급을 확인함으로써 그 요청을 인증하고, 그후 승인된 요청들을 메인 위임-인가자 시스템으로 포워딩할 수도 있다.) 그 요청은 위임-인가자 시스템으로부터 유래할 수도 있다.
단계 1720 에서, 루트-인가자 시스템은 이 요청이 인가되는지 여부를 결정한다 (이것은 정보 또는 보조를 위해 제 3 자와 접촉하는 것을 포함할 수도 있다). 그 요청이 허가되지 않으면, 루트-인가자 시스템은 인가 실패를 보고하고 (1730), 프로세스가 종료된다 (1760).
그 인가 요청이 허가되면, 루트-인가자 시스템은 RSB 를 생성한다 (1740). 이 실시형태에서, RSB 는 SM 코어에게 그의 피쳐 상태를 업데이트하도록 지시하는 정보를 포함한다. RSB 는 예를 들어, 도 5 또는 도 7 을 참조하여 위에서 설명한 프로세스들을 이용하여 생성될 수도 있다.
루트-인가자 시스템는 그후 RSB 를 제공하며 (1750), 프로세스가 종료된다 (1760).
본 개시물에서, "컴퓨터" 는 하나 이상의 프로세서들, 메모리, 데이터 인터페이스, 하드웨어 보안 모듈, 디스플레이, 또는 이들의 어떤 조합을 포함할 수도 있다. 프로세서(들) 은 명령들의 특정의 세트들을 실행하는 것이 가능한, 단일 또는 다중 마이크로프로세서들, 필드 프로그래밍가능 게이트 어레이들 (FPGAs), 또는 디지털 신호 프로세서들 (DSPs) 일 수 있다. 컴퓨터에 의해 수행되는 방법들 중 일부는, 가요성 디스크, 하드 디스크, CD-ROM (compact disk-read only memory), 및 MO (magneto-optical), DVD-ROM (digital versatile disk-read only memory), DVD RAM (digital versatile disk-random access memory), 또는 반도체 (예컨대, ROM 또는 플래시) 메모리와 같은 유형의 비일시성 컴퓨터-판독가능 매체 상에 저장될 수 있는 컴퓨터-판독가능 명령들을 이용하여 이식될 수도 있다. 이의 대안으로, 방법들 중 일부는 예를 들어, ASICs, 특수 목적 컴퓨터들, 또는 범용 컴퓨터들과 같은, 하드웨어 구성요소들 또는 하드웨어와 소프트웨어의 조합들로 구현될 수 있다. 일부 실시형태들은 집적회로 내에 뿐만 아니라 컴퓨터-판독가능 매체들 내에 구현될 수도 있다. 예를 들어, 이들 설계들은 집적회로들을 설계하는데 사용되는 소프트웨어 설계 툴과 연관되는 컴퓨터-판독가능 매체들 상에 저장되거나 및/또는 그 내에 내장될 수도 있다. 예들은 VHSIC 하드웨어 기술 언어 (VHDL) 네트리스트들, Verilog 레지스터 전송 레벨 (RTL) 네트리스트들, 및 트랜지스터 레벨 (예컨대, SPICE 또는 SPICE 관련된 파일들) 네트리스트들을 포함한다. 이러한 네트리스트들이 합성가능할 뿐만 아니라 합성될 수도 있다는 점에 유의한다. 컴퓨터-판독가능 매체들은 또한 GDS-II 파일과 같은 레이아웃 정보를 갖는 매체들을 포함한다. 더욱이, 집적회로 설계를 위한 네트리스트 파일들 또는 다른 컴퓨터-판독가능 매체들은 위에서 설명된 설계들의 방법들을 수행하기 위해 시뮬레이션 환경에서 사용될 수도 있다.
설명된 실시형태들의 어떤 적응들 및 변경들이 이루어질 수 있다. 따라서, 위에서 설명된 실시형태들은 예시적이고 비한정적인 것으로 간주된다. 본 출원의 실시형태들은 임의의 특정의 운영 시스템, 모바일 디바이스 아키텍쳐, 서버 아키텍쳐, 또는 컴퓨터 프로그래밍 언어에 한정되지 않는다.

Claims (15)

  1. 루트 인가자 시스템에 의해, 집적 회로의 보안 관리기 코어에 의해 실행될 때 상기 보안 관리기 코어가 상기 집적 회로의 하드웨어 피쳐의 기능을 업데이트하는 것을 가능하게 하는 지령, 위임 인가자 시스템을 위한 위임 서명 블록 (DSB) 의 콘텐츠, 형태, 또는 양쪽을 지시하는 지령 템플릿 및 상기 위임 인가자 시스템과 연관된 위임 허가들을 식별하는 데이터를 수신하는 단계;
    상기 루트 인가자 시스템에 의해, 루트 서명된 블록 (RSB) 을 생성하기 위해 루트 인가자 키를 이용하여 상기 지령을 서명하는 단계로서, 상기 RSB 는 상기 루트 인가자 키에 의해 서명된 서명, 상기 위임 인가자 시스템과 연관된 위임 공개 키, 및 상기 지령, 상기 지령 템플릿 및 상기 위임 허가들을 식별하는 상기 데이터를 포함하는, 상기 지령을 서명하는 단계; 및
    상기 RSB 를 상기 집적 회로의 상기 보안 관리기 코어에 제공하는 단계를 포함하고,
    상기 지령은, 상기 RSB 의 상기 서명이 상기 보안 관리기 코어에 의해 검증되는 것에 응답하여, 상기 보안 관리기 코어에 의해 실행되어 상기 보안 관리기 코어가 상기 하드웨어 피쳐의 상기 기능을 업데이트하는 것을 가능하게 하도록 실행되는, 방법.
  2. 제 1 항에 있어서,
    상기 RSB 는 상기 집적 회로의 테스터 인터페이스에 의해 상기 보안 관리기 코어로 제공되는, 방법.
  3. 제 1 항에 있어서,
    상기 지령은 상기 보안 관리기 코어가 상기 집적 회로의 상기 하드웨어 피쳐의 상태를 업데이트할 것을 명령하고, 상기 하드웨어 피쳐에 대한 업데이트는 영속적 또는 비-영속적인, 방법.
  4. 제 1 항에 있어서,
    상기 지령은 하나 이상의 키를 상기 집적 회로의 구성요소들로 전달하기 위한 것이고, 상기 키는: 상기 구성요소들의 암호화 동작들, 상기 구성요소들의 디지털 권리들 관리 동작들, 상기 구성요소들의 패스워드 관리 동작들, 또는 상기 구성요소들의 인증 동작들 중 적어도 하나에 관련되는, 방법.
  5. 제 1 항에 있어서,
    상기 지령은 상기 집적 회로 내에 하나 이상의 하드웨어 상수들을 저장하기 위한 것이고, 상기 하드웨어 상수들은 제품 칩 식별자, 하나 이상의 보안 키들, 하나 이상의 베이스 키들, 또는 에러 정정 데이터 중 적어도 하나를 포함하는, 방법.
  6. 루트 인가자 시스템에 의해, 집적 회로의 보안 관리기 코어에 의해 실행될 때 상기 보안 관리기 코어가 상기 집적 회로의 하드웨어 피쳐의 기능을 업데이트하는 것을 가능하게 하는 지령을 포함하는 입력 파라미터들을 수신하는 단계;
    상기 루트 인가자 시스템에 의해, 상기 루트 인가자 시스템과 연관된 루트 인가자 키에 의해 서명된 서명, 상기 지령, 위임 인가자 시스템과 연관된 위임 공개 키와 위임 허가들, 상기 위임 인가자 시스템에 의해 생성되는 위임 서명 블록 (DSB) 의 콘텐츠, 형태, 또는 양쪽을 지시하는 지령 템플릿을 포함하는 루트 서명된 블록 (RSB) 을 생성하는 단계; 및
    상기 RSB 를 상기 집적 회로의 상기 보안 관리기 코어로 제공하는 단계를 포함하고,
    상기 지령은, 상기 RSB 의 상기 서명이 상기 보안 관리기 코어에 의해 검증되고 상기 RSB 에서 제공되는 상기 위임 공개 키를 이용하여 상기 DSB 의 서명이 상기 보안 관리기 코어에 의해 검증되는 것에 응답하여, 상기 보안 관리기 코어에 의해 실행되어 상기 보안 관리기 코어가 상기 하드웨어 피쳐의 상기 기능을 업데이트하는 것을 가능하게 하도록 실행되는, 방법.
  7. 제 6 항에 있어서,
    상기 위임 허가들은 상기 보안 관리기 코어를 통해 상기 위임 인가자 시스템의 관리 능력들을 정의하는, 방법.
  8. 제 6 항에 있어서,
    상기 RSB 는 상기 지령과 연관된 지령 템플릿을 더 포함하는, 방법.
  9. 제 6 항에 있어서,
    상기 RSB 는 위임 인가자 서명을 위한 하나 이상의 요건들을 더 포함하는, 방법.
  10. 제 6 항에 있어서,
    상기 RSB 를 상기 위임 인가자 시스템에 전달하는 단계를 더 포함하는, 방법.
  11. 위임 인가자 시스템에 의해, 집적 회로의 보안 관리기 코어에 의해 실행될 때 상기 보안 관리기 코어가 상기 집적 회로의 하드웨어 피쳐의 기능을 업데이트하는 것을 가능하게 하는 지령, 및 상기 위임 인가자 시스템에 의해 생성되는 위임 서명 블록 (DSB) 의 콘텐츠, 형태, 또는 양쪽을 지시하는 지령 템플릿을 포함하는, 입력 파라미터들을 수신하는 단계로서, 상기 입력 파라미터들은 루트 인가자 시스템과 연관된 루트 비밀 키에 의해 서명된 루트 서명된 블록 (RSB) 의 일부로서 수신되고, 상기 RSB 는 상기 지령 템플릿의 서명을 포함하는, 상기 입력 파라미터들을 수신하는 단계;
    상기 위임 인가자 시스템에 의해, 상기 루트 인가자 시스템과 연관된 루트 공개 키로 상기 지령 템플릿의 상기 서명을 검증하는 단계;
    상기 위임 인가자 시스템에 의해, 상기 지령 템플릿의 상기 서명이 검증되는 것에 응답하여, 위임 서명 블록 (DSB) 을 생성하기 위해 상기 입력 파라미터들을 서명하는 단계로서, 상기 DSB 는 상기 위임 인가자 시스템과 연관된 위임 비밀 키에 의해 서명된 서명 및 상기 지령을 포함하는, 상기 입력 파라미터들을 서명하는 단계; 및
    상기 DSB 를 상기 집적 회로의 상기 보안 관리기 코어로 제공하는 단계를 포함하고,
    상기 지령은, 상기 DSB 의 상기 서명이 상기 보안 관리기 코어에 의해 검증되는 것에 응답하여, 상기 보안 관리기 코어가 상기 하드웨어 피쳐의 기능을 업데이트하는 것을 가능하게 하도록 상기 보안 관리기 코어에 의해 실행되는, 방법.
  12. 제 11 항에 있어서,
    상기 입력 파라미터들은 루트 인가자 시스템에 의해 제공되는 루트 서명된 블록 (RSB) 의 일부로서 수신되는, 방법.
  13. 제 12 항에 있어서,
    상기 DSB 는 상기 RSB 와 연관되고, 상기 RSB 는 상기 보안 관리기 코어로 제공되는, 방법.
  14. 제 12 항에 있어서,
    상기 RSB 는: 상기 위임 인가자 시스템과 연관된 위임 허가들, 상기 위임 인가자 시스템과 연관된 공개 키, 상기 지령과 연관된 지령 템플릿, 또는 위임 인가자 서명을 위한 요건들 중 하나 이상을 포함하는, 방법.
  15. 제 14 항에 있어서,
    상기 위임 허가들은 상기 보안 관리기 코어를 통해 상기 위임 인가자 시스템의 관리 능력들을 정의하는, 방법.
KR1020217030967A 2012-08-10 2013-08-09 집적회로들에서의 보안 피쳐 및 키 관리 KR102378157B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227008926A KR102470524B1 (ko) 2012-08-10 2013-08-09 집적회로들에서의 보안 피쳐 및 키 관리

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201261682001P 2012-08-10 2012-08-10
US61/682,001 2012-08-10
US13/831,545 2013-03-14
US13/831,545 US10771448B2 (en) 2012-08-10 2013-03-14 Secure feature and key management in integrated circuits
PCT/US2013/054306 WO2014026095A2 (en) 2012-08-10 2013-08-09 Secure feature and key management in integrated circuits
KR1020217007899A KR102312131B1 (ko) 2012-08-10 2013-08-09 집적회로들에서의 보안 피쳐 및 키 관리

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217007899A Division KR102312131B1 (ko) 2012-08-10 2013-08-09 집적회로들에서의 보안 피쳐 및 키 관리

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227008926A Division KR102470524B1 (ko) 2012-08-10 2013-08-09 집적회로들에서의 보안 피쳐 및 키 관리

Publications (2)

Publication Number Publication Date
KR20210119585A true KR20210119585A (ko) 2021-10-05
KR102378157B1 KR102378157B1 (ko) 2022-03-24

Family

ID=50066202

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020217007899A KR102312131B1 (ko) 2012-08-10 2013-08-09 집적회로들에서의 보안 피쳐 및 키 관리
KR1020157003505A KR102230834B1 (ko) 2012-08-10 2013-08-09 집적회로들에서의 보안 피쳐 및 키 관리
KR1020217030967A KR102378157B1 (ko) 2012-08-10 2013-08-09 집적회로들에서의 보안 피쳐 및 키 관리
KR1020227008926A KR102470524B1 (ko) 2012-08-10 2013-08-09 집적회로들에서의 보안 피쳐 및 키 관리

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020217007899A KR102312131B1 (ko) 2012-08-10 2013-08-09 집적회로들에서의 보안 피쳐 및 키 관리
KR1020157003505A KR102230834B1 (ko) 2012-08-10 2013-08-09 집적회로들에서의 보안 피쳐 및 키 관리

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227008926A KR102470524B1 (ko) 2012-08-10 2013-08-09 집적회로들에서의 보안 피쳐 및 키 관리

Country Status (7)

Country Link
US (5) US10771448B2 (ko)
EP (1) EP2907262B1 (ko)
JP (1) JP6427099B2 (ko)
KR (4) KR102312131B1 (ko)
CN (1) CN104541474B (ko)
TW (1) TWI621031B (ko)
WO (1) WO2014026095A2 (ko)

Families Citing this family (118)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9231758B2 (en) 2009-11-16 2016-01-05 Arm Technologies Israel Ltd. System, device, and method of provisioning cryptographic data to electronic devices
US9015469B2 (en) 2011-07-28 2015-04-21 Cloudflare, Inc. Supporting secure sessions in a cloud-based proxy service
US9607142B2 (en) * 2011-09-09 2017-03-28 International Business Machines Corporation Context aware recertification
US8782774B1 (en) 2013-03-07 2014-07-15 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US10120350B2 (en) * 2013-03-11 2018-11-06 Fisher-Rosemount Systems, Inc. Background collection of diagnostic data from field instrumentation devices
US9887983B2 (en) * 2013-10-29 2018-02-06 Nok Nok Labs, Inc. Apparatus and method for implementing composite authenticators
US10270748B2 (en) 2013-03-22 2019-04-23 Nok Nok Labs, Inc. Advanced authentication techniques and applications
US10706132B2 (en) 2013-03-22 2020-07-07 Nok Nok Labs, Inc. System and method for adaptive user authentication
US9961077B2 (en) 2013-05-30 2018-05-01 Nok Nok Labs, Inc. System and method for biometric authentication with device attestation
US9401802B2 (en) * 2013-07-31 2016-07-26 Fairchild Semiconductor Corporation Side channel power attack defense with pseudo random clock operation
US9542558B2 (en) * 2014-03-12 2017-01-10 Apple Inc. Secure factory data generation and restoration
US9942049B2 (en) * 2014-04-04 2018-04-10 Qualcomm Incorporated Remote station and method for re-enabling a disabled debug capability in a system-on-a-chip device
US8996873B1 (en) 2014-04-08 2015-03-31 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US8966267B1 (en) 2014-04-08 2015-02-24 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US9768957B2 (en) * 2014-04-23 2017-09-19 Cryptography Research, Inc. Generation and management of multiple base keys based on a device generated key
US9654469B1 (en) 2014-05-02 2017-05-16 Nok Nok Labs, Inc. Web-based user authentication techniques and applications
US9577999B1 (en) 2014-05-02 2017-02-21 Nok Nok Labs, Inc. Enhanced security for registration of authentication devices
US9413533B1 (en) 2014-05-02 2016-08-09 Nok Nok Labs, Inc. System and method for authorizing a new authenticator
US9397828B1 (en) 2014-05-13 2016-07-19 Google Inc. Embedding keys in hardware
US20150331043A1 (en) * 2014-05-15 2015-11-19 Manoj R. Sastry System-on-chip secure debug
US9721121B2 (en) 2014-06-16 2017-08-01 Green Hills Software, Inc. Out-of-band spy detection and prevention for portable wireless systems
US20150381368A1 (en) * 2014-06-27 2015-12-31 William A. Stevens, Jr. Technologies for secure offline activation of hardware features
US9749131B2 (en) 2014-07-31 2017-08-29 Nok Nok Labs, Inc. System and method for implementing a one-time-password using asymmetric cryptography
US10148630B2 (en) 2014-07-31 2018-12-04 Nok Nok Labs, Inc. System and method for implementing a hosted authentication service
US9455979B2 (en) 2014-07-31 2016-09-27 Nok Nok Labs, Inc. System and method for establishing trust using secure transmission protocols
US9875347B2 (en) 2014-07-31 2018-01-23 Nok Nok Labs, Inc. System and method for performing authentication using data analytics
US10185669B2 (en) 2014-08-04 2019-01-22 Oracle International Corporation Secure key derivation functions
US9736154B2 (en) 2014-09-16 2017-08-15 Nok Nok Labs, Inc. System and method for integrating an authentication service within a network architecture
WO2016043962A1 (en) * 2014-09-17 2016-03-24 Cryptography Research, Inc. Managing privileges of different entities for an integrated circuit
US9705501B2 (en) * 2014-10-01 2017-07-11 Maxim Integrated Products, Inc. Systems and methods for enhancing confidentiality via logic gate encryption
US9866548B2 (en) 2014-12-17 2018-01-09 Quanta Computer Inc. Authentication-free configuration for service controllers
US9618566B2 (en) 2015-02-12 2017-04-11 Globalfoundries Inc. Systems and methods to prevent incorporation of a used integrated circuit chip into a product
US9930050B2 (en) * 2015-04-01 2018-03-27 Hand Held Products, Inc. Device management proxy for secure devices
KR101655890B1 (ko) * 2015-04-08 2016-09-08 (주)세이퍼존 배드 유에스비 방지를 위한 보안 유에스비 장치의 펌웨어 설치 방법
WO2016187850A1 (zh) * 2015-05-27 2016-12-01 华为技术有限公司 无线通信网络中设备配置的方法、装置及系统
FR3038757B1 (fr) * 2015-07-07 2017-08-11 Univ Montpellier Systeme et procede d'authentification et de licence ip
US10642962B2 (en) 2015-07-28 2020-05-05 Western Digital Technologies, Inc. Licensable function for securing stored data
ITUB20152708A1 (it) * 2015-07-31 2017-01-31 St Microelectronics Srl Procedimento per operare una crittografia con mascheratura di dati sensibili, apparato di crittografia e prodotto informatico corrispondente
DE102015217724A1 (de) * 2015-09-16 2017-03-16 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erstellen einer asymmetrischen Prüfsumme
EP3147830B1 (en) * 2015-09-23 2020-11-18 Nxp B.V. Protecting an integrated circuit
US9996711B2 (en) 2015-10-30 2018-06-12 Intel Corporation Asset protection of integrated circuits during transport
US11216389B2 (en) * 2015-12-02 2022-01-04 Cryptography Research, Inc. Device with multiple roots of trust
WO2017106406A1 (en) * 2015-12-16 2017-06-22 Cryptography Research, Inc. Cryptographic management of lifecycle states
CN108475482A (zh) * 2016-01-20 2018-08-31 瑞萨电子欧洲有限公司 具有防伪造能力的集成电路
US20170257369A1 (en) * 2016-03-04 2017-09-07 Altera Corporation Flexible feature enabling integrated circuit and methods to operate the integrated circuit
US10534882B2 (en) * 2016-03-29 2020-01-14 Qualcomm Incorporated Method and apparatus for configuring an integrated circuit with a requested feature set
EP3252990A1 (de) * 2016-06-03 2017-12-06 Siemens Aktiengesellschaft Verfahren und vorrichtung zum bereitstellen eines geheimnisses zum authentisieren eines systems und/oder komponenten des systems
US10754968B2 (en) * 2016-06-10 2020-08-25 Digital 14 Llc Peer-to-peer security protocol apparatus, computer program, and method
US10255462B2 (en) 2016-06-17 2019-04-09 Arm Limited Apparatus and method for obfuscating power consumption of a processor
EP3264816A1 (en) * 2016-06-30 2018-01-03 Sequans Communications S.A. Secure boot and software upgrade of a device
US9923755B2 (en) * 2016-08-01 2018-03-20 Data I/O Corporation Device programming with system generation
US11050605B2 (en) 2016-08-01 2021-06-29 Data I/O Corporation Device programming with system generation
TWI621347B (zh) * 2016-08-04 2018-04-11 捷而思股份有限公司 偽造指令自動過濾系統、協同運作系統、與相關的指令核實電路
US10637853B2 (en) 2016-08-05 2020-04-28 Nok Nok Labs, Inc. Authentication techniques including speech and/or lip movement analysis
US10769635B2 (en) 2016-08-05 2020-09-08 Nok Nok Labs, Inc. Authentication techniques including speech and/or lip movement analysis
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
WO2018067865A1 (en) * 2016-10-06 2018-04-12 Cryptography Research, Inc. Generating an authentication result by using a secure base key
US9946899B1 (en) 2016-10-14 2018-04-17 Google Llc Active ASIC intrusion shield
US11222319B2 (en) * 2016-10-14 2022-01-11 Cable Television Laboratories, Inc. Systems and methods for post-hoc device registration
US11283625B2 (en) 2016-10-14 2022-03-22 Cable Television Laboratories, Inc. Systems and methods for bootstrapping ecosystem certificate issuance
US11398906B2 (en) 2016-11-10 2022-07-26 Brickell Cryptology Llc Confirming receipt of audit records for audited use of a cryptographic key
US10855465B2 (en) 2016-11-10 2020-12-01 Ernest Brickell Audited use of a cryptographic key
US11405201B2 (en) 2016-11-10 2022-08-02 Brickell Cryptology Llc Secure transfer of protected application storage keys with change of trusted computing base
US10498712B2 (en) 2016-11-10 2019-12-03 Ernest Brickell Balancing public and personal security needs
EP3534583B1 (en) 2016-11-15 2021-01-06 Huawei Technologies Co., Ltd. Secure processor chip and terminal device
US10237070B2 (en) 2016-12-31 2019-03-19 Nok Nok Labs, Inc. System and method for sharing keys across authenticators
US10091195B2 (en) 2016-12-31 2018-10-02 Nok Nok Labs, Inc. System and method for bootstrapping a user binding
US10585608B2 (en) * 2017-03-22 2020-03-10 Oracle International Corporation System and method for securely isolating a system feature
CN106973056B (zh) * 2017-03-30 2020-11-17 中国电力科学研究院 一种面向对象的安全芯片及其加密方法
GB2561374B (en) * 2017-04-11 2022-04-06 Secure Thingz Ltd Storing data on target data processing devices
US10348706B2 (en) * 2017-05-04 2019-07-09 Ernest Brickell Assuring external accessibility for devices on a network
US10652245B2 (en) 2017-05-04 2020-05-12 Ernest Brickell External accessibility for network devices
CN107229880A (zh) * 2017-05-12 2017-10-03 深圳市博巨兴实业发展有限公司 一种带用户安全调试功能的微处理器芯片
US10505931B2 (en) * 2017-06-02 2019-12-10 Nxp B.V. Method for authenticating an integrated circuit device
US11418364B2 (en) * 2017-06-07 2022-08-16 Combined Conditional Access Development And Support, Llc Determining a session key using session data
US20190007212A1 (en) 2017-06-30 2019-01-03 Intel Corporation Secure unlock systems for locked devices
US11218322B2 (en) 2017-09-28 2022-01-04 Intel Corporation System and method for reconfiguring and deploying soft stock-keeping units
FR3072195B1 (fr) 2017-10-11 2019-10-18 Stmicroelectronics (Rousset) Sas Procede de gestion d'un retour de produit pour analyse et produit correspondant
CN107797933B (zh) * 2017-11-22 2020-06-12 中国银行股份有限公司 生成模拟报文的方法及装置
US11868995B2 (en) 2017-11-27 2024-01-09 Nok Nok Labs, Inc. Extending a secure key storage for transaction confirmation and cryptocurrency
US11789874B2 (en) 2018-01-09 2023-10-17 Qualcomm Incorporated Method, apparatus, and system for storing memory encryption realm key IDs
US20190215160A1 (en) * 2018-01-09 2019-07-11 Qualcomm Incorporated Managing a set of cryptographic keys in an encrypted system
US11250133B2 (en) 2018-01-12 2022-02-15 Arris Enterprises Llc Configurable code signing system and method
US11831409B2 (en) 2018-01-12 2023-11-28 Nok Nok Labs, Inc. System and method for binding verifiable claims
EP3543881B1 (en) * 2018-01-29 2021-08-11 Shenzhen Goodix Technology Co., Ltd. Chip access method, security control module, chip and debugging device
US11184164B2 (en) * 2018-02-02 2021-11-23 Microsoft Technology Licensing, Llc Secure crypto system attributes
US11063701B2 (en) * 2018-07-13 2021-07-13 Encore Semi, Inc. Safety integrity level of service (SILoS) system
US10853273B2 (en) 2018-08-01 2020-12-01 Micron Technology, Inc. Secure memory system programming
US10707973B2 (en) * 2018-08-30 2020-07-07 Rohde & Schwarz Gmbh & Co. Kg Method of testing bluetooth low energy devices over-the-air and testing system
GB2578158B (en) * 2018-10-19 2021-02-17 Advanced Risc Mach Ltd Parameter signature for realm security configuration parameters
GB201902470D0 (en) * 2019-02-22 2019-04-10 Secure Thingz Ltd Security data processing device
CN109756332B (zh) * 2019-03-04 2023-03-03 重庆捷思芯创电子科技有限公司 一种sram型fpga与外置密钥管理芯片的通讯系统
US11792024B2 (en) 2019-03-29 2023-10-17 Nok Nok Labs, Inc. System and method for efficient challenge-response authentication
EP3977670A4 (en) * 2019-05-24 2023-06-28 ARRIS Enterprises LLC Key-ladder protected personalization data conversion from global to unique encryption
WO2021025989A1 (en) * 2019-08-02 2021-02-11 Mastercard International Incorporated System and method to support payment acceptance capability for merchants
CN110380854A (zh) * 2019-08-12 2019-10-25 南京芯驰半导体科技有限公司 针对多个系统的根密钥生成、隔离方法及根密钥模块
CN114341917A (zh) * 2019-09-27 2022-04-12 英特尔公司 软件定义的硅实现和管理
US11042473B2 (en) * 2019-11-01 2021-06-22 EMC IP Holding Company LLC Intelligent test case management for system integration testing
CN113055340B (zh) * 2019-12-26 2023-09-26 华为技术有限公司 鉴权方法及设备
US10903990B1 (en) 2020-03-11 2021-01-26 Cloudflare, Inc. Establishing a cryptographic tunnel between a first tunnel endpoint and a second tunnel endpoint where a private key used during the tunnel establishment is remotely located from the second tunnel endpoint
TWI743715B (zh) * 2020-03-24 2021-10-21 瑞昱半導體股份有限公司 用來針對非揮發性記憶體進行資訊保護的方法及設備
US11502832B2 (en) * 2020-06-04 2022-11-15 PUFsecurity Corporation Electronic device capable of protecting confidential data
US11416639B2 (en) * 2020-06-29 2022-08-16 Nuvoton Technology Corporation PQA unlock
US20220021544A1 (en) * 2020-07-15 2022-01-20 Micron Technology, Inc. Secure Serial Peripheral Interface (SPI) Flash
CN111935119B (zh) * 2020-07-31 2021-06-18 上海安路信息科技股份有限公司 数据加密认证方法及数据加密认证系统
US11681784B2 (en) * 2020-09-03 2023-06-20 Arista Networks, Inc. Hardware license verification
US20210012893A1 (en) * 2020-09-28 2021-01-14 Uih America, Inc. Systems and methods for device control
US20220114284A1 (en) * 2020-10-14 2022-04-14 Qualcomm Incorporated Signed command stream and command execution
US11595189B2 (en) 2020-10-27 2023-02-28 Microsoft Technology Licensing, Llc Secure key exchange using key-associated attributes
US11630711B2 (en) * 2021-04-23 2023-04-18 Qualcomm Incorporated Access control configurations for inter-processor communications
US11928349B2 (en) 2021-04-23 2024-03-12 Qualcomm Incorporated Access control configurations for shared memory
CN115312110A (zh) * 2021-05-08 2022-11-08 瑞昱半导体股份有限公司 芯片验证系统及其验证方法
US20230394901A1 (en) * 2022-06-02 2023-12-07 Micron Technology, Inc. Securing electronic ballot systems via secure memory devices with embedded hardware security modules
US11546323B1 (en) * 2022-08-17 2023-01-03 strongDM, Inc. Credential management for distributed services
US11736531B1 (en) 2022-08-31 2023-08-22 strongDM, Inc. Managing and monitoring endpoint activity in secured networks
US11765159B1 (en) 2022-09-28 2023-09-19 strongDM, Inc. Connection revocation in overlay networks
US11916885B1 (en) 2023-01-09 2024-02-27 strongDM, Inc. Tunnelling with support for dynamic naming resolution
US11765207B1 (en) 2023-03-17 2023-09-19 strongDM, Inc. Declaring network policies using natural language

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030062402A (ko) * 2003-07-04 2003-07-25 학교법인 한국정보통신학원 겹선형쌍을 이용한 개인식별정보 기반의 대리서명 장치 및방법
US20100199077A1 (en) * 2009-01-30 2010-08-05 Freescale Semiconductor, Inc. Authenticated debug access for field returns
US20100269156A1 (en) * 2008-12-28 2010-10-21 Hohlfeld Matthew W Apparatus and methods for providing authorized device access
US20120192293A1 (en) * 2011-01-21 2012-07-26 Christopher Alan Adkins Method and Apparatus for Configuring an Electronics Device

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530753A (en) 1994-08-15 1996-06-25 International Business Machines Corporation Methods and apparatus for secure hardware configuration
NZ306846A (en) * 1995-06-05 2000-01-28 Certco Llc Digital signing method using partial signatures
JPH10274927A (ja) 1997-03-31 1998-10-13 Nippon Telegr & Teleph Corp <Ntt> 認証を伴う命令発行方法およびこれに用いるモジュール
JP4670158B2 (ja) 2001-02-16 2011-04-13 ソニー株式会社 データ処理方法および半導体回路
US20020141582A1 (en) * 2001-03-28 2002-10-03 Kocher Paul C. Content security layer providing long-term renewable security
US7987510B2 (en) * 2001-03-28 2011-07-26 Rovi Solutions Corporation Self-protecting digital content
JP4899248B2 (ja) 2001-04-02 2012-03-21 富士通セミコンダクター株式会社 半導体集積回路
US7484105B2 (en) 2001-08-16 2009-01-27 Lenovo (Singapore) Ptd. Ltd. Flash update using a trusted platform module
JP2003209545A (ja) 2002-01-11 2003-07-25 Tokyo Denki Univ コア内蔵型集積回路及びそのコア盗用防止方法
AU2003208528A1 (en) * 2002-03-19 2003-09-29 Koninklijke Philips Electronics N.V. Conditional access control
JP2004173206A (ja) * 2002-11-22 2004-06-17 Toshiba Corp 半導体集積回路及び機能実現システム
US20040103325A1 (en) * 2002-11-27 2004-05-27 Priebatsch Mark Herbert Authenticated remote PIN unblock
US20050114700A1 (en) 2003-08-13 2005-05-26 Sensory Networks, Inc. Integrated circuit apparatus and method for high throughput signature based network applications
US20060059372A1 (en) * 2004-09-10 2006-03-16 International Business Machines Corporation Integrated circuit chip for encryption and decryption having a secure mechanism for programming on-chip hardware
US7251805B2 (en) 2004-10-12 2007-07-31 Nanotech Corporation ASICs having more features than generally usable at one time and methods of use
US7774619B2 (en) * 2004-11-17 2010-08-10 Broadcom Corporation Secure code execution using external memory
JP4260759B2 (ja) 2005-02-18 2009-04-30 富士通株式会社 機器制御サービス提供プログラム、機器制御サービス提供システムおよび機器制御サービス提供方法
EP1722503A1 (en) 2005-05-13 2006-11-15 DrayTek Corp. Method used by an access point of a wireless LAN and related apparatus
FR2897222A1 (fr) * 2006-02-03 2007-08-10 Gemplus Sa Acces a distance a une memoire de masse et une memoire de securite dans un objet communicant portable
US7624283B2 (en) * 2006-02-13 2009-11-24 International Business Machines Corporation Protocol for trusted platform module recovery through context checkpointing
US8560829B2 (en) 2006-05-09 2013-10-15 Broadcom Corporation Method and system for command interface protection to achieve a secure interface
CN101127625B (zh) * 2006-08-18 2013-11-06 华为技术有限公司 一种对访问请求授权的系统及方法
US9064135B1 (en) * 2006-12-12 2015-06-23 Marvell International Ltd. Hardware implemented key management system and method
US8468351B2 (en) 2006-12-15 2013-06-18 Codesealer Aps Digital data authentication
US20080162866A1 (en) * 2006-12-28 2008-07-03 Siddiqi Faraz A Apparatus and method for fast and secure memory context switching
US7778074B2 (en) 2007-03-23 2010-08-17 Sigmatel, Inc. System and method to control one time programmable memory
US8995288B2 (en) * 2007-06-11 2015-03-31 Broadcom Corporation Method and system for a configurable communication integrated circuit and/or chipset
US8417848B2 (en) * 2007-11-20 2013-04-09 Hangzhou H3C Technologies Co., Ltd. Method and apparatus for implementing multiple service processing functions
US20090187771A1 (en) * 2008-01-17 2009-07-23 Mclellan Jr Hubert Rae Secure data storage with key update to prevent replay attacks
US9003197B2 (en) * 2008-03-27 2015-04-07 General Instrument Corporation Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor
WO2010016299A1 (ja) 2008-08-07 2010-02-11 三菱電機株式会社 半導体集積回路装置、設備機器制御装置、及び機器状態表示装置
WO2010019916A1 (en) 2008-08-14 2010-02-18 The Trustees Of Princeton University Hardware trust anchors in sp-enabled processors
US8627471B2 (en) 2008-10-28 2014-01-07 Freescale Semiconductor, Inc. Permissions checking for data processing instructions
WO2010057312A1 (en) 2008-11-24 2010-05-27 Certicom Corp. System and method for hardware based security
KR101261674B1 (ko) * 2008-12-22 2013-05-06 한국전자통신연구원 다운로드 제한 수신 시스템에서의 상호 인증 방법 및 장치
US20100174920A1 (en) 2009-01-06 2010-07-08 Jonathan Peter Buckingham Data processing apparatus
US8250630B2 (en) 2009-03-05 2012-08-21 Cisco Technology, Inc. Detecting unauthorized computer access
US20100284539A1 (en) * 2009-03-09 2010-11-11 The Regents Of The University Of Michigan Methods for Protecting Against Piracy of Integrated Circuits
US8583930B2 (en) * 2009-03-17 2013-11-12 Electronics And Telecommunications Research Institute Downloadable conditional access system, secure micro, and transport processor, and security authentication method using the same
JP5423088B2 (ja) * 2009-03-25 2014-02-19 ソニー株式会社 集積回路、暗号通信装置、暗号通信システム、情報処理方法、及び暗号通信方法
US7795899B1 (en) 2009-04-08 2010-09-14 Oracle America, Inc. Enabling on-chip features via efuses
WO2011003199A1 (en) 2009-07-10 2011-01-13 Certicom Corp. System and method for managing electronic assets
US20110016308A1 (en) 2009-07-17 2011-01-20 Ricoh Company, Ltd., Encrypted document transmission
US10482254B2 (en) 2010-07-14 2019-11-19 Intel Corporation Domain-authenticated control of platform resources
US9071421B2 (en) 2010-12-15 2015-06-30 Microsoft Technology Licensing, Llc Encrypted content streaming
EP2689375B1 (en) 2011-03-21 2021-09-15 Irdeto B.V. System and method for securely binding and node-locking program execution to a trusted signature authority
US8843764B2 (en) 2011-07-15 2014-09-23 Cavium, Inc. Secure software and hardware association technique
US9231926B2 (en) 2011-09-08 2016-01-05 Lexmark International, Inc. System and method for secured host-slave communication
US9015837B1 (en) 2011-09-29 2015-04-21 Google Inc. Systems and methods for verifying an update to data of an electronic device
US8812837B2 (en) 2012-06-01 2014-08-19 At&T Intellectual Property I, Lp Apparatus and methods for activation of communication devices
US8954732B1 (en) 2012-06-27 2015-02-10 Juniper Networks, Inc. Authenticating third-party programs for platforms
US9436848B2 (en) * 2013-05-30 2016-09-06 Cryptography Research, Inc. Configurator for secure feature and key manager
US9692599B1 (en) 2014-09-16 2017-06-27 Google Inc. Security module endorsement
TWI610561B (zh) * 2016-08-26 2018-01-01 Smart Mobile Broadcasting Technology Inc 視聽條件更新方法、更新碼生成系統、更新碼生成裝置、視聽條件管理裝置、內容接收系統、及內容發送系統
NL2022902B1 (en) * 2019-04-09 2020-10-20 Univ Delft Tech Integrated circuit device for loT applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030062402A (ko) * 2003-07-04 2003-07-25 학교법인 한국정보통신학원 겹선형쌍을 이용한 개인식별정보 기반의 대리서명 장치 및방법
US20100269156A1 (en) * 2008-12-28 2010-10-21 Hohlfeld Matthew W Apparatus and methods for providing authorized device access
US20100199077A1 (en) * 2009-01-30 2010-08-05 Freescale Semiconductor, Inc. Authenticated debug access for field returns
KR20110114687A (ko) * 2009-01-30 2011-10-19 프리스케일 세미컨덕터, 인크. 현장 반환을 위한 인증된 디버그 액세스
US20120192293A1 (en) * 2011-01-21 2012-07-26 Christopher Alan Adkins Method and Apparatus for Configuring an Electronics Device

Also Published As

Publication number Publication date
KR20210032557A (ko) 2021-03-24
KR102312131B1 (ko) 2021-10-13
US20160028722A1 (en) 2016-01-28
US10771448B2 (en) 2020-09-08
US20230388290A1 (en) 2023-11-30
TWI621031B (zh) 2018-04-11
WO2014026095A2 (en) 2014-02-13
EP2907262A4 (en) 2016-05-18
KR102378157B1 (ko) 2022-03-24
US10666641B2 (en) 2020-05-26
WO2014026095A3 (en) 2014-05-01
TW201415286A (zh) 2014-04-16
KR102230834B1 (ko) 2021-03-23
US20140044265A1 (en) 2014-02-13
EP2907262B1 (en) 2019-11-27
JP6427099B2 (ja) 2018-11-21
EP2907262A2 (en) 2015-08-19
US10084771B2 (en) 2018-09-25
JP2015531924A (ja) 2015-11-05
US11695749B2 (en) 2023-07-04
US20190097999A1 (en) 2019-03-28
US20210058387A1 (en) 2021-02-25
KR102470524B1 (ko) 2022-11-24
CN104541474A (zh) 2015-04-22
CN104541474B (zh) 2018-03-30
KR20220042236A (ko) 2022-04-04
KR20150040920A (ko) 2015-04-15

Similar Documents

Publication Publication Date Title
US11695749B2 (en) Secure feature and key management in integrated circuits
US10419407B2 (en) System and method for controlling features on a device
US11789625B2 (en) Managing privileges of different entities for an integrated circuit
US9436848B2 (en) Configurator for secure feature and key manager
US20020199110A1 (en) Method of protecting intellectual property cores on field programmable gate array

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant