KR102522778B1 - 분산 대리자 기반 무결성 검증을 수행하는 개별 기기, 그를 포함하는 개별 기기 무결성 검증 시스템 및 그 방법 - Google Patents

분산 대리자 기반 무결성 검증을 수행하는 개별 기기, 그를 포함하는 개별 기기 무결성 검증 시스템 및 그 방법 Download PDF

Info

Publication number
KR102522778B1
KR102522778B1 KR1020160051667A KR20160051667A KR102522778B1 KR 102522778 B1 KR102522778 B1 KR 102522778B1 KR 1020160051667 A KR1020160051667 A KR 1020160051667A KR 20160051667 A KR20160051667 A KR 20160051667A KR 102522778 B1 KR102522778 B1 KR 102522778B1
Authority
KR
South Korea
Prior art keywords
verification
individual
integrity
verified
agent
Prior art date
Application number
KR1020160051667A
Other languages
English (en)
Other versions
KR20170122545A (ko
Inventor
문용혁
김대원
김영세
윤승용
한진희
임재덕
김정녀
전용성
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020160051667A priority Critical patent/KR102522778B1/ko
Priority to US15/226,294 priority patent/US10511488B2/en
Publication of KR20170122545A publication Critical patent/KR20170122545A/ko
Application granted granted Critical
Publication of KR102522778B1 publication Critical patent/KR102522778B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Abstract

본 발명의 실시예에 따른 분산 대리자 기반 개별 기기 무결성 검증 시스템은 네트워크 기반의 복수개의 개별 기기의 무결성을 검증하는 무결성 검증 시스템에 있어서, 상기 복수개의 개별 기기 중 무결성 검증 대상인 제 1 개별기기; 상기 복수개의 개별 기기 중 상기 검증 대상 기기를 검증 대리하기 위한 제 2 개별기기; 및 상기 복수개의 개별 기기 중 검증 대리자로서 상기 제 2 개별 기기를 선정하고, 상기 제 2 개별 기기에 의한 상기 제 1 개별기기의 무결성 검증 결과를 보고 받는 원격 기기 관리 서버를 포함할 수 있다.

Description

분산 대리자 기반 무결성 검증을 수행하는 개별 기기, 그를 포함하는 개별 기기 무결성 검증 시스템 및 그 방법{Integrity Verification Device, Integrity Verification System based Distributed Delegator Based and Method thereof}
본 발명은 분산 대리자 기반 무결성 검증을 수행하는 개별 기기, 그를 포함하는 개별 기기 무결성 검증 시스템 및 그 방법에 관한 것으로, 보다 상세하게는 별도의 신뢰 개체 또는 중앙서버의 개입을 최소화한 형태로 개별 기기 다자간 협력에 기반한 상호 메모리 무결성을 증명할 수 있는 기술에 관한 것이다.
최근 특화된 감지(Sensing) 및 작동(Actuation) 기능을 수행하는 다양한 소형 기기들이 대중화되면서, 범용 또는 특수목적의 제품들의 출시가 잇따르고 있다. 이들 기기는 통상 기능적으로 매우 경량화된 운영체제내지 펌웨어 (Firmware)를 기반으로 운용되고, 제한되거나 정형화된 기능을 제공한다.
한편, 이러한 종점(End-point) 기기들의 대부분은 컴퓨팅(계산) 성능보다는 다양한 네트워크 인터페이스를 제공하는 형태를 띄고 있어, 강한 연결 기능을 제공할 수 있다. 기기간 연결성은 또한 서비스 연속성을 제공하는데 매우 중요한 요소 중 하나인데, 일례로 종점(End-point) 기기들의 IP 기반의 인터넷 참여가 가능해져, 잠재적으로 모든 기기들이 네트워크로 연결되는 형태로의 기술적, 산업적 진보가 예견되고 있다. 즉 기기의 연결성이 곧 서비스의 생산성으로 직결되는 구조적 특징이 있다.
이와 같은 강한 연결성을 기반한 기기 네트워크 환경에서는 일부 개별 기기에 악의적인 코드를 추가하는 등의 공격에 의해 네트워크 전체의 운용상 결함 및 오류가 유발될 수 있으며, 악성 코드의 기기간 전파 등과 같은 보안 취약성에 손쉽게 노출될 수 있다.
특허공개번호 KR 10-2006-0119967호
본 발명의 실시예는 계산 능력에 비해 상대적으로 강한 연결성에 기반을 두고 있는 기기들로 구성된 네트워크 환경에서 개별 기기의 실행환경에 대한 무결성 증명 절차를 외부 단독 개체가 아닌 이웃 기기들의 상호협력에 기반하여 처리함으로써, 기기 관련 모든 유형의 보안 서비스 구현 및 운용에 있어 가장 핵심적인 근간이 되는 기기 운용의 신뢰성을 여부를 보장할 수 있는 분산 대리자 기반 무결성 검증을 수행하는 개별 기기, 그를 포함하는 개별 기기 무결성 검증 시스템 및 그 방법을 제공하고자 한다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재들로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시예에 따른 분산 대리자 기반 개별 기기 무결성 검증 시스템은 네트워크 기반의 복수개의 개별 기기의 무결성을 검증하는 무결성 검증 시스템에 있어서, 상기 복수개의 개별 기기 중 무결성 검증 대상인 제 1 개별기기; 상기 복수개의 개별 기기 중 상기 검증 대상 기기를 검증 대리하기 위한 제 2 개별기기; 및 상기 복수개의 개별 기기 중 검증 대리자로서 상기 제 2 개별 기기를 선정하고, 상기 제 2 개별 기기에 의한 상기 제 1 개별기기의 무결성 검증 결과를 보고 받는 원격 기기 관리 서버를 포함할 수 있다.
또한, 상기 복수개의 개별 기기 중 상기 제 1 개별기기 또는 상기 제 2 개별기기와 이웃하는 제 3 개별 기기를 더 포함할 수 있다.
또한, 상기 원격 기기 관리 서버는, 상기 복수개의 개별 기기의 동의 정보를 생성하여 상기 복수개의 개별 기기로 상기 동의 정보를 배포할 수 있다.
또한, 상기 원격 기기 관리 서버는, 상기 제 2 개별 기기를 검증 대리자로 선정 시 상기 제 3 개별기기로부터 상기 제 2 개별 기기에 대한 동의 정보를 수신하여 상기 제 2 개별 기기의 검증대리자 선정을 확정할 수 있다.
또한, 상기 복수개의 개별기기는 비밀 정보를 생성하여 자신을 제외한 나머지 복수개의 개별기기로 상기 비밀 정보를 배포할 수 있다.
상기 원격 기기 관리 서버에 의해 검증 대리자로 선정된 제 2 개별 기기는 자신을 제외한 나머지 복수개의 개별기기로부터 비밀정보를 수집하고, 수집한 비밀정보를 복구하여 상기 비밀정보를 기반으로 챌린지 데이터를 생성할 수 있다.
상기 제 2 개별기기는, 상기 챌린지 데이터를 넌스형태로 검증 대상 기기인 상기 제 1 개별기기로 전달하고, 상기 제 1 개별기기로부터 응답을 확인하여 상기 제 1 개별기기의 무결성을 검증할 수 있다.
또한, 상기 복수개의 개별 기기 각각은, 상기 비밀정보, 넌스, 암호키 중 적어도 하나 이상을 생성하는 랜덤 데이터 생성기; 상기 원격기기 관리 서버로부터 수신한 동의정보, 상기 비밀정보, 상기 넌스, 상기 암호값을 저장하는 검증 데이터 레파지터리; 검증 대리자 신뢰성 평가 및 검증 대상 기기의 무결성 측정 시 메모리 스캔 및 데이터 추출을 수행하는 메모리 순회기; 및 상기 검증 대리자 신뢰성 평가, 상기 검증 대상 기기의 무결성 측정을 위한 체크섬을 계산하는 체크섬 계산기를 포함할 수 있다.
또한, 상기 복수개의 개별 기기 중 자신이 검증 대리자인 경우 상기 비밀정보를 기반으로 챌린지 데이터를 생성하는 검증 대리자 선정기를 더 포함할 수 있다.
또한, 상기 복수개의 개별 기기 중 자신이 제 3 개별기기로 동작하는 경우 상기 제 2 개별기기의 신뢰성을 판정하는 검증자 신뢰성 판정기를 더 포함할 수 있다.
또한, 상기 복수개의 개별 기기 중 자신이 제 2 개별기기로 동작하는 경우
상기 검증 대상 기기인 제 1 개별기기로부터 챌린지에 대한 응답을 받으면 상기 제 1 개별기기에 대한 무결성 검증을 수행하는 분산 검증 판정기를 더 포함할 수 있다.
또한, 상기 복수개의 기기 중 네트워크에 최초로 배치되는 기기를 탐색하는 이웃기기 탐색기를 더 포함할 수 있다.
본 발명의 실시예에 따른 분산 대리자 기반 무결성 검증을 수행하는 개별 기기는 원격 기기 관리서버와 연동하여 무결성 검증을 수행하는 개별 기기에 있어서, 비밀정보, 넌스, 암호키 중 적어도 하나 이상을 생성하는 랜덤 데이터 생성기; 상기 원격기기 관리 서버로부터 수신한 동의정보, 상기 비밀정보, 상기 넌스, 상기 암호값을 저장하는 검증 데이터 레파지터리; 검증 대리자 신뢰성 평가 및 검증 대상 기기의 무결성 측정 시 메모리 스캔 및 데이터 추출을 수행하는 메모리 순회기; 및 상기 검증 대리자 신뢰성 평가, 상기 검증 대상 기기의 무결성 측정을 위한 체크섬을 계산하는 체크섬 계산기; 상기 원격기기 관리 서버에 의해 검증 대리자로 선정된 경우, 상기 비밀정보를 기반으로 무결성 검증을 위한 챌린지 데이터를 생성하는 검증 대리자 선정기; 상기 검증 대리자로 선정된 기기에 대한 신뢰성을 판정하는 검증자 신뢰성 판정기; 및 검증 대상 기기로 챌린지 데이터를 전달하고, 상기 검증 대상 기기로부터 챌린지에 대한 응답을 받으면 상기 검증 대상 기기에 대한 무결성 검증을 수행하는 분산 검증 판정기를 더 포함할 수 있다.
본 발명의 실시예에 따른 분산 대리자 기반 개별 기기 무결성 검증 방법은 네트워크 기반으로 연결된 복수개의 개별 기기와 원격 기기 관리서버의 연동에 의한 분산 대리자 기반 개별 기기 무결성 검증 방법에 있어서, 복수개의 개별 기기 중 하나의 기기인 검증 대상 기기에 대한 무결성 검증을 요청받는 단계; 상기 복수개의 개별 기기 중 상기 검증 대상 기기를 제외한 나머지 개별 기기 중 검증 대리자를 선정하는 단계; 및 상기 검증 대리자로 선정된 개별 기기가 상기 검증 대상 기기의 무결성을 검증하는 단계를 포함할 수 있다.
상기 원격 기기 관리 서버로부터 배포된 동의정보를 저장하는 단계; 및 비밀정보를 생성하여 저장 및 공유하는 단계를 더 포함할 수 있다.
상기 검증 대리자를 선정하는 단계는, 검증 대리자 선정을 위한 검증 선정 기준값을 생성하여 미리 정한 임의의 랜덤값과 비교하는 단계; 및 상기 검증 선정 기준값이 상기 랜덤값보다 작은 경우, 자신이 검증대리자로 선정 가능한 것으로 판단하고 상기 원격 기기 관리서버로 보고하는 단계를 포함할 수 있다.
상기 검증 대리자를 선정하는 단계는, 상기 원격 기기 관리 서버로부터 상기 복수개의 개별 기기 중 상기 검증 대상 기기 또는 상기 검증 대리자와 이웃하는 기기들의 동의정보에 의한 최종 선정 결과를 수신하면, 자신을 검증 대리자로 최종 선정하는 단계를 더 포함할 수 있다.
상기 검증 대상 기기의 무결성을 검증하는 단계는 상기 검증 대리자로 선정된 개별 기기가 상기 이웃하는 기기로부터 비밀정보를 수집하는 단계; 상기 비밀정보를 기반으로 챌린지 데이터를 생성하여 상기 검증 대상 기기로 전송하는 단계; 상기 검증 대상 기기로부터 응답을 수신하는 단계; 및 상기 응답을 기반으로 상기 검증 대상 기기의 무결성을 검증하는 단계를 포함할 수 있다.
상기 검증 대리자가 상기 검증 대상 기기의 무결성 검증 결과를 상기 원격 기기 관리 서버로 보고하는 단계를 포함할 수 있다.
본 기술은 네트워크 환경에서 이웃 기기들의 상호협력 기반으로 개별 기기의 실행환경에 대한 무결성 증명 절차를 수행함으로써 기기 운용의 신뢰성을 보장할 수 있다.
도 1은 본 발명의 실시예에 따른 분산 대리자 기반 개별 기기 무결성 검증 시스템의 구성도이다.
도 2는 본 발명의 실시예에 따른 개별 기기의 세부 구성도이다.
도 3은 본 발명의 실시예에 따른 분산 검증 대리자 기반의 자율적인 기기 무결성 검증 방법을 나타내는 순서도이다.
도 4A는 도 3의 동의 정보 초기화 프로시저 실행 과정을 구체적으로 나타내는 순서도이다.
도 4B는 도 4A의 동의 정보 프레그먼트 생성 구조도이다.
도 5는 도 3의 비밀정보 초기화 프로시저 실행 과정을 구체적으로 나타내는 순서도이다.
도 6은 도 3의 자율형 분산 검증 대리자 선정 방법을 구체적으로 나타내는 순서도이다.
도 7은 도 3의 상호 동의 기반 검증 대리자 신뢰성 판정 방법을 구체적으로 나타내는 순서도이다.
도 8은 도 3의 상호 협력형 비밀정보 복구 방법을 구체적으로 나타내는 순서도이다.
도 9A는 도 3의 검증 대상 기기(130)의 실행환경 무결성 검증 방법을 나타내는 순서도이다.
도 9B는 도 9A의 검증 대상 기기에 대한 무결성 관련 체크썸 값 생성 예시도이다.
도 10은 본 발명의 실시예에 따른 자율적인 기기 무결성 검증을 위한 분산 대리자 기반 증명방법을 적용한 컴퓨터 시스템의 구성도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 발명의 실시예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명은 임베디드, 모바일, 사물인터넷 기기의 실행환경의 보안적 결함을 평가하기 위한 기술로서 개별 기기 메모리의 동적 무결성을 신뢰적으로 확증하는 기술에 관한 것이다. 본 발명은 별도의 신뢰개체 또는 중앙 서버의 개입이 최소화된 형태의 기기 다자간 협력에 기반한 상호 메모리 무결성 증명 기법을 개시한다.
또한, 본 발명은 무결성 검증에 대한 의사 결정의 구조를 원격 서버와 같은 외부 개체에 일임하는 것이라 아니라, 기기 네트워크를 구성하는 분산 기기 자원에 부여함으로써, 자율적이고 상호협력적인 증명 절차를 수행할 수 있도록, 임의 기기의 네트워크 배치 시 사전 보안 처리 절차를 원격 기기 관리 서버의 컴퓨팅 파워에 의존하여 오프라인 프로세스로서 처리하고, 이웃 기기들의 공조에 기반한 신뢰적 절차에 따라 동적으로 검증 대리자를 선정하고, 무결성 검증을 요청한 대상 기기에 대한 증명 (Attestation)을 수행할 수 있는 기법에 관한 것이다.
이하, 도 1 내지 도 10을 참조하여, 본 발명의 실시예들을 구체적으로 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 분산 대리자 기반 개별 기기 무결성 검증 시스템의 구성도이다.
본 발명의 실시예에 따른 분산 대리자 기반 개별 기기 무결성 검증 시스템은 자율적 기기(111~130, 120) 및 원격 기기 관리 서버(140)를 포함한다.
이때 자율적 기기(111~130)는 검증 대리자(120)를 중심으로 이웃하는 이웃기기(111, 112, 113, 114, 115), 검증대상 기기(130)를 포함한다.
이웃 기기(111)는 동일 도메인에 속해 있는 기기들을 의미하며, 특히 본 발명에서는 후술할 검증 대리자(120)를 중심으로 인접한 네트워크 노드 (Node)를 지칭한다. 이때, 검증 대리자(120)와 인접한 네트워크 노드로서 이웃기기(112, 113, 114, 115) 등이 포함될 수 있다.
검증 대리자(120)는 기기 네트워크를 구성하는 임의 기기 중 증명 절차를 수행하고 증명의 결과를 최종 판정할 주체로서 선정된 기기를 의미한다. 검증 대리자(120)는 이웃 기기(111)와의 동적 상호 협력 및 후술한 원격 기기 관리 서버(140)와의 사전 조력을 통해 선정되는데, 구체적인 선정 절차는 추후 도 4 내지 도 7을 통해 구체적으로 설명하기로 한다.
검증 대상 기기(130)는 메모리 무결성 검증의 대상이 되는 기기를 의미하며, 후술할 원격 기기 관리 서버(140)에 의해 또는 검증 대상 기기 자체적인 판단에 의해 검증 이벤트가 발생하는 것으로 가정한다.
이러한 자율적 기기(111~130)는 네트워크를 통해 원격 기기 관리서버(140)와 연동된다. 네트워크는 기기 네트워크와는 분리된 TCP/IP 기반의 인터넷 환경을 의미한다. 본 발명에서는 종래의 보안 기술에 기반하여 상호 인증, 안전한 키 교환, 암호화된 세션 등을 기반으로 기기간 또는 기기와 후술할 원격 기기 관리 서버(140)간의 데이터 통신이 수행되는 것으로 가정한다.
원격 기기 관리 서버(140)는 개별 기기에 비해 우수한 계산 성능을 가지고 있는 컴퓨팅 개체를 의미하며, 기기 네트워크와는 분리된 원격지에 존재하고, 보안적으로 신뢰할 수 있는 개체로 가정한다. 본 개체는 기기 네트워크가 목적으로 하는 서비스의 구성 특성에 따라 게이트웨이(Gateway)로 지칭될 수 있다.
도 1에 기술한 기기 네트워크 구성은 여러 네트워크 구성 중 고려될 수 있는 하나의 예시이며, 따라서 기기 네트워크의 형성은 도 1에 도시한 구성에 제한되지 않는다.
도 1은 기기 네트워크에 대한 용이한 이해를 돕기 위해 본 발명에서 주요한 기능을 수행하는 각 개체의 역할에 기반하여 간략하게 기술된 것이다. 그러나, 통상의 컴퓨터, 네트워크, 보안, 하드웨어 관련 기술 지식을 가지고 있는 사람은 용이하게 이해할 수 있는 구조이다.
도 2는 본 발명의 실시예에 따른 개별 기기의 세부 구성도이다. 도 2는 기기 네트워크를 구성하는 개별 기기의 시스템 구성을 자율형 분산 증명 기능 측면에서 구체화하여 소프트웨어 및 하드웨어 모듈(기능블록)의 형태로 도시한 것이다.
도 2를 참조하면, 본 발명의 실시예에 따른 개별 기기(3000)는 전원이 인가되는 즉시 부팅제어코드가 부팅에 필요한 사전 조치인 POST(Power On Self-Test) 및 부팅매체 검색, 부트로더 로드를 수행하고, 이후 커널이 부팅되어 운영체제가 시작되고, 계산 능력 및 네트워킹 기능을 제공하며, 소프트웨어 설치 및 실행이 가능한 컴퓨팅 단말을 의미한다. 또한, 개별 기기(3000)는 운영체제가 탑재되지 않고 단순히 기기간 통신, 서버간 통신을 위한 네트워크 기능 및 감지(Sensing)/작동(Actuation) 기능, 그리고 증명 절차와 관련한 기능을 수행할 수 있는 펌웨어 형태로 구성될 수 있다.
보다 구체적으로 개별 기기(3000)는 응용 프로세서(AP; Application Processor), 메모리, 스토리지, ROM, 사용자 인터페이스, 장치들을 포함한다. 예시적으로, 본 기기는 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북 (net-book), PDA, 포터블 (portable) 컴퓨터, 웹 태블릿 (web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰 (smart phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 컴퓨팅 시스템들 중 적어도 하나를 포함할 수 있다.
한편, 개별 기기(3000)는 기기 네트워클 구성하는 임의 단말의 내부 시스템 구성을 자율형 분산 증명 기법을 수행하는 제안 내용에 초점을 맞춰 기능 블록 관점에서 예시적으로 도시한 것이다.
본 발명의 실시예에 따른 개별 기기(3000)는 자율형 분산 증명 기법을 수행하기 위해 후술할 랜덤 데이터 생성기(3010), 검증 대리자 선정기(3020), 검증자 신뢰성 판정기(3030), 검증 데이터 레파지터리 (3040), 암호 키 분할 합성 (3050), 데이터 인코더 (3060), 메모리 순회기(3070), 체크섬 계산기(3080), 분산 검증 판정기(3090), 메모리 장치 (3100), 이웃 기기 탐색기(3110)를 포함한다.
본 구성은 상기 예시로 제시한 다양한 컴퓨팅 기기에 용이하게 추가, 병합되어 운용될 수 있으며, 해당 구성은 도3a에서 제시한 예시에 국한되지 않으며, 서비스 환경에 따라 기능 블록의 축소, 추가 및 확장이 용이하게 구현될 수 있다. 또한, 본 기기를 구성하는 내부 기능 블록은 소프트웨어 또는 하드웨어 형태의 모듈로 구현될 수 있는데, 구현 형태의 결정은 대상 서비스의 요구사항 및 사업자의 정책에 따라 결정될 수 있다. 또한, 본 기기를 구성하는 운영체제 또는 펌웨어는 특정 기술 사상에 국한되지 않으며 종래에 출시된 다양한 기술을 포용할 수 있다.
랜덤 데이터 생성기(3010)는 동의 정보, 암호 키, 비밀 정보, 넌스(nounce) 등의 임의 데이터를 직접 생성하거나 이들 데이터의 생성에 요구되는 시드(Seed) 값을 생성하는 기능을 수행하는 블록을 말한다. 따라서, 본 모듈은 후술할 암호 키 분할 합성기(3050), 데이터 인코더(3060)의 기능 수행에 필요한 시드 값을 생성하여 전달하는 역할을 한다.
검증 대리자 선정기(3020)는 개별 기기(3000)의 역할에 따라 하단과 같은 두 가지 형태의 동작을 수행한다.
먼저 개별 기기(3000)가 이웃 기기로서 증명 과정에 참여할 시, 검증 대리자 선정기(3020)는 1차 선정된 검증 대리자에게 해당 검증 대리자가 개별 기기로 사전에 배포한 챌린지 값을 전달하고, 이에 해당하는 정확한 응답을 요구하는 기능을 수행한다. 1차 선정된 검증 대리자로부터 관련 응답이 수신되면, 이를 후술할 검증 신뢰성 판정기(3030)로 전달하여 최종 판정을 요구한다.
한편 개별 기기(3000)가 1차 선정된 대리 검증자로서 증명 과정에 참여할 시, 본 모듈은 후술할 이웃 기기들로부터 챌린지 값을 수신 받는 기능을 수행한다. 챌린지 값을 수신하고, 이에 해당하는 정확한 응답 값을 계산하기 위해 후술할 메모리 순회기(3070)으로 챌린지 값을 전달한다.
검증자 신뢰성 판정기(3030)는 개별 기기(3000)가 이웃 기기 역할을 수행할 시에만 이용된다. 구체적으로 개별 기기(3000)가 이웃 기기로서 증명 과정에 참여할 시, 상기 검증 대리자 선정기(3020)로부터 판정 요구를 수신하면, 기 저장된 해당 응답 값과 1차 선정된 검증 대리자로부터 신규 수신한 응답 값을 비교하여, 검증 대리자 선정의 신뢰성에 동의할 것인지 여부를 결정한다. 즉, 두 값의 비교 값이 동일하다면, 검증자 신뢰성 판정기(3030)는 "동의" 결과를 그렇지 않을 경우 "이의" 결과를 후술할 원격 기기 관리 서버(140)로 전달한다.
검증 데이터 레파지터리(3040)는 후술할 원격 기기 관리 서버(140)으로부터 생성된 동의 정보를 배포 전에 후술할 데이터 수신 배포기(3110)으로부터 전달받아, 일시 저장하는 기능을 수행한다. 더불어, 개별 기기(3000)가 네트워크에 배치되기 전에 기기 내부적으로 생성한 비밀 정보와 관련된 데이터를 저장하는 기능을 담당한다. 검증 데이터 레파지터리(3040)에 저장된 동의 정보는 배포 후 즉시 삭제되어 데이터 유출에 따른 취약점을 방지할 수 있다. 또한, 비밀 정보는 분할 및 암호화 되어 배포 후 즉시 삭제되거나, 필요에 따라 단편화된 비밀 정보를 저장할 수 있는데, 단편화된 비밀 정보로부터 원본 비밀 정보 복구의 위험성은 도 8에서 후술할 암호 키 단편화 및 공유, 그리고 정보 인코딩 기법상의 특이점에 기인하여 차단될 수 있다.
한편, 검증 데이터 레파지터리(3040)는 통상의 암호화 등의 저장소 보호 기능을 통해 안전하게 저장 관리될 수 있다. 다른 한편으로, 검증 데이터 레파지터리(3040)는 후술할 데이터 인코더(3060)로부터 복수의 비밀 정보 프레그먼트를 전달 받아, 후술할 데이터 수신 배포기(3110)에 비밀 정보 프레그먼트의 이웃 기기로의 배포를 요청할 수 있다.
암호 키 분할 합성기(3050)는 키 분할 및 키 합성 기능을 수행한다.
암호 키 분할 합성기(3050)는 키 분할을 위해 비밀 정보의 안전한 배포, 저장 및 복구를 위해 사용되는 암호 키를 생성하여, 개별 기기(3000)에 의해 생성된 원본 비밀 정보를 암호화하고, 기 생성된 암호화 키의 노출을 방지하기 위해 키를 특정 개수의 서브 키들로 분할하는 기능을 수행한다. 분할된 서브키들은 비밀 정보 프레그먼트를 생성하기 위해 후술할 데이터 인코더 (3060)로 전달된다.
암호 키 분할 합성기(3050)는 키 합성을 위해 신뢰할 수 있는 개별 기기(3000)가 자신의 원본 비밀 정보를 복구하고자 할 시, 후술할 데이터 수신 배포기를 통해 수집되어 검증 데이터 레파지터리(3040)에 저장된 서브 키들을 합성하여 원본 암호 키를 복원하고, 복원된 암호 키를 이용하여 암호화된 비밀 정보를 복호화하는 기능을 더불어 수행한다.
상기 기술한 키 분할 및 키 합성은 통상의 Shamir 비밀분산(Secret Sharing)과 같은 기법에 의해 용이하게 설계 및 구현되어 시스템 상에 운용될 수 있다.
데이터 인코더(3060)는 정보 단편화 및 정보 복구의 기능을 수행한다. 데이터 인코더 (3060)는 정보 단편화를 위해 암호 키 분할 합성기(3050)에 의해 암호화된 원본 비밀 정보를 여러 조각의 심벌로 변환하여 단편화시키는 기능을 수행한다. 본 기능의 결과 복수의 데이터 세그먼트 (Data segment)가 획득된다. 또한 데이터 인코더 (3060)는 암호 키 분할 합성기(3050)에 의해 분할 서브 키들과 본 단계에서 생성된 데이터 세그먼트를 각각 쌍으로 조합하여 복수의 비밀 정보 프레그먼트를 생성하고 이를 상기 검증 데이터 레파지터리 (3040)에 전달한다.
데이터 인코더 (3060)는 특정 개수 이상의 데이터 세그먼트가 확보되면 암호화된 원본 비밀 정보를 복구할 수 있다.
상술한 정보 단편화 및 정보 복구 기법은 종래의 이레이저코딩(Erasure Coding) 등의 기법에 의해 용이하게 설계 및 구현되어 시스템 상에 운용될 수 있다.
메모리 순회기(3070)는 1차 선정된 검증 대리자 신뢰성 평가 및 검증 대상 기기(130)의 무결성 측정 시 메모리 스캔 및 데이터 추출 기능을 수행한다.
개별 기기(3000)가 검증 대리자로서 기능할 경우, 보다 구체적으로는 개별 기기(3000)가 검증 대리자로 1차 선정된 경우 이웃 기기들은 1차 선정된 검증 대리자의 신뢰성을 평가하기 위해 검증 대리자 선정기(3020)로 챌린지를 전송하는데, 이때 해당 챌린지에 대한 응답 값을 생성하기 위해 최초로 수행되는 것이 해당 챌린지가 생성될 시 참고 되었던 메모리 영역을 순회 (Traverse)하여 바이트(Bytes)를 추출하여 후술할 체크섬 계산기(3080)에 전달한다. 체크섬 계산기(3080)는 이와 같은 메모리 순회 기능을 수행한다.
개별 기기(3000)가 검증 대상 기기로서 기능할 경우, 검증 대리자가 자신의 실행환경 평가를 위해 발송한 챌린지에 대한 응답 값을 생성하기 위해 후술할 분산 검증 판정기(3090)가 해당 챌린지에 해당하는 메모리 영역 순회 요청을 수신하고, 바이트를 추출하여 후술할 체크섬 계산기(3080)에 전달한다.
체크섬 계산기(3080)는 1차 선정된 검증 대리자 신뢰성 평가 및 검증 대상 기기(130)의 무결성 측정 시 체크섬 계산 기능을 수행한다.
개별 기기(3000)가 검증 대리자로서 기능할 경우, 메모리 순회기(3070)로부터 수신한 메모리 데이터 및 관련 데이터를 이용하여 체크섬 값을 생성하고, 후술할 분산 검증 판정기(3090)로 해당 값을 전달한다. 이와 관련한 구체적인 예시는 도 9b에서 상술한다.
개별 기기(3000)가 검증 대상 기기로서 기능할 경우, 메모리 순회기(3070)로부터 수신한 메모리 데이터 및 관련 데이터를 이용하여 체크섬 값을 생성하고, 검증 대리자 선정기(3020)로 해당 값을 전달한다.
분산 검증 판정이기(3090)는 검증 대리자가 무결성 검증 판정을 내리는 경우와, 검증 대상 기기(130)가 자신의 임의 메모리 영역을 검증하는 경우에 기능한다. 개별 기기(3000)가 신뢰할 수 있는 검증 대리자로 최종 선정된 경우, 분산 검증 판정이기(3090)는 암호 키 및 합성기(3050) 및 데이터 인코더 (3060)로부터 획득한 원본 비밀 정보를 이용하여 챌린지 용도의 넌스 벡터를 생성하고, 넌스를 후술할 검증 대상 기기(130)으로 전달한다. 또한, 해당 넌스 값에 대한 올바른 응답 값을 생성하여 후술할 검증 대상 기기(130)로부터 수신한 챌린지 값과 비교 판정한다. 만약, 두 값이 동일할 경우 분산 검증 판정이기(3090)는 검증 대상 기기(130)의 실행환경 무결성이 "정상" 인 것으로 판정하고, 그렇지 않을 경우 "비정상" 으로 판정한 후, 본 결과를 후술할 원격 기기 관리 서버(140)로 보고하는 기능을 수행한다. 이와 관련한 구체적인 예시는 도 9a에서 상술한다.
개별 기기(3000)가 검증 대상 기기로 기능할 경우, 분산 검증 판정이기(3090)는 검증 대리자로부터 수신한 챌린지 값에 대한 응답 값을 생성하기 위해, 메모리 순회기(3070) 및 체크섬 계산기(3080)을 이용하고, 획득된 응답 값을 검증 대리자로 전달하는 기능을 수행한다.
메모리 장치(3100)는 프로그램 및 데이터를 저장하기 위한 목적의 하드웨어 메모리 칩을 의미한다. 메모리 장치(3100)는 통상적인 I/O 드라이버를 통해 소프트웨어 모듈의 접근 및 읽기/쓰기 동작을 허용한다. 또한, 본 장치의 하드웨어 구조는 종래의 다양한 기술 사항을 포용할 수 있으며, 예시적으로 폰 노이만 구조의 메모리 하드웨어와 하버드 구조의 메모리 하드웨어를 고려할 수 있다.
데이터 수신 배포기(3110)는 원격 기기 관리 서버(140)로부터 동의 정보를 수신하고, 검증 데이터 레파지터리(3040)로 동의 정보를 전달하며, 검증 데이터 레파지터리(3040)로부터 수신한 동의 정보 프레그먼트 및 비밀 정보 프레그먼트 후술할 복수의 이웃 기기로 배포하는 기능을 수행한다.
이웃 기기 탐색기(3120)는 개별 기기(3000)가 네트워크 최초 배치되었거나, 주변 기기 존재의 변경 여부를 탐지는 기능을 수행한다. 이웃 기기 탐색기(3120)의 수행 결과 개별 기기(3000)는 최신 이웃 기기 목록을 획득한다. 또한, 주변 기기들에 대한 탐색은 애드혹(Ad-hoc) 또는 트리(Tree) 방식에 의해서 수행될 수 있으며, 예시적으로 종래의 Gossiping 프로토콜을 활용하여 용이하게 달성될 수 있다.
검증자 선정 라운드 타이머(3130)는 특정 기기의 실행환경 무결성 검증 주기를 라운드 단위의 형식으로 개별 기기 내에서 관리하는 기능을 수행한다. 각 개별 기기(3000)는 각자의 라운드 타이머를 보유하고 있으며, 네트워크 배치 시 최초로 초기화 및 활성화 단계를 거친다. 이때, 라운드 값은 다른 이웃 기기들과 동기화를 통해 설정될 수 있다. 만약 특정 이벤트(예: 원격 기기 관리 서버의 검증 요청, 특정 개별 기기의 운영체제 업데이트 및 검증 요청 등)가 임의 라운드에 발생하면, 개별 기기들은 자신이 이번 라운드의 검증 대리자로서 기능할지 여부를 하단의 수식에 기술된 인자들을 이용하여 결정한다. 보다 구체적으로는 개별 기기의 임의 생성 수 θ가 선정 임계 값 T보다 크면, 해당 개별 기기는 검증 대리자로 1차 선정되고, 다른 이웃 기기들의 추가 선정을 막기 위해 "1차 검증 대리자 선정 완료" 메시지를 이웃 기기들로 배포한다. 본 메시지를 수신한 이웃 기기들은 검증 대리자 선정 절차를 중단한다. 따라서, 검증자 선정 라운드 타이머 (3130)는 검증 대리자 선정기(3020)가 이웃 기기로서 동작할지 또는 1차 선정된 검증 대리자로 동작할지 여부를 아래 수학식 1을 통해 결정한다.
Figure 112016040657632-pat00001
T: 선정 임계 값, CF(): 검증 대리자 결정 함수, r: 라운드 값, θ: 임의 생성 값
이때, 결정 함수는 서비스 제공자 및 관리자에 의해 기기가 배치되는 네트워크 환경의 특성을 반영하여 정의될 수 있으며, 특정 라운드 이내에 한번 이상 검증 대리자로 참여한 개별 기기를 현재 라운드의 검증 대리자로 선정되지 못하도록 용이하게 확장 설계 및 구현될 수 있다.
원격 기기 관리 서버(140)는 동의 정보 생성과 관련한 오프라인 프로세스 수행하고, 생성된 동의 정보를 개별 기기(3000)로 전달하며, 특정 기기의 실행환경 증명 시점을 필요 시 결정하고, 검증 대리자의 신뢰성 평가 결과에 따라 신뢰성 확증 티켓을 검증 대리자에 발급하며, 검증 대상 기기(130)의 신뢰성 평가 결과에 대한 보고를 수신하고, 수신된 결과에 따라 검증 대상 기기에 적절한 대응 절차를 취하는 개체 (Entity)를 의미한다.
네트워크 구성 기기(110)는 개별 기기(3000) 및 후술할 이웃 기기 집합 그리고 검증 대상 기기(130)로 이루어진 기기 집합을 의미하며, 기기간 또는 기기와 원격 기기 관리 서버(100)와의 데이터 통신은 기존의 다양한 유무선 네트워크 인터페이스를 통해 수행될 수 있다.
이웃 기기 1(111)는 상술한 개별 기기(3000)와 동일한 기능 블록들로 구성된 기기를 의미하며, 특히 개별 기기(3000)에 인접한 기기를 의미한다. 도 2에서는 Q개의 이웃 기기들이 개별 기기(3000)과 함께 기기 네트워크를 형성하고 있는 것으로 가정한다.
검증 대상 기기(130)는 상술한 개별 기기(3000)와 동일한 기능 블록들로 구성되어 있으며, 실행환경 무결성 검증의 대상이 되는 기기를 의미한다. 따라서, 검증 대리자의 증명 프로세스의 대상이 됨과 동시에 판정 결과에 따라 상기 원격 기기 관리 서버(140)에 의해 기기 네트워크로부터 격리될 수 있다.
이해의 편의를 돕기 위해 본 발명에서 플로우차트를 구성하는 각 블록은 개별 실행절차를 의미하며, 실행의 물리적, 논리적 주체는 각 블록의 실행절차를 상술할 때 명시한다. 본 사항은 도 3 내지 9에 모두 동일하게 적용된다
이하, 도 3을 참조하여 본 발명의 실시예에 따른 분산 검증 대리자 기반의 자율적인 기기 무결성 검증 방법을 설명하기로 한다.
먼저, 원격 기기 관리 서버(140)는 임의 개별 기기의 네트워크 배치에 앞서, 해당 기기의 동의정보(Agreement) 생성 작업을 수행한다. 이때 동의정보는 해당 기기가 추후 검증 대리자로 선정되었을 시, 본 기기의 신뢰성을 이웃 기기에게 확인 받는데 사용된다. 원격 기기 관리 서버(140)는 본 기기의 메모리 바이트 정보 및 레이아웃 정보를 이용하여 동의정보를 계산한다(S100). 이와 관련한 구체적인 처리 절차는 도 4에서 후술한다.
네트워크에 배치될 개별 기기(3000)는 이웃 기기(111)에 배포할 비밀정보 (Secret)를 생성한다(S200). 본 비밀정보는 개별 기기(3000)가 추후 검증 대리자로 1차 선정되고, 개별 기기(3000)의 신뢰성이 확정되었을 시, 검증 대상 기기(130)의 무결성 검증 과정에서 사용되는 챌린지 (Challenge) 용도의 넌스 (Nonce) 데이터 생성을 위해 이용된다. 본 비밀정보 생성을 위해 암호 키 생성, 암호 키 분할, 비밀 데이터 생성, 비밀 데이터 암호화, 비밀 데이터 인코딩의 절차가 수행된다. 이와 관련한 구체적인 처리 절차는 도 5에서 후술한다.
기기 운영체제 또는 펌웨어의 업데이트와 같이 중요 이벤트가 발생 시, 원격 기기 관리 서버(140) 또는 업데이트 대상 기기는 특정 라운드(Round)에 검증 대리자 선정 이벤트를 발생 시키고, 이에 따라 이웃 기기(111~111Q)들은 자신이 검증 대리자로 1차 선정될 수 있는 여부를 확인한다(S300). 이와 관련한 구체적인 처리 절차는 도 6에서 후술한다.
1차 검증 대리자로 선정된 특정 기기는 나머지 이웃 기기들로부터 신뢰성에 대한 동의를 얻어 최종 검증 대리자로 선정된다. 이웃 기기는 1차 선정된 검증 대리자의 신뢰성 여부에 대해 원격 기기 관리 서버(140)로 통보하고, 원격 기기 관리 서버(140)는 최종 판정을 내린다(S400). 본 단계에서는 단계 S100에서 생성하여 이웃 기기들로 배포된 동의정보를 이용한다. 이와 관련한 구체적인 처리 절차는 도 7에서 후술한다.
최종 검증 대리자로 선정된 특정 기기는 원격 기기 관리 서버(140)로부터 신뢰성에 대한 확증 티켓을 부여 받게 되고, 이를 근거로 이웃 기기들(111~111Q)로 분산 배포된 비밀정보를 수집한 뒤, 단계 S200 단계에서 비밀정보를 생성하는 절차와 반대 방법으로 원본 비밀정보를 복구한다(S500). 이와 관련한 구체적인 처리 절차는 도 8에서 후술한다.
검증 대리자는 복구된 원본 비밀정보를 시드(Seed)로 이용하여 챌린지 데이터를 생성하고, 이를 넌스의 형태로 검증 대상 기기에 전달하고, 검증 대상 기기(130)의 해당 챌린지에 대한 응답(Response)을 확인하여 본 기기의 실행 환경의 무결성을 검증한다(S600). 본 단계에서 실행 환경이란 예시적으로 메모리를 의미할 수 있다. 이와 관련한 구체적인 처리 절차는 도 9에서 후술한다.
검증 대리자는 단계 S600에서 검증 대상 기기를 대상으로 수행한 증명 과정의 최종 판정 결과를 원격 기기 관리 서버(140)로 보고한다. 원격 기기 관리 서버(140)는 판정 결과가 비정상일 경우, 검증 대상 기기를 네트워크로부터 격리시키는 등의 대응 기능을 수행한다(S700).
이하, 도 4A를 참조하여 도 2의 동의 정보 초기화 프로시저 실행 과정(S100)을 구체적으로 설명하기로 한다.
네트워크에 배치 예정인 개별 기기는 운영체제 (또는 펌웨어)를 설치한다(S101).
원격 기기 관리 서버(140)는 네트워크에 배치할 개별 기기의 메모리 레이아웃 정보 (예: 메모리 크기, 메모리 주소, TCB (Task Control Block) 배치 정보 등) 및 메모리에 로드된 운영체제 이미지 데이터를 추출하여 획득한다(S102). 본 단계에서 원격 기기 관리 서버 또는 본 서버의 운영자는 개별 기기의 하드웨어 규격 및 운영체제에 대한 정보를 알고 있는 것으로 가정하는 것이 현실적이다.
원격 기기 관리 서버(140)는 개별 기기로부터 추출한 메모리 레이아웃 정보 및 운영체제 이미지 데이터를 이용 하여 해당 기기의 메모리 순회를 위한 영역을 지정하기 위해 무작위 랜덤 넌스 벡터 (RNV; Random Nonce Vector)를 아래 수식과 같이 생성한다(S103). 본 랜덤 넌스 벡터는 아래 수학식 2와 같이 r개의 넌스 데이터로 구성되어 있는 것으로 가정한다.
Figure 112016040657632-pat00002
원격 기기 관리 서버(140)는 차례대로 RNV로부터 넌스 값을 추출하고, 이 값을 이용하여 메모리 순회를 위한 영역 지정에 사용될 메모리 오프셋 값을 생성한다(S104). 본 과정은 후술할 도 4b에 상세히 설명되어 있다.
원격 기기 관리 서버(140)는 획득한 메모리 오프셋 값을 이용하여 특정 메모리 영역을 순회하여 메모리 Bytes 값을 추출하고 이를 체크섬 계산기(420)에 제공한다(S105). 본 과정은 후술할 도 4b에 상세히 설명되어 있다.
원격 기기 관리 서버(140)의 체크섬 계산기(420)는 순회한 메모리 영역으로부터 추출한 바이트(Bytes) 값을 이용하여 유일무이한 체크섬 값을 생성한다(S106). 따라서, 원격 기기 관리 서버(140)는 해당 개별 기기에 대한 유일한 체크섬 벡터 (UCV; Unique Checksum Vector)를 아래 수학식 3과 같이 획득할 수 있다(S106). 본 유일한 체크섬 벡터는 r개의 체크섬 데이터로 구성되어 있는 것으로 가정한다.
Figure 112016040657632-pat00003
상기 단계 S105 및 단계 S106을 통해 형성된 RNV 및 UCV 값을 아래 수학식 4와 같이 쌍으로 형성하여 동의 정보 프레그먼트 (Agreement Fragment)를 생성한다(S107). 이때, UCV 값은 해시 함수 H(S)을 이용하여 해당 UCV의 다이제스트 (Digest) 값을 생성하여 이용한다. 하단과 같은 정보는 원격 기기 관리 서버(140)로부터 네트워크에 배치될 개별 기기로 이동 보관된다.
Figure 112016040657632-pat00004
도 4B는 도 4A의 동의 정보 프레그먼트 생성 구조도이다.
랜덤 넌스 li 는 RNV로부터 추출된 i번째 랜덤 넌스 값을 의미한다.
메모리 오프셋 생성기(410)는 RNV로부터 추출된 임의 랜덤 넌스 값을 이용하여 순회할 메모리 영역의 오프셋 값을 생성하는 기능을 수행한다.
체크섬 계산기(420)는 메모리 순회의 결과 획득되는 메모리 바이트 값을 입력 값으로 수신하고 해당 메모리 바이트 값에 대응되는 유일한 체크섬 값을 생성하는 기능을 수행한다. 참고로, 생성된 유일한 체크섬 값은 메모리 바이트를 위한 일종의 보안 식별자로서 기능할 수 있다.
체크섬값 μi는 i번째 랜덤 넌스 값으로부터 계산된 i번째 체크섬 값을 의미한다.
기기 메모리(430)는 개별 기기에서 데이터 및 프로그램을 저장하는 메모리 장치를 의미한다.
메모리 순회 영역(440)은 기기(430) 전체 영역 중, 상기 메모리 오프셋 생성기(410)에 의해 지정된 특정 메모리 영역을 지칭한다.
이하, 도 5를 참조하여 도 3의 비밀정보 초기화 프로시저 실행 과정(S200)을 구체적으로 나타내는 순서도이다.
네트워크에 배치될 개별 기기는 암호 키를 생성하고, 하단의 수학식 5와 같이 해당 암호 키를 n개의 서브 키로 분할한다(S201). 본 서브 키들은 t개 이상 확보되지 않는 이상 원본 암호 키(K)을 복구할 수 없는 암호화적 특징이 있어, 공격자의 키 복구 복잡도를 높일 수 있는 장점이 있다.
Figure 112016040657632-pat00005
개별 기기는 자신의 비밀 정보 (S; Secret)을 하단의 수학식 6과 같이 생성하고, 생성된 비밀 정보를 상기 S201에서 생성한 암호 키를 이용하여 암호화하여, 암호화된 비밀 정보 (M)을 획득한다(S202).
Figure 112016040657632-pat00006
개별 기기는 상기 S202 단계에서 생성된 원본 비밀 정보(S)를 해시 함수 H(S)을 이용하여 해시하고 다이제스트 값 H(S)을 획득하고, 원본 비밀 정보(S)를 삭제한다(S203).
개별 기기는 암호화된 비밀 정보 (M)을 데이터 인코더를 통해 n개의 개별 심벌들로 인코딩 (Encoding)한다(S204). 본 과정에서 인코딩된 심벌들의 개수는 분할된 암호 키와 다르게 설정될 수 있으나, 설명의 편의를 돕기 위해 아래 첫 번째 수식과 같이 서브 키의 총 개수와 동일한 n개의 심벌로 인코딩된다고 가정한다. 또한, 특정 개수 이상의 복수 심벌이 확보되지 않는 이상, 공격자가 암호화된 비밀 정보 (M) 값을 복구할 수 없는 특성이 있어, 공격자의 암호화된 비밀 정보 (M) 복구 복잡도를 높일 수 있는 장점이 있다. 결과적으로, 본 단계에서는 비밀 정보 프레그먼트를 아래 두 번째 수학식 7과 같이 생성하여 저장한다.
Figure 112016040657632-pat00007
전원이 인가되고, 정상적으로 운영체제가 동작하는 개별 기기가 네트워크에 환경에 배치된다(S205). 여기에서 배치란, 물리적으로 개별 기기가 특정 위치에 장착되는 것과 논리적으로 특정 기기 네트워크의 주소를 할당 받아 데이터 통신을 할 수 있게 됨을 의미한다.
배치된 개별 기기는 인접한 이웃 기기들을 탐색하고, 탐색된 이웃 기기들을 목록으로 저장한다(S206). 만약, 충분한 이웃 기기의 확보가 어려울 경우, 개별 기기는 원격 기기 관리 서버에게 인접한 이웃 기기들의 목록을 요청하여 수신할 수 있다.
개별 기기는 이웃 기기 목록을 이용하여, 이웃 기기로 동의 정보 프레그먼트를 전송한다(S207). 이때, 각 이웃 기기는 단 하나의 동의 정보 프레그먼트를 수신하여 보관할 수 있다. 또한, 어느 이웃 기기가 몇 번째의 동의 정보 프레그먼트를 수신하게 될지는 사전에 결정되지 않고, 전송 시점에 무작위로 발생하는 것으로 가정한다. 더불어, 동의 정보 프레그먼트는 로컬 개별 기기에 저장되지 않으며, 배포가 완료된 이후 모두 삭제된다.
개별 기기는 이웃 기기 목록을 이용하여, 비밀 정보 프레그먼트는 상기 단계 S207와 동일한 방법으로 배포한다(S208). 그러나, 단계 S207과 달리, 서비스 구성 시, 관리자의 판단에 따라 보안성을 저해하지 않는 수준에서 하나 이상의 비밀 정보 프레그먼트를 로컬 개별 기기 내에 저장할 수 있다.
이하 도 6을 참조하여 도 3의 자율형 분산 검증 대리자 선정 방법(S300)을 구체적으로 설명하기로 한다.
네트워크에 초기 배치되어, 동의 정보 프레그먼트 및 비밀 정보 프레그먼트를 이웃 기기로 모두 배포한 개별 기기는 검증자 선정을 위한 라운드 타이머를 초기화 및 활성화한다(S301). 보다 구체적으로는 라운드 타이머는 이웃 기기들 또는 원격 기기 관리 서버를 통해 동기화될 수 있다.
만약, 원격 기기 관리 서버 또는 이웃 기기로부터 실행환경 무결성 검증 요청 이벤트 메시지를 수신하면, 단계 S303으로 이동한다. 그렇지 않은 경우는 해당 검증 요청 이벤트 메시지를 수신할 때까지 수신 상태에 대기한다(S302).
개별 기기는 검증 대리자 결정 함수 CF()와 본 함수의 입력으로 라운드 값(r)을 이용하여 검증자 선정 기준 값(T)을 생성한다(S303).
개별 기기는 임의 랜덤 값 θ을 생성한다. 이때, θ은 T 값의 최소 및 최대 이내의 값으로 선정되어야 한다(S304).
T값과 θ 값을 비교한다. 만약, θ 값이 T 값 보다 작거나 같다면, 상기 단계 S301으로 돌아가 검증 요청 이벤트가 발생할 때까지 수신 상태로 대기한다(S305).
만약, θ 값이 T 값 보다 크다면 개별 기기는 검증 대리자로 선정되고, 이를 이웃 기기로 통보한다(S306).
이하, 도 7을 참조하여 도 3의 상호 동의 기반 검증 대리자 신뢰성 판정방법(S400)을 구체적으로 설명하기로 한다.
검증 대리자 1차 선정 메시지를 수신한 이웃 기기들은 검증 대리자의 신뢰성을 판별하기 위해 챌린지 데이터를 검증 대리자로 발송하고, 그에 대응하는 정확한 응답 값을 요구한다. 이때, 발송되는 챌린지 데이터는 검증 대리자로 1차 선정된 개별 기기가 네트워크 배치 시에, 이웃 기기들로 배포한 동의 정보 프레그먼트에 포함되어 있다(S401).
검증 대리자로 1차 선정된 개별 기기는 이웃 기기로부터 챌린지 데이터를 수신한다(S402).
검증 대리자로 1차 선정된 개별 기기는 수신한 챌린지 데이터를 이용하여 특정 메모리 영역의 지시하는 오프셋 값을 생성한다(S403).
검증 대리자로 1차 선정된 개별 기기는 메모리 오프셋 값이 지시하는 특정 메모리 영역을 순회하며, 메모리 Bytes 값을 추출한다(S404).
검증 대리자로 1차 선정된 개별 기기는 추출된 메모리 Bytes 값을 이용하여 체크섬 값을 계산한다(S405).
검증 대리자로 1차 선정된 개별 기기는 계산하여 획득한 체크섬 값을 대응하는 챌린지 값을 전송했던 이웃 기기에 응답 값으로 전달한다(S406).
이웃 기기는 해당 챌린지 값에 대응하는 응답 값을 수신하고, 기 저장되어 있는 응답 값과 비교한다(S407).
이웃 기기는 두 응답 값의 비교 결과를 원격 기기 관리 서버(140)로 전송한다(S408).
상기 단계 S401 내지 S408이 검증 대리자로 1차 선정된 개별 기기의 동의 정보 프레그먼트를 보유하고 있는 모든 이웃 기기들로부터 수행되었는지 확인한다. 만약 그렇다면 단계 S410을 실행하고, 그렇지 않다면 단계 S401으로 이동한다(S409).
원격 기기 관리 서버(140)는 과반수 이상의 이웃 기기로부터 1차 선정된 검증 대리자가 동의를 얻었는지 여부를 확인한다. 만약, 동의를 얻었다면 단계 S411으로 이동한다. 그렇지 않다면, 단계 S412으로 이동한다(S410).
원격 관리 서버는 1차 선정된 개별 기기를 최종 대리 검증자로 확약하기 위한 신뢰성 확정 티켓을 발급한다(S411).
검증 대리자로 1차 선정된 개별 기기는 최종 검증 대리자로 선정되지 못하며, 특정 라운드 동안 선정 대상에서 제외된다(S412).
검증 대리자 선정을 위해 상기 도 6의 단계 S302으로 이동한다(S413).
이하, 도 8을 참조하여 도 3의 상호 협력형 비밀정보 복구 방법(S500)을 구체적으로 설명하기로 한다.
최종 검증 대리자로 선정된 개별 기기는 이웃 기기로 신뢰성 확정 티켓을 전달하여 신뢰할 수 있는 검증 대리자임을 밝히고, 비밀 정보 프레그먼트 전달을 요청한다(S. 이때, 본 요청을 수신하는 기기는 상기 도 5에서 수행한 비밀정보 공유 초기화 프로시저 501)수행 시, 해당 비밀 정보 프레그먼트를 수신한 이웃 기기들로 한정할 수 있다.
최종 검증 대리자로 선정된 개별 기기는 이웃 기기들로부터 비밀 정보 프레그먼트를 수신한다(S502).
최종 검증 대리자로 선정된 개별 기기는 충분한 개수의 비밀 정보 프레그먼트를 수신하였는지 확인한다. 여기 충분한 개수란 암호화된 비밀 정보로 인코딩하기 위해 필요한 최소 데이터 세그먼트의 개수를 의미하며, 동시에 원본 암호 키를 복구하기 위한 최소 서브 키의 개수를 의미한다(S503). 만약, 충분한 비밀 정보 프레그먼트가 확보되었다면 단계 S505으로 이동하고, 그렇지 않다면, 단계 S504으로 이동한다.
최종 검증 대리자로 선정된 개별 기기는 충분한 비밀 정보 프레그먼트 개수를 수신하는데 실패하였다고 판단하고, 본 상태 정보를 원격 기기 관리 서버(140)로 보고한다(S504).
최종 검증 대리자로 선정된 개별 기기는 수신한 비밀 정보 프레그먼트로부터 데이터 세그먼트를 분리하고, 분리된 데이터 세그먼트를 인코딩하여 암호화된 비밀 정보 (M)을 복원한다(S505).
최종 검증 대리자로 선정된 개별 기기는 수신한 비밀 정보 프레그먼트로부터 서브 키들을 분리하고, 분리된 서브 키들로부터 암호 키를 복구한다(S506).
최종 검증 대리자로 선정된 개별 기기는 복원된 암호 키를 이용하여 암호화된 비밀 정보 (M)을 복호화함으로써, 원본 비밀 정보 (S)을 획득한다(S507).
최종 검증 대리자로 선정된 개별 기기는 획득한 원본 비밀 정보 값을 해시하고, 기 저장된 H(S) 값과 비교한다(S508).
상기 S508에서 수행된 비교의 결과가 같다면, 후술할 도 9a의 단계 S601으로 이동한다. 그렇지 않다면, 단계 S510으로 이동한다(S509).
최종 검증 대리자로 선정된 개별 기기는 비밀 정보 프레그먼트를 공유하고 있는 이웃 기기 중 하나 이상의 기기가 훼손되었음을 식별할 수 있게 된다 .최종 검증 대리자로 선정된 개별 기기는 비밀 정보 복구에 실패하였음을 원격 기기 관리 서버(140)로 보고한다(S510).
최종 검증 대리자가 원본 비밀 정보 복원에 실패하였다면, 상기 도 6의 단계 S302으로 이동하여 검증 대리자 선정 절차를 재 수행한다(S511).
이하, 도 9A를 참조하여 도 3의 검증 대상 기기(130)의 실행환경 무결성 검증 방법(S600)을 나타내는 순서도이다.
검증 대리자(120)는 원본 비밀 정보(S)을 최종 획득한다(S601).
검증 대리자(120)는 획득한 원본 비밀 정보를 시드(Seed)로 이용하여 임의 넌스 벡터 (RNV; Random Nonce Vector)를 생성한다(S602).
상기 RNV로부터 순서대로 넌스 값을 추출하여 검증 대상 기기로 전송한다(S603).
검증 대상 기기(130)는 수신한 넌스 값을 이용하여 메모리 순회를 위한 영역 결정을 수행하기 위해 메모리 오프셋 값을 생성한다(S604).
검증 대상 기기(130)는 메모리 오프셋 값을 참조하여 특정 메모리 영역을 순회하여 메모리 Bytes 값을 추출한다(S605).
추출한 메모리 바이트(Bytes) 값과 이전 체크섬 값을 이용하여 현재의 체크섬 값을 계산한다(S606).
검증 대상 기기(130)는 계산된 체크섬 값을 검증 대리자에게 전송한다(S607).
검증 대리자(120)는 검증 대상 기기(130)와 동일한 운영체제와 메모리 구조를 사용하고 있는 여부를 확인한다(S608). 만약, 실행환경이 동일하다면 단계 S616으로 이동한다. 그렇지 않다면, 단계 S609으로 이동한다.
즉, 실행 환경이 동일한 경우 단계 S616으로 이동하여 검증 대리자(120)는 특정 넌스 값에 해당하는 체크섬 값을 자신의 메모리 영역을 순회하여 계산한다(S616).
한편 실행환경이 동일하지 않은 경우, 단계 S609로 이동하여, 검증 대리자(120)는 검증 대상 기기(130)의 운영체제 이미지를 다운로드하여 저장할 정도의 여유 메모리 공간이 있는지 확인한다(S609).. 만약 여유 메모리 크기가 검증 대상 기기(130)의 운영체제 원본 이미지보다 큰 경우 단계 S610으로 이동한다. 그렇지 않다면, 단계 S614으로 이동한다
그 후 검증 대리자(120)는 검증 대상 기기(130)의 운영체제 원본 이미지가 이미 확보되었는지 점검한다(S610). 만약 이미 확보하고 있다면, 단계 S613으로 이동한다. 그렇지 않다면, 단계 S611으로 이동한다.
검증 대리자(120)는 해당 검증 이벤트가 발생한 라운드 값, 원본 비밀 정보 값, 신뢰성 확정 티켓, 검증 대상 기기 식별자 등의 정보를 원격 기기 관리 서버(140)로 전송한다(S611). 본 단계에서 검증 대리자(120)가 원격 기기 관리 서버(140)로 전송할 데이터의 종류는 서비스 목적에 따라 용이하게 축소 또는 확장될 수 있다.
검증 대리자(120)는 원격 기기 관리 서버(140)로부터 검증 대상 기기(130)의 운영체제 원본 이미지를 수신한다(S612).
검증 대리자(120)는 검증 기기와 동일한 방식(단계 S602 내지 단계 S606)으로 특정 넌스 값에 해당하는 체크섬 값을 계산한다(S613).
검증 대리자(120)는 라운드 값, 원본 비밀 정보 값, 신뢰성 확정 티켓, 수신한 특정 넌스 값, 검증 기기 식별자를 원격 기기 관리 서버(140)로 전송한다(S614).
원격 기기 관리 서버(140)는 특정 넌스 데이터에 해당하는 체크섬 값을 계산하여 검증 대리자에게 전송한다(S615).
상술한 단계 S616, S615, S613이 완료되면, 검증 대리자(120)는 검증 기기로부터 수신한 체크섬 값을 자신이 계산하였거나 또는 원격 기기 관리 수신한 체크섬 값과 비교한다(S617).
만약 비교 판정 결과 동일한 체크섬 값이라면 단계 S619으로 이동한다. 그렇지 않다면, 단계 S621으로 이동한다(S618).
상술한 단계 S618에서 동일한 체크섬값이 아닌 경우 검증 대리자(120)는 검증 대상 기기(130)의 실행 환경 무결성이 훼손된 것으로 판정한다(S621).
그 후 검증 대리자(120)는 무결성 훼손 판정 결과를 원격 기기 관리 서버(140)로 보고한다(S622).
원격 기기 관리 서버(140)는 검증 대상 기기를 기기 네트워크로부터 격리 조치한다(S623).
한편, 상기 단계 S618에서 동일한 체크섬 값인 경우, 검증 대리자(120)가 단계 S602에서 생성한 RNV에 해당하는 모든 체크섬 값을 이웃 기기로부터 수신하였는지 확인한다(S619). 만약, 모든 체크섬 값을 응답 값으로 수신하였다면 단계 S620으로 이동한다. 그렇지 않다면, 상기 단계 S603으로 이동하여, 남아있는 넌스 값을 검증 대상 기기로 전송하는 절차를 반복 수행한다.
단계 S619에서 모든 체크섬 값을 응답 값으로 수신하였다면 검증 대리자(120)는 검증 대상 기기(130)의 실행환경 무결성이 정상인 것으로 판정하고, 이를 원격 기기 관리 서버(140)로 보고한다(S620).
도 9B는 도 9A의 검증 대상 기기(130)에 대한 무결성 관련 체크썸 값 생성 예시도이다.
상기 도 9a의 단계 S601에서 획득한 검증 대리자의 비밀 정보 원본 값인 비밀정보 원본이 입력되면 검증 대리자(120)는 비밀 정보 원본 값을 시드(Seed)로 하여 상기 도 9a의 단계 S602에서 생성한 랜덤 넌스 벡터를 생성한다.
검증 대리자(120)는 랜덤 넌스 벡터로부터 i번째 넌스 값 li을 추출하여 메모리 오프셋 생성기(510)으로 전달한다.
메모리 오프셋 생성기(510)는 넌스 값을 입력 값으로 받아 특정 메모리 영역을 지정하는 오프셋 값으로 변환하는 기능을 수행한다.
체크섬 계산기(520)는 메모리 바이트(Bytes) 값 및 이전 체크섬 값을 입력 값으로 받아 특정 체크섬 값을 계산하는 기능을 수행한다. 체크섬 계산기(520)는 상기 도 4b에서 상술한 체크섬 계산기(4200)의 확장형이라고 고려할 수 있다.
체크섬 계산기(520)는 i번째 넌스에 대응하는 체크섬 값 μi을 출력한다.
메모리 순회 영역(540)은 상기 메모리 오프셋 생성기(510)으로부터 추출된 메모리 오프셋 값이 지정하는 메모리 영역을 의미한다.
기기 메모리(530)는 검증 대리자의 데이터 및 프로그램을 저장하는 메모리 장치 또는 원격 기기 관리 서버(140)로부터 수신한 검증 대상 기기(130)의 메모리 레이아웃 및 운영체제 이미지를 저장한 메모리 장치를 의미한다.
본 발명의 구성 및 실시 예는 상기 언급한 내용에 국한되지 않으며, 무선, 개인용 또는 모바일 디바이스를 대상으로 하는 통상의 응용 서비스 환경에 적합하게 확장 및 변형될 수 기술적 유연성을 제공한다.
이와 같이, 본 발명에서는 원격 기기 관리 서버(140)가 상호 동의 프로토콜에 관련된 동의 정보를 사전 생성하고, 무결성 검증이 필요한 임의 기기를 지정 및 공지하며, 1차 선정된 검증 대리자를, 최종 결정하여 티켓을 발급하는 기능을 수행하고, 개별 기기들은 검증 대리자 선정 절차 및 신뢰정 검증 절차에 참여하고, 검증 대리자로서 선택된 기기는 검증 대상 기기에 대한 증명 기능을 수행함으로써, 단일 개체에 의존한 무결성 검증의 의사 결정 구조를 분산시키는 구조적 장점을 제공한다.
또한, 본 발명에서는 대상 기기에 대한 증명 절차를 수행함에 있어, 신뢰적으로 선정된 검증 대리자를 활용함으로써, 원격 기기 관리 서버의 직접적인 개입을 최소화하는 기법을 제공한다.
또한, 본 발명에서는 상호 동의 프로토콜과 관련한 동의 정보를 우수한 계산 능력을 제공할 뿐만 아니라, 가장 신뢰적인 외부 개체인 원격 기기 관리 서버에 의존함으로써, 검증 대리자의 증명 절차 수행에 따른 성능 저하를 방지하는 장점이 있다.
또한 선정된 검증 대리자가 이웃 기기로부터 t개 이상의 비밀정보 프레그먼트를 수신하지 못한다면, 원본 비밀정보를 복구할 수 있어, 악의적인 목적을 가진 공격자가 최대 t - 1개의 비밀정보 프레그먼트를 획득하더라도 비밀정보를 복구할 수 없게 되는 보안상 장점이 있다. 또한, 검증 대리자가 이웃 기기로부터 t개 이상의 비밀정보 프레그먼트를 수신했음에도 불구하고, 원본 비밀정보 값과 다른 비밀정보를 복구했을 경우, 적어도 하나 이상의 이웃 기기가 악성 코드에 의해 훼손되었음을 확인할 수는 있는 효과가 있다.
또한, 본 발명에서는 특정 시점(Round)에 특정 기기가 검증 대리자로 선정되더라도, 신뢰성 확정 판정에 대한 동의를 이웃 기기로부터 얻지 못한다면, 해당 기기는 비밀정보를 복구할 수 있는 권한이 주어지지 않아, 결론적으로 증명 기능을 수행할 수 없다. 또한, 어떤 기기가 검증 대리자 역할을 수행할지 공격자가 추측하기 어려운 장점이 있다.
또한, 본 발명에서는 기기의 하드웨어 종류 및 운영체제에 무관하게 이 기종의 기기에 모두 적용 가능한 실행환경 (메모리) 무결성 검증 기법이라는 장점이 있다.
도 10은 본 발명의 실시예에 따른 자율적인 기기 무결성 검증을 위한 분산 대리자 기반 증명방법을 적용한 컴퓨터 시스템의 구성도이다.
도 10을 참조하면, 컴퓨팅 시스템(1000)은 버스(1200)를 통해 연결되는 적어도 하나의 프로세서(1100), 메모리(1300), 사용자 인터페이스 입력 장치(140), 사용자 인터페이스 출력 장치(1500), 스토리지(1600), 및 네트워크 인터페이스(1700)를 포함할 수 있다.
프로세서(1100)는 중앙 처리 장치(CPU) 또는 메모리(1300) 및/또는 스토리지(1600)에 저장된 명령어들에 대한 처리를 실행하는 반도체 장치일 수 있다. 메모리(1300) 및 스토리지(1600)는 다양한 종류의 휘발성 또는 불휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(1300)는 ROM(Read Only Memory) 및 RAM(Random Access Memory)을 포함할 수 있다.
따라서, 본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서(1100)에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM과 같은 저장 매체(즉, 메모리(1300) 및/또는 스토리지(1600))에 상주할 수도 있다.
예시적인 저장 매체는 프로세서(1100)에 커플링되며, 그 프로세서(1100)는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서(1100)와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다.
따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
111, 112, 113, 114, 115 : 이웃 기기
120 : 검증 대상 기기
130 : 검증 기기
140 : 원격 기기 관리 서버
410, 510 : 메모리 오프셋 생성기
420, 520 : 체크섬 계산기
430, 530 : 기기 메모리
440, 540 : 메모리 순회영역
3000 : 개별 기기
3110 : 데이터 수신 배포기
3010 : 랜덤 데이터 생성기
3020 : 검증 대리자 선정기
3030 : 검증자 신뢰성 판정기
3040 : 검증 데이터 레파지터리
3050 : 암호 키 분할 합성기
3060 : 데이터 인코더
3070 : 메모리 순회기
3080 : 체크섬 계산기
3090 : 분산 검증 판정이기
3100 : 메모리
3120 : 이웃 기기 탐색기
3130 : 검증자 선정 라운드 타이머

Claims (19)

  1. 네트워크 기반의 복수개의 개별 기기의 무결성을 검증하는 무결성 검증 시스템에 있어서,
    상기 복수개의 개별 기기 중 무결성 검증 대상인 제 1 개별기기;
    상기 복수개의 개별 기기 중 상기 검증 대상 기기를 검증 대리하기 위한 제 2 개별기기; 및
    상기 복수개의 개별 기기 중 검증 대리자로서 상기 제 2 개별 기기를 선정하고, 상기 제 2 개별 기기에 의한 상기 제 1 개별기기의 무결성 검증 결과를 보고 받는 원격 기기 관리 서버를 포함하고,
    상기 복수개의 개별 기기 각각은,
    비밀정보, 넌스, 암호키 중 적어도 하나 이상을 생성하는 랜덤 데이터 생성기;
    상기 원격기기 관리 서버로부터 수신한 동의정보, 상기 비밀정보, 상기 넌스, 상기 암호키를 저장하는 검증 데이터 레파지터리;
    검증 대리자 신뢰성 평가 및 검증 대상 기기의 무결성 측정 시 메모리 스캔 및 데이터 추출을 수행하는 메모리 순회기; 및
    상기 검증 대리자 신뢰성 평가, 상기 검증 대상 기기의 무결성 측정을 위한 체크섬을 계산하는 체크섬 계산기; 중 적어도 하나를 포함하는 분산 대리자 기반 개별 기기 무결성 검증 시스템.
  2. 청구항 1에 있어서,
    상기 복수개의 개별 기기 중 상기 제 1 개별기기 또는 상기 제 2 개별기기와 이웃하는 제 3 개별 기기
    를 더 포함하는 분산 대리자 기반 개별 기기 무결성 검증 시스템.
  3. 청구항 2에 있어서,
    상기 원격 기기 관리 서버는,
    상기 복수개의 개별 기기의 동의 정보를 생성하여 상기 복수개의 개별 기기로 상기 동의 정보를 배포하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 시스템.
  4. 청구항 3에 있어서,
    상기 원격 기기 관리 서버는,
    상기 제 2 개별 기기를 검증 대리자로 선정 시 상기 제 3 개별기기로부터 상기 제 2 개별 기기에 대한 동의 정보를 수신하여 상기 제 2 개별 기기의 검증대리자 선정을 확정하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 시스템.
  5. 청구항 4에 있어서,
    상기 복수개의 개별기기는
    비밀 정보를 생성하여 자신을 제외한 나머지 복수개의 개별기기로 상기 비밀 정보를 배포하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 시스템.
  6. 청구항 5에 있어서,
    상기 원격 기기 관리 서버에 의해 검증 대리자로 선정된 제 2 개별 기기는 자신을 제외한 나머지 복수개의 개별기기로부터 비밀정보를 수집하고, 수집한 비밀정보를 복구하여 상기 비밀정보를 기반으로 챌린지 데이터를 생성하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 시스템.
  7. 청구항 6에 있어서,
    상기 제 2 개별기기는,
    상기 챌린지 데이터를 넌스형태로 검증 대상 기기인 상기 제 1 개별기기로 전달하고, 상기 제 1 개별기기로부터 응답을 확인하여 상기 제 1 개별기기의 무결성을 검증하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 시스템.
  8. 삭제
  9. 청구항 1에 있어서,
    상기 복수개의 개별 기기 중 자신이 검증 대리자인 경우
    상기 비밀정보를 기반으로 챌린지 데이터를 생성하는 검증 대리자 선정기
    를 더 포함하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 시스템.
  10. 청구항 9에 있어서,
    상기 복수개의 개별 기기 중 자신이 제 3 개별기기로 동작하는 경우
    상기 제 2 개별기기의 신뢰성을 판정하는 검증자 신뢰성 판정기;
    를 더 포함하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 시스템.
  11. 청구항 10에 있어서,
    상기 복수개의 개별 기기 중 자신이 제 2 개별기기로 동작하는 경우
    상기 검증 대상 기기인 제 1 개별기기로부터 챌린지에 대한 응답을 받으면 상기 제 1 개별기기에 대한 무결성 검증을 수행하는 분산 검증 판정기;
    를 더 포함하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 시스템.
  12. 청구항 11에 있어서,
    상기 복수개의 기기 중 네트워크에 최초로 배치되는 기기를 탐색하는 이웃기기 탐색기
    를 더 포함하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 시스템.
  13. 원격 기기 관리서버와 연동하여 무결성 검증을 수행하는 개별 기기에 있어서,
    비밀정보, 넌스, 암호키 중 적어도 하나 이상을 생성하는 랜덤 데이터 생성기;
    상기 원격기기 관리 서버로부터 수신한 동의정보, 상기 비밀정보, 상기 넌스, 상기 암호키를 저장하는 검증 데이터 레파지터리;
    검증 대리자 신뢰성 평가 및 검증 대상 기기의 무결성 측정 시 메모리 스캔 및 데이터 추출을 수행하는 메모리 순회기; 및
    상기 검증 대리자 신뢰성 평가, 상기 검증 대상 기기의 무결성 측정을 위한 체크섬을 계산하는 체크섬 계산기;
    상기 원격기기 관리 서버에 의해 검증 대리자로 선정된 경우, 상기 비밀정보를 기반으로 무결성 검증을 위한 챌린지 데이터를 생성하는 검증 대리자 선정기;
    상기 검증 대리자로 선정된 기기에 대한 신뢰성을 판정하는 검증자 신뢰성 판정기; 및
    검증 대상 기기로 챌린지 데이터를 전달하고, 상기 검증 대상 기기로부터 챌린지에 대한 응답을 받으면 상기 검증 대상 기기에 대한 무결성 검증을 수행하는 분산 검증 판정기;
    를 더 포함하는 것을 특징으로 하는 분산 대리자 기반 무결성 검증을 수행하는 개별 기기.
  14. 네트워크 기반으로 연결된 복수개의 개별 기기와 원격 기기 관리서버의 연동에 의한 분산 대리자 기반 개별 기기 무결성 검증 방법에 있어서,
    복수개의 개별 기기 중 하나의 기기인 검증 대상 기기에 대한 무결성 검증을 요청받는 단계;
    상기 복수개의 개별 기기 중 상기 검증 대상 기기를 제외한 나머지 개별 기기 중 검증 대리자를 선정하는 단계; 및
    상기 검증 대리자로 선정된 개별 기기가 상기 검증 대상 기기의 무결성을 검증하는 단계를 포함하고,
    상기 검증 대리자를 선정하는 단계는,
    상기 검증 대리자 선정을 위한 검증 선정 기준값을 생성하여 미리 정한 임의의 랜덤값과 비교하는 단계; 및
    상기 검증 선정 기준값이 상기 랜덤값보다 작은 경우, 자신이 검증대리자로 선정 가능한 것으로 판단하고 상기 원격 기기 관리서버로 보고하는 단계;
    를 포함하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 방법.
  15. 청구항 14에 있어서,
    상기 원격 기기 관리 서버로부터 배포된 동의정보를 저장하는 단계; 및
    비밀정보를 생성하여 저장 및 공유하는 단계;
    를 더 포함하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 방법.
  16. 삭제
  17. 청구항 14에 있어서,
    상기 검증 대리자를 선정하는 단계는,
    상기 원격 기기 관리 서버로부터 상기 복수개의 개별 기기 중 상기 검증 대상 기기 또는 상기 검증 대리자와 이웃하는 기기들의 동의정보에 의한 최종 선정 결과를 수신하면, 자신을 검증 대리자로 최종 선정하는 단계;
    를 더 포함하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 방법.
  18. 청구항 17에 있어서,
    상기 검증 대상 기기의 무결성을 검증하는 단계는
    상기 검증 대리자로 선정된 개별 기기가 상기 이웃하는 기기로부터 비밀정보를 수집하는 단계;
    상기 비밀정보를 기반으로 챌린지 데이터를 생성하여 상기 검증 대상 기기로 전송하는 단계;
    상기 검증 대상 기기로부터 응답을 수신하는 단계; 및
    상기 응답을 기반으로 상기 검증 대상 기기의 무결성을 검증하는 단계
    를 포함하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 방법.
  19. 청구항 14에 있어서,
    상기 검증 대리자가 상기 검증 대상 기기의 무결성 검증 결과를 상기 원격 기기 관리 서버로 보고하는 단계
    를 더 포함하는 것을 특징으로 하는 분산 대리자 기반 개별 기기 무결성 검증 방법.

KR1020160051667A 2016-04-27 2016-04-27 분산 대리자 기반 무결성 검증을 수행하는 개별 기기, 그를 포함하는 개별 기기 무결성 검증 시스템 및 그 방법 KR102522778B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160051667A KR102522778B1 (ko) 2016-04-27 2016-04-27 분산 대리자 기반 무결성 검증을 수행하는 개별 기기, 그를 포함하는 개별 기기 무결성 검증 시스템 및 그 방법
US15/226,294 US10511488B2 (en) 2016-04-27 2016-08-02 Device, system and method for performing integrity verification based on distributed delegator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160051667A KR102522778B1 (ko) 2016-04-27 2016-04-27 분산 대리자 기반 무결성 검증을 수행하는 개별 기기, 그를 포함하는 개별 기기 무결성 검증 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20170122545A KR20170122545A (ko) 2017-11-06
KR102522778B1 true KR102522778B1 (ko) 2023-04-19

Family

ID=60158659

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160051667A KR102522778B1 (ko) 2016-04-27 2016-04-27 분산 대리자 기반 무결성 검증을 수행하는 개별 기기, 그를 포함하는 개별 기기 무결성 검증 시스템 및 그 방법

Country Status (2)

Country Link
US (1) US10511488B2 (ko)
KR (1) KR102522778B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11036843B2 (en) 2017-11-24 2021-06-15 Electronics And Telecommunications Research Institute Biometric information-based authentication method and apparatus
US20210037042A1 (en) * 2018-03-21 2021-02-04 Nokia Technologies Oy Remote attestation in network
KR102376254B1 (ko) 2019-03-21 2022-03-21 한국전자통신연구원 분산 식별자 관리 방법 및 장치
CN112787988B (zh) * 2019-11-11 2023-06-02 华为技术有限公司 远程证明方法、装置,系统及计算机存储介质
WO2022011009A1 (en) * 2020-07-08 2022-01-13 Intel Corporation Attestation verifier role delegation
KR20230005588A (ko) 2021-07-01 2023-01-10 한국전자통신연구원 대규모 환경에서 원격 검증을 위한 장치 및 방법
US11677552B2 (en) * 2021-09-09 2023-06-13 Coinbase Il Rd Ltd. Method for preventing misuse of a cryptographic key

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140250215A1 (en) * 2013-03-04 2014-09-04 Amazon Technologies, Inc. Configuration and verification by trusted provider
US20150319180A1 (en) * 2012-11-30 2015-11-05 Gemalto Sa Method, device and system for accessing a server

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973305B2 (en) 2003-09-10 2005-12-06 Qualcomm Inc Methods and apparatus for determining device integrity
KR100670005B1 (ko) * 2005-02-23 2007-01-19 삼성전자주식회사 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법
KR100618379B1 (ko) * 2005-02-23 2006-08-31 삼성전자주식회사 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치및 그 시스템 그리고 무결성 확인 방법
KR101229521B1 (ko) 2005-12-28 2013-02-05 삼성전자주식회사 디바이스 메모리의 무결성 확인 방법 및 장치
KR101607363B1 (ko) * 2009-03-05 2016-03-29 인터디지탈 패튼 홀딩스, 인크 H(e)NB 무결성 검증 및 확인을 위한 방법 및 장치
KR20150049571A (ko) 2013-10-30 2015-05-08 한국전자통신연구원 객체검증장치 및 그 무결성인증방법
KR102089513B1 (ko) 2014-03-19 2020-03-16 한국전자통신연구원 모바일 저장장치에 기반한 소프트웨어 검증 시스템 및 그 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150319180A1 (en) * 2012-11-30 2015-11-05 Gemalto Sa Method, device and system for accessing a server
US20140250215A1 (en) * 2013-03-04 2014-09-04 Amazon Technologies, Inc. Configuration and verification by trusted provider

Also Published As

Publication number Publication date
US10511488B2 (en) 2019-12-17
KR20170122545A (ko) 2017-11-06
US20170317889A1 (en) 2017-11-02

Similar Documents

Publication Publication Date Title
KR102522778B1 (ko) 분산 대리자 기반 무결성 검증을 수행하는 개별 기기, 그를 포함하는 개별 기기 무결성 검증 시스템 및 그 방법
US11777719B2 (en) Public key exchange with authenicated ECDHE and security against quantum computers
US11438176B2 (en) Mutually authenticated ECDHE key exchange for a device and a network using multiple PKI key pairs
US11153080B1 (en) Network securing device data using two post-quantum cryptography key encapsulation mechanisms
US11949798B2 (en) Secure configuration of a secondary platform bundle within a primary platform
US9485230B2 (en) Efficient key generator for distribution of sensitive material from multiple application service providers to a secure element such as a universal integrated circuit card (UICC)
JP6449970B2 (ja) IoTデバイス
US20220014389A1 (en) Secure Ids Certificate Verification for a Primary Platform
US20220209944A1 (en) Secure Server Digital Signature Generation For Post-Quantum Cryptography Key Encapsulations
EP3598333B1 (en) Electronic device update management
US20230361994A1 (en) System and Methods for Secure Communication Using Post-Quantum Cryptography
US20110081017A1 (en) Key migration device
CN112632573A (zh) 智能合约执行方法、装置、系统、存储介质及电子设备
US11231920B2 (en) Electronic device management
Salas A secure framework for OTA smart device ecosystems using ECC encryption and biometrics
TWI655550B (zh) 資料轉發系統
JP2019057827A (ja) 分散認証システムおよびプログラム
KR20150089696A (ko) 접근제어와 우선순위기반 무결성 검증 시스템 및 그 방법
Raniyal et al. An inter-device authentication scheme for smart homes using one-time-password over infrared channel
US11265159B1 (en) Determining upgradability scores and identifying remedial security measures in a computing environment
US11757663B1 (en) Blockchain-based monitoring of devices
US20220191010A1 (en) Key management in an integrated circuit
CN117453343A (zh) 虚拟机度量、机密计算认证方法、设备、系统及存储介质

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