KR20160103652A - 펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치 - Google Patents

펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치 Download PDF

Info

Publication number
KR20160103652A
KR20160103652A KR1020150026231A KR20150026231A KR20160103652A KR 20160103652 A KR20160103652 A KR 20160103652A KR 1020150026231 A KR1020150026231 A KR 1020150026231A KR 20150026231 A KR20150026231 A KR 20150026231A KR 20160103652 A KR20160103652 A KR 20160103652A
Authority
KR
South Korea
Prior art keywords
firmware
watermark
secret key
generated
original watermark
Prior art date
Application number
KR1020150026231A
Other languages
English (en)
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 KR1020150026231A priority Critical patent/KR20160103652A/ko
Priority to US15/050,133 priority patent/US20160248591A1/en
Publication of KR20160103652A publication Critical patent/KR20160103652A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • 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/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/608Watermarking

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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

임베디드 디바이스 제조 당시에 비휘발성 메모리에 펌웨어 원본에 대한 워터마크를 삽입함으로써 법적으로 대응할 수 있는 근거를 제공할 수 있는 펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치를 제시한다. 제시된 방법은 펌웨어 워터마킹 방법을 실시하기 위한 장치에서의 펌웨어 워터마킹 방법으로서, 펌웨어에 대한 원본 워터마크를 생성하는 단계, 및 생성된 원본 워터마크를 펌웨어에 삽입시키는 단계를 포함한다.

Description

펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치{Firmware watermarking method and firmware based thereon, and firmware watermarking apparatus}
본 발명은 펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치에 관한 것으로, 보다 상세하게는 IoT 및 임베디드 디바이스(Embedded Devices)에 대한 펌웨어(Firmware) 위/변조에 대해서 제조 당시에 원본 펌웨어에 대한 워터마크(Watermark)를 삽입함으로써 법적으로 대응할 수 있는 근거를 제공할 수 있는 펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치에 관한 것이다.
펌웨어(firmware)는 임베디드 디바이스 등의 하드웨어 장치를 동작시키는 핵심 소프트웨어로서, 도 1에서와 같이 비휘발성 메모리(Non Volatile Memory; NVM)(100)에 위치한다.
펌웨어(10)는 Magic Signature, Bootcode Address, Integrity Check Value, Checksum(CRC-32) 등을 포함하는 부트로더(bootloader)(또는 bootstrap) 영역, Manufacture, Device ID, Firmware Version 등의 제조 정보(Manufacturing Information)를 포함하는 펌웨어 메타데이터(Firmware Metadata) 영역, 및 Bootcode, Kernel 등의 정보를 포함하는 펌웨어 코어(Firmware Core) 영역을 포함한다.
기존의 임베디드 디바이스 뿐만 아니라 최근의 사물인터넷(IoT : Internet of Things) 분야에서 펌웨어 보안에 대한 요구사항이 많아지고 있다.
하지만, 기존의 펌웨어 보안 방법으로는 펌웨어 변조 공격(Firmware Modification Attacks)과 관련하여 대응하기 어렵다.
펌웨어(10)에 대한 암호화를 하여도 키 관리 문제 때문에 언젠가는 공격을 당할 수 있으므로, 펌웨어 변조 공격에 자유로울 수 없다.
본 발명과 관련되는 선행기술로는, 대한민국 공개특허 제2007-0017455호(프로세서 내에서의 보호된 리소스들로의 억세스에 대한 안전한 보호 방법), 대한민국 공개특허 제2011-0066707호(워터마크를 이용한 키 분배 및 변경 방법), 대한민국 공개특허 제2014-0070203호(임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법)가 있다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 임베디드 디바이스 제조 당시에 비휘발성 메모리에 펌웨어 원본에 대한 워터마크를 삽입함으로써 법적으로 대응할 수 있는 근거를 제공할 수 있는 펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치를 제공함에 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 펌웨어 워터마킹 방법은, 펌웨어 워터마킹 방법을 실시하기 위한 장치에서의 펌웨어 워터마킹 방법으로서, 펌웨어에 대한 원본 워터마크를 생성하는 단계; 및 상기 생성된 원본 워터마크를 상기 펌웨어에 삽입시키는 단계;를 포함한다.
본 발명의 실시양태는 임의의 펌웨어가 로드됨에 따라 해당 펌웨어의 변조 여부를 확인하는 단계;를 추가로 포함할 수 있다.
상기 펌웨어의 변조 여부를 확인하는 단계는 해당 펌웨어내의 펌웨어 워터마크와 상기 원본 워터마크를 상호 비교하여 확인할 수 있다.
상기 해당 펌웨어내의 펌웨어 워터마크와 상기 원본 워터마크가 상호 동일하지 않으면 현재 로드된 펌웨어가 변조된 것으로 파악할 수 있다.
상기 펌웨어에 대한 원본 워터마크를 생성하는 단계는, 상기 펌웨어에서 중요 정보를 추출하고, 상기 추출된 중요 정보와 비밀키를 근거로 펌웨어 시그니처를 생성하는 단계; 및 상기 생성된 펌웨어 시그니처와 상기 비밀키를 근거로 상기 원본 워터마크를 생성하는 단계;를 포함할 수 있다.
상기 생성된 펌웨어 시그니처와 상기 비밀키를 근거로 상기 원본 워터마크를 생성하는 단계는 상기 생성된 펌웨어 시그니처와 상기 비밀키를 XOR 암호화하여 상기 원본 워터마크를 생성할 수 있다.
상기 비밀키는 펌웨어 제조사에서 관리할 수 있다.
본 발명의 실시양태는 상기 생성된 원본 워터마크를 펌웨어 데이터베이스에 저장하는 단계;를 추가로 포함할 수 있다.
상기 펌웨어 데이터베이스는 임베디드 디바이스 ID별로 비밀키 및 상기 원본 워터마크를 저장할 수 있다.
한편, 본 발명의 바람직한 실시양태에 따른 펌웨어는, 해당 펌웨어 내에서의 중요 정보와 비밀키를 근거로 생성된 펌웨어 시그니처 및 상기 비밀키를 근거로 생성한 원본 워터마크를 포함한다.
상기 원본 워터마크는 상기 펌웨어 시그니처와 상기 비밀키를 XOR 암호화하여 생성될 수 있다.
그리고, 본 발명의 바람직한 실시양태에 따른 펌웨어 워터마킹을 실시하는 장치는, 비밀키를 생성하는 키 생성부; 상기 키 생성부로부터의 비밀키를 저장하고, 펌웨어별로 생성된 원본 워터마크를 저장하는 펌웨어 데이터베이스; 및 상기 원본 워터마크의 생성을 제어하고, 상기 생성된 원본 워터마크를 상기 펌웨어 데이터베이스로 저장하고, 상기 생성된 원본 워터마크를 상기 펌웨어에 삽입하고, 현재 로드된 펌웨어의 펌웨어 워터마크와 상기 원본 워터마크와의 비교를 제어하는 관리부;를 포함한다.
상기 관리부는 상기 현재 로드된 펌웨어의 펌웨어 워터마크와 상기 원본 워터마크를 상호 비교하여 동일하면 현재 로드된 펌웨어에 위/변조가 없는 것으로 파악할 수 있다.
이러한 구성의 본 발명에 따르면, IoT 및 임베디드 디바이스에 대한 펌웨어 위/변조에 대해서 제조 당시에 펌웨어 원본에 대한 워터마크를 삽입함으로써, 펌웨어 변조 공격에 대한 사전 방어 및 사후 법적 대응이 가능하며, 또한 실시간/비실시간으로 펌웨어 변조 여부에 대한 무결성 검증을 행할 수 있다.
즉, 본 발명은 사이버 또는 물리적 공격에 의해서 장치 또는 시스템에 문제가 생겼을 때 디지털 포렌식(Digital Forensics) 분야와 관련된 법적 대응 차원 뿐만 아니라, 실시간/비실시간 펌웨어의 무결성 검증에 사용할 수 있다.
도 1은 기존의 펌웨어 구조도이다.
도 2는 본 발명에 의한 펌웨어 구조도이다.
도 3은 본 발명의 실시예에 따른 펌웨어 워터마킹 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 다른 실시예에 따른 펌웨어 워터마킹 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명에 따른 펌웨어 워터마킹 방법을 실시하기 위한 장치의 구성도이다.
도 6은 본 발명의 실시예가 구현된 컴퓨터 시스템을 나타낸 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
본 발명은 임베디드 디바이스 및 펌웨어의 소유주가 디지털 포렌식(Digital Forensics) 서비스 차원에서 사용할 수 있다.
본 발명은 펌웨어 변조 공격에 대한 디지털 포렌식(Digital Forensic) 관점에서의 대응 논리를 기반으로 하고 있다. 즉, 본 발명은 펌웨어 변조 공격(Firmware Modification Attacks)에 의해 악의적으로 펌웨어가 위/변조되었을 때, 법적인 대응 자료로 활용할 수 있게 한다. 다시 말해서, 공격을 방어하기는 어려우나 공격의 발생으로 인한 법적 책임은 장치 제조사가 가지지 않을 수 있도록 하기 위한 안전장치로 이해하면 될 것이다.
도 2는 본 발명에 의한 펌웨어 구조도이다.
본 발명에 의한 펌웨어(20)는 비휘발성 메모리(Non Volatile Memory; NVM)(200)에 위치하는데, 기존과 동일하게 부트로더(bootloader) 영역, 펌웨어 메타데이터(Firmware Metadata) 영역, 및 펌웨어 코어(Firmware Core) 영역을 포함한다.
기존의 펌웨어의 구조와 차이나는 점은 본 발명에 의한 펌웨어(20)는 XOR 암호 기반의 펌웨어 워터마크(W)를 추가로 포함한다라는 점이다.
도 3은 본 발명의 실시예에 따른 펌웨어 워터마킹 방법을 설명하기 위한 흐름도이다.
먼저, 펌웨어 워터마킹을 위해 원본 펌웨어(original firmware)를 준비한다(S10).
이어, 준비된 원본 펌웨어에 대한 비밀키(K)를 생성하고(S12), 생성된 비밀키(K)를 펌웨어 데이터베이스(30)에 저장한다. 여기서, 비밀키(K)는 장치 및 펌웨어 제조사(법적 권리 및 유통 주체)에서 관리하는 것으로 한다. 예를 들어, 펌웨어 데이터베이스(30)는 원본 펌웨어에 상응하는 임베디드 디바이스 ID별로 비밀키(K)를 저장할 수 있다.
그리고 나서, 준비된 원본 펌웨어에서 중요 정보(예컨대, 제조사 정보, 임베디드 디바이스 ID, 무결성 정보(해시값 포함) 등)(M; message)를 추출하고, 추출된 중요 정보(M)와 비밀키(K)를 근거로 펌웨어 시그니처(S; 서명)를 생성한다(S14). 여기서, 중요 정보(M)는 신원(identity) 정보라고 할 수 있다. 본 발명에서는 예를 들어 HMAC(Keyed Hash) 기반으로 펌웨어 시그니처(Firmware Signature)(S)를 생성할 수 있다. 이를 수학식으로 표현하면 하기의 수학식 1과 같다.
[수학식 1]
S = HMAC(M)
= H(K ∥ H(K ∥ M))
상기 수학식 1의 의미는 "Hash(key ∥ Hash(key ∥ message))"이다. 그리고, 해시(Hash) 함수로는 MD5, SHA-1, SHA-256 등을 사용할 수 있다.
이후, 생성된 펌웨어 시그니처(S)와 비밀키(K)를 근거로 펌웨어 워터마크(W)를 생성한다(S16). 이때, 본 발명에서는 XOR 암호 기반으로 펌웨어 워터마크(W)를 생성할 수 있다. 이를 수학식으로 표현하면 하기의 수학식 2와 같다.
[수학식 2]
W = S (XOR) K
W : 펌웨어 워터마크(Firmware Watermark)
S : 펌웨어 시그니처(Firmware Signature)
K : 비밀키
그리고, 생성된 펌웨어 워터마크(W)를 펌웨어(20)에 삽입한다(S18).
이와 같이 하면, 펌웨어(20)에 펌웨어 워터마크(W)를 삽입할 수 있게 된다.
이후, 임의의 펌웨어 워터마크(W)를 가진 펌웨어가 제 3자에 의해 로드된다면(S20), 현재 로드된 펌웨어에서 중요 정보(M)를 추출하고, 추출된 중요 정보(M)와 펌웨어 데이터베이스(30)에 저장된 비밀키(K)를 근거로 현재 로드된 펌웨어에 대한 펌웨어 시그니처(S)를 파악할 수 있다(S22). 그리고, "S = W (XOR) K"이므로 현재 로드된 펌웨어의 펌웨어 워터마크(W)를 파악할 수 있을 것이다.
도 3에서, 단계 S12는 후술할 도 5의 키 생성부(40)에서 수행되는 것으로 이해 하면 되고, 단계 S14 ~ S18 및 S22는 후술할 도 5의 관리부(44)에서 수행되는 것으로 이해하면 된다.
도 4는 본 발명의 다른 실시예에 따른 펌웨어 워터마킹 방법을 설명하기 위한 흐름도이다. 도 4는 상술한 도 3과 거의 동일하다.
먼저, 펌웨어 워터마킹을 위해 원본 펌웨어(original firmware)를 준비한다(S30).
이어, 준비된 원본 펌웨어에 대한 비밀키(K)를 생성하고(S32), 생성된 비밀키(K)를 펌웨어 데이터베이스(33)에 저장한다.
그리고 나서, 준비된 원본 펌웨어에서 중요 정보(M)를 추출하고, 추출된 중요 정보(M)와 비밀키(K)를 근거로 펌웨어 시그니처(S; 서명)를 생성한다(S34). 예를 들어, HMAC(Keyed Hash) 기반으로 펌웨어 시그니처(Firmware Signature)(S)를 생성할 수 있다. 이를 수학식으로 표현하면 상술한 수학식 1과 같다.
이후, 생성된 펌웨어 시그니처(S)와 비밀키(K)를 근거로 펌웨어 워터마크(W)를 생성한다(S36). 이때, XOR 암호 기반으로 펌웨어 워터마크(W)를 생성할 수 있다. 이를 수학식으로 표현하면 상술한 수학식 2와 같다.
그리고, 생성된 펌웨어 워터마크(W)를 해당 원본 펌웨어에 대한 원본 워터마크(Worg)로 하여 펌웨어 데이터베이스(32)에 저장하고(S38), 원본 워터마크(Worg)를 해당 원본 펌웨어에 삽입한다(S40). 예를 들어, 펌웨어 데이터베이스(32)는 원본 펌웨어에 상응하는 임베디드 디바이스 ID별로 비밀키(K) 및 원본 워터마크(Worg)를 저장할 수 있다.
상술한 본 발명의 실시예들에서는 펌웨어 워터마크(W)를 생성하기 위해 비밀키(K)를 2회 사용한다. 단, 개발자 및 사용자의 요구사항에 따라 펌웨어 시그너처(S)를 생성할 때 사용하는 비밀키(K 또는 KS)와 최종 펌웨어 워터마크(W) 생성할 때 사용하는 비밀키(K 또는 KW)는 다르게 사용할 수 있다.
이와 같이 하면, 원본 펌웨어(20)에 펌웨어 워터마크(W)(즉, 원본 워터마크(Worg))를 삽입할 수 있게 된다. 한편, 원본 펌웨어(20)에 삽입되어 있는 펌웨어 워터마크(W)를 추출하기 위해서는 상술한 펌웨어 워터마크(W) 삽입 과정에서의 변환 동작을 반대로 수행하면 될 것이다.
이후, 임의의 펌웨어 워터마크(W)를 가진 펌웨어가 제 3자에 의해 로드된다면(S42), 현재 로드된 펌웨어에서 중요 정보(M)를 추출하고, 추출된 중요 정보(M)와 펌웨어 데이터베이스(32)에 저장된 비밀키(K)를 근거로 현재 로드된 펌웨어에 대한 펌웨어 시그니처(S)를 파악할 수 있다(S44). 그리고, "S = W(XOR) K"이므로 현재 로드된 펌웨어의 펌웨어 워터마크(W)를 파악할 수 있을 것이다.
그리고 나서, 펌웨어 데이터베이스(32)에 저장되어 있는 해당 펌웨어에 대한 원본 워터마크(Worg)를 로드한 후에, 현재 로드된 펌웨어의 펌웨어 워터마크(W)와 로드된 원본 워터마크(Worg)를 상호 비교하여 동일한지 확인한다(S46).
확인 결과, 상호 동일하면 현재 로드된 펌웨어에 위/변조가 없는 것으로 파악하게 되고, 상호 동일하지 않으면 현재 로드된 펌웨어에 위/변조가 있는 것으로 파악하게 된다.
즉, 제 3자가 펌웨어내의 무결성 정보를 훼손(변조)하더라도 해당 펌웨어에 어떠한 형태의 워터마크가 있는지 모르기 때문에 현재 로드딩 펌웨어의 워터마크와 기저장된 원본 워터마크를 비교하면 펌웨어의 위/변조 여부를 파악할 수 있다. 또한, 제 3자가 임의로 워터마크를 생성하여 펌웨어에 삽입시켰다고 하더라도 원본 워터마크와 차이나면 제 3자의 악의적인 공격에 의한 것으로 파악할 수 있으므로 장치 제조사는 법적 책임을 지지 않을 수 있다. 물론, 제 3자가 워터마크를 고려하지 않은 채로 펌웨어내의 나머지 정보를 변조하였다면 펌웨어내에 워터마크가 없기 때문에 손쉽게 제 3자의 악의적인 공격으로 파악할 수 있으므로 장치 제조사는 법적 책임을 지지 않을 수 있다.
도 4에서, 단계 S32는 후술할 도 5의 키 생성부(40)에서 행하는 것으로 이해 하면 되고, 단계 S34 ~ S40 및 S44 ~ S46은 후술할 도 5의 관리부(44)에서 행하는 것으로 이해하면 된다.
도 5는 본 발명에 따른 펌웨어 워터마킹 방법을 실시하기 위한 장치의 구성도이다.
본 발명에 따른 펌웨어 워터마킹 방법을 실시하기 위한 장치는 키 생성부(40), 펌웨어 데이터베이스(42), 및 관리부(44)를 포함한다.
키 생성부(40)는 임베이드 디바이스별로 비밀키(K)를 생성할 수 있다.
펌웨어 데이터베이스(42)는 키 생성부(40)로부터의 비밀키(K)를 저장한다. 또한, 펌웨어 데이터베이스(42)는 원본 펌웨어별로의 원본 워터마크(Worg)를 저장한다. 다시 말해서, 펌웨어 데이터베이스(42)는 원본 펌웨어에 상응하는 임베디드 디바이스 ID별로 비밀키(K) 및 원본 워터마크(Worg)를 저장할 수 있을 것이다.
관리부(44)는 원본 펌웨어에 대한 원본 워터마크(Worg) 생성을 제어하고, 생성된 원본 워터마크(Worg)를 펌웨어 데이터베이스(42)로 저장함과 더불어 해당 원본 펌웨어에 삽입(기록)하고, 현재 로드된 펌웨어의 펌웨어 워터마크(W)와 원본 워터마크(Worg)와의 비교를 제어한다.
관리부(44)는 현재 로드된 펌웨어의 펌웨어 워터마크(W)와 로드된 원본 워터마크(Worg)를 상호 비교하여 동일하면 현재 로드된 펌웨어에 위/변조가 없는 것으로 파악하게 되고, 상호 동일하지 않으면 현재 로드된 펌웨어에 위/변조가 있는 것으로 파악하게 된다.
한편, 상술한 본 발명의 실시예는 컴퓨터 시스템에서 구현될 수 있다. 도 6에 도시된 바와 같이, 컴퓨터 시스템(120)은 버스(122)를 통하여 서로 통신하는 하나 이상의 프로세서(121), 메모리(123), 사용자 인터페이스 입력 장치(126), 사용자 인터페이스 출력 장치(127) 및 스토리지(128)를 포함할 수 있다. 또한, 컴퓨터 시스템(120)은 네트워크(130)에 연결되는 하나 이상의 네트워크 인터페이스(129)를 더 포함할 수 있다. 프로세서(121)는 중앙 처리 장치 또는 메모리(123) 또는 스토리지(128)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(123) 및 스토리지(128)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리(123)는 ROM(124)이나 RAM(125)을 포함할 수 있다.
그리고, IoT 시대를 대비하여 컴퓨터 시스템(120)을 소형의 컴퓨팅 디바이스로 구현시킨 경우, 컴퓨팅 디바이스에 이더넷(Ethernet) 케이블을 연결하면 무선 공유기처럼 동작해서 모바일 디바이스가 무선으로 게이트웨이에 붙어서 암복호화 기능을 할 수 있으므로, 이를 위해 컴퓨터 시스템(120)은 무선 통신 칩(와이파이 칩)(131)을 추가로 포함할 수 있다.
따라서, 본 발명의 실시예는 컴퓨터로 구현된 방법이나 컴퓨터에서 실행가능한 명령어들이 기록된 비일시적인 컴퓨터에서 읽을 수 있는 매체로 구현될 수 있다. 컴퓨터에서 읽을 수 있는 명령어들이 프로세서에 의해서 수행될 때, 컴퓨터에서 읽을 수 있는 명령어들은 본 발명의 적어도 한 가지 태양에 따른 방법을 수행할 수 있다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1, 20 : 펌웨어 30, 32, 42 : 펌웨어 데이터베이스
40 : 키 생성부 44 : 관리부

