KR20160117216A - 정보처리장치 및 정보처리장치의 제어방법 - Google Patents

정보처리장치 및 정보처리장치의 제어방법 Download PDF

Info

Publication number
KR20160117216A
KR20160117216A KR1020160035058A KR20160035058A KR20160117216A KR 20160117216 A KR20160117216 A KR 20160117216A KR 1020160035058 A KR1020160035058 A KR 1020160035058A KR 20160035058 A KR20160035058 A KR 20160035058A KR 20160117216 A KR20160117216 A KR 20160117216A
Authority
KR
South Korea
Prior art keywords
information processing
processing apparatus
secure chip
hash value
pcr
Prior art date
Application number
KR1020160035058A
Other languages
English (en)
Other versions
KR102062073B1 (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 KR20160117216A publication Critical patent/KR20160117216A/ko
Application granted granted Critical
Publication of KR102062073B1 publication Critical patent/KR102062073B1/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/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/81Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

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

Abstract

시큐어 칩을 갖는 정보처리장치는, 상기 정보처리장치가 휴지 상태로부터 복귀했는지 아닌지를 판정하는 판정 유닛과, 상기 판정 유닛에 의해 상기 정보처리장치가 휴지 상태로부터 복귀했다고 판정되었을 경우, 상기 시큐어 칩의 초기화를, 어플리케이션 소프트웨어를 기동하기 전에 검출하는 검출 유닛과, 상기 검출 유닛에 의해 상기 시큐어 칩의 초기화가 검출되었을 경우, 초기화되어 있는 상기 시큐어 칩에, 상기 어플리케이션 소프트웨어의 해시 값이 등록되지 않도록 상기 정보처리장치의 동작을 제어하는 제어 유닛을 포함한다.

Description

정보처리장치 및 정보처리장치의 제어방법{INFORMATION PROCESSING APPARATUS AND METHOD OF CONTROLLING THE APPARATUS}
본 발명은, 시큐어 칩(secure chip)을 갖는 정보처리장치 및 정보처리장치의 제어방법에 관한 것이다.
시큐어 칩을 사용하여, 컴퓨터상에서 동작하는 컴퓨터 프로그램의 개찬(tampering) 검출을 행하는 것이 제안되어 있다. 일반적인 시큐어 칩으로서는, 휘발성 메모리 및 불휘발성 메모리를 갖는 TPM(Trusted Platform Module)이 있다.
예를 들면, 컴퓨터의 기동 후, 컴퓨터의 CPU(central processing unit)가 실행한 컴퓨터 프로그램의 해시 값을 TPM 내의 휘발성 메모리에 순차 등록해 둔다. 컴퓨터 프로그램에는, 부트 로더(boot loader), 오퍼레이팅 시스템(OS), 및 어플리케이션 소프트웨어 등이 포함된다. 등록 후, 실행 중의 컴퓨터 프로그램으로부터 재계산된 해시 값과, TPM 내의 휘발성 메모리에 등록된 해시 값을 비교해, 컴퓨터 프로그램이 개찬되었는지 아닌지를 검출한다.
또한, 전력 절약 모드 등의 휴지 상태로부터의 복귀 시에, 해당 컴퓨터 내의 메모리 내 데이터의 개찬 검출를 행하는 기술도 제안되어 있다.
컴퓨터가 전력 절약 모드에 있어서의 휴지 상태에 들어가면, TPM으로의 전원공급이 정지되기 때문에, TPM 내의 휘발성 메모리에 등록한 해시 값은 소실해버린다. 따라서, 컴퓨터가 휴지 상태로부터 복귀할 때에는, 이미 TPM 내의 휘발성 메모리에 등록한 해시 값은 소실해버렸다. 해시 값이 소실해버렸으면, 개찬 검출을 행할 수 없기 때문에, TPM에서는 이하와 같은 대처가 이루어질 수 있다.
즉, TPM은 휴지 상태로 이행하기 전에, TPM 내의 휘발성 메모리에 등록된 해시 값을, 불휘발성 메모리로 퇴피시킨다. 퇴피 후, 전원공급을 정지한다. 휴지 상태로부터의 복귀 후, 불휘발성 메모리로 퇴피한 해시 값을 휘발성 메모리에 복원한다.
일본국 공개특허공보 특개 2009-187134호에는 상기 해시 값의 퇴피에 관한 기술이 개시되어 있다. 구체적으로는, 컴퓨터가 휴지 상태로 변경되기 전의 메모리의 스냅샷(snapshot)의 해시 값을, TPM 내의 불휘발성 메모리에 저장해 둔다. 그리고, 컴퓨터가 휴지 상태로부터의 복귀 시에, 스냅샷으로부터 재계산한 해시 값과 불휘발성 메모리에 저장되어 있는 해시 값을 비교한다.
그렇지만, TPM이 휘발성 메모리에 등록된 해시 값을 불휘발성 메모리에 퇴피한 후, CPU가 어플리케이션 소프트웨어를 실행했을 경우, 해당 어플리케이션 소프트웨어의 해시 값이, 재차, 휘발성 메모리에 등록되게 된다.
즉, 이 시점에서 불휘발성 메모리의 내용과 휘발성 메모리와의 내용이 일치하지 않게 된다. 이들 메모리 내용 간의 불일치의 발생을 방지하기 위해서, TPM에서는, 휘발성 메모리의 내용을 불휘발성 메모리에 퇴피한 후에 휘발성 메모리에 해시 값이 등록되었을 경우, 불휘발성 메모리의 내용을 초기화한다.
휴지 상태로의 이행 전에 불휘발성 메모리가 초기화되었을 경우, 컴퓨터가 휴지 상태로부터 복귀할 때에는 휘발성 메모리에는 초기값이 복원되게 된다. 이 상태에서는, 이미 기동하고 있는 어플리케이션 소프트웨어가 개찬되었는지 아닌지를 검출할 수는 없다. 또한, 새롭게 기동하는 어플리케이션 소프트웨어의 해시 값을 등록하려고 하면, 부트 로더나 오퍼레이팅 시스템 등의 다른 소프트웨어의 해시 값이 등록되어 있지 않은 상태에서 해시 값이 등록되어버린다. 부트 로더나 오퍼레이팅 시스템 등의 다른 소프트웨어의 해시 값이 등록되어 있지 않은 상태에서 개찬 검출을 행하면, 개찬이 수행된 것으로 판정한다.
본 발명은, 시큐어 칩을 보유하는 정보처리장치가 휴지 상태로부터 복귀한 후, 해당 시큐어 칩에 어플리케이션 소프트웨어의 해시 값을 등록할 때에 문제가 발생하는 것을 방지할 수 있는 정보처리장치를 제공한다.
본 발명은, 정보처리장치가 휴지 상태로부터 복귀했는지 아닌지를 판정하는 판정 유닛과, 상기 판정 유닛에 의해 상기 정보처리장치가 휴지 상태로부터 복귀했다고 판정되었을 경우, 시큐어 칩의 초기화를, 어플리케이션 소프트웨어를 기동하기 전에 검출하는 검출 유닛과, 상기 검출 유닛에 의해 상기 시큐어 칩의 초기화가 검출되었을 경우, 초기화되어 있는 상기 시큐어 칩에, 상기 어플리케이션 소프트웨어의 해시 값이 등록되지 않도록 상기 정보처리장치의 동작을 제어하는 제어 유닛을 포함하는, 해시 값을 등록 가능한 시큐어 칩을 갖는 정보처리장치를 제공한다.
본 발명의 추가 특징들은, 첨부도면을 참조하면서 이하의 예시적인 실시예의 설명으로부터 밝혀질 것이다.
도 1은 제1 실시예에 있어서의 정보처리장치의 기본 하드웨어 구성의 예를 설명하는 블럭도이다.
도 2a 및 2b는 제1 실시예에 있어서의 기동 처리를 설명하는 도면이다.
도 3a 내지 3d는 제1 실시예에 있어서의 휴지 상태 이행 처리를 설명하는 도면이다.
도 4a 내지 4c는 제1 실시예에 있어서의 시스템 복귀 처리를 설명하는 도면이다.
도 5a 및 5b는 제2 실시예에 있어서의 시스템 복귀 처리를 설명하는 도면이다.
도 6a 및 6b는 제4 실시예에 있어서의 시스템 복귀 처리를 설명하는 도면이다.
도 7a 및 7b는 제5 실시예에 있어서의 시스템 복귀 처리를 설명하는 도면이다.
도 8a 내지 8c는 제5 실시예에 있어서의 데이터 이용 제한 처리 및 데이터 이용 처리를 설명하는 도면이다.
도 9a 내지 9d는 제5 실시예에 있어서의 개찬 검출 처리를 설명하는 도면이다.
도 10a 내지 10c는 제3 실시예에 있어서의 TPM 이용 처리를 설명하는 도면이다.
도 11은 제1 실시예에 있어서의 또 다른 휴지 상태 이행 처리를 설명하는 도면이다.
[실시예]
<제1 실시예>
<정보처리장치의 하드웨어 구성>
처음에, 도 1을 참조하여, 제1 실시예에 적용 가능한 정보처리장치의 예시적인 하드웨어 구성에 관하여 설명한다. 도 1은 제1 실시예에 따른 정보처리장치의 하드웨어의 기본구성을 도시한 블럭도다. 도 1을 참조하여, 정보처리장치(11)는, 예를 들면 일반적으로 보급되어 있는 퍼스널 컴퓨터 또는 정보 휴대 단말, 화상 데이터의 카피, 스캔, 프린트 등을 실행 가능한 화상처리장치, 또는 디지털 사진을 촬영 가능한 촬상장치 등이다.
도 1에 나타나 있는 바와 같이, 제1 실시예에 있어서의 정보처리장치(11)는, ROM(read only memory)(12), HDD(hard disk drive)(14), RAM(random access memory)(110), CPU(111), TPM(112)으로 구성된다.
ROM(12)은, 물리적 또는 논리적인 고쳐 쓰기가 가능한 불휘발성 메모리이며, BIOS(Basic Input/Output System)(13), (도면에 나타내지 않은) 각종 프로그램, 및 데이터를 기억 가능한 보조 기억부다. BIOS(13)는 정보처리장치(11) 전체를 제어하는 프로그램이다. BIOS(13)는, 정보처리장치(11)에 전원이 투입되었을 때, 정보처리장치(11) 내부에서 최초로 기동되는 컴퓨터 프로그램이다.
HDD(14)는, 부트 로더(15), OS(16), 어플리케이션 17, 어플리케이션 18, 어플리케이션 19, 및 다양한 데이터를 기억 가능한 보조 기억부다. 부트 로더(15)는, 다음에 기동해야 할 OS의 특정·기동을 포함하는 제어를 한다. OS(16)는, 다양한 어플리케이션의 로딩, RAM(110)의 관리, 및 (도면에 나타내지 않은) 키보드와 화면 출력을 포함하는 입출력 기능을 제어하는 프로그램이다. 어플리케이션 17, 어플리케이션 18, 및 어플리케이션 19의 각각은, 주소록, 메일, 워드프로세서, 표계산, 데이터베이스 관리, 네트워크 브라우저 등이다. 그 밖에도, 어플리케이션 17, 어플리케이션 18, 및 어플리케이션 19의 각각은 영상 및/또는 음성 재생, 인쇄, 통신 등, 정보처리장치(11)의 이용자가 실행하고 싶은 작업을 기능으로서 제공하는 프로그램(어플리케이션 소프트웨어)이다. 제1 실시예에 있어서는, 정보처리장치(11)에 3개의 어플리케이션이 탑재되어 있는 예를 설명하지만, 제1 실시예는 이것에 한정되지 않는다. 정보처리장치(11)에는 임의 수의 어플리케이션을 탑재해도 된다.
RAM(110)은 휘발성 메모리이다. CPU(111)에서 처리를 행하기 위해서 일시적으로 프로그램 및 각종 데이터(동작 상태)를 기억하는 주기억부다.
CPU(111)는, 정보처리장치(11) 내의 각 부의 동작을 제어, 또는 RAM(110)에 로드된 프로그램을 실행하는 것이 가능한 전자회로다.
TPM(112)은, 내 탬퍼성(tamper resistance)을 갖는 시큐어 칩이다. 내 탬퍼성은, 외부에서의 해석을 곤란하게 하는 동시에, 외부에서 해석하려고 했을 경우에 내부에 기억되어 있는 프로그램 또는 데이터를 파괴함으로써 자기 방위하는 특성이다. 또한, TPM(112)은, 제어부(113), NvRAM(114), 및 PCR(platform configuration register)(115)로 구성되어 있다.
제어부(113)는, 후술하는 PCR(115)에의 해시 값 등록, 디지털 서명 생성, 암호 복호 등을 실행한다. NvRAM(114)은 불휘발성 메모리이며, 후술하는 해시 값뿐 아니라, 디지털 서명의 생성에 필요한 비밀키, 암호 복호에 필요한 암호키 등을 기억한다. PCR(115)은 휘발성 메모리(레지스터)이며, 정보처리장치(11) 내에서 실행된 프로그램의 해시 값에 근거한 값을 기억한다. 이후의 설명에 있어서는, 프로그램은, 전술한 BIOS(13), 부트 로더(15), OS(16), 어플리케이션 17, 어플리케이션 18, 및 어플리케이션 19 중의 어느 하나이다.
제1 실시예에 있어서의 정보처리장치(11)에 있어서, 후술하는 휴지 상태에서는, TPM(112)으로의 전원공급은 정지된다. 다시 말해, TPM(112) 내의 NvRAM(114)은 불휘발성 메모리이기 때문에, NvRAM(114) 내부의 데이터는 휴지 상태에서도 유지된다. 한편, PCR(115)은 휘발성 메모리이기 때문에, 정보처리장치(11)가 휴지 상태가 되었을 때에, PCR(115) 내부의 정보는 파기된다(초기값으로 초기화된다). 다시 말해, 정보처리장치(11)가 휴지 상태로 변경되기 전에 PCR(115)에 보유되어 있었던 데이터는, 정보처리장치(11)가 휴지 상태로부터 복귀한 후에 PCR(115)에 보유되어 있지 않다는 것에 유의해야 한다.
이상, 제1 실시예에 있어서의 정보처리장치의 하드웨어 구성에 관하여 설명했다.
<기동 처리 플로우>
다음에, 도 2a를 참조하여, 제1 실시예에 있어서의 기동 처리의 상세를 설명한다. 이하의 플로우는, 전술한 정보처리장치(11) 내에서 실행되고, 각 스텝은 해당하는 프로그램 및 그 프로그램을 실행하는 CPU(111)에 의해 실현된다.
도 2a는, 제1 실시예에 적용 가능한 기동 처리의 예를 나타내는 플로차트이다.
우선, 정보처리장치(11)에 전원이 투입되면, 스텝 21에 있어서, BIOS(13)가 기동된다. BIOS(13)는, 스텝 22에 있어서, BIOS(13)의 해시 값을 계측하고, 계측한 해시 값을 TPM(112)에 등록한다.
여기에서, 제1 실시예에 있어서의 계측처리 및 등록 처리에 관하여 설명한다. 계측처리는, 계측대상인 프로그램 코드의 해시 값을 산출하는 처리이다. 제1 실시예에 있어서는, 해시 값을 산출하기 위한 해시 함수는 특히 한정되지 않고, SHA1, SHA256, SHA512를 포함하는 공지의 다양한 해시 함수가 적용 가능하다. 또는, 계측대상이 되는 프로그램을 독특하게 식별 가능한 특징량을 산출 가능한 함수이면, 임의의 함수가 적용 가능하다.
등록 처리는, 계측 처리에 의해 산출된 해시 값을, TPM(112)에 송신하고, TPM(112) 내부에서 다음의 식에 따라 산출한 값을 PCR(115)에 기록하는 처리다.
DATA_i+1 = H(DATA_i|INPUT) (1)
식(1)에서, INPUT는 TPM(112)의 외부로부터 입력된 해시 값이며, DATA_i는 TPM(112)에 등록하는 시점에서, 이미 PCR(115)에 기록되어 있는 값이다. 또한, "x|y"는 값 x와 값 y 간의 연결 처리를 나타낸다. 또한, DATA_i+1은 TPM(112)의 외부로부터 값 INPUT가 입력되었을 경우에 산출되는 결과다. 다시 말해, TPM(112)에 INPUT가 입력되었을 경우에, DATA_i+1이 TPM(112) 내의 PCR(115)에 기록되게 된다.
제1 실시예에 있어서는, i=0인 경우의 PCR의 초기값 (DATA_0)은 제로("0")인 것으로 한다. 그렇지만, 제1 실시예는 이것에 한정되지 않고, PCR의 초기값은 0 이외의 임의인 정수여도 된다.
제1 실시예에 있어서는, PCR(115)은 5개의 기억영역으로 구성되고, 각각의 기억영역은 식별자(ID)로 식별될 수 있다. 도 2b는, 제1 실시예에 있어서의 PCR의 구성 예를 나타낸다. 도 2b의 참조번호 29로 나타낸 것처럼, 제1 실시예에 있어서의 PCR은, ID1∼5로 식별된 5개의 영역을 구비한다. 한편, 제1 실시예에 있어서는, PCR은 5개의 영역을 구비하는 예에 대해 설명하지만, 제1 실시예는 이것에 한정되지 않는다. PCR은 임의의 수의 영역을 구비하는 것도 가능하다.
도 2b의 참조번호 29는, 정보처리장치(11)의 기동 전의 PCR의 상태를 나타낸다. 다시 말해, 전술한 바와 같이, 초기값 "0"이 PCR의 각 영역에 기억되어 있다. 한편, 도 2b의 참조번호 211은, 스텝 22에 있어서의 BIOS의 계측 처리·등록 처리 후의 PCR의 상태를 나타낸다. 참조번호 211로 나타낸 것처럼, BIOS의 해시 값을 INPUT로서 이용해서, 식(1)에 의거하여 DATA_1이 산출되고, 그 산출 결과가 H1로서 PCR1에 기록된다. PCR1은 PCR의 ID=1을 갖는 기억영역이다. 이후의 설명에서는, PCRn(n=1∼5)은, PCR의 ID=n을 갖는 기억영역을 나타낸다.
도 2a로 돌아가서, 스텝 23에 있어서, BIOS(13)은, 부트 로더(15)의 해시 값을 계측하고, 계측한 해시 값을 TPM(112)에 등록한다. 스텝 23에 있어서의 부트 로더의 계측 처리·등록 처리는, 전술한 스텝 22에 있어서의 BIOS의 계측 처리·등록 처리와 같기 때문에, 상세한 설명은 생략한다. 스텝 23에서는, 부트 로더(15)의 해시 값을 INPUT로서 이용해서, 식(1)에 따라 산출된 값을 PCR2에 H2로서 등록한다. 도 2b의 참조번호 213은, 스텝 23에 있어서의 부트 로더의 계측 처리·등록 처리 후의 PCR의 상태를 나타낸다. 스텝 24에 있어서, BIOS(13)은, 부트 로더(15)를 기동한다.
스텝 25에 있어서, 부트 로더(15)는, OS(16)의 해시 값을 계측하고, 계측한 해시 값을 TPM(112)에 등록한다. 스텝 25에 있어서의 OS의 계측 처리·등록 처리는, 전술한 스텝 22 및 스텝 23과 같기 때문에, 여기에서는 그 상세한 설명은 생략한다. 스텝 25에서는, OS(16)의 해시 값을 INPUT로서 이용해서 식(1)에 의거하여 산출된 값을 PCR3에 H3로서 등록한다. 도 2b의 참조번호 215는, 스텝 25에 있어서의 OS의 계측 처리·등록 처리 후의 PCR의 상태를 나타낸다.
스텝 26에 있어서, 부트 로더(15)는, OS(16)를 기동한다. 스텝 27에 있어서, OS(16)는, 어플리케이션 17의 해시 값을 계측하고, 계측한 해시 값을 TPM(112)에 등록한다. 스텝 27에 있어서의 어플리케이션의 계측 처리·등록 처리는 전술한 계측 처리·등록 처리와 같기 때문에, 여기에서는 상세한 설명은 생략한다. 스텝 27에서는, 어플리케이션 17의 해시 값을 INPUT로서 이용해서, 식(1)에 의거하여 산출된 값을 PCR4에 H4로서 등록한다. 도 2b의 참조번호 217은, 스텝 27에 있어서의 어플리케이션의 계측 처리·등록 처리 후의 PCR의 상태를 나타낸다.
한편, 제1 실시예에서는, 기동 처리에 있어서, 1개의 어플리케이션 17만을 기동하지만, 제1 실시예는 이것에 한정되지 않는다. 임의 수의 어플리케이션을 기동해도 된다.
스텝 28에 있어서, OS(16)은, 어플리케이션 17을 기동한다.
이상, 제1 실시예에 있어서의 기동 처리의 플로우에 관하여 설명했다. 이상에서 설명한 것처럼, 정보처리장치(11)에 전원이 투입되면, BIOS(13), 부트 로더(15), OS(16), 및 어플리케이션 17의 프로그램이 순차적으로 기동한다. 일련의 기동 처리의 스텝 중에서, 각 프로그램의 해시 값이 순차 PCR에 기록되고, 정보처리장치(11)의 기동 처리가 완료하면, PCR은 도 2b의 참조번호 217로 나타낸 상태가 된다. 다시 말해, 기동 처리가 완료한 시점에서는, 정보처리장치(11)의 내부에서 실행하고 있는 모든 프로그램의 해시 값이 PCR에 기록되게 된다.
한편, 도 2b의 참조번호 210, 212, 214, 216, 및 218은, TPM(112) 내의 NvRAM(114)의 상태를 나타낸다. 제1 실시예에 있어서는, NvRAM(114)도 PCR(115)과 마찬가지로, 5개의 기억영역으로 구성되고, 각각의 기억영역은 그것의 ID로 식별 가능하다. 한편, 제1 실시예에 있어서는, NvRAM가 5개의 영역을 구비하는 것으로서 설명하지만, 제1 실시예는 이것에 한정되지 않는다. NvRAM은 임의의 수의 영역을 구비할 수도 있다. 제1 실시예에 있어서는, 기동 처리의 과정에서, NvRAM(114)에는 어떤 값도 기록되지 않기 때문에, 도 2b의 상태 210, 212, 214, 216, 및 218에는, 초기값 "0"이 등록되게 된다.
이상에서 설명한 기동 처리에 의해, PCR(115)에 등록된 해시 값이, 후술하는 데이터 이용 제한 처리와 개찬 검출 처리에 이용되게 된다.
<휴지 상태 이행 처리>
다음에, 도 3a을 참조하여, 제1 실시예에 있어서의 휴지 상태 이행 처리의 상세를 설명한다. 이하의 플로우는, 전술한 정보처리장치(11)에서 실행되고, 이 플로우에 있어서의 각 스텝은 해당하는 프로그램 및 그 프로그램을 실행하는 CPU(111)에 의해 실현된다.
도 3a은, 제1 실시예에 적용 가능한 휴지 상태 이행 처리의 예를 나타내는 플로차트이다.
정보처리장치(11)의 이용자가, (도면에 나타내지 않은) 키보드, 마우스, 및/또는 버튼 등을 이용하여, 정보처리장치(11)에 대하여 휴지 상태 이행 처리의 실행을 지시했을 때에, 휴지 상태 이행 처리가 개시된다. 또는, 정보처리장치(11)에 대한 조작이, 소정 시간 발생하지 않았을 경우에, 정보처리장치(11)가 자동으로 휴지 상태 이행 처리를 시작해도 된다.
휴지 상태 이행 처리가 개시되면, 스텝 31에 있어서, TPM(112) 내의 PCR(115) 내의 값이 NvRAM(114)로 퇴피된다. 스텝 31에 있어서의 처리의 상세를, 도 3b을 참조하여 설명한다. 도 3b의 참조 번호 35 및 36은, 각각 스텝 31에 있어서 PCR 내의 값이 NvRAM(114)으로 퇴피되기 전의 PCR(115) 및 NvRAM(114)의 상태를 나타낸다. 참조 번호 35 및 36으로 나타낸 상태는, 도 2b에 있어서의 참조번호 217, 및 218로 나타낸 상태와 같다. 스텝 31에 있어서는, PCR(115)에 보유되어 있는 해시 값을 NvRAM(114)에 복사한다. 결과적으로, PCR 내의 값의 퇴피 후에, NvRAM(114)은 도 3b의 참조번호 38로 나타낸 상태가 된다. 한편, 스텝 31에 있어서 PCR(115)의 내부 상태는 변화되지 않는다. 따라서, 도 3b의 참조번호 37로 나타낸 상태는, 참조번호 35로 나타낸 상태와 같다.
스텝 31에 있어서의 PCR 내의 값의 퇴피 처리 후, 스텝 32에 있어서, 정보처리장치(11)는 휴지 상태로 변경된다. 제1 실시예에 있어서는, 휴지 상태에 있어서, 정보처리장치(11) 내의 RAM(110)에의 전원공급은 계속되지만, TPM(112)에의 전원공급은 정지된다. 상술한 바와 같이, TPM(112) 내의 PCR(115)은 휘발성 메모리이기 때문에, 스텝 32에 있어서 정보처리장치(11)가 휴지 상태로 변경되면, PCR(115) 내의 해시 값은 파기되어, 초기값 "0"으로 초기화된다. 도 3b의 참조번호 39는, 휴지 상태에 있어서의 PCR(115)의 상태를 나타낸다. 휴지 상태에 있어서는, TPM(112)에 전원공급이 정지되기 때문에, PCR(115)은 초기값 "0"으로 초기화되어 있다.
한편, TPM(112) 내의 NvRAM(114)은 불휘발성 메모리이기 때문에, 스텝 32에 있어서, 가령 정보처리장치(11)가 휴지 상태가 되어도, NvRAM(114) 내의 해시 값은 계속해서 유지된다. 도 3b의 참조번호 310은, 휴지 상태에 있어서의 NvRAM(114)의 상태를 나타낸다.
제1 실시예에서는, 후술하는 시스템 복귀 처리에 있어서, 정보처리장치(11)가 시스템 복귀 상태인지 아닌지를 판정하기 위해서, 정보처리장치(11)가 휴지 상태인 것을 나타내는 플래그를, HDD(14)에 기록해 둔다.
이상, 제1 실시예에 있어서의 휴지 상태 이행 처리에 관하여 설명했다.
한편, 도 3a에 나타낸 휴지 상태 이행 처리에서는, 스텝 31에 있어서의 NvRAM(114)로 PCR 내의 값을 퇴피한 직후에, 정보처리장치(11)가 스텝 32에 있어서 휴지 상태로 변경된다. 그렇지만, 제1 실시예는 이것에 한정되지 않는다. 스텝 31에 있어서의 NvRAM(114)로 PCR 내의 값을 퇴피한 후에, 어플리케이션이 기동될 수도 있다. 이러한 상황은, 원래 상정되고 있지 않지만, 이 상황은 실행 우선도가 높은 어플리케이션의 경우나, 시스템의 인터럽트 등에 의해, 의도하지 않게 어플리케이션이 기동할 경우에 발생할 수 있다. 또는, 스텝 31에 있어서 PCR(115) 내의 값을 NvRAM(114)로 퇴피한 후에, 맬웨어(malware)가 의도적으로 기동하는 경우도 있다.
이후에서는, 도 3c을 참조하여, 스텝 31에 있어서의 NvRAM(114)로 PCR(115) 내의 값을 퇴피한 후에, 어플리케이션이 기동하는 경우의 휴지 상태 이행 처리에 관하여 설명한다. 이하의 플로우는, 전술한 정보처리장치(11)에서 실행되고, 이 플로우에 있어서의 각 스텝은 해당하는 프로그램 및 그 프로그램을 실행하는 CPU(111)에 의해 실현된다.
도 3c는, 제1 실시예에 적용 가능한 휴지 상태 이행 처리의 예를 나타내는 플로차트이다. 도 3a와 도 3c에 있어서 같은 스텝에는, 같은 스텝 번호를 부여하고, 그러한 스텝의 상세한 설명은 생략한다. 도 3d는, 휴지 상태 이행 처리에 있어서의 PCR(115) 및 NvRAM(114)의 상태의 변화를 설명하는 도면이다. 도 3b와 도 3d에서 같은 상태에는, 같은 참조 번호를 부여하고, 그러한 상태의 상세한 설명은 생략한다.
도 3c를 참조하면, 스텝 31에 있어서 NvRAM(114)로 PCR(115) 내의 값을 퇴피한 후, 스텝 33에서는, 어플리케이션 18의 계측 처리·등록 처리를 실행한다. 스텝 33에서는, 어플리케이션 18의 해시 값을 INPUT로서 이용하여 식(1)에 의거하여 산출된 값을 PCR5에 H5로서 등록한다. 어플리케이션 18의 계측 처리·등록 처리 후, 스텝 34에서, 어플리케이션 18을 실행한다.
도 3d의 참조번호 311은, 스텝 33에 있어서의 어플리케이션 18의 계측 처리·등록 처리 후의 PCR의 상태를 나타낸다. 이 시점에서, NvRAM(114)의 상태 38에서의 PCR5의 값과, 어플리케이션 18의 계측 처리·등록 처리를 실행한 후의 상태 311에서의 PCR5의 값이 다르다는 점에 유의해야 한다. 상세한 것은 후술하는 시스템 복귀 처리에 있어서 설명하지만, 이 단계에서 NvRAM(114)로 퇴피해 있는 해시 값(상태 38)이, 시스템 복귀 후에 PCR(115)로 복원된다. 이 경우, 정보처리장치(11)가 휴지 상태로 변경되기 전의 PCR(115)의 상태(상태 311)와, 정보처리장치(11)가 휴지 상태로부터 복귀한 후의 PCR(115)의 상태는 일치하지 않는다. 다시 말해, 스텝 34에서 실행된 어플리케이션 18의 해시 값이, 정보처리장치(11)가 휴지 상태로부터 복귀한 후의 PCR(115)에 반영되지 않는다.
이 상황을 피하기 위해서, 제1 실시예에 있어서는, 스텝 35에 있어서, NvRAM(114)을 초기화한다. 스텝 35에 있어서 NvRAM(114)을 초기값 "0"로 초기화한 후의 NvRAM(114)의 상태를 도 3d의 참조번호 312로 나타낸다.
스텝 35에 있어서 NvRAM(114)의 초기화 후, 스텝 32에 있어서, 정보처리장치(11)가 휴지 상태로 변경된다. 정보처리장치(11)가 휴지 상태로 변경된 후의, PCR(115) 및 NvRAM(114)의 상태를, 각각 도 3d의 참조번호 313 및 314로 나타낸다. TPM(112)에의 전원 공급이 정지되기 때문에, 불휘발성 메모리인 PCR(115)은 초기화된다. 한편, NvRAM(114)은, 스텝 35에서 초기화된 상태로 유지된다.
이상에서 설명한 바와 같이, 제1 실시예에 있어서 휴지 상태의 정보처리장치(11)의 PCR(115)은, 초기값을 갖는다. 한편, NvRAM(114)은, 도 3b의 상태 310과 같이, 기록된 해시 값을 갖거나, 또는 도 3b의 상태 314와 같이 초기화된다.
정보처리장치(11)가 휴지 상태로의 이행 처리를 수행할 때에, PCR 내의 값의 퇴피 후에 어플리케이션이 실행되었는지 아닌지를 판정해도 된다. 도 11은, PCR 내의 값의 퇴피 후에 어플리케이션이 실행되었는지 아닌지를 판정하는 스텝을 포함하는 휴지 상태 이행 처리를 나타내는 플로차트이다. 도 11에 나타낸 바와 같이, PCR 내의 값의 퇴피 후에 어플리케이션이 실행되었을 경우, 정보처리장치(11)가 휴지 상태로 들어가는 것을 방지하고, 유저에게 모니터 표시 등으로 알러트(alert) 등의 통지를 행하도록 하고 있다. 이렇게 함으로써 NvRAM이 초기화된 상태에서 정보처리장치(11)가 휴지 상태로 변경되는 것을 방지할 수 있다.
이상, 제1 실시예에 있어서의 휴지 상태 이행 처리에 관하여 설명했다.
<시스템 복귀 처리>
다음에, 도 4a을 참조하여, 제1 실시예에 있어서의 시스템 복귀 처리의 상세를 설명한다. 이하의 플로우는, 전술한 정보처리장치(11) 내에서 실행되고, 이 플로우의 각 스텝은 해당하는 프로그램 및 그 프로그램을 실행하는 CPU(111)에 의해 실현된다.
도 4a는, 제1 실시예에 적용 가능한 시스템 복귀 처리의 예를 나타내는 플로차트이다. 도 3a 또는 3c를 참조하여 설명한 휴지 상태 이행 처리에 의해 휴지 상태가 되어 있는 정보처리장치(11)에 대하여, 이용자가 (도면에 나타내지 않은) 키보드, 마우스, 및/또는 버튼을 사용하여, 시스템 복귀 처리의 실행을 지시했을 때에, 시스템 복귀 처리가 개시된다.
도 4a를 참조하면, 스텝 41에 있어서는, 정보처리장치(11)가 휴지 상태로부터 복귀했는지 아닌지가 판정된다. 이것은, 전술한 도 3a 또는 도 3c의 스텝 32에 있어서, HDD(14)에 기록해 둔 플래그를 근거해 판정된다. 플래그가 정보처리장치(11)가 휴지 상태로부터 복귀한 것을 나타낼 경우(스텝 41에서 YES), 처리를 스텝 42로 진행시키고, 그렇지 않으면(스텝 41에서 NO), 처리를 스텝 46으로 진행시킨다.
스텝 42에서는, NvRAM(114)에 기록되어 있는 해시 값을 PCR(115)로 복귀시킨다(이하, PCR 복귀 처리라고 칭함). 이하에서는 제1 실시예에 있어서의 PCR 복귀 처리에 대해서, 도 4b 및 4c을 참조하여 설명한다. 도 4b의 참조번호 48 및 49는 각각 전술한 도 3a의 휴지 상태 이행 처리 후의 PCR(115)과 NvRAM(114)의 상태를 나타낸다. 상태 48, 및 49는 각각 전술한 도 3b의 상태 39 및 상태 310에 대응한다.
한편, 도 4c의 참조번호 414 및 415는 각각 전술한 도 3c의 휴지 상태 이행 처리 후의 PCR(115)과 NvRAM(114)의 상태를 나타낸다. 상태 414 및 415는 각각 전술한 도 3d의 상태 313 및 상태 314에 대응한다.
스텝 42에 있어서의 PCR 복귀 처리 후, 도 4b의 경우, NvRAM(114)의 상태 49가 PCR(115)에 복사되어, PCR(115)은 상태 410이 된다. 도 4c의 경우에는, NvRAM(114)의 상태 415가 PCR(115)에 복사되어, PCR(115)은 상태 416이 된다. 스텝 42에 있어서의 PCR 복귀 처리 후에도, NvRAM(114)의 상태는 변화되지 않는다. 따라서, 도 4b의 상태 49는 상태 411로 유지되고, 도 4c의 상태 415는 상태 417로 유지된다.
스텝 42에 있어서의 PCR 복귀 처리 후, 스텝 43에서는, PCR의 상태를 판독한다. 제1 실시예에 있어서는, 스텝 43에서 도 4b의 상태 410 또는 도 4c의 상태 416을 판독한다.
스텝 44에 있어서는, PCR이 초기값을 갖는지 아닌지가 판정된다. PCR이 초기값을 갖는 경우에는(스텝 44에서 YES), 처리를 스텝 45로 진행시키고, 그렇지 않으면(스텝 44에서 NO), 처리를 스텝 46로 진행시킨다.
정보처리장치(11)의 이용자가 (도면에 나타내지 않은) 마우스, 키보드, 및/또는 버튼 등에 의해, 어플리케이션 19의 실행을 지시했을 경우에, 스텝 46에서는, 어플리케이션 19의 해시 값을 계측하고, 계측한 해시 값을 TPM(112)에 등록한다. 스텝 46에 있어서의 어플리케이션 19의 계측·등록 처리는, 전술한 계측·등록 처리와 같은 방식으로 수행되기 때문에, 여기에서는 그것의 상세한 설명은 생략한다. 스텝 46에서는, 어플리케이션 19의 해시 값을 INPUT로서 사용해서, 식(1)에 의거하여 산출된 값을 PCR5에 H6로서 등록한다. 도 4b의 참조번호 412는, 스텝 46에 있어서의 어플리케이션 19 계측·등록 후의 PCR(115)의 상태를 나타낸다. 스텝 47에 있어서, 어플리케이션 19을 실행한다.
제1 실시예에 있어서는, 1개의 어플리케이션 19만을 실행하지만, 제1 실시예는 이것에 한정되지 않는다. 임의수의 어플리케이션을 실행하는 것이 가능하다. 이 경우에, 스텝 46 및 스텝 47이 반복된다.
스텝 45에서는, 정보처리장치(11)를 재기동한다. 재기동에 의해, 전술한 기동 처리(도 2a)가 다시 실행되게 된다. 도 2a의 기동 처리에서는, BIOS, 부트 로더, OS, 및 어플리케이션을 포함하는 일련의 프로그램이 재계측되고, 재계측된 값이 PCR(115)에 재등록되기 때문에, 초기값을 가지고 있지 않은 정당한 PCR(115)의 상태를 복원한다.
스텝 44에 있어서 PCR(115)이 초기값을 갖는지 아닌지를 확인하는 타이밍은 매우 중요하다. 가령, 스텝 42에 있어서의 PCR 복귀 처리 전에, 스텝 44를 실행하면, PCR(115)의 정당성을 정확하게 판정할 수 없다. 왜냐하면, PCR 복귀 처리 전에는 PCR(115)이 언제든지 초기값을 갖기 때문이다.
또한, 가령, 스텝 46에 있어서, 어플리케이션 19가 계측·등록된 후에, 스텝 44을 실행했을 경우에도, PCR(115)의 정당성을 정확하게 판정할 수 없다. 왜냐하면, 어플리케이션 19의 계측·등록에 의해, PCR(115)의 값은 식(1)에 근거해 갱신되기 때문이다.
따라서, 제1 실시예에 나타나 있는 바와 같이, 스텝 42에 있어서의 NvRAM(114)으로부터의 PCR 복귀 처리 후, 및 스텝 46에 있어서의 계측·등록 처리 전에 스텝 44를 실행하는 것에 의해, 정확하게 PCR(115)의 정당성을 판정 가능하게 된다.
한편, 스텝 41에 있어서, 정보처리장치(11)가 휴지 상태로부터 복귀할 때에만, 스텝 44에 있어서의 PCR(115)의 값을 확인하는 것도 매우 중요하다. 가령, 휴지 상태로부터의 시스템 복귀 처리(도 4a)가 아니라, 일반적인 기동 처리(도 2a) 시에, 스텝 44를 실행하면, PCR(115)의 정당성을 정확하게 판정할 수 없다. 왜냐하면, 일반적인 기동 처리 전에 PCR(115)이 초기값을 갖기 때문이다.
따라서, 제1 실시예에서 설명한 바와 같이, 스텝 41에 있어서, 해당 시스템 복귀 처리가, 휴지 상태로부터의 복귀 처리인 것을 판정하는 경우에만 스텝 44를 실행하는 것에 의해, 정확하게 PCR(115)의 정당성을 판정하게 된다.
이상, 제1 실시예에 있어서의 시스템 복귀 처리에 관하여 설명했다.
<제2 실시예>
제1 실시예의 시스템 복귀 처리에서는, 스텝 44에 있어서 PCR가 초기값을 갖는다고 판정되었을 경우에는, 스텝 45에 있어서 정보처리장치(11)를 강제적으로 재기동하도록 한다. 그렇지만, 정보처리장치(11)를 반드시 강제적으로 재기동할 필요는 없고, 정보처리장치(11)의 이용은 계속하고, TPM(112)만을 이용할 수 없도록 기능 축퇴를 행해도 된다. 제2 실시예에서는, TPM(112)을 이용할 수 없도록 기능 축퇴를 행할 경우의 시스템 복귀 처리에 대해서 설명한다.
도 5a는, 제2 실시예에 있어서의 시스템 복귀 처리의 예를 나타내는 플로차트이다. 도 5a 및 도 4a에서의 같은 스텝에 대해서는, 같은 스텝 번호를 부여하고, 여기에서는 그러한 스텝의 상세한 설명은 생략한다. 이후에는, 도 4a의 스텝들과 다른 스텝에 관해서만 도 5a를 참조하여 설명한다.
도 5a를 참조하면, 스텝 44에 있어서는, PCR(115)이 초기값을 갖는다고 판정하면(스텝 44에서 YES), 처리를 스텝 51로 진행시킨다. 스텝 51에서는, 정보처리장치(11)에 구비되어 있는 (도면에 나타내지 않은) 화면을 사용하여, 정보처리장치(11)의 이용자에게 정보처리장치(11)를 재기동할 것인지 아닌지를 문의한다. 정보처리장치(11)의 이용자는, 마우스, 키보드, 및/또는 버튼 등을 사용하여, 정보처리장치(11)의 재기동을 허가할 것인지 아닌지를 선택한다. 정보처리장치(11)의 재기동이 허가되었을 경우에는(스텝 51에서 YES), 처리를 스텝 45로 진행시키고, 그렇지 않으면(스텝 51에서 NO), 처리를 스텝 52로 진행시킨다.
스텝 52에서는, TPM(112)을 일시적으로 이용할 수 없도록 제어한다. 제2 실시예에서는, TPM(112)에 대하여, 일시적으로 TPM(112)을 이용할 수 없도록 하는 코멘드(예를 들면, TPM_SetTempDeactivated)을 송신한다. 이 코멘드는, TPM(112)을 비액티베이트(deactivated) 모드로 설정하고, 비액티베이트 모드에서는 TPM(112)의 외부로부터의 코멘드를 접수하지 않게 된다. 따라서, 가령 TPM(112)의 외부로부터 TPM(112)을 이용하려고 시도한 경우에도, TPM(112)을 이용할 수 없기 때문에, 기능 축퇴를 실현할 수 있다.
제2 실시예는 이것에 한정되지 않고, TPM(112)을 이용 불가로 하기 위한 다양한 방식을 적용 가능하다. 예를 들면, TPM(112)에 대하여, 옳지 않은 패스워드나 인가 코드 등을 대량으로 송신함으로써, TPM(112)을 록(locked) 상태로 설정해도 된다. 록 상태의 TPM(112)도 외부로부터 어떤 코멘드도 접수하지 않기 때문에, 기능 축퇴를 실현할 수 있다.
스텝 52 후에, 처리를 스텝 46으로 진행시킨다. 스텝 52에서 TPM(112)이 이용 불가로 되어 있을 경우, 가령 스텝 46에 있어서 어플리케이션의 해시 값을 TPM(112)에 등록하려고 한 경우에도, 이 등록을 실행할 수 없다. 다시 말해, 도 5b에 나타낸 바와 같이, 어플리케이션 19의 계측·등록 후에도 PCR(115)의 상태 53은, 계측·등록 전의 상태 416으로부터 변화되지 않는다.
후술하는 데이터 이용 처리 및 완전성 리포트 생성 처리에 있어서, TPM(112)을 이용할 경우에도, 스텝 52에 있어서 TPM(112)이 이용 불가로 되어 있기 때문에, 데이터 이용 처리 및 완전성 리포트 생성 처리도 실행할 수 없다. 어느 경우든, 정보처리장치(11)의 이용을 계속한 채, TPM(112)의 이용만을 불가로 하는 기능 축퇴가 실현된다.
이상, 제2 실시예에 있어서의 시스템 복귀 처리에 관하여 설명했다.
<제3 실시예>
제2 실시예에서 설명한 시스템 복귀 처리에서는, 도 5a의 스텝 52에 있어서, TPM(112) 그 자체를 이용할 수 없다. 구체적으로는, 일시적으로 TPM(112)을 이용할 수 없도록 하는 코멘드를 송신하거나, 옳지 않은 패스워드 또는 인가 코드를 송신해서 TPM(112)을 록 상태로 설정한다. 그렇지만, 제2 실시예는 이것에 한정되지 않는다. 스텝 52에 있어서, TPM(112) 그 자체를 이용할 수 없도록 하는 대신에, 정보처리장치(11)로부터 TPM(112)을 이용할 수 없도록 제어해도 된다.
정보처리장치(11)로부터 TPM(112)을 이용할 수 없도록 제어하기 위해서, 정보처리장치(11)로부터 TPM(112)을 이용하기 위한 디바이스 드라이버에 있어서는 TPM(112)을 이용할 수 없게 된다. 구체적으로는, 스텝 52에 있어서, TPM(112)이 이용 불가한지 여부를 나타내는 플래그를, 예를 들면 HDD(14) 또는 NvRAM(114)에서 설정한다. 그 후에, 정보처리장치(11) 내의 프로그램이, 상기 디바이스 드라이버를 사용해서 정보처리장치(11)를 이용하려고 했을 경우에, 상기 플래그에 따라 TPM(112)에의 액세스를 제어한다.
여기에서는 제3 실시예에 있어서의 TPM 이용 처리의 예에 대해서, 도 10a을 참조하여 설명한다. 도 5a에서 시스템 복귀 처리된 정보처리장치(11)에 있어서, 정보처리장치(11)의 이용자가 (도면에 나타내지 않은) 키보드, 마우스, 및/또는 버튼을 사용해서 TPM(112)을 이용하려고 했을 때에, 도 10a에서의 TPM 이용 처리가 상기 디바이스 드라이버에서 개시된다.
도 10a을 참조하면, 스텝 101에 있어서, 프로그램으로부터 TPM 코멘드를 수신한다. 스텝 102에 있어서, TPM(112)이 이용 불가한지를 나타내는 플래그를 확인한다. 플래그가 TPM(112)이 이용 불가하다는 것을 나타낼 경우에는, 처리를 스텝 104로 진행시키고(스텝 102에서 YES), 그렇지 않으면(스텝 102에서 NO), 처리를 스텝 103으로 진행시킨다. 스텝 103에서는, 스텝 101에서 수신한 TPM 코멘드를 TPM(112)에 송신한다. 스텝 104에서는, TPM(112)을 이용 가능하지 않다는 것을 나타내는 에러 메시지를, 정보처리장치(11)의 모니터(도면에 나타내지 않음) 등에 표시한다.
이상에서 설명한 TPM 이용 처리에 의해, TPM(112) 그 자체를 이용 불가로 하는 대신에, 정보처리장치(11)로부터 TPM(112)의 이용을 불가로 할 수 있다.
한편, 도 10a에서의 TPM 이용 처리에서는 TPM(112)의 이용 불가를 나타내는 플래그가 설정되어 있을 경우에, 반드시 TPM(112)을 이용할 수 없도록 제어했다. 그러나, 제3 실시예는 이것에 한정되지 않고, 실행하려고 하는 TPM 코멘드에 따라, TPM(112)의 이용 제어를 행해도 된다. 이후에는, 이 경우의 TPM 이용 처리에 대해서, 도 10b을 참조하여 설명한다.
도 10a 및 도 10b에서 같은 스텝에 대해서는, 같은 스텝 번호를 부여하고 여기에서는 그러한 스텝의 상세한 설명은 생략한다.
도 10b를 참조하면, 스텝 102에 있어서, TPM(112)이 이용 불가라고 판정되면(스텝 102에서 YES), 스텝 105에 있어서, 실행하려고 하는 TPM 코멘드가 PCR과 관련되어 있는 것인지 아닌지를 판정한다. 실행하려고 하는 TPM 코멘드가 PCR과 관련되어 있는 경우에는, 처리를 스텝 104로 진행시키고(스텝 105에서 YES), 그렇지 않으면(스텝 105에서 NO), 처리를 스텝 103로 진행시킨다.
스텝 105에서는, 미리 TPM 코멘드가 PCR과 관련되어 있는 것인지 아닌지를 나타내는 테이블을 준비해 두고, 해당 테이블을 참조하여 판정을 행한다. 도 10c는, 테이블의 예를 나타낸다. 도 10c에 나타낸 테이블의 예에서는, PCR과 관련된 각 코멘드에 대해서는 원(O)을 부여하고, PCR과 관련되어 있지 않은 각 코멘드에 대해서는 크로스(×)를 부여하고 있다. 제3 실시예에 있어서, PCR과 관련된 코멘드는, 해당 TPM 코멘드가 TPM(112) 내에서 실행될 때에, TPM(112) 내의 PCR에 액세스(판독 또는 기록)하는 코멘드이다. 도 10c에 나타낸 예에서는, TPM_Seal, TPM_Quote, 및 TPM_Bind의 3개의 코멘드는, 각각의 코멘드가 TPM(112) 내에서 실행되었을 때에 PCR에 액세스한다. 한편, TPM_GetRandom, TPM_GetTicks, 및 TPM_Sign의 3개의 코멘드는, PCR에 액세스하지 않고 실행된다.
이상에서 설명한 TPM 이용 처리에 의해, PCR과 관련이 없는 코멘드의 이용은, 가령 TPM(112)의 이용 불가를 나타내는 플래그가 설정되어 있는 경우에도, 허가된다.
제3 실시예는 이들에 한정되지 않고, 다양한 방법으로 정보처리장치(11)로부터 TPM(112)을 이용 불가로 할 수 있다. 예를 들면, 해당 TPM(112)을 이용하기 위한 디바이스 파일명을 변경해도 된다. 예를 들면, 디바이스 파일명이 "/dev/tpm"일 경우, 스텝 52에 있어서, 이 디바이스 파일명을 "/dev/tpm.deny"으로 변경한다. 이에 따라, 정보처리장치(11) 내의 프로그램이, 디바이스 파일 /dev/tpm을 통해서 TPM(112)을 이용하려고 하는 경우, 디바이스 파일 "/dev/tpm"이 존재하지 않기 때문에, TPM(112)을 이용할 수 없다.
이상에서 설명한 것처럼, TPM(112) 그 자체를 이용 불가로 하는 대신에, TPM(112)에의 액세스를 제한함으로써, 정보처리장치(11)로부터 TPM(112)의 이용을 불가로 할 수 있다.
<제4 실시예>
도 5a를 참조하여 상기 설명한 시스템 복귀 처리에서는, 스텝 44에 있어서 PCR(115)이 초기값을 갖는다고 판정되었을 경우, 반드시 강제적으로 정보처리장치(11)를 재기동시키지 않는다. TPM(112)의 이용 제한에 의해, 정보처리장치(11)를 계속해서 이용할 수 있다. 그렇지만, 제2 실시예는 이것에 한정되지 않는다. 시스템 복귀 시에 PCR(115)의 값이 옳지 않은 경우(PCR(115)이 초기값을 갖는 경우)에, 후술하는 그 후의 데이터 이용 제한 처리에 있어서, 데이터의 이용을 금지하는 것도 가능하다. 마찬가지로, 시스템 복귀 시에 PCR(115)의 값이 옳지 않은 경우(PCR(115)이 초기값을 갖는 경우)에, 후술하는 그 후의 개찬 검출 처리에 있어서, "검증 실패"라고 판정하는 것도 가능하다. 제4 실시예에서는, 이 경우의 시스템 복귀 처리에 대해서 설명한다.
도 6a은, 제4 실시예에 있어서의 시스템 복귀 처리의 예를 나타내는 플로차트이다. 도 4a, 도 5a, 및 도 6a에 있어서 같은 스텝에 대해서는, 같은 스텝 번호를 부여하고, 그러한 스텝의 상세한 설명은 여기에서는 생략한다. 이후에는, 도 4a 및 도 5a와 다른 스텝에 대해서만, 도 6a를 참조하여 설명한다.
도 6a를 참조하면, 정보처리장치(11)의 재기동이 허가되지 않았을 경우에는(스텝 51에서 NO), 처리를 스텝 61로 진행시킨다.
스텝 61에서는, PCR(115)에 소정의 값을 등록한다. 제4 실시예에서는, PCR(115)의 각 기억 영역에, "PCR1→A1, PCR2→A2, PCR3→A3, PCR4→A4, PCR5→A5"라는 값을 식(1)에 있어서의 INPUT로서 등록한다. "PCR1→A1"은, PCR1에 값 A1을 등록하는 것을 의미한다. 값 A1, A2, A3, A4, A5의 각각은, "시스템 복귀 시에 PCR이 초기값을 갖는다는 것을 나타내는 정수"이다.
제4 실시예에 있어서는, PCR(115)의 5개의 각 기억영역에 다른 값(A1, A2, A3, A4, 및 A5)을 입력하지만, 제4 실시예는 이것에 한정되지 않는다. 각 기억영역에는 같은 값(예를 들면, A1)을 등록해도 된다. 값 A1, A2, A3, A4, 및 A5은, 미리 정해진 정수인 것이 바람직하다. 또는, 스텝 61을 실행할 때마다 다른 의사 난수(pseudo random numbers)를 발생시키고, 발생한 의사 난수를 등록해도 된다.
스텝 61에서, 소정의 값이 PCR(115)에 등록된 후의 PCR(115)의 상태를 도 6b의 참조번호 62로 나타낸다. 예를 들면, PCR1에 등록되어 있는 R1은, A1을 INPUT로서 사용해서 식(1)에 의거하여 산출된다.
스텝 61 후에, 처리를 스텝 46으로 진행시킨다. 스텝 46에서는, 전술한 바와 같이, 어플리케이션 19의 해시 값을 INPUT로서 사용해서 식(1)에 의거하여 산출한 값을, PCR5에 등록한다. PCR5에 등록되어 있는 R5'은, 어플리케이션 19의 해시 값을 INPUT로서 사용해서 식(1)에 의거하여 산출된다.
이상, 제4 실시예에 있어서의 시스템 복귀 처리에 관하여 설명했다.
제4 실시예에 의하면, 시스템 복귀 후 PCR이 초기값을 갖는 경우에, "시스템 복귀 시에 PCR이 초기값을 갖는다는 것을 나타내는 정수"가 PCR에 등록되게 된다. 이에 따라, 후술하는 데이터 이용 제한 처리 시에, 암호화 데이터 내의 PCR 조건과, TPM(112) 내의 PCR의 값이 일치하지 않기 때문에, 암호화 데이터의 이용을 금지할 수 있다. 마찬가지로, 후술하는 개찬 검출 처리에, 완전성 리포트 중의 PCR의 값이, PCR 기대치로서 등록되어 있지 않기 때문에, "검증 실패"라고 판정할 수 있다.
<제5 실시예>
도 4a를 참조하여 설명한 시스템 복귀 처리에서는, 스텝 44에 있어서 PCR(115)이 초기값을 갖는지 아닌지를 확인하는 타이밍이 매우 중요하다는 것을 설명했다. 다시 말해, 스텝 42에 있어서의 NvRAM(114)으로부터의 PCR 복귀 처리 후와 스텝 46에 있어서의 계측·등록 처리 전에 스텝 44를 실행함으로써, 정확하게 PCR(115)의 정당성이 확인 가능해진다. 이후에는, 더 확실하게 올바른 타이밍에서 PCR(115)의 값의 확인을 가능하게 하는 제5 실시예를 설명한다.
도 7a는, 제5 실시예에 있어서의 상태 천이를 설명하는 도면이다. 도 7b는, 제5 실시예에 있어서의 시스템 복귀 처리의 예를 나타내는 플로차트이다. 도 4a 및 도 7b에 있어서 같은 스텝에 대해서는, 같은 스텝 번호를 부여하고 그러한 스텝의 상세한 설명은 여기에서 생략한다. 이후에는, 도 7b에 있어서 도 4a과 다른 스텝에 대해서만 도 7a에 나타낸 상태 천이를 참조하면서 설명한다.
도 7b를 참조하면, 시스템 복귀 처리의 시작 시에, 스텝 75에 있어서, 정보처리장치(11)의 상태를 초기 상태로 설정한다. 제5 실시예에서는, 상태를 나타내는 플래그를 HDD(14)에 보유한다. 이 시점에서는, 정보처리장치(11)가 도 7a에 나타낸 상태 71가 된다.
스텝 41에 있어서, 정보처리장치(11)가 휴지 상태로부터 복귀한다고 판정되었을 경우(스텝 41에서 YES), 스텝 76에 있어서, 정보처리장치(11)의 상태를 "시스템 복귀 상태"로 변경한다. 이 시점에서, 정보처리장치(11)는 도 7a에 나타낸 상태 72가 된다.
스텝 42에 있어서, NvRAM(114)으로부터 PCR 복귀 처리를 실행한 후에는, 스텝 77에 있어서, 정보처리장치(11)의 상태를 "PCR 복귀 상태"로 변경한다. 이 시점에서, 정보처리장치(11)는 도 7a에 나타낸 상태 73가 된다.
스텝 78에서는, 정보처리장치(11)의 상태가 "PCR 복귀 상태"인지의 여부가 판정된다. 이 판정은, HDD(14)에 보유되어 있는 상태를 나타내는 플래그에 근거하면 된다. 상태를 나타내는 플래그가 "PCR 복귀 상태"를 나타낼 경우에는(스텝 78에서 YES), 처리를, 스텝 44로 진행시키고, 그렇지 않으면(스텝 78에서 NO) 처리를 스텝 45로 진행시킨다.
스텝 47에 있어서 어플리케이션 19를 실행한 후에, 스텝 79에 있어서는, 정보처리장치(11)의 상태를 "프로그램 실행 상태"로 변경한다. 이 시점에서는, 정보처리장치(11)가 도 7a에 나타낸 상태 74가 된다.
이상, 제5 실시예에 있어서의 시스템 복귀 처리에 관해서 설명했다.
제5 실시예에 의하면, 시스템 복귀 처리의 일련의 스텝의 상태를 관리해서, 스텝 44에 있어서 PCR이 초기값을 갖는지를, "PCR 복귀 상태"에서 확실하게 확인한다. "PCR 복귀 상태"는, 스텝 42에 있어서의 NvRAM(114)으로부터의 PCR 복귀 처리 후와 스텝 46에 있어서의 계측·등록 처리 후의 상태이다.
<데이터 이용 제한 처리>
다음에, 도 8a을 참조하여, 제5 실시예에 있어서의 데이터 이용 제한 처리를 상세히 설명한다. 이하의 플로우는, 전술한 정보처리장치(11)에서 실행되고, 이 플로우에 있어서의 각 스텝은 해당하는 프로그램 및 그 프로그램을 실행하는 CPU(111)에 의해 실현된다.
도 8a는, 제5 실시예에 적용 가능한 데이터 이용 제한 처리의 예를 나타내는 플로차트이다.
데이터 이용 제한 처리는, 정보처리장치(11)의 이용자가, (도면에 나타내지 않은) 키보드, 마우스, 및/또는 버튼 등을 이용하여, 정보처리장치(11)에 대하여 데이터 이용 제한 처리의 실행을 지시했을 때에 실행된다.
데이터 이용 제한 처리가 개시되면, 스텝 81에 있어서, 데이터 이용 제한 처리의 대상이 되는 평문(plain text) 데이터가 입력된다. 평문 데이터로서는, 화상 데이터, 문서 데이터, 및 음성 데이터를 포함하는 다양한 데이터를 입력 가능하다. 정보처리장치(11) 내의 HDD(14) 내에, 미리 보유되어 있는 데이터를 입력해도 된다. 또는, (도면에 나타내지 않은) 인터페이스(통신 또는 미디어)를 통해서 정보처리장치(11)의 외부에서 데이터를 입력해도 된다.
스텝 82에 있어서, 해당 평문 데이터를 이용 가능하게 하는 PCR 조건을 입력한다. 제5 실시예에 있어서의 PCR 조건은, 전술한 TPM(112) 내의 PCR(115)이 어떤 상태 시에, 해당 평문 데이터를 이용 가능하게 하는지를 나타내는 조건이다. 제5 실시예에서는, 전술한 도 2a의 기동 처리에 있어서, BIOS(13), 부트 로더(15), OS(16), 및 어플리케이션 17을 기동한 후의 PCR(115)의 상태를 PCR 조건으로서 지정한다. 이 상태의 PCR 조건은, "PCR1=H1, PCR2=H2, PCR3=H3, 및 PCR4=H4"이다.
제5 실시예는 이것에 한정되지 않고, 다양한 PCR(115)의 상태를 PCR 조건으로서 지정 가능하다.
스텝 83에 있어서는, 스텝 81에서 입력한 평문 데이터를 암호화한다. 제5 실시예에서는, 암호화하기 위한 암호 알고리즘은, 특별하게 한정되지 않고, AES(Advanced Encryption Standard), DES(Data Encryption Standard), 3DES 등의 대칭키 암호나, RSA(Rivest-Shamir-Adleman) 알고리즘, ElGamal 암호, 및 타원 곡선 암호 등의 공개키 암호 등, 다양한 암호 알고리즘을 적용 가능하다. 또한, 암호화에 이용하는 암호키는, TPM(112) 내에 유지된다.
스텝 84에 있어서, 암호화 데이터를 출력한다. 제5 실시예에서는, 스텝 83에 있어서 생성된 암호화 데이터에, 스텝 82에서 입력한 PCR 조건을 부가하고, 그 부가 결과를 암호화 데이터로서 출력한다. 도 8b의 참조번호 85는, 제5 실시예에 있어서의 암호화 데이터의 예를 나타낸다.
이상, 제5 실시예에 있어서의 데이터 이용 제한 처리에 관해서 설명했다.
<데이터 이용 처리>
다음에, 도 8c을 참조하여, 제5 실시예에 있어서의 데이터 이용 처리를 상세히 설명한다. 이하의 플로우는, 전술한 정보처리장치(11)에서 실행되고, 이 플로우에서의 각 스텝은 해당하는 프로그램 및 그 프로그램을 실행하는 CPU(111)에 의해 실현된다.
도 8c은, 제5 실시예에 적용 가능한 데이터 이용 처리의 예를 나타내는 플로차트이다.
데이터 이용 처리는, 정보처리장치(11)의 이용자가, (도면에 나타내지 않은) 키보드, 마우스, 또는 버튼 등을 사용하여 정보처리장치(11)에 대하여 데이터 이용 처리의 실행을 지시했을 때에 실행된다.
데이터 이용 처리가 개시되면, 스텝 86에 있어서, 데이터 이용 처리의 대상이 되는 암호화 데이터가 입력된다. 제5 실시예에 있어서는, 전술한 도 8b의 참조번호 85로 나타낸 암호화 데이터를 입력한다.
스텝 87에 있어서, TPM(112)으로부터 PCR(115)의 값이 판독된다. 이후의 설명에서는, 도 2a를 참조하여 상기 설명한 기동 처리 후에, 데이터 이용 처리를 실행하는 경우에, 도 2b에 나타낸 상태 217이 판독되는 예에 대해서 설명한다.
스텝 88에 있어서, 스텝 86에서 입력한 암호화 데이터 85에 부가되어 있는 PCR 조건과, 스텝 87에서 TPM(112)으로부터 판독한 PCR의 값이 일치하는지 아닌지를 판정한다. 스텝 86에서 입력한 암호화 데이터 85에 부가되어 있는 PCR 조건과, 스텝 87에서 TPM(112)으로부터 판독한 PCR의 값이 일치하는 경우에는(스텝 88에서 YES), 처리를 스텝 89로 진행시키고, 그렇지 않으면(스텝 88에서 NO), 데이터 이용 처리를 종료한다. 스텝 86에서 입력한 암호화 데이터 85에 부가되어 있는 PCR 조건과, 스텝 87에서 TPM(112)으로부터 판독한 PCR의 값이 일치하지 않을 경우에는(스텝 88에서 NO), 스텝 86에서 입력한 암호화 데이터가 이용 가능하지 않다는 것을 나타내는 에러 메시지를 표시해도 된다. 제5 실시예에 있어서는, 도 2b에 나타낸 상태 217과 도 8b에 나타낸 PCR 조건은 일치하기 때문에, 처리는 스텝 89로 진행되게 된다.
스텝 89에 있어서, 암호화 데이터를 복호한다. 제5 실시예에서는 복호하기 위한 암호 알고리즘은, 특별하게 한정되지 않고, AES, DES, 3DES 등의 대칭키 암호나, RSA 알고리즘, ElGamal 암호, 및 타원 곡선 암호 등의 공개키 암호 등, 다양한 암호 알고리즘을 적용 가능하다. 암호화에 이용하는 암호키는, TPM(112) 내에 보유해 둔다.
스텝 810에서는, 스텝 89에서 복호된 평문 데이터를 출력한다.
이상, 제5 실시예에 있어서의 데이터 이용 처리에 관해서 설명했다.
이상에서 설명한 데이터 이용 제한 처리 및 데이터 이용 처리에 의하면, 도 2a에 나타낸 기동 처리에서, 개찬되어 있지 않은 프로그램이 실행되었을 경우에, 도 8b에 나타낸 데이터를 이용 가능하다. 또한, 도 5a에 나타낸 시스템 복귀 처리에 있어서의 스텝 52에 있어서 TPM이 이용 불가로 되어 있는 경우에는, 도 8b에 나타낸 데이터의 이용을 금지한다. 또한, 도 6a에 나타낸 시스템 복귀 처리에 있어서의 스텝 61에 있어서 PCR에 소정값이 등록되어 있는 경우에도, 도 8b에 나타낸 데이터의 이용을 금지한다.
<개찬 검출 시스템>
다음에, 도 9a을 참조해서 제5 실시예에 있어서의 개찬 검출 시스템의 구성에 관해서 설명한다.
도 9a는 제5 실시예에 적용 가능한 개찬 검출 시스템의 개요를 도시한 도면이다. 도 9a를 참조하면, 제5 실시예에 있어서의 개찬 검출 시스템은 피검증 장치(91) 및 검증 장치(92)로 구성된다. 피검증 장치(91)와 검증 장치(92)는, 유선 또는 무선의 통신회선을 통해서 접속되어 있고, 피검증 장치(91)와 검증 장치(92)는 서로 데이터를 통신 가능하게 되어 있다. 또한, 피검증 장치(91) 및 검증 장치(92)에는, 전술한 정보처리장치(11)(도 1)를 적용 가능하다.
제5 실시예에서는, 검증 장치(92)가 피검증 장치(91) 내의 소프트웨어를 신뢰할 수 있는 것인지 아닌지를 확인한다. 이 처리를 개찬 검출 처리라고 부른다. 개찬 검출 처리 시에는, 피검증 장치(91) 내에 있어서, PCR로부터 완전성 리포트 (상세한 것은 후술)를 생성하고, 생성한 완전성 리포트를 검증 장치(92)에 송신한다. 검증 장치(92)는, 수신한 완전성 리포트와 미리 기대치 DB 93에 등록되어 있는 해시 값의 기대치를 사용하여 해당 완전성 리포트를 송신한 피검증 장치(91) 내의 소프트웨어가 개찬되어 있는지 아닌지를 판정한다. 제5 실시예에 있어서는, 해시 값의 기대치인 H1, H2, H3, H4, 및 H6을 등록해 둔다.
이상, 제5 실시예에 적용 가능한 개찬 검출 시스템의 개요를 설명했다.
<완전성 리포트 생성 처리>
다음에, 도 9b을 참조하여, 제5 실시예에 있어서의 피검증 장치(91)에서의 완전성 리포트 생성 처리에 관하여 설명한다. 이하의 플로우는, 전술한 정보처리장치(11)의 구성을 구비하는 피검증 장치(91) 내의 소프트웨어로서 실현되고, 이 플로우에 있어서의 각 스텝은 해당하는 프로그램 및 그 프로그램을 실행하는 CPU(111)에 의해 실현된다.
도 9b는, 제5 실시예에 적용 가능한 완전성 리포트 생성 처리의 예를 나타내는 플로차트이다.
도 9b를 참조하면, 스텝 94에서, 피검증 장치(91)는 검증 장치(92)로부터 Nonce를 수신한다. 피검증 장치(91)는 후술하는 스텝 910에서 송신된 Nonce를 수신한다. 제5 실시예에 있어서는, Nonce는 의사 난수를 이용한다. 그렇지만, 제5 실시예는 이것에 한정되지 않고, 개찬 검출 처리를 실행할 때마다 데이터가 추측 곤란한 다른 값을 가지고 있으면 임의의 데이터를 이용해도 된다.
스텝 95에 있어서, 피검증 장치(91)는 TPM(112)을 이용하여 Nonce 및 그 시점에서의 PCR(115)의 값으로부터 디지털 서명을 생성한다. 디지털 서명을 생성하기 위해 사용된 알고리즘은, 특별하게 한정되지 않고, RSA, DSA(Digital Signature Algorithm), ElGamal 암호 등 다양한 알고리즘을 적용할 수 있다. 디지털 서명을 생성하기 위해서 사용되는 비밀 키에는, TPM(112) 내부에서 관리되는 비밀 키를 적용할 수 있다.
스텝 96에 있어서, 피검증 장치(91)는 스텝 94에서 수신한 Nonce, 스텝 95에서 생성한 디지털 서명, 스텝 95에서 디지털 서명의 생성 대상이 되는 PCR의 값, 및 증명서로부터 완전성 리포트를 생성한다. 증명서에는 전술한 비밀키에 대응하는 공개 키가 포함되어야 한다.
도 9c는, 제5 실시예에 있어서의 완전성 리포트의 예를 나타낸다. 도 9c의 참조번호 98은, 도 4b의 상태 412로부터 생성한 완전성 리포트를 나타낸다. 도 9c의 참조번호 99는, 전술한 도 6b의 상태 63으로부터 생성한 완전성 리포트를 나타낸다.
스텝 97에 있어서, 피검증 장치(91)는 스텝 96에서 생성한 완전성 리포트를 검증 장치(92)에 송신한다.
이상, 제5 실시예에 있어서의 완전성 리포트 생성 처리에 관하여 설명했다.
<완전성 리포트 검증 처리>
다음에, 도 9d을 참조하여, 제5 실시예에 있어서의 검증 장치(92)에서의 완전성 리포트 검증 처리에 관하여 설명한다. 이하의 플로우는, 전술한 정보처리장치(11)의 구성을 구비하는 검증 장치(92) 내의 소프트웨어로서 실현되고, 각 플로우에 있어서의 각 스텝은 해당하는 프로그램 및 그 프로그램을 실행하는 CPU(111)에 의해 실현된다.
도 9d는, 제5 실시예에 적용 가능한 완전성 리포트 검증 처리의 예를 나타내는 플로차트이다.
도 9d를 참조하면, 스텝 910에서, 검증 장치(92)는 피검증 장치(91)에 Nonce를 송신한다. 스텝 910에서 송신한 Nonce는, 전술한 스텝 94에서 수신된다. 스텝 911에 있어서는, 검증 장치(92)는 피검증 장치(91)로부터 완전성 리포트를 수신한다. 스텝 911에 있어서는, 스텝 97에서 피검증 장치(91)로부터 송신한 완전성 리포트를 수신한다.
스텝 912에 있어서, 검증 장치(92)는 스텝 911에서 수신한 완전성 리포트 내의 서명을, 완전성 리포트 내의 증명서에 포함되어 있는 공개 키를 이용해서 검증한다. 스텝 913에 있어서는, 검증 장치(92)가 서명 검증이 성공했는지 아닌지를 확인한다. 서명 검증이 성공했을 경우에는 처리를 스텝 914로 진행시키고(스텝 913에서 YES), 그렇지 않으면(스텝 913에서 NO), 처리를 스텝 918로 진행시킨다.
스텝 914에서는, 검증 장치(92)가 스텝 911에서 수신한 완전성 리포트 내의 Nonce의 값과, 스텝 910에서 송신한 Nonce의 값을 확인한다. 스텝 915에 있어서, 검증 장치(92)는 스텝 911에서 수신한 완전성 리포트 내의 Nonce의 값과 스텝 910에서 송신한 Nonce의 값이 일치하는지 아닌지를 판정한다. 스텝 911에서 수신한 완전성 리포트 내의 Nonce의 값과, 스텝 910에서 송신한 Nonce의 값이 일치하는 경우에는(스텝 915에서 YES), 처리를 스텝 916으로 진행시키고, 그렇지 않으면(스텝 915에서 No), 처리를 스텝 918로 진행시킨다.
스텝 916에서는, 검증 장치(92)는 스텝 911에서 수신한 완전성 리포트 내의 PCR의 값을 확인한다. 스텝 917에 있어서, 검증 장치(92)는 스텝 911에서 수신한 완전성 리포트 내의 PCR의 값이 도 9a의 기대치 DB 93에 포함되어 있는지 아닌지를 확인한다. 스텝 911에서 수신한 완전성 리포트 내의 PCR의 값이 도 9a의 기대치 DB 93에 포함되어 있는 경우에는(스텝 917에서 YES), 처리를 스텝 919로 진행시키고, 그렇지 않으면(스텝 917에서 NO), 처리를 스텝 918로 진행시킨다.
예를 들면, 도 9c의 완전성 리포트 98의 경우에는, H1, H2, H3, H4, 및 H6이 모두 기대치 DB 93에 보유되어 있기 때문에, 검증 장치(92)는 스텝 911에서 수신한 완전성 리포트 내의 PCR의 값이 도 9a의 기대치 DB 93에 포함되어 있다고 판정한다. 반면에, 도 9c의 완전성 리포트 99의 경우에는, R1, R2, R3, R4, R5'의 어느 것도 기대치 DB 93에 보유되어 있지 않기 때문에, 검증 장치(92)는 스텝 911에서 수신한 완전성 리포트 내의 PCR의 값이 도 9a의 기대치 DB 93에 포함되어 있지 않다고 판정한다.
스텝 918에서는, 검증 장치(92)는 검증 실패라고 판정한다. 이 경우, 피검증 장치(91) 내의 프로그램은 개찬되어 있다고 판정된다. 한편, 스텝 918에서는, 검증 장치(92)는 검증 성공이라고 판정한다. 이 경우, 피검증 장치(91) 내의 프로그램은 개찬되어 있지 않다고 판정된다.
이상, 제5 실시예에 있어서의 완전성 리포트 검증 처리에 관하여 설명했다.
이상에서 설명한 개찬 검출 처리에 의하면, 피검증 장치(91) 내의 PCR가, 도 4b의 상태 412일 경우에는, 도 9c에 나타낸 완전성 리포트 98이 생성되고, 결과적으로, 검증 성공이라고 판정된다. 한편, 피검증 장치(91) 내의 PCR이, 도 6b의 상태 63일 경우에는, 도 9c에 나타낸 완전성 리포트 99가 생성되고, 결과적으로 검증 실패라고 판정된다.
제5 실시예에 의하면, 휴지 상태 이행 처리(도 3c)시에, NvRAM(114)에의 TMP(112) 내의 PCR의 값의 퇴피 후에 어플리케이션이 실행되는지 아닌지에 관계없이, 시스템 복귀 처리(도 4a)시에, PCR 복귀 처리 후의 PCR의 값의 정당성을 정확하게 검증하는 것이 가능해진다. PCR의 값이 정당하지 않다고 판정되었을 경우에는, 정보처리장치(11)를 재기동함으로써, PCR을 다시 올바른 상태로 복원한다. 한편, PCR의 값이 정당한 경우에만, 정보처리장치(11) 내에서 어플리케이션을 기동하여, 원하는 처리를 실행한다.
<기타 실시예>
본 발명의 추가 실시예(들)는, 상술한 실시 예(들) 중의 하나 또는 그 이상의 기능을 행하도록 기억매체(예를 들면, '비일시 컴퓨터 판독가능한 기억매체') 상에 기록된 컴퓨터 실행가능한 명령들(예를 들면, 1개 이상의 프로그램)을 판독 및 실행하고, 상술한 실시 예(들) 중의 하나 또는 그 이상의 기능을 수행하는 1개 이상의 회로(예를 들면, ASIC(Application Specific Integrated Circuit))를 포함하는 시스템 또는 장치의 컴퓨터에 의해서 실현될 수 있고, 또 예를 들면, 상술한 실시예(들) 중의 하나 또는 그 이상의 기능을 행하도록 기억매체로부터 컴퓨터 실행가능한 명령들을 판독 및 실행함으로써 및/또는 상술한 실시 예(들) 중의 하나 또는 그 이상의 기능을 수행하는 1개 이상의 회로를 제어함으로써 시스템 또는 장치의 컴퓨터에 의해 행해진 방법에 의해서도 실현될 수 있다. 이 컴퓨터는 CPU(Central Processing Unit), MPU(Micro Processing Unit), 또는 다른 회로 중 하나 또는 그 이상을 구비할 수도 있고, 독립된 컴퓨터 또는 독립된 컴퓨터 프로세서의 네트워크를 포함할 수도 있다. 이 컴퓨터 실행가능한 명령들은 예를 들면, 네트워크 또는 기억매체로부터 컴퓨터에 제공될 수도 있다. 이 기억매체는 예를 들면, 하드 디스크, RAM(random-access memory), ROM(read only memory), 분산 컴퓨팅 시스템의 스토리지, 광디스크(컴팩트 디스크(CD), DVD(digital versatile disc), Blue-ray Disc(BD)TM 등), 플래시 메모리 디바이스, 메모리 카드 중 어느 하나 또는 그 이상을 포함할 수도 있다.
본 발명은 예시적인 실시 예를 참조하면서 설명되었지만, 본 발명은 이 개시된 예시적인 실시 예에 한정되는 것이 아니라는 것이 이해될 것이다. 이하의 특허청구범위의 범주는 모든 변형 및 균등구조 및 기능을 포함하도록 가장 넓게 해석되어야 할 것이다.

Claims (17)

  1. 해시 값을 등록 가능한 시큐어 칩을 갖는 정보처리장치로서,
    상기 정보처리장치가 휴지 상태로부터 복귀했는지 아닌지를 판정하도록 구성된 판정 유닛과,
    상기 판정 유닛에 의해 상기 정보처리장치가 휴지 상태로부터 복귀했다고 판정되었을 경우, 상기 시큐어 칩의 초기화를, 어플리케이션 소프트웨어를 기동하기 전에 검출하도록 구성된 검출 유닛과,
    상기 검출 유닛에 의해 상기 시큐어 칩의 초기화가 검출되었을 경우, 초기화되어 있는 상기 시큐어 칩에, 상기 어플리케이션 소프트웨어의 해시 값이 등록되지 않도록 상기 정보처리장치의 동작을 제어하도록 구성된 제어 유닛을 구비하는, 정보처리장치.
  2. 제 1 항에 있어서,
    상기 시큐어 칩은, 상기 정보처리장치에서 실행된 소프트웨어의 해시 값을 등록하기 위한 휘발성 메모리를 포함하는, 정보처리장치.

  3. 제 1 항에 있어서,
    상기 시큐어 칩은, TPM(trusted platform module)인, 정보처리장치.

  4. 제 1 항에 있어서,
    상기 제어 유닛은, 상기 검출 유닛에 의해 상기 시큐어 칩의 초기화가 검출되었을 경우, 상기 정보처리장치를 재기동시키는, 정보처리장치.
  5. 제 1 항에 있어서,
    상기 제어 유닛은, 상기 검출 유닛에 의해 상기 시큐어 칩의 초기화가 검출되었을 경우, 상기 정보처리장치가 상기 시큐어 칩을 이용할 수 없도록 하는, 정보처리장치.
  6. 제 5 항에 있어서,
    상기 제어 유닛은, 상기 검출 유닛에 의해 상기 시큐어 칩의 초기화가 검출되었을 경우, 상기 시큐어 칩을 이용 불가로 하는 코멘드를 상기 시큐어 칩에 송신함으로써 상기 정보처리장치가 상기 시큐어 칩을 이용할 수 없도록 하는, 정보처리장치.
  7. 제 5 항에 있어서,
    상기 제어 유닛은, 상기 검출 유닛에 의해 상기 시큐어 칩의 초기화가 검출되었을 경우, 상기 시큐어 칩에의 액세스를 제한함으로써 상기 정보처리장치가 상기 시큐어 칩을 이용할 수 없도록 하는, 정보처리장치.
  8. 제 1 항에 있어서,
    상기 제어 유닛은, 상기 검출 유닛에 의해 상기 시큐어 칩의 초기화가 검출되었을 경우, 상기 시큐어 칩에, 시스템 복귀 시에 PCR(platform configuration register)이 초기값을 갖는다는 것을 나타내는 정수를 등록하는, 정보처리장치.
  9. 제 1 항에 있어서,
    상기 제어 유닛은, 상기 검출 유닛에 의해 상기 시큐어 칩의 초기화가 검출되었을 경우, 상기 시큐어 칩에 난수를 등록하는, 정보처리장치.
  10. 해시 값을 등록 가능한 시큐어 칩을 갖는 정보처리장치의 제어방법으로서,
    상기 정보처리장치가 휴지 상태로부터 복귀했는지 아닌지를 판정하는 단계와,
    상기 판정 단계에서 상기 정보처리장치가 휴지 상태로부터 복귀했다고 판정되었을 경우, 상기 시큐어 칩의 초기화를, 어플리케이션 소프트웨어를 기동하기 전에 검출하는 단계와,
    상기 검출 단계에서 상기 시큐어 칩의 초기화가 검출되었을 경우, 초기화되어 있는 상기 시큐어 칩에, 상기 어플리케이션 소프트웨어의 해시 값이 등록되지 않도록 상기 정보처리장치의 동작을 제어하는 단계를 포함하는, 제어방법.
  11. 해시 값을 등록 가능한 시큐어 칩을 갖는 정보처리장치가 수행하는 정보 처리 방법을 컴퓨터에 실행시키는 프로그램을 기억하는 비일시(non-transitory) 기억매체로서, 상기 방법은,
    상기 정보처리장치가 휴지 상태로부터 복귀했는지 아닌지를 판정하는 단계와,
    상기 판정 단계에서 상기 정보처리장치가 휴지 상태로부터 복귀했다고 판정되었을 경우, 상기 시큐어 칩의 초기화를, 어플리케이션 소프트웨어를 기동하기 전에 검출하는 단계와,
    상기 검출 단계에서 상기 시큐어 칩의 초기화가 검출되었을 경우, 초기화되어 있는 상기 시큐어 칩에, 상기 어플리케이션 소프트웨어의 해시 값이 등록되지 않도록 상기 정보처리장치의 동작을 제어하는 단계를 포함하는, 비일시 기억매체.
  12. 해시 값을 등록 가능한 시큐어 칩을 갖는 정보처리장치로서,
    어플리케이션 소프트웨어를 기동했을 경우, 상기 시큐어 칩의 휘발성 메모리에 상기 어플리케이션 소프트웨어의 해시 값을 등록하도록 구성된 제1 등록 유닛과,
    상기 정보처리장치가 휴지 상태에 들어갈 경우, 상기 휘발성 메모리에 등록된 해시 값을 상기 시큐어 칩의 불휘발성 메모리에 등록하도록 구성된 제2 등록 유닛과,
    상기 제2 등록 유닛에 있어서의 등록 후에 상기 어플리케이션 소프트웨어를 기동했을 경우, 유저에 대해 통지를 행하도록 구성된 통지 유닛을 구비하는, 정보처리장치.
  13. 해시 값을 등록 가능한 시큐어 칩을 갖는 정보처리장치의 제어방법으로서,
    어플리케이션 소프트웨어를 기동했을 경우, 상기 시큐어 칩의 휘발성 메모리에 상기 어플리케이션 소프트웨어의 해시 값을 등록하는 단계와,
    상기 정보처리장치가 휴지 상태에 들어갈 경우, 상기 휘발성 메모리에 등록된 해시 값을 상기 시큐어 칩의 불휘발성 메모리에 등록하는 단계와,
    상기 불휘발성 메모리에 있어서의 등록 후에 상기 어플리케이션 소프트웨어를 기동했을 경우, 유저에 대해 통지를 행하는 단계를 포함하는, 제어방법.
  14. 해시 값을 등록 가능한 시큐어 칩을 갖는 정보처리장치가 수행하는 정보 처리 방법을 컴퓨터에 실행시키는 프로그램을 기억하는 비일시 기억매체로서, 상기 방법은,
    어플리케이션 소프트웨어를 기동했을 경우, 상기 시큐어 칩의 휘발성 메모리에 상기 어플리케이션 소프트웨어의 해시 값을 등록하는 단계와
    상기 정보처리장치가 휴지 상태에 들어갈 경우, 상기 휘발성 메모리에 등록된 해시 값을 상기 시큐어 칩의 불휘발성 메모리에 등록하는 단계와,
    상기 불휘발성 메모리에 있어서의 등록 후에, 상기 어플리케이션 소프트웨어를 기동했을 경우, 유저에 대해 통지를 행하는 단계를 포함하는, 비일시 기억매체.
  15. 해시 값을 등록 가능한 시큐어 칩을 갖는 정보처리장치로서,
    상기 정보처리장치가 휴지 상태로부터 복귀했는지 아닌지를 판정하도록 구성된 판정 유닛과,
    상기 판정 유닛에 의해 상기 정보처리장치가 휴지 상태로부터 복귀했다고 판정되었을 경우, 상기 시큐어 칩의 초기화를, 어플리케이션 소프트웨어를 기동하기 전에 검출하도록 구성된 검출 유닛과,
    상기 검출 유닛에 의해 상기 시큐어 칩의 초기화가 검출되었을 경우, 상기 정보처리장치를 재기동시키도록 구성된 제어 유닛을 구비하는, 정보처리장치.
  16. 해시 값을 등록 가능한 시큐어 칩을 갖는 정보처리장치의 제어방법으로서,
    상기 정보처리장치가 휴지 상태로부터 복귀했는지 아닌지를 판정하는 단계와,
    상기 판정 단계에서 상기 정보처리장치가 휴지 상태로부터 복귀했다고 판정되었을 경우, 상기 시큐어 칩의 초기화를, 어플리케이션 소프트웨어를 기동하기 전에 검출하는 단계와,
    상기 검출 단계에서 상기 시큐어 칩의 초기화가 검출되었을 경우, 상기 정보처리장치를 재기동시키는 단계를 포함하는, 제어방법.
  17. 해시 값을 등록 가능한 시큐어 칩을 갖는 정보처리장치가 수행하는 정보 처리 방법을 컴퓨터에 실행시키는 프로그램을 기억하는 비일시 기억매체로서, 상기 방법은,
    상기 정보처리장치가 휴지 상태로부터 복귀했는지 아닌지를 판정하는 단계와,
    상기 판정 단계에서 상기 정보처리장치가 휴지 상태로부터 복귀했다고 판정되었을 경우, 상기 시큐어 칩의 초기화를, 어플리케이션 소프트웨어를 기동하기 전에 검출하는 단계와,
    상기 검출 단계에서 상기 시큐어 칩의 초기화가 검출되었을 경우, 상기 정보처리장치를 재기동시키는 단계를 포함하는, 비일시 기억매체.
KR1020160035058A 2015-03-31 2016-03-24 정보처리장치 및 정보처리장치의 제어방법 KR102062073B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015072865A JP6494373B2 (ja) 2015-03-31 2015-03-31 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム
JPJP-P-2015-072865 2015-03-31

Publications (2)

Publication Number Publication Date
KR20160117216A true KR20160117216A (ko) 2016-10-10
KR102062073B1 KR102062073B1 (ko) 2020-01-03

Family

ID=55650208

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160035058A KR102062073B1 (ko) 2015-03-31 2016-03-24 정보처리장치 및 정보처리장치의 제어방법

Country Status (5)

Country Link
US (1) US10482256B2 (ko)
EP (1) EP3076324B1 (ko)
JP (1) JP6494373B2 (ko)
KR (1) KR102062073B1 (ko)
CN (1) CN106022136B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3060161A1 (fr) * 2016-12-08 2018-06-15 Orange Technique de gestion d'un droit d'acces a un service pour un dispositif communicant
JP6584487B2 (ja) * 2017-12-20 2019-10-02 キヤノン株式会社 情報処理装置、その制御方法およびプログラム
JP7179482B2 (ja) * 2018-04-19 2022-11-29 キヤノン株式会社 情報処理装置、制御方法、およびそのプログラム
JP7289641B2 (ja) * 2018-11-30 2023-06-12 キヤノン株式会社 情報処理装置、およびその制御方法
US11216366B2 (en) 2020-02-13 2022-01-04 Intel Corporation Security check systems and methods for memory allocations
WO2022139850A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Cryptographic computing including enhanced cryptographic addresses
US11972126B2 (en) 2021-03-26 2024-04-30 Intel Corporation Data relocation for inline metadata
US11954045B2 (en) 2021-09-24 2024-04-09 Intel Corporation Object and cacheline granularity cryptographic memory integrity
US20230214493A1 (en) * 2021-12-30 2023-07-06 Moxa Inc. Computer System for Failing a Secure Boot in a Case Tampering Event

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110154010A1 (en) * 2009-12-17 2011-06-23 Springfield Randall S Security to extend trust
US20110238967A1 (en) * 2010-03-29 2011-09-29 Lenovo (Singapore) Pte, Ltd. Method and apparatus for sharing an integrity security module in a dual-environment computing device
US20120110644A1 (en) * 2010-11-02 2012-05-03 Microsoft Corporation Globally valid measured operating system launch with hibernation support
US20140068276A1 (en) * 2012-08-29 2014-03-06 Canon Kabushiki Kaisha Information processing apparatus

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412596B2 (en) * 2004-10-16 2008-08-12 Lenovo (Singapore) Pte. Ltd. Method for preventing system wake up from a sleep state if a boot log returned during the system wake up cannot be authenticated
JP5038396B2 (ja) * 2006-04-21 2012-10-03 インターデイジタル テクノロジー コーポレーション トラステッドコンピューティングの完全性測定の通知を実行する装置および方法
JP5001123B2 (ja) * 2006-12-07 2012-08-15 パナソニック株式会社 記録デバイス、集積回路、アクセス制御方法、プログラム記録媒体
JP2009187134A (ja) * 2008-02-04 2009-08-20 Ricoh Co Ltd 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体
JP5969845B2 (ja) * 2012-07-18 2016-08-17 キヤノン株式会社 情報処理装置及びその制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110154010A1 (en) * 2009-12-17 2011-06-23 Springfield Randall S Security to extend trust
US20110238967A1 (en) * 2010-03-29 2011-09-29 Lenovo (Singapore) Pte, Ltd. Method and apparatus for sharing an integrity security module in a dual-environment computing device
US20120110644A1 (en) * 2010-11-02 2012-05-03 Microsoft Corporation Globally valid measured operating system launch with hibernation support
US20140068276A1 (en) * 2012-08-29 2014-03-06 Canon Kabushiki Kaisha Information processing apparatus

Also Published As

Publication number Publication date
JP6494373B2 (ja) 2019-04-03
CN106022136B (zh) 2019-10-22
EP3076324A1 (en) 2016-10-05
KR102062073B1 (ko) 2020-01-03
CN106022136A (zh) 2016-10-12
EP3076324B1 (en) 2020-02-19
JP2016192159A (ja) 2016-11-10
US20160292422A1 (en) 2016-10-06
US10482256B2 (en) 2019-11-19

Similar Documents

Publication Publication Date Title
KR102062073B1 (ko) 정보처리장치 및 정보처리장치의 제어방법
US10225426B2 (en) Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium
US9965268B2 (en) Method and apparatus for preventing software version rollback
CN109710315B (zh) Bios刷写方法及bios镜像文件的处理方法
US8214632B2 (en) Method of booting electronic device and method of authenticating boot of electronic device
JP4994903B2 (ja) 暗号鍵復旧方法、情報処理装置及び暗号鍵復旧プログラム
JP6391439B2 (ja) 情報処理装置、サーバ装置、情報処理システム、制御方法及びコンピュータプログラム
JP5096022B2 (ja) 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム
JP2006323814A (ja) 信頼できる処理モジュールを有するコンピュータを安全にブートするためのシステムおよび方法
JP2020160747A (ja) 情報処理装置、その制御方法、及びプログラム
CN112114842A (zh) 信息处理装置及其控制方法和储存介质
JP5961059B2 (ja) 情報処理装置およびその起動方法
CN114995918A (zh) 基板管理控制器的启动方法、配置方法、装置及电子设备
US11822928B2 (en) Information processing apparatus, method of controlling same, storage medium, and image forming apparatus
CN110990840A (zh) 设备开机的方法及装置
KR20200030448A (ko) 정보 처리장치, 정보 처리장치의 제어방법, 및 기억매체
US20230351029A1 (en) Information processing apparatus, control method for the same, and storage medium
US11971991B2 (en) Information processing apparatus, control method for controlling the same and storage medium
JP7215116B2 (ja) 情報処理装置、情報処理方法及びプログラム
CN107368743B (zh) 信息处理设备和信息处理方法
JP2023072170A (ja) 情報処理装置および情報処理装置の制御方法
JP2019047430A (ja) 情報処理装置、情報処理方法及び、コンピュータプログラム

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