KR20080030359A - 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법 - Google Patents

컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법 Download PDF

Info

Publication number
KR20080030359A
KR20080030359A KR1020060096571A KR20060096571A KR20080030359A KR 20080030359 A KR20080030359 A KR 20080030359A KR 1020060096571 A KR1020060096571 A KR 1020060096571A KR 20060096571 A KR20060096571 A KR 20060096571A KR 20080030359 A KR20080030359 A KR 20080030359A
Authority
KR
South Korea
Prior art keywords
integrity
measurement
value
assurance
component
Prior art date
Application number
KR1020060096571A
Other languages
English (en)
Other versions
KR100823738B1 (ko
Inventor
최수길
전성익
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020060096571A priority Critical patent/KR100823738B1/ko
Priority to US11/842,231 priority patent/US20080083039A1/en
Publication of KR20080030359A publication Critical patent/KR20080030359A/ko
Application granted granted Critical
Publication of KR100823738B1 publication Critical patent/KR100823738B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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 using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법에 관한 것으로, 컴퓨팅 플랫폼이 외부 시스템에게 무결성 보증을 할 때 외부 시스템이 설정 정보를 알 수 없도록 하기 위하여, 무결성 보증 대상 시스템은, 컴퓨팅 플랫폼의 운용중에, 무결성에 영향을 미치는 이벤트가 발생할 때마다, 상기 이벤트와 관련된 컴포넌트를 측정하여 측정값을 생성하고, 어떤 컴포넌트로부터 만들어졌는지를 은닉한 후, 이러한 은닉된 측정값을 검증 서버로 제공하고, 검증 서버에서는 사전에 무결성이 검증된 컴포넌트에 대한 사전 정보를 저장하고 있다가, 상기 은닉된 측정값이 전달되면, 상기 사전에 저장된 정보를 참조하여 상기 은닉된측정값이 무결성이 유지되고 있는 컴포넌트들로부터 생성된 것인지를 검증함으로써, 해당 무결성 보증 대상 시스템의 컴퓨팅 플랫폼의 무결성이 유지되고 있는 지를 검증하고, 검증 성공시 이를 인증하는 인증 데이터를 다른 시스템들이 알 수 있도록 제공하는 것이다.
Figure P1020060096571
무결성 보증, integrity attestation, Trusted Platform Module (TPM), Platform Configuration Register (PCR), 정보 은닉

Description

컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법{Method for integrity attestation of a computing platform hiding its configuration information}
도 1은 TCG(Trusted Computing Group)에서 정의된 무결성 보증을 제공하는 시스템의 구성을 나타내는 블록도,
도 2a는 TCG에서 정의된 바에 따른 무결성 보증 대상 장치에서의 무결성 보증을 제공하는 방법을 나타낸 흐름도,
도 2b는 TCG에서 정의된 바에 따른 무결성 보증 요청 장치에서의 무결성 보증을 검증하는 방법을 나타낸 흐름도,
도 3은 상기 도 2a 및 도 2b에 나타낸 무결성을 보증하는 과정의 상세 흐름도,
도 4는 본 발명에 따른 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 시스템을 나타낸 블록도,
도 5a는 본 발명에 있어서, 무결성 보증 대상 장치에서의 무결성 보증을 제공하기 위한 방법을 나타낸 흐름도,
도 5b는 본 발명에 있어서, 검증 서버에서의 무결성 보증을 검증하는 방법을 나타낸 흐름도, 그리고
도 6은 본 발명에 의한 무결성 보증 대상 장치와 검증 서버간의 상세 처리 과정을 나타낸 흐름도이다.
본 발명은 컴퓨팅 플랫폼의 무결성이 유지되고 있음을 외부 시스템에게 보증할 때 검증 대상이 되는 플랫폼의 설정 정보가 외부에 알려지는 것을 막을 수 있는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법에 관한 것이다.
글로벌 개방형 표준그룹인 TCG(Trusted Computing Group)은 TPM(Trusted Plaform Module), TSS(Trusted Software Stack), MP(Mobile Phone), SS(Server Specific), 컴플라이언스 등 6개 기술 워킹그룹(WG)과 TNC(Trusted Network Connect) 서브그룹(SG)을 운영하여, 컴퓨팅 보안을 위한 표준들을 정의하고 있다.
도 1은 상술한 TCG에서 정의한 무결성 보증을 제공하는 시스템의 구성을 나타낸 블럭도이다.
도 1을 참조하면, TCG에서 정의한 컴퓨팅 플랫폼의 무결성을 보증하기 위한 시스템은, 크게 무결성 보증 대상 시스템(110)과 무결성 보증 요청 시스템(120)으로 구성된다. 상기에서 무결성 보증 대상 시스템(110)은 무결성 측정 모듈(111), 플랫폼 설정 레지스터(Platform Configuration Register, 이하 PCR이라 한다 )(112), 측정 기록 저장소(113), 그리고 무결성 보증 서비스 모듈(114)을 구비한다.
도 2a 및 도 2b는 TCG에서 정의한 무결성을 보증하는 과정을 나타낸 흐름도이고, 도 3은 그에 대한 프로토콜을 나타낸 것이다.
도 2a 및 도 3을 참조하면, 무결성 측정 모듈(111)은 무결성 보증 대상 시스템(110)의 플랫폼에서 프로그램의 실행이나 업데이트와 같이 플랫폼의 무결성에 영향을 줄 수 있는 이벤트가 발생할 경우(S110)에 관련 컴포넌트(component)를 측정하여 측정값을 생성한다. 여기에서 컴포넌트는 컴퓨팅 플랫폼의 무결성에 영향을 줄 수 있는 모든 요소들을 나타내는 것으로서, 예를 들어, OS(Operating System), 설정 파일, 프로그램, 라이브러리등이 될 수 있다. 더 구체적으로 상기 무결성 측정 모듈(111)은 무결성에 영향을 줄 수 있는 이벤트와 관련된 컴포넌트의 해시(Hash)값을 계산한다(S120).
상기 계산된 해시값은 PCR(112)과 측정 기록 저장소(113)에 반영되는데, PCR(112)은 컴퓨팅 시스템의 보안을 위한 하드웨어 장치인 TPM(Trusted Platform Module) 내부에 존재하는 것으로, 상기 무결성 측정 모듈(111)에 의해서 컴포넌트가 측정된 순서와 측정된 컴포넌트의 해시값을 안전하게 보관한다(S130).
예를 들어, 무결성 보증 대상 시스템(110)의 TPM 내부에 PCR(112)이 하나만 있다고 가정할 경우, 상기 PCR(112)이 새로운 해시값을 입력받으면 현재 PCR값과 입력된 해시값을 해시 연산하여, 상기 새로운 해시값을 PCR 값으로 갱신한다.
또한, 측정 기록 저장소(113)는 무결성 보증 대상 시스템(110)의 플랫폼이 시작된 후 상기 무결성 측정 모듈(111)에서 측정한 모든 컴포넌트에 대한 기록을 저장하며, 이 저장된 기록을 측정 목록(measurement list)이라고 한다. 상기 측정 목록은 컴포넌트를 식별할 수 있는 정보와 컴포넌트의 해시값을 포함한다(S140).
상기 도 2a의 (a)에 도시된 단계들(S110 ~ S140)은 무결성 보증 대상 시스템에서 무결성에 영향을 미치는 이벤트가 발생될 때마다 반복 수행된다.
상기 상태에서 무결성 보증 서비스 모듈(114)에 의해 임의의 무결성 보증 요청 시스템(120)으로부터의 무결성이 유지되고 있는지 확인하기 위한 무결성 보증 요청을 수신하면(S150), 상기 무결성 보증 요청 시스템(120)이 무결성 보증 대상 시스템(110)의 무결성을 검증할 수 있도록 데이터를 준비하여 무결성 보증 요청 시스템(120)으로 전달하는데, 더 구체적으로는, 상기 무결성 보증 요청 시스템(120)은 난수를 포함한 무결성 보증 요청을 무결성 보증 대상 시스템(110)으로 전송하며, 이에 상기 무결성 보증 서비스 모듈(114)은 상기 요청에 포함된 난수를 무결성 보증 대상 시스템(110)의 TPM에게 전달하여 PCR값과 서명을 요청한다. 이때 TPM은 상기 PCR(112)의 PCR값과 입력받은 난수에 대한 서명을 생성한 후, 상기 생성된 서명과 PCR값을 무결성 보증 서비스 모듈(114)로 보고한다(S160).
이에, 상기 무결성 보증 서비스 모듈(114)은 전송되는 무결성을 검증할 수 있는 데이터, 상기 TPM으로부터 전달받은 서명과, PCR값과, 서명을 확인할 수 있는 키를 포함하는 인증서와, 측정 기록 저장소(113)에 저장된 측정 목록을 무결성 보증 요청 시스템(120)으로 전송한다.
도 2b 및 도 3을 참조하면, 무결성 보증 요청 시스템(120)은 무결성을 검증 하고자 하는 대상 시스템(110)으로 난수를 포함한 무결성 보증 요청을 전송한 후(S210), 그에 대한 응답 메시지를 수신한다(S220).
그리고 상기 응답 메시지에 포함된 무결성을 검증할 수 있는 데이터들을 참조하여 대상 시스템(110)의 무결성을 검증하는데, 검증 방법은, PCR값에 대한 서명을 검증하고(S230), 측정 목록에 있는 컴포넌트의 해시값을 이용하여 PCR값을 재구성한 후 상기 서명된 PCR 값과 일치하는지 확인하고(S240,S250), 컴포넌트의 해시값들이 무결성이 검증된 컴포넌트로부터 계산된 것인지 검사하여(S260), 상기 3가지 검증을 통과하면 무결성 보증 대상 시스템(110)의 무결성이 유지되고 있다고 믿고(S270), 3가지 검증 과정중 하나라도 통과하지 못하면 무결성이 유지되고 있지 않다고 판단한다(S280).
이와 같이 TCG에서 정의한 무결성 보증 기술은, 무결성 보증을 요청한 시스템에서 무결성 보증 대상 시스템의 플랫폼 환경과 설치된 프로그램 및 버전 등을 알 수 있으며, 따라서 악의적 의도가 있는 경우 이러한 노출된 정보를 이용하여 무결성 보증 대상 시스템을 공격할 수 있다는 문제점이 있다.
따라서, 외부 시스템이 대상 시스템의 플랫폼 정보를 알 수 없으면서 무결성을 보증할 수 있는 방법이 필요하다.
전술한 종래 기술의 문제점들을 해결하고자 한 종래 기술로서 미국 특허 공개 번호 제2006-26423호(2006.02.02)(이하, '06-26423 공개 특허'라 함)에서 'Privacy-protcting integrity attestation of a computing platform'을 제안하였다.
상기 06-26423 공개 특허에서는, 무결성 보증 과정에서 대상 플랫폼에 대한 정보를 은닉하기 위하여, 무결성 요청 시스템에서 대상 플랫폼으로 무결성 보증 요청을 보낼 때 여러 가용한 PCR 값들을 함께 보내며, 대상 플랫폼은 이러한 PCR 값들 중에서 해당하는 PCR값이 있다는 사실만을 요청 시스템에게 증명하도록 하여, 요청 시스템에서 대상 시스템에 대한 무결성을 검증할 수 있지만, 어떤 PCR값이 대상 플랫폼에 해당되는지를 알 수 없으므로, 대상 시스템의 정확한 플랫폼 정보를 수집할 수 없게 한다.
그러나, 상기 06-26423호 공개 특허의 경우, 요청 시스템이 많은 수의 가용한 PCR 값을 가져야 하고, 특히 대상 플랫폼과 관련된 PCR 값들을 가져야 한다는 단점이 있다.
또한, 요청 시스템이 제공하는 PCR 값들에 따라서 무결성 보증을 위한 요청 시스템과 대상 플랫폼과의 메시지 교환의 횟수도 가변적이고, 무결성 보증을 요청하는 시스템에 대한 가정이 현실적으로 구현하기 어려울 수 있다는 문제점이 있다.
뿐만 아니라, 여러 PCR 값들 중에서 하나가 대상 플랫폼에 해당한다는 제한적인 정보를 제공하기 때문에, 여전히 대상 플랫폼의 설정 정보를 파악하는데 도움을 줄 수 있다는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 제1 목적은, 컴퓨팅 플랫폼이 외부 시스템에게 무결성 보증을 할 때 외부 시스템이 설정 정보를 알 수 없도록 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법을 제공하는 것이다.
본 발명의 제2 목적은 검증 서버를 통해서 컴퓨팅 플랫폼의 무결성을 외부 시스템에게 보증하면서 검증 서버에서 처리해야 하는 연산을 최소화하여 검증 서버가 병목(Bottle neck)이 될 수 있는 문제를 해결하고, 검증 서버로 보내는 데이터에서 대상 플랫폼에 대한 어떠한 정보도 얻을 수 없으며, 외부 시스템에서도 대상 플랫폼의 정보를 알 수 없도록 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법을 제공하는 것이다.
상기와 같은 본 발명의 목적을 달성하기 위하여, 본 발명의 무결성 보증 대상 시스템에서 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법은,
컴퓨팅 플랫폼의 운용중에, 무결성에 영향을 미치는 이벤트가 발생할 때마다, 상기 이벤트와 관련된 컴포넌트를 측정하여 측정값을 생성하는 단계;
상기 생성된 측정값이 어떤 컴포넌트로부터 만들어졌는지를 은닉하는 단계;
상기 은닉된 측정값을 플랫폼이 시작된 후에 측정된 모든 측정값에 대한 정보를 기록한 측정 목록과 플랫폼 설정 레지스터(Platform configuration register, 이하, PCR 이라 함)에 기록하는 단계;
외부 시스템으로부터 전달된 무결성 보증 요청을 수신하는 단계;
무결성 보증 요청이 수신되면, 상기 은닉된 측정값과 상기 은닉된 측정값이 무결성이 유지된 컴포넌트로부터 생성된 것인 지를 확인할 수 있는 정보를 포함하는 데이터를 구성하는 단계; 및
상기 구성된 데이터를 무결성 보증을 요청한 외부 시스템으로 전송하는 단계를 포함한다.
더하여, 상기와 같은 본 발명의 목적을 달성하기 위하여, 본 발명의 검증 서버에서 무결성 보증 대상 시스템의 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법은,
무결성이 검증된 컴포넌트에 대한 정보를 사전에 저장하는 단계;
무결성 보증하고자 하는 대상 시스템으로 무결성 보증 요청을 전송하는 단계;
상기 요청에 대한 응답이 대상 시스템으로부터 은닉된 측정값을 포함한 응답을 수신하는 단계;
상기 사전에 저장된 정보와 상기 은닉된 측정값을 비교하여 상기 은닉된 측정값이 무결성이 유지된 컴포넌트로부터 생성된 것인지를 검증하는 단계; 및
상기 검증이 성공하면, 해당 무결성 보증 대상 시스템의 무결성이 유지되고 있음을 인증하는 인증 데이터를 생성하여 제공하는 단계를 포함한다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시 예를 상세히 설명 한다. 다만, 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다.
도 4는 본 발명의 바람직한 실시 예에 따른 컴퓨팅 플랫폼의 무결성을 보증하기 위한 방법이 적용되는 시스템을 개략적으로 도시한 도면이다.
도 4를 참조하면, 본 발명에 의한 무결성 보증은, 무결성 보증 요청에 따라서 관련 컴포넌트를 알 수 없도록 은닉된 무결성을 검증할 수 있는 데이터를 제공하는 무결성 보증 대상 시스템(210)과, 상기 무결성 보증 대상 시스템(210)으로 무결성 보증을 요청한 후, 그로부터 얻어진 데이터에서 은닉을 해제한 후 대상 시스템(210)의 무결성을 검증하고, 검증 결과를 다른 외부 시스템으로 제공하는 검증 서버(220)에 의해서 이루어진다.
즉, 검증 서버(220)를 통해 무결성 보증 요청 및 그 검증을 수행한 후, 검증 결과를 통해 대상 시스템(210)을 확인하고자 하는 다른 시스템으로 배포한다.
이때, 상기 무결성 보증 대상 시스템(210)은, TCG에서 정의된 것과 유사하게 무결성 측정 모듈(211)과, PCR(212)과, 측정 기록 저장소(213)와, 무결성 보증 서비스 모듈(214)을 포함하고 있으나, 상기 구성 요소들의 기능은 플랫폼의 설정 정보 보호를 위해서 새롭게 정의된 것이다.
더 구체적으로 설명하면, 상기 무결성 측정 모듈(211)은 무결성에 영향을 미치는 이벤트가 발생될 때 관련된 컴포넌트를 측정하여 측정값을 생성하는데, 이때, 상기 측정값이 어떤 컴포넌트로부터 만들어졌는지를 알 수 없도록 은닉하고, 은닉된 측정값을 PCR(212) 및 측정 기록 저장소(213)에 반영시키고, 더불어 무결성 보증 서비스 모듈(214)로 상기 측정값을 은닉하는데 사용한 변수(은닉 키)를 제공한다.
PCR(212)은 상기 무결성 측정 모듈(2110)로부터 새로운 은닉된 측정값이 입력되면, 이를 저장하는데, 이전에 기록된 PCR값과 새로 입력된 은닉된 측정값을 해쉬연산한 값을 새로운 PCR 값으로 갱신한다.
더하여, 측정 기록 저장소(213)는 상기 은닉된 측정값을 식별할 수 있는 정보와 함께 은닉된 측정값을 입력된 순서대로 저장한다.
무결성 보증 서비스 모듈(214)는 검증 서버(220)로부터의 무결성 보증 요청에 따라서, 무결성을 보증할 수 있는 데이터를 검증 서버(220)로 제공하는데 이때 상기 측정 기록 저장소(213)에 저장된 측정 목록과, PCR(212)에 기록된 PCR 값과, PCR 값에 대한 서명과, 상기 서명을 검증할 수 있는 키를 포함하는 인증서와 함께, 상기 은닉된 측정값으로부터 컴포넌트의 무결성을 확인할 수 있도록 하는 암호화된 변수(은닉키)를 제공한다.
상기에 따르면, 검증 서버(220)로 전달되는 데이터에는 측정값에 관련된 컴포넌트 정보가 은닉되어 있기 때문에, 대상 시스템(210) 이외의 다른 외부 시스템들이 대상 시스템(210)의 플랫폼 설정을 알 수 없다.
대신에 상기 검증 서버(220)는 상기와 같이 전송된 데이터로부터 대상 시스템(210)의 무결성이 유지되고 있는 지를 확인하기 위하여, 사전에 무결성이 검증된 컴포넌트에 대한 정보를 가지고 있어야 하며, 이를 이용하여 상기 전송된 데이타에 대한 서명 및 PCR값 검증과 은닉된 측정값이 무결성이 유지된 컴포넌트로부터 만들어졌는지를 검증하여 무결성이 유지되고 있는 지를 확인하고, 무결성이 유지되고 있는 경우, 이에 대한 인증 데이터를 다른 시스템으로 배포한다. 이때 검증 서버(220)는 서로 다른 두 컴포넌트의 해시값이 일치할 확률이 매우 낮다는 점을 이용하여 각 컴포넌트의 해시값을 은닉된 측정값의 컴포넌트를 식별하는 정보로 사용하며, 또한 처리 속도를 높이기 위하여 상기 컴포넌트의 해시값을 가공하여 사용한다. 이에 대해서는 이후의 무결성 보증을 제공하는 방법에서 더 구체적으로 설명한다.
도 5a 및 도 5b는 본 발명에 의한 대상 컴퓨팅 플랫폼의 무결성을 보증하기 위한 방법을 나타낸 흐름도이다. 본 발명에 의한 무결성을 보증하는 방법은 상술한 무결성 보증 대상 시스템(210)과 검증 서버(220)를 통해 구현되는 것으로서, 도 5a는 무결성 보증 대상 시스템에서 구현된 절차를 나타낸 것이고, 도 5b는 검증 서버측에서 이루어는 절차를 나타낸 흐름도이다.
도 5a를 참조하면, 무결성 보증 대상 시스템(210)은 컴퓨팅 플랫폼이 시작되어 종료되기 전까지 무결성에 영향을 미치는 이벤트가 발생할 때마다, 상기 이벤트와 관련된 컴포넌트를 측정한 후 측정값을 생성한다(S310). 이때, 측정값의 생성은 앞서 설명한 바와 같이, 관련 컴포넌트를 해시 연산하여 얻어질 수 있다. 더하여, 상기 측정값 생성시 동일한 해시값을 가지는 컴포넌트는 한 번만 기록하는 것이 바람직하다. 상기 측정값 생성은 무결성 측정 모듈(211)을 통해 이루어진다.
그리고 본 발명은 무결성 보증 과정에서 대상 컴퓨팅 플랫폼의 설정 정보가 외부로 노출되는 것을 방지하기 위하여 상기 생성된 측정값이 어떤 컴포넌트로부터 만들어졌는지를 은닉한다(S320). 상기 은닉과정은 해당 측정값이 어떤 컴포넌트로부터 만들어졌는지를 알 수 없도록 다시 변환하는 것으로서, 이때 난수에 의해 생성된 변수를 이용한다. 상기 은닉 방법에 대해서는 다음에 더 구체적으로 설명한다.
그 후 상기 은닉된 측정값을 플랫폼이 시작된 후에 측정된 모든 측정값에 대한 정보를 기록한 측정 목록과 TPM에 PCR값을 기록한다(S330).
상기 단계들(S310~S330)은 컴퓨팅 플랫폼이 시작된 후부터 컴퓨팅 플랫폼이 종료될때까지 무결성에 영향을 미치는 이벤트들이 발생될 때마다 수행되어, 무결성 보증 대상 시스템(210)의 무결성을 보증하기 위한 정보들을 수집한다.
그리고 상기 무결성 보증 대상 시스템(210)은 검증 서버(220)로부터 난수를 포함한 무결성 보증 요청이 수신되면(S340), 상기 난수를 이용하여 지금까지 저장된 PCR값에 대한 서명을 생성한다(S350). 상기 PCR값에 대한 서명 생성은 무결성 보증 서비스 모듈(214)이 무결성 보증 요청에 포함되어 전달된 검증 서버(220)가 제공한 난수를 TPM으로 제공하면, 상기 TPM이 상기 난수를 이용하여 수행하는 것이다.
더하여, 무결성 보증 대상 시스템(210)은 무결성 보증을 요청한 검증 서 버(220)가 상기 은닉된 측정값이 무결성이 검증된 컴포넌트로부터 생성된 것인지를 확인할 수 있도록 하는 변수를 생성하고 검증 서버(220)만이 상기 변수를 알 수 있도록 암호화한다(S360). 여기서, 본 발명은 측정값이 어떠한 컴포넌트로부터 생성되었는지를 알 수 없도록 하여 무결성 보증 대상 시스템을 보호하고자 하기 때문에, 검증 서버(220)에서 은닉된 측정값이 어떠한 컴포넌트로부터 생성된 것인지를 확인하는 과정을 포함하지 않고, 은닉된 측정값이 바로 무결성이 검증된 컴포넌트로부터 생성된 것인지를 확인하도록 하며, 검증 서버(220)에서 이러한 처리를 위해 필요한 정보를 상기 단계S360을 통해 제공한다.
무결성 보증 대상 시스템(210)은 상기 단계들을 통해서 검증 서버(220)에서 무결성을 보증하기 위해 필요한 데이터들이 마련되면, 마련된 데이터를 검증 서버(220)로 전송하여, 검증 서버(220)가 자신의 무결성을 검증해 볼 수 있도록 한다(S370). 이때, 무결성을 검증하기 위해 전달되는 데이터는, 측정 목록, PCR 값, PCR 값에 대한 서명, 서명을 확인할 수 있는 키를 포함한 인증서 및 상기 은닉된 측정값이 무결성이 검증된 컴포넌트로부터 생성된 것인지를 확인할 수 있도록 하는 변수의 암호화값을 포함한다. 상기에서 측정 목록은 앞서 설명한 바와 같이, 은닉된 측정값들과 각 은닉된 측정값들을 식별할 수 있는 정보를 포함하며, 상기 PCR 값은 은닉된 측정값이 생성될 때마다 이전의 PCR값에 상기 생성된 은닉된 측정값을 함께 해시한 값으로 갱신된 것이다.
검증 서버(220)는 무결성 보증 대상 시스템(210)으로부터 전달된 은닉된 측정값으로 이루어진 정보들로부터 대상 시스템(210)의 무결성을 검증하는데 이는 도 5b에 도시된 바와 같이 이루어진다.
도 5b를 참조하면, 검증 서버(330)는 상기 무결성 보증 대상 시스템(210)에 의해서 어떠한 컴포넌트로부터 만들어졌는지를 알 수 없도록 은닉된 측정값에서, 관련 컴포넌트가 어떤 것인지를 확인하지 않고, 은닉된 측정값이 무결성이 있는 컴포넌트로부터 생성된 것인지를 확인하여 무결성을 검증하기 위하여, 무결성이 검증된 컴포넌트에 대한 정보를 사전에 저장한다(S410). 이때, 다른 두 컴포넌트의 해시값이 일치할 확률이 매우 낮다는 점을 이용하여, 각 컴포넌트의 해시값을 컴포넌트를 식별하는 정보로 사용한다. 즉, 무결성이 검증된 컴포넌트에 대한 해시값들을 사전에 저장한다. 검증 서버(220)에서 모든 대상 시스템에 대한 검증 처리가 집중됨에 따른, 처리 지연 문제가 발생하지 않도록 하기 위해서는, 검증 처리에 대한 처리 속도를 높여야 한다. 이를 위하여 본 발명에서는 각 컴포넌트의 해시값을 그대로 저장하지 않고 별도의 처리 과정을 거쳐서 가공된 값을 저장하는 것이 바람직하다.
상기와 같이 사전 정보가 저장된 후, 임의의 대상 시스템에 대한 무결성 보증이 필요한 경우, 해당하는 무결성 보증 대상 시스템(210)으로 무결성 보증 요청을 전송한다(S420). 이때, 상기 무결성 보증 요청에는 PCR값에 대한 서명 생성을 위해 검증 서버(220)가 설정한 난수가 포함된다. 상기 난수는 이후 무결성 보증 대상 시스템(210)에서 보내온 PCR값에 대한 서명을 검증하는데 사용된다.
상기 후에 무결성 보증 대상 시스템(210)으로부터 응답이 수신되면, 수신된 응답 메시지로부터 무결성을 검증하기 위해 필요한 데이터들을 추출한다(S440). 즉, 앞서 무결성 보증 대상 시스템(210)에서 전송한, 측정 목록, PCR 값, PCR값에 대한 서명, 서명을 확인할 수 있는 키를 포함한 인증서, 암호화된 변수를 추출한다.
그리고 추출된 데이터를 이용하여 검증을 수행하는데, 먼저 상기 PCR값에 대한 서명을 검증하고(S450), 측정 목록의 값을 이용하여 PCR값을 재구성한 후 재구성된 PCR값과 상기 추출된 PCR값이 일치하는 지를 검증하고(S460,S470), 상기 암호화된 변수를 복호화한 후, 상기 복호화된 변수를 이용하여 측정 목록에 있는 은닉된 측정값을 변환한 후, 이를 상기 무결성이 검증된 컴포넌트와 비교하여, 은닉된 측정값이 무결성이 검증된 컴포넌트로부터 생성된 것인지를 검증한다(S480).
상기 세 개의 검증이 모두 성공하면, 무결성 보증 대상 시스템(210)의 무결성이 유지되고 있는 것으로 판단하고(S490), 세 개의 검증 중에서 하나라도 성공하지 못하면 무결성이 유지되고 있지 않은 것으로 판단한다(S510).
상기 무결성이 유지되고 있는 것으로 판단된 경우, 상기 무결성 보증 대상 시스템(210)의 무결성이 유지되고 있는 것을 인증하는 인증 데이터를 생성하여 다른 외부 시스템들이 알 수 있도록 한다(S500). 상기 인증 데이터는 해당하는 무결성 보증 대상 시스템을 식별할 수 있는 정보 및 그에 대한 인증서를 포함하여 이루어질 수도 있고, 상기 은닉된 측정값으로 구현된 PCR값에 대한 인증서를 포함할 수 도 있으며, 그외 여러 가지 형태로 구현될 수 있다.
도 6은 본 발명에 의한 무결성을 보증하는 방법의 구체적인 실시 예를 나타낸 흐름도이다.
상기 실시 예에서, 검증 서버(220)와 무결성 보증 대상 시스템(210)들은 은닉된 측정값을 이용한 무결성 검증을 위하여 큰 소수 P와 그룹
Figure 112006071829928-PAT00001
의 생성자(generator)인 g를 공유하고 있다고 가정한다. 그리고, 이하의 처리는 TPM 내부에 PCR이 하나인 것으로 가정하여 설명한다.
더하여, 상기 검증 서버(220)는 대상 시스템들의 무결성이 유지되고 있는지 확인하기 위해서 무결성이 검증된 컴포넌트들을 대한 정보를 사전에 가지고 있어야 한다. 상기 정보에서 각 컴포넌트의 식별정보는 컴포넌트의 해시값으로 구현되며, 검증 처리의 속도를 높이기 위하여 별도의 가공 과정을 거치는데 이는 다음과 같이 이루어질 수 있다.
1) 알려진 컴포넌트들 중에서, 무결성이 검증된 모든 컴포넌트들의 해시값을 구한다. 즉, 무결성이 검증된 컴포넌트의 수를 n 이라고 하면, 아래의 수학식 을 계산한다.
Figure 112006071829928-PAT00002
여기서, 1≤j≤n, n은 1이상의 자연수이다.
2) 상기 계산된 해시값
Figure 112006071829928-PAT00003
에 대하여 상기 공유된 큰 소수 P와
Figure 112006071829928-PAT00004
의 생성자 g를 이용하여 수학식 2와 같이
Figure 112006071829928-PAT00005
를 계산한다.
Figure 112006071829928-PAT00006
여기서,
Figure 112006071829928-PAT00007
비트 문자열을 정수로 취급하여 계산하고, P는 Discrete Logarithm Problem의 정의에 따라서 P-1의 인수이면서 소수인 q가 가능한
Figure 112006071829928-PAT00008
값들을 큰 정수로 취급했을 때
Figure 112006071829928-PAT00009
의 최대값보다 크도록 사전에 고려되어야 한다.
3) 상기 2)번 과정을 통해 모든 컴포넌트에 대하여 반복하여, 집합(
Figure 112006071829928-PAT00010
)을 구하면, 상기 집합 내의 원소들로부터 만들 수 있는 조합중에서 존재하는 것으로 알려진 조합들에 대한 특징값을 상기 P를 통해 계산하고, 상기 계산된 특징값을 무결성이 검증된 컴포넌트들에 대한 사전 정보로 저장한다. 예를 들어, 상기 집합의 원소들로 가능한 조합중 한 조합의 원소가 (
Figure 112006071829928-PAT00011
)이라고 할 때, 상기 조합의 특징값은
Figure 112006071829928-PAT00012
가 상기 조합의 특징값이 된다. 이에 의하면, 은닉된 측정값으로부터 컴포넌트의 확인없이 무결성을 검증할 수 있는 사전 정보가 마련된다.
상기 상태에서, 무결성 보증 대상 시스템(210)들에 전원이 인가되어 동작을 시작하면, 무결성 보증을 위한 값들, 즉, PCR(212)의 값이 0로 초기화되고, 측정 목록 변수 ML이 초기화된다.
상기 상태에서, 무결상 보증 대상 시스템(210)들 내에 무결성에 영향을 주는 이벤트가 발생하는 경우, 무결성 측정 모듈(211)에서 해당 이벤트와 관련된 컴포넌트 i의 측정값을 생성한다. 상기 측정값을 생성할 때, 컴포넌트 i의 해시값
Figure 112006071829928-PAT00013
를 계산한 후, 상기 계산된
Figure 112006071829928-PAT00014
및 검증서버(220)와 공유하고 있는 소수 P를 이용하여 다른 측정값
Figure 112006071829928-PAT00015
를 계산하여,
Figure 112006071829928-PAT00016
를 컴포넌트 i의 측정값으로 한다. 이때 무결성 측정 모듈(211)은 이미 측정한 컴포넌트 i에 대한 기록을 가지고 있다가, 해당 컴포넌트 i가 이미 측정되었고, 그 해시값이 변하지 않았으면, 해당 컴포넌트 i에 대한 측정값 생성을 중단한다. 즉, 동일한 Hash값을 가지는 컴포넌트는 한 번만 기록하도록 한다.
그런데 위와 같이 컴포넌트 i의 해시값을 그대로 측정값으로 사용하지 않고, 이를 검증 서버(220)와 공유하고 있는 정보를 이용하여
Figure 112006071829928-PAT00017
로 가공하여 측정값으로 사용하더라도 상기 P값은 이미 공개된 값이고, 컴포넌트의 해시값은 누구나 계산할 수 있기 때문에, 상기
Figure 112006071829928-PAT00018
가 어떤 컴포넌트와 관련이 있는지 알 수 있다
본 발명에서는 이 때문에, 도 5a의 단계 320에서와 같이 상기 생성된 측정값이 어느 컴포넌트 i로부터 측정된 것인지를 은닉하는데, 이를 위하여 무결성 측정 모듈(211)은 난수
Figure 112006071829928-PAT00019
를 생성하여, 컴포넌트 i의 측정값을 은닉하기 위한 변수
Figure 112006071829928-PAT00020
를 계산하고, 이 변수에 상기 계산된 측정값
Figure 112006071829928-PAT00021
를 곱하여 은닉 된 측정값
Figure 112006071829928-PAT00022
을 산출한다.
상기와 같이 은닉된 측정값이 계산되면, 상기 은닉된 측정값
Figure 112006071829928-PAT00023
와 그 해시값
Figure 112006071829928-PAT00024
을 측정 목록 ML에 추가한다(
Figure 112006071829928-PAT00025
). 여기서, 해시값
Figure 112006071829928-PAT00026
은 은닉된 측정값의 식별값으로 사용된다.
더하여, 상기 은닉된 측정값의 해시값
Figure 112006071829928-PAT00027
을 TPM으로 전송하여 PCR값을 갱신한다. 이때 갱신된 PCR값은
Figure 112006071829928-PAT00028
가 된다.
이후, 검증 서버(220)로부터 무결성 보증 요청(ChReq(nonce))가 수신되면, 무결성 보증 서비스 모듈(214)이 검증 서버(220)가 대상 시스템의 무결성을 검증할 수 있도록 데이터를 준비하는데, 이는 우선 상기 요청에 포함된 난수(nonce)는 무결성 보증 대상 시스템(210) 내의 TPM으로 전달되고, 상기 TPM은 PCR 값과 난수에 대한 서명(
Figure 112006071829928-PAT00029
)을 생성하고, 무결성 측정 모듈(211)은 현재까지 측정된 측정값들의 은닉을 위해 생성된 모든 변수, 즉, 모든
Figure 112006071829928-PAT00030
들에 대하여,
Figure 112006071829928-PAT00031
를 계산하고, 상기 계산된 α의 역 원소인
Figure 112006071829928-PAT00032
를 계산하여 무결성 보증 서비스 모듈(214)로 전달하고, 상기 무결성 보증 서비스 모듈(214)은 상 기 입력받은 변수
Figure 112006071829928-PAT00033
를 검증 서버(220)만이 알 수 있도록 암호화한다. 예를 들어, 검증 서버(220)의 공개키로 암호화할 수 있다.
그리고 무결성 보증 서비스 모듈(214)은, 상기 PCR값 및 그 서명(quote)과, 측정 목록(ML)과, 서명을 확인할 수 있는 키를 포함하는 인증서와, 무결성을 확인할 수 있도록 하는 변수(
Figure 112006071829928-PAT00034
)를 응답 메시지(ChRes)에 실어 검증 서버(220)에게 보낸다.
이에 검증 서버(220)는 상기 전달된 인증서를 이용하여 PCR값에 대한 서명을 검증하고, 측정 목록에 있는 은닉된 측정값들의 해시값을 이용하여 PCR값을 재구성하여 상기 서명된 PCR 값과 일치하는지 확인한다. 그리고, 상기 측정 목록에 있는 은닉된 측정값들이 무결성이 검증된 컴포넌트로부터 계산된 것인지를 확인하기 위하여, 암호화된 변수
Figure 112006071829928-PAT00035
를 복호화하고, 측정 목록에 있는 모든 은닉된 측정값들에 대한
Figure 112006071829928-PAT00036
를 계산한다. 그리고 복호화된
Figure 112006071829928-PAT00037
을 이용하여 측정 목록에 있는 모든 은닉된 측정값들에 대한 특징값
Figure 112006071829928-PAT00038
를 계산한 후, 이를 검증 서버(220)에 앞서 설명한 바와 같이 사전에 저장된 정보 중에서 일치하는 값이 있는 지를 확인하여, 그 중에서 하나와 일치하면 은닉된 측정값들이 무결성이 검증된 컴포넌트들로부터 계산된 것으로 판단할 수 있다.
검증 서버(220)는 상기 처리에 의하여 무결성 보증 대상 시스템(210)의 무결 성이 유지되고 있음을 확인하면, 상기 PCR 값을 가진 플랫폼의 무결성이 유지되고 있음을 인증하는 데이터를 생성하여, 다른 시스템들이 무결성 보증 대상 시스템(210)의 무결성을 검증할 수 있도록 한다.
이상에서 설명한 본 발명은 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 당업자에게 있어 명백할 것이다.
상술한 바와 같이, 본 발명은 컴퓨팅 플랫폼이 외부 시스템에게 무결성 보증을 할 때, 대상 플랫폼의 내부적인 정보를 은닉하고, 무결성 보증을 요청한 시스템은 물론이고 통신을 도청할 수 있는 공격자들도 대상 플랫폼의 내부 정보를 알 수 없도록 함으로써, 무결성 보증 대상 플랫폼의 정보가 악의적으로 사용될 수 있는 문제점을 해결할 수 있다.
더하여, 검증 서버를 통해 무결성 보증 대상 시스템의 무결성을 검증하면서, 검증 서버에서 처리해야 하는 연산을 최소화하여 검증 서버가 병목의 원인이 되어 무결성 보증의 전체 프로세스의 속도가 느려질 수 있는 위험을 제거할 수 있다.

