KR20220110258A - 보안 요소들을 안전하게 업데이트하는 방법들 및 프로세스들 - Google Patents

보안 요소들을 안전하게 업데이트하는 방법들 및 프로세스들 Download PDF

Info

Publication number
KR20220110258A
KR20220110258A KR1020227022613A KR20227022613A KR20220110258A KR 20220110258 A KR20220110258 A KR 20220110258A KR 1020227022613 A KR1020227022613 A KR 1020227022613A KR 20227022613 A KR20227022613 A KR 20227022613A KR 20220110258 A KR20220110258 A KR 20220110258A
Authority
KR
South Korea
Prior art keywords
secure element
secure
processing element
firmware
temporary session
Prior art date
Application number
KR1020227022613A
Other languages
English (en)
Inventor
카필 사크데바
필립 힐
실바인 자크 프레보스트
Original Assignee
아싸 아브로이 에이비
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아싸 아브로이 에이비 filed Critical 아싸 아브로이 에이비
Publication of KR20220110258A publication Critical patent/KR20220110258A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/53Monitoring 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 executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/602Providing cryptographic facilities or services
    • 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
    • G06F21/77Protecting 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 in smart cards
    • 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/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

본 개시는 보안 요소의 펌웨어를 업데이트하기 위한 기법들을 설명한다. 기법들은, 게이트웨이 디바이스에 의해, 원격 소스로부터 펌웨어 파일을 수신하는 것; 게이트웨이 디바이스 상에 구현된 프로세싱 요소에 의해, 게이트웨이 디바이스 상에 구현된 제1 보안 요소에 대한 임시 세션 특정 키 자료를 수신하는 것; 펌웨어 파일을 복수의 데이터 청크로 분할하는 것; 프로세싱 요소에 의해, 제1 데이터 패킷을 생성하기 위해 복수의 데이터 청크 중 제1 데이터 청크에 임시 세션 특정 키 자료를 적용하는 것; 및 프로세싱 요소에 의해, 제1 데이터 패킷을 제1 보안 요소에 전송하는 것을 포함하는 동작들을 포함한다.

Description

