KR100618379B1 - 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치및 그 시스템 그리고 무결성 확인 방법 - Google Patents

디바이스 메모리의 무결성을 원격으로 확인하는 확인장치및 그 시스템 그리고 무결성 확인 방법 Download PDF

Info

Publication number
KR100618379B1
KR100618379B1 KR1020050014888A KR20050014888A KR100618379B1 KR 100618379 B1 KR100618379 B1 KR 100618379B1 KR 1020050014888 A KR1020050014888 A KR 1020050014888A KR 20050014888 A KR20050014888 A KR 20050014888A KR 100618379 B1 KR100618379 B1 KR 100618379B1
Authority
KR
South Korea
Prior art keywords
check code
integrity
memory
remote
remote check
Prior art date
Application number
KR1020050014888A
Other languages
English (en)
Other versions
KR20060094174A (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 KR1020050014888A priority Critical patent/KR100618379B1/ko
Priority to US11/330,093 priority patent/US7444561B2/en
Publication of KR20060094174A publication Critical patent/KR20060094174A/ko
Application granted granted Critical
Publication of KR100618379B1 publication Critical patent/KR100618379B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

본 디바이스 메모리의 무결성을 원격으로 확인 장치는 네트워크로 연결된 디바이스의 무결성을 검사하는 확인장치에 있어서, 디바이스의 메모리 영역 중 빈영역을 기저장된 메모리 필링 맵을 기초로 랜덤수로 필링(filling)한 후, 메모리의 무결성 확인을 위한 메세지 인증 코드인 로컬 체크 코드를 생성하는 계산부, 디바이스에서 생성되는 메모리의 무결성 확인을 위한 메세지 인증 코드인 리모트 체크 코드 생성시 이용되는 무결성 체크 파라미터를 디바이스로 송신하며, 디바이스로부터 리모트 체크 코드를 수신하는 인터페이스부, 무결성 체크 파라미터 송신시간 및 리모트 체크 코드 수신시간을 측정하여 리모트 체크 코드 생성시간을 검출하며, 기저장된 리모트 체크 코드 생성 기대시간과 비교하는 판단부, 및 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과하지 않는 것으로 판단되며, 로컬 체크 코드와 리모트 체크 코드가 일치하는 경우 디바이스 메모리의 무결성을 확인하는 제어부를 포함한다.이에 대해, 메모리의 빈영역을 랜덤수로 필링한 후 메세지 인증 코드를 생성함으로써 바이러스와 같은 악성코드가 위치를 변경하여 공격하는 경우에도 무결성을 정확하게 검출할 수 있다.
체크 코드, 무결성, 해쉬함수, 역순, 필링

Description

디바이스 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법{Apparatus for verifying integrity of device memory remotely and system thereof and method for verifying integrity}
도 1은 일반적인 디바이스의 무결성 확인 방법을 설명하기 위한 도면,
도 2는 본 발명의 일실시예에 따른 디바이스 메모리의 무결성을 원격으로 확인하는 시스템의 블럭도,
도 3a 내지 도 3d는 본 발명의 일실시예에 디바이스 메모리의 무결성을 원격으로 확인하는 시스템에서 로컬 체크 코드의 생성하는 동작을 설명하기 위한 도면,
도 4a 및 도 4b는 도 2의 판단부의 동작을 설명하기 위한 도면, 그리도
도 5a 및 도 5b는 본 발명의 일실시예에 따른 디바이스 메모리의 무결성을 원격으로 확인하는 방법을 설명하기 위한 도면이다.
* 도면의 주요 부분에 대한 부호의 설명 *
100: 확인장치 110: 랜덤수 생성부
120: 저장부 130: 계산부
140: 인터페이스부 150: 타이머
160: 판단부 170: 제어부
200: 디바이스 210: 디바이스의 인터페이스부
220: 메모리 230: 생성부
240: CPU
본 발명은 확인장치(verifier)에서 디바이스(device)의 메모리의 빈영역을 랜덤수로 채운 후 생성된 체크 코드와, 디바이스에서 생성된 체크 코드의 일치성 여부 및 디바이스에서의 체크 코드 생성시간을 이용하여 디바이스 메모리의 무결성(integrity)을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법에 관한 것이다.
도 1은 일반적인 디바이스의 무결성 확인 방법을 설명하기 위한 도면이다.
도 1을 참조하면, 디바이스에 대한 사용자의 접근을 제어하기 위한 네트워크 호스트 또는 서비스 제공자(service provider)의 능력의 한계로 인해 텔레비젼 셋톱 박스, 이동전화, LAN 또는 WAN를 기초로 한 PC, 소형센서와 같은 원격 네트워크 기구는 해커들에 의해 변경되기 쉽다. 또한, 네트워크 호스트 또는 서비스 제공자는 물리적으로 원격장치를 조사하는 것이 용이하지 않으며, 인증을 받지 않은 사용자가 네트워크에 의해 제공되는 소프트웨어 어플리케이션에 접근하였는지 여부 와 같은 원격장치가 변경되었는지 여부를 결정하는 것은 어렵다. 따라서, 네트워크 환경에서 원격장치의 메모리의 무결성을 확인하기 위한 기술이 요구된다. 이때, 무결성(integrity)은 데이터 및 네트워크 보안에 있어서 정보가 인가된 사람에 의해서 만 접근 또는 변경이 가능하다는 확실성을 말한다.
종래의 디바이스의 메모리의 무결성을 확인하는 방법은 선택된 소프트웨어에 대한 다이제스트값(digest value), 원격장치의 메모리 영역에 대한 해쉬값(hash value) 등을 비교하여 원격장치의 무결성을 확인하는 방법들이 있다.
종래의 디바이스의 메모리 영역에 대한 해쉬값을 이용하여 무결성을 확인하는 방법은 미국공개특허 US 2002/0138544에 개시되어 있다. 디바이스의 메모리 영역에 대한 해쉬값을 이용하는 방법은 랜덤 시드(random seed)를 메모리 영역에 삽입하여 해쉬값을 생성한 후, 랜덤 시드, 해쉬함수, 및 검사하고자 하는 메모리 영역에 대한 정보를 디바이스에 전송한다. 그리고, 디바이스는 확인장치로부터 전송받은 정보들을 이용하여 검사하고자 하는 메모리 영역의 해쉬값을 생성한 후, 생성된 해쉬값을 확인장치로 전송한다. 이어, 확인장치에서 생성된 메모리 영역에 대한 해쉬값과 디바이스에서 생성된 메모리 영역에 대한 해쉬값을 비교함으로써 메모리 영역에 대한 무결성을 검사한다.
이러한, 디바이스의 메모리 영역에 대한 해쉬값을 이용하는 방법은 검사하고자 하는 메모리 영역에 대한 해쉬값을 이용하여 무결성을 확인함으로써, 바이러스와 같은 악성코드가 메모리의 위치를 변경하여 공격하는 경우에는 무결성 체크가 패스되도록 하여 확인장치가 디바이스의 무결성 확인을 정확하게 할 수 없는 문제점이 있다.
종래의 선택된 소프트웨어에 대한 다이제스트값을 이용하여 디바이스의 무결성을 확인하는 방법은 미국특허 US 6,748,538에 개시되어 있다. 선택된 소프트웨어 에 대한 다이제스트값을 이용하는 방법은 디바이스에 저장된 소트프웨어에 대한 다이제스트값을 서명하여 메모리에 저장한다. 그리고, 선택된 소프트웨어에 대해 별개의 해쉬 함수를 적용한 다이제스트값과 서명한 다이제스트값을 비교함으로써 소프트웨어의 무결성을 검사한다. 그러나, 이 방법은 디바이스내 저장된 소프트웨어에 대해서만 무결성을 확인할 수 있는 문제점이 있다.
미국특허 US 6,138,236은 PROM(Programmable Read Only Memory)에 저장된 코드가 부팅시 서명된 소프트웨어의 서명을 검사함으로써 소프트웨어의 무결성을 확인하는 방법을 개시하고 있다. 그러나, 이 방법은 부팅시에만 내부적으로 소프트웨어의 무결성을 검사할 수 있다. 즉, 외부에서 소프트웨어의 무결성을 검사하기 위해서는 별도의 안전 메카니즘이 요구되는 문제점이 있다. 또한, 공격자가 PROM 컨텐츠를 변경하여 유효한 체크 코드를 생성하여 무결성 검사를 정확하게 할 수 없는 문제점이 있다.
따라서, 악성코드의 메모리 위치 이동 공격에 대해 완벽하며, 장치 외부에서도 장치의 무결성을 확인할 수 있으며, 장치의 부팅시 뿐만 아니라 동작시(run-time)에도 장치의 무결성을 검사할 수 무결성 확인 방법이 요구된다.
따라서, 본 발명의 목적은 확인장치(verifier)에서 디바이스(device)의 메모리의 빈영역을 랜덤수로 채운 후 생성된 체크 코드와, 동일한 랜덤수를 이용하여 디바이스에서 생성된 체크 코드의 일치성 여부 및 디바이스에서의 체크 코드 생성시간을 이용하여 디바이스의 메모리의 무결성(integrity)을 원격으로 확인할 수 있 는 디바이스 메모리의 무결성(integrity) 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명에 따른 디바이스 메모리의 무결성을 원격으로 확인 장치는 네트워크로 연결된 디바이스의 무결성을 검사하는 확인장치에 있어서, 디바이스의 메모리 영역 중 빈영역을 기저장된 메모리 필링 맵을 기초로 랜덤수로 필링(filling)한 후, 메모리의 무결성 확인을 위한 메세지 인증 코드인 로컬 체크 코드를 생성하는 계산부, 디바이스에서 생성되는 메모리의 무결성 확인을 위한 메세지 인증 코드인 리모트 체크 코드 생성시 이용되는 무결성 체크 파라미터를 디바이스로 송신하며, 디바이스로부터 리모트 체크 코드를 수신하는 인터페이스부, 무결성 체크 파라미터 송신시간 및 리모트 체크 코드 수신시간을 측정하여 리모트 체크 코드 생성시간을 검출하며, 기저장된 리모트 체크 코드 생성 기대시간과 비교하는 판단부, 및 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과하지 않는 것으로 판단되며, 로컬 체크 코드와 리모트 체크 코드가 일치하는 경우 디바이스 메모리의 무결성을 확인하는 제어부를 포함한다.
바람직하게는 디바이스의 메모리의 컨텐츠, 랜덤수, 메모리 필링 맵, 그리고 리모트 체크 코드 생성 기대시간을 저장하는 저장부를 더 포함한다.
또한, 바람직하게는 메모리의 빈영역에 채워질 랜덤수를 랜덤함수를 이용하여 생성하는 랜덤수 생성부를 더 포함한다.
바람직하게는 계산부는, 메모리의 컨텐츠를 역순으로 읽으면서 메세지 인증 코드 생성함수를 적용하여 로컬 체크 코드를 생성한다.
바람직하게는 제어부는, 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과한 것으로 판단된 경우, 디바이스 메모리의 무결성 체크 실패인 것으로 판단한다.
이때, 리모트 체크 코드 생성 기대시간은 디바이스 메모리의 무결성이 인정될 경우에 리모트 체크 코드를 생성하는데 소요되는 시간이다.
바람직하게는 제어부는, 판단부가 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과하나 기저장된 문턱 지연시간을 초과하지 않는 것으로 판단한 경우, 로컬 체크 코드와 리모트 체크 코드를 비교하여 메모리의 무결성을 확인한다.
바람직하게는 디바이스는, 무결성 체크 파라미터를 전송받으며, 생성된 리모트 체크 코드를 상기 확인장치로 전송하는 디바이스의 인터페이스부, 로컬 체크 코드 생성시 이용되는 메세지 인증 코드 생성함수를 저장하는 CPU, 및 전송받은 무결성 체크 파라미터 및 메세지 인증 코드 생성함수를 이용하여 리모트 체크 코드를 생성하는 생성부를 포함한다.
여기서, 무결성 체크 파라미터는 랜덤수 및 랜덤수를 메모리의 빈영역에 필링시 이용되는 메모리 필링 맵 (memory filling map)을 포함한다.
바람직하게는 생성부는, 메모리 영역 중 빈영역을 메모리 필링 맵을 기초로 랜덤수로 필링(filling)한 후, 메모리의 컨텐츠에 역순으로 읽으면서 메세지 인증 코드 생성함수를 적용하여 리모트 체크 코드를 생성한다.
한편, 본 발명에 따른 디바이스 메모리의 무결성을 원격으로 확인하는 시스템은 디바이스, 디바이스와 네트워크로 통해 통신 가능하게 접속되어 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치를 구비하는 시스템에 있어서, 디바이스의 메모리 영역의 빈영역을 랜덤수로 필링(filling)한 후, 디바이스의 무결성을 확인하기 위한 메세지 인증 코드인 로컬 체크 코드를 생성하며, 디바이스에서 생성되는 디바이스의 무결성을 확인하기 위한 메세지 인증 코드인 리모트 체크 코드와 로컬 체크 코드의 일치 여부 및, 리모트 체크 코드 생성시간을 이용하여 디바이스의 무결성을 확인하는 확인장치, 및 로컬 체크 코드 생성시 이용되는 정보들을 전송받아 리모트 체크 코드를 생성하는 디바이스를 포함한다.
여기서, 확인장치는, 디바이스의 메모리 영역 중 빈영역을 기저장된 메모리 필링 맵을 기초로 랜덤수로 필링(filling)한 후, 메모리의 무결성 확인을 위한 메세지 인증 코드인 로컬 체크 코드를 생성하는 계산부, 디바이스에서 생성되는 상기 메모리의 무결성 확인을 위한 메세지 인증 코드인 리모트 체크 코드 생성시 이용되는 무결성 체크 파라미터를 상기 디바이스로 송신하며, 디바이스로부터 리모트 체크 코드를 수신하는 인터페이스부, 무결성 체크 파라미터 송신시간 및 리모트 체크 코드 수신시간을 측정하여 리모트 체크 코드 생성시간을 검출하며, 기저장된 리모트 체크 코드 생성 기대시간과 비교하는 판단부, 및 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과하지 않는 것으로 판단된 경우, 로컬 체크 코드와 리모트 체크 코드를 비교하여 로컬 체크 코드와 리모트 체크 코드가 일치하는 경우 디바이스 메모리의 무결성을 확인하는 제어부를 포함한다.
이때, 디바이스는, 로컬 체크 코드 생성시 이용되는 정보들을 전송받으며, 생성된 리모트 체크 코드를 확인장치로 전송하는 수신부, 로컬 체크 코드 생성시 이용되는 메세지 인증 코드 생성함수를 저장하는 CPU, 및 전송받은 로컬 체크 코드 생성시 이용되는 정보들 및 메세지 인증 코드 생성함수를 이용하여 리모트 체크 코드를 생성하는 생성부를 포함한다.
한편, 본 발명의 디바이스 메모리의 무결성을 원격으로 확인하는 방법은 네트워크로 연결된 디바이스의 무결성을 검사하는 확인장치를 이용하는 무결성 확인 방법에 있어서, 디바이스의 메모리 영역 중 빈영역을 기저장된 메모리 필링 맵을 기초로 랜덤수로 필링(filling)한 후, 메모리의 무결성 확인을 위한 메세지 인증 코드인 로컬 체크 코드를 생성하는 단계, 디바이스에서 생성되는 메모리의 무결성 확인을 위한 메세지 인증 코드인 리모트 체크 코드 생성시 이용되는 무결성 체크 파라미터를 디바이스로 송신하며, 디바이스로부터 리모트 체크 코드를 수신하는 단계, 무결성 체크 파라미터 송신시간 및 리모트 체크 코드 수신시간을 측정하여 리모트 체크 코드 생성시간을 검출하며, 기저장된 리모트 체크 코드 생성 기대시간과 비교하는 단계, 및 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과하지 않는 것으로 판단되며, 로컬 체크 코드와 리모트 체크 코드가 일치하는 경우 디바이스 메모리의 무결성을 확인하는 단계를 포함한다.
바람직하게는 디바이스의 메모리의 컨텐츠, 랜덤수, 메모리 필링 맵, 그리고 리모트 체크 코드 생성 기대시간을 저장하는 단계를 더 포함한다.
또한, 바람직하게는 메모리의 빈영역에 채워질 랜덤수를 랜덤함수를 이용하 여 생성하는 단계를 더 포함한다.
바람직하게는 로컬 체크 코드를 생성하는 단계는, 메모리의 컨텐츠를 역순으로 읽으면서 메세지 인증 코드 생성함수를 적용하여 로컬 체크 코드를 생성한다.
또한, 바람직하게는 무결성을 확인하는 단계는, 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과한 것으로 판단된 경우, 디바이스 메모리의 무결성 체크 실패인 것으로 판단한다.
이때, 리모트 체크 코드 생성 기대시간은 디바이스 메모리의 무결성이 인정될 경우에 리모트 체크 코드를 생성하는데 소요되는 시간이다.
바람직하게는 무결성을 확인하는 단계는, 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과하나 기저장된 문턱 지연시간을 초과하지 않는 것으로 판단한 경우, 로컬 체크 코드와 리모트 체크 코드를 비교하여 메모리의 무결성을 확인한다.
여기서, 디바이스는, 무결성 체크 파라미터를 전송받으며, 생성된 리모트 체크 코드를 확인장치로 전송하는 디바이스의 인터페이스부, 로컬 체크 코드 생성시 이용되는 메세지 인증 코드 생성함수를 저장하는 CPU, 및 전송받은 무결성 체크 파라미터 및 메세지 인증 코드 생성함수를 이용하여 리모트 체크 코드를 생성하는 생성부를 포함한다.
이때, 무결성 체크 파라미터는 랜덤수 및 랜덤수를 메모리의 빈영역에 필링시 이용되는 메모리 필링 맵 (memory filling map)을 포함한다.
한편, 본 발명의 디바이스, 디바이스와 네트워크로 통해 통신 가능하게 접속 되어 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치를 구비하는 시스템을 이용하는 무결성 확인 방법에 있어서, 확인장치는 디바이스의 메모리 영역 중 빈영역을 기저장된 메모리 필링 맵을 기초로 랜덤수로 필링(filling)한 후, 메모리의 무결성 확인을 위한 메세지 인증 코드인 로컬 체크 코드를 생성하는 단계, 확인장치는 디바이스에서 생성되는 메모리의 무결성 확인을 위한 메세지 인증 코드인 리모트 체크 코드 생성시 이용되는 무결성 체크 파라미터를 디바이스로 송신하며 송신시간을 측정하는 단계, 디바이스는 전송받은 무결성 체크 파라미터를 이용하여 리모트 체크 코드를 생성하며, 생성된 리모트 체크 코드를 확인장치로 전송하는 단계, 확인장치는 전송되는 리모트 체크 코드를 수신하며 수신시간을 측정하여 리모트 체크 코드 생성시간을 검출하며, 기저장된 리모트 체크 코드 생성 기대시간과 리모트 체크 생성시간을 비교하는 단계, 및 확인장치는 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과하지 않는 것으로 판단되며, 로컬 체크 코드와 리모트 체크 코드가 일치하는 경우, 디바이스 메모리의 무결성을 확인하는 단계를 포함한다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 디바이스 메모리의 무결성을 원격으로 확인하는 시스템의 블럭도이다
도 2를 참조하면, 본 발명에 따른 디바이스 메모리의 무결성을 원격으로 확인하는 시스템은 확인장치(verifier)(100) 및 디바이스(device)(200)를 포함한다.
확인장치(100)는 랜덤수 생성부(random number generator)(110), 저장부 (120), 계산부(130), 인터페이스부(140), 타이머(150), 판단부(160), 및 제어부(170)를 포함한다.
먼저, 랜덤수 생성부(110)는 기저장된 랜덤 함수를 이용하여 디바이스(200) 메모리의 빈영역에 채워 질 랜덤수 시퀀스를 생성한다.
저장부(120)는 랜덤수 생성부(110)에서 이용되는 랜덤 함수, 무결성을 검사하고자 하는 디바이스(200)의 메모리 컨텐츠(memory contents), 디바이스(200) 메모리의 빈영역에 랜덤수를 채워 넣는 방식에 대한 정보인 메모리 필링 맵(memory filling map), 디바이스(200)의 무결성을 확인하기 위한 메세지 인증 코드인 로컬 체크 코드(local check code) 생성시 이용되는 메세지 인증 코드(MAC:Message Authentication Code) 생성함수, 디바이스(200)에서 생성되는 리모트 체크 코드(remote check code)의 생성 기대시간, 그리고 디바이스(200) 메모리의 무결성이 인정되는 경우에 리모트 체크 코드 생성시 지연되는 시간인 문턱 지연시간을 저장한다.
이때, 저장부(120)는 확인장치(100)에서 무결성을 확인하고자는 디바이스(200) 메모리의 컨텐츠를 저장하고 있다. 그리고, 메모리 필링 맵은 메모리의 빈영역을 순차적으로 채워넣는 방식, 랜덤하게 채워넣는 방식 등 메모리의 빈영역을 랜덤수로 필링하는 다양한 방식이 될 수 있다. 또한, 디바이스(200)에서의 리모트 체크 코드 생성 기대시간은 디바이스(200) 메모리에 악성코드 등이 존재하지 않아 무결성이 확인될 수 있을 경우에 리모트 체크 코드를 생성하는데 소용되는 시간을 결정하며, 저장부(120)에 기저장된다.
계산부(130)는 메모리의 빈영역을 메모리 필링 맵에 따라 랜덤수로 필링한 후, 빈영역이 모두 채워진 메모리의 컨텐츠를 역순으로 읽으면서 저장부(120)에 저장된 메세지 인증 코드 생성함수를 이용하여 디바이스(200)의 무결성을 확인하기 위한 체크 코드인 로컬 체크 코드를 생성한다. 이때, 메세지 인증 코드는 데이터의 수정, 삭제, 삽입 등과 같은 데이터가 변조되었는지를 검증할 수 있도록 데이터에 덧붙이는 코드이며, 메세지 인증 코드 생성함수로는 해쉬함수(hash function) 등이 될 수 있다.
인터페이스부(140)는 디바이스(200)와 데이터를 송수신하기 위한 수단으로 디바이스(200)로부터 리모트 체크 코드를 수신받거나, 리모트 체크 코드 생성시 이용되는 무결성 체크 파라미터를 송신한다. 이때, 무결성 체크 파라미터는 랜덤수 생성부(110)에서 생성된 랜덤수 시퀀스와, 저장부(120)에 저장된 메모리 필링 맵을 말한다.
타이머(150)는 리모트 체크 코드를 생성하는데 이용되는 무결성 체크 파라미터를 디바이스(200)로 송신한 송신시간, 및 디바이스(200)에서 생성된 리모트 체크 코드를 확인장치(100)가 수신한 수신시간을 각각 측정한다. 수신시간과 송신시간간의 차를 계산함으로써 리모트 체크 코드 생성시간을 검출할 수 있다. 따라서, 디바이스(200)가 리모트 체크 코드의 생성 기대시간 내에 리모트 체크 코드를 생성되었는지 여부로 디바이스(200) 메모리의 무결성을 검사할 수 있다.
판단부(160)는 타이머(150)에서 측정된 리모트 체크 코드 생성시간과 저장부(120)에 저장된 리모트 체크 코드 생성 기대시간을 비교함으로써 디바이스(200) 메 모리의 무결성을 검사할 수 있게 된다. 측정된 리모트 체크 코드 생성시간이 저장된 리모트 체크 코드 생성 기대시간을 초과하지 않는 경우에는 리모트 체크 코드와 로컬 체크 코드의 일치성 여부를 비교하여 디바이스(200) 메모리의 무결성을 검사한다.
반면, 측정된 리모트 체크 코드 생성시간과 저장된 리모트 체크 코드 생성 기대시간을 초과하는 경우에는 측정된 리모트 체크 코드 생성시간과 확률적으로 리모트 체크 코드 생성시 지연되는 시간인 문턱 지연시간과 다시 비교한다. 측정된 리모트 체크 코드 생성시간이 문턱 지연시간을 초과하는 경우에는 디바이스(200) 메모리의 무결성을 인정할 수 없다. 이는 메모리에 바이러스, 멀웨어 등의 악성코드가 존재할 경우에는 메세지 인증 코드 생성함수를 이용하여 리모트 체크 코드의 생성시간을 증가시키기 때문이다.
제어부(170)는 확인장치(100)의 구성요소를 전반적으로 제어한다. 저장부(120)에 저장된 디바이스(200) 메모리의 무결성을 검사하기 위해 소정 디바이스(200) 메모리의 컨텐츠가 선택된 경우, 선택된 메모리의 컨텐츠를 갖는 디바이스(200)로 로컬 체크 코드 생성에 이용된 메모리 필링 맵과 랜덤수 시퀀스가 전송되도록 인터페이부(140)를 제어한다. 그리고, 인터페이스부(140)에서 무결성 체크 파라미터인 메모리 필링 맵과 랜덤수 시퀀스가 디바이스(200)로 전송될 때, 및 디바이스(200)로부터 리모트 체크 코드가 수신된 때 타이머(150)가 시간측정을 하도록 제어한다.
또한, 제어부(170)는 판단부(160)의 판단결과 디바이스(200)에서 생성된 리 모트 체크 코드가 리모트 체크 코드 생성 기대시간 및 문턱 지연시간 내에 도착한 경우, 계산부(130)에서 생성된 로컬 체크 코드와 수신한 리모트 체크 코드가 일치하는지 여부를 판단한다. 판단결과, 로컬 체크 코드와 리모트 체크 코드가 일치하는 경우에는 디바이스(200) 메모리의 무결성을 인정할 수 있으며, 일치하지 않는 경우에는 디바이스(200) 메모리의 무결성을 인정하지 않는다.
한편, 디바이스(200)는 디바이스의 인터페이스부(210), 메모리(220), 생성부(230), 및 CPU(Central Process Unit)(240)를 포함한다.
디바이스의 인터페이스부(210)는 확인장치(100)와 데이터를 송수신하기 위한 수단이다. 생성부(230)에서 생성된 리모트 체크 코드를 확인장치(100)의 인터페이스부(140)로 전송하며, 인터페이스부(140)로부터 리모트 체크 코드를 생성하는데 이용하는 무결성 체크 파라미터를 전송받는다.
메모리(220)는 확인장치(100)와 공통으로 저장하고 있는 소프트웨어, 디바이스(200)가 네트워크 호스트로부터 전송받은 소프트웨어, 확인장치(100)가 알고 있는 소프트웨어 등을 저장하고 있으며, 메모리 영역 중 데이터를 저장하고 있지 않은 빈영역을 갖고 있다.
생성부(230)는 확인장치(100)로 전송받은 메모리 필링 맵과 랜덤수 시퀀스를 이용하여 리모트 체크 코드를 생성한다. 즉, 확인장치(100)의 계산부(130)의 동작과 같이 전송받은 메모리 필링 맵에 따라 메모리 영역 중 빈영역에 랜덤수를 채워넣는다. 빈영역이 존재하지 않는 메모리의 컨텐츠와 로컬 체크 코드 생성시 이용된 메세지 인증 코드 생성함수를 이용하여 리모트 체크 코드를 생성한다.
CPU(240)는 디바이스(200) 구성요소의 전반적인 동작을 제어한다. 그리고, 생성부(230)에서 리모트 체크 코드 생성시 이용하는 메세지 인증 코드 생성함수를 저장하고 있다.
도 3a 내지 도 3d는 본 발명의 일실시예에 디바이스 메모리의 무결성을 원격으로 확인하는 시스템에서 로컬 체크 코드의 생성하는 동작을 설명하기 위한 도면이다. 도 3a는 랜덤수 생성부(110)에서 생성된 랜덤수 시퀀스(random numbuer sequence)를 나타낸 도면이며, 도 3b는 무결성을 검사하고자 하는 디바이스(200) 메모리의 컨텐츠를 나타낸 도면이다. 그리고, 도 3c는 랜덤수 시퀀스를 이용하여 디바이스(200) 메모리의 빈공간이 채워진 것을 나타낸 도면이며, 도 3d는 계산부(130)에 의해 로컬 체크 코드가 생성되는 동작을 설명하기 위한 도면이다.
도 3a를 참조하면, 랜덤수 생성부(110)는 랜덤 함수를 이용하여 랜덤수 시퀀스를 생성한다.
도 3b를 참조하면, 무결성을 검사하고자 하는 디바이스(200) 메모리의 컨텐츠에서 A영역은 소프트웨어와 같은 내용물이 메모리(220)에 저장되어 있는 영역을 나타내며, B영역은 메모리(220)의 빈영역을 나타낸다.
도 3c를 참조하면, 확인장치(100)로부터 전송받은 무결성 체크 파라미터 중 메모리 필링 맵을 이용하여 소정 방식으로 도 3a에 도시한 바와 같은 랜덤수 시퀀스를 메모리 영역의 빈공간에 채워 넣는다. 도 3c의 경우는 순차적으로 메모리 영역에 랜덤수를 채워 넣는 메모리 필링 맵에 의해 메모리의 빈공간을 채운 것을 나타낸 것이다.
도 3d를 참조하면, 빈공간이 랜덤수로 필링된 메모리의 데이터는 역방향으로 읽혀지면서 해쉬함수와 같은 메세지 인증 코드에 의해 로컬 체크 코드가 생성된다. 이때, 디바이스(200)에 랜덤수가 모두 필링된 후에 로컬 체크 코드를 생성되도록 하기 위해 메모리에 저장된 데이터가 역방향으로 읽혀지면서 로컬 체크 코드가 생성됨으로써 보안성을 높일 수 있게 된다.
도 4a 및 도 4b는 도 2의 판단부(160)의 동작을 설명하기 위한 도면이다. 도 4a는 리모트 체크 코드가 지연되지 않고 디바이스(200)에서 확인장치(100)로 수신되는 경우를 설명하기 위한 도면이며, 도 4b는 리모트 체크 코드가 지연되어 디바이스(200)에서 확인장치(100)로 수신되는 경우를 설명하기 위한 도면이다.
여기서, T0는 확인장치(100)에서 디바이스(200)로 무결성 체크 파라미터가 송신되는 시간이며, T1은 리모트 체크 코드가 리모트 체크 코드 생성 기대시간 내에 디바이스(200)에서 확인장치(100)로 수신되는 시간이다. 그리고, T2는 리모트 체크 코드가 기대시간 후 1비트 교환시간 내에 확인장치(100)에 수신되는 시간, T3는 리모트 체크 코드가 1비트 교환시간 후에 확인장치(100)에 수신되는 시간, T4는 리모트 체크 코드가 지연시간 내에 확인장치(100)에 수신되는 시간을 나타낸다.
도 4a를 참조하면, 확인장치(100)의 판단부(160)는 디바이스(200)에서 생성된 리모트 체크 코드가 기대시간 내의 시간(T1)에 수신되며, 리모트 체크 코드와 로컬 체크 코드가 일치하는 경우, 디바이스 메모리의 무결성 체크를 패스로 판단한다. 즉, 디바이스(200) 메모리에 바이러스(virus), 멀웨어(malware) 등이 존재하지 않는 것으로 무결성을 확인한다.
그리고, 리모트 체크 코드가 기대시간 내의 시간(T1)에 수신되지 않으나, 기대시간 후 1비트 교환시간(T2) 내에 리모트 체크 코드가 수신되는 경우에도 판단부(160)는 디바이스(200) 메모리의 무결성 체크를 패스로 판단한다. 반면, 리모트 체크 코드가 기대시간 후 1비트 교환시간 후에 수신되는 경우에는 판단부(160)는 디바이스(200) 메모리의 무결성 체크 실패로 판단한다. 이는 디바이스(200)에 악성코드 또는 오류가 존재할 경우에는 리모트 체크 코드 생성 시간이 디바이스(200)에 악성코드 또는 오류가 존재하지 않는 경우에 비해 길기 때문이다.
도 4b를 참조하면, 리모트 체크 코드가 기대시간 후 1비트 교환시간 후 소정 지연시간에 수신될 경우에는 판단부(160)는 디바이스(100) 메모리의 무결성 확인을 패스로 판단한다. 이때, 소정 지연시간은 지연 문턱값으로 이 지연시간 내에 리모트 체크 코드가 수신될 경우에는 확률적으로 디바이스(200) 메모리의 무결성을 확인할 수 있는 시간에 해당한다.
도 5a 및 도 5b는 본 발명의 일실시예에 따른 디바이스 메모리(220)의 무결성을 원격으로 확인하는 방법을 설명하기 위한 도면이다. 도 5a는 본 발명에 따른 디바이스 메모리의 무결성을 원격으로 확인하는 방법을 설명하기 위한 흐름도이며, 도 5b는 확인장치(100) 및 디바이스(200)에서의 무결성 확인 동작을 상세하게 설명하기 위한 도면이다.
도 5a 및 도 5b를 참조하면, 무결성을 확인하고자 하는 디바이스(200)와 네트워크로 연결된 확인장치(100)에서 디바이스(200)의 메모리의 빈영역을 랜덤 데이터로 필링한다(S901). 무결성을 확인하고자 하는 디바이스(200)의 메모리의 컨텐츠 는 확인장치에 기저장되어 있다. 그리고, 메모리 영역 중 빈영역은 기저장된 메모리 필링 맵에 따라 랜덤수로 채운다. 이때, 메모리 필링 맵은 랜덤수로 메모리의 빈영역을 채우는 방식에 관한 정보이며, 랜덤수는 랜덤함수 등을 이용하여 생성될 수 있다.
이어, 랜덤수로 필링된 메모리 컨텐츠 및 기저장된 메세지 인증 코드 생성함수를 이용하여 확인장치(100)에서 생성되는 메세지 인증 코드인 로컬 체크 코드를 생성한다(S903). 메모리 컨텐츠에 메세지 인증 코드 생성함수를 역순으로 적용하여 로컬 체크 코드를 생성한다. 이때, 메세지 인증 코드 생성함수는 해쉬함수가 될 수 있다.
이어, 무결성 체크 파라미터를 디바이스(200)에 송신하며, 송신시간을 측정한다(S905). 이때, 무결성 체크 파라미터는 메모리 필링 맵 및 메모리의 빈영역을 필링한 랜덤수이다. 이는 디바이스(200)에서 생성되는 메세지 인증 코드인 리모트 체크 코드 생성시 이용하기 위함이다. 로컬 체크 코드 생성시 이용된 정보를 리모트 체크 코드 생성시에도 적용한 후, 생성된 로컬 체크 코드와 리모트 체크 코드의 동일 여부에 따라 디바이스(200)의 무결성을 확인할 수 있기 때문이다.
또한, 디바이스(200)의 무결성을 확인하기 위해서는 로컬 체크 코드와 리모트 체크 코드가 일치할 뿐만 아니라, 소정 시간내에 리모트 체크 코드가 생성되어야 하므로, 리모트 체크 코드 생성시간을 검출하기 위해 무결성 체크 파라미터의 송신시간을 측정한다.
이어, 디바이스(200)로부터 리모트 체크 코드를 수신하며, 수신시간을 측정 한다(S907). 디바이스(200)는 확인장치(100)로부터 전송받은 무결성 체크 파라미터인 랜덤수 및 메모리 필링 맵과 기저장된 메세지 인증 코드 생성함수를 이용하여 리모트 체크 코드를 생성한 후, 생성된 리모트 체크 코드를 확인장치(100)로 전송한다. 이때, 디바이스(200)의 리모트 체크 코드의 생성 동작은 확인장치(100)에서의 로컬 체크 코드의 생성 동작과 동일하다.
즉, 메모리의 빈영역을 전송받은 랜덤수로 메모리 필링 맵에 따라 필링한 후, 로컬 체크 코드 생성시 이용된 메세지 인증 코드 생성함수와 동일한 메세지 인증 코드 생성함수를 메모리 컨텐츠에 적용하여 리모트 체크 코드를 생성한다. 생성된 리모트 체크 코드는 확인장치(100)로 전송되며, 전송되는 리모트 체크 코드가 확인장치(100)에 수신된 시간을 측정한다.
따라서, 무결성 체크 파라미터가 송신된 시간과 무결성 체크 파라미터를 이용하여 생성된 리모트 체크 코드가 확인장치(100)에 수신되는 시간을 각각 측정함으로써, 리모트 체크 코드가 디바이스(200)에서 생성되는 시간을 검출할 수 있다. 즉, 리모트 체크 코드 수신시간과 무결성 체크 파라미터 송신시간간의 차를 계산함으로써 리모트 체크 코드 생성시간을 검출할 수 있다.
이어, 리모트 체크 코드 생성시간과 기저장된 리모트 체크 코드 생성 기대시간을 비교한다(S911).
리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과하는 경우에는 지연된 리모트 체크 코드 생성시간과 문턱 지연시간을 비교한다(S913). 이는 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과하더라 도 디바이스(200)의 무결성을 인정할 수 있을 정도로 지연되었는지 여부를 판단하기 위함이다. 이때, 문턱 지연시간은 기설정된다.
리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과하나, 지연된 리모트 체크 코드 생성시간이 문턱 지연시간을 초과하지 않는 것으로 판단된 경우에는 로컬 체크 코드와 리모트 체크 코드의 일치 여부를 판단한다(S915). 또한, S911단계에서 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과하지 않는 경우에도 로컬 체크 코드와 리모트 체크 코드의 일치 여부를 판단한다.
이어, 확인장치(100)에서 생성된 로컬 체크 코드와 디바이스(200)에서 생성된 리모트 체크 코드의 일치하는 경우에는 디바이스(200)의 무결성 체크 패스로 판단한다(S917). 즉, 로컬 체크 코드와 로컬 체크 코드시 사용된 랜덤수, 메모리 필링 맵 및 동일한 메세지 인증 코드 생성함수를 이용하여 생성된 리모트 체크 코드가 일치하며, 리모트 체크 코드가 디바이스(200)의 무결성을 인정할 수 있는 기대시간내에 생성된 경우에는 디바이스(200)의 메모리에는 악성코드가 존재하는 것으로 판단할 수 있다.
반면, S913 단계에서 지연된 리모트 체크 코드 생성시간이 문턱 지연시간을 초과하는 경우, 또는 S915 단계에서 지연된 리모트 체크 코드 생성시간이 문턱 지연시간을 초과하지는 않으나 로컬 체크와 리모트 체크 코드가 일치하지 않는 경우에는 디바이스(200)의 무결성 체크 실패로 판단한다(S919).
즉, 리모트 체크 코드 생성시간이 디바이스(200)의 무결성을 인정할 수 없을 정도로 지연되는 경우에는 로컬 체크 코드와 리모트 체크 코드의 일치를 비교할 필요없이 디바이스(200)의 무결성 체크 실패로 판단한다. 그리고, 지연된 리모트 체크 코드 생성시간이 문턱 지연시간을 초과하지는 않으나 로컬 체크 코드와 리모트 체크 코드가 일치하지 않는 경우, 로컬 체크 코드 생성에 이용된 동일한 랜덤수, 메모리 필링 맵, 및 메세지 인증 코드를 이용하여 리모트 체크 코드를 생성하였음에도 불구하고 로컬 체크 코드와 리모트 체크 코드가 일치하지 않으므로 디바이스(200) 메모리 영역에 악성코드가 존재하는 것으로 판단할 수 있다.
이상 설명한 바와 같이, 본 발명에 따르면 디바이스 메모리의 빈영역을 랜덤수로 필링한 후 메세지 인증 코드를 생성함으로써 바이러스와 같은 악성코드가 위치를 변경하여 공격하는 경우에도 무결성을 정확하게 검출할 수 있다.
또한, 디바이스의 특정 정보에 많이 의존하는 것이 아니라 디바이스에서 생성되는 메세지 인증 코드 생성시간을 이용하여 디바이스의 무결성 확인함으로써, 무결성 확인을 위해 독립적인 하드웨어가 요구되지 않는다.
그리고, 디바이스의 부팅시에서만 디바이스의 무결성을 확인할 수 있는 것이 아니라, 다비이스 구동시간에도 원격으로 디바이스의 무결성을 확인할 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (23)

  1. 네트워크로 연결된 디바이스의 무결성을 검사하는 확인장치에 있어서,
    상기 디바이스의 메모리 영역 중 빈영역을 기저장된 메모리 필링 맵을 기초로 랜덤수로 필링(filling)한 후, 상기 메모리의 무결성 확인을 위한 메세지 인증 코드인 로컬 체크 코드를 생성하는 계산부;
    상기 디바이스에서 생성되는 상기 메모리의 무결성 확인을 위한 메세지 인증 코드인 리모트 체크 코드 생성시 이용되는 무결성 체크 파라미터를 상기 디바이스로 송신하며, 상기 디바이스로부터 상기 리모트 체크 코드를 수신하는 인터페이스부;
    상기 무결성 체크 파라미터 송신시간 및 상기 리모트 체크 코드 수신시간을 측정하여 상기 리모트 체크 코드 생성시간을 검출하며, 기저장된 리모트 체크 코드 생성 기대시간과 비교하는 판단부; 및
    상기 리모트 체크 코드 생성시간이 상기 리모트 체크 코드 생성 기대시간을 초과하지 않는 것으로 판단되며, 상기 로컬 체크 코드와 상기 리모트 체크 코드가 일치하는 경우 상기 디바이스 메모리의 무결성을 확인하는 제어부;를 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치.
  2. 제1항에 있어서,
    상기 디바이스의 메모리의 컨텐츠, 상기 랜덤수, 상기 메모리 필링 맵, 그리 고 상기 리모트 체크 코드 생성 기대시간을 저장하는 저장부;를 더 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치.
  3. 제1항에 있어서,
    상기 메모리의 빈영역에 채워질 랜덤수를 랜덤함수를 이용하여 생성하는 랜덤수 생성부;를 더 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치.
  4. 제1항에 있어서,
    상기 계산부는, 상기 메모리의 컨텐츠를 역순으로 읽으면서 메세지 인증 코드 생성함수를 적용하여 상기 로컬 체크 코드를 생성하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치.
  5. 제1항에 있어서,
    상기 제어부는, 상기 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과한 것으로 판단된 경우, 상기 디바이스 메모리의 무결성 체크 실패인 것으로 판단하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치.
  6. 제1항에 있어서,
    상기 리모트 체크 코드 생성 기대시간은 상기 디바이스 메모리의 무결성이 인정될 경우에 상기 리모트 체크 코드를 생성하는데 소요되는 시간인 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치.
  7. 제1항에 있어서,
    상기 제어부는, 상기 판단부가 상기 리모트 체크 코드 생성시간이 상기 리모트 체크 코드 생성 기대시간을 초과하나 기저장된 문턱 지연시간을 초과하지 않는 것으로 판단한 경우, 상기 로컬 체크 코드와 상기 리모트 체크 코드를 비교하여 상기 메모리의 무결성을 확인하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치.
  8. 제1항에 있어서,
    상기 디바이스는,
    상기 무결성 체크 파라미터를 전송받으며, 상기 생성된 리모트 체크 코드를 상기 확인장치로 전송하는 디바이스의 인터페이스부;
    상기 로컬 체크 코드 생성시 이용되는 메세지 인증 코드 생성함수를 저장하는 CPU; 및
    상기 전송받은 무결성 체크 파라미터 및 상기 메세지 인증 코드 생성함수를 이용하여 상기 리모트 체크 코드를 생성하는 생성부;를 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치.
  9. 제8항에 있어서,
    상기 무결성 체크 파라미터는 상기 랜덤수 및 상기 랜덤수를 상기 메모리의 빈영역에 필링시 이용되는 메모리 필링 맵 (memory filling map)을 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치.
  10. 제9항에 있어서,
    상기 생성부는, 상기 메모리 영역 중 빈영역을 상기 메모리 필링 맵을 기초로 상기 랜덤수로 필링(filling)한 후, 상기 메모리의 컨텐츠에 역순으로 읽으면서 상기 메세지 인증 코드 생성함수를 적용하여 상기 리모트 체크 코드를 생성하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치.
  11. 디바이스, 상기 디바이스와 네트워크로 통해 통신 가능하게 접속되어 상기 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치를 구비하는 시스템에 있어서,
    상기 디바이스의 메모리 영역의 빈영역을 랜덤수로 필링(filling)한 후, 상기 디바이스의 무결성을 확인하기 위한 메세지 인증 코드인 로컬 체크 코드를 생성하며, 상기 디바이스에서 생성되는 상기 디바이스의 무결성을 확인하기 위한 메세지 인증 코드인 리모트 체크 코드와 상기 로컬 체크 코드의 일치 여부 및, 상기 리모트 체크 코드 생성시간을 이용하여 상기 디바이스의 무결성을 확인하는 확인장 치; 및
    상기 로컬 체크 코드 생성시 이용되는 정보들을 전송받아 상기 리모트 체크 코드를 생성하는 디바이스;를 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 시스템.
  12. 제11항에 있어서,
    상기 확인장치는,
    상기 디바이스의 메모리 영역 중 빈영역을 기저장된 메모리 필링 맵을 기초로 랜덤수로 필링(filling)한 후, 상기 메모리의 무결성 확인을 위한 메세지 인증 코드인 로컬 체크 코드를 생성하는 계산부;
    상기 디바이스에서 생성되는 상기 메모리의 무결성 확인을 위한 메세지 인증 코드인 리모트 체크 코드 생성시 이용되는 무결성 체크 파라미터를 상기 디바이스로 송신하며, 상기 디바이스로부터 상기 리모트 체크 코드를 수신하는 인터페이스부;
    상기 무결성 체크 파라미터 송신시간 및 상기 리모트 체크 코드 수신시간을 측정하여 상기 리모트 체크 코드 생성시간을 검출하며, 기저장된 리모트 체크 코드 생성 기대시간과 비교하는 판단부; 및
    상기 리모트 체크 코드 생성시간이 상기 리모트 체크 코드 생성 기대시간을 초과하지 않는 것으로 판단된 경우, 상기 로컬 체크 코드와 상기 리모트 체크 코드를 비교하여 상기 로컬 체크 코드와 상기 리모트 체크 코드가 일치하는 경우 상기 디바이스 메모리의 무결성을 확인하는 제어부;를 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 시스템.
  13. 제11항에 있어서,
    상기 디바이스는,
    상기 로컬 체크 코드 생성시 이용되는 정보들을 전송받으며, 상기 생성된 리모트 체크 코드를 상기 확인장치로 전송하는 수신부;
    상기 로컬 체크 코드 생성시 이용되는 메세지 인증 코드 생성함수를 저장하는 CPU; 및
    상기 전송받은 로컬 체크 코드 생성시 이용되는 정보들 및 상기 메세지 인증 코드 생성함수를 이용하여 상기 리모트 체크 코드를 생성하는 생성부;를 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 시스템.
  14. 네트워크로 연결된 디바이스의 무결성을 검사하는 확인장치를 이용하는 무결성 확인 방법에 있어서,
    상기 디바이스의 메모리 영역 중 빈영역을 기저장된 메모리 필링 맵을 기초로 랜덤수로 필링(filling)한 후, 상기 메모리의 무결성 확인을 위한 메세지 인증 코드인 로컬 체크 코드를 생성하는 단계;
    상기 디바이스에서 생성되는 상기 메모리의 무결성 확인을 위한 메세지 인증 코드인 리모트 체크 코드 생성시 이용되는 무결성 체크 파라미터를 상기 디바이스 로 송신하며, 상기 디바이스로부터 상기 리모트 체크 코드를 수신하는 단계;
    상기 무결성 체크 파라미터 송신시간 및 상기 리모트 체크 코드 수신시간을 측정하여 상기 리모트 체크 코드 생성시간을 검출하며, 기저장된 리모트 체크 코드 생성 기대시간과 비교하는 단계; 및
    상기 리모트 체크 코드 생성시간이 상기 리모트 체크 코드 생성 기대시간을 초과하지 않는 것으로 판단되며, 상기 로컬 체크 코드와 상기 리모트 체크 코드가 일치하는 경우 상기 디바이스 메모리의 무결성을 확인하는 단계;를 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 방법.
  15. 제14항에 있어서,
    상기 디바이스의 메모리의 컨텐츠, 상기 랜덤수, 상기 메모리 필링 맵, 그리고 상기 리모트 체크 코드 생성 기대시간을 저장하는 단계;를 더 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 방법.
  16. 제14항에 있어서,
    상기 메모리의 빈영역에 채워질 랜덤수를 랜덤함수를 이용하여 생성하는 단계;를 더 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 방법.
  17. 제14항에 있어서,
    상기 로컬 체크 코드를 생성하는 단계는, 상기 메모리의 컨텐츠를 역순으로 읽으면서 메세지 인증 코드 생성함수를 적용하여 상기 로컬 체크 코드를 생성하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 방법.
  18. 제14항에 있어서,
    상기 무결성을 확인하는 단계는, 상기 리모트 체크 코드 생성시간이 리모트 체크 코드 생성 기대시간을 초과한 것으로 판단된 경우, 상기 디바이스 메모리의 무결성 체크 실패인 것으로 판단하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 방법.
  19. 제14항에 있어서,
    상기 리모트 체크 코드 생성 기대시간은 상기 디바이스 메모리의 무결성이 인정될 경우에 상기 리모트 체크 코드를 생성하는데 소요되는 시간인 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 방법.
  20. 제14항에 있어서,
    상기 무결성을 확인하는 단계는, 상기 리모트 체크 코드 생성시간이 상기 리모트 체크 코드 생성 기대시간을 초과하나 기저장된 문턱 지연시간을 초과하지 않는 것으로 판단한 경우, 상기 로컬 체크 코드와 상기 리모트 체크 코드를 비교하여 상기 메모리의 무결성을 확인하는 것을 특징으로 하는 디바이스 메모리의 무결 성을 원격으로 확인하는 방법.
  21. 제14항에 있어서,
    상기 디바이스는,
    상기 무결성 체크 파라미터를 전송받으며, 상기 생성된 리모트 체크 코드를 상기 확인장치로 전송하는 디바이스의 인터페이스부;
    상기 로컬 체크 코드 생성시 이용되는 메세지 인증 코드 생성함수를 저장하는 CPU; 및
    상기 전송받은 무결성 체크 파라미터 및 상기 메세지 인증 코드 생성함수를 이용하여 상기 리모트 체크 코드를 생성하는 생성부;를 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 방법.
  22. 제14항에 있어서,
    상기 무결성 체크 파라미터는 상기 랜덤수 및 상기 랜덤수를 상기 메모리의 빈영역에 필링시 이용되는 메모리 필링 맵 (memory filling map)을 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 방법.
  23. 디바이스, 상기 디바이스와 네트워크로 통해 통신 가능하게 접속되어 상기 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치를 구비하는 시스템을 이용하는 무결성 확인 방법에 있어서,
    상기 확인장치는 상기 디바이스의 메모리 영역 중 빈영역을 기저장된 메모리 필링 맵을 기초로 랜덤수로 필링(filling)한 후, 상기 메모리의 무결성 확인을 위한 메세지 인증 코드인 로컬 체크 코드를 생성하는 단계;
    상기 확인장치는 상기 디바이스에서 생성되는 상기 메모리의 무결성 확인을 위한 메세지 인증 코드인 리모트 체크 코드 생성시 이용되는 무결성 체크 파라미터를 상기 디바이스로 송신하며 송신시간을 측정하는 단계;
    상기 디바이스는 상기 전송받은 무결성 체크 파라미터를 이용하여 상기 리모트 체크 코드를 생성하며, 상기 생성된 리모트 체크 코드를 상기 확인장치로 전송하는 단계;
    상기 확인장치는 상기 전송되는 리모트 체크 코드를 수신하며 수신시간을 측정하여 상기 리모트 체크 코드 생성시간을 검출하며, 기저장된 리모트 체크 코드 생성 기대시간과 상기 리모트 체크 생성시간을 비교하는 단계; 및
    상기 확인장치는 상기 리모트 체크 코드 생성시간이 상기 리모트 체크 코드 생성 기대시간을 초과하지 않는 것으로 판단되며, 상기 로컬 체크 코드와 상기 리모트 체크 코드가 일치하는 경우, 상기 디바이스 메모리의 무결성을 확인하는 단계;를 포함하는 것을 특징으로 하는 디바이스 메모리의 무결성을 원격으로 확인하는 방법.
KR1020050014888A 2005-02-23 2005-02-23 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치및 그 시스템 그리고 무결성 확인 방법 KR100618379B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020050014888A KR100618379B1 (ko) 2005-02-23 2005-02-23 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치및 그 시스템 그리고 무결성 확인 방법
US11/330,093 US7444561B2 (en) 2005-02-23 2006-01-12 Verifier for remotely verifying integrity of memory and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050014888A KR100618379B1 (ko) 2005-02-23 2005-02-23 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치및 그 시스템 그리고 무결성 확인 방법

Publications (2)

Publication Number Publication Date
KR20060094174A KR20060094174A (ko) 2006-08-29
KR100618379B1 true KR100618379B1 (ko) 2006-08-31

Family

ID=36914266

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050014888A KR100618379B1 (ko) 2005-02-23 2005-02-23 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치및 그 시스템 그리고 무결성 확인 방법

Country Status (2)

Country Link
US (1) US7444561B2 (ko)
KR (1) KR100618379B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7792978B2 (en) * 2001-12-28 2010-09-07 At&T Intellectual Property I, L.P. System and method to remotely manage and audit set top box resources
KR101229521B1 (ko) * 2005-12-28 2013-02-05 삼성전자주식회사 디바이스 메모리의 무결성 확인 방법 및 장치
US8327192B2 (en) * 2006-02-06 2012-12-04 Intel Corporation Method for memory integrity
KR20090043823A (ko) * 2007-10-30 2009-05-07 삼성전자주식회사 외부 공격을 감지할 수 있는 메모리 시스템
KR100951397B1 (ko) * 2007-11-05 2010-04-08 인하대학교 산학협력단 무선 센서 네트워크에서의 메모리 공간 삭제를 이용한 선행코드-검증 방법
DE102012217743B4 (de) * 2012-09-28 2018-10-31 Siemens Ag Überprüfung einer Integrität von Eigenschaftsdaten eines Gerätes durch ein Prüfgerät
FR3016099B1 (fr) * 2013-12-26 2017-05-05 Grdf Procede de reception utilisant un codage de controle d'integrite
KR102522778B1 (ko) * 2016-04-27 2023-04-19 한국전자통신연구원 분산 대리자 기반 무결성 검증을 수행하는 개별 기기, 그를 포함하는 개별 기기 무결성 검증 시스템 및 그 방법
US10641226B1 (en) * 2018-07-27 2020-05-05 Wheeler Machinery Co. Remote generator controller system and devices
CN110502380B (zh) * 2019-08-16 2022-11-22 兆讯恒达科技股份有限公司 一种哈希算法协处理器自检的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL64675A0 (en) * 1981-12-30 1982-03-31 Greenberg Avigdor Data verification system
US6480970B1 (en) * 2000-05-17 2002-11-12 Lsi Logic Corporation Method of verifying data consistency between local and remote mirrored data storage systems
KR100670005B1 (ko) * 2005-02-23 2007-01-19 삼성전자주식회사 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법
US7546492B2 (en) * 2005-12-22 2009-06-09 Sony Corporation Remotely repairing files by hierarchical and segmented cyclic redundancy checks
KR101229521B1 (ko) * 2005-12-28 2013-02-05 삼성전자주식회사 디바이스 메모리의 무결성 확인 방법 및 장치

Also Published As

Publication number Publication date
US7444561B2 (en) 2008-10-28
KR20060094174A (ko) 2006-08-29
US20060190798A1 (en) 2006-08-24

Similar Documents

Publication Publication Date Title
KR100618379B1 (ko) 디바이스 메모리의 무결성을 원격으로 확인하는 확인장치및 그 시스템 그리고 무결성 확인 방법
KR100670005B1 (ko) 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법
US9674216B2 (en) Testing integrity of property data of a device using a testing device
KR100917601B1 (ko) 인증 재전송 공격 방지 방법 및 인증 시스템
KR101229521B1 (ko) 디바이스 메모리의 무결성 확인 방법 및 장치
TW201732669A (zh) 受控的安全碼鑑認
TWI531925B (zh) 資料驗證方法及其裝置
US9298955B2 (en) Proximity assurance for short-range communication channels
US20160359866A1 (en) Methods and apparatus to control communications of endpoints in an industrial enterprise system based on integrity
JP6712538B2 (ja) 改竄検知システム
CN103269271A (zh) 一种备份电子签名令牌中私钥的方法和***
US20180337923A1 (en) Authentication method and authentication system
CN114674066B (zh) 运行验证方法、装置、空调器以及存储介质
CN103281188A (zh) 一种备份电子签名令牌中私钥的方法和***
JP6610060B2 (ja) 中継装置、プログラム及び情報処理システム
CN103248490A (zh) 一种备份电子签名令牌中信息的方法和***
US10425233B2 (en) Method for automatically verifying a target computer file with respect to a reference computer file
CN112363776A (zh) 一种终端控制方法、装置及终端
WO2013161371A1 (ja) プログラム提供装置、システム、プログラム提供方法およびプログラム
CN105162767B (zh) 基于指纹的认证方法及***
CN109347816B (zh) 一种用于端口与接入设备的绑定方法及***
CN117744063A (zh) 基于可信外接的打印方法及***
US20210336773A1 (en) Method for verifying the authentic origin of electronic modules of a modular field device in automation technology
JP6338540B2 (ja) 認証システム、認証結果利用サーバ及び認証方法
CN113868606A (zh) 一种应用软件授权方法及***

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120716

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130724

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140721

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150716

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160718

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180717

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20190717

Year of fee payment: 14