Claims (20)

  1. 무결성 보증 대상 시스템에서 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법에 있어서,
    컴퓨팅 플랫폼의 운용중에, 무결성에 영향을 미치는 이벤트가 발생할 때마다, 상기 이벤트와 관련된 컴포넌트를 측정하여 측정값을 생성하는 단계;
    상기 생성된 측정값이 어떤 컴포넌트로부터 만들어졌는지를 은닉하는 단계;
    상기 은닉된 측정값을 플랫폼이 시작된 후에 측정된 모든 측정값에 대한 정보를 기록한 측정 목록과 플랫폼 설정 레지스터(Platform configuration register, 이하, PCR 이라 함)에 기록하는 단계;
    외부 시스템으로부터 전달된 무결성 보증 요청을 수신하는 단계;
    무결성 보증 요청이 수신되면, 상기 은닉된 측정값과 상기 은닉된 측정값이 무결성이 유지된 컴포넌트로부터 생성된 것인 지를 확인할 수 있는 정보를 포함하는 데이터를 구성하는 단계; 및
    상기 구성된 데이터를 무결성 보증을 요청한 외부 시스템으로 전송하는 단계를 포함하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  2. 제1항에 있어서,
    상기 무결성 보증 대상 시스템은 무결성을 요청하는 외부 시스템과 측정값의 은닉 및 은닉된 측정값으로부터 무결성을 검증하는데 필요한 소수 P및 그룹
    Figure 112006071829928-PAT00039
    의 생성자 g를 공유하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  3. 제2항에 있어서, 상기 측정값을 생성하는 단계는
    해당 컴포넌트(componenti)의 해시값
    Figure 112006071829928-PAT00040
    를 계산하고, 상기 계산된 해시값
    Figure 112006071829928-PAT00041
    및 상기 공유된 소수 P와, 생성자 g를 이용하여
    Figure 112006071829928-PAT00042
    를 계산하고, 상기 계산된
    Figure 112006071829928-PAT00043
    를 해당 컴포넌트의 측정값으로 하는 단계인 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  4. 제3항에 있어서, 상기 측정값을 생성하는 단계는
    무결성에 영향을 미치는 이벤트와 관련된 컴포넌트에 대해 측정값이 생성된 적이 있고, 상기 컴포넌트의 해시값이 그 전에 생성된 해시값과 동일하면 측정값 생성을 중단하는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  5. 제3항에 있어서, 상기 은닉하는 단계는
    난수
    Figure 112006071829928-PAT00044
    를 생성하는 과정과,
    상기 생성된 난수와 공유된 소수와 생성자 g를 이용하여 해당 컴포넌트의 측정값을 은닉하기 위한 변수
    Figure 112006071829928-PAT00045
    를 계산하는 과정과,
    상기 변수에 해당 컴포넌트의 해시값
    Figure 112006071829928-PAT00046
    Figure 112006071829928-PAT00047
    로 연산하여 은닉된 측정값
    Figure 112006071829928-PAT00048
    을 산출하는 과정으로 이루어지는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  6. 제5항에 있어서, 상기 기록하는 단계는
    상기 은닉된 측정값
    Figure 112006071829928-PAT00049
    와 그 해시값
    Figure 112006071829928-PAT00050
    을 측정 목록 ML에 추가하는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  7. 제5항에 있어서, 상기 기록하는 단계는
    상기 은닉된 측정값의 해시값
    Figure 112006071829928-PAT00051
    과 이전의 PCR값을 함께 해시 연산한 값을 새로운 PCR값으로 기록하는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  8. 제7항에 있어서, 상기 무결성 보증 요청을 수신하는 단계는
    외부 시스템에서 생성된 난수를 함께 수신하는 단계인 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  9. 제8항에 있어서, 상기 데이터를 구성하는 단계는
    상기 무결성 보증 요청과 함께 수신된 난수를 이용하여 PCR값에 대한 서명을 생성하는 과정과,
    무결성 보증을 요청한 시스템이 상기 은닉된 측정값이 무결성이 검증된 컴포넌트로부터 생성된 것인지를 확인할 수 있도록 하는 변수를 생성하여 암호화하는 과정을 포함하고,
    상기 측정 목록, PCR 값, PCR 값에 대한 서명, 서명을 확인할 수 있는 키를 포함한 인증서 및 상기 은닉된 측정값이 무결성이 검증된 컴포넌트로부터 생성된 것인지를 확인할 수 있도록 하는 변수의 암호화값을 무결성 보증을 검증하기 위한 데이터로 구성하는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  10. 검증 서버에서 무결성 보증 대상 시스템의 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법에 있어서,
    무결성이 검증된 컴포넌트에 대한 정보를 사전에 저장하는 단계;
    무결성을 확인하고자 하는 대상 시스템으로 무결성 보증 요청을 전송하는 단계;
    상기 요청에 대한 응답이 대상 시스템으로부터 은닉된 측정값을 포함한 응답을 수신하는 단계;
    상기 사전에 저장된 정보와 상기 은닉된 측정값을 비교하여 상기 은닉된 측정값이 무결성이 유지된 컴포넌트로부터 생성된 것인지를 검증하는 단계; 및
    상기 검증이 성공하면, 해당 무결성 보증 대상 시스템의 무결성이 유지되고 있음을 인증하는 인증 데이터를 생성하여 제공하는 단계를 포함하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  11. 제10항에 있어서,
    상기 검증 서버는 무결성 보증 대상 시스템과 측정값의 은닉 및 은닉된 측정값으로부터 무결성을 검증하는데 필요한 소수 P및 그룹
    Figure 112006071829928-PAT00052
    의 생성자 g를 공유하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  12. 제11항에 있어서,
    상기 무결성이 검증된 컴포넌트에 대한 정보를 사전에 저장하는 단계는,
    알려진 컴포넌트들 중에서, 무결성이 검증된 모든 컴포넌트들의 해시값을 구하는 제1 과정과,
    상기 계산된 해시값들을 각각 상기 공유된 큰 소수 P와
    Figure 112006071829928-PAT00053
    의 생성자 g를 이용하여
    Figure 112006071829928-PAT00054
    로 연산하는 제2 과정과,
    상기 무결성이 검증된 컴포넌트들로부터 만들 수 있는 조합 중에서 실제 컴퓨팅 플랫폼 상에 존재하는 것으로 알려진 조합별로, 해당 조합에 속하는 컴포넌트들에 대하여 상기 제2 과정에서 연산된 값들로부터 해당 조합에 대한 특징값을 산출하는 제3 과정과,
    상기 계산된 특징값을 무결성이 검증된 컴포넌트들에 대한 사전 정보로 저장하는 제4 과정으로 이루어지는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  13. 제12항에 있어서,
    상기 각 조합의 특징값은
    Figure 112006071829928-PAT00055
    (여기서,
    Figure 112006071829928-PAT00056
    은 각 조합에 속하는 컴포넌트들에 대해서 제2과정에서 연산된 값을 말한다)인 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  14. 제12항에 있어서, 상기 응답을 수신하는 단계는
    해당 무결성 보증 대상 시스템의 측정 목록과, PCR 값과, PCR값에 대한 서명 과, 은닉된 측정값이 무결성이 검증된 컴포넌트로부터 생성된 것인지를 검증하는데 필요한 암호화된 변수를 수신하는 단계임을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  15. 제14항에 있어서,
    상기 검증하는 단계는,
    암호화된 변수를 복호화하는 과정과,
    수신된 측정 목록에 있는 모든 은닉된 측정값들에 대한
    Figure 112006071829928-PAT00057
    를 계산하는 과정과,
    상기 복호화된 변수와 상기 계산된 λ를 이용하여 측정 목록에 있는 무결성 보증 대상 시스템의 특징값
    Figure 112006071829928-PAT00058
    을 계산하는 과정과,
    상기 계산된 특징값과 사전에 저장된 정보 중에서 일치하는 값이 있는 지를 확인하는 과정과,
    사전에 저장된 정보 중에서 일치하는 값이 존재하면 은닉된 측정값들이 무결성이 있는 컴포넌트로부터 생성된 것으로 판단하는 과정을 포함하는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  16. 제15항에 있어서,
    상기 PCR 값에 대한 서명을 검증하는 단계; 및
    상기 PCR 값에 대한 서명의 검증이 실패하면, 해당 무결성 보증 대상 시스템의 무결성이 유지되고 있지 않은 것으로 판단하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  17. 제14항에 있어서,
    상기 측정 목록은 각 엔트리가 은닉된 측정값과, 상기 은닉된 측정값의 해시값으로 이루어지는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  18. 제17항에 있어서,
    상기 측정 목록의 해시값을 이용하여 PCR값을 재구성한 후, 재구성된 PCR값과 상기 무결성 보증 대상 시스템으로부터 전달된 PCR값이 일치하는 지를 검증하는 단계; 및
    상기 검증이 실패하면, 해당 무결성 보증 대상 시스템의 무결성이 유지되고 있지 않은 것으로 판단하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  19. 제10항에 있어서,
    상기 인증 데이터는 해당하는 무결성 보증 대상 시스템을 식별할 수 있는 정 보 및 그에 대한 인증서를 포함하여 이루어지는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
  20. 제17항에 있어서,
    상기 인증 데이터는 상기 은닉된 측정값으로 구현된 PCR값에 대한 인증서를 포함하여 이루어지는 것을 특징으로 하는 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을 제공하는 방법.