보안 요소들을 안전하게 업데이트하는 방법들 및 프로세스들
우선권 출원
본 출원은 2019년 12월 6일 출원된 미국 가출원 제62/944,588호에 대한 우선권을 주장하며, 그 개시는 그 전부가 본 명세서에 참고로 통합된다.
본 개시의 기술분야
본 문서는 대체적으로 하나 이상의 보안 요소를 포함하는 게이트웨이와 관련되지만, 이에 제한되지 않는다.
보안 요소는 통상적으로 많은 애플리케이션들에 사용된다. 보안 요소는 암호 기능들 또는 프로세스들 - 예를 들어, 암호화, 복호화, 서명 생성, 서명 검증 및/또는 키 생성을 수행하기 위한 하드웨어 및/또는 소프트웨어를 포함한다. 보안 요소는 암호 모듈의 물리적 바운드를 확립하고 암호 모듈의 임의의 소프트웨어 및 펌웨어 컴포넌트를 저장하고 보호하는 프로세서 및/또는 다른 하드웨어 컴포넌트를 포함하는 명시적으로 정의된 경계 내에 포함된다. 보안 요소는 보안 암호 프로세서, 스마트 카드, 보안 디지털(SD)카드, 마이크로 SD 카드, SIM 카드 및/또는 임의의 다른 암호 모듈의 형태를 취할(또는 포함할) 수 있다.
보안 요소(SE)는 잘 식별된 신뢰된 기관들의 세트에 의해 제시된 규칙들 및 보안 요건들에 따라 애플리케이션들 및 이들의 기밀 및 암호 데이터를 안전하게 호스팅할 수 있는 변조 방지 플랫폼(tamper-resistant platform)이다. SE는 데이터를 안전하게 저장하고, 데이터를 안전하게 프로세싱하며, 외부 엔티티들과의 통신을 안전하게 수행하기 위해 동적 환경을 제공하는 칩으로 간주될 수 있다.
일부 소정의 실시예들에서, 보안 요소의 펌웨어를 업데이트하기 위한 시스템 및 방법이 제공된다. 일부 실시예들에서, 시스템 및 방법은 원격 소스로부터, 펌웨어 파일을 수신하는 게이트웨이를 포함한다. 게이트웨이 디바이스 상에 구현된 프로세싱 요소는 게이트웨이 디바이스 상에 구현된 제1 보안 요소에 대한 임시 세션 특정 키 자료를 수신한다. 펌웨어 파일은 복수의 데이터 청크로 분할된다. 프로세싱 요소는 임시 세션 특정 키 자료를 복수의 데이터 청크의 제1 데이터 청크에 적용하여 제1 데이터 패킷을 생성하고 이 제1 데이터 패킷을 제1 보안 요소에 전송한다.
일부 구현들에서, 임시 세션 특정 키 자료는 암호화 키 및 서명 키를 포함하고, 암호화 키는 기본 데이터를 암호화하는데 사용되고 서명 키는 암호화된 데이터에 서명하는데 사용된다.
일부 구현들에서, 제1 데이터 패킷은 임시 세션 특정 키 자료에서 암호화 키 및 서명 키를 사용하여 제1 데이터 청크를 암호화하고 서명함으로써 생성된다.
일부 구현들에서, 복수의 데이터 청크 각각에 대한 적용 및 전송 동작들이 반복된다.
일부 구현들에서, 프로세싱 요소는 보안 엔클레이브(enclave)를 포함한다. 이러한 경우들에서, 임시 세션 특정 키 자료는 제1 보안 요소와 원격 소스 사이에 확립되고, 확립은 제1 보안 요소와 연관된 마스터 펌웨어 키 쌍에 기초하여 수행되며, 펌웨어 파일은 프로세싱 요소에 의해 분할된다.
일부 구현들에서, 보안 엔클레이브는 신뢰된 실행 환경 디바이스이고, 마스터 펌웨어 키 쌍은 원격 소스에 저장된다.
일부 구현들에서, 프로세싱 요소 키 쌍은 원격 소스와 프로세싱 요소 사이에 확립된다. 임시 세션 특정 키 자료는 프로세싱 요소 키 쌍을 사용하여 원격 소스에서 프로세싱 요소로 전송된다.
일부 구현들에서, 프로세싱 요소는 보안 엔클레이브를 포함한다. 이러한 경우들에서, 프로세싱 요소 키 쌍은 제1 보안 요소와 프로세싱 요소 사이에 확립된다. 임시 세션 특정 키 자료는 프로세싱 요소 키 쌍을 사용하여 제1 보안 요소에서 프로세싱 요소로 전송된다.
일부 구현들에서, 프로세싱 요소는 보안 엔클레이브를 포함하고 펌웨어 파일은 프로세싱 요소에 의해 분할된다. 이러한 경우들에서, 프로세싱 요소는 관리자로서 제2 보안 요소를 선택하고 타깃으로서 제1 보안 요소를 선택한다. 임시 세션 특정 키 자료는 제1 보안 요소와 제2 보안 요소 사이에 확립되며, 확립은 제1 보안 요소와 연관된 제1 마스터 펌웨어 키 쌍에 기초하여 수행된다. 제2 보안 요소와 프로세싱 요소 사이에 프로세싱 요소 키 쌍이 확립된다. 임시 세션 특정 키 자료는 프로세싱 요소 키 쌍을 사용하여 제2 보안 요소에서 프로세싱 요소로 전송된다.
일부 구현들에서, 보안 엔클레이브는 신뢰된 실행 환경 디바이스이고, 제1 마스터 펌웨어 키 쌍은 제2 보안 요소에 저장되며, 제2 보안 요소와 연관된 제2 마스터 펌웨어 키 쌍은 제1 보안 요소에 저장된다.
일부 구현들에서, 제2 보안 요소의 펌웨어는 펌웨어 파일이 제1 보안 요소로 송신된 후에 업데이트된다.
일부 구현들에서, 임시 세션 특정 키 자료는 제1 임시 세션 특정 키 자료이다. 이러한 경우들에서, 프로세싱 요소는 제2 보안 요소를 타깃으로서 그리고 제1 보안 요소를 관리자로서 선택한다. 제2 임시 세션 특정 키 자료는 제1 보안 요소와 제2 보안 요소 사이에 확립되며, 확립은 제2 보안 요소와 연관된 제2 마스터 펌웨어 키 쌍에 기초하여 수행된다. 제1 보안 요소와 프로세싱 요소 사이에 프로세싱 요소 키 쌍이 확립된다. 제2 임시 세션 특정 키 자료는 프로세싱 요소 키 쌍을 사용하여 제1 보안 요소에서 프로세싱 요소로 전송된다.
일부 구현들에서, 프로세싱 요소는 제2 임시 세션 특정 키 자료에 기초하여 제1 데이터 패킷을 제2 보안 요소에 전송한다.
일부 구현들에서, 프로세싱 요소는 제2 보안 요소를 포함하고, 펌웨어 파일은 게이트웨이 상의 프로세서에 의해 분할된다. 이러한 경우들에서, 프로세서는 펌웨어 파일을 수신한다. 프로세서는 제2 보안 요소를 관리자로서 그리고 제1 보안 요소를 타깃으로서 선택한다. 임시 세션 특정 키 자료는 제1 보안 요소와 제2 보안 요소 사이에 확립되며, 확립은 제1 보안 요소와 연관된 제1 마스터 펌웨어 키 쌍에 기초하여 수행된다. 제1 데이터 청크는 프로세서에서 제2 보안 요소로 제공된다. 임시 세션 특정 키 자료를 제1 데이터 청크에 적용하여 제1 데이터 패킷을 제1 보안 요소에 직접 또는 간접적으로 전송하도록 제2 보안 요소에 명령된다.
일부 구현들에서, 제2 보안 요소의 펌웨어는 펌웨어 파일이 제1 보안 요소로 송신된 후에 업데이트된다.
일부 구현들에서, 임시 세션 특정 키 자료는 제1 임시 세션 특정 키 자료이다. 이러한 경우들에서, 프로세서는 제2 보안 요소를 타깃으로서 그리고 제1 보안 요소를 관리자로서 선택한다. 제2 임시 세션 특정 키 자료는 제1 보안 요소와 제2 보안 요소 사이에 확립되며, 확립은 제2 보안 요소와 연관된 제2 마스터 펌웨어 키 쌍에 기초하여 수행된다. 제1 데이터 청크는 프로세서에서 제1 보안 요소로 제공된다. 제1 데이터 패킷을 제2 보안 요소에 직접 또는 간접적으로 전송하도록 제2 임시 세션 특정 키 자료를 제1 데이터 청크에 적용하는 제1 보안 요소에 명령된다.
일부 구현들에서, 프로세싱 요소는 제2 임시 세션 특정 키 자료에 기초하여 제1 데이터 패킷을 제2 보안 요소에 전송한다.
보안 요소의 펌웨어를 업데이트하는 것은 통상적으로 상호 인증을 수행하고 세션 키 쌍들을 생성하여 펌웨어 업데이트를 보안 요소에 제공할 수 있도록 원격 서버가 보안 요소의 키 자료를 알아야 할 필요가 있다. 원격 서버가 보안 요소와 상호 인증을 수행한 후, 원격 서버는 펌웨어 업데이트를 청크들로 분할하고 보안 요소로 전송되는 각각의 파일 청크를 암호화해야 한다. 개시된 실시예들은 원격 소스로부터 펌웨어 또는 펌웨어 청크들을 수신하고 임시 세션 특정 키 자료로 이러한 펌웨어를 로컬로 암호화하여 암호화된 펌웨어를 보안 요소에 제공하기 위해, 게이트웨이 디바이스 상에 로컬로 구현된 프로세싱 요소를 활용한다. 이러한 방식으로, 보안 요소의 펌웨어를 업데이트하는데 사용되는 원격 서버의 프로세싱 및 저장 리소스들이 감소되고 전체 시스템의 보안이 강화된다.
이 개관은 본 특허 출원의 청구물에 대한 개관을 제공하도록 의도된다. 이것은 본 발명의 청구물의 배타적이거나 완전한 설명을 제공하도록 의도되지 않는다. 본 특허 출원에 관한 추가 정보를 제공하기 위해 상세한 설명이 포함된다.
반드시 일정한 비율로 묘사되지 않은 도면들에서, 같은 번호들은 상이한 뷰들에서 유사한 컴포넌트들을 설명할 수도 있다. 상이한 문자 접미사들을 갖는 유사한 번호들은 유사한 컴포넌트들의 상이한 인스턴스들을 나타낼 수도 있다. 도면들은 대체적으로 제한이 아닌 예로서, 본 문서에서 논의된 다양한 실시예들을 도시한다.
도 1은 다양한 실시예들에 따른 보안 요소를 업데이트하기 위한 시스템의 예의 블록도이다.
도 2a, 도 2b, 도 3 및 도 4는 다양한 실시예들에 따른 보안 요소를 업데이트하기 위한 동작들을 도시한다.
도 5는 다양한 실시예들에 따른 보안 요소를 업데이트하기 위한 예시의 프로세스를 도시하는 흐름도이다.
도 6은 하나 이상의 실시예가 구현될 수도 있는 머신의 예를 도시하는 블록도이다.
본 개시는 특히, 보안 요소의 펌웨어를 업데이트하기 위한 기법들을 설명한다. 구체적으로, 개시된 기법들은 원격 소스로부터 펌웨어 또는 펌웨어 청크들을 수신하고 임시 세션 특정 키 자료로 이러한 펌웨어를 로컬로 암호화하여 암호화된 펌웨어를 보안 요소에 제공하기 위해, 게이트웨이 디바이스 상에 로컬로 구현된 프로세싱 요소를 활용한다. 개시된 실시예들에 따라, 보안 요소의 펌웨어를 업데이트하는데 사용되는 원격 서버의 프로세싱 및 저장 리소스들이 이에 의해 감소되고 전체 시스템의 보안이 강화된다. 디바이스는 민감한 키 자료의 저장 및 암호화 알고리즘의 구현과 관련하여 소정 레벨의 보안 보증을 제공하는 경우 보안 요소로 간주된다. 양호한 보안 요소의 예는 모바일 폰의 SIM 카드, 신용/직불 카드의 보안 칩 및 기업에서의 사용자 인증 디바이스로서 사용되는 스마트 카드이다.
보안 요소는 통상적으로 많은 애플리케이션들에 사용된다. 통상적으로, 이러한 보안 요소들은 펌웨어 패킷들을 암호화하고 서명하는데 사용되는 보안 요소들 중 특정한 하나에 특정되는 마스터 암호화 키 및 마스터 서명 키로 제조된다. 이러한 마스터 암호화 및 서명 키들(MFKP)은 통상적으로 세션 키 쌍들을 생성하기 위해 MFKP의 값을 알고 있는 두 엔티티 사이의 상호 인증을 수행하는데 사용된다. 일 예로서, 보안 요소는 MFKP에 특정인 그의 보안 요소를 사용하여 보안 요소의 MFKP를 또한 알고 있는 다른 디바이스와 상호 인증을 수행할 수 있다. 상호 인증은 디바이스들 사이에서 임의의 키 자료를 교환하지 않으면서 수행될 수 있다. 상호 인증이 수행되면, 세션 키 쌍들이 생성되고 보안 요소 및 다른 디바이스에 의해 사용되어 두 디바이스 사이에서 교환된 데이터를 암호화 및 서명하고 데이터를 복호화한다. 세션이 종료되면, 세션 키 쌍들은 더 이상 유효하지 않으며 삭제될 수 있다.
일부 경우들에서, 보안 요소들이 동작하는데 사용하는 펌웨어가 업데이트되어야 한다. 예를 들어, 펌웨어는 버그들을 제거하고 및/또는 특징들을 부가/제거하기 위해 업데이트되어야 할 수도 있다. 보안 요소들을 업데이트하기 위한 펌웨어 파일은 통상적으로 클라우드-기반 서버 또는 서비스와 같은 원격 서버에 저장된다. 보안 요소의 펌웨어를 업데이트하는 것은 통상적으로 상호 인증을 수행하고 세션 키 쌍들을 생성하여 보안 요소에 펌웨어 업데이트를 제공할 수 있도록 원격 서버가 보안 요소의 MFKP가 업데이트되고 있는 것을 알아야 할 필요가 있다. 또한, 보안 요소 상에서 이용가능한 저장 리소스들이 제한되기 때문에(예를 들어, 보안 요소는 한 번에 하나보다 많은 펌웨어 파일을 저장할 수 없고 심지어 하나의 펌웨어 파일도 저장할 수 없음), 업데이트된 펌웨어 파일이 여러 동일하거나 동일하지 않은 청크들에서 보안 요소에 전송되어야 한다. 이와 같이, 원격 서버는 업데이트의 타깃인 각각의 보안 요소의 MFKP를 알아야 할 뿐만 아니라, 원격 서버가 또한 펌웨어 파일을 청크들로 분할하고 분할된 청크들을 암호화하여 타깃 보안 요소에 전송되어야 한다. 보안 요소들을 업데이트하기 위한 통상의 프로세스는 업데이트된 펌웨어 파일이 수신되고(보안 키 관리에 대한 실시들의 구현 및 프로세싱 양자 모두에 대해)엄청난 양의 프로세싱 및 저장 리소스들을 소비하는 원격 소스들에 상당한 부담을 지우게 된다.
이러한 통상의 접근법들의 단점들을 해결하기 위해, 개시된 기법들은 원격 소스로부터 펌웨어 또는 펌웨어 청크들을 수신하기 위해, 게이트웨이 디바이스 상에 로컬로 구현된, 프로세싱 요소를 활용한다. 로컬 프로세싱 요소는 암호화되고 서명된 펌웨어를 타깃 보안 요소에 제공하기 위해 타깃 보안 요소와 연관된 임시 세션 특정 키 자료로 이러한 펌웨어를 로컬로 암호화하고 서명한다. 일부 경우들에서, 로컬 프로세싱 요소는 원격 소스로부터 임시 세션 특정 키 자료를 수신한다. 일부 다른 경우들에서, 로컬 프로세싱 요소는 업데이트되고 있는 타깃 보안 요소 또는 게이트웨이 디바이스 상의 다른 보안 요소(타깃 보안 요소의 MFKP를 포함)로부터 임시 세션 특정 키 자료를 수신한다. 이러한 방식으로, 클라우드 리소스와 같은 원격 서버의 프로세싱, 저장 리소스들 및 보안 키 관리 요건들이 감소되고 보존되어 다른 기능들을 수행한다. 또한, 보안 요소들에 업데이트된 펌웨어를 제공하는 보안이 손상되지 않는다.
하기 논의는 "보안 요소들"에 관한 것이지만, 본 개시의 교시들은 범용 마이크로프로세서와 같은 임의의 다른 적절한 프로세싱 요소에 유사하게 적용가능하다. 즉, 예시의 목적으로, 본 개시는 "보안 요소들"과 관련하여 논의되지만, 보안 요소들을 업데이트하기 위해 하기에서 수행되는 임의의 기능은 보안 요소들 대신(또는 이에 부가하여)다른 프로세서들에 의해 수행될 수 있다.
도 1은 다양한 실시예들에 따른 보안 요소의 펌웨어를 업데이트하기 위한 시스템(100)의 예의 블록도이다. 시스템(100)은 원격 소스(110) 및 게이트웨이(120)를 포함한다. 원격 소스(110)는 하나 이상의 서버를 포함할 수도 있고 인터넷과 같은 로컬 영역 네트워크 또는 광역 네트워크를 통해 액세스될 수도 있다. 원격 소스(110)는 보안 요소들에 대한 펌웨어 파일 업데이트를 포함한다. 일부 실시예들에서, 게이트웨이(120)는 원격 소스(110)와 통신하여 펌웨어 파일 업데이트를 획득하고 게이트웨이(120) 상에 구현된 하나 이상의 보안 요소(150 및 152)의 펌웨어 파일을 업데이트한다. 일부 경우들에서, 원격 소스(110)는, 네트워크를 통해 액세스가능한 서버이기보다는, 펌웨어 파일의 사본을 포함하고 게이트웨이(120)에 제공할 수 있는 다른 모바일 디바이스 또는 저장 디바이스일 수도 있다.
게이트웨이(120)는 제어 회로부(140), 프로세싱 요소(130), 및 하나 이상의 보안 요소(150 및 152)를 포함한다. 일부 경우들에서, 게이트웨이(120)는 16개의 보안 요소를 포함한다. 게이트웨이(120)의 각각의 보안 요소(150 및 152)는 동일한 기능을 수행하도록 구성된다. 일부 구현들에서, 보안 요소들(150 및 152)은 통상의 범용 마이크로프로세서들보다 더 높은 레벨의 보안 보장을 제공하도록 (하드웨어 및 소프트웨어 양자 모두에서) 구현된다. 일부 구현들에서, 보안 요소들(150 및 152)은 더 높은 레벨의 보안 보장을 제공하지 않으면서 범용 마이크로프로세서들로서 구현된다.
일부 경우들에서, 각각의 보안 요소(150 및 152)는 상이한 세트의 MFKP로 제조된다. 이와 같이, 제1 보안 요소(150)와 통신하고 데이터를 교환하기 위해, 제1 보안 요소(150)의 MFKP를 알고 있는 주어진 디바이스(예를 들어, 프로세싱 요소(130))는 제1 보안 요소(150)와 상호 인증을 수행하여 임시 세션 특정 키 자료를 생성한다. 임시 세션 특정 키 자료는 정보의 패킷들을 암호화하고 서명하기 위해 제1 보안 요소(150) 및 주어진 디바이스에 의해 사용된다. 주어진 디바이스와 제1 보안 요소(150) 사이의 세션이 종료된 후, 임시 세션 특정 키 자료는 무효화 및/또는 삭제된다. 제1 보안 요소(150)와 주어진 디바이스 사이의 후속 세션들 및 통신들은, 주어진 디바이스 및 제1 보안 요소(150)가 새로운 임시 세션 특정 키 자료를 생성하기 위해 제1 보안 요소(150)의 MFKP를 사용하여 다시 상호 인증을 수행하는 것을 필요로 할 수도 있다.
일부 실시예들에서, 원격 소스(110)는 프로세싱 요소(130)에 의해 구현되는, 신뢰된 실행 환경과 같은 보안 엔클레이브를 통해 제1 보안 요소(150)의 펌웨어를 업데이트한다. 이러한 경우들에서, 보안 엔클레이브는 암호 지원을 사용하고 일반 컴퓨팅 환경과의 격리를 제공하는 애플리케이션들을 실행할 수도 있다. 일부 구현들에서, 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 다른 디바이스와 통신하기 위해 보안 엔클레이브에 의해 사용되는 대칭 또는 비대칭 키 자료를 포함한다. 디바이스들과 통신하기 위해 보안 엔클레이브에 의해 사용된 암호 프로세스 및 기법은 게이트웨이(120)의 보안 요소들에 의해 구현된 암호 프로세스와 상이하다.
구체적으로, 보안 엔클레이브에 의해 사용된 키 자료는 제1 보안 요소(150)의 MFKP와 상이하다. 다른 디바이스들과 통신하기 위해 보안 엔클레이브에 의해 사용된 키 자료는 TEEKP로서 지칭되며 데이터를 암호화/복호화하는데 사용된 암호화 키와 암호화된 데이터에 서명하는데 사용된 서명 키를 포함한다. 보안 엔클레이브를 통해 제1 보안 요소(150)의 펌웨어를 업데이트하기 위한 프로세스가 도 2a에 도시되어 있다.
도 2a에 나타낸 바와 같이, 초기에 원격 소스(110)는 제1 보안 요소(150)의 MFKP를 사용하여 제1 보안 요소(150)와 상호 인증을 수행한다. 이 경우, 원격 소스(110)는 펌웨어 업데이트의 타깃인 제1 보안 요소(150)의 MFKP를 알아야 한다. 제1 보안 요소(150)와 상호 인증을 수행한 후, 원격 소스(110) 및 제1 보안 요소(150)에 의해 임시 세션 특정 키 자료의 쌍(SFKP)이 생성되고 저장된다. SFKP를 생성한 후에, 그 전에 또는 동시에, 원격 소스(110)는 보안 엔클레이브의 TEEKP를 사용하여 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브와 인증(예를 들어, 상호 인증)을 수행한다. 이 지점에서, 원격 소스(110)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브와 통신(데이터 교환)하는데 필요한 키 자료 및 제1 보안 요소(150)와 통신하는데 필요한 SFKP를 갖는다.
이 실시예에 따라, 원격 소스(110)는 보안 엔클레이브의 TEEKP를 사용하여 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브에 제1 보안 요소(150)의 SFKP를 전송한다. 구체적으로, 원격 소스(110)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브의 TEEKP를 사용하여 제1 보안 요소(150)의 SFKP를 암호화하고 서명한다. 프로세싱 요소(130)가 원격 소스(110)로부터 SFKP를 수신한 후, 프로세싱 요소(130)는 TEEKP를 사용하여 SFKP를 복호화할 수 있고 그 후 제1 보안 요소(150)의 복호화된 SFKP를 사용하여 특정 세션에 대한 제1 보안 요소(150)와 통신할 수 있다. 원격 소스(130)가 프로세싱 요소(130)에 SFKP를 송신한 후에, 그 전에, 또는 동시에, 원격 소스(130)는 또한 펌웨어 업데이트를 갖는 펌웨어 파일을 프로세싱 요소(130)에 송신한다. 펌웨어 파일은 암호화되거나 암호화되지 않은 형태로 전송될 수도 있다. 암호화된 형태로 전송되면, 원격 소스(130)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브의 TEEKP를 사용하여 펌웨어 파일을 암호화할 수 있다. 원격 서버 및 프로세싱 요소에 의해 레버리지될 수 있는 펌웨어 파일(또는 청크들)의 많은 다른 형태들의 보안 교환이 있다. 일부 경우들에서, 펌웨어 파일은 원격 소스(110)에 의해 분할되고 원격 소스(110)로부터 청크들로 프로세싱 요소(130)에 전송될 수도 있다. 일부 경우들에서, 펌웨어 파일은 원격 소스(110)로부터 완전한 형태로 전송되고 프로세싱 요소(130)에 완전히 저장될 수도 있다. 그러한 경우들에서, 프로세싱 요소(130)는 제1 보안 요소(150)로의 송신을 위해 펌웨어 파일을 청크들로 분할한다.
프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 제1 보안 요소(150)의 SFKP를 사용하여 펌웨어 파일의 각 청크를 암호화하고 서명하여 개개의 데이터 패킷들을 생성한다. 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 데이터 패킷(예를 들어, 암호화되고 서명된 펌웨어 파일 청크)을 제1 보안 요소(150)에 제공한다. 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 모든 청크들이 제1 보안 요소(150)로 전송될 때까지 펌웨어 파일의 각 청크를 암호화하고 서명하는 프로세스를 반복한다. 펌웨어 파일의 모든 청크들이 제1 보안 요소(150)에 의해 수신된 후, SFKP는 제1 보안 요소(150)에 의해 저장되는 것으로부터 무효화 및/또는 삭제된다.
도 2b는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브를 사용하여 펌웨어 파일을 제1 보안 요소(150)에 전송하기 위한 다른 프로세스를 나타낸다. 도 2b에 나타낸 바와 같이, 초기에 원격 소스(110)는 제1 보안 요소(150)의 MFKP를 사용하여 제1 보안 요소(150)와 상호 인증을 수행한다. 이 경우, 원격 소스(110)는 펌웨어 업데이트의 타깃인 제1 보안 요소(150)의 MFKP를 알아야 한다. 제1 보안 요소(150)와 상호 인증을 수행한 후, 원격 소스(110) 및 제1 보안 요소(150)에 의해 임시 세션 특정 키 자료의 쌍(SFKP)이 생성되고 저장된다. SFKP를 생성한 후에, 그 전에 또는 동시에, 제1 보안 요소(150)는 보안 엔클레이브의 TEEKP를 사용하여 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브와 인증(예를 들어, 상호 인증)을 수행한다. 이 지점에서, 제1 보안 요소(150)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브와 통신(데이터 교환)하는데 필요한 키 자료를 갖는 제1 보안 요소(150)는 세션에 대한 통신들을 교환하는데 필요한 SFKP를 생성하였다.
이 실시예에 따라, 제1 보안 요소(150)는 보안 엔클레이브의 TEEKP를 사용하여 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브에 제1 보안 요소(150)의 SFKP를 전송한다. 구체적으로, 제1 보안 요소(150)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브의 TEEKP를 사용하여 제1 보안 요소(150)의 SFKP를 암호화하고 서명한다. 프로세싱 요소(130)가 원격 소스(110)로부터 SFKP를 수신한 후, 프로세싱 요소(130)는 TEEKP를 사용하여 SFKP를 복호화할 수 있고 그 후 제1 보안 요소(150)의 복호화된 SFKP를 사용하여 특정 세션에 대한 제1 보안 요소(150)와 통신할 수 있다. 원격 소스(130)는 펌웨어 업데이트를 갖는 펌웨어 파일을 프로세싱 요소(130)로 송신한다. 펌웨어 파일은 암호화되거나 암호화되지 않은 형태로 전송될 수도 있다. 암호화된 형태로 전송되면, 원격 소스(130)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브의 TEEKP를 사용하여 펌웨어 파일을 암호화한다. 일부 경우들에서, 펌웨어 파일은 원격 소스(110)에 의해 분할되고 원격 소스(110)로부터 청크들로 프로세싱 요소(130)에 전송될 수도 있다. 일부 경우들에서, 펌웨어 파일은 원격 소스(110)로부터 완전한 형태로 전송되고 프로세싱 요소(130)에 완전히 저장될 수도 있다. 그러한 경우들에서, 프로세싱 요소(130)는 제1 보안 요소(150)로의 송신을 위해 펌웨어 파일을 청크들로 분할한다.
프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 제1 보안 요소(150)의 SFKP를 사용하여 펌웨어 파일의 각 청크를 암호화하고 서명하여 개개의 데이터 패킷들을 생성한다. 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 데이터 패킷(예를 들어, 암호화되고 서명된 펌웨어 파일 청크)을 제1 보안 요소(150)에 제공한다. 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 모든 청크들이 제1 보안 요소(150)에 전송될 때까지 펌웨어 파일의 각 청크를 암호화하고 서명하는 프로세스를 반복한다. 펌웨어 파일의 모든 청크들이 제1 보안 요소(150)에 의해 수신된 후, SFKP는 제1 보안 요소(150)에 의해 저장되는 것으로부터 무효화 및/또는 삭제된다.
도 3은 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브 및 게이트웨이(120) 상에 구현된 2개의 보안 요소를 사용하여 펌웨어 파일을 제1 보안 요소(150)에 전송하기 위한 다른 프로세스를 나타낸다. 이 프로세스에서, 제2 보안 요소(152)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브에 제1 보안 요소(150)의 SFKP를 제공하는데 사용된다. 이 프로세스는 원격 소스(110)가 원격 소스(110)의 보안 키 관리 요건들 및 저장 리소스들을 감소시키는, 업데이트하고자 하는 각각의 타깃 보안 요소에 대한 MFKP를 유지하게 할 필요성을 회피한다. 이 프로세스는 또한 원격 소스(110)가 네트워크를 통해 교환되는 통신들의 수를 감소시키고 시스템의 전반적인 효율성 및 보안을 증가시키는 펌웨어 업데이트를 제공하기 위해 제1 보안 요소(150)와 상호 인증을 수행하게 하는 것을 회피한다.
도 3에 나타낸 프로세스를 구현하기 위해, 게이트웨이(120) 상에 구현된 각각의 보안 요소는 상호 인증을 수행하고 자체 통신들에 대한 SFKP를 생성하기 위한 제1 MFKP를 저장하고 게이트웨이(120) 상에 구현된 다른 보안 요소의 제2 MFKP를 또한 저장한다. 예를 들어, 제1 보안 요소(150)는 제1 보안 요소(150)의 암호 프로세서에 의해 사용되는 제1 MFKP를 저장하고 제2 보안 요소(152)의 제2 MFKP를 또한 저장한다. 일부 경우들에서, 게이트웨이(120)에 의해 구현된 각각의 보안 요소는 게이트웨이(120)에 의해 구현된 하나의 다른 보안 요소에 대해서만 MFKP를 저장한다. 일부 경우들에서, 게이트웨이(120)에 의해 구현된 각각의 보안 요소는 게이트웨이(120)에 의해 구현된 모든 보안 요소의 MFKP를 저장한다. 즉, 게이트웨이(120)가 16개의 상이한 보안 요소를 구현하는 경우, 각각의 보안 요소는 보안 요소의 개개의 암호 프로세서에 의해 사용된 MFKP를 포함하는 16개의 MFKP를 저장한다.
도 3에 나타낸 바와 같이, 원격 소스(130)는 펌웨어 업데이트를 갖는 펌웨어 파일을 프로세싱 요소(130)로 송신한다. 일부 경우들에서, 펌웨어 파일은 원격 소스(110)에 의해 분할되고 원격 소스(110)로부터 청크들로 프로세싱 요소(130)에 전송될 수도 있다. 일부 경우들에서, 펌웨어 파일은 원격 소스(110)로부터 완전한 형태로 전송되고 프로세싱 요소(130)에 완전히 저장될 수도 있다. 그러한 경우들에서, 프로세싱 요소(130)는 펌웨어 파일을 게이트웨이(120) 상에 로컬로 청크들로 분할한다.
펌웨어 파일을 수신한 후 또는 그 전에, 프로세싱 요소(130)는 제1 보안 요소(150)를 관리자로서 그리고 제2 보안 요소(152)를 타깃으로서 선택한다. 제1 보안 요소(150)는 제1 보안 요소(150)에 저장되는 제2 보안 요소(152)의 MFKP를 사용하여 제2 보안 요소(152)와 상호 인증을 수행한다. 두 보안 요소 사이의 상호 인증은 보안 요소들이 서로 직접 통신함으로써 또는 보안 요소들이 프로세싱 요소(130) 및/또는 제어 회로부(140)를 통해 통신들을 교환함으로써 수행될 수도 있다. 제1 보안 요소(150)와 상호 인증을 수행한 후, 제1 보안 요소(150) 및 제2 보안 요소(152)에 의해 임시 세션 특정 키 자료의 제1 쌍(SFKP1)이 생성되고 저장된다. 제1 보안 요소(150)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브에 SFKP1를 제공한다. 즉, 제1 보안 요소(150)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브의 TEEKP를 사용하여 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브와 상호 인증을 수행한다. 이 지점에서, 제1 보안 요소(150)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브와 통신(데이터 교환)하는데 필요한 키 자료를 갖는다. 제1 보안 요소(150)는 SFKP1를 암호화하고 서명하며, SFKP1를 보안 엔클레이브의 TEEKP를 사용하여 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브에 제공한다.
프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 제1 보안 요소(관리자)(150)로부터 수신된 보안 엔클레이브의 SFKP1를 사용하여 제2 보안 요소(타깃)(152)에 펌웨어 파일의 각 청크를 제공한다. 즉, 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 제2 보안 요소(152)의 SFKP1를 사용하여 펌웨어 파일의 각 청크를 암호화하고 서명하여 개개의 데이터 패킷들을 생성한다. 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 데이터 패킷(예를 들어, 암호화되고 서명된 펌웨어 파일 청크)을 제2 보안 요소(152)에 제공한다. 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 모든 청크들이 제2 보안 요소(타깃)(152)에 전송될 때까지 펌웨어 파일의 각 청크를 암호화하고 서명하는 프로세스를 반복한다. 펌웨어 파일의 모든 청크들이 제2 보안 요소(타깃)(152)에 의해 수신된 후, SFKP1는 제1 및 제2 보안 요소들(150 및 152)에 의해 그리고 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브에 의해 저장되는 것으로부터 무효화 및/또는 삭제된다.
이 지점에서, 제2 보안 요소(152)가 새로운 펌웨어 파일로 업데이트된 후, 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 제2 보안 요소(152)를 관리자로서 그리고 제1 보안 요소(150)를 타깃으로서 지정할 수도 있다. 이러한 방식으로, 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 동일한 방식으로 제1 보안 요소(150)의 펌웨어를 업데이트하는데 사용될 수도 있다. 즉, 제1 보안 요소(150)는 제1 보안 요소(150)에 저장되는 제2 보안 요소(152)의 MFKP를 사용하여 제2 보안 요소(152)와 상호 인증을 수행한다. 두 보안 요소 사이의 상호 인증은 보안 요소들이 서로 직접 통신함으로써 또는 보안 요소들이 프로세싱 요소(140)에 의해 구현된 보안 엔클레이브 및/또는 제어 회로부(130)를 통해 통신들을 교환함으로써 수행될 수도 있다. 제1 보안 요소(150)와 상호 인증을 수행한 후, 제1 보안 요소(150) 및 제2 보안 요소(152)에 의해 임시 세션 특정 키 자료의 제2 쌍(SFKP2)이 생성되고 저장된다. 제2 보안 요소(관리자)(152)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브에 SFKP2를 제공한다. 즉, 제2 보안 요소(152)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브의 TEEKP를 사용하여 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브와 상호 인증을 수행한다. 이 지점에서, 제2 보안 요소(152)는 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브와 통신(데이터 교환)하는데 필요한 키 자료를 갖는다. 제2 보안 요소(152)는 SFKP2를 암호화하고 서명하며, SFKP2를 보안 엔클레이브의 TEEKP를 사용하여 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브에 제공한다.
프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 제2 보안 요소(관리자)(152)로부터 수신된 보안 엔클레이브의 SFKP2를 사용하여 제1 보안 요소(타깃)(150)에 펌웨어 파일의 각 청크를 제공한다. 즉, 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 제1 보안 요소(150)의 SFKP2를 사용하여 펌웨어 파일의 각 청크를 암호화하고 서명하여 개개의 데이터 패킷들을 생성한다. 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 데이터 패킷(예를 들어, 암호화되고 서명된 펌웨어 파일 청크)을 제1 보안 요소(150)에 제공한다. 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브는 모든 청크들이 제1 보안 요소(150)에 전송될 때까지 펌웨어 파일의 각 청크를 암호화하고 서명하는 프로세스를 반복한다. 펌웨어 파일의 모든 청크들이 제1 보안 요소(150)에 의해 수신된 후, SFKP2는 제1 및 제2 보안 요소들(150 및 152)에 의해 그리고 프로세싱 요소(130)에 의해 구현된 보안 엔클레이브에 의해 저장되는 것으로부터 무효화 및/또는 삭제된다.
도 4는 제어 회로부(140) 및 게이트웨이(120) 상에 구현된 2개의 보안 요소를 사용하여 펌웨어 파일을 제1 보안 요소(150)에 전송하기 위한 다른 프로세스를 나타낸다. 이 프로세스에서, 프로세싱 요소(130)는 주어진 보안 요소(예를 들어, 제2 보안 요소(152))를 구현한다. 즉, 제2 보안 요소(152)의 모든 기능성은 도 1 에서 별도의 박스들로서 묘사되더라도 프로세싱 요소(130)에 의해 구현된다. 이 프로세스에서, 제2 보안 요소(152)는 제1 보안 요소(150)의 SFKP를 로컬로 생성하고 제1 보안 요소(150)에 펌웨어 청크들을 안전하게 제공하는데 사용된다. 이 프로세스는 원격 소스(110)가 원격 소스(110)의 저장 리소스들을 감소시키는, 업데이트하고자 하는 각각의 타깃 보안 요소에 대한 MFKP를 유지하게 할 필요성을 회피한다. 이 프로세스는 또한 원격 소스(110)가 네트워크를 통해 교환되는 통신들의 수를 감소시키고 시스템의 전반적인 효율성 및 보안을 증가시키는 펌웨어 업데이트를 제공하기 위해 제1 보안 요소(150)와 상호 인증을 수행하게 하는 것을 회피한다. 이 프로세스는 또한 다른 디바이스(예를 들어, 게이트웨이(120)상의 다른 프로세서 또는 제어기)와 통신 또는 교환된 임시 세션 특정 키 자료를 가질 필요성을 회피한다.
도 4에 나타낸 프로세스를 구현하기 위해, 게이트웨이(120) 상에 구현된 각각의 보안 요소는 상호 인증을 수행하고 자체 통신들에 대한 SFKP를 생성하기 위한 제1 MFKP를 저장하고 게이트웨이(120) 상에 구현된 다른 보안 요소의 제2 MFKP를 또한 저장한다. 예를 들어, 제1 보안 요소(150)는 제1 보안 요소(150)의 암호 프로세서에 의해 사용되는 제1 MFKP를 저장하고 제2 보안 요소(152)의 제2 MFKP를 또한 저장한다. 일부 경우들에서, 게이트웨이(120)에 의해 구현된 각각의 보안 요소는 게이트웨이(120)에 의해 구현된 하나의 다른 보안 요소에 대해서만 MFKP를 저장한다. 일부 경우들에서, 게이트웨이(120)에 의해 구현된 각각의 보안 요소는 게이트웨이(120)에 의해 구현된 모든 보안 요소의 MFKP를 저장한다. 즉, 게이트웨이(120)가 16개의 상이한 보안 요소를 구현하는 경우, 각각의 보안 요소는 보안 요소의 개개의 암호 프로세서에 의해 사용된 MFKP를 포함하는 16개의 MFKP를 저장한다.
도 4에 나타낸 바와 같이, 원격 소스(130)는 펌웨어 업데이트를 갖는 펌웨어 파일을 제어 회로부(140)로 송신한다. 제어 회로부(140)는 임의의 적절한 프로세서일 수도 있고 보안 엔클레이브를 구현하거나 구현하지 않을 수도 있다. 일부 경우들에서, 펌웨어 파일은 원격 소스(110)에 의해 분할되고 원격 소스(110)로부터 청크들로 제어 회로부(140)에 전송될 수도 있다. 일부 경우들에서, 펌웨어 파일은 원격 소스(110)로부터 완전한 형태로 전송되고 제어 회로부(140)에 완전히 저장될 수도 있다. 그러한 경우들에서, 제어 회로부(140)는 펌웨어 파일을 게이트웨이(120) 상에 로컬로 청크들로 분할한다.
펌웨어 파일을 수신한 후 또는 그 전에, 제어 회로부(140)는 제1 보안 요소(150)를 관리자로서 그리고 제2 보안 요소(152)를 타깃으로서 선택한다. 제1 보안 요소(150)는 제1 보안 요소(150)에 저장되는 제2 보안 요소(152)의 MFKP를 사용하여 제2 보안 요소(152)와 상호 인증을 수행한다. 두 보안 요소 사이의 상호 인증은 보안 요소들이 서로 직접 통신함으로써 또는 보안 요소들이 제어 회로부(140)를 통해 통신들을 간접적으로 교환함으로써 수행될 수도 있다. 제1 보안 요소(150)와 상호 인증을 수행한 후, 제1 보안 요소(150) 및 제2 보안 요소(152)에 의해 임시 세션 특정 키 자료의 제1 쌍(SFKP1)이 생성되고 저장된다. 이 지점에서, 제1 및 제2 보안 요소들(150 및 152)은 SFKP1을 사용하여 암호화되고 서명되는 데이터를 안전하게 교환할 수 있다.
제어 회로부(140)는 펌웨어 파일의 각 청크를 제1 보안 요소(150)에 제공한다. 제1 보안 요소(150)는 개개의 데이터 패킷들을 생성하기 위해 제2 보안 요소(152)의 SFKP1를 사용하여 요소(150)로부터 수신된 펌웨어 파일의 각 청크를 암호화하고 서명한다. 즉, 제1 보안 요소(150)는 데이터 패킷(예를 들어, 암호화되고 서명된 펌웨어 파일 청크)을 제어 회로부(140)를 통해 직접 또는 간접적으로 제2 보안 요소(152)에 제공한다. 데이터 패킷(예를 들어, 암호화되고 서명된 파일 청크)을 간접적으로 전송하는 경우, 제1 보안 요소(150)는 제2 보안 요소(152)의 SFKP1을 사용하여 암호화되고 서명된 파일 청크를 포함하는 데이터 패킷을 제어 회로부(140)에 리턴한다. 그 후, 요소(150)는 데이터 패킷을 제2 보안 요소(152)에 전송한다. 즉, 요소(150)는 제1 및 제2 보안 요소들(150 및 152) 사이에서 교환된 데이터의 블라인드(blind) 및 덤(dumb) 전달자(conduit)로서 작용할 수도 있다. 제1 보안 요소(150)는 모든 청크들이 제2 보안 요소(152)에 전송될 때까지 펌웨어 파일의 각 청크를 암호화하고 서명하는 프로세스를 반복한다. 펌웨어 파일의 모든 청크들이 제2 보안 요소(152)에 의해 수신된 후, SFKP1는 제1 및 제2 보안 요소들(150 및 152)에 의해 저장되는 것으로부터 무효화 및/또는 삭제된다.
이 지점에서, 제2 보안 요소(152)가 새로운 펌웨어 파일로 업데이트된 후, 제어 회로부(140)는 제2 보안 요소(152)를 관리자로서 그리고 제1 보안 요소(150)를 타깃으로서 지정할 수도 있다. 이러한 방식으로, 제2 보안 요소(152)는 동일한 방식으로 제1 보안 요소(150)의 펌웨어를 업데이트하는데 사용될 수도 있다. 즉, 제2 보안 요소(152)는 제2 보안 요소(152)에 저장되는 제1 보안 요소(150)의 MFKP를 사용하여 제1 보안 요소(150)와 상호 인증을 수행한다. 두 보안 요소 사이의 상호 인증은 보안 요소들이 서로 직접 통신함으로써 또는 보안 요소들이 제어 회로부(140)를 통해 통신들을 간접적으로 교환함으로써 수행될 수도 있다. 제2 보안 요소(152)와 상호 인증을 수행한 후, 제1 보안 요소(150) 및 제2 보안 요소(152)에 의해 임시 세션 특정 키 자료의 제2 쌍(SFKP2)이 생성되고 저장된다. 이 지점에서, 제1 및 제2 보안 요소들(150 및 152)은 SFKP2를 사용하여 암호화되고 서명되는 데이터를 안전하게 교환할 수 있다.
제어 회로부(140)는 펌웨어 파일의 각 청크를 제2 보안 요소(152)에 제공한다. 제2 보안 요소(152)는 개개의 데이터 패킷들을 생성하기 위해 제1 보안 요소(150)의 SFKP2를 사용하여 요소(150)로부터 수신된 펌웨어 파일의 각 청크를 암호화하고 서명한다. 제2 보안 요소(152)는 데이터 패킷(예를 들어, 암호화되고 서명된 펌웨어 파일 청크)을 제어 회로부(140)를 통해 직접 또는 간접적으로 제1 보안 요소(150)에 제공한다. 제2 보안 요소(152)는 모든 청크들이 제1 보안 요소(150)에 전송될 때까지 펌웨어 파일의 각 청크를 암호화하고 서명하는 프로세스를 반복한다. 펌웨어 파일의 모든 청크들이 제1 보안 요소(150)에 의해 수신된 후, SFKP2는 제1 및 제2 보안 요소들(150 및 152)에 의해 저장되는 것으로부터 무효화 및/또는 삭제된다.
도 5는 다양한 실시예들에 따른 보안 요소의 펌웨어를 업데이트하기 위한 예시의 프로세스(500)를 도시하는 흐름도이다.
동작(510)에서, 게이트웨이 디바이스는 원격 소스로부터, 펌웨어 파일을 수신한다.
동작(520)에서, 게이트웨이 디바이스 상에 구현된 프로세싱 요소는 게이트웨이 디바이스 상에 구현된 제1 보안 요소에 대한 임시 세션 특정 키 자료를 수신한다.
동작(530)에서, 펌웨어 파일은 복수의 데이터 청크로 분할된다.
동작(540)에서, 프로세싱 요소는 제1 데이터 패킷을 생성하기 위해 복수의 데이터 청크 중 제1 데이터 청크에 임시 세션 특정 키 자료를 적용한다.
동작(550)에서, 프로세싱 요소는 제1 데이터 패킷을 제1 보안 요소에 전송한다.
도 6은 본 명세서에서 논의된 기법들(예를 들어, 방법론들)중 임의의 하나 이상이 수행될 수도 있는 예시의 머신(600)의 블록도이다. 대안의 실시예에서, 머신(600)은 독립형 디바이스로서 동작할 수도 있거나 다른 머신들에 연결(예를 들어, 네트워킹)될 수도 있다. 네트워킹된 배치에서, 머신(600)은 서버 클라이언트 네트워크 환경들에서 서버 머신, 클라이언트 머신, 또는 양자 모두의 자격으로 동작할 수도 있다. 예에서, 머신(600)은 피어-투-피어(P2P)(또는 다른 분산) 네트워크 환경에서 피어 머신으로서 작용할 수도 있다. 머신(600)은 개인용 컴퓨터(PC), 태블릿 PC, 셋톱 박스(STB), 개인용 디지털 보조기(PDA), 이동 전화, 웹 어플라이어스, IoT 디바이스, 자동차 시스템, 항공우주 시스템 또는 그 머신에 의해 취해질 액션들을 특정하는 명령어들을 (순차적 또는 그 반대로) 실행할 수 있는 임의의 머신일 수도 있다. 추가로, 단일 머신만이 예시되어 있지만, 용어“머신"은 또한 클라우드 컴퓨팅, 서비스로서의 소프트웨어(software as a service)(SaaS), 또는 다른 컴퓨터 클러스터 구성들을 통해서와 같은, 본 명세서에 논의된 방법론들 중 임의의 하나 이상을 수행하기 위해 명령어들의 세트(또는 다중 세트들)를 개별적으로 또는 공동으로 실행하는 머신들의 임의의 집합을 포함하는 것으로 또한 취해져야 한다.
본 명세서에 설명된 바와 같은 예들은, 로직, 컴포넌트들, 디바이스들, 패키지들, 또는 메커니즘들을 포함하거나 이에 의해 동작할 수도 있다. 회로부는 하드웨어(예를 들어, 단순 회로들, 게이트들, 로직 등)를 포함하는 유형의 엔티티들로 구현된 회로들의 집합(예를 들어, 세트)이다. 회로부 멤버십은 시간 및 기본 하드웨어 가변성에 대해 유연할 수도 있다. 회로부들은 단독으로 또는 조합으로, 동작할 때 특정 태스크들을 수행할 수도 있는 멤버들을 포함한다. 예에서, 회로부의 하드웨어는 특정 동작을 수행하도록 변경할 수 없게 설계될 수도 있다(예를 들어, 하드와이어링됨). 예에서, 회로부의 하드웨어는 특정 동작의 명령어들을 인코딩하기 위해 물리적으로 수정된(예를 들어, 불변 질량 입자들의 이동가능한 배치에 의해, 자기적으로, 전기적으로 등) 컴퓨터 판독가능 매체를 포함하여 가변적으로 연결된 물리적 컴포넌트들(예를 들어, 실행 유닛들, 트랜지스터들, 단순 회로들 등)을 포함할 수도 있다. 물리적 컴포넌트들을 연결하는데 있어서, 하드웨어 구성의 기본 전기적 특성들은 예를 들어, 절연체에서 도체로 또는 그 역 또한 마찬가지로 변경된다. 명령어들은 참가 하드웨어(예를 들어, 실행 유닛들 또는 로딩 메커니즘들)가 동작 중일 때 특정 태스크들의 일부들을 수행하기 위해 가변 연결들을 통해 하드웨어에서 회로부의 멤버들을 생성하는 것을 가능하게 한다. 따라서, 컴퓨터 판독가능 매체는 디바이스가 동작 중일 때 회로부의 다른 컴포넌트들에 통신 가능하게 커플링된다. 예에서, 물리적 컴포넌트들 중 임의의 것은 하나보다 많은 회로부의 하나보다 많은 멤버에서 사용될 수도 있다. 예를 들어, 동작 하에서, 실행 유닛들은 일 지점에서 제1 회로부의 제1 회로에서 사용되고, 상이한 시간에서, 제1 회로부에서의 제2 회로에 의해 또는 제2 회로부에서의 제 3 회로에 의해 재사용될 수도 있다.
머신(예를 들어, 컴퓨터 시스템)(600)은 하드웨어 프로세서(602)(예를 들어, 중앙 프로세싱 유닛(CPU), 그래픽스 프로세싱 유닛(GPU), 하드웨어 프로세서 코어, 또는 메모리 제어기와 같은 이들의 임의의 조합 등), 메인 메모리(604), 및 정적 메모리(606)를 포함할 수도 있으며, 이들의 일부 또는 전부는 인터링크(예를 들어, 버스)(608)를 통해 서로 통신할 수도 있다. 머신(600)은 디스플레이 디바이스(610), 영숫자 입력 디바이스(612)(예를 들어, 키보드), 및 사용자 인터페이스(UI)내비게이션 디바이스(614)(예를 들어, 마우스)를 추가로 포함할 수도 있다. 예에서, 디스플레이 디바이스(610), 영숫자 입력 디바이스(612), 및 UI 내비게이션 디바이스(614)는 터치스크린 디스플레이일 수도 있다. 머신(600)은 부가적으로 저장 디바이스(622)(예를 들어, 드라이브 유닛); 신호 생성 디바이스(618)(예를 들어, 스피커); 네트워크 인터페이스 디바이스(620); 글로벌 포지셔닝 시스템(GPS)센서, 윙 센서들, 메커니컬 디바이스 센서들, 온도 센서들, ICP 센서들, 브리지 센서들, 오디오 센서들, 산업 센서들, 나침반, 가속도계 또는 다른 센서들과 같은 하나 이상의 센서(616); 및 하나 이상의 시스템 인 패키지(system-in-package) 데이터 취득 디바이스(690)를 포함할 수도 있다. 시스템 인 패키지 데이터 취득 디바이스(들)(690)은 오프셋 교정 시스템(100)의 기능성의 일부 또는 전부를 구현할 수도 있다. 머신(600)은 하나 이상의 주변 디바이스(예를 들어, 프린터, 카드 판독기 등)와 통신하거나 이를 제어하기 위해 직렬(예를 들어, 범용 시리얼 버스(USB)), 병렬, 또는 다른 유선 또는 무선(예를 들어, 적외선(IR), 근접장 통신(NFC)등) 연결과 같은 출력 제어기(628)를 포함할 수도 있다.
저장 디바이스(622)는 본 명세서 설명된 기법들 또는 기능들 중 임의의 하나 이상을 구현하거나 활용하는 데이터 구조들 또는 명령어들(624)(예를 들어, 소프트웨어)의 하나 이상의 세트가 저장되는 머신 판독가능 매체를 포함할 수도 있다. 명령어들(624)은 또한 머신(600)에 의한 그의 실행 동안 메인 메모리(604) 내에, 정적 메모리(606)내에, 또는 하드웨어 프로세서(602)내에 완전히 또는 적어도 부분적으로 상주할 수도 있다. 예에서, 하드웨어 프로세서(602), 메인 메모리(604), 정적 메모리(606), 또는 저장 디바이스(621)중 하나 또는 임의의 조합이 머신 판독가능 매체를 구성할 수도 있다.
머신 판독가능 매체가 단일 매체인 것으로 예시되지만, 용어“머신 판독가능 매체"는 하나 이상의 명령어(624)를 저장하도록 구성된 단일 매체 또는 다중 매체들(예를 들어, 중앙집중식 또는 분산 데이터베이스, 또는 연관된 캐시들 및 서버들)을 포함할 수도 있다.
용어 "머신 판독가능 매체"는 머신(600)에 의한 실행을 위한 일시적 또는 비일시적 명령어들을 저장, 인코딩 또는 반송할 수 있고 머신(600)으로 하여금 본 개시의 기법들 중 임의의 하나 이상을 수행하게 하거나, 또는 이러한 명령어들에 의해 사용되거나 이와 연관된 데이터 구조들을 저장, 인코딩 또는 반송할 수 있는 임의의 일시적 또는 비일시적 매체를 포함할 수도 있다. 비제한적인 머신 판독가능 매체의 예들은 고체 상태 메모리들과, 광학 및 자기 매체들을 포함할 수도 있다. 예에서, 대량의 머신 판독가능 매체는 불변(예를 들어, 정지) 질량을 갖는 복수의 입자를 갖는 머신 판독가능 매체를 포함한다. 따라서, 대량의 머신 판독가능 매체들은 일시적 전파 신호들이 아니다. 대량의 머신 판독가능 매체들의 특정 예들은 비휘발성 메모리, 예컨대 반도체 메모리 디바이스들(예를 들어, 전기적 프로그램가능 판독 전용 메모리(EPROM), 전기적 소거가능 프로그램가능 판독 전용 메모리(EEPROM)), 및 플래시 메모리 디바이스들; 자기 디스크들, 예컨대 내부 하드 디스크들 및 이동식 디스크들; 자기-광학 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함할 수도 있다.
저장 디바이스(621)에 저장되는 명령어들(624)(예를 들어, 소프트웨어, 프로그램들, 운영 시스템(OS)등) 또는 다른 데이터는 하드웨어 프로세서(602)에 의한 사용을 위해 메인 메모리(604)에 의해 액세스될 수 있다. 메인 메모리(604)(예를 들어, DRAM)는 통상적으로 빠르지만, 휘발성이며, 이로써 저장 디바이스(621)(예를 들어, SSD)와 상이한 유형의 스토리지이며, 이는 "오프" 조건에 있는 동안을 포함하여, 장기 스토리지에 적합하다. 사용자 또는 머신(600)에 의해 사용 중인 명령어들(624) 또는 데이터는 통상적으로 하드웨어 프로세서(602)에 의한 사용을 위해 메인 메모리(604)에 로딩된다. 메인 메모리(604)가 가득차면, 메인 메모리(604)를 보충하기 위해 저장 디바이스(621)의 가상 공간이 할당될 수 있지만; 저장 디바이스(621)는 통상적으로 메인 메모리(604)보다 더 느리고, 기입 속도는 통상적으로 판독 속도보다 적어도 2배 느리기 때문에, 가상 메모리의 사용은 저장 디바이스 레이턴시로 인한 사용자 경험을 크게 감소시킬 수 있다(메인 메모리(604), 예를 들어 DRAM 과는 대조적으로). 또한, 가상 메모리를 위한 저장 디바이스(621)의 사용은 저장 디바이스(621)의 사용 수명을 크게 감소시킬 수 있다.
명령어들(624)은 다수의 전송 프로토콜(예를 들어, 프레임 릴레이, 인터넷 프로토콜(IP), 송신 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP), 하이퍼텍스트 전송 프로토콜(HTTP) 등) 중 어느 하나를 활용하여 네트워크 인터페이스 디바이스(620)를 통해 송신 매체를 사용하여 통신 네트워크(626)를 통해 추가로 송신 또는 수신될 수도 있다. 예시의 통신 네트워크들은 특히, 로컬 영역 네트워크(LAN), 광역 네트워크(WAN), 패킷 데이터 네트워크(예를 들어, 인터넷), 이동 전화 네트워크들(예를 들어, 셀룰러 네트워크들), POTS(Plain Old Telephone Service) 네트워크들, 및 무선 데이터 네트워크들(예를 들어, Wi-Fi® 로 알려진 IEEE(Institute of Electrical and Electronics Engineers)802.11 표준 패밀리, WiMax® 로 알려진 IEEE 802.16 표준 패밀리, IEEE 802.15.4 표준 패밀리, 및 피어-투-피어(P2P) 네트워크들)을 포함할 수도 있다. 예에서, 네트워크 인터페이스 디바이스(620)는 통신 네트워크(626)에 연결하기 위한 하나 이상의 물리적 잭(예를 들어, 이더넷, 동축 또는 폰 잭들) 또는 하나 이상의 안테나를 포함할 수도 있다. 예에서, 네트워크 인터페이스 디바이스(620)는 단일 입력 다중 출력(SIMO), 다중 입력 다중 출력(MIMO), 또는 다중 입력 단일 출력(MISO) 기법들 중 적어도 하나를 사용하여 무선으로 통신하기 위한 복수의 안테나를 포함할 수도 있다. 용어 "송신 매체"는 머신(600)에 의한 실행을 위한 명령어들을 저장, 인코딩 또는 반송할 수 있는 임의의 유형 또는 무형 매체를 포함하는 것으로 간주되어야 하며, 디지털 또는 아날로그 통신 신호들 또는 이러한 소프트웨어의 통신을 용이하게 하는 다른 유형 또는 무형 매체를 포함한다.
본 명세서에 설명된 비제한적인 양태들 또는 예들의 각각은 그 자체로 존재할 수도 있거나, 다른 예들 중 하나 이상과 다양한 순열들 또는 조합들로 조합될 수도 있다.
상기 상세한 설명은 상세한 설명의 일부를 형성하는 첨부 도면들에 대한 참조들을 포함한다. 도면들은 예시로서 본 발명의 청구물이 실시될 수도 있는 특정 실시예들을 나타낸다. 이러한 실시예들은 또한 본 명세서에서 "예들"로서 지칭된다. 이러한 예들은 나타내거나 설명된 것들에 부가하여 요소들을 포함할 수도 있다. 그러나, 본 발명자들은 또한 나타내거나 설명된 요소들만이 제공되는 예들을 고려한다. 더욱이, 본 발명자들은 또한 본 명세서에 나타낸 특정 예(또는 이의 하나 이상의 양태)와 관련하여 또는 다른 예들(또는 이의 하나 이상의 양태)과 관련하여, 나타내거나 설명된 그러한 요소들이 임의의 조합 또는 순열(또는 이의 하나 이상의 양태)을 사용하는 예들을 고려한다.
이 문서와 참조로 통합되는 임의의 문서들 사이의 일치하지 않는 사용들의 경우에서는, 이 문서에서의 사용이 지배한다.
이 문서에서, 용어들 "a"또는 "an"은 특허 문서들에서 일반적인 것처럼, "적어도 하나" 또는 "하나 이상"의 다른 경우들 또는 사용들과 관계없이, 하나 또는 하나보다 많음을 포함하는 것으로 사용된다. 이 문서에서, 용어 "또는"은 비배타적이거나 "A 또는 B"가 "A는 있지만 B는 아닌", "B는 있지만 A는 아닌" 그리고 "A 및 B"를 포함하도록 언급하는데 사용된다. 이 문서에서, 용어들 "포함하는(including)" 및 "여기서(in which)"는 개개의 용어들 "포함하는(comprising)" 및 "여기서(wherein)"의 평이한 영어 등가물들로서 사용된다. 또한, 다음의 청구항들에서, "포함하는(including)" 및 "포함하는(comprising)"은 개방형이며, 즉 청구항에서 그러한 용어 이후에 나열된 요소들에 부가하여 요소들을 포함하는 시스템, 디바이스, 물품, 조성물, 제형 또는 프로세스는 여전히 그 청구항의 범위에 속하는 것으로 간주된다. 또한, 다음의 청구항들에서, 용어들 "제1", "제2"및 "제 3" 등은 단지 라벨들로서만 사용되며, 그 객체들에 대해 수치적 요건들을 부과하도록 의도되지 않는다.
본 명세서에 설명된 방법 예들은 적어도 부분적으로 머신 또는 컴퓨터에 의해 구현될 수도 있다. 일부 예들은 위의 예들에서 설명된 바와 같은 방법들을 수행하기 위해 전자 디바이스를 구성하도록 동작가능한 일시적 또는 비일시적 명령어들로 인코딩된 컴퓨터 판독가능 매체 또는 머신 판독가능 매체를 포함할 수도 있다. 이러한 방법들의 구현은 마이크로코드, 어셈블리 언어 코드, 상위 레벨 언어 코드 등과 같은 코드를 포함할 수도 있다. 이러한 코드는 다양한 방법들을 수행하기 위한 일시적 또는 비일시적 컴퓨터 판독가능 명령어들을 포함할 수도 있다. 코드는 컴퓨터 프로그램 제품들의 일부들을 형성할 수도 있다. 또한, 예에서, 코드는 실행 동안 또는 다른 시간들과 같은, 하나 이상의 휘발성, 비일시적, 또는 비휘발성 유형의 컴퓨터 판독가능 매체에 유형으로 저장될 수도 있다. 이러한 유형의 컴퓨터 판독가능 매체의 예들은 하드 디스크, 이동식 자기 디스크, 이동식 광학 디스크(예를 들어, 컴팩트 디스크 및 디지털 비디오 디스크), 자기 카세트, 메모리 카드 또는 스틱, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM) 등을 포함할 수도 있지만, 이에 제한되지 않는다.
상기 설명은 예시적인 것으로 의도되며, 제한적인 것이 아니다. 예를 들어, 상술한 예들(또는 이의 하나 이상의 양태)은 서로 조합으로 사용될 수도 있다. 상기 설명을 검토하면, 예컨대 관련 기술 분야의 통상의 기술자에 의해 다른 실시예들이 사용될 수도 있다. 요약서는 독자가 기술적 개시의 본질을 신속하게 확인할 수 있도록 제공된다. 이는 청구항들의 의미 또는 범위를 해석하거나 제한하는데 사용되지 않을 것이라는 이해로 제출된다. 또한, 상기 상세한 설명에서, 개시를 간소화하기 위해 다양한 특징들이 함께 그룹화될 수도 있다. 이것은 청구되지 않은 개시된 특징이 임의의 청구항에 필수적이라는 의도로 해석되지 않아야 한다. 오히려, 발명의 청구물은 특정 개시된 실시예의 모든 특징들보다 적게 있을 수도 있다. 따라서, 다음의 청구항들은 이에 의해 예들 또는 실시예들로서 상세한 설명에 통합되며, 각각의 청구항은 그 자체로 별도의 실시예에 의거하며, 이러한 실시예들은 다양한 조합들 또는 순열들로 서로 조합될 수도 있음이 고려된다. 발명의 청구물의 범위는 첨부된 청구항들을 참조하여, 이러한 청구항들이 권리를 갖는 등가물들의 전체 범위와 함께 결정되어야 한다.

