KR101457086B1 - 임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법 - Google Patents
임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F21/645—Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Detection And Correction Of Errors (AREA)
- Stored Programmes (AREA)
Abstract
임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법이 개시된다. 본 발명에 따른 임베디드 시스템의 펌웨어 무결성 검증 장치는, 임베디드 시스템 펌웨어의 대상 무결성 코드를 획득하는 대상 무결성 코드 획득부; 원본 펌웨어의 원본 무결성 코드를 획득하는 원본 무결성 코드 획득부; 및 상기 대상 무결성 코드 및 상기 원본 무결성 코드를 이용하여 상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 무결성 판단부를 포함한다.
Description
본 발명은 임베디드 시스템의 펌웨어 무결성 검증에 관한 것으로, 특히 무결성 코드 비교를 통한 임베디드 시스템의 펌웨어 무결성 검증 장치 및 방법에 관한 것이다.
최근 운영체제(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)를 나타낸 동작 흐름도이다.
도 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: 통신 인터페이스
120: 원본 무결성 코드 획득부
130: 무결성 판단부
140: 화면 표시부
210: 외부 장치
220: 임베디드 시스템
230: 통신 인터페이스
Claims (20)
- 프로그램 데이터베이스에 저장된, 무결성 코드 산출 프로그램의 검사 합(checksum)이 정상인지 판단하고,
상기 프로그램의 검사 합이 정상인 경우, 임베디드 시스템과의 통신 인터페이스를 통해 상기 프로그램을 임베디드 시스템의 실행 메모리에 복사하고,
상기 프로그램의 실행 신호를 송신하여 상기 프로그램을 직접 실행시키고,
상기 프로그램의 실행 결과로서 임베디드 시스템 펌웨어의 대상 무결성 코드를 획득하는 대상 무결성 코드 획득부;
원본 펌웨어의 원본 무결성 코드를 획득하는 원본 무결성 코드 획득부; 및
상기 대상 무결성 코드 및 상기 원본 무결성 코드를 이용하여 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 무결성 판단부
를 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치. - 삭제
- 삭제
- 삭제
- 청구항 1에 있어서,
상기 통신 인터페이스는
유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 중 어느 하나 이상을 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치. - 청구항 5에 있어서,
상기 임베디드 시스템의 펌웨어 무결성 검증 장치는
상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 화면에 표시하는 화면 표시부
를 더 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치. - 청구항 6에 있어서,
상기 대상 무결성 코드 획득부는
상기 프로그램을 저장 및 갱신하는 프로그램 데이터베이스를 포함하고,
상기 원본 무결성 코드 획득부는
상기 원본 펌웨어를 저장 및 갱신하는 펌웨어 데이터베이스를 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치. - 청구항 7에 있어서,
상기 펌웨어 데이터베이스는
상기 원본 펌웨어의 원본 무결성 코드를 저장 및 갱신하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치. - 청구항 8에 있어서,
상기 무결성 판단부는
상기 대상 무결성 코드 및 상기 원본 무결성 코드를 비교하고,
상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드의 동일 여부에 따라 무결성이 유지되는지 여부를 달리 판단하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치. - 청구항 9에 있어서,
상기 무결성 판단부는
상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일한 경우 무결성이 유지되는 것으로 판단하고,
상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일하지 아니한 경우 무결성이 유지되지 않는 것으로 판단하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 장치. - 프로그램 데이터베이스에 저장된, 무결성 코드 산출 프로그램의 검사 합(checksum)이 정상인지 판단하는 단계;
상기 프로그램의 검사 합이 정상인 경우, 임베디드 시스템과의 통신 인터페이스를 통해 상기 프로그램을 임베디드 시스템의 실행 메모리에 복사하는 단계;
임베디드 시스템과의 통신 인터페이스를 통해 상기 프로그램의 실행 신호를 송신하여 상기 프로그램을 직접 실행시키는 단계;
상기 프로그램의 실행 결과로서 임베디드 시스템 펌웨어의 대상 무결성 코드를 획득하는 단계;
원본 펌웨어의 원본 무결성 코드를 획득하는 단계; 및
상기 대상 무결성 코드 및 상기 원본 무결성 코드를 이용하여 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 단계
를 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법. - 삭제
- 삭제
- 삭제
- 청구항 11에 있어서,
상기 통신 인터페이스는
유에스비(Universal Serial Bus, USB), 유아트(Universal Asynchronous Receiver/Transmitter, UART) 및 이더넷(Ethernet) 중 어느 하나 이상을 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법. - 청구항 15에 있어서,
상기 임베디드 시스템의 펌웨어 무결성 검증 방법은
상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 화면에 표시하는 단계
를 더 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법. - 청구항 16에 있어서,
상기 대상 무결성 코드를 획득하는 단계는
상기 프로그램을 저장 및 갱신하는 프로그램 데이터베이스를 포함하고,
상기 원본 무결성 코드를 획득하는 단계는
상기 원본 펌웨어를 저장 및 갱신하는 펌웨어 데이터베이스를 포함하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법. - 청구항 17에 있어서,
상기 펌웨어 데이터베이스는
상기 원본 펌웨어의 원본 무결성 코드를 저장 및 갱신하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법. - 청구항 18에 있어서,
상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 단계는
상기 대상 무결성 코드 및 상기 원본 무결성 코드를 비교하고,
상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드의 동일 여부에 따라 무결성이 유지되는지 여부를 달리 판단하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법. - 청구항 19에 있어서,
상기 임베디드 시스템 펌웨어의 무결성이 유지되는지 여부를 판단하는 단계는
상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일한 경우 무결성이 유지되는 것으로 판단하고,
상기 비교 결과 상기 대상 무결성 코드 및 상기 원본 무결성 코드가 동일하지 아니한 경우 무결성이 유지되지 않는 것으로 판단하는 것을 특징으로 하는 임베디드 시스템의 펌웨어 무결성 검증 방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230060416A (ko) | 2021-10-27 | 2023-05-04 | 경북대학교 산학협력단 | 소프트웨어의 오동작을 제어하는 펌웨어 시스템 및 펌웨어 제어방법 |
Families Citing this family (5)
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)
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)
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 |
-
2012
- 2012-11-30 KR KR1020120138417A patent/KR101457086B1/ko active IP Right Grant
-
2013
- 2013-07-14 US US13/941,520 patent/US9021609B2/en not_active Expired - Fee Related
Patent Citations (2)
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)
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 | |
US20140173688A1 (en) | Method and System for Providing Device-Specific Operator Data for an Automation Device in an Automation Installation | |
WO2017187924A1 (ja) | 演算装置、認証システム、認証方法 | |
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) | 전자 유닛 및 이러한 전자 장치에서 수행되는 방법 | |
US20170302693A1 (en) | Rewrite detection system and information processing device | |
JP6887108B2 (ja) | 不正検知電子制御ユニット、電子制御ユニット、車載ネットワークシステム、不正検知方法およびコンピュータプログラム | |
CN107817987B (zh) | 一种硬件配置方法、***、终端及服务器 | |
CN110276193B (zh) | 风险特征输出方法、应用运行控制方法、***及装置 | |
CN110239482B (zh) | 移动设备以及车辆 | |
BR112015006794B1 (pt) | Método e aparelho para verificar um terminal | |
EP3276874B1 (en) | Server, certificate generation instruction method, and program | |
CN111444496A (zh) | 应用控制方法、装置、设备以及存储介质 | |
CN108959906B (zh) | 数据获取方法、移动终端、电子设备、产线标定***、可读存储介质及计算机设备 | |
CN110968841A (zh) | 可编程逻辑控制器的激活方法、装置和*** | |
KR102325169B1 (ko) | 보안 표시 방법, 장치 및 보안 단말 | |
CN111970124B (zh) | 计算机工厂模式控制方法、装置、计算机设备和存储介质 | |
KR20160009955A (ko) | 차량과 무선 단말기 연결 방법 | |
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 |