KR1020060096571A 2006-09-29 2006-09-29 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법 KR100823738B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060096571A KR100823738B1 (ko) 2006-09-29 2006-09-29 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법
US11/842,231 US20080083039A1 (en) 2006-09-29 2007-08-21 Method for integrity attestation of a computing platform hiding its configuration information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060096571A KR100823738B1 (ko) 2006-09-29 2006-09-29 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법

Publications (2)

Publication Number Publication Date
KR20080030359A true KR20080030359A (ko) 2008-04-04
KR100823738B1 KR100823738B1 (ko) 2008-04-21

Family

ID=39262541

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060096571A KR100823738B1 (ko) 2006-09-29 2006-09-29 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법

Country Status (2)

Country Link
US (1) US20080083039A1 (ko)
KR (1) KR100823738B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101138999B1 (ko) * 2008-12-08 2012-04-25 한국전자통신연구원 보안신뢰장치 및 데이터 관리 방법
KR20160127878A (ko) * 2015-04-27 2016-11-07 갤럭시아커뮤니케이션즈 주식회사 해시 코드를 이용하는 콘텐츠의 무결성 및 유효성 검증 방법 및 시스템

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161285B2 (en) * 2008-09-26 2012-04-17 Microsoft Corporation Protocol-Independent remote attestation and sealing
US8312272B1 (en) * 2009-06-26 2012-11-13 Symantec Corporation Secure authentication token management
CN102763114A (zh) * 2010-02-16 2012-10-31 诺基亚公司 用于使用pcr重用和现有基础架构提供证明的方法和装置
US8909928B2 (en) * 2010-06-02 2014-12-09 Vmware, Inc. Securing customer virtual machines in a multi-tenant cloud
EP2455921A1 (en) * 2010-11-03 2012-05-23 Gemalto SA A system for accessing a service and corresponding portable device and method
US9087196B2 (en) * 2010-12-24 2015-07-21 Intel Corporation Secure application attestation using dynamic measurement kernels
KR20140043068A (ko) * 2011-02-17 2014-04-08 타세라, 아이엔씨. 애플리케이션 증명을 위한 시스템 및 방법
US8990948B2 (en) 2012-05-01 2015-03-24 Taasera, Inc. Systems and methods for orchestrating runtime operational integrity
CN104782155A (zh) * 2012-11-08 2015-07-15 诺基亚技术有限公司 移动tpm中部分虚拟的pcr组
US9367339B2 (en) * 2013-07-01 2016-06-14 Amazon Technologies, Inc. Cryptographically attested resources for hosting virtual machines
US10592064B2 (en) 2013-09-17 2020-03-17 Amazon Technologies, Inc. Approaches for three-dimensional object display used in content navigation
US10067634B2 (en) 2013-09-17 2018-09-04 Amazon Technologies, Inc. Approaches for three-dimensional object display
DE102013219375A1 (de) 2013-09-26 2015-03-26 Siemens Aktiengesellschaft Anpassen von Zugriffsregeln für einen Datenaustausch zwischen einem ersten Netzwerk und einem zweiten Netzwerk
US9705879B2 (en) * 2014-09-17 2017-07-11 Microsoft Technology Licensing, Llc Efficient and reliable attestation
US9606940B2 (en) * 2015-03-27 2017-03-28 Intel Corporation Methods and apparatus to utilize a trusted loader in a trusted computing environment
EP3493091A1 (de) * 2017-12-04 2019-06-05 Siemens Aktiengesellschaft Integritätsprüfung einer vorrichtung
US11361660B2 (en) 2019-03-25 2022-06-14 Micron Technology, Inc. Verifying identity of an emergency vehicle during operation
US11218330B2 (en) 2019-03-25 2022-01-04 Micron Technology, Inc. Generating an identity for a computing device using a physical unclonable function
US11323275B2 (en) * 2019-03-25 2022-05-03 Micron Technology, Inc. Verification of identity using a secret key
US11233650B2 (en) 2019-03-25 2022-01-25 Micron Technology, Inc. Verifying identity of a vehicle entering a trust zone
US11386234B2 (en) * 2019-12-17 2022-07-12 Nuvoton Technology Corporation Security systems and methods for integrated circuits
US11558198B2 (en) * 2020-04-07 2023-01-17 Cisco Technology, Inc. Real-time attestation of cryptoprocessors lacking timers and counters
US11665148B2 (en) * 2021-03-22 2023-05-30 Cisco Technology, Inc. Systems and methods for addressing cryptoprocessor hardware scaling limitations

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6931545B1 (en) * 2000-08-28 2005-08-16 Contentguard Holdings, Inc. Systems and methods for integrity certification and verification of content consumption environments
KR100525813B1 (ko) * 2003-11-10 2005-11-02 (주)잉카엔트웍스 호스트 플레이어를 위한 콘텐츠 보안처리 시스템 및 그 방법
KR100512145B1 (ko) * 2003-11-14 2005-09-05 엘지엔시스(주) 침입탐지 시스템에서 파일 무결성 검사 방법
EP1617587A1 (en) * 2004-07-12 2006-01-18 International Business Machines Corporation Method, system and computer program product for privacy-protecting integrity attestation of computing platform

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101138999B1 (ko) * 2008-12-08 2012-04-25 한국전자통신연구원 보안신뢰장치 및 데이터 관리 방법
KR20160127878A (ko) * 2015-04-27 2016-11-07 갤럭시아커뮤니케이션즈 주식회사 해시 코드를 이용하는 콘텐츠의 무결성 및 유효성 검증 방법 및 시스템

