KR101434080B1 - 논로컬 저장 장치로부터의 서브시스템의 안전한 부팅 및 구성 - Google Patents

논로컬 저장 장치로부터의 서브시스템의 안전한 부팅 및 구성 Download PDF

Info

Publication number
KR101434080B1
KR101434080B1 KR1020127028432A KR20127028432A KR101434080B1 KR 101434080 B1 KR101434080 B1 KR 101434080B1 KR 1020127028432 A KR1020127028432 A KR 1020127028432A KR 20127028432 A KR20127028432 A KR 20127028432A KR 101434080 B1 KR101434080 B1 KR 101434080B1
Authority
KR
South Korea
Prior art keywords
processor
key
boot code
data
boot
Prior art date
Application number
KR1020127028432A
Other languages
English (en)
Other versions
KR20130027498A (ko
Inventor
아온 무즈타바
하이닝 장
아르주나 시바시담바레산
알렉스 호
아룬 마티아스
스티븐 쉘
조나단 앤드류
제이슨 고스넬
달라스 비. 드 아틀레이
제리 호크
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20130027498A publication Critical patent/KR20130027498A/ko
Application granted granted Critical
Publication of KR101434080B1 publication Critical patent/KR101434080B1/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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • 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/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/74Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)
  • Transceivers (AREA)

Abstract

일 양상에 따라서, 무선 통신 프로세서(예컨대, 셀룰러 프로세서)와 애플리케이션 프로세서(예컨대, CPU와 같은 범용 프로세서)를 가진 다기능 컴퓨팅 장치는 애플리케이션 프로세서에 연관 또는 부착된 저장 장치를 공유한다. 그와 같은 다기능 컴퓨팅 장치의 예로는 셀폰 기능과 헨드헬드 컴퓨터 기능을 가진 스마트폰을 들 수 있다. 무선 통신 프로세서(이하, 간단히 무선 프로세서라 함)에 직접적으로 연관 또는 부착된 특정한 저장 장치는 없다. 대신에, 무선 프로세서는 USB 링크와 같은 고속 통신 링크를 통해 애플리케이션 프로세서와 통신하여, 애플리케이션 프로세서에 연관된 저장 장치(예컨대, 플래시 메모리 장치)에 저장된 코드 및 데이터에 액세스한다.

Description