Claims (14)

  1. 펌웨어 워터마킹 방법을 실시하기 위한 장치에서의 펌웨어 워터마킹 방법으로서,
    펌웨어에 대한 원본 워터마크를 생성하는 단계; 및
    상기 생성된 원본 워터마크를 상기 펌웨어에 삽입시키는 단계;를 포함하는 것을 특징으로 하는 펌웨어 워터마킹 방법.
  2. 청구항 1에 있어서,
    임의의 펌웨어가 로드됨에 따라 해당 펌웨어의 변조 여부를 확인하는 단계;를 추가로 포함하는 것을 특징으로 하는 펌웨어 워터마킹 방법.
  3. 청구항 2에 있어서,
    상기 펌웨어의 변조 여부를 확인하는 단계는 해당 펌웨어내의 펌웨어 워터마크와 상기 원본 워터마크를 상호 비교하여 확인하는 것을 특징으로 하는 펌웨어 워터마킹 방법.
  4. 청구항 3에 있어서,
    상기 해당 펌웨어내의 펌웨어 워터마크와 상기 원본 워터마크가 상호 동일하지 않으면 현재 로드된 펌웨어가 변조된 것으로 파악하는 것을 특징으로 하는 펌웨어 워터마킹 방법.
  5. 청구항 1에 있어서,
    상기 펌웨어에 대한 원본 워터마크를 생성하는 단계는,
    상기 펌웨어에서 중요 정보를 추출하고, 상기 추출된 중요 정보와 비밀키를 근거로 펌웨어 시그니처를 생성하는 단계; 및
    상기 생성된 펌웨어 시그니처와 상기 비밀키를 근거로 상기 원본 워터마크를 생성하는 단계;를 포함하는 것을 특징으로 하는 펌웨어 워터마킹 방법.
  6. 청구항 5에 있어서,
    상기 생성된 펌웨어 시그니처와 상기 비밀키를 근거로 상기 원본 워터마크를 생성하는 단계는 상기 생성된 펌웨어 시그니처와 상기 비밀키를 XOR 암호화하여 상기 원본 워터마크를 생성하는 것을 특징으로 하는 펌웨어 워터마킹 방법.
  7. 청구항 5에 있어서,
    상기 비밀키는 펌웨어 제조사에서 관리하는 것을 특징으로 하는 펌웨어 워터마킹 방법.
  8. 청구항 1에 있어서,
    상기 생성된 원본 워터마크를 펌웨어 데이터베이스에 저장하는 단계;를 추가로 포함하는 것을 특징으로 하는 펌웨어 워터마킹 방법.
  9. 청구항 8에 있어서,
    상기 펌웨어 데이터베이스는 임베디드 디바이스 ID별로 비밀키 및 상기 원본 워터마크를 저장하는 것을 특징으로 하는 펌웨어 워터마킹 방법.
  10. 해당 펌웨어 내에서의 중요 정보와 비밀키를 근거로 생성된 펌웨어 시그니처 및 상기 비밀키를 근거로 생성한 원본 워터마크를 포함하는 것을 특징으로 하는 펌웨어.
  11. 청구항 10에 있어서,
    상기 비밀키는 펌웨어 제조사에서 관리하는 것을 특징으로 하는 펌웨어.
  12. 청구항 11에 있어서,
    상기 원본 워터마크는 상기 펌웨어 시그니처와 상기 비밀키를 XOR 암호화하여 생성된 것을 특징으로 하는 펌웨어.
  13. 비밀키를 생성하는 키 생성부;
    상기 키 생성부로부터의 비밀키를 저장하고, 펌웨어별로 생성된 원본 워터마크를 저장하는 펌웨어 데이터베이스; 및
    상기 원본 워터마크의 생성을 제어하고, 상기 생성된 원본 워터마크를 상기 펌웨어 데이터베이스로 저장하고, 상기 생성된 원본 워터마크를 상기 펌웨어에 삽입하고, 현재 로드된 펌웨어의 펌웨어 워터마크와 상기 원본 워터마크와의 비교를 제어하는 관리부;를 포함하는 것을 특징으로 하는 장치.
  14. 청구항 13에 있어서,
    상기 관리부는 상기 현재 로드된 펌웨어의 펌웨어 워터마크와 상기 원본 워터마크를 상호 비교하여 동일하면 현재 로드된 펌웨어에 위/변조가 없는 것으로 파악하는 것을 특징으로 하는 장치.
