KR101737747B1 - 집계된 데이터의 탬퍼 방지 개선 - Google Patents

집계된 데이터의 탬퍼 방지 개선 Download PDF

Info

Publication number
KR101737747B1
KR101737747B1 KR1020167002510A KR20167002510A KR101737747B1 KR 101737747 B1 KR101737747 B1 KR 101737747B1 KR 1020167002510 A KR1020167002510 A KR 1020167002510A KR 20167002510 A KR20167002510 A KR 20167002510A KR 101737747 B1 KR101737747 B1 KR 101737747B1
Authority
KR
South Korea
Prior art keywords
data collection
data
environment
programmable device
aggregated
Prior art date
Application number
KR1020167002510A
Other languages
English (en)
Other versions
KR20160025614A (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 KR20160025614A publication Critical patent/KR20160025614A/ko
Application granted granted Critical
Publication of KR101737747B1 publication Critical patent/KR101737747B1/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/60Protecting data
    • 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
    • G06F21/53Monitoring 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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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/602Providing cryptographic facilities or services
    • 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/604Tools and structures for managing or administering access control 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/3247Cryptographic 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 digital signatures

Abstract

신뢰 환경에서 집계 데이터를 처리함으로써, 시스템은 피어-투-피어 체인에서 처리되는 집계 데이터를 탬퍼링하는 기회를 줄일 수 있다. 각각의 디바이스는 전임자의 집계 데이터를, 그 디바이스의 신뢰 환경으로 전달할 수 있고, 각각의 디바이스는 그 디바이스에 대한 로컬 데이터를 얻고 그것을 전임자의 집계 데이터와 집계하여 출력 집계 데이터를 생성한다. 선택적으로 디바이스가 이전에 언제 집계 데이터를 처리했는지를 식별할 수 있어, 디바이스가 데이터를 반복하여 집계하는데 사용될 수 있는 가능성을 줄일 수 있다. 집계 데이터는 디지털식으로 서명되거나 암호화되어 데이터 페이로드의 탬퍼 방지를 향상시킬 수 있다.

Description

집계된 데이터의 탬퍼 방지 개선{IMPROVING TAMPER RESISTANCE OF AGGREGATED DATA}
여기서 설명된 실시예는 일반적으로 시스템 관리에 관한 것으로, 보다 상세하게는, 기업 환경 솔루션에서 집계된 데이터의 탬퍼 방지(tamper resistance)를 개선하기 위한 기술에 관한 것이다.
시스템 관리 산업은 피어-투-피어 네트워킹이 기업 환경의 거의 실시간 분석을 가능하게 할 수 있는 새로운 능력을 채용하고 있다. 이러한 능력은 공통 서버와의 포인트-투-포인트 접속을 확립하는 모든 엔드포인트에 비해 데이터가 피어-투-피어 형식으로 집계될 수 있기 때문에 확장가능하다. 예를 들면, 정보 기술(IT)이 애플리케이션의 버전마다 얼마나 많은 인스턴스가 존재하는지, 데이터 페이로드가 한 세트의 피어들 사이에서 통과될 수 있는지, 그리고 클라이언트가 갖고 있는 버전을 클라이언트가 언제 평가하는지를 이해하기를 원한다면, 클라이언트는 단순히 카운터를 증분할 수 있고 업데이트된 페이로드를 그 다음 클라이언트에게 통과시킬 수 있다.
그러나, 체인 내의 임의의 클라이언트가 위태로워진다면, 그 클라이언트는 결과를 탬퍼링(tamper)하여 집계되는 데이터의 값을 무효화시킬 수 있다. 체인 내의 모든 클라이언트 에이전트는 집계된 데이터 페이로드를 봉인해제, 업데이트, 및 재봉인하는 능력을 갖는다.
임의의 단일 클라이언트가 전체 결과에 대해 가할 수 있는 손상을 완화하는 한편 피어-투-피어 데이터 집계 능력이 할 수 있는 효율을 유지하는 방법이 이로울 수 있다.
도 1은 종래의 피어-투-피어 시스템을 도시하는 블록도이다.
도 2는 일 실시예에 따라 집계된 데이터의 탬퍼 방지를 개선하기 위한 시스템을 도시하는 블록도이다.
도 3은 일 실시예에 따라 탬퍼 방지를 개선하기 위한 기술이 구현되는 프로그래밍가능 디바이스를 도시하는 블록도이다.
도 4는 일 실시예에 따라 집계된 데이터의 탬퍼 방지를 개선하기 위한 기술을 도시하는 흐름도이다.
도 5는 일 실시예에 따라 신뢰 환경에서 데이터를 집계하는 기술을 도시하는 흐름도이다.
다음의 설명에서, 설명의 목적으로, 본 발명의 철저한 이해를 제공하기 위해 다수의 특정 세부사항이 설명된다. 그러나, 본 발명은 이들 특정 세부사항없이 실시될 수 있다는 것이 당업자에게는 자명할 것이다. 다른 예에서, 본 발명을 모호하게 하는 것을 피하기 위해 구조 및 디바이스가 블록도 형태로 도시되어 있다. 아래 첨자나 접미사가 없는 참조부호는 그 참조부호에 대응하는 아래 첨자 및 접미사의 모든 예를 참조한다는 것이 이해된다. 더욱이, 본 명세서에서 사용되는 언어는 주로 판독 용이성 및 교육 목적을 위해 선택되었고 본 발명의 특허 대상을 기술하거나 한정하도록 선택된 것이 아닐 수 있으며, 그와 같은 발명의 특허 대상을 결정하는 데 필요한 청구 범위에 의존한다. 명세서에서 "하나의 실시예" 또는 "실시예"라 함은 실시예들과 관련되어 설명되는 특정한 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예 내에 포함되는 것을 의미하고, "하나의 실시예" 또는 "실시예"라고 다수 지칭되더라도 반드시 모두 동일한 실시예를 칭하는 것으로 이해되어서는 안 된다.
본원에서 사용되는 바와 같이, 용어 "프로그래밍가능 디바이스"는 하나의 프로그래밍가능 디바이스 상에서 수행되거나 또는 그 프로그래밍가능 디바이스에 의해 수행되는 것으로 기술되는 기능을 수행하도록 함께 동작하는 단일의 프로그래밍가능 디바이스 또는 복수의 프로그래밍가능 디바이스을 칭할 수 있다. 프로그래밍가능 디바이스는, 내장 컴퓨팅 기능을 포함하는 디바이스를 포함하는 데스크톱 컴퓨터, 랩톱 컴퓨터, 서버, 및 모바일 디바이스를 포함하는 임의의 유형의 프로그래밍가능 디바이스일 수 있다.
본원에서 사용되는 바와 같이, "신뢰 환경"은 단지 신뢰 코드만을 실행할 수 있는 플랫폼 상의 분리된 실행 환경이다. 종종, 신뢰 환경은 그 환경에 제공되는 키를 갖기 전에 신뢰 환경의 인스턴스라는 것을 입증(또는 증명)할 수 있다. 신뢰 환경의 예는 코-프로세서 또는 2차 코어 상에 구현되거나, 예를 들면, 입증된 가상 머신 관리자 또는 신뢰-영역과 같은 능력을 갖는 플랫폼 아키텍처로서 구현될 수 있다. "비신뢰 환경"은 신뢰 환경이 아닌 임의의 환경이다.
프로그래밍가능 디바이스들 간에 통신하는데 사용되는 기술 및 장치의 세부사항은 본 개시와는 관련이 없고, 대부분의 공통적인 디바이스가 TCP/IP 프로토콜을 사용하여 통신하더라도, 임의의 희망하는 통신 기술이 사용될 수 있다. 다음의 설명이 피어-투-피어 통신에 대해 구술되어 있더라도, 구현예들은 전통적인 피어-투-피어 네트워킹 기술에 제한되는 것은 아니고, 프로그래밍가능 디바이스들 간의 통신을 위한 임의의 네트워킹 또는 통신 기술을 사용하여 구현될 수 있다. 도면 및 상세한 설명에서 프로그래밍가능 디바이스들의 체인으로서 설명되더라도, 구현예는 유선 또는 무선 기술을 이용하여 프로그래밍가능 디바이스들 간의 임의의 희망하는 접속 상태에서 집계된 데이터를 하나의 프로그래밍가능 디바이스로부터 하나 이상의 후임 프로그래밍가능 디바이스로 보내기 위한 일-대-다수, 다수-대-일, 및 다수-대-다수 기술을 이용할 수 있다.
피어-투-피어 데이터 집계의 종래의 구현예는 완전하게 소프트웨어 기반이고, 집계된 데이터의 경로에 있는 심지어 하나의 위태로운(compromised) 클라이언트가 집계된 데이터에 대해 영향을 미치더라도 제한할 방법이 없었다. 종래의 시스템은 전송된 데이터의 직접적인 손상을 검출하기 위해 디지털 서명 기술을 이용할 수 있고, 그들은, 서명된 데이터를 봉인해제하고 하부의 데이터 페이로드를 손상시키고 손상된 데이터를 재서명하는 능력을 가진 디바이스에 의한 데이터의 손상을 검출할 수 없다. 집계되지 않은 데이터가 소싱 디바이스에 의해 개별적으로 서명될 수 있더라도, 집계 접근법을 사용하는 것보다 효율이 떨어지고 네트워크 주위를 통과하는 데이터 양을 증가시키게 된다. 부가하여, 종래의 기술은 하나의 디바이스의 사용이 여러번 사용되는 것을 검출하거나 방지하지 못한다.
도 1은 종래 기술에 따라 집계 프로세스에서 하나의 디바이스에 의해 생성된 손상된 데이터 집계의 예를 도시하는 블록도이다. 이 예에서 집계되는 데이터는 어떤 버전의 특정 애플리케이션(이 예에서는 APP.EXE)이 네트워크(100) 내의 디바이스에서 이용가능한지에 관한 질의에 대한 응답이다. 이 예에서, 서버(110)는 클라이언트(120-150)에 의해 생성된 집계 데이터를 수집하게 되는데, 프로그래밍가능 디바이스(120-150) 각각은 그들 각각의 전임자로부터 질의에 대한 집계 응답을 수신하고, 로컬 응답으로 집계 데이터를 업데이트한 다음, 집계 데이터를 그들 각각의 후임자인 또 다른 클라이언트(130-150) 또는 서버(110)로 전달한다. 도 1에 표시된 바와 같이, 프로그래밍가능 디바이스는 서로 다른 유형의 프로그래밍가능 디바이스일 수 있다.
질의 및 응답 데이터의 포맷은 본 예의 명료성을 위해 임의로 선택되고, 이진 인코딩 데이터를 포함하는 임의의 질의 및 응답 포맷은 희망하는 대로 사용될 수 있다. 이 예에서, 프로그래밍가능 디바이스(120)는 버전 3.25의 234개 인스턴스, 버전 3.00의 199개 인스턴스; 및 버전 1.00의 5개 인스턴스가 존재한다는 것을 보여주도록 집계 데이터를 업데이트한다. 그러한 다양한 버전의 소프트웨어는 대기업에서는 공통적이다. 로컬 데이터를 질의 응답으로 집계한 후, 프로그래밍가능 디바이스(120)는 집계 데이터를 프로그래밍가능 디바이스(130)로 통과 또는 전달한다.
프로그래밍가능 디바이스(130)가 멀웨어(malware)에 의해 위태로워졌다. 질의에 대한 로컬 응답으로 프로그래밍가능 디바이스(120)로부터 수신된 데이터를 집계하는 대신, 프로그래밍가능 디바이스(120)는 데이터를 손상시켜, 버전 3.25에 대한 값을 234에서 9로 감소시키고; 버전 3.00에 대해서는 199에서 1로 감소시키며, 버전 1.00에 대한 값은 898까지 증가시킨다. 다음에, 위태로워진 프로그래밍가능 디바이스(130)는 손상된 집계 데이터를 손상을 검출할 수 없는 프로그래밍가능 디바이스(140)로 전달한다. 프로그래밍가능 디바이스(140)는 저장된 값을, 버전 3.25에 대해서는 10; 버전 3.00에 대해서는 1; 및 버전 1.00에 대해서는 898의 집계 카운트를 나타내는 로컬 데이터로 증분시킨다. 다음에 프로그래밍가능 디바이스(130)는 집계된 데이터를 프로그래밍가능 디바이스(150)로 전달하고, 이 디바이스(150)는 분석 및 가능한 액션을 위해 서버(110)로 집계 데이터를 전달하기 전에 질의에 대응하는 자신의 로컬 데이터를 수집한다.
이 예에서의 집계된 데이터는 간단한 질의 응답이지만, 임의의 희망하는 포맷으로 임의의 데이터가 사용될 수 있다. 전형적으로, 집계된 데이터는 그 집계된 데이터의 우연한 또는 의도적인 손상을 피하기 위해 보호된다. 암호화, 디지털 서명 등을 포함하는 데이터를 보호하기 위한 임의의 기술이 사용될 수 있다. 일 실시예에서, 데이터 페이로드는 보호되지 않는다. 다음의 설명은 데이터 페이로드를 봉인하기 위해 디지털 서명을 사용하는 구현예에 관하여 서술된다.
일 실시예에서, 프로그래밍가능 디바이스(120-150) 각각은 자신의 전임자로부터 데이터를 수신하고, 데이터에 포함된 디지털 서명을 인증하며, 데이터를 업데이트한 다음, 집계된 데이터를 디지털 서명을 이용하여 재서명한다. 서명의 본질은 본 개시의 범위 밖에 있으며, 디지털식으로 서명된 집계 데이터를 인증할 수 있는 임의의 유형의 디지털 서명이 사용될 수 있다. 데이터가 암호화되는 곳에서, 프로그래밍가능 디바이스는 데이터를 암호해제하고, 로컬 데이터를 집계하고, 집계된 데이터를 추가의 전송을 위해 암호화한다.
프로그래밍가능 디바이스(130)의 검출불가능 손상 때문에, 나중 또는 후임자인 프로그래밍가능 디바이스가 자신의 올바른 로컬 데이터로 집계된 데이터를 올바르게 집계하더라도 집계된 데이터가 무의미해질 수 있다. 서버(110)가 콘텐츠 분석에 의해 집계된 데이터가 손상된 것 같다는 것을 검출할 수 있더라도, 서버(110)는 도 1에 도시된 체인 내의 프로그래밍가능 디바이스 중에서 어떤 것이 데이터를 손상시켰는지를 판정할 방법이 없을 것이다.
데이터 집계를 비신뢰 환경으로부터 신뢰 환경으로 이동시킴으로써, 집계 데이터는 더욱 탬퍼 방지를 이룰 수 있다. 도 2는 디바이스의 신뢰 환경이 전임 디바이스로부터 집계 데이터를 수신하고, 및 수신된 집계 데이터와 함께 집계될 국부적으로 생성된 데이터를 수신하는 실시예를 도시한다. 신뢰 환경은 데이터를 집계하고 집계된 데이터를 후임 디바이스로의 전달을 위해 통과시킨다.
이 예에서, 집계된 데이터 페이로드(200)는 디바이스(210)에 의해 전임 디바이스로부터 수신된다. 현재의 개시에 관련된 집계된 데이터 페이로드(200)의 세 부분; 디지털 서명(202), 질의 및 결과 부분(204), 및 선택적 멀티-집계 리플레이 리스트(206)가 존재하는 일 실시예에서, 이들 각각이 아래에 설명된다. 또 다른 실시예에서, 전임자 집계 데이터는 디지털 서명없이 암호화되고 페이로드는 암호해제, 집계된 다음 다시 암호화된다. 실시예는 집계된 데이터를 디지털식으로 서명하고 암호화할 수 있다. 다음에서, 전임자 집계 데이터를 봉인해제하는 것은 디지털 서명을 인증하거나, 암호화된 데이터를 암호해제하거나, 또는 그들 모두를 행하는 것으로서 정의되고; 유사하게, 후임 집계 데이터를 재봉인하는 것은 데이터를 디지털식으로 서명하거나, 데이터를 암호화하거나, 또는 그들 모두를 행하는 것으로서 정의된다.
디바이스(210)는 신뢰 환경(220) 및 비신뢰 환경(230) 모두를 포함한다. 전형적으로, 비신뢰 환경은 비신뢰 애플리케이션 소프트웨어를 실행하는 운영 시스템 환경이고, 신뢰 환경은 단지 사전 승인된 기능만을 실행하도록 허여된 보안 환경이다. 비신뢰 환경은 운영 시스템 및 집계 데이터 페이로드(200)의 질의에 관련된 로컬 데이터를 생성할 수 있는 로컬 에이전트 소프트웨어를 포함할 수 있다.
디바이스(210)의 비신뢰 환경(230)은 전임 프로그래밍가능 디바이스로부터 서명된 집계 데이터 페이로드(200)를 수신하고 이 페이로드를 신뢰 환경(220)으로 전달한다. 일 실시예에서, 비신뢰 환경(230)은 집계 데이터에 부가되어야 하는 로컬 데이터(240)를 결정하기 위해 집계 페이로드(200) 중 적어도 일부를 봉인해제할 수 있다. 다른 실시예에서, 비신뢰 환경(230)은 집계 데이터 페이로드(200)를 봉인해제할 수 없지만, 페이로드(200)를 인식하고 이것을 신뢰 환경(220)으로 전달할 수 있다. 그러한 실시예에서, 신뢰 환경(220)은 비신뢰 환경(230)내의 로컬 에이전트에게 로컬 데이터를 생성하여 그 로컬 데이터를 신뢰 환경(220)에 제공할 것을 요청할 수 있다.
신뢰 환경(220)이 집계 데이터 페이로드(200) 및 그 페이로드(200)와 함께 집계될 로컬 데이터(240)를 갖는다면, 신뢰 환경(220)은 집계 데이터 페이로드(200)를 봉인해제하고, 로컬 데이터를 전임자 집계 데이터와 집계하여 출력 집계 데이터 페이로드(250)를 생성한 다음, 출력 집계 데이터 페이로드(250)를 재봉인하여 이것을 후임 디바이스로의 전달을 위해 비신뢰 환경(230)으로 통과시키며, 여기서, 후임 디바이스는 로컬 데이터를 집계에 부가할 수 있는 또 다른 디바이스 또는 집계 데이터 페이로드를 봉인해제하고 희망하는 사용을 위해 집계 데이터를 추출할 수 있는 서버(110)와 같은 수집기일 수 있다.
몇몇 실시예에서, 신뢰 환경(220)은 비신뢰 환경(230)의 개입없이 전임자 집계 데이터 페이로드(200)를 직접적으로 얻거나 또는 출력 집계 데이터 페이로드(250)를 직접적으로 전송할 수 있다. 몇몇 실시예에서, 신뢰 환경(220)은 비신뢰 환경으로부터 로컬 데이터를 얻는 대신 로컬 데이터(240)를 생성할 수 있다.
디지털 서명(202)을 채용하는 실시예에서, 디지털 서명(202)은 탬퍼링으로부터 집계 데이터(200)의 콘텐츠를 보호하는데 사용된다. 디지털 서명은 암호화 키를 이용하여 (아래에 상세히 설명되는) 신뢰 환경에 의해 인증되었다. 전체의 집계 데이터의 암호화가 이용되는 경우, 전체의 집계 데이터가 암호화되고 하나 이상의 암호키를 이용하여 신뢰 환경에 의해 암호해제된다. 일 실시예에서, 신뢰 환경의 각각의 디바이스(210)는 집계 데이터를 재봉인하는데 사용될 수 있는 자신의 개인키, 및 전임자 집계 데이터뿐만 아니라 디바이스(210)에 의해 생성되는 출력 집계 데이터 페이로드(250)를 봉인해제하는데 사용될 수 있는 그룹 공개키를 구비한다. 따라서, 각각의 디바이스(210)는 그룹 공개키를 이용하여 전임 디바이스로부터의 집계 데이터를 봉인해제하고, 집계를 수행한 다음, 후임 디바이스로 전달하기 위해 자신의 개인키와 함께 집계 데이터를 재봉인한다. 대안으로, 암호 및 암호해제 모두에 대해 단일 키를 사용하는 대칭 암호화 기술이 사용될 수 있다.
질의 및 응답 부분(204)은 디바이스(210)가 어떤 로컬 데이터가 집계되어야하는지 뿐만 아니라 결과의 집계 데이터를 결정하게 하는데 충분한 정보를 포함할 수 있다. 도면에 도시된 예에서, 집계가 전임자 집계 데이터와 로컬 데이터의 부가 연산을 포함할 수 있더라도, 희망하는 대로 임의의 다른 유형의 집계가 사용될 수 있다. 전술한 바와 같이, 집계 데이터 페이로드(200 및 250)의 포맷은 예시적으로 단지 예이고, 임의의 포맷, 텍스트, 바이너리, 또는 그들의 혼합이 원하는 바에 따라 사용될 수 있다.
디바이스(210)를 이용하여 여러 번 집계 데이터를 탬퍼링하고자 하는 시도를 피하기 위해, 몇몇 실시예에서, 집계 데이터를 처리하는 모든 디바이스(210)에 기록이 유지될 수 있다. 이 기록은 집계 데이터를 처리한 각각의 디바이스(210)와 연관된 고유 식별자의 리스트 또는 다른 기록일 수 있다. 대안으로, 각각의 디바이스(210)와 연관된 미리정의된 빈(bin) 또는 슬롯을 사용할 수 있고, 이에 따라, 각각의 디바이스(210)는 자신이 처리하는 대로 데이터가 그 디바이스(210)와 연관된, 사용된 바와 같은 빈 또는 슬롯을 나타낼 수 있다. 어떤 디바이스가 콜렉션(collection)에 집계 데이터를 갖고 있는지를 추적하기 위한 임의의 다른 기술이 사용될 수 있다. 기록의 구조 또는 포맷은 중요하지 않으며, 디바이스가 집계 데이터를 이전에 처리하였다는 것을 나타내기 위한 임의의 희망하는 기술이 사용될 수 있다. 덜 보안적이더라도, 본원에서 설명되는 기술의 실시예는 희망한다면 동일한 디바이스에 의해 다수의 집계를 검출하기 위한 기록-유지(record-keeping) 없이 구현될 수 있다.
도 2의 예에서, APP.EXE의 버전의 인스턴스가 얼마나 많은지의 카운트를 요청하는 질의는 도 1에 표시된 것과 동일한 질의이다. 부분(204)의 전임자 집계 데이터는 버전 3.25의 234개 인스턴스, 버전 3.00의 199개 인스턴스, 및 버전 1.00의 5개 인스턴스를 나타낸다. 두 개의 선임 디바이스는 부분(206)에 표시되어 있고, 각각은 고유 식별자에 의해 식별되며, 고유 식별자는 명료성을 위해 도 2에 초기 부분만이 도시되어 있다.
출력 집계 데이터 페이로드(250)는 로컬 데이터(240)의 버전 3.00의 단일 인스턴스의 집계를 도시하고, 3.00 기록을 업데이트하여 부분(254)에 200개 인스턴스를 표시한다. 출력 페이로드(250)는 또한, 이 디바이스(210)가 데이터를 집계하였다는 것을 나타내는 부가의 고유 식별자를 부분(256)에 부가한다. 디바이스(210)가 이 페이로드에 대해 데이터를 집계하도록 하기 위한 추가의 시도가 다음에 검출될 수 있다.
도 3은 본원에서 설명되는 기술들 중 일부 또는 모두를 구현하는 데 사용될 수 있는 프로그램가능 디바이스(300)을 도시하는 블록도이다. 시스템 유닛(310)은 프로그래밍가능 디바이스(300)의 컴포넌트가 실장되거나 그와는 달리 배치될 수 있는 장소를 제공한다. 시스템 유닛(310)은 다양한 칩셋이 실장되는 마더보드로서 제작되어, 컴포넌트들 사이의 전기 접속 및 시스템 유닛(310) 전체에 걸쳐 그리고 시스템 유닛(310) 외부로의 신호 및 전력 배분을 원하는 바에 따라 제공할 수 있다. 예를 들면, 프로그래밍가능 디바이스(300)는 집계 데이터를 조사함으로써 안티-멀웨어 시스템이 멀웨어의 가능성을 검출했다는 경보 또는 다른 표시를 디스플레이하는 방식을 제공하는 디스플레이(395)와 같은 출력 디바이스를 포함할 수 있다.
시스템 유닛(310)의 다양한 컴포넌트들은 하나 이상의 프로세서(320)를 포함할 수 있고, 전형적으로 각각의 단일 프로세서 칩은 프로세서(320) 및 프로그램이가능 디바이스(300)의 다른 컴포넌트 사이에 전기 접속을 제공하기 위해 장착 소켓(도 3에서는 도시되지 않음) 내에 장착된다. 도 3에서는 단일 프로세서(320)가 도시되어 있더라도, 각각 멀티 코어 프로세서일 수 있는 임의의 원하는 수의 프로세서가 사용될 수 있다. 다수의 프로세서 칩이 현재 시장에서 입수 가능하고, 임의의 원하는 프로세서 칩 또는 칩셋이 사용될 수 있다. 시스템 유닛(310)은 본 명세서에 따른 방법을 수행하도록 프로그래밍될 수 있고 이 방법의 예가 도 4 및 도 5에 도시되어 있다.
프로세서(320)는 전형적으로 버스 또는 포인트-투-포인트 상호접속을 포함하는 임의의 다른 유형의 상호접속일 수 있는 신호 전송을 위한 링크를 사용하여, 프로세서(320)에 의해 사용되는 메모리(330)에 접속된다. 메모리(330)는 하나 이상의 메모리 모듈을 포함하고 랜덤 액세스 메모리(random access memory; RAM), 판독
전용 메모리(read only memory; ROM), 프로그래밍가능 판독 전용 메모리(programmable read only memory; PROM), 프로그래밍가능 판독-기록 메모리 및 고체 메모리를 포함할 수 있다. 프로세서(320)는 또한 캐시 메모리와 같은 내부 메모리를 포함할 수 있다. 프로세서(320) 상에서 동작하는 운영 시스템은 일반적으로 프로그래밍가능 디바이스(300)의 동작을 제어하여, 서비스, 애플리케이션 및 다른 소프트웨어가 프로그래밍가능 디바이스(300) 상에서 실행되는 운영 시스템 환경을 제공한다.
도 3에 도시되는 바와 같이, 프로세서(320)는 또한 프로그래밍가능 디바이스(300)에 I/O, 타이머 및 다른 유용한 능력을 제공하는 I/O 서브시스템(340)에 접속된다. 예를 들면, I/O 서브시스템(340)은 키보드, 마우스, 터치스크린과 같은 선택사양의 디스플레이(395) 및 선택사양의 입력 디바이스(390)를 시스템 유닛(310)에 접속하기 위한 I/O 포트를 제공할 수 있다. 포트는 디스플레이(395)와 같은 컴포넌트들을 위한 특수목적 포트 또는 키보드 또는 마우스(390)를 접속시키기 위한 범용 직렬 버스(Universal Serial Bus; USB) 포트와 같은 다목적 포트 중 하나 또는 그 이상일 수 있다. I/O 서브시스템(340)은 또한 저장 디바이스(380)와 같은 저장 디바이스와 통신하기 위한 인터페이스를 가지며, 오디오 인터페이스(360)를 통해 오디오 디바이스에 접속되고, 네트워크 인터페이스(370)를 통해 네트워크(120)에 접속될 수 있다. 저장 디바이스(380)는 분리가능 매체를 포함하는 고체 저장 요소를 포함하는 모든 형태의 광 또는 자기를 포함하나 이에 제한되지 않는 임의의 형태의 비휘발성 저장소를 나타내고 시스템 유닛(310) 내에 포함되거나 시스템 유닛(310) 외부에 있을 수 있다. 저장 디바이스(380)는 프로그래밍가능 디바이스(300)를 제어하는 소프트웨어, 프로그래밍가능 디바이스(300)에 의해 사용되는 데이터(네트워크 플로우 데이터를 포함함) 또는 이 둘 모두를 저장하는데 사용되는 프로그램 저장 디바이스일 수 있다. 명료성을 위해 도 3에서는 단지 단일 저장 디바이스(380)가 도시되어 있지만, PCT에서의 인터페이스 이용성에 따라, 임의의 수의 저장 디바이스(380)가 원하는 바대로 제공될 수 있다. I/O 서브시스템(340)은 시스템 유닛(310) 내에 하나 이상의 칩으로서 구현될 수 있다. 일부 실시예에서, 메모리(330)는 프로세서(320) 대신 I/O 서브시스템(340)에 접속될 수 있다.
부가하여, 일부 실시예는 정보를 보호하기 위한 암호 키를 저장하기 위해 암호 프로세서(cryptoprocessor)를 제공하는 신뢰 플랫폼 모듈(Trusted Platform Module)(350)에 I/O 서브시스템(340)을 접속시킬 수 있다. 실시예는 시스템 유닛(310) 내의 하나 이상의 별개의 칩으로서 I/O 서브시스템(340)의 기능을 구현할 수 있다.
도 3에 도시되는 바와 같이, I/O 서브시스템(340)은 보안 신뢰 환경(TE)(345)에 하드웨어 자원을 제공한다. TE(345)는 프로그래밍가능 디바이스(300)를 제어하는 운영 시스템에 의해 제어되지 않는 보안 환경을 제공한다. 다른 실시예에서, TE(345)는 별개의 칩셋으로서 I/O 서브시스템의 보드 외에 있을 수 있거나, TE 기능으로 제한되는 별개의 코어와 같이 프로세서(320) 내에 통합될 수 있다. TE(345)는 멀웨어, 심지어 프로세서(320) 상에서 부트킷 또는 루트킷으로 동작할 수 있는 멀웨어에 의해 방해될 수 없는 신뢰 환경에서 본원에서 설명되는 기술들의 보안 환경 측을 수행하는 것이 가능한 보안 프로세싱 기능을 포함한다. 전형적으로, TE(345)를 제공하는 판매자들은 TE(345)에서 실행될 수 있는 기능에 대해 제어하는 것을 보장하여, TE(345)에서 동작되도록 신중하게 조사된 신뢰 프로그램 외의 어떤 것도 실행되는 것을 방지하기 위하여 소유권 또는 암호 기술을 사용한다. 프로세서(320) 상에서 동작되는 소프트웨어가 원하는 기능, 예를 들면, TE(345)에게 프로세서(320)에 대한 데이터 집계 기능을 수행하도록 요청하는 것과 같이 TE(345)에게 원하는 기능을 수행하게 할 수 있는 특수한 인터페이스가 제공될 수 있다. TE(345)는 데이터 및 펌웨어 저장을 위해 자기 자신의 내부 메모리를 사용하거나 메모리(330)의 일부를 사용할 수 있다. 대안으로, TE(345)에서 실행되는 펌웨어의 형태의 명령어는 플래시 메모리와 같이 프로그래밍가능 디바이스(300)의 전원이 들어올 때 비휘발성 메모리 디바이스(345)로부터 로딩되고 그 후에 TE(345)에 의해 실행되도록 메모리(330)의 일부로 로딩될 수 있다. 일부 실시예에서, TE(345)는 원하는 바에 따라 디스에이블되거나 인에이블될 수 있다. 이들 명령어는 TE(345)로 하여금 데이터 집계 기능과 본원에서 기술되지 않은 다른 기능을 수행하도록 할 수 있다. 데이터 집계 펌웨어는 운영 시스템 환경 침입 검출 소프트웨어를 제공하는 것과 함께, 보안 환경 판매자에 의해 제공될 수 있거나 침입 검출 시스템 판매자에 의해 제공되고 보안 환경 판매자의 허가를 받아 펌웨어로서 저장될 수 있다. 이들 기술에 대하여 사용될 수 있는 신뢰 환경의 하나의 예는 Intel Corp에 의해 제공되는 특정 칩셋에서의 매니지어빌리티 엔진(Manageability Engine)이다. 본원에서 일반적으로 하드웨어 기반 TE(345)에 관해 설명되더라도, 보안 환경은 원하는 바에 따라, 하드웨어, 펌웨어 또는 소프트웨어 또는 이들의 임의의 결합으로 구현될 수 있다.
프로그래밍가능 디바이스(300)는, 예를 들면, 스마트폰, 스마트 태블릿, 개인용 디지털 보조장치(personal digital assistant; PDA), 모바일 인터넷 디바이스(mobile Internet device; MID), 컨버터블 태블릿(convertible tablet), 노트북 컴퓨터, 데스크탑 컴퓨터, 서버 또는 스마트 텔레비전과 같이, 임의의 유형의 프로그래밍가능 디바이스일 수 있다. 디스플레이(395)는, 만일 존재한다면, 예를 들면, 터치 스크린 또는 액정 디스플레이와 같이, 사용자에게 인터페이스를 제시하는 임의의 시대의 디바이스일 수 있다. 도 3에 도시되는 요소들은 예시적인 것으로 단지 예이고, 도 3에 도시되는 요소들은 원하는 바에 따라 결합되거나 다수의 요소들로 분리될 수 있다. 전 지구적 위치추적 시스템(Global Positioning System) 송수신기와 같은 지리적 위치추적 로직(logic)뿐만 아니라, 예를 들면, IEEE 802.11, IEEE 802.16, WiMax 등과 같은 표준을 사용하여 모바일 통신을 처리하는 로직과 같은 다른 요소 또한 원하는 바에 따라 제공될 수 있다.
도 4는 일 실시예에 따라 개시된 기술을 도시하는 흐름도이다. 블록 410에서, 디바이스(210)는 전임자로부터 집계 데이터(200)를 수신한다. 디바이스(210)가 체인에서 제1 디바이스라면, 집계 데이터의 초기화는 제1 디바이스에서 또는 서버(110)와 같은 제어 디바이스로부터의 명령어에 의해 발생한다. 대안으로, 서버(110)는 초기 집계 데이터를 체인 내의 제1 디바이스에 전송할 수 있다. 디바이스(210)는 블록 420에서 집계 데이터를 비신뢰 환경(230)으로부터 신뢰 환경(220)으로 전송한다. 신뢰 환경(220)이 전임 디바이스로부터 직접 전임자 집계 데이터(200)를 수신하는 실시예에서, 블록 420은 생략될 수 있다.
비신뢰 환경(230)은 블록 430에서 전임자 집계 데이터(200)와 함께 집계될 로컬 데이터(240)를 생성한다. 로컬 데이터(240)를 생성하는데 사용되는 기술은 수집될 데이터에 의존하며, 본원에서는 추가로 설명되지 않는다. 비신뢰 환경(230)은 블록 440에서 로컬 데이터(240)를 신뢰 환경으로 전송한다. 몇몇 실시예에서, 신뢰 환경(220)은 비신뢰 환경(230)으로부터 로컬 데이터(240)을 수신하는 것 대신 로컬 데이터(240)를 생성할 수 있다. 대안으로, 신뢰 환경(230)은 어떤 로컬 데이터(240)가 필요한지를 결정하고 비신뢰 환경(220)에게 로컬 데이터(240)를 생성하고 그 로컬 데이터(240)를 신뢰 환경(220)으로 제공할 것을 요청할 수 있다.
블록 450에서, 신뢰 환경(220)은 전임자 집계 데이터 페이로드(200)를 봉인해제하고 전임자 집계 데이터(204)와 함께 로컬 데이터(240)를 집계하여 집계 데이터(254)를 생성한다. 신뢰 환경(220)은 다음에 집계 데이터(254)를 집계 데이터 페이로드(250) 내에 봉인한다. 집계 데이터 페이로드가 집계 데이터의이전 디바이스 것의 기록(206)을 포함하는 실시예에서, 신뢰 환경(220)은 디바이스(210)가 집계 데이터(250)를 처리했다는 것을 나타내는 기록을 포함하도록 집계 데이터(250)를 업데이트한다. 전술한 바와 같이, 그 기록은 디바이스(210)와 연관된 고유 식별자일 수 있거나, 또는 디바이스(210)가 집계 데이터(250)를 처리했다는 것을 나타내는 임의의 다른 정보일 수 있다.
블록 460에서 신뢰 환경(220)은 블록 470에서 후임 디바이스로의 전송을 위해 출력 집계 데이터(250)를 비신뢰 환경(230)으로 리턴한다. 신뢰 환경(220)이 집계 데이터를 직접적으로 수신 또는 전송할 수 있는 실시예에서, 블록 460은 생략될 수 있다. 결과의 집계 데이터는 탬퍼가 더 방지되는데, 그 이유는, 신뢰 환경(220)이 자체적으로 손상되지 않는다면, 비신뢰 환경(230)이 집계 데이터를 수정하거나 손상시킬 수 없기 때문이다.
도 5는 데이터를 집계하기 위해 신뢰 환경(220)에 의해 사용되는 기술의 실시예를 도시하는 흐름도이다. 블록 510에서, 신뢰 환경은 비신뢰 환경(230)으로부터 전임자 집계 데이터(200) 및 로컬 데이터(240)를 수신한다.
블록 520에서, 신뢰 환경(220)은 전임자 집계 데이터 페이로드(200) 내의 서명(202)이 유효한지를 판정한다. 디지털 서명이 없는 실시예에서, 블록 520은 암호화된 집계 데이터 페이로드(200)의 암호해제를 포함할 수 있다. 디지털 서명이 인증되지 않거나 또는 암호화된 집계 데이터 페이로드(200)의 암호해제가 실패하면, 신뢰 환경(220)은 에러 조건을 시그널링할 수 있고, 전임자 집계 데이터(200)를 버리거나 서버(110), 비신뢰 환경(230) 또는 임의의 다른 수신기에 희망하는 경고를 시그널링하는 것을 포함하는 임의의 원하는 에러 액션을 취할 수 있다. 블록 530에서, 비신뢰 환경(220)은 집계 데이터(200)의 이전 집계자의 기록을 평가할 수 있고, 디바이스(210)가 전임자 집계 데이터(200)를 이전에 처리하였다면, 신뢰 환경(220)은 에러 조건을 시그널링할 수 있고, 전임자 집계 데이터(200)를 버리거나 서버(110), 비신뢰 환경(230) 또는 임의의 다른 수신기에 희망하는 경고를 시그널링하는 것을 포함하는 임의의 원하는 에러 액션을 취할 수 있다.
플러딩 기술(flooding technique)이 집계 데이터를 다수의 후임자 디바이스로 전달하는데 사용될 수 있는 실시예에서, 데이터가 현재 디바이스(210)에 의해 이전에 처리되었었는지를 알기 위한 체크를 사용하여 동일한 디바이스(210)에 의한 데이터의 의도치 않은 재처리를 피할 수 있다. 그러한 실시예에서, 신뢰 환경(220)은 신뢰 환경(220)이 이전에 처리한 집계 데이터 페이로드를 어떠한 에러 표시 또는 경고 없이 단지 버릴 수 있다. 집계 데이터를 탬퍼하기 위한 악성 시도가 이루어졌다는 것을 재처리가 나타앨 수 있는 다른 실시예에서, 블록(530)에서의 검출은 악성 행동이 발견되었다는 경고의 결과로 나타날 수 있다.
디바이스(210)가 전임자 집계 데이터(200)를 이전에 처리하지 않았다면, 신뢰 환경(220)은 블록 540에서 비신뢰 환경(230)에 의해 제공된 로컬 데이터가 유효한지를 알기 위해 체크한다. 일 실시예에서, 신뢰 환경(220)은 비신뢰 환경(230)에 의해 제공되는 로컬 데이터에 대한 체크를 수행하여 비신뢰 환경(230)에 의한 시도를 검출하여 집계를 위해 손상된 로컬 데이터를 제공할 수 있다. 다른 실시예에서, 신뢰 환경(220)은 형성하기 위해 로컬 데이터를 단지 체크만 한다. 로컬 데이터가 유효하지 않다면, 다음에, 신뢰 환경(220)은 에러를 시그널링할 수 있다.
일 실시예에서, 신뢰 환경(220)이 블록 520-540의 에러 조건 중 하나 이상이 충족된다고 판정하면, 전임자 집계 데이터를 버리거나 경고를 생성하는 것 대신, 신뢰 환경(220)은 전임자 집계 데이터(200)를 변경없이 출력 집계 데이터(250)로서 단순히 출력함으로써 출력 집계 데이터(250)를 생성할 수 있다.
이제 집계 데이터 및 로컬 데이터가 유효하다고 판정되었다면, 신뢰 환경(220)은 블록 550에서 로컬 데이터와 함께 전임자 집계 데이터(200)를 업데이트한다. 집계 데이터 페이로드는 다음에, 신뢰 환경(220)에서 집계 데이터 페이로드를 암호화하는 것에 의해 또는 디지털식으로 서명하는 것에 의해 봉인되고, 집계 액션의 히스토리를 기록하는 실시예에서, 신뢰 환경(220)은 또한 신뢰 환경(220)이 집계 데이터를 처리했다는 것을 나타내도록 이전에 처리된 데이터 영역(256)을 업데이트할 수 있다.
블록 570에서, 집계 데이터(250)는 후임자 디바이스로의 전달을 위해 비신뢰 환경(230)으로 전송될 수 있다. 대안으로, 신뢰 환경(220)이 집계 데이터를 직접적으로 전송하고 수신할 수 있는 경우, 신뢰 환경(220)은 집계 데이터(250)를 비신뢰 환경(230)을 거치지 않고 후임자 디바이스로 전송할 수 있다.
블록 520, 530 또는 540의 결과로서 표시되는 에러 핸들링은 처리를 위해 비신뢰 환경(230)으로 전달되는, 신뢰 환경(220)에 의해 생성되는 경고의 형태를 취할 수 있다.
도 4 및 도 5에 도시된 액션의 순서는 예시적으로 단지 예이고, 다른 단계 및 단계의 순서는 원하는 대로 수행될 수 있다. 예를 들면, 신뢰 환경(220)은 집계 데이터 페이로드의 몇개의 부분을 원하는 바에 따라 임의의 순서로 업데이트할 수 있다.
다음의 예는 추가의 실시예에 관한 것이다.
예 1은 명령어를 저장한 비일시적 컴퓨터 판독 가능 매체로서, 명령어는 실행될 때 프로그래밍가능 디바이스로 하여금: 전임자 프로그래밍가능 디바이스로부터 제1 데이터 콜렉션을 수신하고; 제1 데이터 콜렉션에 대응하는 제2 데이터 콜렉션을 생성하며; 프로그래밍가능 디바이스의 신뢰 환경에서 제2 데이터 콜렉션과 함께 제1 데이터 콜렉션을 집계하여 제3 데이터 콜렉션을 생성하고; 제3 데이터 콜렉션을 후임자 프로그래밍가능 디바이스로 전송하도록 한다.
예 2는 예 1의 청구대상을 포함하고, 제1 데이터 콜렉션은 디지털 서명을 포함하며, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 신뢰 환경에서 디지털 서명을 인증하고; 신뢰 환경에서 제3 데이터 콜렉션을 디지털식으로 서명하도록 하는 명령어를 더 포함한다.
예 3은 예 1의 청구대상을 포함하고, 제1 데이터 콜렉션은 암호화되고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 신뢰 환경에서 제1 데이터 콜렉션을 암호해제하고; 신뢰 환경에서 제3 데이터 콜렉션을 암호화하는 것을 하는 명령어를 더 포함한다.
예 4는 예 1의 청구대상을 포함하고, 제1 데이터 콜렉션을 수신하게 하는 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 프로그래밍가능 디바이스의 비신뢰 환경에 의해 제1 데이터 콜렉션을 수신하고; 제1 데이터 콜렉션을 비신뢰 환경으로부터 신뢰 환경으로 전달하도록 하는 명령어를 포함한다.
예 5는 예 1의 청구대상을 포함하고, 제3 데이터 콜렉션을 전송하게 하는 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 제3 데이터 콜렉션을 신뢰 환경으로부터 프로그래밍가능 디바이스의 비신뢰 환경으로 전송하고; 제3 데이터 콜렉션을 비신뢰 환경으로부터 후임자 프로그래밍가능 디바이스로 전송하도록 하는 명령어를 포함한다.
예 6는 예 1의 청구대상을 포함하고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 신뢰 환경이 제1 데이터 콜렉션을 이전에 처리했었는지를 판정하도록 하는 명령어를 더 포함한다.
예 7는 예 1의 청구대상을 포함하고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 에러 조건이 검출되면 제1 데이터 콜렉션과 제2 데이터 콜렉션의 집계를 생략하도록 하는 명령어를 더 포함한다.
예 8는 예 1의 청구대상을 포함하고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 에러 조건이 검출되면 제1 데이터 콜렉션을 폐기하도록 하는 명령어를 더 포함한다.
예 9는 예 1의 청구대상을 포함하고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 제1 데이터 콜렉션을 초기화하도록 하는 명령어를 더 포함한다.
예 10은 예 1 내지 예 3 중 어느 하나의 청구대상을 포함하고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 신뢰 환경이 제1 데이터 콜렉션을 이전에 처리했는지를 판정하도록 하는 명령어를 더 포함한다.
예 11은 예 1 내지 예 3 중 어느 하나의 청구대상을 포함하고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 에러 조건이 검출되면 제1 데이터 콜렉션과 제2 데이터 콜렉션의 집계를 생략하도록 하는 명령어를 더 포함한다.
예 12는 예 1 내지 예 3 중 어느 하나의 청구대상을 포함하고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 에러 조건이 검출되면 제1 데이터 콜렉션을 폐기하도록 하는 명령어를 더 포함한다.
예 13은 예 1 내지 예 3 중 어느 하나의 청구대상을 포함하고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 제1 데이터 콜렉션을 초기화하도록 하는 명령어를 더 포함한다.
예 14는 상기 예 중 어느 하나의 청구대상을 포함하고, 제1 데이터 콜렉션은 디지털 서명을 포함하고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 신뢰 환경에서 제1 데이터 콜렉션 내의 디지털 서명을 인증하거나 신뢰 환경에서 제1 데이터 콜렉션을 암호해제함으로써 제1 데이터 콜렉션을 봉인해제(unseal)하고; 신뢰 환경에서 제3 데이터 콜렉션을 디지털식으로 서명하거나 신뢰 환경에서 제3 데이터 콜렉션을 암호화함으로써 제3 데이터 콜렉션을 봉인(seal)하도록 하는 명령어를 더 포함한다.
예 15는 상기 예 중 어느 하나의 청구대상을 포함하고, 제1 데이터 콜렉션을 수신하게 하는 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 프로그래밍가능 디바이스의 비신뢰 환경에 의해 제1 데이터를 수신하고; 제1 데이터 콜렉션을 비신뢰 환경으로부터 신뢰 환경으로 전달하며; 제3 데이터 콜렉션을 신뢰 환경으로부터 프로그래밍가능 디바이스의 비신뢰 환경으로 전송하고; 제3 데이터 콜렉션을 비신뢰 환경으로부터 후임자 프로그래밍가능 디바이스로 전송하도록 하는 명령어를 더 포함한다.
예 16은 상기 예 중 어느 하나의 청구대상을 포함하고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 신뢰 환경이 제1 데이터 콜렉션을 이전에 처리했었는지를 판정하도록 하는 명령어를 더 포함한다.
예 17은 상기 예 중 어느 하나의 청구대상을 포함하고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 에러 조건이 검출되면 제1 데이터 콜렉션과 제2 데이터 콜렉션의 집계를 생략하거나 제1 데이터 콜렉션을 폐기하도록 하는 명령어를 더 포함한다.
예 18은 프로그래밍가능 디바이스로서: 프로세서; 프로세서에 의해 실행될 때, 프로세서를 제어하고 프로세서 상에서 실행하기 위한 소프트웨어에 비신뢰 환경을 제공하는 명령어를 포함하는 운영 시스템; 비신뢰 환경과는 분리된 보안 하드웨어 신뢰 환경; 메모리를 포함하고, 상기 메모리에는 보안 하드웨어 신뢰 환경에 의해 실행될 때 보안 하드웨어 신뢰 환경으로 하여금: 전임자 프로그래밍가능 디바이스로부터 제1 데이터 콜렉션을 수신하고; 제1 데이터 콜렉션에 대응하는 제2 데이터 콜렉션을 생성하며; 제2 데이터 콜렉션과 함께 제1 데이터 콜렉션을 집계하여 제3 데이터 콜렉션을 생성하고; 제3 데이터 콜렉션을 후임자에게 전송하도록 하는 명령어가 저장되어 있다.
예 19는 예 18의 청구대상을 포함하고, 메모리는, 비신뢰 환경에서 실행될 때 프로세서로 하여금: 전임자 프로그래밍가능 디바이스로부터 제1 데이터 콜렉션을 수신하고; 제1 데이터 콜렉션을 비신뢰 환경으로부터 신뢰 환경으로 전달하며; 신뢰 환경으로부터 제3 데이터 콜렉션을 수신하고; 제3 데이터 콜렉션을 후임자에게 전달하도록 하는 명령어를 더 저장한다.
예 20은 예 18의 청구대상을 포함하고, 명령어는, 보안 하드웨어 신뢰 환경에 의해 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금: 제1 데이터 콜렉션을 봉인해제하고; 제3 데이터 콜렉션을 봉인하도록 하는 명령어를 더 포함한다.
예 21은 예 18의 청구대상을 포함하고, 명령어는, 보안 하드웨어 신뢰 환경에 의해 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금: 보안 하드웨어 신뢰 환경이 제1 데이터 콜렉션을 이전에 수행했었는지를 판정하도록 하는 명령어를 더 포함한다.
예 22는 예 21의 청구대상을 포함하고, 명령어는, 보안 하드웨어 신뢰 환경에 의해 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금: 보안 하드웨어 신뢰 환경이 제1 데이터 콜렉션을 이전에 처리했었다면 경고를 시그널링하도록 하는 명령어를 더 포함한다.
예 23은 예 18의 청구대상을 포함하고, 명령어는, 보안 하드웨어 신뢰 환경에 의해 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금: 에러 조건이 검출되면 제1 데이터 콜렉션을 폐기하도록 하는 명령어를 더 포함한다.
예 24는 예 18의 청구대상을 포함하고, 명령어는, 보안 하드웨어 신뢰 환경에 의해 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금: 전임자 프로그래밍가능 디바이스의 부재시에 제1 데이터 콜렉션을 초기화하도록 하는 명령어를 더 포함한다.
예 25는 예 18 또는 예 19의 청구대상을 포함하고, 명령어는, 보안 하드웨어 신뢰 환경에 의해 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금: 제1 데이터 콜렉션을 봉인해제하고: 제3 데이터 콜렉션을 봉인하도록 하는 명령어를 더 포함한다.
예 26은 예 18, 예 19 및 예 25 중 어느 하나의 청구대상을 포함하고, 명령어는, 보안 하드웨어 신뢰 환경에 의해 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금: 보안 하드웨어 신뢰 환경이 제1 데이터 콜렉션을 이전에 처리했었는지를 판정하도록 하는 명령어를 더 포함한다.
예 27은 예 26의 청구대상을 포함하고, 명령어는, 보안 하드웨어 신뢰 환경에 의해 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금: 보안 하드웨어 신뢰 환경이 제1 데이터 콜렉션을 이전에 처리했었다면 경고를 시그널링하도록 하는 명령어를 더 포함한다.
예 28은 예 18의 청구대상을 포함하고, 메모리는, 비신뢰 환경에서 실행될 때, 프로세서로 하여금: 전임자 프로그래밍가능 디바이스로부터 제1 데이터 콜렉션을 수신하고; 제1 데이터 콜렉션을 비신뢰 환경으로부터 신뢰 환경으로 전달하도록 하는 명령어를 더 저장한다.
예 29는 예 28의 청구대상을 포함하고, 메모리는, 비신뢰 환경에서 실행될 때, 프로세서로 하여금: 신뢰 환경으로부터 제3 데이터 콜렉션을 수신하고; 제3 데이터 콜렉션을 후임자에게 전달하도록 하는 명령어를 더 저장한다.
예 30은 예 20의 청구대상을 포함하고, 실행될 때 보안 하드웨어 신뢰 환경으로 하여금 제1 데이터 콜렉션을 봉인해제하도록 하는 명령어는, 실행될 때 보안 하드웨어 신뢰 환경으로 하여금 제1 데이터 콜렉션에 포함된 디지털 서명을 인증하도록 하는 명령어를 포함하고, 실행될 때 보안 하드웨어 신뢰 환경으로 하여금 제3 데이터 콜렉션을 봉인하도록 하는 명령어는, 실행될 때 보안 하드웨어 신뢰 환경으로 하여금 제3 데이터 콜렉션을 디지털식으로 서명하도록 하는 명령어를 포함한다.
예 31은 예 20의 청구대상을 포함하고, 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금 제1 데이터 콜렉션을 봉인해제하도록 하는 명령어는, 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금 제1 데이터 콜렉션을 암호해제하도록 하는 명령어를 포함하고, 실행될 때 보안 하드웨어 신뢰 환경으로 하여금 제3 데이터 콜렉션을 봉인하도록 하는 명령어는, 실행될 때 보안 하드웨어 신뢰 환경으로 하여금 제3 데이터 콜렉션을 암호화하도록 하는 명령어를 포함한다.
예 32는 예 18 내지 예 20 및 예 28 내지 예 31 중 어느 하나의 청구대상을 포함하고, 명령어는, 보안 하드웨어 신뢰 환경에 의해 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금: 보안 하드웨어 신뢰 환경이 제1 데이터 콜렉션을 이전에 처리했었는지를 판정하도록 하는 명령어를 더 포함한다.
예 33은 예 32의 청구대상을 포함하고, 명령어는, 보안 하드웨어 신뢰 환경에 의해 실행될 때, 보안 하드웨어 신뢰 환경이 제1 데이터 콜렉션을 이전에 처리하였다면 경고를 시그널링하도록 하는 명령어를 더 포함한다.
예 34는 예 18 내지 예 20 및 예 28 내지 예 31 중 어느 하나의 청구대상을 포함하고, 명령어는, 보안 하드웨어 신뢰 환경에 의해 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금: 에러 조건이 검출되면 제1 데이터 콜렉션을 폐기하도록 하는 명령어를 더 포함한다.
예 35는 예 18 내지 예 20 및 예 28 내지 예 31 중 어느 하나의 청구대상을 포함하고, 명령어는, 보안 하드웨어 신뢰 환경에 의해 실행될 때, 보안 하드웨어 신뢰 환경으로 하여금: 에러 조건이 검출되면 제1 데이터 콜렉션과 제2 데이터 콜렉션의 집계를 생략하도록 하는 명령어를 더 포함한다.
예 36은 예 18 내지 예 20 및 예 28 내지 예 31 중 어느 하나의 청구대상을 포함하고, 명령어는, 실행될 때, 프로그래밍가능 디바이스로 하여금: 제1 데이터 콜렉션을 초기화하도록 하는 명령어를 더 포함한다.
예 37은 방법으로서, 제1 프로그래밍가능 디바이스로부터 제1 데이터 콜렉션을 수신하는 단계와,제2 프로그래밍가능 디바이스의 비신뢰 환경으로부터 제2 데이터 콜렉션을 얻는 단계와,프로그래밍가능 디바이스의 신뢰 환경에서 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하여 제3 데이터 콜렉션을 생성하는 단계와, 제3 데이터 콜렉션을 제3 프로그래밍가능 디바이스로 전송하는 단계를 포함한다.
예 38은 예 37의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제1 데이터 콜렉션을 봉인해제하는 단계와,제1 데이터 콜렉션과 제2 데이터 콜렉션을 조합하여 제3 데이터 콜렉션을 생성하는 단계와, 제3 데이터 콜렉션을 봉인하는 단계를 포함한다.
예 39는 예 38의 청구대상을 포함하고, 제1 데이터 콜렉션을 봉인해제하는 단계는 제1 데이터 콜렉션의 디지털 서명을 인증하는 단계를 포함하고, 제3 데이터 콜렉션을 봉인하는 단계는 제3 데이터 콜렉션을 디지털식으로 서명하는 단계를 포함한다.
예 40은 예 37의 청구대상을 포함하고, 비신뢰 환경으로부터 제2 데이터 콜렉션을 얻는 단계는: 제1 데이터 콜렉션에 포함된 질의를 비신뢰 환경에서 평가하는 단계와, 질의 결과를 신뢰 환경으로 전달하는 단계를 포함한다.
예 41은 예 37의 청구대상을 포함하고, 비신뢰 환경으로부터 제2 데이터 콜렉션을 얻는 단계는: 제1 데이터 콜렉션에 포함된 질의를 신뢰 환경에서 평가하는 단계와, 신뢰 환경에 의해 비신뢰 환경으로부터의 질의에 대응하는 데이터를 요청하는 단계를 포함한다.
예 42는 예 37의 청구대상을 포함하고, 제1 데이터 콜렉션을 수신하는 단계는: 제2 프로그래밍가능 디바이스의 비신뢰 환경에서 제1 프로그래밍가능 디바이스로부터 제1 데이터 콜렉션을 수신하는 단계와, 제1 데이터 콜렉션을 비신뢰 환경으로부터 신뢰 환경으로 전달하는 단계를 포함하고, 제3 데이터 콜렉션을 제3 프로그래밍가능 디바이스로 전송하는 단계는: 제3 데이터 콜렉션을 신뢰 환경으로부터 비신뢰 환경으로 전송하는 단계와, 제3 데이터 콜렉션을 비신뢰 환경으로부터 제3 프로그래밍가능 디바이스로 전달하는 단계를 포함한다.
예 43은 예 37의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제2 프로그래밍가능 디바이스가 제1 데이터 콜렉션을 이미 처리했었는지를 판정하는 단계를 포함한다.
예 44는 예 37의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제1 데이터 콜렉션에서 에러 조건이 검출되면 제1 데이터 콜렉션을 폐기하는 단계를 더 포함한다.
예 45는 예 37의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제1 데이터 콜렉션에서 에러 조건이 검출되면 경고를 생성하는 단계를 더 포함한다.
예 46은 예 37 내지 예 41의 청구대상을 포함하고, 제1 데이터 콜렉션을 수신하는 단계는: 제2 프로그래밍가능 디바이스의 비신뢰 환경에서 제1 프로그래밍가능 디바이스로부터 제1 데이터 콜렉션을 수신하는 단계와, 제1 데이터 콜렉션을 비신뢰 환경으로부터 신뢰 환경으로 전달하는 단계를 포함하고, 제3 데이터 콜렉션을 제3 프로그래밍가능 디바이스로 전송하는 단계는: 제3 데이터 콜렉션을 신뢰 환경으로부터 비신뢰 환경으로 전송하는 단계와, 제3 데이터 콜렉션을 비신뢰 환경으로부터 제3 프로그래밍가능 디바이스로 전달하는 단계를 포함한다.
예 47은 예 37 내지 예 41의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제2 프로그래밍가능 디바이스가 제1 데이터 콜렉션을 이전에 처리했었는지를 판정하는 단계를 포함한다.
예 48은 예 37 내지 예 41의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제1 데이터 콜렉션에서 에러 조건이 검출되면 제1 데이터 콜렉션을 폐기하는 단계를 더 포함한다.
예 49는 예 37 내지 예 41의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제1 데이터 콜렉션에서 에러 조건이 검출되면 경고를 생성하는 단계를 더 포함한다.
예 50은 청구항 제37항 내지 제41항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는 방법이다.
예 51은 예 37의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제1 데이터 콜렉션 내의 디지털 서명을 인증하거나 제1 데이터 콜렉션을 암호해제하는 것 중 하나 이상을 포함하는, 제1 데이터 콜렉션을 봉인해제하는 단계와,제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하여 제3 데이터 콜렉션을 생성하는 단계와, 제3 데이터 콜렉션을 디지털식으로 서명하거나 제3 데이터 콜렉션을 암호화하는 것 중 하나 이상을 포함하는, 제3 데이터 콜렉션을 봉인하는 단계를 포함한다.
예 52는 예 37 또는 예 51의 청구대상을 포함하고, 비신뢰 환경으로부터 제2 데이터 콜렉션을 얻는 단계는: 제1 데이터 콜렉션에 포함된 질의를 평가하는 단계와, 질의 결과를 신뢰 환경에 제공하는 단계를 포함한다.
예 53은 예 37, 예 38 및 예 51 중 어느 하나의 청구대상을 포함하고, 제1 데이터 콜렉션을 얻는 단계는: 제2 프로그래밍가능 디바이스의 비신뢰 환경에서 제1 프로그래밍가능 디바이스로부터 제1 데이터 콜렉션을 수신하는 단계와, 제1 데이터 콜렉션을 비신뢰 환경으로부터 신뢰 환경으로 전달하는 단계를 포함하고, 제3 데이터 콜렉션을 제3 프로그래밍가능 디바이스로 전송하는 단계는: 제3 데이터 콜렉션을 신뢰 환경으로부터 비신뢰 환경으로 전송하는 단계와, 제3 데이터 콜렉션을 비신뢰 환경으로부터 제3 프로그래밍가능 디바이스로 전달하는 단계를 포함한다.
예 54는 예 37, 예 38 및 예 51 중 어느 하나의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제2 프로그래밍가능 디바이스가 제1 데이터 콜렉션을 이전에 처리했었는지를 판정하는 단계를 포함한다.
예 55는 예 38의 청구 대상을 포함하고, 제1 데이터 콜렉션을 봉인해제하는 단계는 제1 데이터 콜렉션을 암호해제하는 단계를 포함하고, 제3 데이터 콜렉션을 봉인하는 단계는 제3 데이터 콜렉션을 암호화하는 단계를 포함한다.
예 56은 예 37 내지 예 41 중 어느 하나의 청구대상을 포함하고, 제1 데이터 콜렉션을 수신하는 단계는: 제2 프로그래밍가능 디바이스의 비신뢰 환경에서 제1 프로그래밍가능 디바이스로부터 제1 데이터 콜렉션을 수신하는 단계와, 제1 데이터 콜렉션을 비신뢰 환경으로부터 신뢰 환경으로 전달하는 단계를 포함한다.
예 57은 예 37 내지 예 41 중 어느 하나의 청구대상을 포함하고, 제3 데이터 콜렉션을 제3 프로그래밍가능 디바이스로 전송하는 단계는: 제3 데이터 콜렉션을 신뢰 환경으로부터 비신뢰 환경으로 전송하는 단계와, 제3 데이터 콜렉션을 비신뢰 환경으로부터 제3 프로그래밍가능 디바이스로 전달하는 단계를 포함한다.
예 58은 예 37 내지 예 41 중 어느 하나의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제2 프로그래밍가능 디바이스가 제1 데이터 콜렉션을 이전에 처리했었는지를 판정하는 단계를 포함한다.
예 59는 예 37 내지 예 41 중 어느 하나의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제1 데이터 콜렉션에서 에러 조건이 검출된다면 제1 데이터 콜렉션을 폐기하는 단계를 더 포함한다.
예 60은 예 37 내지 예 41 중 어느 하나의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제1 데이터 콜렉션에서 에러 조건이 검출되면 경고를 생성하는 단계를 더 포함한다.
예 61은 예 37 내지 예 41 중 어느 하나의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제1 데이터 콜렉션에서 에러 조건이 검출되면 로컬 데이터를 제1 데이터 콜렉션과 조합하는 것을 생략하는 단계를 더 포함한다.
예 62는 예 37 내지 예 41 중 어느 하나의 청구대상을 포함하고, 제1 데이터 콜렉션을 제2 데이터 콜렉션과 조합하는 단계는: 제1 프로그래밍가능 디바이스의 부재시에 제1 데이터 콜렉션을 초기화하는 단계를 더 포함한다.
예 63은 프로그래밍가능 디바이스에 의해 실행될 때 프로그래밍가능 디바이스로 하여금 청구항 제37항 내지 제62항 중 어느 한 항의 방법을 수행도록 하는 명령어가 저장된 머신 판독가능 매체이다.
전술한 설명은 예시적인 것이지 제한적인 것이 아니라는 것이 이해되어야 한다. 예를 들면, 전술한 실시예는 서로 조합하여 사용될 수 있다. 전술한 설명을 검토하면 다수의 다른 실시예가 당업자에게는 자명할 것이다. 따라서, 본 발명의 범위는 첨부된 청구범위를 참조하여, 그러한 청구범위에 권리가 있는 등가물의 전체 범위와 함께 결정되어야 한다.

Claims (25)

  1. 명령어를 저장한 집계된 데이터의 탬퍼 방지 개선을 위한 비일시적 컴퓨터 판독가능 매체로서,
    상기 명령어는 실행될 때 프로그래밍가능 디바이스로 하여금,
    전임자 프로그래밍가능 디바이스로부터 제1 데이터 콜렉션을 수신하고 -상기 제1 데이터 콜렉션은 신뢰된 데이터 집계의 체인을 포함함- ,
    상기 제1 데이터 콜렉션에 대응하는 제2 데이터 콜렉션을 생성하며,
    상기 프로그래밍가능 디바이스의 신뢰 환경에서 상기 제1 데이터 콜렉션을 상기 제2 데이터 콜렉션과 함께 집계하여(aggregate) 제3 데이터 콜렉션을 생성하고,
    상기 제3 데이터 콜렉션을 후임자 프로그래밍가능 디바이스로 전송하도록 하고,
    상기 제3 데이터 콜렉션은 상기 전임자 프로그래밍 디바이스 및 상기 프로그래밍가능 디바이스로부터의 신뢰된 데이터 집계의 체인을 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 비일시적 컴퓨터 판독가능 매체.
  2. 제1항에 있어서,
    상기 제1 데이터 콜렉션은 디지털 서명을 포함하며,
    상기 명령어는, 실행될 때, 상기 프로그래밍가능 디바이스로 하여금,
    상기 신뢰 환경에서 상기 디지털 서명을 인증하고,
    상기 신뢰 환경에서 상기 제3 데이터 콜렉션을 디지털식으로 서명하도록 하는
    집계된 데이터의 탬퍼 방지 개선을 위한 비일시적 컴퓨터 판독가능 매체.
  3. 제1항에 있어서,
    상기 제1 데이터 콜렉션은 암호화되고,
    상기 명령어는, 실행될 때, 상기 프로그래밍가능 디바이스로 하여금,
    상기 신뢰 환경에서 상기 제1 데이터 콜렉션을 암호해제하고,
    상기 신뢰 환경에서 상기 제3 데이터 콜렉션을 암호화하도록 하는
    집계된 데이터의 탬퍼 방지 개선을 위한 비일시적 컴퓨터 판독가능 매체.
  4. 제1항에 있어서,
    상기 제1 데이터 콜렉션을 수신하게 하는 명령어는, 실행될 때, 상기 프로그래밍가능 디바이스로 하여금,
    상기 프로그래밍가능 디바이스의 비신뢰 환경에 의해 상기 제1 데이터 콜렉션을 수신하고,
    상기 제1 데이터 콜렉션을 상기 비신뢰 환경으로부터 상기 신뢰 환경으로 전달하도록 하는
    집계된 데이터의 탬퍼 방지 개선을 위한 비일시적 컴퓨터 판독가능 매체.
  5. 제1항에 있어서,
    상기 제3 데이터 콜렉션을 전송하게 하는 명령어는, 실행될 때, 상기 프로그래밍가능 디바이스로 하여금,
    상기 제3 데이터 콜렉션을 상기 신뢰 환경으로부터 상기 프로그래밍가능 디바이스의 비신뢰 환경으로 전송하고,
    상기 제3 데이터 콜렉션을 상기 비신뢰 환경으로부터 상기 후임자 프로그래밍가능 디바이스로 전송하도록 하는
    집계된 데이터의 탬퍼 방지 개선을 위한 비일시적 컴퓨터 판독가능 매체.
  6. 제1항에 있어서,
    상기 명령어는, 실행될 때, 상기 프로그래밍가능 디바이스로 하여금,
    상기 신뢰 환경이 상기 제1 데이터 콜렉션을 이전에 처리했었는지 여부를 판정하도록 하는 명령어를 더 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 비일시적 컴퓨터 판독가능 매체.
  7. 제1항에 있어서,
    상기 명령어는, 실행될 때, 상기 프로그래밍가능 디바이스로 하여금,
    에러 조건이 검출되면 상기 제1 데이터 콜렉션과 상기 제2 데이터 콜렉션의 집계를 생략하도록 하는 명령어를 더 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 비일시적 컴퓨터 판독가능 매체.
  8. 제1항에 있어서,
    상기 명령어는, 실행될 때, 상기 프로그래밍가능 디바이스로 하여금,
    에러 조건이 검출되면 상기 제1 데이터 콜렉션을 폐기하도록 하는 명령어를 더 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 비일시적 컴퓨터 판독가능 매체.
  9. 제1항에 있어서,
    상기 명령어는, 실행될 때, 상기 프로그래밍가능 디바이스로 하여금,
    상기 제1 데이터 콜렉션을 초기화하도록 하는 명령어를 더 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 비일시적 컴퓨터 판독가능 매체.
  10. 집계된 데이터의 탬퍼 방지 개선을 위한 프로그래밍가능 디바이스로서,
    프로세서와,
    상기 프로세서에 의해 실행될 때, 상기 프로세서를 제어하고 상기 프로세서 상에서 실행하기 위한 소프트웨어에 비신뢰 환경을 제공하도록 하는 명령어를 포함하는 운영 시스템과,
    상기 비신뢰 환경과는 분리된 보안 하드웨어 신뢰 환경과,
    메모리를 포함하고,
    상기 메모리에는 상기 보안 하드웨어 신뢰 환경에 의해 실행될 때 상기 보안 하드웨어 신뢰 환경으로 하여금,
    전임자 프로그래밍가능 디바이스로부터 제1 데이터 콜렉션을 수신하고 -상기 제1 데이터 콜렉션은 신뢰된 데이터 집계의 체인을 포함함- ,
    상기 제1 데이터 콜렉션에 대응하는 제2 데이터 콜렉션을 생성하며,
    상기 보안 하드웨어 신뢰 환경 내에서 상기 제2 데이터 콜렉션과 함께 상기 제1 데이터 콜렉션을 집계하여 제3 데이터 콜렉션을 생성하고,
    상기 제3 데이터 콜렉션을 후임자에게 전송하도록 하는 명령어가 저장되어 있고,
    상기 제3 데이터 콜렉션은 상기 전임자 프로그래밍 디바이스 및 상기 프로그래밍가능 디바이스로부터의 신뢰된 데이터 집계의 체인을 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 프로그래밍가능 디바이스.
  11. 제10항에 있어서,
    상기 메모리는, 상기 비신뢰 환경에서 실행될 때 상기 프로세서로 하여금,
    상기 전임자 프로그래밍가능 디바이스로부터 상기 제1 데이터 콜렉션을 수신하고,
    상기 제1 데이터 콜렉션을 상기 비신뢰 환경으로부터 상기 신뢰 환경으로 전달하며,
    상기 신뢰 환경으로부터 상기 제3 데이터 콜렉션을 수신하고,
    상기 제3 데이터 콜렉션을 상기 후임자에게 전달하도록 하는 명령어를 더 저장하는
    집계된 데이터의 탬퍼 방지 개선을 위한 프로그래밍가능 디바이스.
  12. 제10항에 있어서,
    상기 명령어는, 상기 보안 하드웨어 신뢰 환경에 의해 실행될 때, 상기 보안 하드웨어 신뢰 환경으로 하여금,
    상기 제1 데이터 콜렉션을 봉인해제(unseal)하고,
    상기 제3 데이터 콜렉션을 봉인(seal)하도록 하는 명령어를 더 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 프로그래밍가능 디바이스.
  13. 제10항에 있어서,
    상기 명령어는, 상기 보안 하드웨어 신뢰 환경에 의해 실행될 때, 상기 보안 하드웨어 신뢰 환경으로 하여금,
    상기 보안 하드웨어 신뢰 환경이 상기 제1 데이터 콜렉션을 이전에 수행했었는지 여부를 판정하도록 하는 명령어를 더 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 프로그래밍가능 디바이스.
  14. 제13항에 있어서,
    상기 명령어는, 상기 보안 하드웨어 신뢰 환경에 의해 실행될 때, 상기 보안 하드웨어 신뢰 환경으로 하여금,
    상기 보안 하드웨어 신뢰 환경이 상기 제1 데이터 콜렉션을 이전에 처리했었다면 경고를 시그널링하도록 하는 명령어를 더 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 프로그래밍가능 디바이스.
  15. 제10항에 있어서,
    상기 명령어는, 상기 보안 하드웨어 신뢰 환경에 의해 실행될 때, 상기 보안 하드웨어 신뢰 환경으로 하여금,
    에러 조건이 검출되면 상기 제1 데이터 콜렉션을 폐기하도록 하는 명령어를 더 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 프로그래밍가능 디바이스.
  16. 제10항에 있어서,
    상기 명령어는, 상기 보안 하드웨어 신뢰 환경에 의해 실행될 때, 상기 보안 하드웨어 신뢰 환경으로 하여금,
    상기 전임자 프로그래밍가능 디바이스의 부재시에 상기 제1 데이터 콜렉션을 초기화하도록 하는 명령어를 더 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 프로그래밍가능 디바이스.
  17. 제1 프로그래밍가능 디바이스로부터 제1 데이터 콜렉션을 수신하는 단계 -상기 제1 데이터 콜렉션은 신뢰된 데이터 집계의 체인을 포함함- 와,
    제2 프로그래밍가능 디바이스의 비신뢰 환경으로부터 제2 데이터 콜렉션을 얻는 단계와,
    제3 데이터 콜렉션을 생성하기 위해, 상기 제2 프로그래밍가능 디바이스의 신뢰 환경에서 상기 제1 데이터 콜렉션을 상기 제2 데이터 콜렉션과 조합하는 단계와,
    상기 제3 데이터 콜렉션을 제3 프로그래밍가능 디바이스로 전송하는 단계를 포함하고,
    상기 제3 데이터 콜렉션은 전임자 프로그래밍 디바이스 및 상기 제2 프로그래밍가능 디바이스로부터의 신뢰된 데이터 집계의 체인을 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 방법.
  18. 제17항에 있어서,
    상기 제1 데이터 콜렉션을 상기 제2 데이터 콜렉션과 조합하는 단계는,
    상기 제1 데이터 콜렉션을 봉인해제하는 단계와,
    상기 제1 데이터 콜렉션과 상기 제2 데이터 콜렉션을 조합하여 상기 제3 데이터 콜렉션을 생성하는 단계와,
    상기 제3 데이터 콜렉션을 봉인하는 단계를 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 방법.
  19. 제18항에 있어서,
    상기 제1 데이터 콜렉션을 봉인해제하는 단계는 상기 제1 데이터 콜렉션의 디지털 서명을 인증하는 단계를 포함하고,
    상기 제3 데이터 콜렉션을 봉인하는 단계는 상기 제3 데이터 콜렉션을 디지털식으로 서명하는 단계를 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 방법.
  20. 제17항에 있어서,
    상기 비신뢰 환경으로부터 상기 제2 데이터 콜렉션을 얻는 단계는,
    상기 제1 데이터 콜렉션에 포함된 질의를 상기 비신뢰 환경에서 평가하는 단계와,
    질의 결과를 상기 신뢰 환경으로 전달하는 단계를 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 방법.
  21. 제17항에 있어서,
    상기 비신뢰 환경으로부터 제2 데이터 콜렉션을 얻는 단계는,
    상기 제1 데이터 콜렉션에 포함된 질의를 상기 신뢰 환경에서 평가하는 단계와,
    상기 신뢰 환경에 의해 상기 비신뢰 환경으로부터의 질의에 대응하는 데이터를 요청하는 단계를 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 방법.
  22. 제17항에 있어서,
    상기 제1 데이터 콜렉션을 수신하는 단계는,
    상기 제2 프로그래밍가능 디바이스의 비신뢰 환경에서 상기 제1 프로그래밍가능 디바이스로부터 상기 제1 데이터 콜렉션을 수신하는 단계와,
    상기 제1 데이터 콜렉션을 상기 비신뢰 환경으로부터 상기 신뢰 환경으로 전달하는 단계를 포함하고,
    상기 제3 데이터 콜렉션을 제3 프로그래밍가능 디바이스로 전송하는 단계는,
    상기 제3 데이터 콜렉션을 상기 신뢰 환경으로부터 상기 비신뢰 환경으로 전송하는 단계와,
    상기 제3 데이터 콜렉션을 상기 비신뢰 환경으로부터 상기 제3 프로그래밍가능 디바이스로 전달하는 단계를 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 방법.
  23. 제17항에 있어서,
    상기 제1 데이터 콜렉션을 상기 제2 데이터 콜렉션과 조합하는 단계는 상기 제2 프로그래밍가능 디바이스가 상기 제1 데이터 콜렉션을 이미 처리했었는지 여부를 판정하는 단계를 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 방법.
  24. 제17항에 있어서,
    상기 제1 데이터 콜렉션을 상기 제2 데이터 콜렉션과 조합하는 단계는 상기 제1 데이터 콜렉션에서 에러 조건이 검출되면 상기 제1 데이터 콜렉션을 폐기하는 단계를 더 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 방법.
  25. 제17항에 있어서,
    상기 제1 데이터 콜렉션을 상기 제2 데이터 콜렉션과 조합하는 단계는 상기 제1 데이터 콜렉션에서 에러 조건이 검출되면 경고를 생성하는 단계를 더 포함하는
    집계된 데이터의 탬퍼 방지 개선을 위한 방법.
KR1020167002510A 2013-08-30 2013-08-30 집계된 데이터의 탬퍼 방지 개선 KR101737747B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/057584 WO2015030800A1 (en) 2013-08-30 2013-08-30 Improving tamper resistance of aggregated data

Publications (2)

Publication Number Publication Date
KR20160025614A KR20160025614A (ko) 2016-03-08
KR101737747B1 true KR101737747B1 (ko) 2017-05-29

Family

ID=52584954

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167002510A KR101737747B1 (ko) 2013-08-30 2013-08-30 집계된 데이터의 탬퍼 방지 개선

Country Status (6)

Country Link
US (1) US20150067343A1 (ko)
EP (1) EP3039567A4 (ko)
JP (1) JP6253168B2 (ko)
KR (1) KR101737747B1 (ko)
CN (1) CN105453073A (ko)
WO (1) WO2015030800A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10277396B2 (en) * 2016-06-16 2019-04-30 General Electric Company Watermarking for data integrity
US10902149B2 (en) 2018-02-01 2021-01-26 Microsoft Technology Licensing, Llc Remote testing analysis for software optimization based on client-side local differential privacy-based data

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090204964A1 (en) 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US20110154497A1 (en) * 2009-12-17 2011-06-23 American Express Travel Related Services Company, Inc. Systems, methods, and computer program products for collecting and reporting sensor data in a communication network
US20120180106A1 (en) * 2009-07-16 2012-07-12 Georgia State University Research Foundation, Inc. Trusted query network systems and methods

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6536037B1 (en) * 1999-05-27 2003-03-18 Accenture Llp Identification of redundancies and omissions among components of a web based architecture
US6606744B1 (en) * 1999-11-22 2003-08-12 Accenture, Llp Providing collaborative installation management in a network-based supply chain environment
US7308496B2 (en) * 2001-07-31 2007-12-11 Sun Microsystems, Inc. Representing trust in distributed peer-to-peer networks
US7213047B2 (en) * 2002-10-31 2007-05-01 Sun Microsystems, Inc. Peer trust evaluation using mobile agents in peer-to-peer networks
US7328243B2 (en) * 2002-10-31 2008-02-05 Sun Microsystems, Inc. Collaborative content coherence using mobile agents in peer-to-peer networks
US7805518B1 (en) * 2003-11-14 2010-09-28 The Board Of Trustees Of The Leland Stanford Junior University Method and system for reputation management in peer-to-peer networks
JP4268531B2 (ja) * 2004-02-04 2009-05-27 日本放送協会 視聴履歴生成セキュリティモジュール、視聴履歴生成受信端末および視聴履歴生成受信プログラム
DE102004016580B4 (de) * 2004-03-31 2008-11-20 Nec Europe Ltd. Verfahren zur Übertragung von Daten in einem Ad Hoc Netzwerk oder einem Sensornetzwerk
DE102005045733A1 (de) * 2005-09-23 2007-04-05 Nec Europe Ltd. Verfahren zum Übermitteln von Nachrichten
US8108926B2 (en) * 2005-11-28 2012-01-31 Sap Ag Method and system for online trust management using statistical and probability modeling
JP4896595B2 (ja) * 2006-01-18 2012-03-14 株式会社Pfu 画像読取装置およびプログラム
JP4783680B2 (ja) * 2006-01-18 2011-09-28 株式会社Pfu 画像処理装置、色変換テーブル書換方法およびプログラム
US8849983B2 (en) * 2006-03-16 2014-09-30 Futurewei Technologies, Inc. Method and system for updating and retrieving state information for mobile nodes in a communication network
US7603350B1 (en) * 2006-05-09 2009-10-13 Google Inc. Search result ranking based on trust
WO2008131787A1 (en) * 2007-04-25 2008-11-06 Nec Europe Ltd. Method for aggregating data in a network
WO2009102354A1 (en) * 2008-02-13 2009-08-20 Hewlett-Packard Development Company, L.P. Managing electronic devices using an electronic device as a root of trust
JP2009288972A (ja) * 2008-05-28 2009-12-10 Brother Ind Ltd 情報配信システム及び同システムにおける端末装置並びに再生ランキングの生成方法
US20110078775A1 (en) * 2009-09-30 2011-03-31 Nokia Corporation Method and apparatus for providing credibility information over an ad-hoc network
WO2011109772A2 (en) * 2010-03-05 2011-09-09 Interdigital Patent Holdings, Inc. Method and apparatus for providing security to devices
US8555400B2 (en) * 2011-02-04 2013-10-08 Palo Alto Research Center Incorporated Privacy-preserving aggregation of Time-series data
EP2543974B1 (en) * 2011-07-06 2014-02-26 Nxp B.V. Metering system having improved security
US9647835B2 (en) * 2011-12-16 2017-05-09 Akamai Technologies, Inc. Terminating SSL connections without locally-accessible private keys

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090204964A1 (en) 2007-10-12 2009-08-13 Foley Peter F Distributed trusted virtualization platform
US20120180106A1 (en) * 2009-07-16 2012-07-12 Georgia State University Research Foundation, Inc. Trusted query network systems and methods
US20110154497A1 (en) * 2009-12-17 2011-06-23 American Express Travel Related Services Company, Inc. Systems, methods, and computer program products for collecting and reporting sensor data in a communication network

Also Published As

Publication number Publication date
WO2015030800A1 (en) 2015-03-05
US20150067343A1 (en) 2015-03-05
EP3039567A1 (en) 2016-07-06
JP6253168B2 (ja) 2017-12-27
KR20160025614A (ko) 2016-03-08
CN105453073A (zh) 2016-03-30
EP3039567A4 (en) 2017-05-03
JP2016534448A (ja) 2016-11-04

Similar Documents

Publication Publication Date Title
US9807066B2 (en) Secure data transmission and verification with untrusted computing devices
US10341321B2 (en) System and method for policy based adaptive application capability management and device attestation
US10338957B2 (en) Provisioning keys for virtual machine secure enclaves
US11038852B2 (en) Method and system for preventing data leakage from trusted network to untrusted network
US11836272B2 (en) Protection of privacy and data on smart edge devices
US8391494B1 (en) Systems and methods for protecting enterprise rights management keys
US8713667B2 (en) Policy based cryptographic application programming interface in secure memory
US9514317B2 (en) Policy-based trusted inspection of rights managed content
US8356361B2 (en) Secure co-processing memory controller integrated into an embedded memory subsystem
WO2019218919A1 (zh) 区块链场景下的私钥管理方法、装置及系统
US9054865B2 (en) Cryptographic system and methodology for securing software cryptography
US20090292919A1 (en) Secure execution environment on external device
EP3507962B1 (en) Message protection
WO2015171478A1 (en) Attestation of a host containing a trusted execution environment
Nguyen et al. Cloud-based secure logger for medical devices
Liu et al. $ LiveForen $: Ensuring Live Forensic Integrity in the Cloud
Zhang et al. Trusttokenf: A generic security framework for mobile two-factor authentication using trustzone
KR101737747B1 (ko) 집계된 데이터의 탬퍼 방지 개선
US11768948B1 (en) Enclave-based cryptography services in edge computing environments
Brasser et al. Softer Smartcards: Usable Cryptographic Tokens with Secure Execution
US11032087B2 (en) Certificate analysis
WO2024060756A1 (zh) 计算机设备及其运行方法、安全芯片
Foltz et al. Enterprise Security with Endpoint Agents

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