논로컬 저장 장치로부터의 서브시스템의 안전한 부팅 및 구성{BOOTING AND CONFIGURING A SUBSYSTEM SECURELY FROM NON-LOCAL STORAGE}
관련 출원
본 출원은 미국 임시 특허출원 61/325,777(출원일: 2010년 4월 19일, 발명의 명칭: "Booting and Configuring a Subsystem from Non-Local Storage")의 우선권을 주장하며, 이 임시 특허출원의 전체 내용은 본 명세서에 인용으로 포함된다.
본 발명의 실시예는 일반적으로 데이터 프로세싱 시스템 분야에 관한 것으로, 특히, 논로컬 저장 장치로부터 서브시스템을 안전하게 부팅하고 구성하는 방법에 관한 것이다.
최근, 스마트폰 장치와 같은 다기능 장치가 널리 보급되고 있다. 통상적으로, 다기능 장치는 기능이 서로 다른 복수의 프로세서를 포함한다. 예컨대, 스마트폰 장치는 범용 프로세서와 무선 통신 프로세서를 포함한다. 이들 프로세서 각각은 통상적으로 이와 관련하여, 초기화 코드 영상 등을 포함하는 각 프로세서와 연관된 임의의 정보나 데이터를 저장하는 비휘발성 메모리를 포함한다. 그러나, 그와 같은 비휘발성 메모리는 추가 비용을 발생시킬 수 있으며 장치 크기를 증가시킬 수가 있다.
<발명의 개요>
일 양상에 따라서, 무선 통신 프로세서(예컨대, 셀룰러 프로세서)와 애플리케이션 프로세서(예컨대, CPU와 같은 범용 프로세서)를 가진 다기능 컴퓨팅 장치는 애플리케이션 프로세서에 연관 또는 부착된 저장 장치를 공유한다. 그와 같은 다기능 컴퓨팅 장치의 예로는 셀폰 기능과 핸드헬드 컴퓨터 기능을 가진 스마트폰을 들 수 있다. 무선 통신 프로세서(이하, 간단히 무선 프로세서라 함)에 직접적으로 연관 또는 부착된 특정한 저장 장치는 없다. 대신에, 무선 프로세서는 USB-HSIC(Universal Serial Bus-High Speed Inter-Chip) 링크와 같은 고속 통신 링크를 통해 애플리케이션 프로세서와 통신하여, 애플리케이션 프로세서에 연관된 저장 장치(예컨대, 플래시 메모리 장치)에 저장된 코드 및 데이터에 액세스한다.
다른 양상에 따라서, 부트 명령에 응답하여, 무선 통신 프로세서의 보안 ROM으로부터 읽기 전용 메모리(ROM) 부트 로더가 실행되며, ROM 부트 로더는 휴대형 장치의 무선 통신 프로세서에 연관된 하드웨어를 초기화한다. ROM 부트 로더는 무선 통신 프로세서를 애플리케이션 프로세서와 연관시키는 내부 버스를 통해 휴대형 장치의 애플리케이션 프로세서와 통신 링크를 설정한다. ROM 부트 로더는 통신 링크를 통해, 애플리케이션 프로세서에 연관된 제1 랜덤 액세스 메모리(RAM) 내에서 실행되는 제1 운영 체제(OS)를 통해 애플리케이션 프로세서에 연관되어 이에 의해 액세스되는 비휘발성 저장 장치로부터 부트 코드 영상을 페치한다. ROM 부트 로더는 부트 코드 영상을 인증하고, 부트 코드 영상를 성공적으로 인증하면, ROM 부트 로더는 부트 코드 영상을 무선 통신 프로세서에 연관된 제2 RAM 내로 론치(launch)하여 무선 통신 프로세서를 위한 제2 OS를 구축한다. 따라서, 내부 버스를 통한 통신 링크를 통해 애플리케이션 프로세서에 연관된 비휘발성 저장 장치에 액세스함으로써, 무선 통신 프로세서는 별도의 비휘발성 저장 장치를 유지할 필요가 없다.
또 다른 양상에 따라서, 휴대형 장치에 대한 소프트웨어 컴포넌트를 갱신하라는 명령에 응답하여, 세션키가 생성된다. 세션키는 휴대 장치를 고유하게 식별하는 고유 식별자(UID)로부터 도출된 저장키를 이용하여 암호화된다. 저장키에 의해 암호화된 세션키가 내부에 삽입된 복구 블롭(recovery blob)이 생성된다. 게다가, 세션키는 공개키/비밀키 쌍 중 공개키를 이용하여 암호화된다. 그 후, 복구 블롭과, 공개키에 의해 암호화된 세션키는, 공개키/비밀키 쌍 중 비밀키를 이용하여 세션키를 복호함으로써 세션키를 복구하도록 구성된 인증 서버에 전송된다. 이어서, 프로비져닝 서버로부터 다운로드된 소프트웨어 컴포넌트와 복구 블롭에 응답하여, 저장키를 이용하여 복구 블롭을 복호함으로써 복구 블롭으로부터 세션키가 복구되며, 소프트웨어 컴포넌트는 인증 서버로부터 프로비져닝 서버에 의해 수신된 세션키에 의해 암호화된다. 그 후, 복구 블롭으로부터 복구된 세션키를 이용하여 그 암호화된 소프트웨어 컴포넌트를 복호함으로써 소프트웨어 컴포넌트가 복구되고, 이 소프트웨어 컴포넌트는 휴대형 장치에 설치된다.
본 발명의 다른 특징은 첨부도면과 하기의 상세한 설명으로부터 분명하게 드러날 것이다.
본 발명의 실시예들은 예시적으로 설명되는 것이며, 첨부 도면에 한정되는 것은 아니다. 도면에서 유사한 구성요소에 대해서는 유사한 도면부호를 병기한다.
도 1은 본 발명의 일 실시예에 따른 다기능 컴퓨팅 장치의 블록도.
도 2는 일 실시예에 따른 무선 프로세서를 위한 저장 영상의 블록도.
도 3은 본 발명의 일 실시예에 따른 무선 통신 프로세서를 부팅하는 방법의 흐름도.
도 4는 본 발명의 다른 실시예에 따른 다기능 컴퓨팅 장치의 블록도.
도 5는 본 발명의 일 실시예에 따른 RF 교정 데이터 생성 방법의 흐름도.
도 6은 본 발명의 일 실시예에 따른 RF 교정 데이터 갱신 방법의 흐름도.
도 7은 본 발명의 일 실시예에 따른 컴퓨팅 장치를 제공하는 시스템 구성도.
도 8은 본 발명의 일 실시예에 따른 프로비져닝 데이터 갱신 방법의 흐름도.
도 9는 본 발명의 일 실시예에 이용될 수 있는 데이터 프로세싱 시스템의 예를 도시한 도.
이하에 논의되는 상세사항을 참조하여, 본 발명의 여러 가지 실시예와 양상에 대해서 설명한다. 첨부도면은 이러한 여러 가지 실시예를 보여주는 것이다. 하기의 상세한 설명과 도면은 본 발명을 예시적으로 보여주는 것이며, 본 발명을 한정하는 것으로 해석해서는 안된다. 본 발명의 여러 가지 실시예를 충분히 이해할 수 있도록 여러 가지 특정 세부사항에 대해서 설명한다. 그러나, 어떤 경우에는 본 발명의 실시예를 간결하게 설명하기 위해 주지 공지 또는 종래의 세부사항에 대해서는 기술하지 않는다.
본 명세서에서 "일 실시예" 또는 "소정 실시예"는 그 실시예와 관련하여 설명되는 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함될 수 있다는 것을 의미한다. 본 명세서의 여러 곳에 나타나는 "일 실시예에서"는 반드시 그 하나의 실시예만을 지칭하는 것은 아니다.
일부 실시예에 따라서, 무선 통신 프로세서(예컨대, 셀룰러 프로세서)와 애플리케이션 프로세서(예컨대, 중앙 처리 장치(CPU)와 같은 범용 프로세서)를 포함하는 다기능 컴퓨팅 장치는 애플리케이션 프로세서에 연관 또는 부착된 저장 장치(예컨대, 비휘발성 저장 장치)를 공유한다. 그와 같은 다기능 컴퓨팅 장치의 예로는 셀폰 기능과 핸드헬드 컴퓨터 기능을 가진 스마트폰을 들 수 있다. 무선 통신 프로세서(이하, 간단히 무선 프로세서라 함)에 직접적으로 연관 또는 부착된 특정한 저장 장치는 없다. 대신에, 무선 프로세서는 USB-HSIC(Universal Serial Bus-High Speed Inter-Chip) 링크와 같은 고속 통신 링크를 통해 애플리케이션 프로세서와 통신하여, 애플리케이션 프로세서에 연관된 저장 장치(예컨대, 플래시 메모리 장치)에 저장된 실행 코드 및 데이터에 액세스한다.
일 실시예에서, 무선 프로세서가 부팅되면, 무선 프로세서는 무선 링크를 통해 애플리케이션 프로세서의 저장 장치로부터 무선 코드 영상(예컨대, 실행 코드 영상)을 안전하게 페치하고; 부트 코드를 인증하고; 그리고 무선 프로세서를 위한 동작 환경을 구축하기 위해 무선 프로세서에 연관된 RAM(Random Access Memory) 내에서 부트 코드를 실행한다. 무선 코드 영상은 복수의 세그먼트를 포함할 수 있으며, 각 세그먼트에는 일련의 인증서가 서명될 수 있다. 루트 인증서는 무선 통신 프로세서의 보안 ROM(Read-Only-Memory)에 저장될 수 있으며, 공유 저장 장치로부터 검색된 제1의 오버올(overall) 코드 세그먼트를 인증하는데 이용될 수 있다.
코드 영상의 세그먼트는 세그먼트들의 시퀀스로서 구성될 수 있다. 이 코드 시퀀스의 현 세그먼트는 그 일련의 인증서를 이용하여 그 코드 시퀀스의 다음 세그먼트를 인증할 수 있다. 예컨대, 코드의 세그먼트는 저레벨 부트 코드, 중간 레벨 부트 코드 및 고레벨 부트 코드를 포함할 수 있다. 저레벨 부트 코드는 루트 인증서에 의해 초기에 인증될 수 있다. 저레벨 부트 코드가 인증 또는 검증되고 나면, 이 저벨 부트 코드는 론치(launched) 또는 실행될 수 있다. 저레벨 부트가 실행되면, 저레벨 부트 코드는 중간 레벨 부트 코드를 (페치하고) 인증할 수 있으며, 이어서, 중간 레벨 부트 코드는 이 저레벨 부트 코드에 의해 성공적으로 인증되어 로드되면, 고레벨 부트 코드를 (페치하고) 인증할 수 있다. 성공적으로 인증되어 실행될 수 없는 소프트웨어 컴포넌트의 세그먼트가 있다면, 장치는 복구 모드(예컨대, 장치 펌웨어 갱신(DFU) 모드)로 강제로 들어갈 수 있으며, 이 모드에서, 새로운 버전의 소프트웨어가 네트워크를 통해 신뢰되는 서버로부터 다운로드될 수 있다.
그 외에도, 코드 영상 및/또는 데이터는 무선 통신 프로세서를 고유하게(uniquely) 식별하는 고유 식별자(UID)로부터 도출된 키에 의해 암호화될 수 있다. 즉, 코드 영상 및/또는 데이터는 UID로부터 도출된 키를 이용하여 암호화함으로써 개인화(personalize)될 수 있다. UID는 또한 무선 통신 프로세서의 보안 ROM에 저장될 수 있다. 대안으로서, UID는 무선 통신 프로세서와 연관된 하드웨어에 (예컨대, 번트 퓨즈(burnt fuse)를 통해) 고정 배선으로 연관될 수 있다. 따라서, 각 소프트웨어 컴포넌트는 실행되기 전에 인증 및 검증되어, 소프트웨어 컴포넌트가 위태롭지 않은 것임을 보증한다.
정상 동작 중에는, 무선 프로세서가 데이터를 읽거나 저장할 필요가 있을 때마다, 무선 프로세서에 직접적으로 연관된 저장 장치는 없기 때문에, 무선 프로세서는, 원격 파일 시스템과 유사하게, 다기능 컴퓨팅 징치 내의 통신 링크를 통해 애플리케이션 프로세서의 저장 장치에 액세스할 수 있다. 그러나, 이는 장치 레벨에서이지 네트워크를 통한 것이다. 따라서, 특히 무선 프로세서에 연관 또는 부착된 종래의 저장 장치는 제거될 수 있다. 장치의 가격 및/또는 물리적 크기가 줄어들 수 있다.
그 외에도, 일 실시예에 따라서, 무선 네트워크 ID(예컨대, IMEI(International Mobile Equipment Identity)나 MEID(Mobile Equipment Identifier))와 RF(Radio Frequency) 교정 데이터와 같이, 무선 프로세서와 연관된 특정 데이터도 애플리케이션 프로세서의 저장 장치에 저장된다. 따라서, 이 장치가 제조업자로부터 출시된 후에 RF 교정 데이터는 쉽게 갱신될 수 있으며, 이 데이터를 갱신하기 위해 이 장치를 제조업자에 되돌려 보낼 필요가 없다. 이러한 장치 구성과 동작은 더 유연하게 될 수 있다.
도 1은 본 발명의 일 실시예에 따른 다기능 컴퓨팅 장치의 블록도이다. 예컨대, 장치(100)는 Apple사(California, Cupertino 소재)의 iPhone™과 같은 스마트폰일 수 있다. 아니면, 장치(100)는 Apple사의 iPad™와 같은 태블릿 PC일 수 있다. 도 1을 참조로 설명하면, 일 실시예에서, 장치(100)는 내부 버스(120)를 통해 서로 통신가능하게 연관된 무선 통신 프로세서(101)와 애플리케이션 프로세서(102)를 포함한다. 무선 프로세서(101)는 예컨대 셀룰러 프로세서, Wi-Fi 프로세서, Bluetooth 프로세서 등과 같은 임의의 종류의 무선 프로세서일 수 있다. 애플리케이션 프로세서(102)는 임의의 종류의 범용 프로세서일 수 있다.
게다가, 장치(100)는 무선 프로세서(101)에 연관된 RAM(Random Access Memory)(103)와 애플리케이션 프로세서(102)에 연관된 RAM(104)을 더 포함한다. RAM(103)은 무선 프로세서(101)가 무선 프로세서(101)에 연관된 임의의 소프트웨어 컴포넌트(예컨대, 부트 코드, 운영 체제(OS), 및 기타 다른 런타임(runtime) 애플리케이션 및/또는 데이터 등)을 실행하는데 이용된다. 마찬가지로, RAM(104)은 애플리케이션 프로세서(102)가 애플리케이션 프로세서(102)에 연관된 임의의 소프트웨어 컴포넌트(예컨대, 애플리케이션 프로세서(102)의 OS(115)와 파일 시스템(FS)(116) 뿐만 아니라 기타 다른 애플리케이션 및/또는 데이터)을 실행하는데 이용된다.
더욱이, 장치(100)는 애플리케이션 프로세서(102)에 연관 또는 부착된 비휘발성 저장 장치(105)를 더 포함한다. 예컨대, 저장 장치(105)는 NOR 또는 NAND 플래시 메모리 장치와 같은 플래시 메모리 장치일 수 있다. 아니면, 저장 장치(105)는 하드 디스크와 같은 대용량 저장 장치일 수 있다. 일 실시예에서, 종래의 다기능 장치와는 달리, 무선 프로세서(101)는 이에 연관된 전용의 비휘발성 저장 장치를 갖고 있지 않다. 다른 실시예에서, 무선 프로세서는 예컨대 보안 부트 프로세스를 부트스트랩(bootstrap)하는 보안 ROM(112)과 같은, 이에 연관된 매우 작은 용량의 비휘발성 저장 장치를 가질 수 있다. 그러나, 그와 같은 실시예에서는, 그와 같은 소용량 비휘발성 저장 장치는 부트 영상이나 기타 다른 소프트웨어나 데이터(예컨대, 무선 프로세서의 구성/교정 프로그램과 데이터)를 저장하는데 충분한 용량을 갖고 있지 않다. 오히려, 무선 프로세서(101)와 연관된 임의의 코드나 데이터는 저장 장치(105)에 저장될 수 있다. 일 실시예에서, 무선 프로세서(101)는 내부 버스(120)를 통한 통신 링크를 통해 저장 장치(105) 내의 무선 프로세서(101) 관련 내용에 액세스할 수 있다. 일 실시예에서, 내부 버스(120)는 USB-HSIC 호환 버스일 수 있으며, 이 경우에는 무선 프로세서(101)는 예컨대 스트리밍 논 프레이밍(non-framing) 통신 프로토콜과 같은 고속 통신 프로토콜을 이용하여 저장 장치(105)에 저장된 관련 내용에 액세스할 수 있다. 아니면, 내부 버스(120)는 USB-HS(USB High Speed), USB-FS(USB-Full Speed) 및 UART/SPI(Universal Asynchronous Receiver/Transmitter Serial Peripheral Interface) 호환 버스 중 하나일 수 있다.
일 실시예에서, 반드시 필요한 것은 아니지만, 저장 장치(105)는 무선 프로세서(101)와 애플리케이션 프로세서(102)를 위한 별도의 파티션을 포함할 수 있다. 이 예에서, 파티션(106)은 무선 프로세서(101)와 연관된 코드 영상(108)과 데이터(110)를 저장하도록 구성된다. 파티션(107)은 애플리케이션 프로세서(102)와 연관된 코드 영상(109)과 데이터(111)를 저장하도록 구성된다. 따라서, 무선 프로세서에 연관된 전용의 비휘발성 저장 장치는 제거될 수 있다. 대신에, 무선 프로세서(101)는 내부 버스(120)를 통해 애플리케이션 프로세서(102) 및/또는 그와 관련 OS(115)와 파일 시스템(FS)(116)을 거쳐 그 관련 파티션(106)에 액세스할 수 있다. 이 실시예에서, 무선 프로세서(101)는 저장 장치(105)에 직접적으로 액세스할 수 없을 수 있다. 대신에, 무선 프로세서(101)는 내부 버스(120)를 통한 통신 링크를 통해 애플리케이션 프로세서(102), OS(115) 및/또는 FS(116)를 통과해야 한다.
무선 프로세서(101)와 연관된 저장 파티션(106)의 예는 도 2에 도시되어 있다. 도 2를 참조로 설명하면, 파티션(106)은 무선 프로세서 코드 영상(201), 파일 시스템 파일(205)의 하나 이상의 카피, 및 로깅 데이터(206)와 같은 다른 런타임 데이터를 저장하는데 이용될 수 있다. 무선 코드 영상(201)은 도 1의 ROM 부트 로더(ROM BL)(117)에 의해 인증되고 로드될 수 있다. 그 외에도, 파티션(106)은 예컨대 무선 프로세서와 연관된 무선 네트워크 ID(예컨대, IMEI 또는 MEID) 및 RF 교정 데이터(212) 등과 같은 임의의 무선 중요 데이터를 저장하는 보안 또는 보호 영역(210)을 포함할 수 있다. 무선 네트워크 ID(211) 및 RF 교정 데이터(212)는 데이터(201 내지 206)의 일부 또는 전부가 삭제될 수 있는 복구 프로세스 중에도 보호 영역(210)에서 유지될 수 있다.
도 1을 참조로 설명하면, 일 실시예에 따라서, 무선 프로세서(101)는 ROM BL(117), 인증서(118) 및 선택적인 공개키(119)가 저장된 보안 ROM(Read-Only Memory)(112)을 포함한다. 무선 프로세서(101)는 내부 또는 온칩(on-chip) RAM(113)과 저장키(114)를 더 포함한다. 저장키(114)는 무선 프로세서(101)를 고유하게 식별하는 고유 ID(UID)에 기초하여 생성될 수 있다. 저장키(114) 및/또는 UID(미도시)는 무선 프로세서(101)의 제조 중에 하드웨어(예컨대, 번트 퓨즈(burnt fuse)에 고정 배선으로 연결될 수 있다. 저장키(114)는 예컨대 런타임 데이터(예컨대, 로그 데이터, 무선 프로세서(101)에 의해 수신된 메시지 등)와 같은, 무선 프로세서(101)에 의해 발생된 임의의 내용을 암호화하는데 이용될 수 있다. 인증서(118)는 적당한 인증서로 서명된 특정 데이터를 검사하거나 증명하는데 이용될 수 있다. 예컨대, 인증서(118)는 일련의 인증서(예컨대, X.509 호환 인증서 체인)의 루트 인증서일 수 있다. 공개키(119)는 소정의 공개/비밀키 쌍 중의 공개키이며, 이 경우에 대응 비밀키는 무선 프로세서(101)에 데이터를 제공하는 적당한 기관 또는 프로비져닝 실체에 의해 유지된다.
일 실시예에 따라서, 도 1과 2를 참조로 설명하면, 무선 프로세서(101)가 부팅 명령을 수신하면, ROM BL(117)이 보안 ROM(112)으로부터 실행된다. ROM BL(117)은 내부 RAM(113)과, 내부 버스(120)를 통한 통신 링크 또는 채널을 비롯한 무선 프로세서(101)의 특정 하드웨어 컴포넌트를 초기화하도록 구성된다. 내부 RAM(113)과 통신 링크가 초기화되면, ROM BL(117)은 통신 링크를 통해 저장 장치(105)의 파티션(106)으로부터 무선 프로세서 코드 영상(201)을 페치한다. 무선 프로세서 코드 영상(201)은 내부 RAM(113) 및/또는 외부 RAM(103)으로 로드된다.
본 출원 전체를 통해 무선 통신 프로세서(101)는 여기서는 일반적으로 하나 이상의 실제 프로세서, 프로세서 코어, 실행 유닛 또는 기능 유닛을 포함할 수 있는 칩셋, 집적 회로(IC) 또는 ASIC(Application-specific IC)이라고 할 수 있다. 일부 실시예에 따라서, 여기서 설명되는 칩셋 또는 IC는 보안 ROM(112), 내부 RAM(113), 및/또는 저장키(114)와 같은 다른 컴포넌트 등을 포함한다.
그 외에도, ROM BL(117)은 무선 프로세서 코드 영상(201)을 인증하도록 구성된다. 일 실시예에서, 무선 프로세서 코드 영상(201)는 인증서로 서명된다. ROM BL(117)은 인증서(118)를 이용하여 무선 프로세서 코드 영상(201)을 인증하도록 구성된다. 무선 프로세서 코드 영상(201)이 성공적으로 인증될 수 없으면, 적어도 무선 프로세서(101)는 신뢰 서버(trusted server)로부터 새로운 데이터가 프로비져닝되고 다운로드될 수 있는 DFU 모드로 들어가야만 할 수 있다. 무선 프로세서 코드 영상(201)이 성공적으로 인증되었다면, 무선 프로세서 코드 영상(201)은 RAM(113) 및/또는 RAM(103) 내에서 ROM BL(117)에 의해 론치되어 무선 프로세서(101)를 위한 동작 환경(예컨대, OS 및/또는 파일 시스템)을 구축한다.
무선 코드 영상(201)은 복수의 세그먼트를 포함할 수 있으며, 각 세그먼트에는 일련의 인증서 중 하나가 서명될 수 있다. 인증서(118)는 공유 저장 장치로부터 검색된 제1의 오버올 코드 세그먼트를 인증하는데 이용될 수 있다. 일 실시예에서, 코드 영상의 세그먼트는 세그먼트 시퀀스로 구성될 수 있다. 이 코드 시퀀스의 현 세그먼트는 그 일련의 인증서를 이용하여 그 코드 시퀀스의 다음 세그먼트를 인증할 수 있다. 예컨대, 코드의 세그먼트는 저레벨 부트 코드, 중간 레벨 부트 코드 및 고레벨 부트 코드를 포함할 수 있다. 저레벨 부트 코드는 루트 인증서에 의해 먼저 인증될 수 있다. 저레벨 부트 코드가 인증 또는 검증되고 나면, 이 저벨 부트 코드는 론치 또는 실행될 수 있다. 저레벨 부트가 실행되면, 저레벨 부트 코드는 중간 레벨 부트 코드를 (페치하고) 인증할 수 있으며, 이어서, 중간 레벨 부트 코드는 저레벨 부트 코드에 의해 성공적으로 인증되어 로드되면, 고레벨 부트 코드를 (페치하고) 인증할 수 있다. 성공적으로 인증되어 실행될 수 없는 소프트웨어 컴포넌트의 세그먼트가 있다면, 장치는 DFU 모드로 강제로 들어갈 수 있으며, 이 모드에서, 새로운 버전의 소프트웨어가 신뢰 서버로부터 다운로드될 수 있다.
일 실시예에서, 내부 RAM(113)은 외부 RAM(103)의 저장 크기보다 작은 저장 크기를 갖고 있다. 일 특정 실시예에서, 초기화 중에 ROM 부트 로더(117)는 저장 장치(105)로부터 제1 코드 세그먼트(예컨대, 제1 오버올 코드 세그먼트)를 페치하고, 그 제1 코드 세그먼트를 (예컨대, 인증서(118)를 이용하여) 인증하고, 이 제1 코드 세그먼트를 내부 RAM(113) 내로 론치한다. 제1 코드 세그먼트는 성공적으로 인증되고 내부 RAM(113)으로부터 실행되면 제2 코드 세그먼트(예컨대, 코드 세그먼트의 시퀀스에서 다음 코드 세그먼트)를 페치하고, 그 제2 코드 세그먼트를 (예컨대, 인증서(118)와 연관된 일련의 인증서를 이용하여) 인증하고, 이 제2 코드 세그먼트를 외부 RAM(103) 내로 론치한다.
그 외에도, 일 실시예에 따라서, 코드 영상 및/또는 데이터는 무선 통신 프로세서를 고유하게 식별하는 UID로부터 도출된 키에 의해 암호화될 수 있다. 즉, 이 코드 영상 및/또는 데이터는 UID로부터 도출된 키를 이용하여 이를 암호화함으로써 개인화될 수 있다. 따라서, 장치에 대해 특별히 설계 또는 프로비져닝된 소프트웨어 컴포넌트만이 장치에 설치되도록 허용될 수 있다. UID는 무선 통신 프로세서의 보안 ROM에 저장될 수도 있다. 대안으로서, UID는 무선 통신 프로세서에 연관된 하드웨어에 (예컨대, 번트 퓨즈를 통해) 고정 배선으로 연결될 수 있다. 따라서, 각 소프트웨어 컴포넌트는 실행되기 전에 인증 및 복구되어, 소프트웨어 컴포넌트가 위태롭지 않은 것임을 보증한다.
프로세서에 대한 동작 환경을 구축하기 위한 소프트웨어 컴포넌트의 인증과 부팅에 관한 자세한 정보는 동시 출원계류 중인 미국 특허출원 11/620,689(출원일: 2007년 1월 7일, 발명의 명칭: "Secure Booting A Computing Device")(이 출원의 전체 내용은 본 명세서에 인용으로 포함됨)에 기재되어 있다.
그 외에도, 코드 영상 및/또는 데이터의 일부는 소정 포맷에 따라서 패키지될 수 있으며 공통 보안 모델을 통해 인증될 수 있다. 예컨대, 코드 영상 및/또는 데이터의 일부는 Image3 포맷과 유사한 포맷에 따라 패키지될 수 있다. 그와 같은 구현에서, 시스템에 설치되어 로드될 소프트웨어 컴포넌트들 각각은 소정 포맷을 가진 오브젝트로서 구현 또는 패키지되고, 이에 따라서, 각 오브젝트에 내장된 실행 코드를 실행하기 전에, 단일 보안 처리 엔진(예컨대, 코드 빌더(builder) 및/또는 코드 로더)을 이용하여, 각 소프트웨어 컴포넌트가 신뢰되고 특정 시스템 한계 또는 기준에 맞는 지를 판단하기 위한 메커니즘으로서 오브젝트 각각을 구축하고 검증할 수 있다. 오브젝트의 페이로드와 같이 각 오브젝트의 적어도 일부는 장치의 UID로부터 도출된 키에 의해 암호화(예컨데, 릭크드(licked) 또는 개인화)될 수 있으며, 이 경우에는 목표 장치만이 오브젝트를 복호할 수 있다.
Image3 포맷 및/또는 공통 보안 모델에 관한 자세한 정보는 동시 출원계류 중인 미국 특허출원 12/103,685(출원일: 2008년 4월 15일, 발명의 명칭: "Single Security Model in Booting a Computing Device")(이 출원의 전체 내용은 본 명세서에 인용으로 포함됨)에 기재되어 있다.
도 3은 본 발명의 일 실시예에 따른 무선 통신 프로세서를 부팅하는 방법의 흐름도이다. 예컨대, 이 방법(300)은 도 1의 시스템(100)에 의해 수행될 수 있다. 도 3을 참조로 설명하면, 블록(301)에서, 부트 명령에 응답하여, 무선 프로세서의 보안 ROM으로부터 ROM BL이 실행된다. 블록(302)에서, ROM BL은 내부 RAM과 외부 RAM을 포함한 무선 프로세서의 특정 하드웨어를 초기화한다. 블록(303)에서, ROM BL은 애플리케이션 프로세서와 통신 채널(예컨대, USB-HSIC, USB-HS, USB-FS 또는 UART SPI)을 설정한다. 일 실시예에서, 무선 프로세서가 부팅되고 있을 때에 애플리케이션 프로세서는 이미 루트업(rooted up)되어 실행되고 있다고 가정한다. 블록(304)에서, ROM BL은 내부 버스를 통한 통신 링크를 통해 애플리케이션 프로세서에 연관된 저장 장치로부터 무선 프로세서 코드 영상을 페치하고, 인증하고, 론치하여, 무선 프로세서를 위한 동작 환경을 구축한다. 일 실시예에서, 무선 프로세서 코드 영상은 코드 세그먼트 시퀀스로 구성되거나 분할될 수 있다. 코드 세그먼트 각각은 순차적으로 페치되고, 인증되고, 로드될 수 있다. 이 시퀀스에서 이전 코드 세그먼트는 이 시퀀스의 다음 코드 세그먼트를 페치하고, 인증하고, 론치할 수 있다. 인증되거나 실행될 수 없는 세그먼트가 있다면, 적어도 무선 프로세서는 DFU 모드로 들어가야만 할 수 있다.
도 4는 본 발명의 다른 실시예에 따른 다기능 컴퓨팅 장치의 블록도이다. 이 예에서, 장치(400)는 전술한 기술들 중 적어도 일부를 이용하여 성공적으로 부팅된 도 1의 장치(100)를 나타낸다. 도 4를 참조로 설명하면, 무선 프로세서(101)가 성공적으로 부팅되면, 운영 체제(151)가 업되고 실행되는데, 여기서, OS(151)는 적어도 전술한 기술을 이용하여 인증되고 설치된 무선 프로세서 코드 영상에 기초하여 구축된다. 그 외에도, 저장 장치(105)의 저장 파티션(106)에 저장될 런타임 데이터를 저장키(114)를 이용하여 암호화하는 암호 유닛(152)이 구성된다. 런타임 생성된 데이터는 무선 네트워크를 통해 무선 프로세서에 의해 수신된 방송(over-the-air) 프로비져닝 데이터 및/또는 사용자 특정 또는 기밀 데이터(예컨대, SMS 메시지와 같은 e메일이나 메시지, 로깅, 및/또는 파일 시스템 관련 파일) 등을 포함할 수 있다.
무선 프로세서(101)에 연관된 로컬 또는 전용의 비휘발성 메모리 장치는 없기 때문에, 파일 시스템(FS) 드라이버(153)는 파일 시스템 프록시 드라이버 또는 데몬(daemon)으로서 이용된다. 일 실시예에서, 프로세서(101) 및/또는 OS(151)로부터 발생되어 저장 장치(105)에 기입될 데이터에 대해서, 암호 유닛(152)은 저장키(114)를 이용하여 그 데이터를 암호화하고 그 암호화된 데이터를 FS 드라이버(153)에 전송하도록 구성된다. 이어서 FS 드라이버(153)는 그 암호화된 데이터를, 통신 링크(예컨대, USB-HSIC)를 통해 애플리케이션 프로세서측에 위치한 FS 드라이버(154)에 전송한다. FS 드라이버(154)는 파일 시스템(116)의 서비스를 불러와서 저장 장치(105)의 해당 파티션(106)에 그 암호화된 데이터를 저장한다.
마찬가지로, 프로세서(101) 및/또는 OS(151)가 저장 장치(105)로부터 데이터를 검색할 필요가 있다면, 프로세서(101) 및/또는 OS(151)는 읽기 명령을 FS 드라이버(153)에 전송할 수 있다. FS 드라이버(153)는 FS(116)를 통해 저장 장치(105)로부터 관련 데이터(예컨대, 암호화된 데이터)를 검색하기 위해 읽기 명령을 FS 드라이버(154)에 중계한다. FS 드라이버(153)가 그 암호화된 데이터를 수신하면, 암호 유닛(152)은 그 암호화된 데이터를 저장키(114)를 이용하여 복호하고 그 복호된 데이터를 프로세서(101) 및/또는 OS(151)에 전송하도록 구성된다. 따라서, FS 드라이버(153)는 원격 파일 시스템 중의 하나와 유사한 프록시 또는 에이전트로서 기능할 수 있다. 아니면, FS 드라이버(153)는 OS(151)에 대한 가상 파일 시스템으로서 기능할 수 있으며, 이 경우에는, OS(151)는 애플리케이션 프로세서(102)의 저장 장치(105)에 내용이 실제로 저장되어 있는 지를 모를 수 있다.
어떤 상황에서는 매우 중요하거나 민감한 데이터만이 암호화될 수 있음에 유의한다. 로깅 데이터와 같은 다른 데이터는 암호화되지 않을 수 있다. 이런 식으로, 공유 저장 장치로의 액세스 효율이 개선될 수 있다. 또한, 저장 장치는 무선 프로세서(101)와 애플리케이션 프로세서(102)에 대한 독립적인 파티션을 유지할 필요가 없을 수도 있음에도 유의한다. 특정의 중요 데이터 또는 기밀 데이터가 애플리케이션 프로세서(102)가 액세스할 수 없는 보안 방식으로 유지될 수만 있다면 단일 파티션도 구현될 수 있다.
전술한 바와 같이, 종래 장치에서는 RF 교정 데이터는 제조업자에 의해 생성되어 무선 프로세서의 로컬 저장 장치에 유지된다. 게다가, RF 교정 데이터를 갱신하기 위해서, 종래에는, 제조업자에게 장치를 돌려보내야 하며, 제조업자는 새로운 RF 교정 데이터를 그 관련 비휘발성 저장 장치에 저장할 것이다. 일 실시예에서, 무선 프로세서에 연관된 로컬 비휘발성 저장 장치는 없기 때문에, RF 교정 데이터는 애플리케이션 프로세서(102)의 저장 장치(105)에 저장된다. RF 교정 데이터는 장치가 부셔져도 유지되어야 하므로, 도 2에 도시된 바와 같이, RF 교정 데이터는 저장 장치의 보호 또는 보안 영역에 저장될 수 있다.
일 실시예에서, RF 교정 데이터는 클라우드 네트워크의 서버(예컨대, 인가된 분배 서버나 프로비져닝 서버)에 저장될 수도 있으며, 장치를 제조업자에게 되돌려 보내지 않고 RF 교정 데이터는 클라우드 네트워크로부터 새로운 RF 교정 데이터를 다운로드받음으로써 갱신되어 애플리케이션 프로세서(102)에 연관된 저장 장치(105)에 저장될 수 있다. 특히, RF 교정 데이터는 무선 프로세서(101)의 UID 또는 저장키(114)를 이용하여 RF 교정 데이터를 암호화함으로써 프로비져닝되고 무선 프로세서(101)에 연관될 수 있으며, 이에 따라서, 무선 프로세서(101)만이 그 암호화된 RF 교정 데이터를 복호하여 그 RF 교정 데이터를 복구할 수 있다. 따라서, RF 교정 데이터는 장치가 제조업자를 떠난 후에 현장에서 쉽게 갱신될 수 있으며, 이는 RF 교정 데이터를 갱신하기 위해서 장치를 제조업자에게 돌려보내야 하는 종래 구성보다 훨씬 유연한 것이다.
도 5는 본 발명의 일 실시예에 따른 RF 교정 데이터 생성 방법의 흐름도이다. 예컨대, 방법(500)은 교정국(calibration station)에서 수행될 수 있다. 도 5를 참조로 설명하면, 블록(501)에서, 교정국에서 특정 무선 프로세서에 대한 RF 교정 데이터가 생성된다. 블록(502)에서, RF 교정 데이터는 무선 프로세서를 고유하게 식별하는 UID와 연관된다. 예컨대, RF 교정 데이터는 무선 프로세서의 UID에 기초하여 생성된 키에 의해 암호화될 수 있다. 암호화된 RF 교정 데이터는 제조업자나 교정국이 임시로 유지할 수 있다. 이어서, 블록(503)에서, RF 교정 데이터는 무선 프로세서가 애플리케이션 프로세서에 연결될 때에 애플리케이션 프로세서의 저장 장치에 푸시 다운될 수 있다. 어떤 상황에서는 무선 프로세서와 애플리케이션 프로세서는 제조업자와 제조 시간이 다를 수 있음에 유의한다. 무선 프로세서에 연관된 로컬 저장 장치는 없기 때문에, 애플리케이션 프로세서와 그에 연관된 저장 장치가 이용가능하게 될(예컨대, 통합될)때까지는 제조업자가 RF 교정 데이터를 유지할 필요가 있을 수 있다. 선택적으로, 블록(504)에서, 암호화된 RF 교정 데이터는 (예컨대, RF 교정 데이터의 로컬 카피에 오류가 생기거나 이것이 오래된 것이라면) 후속 다운로드를 위해 클라우드 네트워크에 푸시 업될 수 있다.
도 6은 본 발명의 일 실시예에 따른 RF 교정 데이터 갱신 방법의 흐름도이다. 예컨대, 방법(600)은 장치가 제조업자로부터 출시된 후에 현장에서 새로운 RF 교정 데이터를 갱신하기 위해 무선 프로세서에 의해 수행될 수 있다. 블록(601)에서, RF 교정 데이터는 교정국 또는 클라우드 네트워크로부터 다운로드되며, 이 경우에, RF 교정 데이터는 무선 프로세서의 UID로부터 도출된 키에 의해 암호화될 수 있다. 블록(602)에서, RF 교정 데이터는 애플리케이션 프로세서의 저장 장치에 저장된다. 블록(603)에서, 교정 명령에 응답하여, RF 교정 데이터는 통신 링크를 통해 저장 장치로부터 검색된다. 블록(604)에서, 무선 프로세서는 무선 프로세서의 UID로부터 도출된 국지적으로(locally) 유지된 키(예컨대, 도 1의 저장키(114))를 이용하여 RF 교정 데이터를 복호함으로써 RF 교정 데이터를 인증한다. 인증 및/또는 복호가 성공되면, 블록(605)에서, 무선 프로세서는 RF 교정 데이터를 이용하여 교정된다.
프로비져닝 데이터나 RF 교정 데이터와 같은 새로운 데이터가 원격 장치(예컨대, 분배 또는 프로비져닝 서버)로부터 다운로드되는 경우에는, 그 새로운 데이터의 보안 유지를 위해, 그 데이터는 적절한 수신처(예컨대, 적절한 무선 프로세서)만이 그 데이터를 복호할 수 있도록 프로비져닝 설비에 의해 암호화되어야 한다. 즉, 그 데이터를 암호화하는데 이용된 키는 의도된 수신처와 프로비져닝 설비에게만 알려질 수 있어야 하며, 그렇지 않으면 그 데이터는 위태롭게 될 수 있다.
도 7은 본 발명의 일 실시예에 따른, 무선 프로세서에 설치되기 위해 네트워크를 통해 원격 장치로부터 데이터를 안전하게 다운로드하는 시스템 구성도이다. 도 7을 참조로 설명하면, 시스템 구성(700)은 컴퓨팅 장치(701), 인가 서버(702), 및 LAN이나 WAN(예컨대, 인터넷)일 수 있는 네트워크(704)를 통해 서로 통신가능하게 연결된 하나 이상의 분배 서버(703)를 포함한다. 컴퓨팅 장치(701)는 도 1의 컴퓨팅 장치(100)일 수 있다. 인가 서버(702)는 컴퓨팅 장치(701)를 설계하거나 제조하는 기관에 연관될 수 있다. 분배 서버(703)는 컴퓨팅 장치(701)에 의해 설치 또는 이용될 프로비져닝 데이터나 RF 교정 데이터와 같은 데이터(707)를 분배하도록 인가된 네트워크(704)(예컨대, 클라우드 네트워크) 내의 서버들 중 임의의 서버일 수 있다.
일 실시예에 따라서, 컴퓨팅 장치(701)가 서버(703)와 같은 분배 서버들 중 하나로부터 데이터를 다운로드할 필요가 있다면, 컴퓨팅 장치(701)는 임시적인 또는 임의의 세션키(705)를 생성한다. 그러면, 세션키(705)는 공개키(119)(공개키/비밀키 쌍의 공개 성분)에 의해 암호화된다. 여기서, 이 키쌍의 비밀 성분은 인가 서버(702)에 의해 비밀키(706)로서 유지된다. 공개키(119)는 예컨대 장치 제조 과정에서 디지털 인증서 형태로 미리 분배될 수 있다. 게다가, 저장키(114), 즉, 컴퓨팅 장치(701)의 UID로부터 도출된 키를 이용하여 세션키(705)를 암호화함으로써 복구 블롭(recovery blob)이 생성된다. 그 후, 암호화된 세션키와 복구 블롭은 경로(1)를 통해 컴퓨팅 장치(701)로부터 인가 서버(702)로 전송된다. 인가 서버(702)는 컴퓨팅 장치(701)를 인증하고, 비밀키(706)를 이용하여 세션키를 복호함으로써 세션키를 복구한다. 세션키와 복구 블롭은 경로(2)를 통해, 예컨대 보안 접속을 통해 인가 서버(702)로부터 분배 서버들(703) 중 하나로 전송된다. 그러면, 분배 서버(703)는 인가 서버(702)로부터 수신된 세션키를 이용하여 데이터(707)를 암호화한다. 그 후, 암호화된 데이터(707)와 복구 블롭은 다시 분배 서버(703)로부터 컴퓨팅 장치(701)로 전송된다.
컴퓨팅 장치(701)는 저장키(114)를 이용하여 복구 블롭을 복호함으로써 세션키를 복구할 수 있다. 그러면, 세션키를 이용하여 설치 또는 교정 등을 위해 그 암호화된 데이터(707)를 복호할 수 있다. 즉, 컴퓨팅 장치(701)가 그 암호화된 데이터(707)의 의도된 수신측이라면, 복구 블롭이 원래 참 소유자(이 예에서는, 컴퓨팅 장치(701))에 의해 생성된 것이기 때문에, 컴퓨터 장치(701)는 저장키(114)를 이용하여 복구 블롭을 복호함으로써 세션키를 복구할 수 있어야 한다. 복구 블롭을 생성하지 않았던 임의의 다른 장치는 복구 블롭을 복호하는 적당한 저장키를 소유하고 있지 않으므로 세션키를 복구할 수 없다. 따라서, 서버(703)에 의해 분배된 데이터(707)는 안전하게 다운로드되어 컴퓨팅 장치(701)에 설치될 수 있다. 비밀키(706)도 분배 서버(703)에 분배되어 이에 의해 유지될 수 있음에 유의한다. 또한, 인가 서버(702)와 분배 서버(703)는 같은 서버일 수 있음에 유의한다.
더욱이, 일 실시예에 따라서, 데이터(707)는 안전한 설치를 위해 티켓 기반 인가 프로세스를 이용하여 패키지되어 분배될 수 있다. 이 실시예에서, 데이터(707)는 특히 "티켓"을 통해 패키지되어 개인화될 수 있다. 티켓은 각 소프트웨어 컴포넌트에 대한 해시(hash) 및/또는 버전 식별자와 같은 보안 대책의 모음을 나타낸다. 티켓은 인가 서버(702)와 같은 중앙 기관에 의해 생성되어 분배될 수 있다. 티켓은 해커가 서로 다른 버전의 소프트웨어 컴포넌트들을 섞어서 매치시켜 설치하는 기회를 감소시킬 수 있다. 티켓 기반 인가 프로세스에 관해 더 자세한 정보는 동시 출원계류 중인 미국 특허출원 12/329,377(출원일: 2008년 12월 5일, 발명의 명칭: "Ticket Authorized Secure Installation and Boot")(그 전체 내용은 본 명세서에 인용으로 포함됨)에 기재되어 있다.
도 8은 본 발명의 일 실시예에 따른 프로비져닝 데이터 갱신 방법의 흐름도이다. 방법(800)은 특히 새로운 데이터 세트를 다운로드하려는 시도에서 DFU 모드 중에 무선 프로세서(101)와 같은 무선 프로세서에 의해 수행될 수 있다. 도 8을 참조로 설명하면, 블록(801)에서, 원격 서버로부터의 새로운 데이터를 갱신할 필요가 있는 경우에 세션키가 생성된다. 세션키는 무선 프로세서의 UID로부터 도출된 키(예컨대, 도 1의 저장키(114))에 의해 암호화되며, 이는 복구 블롭을 생성한다. 블록(802)에서, 세션키도 공개키와 비밀키를 가진 비대칭 키쌍 중 공개키(예컨대, 도 1의 공개키(119))에 의해 암호화된다. 복구 블롭과 공개키에 의해 암호화된 세션키는 신뢰되는 인가 서버(예컨대, apple.com)에 전송된다.
이 실시예에서는, 공개키는 장치 제조 과정에서 생성되었고, 키쌍 중 비밀키는 신뢰되는 인가 설비(예컨대, 인가 서버)가 유지하고 있다고 가정한다. 신뢰되는 인가 설비는 암호화된 세션키를 대응 비밀키를 이용하여 복호함으로써 세션키를 복구할 수 있다. 그러면, 그 신뢰되는 인가 설비는 복구 블롭과 세션키를 클라우드 네트워크 내의 분배 설비들 중 하나 이상에 전송할 수 있다.
이어서, 블록(803)에서, 분배 설비에 의해 세션키로 암호화된 분배된 데이터는 물론 복구 블롭이 무선 프로세서에 의해 수신된다. 이 상황에서는 적절한 또는 의도된 수신측만이 복구 블롭을 복호하는데 필요한 키(예컨대, 저장키)를 가질 것이다. 블록(804)에서, 무선 프로세서는 장치의 UID로부터 도출된 키를 이용하여 복구 블롭을 복호하여 세션키를 복구할 수 있다. 그러면, 블록(805)에서, 세션키를 이용하여, 분배 설비로부터 전송된 분배된 데이터를 복호한다. 즉, 분배 설비와 장치만이 추가적인 시크릿(secret)을 교환하는데 이용될 수 있는 적절한 세션키를 가질 것이다.
도 9는 본 발명의 일 실시예에 이용될 수 있는 데이터 프로세싱 시스템의 예를 보여준다. 예컨대, 시스템(900)은 도 1에 도시된 장치(100)로 구현될 수 있다. 도 9에 도시된 데이터 프로세싱 시스템(900)은 하나 이상의 마이크로프로세서이거나 집적 회로의 칩 상의 시스템일 수 있는 프로세싱 시스템(911)을 포함하고, 시스템은 프로세싱 시스템에 의해 실행될 데이터와 프로그램을 저장하는 메모리(901)도 포함한다. 시스템(900)은 예컨대 음악을 재생시키거나 스피커 및 마이크로폰을 통해 전화 기능을 제공하는 마이크로폰과 스피커를 포함할 수 있는 오디오 입/출력 서브시스템(905)도 포함한다.
디스플레이 제어기 및 디스플레이 장치(907)는 사용자에게 시각적인 사용자 인터페이스를 제공한다. 이 디지털 인터페이스는 운영 체제 소프트웨어를 실행할 때에 iPhone® 전화기, iPad 장치, 또는 매킨토시 컴퓨터 상에 표시되는 것과 유사한 그래픽 사용자 인터페이스를 포함할 수 있다. 시스템(900)은 다른 데이터 프로세싱 시스템과 통신하는 하나 이상의 무선 송수신기(903)도 포함한다. 무선 송수신기는 WiFi 송수신기, 적외선 송수신기, Bluetooth 송수신기 및/또는 무선 셀룰러 전화 송수신기일 수 있다. 특정 실시예에서는 도시되어 있지는 않지만 시스템(900)의 부품으로서 다른 컴포넌트도 더 추가될 수 있고, 특정 실시예에서는 데이터 프로세싱 시스템에 도 9에 도시된 것보다 적은 수의 구성요소가 사용될 수도 있음을 알아야 한다.
데이터 프로세싱 시스템(900)은 사용자가 이 시스템에 입력을 제공할 수 있도록 구비된 하나 이상의 입력 장치(913)도 포함한다. 이들 입력 장치는 키패드, 키보드, 터치 패널 또는 멀티터치 패널일 수 있다. 데이터 프로세싱 시스템(900)은 도크(dock)용 커넥터일 수 있는 선택적인 입/출력 장치(915)도 포함한다. 본 기술 분야에 잘 알려져 있는 바와 같이 하나 이상의 버스(미도시)를 이용하여 여러 가지 구성요소들을 상호접속시킬 수 있음을 알아야 한다. 도 9에 도시된 데이터 프로세싱 시스템은 핸드헬드 컴퓨터나 PDA(Personal Digital Assistant), PDA 유사 기능을 가진 셀룰러 전화, 셀룰러 전화를 포함하는 핸드헬드 컴퓨터, iPod와 같은 미디어 플레이어, 또는, PDA 및 셀룰러 전화와 하나의 장치로 결합된 미디어 플레이어와 같이 상기 장치들의 양상이나 기능들을 결합한 장치일 수 있다. 다른 실시예에서, 데이터 프로세싱 시스템(900)은 다른 장치 내의 네트워크 컴퓨터나 임베디드 처리 장치, 또는 도 9에 도시된 것보더 더 적거나 많은 수의 구성요소를 가진 다른 형태의 데이터 프로세싱 시스템일 수 있다.
본 발명의 적어도 특정 실시예는 미디어를 제공하는 미디어 프로세싱 시스템, 미디어를 저장하는 저장 장치, 및 안테나 시스템과 미디어 프로세싱 시스템과 결합된 무선 주파수(RF) 송수신기(예컨대, 셀룰러 전화용 RF 송수신기)를 포함할 수 있는 휴대형 뮤직 및/또는 비디오 미디어 플레이어와 같은 디지털 미디어 플레이어의 일부일 수 있다. 특정 실시예에서, 원격 저장 장치에 저장된 미디어는 RF 송수신기를 통해 미디어 플레이어에 전송될 수 있다. 미디어는 예컨대 뮤직 또는 다른 오디오, 정지 화상 또는 동화상 중 하나 이상일 수 있다.
휴대형 미디어 플레이어는 Apple사(CA, Cupertino 소재)의 iPod® 또는 iPod Nano® 미디어 플레이어 상의 클릭 휠 입력 장치와 같은 미디어 선택 장치, 터치 스크린 또는 멀티터치 입력 장치, 푸시버튼 장치, 가동 포인팅 입력 장치 또는 기타 다른 입력 장치를 포함할 수 있다. 미디어 선택 장치는 저장 장치 및/또는 원격 저장 장치에 저장된 미디어를 선택하는데 이용될 수 있다. 적어도 특정 실시예에서, 휴대형 미디어 플레이어는 미디어 프로세싱 시스템에 결합되어 입력 장치를 통해 선택되고 스피커나 이어폰(들)을 통해 또는 디스플레이 장치 상에서 제공되거나 또는 디스플레이 장치와 스피커 또는 이어폰(들) 상에서 제공되는 미디어의 타이틀 또는 기타 다른 표시자를 디스플레이하는 디스플레이 장치를 포함할 수 있다.
상기 상세한 설명의 일부는 컴퓨터 메모리 내의 데이터 비트에 대한 동작의 알고리즘과 기호적 표현 측면에서 설명하였다. 이러한 알고리즘 설명과 표현은 데이터 처리 분야의 당업자가 그 성과의 내용을 다른 당업자에게 가장 효율적으로 전달하는데 이용되는 방식이다. 여기서는, 알고리즘은 일반적으로 원하는 결과에 이르는 일관된 동작 시퀀스인 것으로 여겨진다. 이러한 동작들은 물리량의 물리적 조작을 요하는 것들이다. 반드시 그러한 것은 아니지만, 보통은 이러한 물리량은 저장, 전송, 결합, 비교, 및 다르게 조작될 수 있는 전기적 또는 자기적 신호 형태를 취한다. 주로 일반적 용법의 이유로 때로는 이들 신호를 비트, 값, 요소, 기호, 캐릭터, 용어, 숫자 등으로 표현하는 것이 편리하다.
그러나, 이들 용어와 그 유사 용어들은 적당한 물리량과 연관되어야 하며 이들 물리량에 붙은 단순히 편리한 라벨임을 명심해야 한다. 상기 설명으로 명백하듯이, 특별히 달리 설명하지 않는 한, 설명 전체를 통해 하기의 청구범위에 기재된 것들과 같은 용어를 이용한 설명은, 컴퓨터 시스템의 레지스터와 메모리 내의 물리적(전자적) 량으로 표현된 데이터를 조작하고, 컴퓨터 시스템 메모리 또는 레지스터 또는 다른 정보 저장 장치, 전송 또는 표시 장치 내의 물리량으로 유사하게 표현되는 다른 데이터로 변환하는 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 장치의 동작과 처리에 대한 설명임을 알아야 한다.
본 발명의 실시예들은 상기 설명된 동작들을 수행하는 장비에 관한 것이기도 하다. 이 장비는 필요한 목적을 위해 특별히 구성될 수 있으며, 또는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 작동되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 그와 같은 컴퓨터 프로그램은 컴퓨터 판독 매체에 저장될 수 있다. 머신 판독 매체는 정보를 머신(예컨대, 컴퓨터)가 판독할 수 있는 형태로 저장하는 임의의 메커니즘을 포함한다. 예컨대, 머신 판독가능(예컨대, 컴퓨터 판독가능) 매체는 머신(예컨대, 컴퓨터) 판독 저장 매체(예컨대, 읽기 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 장치 등) 등을 포함한다.
도면에 나타낸 프로세스 또는 방법은 하드웨어(예컨대, 회로, 전용 로직 등), 소프트웨어 또는 이들의 조합을 포함하는 프로세싱 로직에 의해 수행될 수 있다. 상기에서는 이러한 처리나 방법을 몇 가지 순차적 동작으로 설명하였지만, 설명된 동작들 중 일부는 다른 순서로 수행될 수 있음을 알아야 한다. 더욱이, 일부 동작은 순차적으로가 아니라 병렬로 수행될 수 있다.
여기서 제시된 알고리즘과 디스플레이는 임의의 특정 컴퓨터나 다른 장비에 관계된 것은 아니다. 본 발명의 교시에 따라서 여러 가지 범용 시스템이 프로그램과 함께 이용될 수 있으며, 또는 필요한 방법 동작을 수행하는데는 더 전문화된 장비를 구성하는 것이 편리할 수 있다. 다양한 이들 시스템에 필요한 구조는 상기 설명으로부터 드러날 것이다. 게다가, 본 발명의 실시예들은 임의의 특정 프로그래밍 언어와 관련하여 설명된 것이 아니다. 여기서 설명된 본 발명의 실시예의 교시를 구현하는데는 여러 가지 프로그래밍 언어가 이용될 수 있음을 알아야 한다.
본 명세서에서, 본 발명의 실시예들은 그 특정의 예시적인 실시예와 관련하여 설명하였다. 하기의 청구범위에 기재된 본 발명의 더 넓은 본질과 범위로부터 벗어남이 없이 실시예에 대한 여러 가지 변형이 가능함은 분명하다. 따라서, 본 명세서와 도면은 한정적 의미가 아니라 예시적 의미로 생각해야 한다.

Claims (24)

  1. 휴대형 장치로서,
    애플리케이션 프로세서;
    상기 애플리케이션 프로세서에 결합된 제1 랜덤 액세스 메모리(RAM) - 상기 제1 RAM은, 상기 애플리케이션 프로세서를 위한 동작 환경을 제공하는 제1 운영 체제(OS)를 내부에서 실행시킴 - ;
    상기 애플리케이션 프로세서와 상기 제1 RAM에 결합된 비휘발성 저장 장치 - 상기 비휘발성 저장 장치는 상기 제1 OS를 통해 상기 애플리케이션 프로세서에 의해 액세스된 데이터를 저장함 - ;
    내부 버스를 통해 상기 애플리케이션 프로세서에 결합된 무선 통신 프로세서; 및
    상기 무선 통신 프로세서에 결합된 제2 RAM - 상기 제2 RAM은, 상기 무선 통신 프로세서를 위한 동작 환경을 제공하는 제2 OS를 내부에서 실행시킴 -
    을 포함하고,
    상기 무선 통신 프로세서는, 상기 내부 버스를 통한 통신 링크를 통해 상기 비휘발성 저장 장치에 액세스함으로써 상기 비휘발성 저장 장치로부터 부트 코드 영상을 페치하여 상기 무선 통신 프로세서를 부팅시키고, 상기 제2 OS를 구축하고, 정상 동작 중에 상기 비휘발성 저장 장치 내의 상기 무선 통신 프로세서와 연관된 데이터에 액세스하도록 구성되고,
    상기 부트 코드 영상은 일련의 디지털 인증서로 서명된 제1 부트 코드 세그먼트와 제2 부트 코드 세그먼트를 포함하고, ROM 부트 로더는, 상기 일련의 디지털 인증서 중 첫 번째 것을 이용하여 상기 제1 부트 코드 세그먼트를 인증하고, 상기 제1 부트 코드 세그먼트를 실행하도록 구성되고, 상기 제1 부트 코드 세그먼트는, 상기 ROM 부트 로더에 의해 실행될 때에, 상기 비휘발성 저장 장치로부터 상기 제2 부트 코드 세그먼트를 페치하고, 상기 일련의 디지털 인증서 중 두 번째 것을 이용하여 상기 제2 부트 코드 세그먼트를 인증하고, 상기 제2 부트 코드 세그먼트를 로드하도록 구성되고,
    상기 제2 RAM은 그 내부에서 실행되는 암호 유닛을 포함하고, 상기 비휘발성 저장 장치에 액세스하기 위한 명령에 응답하여, 상기 암호 유닛은, 상기 무선 통신 프로세서를 고유하게 식별하는 고유 식별자(UID)로부터 도출되는 저장키를 이용하여 상기 통신 링크를 통해 상기 비휘발성 저장 장치로의 데이터를 암호화하며 상기 비휘발성 저장 장치로부터의 데이터를 복호화하도록 구성되는
    휴대형 장치.
  2. 제1항에 있어서,
    상기 무선 통신 프로세서는 ROM 부트 로더를 저장하기 위한 보안 ROM(read-only memory)을 더 포함하고, 상기 무선 통신 프로세서에 의해 수신된 부트 명령에 응답하여, 상기 ROM 부트 로더는, 상기 무선 통신 프로세서의 하드웨어를 초기화하고 상기 내부 버스를 통한 상기 애플리케이션 프로세서와의 통신 링크를 설정하기 위해 상기 보안 ROM으로부터 실행되는 휴대형 장치.
  3. 제2항에 있어서,
    상기 ROM 부트 로더는 상기 내부 버스를 통한 상기 통신 링크를 통해 상기 비휘발성 저장 장치로부터 부트 코드 영상을 페치하고, 상기 부트 코드 영상을 인증하고, 상기 부트 코드 영상을 성공적으로 인증하면, 상기 무선 통신 프로세서에 대한 상기 제2 OS를 구축하기 위해 상기 제2 RAM에서 상기 부트 코드 영상을 실행하도록 구성되는 휴대형 장치.
  4. 제3항에 있어서,
    상기 ROM 부트 로더는 상기 무선 통신 프로세서를 고유하게 식별하는 고유 식별자(UID)로부터 도출된 저장키를 이용하여 상기 부트 코드 영상을 복호화하도록 구성되는 휴대형 장치.
  5. 제3항에 있어서,
    상기 ROM 부트 로더는 상기 무선 통신 프로세서의 상기 보안 ROM에 저장된 디지털 인증서를 이용하여 상기 부트 코드 영상을 인증하는 휴대형 장치.
  6. 삭제
  7. 제1항에 있어서,
    상기 무선 통신 프로세서는 상기 ROM 부트 로더에 의해 초기화된 내부 RAM을 더 포함하고, 상기 제1 코드 세그먼트는 상기 내부 RAM 내의 상기 ROM 부트 로더에 의해 페치되고, 인증되고, 론치(launch)되고, 상기 제2 코드 세그먼트는 상기 제2 RAM 내의 상기 제1 부트 코드 세그먼트에 의해 페치되고, 인증되고, 론치되는 휴대형 장치.
  8. 삭제
  9. 제1항에 있어서,
    상기 제1 RAM은 파일 시스템과 그 내부에서 실행되는 제1 파일 시스템 드라이버를 더 포함하고, 상기 제2 RAM은 그 내부에서 실행되는 제2 파일 시스템 드라이버를 더 포함하고, 상기 제2 파일 시스템 드라이버는 상기 무선 통신 프로세서에 의해 상기 비휘발성 저장 장치에 액세스할 목적으로 상기 파일 시스템으로부터 파일 시스템 서비스를 인보크하기 위해 상기 통신 링크를 통해 상기 제1 파일 시스템 드라이버와 통신하도록 구성되는 휴대형 장치.
  10. 제1항에 있어서,
    데이터를 갱신하라는 명령에 응답하여, 세션키가 생성되고 상기 무선 통신 프로세서를 고유하게 식별하는 고유 식별자(UID)로부터 도출된 저장키에 의해 암호화되어 복구 블롭(recovery blob)을 생성하고, 상기 복구 블롭과, 공개키에 의해 암호화된 상기 세션키는 인가 서버에 전송되고, 프로비져닝 서버(provisioning server)로부터 수신된 데이터와 상기 복구 블롭에 응답하여, 상기 저장키를 이용하여 상기 복구 블롭을 복호화함으로써 상기 복구 블롭으로부터 상기 세션키가 복구되고, 상기 복구된 세션키는 상기 프로비져닝 서버로부터 수신된 상기 데이터를 복호화하는데 이용되는 휴대형 장치.
  11. 제10항에 있어서,
    상기 데이터는 무선 주파수(RF) 교정 데이터를 포함하는 휴대형 장치.
  12. 휴대형 장치를 동작시키기 위한 머신 구현 방법으로서,
    부트 명령에 응답하여, 무선 통신 프로세서의 보안 ROM(secure read-only memory)으로부터 ROM 부트 로더를 실행시키는 단계 - 상기 ROM 부트 로더는 상기 휴대형 장치의 무선 통신 프로세서와 연관된 하드웨어를 초기화함 - ;
    상기 ROM 부트 로더에 의해, 상기 무선 통신 프로세서를 상기 휴대형 장치의 애플리케이션 프로세서와 연결시키는 내부 버스를 통해 상기 애플리케이션 프로세서와의 통신 링크를 설정하는 단계;
    상기 ROM 부트 로더에 의해, 상기 통신 링크를 통해 비휘발성 저장 장치로부터 부트 코드 영상을 페치하는 단계 - 상기 비휘발성 저장 장치는, 상기 애플리케이션 프로세서와 연관된 제1 랜덤 액세스 메모리(RAM) 내에서 실행되는 제1 운영 체제(OS)를 통해 상기 애플리케이션 프로세서와 연관되며 상기 애플리케이션 프로세서에 의해 액세스됨 - ;
    상기 ROM 부트 로더에 의해, 상기 부트 코드 영상을 인증하는 단계; 및
    상기 부트 코드 영상을 성공적으로 인증하면, 상기 ROM 부트 로더가, 상기 무선 통신 프로세서를 위한 제2 OS를 구축하기 위해 상기 무선 통신 프로세서와 연관된 제2 RAM 내로 상기 부트 코드 영상을 론치하는 단계
    를 포함하고,
    상기 부트 코드 영상은 일련의 디지털 인증서로 서명된 제1 부트 코드 세그먼트와 제2 부트 코드 세그먼트를 포함하고, 상기 ROM 부트 로더는, 상기 보안 ROM으로부터의 상기 일련의 디지털 인증서 중 첫 번째 것을 이용하여 상기 제1 부트 코드 세그먼트를 인증하고, 상기 제1 부트 코드 세그먼트를 실행하도록 구성되고, 상기 제1 부트 코드 세그먼트는, 상기 ROM 부트 로더에 의해 실행될 때에, 상기 비휘발성 저장 장치로부터 상기 제2 부트 코드 세그먼트를 페치하고, 상기 일련의 디지털 인증서 중 두 번째 것을 이용하여 상기 제2 부트 코드 세그먼트를 인증하고, 상기 제2 부트 코드 세그먼트를 로드하도록 구성되고,
    상기 부트 코드 영상은 상기 보안 ROM에 저장된 디지털 인증서를 이용하여 상기 ROM 부트 로더에 의해 인증되고, 상기 디지털 인증서는 상기 무선 통신 프로세서를 고유하게 식별하는 고유 식별자(UID)로부터 도출되고,
    상기 비휘발성 저장 장치에 액세스하기 위한 명령에 응답하여, 저장키를 이용하여 상기 통신 링크를 통해 상기 비휘발성 저장 장치로의 데이터를 암호화하며 상기 비휘발성 저장 장치로부터의 데이터를 복호화하는 단계를 더 포함하는,
    머신 구현 방법.
  13. 삭제
  14. 제12항에 있어서,
    상기 부트 코드 영상을 인증하는 단계는 상기 무선 통신 프로세서의 상기 UID로부터 도출된 저장키를 이용하여 상기 부트 코드 영상의 적어도 일부를 복호화하는 단계를 포함하는, 머신 구현 방법.
  15. 삭제
  16. 삭제
  17. 제12항에 있어서,
    상기 제1 RAM은 파일 시스템과 그 내부에서 실행되는 제1 파일 시스템 드라이버를 더 포함하고, 상기 제2 RAM은 그 내부에서 실행되는 제2 파일 시스템 드라이버를 더 포함하고, 상기 제2 파일 시스템 드라이버는 상기 무선 통신 프로세서에 의해 상기 비휘발성 저장 장치에 액세스할 목적으로 상기 파일 시스템으로부터 파일 시스템 서비스를 인보크하기 위해 상기 통신 링크를 통해 상기 제1 파일 시스템 드라이버와 통신하도록 구성되는, 머신 구현 방법.
  18. 제12항에 있어서,
    데이터를 갱신하라는 명령에 응답하여, 세션키를 생성하는 단계;
    상기 무선 통신 프로세서를 고유하게 식별하는 고유 식별자(UID)로부터 도출된 저장키를 이용하여 상기 세션키를 암호화하는 단계;
    상기 저장키에 의해 암호화된 상기 세션키가 내부에 삽입된 복구 블롭을 생성하는 단계;
    공개키/비밀키 쌍 중 공개키를 이용하여 상기 세션키를 암호화하는 단계;
    상기 복구 블롭과, 상기 공개키에 의해 암호화된 상기 세션키를 인가 서버에 전송하는 단계 - 상기 인가 서버는, 상기 공개키/비밀키 쌍 중 비밀키를 이용하여 상기 세션키를 복호화함으로써 상기 세션키를 복구하도록 구성됨 - ;
    프로비져닝 서버로부터 다운로드된 상기 복구 블롭 및 상기 세션키에 의해 암호화된 데이터에 응답하여, 상기 저장키를 이용하여 상기 복구 블롭을 복호화함으로써 상기 복구 블롭으로부터 상기 세션키를 복구하는 단계;
    상기 세션키를 이용하여 암호화된 데이터를 복호화함으로써 상기 데이터를 복구하는 단계; 및
    상기 데이터를 상기 비휘발성 저장 장치에 저장하는 단계
    를 더 포함하는, 머신 구현 방법.
  19. 머신에 의해 실행될 때에, 상기 머신이 제12항, 제14항, 제17항 및 제18항 중 어느 한 항에 따른 방법을 수행하게 하는 명령어들이 저장된 머신 판독가능 저장 매체.
  20. 머신에 의해 실행될 때에, 상기 머신이 휴대형 장치를 동작시키기 위한 머신 구현 방법을 수행하게 하는 명령어들이 저장된 머신 판독가능 저장 매체로서,
    상기 방법은,
    상기 휴대형 장치에 대한 소프트웨어 컴포넌트를 갱신하라는 명령에 응답하여, 세션키를 생성하는 단계;
    상기 휴대형 장치를 고유하게 식별하는 고유 식별자(UID)로부터 도출된 저장키를 이용하여 상기 세션키를 암호화하는 단계;
    상기 저장키에 의해 암호화된 상기 세션키가 내부에 삽입된 복구 블롭을 생성하는 단계;
    공개키/비밀키 쌍 중 공개키를 이용하여 상기 세션키를 암호화하는 단계;
    상기 복구 블롭과, 상기 공개키에 의해 암호화된 상기 세션키를 인가 서버에 전송하는 단계 - 상기 인가 서버는, 상기 공개키/비밀키 쌍 중 비밀키를 이용하여 상기 세션키를 복호화함으로써 상기 세션키를 복구하도록 구성됨 - ;
    프로비져닝 서버로부터 다운로드된 상기 복구 블롭과 상기 소프트웨어 컴포넌트에 응답하여, 상기 저장키를 이용하여 상기 복구 블롭을 복호화함으로써 상기 복구 블롭으로부터 상기 세션키를 복구하는 단계 - 상기 소프트웨어 컴포넌트는 상기 인가 서버로부터 상기 프로비져닝 서버에 의해 수신된 상기 세션키에 의해 암호화됨 -; 및
    상기 복구 블롭으로부터 복구된 상기 세션키를 이용하여 암호화된 소프트웨어 컴포넌트를 복호화함으로써 상기 소프트웨어 컴포넌트를 복구하는 단계 - 상기 소프트웨어 컴포넌트는 상기 휴대형 장치에 설치됨 -
    를 포함하는, 머신 판독가능 저장 매체.
  21. 제20항에 있어서,
    상기 소프트웨어 컴포넌트는 상기 휴대형 장치를 부팅하기 위한 부트 코드 영상과 상기 휴대형 장치의 무선 통신 프로세서를 교정하기 위한 무선 주파수(RF) 교정 데이터 중 적어도 하나를 포함하는, 머신 판독가능 저장 매체.
  22. 삭제
  23. 삭제
  24. 삭제
KR1020127028432A 2010-04-19 2011-04-14 논로컬 저장 장치로부터의 서브시스템의 안전한 부팅 및 구성 KR101434080B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US32577710P 2010-04-19 2010-04-19
US61/325,777 2010-04-19
US12/944,481 2010-11-11
US12/944,481 US8589667B2 (en) 2010-04-19 2010-11-11 Booting and configuring a subsystem securely from non-local storage
PCT/US2011/032557 WO2011133401A1 (en) 2010-04-19 2011-04-14 Booting and configuring a subsystem securely from non-local storage

Publications (2)

Publication Number Publication Date
KR20130027498A KR20130027498A (ko) 2013-03-15
KR101434080B1 true KR101434080B1 (ko) 2014-08-25

Family

ID=44454711

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127028432A KR101434080B1 (ko) 2010-04-19 2011-04-14 논로컬 저장 장치로부터의 서브시스템의 안전한 부팅 및 구성

Country Status (10)

Country Link
US (1) US8589667B2 (ko)
EP (1) EP2378454A3 (ko)
JP (1) JP5576983B2 (ko)
KR (1) KR101434080B1 (ko)
CN (1) CN102859963B (ko)
AU (1) AU2011243007B2 (ko)
CA (1) CA2795180C (ko)
RU (1) RU2542930C2 (ko)
TW (1) TWI454935B (ko)
WO (1) WO2011133401A1 (ko)

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972746B2 (en) * 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
US20120166812A1 (en) * 2010-12-22 2012-06-28 Men Long Method, apparatus and system for secure communication of radio front end test/calibration instructions
WO2013064540A1 (en) * 2011-10-31 2013-05-10 Mikrodust Ab Radio module
US9787681B2 (en) 2012-01-06 2017-10-10 Optio Labs, Inc. Systems and methods for enforcing access control policies on privileged accesses for mobile devices
EP2801050A4 (en) 2012-01-06 2015-06-03 Optio Labs Llc SYSTEMS AND METHODS FOR APPLYING SECURITY IN MOBILE COMPUTING
WO2013119065A1 (en) * 2012-02-10 2013-08-15 Samsung Electronics Co., Ltd. Securely upgrading or downgrading platform components
US8667270B2 (en) 2012-02-10 2014-03-04 Samsung Electronics Co., Ltd. Securely upgrading or downgrading platform components
KR101932491B1 (ko) * 2012-02-13 2018-12-26 삼성전자주식회사 통신 기기에서 라디오 주파수 회로에 대한 켈리브레이션을 지원하는 장치 및 방법
JP5876752B2 (ja) 2012-03-12 2016-03-02 ルネサスエレクトロニクス株式会社 半導体装置及び携帯端末装置
US9098302B2 (en) * 2012-06-28 2015-08-04 Intel Corporation System and apparatus to improve boot speed in serial peripheral interface system using a baseboard management controller
US9171170B2 (en) * 2012-08-17 2015-10-27 Broadcom Corporation Data and key separation using a secure central processing unit
US9092233B2 (en) * 2012-09-07 2015-07-28 Apple Inc. Accessory booting over USB
CN102970414B (zh) * 2012-10-30 2015-02-11 广东欧珀移动通信有限公司 一种基于Android系统的手机密码保护方法
US8572757B1 (en) * 2012-11-30 2013-10-29 nCrypted Cloud LLC Seamless secure private collaboration across trust boundaries
US9015858B2 (en) 2012-11-30 2015-04-21 nCrypted Cloud LLC Graphical user interface for seamless secure private collaboration
US9703697B2 (en) 2012-12-27 2017-07-11 Intel Corporation Sharing serial peripheral interface flash memory in a multi-node server system on chip platform environment
US9773107B2 (en) 2013-01-07 2017-09-26 Optio Labs, Inc. Systems and methods for enforcing security in mobile computing
US9230112B1 (en) * 2013-02-23 2016-01-05 Xilinx, Inc. Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis
US9075995B2 (en) * 2013-03-11 2015-07-07 Microsoft Technology Licensing, Llc Dynamically loaded measured environment for secure code launch
EP2974210A1 (en) 2013-03-13 2016-01-20 nCrypted Cloud LLC Multi-identity for secure file sharing
US20140283136A1 (en) * 2013-03-13 2014-09-18 Optio Labs, Inc. Systems and methods for securing and locating computing devices
US9141373B2 (en) * 2013-07-31 2015-09-22 Arista Networks, Inc. System and method for accelerated software upgrades
US9542558B2 (en) * 2014-03-12 2017-01-10 Apple Inc. Secure factory data generation and restoration
US9075508B1 (en) 2014-04-30 2015-07-07 Grandios Technologies, Llc Next application suggestions on a user device
US8838071B1 (en) 2014-04-30 2014-09-16 Oto Technologies Llc Secure communications smartphone system
JP6188633B2 (ja) * 2014-05-26 2017-08-30 Kddi株式会社 コンピュータシステム、コンピュータ、半導体装置、情報処理方法およびコンピュータプログラム
US9420477B2 (en) 2014-06-04 2016-08-16 Grandios Technologies, Llc Signal strength management
US9590984B2 (en) 2014-06-04 2017-03-07 Grandios Technologies, Llc Smartphone fingerprint pass-through system
US9323421B1 (en) 2014-06-04 2016-04-26 Grandios Technologies, Llc Timer, app, and screen management
US9509789B2 (en) 2014-06-04 2016-11-29 Grandios Technologies, Llc Managing mood data on a user device
US9161193B1 (en) 2014-06-04 2015-10-13 Grandios Technologies, Llc Advanced telephone management
US9491562B2 (en) 2014-06-04 2016-11-08 Grandios Technologies, Llc Sharing mobile applications between callers
US9377939B1 (en) 2014-06-04 2016-06-28 Grandios Technologies Application player management
US9509799B1 (en) 2014-06-04 2016-11-29 Grandios Technologies, Llc Providing status updates via a personal assistant
US9619159B2 (en) 2014-06-04 2017-04-11 Grandios Technologies, Llc Storage management system
US9391988B2 (en) 2014-06-04 2016-07-12 Grandios Technologies, Llc Community biometric authentication on a smartphone
US9584645B2 (en) 2014-06-04 2017-02-28 Grandios Technologies, Llc Communications with wearable devices
US9516467B1 (en) 2014-06-04 2016-12-06 Grandios Technologies, Llc Mobile device applications associated with geo-locations
US9078098B1 (en) 2014-06-04 2015-07-07 Grandios Technologies, Llc Geo-fencing based functions
US9395754B2 (en) 2014-06-04 2016-07-19 Grandios Technologies, Llc Optimizing memory for a wearable device
US9294575B1 (en) 2014-06-04 2016-03-22 Grandios Technologies, Inc. Transmitting appliance-specific content to a user device
US9538062B2 (en) 2014-06-04 2017-01-03 Grandios Technologies, Llc Camera management system
US9648452B1 (en) 2014-06-05 2017-05-09 ProSports Technologies, LLC Wireless communication driven by object tracking
US10290067B1 (en) 2014-06-05 2019-05-14 ProSports Technologies, LLC Wireless concession delivery
US9635506B1 (en) 2014-06-05 2017-04-25 ProSports Technologies, LLC Zone based wireless player communications
US10592924B1 (en) 2014-06-05 2020-03-17 ProSports Technologies, LLC Managing third party interactions with venue communications
US9711146B1 (en) 2014-06-05 2017-07-18 ProSports Technologies, LLC Wireless system for social media management
US8995972B1 (en) 2014-06-05 2015-03-31 Grandios Technologies, Llc Automatic personal assistance between users devices
KR102277666B1 (ko) * 2014-06-30 2021-07-15 삼성전자 주식회사 영상처리장치 및 그 제어방법
WO2016007970A1 (en) 2014-07-11 2016-01-14 ProSports Technologies, LLC Whistle play stopper
WO2016007969A1 (en) 2014-07-11 2016-01-14 ProSports Technologies, LLC Playbook processor
US9760572B1 (en) 2014-07-11 2017-09-12 ProSports Technologies, LLC Event-based content collection for network-based distribution
WO2016007972A1 (en) 2014-07-11 2016-01-14 ProSports Technologies, LLC Ticket upsell system
US9305441B1 (en) 2014-07-11 2016-04-05 ProSports Technologies, LLC Sensor experience shirt
US9724588B1 (en) 2014-07-11 2017-08-08 ProSports Technologies, LLC Player hit system
US9398213B1 (en) 2014-07-11 2016-07-19 ProSports Technologies, LLC Smart field goal detector
US9498678B2 (en) 2014-07-11 2016-11-22 ProSports Technologies, LLC Ball tracker camera
US9965938B1 (en) 2014-07-11 2018-05-08 ProSports Technologies, LLC Restroom queue management
WO2016007962A1 (en) 2014-07-11 2016-01-14 ProSports Technologies, LLC Camera feed distribution from event venue virtual seat cameras
US9343066B1 (en) 2014-07-11 2016-05-17 ProSports Technologies, LLC Social network system
WO2016007967A1 (en) 2014-07-11 2016-01-14 ProSports Technologies, LLC Ball tracker snippets
US9474933B1 (en) 2014-07-11 2016-10-25 ProSports Technologies, LLC Professional workout simulator
US9655027B1 (en) 2014-07-11 2017-05-16 ProSports Technologies, LLC Event data transmission to eventgoer devices
US9892371B1 (en) 2014-07-28 2018-02-13 ProSports Technologies, LLC Queue information transmission
US9729644B1 (en) 2014-07-28 2017-08-08 ProSports Technologies, LLC Event and fantasy league data transmission to eventgoer devices
US9742894B2 (en) 2014-08-25 2017-08-22 ProSports Technologies, LLC Disposable connectable wireless communication receiver
US9607497B1 (en) 2014-08-25 2017-03-28 ProSports Technologies, LLC Wireless communication security system
US9699523B1 (en) 2014-09-08 2017-07-04 ProSports Technologies, LLC Automated clip creation
US10264175B2 (en) 2014-09-09 2019-04-16 ProSports Technologies, LLC Facial recognition for event venue cameras
US9417090B2 (en) 2014-09-11 2016-08-16 ProSports Technologies, LLC System to offer coupons to fans along routes to game
US9608807B2 (en) * 2014-12-12 2017-03-28 Gn Hearing A/S Hearing device with communication protection and related method
US9740866B2 (en) * 2015-06-10 2017-08-22 The Boeing Company Automatic measuring boot process using an automatic measuring processor coupled to a memory
CN106331297A (zh) * 2015-06-30 2017-01-11 联芯科技有限公司 智能手机架构及其文件信息读取和更新方法
US20170010874A1 (en) * 2015-07-06 2017-01-12 Cisco Technology, Inc. Provisioning storage devices in a data center
KR101696900B1 (ko) * 2015-07-27 2017-01-17 한길씨앤씨 주식회사 임베디드 시스템의 실행코드 암호화 및 복호화장치 및 이를 이용하여 정보유출 방지기능을 가지는 임베디드 시스템
TWI571738B (zh) * 2015-08-13 2017-02-21 瑞昱半導體股份有限公司 儲存裝置、加快啟動程序的方法與儲存控制器
US10312747B2 (en) * 2015-09-10 2019-06-04 Cpg Technologies, Llc Authentication to enable/disable guided surface wave receive equipment
KR102385552B1 (ko) * 2015-12-29 2022-04-12 삼성전자주식회사 시스템-온-칩 및 이를 포함하는 전자 장치
US10303884B2 (en) * 2016-09-22 2019-05-28 Apple Inc. Countersigning updates for multi-chip devices
CN106656502B (zh) * 2016-09-26 2020-09-01 上海兆芯集成电路有限公司 计算机系统及安全执行的方法
US20180150125A1 (en) * 2016-11-28 2018-05-31 Qualcomm Incorporated Wifi memory power minimization
US10984136B2 (en) 2017-04-21 2021-04-20 Micron Technology, Inc. Secure memory device with unique identifier for authentication
TWI645296B (zh) 2017-10-17 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體操作方法
FR3079044B1 (fr) * 2018-03-14 2020-05-22 Ledger Traitement securise de donnees
CN108599930B (zh) * 2018-04-02 2021-05-14 湖南国科微电子股份有限公司 固件加解密系统与方法
US10771264B2 (en) 2018-10-10 2020-09-08 Hewlett Packard Enterprise Development Lp Securing firmware
US10841160B2 (en) 2018-11-08 2020-11-17 Arista Networks, Inc. System and method for processing messages during a reboot of a network device
CN112334902A (zh) * 2019-01-04 2021-02-05 百度时代网络技术(北京)有限公司 建立主机系统与数据处理加速器之间的安全信息交换信道的方法
US11288373B2 (en) * 2019-04-11 2022-03-29 Baidu Usa Llc Boot failure recovery scheme for hardware-based system of autonomous driving vehicles
EP3748523A1 (en) * 2019-06-06 2020-12-09 Secure Thingz Limited Multiprocessor system
KR20200140560A (ko) * 2019-06-07 2020-12-16 삼성전자주식회사 전자 장치 및 그 시스템
EP3809259B1 (en) * 2019-10-16 2023-08-16 NXP USA, Inc. Network node firmware update
US11809611B2 (en) * 2020-02-24 2023-11-07 Microsoft Technology Licensing, Llc Protecting device detachment with bus encryption
US11431510B1 (en) * 2020-04-30 2022-08-30 Wells Fargo Bank, N.A. Code-sign white listing (CSWL)
US11586446B1 (en) * 2020-05-20 2023-02-21 Marvell Asia Pte Ltd System and methods for hardware-based PCIe link up based on post silicon characterization
JP6843346B1 (ja) * 2020-06-11 2021-03-17 株式会社Osk 情報処理装置,コンピュータの制御方法及び制御プログラム
CN111988146B (zh) * 2020-07-31 2022-07-12 新华三信息技术有限公司 一种身份验证方法、装置、设备及机器可读存储介质
US11531325B2 (en) 2020-09-10 2022-12-20 Fisher-Rosemount Systems, Inc. Node management of nodal communication networks for highly versatile field devices in control and automation systems
US11256238B1 (en) 2020-09-10 2022-02-22 Fisher-Rosemount Systems, Inc. Network resource management in a communication network for control and automation systems
US11824934B2 (en) * 2020-09-10 2023-11-21 Fisher-Rosemount Systems, Inc. Security systems for use in implementing highly-versatile field devices and communication networks in control and automation systems
US11824650B2 (en) 2020-09-10 2023-11-21 Fisher-Rosemount Systems, Inc. Publish-subscribe communication architecture for highly-versatile field devices in control and automation systems
TWI763314B (zh) 2021-02-18 2022-05-01 瑞昱半導體股份有限公司 影像系統單晶片、包含其之影像擷取系統及影像擷取方法
CN114979416A (zh) * 2021-02-25 2022-08-30 瑞昱半导体股份有限公司 图像系统单芯片、包含其的图像获取系统及图像获取方法
US20210328779A1 (en) * 2021-06-25 2021-10-21 Intel Corporation Method and apparatus for fast symmetric authentication and session key establishment
US11797679B2 (en) * 2021-07-28 2023-10-24 Dell Products, L.P. Trust verification system and method for a baseboard management controller (BMC)
CN114448779A (zh) * 2021-12-30 2022-05-06 锐凌无线有限责任公司 无线通信模组及其功能恢复方法、电子设备和存储介质
CN115470172A (zh) * 2022-08-26 2022-12-13 百富计算机技术(深圳)有限公司 Pos机中双cpu的通信方法、装置、系统及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192529A1 (en) 2006-02-15 2007-08-16 Samsung Electronics Co., Ltd. Multi-processor systems and methods thereof
US20080165952A1 (en) 2007-01-07 2008-07-10 Michael Smith Secure Booting A Computing Device
US20100023778A1 (en) 2008-07-28 2010-01-28 Jerry Hauck Ticket Authorized Secure Installation And Boot

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1912885B (zh) * 1995-02-13 2010-12-22 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
JPH09282168A (ja) * 1996-04-11 1997-10-31 Sony Corp コンピュータ装置
FR2761698B1 (fr) 1997-04-04 1999-05-07 Pasteur Merieux Serums Vacc Methode de titrage d'une composition virale complexe
US6049854A (en) 1997-05-09 2000-04-11 Vlsi Technology, Inc. System and method for sharing physical memory among distinct computer environments
JP2001077805A (ja) * 1999-04-07 2001-03-23 Sony Corp セキュリティ装置、メモリ装置、データ処理装置および方法
US6820203B1 (en) * 1999-04-07 2004-11-16 Sony Corporation Security unit for use in memory card
US6449720B1 (en) 1999-05-17 2002-09-10 Wave Systems Corp. Public cryptographic control unit and system therefor
WO2001023987A1 (en) * 1999-09-30 2001-04-05 M-Systems Flash Disk Pioneers Ltd. Removable, active, personal storage device, system and method
US7111141B2 (en) * 2000-10-17 2006-09-19 Igt Dynamic NV-RAM
WO2002095581A2 (en) * 2001-05-19 2002-11-28 International Business Machines Corporation Electronic system and method for booting of an electronic system
US7352868B2 (en) 2001-10-09 2008-04-01 Philip Hawkes Method and apparatus for security in a data processing system
US7290080B2 (en) 2002-06-27 2007-10-30 Nazomi Communications Inc. Application processors and memory architecture for wireless applications
US7917673B2 (en) 2003-09-20 2011-03-29 Samsung Electronics Co., Ltd. Communication device and method having a shared local memory
US6987961B1 (en) 2004-06-28 2006-01-17 Neomagic Corp. Ethernet emulation using a shared mailbox between two processors in a feature phone
US7409539B2 (en) 2004-08-06 2008-08-05 International Business Machines Corporation System design and code update strategy to implement a self-healing, self-verifying system
US9489496B2 (en) * 2004-11-12 2016-11-08 Apple Inc. Secure software updates
US7822209B2 (en) 2006-06-06 2010-10-26 Red Hat, Inc. Methods and systems for key recovery for a token
WO2008001671A1 (fr) * 2006-06-27 2008-01-03 Nec Corporation Système multiprocesseur et terminal portable l'utilisant
US20080162952A1 (en) * 2007-01-03 2008-07-03 John David Landers Managing power usage in a data processing system by changing the clock speed of a processing unit
JP4842183B2 (ja) * 2007-03-20 2011-12-21 Kddi株式会社 ソフトウェア無線端末および端末管理装置
US20080282022A1 (en) 2007-05-09 2008-11-13 Broadcom Corporation, A California Corporation Partially storing software functions that are not expected to change over time in ROM instead of RAM
KR20090008519A (ko) * 2007-07-18 2009-01-22 삼성전자주식회사 공유 레지스터를 갖는 멀티패쓰 억세스블 반도체 메모리장치 및 그에 따른 공유 레지스터 운영방법
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
KR20100034415A (ko) 2008-09-24 2010-04-01 삼성전자주식회사 메모리 링크 아키텍쳐를 활용한 부팅기능을 갖는 멀티 프로세서 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192529A1 (en) 2006-02-15 2007-08-16 Samsung Electronics Co., Ltd. Multi-processor systems and methods thereof
US20080165952A1 (en) 2007-01-07 2008-07-10 Michael Smith Secure Booting A Computing Device
US20100023778A1 (en) 2008-07-28 2010-01-28 Jerry Hauck Ticket Authorized Secure Installation And Boot

Also Published As

Publication number Publication date
CA2795180A1 (en) 2011-10-27
AU2011243007B2 (en) 2014-02-20
CN102859963A (zh) 2013-01-02
EP2378454A2 (en) 2011-10-19
CN102859963B (zh) 2015-11-25
JP2013531284A (ja) 2013-08-01
AU2011243007A1 (en) 2012-11-01
WO2011133401A1 (en) 2011-10-27
US20110258426A1 (en) 2011-10-20
US8589667B2 (en) 2013-11-19
RU2012146367A (ru) 2014-05-10
TWI454935B (zh) 2014-10-01
KR20130027498A (ko) 2013-03-15
JP5576983B2 (ja) 2014-08-20
CA2795180C (en) 2017-01-03
EP2378454A3 (en) 2013-03-27
RU2542930C2 (ru) 2015-02-27
TW201214145A (en) 2012-04-01

Similar Documents

Publication Publication Date Title
KR101434080B1 (ko) 논로컬 저장 장치로부터의 서브시스템의 안전한 부팅 및 구성
US8560820B2 (en) Single security model in booting a computing device
US9904557B2 (en) Provisioning of operating systems to user terminals
JP4971466B2 (ja) コンピューティング・デバイスの安全なブート
US8789037B2 (en) Compatible trust in a computing device
JP5852265B2 (ja) 計算装置、コンピュータプログラム及びアクセス許否判定方法
US9270466B2 (en) System and method for temporary secure boot of an electronic device
US8239688B2 (en) Securely recovering a computing device
CN102165457B (zh) 票券授权的安全安装和引导
CN108733986B (zh) 用于使用装置认证来保护数字内容的方法和设备
US20090259855A1 (en) Code Image Personalization For A Computing Device
ES2819449T3 (es) Cripto servicios en remoto que utilizan TPM de servidor
WO2008085367A1 (en) Trusting an unverified code image in a computing device
JP2010537270A (ja) 暗黙型自己インストールセキュリティ環境のための仮想トークン
US20130073840A1 (en) Apparatus and method for generating and managing an encryption key
US20180144142A1 (en) Secure Data Protection and Encryption Techniques for Computing Devices and Information Storage

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 5