KR1020150026231A 2015-02-25 2015-02-25 펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치 KR20160103652A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150026231A KR20160103652A (ko) 2015-02-25 2015-02-25 펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치
US15/050,133 US20160248591A1 (en) 2015-02-25 2016-02-22 Firmware watermarking method, firmware based on the same, and apparatus for performing firmware watermarking

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150026231A KR20160103652A (ko) 2015-02-25 2015-02-25 펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치

Publications (1)

Publication Number Publication Date
KR20160103652A true KR20160103652A (ko) 2016-09-02

Family

ID=56690623

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150026231A KR20160103652A (ko) 2015-02-25 2015-02-25 펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치

Country Status (2)

Country Link
US (1) US20160248591A1 (ko)
KR (1) KR20160103652A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11386067B2 (en) * 2015-12-15 2022-07-12 Red Hat, Inc. Data integrity checking in a distributed filesystem using object versioning

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080112010A (ko) * 2007-06-20 2008-12-24 삼성전자주식회사 펌웨어 인증 장치 및 방법

Also Published As

Publication number Publication date
US20160248591A1 (en) 2016-08-25

Similar Documents

Publication Publication Date Title
US10915633B2 (en) Method and apparatus for device security verification utilizing a virtual trusted computing base
JP6771565B2 (ja) ウェブページ、ウェブアプリ、およびアプリケーションをセキュリティ保護すること
JP6189569B1 (ja) 外部不揮発性メモリに記憶されたデータが有効かどうかを判定するための集積回路
WO2020192406A1 (zh) 数据存储、验证方法及装置
JP5703391B2 (ja) 耐タンパー性ブート処理のためのシステム及び方法
KR101795457B1 (ko) 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
US9755831B2 (en) Key extraction during secure boot
JP6371919B2 (ja) セキュアなソフトウェアの認証と検証
JP6053950B2 (ja) ソフトウェア更新装置及びソフトウェア更新プログラム
US20120331303A1 (en) Method and system for preventing execution of malware
US20130081144A1 (en) Storage device and writing device
EP2803011B1 (en) Detection of invalid escrow keys
JP2011170847A (ja) ソフトウェアのインテグリティを実行中に確かめる方法及び装置、並びにこのようなソフトウェアを生成する装置
US20200195447A1 (en) Communication method of client device, issuing device and server
US11336444B2 (en) Hardware security module for verifying executable code, device having hardware security module, and method of operating device
US10461926B2 (en) Cryptographic evidence of persisted capabilities
CN108270767B (zh) 数据验证方法
KR20160103652A (ko) 펌웨어 워터마킹 방법 및 이에 의한 펌웨어, 펌웨어 워터마킹을 실시하는 장치
US7330982B1 (en) Secured automated process for signed, encrypted or validated content generation
CN109614807B (zh) 一种敏感信息的保护方法及设备及可读存储介质
US11849033B2 (en) Key generation systems and methods
KR101781970B1 (ko) 자가 대응 전자문서 불법 유출 방지 장치 및 방법
KR101516313B1 (ko) 소프트웨어 변조 탐지 방법
JP5126530B2 (ja) コンピュータの環境を測定する機能を備えた外部記憶デバイス