KR101457086B1 - 임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법 - Google Patents

임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법 Download PDF

Info

Publication number
KR101457086B1
KR101457086B1 KR1020120138417A KR20120138417A KR101457086B1 KR 101457086 B1 KR101457086 B1 KR 101457086B1 KR 1020120138417 A KR1020120138417 A KR 1020120138417A KR 20120138417 A KR20120138417 A KR 20120138417A KR 101457086 B1 KR101457086 B1 KR 101457086B1
Authority
KR
South Korea
Prior art keywords
integrity
firmware
integrity code
embedded system
program
Prior art date
Application number
KR1020120138417A
Other languages
English (en)
Other versions
KR20140070203A (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 KR1020120138417A priority Critical patent/KR101457086B1/ko
Priority to US13/941,520 priority patent/US9021609B2/en
Publication of KR20140070203A publication Critical patent/KR20140070203A/ko
Application granted granted Critical
Publication of KR101457086B1 publication Critical patent/KR101457086B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party

Abstract

임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법이 개시된다. 본 발명에 따른 임베디드 시스템의 펌웨어 무결성 검증 장치는, 임베디드 시스템 펌웨어의 대상 무결성 코드를 획득하는 대상 무결성 코드 획득부; 원본 펌웨어의 원본 무결성 코드를 획득하는 원본 무결성 코드 획득부; 및 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 이용하여 상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 무결성 판단부를 포함한다.

Description

임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법 {APPARATUS FOR INTEGRITY VERIFICATION OF FIRMWARE OF EMBEDDED SYSTEM AND METHOD THEREOF}
본 발명은 임베디드 시스템의 펌웨어 무결성 검증에 관한 것으로, 특히 무결성 코드 비교를 통한 임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법에 관한 것이다.
최근 운영체제(Operating System, OS)에 대한 해킹 피해가 증가하는 추세이다. 임베디드 시스템의 경우에도 상기 운영체제에 대한 해킹과 유사하게 펌웨어 변조에 따른 피해가 발생할 수 있다. 특히, 임베디드 시스템 중 라우터, 스위치, 프린터 및 스캐너와 같은 네트워크 컴포넌트가 펌웨어 변조에 의한 공격을 받는다면 운영체제에 대한 해킹 피해 못지 않는 심각한 피해로 이어질 수 있다.
일반적으로, 임베디드 시스템의 펌웨어 무결성 검증 장치는 서버-클라이언트의 구조로, 서버로부터 프로그램을 수신하는 과정에서 변조가 발생할 수 있다는 문제점이 있었다.
한국공개특허 제2006-0119967호는 서버로부터 클라이언트인 임베디드 시스템에 무결성 검증 프로그램을 저장하고, 무결성 검증 프로그램으로부터의 응답을 수신하여 무결성 검증을 하는 기술을 소개하였다.
그러나, 위와 같은 종래기술은 무결성 검증 프로그램으로부터의 응답을 단순히 수신하는 기술을 소개하고 있고, 임베디드 시스템 펌웨어의 무결성 코드 및 원본 펌웨어의 무결성 코드를 비교하는 구성에 대해 구체적으로 개시 및 암시하고 있지 못하다. 또한, 임베디드 시스템에 무결성 검증 프로그램을 단순히 저장하는 기술을 소개하고 있고, 임베디드 시스템의 실행 메모리에 무결성 코드를 산출하는 프로그램을 저장하는 구성에 대해 구체적으로 개시 및 암시하고 있지 못하다. 나아가, 유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 등의 통신 인터페이스를 이용함으로써, 네트워크 접속이 불가능한 임베디드 시스템의 경우에도 적용 가능한 구성에 대해서는 언급하고 있지 않다.
따라서, 임베디드 시스템 펌웨어의 무결성 코드 및 원본 펌웨어의 무결성 코드를 비교함으로써, 상기 임베디드 시스템 펌웨어의 최신 버전 여부 및 변조 여부를 판단하고, 임베디드 시스템의 실행 메모리에 무결성 코드를 산출하는 프로그램을 저장하고, 상기 프로그램을 실행시켜 산출된 무결성 코드를 이용함으로써, 서버-클라이언트 구조에서 발생하는 상기 프로그램 변조의 문제를 해결하고, 유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 등의 통신 인터페이스를 이용함으로써, 네트워크 접속이 불가능한 임베디드 시스템의 경우에도 무결성 검증을 가능케 하는 새로운 임베디드 시스템의 펌웨어 무결성 검증 기술의 필요성이 절실하게 대두된다.
본 발명의 목적은, 임베디드 시스템 펌웨어의 무결성 코드 및 원본 펌웨어의 무결성 코드를 비교함으로써, 상기 임베디드 시스템 펌웨어의 최신 버전 여부 및 변조 여부를 판단하는 무결성 검증을 가능케 하는 것이다.
또한 본 발명의 목적은, 임베디드 시스템의 실행 메모리에 무결성 코드를 산출하는 프로그램을 저장하고, 상기 프로그램을 실행시켜 산출된 무결성 코드를 이용함으로써, 서버-클라이언트 구조에서 발생하는 상기 프로그램 변조의 문제를 해결하고 보다 보안성이 높은 무결성 검증을 가능케 하는 것이다.
또한 본 발명의 목적은, 유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 등의 통신 인터페이스를 이용함으로써, 네트워크 접속이 불가능한 임베디드 시스템의 경우에도 무결성 검증을 가능케 하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 임베디드 시스템의 펌웨어 무결성 검증 장치는, 임베디드 시스템 펌웨어의 대상 무결성 코드를 획득하는 대상 무결성 코드 획득부; 원본 펌웨어의 원본 무결성 코드를 획득하는 원본 무결성 코드 획득부; 및 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 이용하여 상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 무결성 판단부를 포함한다.
이 때, 상기 대상 무결성 코드 획득부는 임베디드 시스템의 실행 메모리에 무결성 코드를 산출하는 프로그램을 저장하고, 상기 프로그램을 실행시켜 산출된 상기 대상 무결성 코드를 획득할 수 있다.
이 때, 상기 대상 무결성 코드 획득부는 상기 프로그램을 검사 합(checksum)이 정상인지 판단하고, 상기 프로그램의 검사 합이 정상인 경우 상기 프로그램을 상기 실행 메모리에 저장할 수 있다.
이 때, 상기 대상 무결성 코드 획득부는 상기 임베디드 시스템에 상기 프로그램의 실행 신호를 송신하고, 상기 임베디드 시스템으로부터 상기 대상 무결성 코드를 수신하는 통신 인터페이스를 포함할 수 있다.
이 때, 상기 통신 인터페이스는 유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 중 어느 하나 이상을 포함할 수 있다.
이 때, 상기 임베디드 시스템의 펌웨어 무결성 검증 장치는 상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 화면에 표시하는 화면 표시부를 더 포함할 수 있다.
이 때, 상기 대상 무결성 코드 획득부는 상기 프로그램을 저장 및 갱신하는 프로그램 데이터베이스를 포함하고, 상기 원본 무결성 코드 획득부는 상기 원본 펌웨어를 저장 및 갱신하는 펌웨어 데이터베이스를 포함할 수 있다.
이 때, 상기 펌웨어 데이터베이스는 상기 원본 펌웨어의 원본 무결성 코드를 저장 및 갱신할 수 있다.
이 때, 상기 무결성 판단부는 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 비교하고, 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드의 동일 여부에 따라 무결성이 유지되는지 여부를 달리 판단할 수 있다.
이 때, 상기 무결성 판단부는 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일한 경우 무결성이 유지되는 것으로 판단하고, 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일하지 아니한 경우 무결성이 유지되지 않는 것으로 판단할 수 있다.
또한, 본 발명에 따른 임베디드 시스템의 펌웨어 무결성 검증 방법은 임베디드 시스템 펌웨어의 대상 무결성 코드를 획득하는 단계; 원본 펌웨어의 원본 무결성 코드를 획득하는 단계; 및 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 이용하여 상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 단계를 포함한다.
이 때, 상기 대상 무결성 코드를 획득하는 단계는 임베디드 시스템의 실행 메모리에 무결성 코드를 산출하는 프로그램을 저장하고, 상기 프로그램을 실행시켜 산출된 상기 대상 무결성 코드를 획득할 수 있다.
이 때, 상기 대상 무결성 코드를 획득하는 단계는 상기 프로그램을 검사 합(checksum)이 정상인지 판단하고, 상기 프로그램의 검사 합이 정상인 경우 상기 프로그램을 상기 실행 메모리에 저장할 수 있다.
이 때, 상기 대상 무결성 코드를 획득하는 단계는 상기 임베디드 시스템에 상기 프로그램의 실행 신호를 송신하고, 상기 임베디드 시스템으로부터 상기 대상 무결성 코드를 수신하는 통신 인터페이스를 포함할 수 있다.
이 때, 상기 통신 인터페이스는 유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 중 어느 하나 이상을 포함할 수 있다.
이 때, 상기 임베디드 시스템의 펌웨어 무결성 검증 방법은 상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 화면에 표시하는 단계를 더 포함할 수 있다.
이 때, 상기 대상 무결성 코드를 획득하는 단계는 상기 프로그램을 저장 및 갱신하는 프로그램 데이터베이스를 포함하고, 상기 원본 무결성 코드를 획득하는 단계는 상기 원본 펌웨어를 저장 및 갱신하는 펌웨어 데이터베이스를 포함할 수 있다.
이 때, 상기 펌웨어 데이터베이스는 상기 원본 펌웨어의 원본 무결성 코드를 저장 및 갱신할 수 있다.
이 때, 상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 단계는 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 비교하고, 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드의 동일 여부에 따라 무결성이 유지되는지 여부를 달리 판단할 수 있다.
이 때, 상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 단계는 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일한 경우 무결성이 유지되는 것으로 판단하고, 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일하지 아니한 경우 무결성이 유지되지 않는 것으로 판단할 수 있다.
본 발명에 따르면, 임베디드 시스템 펌웨어의 무결성 코드 및 원본 펌웨어의 무결성 코드를 비교함으로써, 상기 임베디드 시스템 펌웨어의 최신 버전 여부 및 변조 여부를 판단하는 무결성 검증이 가능하다.
또한 본 발명은, 임베디드 시스템의 실행 메모리에 무결성 코드를 산출하는 프로그램을 저장하고, 상기 프로그램을 실행시켜 산출된 무결성 코드를 이용함으로써, 서버-클라이언트 구조에서 발생하는 상기 프로그램 변조의 문제를 해결하고 보다 보안성이 높은 무결성 검증이 가능하다.
또한 본 발명은, 유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 등의 통신 인터페이스를 이용함으로써, 네트워크 접속이 불가능한 임베디드 시스템의 경우에도 무결성 검증이 가능하다.
도 1은 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 장치를 나타낸 블록도이다.
도 2는 본 발명의 임베디드 시스템(220)의 펌웨어 무결성 검증 장치가 적용된 시스템의 일 예를 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 방법을 나타낸 동작 흐름도이다.
도 4는 도 3에 도시된 대상 무결성 코드를 획득하는 단계(S310)를 나타낸 동작 흐름도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 장치를 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 장치는 대상 무결성 코드 획득부(110), 원본 무결성 코드 획득부(120), 무결성 판단부(130) 및 화면 표시부(140)를 포함한다.
대상 무결성 코드 획득부(110)는 임베디드 시스템(220) 펌웨어의 대상 무결성 코드를 획득한다.
이 때, 임베디드 시스템(220)은 펌웨어를 포함하는 다양한 시스템을 의미하며, 예를 들어, 임베디드 시스템(220)은 캠코더, 스캐너, 프린터, 라우터, 팩스 및 스마트 기기 중 어느 하나를 포함할 수 있다.
이 때, 상기 무결성 코드는 해시 기반 메시지 인증 코드(Hash-based Message Authentication Code, HMAC)를 포함할 수 있다.
이 때, 대상 무결성 코드 획득부(110)는 임베디드 시스템(220)의 실행 메모리에 무결성 코드를 산출하는 프로그램을 저장하고, 상기 프로그램을 실행시켜 산출된 상기 대상 무결성 코드를 획득할 수 있다.
이 때, 대상 무결성 코드 획득부(110)는 상기 프로그램을 검사 합(checksum)이 정상인지 판단하고, 상기 프로그램의 검사 합이 정상인 경우 상기 프로그램을 상기 실행 메모리에 저장할 수 있다.
이 때, 상기 검사 합은 상기 프로그램의 모든 데이터 값을 합한 합계일 수 있다.
이와 같이, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 장치는 상기 실행 메모리에 상기 프로그램을 저장하고, 상기 프로그램을 실행시켜 산출된 상기 대상 무결성 코드를 이용함으로써, 서버-클라이언트 구조에서 발생하는 상기 프로그램 변조의 문제를 해결하고 보다 보안성이 높은 무결성 검증이 가능하다.
또한, 대상 무결성 코드 획득부(110)는 임베디드 시스템(220)에 상기 프로그램의 실행 신호를 송신하고, 임베디드 시스템(220)으로부터 상기 대상 무결성 코드를 수신하는 통신 인터페이스(230)를 포함할 수 있다.
이 때, 통신 인터페이스(230)는 유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 중 어느 하나 이상을 포함할 수 있다.
이와 같이, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 장치는 통신 인터페이스(230)를 이용함으로써, 네트워크 접속이 불가능한 임베디드 시스템(220)의 경우에도 무결성 검증이 가능하다.
또한, 대상 무결성 코드 획득부(110)는 상기 프로그램을 저장 및 갱신하는 프로그램 데이터베이스를 포함할 수 있다.
원본 무결성 코드 획득부(120)는 원본 펌웨어의 원본 무결성 코드를 획득한다.
이 때, 원본 무결성 코드 획득부(120)는 상기 원본 펌웨어를 저장 및 갱신하는 펌웨어 데이터베이스를 포함할 수 있다.
이 때, 상기 펌웨어 데이터베이스는 상기 원본 펌웨어의 원본 무결성 코드를 저장 및 갱신할 수 있다.
무결성 판단부(130)는 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 이용하여 임베디드 시스템(220) 펌웨어의 무결성이 유지되는지 여부를 판단한다.
이 때, 무결성 판단부(130)는 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 비교하고, 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드의 동일 여부에 따라 무결성이 유지되는지 여부를 달리 판단할 수 있다.
이 때, 무결성 판단부(130)는 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일한 경우 무결성이 유지되는 것으로 판단하고, 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일하지 아니한 경우 무결성이 유지되지 않는 것으로 판단할 수 있다.
이와 같이, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 장치는 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 비교함으로써, 임베디드 시스템(220) 펌웨어의 최신 버전 여부 및 변조 여부를 판단하는 무결성 검증이 가능하다.
화면 표시부(140)는 임베디드 시스템(220) 펌웨어의 무결성이 유지되는지 여부를 화면에 표시한다.
도 2는 본 발명의 임베디드 시스템(220)의 펌웨어 무결성 검증 장치가 적용된 시스템의 일 예를 나타낸 도면이다.
도 2를 참조하면, 본 발명의 임베디드 시스템(220)의 펌웨어 무결성 검증 장치가 적용된 시스템은 외부 장치(210), 임베디드 시스템(220) 및 통신 인터페이스(230)를 포함한다.
외부 장치(210)는 본 발명의 임베디드 시스템(220)의 펌웨어 무결성 검증 장치를 포함한다.
이 때, 본 발명의 임베디드 시스템(220)의 펌웨어 무결성 검증 장치는 대상 무결성 코드 획득부(110), 원본 무결성 코드 획득부(120) 및 무결성 판단부(130)를 포함할 수 있다.
대상 무결성 코드 획득부(110)는 임베디드 시스템(220) 펌웨어의 대상 무결성 코드를 획득한다.
이 때, 상기 무결성 코드는 해시 기반 메시지 인증 코드(Hash-based Message Authentication Code, HMAC)를 포함할 수 있다.
이 때, 대상 무결성 코드 획득부(110)는 임베디드 시스템(220)의 실행 메모리에 무결성 코드를 산출하는 프로그램을 저장하고, 상기 프로그램을 실행시켜 산출된 상기 대상 무결성 코드를 획득할 수 있다.
이 때, 대상 무결성 코드 획득부(110)는 상기 프로그램을 검사 합(checksum)이 정상인지 판단하고, 상기 프로그램의 검사 합이 정상인 경우 상기 프로그램을 상기 실행 메모리에 저장할 수 있다.
이 때, 상기 검사 합은 상기 프로그램의 모든 데이터 값을 합한 합계일 수 있다.
또한, 대상 무결성 코드 획득부(110)는 임베디드 시스템(220)에 상기 프로그램의 실행 신호를 송신하고, 임베디드 시스템(220)으로부터 상기 대상 무결성 코드를 수신하는 통신 인터페이스(230)를 포함할 수 있다.
또한, 대상 무결성 코드 획득부(110)는 상기 프로그램을 저장 및 갱신하는 프로그램 데이터베이스를 포함할 수 있다.
원본 무결성 코드 획득부(120)는 원본 펌웨어의 원본 무결성 코드를 획득한다.
이 때, 원본 무결성 코드 획득부(120)는 상기 원본 펌웨어를 저장 및 갱신하는 펌웨어 데이터베이스를 포함할 수 있다.
이 때, 상기 펌웨어 데이터베이스는 상기 원본 펌웨어의 원본 무결성 코드를 저장 및 갱신할 수 있다.
무결성 판단부(130)는 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 이용하여 임베디드 시스템(220) 펌웨어의 무결성이 유지되는지 여부를 판단한다.
이 때, 무결성 판단부(130)는 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 비교하고, 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드의 동일 여부에 따라 무결성이 유지되는지 여부를 달리 판단할 수 있다.
이 때, 무결성 판단부(130)는 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일한 경우 무결성이 유지되는 것으로 판단하고, 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일하지 아니한 경우 무결성이 유지되지 않는 것으로 판단할 수 있다.
임베디드 시스템(220)은 펌웨어를 포함하는 다양한 시스템을 의미하며, 캠코더, 스캐너, 프린터, 라우터, 팩스 및 스마트 기기 중 어느 하나를 포함할 수 있다.
통신 인터페이스(230)는 유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 중 어느 하나 이상을 포함할 수 있다.
이와 같이, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 장치는 통신 인터페이스(230)를 이용함으로써, 네트워크 접속이 불가능한 임베디드 시스템(220)의 경우에도 무결성 검증이 가능하다.
도 3은 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 방법을 나타낸 동작 흐름도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 방법은 임베디드 시스템 펌웨어의 대상 무결성 코드를 획득한다(S310).
이 때, 임베디드 시스템(220)은 펌웨어를 포함하는 다양한 시스템을 의미하며, 예를 들어, 임베디드 시스템(220)은 캠코더, 스캐너, 프린터, 라우터, 팩스 및 스마트 기기 중 어느 하나를 포함할 수 있다.
이 때, 상기 무결성 코드는 해시 기반 메시지 인증 코드(Hash-based Message Authentication Code, HMAC)를 포함할 수 있다.
이 때, 단계(S310)는 임베디드 시스템(220)의 실행 메모리에 무결성 코드를 산출하는 프로그램을 저장하고, 상기 프로그램을 실행시켜 산출된 상기 대상 무결성 코드를 획득할 수 있다.
이 때, 단계(S310)는 상기 프로그램을 검사 합(checksum)이 정상인지 판단하고, 상기 프로그램의 검사 합이 정상인 경우 상기 프로그램을 상기 실행 메모리에 저장할 수 있다.
이 때, 상기 검사 합은 상기 프로그램의 모든 데이터 값을 합한 합계일 수 있다.
이와 같이, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 방법은 상기 실행 메모리에 상기 프로그램을 저장하고, 상기 프로그램을 실행시켜 산출된 상기 대상 무결성 코드를 이용함으로써, 서버-클라이언트 구조에서 발생하는 상기 프로그램 변조의 문제를 해결하고 보다 보안성이 높은 무결성 검증이 가능하다.
또한, 단계(S310)는 임베디드 시스템(220)에 상기 프로그램의 실행 신호를 송신하고, 임베디드 시스템(220)으로부터 상기 대상 무결성 코드를 수신하는 통신 인터페이스(230)를 포함할 수 있다.
이 때, 통신 인터페이스(230)는 유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 중 어느 하나 이상을 포함할 수 있다.
이와 같이, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 방법은 통신 인터페이스(230)를 이용함으로써, 네트워크 접속이 불가능한 임베디드 시스템(220)의 경우에도 무결성 검증이 가능하다.
또한, 단계(S310)는 상기 프로그램을 저장 및 갱신하는 프로그램 데이터베이스를 포함할 수 있다.
또한, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 방법은 원본 펌웨어의 원본 무결성 코드를 획득한다(S320).
이 때, 단계(S320)는 상기 원본 펌웨어를 저장 및 갱신하는 펌웨어 데이터베이스를 포함할 수 있다.
이 때, 상기 펌웨어 데이터베이스는 상기 원본 펌웨어의 원본 무결성 코드를 저장 및 갱신할 수 있다.
또한, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 방법은 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 이용하여 상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단한다(S330).
이 때, 단계(S330)는 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 비교하고, 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드의 동일 여부에 따라 무결성이 유지되는지 여부를 달리 판단할 수 있다.
이 때, 단계(S330)는 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일한 경우 무결성이 유지되는 것으로 판단하고, 상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일하지 아니한 경우 무결성이 유지되지 않는 것으로 판단할 수 있다.
이와 같이, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 방법은 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 비교함으로써, 임베디드 시스템(220) 펌웨어의 최신 버전 여부 및 변조 여부를 판단하는 무결성 검증이 가능하다.
또한, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 방법은 임베디드 시스템(220) 펌웨어의 무결성이 유지되는지 여부를 화면에 표시한다(S340).
도 4는 도 3에 도시된 대상 무결성 코드를 획득하는 단계(S310)를 나타낸 동작 흐름도이다.
도 4를 참조하면, 도 3에 도시된 대상 무결성 코드를 획득하는 단계(S310)는 무결성 코드를 산출하는 프로그램의 검사 합(checksum)이 정상인지 판단한다(S311).
이 때, 상기 검사 합은 상기 프로그램의 모든 데이터 값을 합한 합계일 수 있다.
또한, 도 3에 도시된 대상 무결성 코드를 획득하는 단계(S310)는 임베디드 시스템(220)의 실행 메모리에 상기 프로그램을 저장한다(S312).
또한, 도 3에 도시된 대상 무결성 코드를 획득하는 단계(S310)는 상기 프로프로그램을 실행시켜 산출된 상기 대상 무결성 코드를 수신한다(S313).
이와 같이, 본 발명의 일실시예에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 방법은 상기 실행 메모리에 상기 프로그램을 저장하고, 상기 프로그램을 실행시켜 산출된 상기 대상 무결성 코드를 이용함으로써, 서버-클라이언트 구조에서 발생하는 상기 프로그램 변조의 문제를 해결하고 보다 보안성이 높은 무결성 검증이 가능하다.
이상에서와 같이 본 발명에 따른 임베디드 시스템(220)의 펌웨어 무결성 검증 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
110: 대상 무결성 코드 획득부
120: 원본 무결성 코드 획득부
130: 무결성 판단부
140: 화면 표시부
210: 외부 장치
220: 임베디드 시스템
230: 통신 인터페이스

Claims (20)

  1. 프로그램 데이터베이스에 저장된, 무결성 코드 산출 프로그램의 검사 합(checksum)이 정상인지 판단하고,
    상기 프로그램의 검사 합이 정상인 경우, 임베디드 시스템과의 통신 인터페이스를 통해 상기 프로그램을 임베디드 시스템의 실행 메모리에 복사하고,
    상기 프로그램의 실행 신호를 송신하여 상기 프로그램을 직접 실행시키고,
    상기 프로그램의 실행 결과로서 임베디드 시스템 펌웨어의 대상 무결성 코드를 획득하는 대상 무결성 코드 획득부;
    원본 펌웨어의 원본 무결성 코드를 획득하는 원본 무결성 코드 획득부; 및
    상기 대상 무결성 코드 및 상기 원본 무결성 코드를 이용하여 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 무결성 판단부
    를 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 청구항 1에 있어서,
    상기 통신 인터페이스는
    유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 중 어느 하나 이상을 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치.
  6. 청구항 5에 있어서,
    상기 임베디드 시스템의 펌웨어 무결성 검증 장치는
    상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 화면에 표시하는 화면 표시부
    를 더 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치.
  7. 청구항 6에 있어서,
    상기 대상 무결성 코드 획득부는
    상기 프로그램을 저장 및 갱신하는 프로그램 데이터베이스를 포함하고,
    상기 원본 무결성 코드 획득부는
    상기 원본 펌웨어를 저장 및 갱신하는 펌웨어 데이터베이스를 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치.
  8. 청구항 7에 있어서,
    상기 펌웨어 데이터베이스는
    상기 원본 펌웨어의 원본 무결성 코드를 저장 및 갱신하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치.
  9. 청구항 8에 있어서,
    상기 무결성 판단부는
    상기 대상 무결성 코드 및 상기 원본 무결성 코드를 비교하고,
    상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드의 동일 여부에 따라 무결성이 유지되는지 여부를 달리 판단하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치.
  10. 청구항 9에 있어서,
    상기 무결성 판단부는
    상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일한 경우 무결성이 유지되는 것으로 판단하고,
    상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일하지 아니한 경우 무결성이 유지되지 않는 것으로 판단하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치.
  11. 프로그램 데이터베이스에 저장된, 무결성 코드 산출 프로그램의 검사 합(checksum)이 정상인지 판단하는 단계;
    상기 프로그램의 검사 합이 정상인 경우, 임베디드 시스템과의 통신 인터페이스를 통해 상기 프로그램을 임베디드 시스템의 실행 메모리에 복사하는 단계;
    임베디드 시스템과의 통신 인터페이스를 통해 상기 프로그램의 실행 신호를 송신하여 상기 프로그램을 직접 실행시키는 단계;
    상기 프로그램의 실행 결과로서 임베디드 시스템 펌웨어의 대상 무결성 코드를 획득하는 단계;
    원본 펌웨어의 원본 무결성 코드를 획득하는 단계; 및
    상기 대상 무결성 코드 및 상기 원본 무결성 코드를 이용하여 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 단계
    를 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 청구항 11에 있어서,
    상기 통신 인터페이스는
    유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 중 어느 하나 이상을 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법.
  16. 청구항 15에 있어서,
    상기 임베디드 시스템의 펌웨어 무결성 검증 방법은
    상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 화면에 표시하는 단계
    를 더 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법.
  17. 청구항 16에 있어서,
    상기 대상 무결성 코드를 획득하는 단계는
    상기 프로그램을 저장 및 갱신하는 프로그램 데이터베이스를 포함하고,
    상기 원본 무결성 코드를 획득하는 단계는
    상기 원본 펌웨어를 저장 및 갱신하는 펌웨어 데이터베이스를 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법.
  18. 청구항 17에 있어서,
    상기 펌웨어 데이터베이스는
    상기 원본 펌웨어의 원본 무결성 코드를 저장 및 갱신하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법.
  19. 청구항 18에 있어서,
    상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 단계는
    상기 대상 무결성 코드 및 상기 원본 무결성 코드를 비교하고,
    상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드의 동일 여부에 따라 무결성이 유지되는지 여부를 달리 판단하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법.
  20. 청구항 19에 있어서,
    상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 단계는
    상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일한 경우 무결성이 유지되는 것으로 판단하고,
    상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일하지 아니한 경우 무결성이 유지되지 않는 것으로 판단하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법.
KR1020120138417A 2012-11-30 2012-11-30 임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법 KR101457086B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120138417A KR101457086B1 (ko) 2012-11-30 2012-11-30 임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법
US13/941,520 US9021609B2 (en) 2012-11-30 2013-07-14 Apparatus and method for verifying integrity of firmware of embedded system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120138417A KR101457086B1 (ko) 2012-11-30 2012-11-30 임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20140070203A KR20140070203A (ko) 2014-06-10
KR101457086B1 true KR101457086B1 (ko) 2014-11-12

Family

ID=50826924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120138417A KR101457086B1 (ko) 2012-11-30 2012-11-30 임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법

Country Status (2)

Country Link
US (1) US9021609B2 (ko)
KR (1) KR101457086B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230060416A (ko) 2021-10-27 2023-05-04 경북대학교 산학협력단 소프트웨어의 오동작을 제어하는 펌웨어 시스템 및 펌웨어 제어방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102557193B1 (ko) 2016-06-22 2023-07-21 한국전자통신연구원 임베디드 디바이스 제어장치 및 방법
KR102481797B1 (ko) * 2017-11-09 2022-12-28 삼성전자주식회사 서버, 전자장치 및 그의 제어방법
KR102250779B1 (ko) * 2019-05-14 2021-05-11 단국대학교 산학협력단 실행코드 무결성 검증 방법 및 장치, 그것을 포함하는 임베디드 장치
US11409872B2 (en) * 2019-06-28 2022-08-09 Seagate Technology Llc Confirming a version of firmware loaded to a processor-based device
KR102289456B1 (ko) 2020-05-21 2021-08-12 단국대학교 산학협력단 Plc용 펌웨어 무결성을 검증하기 위한 원격 보증증명 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100750477B1 (ko) * 2006-03-03 2007-08-22 김건 임베디드 시스템의 실시간 모니터링 데이타 통신 방법
KR20080023841A (ko) * 2006-09-12 2008-03-17 카시와야마 토요히테 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 시스템 및방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030009687A1 (en) * 2001-07-05 2003-01-09 Ferchau Joerg U. Method and apparatus for validating integrity of software
US20030217358A1 (en) * 2002-05-17 2003-11-20 Sun Microsystems, Inc. Method, system, and article of manufacture for firmware downloads
US6973305B2 (en) 2003-09-10 2005-12-06 Qualcomm Inc Methods and apparatus for determining device integrity
US20060101310A1 (en) * 2004-10-22 2006-05-11 Nimrod Diamant Device, system and method for verifying integrity of software programs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100750477B1 (ko) * 2006-03-03 2007-08-22 김건 임베디드 시스템의 실시간 모니터링 데이타 통신 방법
KR20080023841A (ko) * 2006-09-12 2008-03-17 카시와야마 토요히테 펌웨어 업그레이드와 손상된 펌웨어 자동 복구 시스템 및방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230060416A (ko) 2021-10-27 2023-05-04 경북대학교 산학협력단 소프트웨어의 오동작을 제어하는 펌웨어 시스템 및 펌웨어 제어방법

Also Published As

Publication number Publication date
US9021609B2 (en) 2015-04-28
US20140157427A1 (en) 2014-06-05
KR20140070203A (ko) 2014-06-10

Similar Documents

Publication Publication Date Title
KR101457086B1 (ko) 임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법
EP2863303B1 (en) Method for confirming correction program, confirming program for confirming correction program, and information processing apparatus
US10397212B2 (en) Information device, data processing system, data processing method, and non-transitory storage medium for executing content upon authentication
EP3335147A1 (en) Device birth certificate
US20170324567A1 (en) Signature verification device, signature generation device, signature processing system, signature verification method, and signature generation method
WO2015041161A1 (ja) 書換検出システム、書換検出装置及び情報処理装置
US11630659B2 (en) In-vehicle update device, update processing program, and program update method
KR102593255B1 (ko) 전자 유닛 및 이러한 전자 장치에서 수행되는 방법
JP2017200040A (ja) 演算装置、認証システム、認証方法
US20170302693A1 (en) Rewrite detection system and information processing device
EP3276874B1 (en) Server, certificate generation instruction method, and program
JP6887108B2 (ja) 不正検知電子制御ユニット、電子制御ユニット、車載ネットワークシステム、不正検知方法およびコンピュータプログラム
CN110239482B (zh) 移动设备以及车辆
CN108959906B (zh) 数据获取方法、移动终端、电子设备、产线标定系统、可读存储介质及计算机设备
CN110276193B (zh) 风险特征输出方法、应用运行控制方法、系统及装置
CN111444496A (zh) 应用控制方法、装置、设备以及存储介质
JP2006244164A (ja) ソフトウェア更新装置、ソフトウェア更新システム、ソフトウェア更新方法、および機器管理装置
KR101641639B1 (ko) 디바이스 페어링 방법 및 디바이스
CN110968841A (zh) 可编程逻辑控制器的激活方法、装置和系统
KR102325169B1 (ko) 보안 표시 방법, 장치 및 보안 단말
KR20160009955A (ko) 차량과 무선 단말기 연결 방법
WO2017084717A1 (en) Encryption setup verification
JP6654206B2 (ja) 計測システム
CN108234399B (zh) 一种接口通信方法及终端
JP6733264B2 (ja) 画像処理装置、及び通信装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170918

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 6