KR20070048960A - 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치 - Google Patents
코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치 Download PDFInfo
- Publication number
- KR20070048960A KR20070048960A KR1020050106081A KR20050106081A KR20070048960A KR 20070048960 A KR20070048960 A KR 20070048960A KR 1020050106081 A KR1020050106081 A KR 1020050106081A KR 20050106081 A KR20050106081 A KR 20050106081A KR 20070048960 A KR20070048960 A KR 20070048960A
- Authority
- KR
- South Korea
- Prior art keywords
- code image
- stored
- region
- code
- function
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- 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/575—Secure boot
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
본 발명은 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치에 관한 발명으로서, 본 발명의 일 실시예에 따른 코드 이미지 갱신 방법은 부트 코드가 로딩되어지는 제 1 영역과 제 1 코드 이미지가 저장된 제 2 영역 및 상기 부트 코드를 저장하며 상기 제 1 코드 이미지를 검증하기 위한 제 1 체크 데이터가 저장된 제 3 영역으로 이루어진 운영체계를 저장한 저장매체에서의 코드 이미지 갱신 방법에 있어서, 상기 제 2 영역에 제 2 코드 이미지를 저장하는 단계, 상기 제 1 체크 데이터에서 보안 일방 함수에 대한 정보를 추출하는 단계, 및 상기 추출한 보안 일방 함수의 정보를 이용하여 상기 제 2 코드 이미지를 검증하기 위한 제 2 체크 데이터를 생성하여 상기 제 3 영역에 저장하는 단계를 포함하며, 상기 제 2 체크 데이터를 상기 보안 일방 함수의 파라메터로 할 경우 상기 제 1 체크 데이터가 생성된다.
플래시 메모리, 원낸드, 코드 이미지, 갱신, 정당 사용자, 보안
Description
도 1은 종래의 기술에 따라 내장형 시스템이 안전한 부팅이 이루어지도록 하는 보안 부팅 장치가 도시된 도면이다.
도 2는 본 명세서의 기술을 적용하게 될 저장장치에서 운영체제가 구동되는 방식을 보여주는 도면이다.
도 3은 제 1 코드 이미지가 저장된 비휘발성 저장장치와 휘발성 저장장치 및 CPU의 관계를 보여주는 예시도이다.
도 4는 본 발명의 일 실시예에 따른 변경된 코드 이미지를 정당한 사용자가 비휘발성 저장 장치에 저장한 예를 보여주는 도면이다.
도 5는 본 발명의 일 실시예에 따른 변경된 코드 이미지를 검증하는 과정을 보여주는 도면이다.
도 6은 본 발명의 일 실시예에 따른 정당 사용자가 코드 이미지를 수정한 경우와 허락받지 않은 사용자가 코드 이미지를 수정한 경우를 비교하는 도면이다.
도 7은 본 발명의 일 실시예에 따른 갱신된 코드 이미지가 정당 사용자에 의해 갱신되었는지를 확인하여 수행하는 과정을 보여주는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
100: 저장부 110: 램 영역
120: R/W 영역 130: OTP 영역
200: RAM 400 : 제어부
본 발명은 시스템의 부팅에 관한 것으로, 보다 상세하게는 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치에 관한 것이다.
일반적으로, 가전 기기, 통신 기기, 셋탑 박스 등의 내장형 시스템(Embedded System)에서는 데이터를 저장하고 처리하기 위한 저장 매체로 비휘발성 저장 장치가 많이 사용되고 있다. 또한, 내장형 시스템은 비휘발성 저장 장치에 운영 체제(Operation System)를 저장하고, 저장된 운영 체제에 의해 부팅되어 동작을 수행하게 된다. 이러한 운영 체제는 주로 비휘발성 저장 장치에 이미지(Image)의 형태로 저장된다.
호스트가 보안성을 제공하려면 운영체제가 부팅될 때부터 벤더(vendor)가 제품을 출시할 때 비휘발성 저장장치에 기록해 두었던 운영체제 이미지(OS Image)가 변경없이 부팅된다는 것이 보장되어야 한다. 예를 들어서, 휴대폰에 OS 이미지와 응용프로그램들이 저장되어 있는 경우, 휴대폰에 전원이 들어오고 OS 이미지가 로딩될 때, 공격자가 OS 이미지의 일부분을 변경하여 수행 로직이 변경되는 경우, OS 이미지 안에 있던 보안 모듈은 보안성이 깨질 수 있다. 따라서, 이런 경우 OS 이미 지를 RAM으로 복사한 후 제어를 넘기기 전에 OS 이미지의 무결성이 보존되어 있는지 확인하고, 무결성이 깨지지 않은 경우에만 제어를 넘기도록 함으로써 공격자가 OS 이미지를 변경할 수 없도록 사전 차단할 수 있어야 한다.
현재 많은 임베디드 시스템(Embedded System) 벤더들이 OS 이미지의 무결성을 보존하는 기법들을 필요로 하고 있고, 또 제공하고 있으나 이는 무결성을 검사하는 알고리즘을 비밀로 유지하는 것에 기반하거나 CPU안에 있는 키가 TRM 영역으로 보호되어야 하는 등 완전하지 못하거나 별도의 회로를 추가해야 한다. 또한, 저장장치의 특성에 따라서 이를 지원하는 방법이 달라질 수 있다.
도 1은 종래의 기술에 따라 내장형 시스템이 안전한 부팅이 이루어지도록 하는 보안 부팅 장치가 도시된 도면이다.
운영 체제 및 운영 체제에 대응하는 고유의 체크값을 가지는 알고리즘의 체크값을 저장하는 운영 체제 저장부(10)와, 부팅시 운영 체제 저장부(10)에 저장된 운영 체제가 로딩되는 메모리부(20)와, 체크값 저장시 사용된 알고리즘을 통해 로딩된 운영 체제에 따른 체크값을 산출하고, 저장된 체크값과 산출된 체크값을 비교하여 로딩된 운영 체제의 무결성을 판단하는 제어부(30)를 포함한다.
이때, 운영 체제 저장부(10)는 저장된 운영 체제 및 체크값이 인가된 전원이 제거되는 경우에도 유지될 수 있도록 비휘발성 저장 영역으로 이루어진다.
또한, 운영 체제를 통한 부팅이 이루어질 경우, 부팅 프로세스에 대한 정보를 포함하는 부팅 코드를 저장하는 부팅 코드 저장부(40)와, 운영 체제 저장부(10)에 저장되는 운영 체제 및 체크값을 암호화하고, 암호화된 운영 체제 및 체크값을 복호화하는 키를 저장하는 키 저장부(50)를 더 포함한다. 이때, 부팅 코드 저장부(40)는 읽기 전용으로 설정되어 있어 외부에서 부팅 코드를 변경하지 못하게 된다. 이때, 체크값 산출시 사용되는 알고리즘으로는 운영 체제가 1비트라도 변경되는 경우 다른 체크값을 가지게 되고, 동일한 체크값을 가지지 않는 조건에 맞는 모든 알고리즘이 사용된다.
또한, 키 저장부(50)는 일반적으로 위변조 방지 기술인 TRM(Tamper Resistance Module) 등과 같은 영역으로 이루어져 외부의 접근으로부터 키 저장부(50)에 저장된 키를 보호하게 된다. 이는 키 저장부(50)에 저장된 키가 외부에 노출될 경우, 암호화되어 운영 체제 저장부(10)에 저장된 운영 체제 및 체크값이 변경될 수 있기 때문이다. 또한, 키 저장부(50)는 전반적인 부팅 프로세스를 제어하는 제어부(130)와 내장되거나 별도로 구성된다.
그런데, 임베디드 시스템이 출시된 후에 운영체제가 지속적으로 업그레이드 되는 경우가 많다. 특히, 휴대폰, MP3 플레이어, PMP와 같은 제품은 그 특성상 빠른 환경 적응이 필요하다. 따라서, 한번 설치된 운영체제가 이후 정당하게 변경되거나 업그레이드 되어야할 필요성이 있다. 그런데, 도 1과 같이 키를 저장하게 되면, 불법적인 외부의 접근에 의한 운영체제 변경을 막을 수는 있으나, 정당한 권리를 가진 벤더 측에서 운영체제를 변경하는 경우까지 막게 되는 문제가 있다. 그러나, 정당한 권리자의 변경을 허가할 경우, 불법적인 운영체제의 변경까지 가능하게 되는 문제점이 있는바, 이를 해결할 필요가 있다.
본 발명은 상기한 문제점을 개선하기 위해 안출된 것으로, 본 발명은 정당 사용자의 운영체제에 대한 변경을 보장하면서 불법적인 사용자의 운영체제의 변경을 차단하는 방법 및 장치를 제공하는데 목적이 있다.
본 발명의 또다른 목적은 정당한 사용자의 운영체제에 대한 변경을 보장하여 저장장치를 포함하는 것이다.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 코드 이미지 갱신 방법은 부트 코드가 로딩되어지는 제 1 영역과 제 1 코드 이미지가 저장된 제 2 영역 및 상기 부트 코드를 저장하며 상기 제 1 코드 이미지를 검증하기 위한 제 1 체크 데이터가 저장된 제 3 영역으로 이루어진 운영체계를 저장한 저장매체에서의 코드 이미지 갱신 방법에 있어서, 상기 제 2 영역에 제 2 코드 이미지를 저장하는 단계, 상기 제 1 체크 데이터에서 보안 일방 함수에 대한 정보를 추출하는 단계, 및 상기 추출한 보안 일방 함수의 정보를 이용하여 상기 제 2 코드 이미지를 검증하기 위한 제 2 체크 데이터를 생성하여 상기 제 3 영역에 저장하는 단계를 포함하며, 상기 제 2 체크 데이터를 상기 보안 일방 함수의 파라메터로 할 경우 상기 제 1 체크 데이터가 생성된다.
본 발명의 일 실시예에 따른 코드 이미지 부팅 방법은 부트 코드가 로딩되어지는 제 1 영역과 코드 이미지가 저장된 제 2 영역 및 상기 부트 코드를 저장하며 상기 코드 이미지를 검증하기 위한 체크 데이터가 저장된 제 3 영역으로 이루어진 운영체계를 저장한 저장매체에서의 코드 이미지 부팅 방법에 있어서, 제 3 영역에 저장된 부트 코드를 읽어서 제 1 영역에 저장하는 단계, 상기 제 2 영역에 저장된 코드 이미지가 초기에 설치된 코드 이미지가 아닌 갱신된 코드 이미지인 경우, 초기에 설치된 초기 코드 이미지에 대한 정보가 저장된 제 3 영역에서 정당 변경여부를 확인하는 제 1 함수 및 상기 제 1 함수에 제 1 파라메터를 적용한 제 1 결과, 상기 갱신된 코드 이미지에 대한 정보가 저장된 상기 제 3 영역에서 상기 제 1 함수에 제 2 파라메터를 적용한 제 2 결과를 추출하는 단계, 및 상기 제 2 결과를 파라메터로 하여 상기 제 1 함수를 적용한 결과와 상기 제 1 결과를 비교하여 동일한 경우 상기 코드 이미지를 수행하는 단계를 포함한다.
본 발명의 일 실시예에 따른 저장장치는 부트 코드가 로딩되어 동작되는 제 1 영역과 시스템을 동작시키는 코드 이미지가 저장되어 있으며 읽고 쓰기가 가능한 메모리 소자로 구성된 제 2 영역 및 상기 부트 코드가 저장되어 있으며, 상기 코드 이미지를 검증하는 시그너쳐 정보가 저장된 제 3 영역을 포함하는 저장부, 및 상기 저장부의 부트 코드를 읽어서 제 1 영역으로 로딩하며, 상기 코드 이미지가 초기에 설치된 코드 이미지가 아닌 갱신된 코드 이미지인 경우, 초기에 설치된 초기 코드 이미지에 대한 정보가 저장된 제 3 영역에서 정당 변경여부를 확인하는 제 1 함수 및 상기 제 1 함수에 제 1 파라메터를 적용한 제 1 결과를 추출하며, 상기 갱신된 코드 이미지에 대한 정보가 저장된 상기 제 3 영역에서 상기 제 1 함수에 제 2 파라메터를 적용한 제 2 결과를 추출하여, 상기 제 2 결과를 파라메터로 하여 상기 제 1 함수를 적용한 결과와 상기 제 1 결과를 비교하여 동일한 경우 상기 코드 이미지를 수행하는 제어부를 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 본 발명의 실시예들에 의하여 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치를 설명하기 위한 블록도 또는 처리 흐름도에 대한 도면들을 참고하여 본 발명에 대해 설명하도록 한다. 이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
도 2는 본 명세서의 기술을 적용하게 될 저장장치에서 운영체제가 구동되는 방식을 보여주는 도면이다.
도 2의 저장장치는 휴대폰, 디지털 카메라, 노트북, PDA, PMP, MP3 플레이어 등에 장착되는 것으로 상기 장치들을 동작시키는 운영체제 이미지가 내장되어 있다.
코드 이미지(Code Image)를 비휘발성(Non-Volatile)으로 저장하는 비휘발성 저장장치(100)와 비휘발성 저장장치(100)에 있는 코드 이미지(Code Image)를 실행하는데 필요한 휘발성 저장장치(200), 그리고, 코드를 수행하는 중앙처리장치인 CPU(400)를 이용한다. 이하 본 명세서에서 비휘발성으로 코드 이미지를 저장하는 저장장치의 일 실시예로 플래시 메모리를 중심으로 설명한다. 또한, 안전한 갱신을 구현하기 위해서 보안 일방 함수(Secure One-way Function)를 이용한다.
비휘발성 저장장치(100)인 플래시 메모리는 시스템에 전원이 공급되었을 때 자동적으로 메모리 주소 공간의 특정 영역에 매핑되는 램(RAM) 영역인 110과, 비휘발성으로 데이터를 쓰고 지우기를 반복할 수 있는 R/W(read/write) 영역인 120, 1 회만 쓰기가 가능하고, 1회 쓰기가 완료되면 읽기만 가능한 OTP(One Time Programmable) 영역인 130으로 구성되어 있다.
110, 120, 130은 하나의 메모리 장치로 구현될 수도 있고, 이런 특성을 가지는 3개의 메모리 장치들을 조합하여 사용할 수도 있다. 즉, 120과 130은 플래시 메모리 소자로, 110은 RAM 소자로 하여 결합할 수 있다.
전원이 공급되면 130 영역의 특정 위치에 저장되어 있는 부트 코드(131)가 자동적으로 램 영역인 110으로 복사되고 110 영역은 읽기 및 실행만 가능한 영역으로 전환되며, CPU(400)는 110 영역에 있는 기계어 명령을 실행한다.
부트 코드(Boot Code, 또는 Boot Loader)(131)는 1회만 기록 가능한 영역인 130에 기록하고, 운영체제 이미지를 포함하는 코드 이미지(Code Image)는 읽기와 쓰기가 가능한 120 영역에 기록하며, 코드 이미지의 변경 여부를 검토하는 시그너쳐(Signature)(132)값을 계산하여 1회만 쓰기 가능하고, 변경 불가능한 130 영역에 기록한다.
시스템에 전원이 인가되면, OTP 영역(130)에 있는 부트 코드(131)가 자동적으로 RAM 영역(110)으로 복사된다.
시스템의 메모리 뷰(300)는 110을 부팅 장치로 사용하도록 매핑되어, 부트 코드가 실행되며, 부트 코드가 너무 커서 110 장치로 모두 복사될 수 없는 경우, 110에 복사된 부트 코드가 나머지 부트 코드 부분을 휘발성 저장 장치(200)로 복사한다.
부트 코드가 R/W 영역인 120에 있는 코드 이미지를 휘발성 저장장치(200)로 복사한다. 120 영역에서 바로 실행할 수 있는 장치인 경우에는 휘발성 저장장치(200)를 사용하지 않을 수 있다.
코드 이미지는 R/W 영역에 저장되므로 변경될 가능성이 있다. 따라서 코드 이미지에 대한 시그너쳐(Signature)값을 계산하여 OTP 영역(130)에 저장되어 있는 시그너쳐 값(132)과 비교하여 일치하는 경우에만 부팅을 계속 진행하고, 일치하지 않는 경우 부팅을 중단함으로써 코드 이미지가 변경되는 경우 시스템이 동작을 하지 않도록 동작한다.
시그너쳐 값이란 보안 일방 함수(Secure One-way Function)로, 결과값을 계산하는 것은 쉽지만, 결과값으로부터 입력값을 알 수 없으며, 같은 결과값을 가지는 서로 다른 2개의 입력값을 찾기가 불가능하거나 거의 불가능한 함수로써, 입력이 조금이라도 틀리면 결과값도 틀릴 가능성이 매우 높은 함수를 의미한다.
도 2의 구성을 통해 코드 이미지를 불법적인 사용자가 변경하는 것을 막고 코드 이미지에 대한 보안을 높일 수 있다. 도 3과 도 4는 코드 이미지를 정당한 사용자가 변경하고자 할 경우 보안성을 향상시기 위한 비휘발성 저장장치의 구성을 보여준다.
설명에 앞서 보안 일방 함수(secure one way function)에 대해 간략히 살펴보면, y = h(x) 형태의 함수라 가정시, x를 아는 경우 y를 계산하는 것은 쉽지만 y를 알고, 거기에 대응하는 x를 알아 내는 것은 어려우며 y = h(x) = h(x')인 서로 다른 x와 x'을 찾는 것도 어렵다고 가정한다.
도 3은 제 1 코드 이미지가 저장된 비휘발성 저장장치와 휘발성 저장장치 및 CPU의 관계를 보여주는 예시도이다. 도 3에서 비휘발성 저장장치(100)에 제 1 코드 이미지가 저장되어 있으며, 이에 대한 시그너쳐 정보와 보안과 관련된 정보를 포함하는 제 1 시그너쳐 영역(134)이 있다.
비휘발성 저장장치(100)에 처음으로 코드 이미지와 부트 코드를 기록할 때에는 이하의 내용을 기록한다. 사용자 또는 제조자, 판매자와 같이 코드 이미지를 설치하고 변경할 권원이 있는 자는 S를 비밀로 유지한다. S는 정당한 권한을 가진 자만 가질 수 있는 값으로, 보안을 유지하는 키 값이 될 수 있다.
보안 일방 함수의 조건을 충족하는 h()라는 함수를 다음과 같이 정의할 수 있다. h_0 = h(S), h_n+1(S) = h(h_n(S))라고 할 때, 사용자는 적당히 큰 값 N(예를 들어 100 이상)에 대해 h_N을 계산한다. 예를 들어, 수학식 1과 같이 구할 수 있다.
= h(h(h(h_0)(S)))
= h(h(h(h(S))))
사용자는 제 1 코드 이미지에 대한 시그너쳐 값을 계산하는데, 이 값을 Sig_1이라 한다. Sig_1 값을 계산하기 위해서는 h() 함수를 사용할 수 있고, 다른 보안 일방 함수를 사용할 수도 있다.
비휘발성 저장장치(100)의 OTP 영역(130) 맨 앞에 부트 코드(133)를 기록하고, 제 1 코드 이미지를 위한 시그너쳐 값인 Sig_1을 제 1 시그너쳐 영역(130)에 기록한다. Sig_1 외에도 제 1 시그너쳐 영역(134)에 들어갈 내용으로는 h() 함수의 실행 이미지, h_N, N, R/W 영역(120)에 있는 코드 이미지의 위치 및 크기 정보도 기록한다.
h_N이란 h_N(S)의 수행값을 의미한다. h_N(S)는 수학식 1에 의해 h( h_N-1(S) )로 구할 수 있다.
이렇게 제 1 코드 이미지를 설치하고, 이를 위한 시그너쳐 및 추후 정당 사용자의 코드 이미지 변경을 가능하게 하는 정보들을 제 1 시그너쳐 영역(134)에 기록한 이후에 코드가 업그레이드 되거나 새로운 기능이 추가되면 코드 이미지를 수정하는 과정이 필요하다. 또는 새로운 코드 이미지로 갱신할 수 있다.
도 4는 본 발명의 일 실시예에 따른 변경된 코드 이미지를 정당한 사용자가 비휘발성 저장 장치에 저장한 예를 보여주는 도면이다.
코드 이미지를 변경하려면 우선 제 1 시그너쳐 영역(134)에 저장된 N 값을 읽어 온다. 그리고 도 3에서 언급한 S(정당 사용자가 비밀로 유지하는 키 값)를 h_N-1(S)를 계산한다. 그리고 변경된 코드 이미지(제 2 코드 이미지)를 R/W 영역(120)에 저장하고 제 2 코드 이미지의 유효성을 검증하는 Sig_2 값을 계산한다. 그리고 제 2 시그너쳐 영역(135)에 상기의 정보들을 저장한다. 제 1 시그너쳐(134)에 저장된 h_N(S)의 결과와 h() 함수 및 N에 대한 정보가 저장되어 있으며, 정당 사용자라면 S가 어떤 값인지 알 수 있으므로, h_N-1(S)를 구할 수 있다. 따라서 정당 사용자는 변경되거나 추가될 제 2 코드 이미지를 R/W 영역(120)에 저장하고, 제 2 코드 이미지의 유효성을 검증하는 Sig_2, 그리고 h_N-1(S) 결과와 h() 함수, N-1의 값을 제 2 시그너쳐 영역(135)에 저장한다. 추후 부팅시에는 h_N-1(S)의 결과를 통해 정당한 사용자에 의해 추가된 코드이미지인지 확인할 수 있다. 이에 대한 검증 과정은 도 5에서 살펴보고자 한다.
도 5는 본 발명의 일 실시예에 따른 변경된 코드 이미지를 검증하는 과정을 보여주는 도면이다. 도 5에서 N은 100으로 설정하였다. 시스템을 부팅할 경우, 제 1 시그너쳐 영역(134)에서 함수 h()에 대한 정보와 h_100(S) 값, 그리고 N의 값인 100을 얻게 된다. 그리고 제 2 시그너쳐 영역(135)에서 h_99(S)의 값과 99, 제 2 코드 이미지에 대한 정보 및 Sig_2 값을 읽어온다. 제 2 코드 이미지에 대한 정보를 통해 제 2 코드 이미지가 저장된 위치 및 크기를 읽어온다. 그리고 제 2 코드 이미지에 대해 Sig_2를 통해 검증 작업을 수행한다. 제 2 코드 이미지에 소정의 검증 알고리즘을 적용하여 Sig_2 값과 비교한 경우, 제 2 코드 이미지가 정당한 사용자에 의해 갱신되었는지를 확인하기 위해 h_99(S) 값을 h() 함수의 입력값으로 하여 h_100(S)의 값을 구한다. h_99(S)의 값이 K 하고 이 K 값이 제 2 시그너쳐 영역(135)에 저장되어 있으므로 h(K)를 구할 수 있다. h(K)는 h(h_99(S)) 이며, 이는 h_100(S)이므로 제 1 시그너쳐 영역(134)에 저장된 값과 비교할 수 있다. S 값은 정당한 사용자가 가지고 있으므로 h_99(S) 값은 정당 사용자만이 산출할 수 있다. 따라서 제 2 코드 이미지가 정당 사용자에 의해 갱신되었음을 확인할 수 있다. 만약, 제 2 시그너쳐 영역에 정당 사용자가 아닌 자가 S 값이 아닌 D라는 다른 값으로 h_99(D)를 기록하였다면, 부팅 과정에서 h_100(S)값과 h_100(D)값이 서로 다름을 확인하여 부팅을 중지할 수 있다.
도 6은 본 발명의 일 실시예에 따른 정당 사용자가 코드 이미지를 수정한 경우와 허락받지 않은 사용자가 코드 이미지를 수정한 경우를 비교하는 도면이다. 제품에 초기에 장착된 코드 이미지는 정당 사용자에 의해 저장되었으며 이후 정당 사용자가 코드 이미지를 갱신하는 경우(a)와 정당 사용자가 아닌 자에 의해 코드 이미지가 갱신된 경우(b)를 보여준다.
(a)에서 정당 사용자는 새로운 코드 이미지를 저장할 경우에 코드 이미지에 대한 검증을 수행하는 Sig_2, 그리고 S 값과 제 1 시그너쳐 영역(136)의 100이라는 숫자에 바탕을 두고 h_99(S)를 구할 수 있다.
반면 (b)에서 불법적인 사용자는 Sig_2 값을 구한 경우에라도 S 값을 알 수 없으므로 임의의 값 D에 대해 h_99(D)를 구하게 된다. 그러나 부팅 과정에서 h_99(D)의 값에 h 함수를 다시 적용하여 h(h_99(D))를 수행하는 경우에 h_100(D)를 구할 수는 있으나 이는 h_100(S)와 다르므로 부팅이 중단된다. 따라서 불법적인 사용자가 코드를 변경할 경우에 Sig_2에 의해 검증되고 Sig_2를 생성하였더라도 h_99(S)의 값을 계산할 수 없으므로 바이러스, 해킹 등에 의한 코드 이미지의 불법적인 변경을 막을 수 있다.
전술한 과정에서 N과 N-1, N-2와 같이 역순으로 보안 일방 함수를 적용한 결과를 얻고 있으나, 이는 일 실시예이며 반드시 상기 순서에 얽매일 필요는 없다. 예를 들어, N, N-2, N-4의 방식으로 보안 일방 함수를 적용할 수 있으며 이외에도 보안 일방 함수를 다양하게 적용할 수 있다.
본 명세서에서는 정당 사용자에 의해 코드 이미지의 변경이 이루어졌는지를 검증하기 위해 변경된 코드에 대한 체크값에서 변경전의 코드에 대한 체크값이 도출가능한지를 살펴보는 것이다. 그리고 도출 가능한 경우에는 정당 사용자에 의해 코드 이미지가 변경된 것으로 보아 갱신된 코드 이미지를 수행한다.
도 7은 본 발명의 일 실시예에 따른 갱신된 코드 이미지가 정당 사용자에 의해 갱신되었는지를 확인하여 수행하는 과정을 보여주는 도면이다.
OTP 영역(130)에 저장된 부트 코드를 로딩한다(S510). 부트 코드에 나열된 명령어에 따라 코드 이미지를 수행하기에 앞서, 코드 이미지가 유효한지 검사한다(S520). 코드 이미지가 변형되었는지 여부를 조사하기 위한 것으로 코드 이미지를 저장시에 코드 이미지에 대한 해쉬 함수, 보안 일방 함수를 적용한 결과값을 OTP 영역(130)에 저장하고 추후 코드 이미지가 변형되었는지 여부를 함수를 적용하여 체크할 수 있다. 전술한 Sig_1, Sig_2값을 통해 코드 이미지의 유효성을 검사할 수 있다. 코드 이미지가 유효하지 않으면(S530) 코드 이미지를 수행하지 않고 종료한다.
코드 이미지가 유효하다면(S530) 코드 이미지가 갱신되었는지를 체크한다. 코드 이미지가 갱신되지 않았다면, 그 코드 이미지를 그대로 수행한다.
그러나 코드 이미지가 갱신되었다면, 해당 갱신이 정당 사용자에 의한 갱신인지 확인한다. 이를 위해 S552내지 S556 과정을 수행한다. 먼저 초기 코드 이미지에 대한 정보, 예를 들어 제 1 시그너쳐에서 보안 일방 함수와 함수를 실행한 제 1 결과 및 파라메터 정보를 추출한다(S552). 도 6에서 h()가 보안 일방 함수가 되며 함수를 실행한 제 1 결과가 h_100(S), 그리고 파라메터 정보는 100이 된다. S 값에 대해서는 정보를 가질 필요가 없다. S를 파라메터로 실행된 결과가 저장되어 있기 때문이다. 다음으로 갱신된 코드 이미지에 대한 정보에서 함수를 실행한 제 2 결과 및 파라메터 정보를 추출한다(S554). 제 2 시그너쳐가 갱신된 코드 이미지에 대한 정보가 될 수 있다. 여기에서 함수를 실행한 제 2 결과는 도 6의 (a)에서 h_99(S)의 실행 결과가 일 실시예이며, 파라메터 정보는 99가 된다. 갱신된 코드 이미지에 대한 제 2 시그너쳐에서 파라메터가 99이고, 원래의 코드 이미지에 대한 제 1 시그너쳐에서 파라메터는 100이므로, h_99(S)를 파라메터로 하여 h() 함수를 한번 더 적용하면 제 1 시그너쳐의 h_100(S)의 결과가 나오며 이를 비교하여 정당하게 갱신되었는지 알 수 있다. 즉 S556 단계와 같이 보안 일방 함수에 상기 제 2 결과(h_99(S))를 파라메터로 하여 실행한 결과와 제 1 결과(h_100(S))를 비교한다. 그리고 두 결과가 동일하다면(S560) 갱신된 코드 이미지가 정당 사용자에 의해 갱신되었으므로 코드 이미지를 수행한다(S570). 아닌 경우에는 갱신된 코드 이미지를 수행하지 않고 종료한다. 위의 설명 예에서 S552, S554, S556 검사를 S520 보다 먼저 수행할 수도 있다.
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변 형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
본 발명을 구현함으로써 한번 운영체제의 코드 이미지를 비휘발성 저장 영역에 기록하고 OTP 영역에 이와 관련된 검사 정보를 기록하고 난 후에 정직한 사용자(예를 들어 개발자)가 OS 이미지를 반복적으로 안전하게 갱신할 수 있다.
본 발명을 구현함으로써 일단 제품화가 완료되어 출시되고 난 제품에 대해서 나중에 코드 이미지를 갱신할 필요가 있을 때 안전하게 작업을 수행할 수 있다.
Claims (11)
- 부트 코드가 로딩되어지는 제 1 영역과 제 1 코드 이미지가 저장된 제 2 영역 및 상기 부트 코드를 저장하며 상기 제 1 코드 이미지를 검증하기 위한 제 1 체크 데이터가 저장된 제 3 영역으로 이루어진 운영체계를 저장한 저장장치에서의 코드 이미지 갱신 방법에 있어서,상기 제 2 영역에 제 2 코드 이미지를 저장하는 단계;상기 제 1 체크 데이터에서 보안 일방 함수에 대한 정보를 추출하는 단계; 및상기 추출한 보안 일방 함수의 정보를 이용하여 상기 제 2 코드 이미지를 검증하기 위한 제 2 체크 데이터를 생성하여 상기 제 3 영역에 저장하는 단계를 포함하며,상기 제 2 체크 데이터를 상기 보안 일방 함수의 파라메터로 할 경우 상기 제 1 체크 데이터가 생성되는, 코드 이미지 갱신 방법.
- 제 1항에 있어서,상기 제 3 영역은 한번 데이터가 저장되면 변경 또는 수정이 불가능한 메모리 소자로 구성된, 코드 이미지 갱신 방법.
- 제 1항에 있어서,상기 저장장치는 원낸드(OneNAND)인, 코드 이미지 갱신 방법.
- 부트 코드가 로딩되어지는 제 1 영역과 코드 이미지가 저장된 제 2 영역 및 상기 부트 코드를 저장하며 상기 코드 이미지를 검증하기 위한 체크 데이터가 저장된 제 3 영역으로 이루어진 운영체계를 저장한 저장장치에서의 코드 이미지 부팅 방법에 있어서,제 3 영역에 저장된 부트 코드를 읽어서 제 1 영역에 저장하는 단계;상기 제 2 영역에 저장된 코드 이미지가 초기에 설치된 코드 이미지가 아닌 갱신된 코드 이미지인 경우,초기에 설치된 초기 코드 이미지에 대한 정보가 저장된 제 3 영역에서 정당 변경여부를 확인하는 제 1 함수, 상기 제 1 함수에 제 1 파라메터를 적용한 제 1 결과 및 상기 갱신된 코드 이미지에 대한 정보가 저장된 상기 제 3 영역에서 상기 제 1 함수에 제 2 파라메터를 적용한 제 2 결과를 추출하는 단계; 및상기 제 2 결과를 파라메터로 하여 상기 제 1 함수를 적용한 결과와 상기 제 1 결과를 비교하여 동일한 경우 상기 코드 이미지를 수행하는 단계를 포함하는, 코드 이미지 부팅 방법.
- 제 4항에 있어서,상기 제 3 영역은 한번 데이터가 저장되면 변경 또는 수정이 불가능한 메모리 소자로 구성된, 코드 이미지 부팅 방법.
- 제 4항에 있어서,상기 제 1 함수는 보안 일방 함수의 일종으로 입력값이 다를 경우 출력값이 다르며, 상기 출력값에서 입력값을 유추하기가 어려운 특성을 가지는 함수인, 코드 이미지 부팅 방법.
- 제 4항에 있어서,상기 저장장치는 원낸드(OneNAND)인, 코드 이미지 부팅 방법.
- 부트 코드가 로딩되어 동작되는 제 1 영역과시스템을 동작시키는 코드 이미지가 저장되어 있으며 읽고 쓰기가 가능한 메모리 소자로 구성된 제 2 영역 및상기 부트 코드가 저장되어 있으며, 상기 코드 이미지를 검증하는 시그너쳐 정보가 저장된 제 3 영역을 포함하는 저장부; 및상기 저장부의 부트 코드를 읽어서 제 1 영역으로 로딩하며, 상기 코드 이미지가 초기에 설치된 코드 이미지가 아닌 갱신된 코드 이미지인 경우, 초기에 설치된 초기 코드 이미지에 대한 정보가 저장된 제 3 영역에서 정당 변경여부를 확인하는 제 1 함수 및 상기 제 1 함수에 제 1 파라메터를 적용한 제 1 결과를 추출하며,상기 갱신된 코드 이미지에 대한 정보가 저장된 상기 제 3 영역에서 상기 제 1 함수에 제 2 파라메터를 적용한 제 2 결과를 추출하여,상기 제 2 결과를 파라메터로 하여 상기 제 1 함수를 적용한 결과와 상기 제 1 결과를 비교하여 동일한 경우 상기 코드 이미지를 수행하는 제어부를 포함하는, 저장 장치.
- 제 8항에 있어서,상기 제 3 영역은 한번 데이터가 저장되면 변경 또는 수정이 불가능한 메모리 소자로 구성된, 저장 장치.
- 제 8항에 있어서,상기 제 1 함수는 보안 일방 함수의 일종으로 입력값이 다를 경우 출력값이 다르며, 상기 출력값에서 입력값을 유추하기가 어려운 특성을 가지는 함수인, 저장 장치.
- 제 8항에 있어서,상기 저장장치는 원낸드(OneNAND)인, 저장장치.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050106081A KR100746012B1 (ko) | 2005-11-07 | 2005-11-07 | 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치 |
US11/586,517 US7711944B2 (en) | 2005-11-07 | 2006-10-26 | Method and apparatus for securely updating and booting code image |
EP06123204A EP1788506A3 (en) | 2005-11-07 | 2006-10-30 | Method and apparatus for securely updating and boot code image |
CNB2006101437196A CN100530096C (zh) | 2005-11-07 | 2006-11-03 | 用于安全更新和启动代码镜像的方法和装置 |
JP2006301504A JP4503576B2 (ja) | 2005-11-07 | 2006-11-07 | コードイメージを安全に更新してブーティングする方法及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050106081A KR100746012B1 (ko) | 2005-11-07 | 2005-11-07 | 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070048960A true KR20070048960A (ko) | 2007-05-10 |
KR100746012B1 KR100746012B1 (ko) | 2007-08-06 |
Family
ID=37907358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050106081A KR100746012B1 (ko) | 2005-11-07 | 2005-11-07 | 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7711944B2 (ko) |
EP (1) | EP1788506A3 (ko) |
JP (1) | JP4503576B2 (ko) |
KR (1) | KR100746012B1 (ko) |
CN (1) | CN100530096C (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225393B2 (en) | 2006-04-03 | 2012-07-17 | Samsung Electronics Co., Ltd. | Apparatus for restricting access to application module in mobile wireless device and method of restricting access to application module using the same |
KR101412202B1 (ko) * | 2012-12-27 | 2014-06-27 | 주식회사 안랩 | 적응적 악성 진단 및 치료 수행장치 및 적응적 악성 진단 및 치료 수행방법 |
KR20180007922A (ko) * | 2016-07-14 | 2018-01-24 | 경희대학교 산학협력단 | Tpm 기반의 사용자 장치 및 이를 이용한 부팅 방법 |
KR20210060798A (ko) * | 2019-11-19 | 2021-05-27 | 한국항공우주연구원 | Cbc 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452987B2 (en) * | 2006-10-06 | 2013-05-28 | Broadcom Corporation | Method and system for disaster recovery in a secure reprogrammable system |
US20080222428A1 (en) * | 2007-03-07 | 2008-09-11 | Andrew Dellow | Method for Securing Authenticity of Data in a Digital Processing System |
US8555049B2 (en) * | 2007-10-05 | 2013-10-08 | Panasonic Corporation | Secure boot terminal, secure boot method, secure boot program, recording medium, and integrated circuit |
CN101739270B (zh) * | 2008-11-05 | 2013-04-03 | 英华达(上海)科技有限公司 | 电子装置及其系统更新方法 |
US8386738B1 (en) * | 2008-11-06 | 2013-02-26 | Marvell International Ltd. | Off-chip non-volatile memory access |
CN101751273B (zh) * | 2008-12-15 | 2013-04-24 | 中国科学院声学研究所 | 用于嵌入式系统的安全引导装置及方法 |
US8214692B1 (en) * | 2011-09-30 | 2012-07-03 | Google Inc. | System and method for enforcing a third-party factory test |
US9069966B2 (en) | 2011-10-11 | 2015-06-30 | International Business Machines Corporation | Code updates in processing systems |
GB2499985A (en) | 2012-02-29 | 2013-09-11 | Nds Ltd | Current state of OTP memory used with new received information to define new OTP state for computation of new digital signature in preventing playback attacks |
EP3028141B1 (en) * | 2013-07-31 | 2020-01-08 | Hewlett-Packard Development Company, L.P. | Generating a second code from a first code |
JP6548636B2 (ja) * | 2014-05-16 | 2019-07-24 | ソニーセミコンダクタソリューションズ株式会社 | 情報処理装置、情報処理方法、および電子機器 |
KR102277666B1 (ko) * | 2014-06-30 | 2021-07-15 | 삼성전자 주식회사 | 영상처리장치 및 그 제어방법 |
US10037201B2 (en) * | 2016-02-26 | 2018-07-31 | Dell Products L.P. | Secure live media boot system |
JP6871727B2 (ja) * | 2016-11-29 | 2021-05-12 | キヤノン株式会社 | 撮像装置、画像処理方法、及び、プログラム |
CN109284114B (zh) * | 2017-07-20 | 2022-07-12 | 深圳市中兴微电子技术有限公司 | 嵌入式系统中可编程芯片的自动烧录方法 |
KR102567097B1 (ko) | 2018-12-05 | 2023-08-14 | 삼성전자주식회사 | 임베디드 시스템의 부트 롬 업데이트 방법 및 부팅 방법 |
CN117494079B (zh) * | 2023-12-25 | 2024-03-26 | 飞腾信息技术有限公司 | 一种镜像权转移方法、安全启动方法及相关装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379342A (en) * | 1993-01-07 | 1995-01-03 | International Business Machines Corp. | Method and apparatus for providing enhanced data verification in a computer system |
US5978475A (en) * | 1997-07-18 | 1999-11-02 | Counterpane Internet Security, Inc. | Event auditing system |
US6581159B1 (en) * | 1999-12-23 | 2003-06-17 | Intel Corporation | Secure method of updating bios by using a simply authenticated external module to further validate new firmware code |
KR100367620B1 (ko) * | 2001-03-29 | 2003-01-10 | 엘지전자 주식회사 | 블루투스 시스템의 주파수 호핑 방법 |
US6993648B2 (en) * | 2001-08-16 | 2006-01-31 | Lenovo (Singapore) Pte. Ltd. | Proving BIOS trust in a TCPA compliant system |
JP3863447B2 (ja) * | 2002-03-08 | 2006-12-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 認証システム、ファームウェア装置、電気機器、及び認証方法 |
US6715085B2 (en) * | 2002-04-18 | 2004-03-30 | International Business Machines Corporation | Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function |
US7558958B2 (en) * | 2002-06-13 | 2009-07-07 | Microsoft Corporation | System and method for securely booting from a network |
US20040064457A1 (en) * | 2002-09-27 | 2004-04-01 | Zimmer Vincent J. | Mechanism for providing both a secure and attested boot |
US7305564B2 (en) * | 2002-12-19 | 2007-12-04 | International Business Machines Corporation | System and method to proactively detect software tampering |
JP2005033640A (ja) * | 2003-07-09 | 2005-02-03 | Canon Inc | コンテンツ流通方法またはコンテンツ改ざん検出方法 |
JP2005182509A (ja) * | 2003-12-19 | 2005-07-07 | Ntt Docomo Inc | 計算機システム並びにデータ改竄検出方法 |
US7296143B2 (en) * | 2004-06-22 | 2007-11-13 | Lenovo (Singapore) Pte. Ltd. | Method and system for loading processor boot code from serial flash memory |
US7318151B1 (en) * | 2004-11-04 | 2008-01-08 | Network Appliance, Inc. | Method and system for firmware management |
-
2005
- 2005-11-07 KR KR1020050106081A patent/KR100746012B1/ko not_active IP Right Cessation
-
2006
- 2006-10-26 US US11/586,517 patent/US7711944B2/en not_active Expired - Fee Related
- 2006-10-30 EP EP06123204A patent/EP1788506A3/en not_active Withdrawn
- 2006-11-03 CN CNB2006101437196A patent/CN100530096C/zh not_active Expired - Fee Related
- 2006-11-07 JP JP2006301504A patent/JP4503576B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225393B2 (en) | 2006-04-03 | 2012-07-17 | Samsung Electronics Co., Ltd. | Apparatus for restricting access to application module in mobile wireless device and method of restricting access to application module using the same |
KR101412202B1 (ko) * | 2012-12-27 | 2014-06-27 | 주식회사 안랩 | 적응적 악성 진단 및 치료 수행장치 및 적응적 악성 진단 및 치료 수행방법 |
KR20180007922A (ko) * | 2016-07-14 | 2018-01-24 | 경희대학교 산학협력단 | Tpm 기반의 사용자 장치 및 이를 이용한 부팅 방법 |
KR20210060798A (ko) * | 2019-11-19 | 2021-05-27 | 한국항공우주연구원 | Cbc 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR100746012B1 (ko) | 2007-08-06 |
EP1788506A3 (en) | 2012-04-04 |
US20070106890A1 (en) | 2007-05-10 |
CN100530096C (zh) | 2009-08-19 |
JP4503576B2 (ja) | 2010-07-14 |
EP1788506A2 (en) | 2007-05-23 |
CN1963758A (zh) | 2007-05-16 |
US7711944B2 (en) | 2010-05-04 |
JP2007133875A (ja) | 2007-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100746012B1 (ko) | 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치 | |
JP6595822B2 (ja) | 情報処理装置及びその制御方法 | |
KR100792287B1 (ko) | 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치 | |
JP3734408B2 (ja) | 半導体記憶装置 | |
EP2854066B1 (en) | System and method for firmware integrity verification using multiple keys and OTP memory | |
CN101308538B (zh) | 检查固件完整性的方法和设备 | |
US20090193211A1 (en) | Software authentication for computer systems | |
US20050021968A1 (en) | Method for performing a trusted firmware/bios update | |
US8392724B2 (en) | Information terminal, security device, data protection method, and data protection program | |
JP7113115B2 (ja) | シリコンデバイスファームウェア上のロールバック攻撃を防止するセキュリティシステム、および、方法 | |
CN101578609A (zh) | 安全启动计算设备 | |
CN111984962A (zh) | 固件安全验证方法及装置 | |
TW201500960A (zh) | 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全性變數變化檢測技術 | |
CN109445705B (zh) | 固件认证方法及固态硬盘 | |
KR20210089486A (ko) | 키를 안전하게 관리하기 위한 장치 및 방법 | |
JP6518798B2 (ja) | 安全な集積回路状態を管理する装置およびその方法 | |
CN118302990A (zh) | 用于基于设备所有者来生成密钥的sram物理不可克隆功能(puf)存储器 | |
WO2023212178A1 (en) | Sram physically unclonable function (puf) memory for generating keys based on device owner | |
CN112613011A (zh) | U盘系统认证方法、装置、电子设备及存储介质 | |
CN111639353A (zh) | 一种数据管理方法、装置、嵌入式设备及存储介质 | |
CN111357003A (zh) | 预操作系统环境中的数据保护 | |
TW202424741A (zh) | 所有者撤銷模擬容器 | |
CN117708897A (zh) | 用于保护嵌入式设备固件数据的方法以及嵌入式设备 | |
CN117708896A (zh) | 用于保护嵌入式设备固件数据的方法以及嵌入式设备 | |
JP4580030B2 (ja) | セキュアデバイス |
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: 20120706 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20130701 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |