KR20180084053A - 타겟 장치에서의 어플리케이션의 실행 무결성을 검증하는 방법 - Google Patents

타겟 장치에서의 어플리케이션의 실행 무결성을 검증하는 방법 Download PDF

Info

Publication number
KR20180084053A
KR20180084053A KR1020187014060A KR20187014060A KR20180084053A KR 20180084053 A KR20180084053 A KR 20180084053A KR 1020187014060 A KR1020187014060 A KR 1020187014060A KR 20187014060 A KR20187014060 A KR 20187014060A KR 20180084053 A KR20180084053 A KR 20180084053A
Authority
KR
South Korea
Prior art keywords
application
challenge
function
target device
digest
Prior art date
Application number
KR1020187014060A
Other languages
English (en)
Other versions
KR102603797B1 (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 KR20180084053A publication Critical patent/KR20180084053A/ko
Application granted granted Critical
Publication of KR102603797B1 publication Critical patent/KR102603797B1/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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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/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/54Monitoring 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 adding security routines or objects to programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

본 발명은 소프트웨어 검증의 분야에 관한 것으로, 특히 소프트웨어 어플리케이션의 런타임 무결성을 증명할 수 있는지 여부를 확인하는 것이다. 따라서 본 발명은 검증 서버에 의해서 타겟 장치의 어플리케이션의 실행 무결성을 검증하는 방법을 제공하는데, 검증 서버는 타겟 장치 상의 런타임 어플리케이션 정보로부터 생성된 어플리케이션 서명을 수신하고, 서명은 타겟 장치의 어플리케이션의 실행 무결성을 검증하는데 이용되고, 어플리케이션은 블록의 어레이를 포함하며, 각각의 블록은 다이제스트를 생성하여, 그에 따라 블록들의 어레이와 관련된 다이제스트들의 어레이를 생성되고, 이 방법은, 챌린지 및 제1 함수를 포함하는 메시지를 타겟 장치에 송신하는 단계 - 제1 함수는 취합(aggregation) 방법을 정의하고, 상기 챌린지는 취합 명령을 정의함 - ; 타겟 장치로부터, 타겟 장치에 의해 각각의 블록에 있어서 상기 블록에 대한 대응하는 다이제스트를 결정하는 것에 의해 생성되는 증명을 수신하여, 어플리케이션에 관계된 증명을 생성하기 위해 제1 함수의 취합 방법에 따른 블록의 다이제스트와 챌린지를 취합하는 단계; 검증 서버에 의해 제2 함수를 증명에 적용하는 단계 - 제2 함수는 챌린지의 효과를 취소하여 상기 챌린지에 독립된 어플리케이션 서명을 생성함 - ; 생성된 어플리케이션 서명을 기준 서명과 비교함으로써 어플리케이션의 실행 무결성을 검증하는 단계;를 포함한다.

Description

타겟 장치에서의 어플리케이션의 실행 무결성을 검증하는 방법
본 발명은 소프트웨어 검증의 분야에 관한 것으로, 특히 소프트웨어 어플리케이션의 런타임 무결성을 증명할 수 있는지 여부를 확인하는 것이다.
원격 증명은 인증된 파티(authorized parties)에 의해 사용자의 컴퓨터(또는 장치에 포함된 소프트웨어)에 대한 변경을 탐지하는 방법이다. 예를 들어 신뢰할 수 있는 센터는 기술적 보호 수단을 우회하기 위해 그들 소프트웨어에 대한 사용자 조작을 포함한 소프트웨어에 대한 허용되지 않은 변경을 식별할 수 있다. 타겟 장치는 소프트웨어 및/또는 실행 플랫폼의 실행에 대한 표현(expression)을 만드는 인증(증명)을 생성한다. 그런 다음 타겟 장치는 이 인증서를 원격 파티에게 제공하여 변경되지 않은 소프트웨어가 현재 실행 중임을 보여준다.
원격 증명은 공개 키 암호화와 결합되어 전송된 정보가 승인되지 않은 제3자가 아닌, 인증을 제시하고 요청한 프로그램에 의해서만 판독할 수 있도록 한다.
검증 방법은 검증 센터에 의해 타겟 장치에 대한 챌린지를 전송하는 것에 기반한다. 이 챌린지는 소프트웨어에 의해 결과를 생성하는데 사용되며, 이 결과는 소프트웨어 코드와 실행시간 정보 및 챌린지에 따른다. 다음으로 그 결과는 검증을 위해 검증 센터로 다시 전송된다.
결과를 검증하는 키는 타겟 장치의 소프트웨어에 대한 정밀한 지식(precise knowledge)으로 비교를 위한 기준 결과를 생성한다.
본 발명은 타겟 장치에 내장된 소프트웨어를 검증하는 방법 및 시스템을 제공하는 것을 목적으로 한다.
본 명세서의 프레임에서, 런타임 어플리케이션 정보로부터 어플리케이션 서명을 생성하는 것에 의해 타겟 장치의 어플리케이션의 실행 무결성을 검증하는 방법이 제공되는데, 서명은 검증 서버에 의해 어플리케이션의 실행 무결성을 검증하는데 이용되고, 어플리케이션은 블록의 어레이를 포함하며, 각각의 블록은 다이제스트를 생성하여, 그에 따라 블록들의 어레이와 관련된 다이제스트들의 어레이가 생성되고, 이 방법은,
타겟 장치에 의해 챌린지 및 제1 함수를 포함하는 메시지를 수신하는 단계 - 제1 함수는 취합(aggregation) 방법을 정의하고, 챌린지는 취합 명령을 정의함 - ;
각각의 블록에 있어서 블록에 대한 대응하는 다이제스트를 결정하는 단계;
어플리케이션에 관계된 증명을 생성하기 위해 제1 함수의 취합 방법에 따른 블록의 다이제스트와 챌린지를 취합하는 단계;
검증 서버에 증명을 전송하는 단계;
검증 서버에 의해 제2 함수를 증명에 적용하는 단계 - 상기 제2 함수는 챌린지의 효과를 취소하여 챌린지에 독립된 어플리케이션 서명을 생성함 - ;
생성된 어플리케이션 서명을 기준 서명과 비교함으로써 어플리케이션의 실행 무결성을 검증하는 단계;를 포함한다.
본 발명에 따르면 전술한 목적을 달성할 수 있다.
이하의 설명은 첨부 도면을 참조하여 보다 명확하게 이해될 수 있다.
도 1은 헤드 엔드(head end) 및 타겟 장치를 포함하는 시스템과 어플리케이션을 검증하기 위한 단계를 나타내는 도면;
도 2는 증명서(attestation) 생성을 나타내는 도면;
도 3은 증명서의 검증을 나타내는 도면;
도 4는 타겟 장치를 나타내는 도면.
증명 체계(schemes)는 런타임 환경 또는 어플리케이션이 무결성 증명(증명서(attestation))을 생성하는 체계이다. 원격 증명 체계는 시도-응답(challenge-response) 프로토콜이며, 여기서 어플리케이션은 검증 서버로부터 수신된 시도에 기반한 그러한 증명을 계산하도록 요청된다. 수신된 응답(증명)에 기초하여, 검증 자(헤드 엔드와 같은 신뢰되는 원격 엔티티)는 그 어플리케이션의 실행 무결성에 대한 신뢰도 판정을 할 수 있다. 일반적인 증명 체계는 메모리 컨텐츠와 같은 런타임 정보로부터 그러한 증명을 계산한다. 예를 들어 챌린지가 메모리를 통해 미리 정의된 방문(visit)을 정의하는 여러 체계가 공지되어 있고, 여기서 증명은 방문 동안 인카운트된(encountered) 값의 해시이다.
공지된 원격 증명 방식은 어플리케이션의 런타임 환경이 에뮬레이트되거나 어플리케이션(또는 그 일부)이 신뢰할 수 있는 엔터티에서 사용가능한 것을 필요로하여 주어진 챌린지에 대한 기대 결과를 계산하고 수신된 증명의 정확성을 확인할 수 있어야 한다. 이는 어플리케이션 버전의 다양성과 확인해야 하는 어플리케이션 인스턴스의 수가 많아 실제 처리하기 매우 복잡하고 어렵다.
본 발명에 따르면, 주어진 집합에 튜플{version, appsign}이 존재 하는지를 검증하는 증명 방식을 제안하고 이는 실제 배치의 복잡성을 대폭 감소시킨다. 이는 원격 증명 체계의 일부(즉, 시도-응답 프로토콜이 있음을 보장하는 부분)를 "원격 증명 프론트엔드(RAF)"에 위임함으로써 달성된다. 이 솔루션은 RAF에 대해서 검증해야할 필요성이 있는 어플리케이션에 대한 정보를 가지지 않도록 설계된다. 이는 단지 시도-응답 프로토콜을 지원하고, 검증 엔터티(VE)가 클라이언트 어플리케이션(App)의 실행에 대한 신뢰도 판정에 사용할 수 있는 어플리케이션 서명(appsign)을 응답에서 추출한다.
이 솔루션의 상위 레벨 뷰(high-level view)는 도 1에 표시된다. 헤드 엔드(HE)는 검증 엔트리(VE) 및 원격 원격 증명 프론트엔드(Remote Attestation Frontend(RAF))로 구성된다. 검증 엔트리(VE)는 타겟 장치(TD)에 대한 쿼리를 수행하기 위해 RAF를 요청한다. RAF는 챌린지(CH)를 준비하고 이를 타겟 장치(TD)로 전송한다. 타겟 장치는 프로그램을 실행하는 프로세싱 유닛을 내장하는 임의의 타입의 전자 장치일 수 있다.
단계 A는 타겟 장치에 대한 챌린지의 전송이다. 챌린지는 타겟 장치에 의해 예측되지 않는 값이다. 예를 들어, 이는 RAF에 의해 랜덤으로 생성 할 수 있다. RAF와 TD 사이의 전송은 인터넷 접속과 같은 양방향 채널일 수 있거나, 챌린지(CH)가 복수의 타겟 장치들(TD)로 전송되는 브로드 캐스트 접속일 수있다.
일단 챌린지가 수신되면, 증명의 생성이 시작될 수 있다(단계 B). 타겟 장치(TD)는 증명을 생성하는 것을 전담하는 증명 모듈(AM)을 포함한다. 이 증명 모듈(AM)은 타겟 장치의 전용 프로그램이거나 주 프로세서의 주 통신 버스에 연결된 독립 프로세서일 수 있다. 후자의 경우 독립 프로세서는 변수를 저장하는 메모리에 액세스 할 수 있으며 이러한 변수에 대한 다이제스트를 계산할 수 있다.
증명 R = F(CH, APP)로 표시되고, 여기서 F는 수신된 챌린지(CH) 및 어플리케이션 메모리 공간과 같은 어플리케이션(APP)의 일부(런타임) 정보에 기반한 증명을 계산하는 함수를 나타낸다. 챌린지(CH)와 응답(R)이 주어지면, RAF는, 챌린지와 관계없이 어플리케이션 정보에만 의존하는 값인 어플리케이션(앱) 서명을 계산한다.
이하, 이를 달성하기위한 구체적인 구성을 제시한다. 당업자에게 제안된 구성에 대한 대안적인 구성, 변형 및 확장이 가능하다는 것은 자명하게 인식될 수 있다.
실시예에 따르면, 어플리케이션(런타임)의 (일부)정보에 의존하는 다이제스트 벡터 집합(h0, hi,..., hn)이 구축되고, 이 집합은 이 벡터 상의 일부 함수로서 증명을 정의하는데, 함수는 챌린지에 의해 인스턴스화되고 역변환 가능하다. 이 챌린지를 사용하여, RAF는 증명(응답)으로부터 이 다이제스트 벡터를 재구성할 수 있도록 역함수를 계산할 수 있다. 이어서 앱 서명은 이 다이제스트 벡터(또는 그 일부)에서 계산된 일부 함수의 결과이다.
도 2는 증명 생성 과정을 보다 상세히 나타낸 도면이다. 검증될 프로그램은 블록들(BO ... B3)로 분할되고, 증명모듈(AM)은 증명 생성의 일부를 취하는 블록들의 맵을 저장하는 메모리를 포함한다. 증명 모듈은 각 블록에 대해 블록을 나타내는 다이제스트(H)를 생성한다. 이 다이제스트(H)는 다음과 같이 계산할 수 있다.
- 정적(static): 블록의 해시 값 또는 메모리 블록의 컨텐츠에 대한 임의의 연산
- 동적(dynamic) : 런타임 메모리의 컨텐츠로서 예를 들면 블록 실행 마지막에서의 레지스터, 스택, 힙(heap) 컨텐츠를 포함함. 블록이 실행될 때마다 런타임 메모리 내에서 동일한 값을 생성하기 위해 런타임 메모리는 실행전에 미리정의된 값으로 설정된다.
일단 다이제스트 세트(HO, HI, ... Hn)가 획득되면, 다음 단계는 증명의 계산이며, 이 연산은 챌린지에 종속적이다. 함수 F(CH)는 증명(H0',H1',...Hn')을 생성하기 위해 다이제스트 집합에 인가된다. 함수 F에는 여러가지 가능성이 존재하고, 키 팩터(key factor)는 역함수 F-1을 사용하여 다이제스트 집합을 검색할 수 있는 가능성이다.
함수 F의 예
셔플링 함수 : 챌린지(CH)는 집합의 각 멤버를 섞는(셔플링하는) 매개변수로 사용된다. 획득된 집합은 모든 다이제스트를 포함하며, 집합으로의 포지셔닝는 챌린지(CH)에 따라 무작위로 수정된다.
수학적 연산 : 획득된 다이제스트(H')는 적어도 두 개의 다이제스트를 연산 한 결과이다. 예 : HO'=H3×H6; HI'=H2×H5 또는 HO'=H3+H6; HI'=HO+H7. 연산에 참여되는 다이제스트의 선택은 챌린지(CH)에 기반한다. HO'=H3×H6+H7과 같은 복잡한 연산이 실행될 수 있다.
유사함수(affine function): 유사함수는, HO'= A0.H0+A1.H1+...An.Hn 과 같은 형태의 백터-값(vector-valued) 함수를 나타낸다. 여기서 A0 내지 An 계수는 챌린지에 의해 주어진다. 유사 변환의 예는 상수(상수는 챌린지의 계수일 수 있음)를 이용한 덧셈 및 곱셈과 같은 선형 함수를 포함한다.
다이제스트 집합(HO ... Hn)은 x행과 y열의 다이제스트의 행렬로 나타낼 수 있다;
Figure pct00001
그리고 획득된 증명(H')는 H'= F(CH, H)와 같은 행렬일 수 있다. 일단 타겟 장치의 증명 모듈에 의해 증명(H')가 계산되면 결과는 어플리케이션 버전(VER)의 식별자와 함께 RAF로 보내진다.
함수(F)의 또 다른 예는 다이제스트 행렬의 암호화 함수이며, 암호화에 사용되는 키는 RAF 및 타겟 장치가 알고 있는 파생 함수에 따라 챌린지 또는 챌린지로부터 파생된 정보가 될 수 있다.
증명을 결정하는데 사용되는 함수는 챌린지와 다이제스트 행렬을 기반으로 증명을 계산하는 다변수 함수일 수 있다. 이것은 바람직하게는 가역적인 선형 함수이다. 이것은 챌린지에 기반한 가역 함수를 생성함으로써 모호하지 않게 정의될 수 있다. 그런 다음 (다이제스트 행렬의 동일한 길이의 행렬로서) 획득된 행렬에 RAF에 전송된 증명을 얻기 위해 다이제스트 행렬과 곱한다.
RAF는 동일한 알고리즘을 사용하여 지속된 챌린지(CH)로부터 동일한 행렬을 계산한 다음 역 행렬을 계산할 수 있다. 이는 다이제스트의 원래 매트릭스를 생성하는 응답에 적용되며, 이 다이제스트는 앱 서명을 계산하는데 사용된다.
도 3에 RAF에 의해 실행된 연산이 도시된다. 증명(ATT)은 어플리케이션(VER)의 식별자와 함께 수신된다(단계 C, 도 1). 증명(ATT)은 챌린지마다 고유한 값의 세트(H0', H1'... Hn')를 포함한다. 챌린지(C)의 생성자인 RAF는 증명(ATT) 상의 역함수 F1을 사용하여 이를 이용할 수 있다(단계 D, 도 1). 이는 계산된 다이제스트(HO, HI ... Hn)가 생성되게 한다.
실시예에 따르면, 서명(S)은 예를 들어 다이제스트들을 혼합하여 단일 값 S를 생성하도록 계산된 다이제스트들로부터 생성된다. 혼합 함수는 다이제스트들에 대한 해시 함수 일 수 있다. 이 서명(S)은 확인을 위해 검증 엔터티 VE로 전송된다.
검증 엔티티(VE)는 적어도 하나의 기준 서명(SR) 및 어플리케이션의 버전을 포함하는 한 쌍의 기준 데이터를 저장하는 데이터 스토리지를 포함한다. 검증 엔티티에 의해 현재 서명(S) 및 현재 버전(V)이 수신되면(단계 E), 수신된 쌍의 버전(V)은 데이터 스토리지로부터 기준 서명(SR)을 검색하는데 사용된다.
이전 초기화 단계에서, 검증 엔티티(VE)는 기준 다이제스트의 세트(HOR, H1R ... HnR)을 생성하고 기준 서명(SR) 및 기준 클라이언트 장치에서 생성되는 기준 다이제스트의 세트를 생성한다. 현재의 서명(S)과 기준 서명(SR) 사이의 비교가 수행되고, 검증의 결과는 타겟 장치의 어플리케이션의 진위를 결정하게 한다. 그런 다음 검증 엔티티는 타겟 장치로 컨텐츠를 전달하거나 타겟 장치에 유효성 검사 메시지 전송을 전담하는 서비스 공급자에게 통지한다.
실시예에 따르면, 다이제스트의 세트로부터 증명을 생성하는 단계는 다이제스트들을 계산하는 연산과 결합될 수있다. 예를 들어, 증명 생성 함수가 다변수 함수이고 블록(서브-다이제스트)으로부터 다이제스트를 계산하는 함수가 다변수 함수인 경우 이들은 결합될 수 있다. 어플리케이션(APP)의 블록 BO은 복수의 서브 다이제스트(BOa, BOb ... BOn)로 분할된다. 그런 다음 함수 F는 하위 다이제스트에서 챌린지(C)로 파라미터화된 연산을 정의한다. 예시 :
HO=BOa+BOb 및 H1=B1a×B1b는 다이제스트들이 서브 다이제스트과 HO'=CO×HO×H1+C1×H1 및 H1'=C0×H1+C1×HO 들로부터 어떻게 계산될 수 있는지를 정의하고, HO' 및 H1'는 입력 CH 및 서브 다이제스트에 의존하는 정의 F에 의해 직접 계사ㅋ될 수 있으며 다음과 같다.
HO'=CO×(BOa+BOb)×(B1a×B1b)+C1×B1a×B1b
H1'=CO×B1a×B1b+C1×(BOa + BOb)
이 계산은 2개의 연산을 분리하는 것이 어려워지는 것으로 나타낼 수 있다. 곱셈 및 덧셈은 예로서 주어진다. 모든 유형의 수학 연산은 2개 이상의 서브 다이제스트에 적용될 수 있다. 따라서 다이제스트의 세트 HO'... Hn'은 복수의 블록의 서브 다이제스트에서 직접 생성되어 위의 예제가 일방화된다.
실시예에 따르면, 타겟 장치의 증명 모듈은 블록(BO ... Bn)의 정의를 갖는다. 이 정의는 타겟 장치의 증명 모듈의 메모리에 저장되거나 증명 모듈 소프트웨어로 직접 구현될 수 있다.
다른 실시예에서, 검증 엔티티(VE)는 그 데이터 스토리지에, 대응하는 기준 서명 세트 및 어플리케이션의 버전을 갖는 복수의 정의를 포함한다. 정의는 다이제스트(메모리 범위 세트 또는 메모리 주소 세트의 형태일 수 있음)의 생성을 포함하는 어플리케이션의 블록을 정의하거나 블록의 런타임 실행의 포기화 파라미터를 정의하는 것으로 이해될 수 있다. 초기화 파라미터의 각 세트와 주어진 버전에 대해 기준 서명이 데이터베이스에 저장된다. 그런 다음 증명 모듈은 메모리 테이블에 저장된 블록 어레이의 복수의 정의를 포함할 수 있다. RAF는 타겟 장치에 전송되는 메시지 내에 어떤 정의가 증명 결정에 사용되어야 하는지 나타내는 식별자(테이블 색인)를 포함한다.
정의 테이블의 예
Figure pct00002
각 블록은 타겟 소프트웨어의 시작 및 종료 어드레스로 식별될 수 있다.
다른 실시예에 따르면, 증명 모듈은 RAF로부터 증명의 일부를 취하는 블록의 정의를 수신한다.
타겟 장치의 바람직한 실시예는 오디오/비디오 수신기이고, 특히 오디오/비디오를 처리할 권리의 검증을 담당하는 어플리케이션이다. 그러나 검증은 중요한 환경(예:플랜트 보안)에서 사용되는 스마트 폰 또는 장치와 같이 검증이 필요한 소프트웨어를 구비한 임의의 장치에서 일어날 수 있다.
도 4는 타겟 장치를 나타낸다. 이는 증명의 생성의 수행 요청과 함께 챌린지를 수신하는 통신 모듈(COMM)을 포함한다. 이 모듈은 RAF에 증명을 보내는데도 사용된다. 타겟 장치(TD)는 증명의 생성과 관련된 연산을 실행하기 위한 프로세싱 유닛(PROC)을 포함한다. 대안적으로, 프로세싱 모듈은 증명의 생성을 증명 모듈(AM)에 위임할 수있다. 프로세싱 유닛 및 증명 모듈 둘다 증명 절차가 일어나는 메모리에 대해 액세스할 수 있다.
본 발명의 실시예가 특정 예시적인 실시예를 참조하여 설명되었지만, 이들 실시예들의 넓은 범위를 벗어나지 않으면서 이들 실시예들에 대한 다양한 변형 및 변경이 이루어질 수 있음이 명백할 것이다. 따라서, 명세서 및 도면은 제한적인 의미라기보다는 예시적인 것으로 간주되어야한다. 본 명세서의 일부를 형성하는 첨부 된 도면은 본 발명이 실시될 수 있는 특정 실시예를 설명하기 위한 것으로 본 발명을 제한하는 것은 아니다. 도시된 실시예는 당업자가 여기에 개시된 발명을 실시 할 수 있도록 충분히 상세하게 설명된다. 다른 실시예들이 이를 이용해서 도출될 수 있으며, 본 개시의 범위를 벗어나지 않으면서 구조적 및 논리적 대체 및 변경이 이루어질 수 있다. 따라서, 본 발명의 상세한 설명은 제한적인 의미로 받아 들여서는 안되며, 다양한 실시예들의 범위는 그러한 청구항들이 부여되는 등가물의 전체 범위와 함께 첨부된 청구항들에 의해서 정의되어야만 된다.
본 발명의 주제의 이러한 양태는 편의상 단지 "하나의 발명"이라는 용어로 개별적으로 및/또는 집합적으로 "본 발명"으로 언급 될 수 있으며, 하나 이상이 존재한다면 임의의 단일 발명 개념에 본 출원의 범위를 자발적으로 제한하지 않는다. 따라서, 특정 실시예가 본 명세서에서 도시되고 설명되었지만, 동일한 목적을 달성하도록 계산된 임의의 구성이 도시된 특정 실시예를 대체할 수 있는 것으로 이해되어야 한다. 본 개시는 다양한 실시예의 임의의 및 모든 개조 또는 변형을 포함하도록 의도된다. 본 명세서에서 언급하지 않은 실시예의 조합 및 다른 실시예들은 전술한 설명을 검토함으로써 당업자에게 자명한 것이다.

Claims (11)

  1. 검증 서버에 의해서 타겟 장치의 어플리케이션의 실행 무결성을 검증하는 방법에 있어서 - 검증 서버는 타겟 장치 상의 런타임 어플리케이션 정보로부터 생성된 어플리케이션 서명을 수신하고, 상기 서명은 타겟 장치의 어플리케이션의 실행 무결성을 검증하는데 이용되고, 상기 어플리케이션은 블록의 어레이를 포함하며, 각각의 블록은 다이제스트를 생성하여, 그에 따라 블록들의 어레이와 관련된 다이제스트들의 어레이를 생성됨 - ;
    챌린지 및 제1 함수를 포함하는 메시지를 상기 타겟 장치에 송신하는 단계 - 상기 제1 함수는 취합(aggregation) 방법을 정의하고, 상기 챌린지는 취합 명령을 정의함 - ;
    상기 타겟 장치로부터, 타겟 장치에 의해 각각의 블록에 있어서 상기 블록에 대한 대응하는 다이제스트를 결정하는 것에 의해 생성되는 증명을 수신하여, 어플리케이션에 관계된 증명을 생성하기 위해 제1 함수의 취합 방법에 따른 블록의 다이제스트와 챌린지를 취합하는 단계;
    검증 서버에 의해 제2 함수를 증명에 적용하는 단계 - 상기 제2 함수는 챌린지의 효과를 취소하여 상기 챌린지에 독립된 어플리케이션 서명을 생성함 - ;
    생성된 어플리케이션 서명을 기준 서명과 비교함으로써 어플리케이션의 실행 무결성을 검증하는 단계;를 포함하는 것을 특징으로하는
    검증 서버에 의해서 타겟 장치의 어플리케이션의 실행 무결성을 검증하는 방법.
  2. 제1항에 있어서,
    상기 제1 함수는 챌린지에 따른 다이제스트 어레이를 셔플(shuffling)하는 셔플 함수(shuffle function)인 검증 서버에 의해서 타겟 장치의 어플리케이션의 실행 무결성을 검증하는 방법.
  3. 제1항에 있어서,
    상기 제1 함수는 상기 챌린지에 따른 다이제스트 어레이에 대한 아핀(affine) 함수인 검증 서버에 의해서 타겟 장치의 어플리케이션의 실행 무결성을 검증하는 방법.
  4. 제1항에 있어서,
    상기 제1 함수는 상기 챌린지에 따른 상기 다이제스트들의 어레이 상에 적용되는 다변수 함수인 검증 서버에 의해서 타겟 장치의 어플리케이션의 실행 무결성을 검증하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 메시지는 상기 무결성 검증의 일부를 취하는 상기 어플리케이션의 블록들의 디스크립션을 더 포함하는 검증 서버에 의해서 타겟 장치의 어플리케이션의 실행 무결성을 검증하는 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    하나의 블록은 각각이 서브 다이제스트를 생성하는 복수의 서브 블록을 포함하고, 상기 증명은 상기 제1 함수 및 상기 챌린지를 사용하여 상기 블록 중 상기 서브 다이제스트로부터 직접 생성되는 검증 서버에 의해서 타겟 장치의 어플리케이션의 실행 무결성을 검증하는 방법.
  7. 검증 엔티티(VE) 및 원격 증명 프론트엔드(RAF)를 포함하는, 타겟 장치(TD)에서 어플리케이션의 실행 무결성을 검증하는 시스템에 있어서,
    상기 원격 증명 프론트 엔드(RAF)는,
    챌린지(C)를 생성하는 동작,
    제1 함수를 갖는 챌린지(C)를 상기 타겟 장치로 송신하고 - 상기 제1 함수는 취합(aggregation) 방법을 정의하는 동작, 상기 챌린지는 취합 명령을 정의함 - ;
    상기 타겟 장치로부터, 타겟 장치에 의해 각각의 블록에 있어서 상기 블록에 대한 대응하는 다이제스트를 결정하는 것에 의해 생성되는 증명(ATT)을 수신하여, 어플리케이션에 관계된 증명을 생성하기 위해 제1 함수의 취합 방법에 따른 블록의 다이제스트와 챌린지를 취합하는 동작;
    검증 서버에 의해 제2 함수를 증명(ATT)에 적용하는 동작 - 상기 제2 함수는 챌린지의 효과를 취소하여 상기 챌린지에 독립된 다이제스트의 세트(H0,H1,..,Hn)을 생성함 - ;
    다이스트의 어레이(H0,H1,..,Hn) 또는 다이제스트의 어레이(H0,H1,..,Hn) 상에서 혼합된 서명(S)을 증명 엔티티(VE)에 전송하는 동작을 수행하도록 구성되고,
    상기 증명 엔티티는,
    수신된 다이제스트의 어레이(H0,H1,..,Hn) 또는 서명(S)을 기준과 비교하는 것에 의해 어플리케이션의 무결성을 검사하는 동작을 수행하도록 구성되는,
    타겟 장치(TD)에서 어플리케이션의 실행 무결성을 검증하는 시스템.
  8. 제7항에 있어서,
    상기 원격 증명 프론트 엔드(RAF)는 증명(ATT)의 일부를 취하는 블록의 정의를 상기 타겟 장치(TD)에 전송하도록 구성되는
    타겟 장치(TD)에서 어플리케이션의 실행 무결성을 검증하는 시스템.
  9. 제7항 또는 제8항에 있어서,
    상기 제1 함수는 챌린지에 따른 상기 다이제스트 어레이를 셔플(shuffling)하는 셔플 함수(shuffle function)인
    타겟 장치(TD)에서 어플리케이션의 실행 무결성을 검증하는 시스템.
  10. 제7항 또는 제8항에 있어서,
    상기 제1 함수는 챌린지에 따른 상기 다이제스트 어레이에 대한 아핀 함수인
    타겟 장치(TD)에서 어플리케이션의 실행 무결성을 검증하는 시스템.
  11. 제7항 또는 제8항에 있어서,
    상기 제1 함수는 상기 챌린지에 따른 다이제스트들의 어레이에 적용되는 다변수 함수인
    타겟 장치(TD)에서 어플리케이션의 실행 무결성을 검증하는 시스템.
KR1020187014060A 2015-11-19 2016-11-17 타겟 장치에서의 어플리케이션의 실행 무결성을 검증하는 방법 KR102603797B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15195379 2015-11-19
EP15195379.1 2015-11-19
PCT/EP2016/077932 WO2017085159A1 (en) 2015-11-19 2016-11-17 Method to verify the execution integrity of an application in a target device

Publications (2)

Publication Number Publication Date
KR20180084053A true KR20180084053A (ko) 2018-07-24
KR102603797B1 KR102603797B1 (ko) 2023-11-16

Family

ID=54843588

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187014060A KR102603797B1 (ko) 2015-11-19 2016-11-17 타겟 장치에서의 어플리케이션의 실행 무결성을 검증하는 방법

Country Status (9)

Country Link
US (2) US10846409B2 (ko)
EP (1) EP3378005B1 (ko)
KR (1) KR102603797B1 (ko)
CN (1) CN108292341B (ko)
BR (1) BR112018010120B1 (ko)
ES (1) ES2774487T3 (ko)
MX (1) MX2018006204A (ko)
SG (1) SG11201803707PA (ko)
WO (1) WO2017085159A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102036618B1 (ko) * 2019-01-31 2019-10-28 주식회사그린존시큐리티 디바이스의 무결성을 검증하는 무결성 검증 체인 및 이를 이용한 디바이스의 무결성 검증 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11790119B2 (en) * 2018-11-16 2023-10-17 Apple Inc. Application integrity attestation
US11271721B2 (en) * 2019-03-25 2022-03-08 Micron Technology, Inc. Distributed secure array using intra-dice communications to perform data attestation
US11221800B2 (en) 2020-03-02 2022-01-11 Micron Technology, Inc. Adaptive and/or iterative operations in executing a read command to retrieve data from memory cells
US11086572B1 (en) 2020-03-02 2021-08-10 Micron Technology, Inc. Self adapting iterative read calibration to retrieve data from memory cells
US11740970B2 (en) 2020-03-02 2023-08-29 Micron Technology, Inc. Dynamic adjustment of data integrity operations of a memory system based on error rate classification
US11029890B1 (en) 2020-03-02 2021-06-08 Micron Technology, Inc. Compound feature generation in classification of error rate of data retrieved from memory cells
US11081200B1 (en) 2020-05-07 2021-08-03 Micron Technology, Inc. Intelligent proactive responses to operations to read data from memory cells
US11257546B2 (en) 2020-05-07 2022-02-22 Micron Technology, Inc. Reading of soft bits and hard bits from memory cells
CN114760061B (zh) * 2020-12-29 2023-09-05 深信服科技股份有限公司 数据上传的方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050132031A1 (en) * 2003-12-12 2005-06-16 Reiner Sailer Method and system for measuring status and state of remotely executing programs
JP2012505437A (ja) * 2008-10-10 2012-03-01 パナソニック株式会社 セキュア処理システムのアプリケーション空間において信頼性を実現するための一時的pcr利用
KR20120099472A (ko) * 2009-12-22 2012-09-10 인텔 코포레이션 보안 애플리케이션 실행을 제공하는 방법 및 장치
JP2013523043A (ja) * 2010-03-22 2013-06-13 エルアールディシー システムズ、エルエルシー ソースデータセットの完全性を識別及び保護する方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NZ509018A (en) * 1998-06-17 2002-06-28 Aristocrat Technologies Au Software verification and authentication
US7581103B2 (en) * 2001-06-13 2009-08-25 Intertrust Technologies Corporation Software self-checking systems and methods
US7103779B2 (en) * 2003-09-18 2006-09-05 Apple Computer, Inc. Method and apparatus for incremental code signing
JP4064914B2 (ja) * 2003-12-02 2008-03-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム
US8688991B1 (en) * 2007-06-01 2014-04-01 Adobe Systems Incorporated Media player embodiments and secure playlist packaging
KR101495535B1 (ko) * 2007-06-22 2015-02-25 삼성전자주식회사 컨텐츠 디바이스의 폐기 여부를 확인하여 데이터를전송하는 전송 방법과 시스템, 데이터 서버
KR101426270B1 (ko) * 2008-02-13 2014-08-05 삼성전자주식회사 소프트웨어의 전자 서명 생성 방법, 검증 방법, 그 장치,및 그 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로읽을 수 있는 기록매체
CN102016865A (zh) * 2008-03-04 2011-04-13 苹果公司 基于可用权利来授权执行软件代码的系统和方法
US20090300348A1 (en) * 2008-06-02 2009-12-03 Samsung Electronics Co., Ltd. Preventing abuse of services in trusted computing environments
US8544092B2 (en) * 2009-03-12 2013-09-24 International Business Machines Corporation Integrity verification using a peripheral device
US8213907B2 (en) * 2009-07-08 2012-07-03 Uniloc Luxembourg S. A. System and method for secured mobile communication
EP2372592B1 (en) * 2009-12-14 2016-08-24 Nxp B.V. integrated circuit and system for installing computer code thereon
EP2378452B1 (en) * 2010-04-16 2012-12-19 Thomson Licensing Method, device and computer program support for verification of checksums for self-modified computer code
US20120324557A1 (en) * 2011-06-17 2012-12-20 Raytheon Bbn Technologies Corp System and method for remote integrity verification
US9569618B2 (en) * 2013-08-28 2017-02-14 Korea University Research And Business Foundation Server and method for attesting application in smart device using random executable code
CN103810421B (zh) * 2014-02-19 2017-01-04 北京视博数字电视科技有限公司 应用程序的校验方法、装置和终端设备
CN103995992A (zh) * 2014-05-28 2014-08-20 全联斯泰克科技有限公司 一种软件的保护方法和装置
US10936720B2 (en) * 2015-07-10 2021-03-02 Nec Corporation Method and system for reliable computation of a program
US20170068955A1 (en) * 2015-09-04 2017-03-09 Ca, Inc. Verification and provisioning of mobile payment applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050132031A1 (en) * 2003-12-12 2005-06-16 Reiner Sailer Method and system for measuring status and state of remotely executing programs
JP2012505437A (ja) * 2008-10-10 2012-03-01 パナソニック株式会社 セキュア処理システムのアプリケーション空間において信頼性を実現するための一時的pcr利用
KR20120099472A (ko) * 2009-12-22 2012-09-10 인텔 코포레이션 보안 애플리케이션 실행을 제공하는 방법 및 장치
JP2013523043A (ja) * 2010-03-22 2013-06-13 エルアールディシー システムズ、エルエルシー ソースデータセットの完全性を識別及び保護する方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102036618B1 (ko) * 2019-01-31 2019-10-28 주식회사그린존시큐리티 디바이스의 무결성을 검증하는 무결성 검증 체인 및 이를 이용한 디바이스의 무결성 검증 방법
WO2020159053A1 (ko) * 2019-01-31 2020-08-06 주식회사그린존시큐리티 디바이스의 무결성을 검증하는 무결성 검증 체인 및 이를 이용한 디바이스의 무결성 검증 방법

Also Published As

Publication number Publication date
WO2017085159A1 (en) 2017-05-26
SG11201803707PA (en) 2018-06-28
US10846409B2 (en) 2020-11-24
EP3378005A1 (en) 2018-09-26
EP3378005B1 (en) 2020-01-08
US11526616B1 (en) 2022-12-13
BR112018010120A2 (pt) 2018-11-21
KR102603797B1 (ko) 2023-11-16
MX2018006204A (es) 2018-08-01
CN108292341B (zh) 2022-03-29
BR112018010120B1 (pt) 2023-12-05
US20180330098A1 (en) 2018-11-15
ES2774487T3 (es) 2020-07-21
CN108292341A (zh) 2018-07-17

Similar Documents

Publication Publication Date Title
KR102603797B1 (ko) 타겟 장치에서의 어플리케이션의 실행 무결성을 검증하는 방법
Li et al. Privacy preserving cloud data auditing with efficient key update
CN108259438B (zh) 一种基于区块链技术的认证的方法和装置
WO2019095567A1 (zh) 单点登录的校验装置、方法及计算机可读存储介质
Hao et al. Deleting secret data with public verifiability
US10992481B2 (en) Two-dimensional code generation method, apparatus, data processing method, apparatus, and server
JP2010503252A (ja) コンピューティング・プラットフォームの証明
Chen et al. Data dynamics for remote data possession checking in cloud storage
Wesemeyer et al. Formal analysis and implementation of a TPM 2.0-based direct anonymous attestation scheme
CN110770729B (zh) 用于证明虚拟机完整性的方法和设备
WO2017000648A1 (zh) 一种被加固软件的认证方法及装置
US10785036B2 (en) Method for generating an electronic signature of a document associated with a condensate
US8868910B2 (en) Elliptic curve cryptographic signature
WO2021137769A1 (en) Method and apparatus for sending and verifying request, and device thereof
CN111639325A (zh) 基于开放平台的商户认证方法、装置、设备和存储介质
CN108184146B (zh) 一种计算直播平台人气的方法及相关设备
KR20210112359A (ko) 브라우저 쿠키 보안
ALmarwani et al. An effective, secure and efficient tagging method for integrity protection of outsourced data in a public cloud storage
US8954728B1 (en) Generation of exfiltration-resilient cryptographic keys
Sun et al. Public data integrity auditing without homomorphic authenticators from indistinguishability obfuscation
CN115550060B (zh) 基于区块链的可信证书验证方法、装置、设备和介质
Kumar et al. Hash based approach for providing privacy and integrity in cloud data storage using digital signatures
Chang et al. A security protocol for trusted access to cloud environment
Lewison et al. Rich credentials for remote identity proofing
Costea et al. Secure software licensing: Models, constructions, and proofs

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