KR101476948B1 - 변형 억제 부팅 시스템 및 방법 - Google Patents

변형 억제 부팅 시스템 및 방법 Download PDF

Info

Publication number
KR101476948B1
KR101476948B1 KR1020137021362A KR20137021362A KR101476948B1 KR 101476948 B1 KR101476948 B1 KR 101476948B1 KR 1020137021362 A KR1020137021362 A KR 1020137021362A KR 20137021362 A KR20137021362 A KR 20137021362A KR 101476948 B1 KR101476948 B1 KR 101476948B1
Authority
KR
South Korea
Prior art keywords
password
proof
firmware
boot
verifier
Prior art date
Application number
KR1020137021362A
Other languages
English (en)
Other versions
KR20130114726A (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 KR20130114726A publication Critical patent/KR20130114726A/ko
Application granted granted Critical
Publication of KR101476948B1 publication Critical patent/KR101476948B1/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/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
    • G06F21/80Protecting 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 in storage media based on magnetic or optical technology, e.g. disks with sectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/72Protecting 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 cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

변형 억제 부팅이라고 하는, 풀 디스크 암호화를 사용하는 암호화된 저장 매체를 가진 컴퓨팅 디바이스를 부팅하기 위한 시스템들, 방법들, 및 비일시적인 컴퓨터 판독 가능 저장 매체가 기술된다. 본 시스템은 암호화되지 않은 저장 매체로부터 커널 캐시 및 커널 캐시 다이제스트를 검색하고, 인증서들 및 커널 캐시 다이제스트에 기초하여 커널 캐시의 진정성을 검증한다. 커널 캐시가 진짜이면, 운영 체제의 개시 및 실행이 수행된다. 일 실시예에서, 본 시스템은 패스워드 검증기 및 패스워드 증명을 사용해서 변형 억제 부팅을 불가하게 하라는 요청의 진정성을 검증한다.

Description

변형 억제 부팅 시스템 및 방법{SYSTEM AND METHOD FOR TAMPER-RESISTANT BOOTING}
<관련 출원 상호 참조>
본 출원은, 그 전체가 본 명세서에서 참조용으로 인용된, 2011년 1월 14일에 출원된, 미국 특허 출원 일련 번호 제13/007,529호에 대한 우선권을 주장한다.
본 발명은 암호화에 관한 것으로, 특히 컴퓨팅 시스템의 변형 억제 부팅에 관한 것이다.
다수의 컴퓨팅 디바이스들은 현재 어느 정도의 정보 보호를 요구한다. 암호 기법(cryptography)은 컴퓨팅 디바이스들을 보호하는데 사용되는 한 방법이다. 암호 기법은 정보의 암호화 및 해독 둘 다에 관련된다. 암호화는 이해할 수 있는 정보(평문)를 이해할 수 없는 정보(암호문)로 변경하는 프로세스이고, 해독은 암호문을 다시 평문으로 변경하는 프로세스이다.
컴퓨팅 디바이스들은, 작은 집합들로부터 큰 블록들의 데이터까지, 다양한 크기들의 데이터를 암호화할 수 있다. 풀 디스크 암호화(FDE)는 컴퓨팅 디바이스에서 전체 디스크 볼륨을 암호화하는 방법이다. 디스크 볼륨이 액세스될 수 있기 전에 전체 디스크 볼륨의 해독이 필요하다. 모든 파일들(임시 파일들을 포함함)이 암호화되기에, 풀 디스크 암호화는 파일-레벨 암호화보다 더 안전하다고 생각된다.
FDE가 파일-레벨 암호화보다 더 안전하다고 생각되더라도, FDE가 사용되는 시스템들은 여전히 공격에 취약하다. 하나의 간단한 공격으로, 해커는 정상 부팅 시퀀스를 실행하는 대신 해커 자신의 악성 코드로부터 부팅하도록 컴퓨팅 디바이스의 부팅 시퀀스를 변경할 수 있다. FDE 시스템들은 FDE 볼륨을 잠금 해제(unlock)하기 위해 부팅 시간에 패스워드에 대해 사용자에게 프롬프트해야만 한다. 해커의 악성 코드는 FDE 패스워드를 요청하지만, FDE 볼륨을 잠금 해제하기 위해 그 패스워드를 사용하는 대신 그것을 훔치는 동일하게 보이는 스크린(identical looking screen)을 디스플레이할 수 있다. 사용자가 패스워드를 입력할 때, 해커는 그것을 기록(log)하고 컴퓨팅 디바이스에 대한 액세스를 획득한다. 따라서, 해커는 사용자의 패스워드를 몰래 훔친다. 부터(booter)로부터 운영 체제 커널까지 신뢰 체인 없이, 이러한 공격들은 풀 디스크 암호화된 컴퓨팅 디바이스들조차도 무력화할 수 있다.
본 발명의 추가 특징들 및 장점들이 이하의 설명에 기재될 것이고, 부분적으로 설명으로부터 명백할 것이며, 또는 본 명세서에 기술된 원리들의 실시에 의해 학습될 수 있다. 본 발명의 특징들 및 장점들은 특히 첨부된 청구항들에 언급된 수단들 및 조합들에 의해 실현 및 획득될 수 있다. 본 발명의 이들 및 여타 특징들은 이하의 설명 및 첨부된 청구항들로부터 더 충분히 명백해질 것이며, 또는 본 명세서에 기술된 원리들의 실시에 의해 학습될 수 있다.
변형 억제 부팅이라고 하는, 풀 디스크 암호화를 사용하는 암호화된 저장 매체를 가진 컴퓨팅 디바이스를 부팅하기 위한 시스템들, 방법들, 및 비일시적인 컴퓨터 판독 가능 저장 매체가 기술된다. 상술된 공격들을 처리하는 한 방법을 변형 억제 부팅이라고 한다. 컴퓨팅 디바이스가 FDE 등의 높은 보안 모드(high-security mode)를 사용할 때, 더 낮은 보안 모드들에서 동작할 때보다 해커가 부팅 시퀀스를 변경하기가 더 어려워야 한다. 그러나, FDE 가능(FDE-enabled) 저장 매체를 가진 컴퓨팅 디바이스에서조차도, 운영 체제 커널은 암호화되지 않는다. 이는 부팅 환경이 FDE 볼륨들을 해독하기에 충분히 복잡하지 않기 때문이다. 대신, 부팅 환경은 해독을 위해 운영 체제 커널에 의존해야만 한다. 암호화되지 않은 운영 체제 커널은, 어태커(attacker)에 의해 악성 패스워드-절도 코드로 몰래 대체될 수 있기에, 전체 FDE 보안 모델에서 명백히 약한 링크이다. 컴퓨팅 디바이스가 이러한 결함을 다루는 한 방법은 펌웨어로부터 운영 체제의 커널까지 신뢰 체인을 설정함으로써 부팅 시퀀스의 진정성(authenticity)을 검증하는 것이다. 도 1은 본 명세서에 기술된 방법들을 실시할 수 있는 일례의 시스템(100)을 도시한다. 시스템(100)은 사용자로부터 FDE 가능 암호화된 저장 매체의 볼륨 키와 연관된 인증서들을 부팅 시간에 수신한다. 시스템은 저장 매체로부터 암호화되지 않은 커널 및 암호화되지 않은 커널 캐시 다이제스트를 검색한다. 그 후, 시스템은 검색된 커널 캐시 다이제스트를 계산된 다이제스트와 비교함으로써 커널 캐시가 진짜임을 검증한다. 커널 캐시가 진짜라고 시스템이 결정하면, 운영 체제의 개시 및 실행이 수행된다. 커널 캐시가 진짜가 아니면, 시스템은 오류를 생성한다.
본 방법을 실시하는 시스템은 사용자로부터 수신된 풀 디스크 암호화 패스워드에 기초하여 볼륨 키를 먼저 생성함으로써 변형 억제 부팅 프로세스를 개시한다. 시스템은 저장 매체를 볼륨 키로 암호화해서, 풀 디스크 암호화된 저장 매체를 산출한다. 그 후, 시스템은 커널 캐시를 풀 디스크 암호화 볼륨 키로 암호화해서, 커널 캐시 다이제스트를 산출하며, 시스템은, 커널 캐시 자체와 함께, 커널 캐시 다이제스트를 암호화되지 않은 저장 매체 또는 달리 암호화된 저장 매체의 암호화되지 않은 부분에 저장한다. 시스템이 부팅할 때, 저장된 커널 캐시 다이제스트 및 계산된 다이제스트에 기초하여 커널 캐시의 완전성(integrity)을 검증한다.
시스템은 시스템을 펌웨어로 부팅하고, 펌웨어를 통해, 부터의 완전성을 확인함으로써 운영 체제가 변형되지 않았음을 검증한다. 시스템은 제어를 부터로 넘기며, 부터는 저장된 커널 캐시 다이제스트 및 계산된 다이제스트에 기초하여 운영 체제의 커널 캐시를 확인한다. 운영 체제가 변형되지 않았다고 시스템이 결정하면, 개시 및 실행 및 임의의 나머지 부팅 태스크들을 위해 제어를 운영 체제에 넘긴다.
일 실시예에서, 시스템은, 펌웨어 레벨에서, 패스워드 검증기(password verifier)를 생성하고 이를 패스워드 증명(password proof)과 비교함으로써 변형 억제 부팅을 불가하게 한다. 시스템은 솔트 값(salt value) 및 패스워드에 다수 회 반복해서 암호화 알고리즘을 적용함으로써 패스워드 검증기를 생성한다. 시스템이 사용자로부터 변형 억제 부팅을 불가하게 하라는 요청을 수신하면, 운영 체제는 부분적인 패스워드 증명을 생성한다. 부분적인 패스워드 증명의 생성은 요청 패스워드 및 솔트 값에 반복 횟수 중 일부분의 횟수를 반복해서 암호화 알고리즘을 적용한 후, 컴퓨팅 디바이스를 재부팅함으로써 달성된다. 시스템이 재부팅되면, 펌웨어는 부분적인 패스워드 증명을 검색하고, 반복 횟수 중 나머지 일부분의 횟수를 반복해서 암호화 알고리즘을 실행하여 완전한 패스워드 증명을 산출한다. 패스워드 증명이 패스워드 검증기와 일치하면, 시스템은 변형 억제 부팅을 불가하게 한다. 이러한 방법으로, 시스템은 변형 억제 부팅을 불가하게 하라는 요청을 인증한다.
또한, 시스템은 패스워드 검증기들을 저장하는 데이터베이스를 설정함으로써 변형 억제 부팅을 초기화한다. 운영 체제는 변형 억제 부팅을 불가하게 하도록 허가받은 사용자들의 리스트를 생성하여, 리스트를 펌웨어에 송신한다. 운영 체제는 각각의 사용자에 대한 패스워드 검증기들을 생성하여 이들을 펌웨어에 또한 송신한다. 펌웨어는 이 데이터베이스를 비휘발성 랜덤 액세스 메모리(NVRAM)에 저장한다. 또한, 시스템은 시스템 솔트를 펌웨어에서 생성하여 차후 사용되도록 시스템 솔트를 NVRAM에 저장한다. 본 명세서에 기술된 원리들은 풀 디스크 암호화를 사용하는 암호화된 저장 매체를 가진 컴퓨팅 디바이스에 적용된다.
본 발명의 상술된 및 다른 장점들 및 특징들이 획득될 수 있는 방식을 기술하기 위해, 간략하게 상술된 본 원리들의 더 특정한 설명이 첨부 도면들에 도시된 특정 실시예들을 참조해서 제공될 것이다. 이 도면들은 본 발명의 오직 일례의 실시예들을 도시하며 따라서 범위를 제한하는 것으로 간주되어서는 안 된다는 것을 이해하면서, 본 명세서의 원리들은 첨부 도면들을 사용해서 추가적인 명세 사항 및 세부 사항으로 기술 및 설명된다.
도 1은 일례의 시스템 실시예를 도시한다.
도 2는 변형 억제 부팅을 위한 일례의 방법 실시예를 도시한다.
도 3은 커널 캐시의 인증을 도시한다.
도 4는 일례의 시스템 실시예의 설정을 도시한다.
도 5는 변형 억제 부팅을 설정하기 위한 일례의 방법 실시예를 도시한다.
도 6은 변형 억제 부팅을 불가하게 하기 위한 일례의 방법 실시예를 도시한다.
도 7은 패스워드 검증기의 생성을 도시한다.
도 8은 패스워드 검증기의 생성을 위한 일례의 논리 흐름을 도시한다.
도 9는 부분적인 패스워드 증명의 생성을 도시한다.
도 10은 완전한 패스워드 증명의 생성을 도시한다.
도 11은 부분적인 패스워드 증명을 생성하기 위한 일례의 논리 흐름을 도시한다.
도 12는 완전한 패스워드 증명을 생성하기 위한 일례의 논리 흐름을 도시한다.
도 13은 풀 디스크 암호화의 설정을 도시한다.
도 14는 풀 디스크 암호화의 설정을 위한 일례의 방법 실시예를 도시한다.
본 발명의 각종 실시예들이 상세히 후술된다. 특정 구현들이 기술되지만, 이는 단지 설명을 위해 기술된 것임을 알아야만 한다. 당업자는 다른 컴포넌트들 및 구성들이 본 발명의 원리 및 범위로부터 벗어나지 않은 채로 사용될 수 있음을 알 것이다.
본 발명은 부팅 시퀀스의 진정성을 검증할 본 기술 분야의 필요성을 다룬다. 풀 디스크 암호화를 사용하는 암호화된 저장 매체를 가진 컴퓨팅 디바이스를 부팅하는 시스템, 방법, 및 비일시적인 컴퓨터 판독 가능 저장 매체가 기술된다. 본 명세서에 기술된 개념들을 실시하는데 사용될 수 있는 기본 범용 시스템 또는 컴퓨팅 디바이스의 설명이 도 1에 제공된다. 풀 디스크 암호화(FDE)를 사용하는 컴퓨팅 디바이스에 대한 변형 억제 부팅을 설정, 관리, 사용, 및 제거하기 위한 방법들의 더 상세한 설명이 후술될 것이다. 이 변형들은 각종 실시예들이 기재됨에 따라 본 명세서에 기술된다. 본 설명은 이제 도 1로 돌아간다.
도 1을 참조하면, 일례의 시스템(100)은, 프로세싱 유닛(CPU 또는 프로세서)(120), 및 판독 전용 메모리(ROM)(140) 및 랜덤 액세스 메모리(RAM)(150) 등의 시스템 메모리(130)를 포함하는 각종 시스템 컴포넌트들을 프로세서(120)에 연결하는 시스템 버스(110)를 포함하는, 범용 컴퓨팅 디바이스(100)를 포함한다. 시스템(100)은 프로세서(120)와 직접 연결되거나, 매우 근접해서 연결되거나, 또는 프로세서(120)의 일부로서 통합된 고속 메모리의 캐시(122)를 포함할 수 있다. 시스템(100)은 프로세서(120)에 의한 신속한 액세스를 위해 데이터를 메모리(130) 및/또는 저장 디바이스(160)로부터 캐시로 복사한다. 이러한 방법으로, 캐시는 데이터를 기다리는 동안 프로세서(120) 지연들을 방지하는 성능 향상(performance boost)을 제공한다. 이들 및 여타 모듈들은 각종 동작들을 수행하게 프로세서(120)를 제어하거나 또는 프로세서(120)를 제어하도록 구성될 수 있다. 다른 시스템 메모리(130)가 또한 사용될 수 있다. 메모리(130)는 상이한 성능 특성들을 가진 다수의 상이한 타입들의 메모리를 포함할 수 있다. 본 발명은 하나보다 더 많은 프로세서(120)를 가진 컴퓨팅 디바이스(100)에서 또는 더 큰 프로세싱 기능을 제공하기 위해 함께 네트워크 연결된 컴퓨팅 디바이스들의 그룹 또는 클러스터에서 동작할 수 있음을 알 수 있다. 프로세서(120)는, 소프트웨어 명령들이 실제 프로세서 설계에 통합된 특수 목적 프로세서뿐만 아니라 프로세서(120)를 제어하도록 구성된, 저장 디바이스(160)에 저장된 모듈 1(162), 모듈 2(164), 및 모듈 3(166) 등의 소프트웨어 모듈 또는 하드웨어 모듈 및 임의의 범용 프로세서를 포함할 수 있다. 프로세서(120)는, 본래, 다수의 코어들 또는 프로세서들, 버스, 메모리 컨트롤러, 캐시 등을 포함하는, 완전한 자립 컴퓨팅 시스템일 수 있다. 멀티-코어 프로세서는 대칭이거나 또는 비대칭일 수 있다.
시스템 버스(110)는 각종 버스 아키텍처들 중 임의의 버스 아키텍처를 사용하는 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 및 로컬 버스를 포함하는 수개의 타입들의 버스 구조들 중 임의의 버스 구조일 수 있다. ROM(140) 등에 저장된 기본 입력/출력(BIOS)은, 예를 들어, 개시 중에, 컴퓨팅 디바이스(100) 내의 소자들 간에 정보를 전송하는 것을 돕는 기본 루틴을 제공할 수 있다. 컴퓨팅 디바이스(100)는 하드 디스크 드라이브, 자기 디스크 드라이브, 광 디스크 드라이브, 테이프 드라이브 등의 저장 디바이스들(160)을 더 포함한다. 저장 디바이스(160)는 프로세서(120)를 제어하기 위한 소프트웨어 모듈들(162, 164, 166)을 포함할 수 있다. 다른 하드웨어 또는 소프트웨어 모듈들이 고려된다. 저장 디바이스(160)는 드라이브 인터페이스에 의해 시스템 버스(110)에 연결된다. 드라이브들 및 연관된 컴퓨터 판독 가능 저장 매체는 컴퓨팅 디바이스(100)를 위한 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 및 다른 데이터의 비휘발성 스토리지를 제공한다. 일 양상에서, 특정 기능을 실행하는 하드웨어 모듈은 기능을 수행하기 위해 프로세서(120), 버스(110), 디스플레이(170) 등의 필요한 하드웨어 컴포넌트들과 관련하여 비일시적인 컴퓨터 판독 가능 매체에 저장된 소프트웨어 컴포넌트를 포함한다. 기본 컴포넌트들은 당업자에게 공지되어 있으며, 예를 들어, 디바이스(100)가 소형의 핸드헬드 컴퓨팅 디바이스인지, 데스크탑 컴퓨터인지, 또는 컴퓨터 서버인지 등, 디바이스의 타입에 따라, 적합한 변형들이 고려된다.
본 명세서에 기술된 일례의 실시예가 하드 디스크(160)를 사용하지만, 자기 카세트, 플래시 메모리 카드들, 디지털 다기능 디스크들, 카트리지들, 랜덤 액세스 메모리들(RAMs)(150), 판독 전용 메모리(ROM)(140), 비트 스트림을 포함하는 케이블 또는 무선 신호 등의, 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 다른 타입들의 컴퓨터 판독 가능 매체가 또한 일례의 운영 환경에서 사용될 수 있음을 당업자는 알 것이다. 비일시적인 컴퓨터 판독 가능 저장 매체는 에너지, 반송파 신호들, 전자파들, 및 신호 자체 등의 매체를 명백히 배제한다.
컴퓨팅 디바이스(100)와의 사용자 상호 작용을 가능케 하기 위해, 입력 디바이스(190)는 음성용 마이크, 제스처 또는 그래픽 입력을 위한 터치-센서티브 스크린, 키보드, 마우스, 움직임 입력, 음성 등의 임의의 수의 입력 메커니즘들을 나타낸다. 출력 디바이스(170)도 당업자에게 공지된 다수의 출력 메커니즘들 중 하나의 또는 그 이상의 메커니즘들일 수 있다. 일부 실례들에서, 다모드 시스템들은 사용자가 컴퓨팅 디바이스(100)와 통신하도록 다수의 타입들의 입력을 제공할 수 있게 한다. 통신 인터페이스(180)는 일반적으로 사용자 입력 및 시스템 출력을 통제 및 관리한다. 임의의 특정 하드웨어 구성에서의 동작에 제한이 없으므로, 여기서 기본 피처들은 개발되는 대로 향상된 하드웨어 또는 펌웨어 구성들로 쉽게 대체될 수 있다.
설명의 명료성을 위해, "프로세서" 또는 프로세서(120)로서 라벨이 붙은 기능 블록들을 포함하는 개별 기능 블록들을 포함하는 일례의 시스템 실시예가 제시된다. 이러한 블록들이 나타내는 기능들은, 범용 프로세서에서 실행중인 소프트웨어와 동등하게 동작하도록 특별히 만들어진, 프로세서(120) 등의, 하드웨어, 및 소프트웨어를 실행할 수 있는 하드웨어를 포함하지만, 이들로만 제한되지 않은, 공유 또는 전용 하드웨어를 사용해서 제공될 수 있다. 예를 들어, 도 1에 제시된 하나의 또는 그 이상의 프로세서들의 기능들은 단일 공유 프로세서 또는 다수의 프로세서들에 의해 제공될 수 있다(용어 "프로세서"의 사용은 소프트웨어를 실행할 수 있는 하드웨어만을 배타적으로 말하는 것으로 해석되지 않아야만 함). 일례의 실시예들은 마이크로프로세서 및/또는 디지털 신호 프로세서(DSP) 하드웨어, 후술되는 동작들을 수행하는 소프트웨어를 저장하기 위한 판독 전용 메모리(ROM)(140), 및 결과들을 저장하기 위한 랜덤 액세스 메모리(RAM)(150)를 포함할 수 있다. 초고밀도 집적 회로(VLSI) 하드웨어 실시예들뿐만 아니라, 범용 DSP 회로와 결합된 주문형 VLSI 회로가 또한 제공될 수 있다.
각종 실시예들의 논리적 동작들은: (1) 범용 컴퓨터 내의 프로그래밍 가능 회로에서 실행중인 일련의 컴퓨터 구현 단계들, 동작들, 또는 프로시저들, (2) 특정 용도 프로그래밍 가능 회로에서 실행중인 일련의 컴퓨터 구현 단계들, 동작들, 또는 프로시저들; 및/또는 (3) 프로그래밍 가능 회로들 내의 상호 연결 기계 모듈들 또는 프로그램 엔진들로서 구현된다. 도 1에 도시된 시스템(100)은 인용된 모든 또는 일부 방법들을 실시할 수 있고, 인용된 시스템들의 일부일 수 있고/있거나, 인용된 비일시적인 컴퓨터 판독 가능 저장 매체의 명령들에 따라 동작할 수 있다. 이러한 논리적 동작들은 모듈의 프로그래밍에 따라 특정 기능들을 수행하게 프로세서(120)를 제어하도록 구성된 모듈들로서 구현될 수 있다. 예를 들어, 도 1은 프로세서(120)를 제어하도록 구성된 모듈들인 3개의 모듈들, 모듈 1(162), 모듈 2(164) 및 모듈 3(166)을 도시한다. 이 모듈들은 저장 디바이스(160)에 저장되어 실행 시간에 RAM(150) 또는 메모리(130)에 로드되거나, 또는 다른 컴퓨터 판독 가능 메모리 로케이션들에 본 기술 분야에 공지된 바와 같이 저장될 수 있다.
일부 기본 시스템 컴포넌트들에 대해 기술하였으며, 도 2의 일례의 방법 실시예에 도시된 바와 같이, 본 설명은 변형 억제 부팅의 설명으로 이제 돌아간다. 명료성을 위해, 본 방법은 본 방법을 실시하도록 구성된 도 1에 도시된 바와 같은 일례의 시스템의 측면에서 설명된다.
도 2는, 변형 억제 부팅이라고 달리 공지된, 풀 디스크 암호화를 사용하는 암호화된 저장 매체를 가진 컴퓨팅 디바이스의 부팅을 위한 일례의 방법 실시예를 도시한다. 변형 억제 부팅은 해커가 무허가 방법들로 허가받은 부팅 시퀀스를 변경하거나 또는 자신의 무허가 부팅 시퀀스를 삽입하는 것을 더 어렵게 한다. 부팅 시퀀스를 보호하는 한 방법은 펌웨어로부터 운영 체제 커널까지 신뢰 체인을 설정하는 것이다. 펌웨어는 디바이스의 저수준 기본 동작들을 제어하는 고정된 프로그램들을 칭한다. 그러나, 펌웨어가 "고정된" 프로그램이라고 칭해지지만, 일부 실례들에서, 펌웨어 갱신들이 펌웨어가 제공하는 기능을 변경할 수 있다. 펌웨어는 BIOS(기본 입력/출력 시스템) 기반 또는 EFI(확장 가능 펌웨어 인터페이스) 기반 컴퓨터 부팅 구현들을 위해 ROM, EEPROM 등에 통상 저장된다. 커널은, 중앙 처리 장치(CPU), 메모리 및 다른 디바이스들을 포함하는, 컴퓨팅 디바이스의 하드웨어 등의 컴퓨팅 리소스들에 대한 액세스를 소프트웨어 애플리케이션들에 제공하는 운영 체제의 중심 컴포넌트이다. 신뢰 체인을 설정할 때, 펌웨어는 부터의 완전성을 확인할 수 있지만, 부터는 커널의 완전성을 확인할 수 없다. 컴퓨터는 제조 공장을 떠난 후에 그의 커널을 갱신하며, 부팅할 때 특정 기계를 위한 커널 확장들을 포함한다. 커널은 특정 사용자의 기계에 맞춰진다. 부터는 전체 부팅 시퀀스를 보호하기 위해 커널의 완전성을 확인해야만 한다.
시스템(100)이 풀 디스크 암호화를 사용할 때, 암호화된 볼륨의 볼륨 키는 부터 및 커널 간의 공유된 비밀로서 작용한다. 부터는 패스워드를 검증해서, 디스크를 해독할 수 있는 운영 체제 커널에 패스워드를 전달하기 위해, 볼륨 키를 가져야만 한다. 시스템이 실행중일 때, 커널은 또한 메모리에 풀 디스크 암호화 볼륨 키를 가진다. 부팅 시간에, 부터는 커널에 대한 완전성 확인를 수행하기 위해 볼륨 키를 사용한다. 볼륨 키는 패스워드와 동일할 수 있으며, 또는 적어도 부분적으로 패스워드에 기초하여 유도될 수 있다.
시스템(100)은 컴퓨팅 디바이스의 부팅 시퀀스를 보호하기 위해 펌웨어로부터 커널까지 신뢰 체인을 설정한다. 시스템은 부팅 시간에 사용자로부터 볼륨 키와 연관된 인증서들을 수신한다(210). 암호 기법에서, 인증서는 사용자의 id를 설정하는데 사용된다. 인증서들의 일부 일례들은 패스워드들, 인증서들, 또는 지문 또는 성문 등의 생체 측정들을 포함한다. 볼륨 키는 인증서 또는 그 일부 파생과 동일하다. 예를 들어, 볼륨 키는 사용자 패스워드, 암호화된 버전의 패스워드, 또는 사용자 패스워드를 입력으로서 취하는 알고리즘의 출력일 수 있다. 시스템(100)이 볼륨 키를 설정하면, 시스템은 암호화되지 않은 저장 매체로부터 커널 및 운영 체제에 의해 생성된 커널 캐시 다이제스트를 검색한다(230). 커널 캐시 다이제스트는 암호 해시 함수, 비밀 키 및 커널 캐시를 사용해서 생성된다. 커널 캐시는 커널 코드 및 커널 확장들을 포함한다. 다이제스트는 해시 값, 메시지 다이제스트 또는 해시-메시지 인증 코드(HMAC)라고도 한다. HMAC는 메시지의 진정성 및 완전성을 동시에 검증하는데 사용될 수 있다. 암호 해시 함수는 데이터 블록을 취하고 해시 값 또는 메시지 다이제스트라고 하는 고정 크기 비트 스트링을 리턴하는 프로시저이다. 데이터 블록의 임의의 변경은 다이제스트를 변경시킬 것이다. 커널 캐시 다이제스트는 커널 캐시의 키잉된 해시이고, 여기서, 키는 FDE 볼륨 키이다.
시스템이 저장된 커널 캐시 다이제스트를 검색하면, 시스템은 사용자 입력 인증서들에 기초하여 커널 캐시가 진짜임을 검증하고(240), 커널 캐시가 진짜라고 시스템이 결정하면, 운영 체제의 개시 및 실행을 가능케 한다(250). 커널 캐시가 진짜가 아니면, 시스템은 오류를 생성하고(260), 운영 체제를 실행하지 않는다. 시스템이 커널의 완전성을 검증할 수 없으면, 컴퓨팅 디바이스가 변형되었다고 시스템은 추정한다. 이 프로세스는, 완전성 확인들이 부팅 프로세스의 각각의 단계에서 실행되기 때문에, 변형 억제 부팅이라고 하며, 시스템을 변형에 강하게 하며, 부팅 프로세스의 주요 부분들이 허가없이 변경될 때를 검출할 수 있게 한다.
사용자는 풀 디스크 암호화를 수동으로 가능케 할 수 있으며, 또는 일부 자동 프로세스가 풀 디스크 암호화를 개시할 수 있지만, 대부분의 자동 프로세스들은 시스템이 볼륨 키를 생성하는데 필요한 패스워드의 입력 등 일부 사용자 입력을 요구한다. 풀 디스크 암호화가 가능할 때 및/또는 일부 다른 적합한 공유 비밀이 풀 디스크 암호화 볼륨 키의 대용으로서 유효할 때와 같은 다른 상황들에서 변형 억제 부팅 프로세스가 사용될 수 있다.
도 3은 펌웨어로부터 커널까지 신뢰 체인을 설정하는 것의 일부인, 커널 캐시의 인증을 도시한다. 시스템(100)은 암호화 알고리즘, 사용자 입력 패스워드 및 커널 캐시를 사용해서 HMAC를 계산(310)함으로써 커널 캐시가 진짜임을 검증한다(240). 시스템(100)은 암호 해시 함수로의 입력으로서 커널 캐시 및 패스워드를 사용하며, 상기 함수는 HMAC를 출력한다. 시스템(100)은 운영 체제가 변형되었는 지를 결정하기 위해 저장된 커널 캐시 다이제스트와 계산된 HMAC를 비교한다(320). 비교된 값들이 일치하면(330), 운영 체제는 변형되지 않았으며, 진짜라고 생각되며, 시스템은 계속해서 부팅할 수 있다. 비교된 값들이 상이하면(340), 커널 캐시 다이제스트가 생성되었기에 운영 체제는 변형되었으며, 진짜가 아니다. 이때에, 시스템은 부팅 프로세스를 중지하고, 패스워드를 다시 입력하도록 사용자에게 프롬프트하며, 경고를 원격 디바이스에 송신하고/하거나, 임의의 다른 희망 동작을 트리거할 수 있다.
도 4는 변형 억제 부팅 프로세스를 도시한다. 시스템(100)은 펌웨어(410)로 시스템을 부팅하고, 펌웨어(410)를 통해, 부터(420)의 완전성을 확인함으로써 운영 체제가 변형되지 않았음을 검증한다. 시스템이 펌웨어를 통해 부터의 완전성을 확인하면, 시스템은 부터(420)에 제어를 넘긴다. 부터는 저장된 커널 캐시 다이제스트(430) 및 부팅 시간(420)에 입력된 패스워드에 기초하여 운영 체제의 커널 캐시(440)를 확인한다. 커널 캐시의 진정성은 커널 캐시 및 사용자 입력 패스워드를 사용해서 HMAC를 계산(450)함으로써 결정된다. 운영 체제가 변형되지 않았다고 부팅 프로세스가 결정하면, 부팅 프로세스는 개시 및 실행을 위해 운영 체제에 제어를 넘긴다.
도 5는 변형 억제 부팅 프로세스의 개시를 도시한다. 시스템(100)은 사용자로부터 수신된 풀 디스크 암호화 패스워드에 기초하여 볼륨 키를 먼저 생성함(510)으로써 변형 억제 부팅 프로세스를 개시한다. 시스템(100)은 볼륨 키로 저장 매체를 암호화해서(520), 풀 디스크 암호화된 저장 매체를 산출한다. 볼륨 키는 풀 디스크 암호화를 위한 셋업 프로세스 및/또는 사용자 등록 프로세스의 일부로서 생성될 수 있다. 예를 들어, 사용자가 저장 볼륨에 대해 풀 디스크 암호화를 셋업하기로 결심하면, 시스템은 풀 디스크 암호화 패스워드 또는 패스워드 동등물을 입력하도록 사용자에게 프롬프트한다. 그 후, 시스템은 풀 디스크 암호화 패스워드에 기초하여 볼륨 키를 생성하고, 볼륨 키로 볼륨을 암호화하며, 동시에 변형 억제 부팅을 위해 동일한 볼륨 키를 사용할 수 있다. 그 후, 시스템(100)은 커널 캐시 및 풀 디스크 볼륨 키를 사용해서 커널 캐시 다이제스트를 생성하고(530), 시스템(100)은 커널 캐시 다이제스트를 암호화되지 않은 볼륨에 저장한다(540). 시스템이 부팅할 때, 저장된 커널 캐시 다이제스트 및 계산된 다이제스트에 기초하여 커널 캐시의 완전성을 검증한다. 적어도 한 변형에서, 잠금 해제 프로세스가 너무 복잡하여 더 완전한 피처링된 커널을 요구하기 때문에, 부팅 환경이 풀 디스크 암호화 볼륨을 잠금 해제할 수 없기 때문에, 시스템(100)은 암호화된 저장 볼륨이 아닌 로케이션에 커널 캐시 다이제스트를 저장한다. 따라서, 부터가 풀 디스크 암호화 볼륨들을 잠금 해제할 수 없기 때문에, 커널 캐시는 암호화된 볼륨에 상주할 수 없다. 그 결과, 커널 캐시는 풀 디스크 암호화 볼륨과 별개인 볼륨에 암호화되지 않은 상태로 상주하며, 부터가 할 수 없는 해독을 수행할 필요 없이 부터는 커널 캐시에 도달할 수 있다. 데이터가 FDE 볼륨에서 암호화되더라도, 커널 캐시는 완전히 보호되지 않으며, 어태커에 의해 대체되기 쉬울 수 있다.
키잉된 HMAC 다이제스트(여기서, 풀 디스크 암호화 볼륨 키가 다이제스트 키로서 사용됨)가 커널 바로 옆에 상주하는 한, 커널은 비보호 볼륨에 상주할 수 있다. 따라서, 어태커는 커널을 악성 커널로 대체할 수 있지만, 어태커가 풀 디스크 암호화 패스워드를 알지 못하기에, 어태커는 일치하는 다이제스트 파일을 생성할 수 없으며, 부터는 악성 커널을 부팅하기를 거부할 것이다.
변형 억제 부팅 프로세스의 개시 및 실행에 대해 기술하였으며, 이제부터 본 설명은 컴퓨팅 디바이스의 변형 억제 부팅을 불가하게 하는 방법을 기술한다. 시스템(100)은 변형 억제 부팅을 불가하게 하라는 요청을 먼저 인증하여 요청이 유효하고, 해커로부터 온 것이 아님을 검증해야만 한다. 변형 억제 부팅을 불가하게 하라는 요청이 패스워드 증명을 생성함으로써 유효하다고 시스템은 검증한다. 펌웨어 및 운영 체제가 동시에 실행하지 않기에, 전형적인 방식들은 2개의 프로세스들이 서로 통신하기 위한 실행 가능한 방법을 제공하지 않는다. 운영 체제는 펌웨어에 정보를 송신하고 기계를 재부팅할 수 있어서, 펌웨어가 부팅 시간에 운영 체제로부터 메시지를 수신할 수 있다. 그러나, 일부 상황들에서 다수의 재부팅들이 수용될 수 없으므로, 시스템은 오직 한 번만 펌웨어에 명령들을 송신할 수 있다. 펌웨어는 운영 체제에 의해 기록 불가능하지만 판독 가능한 비휘발성 랜덤 액세스 메모리(NVRAM) 칩에 저장된다. 원시 패스워드가 운영 체제에 의해 판독 가능한 평문으로 저장되기에, 운영 체제는 원시 패스워드를 송신할 수 없다. 어태커가 해시를 판독하고 잠금 해제 메커니즘들을 트리거할 수 있기에, 운영 체제는 또한 패스워드의 해시를 송신할 수 없다. 운영 체제는 보호되지 않은 데이터를 송신해야 하지만, 불가 요청의 진정성을 여전히 검증해야만 한다. 이는 패스워드 검증기 및 패스워드 증명을 사용해서 달성된다.
도 6은, 펌웨어 레벨에서, 패스워드 검증기를 생성하고 이를 패스워드 증명과 비교함으로써 변형 억제 부팅을 불가하게 하는 방법을 도시한다. 시스템(100)은 패스워드 검증기를 생성하고(610) 차후 사용을 위해 저장한다. 시스템(100)은 변형 억제 부팅을 불가하게 하기 위해 사용자로부터 요청 및 패스워드를 수신한다(620). 운영 체제는 요청 패스워드 및 솔트 값에 반복 횟수 중 일부분의 횟수로 암호화 알고리즘을 적용함으로써 부분적인 패스워드 증명을 생성하고(630), 그 후, 컴퓨팅 디바이스를 재시작한다(640). 시스템이 재부팅되면, 펌웨어는 부분적인 패스워드 증명을 검색하고(650), 반복 횟수 중 나머지 일부분의 횟수로 암호화 알고리즘을 수행하여 완전한 패스워드 증명을 산출한다(660). 패스워드 증명이 패스워드 검증기와 일치하면, 시스템(100)은 변형 억제 부팅을 불가하게 한다(670). 시스템은 오직 요청이 진짜임을 검증할 수 있는 경우에만 변형 억제 부팅을 불가하게 한다.
도 7 및 도 8은 패스워드 검증기의 생성을 도시한다. 시스템(100)은 현재 반복에 대한 입력으로서 이전 반복의 출력을 사용해서, 다수 회 반복해서 암호화 알고리즘을 수행함으로써 패스워드 검증기를 생성한다(720). 예를 들어, 프로세스는 PV1을 사용해서 PV2를 생성하고, PV99를 사용해서 PV100을 생성한다. 제1 반복(710)의 경우에, 이전 반복으로부터의 출력이 존재하지 않기에, 패스워드 P가 입력으로서 사용된다. 시스템(100)은, 예를 들어, 100회 반복들(740)을 수행함으로써 패스워드 검증기를 생성한다. 패스워드 증명은, 중간 지점 반복(730) 등의, 하나의 또는 그 이상의 중간 반복의 출력으로부터 유도된다. 암호화 알고리즘으로의 입력으로서 이전 반복으로부터의 출력을 사용하는 외에, 솔트 값이 사용된다. 솔트 값은 키 유도 함수, 통상 암호 해시 함수로의 입력들 중 하나로서 사용되는 랜덤 비트들을 포함한다. 솔트 데이터는 패스워드를 결정하는데 필요한 저장 및 계산의 양을 증가시키기에, 솔트 데이터는 공격들을 복잡하게 만든다. 훔친 해시로부터 패스워드를 결정하기 위해, 어태커는 랜덤 문자들의 해시들을 계산해야만 해서, 필요한 계산 시간을 증가시킨다. 일부 시나리오들에서, 이 프로세스는 풀 디스크 암호화 볼륨을 가진 디바이스에서 프로세서에 의해 수행되는 것으로 제한된다. 따라서, 임의의 공격에 필요한 시간이 프로세서의 속도의 함수이고 쉽게 무작위 대입 공격(brute forced)될 수 없도록, 반복 횟수는 프로세서의 속도에 기초하여 선택 또는 결정될 수 있다. HMAC를 계산할 때 임의의 암호 해시 함수, 예를 들어, SHA-1 또는 MD5를 사용할 수 있다.
패스워드 검증기의 생성은 패스워드 P, 솔트 값 S, 수행 반복 횟수 n 및 인덱스 i를 필요로 한다(810). 시스템은 필요한 횟수의 반복들이 완료되었는지를 확인하기 위해 인덱스 i를 반복 횟수 n과 비교한다(820). 동일하지 않으면, 프로세스는 완료되지 않고 추가 반복들이 요구된다. 다음으로, 시스템은 현재 라운드, i에 대해 라운드 패스워드 검증기를 생성한다(830). 라운드 패스워드 검증기 PVi의 생성(830)은 암호화 알고리즘, (현재 라운드가 1이 아니면) 이전 라운드 PVi -1로부터의 패스워드 검증기 및 솔트 값 S를 사용해서 실행된다. 제1 라운드에 대한 이전 라운드 검증기가 없으므로, PV0을 초기화하는데 패스워드 P가 사용된다(810). 다음으로, 시스템은 인덱스를 증분하고(830), 필요한 횟수의 반복들이 완료되었는지를 확인하기 위해 인덱스를 반복 횟수와 비교한다(820). 인덱스가 반복 횟수와 동일할 때, 프로세스는 완료되고, 시스템은 패스워드 검증기를 출력한다(840).
패스워드 증명의 생성이 컴퓨팅 디바이스의 재부팅을 포함하는 것을 제외하고, 시스템은 동일한 프로세스에 따라 패스워드 검증기 및 패스워드 증명을 생성한다. 시스템은 필요한 총 반복 횟수 중 일부분의 횟수만을, 대개 절반을 수행한 후, 자신을 재부팅한다. 시스템이 다시 시작되면, 나머지 횟수의 반복들이 수행되어 최종 패스워드 증명을 산출한다. 도 9 및 도 10은 패스워드 증명의 생성을 도시한다. 예를 들어, 패스워드 증명을 생성하는데 필요한 총 반복 횟수가 100일 때, 시스템은 50회 반복들을 사용해서 부분적인 패스워드 증명을 생성하고(910), 재부팅 전에 결과를 저장한다. 시스템이 다시 시작되면, 시스템은 저장된 부분적인 패스워드 증명을 검색하고, 나머지 50회의 반복들을 실행하여 최종 패스워드 증명을 산출한다(1010). 부분적인 패스워드 증명은 절반 지점에서 또는 반복 집합의 일부 다른 지점에서 생성될 수 있다. 부분적인 패스워드 증명은 원래의 패스워드, 반복 횟수, 패스워드 검증기, 또는 패스워드 증명에 대한 어떠한 유용한 정보도 드러내지 않아서, 평문으로 및/또는 다른 프로세스들이 판독할 수 있는 메모리의 영역에 저장하기에 안전하다.
도 11 및 도 12는 패스워드 증명의 생성을 도시한다. 시스템(100)은 현재 반복에 대한 입력으로서 이전 반복의 출력을 사용해서, 다수 회 반복해서 암호화 알고리즘을 실행함으로써 패스워드 증명을 생성한다. 예를 들어, 프로세스는 PV1을 사용해서 PV2를 생성하고, PV99를 사용해서 PV100을 생성한다. 제1 반복의 경우에, 이전 반복으로부터의 출력이 존재하지 않기에, 패스워드 P가 사용된다. 암호화 알고리즘으로의 입력으로서 이전 반복으로부터의 출력을 사용하는 외에, 솔트 값이 사용된다.
패스워드 증명의 생성은 패스워드 P, 솔트 값 S, 수행 반복 횟수 n, 인덱스 i 및 인덱스 j를 필요로 하며(1110), 여기서, j는 반복 횟수/2이다. 시스템은 필요한 횟수의 반복들이 완료되었는지를 확인하기 위해 인덱스 i를 인덱스 j와 비교한다(1120). 동일하지 않으면, 프로세스는 완료되지 않고 추가 반복들이 요구된다. 다음으로, 시스템은 현재 라운드, i에 대해 라운드 패스워드 검증기를 생성한다(1130). 라운드 패스워드 검증기 PVi의 생성(1130)은 암호화 알고리즘, (현재 라운드가 1이 아니면) 이전 라운드 PVi -1로부터의 패스워드 검증기 및 솔트 값 S를 사용해서 수행된다. 제1 라운드에 대한 이전 라운드 검증기가 없으므로, PV0을 초기화하는데 패스워드 P가 사용된다(1110). 다음으로, 시스템은 인덱스를 증분하고(1130), 필요한 횟수의 반복들이 완료되었는지를 확인하기 위해 인덱스를 반복 횟수와 비교한다(1120). 인덱스 i가 인덱스 j와 동일할 때, 시스템은 부분적인 패스워드 증명을 저장하고(1140) 컴퓨팅 디바이스를 재부팅한다.
컴퓨팅 디바이스가 재부팅되면, 펌웨어는 나머지 반복들을 계산하여 완전한 패스워드 증명을 산출한다. 절반의 반복들이 이미 수행되었기에, 인덱스 i는 j+1로 초기화된다(1210). 시스템은 필요한 횟수의 반복들이 완료되었는지를 확인하기 위해 인덱스 i를 반복 횟수 n과 비교한다(1220). 동일하지 않으면, 프로세스는 완료되지 않고 추가 반복들이 요구된다. 다음으로, 시스템은 현재 라운드, i에 대해 라운드 패스워드 검증기를 생성한다(1230). 라운드 패스워드 검증기 PVi의 생성(1230)은 암호화 알고리즘, 이전 라운드 PVi -1로부터의 패스워드 검증기 및 솔트 값 S를 사용해서 수행된다. 다음으로, 시스템은 인덱스를 증분하고(1230), 필요한 횟수의 반복들이 완료되었는지를 확인하기 위해 인덱스를 반복 횟수와 비교한다(1220). 인덱스 i가 반복 횟수 n과 동일할 때, 프로세스는 완료되고, 시스템은 완전한 패스워드 증명, PVn을 출력한다(1240).
도 13은 패스워드 증명의 생성을 도시한다. 원시 패스워드가 아니고 패스워드의 파생이기에, 부분적인 패스워드 증명은 안전하다. 시스템(100)은 그것을 임의의 판독 프로세스를 위해, 심지어는 잠재적으로 악성인 프로세스들을 위해 NVRAM에 저장한다(1310). 프로세스는 절반 지점까지의 증명을 얻기 위해 원래의 패스워드를 소유해야만 한다(1320). 그 후, 펌웨어(1330)는, 증명이 원래의 패스워드를 소유한 프로세스로부터 왔음을 검증하기 위해 나머지 반복들에 걸쳐 반복할 수 있다. 이 프로세스는 하드웨어가 향상함에 따라 자동 향상에 적합한데, 그 이유는 그것이 설정된 양의 시간에 도달할 때까지 루프로 HMAC 반복을 실행하고 더 새롭고 더 빠른 하드웨어에 쉽게 적용될 수 있기 때문이다. 더 빠른 하드웨어는 유사한 성능 특성들을 달성하기 위해 간단히 더 많은 횟수의 반복들을 실행할 수 있다. 반복 횟수는 희망 실행 성능, 안전성, 및/또는 다른 특유의 임계값(들)에 기초하여 선택 또는 결정될 수 있다.
도 14는 풀 디스크 암호화를 불가하게 하는 것을 도시한다. 시스템은 변형 억제 부팅을 불가하게 하도록 허가받은 사용자들의 리스트를 생성하고(1410), 리스트를 펌웨어에 송신한다(1420). 시스템은 각각의 사용자에 대한 패스워드 검증기들을 생성하고 검증기들을 소프트웨어(1340)로서 NVRAM(1310)에 저장한다(1430). 시스템이 사용자에 대한 패스워드 증명과 함께 명령을 발행할 때, 시스템은 인증된 명령 인터페이스(ACI)를 위한 "드롭박스"에 패스워드 증명을 넣으며, 여기서, NVRAM(1310)은 다음 부팅에서 명령을 판독한다. NVRAM은 운영 체제 및 모든 사용자들에게 판독 가능하기에, 임의의 사용자가 NVRAM에 배치된 명령을 판독하여, 패스워드 증명을 잠재적으로 훔칠 수 있다. 전형적으로, 이 문제를 해결하기 위해 솔트가 사용된다. 그러나, 이는 쉽게 달성되지 않는다. 따라서, 시스템은 시스템 솔트를 생성하고(1440), 기계가 처음에 부팅할 때 시스템 솔트를 NVRAM에 저장한다(1450). NVRAM에 저장된 시스템 솔트는 ACI 인터페이스를 통해 펌웨어에 발행된 다음 명령을 위해 사용된다. 명령이 발행될 때마다, 펌웨어는 새로운 랜덤 솔트를 NVRAM에 넣는다.
본 명세서에 기술된 방식들에 의해 달성된 새로운 결과는 신뢰할 만한 부팅 체인에서 무허가 변경들을 검출할 수 있는 풀 디스크 암호화 가능 시스템의 더 안전한 부팅 프로세스이다. 이 방식들의 다른 결과는 최소 수의 시스템 재부팅으로 이 안전한 부팅을 가능 및/또는 불가하게 하는 것이다.
본 발명의 범위 내의 실시예들은 저장된 컴퓨터 실행 가능 명령들 또는 데이터 구조들을 운반하거나 또는 갖기 위한 유형의(tangible) 및/또는 비일시적인(non-transitory) 컴퓨터 판독 가능 저장 매체를 또한 포함할 수 있다. 비일시적인 컴퓨터 판독 가능 저장 매체는, 상술된 임의의 특수 목적 프로세서의 기능 설계를 포함해서, 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 유효한 매체일 수 있다. 예를 들어, 비일시적인 컴퓨터 판독 가능 저장 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스들, 또는 컴퓨터 실행 가능 명령들, 데이터 구조들, 또는 프로세서 칩 설계의 형태로 희망 프로그램 코드 수단을 운반 또는 저장하는데 사용될 수 있는 임의의 다른 매체를 포함할 수 있지만, 이들로만 제한되지 않는다. 정보가 네트워크 또는 다른 통신 연결(하드와이어드, 무선, 또는 그 조합)을 통해 컴퓨터에 전송 또는 제공될 때, 컴퓨터는 연결을 컴퓨터 판독 가능 매체로서 적절히 간주한다. 따라서, 이러한 연결은 적절히 컴퓨터 판독 가능 매체라고 한다. 상술한 것들의 조합들도 컴퓨터 판독 가능 매체의 범위 내에 포함된다.
컴퓨터 실행 가능 명령들은, 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 프로세싱 디바이스가 특정 기능 또는 기능들의 그룹을 실행하게 야기하는 명령들 및 데이터를 포함한다. 컴퓨터 실행 가능 명령들은 독립 또는 네트워크 환경들에서 컴퓨터들에 의해 실행되는 프로그램 모듈들을 또한 포함한다. 일반적으로, 프로그램 모듈들은 특정 태스크들을 실행하거나 특정 추상 데이터 타입들을 구현하는 루틴들, 프로그램들, 컴포넌트들, 데이터 구조들, 객체들, 및 특수 목적 프로세서들 등의 설계에 고유한 기능들을 포함한다. 컴퓨터 실행 가능 명령들, 연관된 데이터 구조들, 및 프로그램 모듈들은 본 명세서에 기술된 방법들의 단계들을 실행하는 프로그램 코드 수단의 일례들을 나타낸다. 이러한 실행 가능 명령들 또는 연관된 데이터 구조들의 특정 시퀀스는 이러한 단계들에 기술된 기능들을 구현하기 위한 대응 동작들의 일례들을 나타낸다.
본 발명의 다른 실시예들이 퍼스널 컴퓨터들, 핸드 헬드 디바이스들, 멀티-프로세서 시스템들, 마이크로프로세서-기반 또는 프로그래밍 가능 소비자 전자 기기들, 네트워크 PC들, 미니컴퓨터들, 메인프레임 컴퓨터들 등을 포함하는, 다수의 타입들의 컴퓨터 시스템 구성들을 가진 네트워크 컴퓨팅 환경들에서 실시될 수 있음을 당업자는 알 것이다. 실시예들은 태스크들이 통신 네트워크를 통해 (하드와이어드 링크들, 무선 링크들, 또는 그 조합에 의해) 링크된 로컬 및 원격 프로세싱 디바이스들에 의해 실행되는 분산 컴퓨팅 환경들에서 또한 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 원격 메모리 저장 디바이스들 둘 다에 위치할 수 있다.
상술된 각종 실시예들은 단지 설명을 위해 제공된 것이며, 본 발명의 범위를 제한하는 것으로 해석되지 않아야만 한다. 예를 들어, 본 명세서의 원리들은, 안전한 변형 억제 부팅 프로세스가 요구되는, 볼륨 키 등의 적합한 공유 비밀을 가진 데스크탑 및 랩탑 컴퓨터들, 모바일 디바이스들, 및 임의의 다른 컴퓨팅 환경에 적용될 수 있다. 본 명세서에 도시 및 기술된 일례의 실시예들 및 응용예들을 따르지 않고, 본 발명의 원리 및 범위로부터 벗어나지 않은 채로, 본 명세서에 기술된 원리들에 대해 각종 수정들 및 변경들이 이루어질 수 있음을 당업자는 쉽게 알 것이다.

Claims (28)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 컴퓨팅 디바이스에 의해 실행될 때, 상기 컴퓨팅 디바이스로 하여금 상기 컴퓨팅 디바이스에서의 변형 억제 부팅(tamper-resistant booting)을 불가하게 하는 명령들을 저장하고 있는 비일시적인 컴퓨터 판독 가능 저장 매체로서, 상기 명령들은
    펌웨어 레벨에서, 상기 변형 억제 부팅과 연관된 패스워드 및 솔트 값(salt value)에 다수 회 반복해서 암호화 알고리즘을 적용함으로써 패스워드 검증기(password verifier)를 생성하는 단계;
    사용자로부터, 상기 변형 억제 부팅을 불가하게 하라는 요청을 수신하는 단계 - 상기 요청은 요청 패스워드를 포함함 - ;
    운영 체제 레벨에서, 상기 요청 패스워드 및 상기 솔트 값에 상기 반복 횟수 중 제1 일부분의 횟수를 반복해서 상기 암호화 알고리즘을 적용함으로써 패스워드 증명(password proof)을 생성하는 단계;
    상기 컴퓨팅 디바이스를 재시작하는 단계; 및
    상기 펌웨어 레벨에서:
    상기 패스워드 증명을 검색하는 단계;
    상기 반복 횟수 중 나머지 제2 일부분의 횟수의 반복들을 상기 패스워드 증명에 수행하여 반복된 패스워드 증명을 산출하는 단계 - 상기 반복 횟수 중 제1 일부분의 횟수에 상기 반복 횟수 중 나머지 제2 일부분의 횟수를 더하면 상기 반복 횟수와 동일하게 됨 - ; 및
    상기 반복된 패스워드 증명이 상기 패스워드 검증기와 일치하면 변형 억제 부팅을 불가하게 하는 단계
    를 포함하는 비일시적인 컴퓨터 판독 가능 저장 매체.
  6. 제5항에 있어서,
    상기 반복 횟수는 희망 실행 간격에 기초하여 설정되는 비일시적인 컴퓨터 판독 가능 저장 매체.
  7. 제5항에 있어서,
    상기 패스워드 검증기는 상기 펌웨어에 저장되는 비일시적인 컴퓨터 판독 가능 저장 매체.
  8. 제5항에 있어서,
    상기 솔트 값은 랜덤인 비일시적인 컴퓨터 판독 가능 저장 매체.
  9. 제5항에 있어서,
    상기 솔트 값은 각각의 부팅 시간을 변경하는 비일시적인 컴퓨터 판독 가능 저장 매체.
  10. 제5항에 있어서,
    상기 패스워드 증명은 비휘발성 랜덤 액세스 메모리에 저장되는 비일시적인 컴퓨터 판독 가능 저장 매체.
  11. 제5항에 있어서,
    상기 암호화 알고리즘은 해시-기반 메시지 인증 코드 알고리즘인 비일시적인 컴퓨터 판독 가능 저장 매체.
  12. 제5항에 있어서,
    상기 패스워드 검증기를 생성하는 단계는
    상기 암호화 알고리즘의 제1 반복을 위한 입력으로서 패스워드 및 솔트 값을 사용하는 단계; 및
    상기 제1 반복 후의 각각의 반복에 대해 그 각각의 반복을 위한 입력으로서 상기 암호화 알고리즘의 바로 앞의 반복으로부터의 출력을 사용하는 단계
    를 포함하는 비일시적인 컴퓨터 판독 가능 저장 매체.
  13. 부팅 시간에 펌웨어 레벨에서, 컴퓨팅 디바이스에서의 변형 억제 부팅을 불가하게 하라는 상기 컴퓨팅 디바이스 상의 운영 체제로부터의 요청을 확인하는 시스템으로서,
    프로세서;
    방법을 수행하도록 상기 프로세서를 제어하기 위한 명령들이 저장되어 있는 비일시적인 컴퓨터 판독 가능 스토리지
    를 포함하고, 상기 방법은
    상기 요청에 관련하여 그리고 사용자 입력 패스워드에 기초하여 상기 운영 체제에 의해 생성된 패스워드 증명을 검색하는 단계;
    상기 패스워드 증명에 적용할 제1 반복 횟수를 검색하는 단계;
    반복된 패스워드 증명을 산출하기 위해 상기 제1 반복 횟수만큼 상기 패스워드 증명에 암호화 알고리즘을 적용하는 단계;
    상기 반복된 패스워드 증명을 제2 반복 횟수만큼 원래의 패스워드에 상기 암호화 알고리즘을 적용함으로써 생성된 펌웨어-생성 패스워드 검증기와 비교하는 단계; 및
    상기 반복된 패스워드 증명이 상기 패스워드 검증기에 대응하면, 상기 컴퓨팅 디바이스에서의 변형 억제 부팅을 불가하게 하는 단계
    를 포함하는 시스템.
  14. 제13항에 있어서,
    상기 펌웨어는 기본 입력/출력 시스템 펌웨어 및 확장 가능 펌웨어 인터페이스 펌웨어 중 하나인 시스템.
  15. 제13항에 있어서,
    상기 제1 반복 횟수 및 상기 제2 반복 횟수는 희망 실행 간격에 기초하여 설정되는 시스템.
  16. 제13항에 있어서,
    상기 펌웨어-생성 패스워드 검증기는 펌웨어에 저장되는 시스템.
  17. 제13항에 있어서,
    상기 펌웨어-생성 패스워드 검증기는 변형 억제 부팅을 가능하게 하는 프로세스의 일부로서 생성되는 시스템.
  18. 제13항에 있어서,
    상기 암호화 알고리즘을 적용하는 단계는 랜덤 솔트 값에 더 기초하는 시스템.
  19. 제13항에 있어서,
    상기 패스워드 증명은 비휘발성 랜덤 액세스 메모리에 저장되는 시스템.
  20. 제19항에 있어서,
    상기 운영 체제는 상기 비휘발성 랜덤 액세스 메모리가 다음 부팅 시에 명령들을 판독하는 로케이션에 상기 명령들을 저장하는 시스템.
  21. 컴퓨팅 디바이스에서의 변형 억제 부팅을 불가하게 하기 위한 컴퓨터-구현된 방법으로서,
    펌웨어 레벨에서, 상기 변형 억제 부팅과 연관된 패스워드 및 솔트 값에 다수 회 반복해서 암호화 알고리즘을 적용함으로써 패스워드 검증기를 생성하는 단계;
    사용자로부터, 상기 변형 억제 부팅을 불가하게 하라는 요청을 수신하는 단계 - 상기 요청은 요청 패스워드를 포함함 - ;
    운영 체제 레벨에서, 상기 요청 패스워드 및 상기 솔트 값에 상기 반복 횟수 중 제1 일부분의 횟수를 반복해서 상기 암호화 알고리즘을 적용함으로써 패스워드 증명을 생성하는 단계;
    상기 컴퓨팅 디바이스를 재시작하는 단계; 및
    상기 펌웨어 레벨에서:
    상기 패스워드 증명을 검색하는 단계;
    상기 반복 횟수 중 나머지 제2 일부분의 횟수의 반복들을 상기 패스워드 증명에 수행하여 반복된 패스워드 증명을 산출하는 단계 - 상기 반복 횟수 중 제1 일부분의 횟수에 상기 반복 횟수 중 나머지 제2 일부분의 횟수를 더하면 상기 반복 횟수와 동일하게 됨 - ; 및
    상기 반복된 패스워드 증명이 상기 패스워드 검증기와 일치하면 변형 억제 부팅을 불가하게 하는 단계
    를 포함하는 방법.
  22. 제21항에 있어서,
    상기 반복 횟수는 희망 실행 간격에 기초하여 설정되는 방법.
  23. 제21항에 있어서,
    상기 패스워드 검증기는 상기 펌웨어에 저장되는 방법.
  24. 제21항에 있어서,
    상기 솔트 값은 랜덤인 방법.
  25. 제21항에 있어서,
    상기 솔트 값은 각각의 부팅 시간을 변경하는 방법.
  26. 제21항에 있어서,
    상기 패스워드 증명은 비휘발성 랜덤 액세스 메모리에 저장되는 방법.
  27. 제21항에 있어서,
    상기 암호화 알고리즘은 해시-기반 메시지 인증 코드 알고리즘인 방법.
  28. 제21항에 있어서,
    상기 패스워드 검증기를 생성하는 단계는
    상기 암호화 알고리즘의 제1 반복을 위한 입력으로서 패스워드 및 솔트 값을 사용하는 단계; 및
    상기 제1 반복 후의 각각의 반복에 대해 그 각각의 반복을 위한 입력으로서 상기 암호화 알고리즘의 바로 앞의 반복으로부터의 출력을 사용하는 단계
    를 포함하는 방법.
KR1020137021362A 2011-01-14 2012-01-13 변형 억제 부팅 시스템 및 방법 KR101476948B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/007,529 US8560845B2 (en) 2011-01-14 2011-01-14 System and method for tamper-resistant booting
US13/007,529 2011-01-14
PCT/US2012/021215 WO2012097231A2 (en) 2011-01-14 2012-01-13 System and method for tamper-resistant booting

Publications (2)

Publication Number Publication Date
KR20130114726A KR20130114726A (ko) 2013-10-17
KR101476948B1 true KR101476948B1 (ko) 2014-12-24

Family

ID=45582028

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137021362A KR101476948B1 (ko) 2011-01-14 2012-01-13 변형 억제 부팅 시스템 및 방법

Country Status (7)

Country Link
US (1) US8560845B2 (ko)
EP (1) EP2663945A2 (ko)
JP (1) JP5703391B2 (ko)
KR (1) KR101476948B1 (ko)
CN (1) CN103502992B (ko)
AU (1) AU2012205457B2 (ko)
WO (1) WO2012097231A2 (ko)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9860274B2 (en) 2006-09-13 2018-01-02 Sophos Limited Policy management
US9235532B2 (en) * 2011-06-03 2016-01-12 Apple Inc. Secure storage of full disk encryption keys
WO2013009619A2 (en) 2011-07-08 2013-01-17 Openkeak Inc. System and method for validating components during a booting process
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
US20140281539A1 (en) * 2012-03-30 2014-09-18 Goldman, Sachs & Co. Secure Mobile Framework With Operating System Integrity Checking
US8793506B2 (en) * 2012-08-31 2014-07-29 Intel Corporation Mechanism for facilitating encryption-free integrity protection of storage data at computing systems
US10175750B1 (en) * 2012-09-21 2019-01-08 Amazon Technologies, Inc. Projected workspace
JP6096301B2 (ja) 2012-10-25 2017-03-15 インテル コーポレイション ファームウェアにおける盗難防止
US9141811B2 (en) * 2013-08-01 2015-09-22 Dropbox, Inc. Coerced encryption on connected devices
JP5904596B2 (ja) * 2013-08-28 2016-04-13 Necプラットフォームズ株式会社 耐タンパ装置、及び方法
CN104951316B (zh) * 2014-03-25 2018-09-21 华为技术有限公司 一种内核可信启动方法和装置
US10089245B2 (en) * 2015-05-18 2018-10-02 Hewlett Packard Enterprise Development Lp Management of encryption keys for multi-mode network storage device
US9894061B2 (en) 2015-10-16 2018-02-13 International Business Machines Corporation Method for booting and dumping a confidential image on a trusted computer system
CN107045611B (zh) * 2016-02-05 2022-01-25 中兴通讯股份有限公司 安全启动方法及装置
US10541816B2 (en) 2016-06-01 2020-01-21 International Business Machines Corporation Controlling execution of software by combining secure boot and trusted boot features
KR102573921B1 (ko) * 2016-09-13 2023-09-04 삼성전자주식회사 바이러스/멀웨어로부터 안전한 저장 장치, 그것을 포함한 컴퓨팅 시스템 및 그것의 방법
US10621351B2 (en) * 2016-11-01 2020-04-14 Raptor Engineering, LLC. Systems and methods for tamper-resistant verification of firmware with a trusted platform module
US10387333B2 (en) 2017-01-05 2019-08-20 Qualcomm Incorporated Non-volatile random access memory with gated security access
US10467416B2 (en) * 2017-06-16 2019-11-05 International Business Machines Corporation Securing operating system configuration using hardware
US10885211B2 (en) 2017-09-12 2021-01-05 Sophos Limited Securing interprocess communications
JP6584487B2 (ja) * 2017-12-20 2019-10-02 キヤノン株式会社 情報処理装置、その制御方法およびプログラム
US11138315B2 (en) 2018-01-17 2021-10-05 Hewlett Packard Enterprise Development Lp Data structure measurement comparison
US11119789B2 (en) 2018-04-25 2021-09-14 Hewlett Packard Enterprise Development Lp Kernel space measurement
CN110677250B (zh) * 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN110795774B (zh) 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和***
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
JP7077873B2 (ja) 2018-08-29 2022-05-31 日本電気株式会社 情報処理装置、情報処理方法、およびプログラム
JP7077872B2 (ja) 2018-08-29 2022-05-31 日本電気株式会社 情報処理装置、情報処理方法、およびプログラム
US11068598B2 (en) * 2018-11-01 2021-07-20 Dell Products L.P. Chassis internal device security
CN110290146B (zh) * 2019-07-03 2021-10-08 北京达佳互联信息技术有限公司 分享口令的生成方法、装置、服务器及存储介质
DE102020211346A1 (de) * 2020-09-10 2022-03-10 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Booten einer elektronischen Vorrichtung
CN112131612B (zh) * 2020-09-30 2024-03-08 杭州安恒信息安全技术有限公司 一种cf卡数据防篡改方法、装置、设备及介质
CN112270002B (zh) * 2020-10-26 2024-03-22 北京指掌易科技有限公司 全盘加密方法、***运行方法和电子设备
CN112613011B (zh) * 2020-12-29 2024-01-23 北京天融信网络安全技术有限公司 U盘***认证方法、装置、电子设备及存储介质
US20220360594A1 (en) * 2021-05-05 2022-11-10 Sophos Limited Mitigating threats associated with tampering attempts
US11809568B2 (en) * 2021-05-12 2023-11-07 International Business Machines Corporation Hypervisor having local keystore

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7360073B1 (en) * 2003-05-15 2008-04-15 Pointsec Mobile Technologies, Llc Method and apparatus for providing a secure boot for a computer system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3293760B2 (ja) * 1997-05-27 2002-06-17 株式会社エヌイーシー情報システムズ 改ざん検知機能付きコンピュータシステム
US6985583B1 (en) * 1999-05-04 2006-01-10 Rsa Security Inc. System and method for authentication seed distribution
TW591630B (en) * 2002-06-04 2004-06-11 Key Technology Corp Data security device of storage medium and data security method
JP2004265286A (ja) * 2003-03-04 2004-09-24 Fujitsu Ltd 環境に応じて選択されたセキュリティ・ポリシーに従うモバイル機器の管理
US20050273858A1 (en) 2004-06-07 2005-12-08 Erez Zadok Stackable file systems and methods thereof
GB2419434A (en) 2004-10-23 2006-04-26 Qinetiq Ltd Encrypting data on a computer's hard disk with a key derived from the contents of a memory
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US20070039042A1 (en) * 2005-08-12 2007-02-15 First Data Corporation Information-security systems and methods
US8190916B1 (en) * 2006-07-27 2012-05-29 Hewlett-Packard Development Company, L.P. Methods and systems for modifying an integrity measurement based on user authentication
DE102008011925B4 (de) * 2008-02-29 2018-03-15 Globalfoundries Inc. Sicheres Initialisieren von Computersystemen
US20100082963A1 (en) * 2008-10-01 2010-04-01 Chun Hui Li Embedded system that automatically updates its software and the method thereof
US8788841B2 (en) * 2008-10-23 2014-07-22 Samsung Electronics Co., Ltd. Representation and verification of data for safe computing environments and systems
CN101739622A (zh) * 2008-11-06 2010-06-16 同方股份有限公司 一种可信支付计算机***
JP5346608B2 (ja) * 2009-02-06 2013-11-20 Kddi株式会社 情報処理装置およびファイル検証システム
JP5349114B2 (ja) * 2009-03-31 2013-11-20 株式会社バッファロー 記憶装置
DE112009004950T5 (de) * 2009-07-12 2012-07-12 Hewlett-Packard Development Co., L.P. Verfahren, System und Vorrichtung zum Sichern einer digitalen Speichervorrichtung
US20120151223A1 (en) * 2010-09-20 2012-06-14 Conde Marques Ricardo Nuno De Pinho Coelho Method for securing a computing device with a trusted platform module-tpm
US8566574B2 (en) * 2010-12-09 2013-10-22 International Business Machines Corporation Secure encrypted boot with simplified firmware update

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7360073B1 (en) * 2003-05-15 2008-04-15 Pointsec Mobile Technologies, Llc Method and apparatus for providing a secure boot for a computer system

Also Published As

Publication number Publication date
JP5703391B2 (ja) 2015-04-15
EP2663945A2 (en) 2013-11-20
US20120185683A1 (en) 2012-07-19
US8560845B2 (en) 2013-10-15
AU2012205457B2 (en) 2015-11-19
KR20130114726A (ko) 2013-10-17
JP2014505943A (ja) 2014-03-06
WO2012097231A2 (en) 2012-07-19
WO2012097231A3 (en) 2013-09-12
CN103502992B (zh) 2016-01-13
AU2012205457A1 (en) 2013-08-01
CN103502992A (zh) 2014-01-08

Similar Documents

Publication Publication Date Title
KR101476948B1 (ko) 변형 억제 부팅 시스템 및 방법
CN109313690B (zh) 自包含的加密引导策略验证
EP1679632B1 (en) Systems and methods for securely booting a computer with a trusted processing module
US20060236122A1 (en) Secure boot
JP6371919B2 (ja) セキュアなソフトウェアの認証と検証
CN101657792A (zh) 可信部件更新***和方法
KR20180013854A (ko) 전자 디바이스의 무결성을 검증하기 위한 시스템 및 방법
CN112257086A (zh) 一种用户隐私数据保护方法及电子设备
US20210367781A1 (en) Method and system for accelerating verification procedure for image file
CN104794394A (zh) 一种虚拟机启动校验的方法及装置
CN115934194A (zh) 一种控制器启动方法、装置、电子设备及储存介质
US8499357B1 (en) Signing a library file to verify a callback function
CN113626819A (zh) 一种安全挂载存储装置的方法及***
CN114186283A (zh) 记录电子设备部件的修改指示
WO2016024967A1 (en) Secure non-volatile random access memory
CN116089967B (zh) 数据防回滚方法和电子设备
US20240195636A1 (en) Hardened Encoded Message Check for RSA Signature Verification
CN117874773A (zh) 基于安全等级管控策略的操作***安全启动方法及装置
CN116707885A (zh) 一种基于tpcm生成随机密钥的安全可信启动方法及***

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: 20171117

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 5