Also Published As

Publication number Publication date
US20080083039A1 (en) 2008-04-03
KR100823738B1 (ko) 2008-04-21

Similar Documents

Publication Publication Date Title
KR100823738B1 (ko) 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법
US11128477B2 (en) Electronic certification system
JP6151402B2 (ja) データセンタへのプラットフォームの内包検証
CN111708991A (zh) 服务的授权方法、装置、计算机设备和存储介质
CN110770729B (zh) 用于证明虚拟机完整性的方法和设备
CN113268715A (zh) 软件加密方法、装置、设备及存储介质
CN110096894B (zh) 一种基于区块链的数据匿名共享系统及方法
CN109981680B (zh) 一种访问控制实现方法、装置、计算机设备及存储介质
US7210034B2 (en) Distributed control of integrity measurement using a trusted fixed token
CN114257376B (zh) 数字证书更新方法、装置、计算机设备和存储介质
JP2017531951A (ja) セキュリティチェックのための方法、デバイス、端末およびサーバ
KR20180046593A (ko) 펌웨어 서명 검증과 보안키 관리를 위한 사물인터넷 디바이스의 펌웨어 업데이트 시스템
WO2017124887A1 (en) Device, server, system and method for data attestation
US8452968B2 (en) Systems, methods, apparatus, and computer readable media for intercepting and modifying HMAC signed messages
CN117436043A (zh) 待执行文件的来源验证方法、设备以及可读存储介质
US20090210719A1 (en) Communication control method of determining whether communication is permitted/not permitted, and computer-readable recording medium recording communication control program
CN115550060B (zh) 基于区块链的可信证书验证方法、装置、设备和介质
CN115242471B (zh) 信息传输方法、装置、电子设备及计算机可读存储介质
CN112865981B (zh) 一种令牌获取、验证方法及装置
CN115514492A (zh) Bios固件验证方法、装置、服务器、存储介质和程序产品
US11552804B1 (en) Code sign white listing (CSWL)
KR100897075B1 (ko) 배포 cd를 사용하는 장치에 서명 그룹의 다이렉트 증명개인 키들을 전달하는 방법
CN113556365B (zh) 认证结果数据传输系统、方法及装置
CN114117554B (zh) 执法数据可信验证方法、处理方法、系统和执法仪
JP4330973B2 (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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120330

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130325

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170327

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee