KR20100003234A - 신뢰 검증 방법 및 신뢰 검증 시스템 - Google Patents

신뢰 검증 방법 및 신뢰 검증 시스템 Download PDF

Info

Publication number
KR20100003234A
KR20100003234A KR1020090058712A KR20090058712A KR20100003234A KR 20100003234 A KR20100003234 A KR 20100003234A KR 1020090058712 A KR1020090058712 A KR 1020090058712A KR 20090058712 A KR20090058712 A KR 20090058712A KR 20100003234 A KR20100003234 A KR 20100003234A
Authority
KR
South Korea
Prior art keywords
platform
service provider
integrity
list
trust verification
Prior art date
Application number
KR1020090058712A
Other languages
English (en)
Other versions
KR101106851B1 (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 KR20100003234A publication Critical patent/KR20100003234A/ko
Application granted granted Critical
Publication of KR101106851B1 publication Critical patent/KR101106851B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/31User 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
    • 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/577Assessing vulnerabilities and evaluating computer system security
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user

Landscapes

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

Abstract

본 발명은 다수의 상대방에 대한 플랫폼-기반 신뢰 검증 서비스를 위한 방법 및 시스템에 관한 것이다. 일 실시예에서, 이 방법은 네트워크를 통해 서비스 제공자에 액세스하는 클라이언트 플랫폼을 포함한다. 서비스 제공자에 액세스하면, 클라이언트 플랫폼은 플랫폼 측정 및 검증을 위해 서비스 제공자로부터 요청을 수신한다. 클라이언트 플랫폼은 플랫폼 정보를 수집하고 무결성 목록 비교를 수행하는 것을 포함하는 측정 및 검증을 수행한다. 무결성 목록 비교가 양호한 클라이언트 플랫폼 상태를 나타내면, 클라이언트 플랫폼은 클라이언트 플랫폼 상태를 표기하고 서비스 제공자에 허가 통보를 송신하여 클라이언트 플랫폼이 손상되지 않았음을 표시한다. 그 후, 클라이언트 플랫폼은 서비스 제공자의 서비스를 수신할 수 있다. 무결성 목록 비교가 클라이언트 플랫폼 상태가 양호하지 않다고 표시하면, 클라이언트 플랫폼은 서비스 제공자에게 장애 통보를 송신하여 클라이언트 플랫폼이 손상되었음을 표시한다.

Description

신뢰 검증 방법 및 신뢰 검증 시스템{METHOD AND SYSTEM FOR A PLATFORM-BASED TRUST VERIFYING SERVICE FOR MULTI-PARTY VERIFICATION}
본 발명은 전반적으로 네트워크 인에이블형 연산 장치에 대한 보안에 관한 것이다. 특히, 본 발명은 다수의 상대방 검증을 위한 플랫폼 기반 신뢰 검증 서비스를 위한 방법 및 장치에 관한 것이다.
월드 와이드 웹은 서비스 모델쪽으로 이동하고 있다. 월드 와이드 웹상의 서비스 제공자는 서비스 서브세트를 제어하고 계약 권한 내에서 분배된 기능 세트를 사용하여 소비자에게 이들을 전달한다. 오늘날 월드 와이드 웹상에는 악의의 사용자가 많이 있으며, 다양한 이유로 많은 장치들이 그들이 제공하는 정보를 전적으로 신뢰하지 않는다. 플랫폼상에서 실행되는 악성 코드에 의해 또는 다른 이유로 소비자 플랫폼이 손상되면, 서비스 제공자 및/또는 이들이 소비자에게 전달하는 서비스도 손상될 수 있다.
본 명세서에 포함되어 그 일부를 이루는 첨부 도면은 발명의 상세한 설명과 함께 본 발명의 실시예를 도시하고 있으며, 본 발명의 원리를 설명하고 당업자가 본 발명을 구성하고 사용할 수 있도록 한다. 도면에서, 동일한 번호는 전체적으로 동일하거나 기능적으로 유사하거나 구조적으로 유사한 요소를 표시한다. 한 요소가 처음 나타나는 도면은 대응 참조 번호에서 가장 좌측의 숫자로 표시한다.
특정 애플리케이션에 대한 실시예를 참조하여 본 발명을 설명하지만, 본 발명이 이에 한정되지 않는다는 것을 이해해야 한다. 본 명세서에서 제공되는 개시 내용을 접한 당업자는 그 범위 내에서 추가적인 수정, 적용 및 실시형태 및 본 발명의 실시예가 현저한 효용을 가질 다른 분야를 인식할 것이다.
명세서에서 본 발명의 "일 실시예", "하나의 실시예" 또는 "다른 실시예"를 지칭하는 것은 실시예와 관련하여 설명되는 특정 형태, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 명세서 도처에서 보이는 "일 실시예에서"라는 문구가 반드시 모두 동일한 실시예를 가리키는 것은 아니다.
본 발명의 실시예는 다수의 상대방 검증을 위한 플랫폼 기반 신뢰 검증 서비스를 위한 방법 및 시스템에 관련된다. 이는 플랫폼 하드웨어 특성을 조절하여(leveraing) 플랫폼 취약점을 식별함으로써 달성된다. 인터넷 또는 보호되는 콘텐츠 또는 다른 개인 서비스를 전송하는 어떤 다른 네트워크상의 다수의 상대방은 플랫폼상의 추가 오버헤드 없이 신뢰할 수 있는 방식으로 플랫폼의 태도(posture)를 확인할 수 있다.
본 발명의 실시예는 허가된 서비스 제공자가 클라이언트 호스트와 서비스 제공자 사이의 어떤 트랜잭션의 소스인 소프트웨어 및 하드웨어 구성요소의 무결성에 관한 클라이언트 호스트의 플랫폼 속성의 측정 및 검증을 요청할 수 있게 한다. 따라서, 허가된 서비스만이 플랫폼의 태도의 유효성(즉, 태도 보고)을 확인할 수 있다. 본 발명의 실시예는 클라이언트 개체가 서비스 제공자의 서버로 데이터를 전송하는 소프트웨어 에이전트의 무결성을 보장할 수 있게 하는데, 예를 들어, 지문 판독기 또는 다른 센서와 같은 플랫폼상의 하드웨어를 통해 정보를 획득하는 소프트웨어 에이전트를 포함한다. 소프트웨어 에이전트를 포함하는 플랫폼의 무결성을 보장하는 기능은, 예를 들어, 온라인 광고 서비스, 위치 기반 서비스, 프리미엄 콘텐츠 전송 서비스 등과 같은 온라인 서비스를 제공하는 비즈니스에 매우 중요한데, 이들 서비스는 이들을 제공하는 소프트웨어 에이전트에 의해 전송되는 데이터의 정확도에 의존하기 때문이다.
또한, 본 발명의 실시예는 악의의 허가된 사용 플랫폼 소유자 및 플랫폼상의 악성 코드에 대한 보호를 가능하게 하는 OS(운영 시스템) 아그노스틱(agnostic) 기능을 제공한다.
본 발명에 의하면, 다수의 상대방에 대한 플랫폼-기반 신뢰 검증 서비스를 위한 방법 및 시스템이 제공된다.
본 발명을 인터넷에 적용 가능한 것으로 설명하지만, 본 발명의 인터넷에 한정되지 않는다. 당업자가 인식할 바와 같이 본 발명은, 예를 들어, 보호되는 콘텐츠 또는 다른 개인 서비스를 전송하는 기업 IT(정보 기술) 네트워크 또는 상업 네트워크와 같은 개인 네트워크에 마찬가지로 적용 가능하다. 도 1a는 본 발명의 실시예에 따른 활동 관리 모듈을 갖는 예시적 호스트 플랫폼(100)을 도시하는 블록도이다. 호스트 플랫폼(100)은 프로그램을 실행하는 연산 플랫폼을 나타낸다. 본 발명의 실시예에서, 호스트 플랫폼(100)은 클라이언트 플랫폼일 수 있다. 호스트 플랫폼(100)은, 예를 들어, 데스크톱 컴퓨터, 랩탑 컴퓨터, 타블렛 컴퓨터, 셋톱 박스, PDA(personal digital assistant), 전화, 스마트 폰, MID(Mobile Internet Device), 게임 머신, 헬스 모니터링 장치 및 기타 접속된 디지털 소비가 장치를 포함할 수 있다. 호스트 플랫폼(100)은, 특히, 호스트 프로세서(102), 활동 관리 모듈(106)을 갖는 서비스 프로세서(104), 메모리(108), 스토리지(110), 입력/출력 장치(112) 및 통신 인터페이스(114)를 포함한다. 구성요소(102, 104, 106, 108, 110, 112 및 114) 각각은 하나 이상의 버스를 포함하는 시스템 버스(116)를 통해 서로 연결된다. 복수의 버스의 경우에, 버스는 하나 이상의 버스 브리짓(도시 생 략)에 의해 브릿징될 수 있다.
호스트 프로세서(102)는 프로세서, 마이크로프로세서, 중앙 처리 장치(CPU) 등을 나타낼 수 있다. 도 1a에서 호스트 프로세서(102)는 단일 유닛으로 도시되어 있지만, 호스트 프로세서(102)는 하나 이상의 프로세싱 코어 또는 프로세싱 유닛을 포함할 수 있으며, 이는 병렬 처리 기능을 제공할 수 있다. 호스트 프로세서(102)는 도 2를 참조하여 더 상세히 후술할 것이다. 서비스 프로세서(104)는 호스트 프로세서(102)의 콘텍스트 외부에서 작업을 수행하는 프로세서/제어 논리를 나타낸다. 일 실시예에서, 서비스 프로세서(104)는 "종속 프로세서"라 부를 수 있으며 호스트 프로세서(102), 내장 장치, 칩셋 구성요소 등의 분할일 수 있다. 또한, 서비스 프로세서(104)는 보안/신뢰되는 분할 또는 시스템 관리 모드에서 관리 코드를 실행할 때 호스트 프로세서(102)에 의해 구현될 수 있다. 일 실시예에서, 서비스 프로세서(104)는 활동 관리 모듈(106)를 포함할 수 있다. 이와 달리, 활동 관리 모듈(106)은 서비스 프로세서(104)와 결합하여 동작하는 호스트 플랫폼(100)상의 개별적인 개체로서 존재할 수 있다. 활동 관리 모듈(106)은 호스트 플랫폼(100)상에서 실행되는 프로그램의 무결성을 결정하기 위해 사용될 수 있는 에이전트 실행 환경(AEE)(118)을 포함할 수 있다. AEE(118)는 도 3을 참조하여 보다 상세히 설명할 것이다.
본 발명의 실시예에서, 서비스 프로세서(104)는 대역 외부(OOB) 관리(120)를 포함할 수 있다. OOB 관리(120)는 호스트 프로세서(102)상에서 실행되는 운영 시스템(OS)에 접속 가능하지 않은 통신 리소스의 관리 및/또는 제어를 지칭한다. OOB 관리(120)는, 가령, 네트워크(124)와 같은 네트워크를 통해, 가령, 원격 서버(122)와 같은 호스트 플랫폼(100)에 대해 외부인 개체와의 통신 링크(126)를 포함할 수 있다. 통신 링크(126)는 유선 링크 또는 무선 링크일 수 있다. 유선 링크는, 예를 들어, 이중 나선, Cat-5, 동축 케이블, 섬유 등과 같은 물리적 도체를 포함할 수 있다. 무선 링크는 WiFi(Wireless Fidelity, 이는 IEEE 802.11 프로토콜 부류에 따른 무선 네트워크 통신에 대한 공통 명칭임), WiMax(Worldwide Interoperability for Microwave Access, 이는 IEEE 802.16 표준에 기초하는 광대역 기술임) 등을 포함할 수 있지만 이에 한정되는 것은 아니다. 일 실시예에서, 원격 서버(122)는 원격 OOB 관리(120)에 접속될 수 있다.
메모리(108)는 호스트 프로세서(102)의 직접적인 동작 및/또는 기능의 실행을 위해 사용하도록 인스트럭션 및/또는 데이터를 저장/제공하는 데에 사용될 수 있다. 메모리(108)는 RAM(random access memory), 정적 RAM(SRAM), 동적 RAM(DRAM), 동기식 DRAM(SDRAM), 듀얼 데이터 레이트 RAM(DDRRAM) 등을 포함할 수 있다. 메모리(108)는 내부에 저장되는 하나 이상의 코드 및/또는 데이터 시퀀스를 포함할 수 있으며, 운영 메모리로서 지칭될 수 있다. 코드 시퀀스는 하나 이상의 기능 호출, 하나 이상의 서브루틴 또는 하나 이상의 동작을 나타내는 머신 인스트럭션 세트 또는 그룹일 수 있다. 본 명세서에서 프로그램은 이들 중 하나를 단독으로 지칭하거나 이들 중 하나 이상의 결합을 지칭할 수 있다. 스토리지(110)는 영구적 데이터를 저장하는 비휘발성 스토리지를 나타낼 수 있다. 비휘발성 스토리지는 스토리지 장치로부터 전원이 제거되더라도 그 값을 보유하는 저장 매체를 지 칭한다. 영구적 데이터는 전원이 호스트 플랫폼(100)으로 중단될 때 보유되지 원하는 데이터를 지칭하며, 예를 들어, 시스템 파일, 운영 시스템, 프로그램 파일, 구성 파일 등이 있다. 스토리지(110)는 디스크 및 관련 드라이브(가령, 자기, 광 드라이브), 범용 직렬 버스(USB) 저장 장치 및 관련 포트, 플래시 메모리, 판독 전용 메모리(ROM), 비휘발성 반도체 드라이브 등을 포함할 수 있다.
또한, 호스트 플랫폼(110)은 입력/출력 장치(112)를 포함할 수 있다. 입력/출력 장치(112)는 키보드, 커서 제어기 등을 포함할 수 있으며, 이에 한정되지 않는다. 호스트 플랫폼(100)은 통신 인터페이스(114)도 포함할 수 있다. 통신 인터페이스(114)는 호스트 플랫폼(100)이, 예를 들어, 네트워크(124)와 같은 네트워크를 통해 다른 개체와 통신할 수 있게 하는 네트워크 인터페이스 카드, 모뎀 등을 포함할 수 있으며, 이에 한정되지 않는다.
도 1b는 본 발명의 실시예에 따른 예시적 가상화 기술(VT) 호스트 연산 플랫폼(130)을 도시하는 블록도이다. 본 발명의 실시예에서, AEE(118)에 대한 보안 격리 분할이 필요하다. VT 연산 플랫폼의 구현을 사용하여, AEE(118)에 대한 격리 분할이 생성될 수 있다.
호스트 플랫폼(100)으로 표시된 바와 같이, 호스트 플랫폼(130)은 프로그램을 실행하는 연산 플랫폼을 나타낸다. 본 발명의 실시예에서, 호스트 플랫폼(130)은 클라이언트 플랫폼 또는 서버 플랫폼으로서 사용될 수 있다. 호스트 플랫폼(130)은, 예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 타블렛 컴퓨터, PDA(a personal digital assistant) 또는 다른 소형 연산 장치 또는 통신 장치 들을 포함 할 수 있다.
호스트 플랫폼(130)은, 특히, 가상 머신 모니터(VMM) 관리형 구성요소(132)의 상부에서 직접적으로 실행되는 VMM(134)을 갖는 복수의 VMM 관리형 구성요소(132)를 포함한다. VMM 관리형 구성요소(132)는 하드웨어, 소프트웨어, 펌웨어 또는 그 조합으로 구현될 수 있다. VMM 관리형 구성요소(132)는 프로세서(102), 메모리(108), 스토리지(110), I/O 장치(112) 및 통신 인터페이스(114)를 포함할 수 있다. 호스트 플랫폼(130)은 적어도 하나의 가상 머신(VM)(136)을 더 포함한다. VM(136)은 운영 시스템(200)을 포함하는데, 이는 도 2를 참조하여 후술한다. 또한, 호스트 플랫폼(130)은 게스트 운영 시스템 및 VT 무결성 서비스(VIS) 모듈(140)을 갖는 보조 VM(138)을 포함한다. VT 무결성 서비스(VIS) 모듈(140)은 AEE(118)를 포함한다. 도 1b는 2개의 VM, VM(136) 및 보조 VM(138)을 갖는 것으로 도시되어 있지만, 플랫폼(130)은 2개의 VM만을 갖는 것으로 한정되지 않는다. 당업자는 본 발명의 범위와 사상을 벗어나지 않고 더 많은 VM이 플랫폼(130)에 포함될 수 있음을 인식할 것이다.
가상 머신 모니터(VMM)(134)는 호스트 플랫폼(130)이 다수의 게스트 운영 시스템(OS)을 동시적이며 독립적으로 실행할 수 있게 하며, 각 OS는 소프트웨어 실행을 위한 자신 고유의 격리된 환경, 즉, VM(136) 및 보조 VM(138)을 갖는다. VMM(134)은, 예를 들어, 프로세서(102), 메모리(108), 스토리지(110), I/O 장치(112) 및 통신 인터페이스(114)와 같은 VT 인에이블형 하드웨어(VMM 관리형 구성요소; 132)상에 직접적으로 실행되며 플랫폼(130)의 리소스의 모두에 대한 전체 액 세스를 갖는다. VMM(134)은 VT 인에이블형 하드웨어(132)의 다수의 뷰를 독립적으로 운영되는 VM(136) 및 보조 VM(138)에 제공할 수 있다. VMM(134)은 소프트웨어, 하드웨어, 펌웨어 및/또는 그 임의의 조합으로 구현될 수 있다.
전술한 바와 같이, VM(136) 및 보조(VM(138)은 VMM(134)의 상부에서 실행되는 게스트 운영 시스템(OS)을 포함한다. VM(136) 및 보조 VM(138)은 코드를 독립적으로 실행하도록 구성되며, VM(136) 및 보조 VM(138)는 서로로부터 보안적으로 격리된다. 다시 말해, VM(136) 및 보조 VM(138)상에서 동작하는 구성요소는 각각 가상 머신 이외의 전용 컴퓨터상에서 실행되는 것처럼 동작할 수 있다. 이들 VM상의 구성요소는 다양한 이벤트를 제어하고 VT 인에이블형 하드웨어(132)로의 완전한 액세스를 가질 수 있다. VMM(114)는 VT 인에이블형 하드웨어(132)로의 VM 액세스를 관리할 수 있다.
보조 VM(138)은 추가 보안 개선점을 제공하기 위해 VT 무결성 서비스(VIS) 모듈(140)을 포함할 수 있다. VIS 모듈(140)과 결합하여, 보조 VM(138)은 독립적으로 코드를 실행하도록 구성될 수 있으며, VM(136)으로부터 보안적으로 격리될 수 있고, VM(136)의 구성요소가 보조 VM(138)의 구성요소를 변경하거나 수정하거나 판독하거나 영향을 주는 동작을 수행하는 것을 방지할 수 있다. 따라서, AEE(118)를 VIS 모듈(140)상에 존재하게 하는 것은 AEE(118)가 VM(136)상에 구현되는 OS(200)로부터 보다 더 보안적으로 격리될 수 있게 한다. 이 실시예를 사용하여, AEE(118)는 통신 링크 A 및 VMM(134)를 통해 OS(200)와 통신한다.
도 1a을 참조하여 설명한 바와 같이, 도 1b에서는 호스트 프로세서(102)가 단일 유닛으로 도시되어 있지만, 호스트 프로세서(102)는 하나 이상의 프로세싱 코어 또는 프로세싱 유닛을 포함할 수 있다.
도 1a 및 1b는 본 발명의 예시적 활동 관리 및 VT 구현을 설명한다. 본 발명은 이들 구현에 한정되지 않는다. 당업자는 본 발명의 실시예의 기능을 지원하는 다른 구현이 사용될 수 있다는 것을 알 것이다. 이러한 구현은 Trusted Computing Module 구현 또는 Advanced RISC Machine(ARM) Trust Zone 구현을 포함할 수 있지만 이에 한정되는 것은 아니다.
도 2는 본 발명의 실시예에 따른 플랫폼 기반 신뢰 검증 서비스에 대한 호스트 프로세서(102) 및 호스트 운영 시스템(200)을 도시하는 예시적 블록도이다. 전술한 바와 같이, 호스트 프로세서(102)는, 예를 들어, 프로세서, 마이크로콘트롤러, 중앙 처리 장치(CPU) 등일 수 있다. 호스트 프로세서(102)는 호스트 운영 시스템(200)을 포함한다. 호스트 운영 시스템(200)은 동작의 관리 및 조정과 호스트 플랫폼(100 또는 300)에 대한 리소스의 공유에 관한 소프트웨어 구성요소이다. 호스트 운영 시스템(200)은, 특히, 사용자 애플리케이션(202), 정책 관리자(204) 및 제3자 코드(206)를 포함한다.
사용자 애플리케이션(202)은 서비스 전송을 지원하는 서비스 제공자에 특정되는 임의의 애플리케이션을 포함할 수 있지만 이에 한정되지 않는다. 예를 들어, 인터넷상의 서비스 제공자에 대한 서비스 전송을 지원하는 오늘날의 가장 공통적인 사용자 애플리케이션은, 예를 들어, Microsoft®의 Internet Explorer 또는 이제는 AOL의 자회사인 Netscape Communications Corporation사의 Netscape Navigator를 포함할 수 있다. 서비스 제공자에 대한 서비스 전송을 지원하거나 클라이언트와 서비스 제공자 사이의 인터페이스로서 동작하는 다른 종류의 사용자 애플리케이션도 사용될 수 있다. 예를 들어, 영화 및 다른 종류의 미디어를 제공하는 온라인 영화 렌탈 서비스인 Netflix는 사용자가 영화와 텔레비전 쇼를 사용자의 개인 컴퓨터(PC)상에서 볼 수 있도록 사용자와 Netflix 웹사이트 사이의 인터페이스로서 Netflix 미디어 플레이어 애플리케이션을 요구한다.
본 발명의 실시예는 서비스 사용자에게 정보를 제공하여 서비스 제공자가 클라이언트에서 실행 중인 사용자 애플리케이션이 변경되거나 손상되었는지를 알 수 있게 한다. 호스트 운영 시스템(200)의 일부로서, 정책 관리자(204)는 호스트 플랫폼의 상태 및 사용자 애플리케이션의 상태를 정의하는 정책을 제공한다. 그러므로, 정책 관리자(204)는 사용자 및 서비스 제공자에 액세스 가능할 수 있으며, 제공자에게 플랫폼에 대한 디폴트 파라미터 및 속성을 구성하는 기능과 호스트 플랫폼의 상태 및 서비스 제공자를 나타내는 사용자 애플리케이션의 상태를 정의하는 데 사용될 수 있는 사용자 애플리케이션을 사용자/서비스 제공자에게 제공한다.
또한, 호스트 운영 시스템(200)은 제3자 코드(206)를 포함한다. 제3자 코드(206)는 허가된 서비스 제공자 및/또는 다른 허가된 독립 소프트웨어 판매자(ISV)로부터의 코드를 포함한다. 제3자 코드(206)는 에이전트, 더 구체적으로는 측정 다운로드 가능한 에이전트(208)로서의 에이전트로서 지칭될 수 있다. 서비스 제공자는 제3자 코드(206)의 메모리 영역에서 측정 다운로드 가능한 에이전트(208) 를 구현하고 설치하기 위해 표준 SDK(software Develope Kit)를 구비한다. 따라서, 측정 다운로드 가능한 에이전트(208)는 서비스 제공자 특정일 수 있다. 이들은 서비스 제공자 특정인 사용자 애플리케이션을 측정하는 데에 사용된다. 예를 들어, 전술한 바와 같이, Netflix용의 사용자 애플리케이션 인터페이스는 Netflix 미디어 플레이어이다. Netflix용의 제3자 코드는 Netflix 미디어 플레이어를 측정하는 측정 다운로드 가능한 에이전트이다(즉, Netflix 미디어 플레이어 코드가 변형 또는 수정되지 않고 올바르게 동작하는 것을 보장하기 위한 Netflix 미디어 플레이어용의 체커 코드). 측정 다운로드 가능한 에이전트는, 예를 들어, OS 버전, 안티-바이러스 소프트웨어 버전 정보, 및 올바르게 기능하는 하드웨어와 같은 소정 플랫폼 특정 속성을 측정하여 서비스 제공자의 서버에 데이터를 전송하는 에이전트의 무결성을 보장하기 위해서도 사용된다.
도 3은 본 발명의 일 실시예에 따른 플랫폼-기반 신뢰 검증 서비스를 위한 예시적 에이전트 실행 환경(AEE)을 도시하는 블록도이다. 본 발명의 실시예에서, 에이전트 실행 환경(AEE)(118)은, 예를 들어, 호스트 플랫폼(100)상에서 실행되는 사용자 애플리케이션 및 제3자 코드와 같은 보호되는 호스트 소프트웨어 에이전트를 모니터링하고 측정하여, 이들 소프트웨어 프로그램이 변형 및/또는 악성 종료로부터 보호될 수 있다. 또한, AEE(118)는 전체 운영 시스템 상태 및 제공하는 서비스를 증명하는 핵심 운영 시스템 구성요소를 측정한다. AEE(118)는, 예를 들어, 운영 시스템 버전, 안티-바이러스 프로그램 버전 및 플랫폼상에서 설치되는 다른 소프트웨어 프로그램 버전과 같은 소정 플랫폼 특정 속성을 측정할 수 있다.
본 발명의 실시예에서, 소프트웨어 프로그램 및 제3자 코드(206)는 에이전트 실행 환경(AEE)(118)에 의해 직접적으로 모니터링될 수 있다. 본 발명의 실시예는 제3자 코드 에이전트(206)를 체크하기 위해 AEE(118)를 채택함으로써 "체커를 체크"라는 방안을 사용한다. 예를 들어, 안티-바이러스 소프트웨어는 오늘날 플랫폼상의 스파이웨어 및 바이러스를 검출하고 제거하며 차단하기 위해 사용되지만, 안티-바이러스 소프트웨어의 무결성을 체크하지는 않는다. 본 발명의 실시예를 사용하면, AEE(118)는 안티-바이러스 소프트웨어의 무결성을 체크하기 위해 사용될 수 있다. 따라서, 이 예에서, 안티-바이러스 소프트웨어는 체커이며 AEE(118)는 "체커를 체크"하기 위해 사용된다.
전술한 바와 같이, AEE(118)는 운영 시스템(200)으로부터 격리되어 운영 시스템(200)의 외부의 개선된 측정을 획득할 수 있는 폐쇄 측정 시스템을 제공하고 호스트 플랫폼(100 또는 130)상의 임의의 소프트웨어 구성요소를 검증할 수 있는데, 서비스 제공자로부터의 소프트웨어 구성요소를 포함한다. 따라서, AEE(118)가 OS(200)로부터 격리되어 AEE(118)가 자신 고유의 개인 영역을 가질 수 있고, OS(200)로부터 분리되며, OS(200)에 의해 손상될 수 없는 데이터 및 실행시간 정보를 저장한다.
AEE(118)는 저장된 무결성 목록(manifest)을 실행 시간 무결성 목록과 비교함으로써 제3자 코드(206)를 포함하는 임의의 소프트웨어 구성요소의 무결성을 보장한다. 소프트웨어 프로그램의 신원은 2개의 속성에 의해 정의될 수 있는데, 첫째로 프로그램이 메모리로 로딩되는 시점에서 발생하는 재배치 맞춤 리스팅(a listing of relocation fix-ups)이고, 두 번째로 에이전트 서명이다. 에이전트 서명은 프로그램의 실행 가능한 코드 스토어, 정적 구성 데이터, 동적 구성 데이터 및 재배치 맞춤 리스팅을 포함할 수 있는 무결성 체크 값(ICV) 또는 테스트 값/신원 테스트/검증 값을 포함한다. 재배치 맞춤은 메모리에서 프로그램이 로딩되는 위치에 기초하여 가변 위치를 갖는 프로그램/루틴/기능을 참조하는 프로그램의 소스에서의 위치에 적용되는 오프셋을 참조하여 설명하는 바와 같다. 집합적으로 재배치 맞춤 및 ICV의 리스팅은 소프트웨어 프로그램의 신원으로서 지칭될 수 있다. 이들이 함께 저장되거나 사용될 때, 소프트웨어 프로그램의 "무결성 목록(integrity manifest)"으로서 지칭될 수 있다.
일 실시예에서, 무결성 체크는 에이전트 또는 소프트웨어 프로그램의 신원을 나타내는 모든 영역에 걸친 암호 해시를 생성하는 것을 포함할 수 있다. 에이전트 또는 소프트웨어 프로그램의 신원은 실행 가능한 코드, 정적 구성 데이터 및 재배치 맞춤을 포함할 수 있다. 에이전트 또는 소프트웨어 프로그램의 신원의 다양한 구성요소가 사용되어 특정 무결성 체크 값(ICV)을 생성할 수 있다. ICV는 에이전트 또는 소프트웨어 프로그램의 무결성 목록에 포함되며 에이전트/소프트웨어 프로그램의 신원 및 무결성을 결정하도록 검증될 수 있다. 계산된 해시는 에이전트가 제조된 시점에서 생성되었을 수 있는 에이전트/소프트웨어 프로그램에 대한 알려진/예상된 값(즉, 본래 무결성 목록)에 비교된다.
일 실시예에서, ICV는 암호화 해싱 알고리즘으로 생성될 수 있다. 알고리즘은 에이전트/소프트웨어 프로그램의 무결성 목록에 저장되는 하나 이상의 ICV를 생 성하는 데에 사용될 수 있다. 에이전트/소프트웨어 프로그램의 무결성 목록에 저장된 ICV는 "본래 ICV(original ICV)"로서 지칭될 수 있다. 본 명세서에서 본래 ICV는 "알려진 양호한" ICV라고도 지칭할 수 있다. AEE(118)는 ICV를 생성하여 본래 ICV를 생성하기 위해 사용되는 동일한 암호화 해싱 알고리즘을 갖는 본래 ICV에 비교할 수 있다. 계산된 ICV는 알려진 우수한 ICV 또는 본래 ICV와 비교된다. ICV가 일치하면, 에이전트/소프트웨어 프로그램은 변형되지 않았다. 계산된 ICV에 차이가 존재하는 경우, 에이전트/소프트웨어 프로그램은 AEE(118)에 의해 변형된 것으로 판정되며 차이가 보고될 수 있다.
ICV에 추가하여, 무결성 목록은 ICV에 대한 암호화 서명을 포함할 수 있다. 무결성 목록 서명은 소프트웨어 제조자/개발자에 의해 생성될 수 있으며, 소프트웨어의 일부인 무결성 목록으로 저장될 수 있다. 이와 달리, 서명은 소프트웨어 프로그램의 설치에서 제조자로부터 생성 및/또는 수신되고 프로그램의 일부로서 저장될 수 있다. 서명은 소프트웨어 프로그램의 다양한 부분의 생성된 ICV의 암호화 해시일 수 있다. 일 실시예에서, 암호화 해시는 공개-비밀 키 쌍의 비밀 키를 사용하여 소프트웨어 개발자에 의해 수행될 수 있다. 따라서, 소프트웨어 개발자는 무결성 목록의 서명을 생성하고 저장한 후, AEE(118)와 같은 다른 개체가 소프트웨어 개발자의 공개 키를 사용하여 서명을 검증할 수 있다. 무결성 목록의 서명을 검증함으로써, AEE(118)는 무결성 목록의 모든 값이 올바르며, AEE(118) 또는 다른 개체에 의한 검증에 대한 예상된 값으로서 무결성 목록의 ICV를 사용한다고 가정할 수 있다.
또한, AEE(118)는, 예를 들어, 시스템 서비스 기술자 테이블(system service description table), 인터럽트 기술자 테이블(interrupt descriptor table) 및 임포트 어드레스 테이블(Import Address Table)과 같은 중요한 시스템 테이블로의 액세스를 갖는다. 이러한 테이블로의 특권 액세스를 사용하여, AEE(118)는 제3자 코드에 의해 구성된 시스템 호출이 올바른 커널 코드로 이동되고 루트킷 코드에 의해 걸린 어떠한 기능 호출로도 이동되지 않는다는 것을 보장할 수 있다.
AEE(118)는 에이전트 실행 무결성 체커(302), 증명서 관리자(306) 및 트랜잭션 관리지(308)를 포함한다.
에이전트 실행 무결성 체커(302)는 호스트 운영 시스템(200)상의 제3자 코드(206)의 메모리 영역을 그 영역에 설치되는 임의의 소프트웨어 구성요소와 함께 연속적으로 모니터링한다. 에이전트 실행 무결성 체커(302)는 목록 관리자(304)를 포함한다. 목록 관리자(304)는 제3자 코드(206)의 해시의 저장소 및 그 영역의 임의의 소프트웨어 에이전트를 관리한다. 또한, 목록 관리자(304)는, 예를 들어, 원격 서버(122)와 같은 원격 서버를 사용하여 보안 채널을 수립하여, 무결성 목록이 부분적으로 저장되지 않은 경우에 제3자 코드에 대한 무결성 목록을 검색할 수 있다. 측정 및 검증 요청이 서비스 제공자에 의해 구성될 때, 목록 관리자(304)와 결합하여 에이전트 실행 무결성 체커(306)는 클라이언트 플랫폼의 동작 상태를 측정하고, 실행시간 무결성 목록을 결정하며, 전술한 바와 같이 무결성 목록 비교를 수행함으로써 측정 및 검증을 수행한다.
증명서 관리자(306)는 증명서 스토어를 관리한다. 증명서 관리자(306)에 의해 관리되는 키/증명서 리스트는 (1) (하드웨어(AEEPK)를 제조하는 동안 혼합되거나 고객 활동 후에 생성될 수 있는) AEE(118)에 대한 공개 키 쌍 및 (2) 클라이언트와 서비스 제공자 사이의 협의가 지켜지며 제3자 코드(206)에서 실행되는 에이전트를 인증할 때 사용되는 것을 보장하도록 서비스 제공자에 의해 발신되는 서비스 증명 키(SCK)를 포함한다. 증명서 관리자(306)도 증명서의 폐지 및 재개를 위한 프로세스를 제공한다.
트랜잭션 관리자(308)는 호스트 프로세서(102)로 하여금 추가 동작을 수행하여 AEE(118)와 호스트 프로세서(102)에 의해 수행되는 임의의 트랜잭션 사이의 결합을 형성한다.
일 실시예에서, 트랜잭션 관리자(308)와 호스트 프로세서(102) 사이의 통신 링크 A는 기존 프로세서 마이크로코드로의 확장을 포함할 수 있다. (메모리 유형 범위 레지스터, MTRR와 같은)호스트 메모리의 소정 영역을 보기 위해 사용될 수 있는 새로운 프로세서 레지스터가 정의될 수 있으며, 이들 영역이 변형되면, 알람이 AEE(118)로 송신될 수 있다.
전술한 바와 같이, 본 발명의 실시예는 서비스 제공자로 하여금 클라이언트 플랫폼의 측정 및 검증을 요청할 수 있게 하여 클라이언트 플랫폼에서 실행 중인 서비스 제공자의 사용자 애플리케이션이 손상되지 않고 서비스가 도난되지 않을 수 있도록 보장한다. 다양한 온라인 비즈니스는 서비스의 사이버 도난을 장비하기 위해 이러한 서비스를 필요로 한다. 예를 들어, 사용자가 Netflix.com으로부터 영화 를 대여하여 사용자 클라이언트 플랫폼상의 Netflix 미디어 플레이어에서 이 영화를 본다. 그러나, 사용자가 영화를 보고 있는 사용자의 클라이언트 플랫폼, 즉, Netflix 미디어 플레이어가 악의의 비디오 리퍼(video ripper)에 의해 손상되는 경우, 영화를 Netflix.com으로부터 대여하지 않고 Netflix 미디어 플레이어로부터 도난될 수 있다. 본 발명의 실시예는 서비스 제공자의 사용자 애플리케이션의 측정을 포함하는 모든 필요한 구성요소를 제공하여 클라이언트 플랫폼을 측정하고 검증하여, 사용자 애플리케이션이 손상되지 않았음을 보장한다. 예를 들어, 본 발명의 실시예를 사용하여, Netflix.com은 측정 및 검증을 요청하여 영화가 재생되고 있는 Netflix 미디어 플레이어가 손상되지 않았음을 보장하여 영화가 악의의 비디오 리퍼에 의해 도난되지 않았음을 보장할 수 있다.
따라서, 본 발명의 실시예는 인터넷 또는 서비스가 제공되는 임의의 다른 네트워크상의 다수의 관계자가 플랫폼상의 추가 오버헤드 없이 신뢰 가능한 방식으로 플랫폼의 상태를 확인할 수 있게 한다. 도 4에 도시된 바와 같이, 본 발명의 실시예는 또한 허가된 서비스만이 상태 리포트의 유효성을 확인할 수 있게 한다. 또한, 본 발명의 실시예는 OS 아그노스틱이며 플랫폼의 악의의 허가된 소유자 및 플랫폼상의 악의의 코드에 대한 보호를 제공한다.
도 4는 본 발명의 실시예에 따른 플랫폼 기반 신뢰 검증 서비스에 대한 예시적 방법을 설명한다. 본 발명은 흐름도(400)를 참조하여 본 명세서에서 설명되는 실시예에 한정되지 않는다. 오히려, 본 명세서를 읽은 당업자에게 다른 기능적 흐름도가 본 발명의 범위 내에 존재한다는 것이 명백할 것이다. 프로세스는 402에서 시작하는데, 이 프로세스는 404로 바로 진행한다.
신뢰는 검증될 수 있기 전에 먼저 수립되어야 한다. 다시 말해, AEE가 체커(즉, 제3자 에이전트)를 체크하기 전에, AEE와 제3자 에이전트 사이에 신뢰가 수립되어야 한다. 신뢰를 수립하기 위해, 제3자 에이전트에 대한 증명서가 AEE에 제공되어야 한다. 따라서, 404에서, 증명서 제공이 AEE에 의해 수행된다. 증명서 제공은 이 기술 분야에 잘 알려져 있다. 전술한 바와 같이, 증명서 관리자는 증명서 스토어를 관리한다. 서비스 증명 키(SCK)가 서비스 제공자에 의해 발신되어 서비스 제공자와 클라이언트 사이의 동의가 서비스 제공자가 서비스를 클라이언트에 제공하기 이전에 배치되는 것을 보장한다. 서비스 제공자가 이미 제공된 경우, 서비스 증명 키는 증명서 관리자와 함께 이미 저장되어야 한다. 그 후, 서비스 증명 키(SCK)는 제3자 에이전트를 인증하기 위해 사용될 수 있다.
406에서 호스트 플랫폼이 서비스 제공자로부터의 인터넷 서비스에 액세스하면, 호스트 플랫폼은 408에서 플랫폼 측정 및 검증을 위해 제공되는 대응 서비스 제공자로부터의 요청을 수신한다. 호스트가 손상된 경우에 호스트 플랫폼에 의해 손상되기를 원치 않는 서비스 제공자는 호스트 플랫폼에 어떤 서비스를 제공하기 전에 이 요청을 구성한다.
서비스 제공자로부터의 요청에 응답하여, 호스트 플랫폼 측정 에이전트(즉, 서비스 제공자의 각각의 제3자 코드)는 410에서 AEE가 서비스 제공자에 대한 플랫폼 측정 및 검증을 수행할 것을 요청한다. 플랫폼 측정 및 검증은 제3자 코드의 상태를 측정하는 것 및 전체 운영 시스템 상태 및 제공하는 서비스를 증명하는 중 요 운영 시스템 구성요소를 측정하는 것을 포함한다.
412에서, AEE의 목록 관리자는 서비스 제공자와 관련되는 제3자 코드의 무결성 목록 비교를 수행한다. 목록 비교를 수행하기 위해, 목록 관리자는 전술한 바와 같이 제 2 자 코드의 실행시간 무결성 목록 계산을 우선 수행해야 한다. 실행시간 무결성 목록은 목록 관리자에 저장된 본래 무결성 목록에 대해 비교된다. 일 실시예에서, 본래 무결성 목록이 목록 관리자에 저장되지 않는 경우, 본래 무결성 목록은 전술한 바와 같이 서비스 제공자로부터 검색될 수 있다.
본래 무결성 목록과 실행시간 무결성 목록이 동일하지 않는 경우, 또는 클라이언트 플랫폼의 전체 운영 시스템 상태가 만족스럽지 않은 경우, 414에서 호스트 플랫폼 상태는 양호한 것으로 고려되지 않을 것이며, 416에서 AEE는 서비스 제공자에 장애 통보를 송신할 것이다. 장애 통보는 서비스 제공자에게 호스트 플랫폼이 손상되었음을 통보할 것이다. 통보를 수신한 후, 서비스 제공자는 어떤 동작을 취할지를 결정해야 한다.
본래 무결성 목록과 실행시간 무결성 목록이 동일한 경우, 클라이언트 플랫폼의 전체 운영 시스템 상태가 만족스러운 경우, 414에서 호스트 플랫폼 상태는 양호한 것으로 고려되며, AEE는 플랫폼 상태를 표시하고 418에서 서비스 제공자에게 허가를 송신할 수 있다.
420에서, 호스트 플랫폼은 서비스 제공자로부터 서비스를 수신할 수 있는데, 호스트 플랫폼의 운영 시스템 상태 및 서비스 제공자의 제3자 코드가 손상되었음을 서비스 제공자가 보장하였기 때문이다.
본 발명의 실시예의 소정 양태는 하드웨어, 소프트웨어 또는 그 조합을 사용하여 구현될 수 있으며, 하나 이상의 컴퓨터 시스템 또는 다른 프로세싱 시스템에서 구현될 수 있다. 실제로, 일 실시예에서, 이 방법은 이동 또는 정적 컴퓨터, PDA, 셋톱 박스, 셀룰러 전화 및 페이저 및 적어도 하나의 프로세서, (휘발성 및 비휘발성 메모리 및/또는 저장 요소를 포함하는) 프로세서에 의해 판독 가능한 저장 매체, 적어도 하나의 입력 장치 및 하나 이상의 출력 장치를 포함할 수 있는 다른 전자 장치와 같은 프로그래밍 가능한 머신에서 실행하는 프로그램으로 구현될 수 있다. 프로그램 코드는 전술한 기능을 수행하고 출력 정보를 생성하기 위해 입력 장치를 사용하여 입력되는 데이터에 적용된다. 출력 정보는 하나 이상의 출력 장치로 적용될 수 있다. 당업자는 본 발명의 실시예가 멀티프로세서 시스템, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 다양한 컴퓨터 시스템 구성으로 실시될 수 있다는 것을 인식할 수 있다.
각 프로그램은 프로세싱 시스템과 통신하기 위해 하이 레벨 절차 또는 객체 배향 프로그래밍 언어로 구현될 수 있다. 그러나, 프로그램은 필요한 경우에 어셈블리 또는 기계 언어로 구현될 수 있다. 어떠한 경우에는 언어는 번역되거나 해석될 수 있다.
프로그램 인스트럭션은 인스트럭션으로 프로그래밍되는 범용 또는 특수 목적 프로세싱 시스템이 전술한 방법을 수행하도록 하기 위해 사용될 수 있다. 이와 달리, 이 방법은 이 방법을 수행하기 위한 하드웨어어드 로직을 포함하는 특정 하드웨어 구성요소에 의해 수행될 수 있거나 프로그래밍된 컴퓨터 구성요소 및 고객 하 드에어 구성요소의 어떤 조합에 의해 수행될 수 있다. 본 명세서에서 설명된 방법은 이 방법을 수행하는 프로세싱 시스템 또는 다른 전자 장치를 프로그래밍 하기 위해 사용될 수 있는 인스트럭션을 저장한 머신 판독 가능한 매체를 포함할 수 있는 물품 또는 컴퓨터 프로그램 제품으로서 제공될 수 있다. 본 명세서에서 사용되는 "머신 판독 가능한 매체" 또는 "머신 액세스 가능한 매체"는 머신에 의한 실행을 위해 인스트럭션 시퀀스를 저장하거나 인코딩할 수 있고 머신으로 하여금 전술한 방법 중 임의의 것을 수행하게 하는 임의의 매체를 포함할 수 있다. "머신 판독 가능한 매체" 및 "머신 액세스 가능한 매체"라는 용어는 고체 상태 메모리, 광 및 자기 디스크 및 데이터 신호를 인코딩하는 반송파를 포함하지만 이에 한정되는 것은 아니다. 또한, 소프트웨어에 대해 동작을 취하거나 결과를 야기하는 것으로 한 형태 또는 다른 형태(가령, 프로그램, 절차, 프로세서, 애플리케이션, 모듈, 로직 등)를 언급하는 것은 이 기술 분야에서 공통적인 것이다. 이러한 표현은 프로세서로 하여금 동작을 수행하거나 결과를 산출하게 하는 프로세싱 시스템에 의한 소프트에어의 실행을 언급하는 간단한 방식에 불과하다.
본 발명의 다양한 실시예를 설명하였지만, 이는 단지 예시적인 것이며 한정적이 아니라는 것을 이해해야 한다. 당업자는 첨부된 청구범위에서 정의되는 본 발명의 사상과 범위를 벗어나지 않고 형태와 세부 사항에서 다양한 변화가 이루어질 수 있음을 이해할 것이다. 따라서, 본 발명의 폭과 범위는 전술한 실시예에 의해 제한되어서는 안 되며 다음의 청구범위 및 그 균등물에 따라 정의되어야 한다.
도 1a는 본 발명의 실시예에 따른 활동 관리 모듈을 갖는 예시적 호스트 연산 플랫폼을 도시하는 블록도이다.
도 1b는 본 발명의 실시예에 따른 예시적 가상화 기술(VT) 인에이블형 연산 플랫폼을 도시하는 블록도이다.
도 2는 본 발명의 실시예에 따른 플랫폼 기반 신뢰 검증 서비스를 위한 호스트 프로세서 및 호스트 운영 시스템을 도시하는 예시적 블록도이다.
도 3은 본 발명의 실시예에 따른 플랫폼 기반 신뢰 검증 서비스를 위한 예시적 에이전트 실행 환경(AEE)을 도시하는 블록도이다.
도 4는 본 발명의 실시예에 따른 플랫폼 기반 신뢰 검증 서비스에 대한 예시적 방법을 설명하는 흐름도이다.

Claims (15)

  1. 신뢰 검증 방법으로서,
    서비스 제공자에 액세스하는 단계와,
    플랫폼 측정 및 검증을 위해 상기 서비스 제공자로부터 요청을 수신하는 단계와,
    플랫폼 정보를 수집하고, 이전에 알려진 양호한 값에 대한 측정 및 검증의 비교를 수행하여,
    상기 비교가 양호한 플랫폼 상태(posture)를 표시하는 경우,
    상기 서비스 제공자로 허가를 송신하고,
    상기 서비스 제공자로부터 서비스를 수신하는 단계와,
    상기 비교가 양호한 플랫폼 상태를 표시하지 않는 경우,
    상기 서비스 제공자로 장애 통보를 송신하는 단계를 포함하되,
    상기 장애 통보는 상기 서비스 제공자에게 상기 플랫폼이 손상되었음(compromised)을 통보하는 단계를 포함하는
    신뢰 검증 방법.
  2. 제 1 항에 있어서,
    상기 서비스 제공자로 허가를 송신하는 단계 이전에, 허가를 표시하는 플랫 폼 상태를 표기하는 단계(signing a platform posture)를 포함하는
    신뢰 검증 방법.
  3. 제 1 항에 있어서,
    플랫폼 측정 및 검증은 전제적인 운영 시스템 상태 및 제공되는 서비스를 보이는 중요 운영 시스템 구성요소 및 애플리케이션을 측정하는 단계와, 무결성 목록(integrity manifest) 비교를 수행하는 단계를 포함하는
    신뢰 검증 방법.
  4. 제 3 항에 있어서,
    무결성 목록 비교는,
    상기 서비스 제공자를 나타내는 제3자 코드에 대한 실행시간 무결성 목록 계산을 수행하는 단계와,
    상기 실행시간 무결성 목록을 상기 서비스 제공자에 대한 저장된 무결성 목록에 비교하는 단계를 포함하는
    신뢰 검증 방법.
  5. 제 4 항에 있어서,
    저장된 무결성 목록이 존재하지 않는 경우, 상기 서비스 제공자로부터 상기 제3자 코드에 대한 무결성 목록을 가져오는 단계(retrieving)와, 상기 실행시간 무결성 목록과 상기 가져온 무결성 목록을 비교하는 단계를 포함하는
    신뢰 검증 방법.
  6. 제 1 항에 있어서,
    에이전트 실행 환경이 상기 무결성 목록 비교를 수행하는
    신뢰 검증 방법.
  7. 제 1 항에 있어서,
    상기 서비스 제공자에 액세스하기 이전에, 상기 서비스 제공자에 대한 상기 제3자 코드를 인증하는 단계를 포함하는
    신뢰 검증 방법.
  8. 제 1 항에 있어서,
    상기 플랫폼 정보를 수집하고 이전에 알려진 양호한 값에 대한 측정 및 검증의 비교를 수행하는 단계는, OS 아그노스틱(agnostic)인
    신뢰 검증 방법.
  9. 복수의 머신 액세스 가능한 인스트럭션을 갖는 머신 액세스 가능한 스토리지 매체를 포함하는 물품으로서,
    프로세서에 의해 상기 인스트럭션이 실행되면 상기 프로세서는 제 1 항 내지 제 8 항 중 어느 한 항에 따른 방법을 수행하는
    물품.
  10. 신뢰 검증 시스템으로서,
    적어도 하나의 프로세서를 갖는 클라이언트 플랫폼을 포함하되,
    상기 적어도 하나의 프로세서는 운영 시스템을 포함하며,
    상기 운영 시스템은 하나 이상의 사용자 애플리케이션, 정책 관리자 및 복수의 제3자 코드를 포함하고,
    상기 제3자 코드는 서비스 제공자에 대해 특정되는 측정 다운로드 가능한 에이전트(measurement downloadable agents)를 포함하며,
    상기 클라이언트 플랫폼은,
    상기 적어도 하나의 프로세서로부터 분리되는 에이전트 실행 환경을 더 포함하며,
    상기 에이전트 실행 환경은, 상기 클라이언트 플랫폼의 전체 운영 시스템 상태를 보이는 중요 운영 시스템 구성요소를 모니터링하고 측정하며, 상기 클라이언트 플랫폼 및 상기 서비스 제공자 각각의 상기 제3자 코드가 손상되었는지에 관헤 서비스 제공자에게 통보하기 위해 상기 복수의 제3자 코드 중 적어도 하나의 무결성 목록 비교를 수행하는
    신뢰 검증 시스템.
  11. 제 10 항에 있어서,
    상기 에이전트 실행 환경은 상기 무결성 목록 비교를 수행하는 목록 관리자를 포함하는
    신뢰 검증 시스템.
  12. 제 10 항에 있어서,
    상기 에이전트 실행 환경은 상기 복수의 제3자 코드를 모니터링하는 에이전트 실행 무결성 체커를 포함하며,
    상기 에이전트 실행 무결성 체커는 상기 복수의 제3자 코드 각각에 대한 해 시 저장소(a respository of hashes)를 관리하는 목록 관리자를 포함하는
    신뢰 검증 시스템.
  13. 제 10 항에 있어서,
    상기 에이전트 실행 환경은 증명서 스토어를 관리하는 증명서 관리자를 포함하되,
    상기 증명서 스토어는 복수의 서비스 제공자에 의해 발신되는 복수의 서비스 증명 키(SCK)를 포함하여, 상기 클라이언트 플랫폼과 상기 복수의 서비스 제공자 각각 사이의 동의가 배치되고 상기 클라이언트 플랫폼상에서 실행되는 서비스 제공자 제3자 코드를 인증할 때 사용되도록 보장하는
    신뢰 검증 시스템.
  14. 제 10 항에 있어서,
    상기 에이전트 실행 환경은 상기 호스트 프로세서로 하여금 추가 동작을 수행하도록 지시하는 트랜잭션 관리자를 포함하여, 상기 에이전트 실행 환경과, 상기 클라이언트 플랫폼과 상기 복수의 서비스 제공자 사이에서 수행되는 임의의 트랜잭션 사이의 결합을 형성하는
    신뢰 검증 시스템.
  15. 제 10 항에 있어서,
    상기 에이전트 실행 환경은 OS 아그노스틱이며, 상기 플랫폼의 악의의 허가된 소유자 및/또는 상기 플랫폼상의 악성 코드에 대한 보호를 제공하는
    신뢰 검증 시스템.
KR1020090058712A 2008-06-30 2009-06-30 신뢰 검증 방법 및 신뢰 검증 시스템 KR101106851B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/215,907 2008-06-30
US12/215,907 US8572692B2 (en) 2008-06-30 2008-06-30 Method and system for a platform-based trust verifying service for multi-party verification

Publications (2)

Publication Number Publication Date
KR20100003234A true KR20100003234A (ko) 2010-01-07
KR101106851B1 KR101106851B1 (ko) 2012-01-19

Family

ID=41349329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090058712A KR101106851B1 (ko) 2008-06-30 2009-06-30 신뢰 검증 방법 및 신뢰 검증 시스템

Country Status (5)

Country Link
US (1) US8572692B2 (ko)
EP (1) EP2146300A1 (ko)
JP (1) JP5212870B2 (ko)
KR (1) KR101106851B1 (ko)
CN (2) CN103763331B (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321926B1 (en) * 2008-12-02 2012-11-27 Lockheed Martin Corporation System and method of protecting a system that includes unprotected computer devices
US8826013B1 (en) * 2009-09-23 2014-09-02 Trend Micro Incorporated Protection of customer data in cloud virtual machines using a central management server
EP2543215A2 (en) 2010-03-05 2013-01-09 InterDigital Patent Holdings, Inc. Method and apparatus for providing security to devices
US8893033B2 (en) * 2011-05-27 2014-11-18 Microsoft Corporation Application notifications
US8375221B1 (en) 2011-07-29 2013-02-12 Microsoft Corporation Firmware-based trusted platform module for arm processor architectures and trustzone security extensions
KR20130030132A (ko) * 2011-09-16 2013-03-26 한국전자통신연구원 컴퓨팅 시스템의 보안기능 제공장치 및 제공방법
US9177129B2 (en) * 2012-06-27 2015-11-03 Intel Corporation Devices, systems, and methods for monitoring and asserting trust level using persistent trust log
US9135446B2 (en) * 2012-09-28 2015-09-15 Intel Corporation Systems and methods to provide secure storage
US8763085B1 (en) 2012-12-19 2014-06-24 Trend Micro Incorporated Protection of remotely managed virtual machines
US9407505B2 (en) * 2013-03-04 2016-08-02 Amazon Technologies, Inc. Configuration and verification by trusted provider
US9197419B1 (en) 2013-10-14 2015-11-24 Trend Micro Incorporated Security system for data stored in the cloud
US9275242B1 (en) 2013-10-14 2016-03-01 Trend Micro Incorporated Security system for cloud-based emails
GB201413836D0 (en) * 2014-08-05 2014-09-17 Arm Ip Ltd Device security apparatus and methods
JP6044850B2 (ja) * 2014-12-02 2016-12-14 パナソニックIpマネジメント株式会社 情報端末、情報処理方法及び制御プログラム
US10803175B2 (en) 2015-03-06 2020-10-13 Microsoft Technology Licensing, Llc Device attestation through security hardened management agent
DE102015005071A1 (de) * 2015-04-21 2016-10-27 G Data Software Ag System und Verfahren zur Überwachung der Integrität einer von einem Serversystem an ein Clientsystem ausgelieferten Komponente
US10374805B2 (en) 2015-07-20 2019-08-06 Intel Corporation Technologies for trusted I/O for multiple co-existing trusted execution environments under ISA control
US10248791B2 (en) * 2015-07-20 2019-04-02 Intel Corporation Technologies for secure hardware and software attestation for trusted I/O
GB2540965B (en) 2015-07-31 2019-01-30 Arm Ip Ltd Secure configuration data storage
GB2540961B (en) 2015-07-31 2019-09-18 Arm Ip Ltd Controlling configuration data storage
KR102446384B1 (ko) * 2015-09-18 2022-09-22 삼성전자주식회사 사용자 단말 및 서버 장치
CN107241306B (zh) * 2017-01-06 2020-11-06 深圳市九州安域科技有限公司 一种人机识别方法、服务端、客户端及人机识别系统
CN108683669B (zh) * 2018-05-19 2021-09-17 深圳市图灵奇点智能科技有限公司 数据验证方法和安全多方计算系统
CN113302893B (zh) * 2019-01-08 2022-11-18 华为云计算技术有限公司 用于信任验证的方法及装置
EP3696698A1 (en) * 2019-02-18 2020-08-19 Verimatrix Method of protecting a software program against tampering
CN110096887B (zh) 2019-03-22 2020-06-30 阿里巴巴集团控股有限公司 一种可信计算方法及服务器
US11799857B2 (en) * 2021-08-31 2023-10-24 Cisco Technology, Inc. Software posture for zero trust access

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60044844D1 (de) * 1999-02-15 2010-09-30 Hewlett Packard Co Kommunikation zwischen modulen in einer rechenvorrichtung
JP3888273B2 (ja) * 2002-09-25 2007-02-28 日本電気株式会社 外部プログラムの動作制御方法、動作制御プログラム、動作制御装置、及び、動作制御プログラム提供装置
CA2464430A1 (en) * 2003-04-16 2004-10-16 Wms Gaming Inc. Layered security methods and apparatus in a gaming system environment
US7143314B2 (en) * 2003-10-01 2006-11-28 General Motors Corporation Method and apparatus for ensuring integrity of critical RAM variables
US8332652B2 (en) * 2003-10-01 2012-12-11 International Business Machines Corporation Computing device that securely runs authorized software
US7603548B2 (en) * 2003-10-10 2009-10-13 Bea Systems, Inc. Security provider development model
JP2005159905A (ja) 2003-11-27 2005-06-16 Ntt Docomo Inc データ保存装置及び通信端末装置
JP4064914B2 (ja) * 2003-12-02 2008-03-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム
US20060101047A1 (en) * 2004-07-29 2006-05-11 Rice John R Method and system for fortifying software
US7409719B2 (en) * 2004-12-21 2008-08-05 Microsoft Corporation Computer security management, such as in a virtual machine or hardened operating system
JP4376233B2 (ja) * 2005-02-04 2009-12-02 株式会社エヌ・ティ・ティ・ドコモ クライアント装置、デバイス検証装置及び検証方法
US20070006175A1 (en) * 2005-06-30 2007-01-04 David Durham Intra-partitioning of software components within an execution environment
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US7669242B2 (en) * 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
CN101035346B (zh) * 2006-03-06 2010-09-08 中兴通讯股份有限公司 一种分组数据业务大话务仿真测试的方法及装置
JP5038396B2 (ja) * 2006-04-21 2012-10-03 インターデイジタル テクノロジー コーポレーション トラステッドコンピューティングの完全性測定の通知を実行する装置および方法
US7904278B2 (en) * 2006-05-02 2011-03-08 The Johns Hopkins University Methods and system for program execution integrity measurement
US20080005560A1 (en) * 2006-06-29 2008-01-03 Microsoft Corporation Independent Computation Environment and Provisioning of Computing Device Functionality
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
KR100882354B1 (ko) 2006-12-01 2009-02-12 한국전자통신연구원 플랫폼 무결성 정보를 이용한 네트워크 인증 장치 및 방법

Also Published As

Publication number Publication date
CN103763331A (zh) 2014-04-30
JP5212870B2 (ja) 2013-06-19
US20090328164A1 (en) 2009-12-31
CN101621520A (zh) 2010-01-06
KR101106851B1 (ko) 2012-01-19
JP2010033563A (ja) 2010-02-12
CN103763331B (zh) 2017-04-12
CN101621520B (zh) 2014-03-05
EP2146300A1 (en) 2010-01-20
US8572692B2 (en) 2013-10-29

Similar Documents

Publication Publication Date Title
KR101106851B1 (ko) 신뢰 검증 방법 및 신뢰 검증 시스템
US9690498B2 (en) Protected mode for securing computing devices
Garriss et al. Trustworthy and personalized computing on public kiosks
US8213618B2 (en) Protecting content on client platforms
US9424430B2 (en) Method and system for defending security application in a user's computer
US20120216242A1 (en) Systems and Methods for Enhanced Security in Wireless Communication
US10262131B2 (en) Systems and methods for obtaining information about security threats on endpoint devices
US9665711B1 (en) Managing and classifying states
Beekman Improving cloud security using secure enclaves
Almohri et al. Process authentication for high system assurance
US20210334380A1 (en) Trusted firmware verification
Morbitzer Scanclave: verifying application runtime integrity in untrusted environments
Song et al. App’s auto-login function security testing via android os-level virtualization
Msgna et al. Secure application execution in mobile devices
US11520771B2 (en) Measurement update method, apparatus, system, storage media, and computing device
Zhou et al. A novel trusted software base for commercial android devices using secure tf card
Niemi et al. Platform attestation in consumer devices
Shahzad et al. A survey on recent advances in malicious applications analysis and detection techniques for smartphones
Alam et al. Analysis of existing remote attestation techniques
Pedone et al. Trusted computing technology and proposals for resolving cloud computing security problems
Galanou et al. Matee: Multimodal attestation for trusted execution environments
Song et al. TZ-IMA: Supporting Integrity Measurement for Applications with ARM TrustZone
Khurshid et al. TEE‐Watchdog: Mitigating Unauthorized Activities within Trusted Execution Environments in ARM‐Based Low‐Power IoT Devices
Iannillo et al. An REE-independent Approach to Identify Callers of TEEs in TrustZone-enabled Cortex-M Devices
Song et al. Android Data-Clone Attack via Operating System Customization

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
LAPS Lapse due to unpaid annual fee