Claims (15)

  1. 보안 요소에 대한 펌웨어를 업데이트하기 위한 방법으로서,
    게이트웨이 디바이스에 의해, 원격 소스로부터 펌웨어 파일을 수신하는 단계;
    상기 게이트웨이 디바이스 상에 구현된 프로세싱 요소에 의해, 상기 게이트웨이 디바이스 상에 구현된 제1 보안 요소에 대한 임시 세션 특정 키 자료(ephemeral session specific key material)를 수신하는 단계;
    상기 펌웨어 파일을 복수의 데이터 청크로 분할하는 단계;
    상기 프로세싱 요소에 의해, 제1 데이터 패킷을 생성하기 위해 상기 복수의 데이터 청크 중 제1 데이터 청크에 상기 임시 세션 특정 키 자료를 적용하는 단계; 및
    상기 프로세싱 요소에 의해, 상기 제1 데이터 패킷을 상기 제1 보안 요소에 전송하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 임시 세션 특정 키 자료는 암호화 키 및 서명 키를 포함하고, 상기 암호화 키는 기본 데이터(underlying data)를 암호화하는데 사용되고 상기 서명 키는 상기 암호화된 데이터에 서명하는데 사용되는, 방법.
  3. 제2항에 있어서,
    상기 제1 데이터 패킷은 상기 임시 세션 특정 키 자료에서의 상기 암호화 키 및 상기 서명 키를 사용하여 상기 제1 데이터 청크를 암호화하고 서명함으로써 생성되는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 복수의 데이터 청크 각각에 대한 상기 적용 및 전송 동작들을 반복하는 단계를 추가로 포함하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 프로세싱 요소는 보안 엔클레이브(security enclave)를 포함하고,
    상기 제1 보안 요소와 상기 원격 소스 사이에 상기 임시 세션 특정 키 자료를 확립하는 단계를 추가로 포함하며, 상기 확립은 상기 제1 보안 요소와 연관된 마스터 펌웨어 키 쌍에 기초하여 수행되고, 상기 펌웨어 파일은 상기 프로세싱 요소에 의해 분할되는, 방법.
  6. 제5항에 있어서,
    상기 보안 엔클레이브는 신뢰된 실행 환경 디바이스이고, 상기 마스터 펌웨어 키 쌍은 상기 원격 소스에 저장되며,
    상기 원격 소스와 상기 프로세싱 요소 사이에 프로세싱 요소 키 쌍을 확립하는 단계; 및
    상기 프로세싱 요소 키 쌍을 사용하여 상기 원격 소스에서 상기 프로세싱 요소로 상기 임시 세션 특정 키 자료를 전송하는 단계
    를 추가로 포함하는, 방법.
  7. 제5항에 있어서,
    상기 제1 보안 요소와 상기 프로세싱 요소 사이에 프로세싱 요소 키 쌍을 확립하는 단계; 및
    상기 프로세싱 요소 키 쌍을 사용하여 상기 제1 보안 요소에서 상기 프로세싱 요소로 상기 임시 세션 특정 키 자료를 전송하는 단계
    를 추가로 포함하는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 프로세싱 요소는 보안 엔클레이브를 포함하고, 상기 펌웨어 파일은 상기 프로세싱 요소에 의해 분할되며,
    상기 프로세싱 요소에 의해, 제2 보안 요소를 관리자로서 그리고 상기 제1 보안 요소를 타깃으로서 선택하는 단계;
    상기 제1 보안 요소와 상기 제2 보안 요소 사이에 상기 임시 세션 특정 키 자료를 확립하는 단계 - 상기 확립은 상기 제1 보안 요소와 연관된 제1 마스터 펌웨어 키 쌍에 기초하여 수행됨 -;
    상기 제2 보안 요소와 상기 프로세싱 요소 사이에 프로세싱 요소 키 쌍을 확립하는 단계; 및
    상기 프로세싱 요소 키 쌍을 사용하여 상기 제2 보안 요소에서 상기 프로세싱 요소로 상기 임시 세션 특정 키 자료를 전송하는 단계
    를 추가로 포함하고, 상기 보안 엔클레이브는 신뢰된 실행 환경 디바이스이고, 상기 제1 마스터 펌웨어 키 쌍은 상기 제2 보안 요소에 저장되고, 상기 제2 보안 요소와 연관된 제2 마스터 펌웨어 키 쌍은 상기 제1 보안 요소에 저장되는, 방법.
  9. 제8항에 있어서,
    상기 펌웨어 파일이 상기 제1 보안 요소로 송신된 후에 상기 제2 보안 요소의 펌웨어를 업데이트하는 단계를 추가로 포함하는, 방법.
  10. 제9항에 있어서,
    상기 임시 세션 특정 키 자료는 제1 임시 세션 특정 키 자료이고,
    상기 프로세싱 요소에 의해, 상기 제2 보안 요소를 상기 타깃으로서 그리고 상기 제1 보안 요소를 상기 관리자로서 선택하는 단계;
    상기 제1 보안 요소와 상기 제2 보안 요소 사이에 제2 임시 세션 특정 키 자료를 확립하는 단계 - 상기 확립은 상기 제2 보안 요소와 연관된 제2 마스터 펌웨어 키 쌍에 기초하여 수행됨 -;
    상기 제1 보안 요소와 상기 프로세싱 요소 사이에 프로세싱 요소 키 쌍을 확립하는 단계; 및
    상기 프로세싱 요소 키 쌍을 사용하여 상기 제1 보안 요소에서 상기 프로세싱 요소로 상기 제2 임시 세션 특정 키 자료를 전송하는 단계
    를 추가로 포함하는, 방법.
  11. 제10항에 있어서,
    상기 프로세싱 요소에 의해, 상기 제2 임시 세션 특정 키 자료에 기초하여 상기 제1 데이터 패킷을 상기 제2 보안 요소에 전송하는 단계를 추가로 포함하는, 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 프로세싱 요소는 제2 보안 요소를 포함하고, 상기 펌웨어 파일은 상기 게이트웨이 상의 프로세서에 의해 분할되며,
    상기 프로세서에 의해 상기 펌웨어 파일을 수신하는 단계;
    상기 프로세서에 의해, 상기 제2 보안 요소를 관리자로서 그리고 상기 제1 보안 요소를 타깃으로서 선택하는 단계;
    상기 제1 보안 요소와 상기 제2 보안 요소 사이에 상기 임시 세션 특정 키 자료를 확립하는 단계 - 상기 확립은 상기 제1 보안 요소와 연관된 제1 마스터 펌웨어 키 쌍에 기초하여 수행됨 -;
    상기 프로세서에서 상기 제2 보안 요소로 상기 제1 데이터 청크를 제공하는 단계; 및
    상기 임시 세션 특정 키 자료를 상기 제1 데이터 청크에 적용하여 상기 제1 데이터 패킷을 상기 제1 보안 요소에 직접 또는 간접적으로 전송하도록 상기 제2 보안 요소에 명령하는 단계
    를 추가로 포함하는, 방법.
  13. 제12항에 있어서,
    상기 펌웨어 파일이 상기 제1 보안 요소로 송신된 후에 상기 제2 보안 요소의 펌웨어를 업데이트하는 단계 - 상기 임시 세션 특정 키 자료는 제1 임시 세션 특정 키 자료임 -;
    상기 프로세서에 의해, 상기 제2 보안 요소를 상기 타깃으로서 그리고 상기 제1 보안 요소를 상기 관리자로서 선택하는 단계;
    상기 제1 보안 요소와 상기 제2 보안 요소 사이에 제2 임시 세션 특정 키 자료를 확립하는 단계 - 상기 확립은 상기 제2 보안 요소와 연관된 제2 마스터 펌웨어 키 쌍에 기초하여 수행됨 -;
    상기 프로세서에서 상기 제1 보안 요소로 상기 제1 데이터 청크를 제공하는 단계; 및
    상기 제2 임시 세션 특정 키 자료를 상기 제1 데이터 청크에 적용하여 상기 제1 데이터 패킷을 상기 제2 보안 요소에 직접 또는 간접적으로 전송하도록 상기 제1 보안 요소에 명령하는 단계
    를 추가로 포함하는, 방법.
  14. 제13항에 있어서,
    상기 프로세싱 요소에 의해, 상기 제2 임시 세션 특정 키 자료에 기초하여 상기 제1 데이터 패킷을 상기 제2 보안 요소에 전송하는 단계를 추가로 포함하는, 방법.
  15. 보안 요소에 대한 펌웨어를 업데이트하기 위한 시스템으로서,
    원격 소스로부터 펌웨어 파일을 수신하고 상기 펌웨어 파일을 복수의 데이터 청크로 분할하도록 구성된 게이트웨이 디바이스;
    상기 게이트웨이 디바이스 상에 구현된 프로세싱 요소
    를 포함하고, 상기 프로세싱 요소는:
    상기 게이트웨이 디바이스 상에 구현된 제1 보안 요소에 대한 임시 세션 특정 키 자료를 수신하고;
    제1 데이터 패킷을 생성하기 위해 상기 복수의 데이터 청크 중 제1 데이터 청크에 상기 임시 세션 특정 키 자료를 적용하며;
    상기 제1 데이터 패킷을 상기 제1 보안 요소에 전송하도록
    구성되는, 시스템.
KR1020227022613A 2019-12-06 2020-11-13 보안 요소들을 안전하게 업데이트하는 방법들 및 프로세스들 KR20220110258A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962944588P 2019-12-06 2019-12-06
US62/944,588 2019-12-06
PCT/EP2020/082136 WO2021110389A1 (en) 2019-12-06 2020-11-13 Methods & processes to securely update secure elements

Publications (1)

Publication Number Publication Date
KR20220110258A true KR20220110258A (ko) 2022-08-05

Family

ID=73449082

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227022613A KR20220110258A (ko) 2019-12-06 2020-11-13 보안 요소들을 안전하게 업데이트하는 방법들 및 프로세스들

Country Status (8)

Country Link
US (1) US20220414224A1 (ko)
EP (1) EP4052158A1 (ko)
JP (2) JP7429780B2 (ko)
KR (1) KR20220110258A (ko)
CN (1) CN114930327A (ko)
CA (1) CA3160260A1 (ko)
MX (1) MX2022006793A (ko)
WO (1) WO2021110389A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10872161B2 (en) * 2016-11-23 2020-12-22 Entrust Corporation Printer identity and security
US11595189B2 (en) * 2020-10-27 2023-02-28 Microsoft Technology Licensing, Llc Secure key exchange using key-associated attributes

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4888057B2 (ja) 2006-11-01 2012-02-29 富士通セミコンダクター株式会社 情報処理装置
JP6197000B2 (ja) 2015-07-03 2017-09-13 Kddi株式会社 システム、車両及びソフトウェア配布処理方法
US11050605B2 (en) * 2016-08-01 2021-06-29 Data I/O Corporation Device programming with system generation
CN109314644B (zh) 2016-08-10 2021-08-27 Kddi株式会社 数据提供系统、数据保护装置、数据提供方法以及存储介质
US10303884B2 (en) * 2016-09-22 2019-05-28 Apple Inc. Countersigning updates for multi-chip devices
CN109891416A (zh) * 2016-10-27 2019-06-14 株式会社电装 用于认证和授权装置的系统和方法

Also Published As

Publication number Publication date
JP2024028670A (ja) 2024-03-04
EP4052158A1 (en) 2022-09-07
WO2021110389A1 (en) 2021-06-10
MX2022006793A (es) 2022-09-09
US20220414224A1 (en) 2022-12-29
CA3160260A1 (en) 2021-06-10
CN114930327A (zh) 2022-08-19
JP7429780B2 (ja) 2024-02-08
JP2023505251A (ja) 2023-02-08

Similar Documents

Publication Publication Date Title
US11438176B2 (en) Mutually authenticated ECDHE key exchange for a device and a network using multiple PKI key pairs
US11768964B2 (en) Security plugin for a system-on-a-chip platform
US11153080B1 (en) Network securing device data using two post-quantum cryptography key encapsulation mechanisms
EP3547196B1 (en) Key protection for computing platform
CN106209352B (zh) 具有前向安全性的有效密钥衍生
JP2024028670A (ja) セキュアな要素をセキュアに更新するための方法及びプロセス
US20170149748A1 (en) Secure Group Messaging and Data Steaming
CN109309650B (zh) 处理数据的方法、终端设备和网络设备
US8880892B2 (en) Secured embedded data encryption systems
KR101952329B1 (ko) 블록체인 기반 암호화폐의 트랜잭션에 이용되는 주소 정보 생성 방법, 전자 장치 및 컴퓨터 판독 가능한 기록 매체
KR102266654B1 (ko) Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템
CN109960935B (zh) 确定tpm可信状态的方法、装置及存储介质
US9288116B2 (en) System and method for NAS server test load generation
CA3106937A1 (en) Transfer via transaction app
AU2019238635A1 (en) Method and terminal for establishing security infrastructure and device
CN110999205A (zh) 用于简档证书私有密钥或其他数据的封装的装置和方法
US20230078096A1 (en) Offline delegation of authorization data
KR102398380B1 (ko) 키 교환 방법 및 시스템
CN116501694A (zh) 数据存储方法、数据读取方法、电子设备和程序产品
CN111639354A (zh) 数据加密方法及装置、数据解密方法及装置、电子设备
CN115643063A (zh) 一种报文数据处理方法、装置、电子设备及介质

Legal Events

Date Code Title Description
E902 Notification of reason for refusal