KR20060064883A - 보안 부팅 장치 및 방법 - Google Patents

보안 부팅 장치 및 방법 Download PDF

Info

Publication number
KR20060064883A
KR20060064883A KR20040103562A KR20040103562A KR20060064883A KR 20060064883 A KR20060064883 A KR 20060064883A KR 20040103562 A KR20040103562 A KR 20040103562A KR 20040103562 A KR20040103562 A KR 20040103562A KR 20060064883 A KR20060064883 A KR 20060064883A
Authority
KR
South Korea
Prior art keywords
operating system
check value
area
boot
stored
Prior art date
Application number
KR20040103562A
Other languages
English (en)
Other versions
KR100654446B1 (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 KR20040103562A priority Critical patent/KR100654446B1/ko
Priority to JP2005344036A priority patent/JP2006164273A/ja
Priority to US11/291,891 priority patent/US7681024B2/en
Priority to EP20050257457 priority patent/EP1669863A3/en
Priority to CNA2005101345077A priority patent/CN1786916A/zh
Publication of KR20060064883A publication Critical patent/KR20060064883A/ko
Application granted granted Critical
Publication of KR100654446B1 publication Critical patent/KR100654446B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 보안 부팅 장치 및 방법에 관한 것으로서, 더욱 상세하게는 운영 체제에 의한 부팅시 무결성을 보장할 수 있는 보안 부팅 장치 및 방법에 관한 것이다.
본 발명의 실시예에 따른 보안 부팅 장치는 운영 체제를 저장하는 제 1영역과 운영 체제에 대응하는 소정의 체크값을 가지는 알고리즘의 체크값을 저장하는 제 2영역을 포함하는 운영 체제 저장부와, 부팅시 상기 운영 체제가 로딩되는 메모리부와, 상기 로딩된 운영 체제에 따른 체크값을 상기 제 2영역에 저장된 체크값 산출시 사용된 알고리즘을 통해 산출하고, 상기 산출된 체크값을 상기 제 2영역에 저장된 체크값과 비교하여 상기 운영 체제의 무결성을 판단하는 제어부를 포함한다.
운영 체제, 무결성, 부팅

Description

보안 부팅 장치 및 방법{Apparatus and method for Secure booting}
도 1은 종래의 기술에 따른 보안 부팅 장치가 도시된 도면.
도 2는 종래의 기술에 따른 보안 부팅 방법이 도시된 도면.
도 3은 본 발명의 실시예에 따른 보안 부팅 장치가 도시된 도면.
도 4는 본 발명의 실시예에 따른 운영 체제를 저장하는 방법이 도시된 도면.
도 5는 본 발명의 실시예에 따라 저장된 운영 체제의 무결성을 판단하는 방법이 도시된 도면.
<도면의 주요 부분에 관한 부호의 설명>
110: 운영 체제 저장부 111: 제 1영역
112: 제 2영역 120: 메모리부
130: 제어부 140: 부팅 메모리부
본 발명은 보안 부팅 장치 및 방법에 관한 것으로서, 더욱 상세하게는 운영 체제에 의한 부팅시 무결성을 보장할 수 있는 보안 부팅 장치 및 방법에 관한 것이다.
일반적으로, 가전 기기, 통신 기기, 셋탑 박스 등의 내장형 시스템(Embedded System)에서는 데이터를 저장하고 처리하기 위한 저장 매체로 비휘발성 저장 장치가 많이 사용되고 있다. 또한, 내장형 시스템은 비휘발성 저장 장치에 운영 체제(Operation System)를 저장하고, 저장된 운영 체제에 의해 부팅되어 동작을 수행하게 된다. 이러한 운영 체제는 주로 비휘발성 저장 장치에 이미지(Image)의 형태로 저장된다.
이때, 내장형 시스템이 부팅될 때 비휘발성 저장 장치에 저장된 운영 체제가 변경없이 부팅된다는 것이 보장되어야 한다. 예를 들어, 휴대폰에 전원이 인가되어 휴대폰이 내장된 비휘발성 저장 장치에 저장된 운영 체제에 의해 부팅될 때 저장된 운영 체제의 무결성이 보장되어야 한다. 이는 운영 체제의 무결성이 보장되지 않아 내장형 시스템이 부팅될 때 외부의 공격자로부터 운영 체제가 변경될 경우 내장형 시스템이 정상적인 동작을 수행하지 못하기 때문이다.
따라서, 내장형 시스템의 운영 체제에 대한 무결성을 보장하여 안전한 부팅이 이루어지도록 하는 다양한 방안들이 제안되고 있다.
도 1은 종래의 기술에 따라 내장형 시스템이 안전한 부팅이 이루어지도록 하는 보안 부팅 장치가 도시된 도면이다.
운영 체제 및 운영 체제에 대응하는 고유의 체크값을 가지는 알고리즘의 체크값을 저장하는 운영 체제 저장부(10)와, 부팅시 운영 체제 저장부(10)에 저장된 운영 체제가 로딩되는 메모리부(20)와, 체크값 저장시 사용된 알고리즘을 통해 로딩된 운영 체제에 따른 체크값을 산출하고, 저장된 체크값과 산출된 체크값을 비교 하여 로딩된 운영 체제의 무결성을 판단하는 제어부(30)를 포함한다.
이때, 운영 체제 저장부(10)는 저장된 운영 체제 및 체크값이 인가된 전원이 제거되는 경우에도 유지될 수 있도록 비휘발성 저장 영역으로 이루어진다.
또한, 운영 체제를 통한 부팅이 이루어질 경우, 부팅 프로세스에 대한 정보를 포함하는 부팅 코드를 저장하는 부팅 코드 저장부(40)와, 운영 체제 저장부(10)에 저장되는 운영 체제 및 체크값을 암호화하고, 암호화된 운영 체제 및 체크값을 복호화하는 키를 저장하는 키 저장부(50)를 더 포함한다. 이때, 부팅 코드 저장부(40)는 읽기 전용으로 설정되어 있어 외부에서 부팅 코드를 변경하지 못하게 된다. 이때, 체크값 산출시 사용되는 알고리즘으로는 운영 체제가 1비트라도 변경되는 경우 다른 체크값을 가지게 되고, 동일한 체크값을 가지지 않는 조건에 맞는 모든 알고리즘이 사용된다.
또한, 키 저장부(50)는 일반적으로 위변조 방지 기술인 TRM(Tamper Resistance Module) 등과 같은 영역으로 이루어져 외부의 접근으로부터 키 저장부(50)에 저장된 키를 보호하게 된다. 이는 키 저장부(50)에 저장된 키가 외부에 노출될 경우, 암호화되어 운영 체제 저장부(10)에 저장된 운영 체제 및 체크값이 변경될 수 있기 때문이다. 또한, 키 저장부(50)는 전반적인 부팅 프로세스를 제어하는 제어부(130)와 내장되거나 별도로 구성된다.
도 2는 종래의 기술에 따른 보안 부팅 방법이 도시된 도면이다.
도시된 바와 같이, 먼저 전술한 내장형 시스템에 전원이 인가되면, 제어부(30)는 부팅 코드 저장부(40)에 저장된 부팅 코드를 판독하여 부팅을 프로세스를 시작하게 된다(S10).
이후, 제어부(30)는 부팅 코드에 따라 운영 체제 저장부(10)에 저장된 운영 체제를 메모리부(20)에 로딩하게 된다(S20). 이때 제어부(30)는 사전 지정된 맵핑 테이블에 따라 부팅 코드 저장부(40)에 저장된 부팅 코드 및 운영 체제 저장부(10)에서 메모리부(20)로 로딩된 운영 체제에 접근하게 된다.
또한, 제어부(30)는 키 저장부(50)에 저장된 키를 사용하여 로딩된 운영 체제를 복호화하게 된다(S30).
제어부(30)는 운영 체제 저장부(10)에 저장된 체크값 산출시 사용된 알고리즘을 사용하여 복호화된 운영 체제에 따른 체크값을 산출한다(S40).
제어부(30)는 산출부(20)에 의해 산출된 체크값과 로딩되어 복호화된 체크값을 비교하여 운영 체제 저장부(10)에 저장된 운영 체제의 무결성을 판단하게 된다(S50).
판단 결과 산출된 체크값과 로딩된 체크값이 동일한 경우, 운영 체제가 변경되지 않은 것으로 판단하고 부팅 프로세스를 정상적으로 진행하게 된다(S60).
만일, 판단 결과 산출된 체크값과 로딩된 체크값이 다른 경우, 운영 체제가 변경되어 무결성이 손상된 것으로 판단하고 부팅 과정을 중지하게 된다(S70).
이와 같은 보안 부팅 방법은 운영 체제의 변경 여부를 판단하기 위하여 소정의 알고리즘을 사용하게 된다. 이때, 사용된 알고리즘이 외부에 알려지게 되는 경우, 운영 체제를 변경한 후 알고리즘까지 변경하여 무결성을 손상시킬 수 있는 문제점이 있다. 또한, 알고리즘 저장부(40)는 외부로부터의 변경을 방지하기 위하여 읽기 전용으로 설정되어 있기 해당 알고리즘을 사용하는 내장형 시스템이 대량 생산된 후 알고리즘이 외부에 노출된 경우, 노출된 알고리즘을 변경하기 위해 많은 리콜 비용이 발생되는 문제점이 있다.
한편, 운영 체제 및 체크값을 암호화하기 위하여 키를 사용하게 되어 키를 저장하기 위한 TRM 등을 구성하기 위해 추가적인 비용이 소요된다. 이러한 키도 알고리즘과 마찬가지로 외부에 노출된 경우, 노출된 키를 변경하기 위해 많은 리콜 비용이 발생되는 문제점이 있다.
한국 공개 특허 2003-0074016은 여러 단계에 걸친 부팅 동작을 단일의 낸드(NAND) 인터페이스를 통해 이루어지도록 하여 부팅 속도를 향상시키는 낸드 플래시 메모리를 이용하여 구동되는 시스템 및 그 방법에 관한 것으로서, 이는 낸드 플래시 메모리를 이용하여 구동되는 시스템의 부팅시 운영 체제의 무결성을 보장하기 어렵다는 문제점이 있다.
본 발명은 운영 체제의 무결성을 판단하기 위한 구성을 간소화하고 안전한 부팅이 이루어질 수 있는 보안 부팅 장치 및 방법을 제공하는데 그 목적이 있다.
본 발명의 목적은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어 질 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 보안 부팅 장치는, 운영 체제를 저장하는 제 1영역과 운영 체제에 따라 소정의 체크값을 가지는 알고리즘의 체크값을 저장하는 제 2영역을 포함하는 운영 체제 저장부와, 부팅시 상기 운영 체제가 로딩되는 메모리부와, 상기 로딩된 운영 체제에 따른 체크값을 상기 제 2영역에 저장된 체크값 산출시 사용된 알고리즘을 통해 산출하고, 상기 산출된 체크값을 상기 제 2영역에 저장된 체크값과 비교하여 상기 운영 체제의 무결성을 판단하는 제어부를 포함한다.
또한, 상기 목적을 달성하기 위하여, 부팅시 제 1영역에 저장된 운영 체제를 로딩하는 단계와, 상기 운영 체제 저장시, 상기 운영 체제에 따라 소정의 체크값을 가지는 알고리즘에 의한 체크값을 제 2영역으로부터 판독하는 단계와, 상기 로딩된 운영 체제에 따른 체크값을 상기 제 2영역에 저장된 체크값 산출시 사용된 알고리즘을 통해 산출하고, 상기 판독된 체크값과 상기 산출된 체크값을 비교하여 상기 운영 체제의 무결성을 판단하는 단계를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범수를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 3은 본 발명의 실시예에 따른 보안 부팅 장치가 도시된 도면이다.
도시된 바와 같이, 본 발명의 실시예에 따른 보안 부팅 장치(100)는 운영 체제를 저장하는 제 1영역(111)과 운영 체제에 대응하는 소정의 체크값을 가지는 알고리즘의 체크값을 저장하는 제 2영역(112)을 포함하는 운영 체제 저장부(110)와, 부팅시 제 1영역(111)에 저장된 운영 체제가 로딩되는 메모리부(120)와, 로딩된 운영 체제에 따른 체크값을 제 2영역(112)에 저장된 알고리즘을 통해 산출하고, 산출된 체크값을 상기 제 2영역(112)에 저장된 체크값과 비교하여 운영 체제의 무결성을 판단하는 제어부(130)를 포함할 수 있다. 이때, 알고리즘의 체크값은 운영 체제에 대응하는 값으로서, 운영 체제를 통해 부팅이 이루어질 경우, 운영 체제의 무결성을 판단하기 위해 사용될 수 있다.
이때, 제 1영역(112)의 운영 체제는 압축 또는 암호화 등의 과정을 거쳐 저장될 수 있으며, 저장된 운영 체제는 메모리부(120)로 로딩될 때 압축 해제 또는 복호화 등의 과정을 거치게 된다.
또한, 제 2영역(112)은 본 발명의 실시예에 따른 보안 부팅 장치(100)에 의해 부팅이 이루어질 경우, 부팅 프로세스에 대한 정보를 포함하는 부팅 코드를 저장할 수 있다. 또한, 운영 체제 저장부(100)는 인가된 전원이 중지되는 경우에도 제 1영역(111) 및 제 2영역(112)에 저장된 정보가 유지될 수 있도록 비휘발성 저장 영역으로 이루어질 수 있다. 본 발명의 실시예에서 제 1영역(111)과 제 2영역(112)이 하드웨어적으로 통합된 비휘발성 저장 영역으로 구성되는 경우를 예를 들어 설명하고 있으나, 이에 국한되지 않고 제 1영역(111)과 제 2영역(112)은 하드웨어적으로 별도로 구성될수도 있다. 본 발명의 실시예에 따른 보안 부팅 장치(100)는 전원이 인가되어 부팅이 이루어질 경우, 제 2영역(112)에 저장된 부팅 코드가 로딩되어, 로딩된 부팅 코드에 따라 부팅이 진행될 수 있도록 하는 부팅 메모리부(140)를 더 포함할 수 있다. 이러한 부팅 메모리부(140)는 부팅 코드가 로딩되면, 로딩된 부팅 코드가 변경되는 것을 방지할 수 있도록 읽기 전용 영역으로 변경될 수 있으며, 인가된 전원이 차단될때까지 읽기 전용 상태를 유지하게 된다. 이때, 제어부(130)는 부팅 메모리부(140)에 로딩된 부팅 코드를 통해 부팅 프로세스를 진행하게 된다.
또한, 본 발명의 실시예에서 부팅 코드가 제 2영역(112)에 저장된 경우를 예를 들어 설명하고 있으나, 경우에 따라 제 1영역(111) 또는 별도로 구성된 읽기 전용으로 설정된 메모리에 저장될 수도 있다. 한편, 부팅 코드의 부팅 메모리부(140)로의 로딩은, 부팅 코드에 본 발명의 실시예에 따른 보안 부팅 장치(100)로 전원이 인가되는 경우 자동으로 부팅 메모리부(140)로 로딩될 수 있는 자동 실행 코드를 사용하여 이루어질 수 있다.
이때, 부팅 코드의 크기가 부팅 메모리부(140)의 크기를 초과하여 모두 저장되지 못하는 경우에는 부팅 코드 중 부팅 메모리부(140)의 크기를 초과하는 부분에 대해서는 메모리부(120)에 저장하고, 초과한 부분에 대한 제어가 메모리부(130)의 부팅 코드 영역으로 변경될 수 있다.
한편, 본 발명의 실시예에서는 부팅 메모리부(140)가 하드웨어적으로 운영 체제 저장부(110)와 별도로 구성되는 경우를 예를 들어 설명하고 있으나, 이에 국한되지 않고 부팅 메모리부(140)와 운영 체제 저장부(110)가 하드웨어적으로 통합되어 구성될수도 있다.
구체적으로, 플래시 메모리 등과 같은 비휘발성 저장 장치를 통한 부팅시 부트 핸들러 코드 및 부트 스트랩 로더 코드 등을 로딩하기 위해 레지스터가 비휘발성 저장 장치에 내장될 수 있다. 따라서, 운영 체제 저장부(110)를 통한 부팅시에는 부팅 메모리부(140)가 운영 체제 저장부(110)에 내장될 수 있는 것이다.
또한, 운영 체제 저장부(110)를 통한 부팅이 이루어질 경우에는 운영 체제 저장부(110)와 접속되는 호스트 기기와의 데이터 처리를 위한 별도의 컨트롤러가 운영 체제 저장부(110)에 내장될 수 있다. 한편, 운영 체제 저장부(110)를 통한 부팅시, 본 발명의 실시예에 따른 구성요소들(120, 130, 140)은 운영 체제 저장부(110)와 접속되는 호스트 기기의 구성 요소로 이해될 수 있다.
또한, 운영 체제 저장부(110)의 제 2영역(112)은 경우에 따라 일반적인 비휘발성 저장 영역으로 설정되기도 하고 정보 기록시 더 이상의 변경이 이루어지지 않도록 설정될 수도 있다. 예를 들어, 제 2영역(112)은 1회만 기록 가능하기 때문에 OTP(One Time Programmable) 영역으로 칭하여질수 있고, 운영 체제 저장부(110)에서 제 2영역(112)에 해당하는 쓰기 로직에 사전 지정된 기준치 이상의 전압을 가하여 쓰기 로직을 끊어지게 함으로써, 더 이상의 데이터 기록을 불가능하게 할 수 있 다. 따라서, 제 2영역(112)에 체크값 및 부팅 코드를 기록하고, 사전 지정된 기준치 이상의 전압을 가하여 더 이상의 데이터 기록을 불가능하게 하여 읽기 전용 영역으로 설정할 수 있다.
이와 같이, 제 2영역(112)을 읽기 전용 영역으로 변경하는 것은 본 발명의 실시예에서 사용되는 체크값 및 부팅 코드가 변경되는 경우 제 1영역(111)에 저장된 운영 체제에 대한 무결성을 완전하게 보장하기 어렵기 때문이다. 따라서, 제 2영역(112)을 1회만 기록 가능한 영역으로 설정하여 외부로부터의 체크값 및 부팅 코드에 대한 변경을 사전에 방지할 수 있다.
또한, 제 1영역(111)에 저장된 운영 체제에 대한 무결성을 판단하기 위해서는, 제 2영역(112)에 저장된 체크값과 저장된 체크값 산출시 사용된 알고리즘(예를 들어, One way hash 알고리즘 등)을 통해 산출한 저장된 운영 체제에 대한 체크값을 비교하여 저장된 알고리즘의 무결성을 판단하게 된다. 이러한 알고리즘은 본 발명의 실시예에 따른 운영 체제 저장부(110)에 저장될수도 있고, 별도로 구성된 메모리에 저장될수도 있다. 또한, 본 발명의 실시예에서 사용되는 알고리즘은 운영 체제에 대응하는 소정의 체크값을 가지며, 운영 체제에 따라 고유한 체크값을 가지게 된다.
이때, 제 2영역(112)에 저장된 체크값이 변경되는 경우, 저장된 운영 체제가 변경된 경우에도 저장된 운영 체제가 변경되지 않는 것으로 판단되는 경우가 발생하여 본 발명의 실시예에 따른 보안 부팅 장치(100)가 비정상적인 동작을 수행할 수 있기 때문이다. 따라서, 제어부(130)는 제 2영역(112)에 체크값 및 부팅 코드를 저장한 후, 제 2영역(112)을 읽기 전용 영역으로 설정하게 된다.제어부(130)는 사전 지정된 맵핑 테이블을 통해서 메모리부(120) 및 부팅 메모리부(130)에 접근할 수 있으며, 이러한 메모리부(120) 및 부팅 메모리부(130)는 캐쉬, ROM, PROM, EPROM, EEPROM, 플래쉬, SRAM 및 DRAM 과 같은 형태의 장치들이 포함될 수 있으나, 이에 한정되지 않는다.
또한, 제어부(130)는 본 발명의 실시예에 따른 보안 부팅 장치(100)가 부팅될 경우, 메모리부(120)에 로딩된 운영 체제와 제 2영역(112)에 저장된 체크값을 통해 로딩된 운영 체제의 무결성을 판단할 수 있다.
구체적으로, 제어부(130)는 로딩된 운영 체제에 따른 체크값을 제 2영역(112)에 저장된 체크값과 비교하여 동일한 경우 무결성이 완전하여 정상적인 부팅 프로세스를 진행하게 된다. 한편, 제어부(130)는 로딩된 운영 체제에 따라 산출된 체크값과 제 2영역(112)에 저장된 체크값이 다른 경우 무결성이 손상된 것으로 판단하고, 부팅 프로세스를 중지하게 된다.
이하, 본 발명의 실시예에 따른 보안 부팅 장치를 이용한 무결성을 보장할 수 있는 부팅 방법을 살펴보기로 한다.
도 4는 본 발명의 실시예에 따라 운영 체제 및 운영 체제의 무결성을 판단할 수 있는 체크값 및 부팅 코드를 저장하는 방법이 도시된 도면이다.
도시된 바와 같이, 먼저 운영 체제 저장부(110)의 제 1영역(111)에 소정의 운영 체제를 저장한다(S110). 이때, 저장되는 운영 체제는 압축 또는 암호화 등과 같은 과정을 거쳐 저장될 수 있다.
이후, 저장된 운영 체제에 따라 고유한 체크값을 가지는 알고리즘의 체크값과 부팅 프로세스에 대한 정보를 포함하는 부팅 코드가 제 2영역(112)저장한다(S120). 이때, 알고리즘은 운영 체제에 따라 대응하는 고유한 체크값을 가지며, 운영 체제의 정보가 1비트라도 변경되는 경우 다른 체크값을 가지게 되어 동일한 체크값이 존재하지 않는 조건에 맞는 모든 알고리즘이 사용될 수 있다.
또한, 제 2영역(112)는 1회 기록 가능 영역이기 때문에 체크값 및 부팅 코드가 저장된 후 읽기 전용 영역으로 변경된다(S130). 이때, 제 2영역(112)을 읽기 전용 상태로 변경하는 것은, 전술한 바와 같이 제 2영역(112)의 쓰기 로직을 끊어버림으로써 이루어질 수 있다.
도 5는 전술한 도4의 방법을 통해 저장된 운영 체제, 체크값 및 부팅 코드를 통해 부팅을 진행하는 부팅 방법이 도시된 도면이다.
도시된 바와 같이, 먼저 본 발명의 실시예에 따른 보안 부팅 장치(100)로 전원이 인가되면, 제 2영역(112)에 저장된 부팅 코드가 부팅 메모리부(140)에 로딩된다(S210). 이때, 부팅 메모리부(140)는 부팅 코드가 로딩되면 읽기 전용 영역으로 변경되어 인가된 전원이 차단될때까지 읽기 전용 상태를 유지하여 로딩된 부팅 코드가 변경되는 것을 방지하게 된다. 또한, 제 2영역(112)에 저장된 부팅 코드는 내장된 자동 실행 코드 등에 의해 전원 인가시 부팅 메모리부(140)에 자동으로 로딩될 수 있다.
제어부(210)는 로딩된 부팅 코드를 판독하여 부팅 프로세스를 시작하게 된다(S220).
부팅 프로세스가 시작되면, 본 발명의 실시예에 따른 보안 부팅 장치(100)의 구성 요소들(110, 120, 130, 140)이 초기화되어 사용 가능한 상태가 되어 제 1영역(111)에 저장된 운영 체제가 메모리부(120)에 로딩된다(S230). 이때, 저장된 운영 체제가 압축 또는 암호화 등과 같은 과정을 거친 경우, 메모리부(120)에 로딩될 때 압축 해제 또는 복호화 등과 같은 과정을 거칠 수 있다.
이후, 제어부(130)는 제 2영역(112)에 저장된 체크값 산출시 사용된 알고리즘을 통해 로딩된 운영 체제에 따른 체크값을 산출한다(S240).
제어부(130)는 산출된 체크값을 제 2영역(112)에 저장된 체크값과 비교하여 로딩된 운영 체제의 무결성을 판단하게 된다(S250).
판단 결과, 산출된 체크값과 저장된 체크값이 동일한 경우, 로딩된 운영 체제가 변경되지 않아 무결성이 보장되는 것으로 판단하고, 부팅 프로세스를 계속하여 진행하게 된다(S260).
만일, 판단 결과, 산출된 체크값과 저장된 체크값이 다른 겨웅, 로딩된 운영 체제가 변경되어 무결성이 손상된 것으로 판단하고, 부팅 프로세스를 중지하게 된다(S270).
이와 같은 보안 부팅 방법의 종래의 TRM 등과 같은 위변조 기술을 사용한 영역을 별도로 사용하지 않고 비휘발성 저장 영역만으로도 운영 체제의 무결성을 보장하여 안전한 부팅이 이루어질 수 있다.
이상과 같이 본 발명에 따른 보안 부팅 장치 및 방법을 예시된 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명은 한정 되지 않으며 그 발명의 기술사상 범위내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.
상기한 바와 같은 본 발명의 보안 부팅 장치 및 방법에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
첫째, 운영 체제의 무결성을 보장하기 위해 운영 체제 및 운영 체제와 관련된 정보를 암호화하기 위한 키를 저장하는 영역을 사용하지 않고 용이하게 운영 체제의 무결성을 보장할 수 있는 장점이 있다.
둘째, 운영 체제의 무결성을 보장하기 위한 알고리즘 및 알고리즘에 따른 체크값을 저장한 후, 저장된 영역을 읽기 전용 영역으로 변경하여 알고리즘 및 체크값이 노출된 경우에도 알고리즘 및 체크값의 변경을 방지하여 대량의 리콜이 발생되는 것을 방지할 수 있는 장점도 있다.

Claims (12)

  1. 운영 체제를 저장하는 제 1영역과 운영 체제에 대응하는 소정의 체크값을 가지는 알고리즘의 체크값을 저장하는 제 2영역을 포함하는 운영 체제 저장부와,
    부팅시 상기 운영 체제가 로딩되는 메모리부와,
    상기 로딩된 운영 체제에 따른 체크값을 상기 제 2영역에 저장된 체크값 산출시 사용된 알고리즘을 통해 산출하고, 상기 산출된 체크값을 상기 제 2영역에 저장된 체크값과 비교하여 상기 운영 체제의 무결성을 판단하는 제어부를 포함하는 보안 부팅 장치.
  2. 제 1 항에 있어서,
    상기 운영 체체 저장부는 비휘발성 저장 영역으로 이루어지는 보안 부팅 장치.
  3. 제 2 항에 있어서,
    상기 제 2영역은 1회 기록 가능 영역으로 이루어지며, 상기 체크값 저장 후 읽기 전용 영역으로 변경되는 보안 부팅 장치.
  4. 제 3 항에 있어서,
    상기 제 2영역은 부팅 프로세스 정보를 포함하는 부팅 코드가 저장되며, 상 기 부팅 코드는 상기 체크값과 함께 기록되는 보안 부팅 장치.
  5. 제 4 항에 있어서,
    상기 부팅 코드가 로딩되는 부팅 메모리부를 더 포함하는 보안 부팅 장치.
  6. 제 5 항에 있어서,
    상기 부팅 메모리부는 상기 부팅 코드가 로딩되면, 읽기 전용 영역으로 변경되는 보안 부팅 장치.
  7. 부팅시 제 1영역에 저장된 운영 체제를 로딩하는 단계와,
    상기 운영 체제 저장시, 상기 운영 체제에 대응하는 소정의 체크값을 가지는 알고리즘에 의한 체크값을 제 2영역으로부터 판독하는 단계와,
    상기 로딩된 운영 체제에 따른 체크값을 상기 제 2영역에 저장된 체크값 산출시 사용된 알고리즘을 통해 산출하고, 상기 판독된 체크값과 상기 산출된 체크값을 비교하여 상기 운영 체제의 무결성을 판단하는 단계를 포함하는 보안 부팅 방법.
  8. 제 7 항에 있어서,
    상기 제 1영역 및 제 2영역은 비휘발성 저장 영역으로 이루어지는 보안 부팅 방법.
  9. 제 8 항에 있어서,
    상기 제 2영역은 1회 기록 가능 영역으로 이루어지며, 상기 체크값 저장시 읽기 전용 영역으로 변경되는 보안 부팅 방법.
  10. 제 9 항에 있어서,
    상기 제 2영역은 부팅 프로스세에 대한 정보를 저장하는 부팅 코드를 저장하는 보안 부팅 방법.
  11. 제 10 항에 있어서,
    상기 부팅 코드는 제 2영역에 상기 체크값 저장시 상기 제 2영역에 함께 저장되는 보안 부팅 방법.
  12. 제 11 항에 있어서,
    상기 부팅 코드는 부팅시 소정의 부팅 메모리부에 로딩되며, 상기 부팅 메모리부는 상기 부팅 코드 로딩 후 읽기 전용 영역으로 변경되는 보안 부팅 방법.
KR20040103562A 2004-12-09 2004-12-09 보안 부팅 장치 및 방법 KR100654446B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR20040103562A KR100654446B1 (ko) 2004-12-09 2004-12-09 보안 부팅 장치 및 방법
JP2005344036A JP2006164273A (ja) 2004-12-09 2005-11-29 保安ブート装置及び方法
US11/291,891 US7681024B2 (en) 2004-12-09 2005-12-02 Secure booting apparatus and method
EP20050257457 EP1669863A3 (en) 2004-12-09 2005-12-03 Secure booting apparatus and method
CNA2005101345077A CN1786916A (zh) 2004-12-09 2005-12-08 安全引导设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20040103562A KR100654446B1 (ko) 2004-12-09 2004-12-09 보안 부팅 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20060064883A true KR20060064883A (ko) 2006-06-14
KR100654446B1 KR100654446B1 (ko) 2006-12-06

Family

ID=35695685

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20040103562A KR100654446B1 (ko) 2004-12-09 2004-12-09 보안 부팅 장치 및 방법

Country Status (5)

Country Link
US (1) US7681024B2 (ko)
EP (1) EP1669863A3 (ko)
JP (1) JP2006164273A (ko)
KR (1) KR100654446B1 (ko)
CN (1) CN1786916A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100894251B1 (ko) * 2006-12-28 2009-04-21 삼성전자주식회사 다중화된 에스피디 롬을 가지는 메모리 모듈 시스템 및 그부팅 방법
KR101318112B1 (ko) * 2012-04-13 2013-10-16 하나시스 주식회사 결제 시스템 피공급자에 의한 결제망 임의 전환 방지 결제 단말기
KR101502032B1 (ko) * 2008-03-06 2015-03-12 삼성전자주식회사 보안 기능을 갖는 프로세서 장치
KR20160042897A (ko) * 2013-08-15 2016-04-20 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 참조 플랫폼 매니페스트 및 데이터 씰링에 따른 보안 os 부팅 기법
KR101616793B1 (ko) * 2015-12-18 2016-04-29 국방과학연구소 애플리케이션 무결성 검사 방법
KR20220059865A (ko) * 2020-11-03 2022-05-10 유비벨록스(주) 사용자 인증모듈(usim)이 탑재되는 보안 요소

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158941B2 (en) * 2006-03-16 2015-10-13 Arm Limited Managing access to content in a data processing apparatus
US8122258B2 (en) * 2006-05-22 2012-02-21 Hewlett-Packard Development Company, L.P. System and method for secure operating system boot
KR100842333B1 (ko) * 2006-12-20 2008-07-01 삼성전자주식회사 스마트 카드 및 스마트 카드의 동작 방법
US7769993B2 (en) * 2007-03-09 2010-08-03 Microsoft Corporation Method for ensuring boot source integrity of a computing system
CN101782858B (zh) * 2010-02-22 2013-04-24 建汉科技股份有限公司 网络装置的***引导方法
JP5433498B2 (ja) * 2010-05-27 2014-03-05 株式会社東芝 暗号処理装置
CN102156828A (zh) * 2011-01-25 2011-08-17 北京握奇数据***有限公司 一种智能卡数据存、取过程中的校验方法及智能卡
WO2013012435A1 (en) 2011-07-18 2013-01-24 Hewlett-Packard Development Company, L.P. Security parameter zeroization
JP5776480B2 (ja) * 2011-10-07 2015-09-09 株式会社リコー 情報処理装置、正当性検証方法、正当性検証プログラム
US9779245B2 (en) * 2013-03-20 2017-10-03 Becrypt Limited System, method, and device having an encrypted operating system
KR20150085301A (ko) * 2014-01-15 2015-07-23 삼성전자주식회사 메모리 시스템의 동작 방법 및 이를 포함하는 메모리 시스템의 초기화 방법
CN103929675B (zh) * 2014-03-28 2018-07-17 深圳市九洲电器有限公司 一种机顶盒的通信实现方法及机顶盒
CN105354107A (zh) * 2015-10-22 2016-02-24 上海斐讯数据通信技术有限公司 NOR Flash的数据传输方法及***
CN106897348B (zh) * 2016-08-19 2020-10-27 创新先进技术有限公司 一种数据存储、数据校验、数据溯源方法和设备
CN108632024B (zh) * 2017-03-21 2022-06-28 中兴通讯股份有限公司 一种运行引导程序的方法及装置
CN108664280A (zh) * 2017-03-31 2018-10-16 深圳市中兴微电子技术有限公司 一种嵌入式***启动方法及装置
US20220391517A1 (en) * 2021-06-04 2022-12-08 Apple Inc. Ephemeral Data Storage

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04256113A (ja) * 1991-02-08 1992-09-10 Toshiba Corp コンピュータシステムのセキュリティ管理方式
US6182187B1 (en) 1993-04-07 2001-01-30 Compaq Computer Corporation System ROM including a flash EPROM and a ROM for storing primary boot code replacing a block flash EPROM
JP2002035384A (ja) * 1993-05-20 2002-02-05 Le Tekku:Kk 最終遊技機制御用マイクロコンピュータチップの製造方法
JPH09190354A (ja) * 1996-01-08 1997-07-22 Nec Corp ダウンラインロード方式
JP3461234B2 (ja) 1996-01-22 2003-10-27 株式会社東芝 データ保護回路
JPH09325914A (ja) * 1996-06-06 1997-12-16 Ryosaku Sakuraba ゲーム遊技機の制御装置
US6026293A (en) 1996-09-05 2000-02-15 Ericsson Inc. System for preventing electronic memory tampering
US5892902A (en) 1996-09-05 1999-04-06 Clark; Paul C. Intelligent token protected system with network authentication
JP3293760B2 (ja) * 1997-05-27 2002-06-17 株式会社エヌイーシー情報システムズ 改ざん検知機能付きコンピュータシステム
KR100313996B1 (ko) * 1998-01-08 2001-12-28 구자홍 컴퓨터시스템의바이오스데이터저장장치및방법
JP2000138917A (ja) * 1998-05-29 2000-05-16 Texas Instr Inc <Ti> 安全計算システム及び方法
US6405311B1 (en) * 1998-07-28 2002-06-11 Compaq Computer Corporation Method for storing board revision
US6263431B1 (en) 1998-12-31 2001-07-17 Intle Corporation Operating system bootstrap security mechanism
AUPQ334299A0 (en) 1999-10-08 1999-11-04 Centurion Tech Holdings Pty Ltd Security card
US6711675B1 (en) * 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
US6625729B1 (en) * 2000-03-31 2003-09-23 Hewlett-Packard Company, L.P. Computer system having security features for authenticating different components
US7073064B1 (en) * 2000-03-31 2006-07-04 Hewlett-Packard Development Company, L.P. Method and apparatus to provide enhanced computer protection
JP2002244753A (ja) * 2001-02-15 2002-08-30 Ricoh Co Ltd 光ディスク及びアプリケーションプログラムのインストール方法
US20020144104A1 (en) 2001-04-02 2002-10-03 Springfield Randall Scott Method and system for providing a trusted flash boot source
JP2003229284A (ja) * 2002-01-31 2003-08-15 Mitsubishi Electric Corp 照明システム
KR100886537B1 (ko) 2002-03-15 2009-03-02 삼성전자주식회사 부호분할다중접속 이동통신시스템에서 멀티캐스트멀티미디어 방송 서비스를 위한 데이터 패킷 제어장치 및방법
US6907522B2 (en) * 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
JP2004139442A (ja) * 2002-10-18 2004-05-13 Toyota Motor Corp 情報端末装置、情報端末装置の動作制御方法、特定情報記憶プログラム、特定情報記憶プログラムを格納する記憶媒体、所定情報変更プログラム、端末動作プログラム、端末動作プログラムを格納する記憶媒体、及びセンタ

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100894251B1 (ko) * 2006-12-28 2009-04-21 삼성전자주식회사 다중화된 에스피디 롬을 가지는 메모리 모듈 시스템 및 그부팅 방법
KR101502032B1 (ko) * 2008-03-06 2015-03-12 삼성전자주식회사 보안 기능을 갖는 프로세서 장치
KR101318112B1 (ko) * 2012-04-13 2013-10-16 하나시스 주식회사 결제 시스템 피공급자에 의한 결제망 임의 전환 방지 결제 단말기
KR20160042897A (ko) * 2013-08-15 2016-04-20 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 참조 플랫폼 매니페스트 및 데이터 씰링에 따른 보안 os 부팅 기법
KR20210097825A (ko) * 2013-08-15 2021-08-09 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 참조 플랫폼 매니페스트 및 데이터 씰링에 따른 보안 os 부팅 기법
KR101616793B1 (ko) * 2015-12-18 2016-04-29 국방과학연구소 애플리케이션 무결성 검사 방법
KR20220059865A (ko) * 2020-11-03 2022-05-10 유비벨록스(주) 사용자 인증모듈(usim)이 탑재되는 보안 요소

Also Published As

Publication number Publication date
US20060129791A1 (en) 2006-06-15
CN1786916A (zh) 2006-06-14
EP1669863A3 (en) 2009-01-14
EP1669863A2 (en) 2006-06-14
JP2006164273A (ja) 2006-06-22
US7681024B2 (en) 2010-03-16
KR100654446B1 (ko) 2006-12-06

Similar Documents

Publication Publication Date Title
KR100654446B1 (ko) 보안 부팅 장치 및 방법
US7761717B2 (en) Memory device with data security in a processor
US10509568B2 (en) Efficient secure boot carried out in information processing apparatus
US8321686B2 (en) Secure memory card with life cycle phases
CN110998578B (zh) 用于在异构存储器环境内进行引导的***和方法
US20100058073A1 (en) Storage system, controller, and data protection method thereof
US20060177064A1 (en) Secure memory card with life cycle phases
US20080107275A1 (en) Method and system for encryption of information stored in an external nonvolatile memory
KR101303278B1 (ko) 비트스트림 보호를 위한 fpga 장치 및 그 방법
TWI712889B (zh) 記憶裝置及程式
US20090024784A1 (en) Method for writing data into storage on chip and system thereof
WO2007091492A1 (ja) セキュア処理装置、方法、プログラム
US20080181407A1 (en) Method for protecting a control device against manipulation
US20160248588A1 (en) Security ram block with multiple partitions
JP4256859B2 (ja) 半導体記憶装置
US7752407B1 (en) Security RAM block
CN109445705B (zh) 固件认证方法及固态硬盘
JP2001356963A (ja) 半導体装置およびその制御装置
WO2005004382A1 (ja) 暗号処理装置
CN110020561B (zh) 半导体装置和操作半导体装置的方法
EP1846826A2 (en) Secure memory card with life cycle phases
US20090006866A1 (en) Storage apparatus, memory card accessing apparatus and method of reading/writing the same
KR20050086782A (ko) 컨텐츠 처리 칩, 장치 및 방법
CN114817935A (zh) 一种芯片安全启动方法
US9218484B2 (en) Control method and information processing apparatus

Legal Events

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

Payment date: 20121031

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131031

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141031

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee