KR20140082542A - 보안부팅을 위한 인증수단의 변경을 지원하는 방법 및 장치 - Google Patents

보안부팅을 위한 인증수단의 변경을 지원하는 방법 및 장치 Download PDF

Info

Publication number
KR20140082542A
KR20140082542A KR1020130045350A KR20130045350A KR20140082542A KR 20140082542 A KR20140082542 A KR 20140082542A KR 1020130045350 A KR1020130045350 A KR 1020130045350A KR 20130045350 A KR20130045350 A KR 20130045350A KR 20140082542 A KR20140082542 A KR 20140082542A
Authority
KR
South Korea
Prior art keywords
certificate
initial
initial certificate
electronic device
boot
Prior art date
Application number
KR1020130045350A
Other languages
English (en)
Inventor
이인종
닝 펭
김영규
김영집
장동호
조시준
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to US14/138,810 priority Critical patent/US9971895B2/en
Priority to EP13199298.4A priority patent/EP2746982B1/en
Priority to CN201310717070.4A priority patent/CN103886246B/zh
Publication of KR20140082542A publication Critical patent/KR20140082542A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

전자장치를 위한 보안 부트(secure boot)를 생성하는 방법 및 장치에 관한 다양한 실시 예들이 기재되어 있는 바, 한 실시 예에 따르면, 제1 초기 인증서 및 제2 초기 인증서를 포함하는 다수의 초기 인증서들을 저장하는 동작과, 제1 초기 인증서 또는 제2 초기 인증서 중 선택된 초기 인증서를 가리키는 인증서 선택 정보를 저장하는 동작 및 요청에 따라 상기 초기 인증서를 상기 제1 초기 인증서에서 상기 제2 인증서로 변경하는 동작을 포함한다. 다양한 다른 실시 예들이 가능하다.

Description

보안부팅을 위한 인증수단의 변경을 지원하는 방법 및 장치 {Method and apparatus for supporting dynamic change of authentication means for secure booting }
본 개시는 보안부팅을 위한 인증수단의 변경을 지원하는 방법에 관한 것으로서, 특히 이미 생산된 전자장치의 트러스트 루트(root of trust)를 변경할 수 있는, 보안부팅을 위한 인증수단의 변경을 지원하는 방법과 그의 전자장치에 관한 것이다.
스마트 폰, 태블릿 PC와 같은 모바일 기기가 대중화되고 응용 프로그램의 종류가 늘어나면서 모바일 기기의 사용 환경은 PC 환경과 유사해지고 있다.
이에 따라 모바일 기기에서도 악성 코드에 의한 피해 사례가 증가하고 있다.
또한 전자결재와 같은 높은 보안수준을 필요로 하는 응용 분야가 확대되어감에 따라 스마트폰의 보안에 대한 요구와 관심이 높아지고 있다.
특히, 안드로이드 운영체제는 오픈 소스 플랫폼에 기반하여 대부분의 소스 코드가 공개되어 있어 취약점에 쉽게 노출될 수 있는 약점이 있고, 엄격하게 통제되지 않은 앱스토어를 통해 악성 애플리케이션이 유통될 우려가 높으며, 실제로도 플랫폼의 루트 권한을 획득하여 사용자의 민감한 개인정보를 유출하는 사고 사례들이 많이 보고되고 있다.
특히, 이러한 보안 취약점들은 스마트 기기가 높은 보안 수준을 요구하는 공공 부분으로 도입되어 활용되는데 걸림돌이 되고 있어, 이를 극복하기 위해 모바일 운영체제의 보안 설계가 지속적으로 강화되고 있으며, 최근의 SoC들은 부팅 과정에서 인증서와 디지털 서명을 기반으로 하는 보안 부팅을 지원하고 있다.
최근의 SoC는 부팅 동작에서 보안 부트 체인(Secure boot chain)의 형태로 기초 보안을 제공한다.
이와 같은 종래기술로서, 대한민국 공개특허공보 제10-2002-0092222호(발명의 명칭: 보안 부팅 방법 및 보안 부트 이미지 생성 방법)는 인증되지 않은 부트 이미지를 통한 부팅을 방지할 수 있는 보안 부팅 방법을 개시하고 있다.
본 개시는 이미 생산된 B2C 방식의 전자장치의 트러스트 루트(root of trust)를 B2B 또는 B2G 방식으로 이전할 수 있는 방법 및 장치를 제공한다.
또한, 본 개시는 서로 다른 다수의 초기 인증서들에 대응되는 부트로더 또는 부트 이미지가 서로 상이한 기능 또는 보안 레벨을 갖도록 설정하는 경우에, 초기 인증서의 변경에 따라 전자장치를 서로 다른 기능 또는 보안 레벨로 사용할 수 있는 방법 및 장치를 제공한다.
본 개시에 따르면, 전자장치를 위한 보안 부트(secure boot)를 생성하는 방법에 있어서, 제1 초기 인증서 및 제2 초기 인증서를 포함하는 다수의 초기 인증서들을 저장하는 동작과, 상기 제1 초기 인증서를 상기 전자장치의 보안부팅을 위한 초기 인증서(root certificate)로 지정하는 동작; 및 요청에 따라 상기 초기 인증서를 상기 제1 초기 인증서에서 상기 제2 초기 인증서로 변경하는 동작을 포함할 수 있다.
본 개시에 따르면, 전자장치에 있어서, 제1 초기 인증서 및 제2 초기 인증서를 포함하는 다수의 초기 인증서들을 저장하기 위한 제1메모리; 상기 제1 초기 인증서 또는 상기 제2 초기 인증서 중 선택된 초기 인증서를 가리키는 인증서 선택 정보를 저장하기 위한 제2메모리; 및 상기 인증서 선택 정보가 상기 제1 초기 인증서를 가리킨다고 결정하는 경우에, 상기 제1 초기 인증서를 이용하여 상기 전자장치의 부트 이미지를 인증하고, 상기 인증서 선택 정보가 상기 제2 초기 인증서를 가리킨다고 결정하는 경우, 상기 제2 초기 인증서를 이용하여 상기 부트 이미지를 인증하도록 설정된 인증 모듈을 실행하기 위한 하나 이상의 프로세서를 포함할 수 있다.
본 개시에 따르면, 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 제1 초기 인증서 및 제2 초기 인증서를 포함하는 다수의 초기 인증서들을 저장하는 동작; 상기 제1 초기 인증서를 전자장치의 보안부팅을 위한 초기 인증서(root certificate)로 지정하는 동작; 및 요청에 따라 상기 초기 인증서를 상기 제1 초기 인증서에서 상기 제2 초기 인증서로 변경하는 동작을 포함할 수 있다.
본 개시에 따르면, 예상 구매자 및 제조업자의 초기 인증서 전체를 전자장치에 저장해놓고, 추후 트러스트 루트 변경 요청에 따라 그 중 하나의 초기 인증서를 선택하게 함으로써, 트러스트 루트를 변경할 수 있다.
이 초기 인증서를 선택하는 시점은 제품 생산 시점 또는 제품이 공급된 후의 시점일 수 있으며, 이에 따라 주문자의 필요에 의해 초기 인증서를 선택하거나 변경할 수 있다.
또한, 서로 다른 다수의 초기 인증서들에 대응되는 부트로더 또는 부트 이미지가 서로 상이한 기능 또는 보안 레벨을 갖도록 설정하는 경우에, 초기 인증서의 변경에 따라 전자장치를 서로 다른 기능 또는 보안 레벨로 사용할 수 있다.
도 1은 본 개시에 따른 보안 부팅을 위한 초기 인증서를 동적으로 변경하기 위한 전자장치의 구성을 도시한다.
도 2는 본 개시에 따라 전자장치를 위한 보안 부트를 생성하는 방법의 흐름을 도시한다.
도 3은 본 개시에 따른 보안 부팅을 수행하기 위한 전자장치를 수행하는 시스템을 개략적으로 도시한다.
도 4는 본 개시에 따른 전자장치의 보안부팅을 위한 부트로더의 구성을 개략적으로 도시한다.
도 5는 본 개시에 따라 전자장치의 부트로더가 실행되는 예를 도시한다.
도 6은 본 개시에 따른 보안 부팅 방법의 흐름을 도시한다.
도 7은 본 개시에 따른 보안루트를 변경하는 방법의 흐름을 도시한다.
도 8은 본 개시에 따른 전자장치의 인증서 선택 정보를 변경하는 예를 도시한다..
도 9는 본 개시에 따른 초기 인증서 저장 영역을 예시한다.
이하, 첨부된 도면을 참조하여 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자가 본 개시를 용이하게 실시할 수 있도록 실시예를 상세히 설명한다. 다만, 본 개시의 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
본 개시의 실시 예에서 지원하는 전자장치는, 태블릿 PC, 이동 통신 전자기, 이동 전화기, 개인 정보 전자기(PDA, Personal Digital Assistant), 스마트 폰(smart phone), IMT-2000(International Mobile Telecommunication 2000) 전자기, CDMA(Code Division Multiple Access) 전자기, WCDMA(Wideband Code Division Multiple Access) 전자기, GSM(Global System for Mobile communication) 전자기, GPRS(General Packet Radio Service) 전자기, EDGE(Enhanced Data GSM Environment) 전자기, UMTS(Universal Mobile Telecommunication Service) 전자기 및 디지털 방송(Digital Broadcasting) 전자기 및 ATM(Automated Teller Machine) 등과 같은 모든 정보통신기기 및 멀티미디어 기기와 그에 대한 응용에도 적용될 수 있다.
상기 전자장치는 디지털 방송(예컨대, DMB(Digital Multimedia Broadcasting)나 DVB(Digital Video Broadcasting)와 같은 이동 방송)의 수신을 위한 디지털 방송 모듈, 피사체의 정적영상 및 동적영상 촬영을 위한 카메라 모듈, 블루투스(BLUETOOTH) 통신, 적외선(IrDA, Infrared Data Association) 통신, RFID(Radio Frequency Identification) 통신, NFC(Near Field Communication) 등과 같은 근거리 무선통신 기반의 통신 기능을 지원하기 위한 적어도 하나의 근거리 통신 모듈, 하드 키(Hard key) 기반의 입력을 지원하기 위한 입력부, 이동통신 기반의 음성통화, 영상통화, 데이터통화 등의 통신 기능을 지원하기 위한 무선주파수(RF, Radio Frequency) 모듈, IP(Internet Protocol) 기반의 인터넷 통신 서비스를 지원하는 위한 통신 모듈, 그리고 상기와 같은 구성들에 전원 공급을 위한 배터리(battery) 등의 구성을 더 포함할 수 있으나, 그들에 대한 설명과 도시는 생략한다.
칩 제조사의 제품 별 방식은 조금씩 차이가 있으나, 부팅 동작을 보안 부트 체인 방식의 공통 원리는 다음과 같다. 부트 코드가 최소한 2개 이상의 개별 코드로 구성되고, 이들 중 첫 번째 롬 메모리 부트 코드가 롬 메모리에 저장될 수 있다. 이는 어떠한 방법으로도 변조나 대체가 불가능하다. 예컨대, 전자장치의 전원을 켤 경우 프로세서는 롬 메모리에 저장된 부트 코드를 실행하고, 순차적으로 두 번째 부트 코드를 실행시킬 수 있다. 두 번째 부트 코드는 제조자(OEM) 커스텀 부트 코드(custom boot code)로서 플래시 메모리 등의 재기록(rewrite)이 가능한 메모리 영역에 전자장치의 제조자 장치가 생산 공정 중 전자를 제어하기 위해 롬 메모리에 기록할 수 있다.
롬 부트 코드(ROM boot code)는 칩 제조사가 생산동작에서 영구적으로 심는 반면에 제조자 부트 코드(OEM boot code)는 제조자가 생산라인에서 플래시 라이트(flash write) 장비를 이용하거나 엔지니어링 다운로더를 통하여 몇 번이라도 교체 가능하다. 이 때문에 보안에 취약한 부분이 발생하고, 롬 부트 코드의 진위와 변조여부를 검사할 수 있다.
하나의 실시예로서, 전자장치의 실행 이미지(바이너리 혹은 부트 이미지)들의 해쉬값을 제조사의 공개키로 전자 서명하여 전자서명을 생성하고, 이를 재기록이 가능한 플래시 메모리 영역에 실행 이미지와 함께 저장할 수 있다. 그리고 인증서(Certificate)도 함께 플래시 메모리 영역에 저장하는데, 인증서에 포함된 공개키와 전자서명을 이용하여 해쉬값을 계산하고, 부팅 시 현재의 해쉬값과 비교하여 두 값의 동일여부로 위변조 여부를 확인하는데 사용될 수 있다. 여기서, 인증서 대신 공개키만을 플래시 메모리 영역에 저장할 수 있다.
인증서나 공개키의 진위여부를 가리기 위해 인증서의 해쉬값을 칩의 OTP(One Time Programmable) 영역에 퓨즈하고, 부팅 시에 퓨즈된 해쉬값과 현재 해쉬값을 비교할 수 있다. 이 해쉬값은 트러스트 체인(chain of trust)의 가장 시작점에 있으므로 트러스트 루트(trust root)라고 부른다.
하나의 실시예에 따르면, 인증서의 해쉬값을 롬 메모리에 퓨즈할 수 있다. 공개키 안전여부를 보장하기 위해 SOC가 제조자로부터 공개키의 해쉬값을 시큐어(secure)한 채널을 통해 입수하여 SOC의 제조 공정 동작에서 (공장 내부에서) 퓨징할 수 있다.
이러한 방법에 따르면, 트러스트 루트를 변경해야 하는 상황에서 유연성이 떨어질 수 있다.
본 개시에 따르면 이미 생산된 B2C 방식의 전자장치의 트러스트 루트(root of trust)를 B2B 또는 B2G 방식으로 이전할 수 있다.
또한, 본 개시에 따르면, 전자장치의 보안부팅에 디폴트로 이용되던 인증수단으로서의 제조업자 인증수단을 추후에 예비 구매단체가 제작한 주문자 인증수단으로 변경할 수 있다.
또한, 본 개시에 따르면 서로 다른 다수의 초기 인증서들에 대응되는 부트로더 또는 부트 이미지가 서로 상이한 기능 또는 보안 레벨을 갖도록 설정하는 경우에, 초기 인증서의 변경에 따라 전자장치를 서로 다른 기능 또는 보안 레벨로 사용할 수 있다.
도 1은 본 개시에 따른 보안 부팅을 위한 초기 인증서를 동적으로 변경하기 위한 전자장치의 구성을 도시한다.
도 1을 참조하면, 본 개시에 따른 전자장치(100)는 제1메모리(110) 및 칩 셋(120)를 포함하여 구성될 수 있다.
제1메모리(110)는 제1초기 인증서(161) 및 제2초기 인증서(162)를 포함하는 다수의 초기 인증서들을 저장하는 인증서 저장 영역(160)을 포함할 수 있다. 여기서 인증서 저장 영역(160)은 다수의 인증서 대신 공개키들을 포함하는 영역으로 구성될 수 있음에 한정하지 않는다.
제1메모리(110)는 전자장치 내에 탑재되어 칩 셋(120)에 연결될 수 있는 메모리로서 비휘발성 메모리일 수 있다.
인증서 저장 영역(160)은 제1초기 인증서(161), 제2초기 인증서(162) 또는 더미 인증서(163)를 더 포함할 수 있다.
제1 초기 인증서(161) 및 제2초기 인증서(162) 들은 각각에 대응되는 공개키를 포함할 수 있다.
더미 인증서(163)는 공개키와 같이 실질적으로 인증에 사용될 수 있는 정보를 포함하지 않고, 인증서 저장 영역(160)에서 초기 인증서 저장을 위해 예약된 단위 영역을 형식적으로 채우는 데이터를 가리킬 수 있다.
제 1 메모리(110)는 부트 이미지 저장 영역(170) 또는 전자 서명 저장 영역(180) 등을 더 포함할 수 있다.
부트 이미지 저장 영역(170)은 부트 이미지를 저장할 수 있다. 부트 이미지는 전자장치(100)의 전원을 켜거나(on) 또는 전자장치를 재시작(restart)시킬 때에 수행될 수 있다.
전자 서명 저장 영역(180)은 부트 이미지의 전자 서명을 저장할 수 있다. 예컨대, 부트 이미지의 전자 서명은 부트 이미지의 원본 또는 원본의 축약된 메시지(예컨대, 해쉬값)를 보안부팅을 위한 초기 인증서의 공개키에 대응되는 개인키로 서명하여 생성될 수 있다.
제1메모리(110)는 적어도 하나 이상의 부트로더를 저장할 수 있으며, 부트로더는 다수의 초기 인증서, 부트 이미지 및 전자 서명을 포함하여 구성될 수 있다. 제1메모리(110)에 복수의 부트로더들이 저장된 경우에는 각 부트로더 별로, 인증서 저장 영역(160), 부트 이미지 저장 영역(170)또는 전자 서명 저장 영역(180)이 할당될 수 있다.
칩 셋(120)은 제2메모리(130) 및 프로세서(140)를 포함할 수 있다.칩 셋(120)은 SOC(System On Chip), 마이크로프로세서, 중앙 처리 장치(Central Processing Unit: CPU), 그래픽 처리 장치(Graphic Processing Unit, GPU), 마이크로 컨트롤러(Micro Control Unit: MCU) 또는 이와 유사한 장치일 수 있다. 또한 칩 셋(120)은, 본 개시에 따른 전자장치의 어플리케이션 프로세서(Application Processor: AP), 통신용 프로세서(Communication Processor: CP), 멀티미디어 프로세서(Multimedia Processor) 등으로 기능할 수 있다.
제2메모리(130)는 제1 초기 인증서 및 제2 초기 인증서를 포함하는 다수의 초기 인증서들 중 하나를 가리키는 인증서 선택 정보를 저장할 수 있다. 예컨대, 인증서 선택 정보는 전자장치(100)의 보안 인증에 사용될 초기 인증서를 가리킬 수 있다. 예컨대, 제2메모리(130)는 인증서 선택 정보를 위해 적어도 일회 변경 가능한 메모리(예컨대, 칩 셋의 퓨즈 영역(fuse area))일 수 있다.
프로세서(140)는 전자장치(100)의 전원을 켜거나(ON) 또는 전자장치를 재시작(restart)시킬 때에 수행될 보안 부팅을 위해 인증 모듈(150)을 실행할 수 있다.
인증 모듈(150)은 인증서 선택 정보가 가리키는 초기 인증서를 이용하여 전자장치(100)의 부트 이미지를 인증하도록 설정될 수 있다. 예컨대, 부트 이미지는 제1메모리(110) 내의 부트 이미지 저장 영역(170)에 저장될 수 있으며, 또는 제 1메모리 외의 별도의 저장매체(미도시)에 저장될 수도 있다. 예컨대, 별도의 저장 매체는 전자장치의 내부에 탑재될 수도 있으며, 전자장치의 외부에 연결될 수도 있다.
칩 셋(120)은 추가적인 구성요소로 제5메모리(135)를 포함할 수 있고, 제5메모리(135)는 제1메모리(110)의 인증서 저장 영역(160)의 해쉬 값을 저장할 수 있다. 제 5메모리(130)는 칩-셋에 탑재된 비휘발성 메모리일 수 있다.
예컨대, 제5메모리(135)에 인증서 저장 영역(160)의 해쉬 값이 미리 저장되어 있는 경우에, 인증 모듈(150)은 인증 수행 시점의 인증서 저장 영역(160)의 해쉬값을 계산하여, 계산된 해쉬값과 제5메모리(135)에 기저장된 해쉬 값을 비교할 수 있다. 비교한 결과, 계산된 해쉬값과 제5메모리(135)에 기저장된 해쉬 값이 동일한 경우 인증서 저장 영역(160)이 불법적으로 위변조되지 않은 것으로 판단 할 수 있어, 인증서 저장 영역(160)에 저장된 다수의 초기 인증서들의 무결성(integrity)을 입증할 수 있다.
또한, 제5메모리(135)는 추가적으로 초기 부트로더의 코드가 저장될 수 있다.
구현예에 따라서는, 제5메모리(135)는 제2메모리(130)의 적어도 일부로 포함되어 구성될 수 있다(예컨대, 제2 메모리에 인증서 선택 정보, 인증서 저장 영역의 해쉬값 또는 초기 부트로더의 코드가 저장될 수 있다).
제2메모리(130) 또는 제5메모리(135)는 저장되는 정보/코드의 종류에 따라 적어도 하나 이상의 서브 메모리 영역으로 분리될 수 있다.
본 실시예에 따른 제1 메모리, 제2메모리 및 제5메모리는 OTP(one time programmable) 메모리, 마스크 ROM(read only memory), PROM(programmable read only memory), EPROM(erasable and programmable read only memory), EEPROM(electrically erasable and programmable read only memory), 또는 플래시 메모리 중 적어도 하나인 비휘발성 메모리일 수 있다.
도 2는 본 개시에 따라 전자장치를 위한 보안 부트를 생성하는 방법의 흐름을 도시한다.
도2를 참조하면, 동작 201에서, 본 개시에 따른 전자장치에 제1 초기 인증서 및 제2 초기 인증서를 포함하는 다수의 초기 인증서들을 저장할 수 있다.
동작 202에서, 제1 초기 인증서를 전자장치의 보안부팅을 위한 초기 인증서(root certificate)로 지정할 수 있다. 예컨대, 동작 202에서, 초기 인증서를 가리키는 인증서 선택 정보로 제1 초기 인증서를 가리키는 정보를 저장할 수 있다.
예컨대, 동작 202에 따르면, 초기 인증서를 가리키는 인증서 선택 정보를 전자장치의 칩 셋의 퓨즈 영역 또는 부트 이미지의 헤더 등의 기지정된 영역에 저장할 수 있다. 본 개시에 따른 인증서 선택 정보로는, 동작 201에서 제1초기 인증서가 저장된 주소 정보 또는 제2 초기 인증서가 저장된 주소 정보가 될 수 있으나, 이는 하나의 실시예에 불과하며, 이에 한정되지 않는다.
동작 201 및 동작 202는 서로 동시에 수행되어도 무방하며, 동작 201-동작 202의 순서로 수행되어도 되며, 그 역순으로 수행되어도 무방하다. 본 개시에서는 이 동작들의 수행 순서를 제한하지 않는다.
동작 203에서, 요청에 따라 전자장치의 보안 부팅을 위한 초기 인증서를 제1 초기 인증서에서 제2 초기 인증서로 변경할 수 있다().
예컨대, 동작 203은 기지정된 영역에 저장된 인증서 선택 정보를 제1초기 인증서의 주소 정보에서 제2 초기 인증서의 주소 정보로 대치하는 동작을 포함할 수 있다.
또한, 전자장치에 제1 초기 인증서에 대응되는 전자 서명이 저장되어 있는 경우에, 동작 203은 제1 초기 인증서에 대응되는 전자 서명을 제2 초기 인증서에 대응되는 전자 서명으로 대치하는 동작을 포함할 수 있다.
예컨대, 제1초기 인증서에 대응되는 전자 서명은 부트 이미지의 원본 또는 축약본을 제1초기 인증서의 공개키에 대응되는 개인키로 서명하여 생성될 수 있다. 이와 같이 생성된 전자 서명은 제1 초기 인증서의 공개키로 복호화(unsign)하여, 부트 이미지의 원본 또는 축약본을 인증할 수 있다.
또한, 제2초기 인증서에 대응되는 전자 서명은 부트 이미지의 원본 또는 축약본을 제2 초기 인증서의 공개키에 대응되는 개인키로 서명하여 생성될 수 있다. 이와 같이 생성된 전자 서명은 제2 초기 인증서의 공개키로 복호화(unsign)하여, 부트 이미지의 원본 또는 축약본을 인증할 수 있다.
또한, 제1 초기 인증서에 대응되어 서명될 부트 이미지와 제2 초기 인증서에 대응되어 서명될 부트 이미지는 서로 동일할 수도 있으며, 상이할 수 있다.
예컨대, 동작 203은 제1 초기 인증서가 초기 인증서로 지정된 이후에 초기 인증서의 변경을 위한 요청을 받아 수행될 수 있다.
본 개시에 따르면, 제1 초기 인증서가 초기 인증서로 지정된 경우에, 제 1 초기 인증서 외에 보안 부팅을 위한 추가적인 인증서(예컨대, 발급기관 인증서(CA Attestation Certificate), 부트 이미지 인증서(Attestation Certificate) 등)을 더 포함할 수 있다.
도 3은 본 개시에 따른 보안 부팅을 수행하기 위한 전자장치를 수행하는 시스템을 개략적으로 도시한다.
도 3을 참조하면, 본 개시에 따른 전자장치(300)는 칩 셋(310), 제1메모리(320) 및 제4메모리(330)를 포함하여 구성될 수 있다.
칩 셋(310)은 프로세서(314), 제2 메모리(312), 제3 메모리(313)를 포함하여 구성될 수 있다. 이외에도 메모리 컨트롤러, 추가적인 메모리 등을 더 포함할 수 있음은 자명하다.
제1 메모리(320)는 적어도 하나 이상의 부트로더 또는 커널을 포함할 수 있다. 부트로더 및 커널은 각각 소프트웨어 소스 코드일 수 있다.
예컨대, 도 3에 도시된 바에 따르면, 제1메모리(320)는 3개의 부트로더 즉, 제1 부트 로더(BL1), 제2 부트 로더(BL2), 제3 부트로더(BL3) 및 커널(Kernel)을 포함할 수 있다. 이는 하나의 실시예에 불과하며, 본 개시는 부트로더의 개수를 한정하지 않는다.
제1메모리(320)에 다수의 부트로더가 포함된 경우에는 부트로더들은 각각 다음 부트로더를 순차적으로 동작시킬 수 있다.
제5 메모리(312)는 칩 셋 내부의 비휘발성 메모리로, 시스템에 전원이 공급될 때 실행되는 초기 부트로더(ROM BOOT)를 저장할 수 있다.
제3메모리(313)는 칩 셋 내부의 휘발성 메모리로, 제2 메모리에 저장된 초기 부트로더 또는 제1 메모리(320)에 저장된 부트로더 중 적어도 일부의 코드를 수행시키기 위해 동적으로 로드할 수 있는 공간을 제공할 수 있다.
제4 메모리(330)는 칩 셋 외부의 휘발성 메모리로, 제1 메모리(320)에 저장된 부트로더 또는 커널 중 적어도 일부의 코드를 수행시키기 위해 동적으로 로드할 수 있는 공간을 제공할 수 있다. 예컨대, 제4 메모리(330)는 제3 메모리(313)보다 큰 용량을 가질 수 있으며, 이 경우에, 부트로더 중 상대적으로 작은 크기의 코드는 제3 메모리(313)에 로드되고, 상대적으로 큰 크기의 코드는 제4메모리(330)에 로드될 수 있으나, 이는 하나의 실시예에 불과하며, 본 개시는 제3메모리(313) 및 제4메모리(330)의 용량을 한정하지 않는다. 예컨대, 제 3 메모리 및 제4메모리는 DRAM(dynamic random access memory), SRAM(static random access memory), SDRAM(synchronous dynamic random access memory) 중 적어도 하나의 휘발성 메모리일 수 있다.
예컨대, 전자장치의 전원이 켜지면, 초기 부트로더(ROM BOOT)는 제3메모리(313)로 로드되어 프로세서에 의해 실행될 수 있다.
초기 부트로더(ROM BOOT)가 실행되면, 프로세서(314)는 제1 메모리(320)를 탐지(detect)하고, 탐지된 제1메모리(320)를 초기화하고, 제1 메모리(320)에 저장된 제1 부트 로더(BL1)를 제3 메모리(313)에 로드하고, 제1 부트 로더(BL1)를 인증하고, 인증에 성공하면, 제1부트로더(BL1)를 실행할 수 있다.
제1 부트 로더(BL1)가 실행되면, 프로세서(314)는 제2 부트로더(BL2)를 인증하고, 인증에 성공하면, 제2부트로더(BL2)를 실행할 수 있다.
제2 부트 로더(BL2)가 실행되면, 프로세서(314)는 제4메모리(330)를 탐지하고, 탐지된 제4메모리(330)를 초기화하고, 초기화된 제4메모리(330)에 제3부트로더(BL3)를 로드하고, 제3부트로더(BL3)를 인증하고, 인증에 성공하면, 제3부트로더(BL3)를 실행할 수 있다.
제3 부트로더(BL3)가 실행되면, 프로세서(314)는 제4메모리(330)에 커널을 로드하여, 커널을 실행시킴으로써, 초기 부팅을 구현할 수 있다. 제3부트로더(BL3)는 제4메모리(330)에 로드된 커널을 인증한 후에 인증에 성공한 경우에만 커널을 실행하도록 설정될 수 있고(오픈 소스 커널 부팅), 또는 커널을 별도로 인증하는 과정을 거치지 않고, 제4메모리(330)에 로드된 커널을 실행하도록 설정될 수 있다. (클로즈 소스 커널 부팅)
본 개시에 따르면 전자장치의 보안부팅은 초기 부트로더(ROM BOOT)부터 제1 부트로더(BL1), 제2 부트로더(BL2), 제3부트로더(BL3) 및 커널의 순으로 수행될 수 있으나, 이는 하나의 실시예에 불과할 뿐이며, 본 개시는 이러한 수행 순서나 부트로더의 개수나 종류를 한정하지 않는다. 본 개시에 따르면, 제1메모리(320)에 부트로더가 다수 포함될 수 있으나, 부트로더가 하나인 경우에도 무방하다.
도 4는 본 개시에 따른 전자장치의 보안부팅을 위한 부트로더의 구성을 개략적으로 도시한다. 본 개시에 따른 부트로더는 도3에 도시된 제1 부트로더(BL1), 제2부트로더(BL2) 및 제3부트로더(BL3) 중 적어도 하나에 대응될 수 있다.
도 4를 참조하면, 본 개시에 따른 부트로더(400)는 초기 인증서 저장영역(410), 인증기관 인증서 저장 영역(420), 부트 이미지 인증서 저장영역(430), 부트 이미지 저장영역(440)을 포함할 수 있다.
초기 인증서 저장영역(410)은 보안 부팅에 사용되는 적어도 하나 이상의 초기 인증서를 저장할 수 있다.
예컨대, 초기 인증서 저장영역(410)에 제1초기 인증서(411) 및 제2 초기 인증서(412)를 포함한 복수의 초기 인증서들을 저장한 경우에는, 부트로더의 인증에 사용할 초기 인증서를 제1초기 인증서(411)에서 제2초기 인증서(412)로 변경할 수 있고, 전자장치가 판매된 이후에 초기 인증서를 사후적으로 변경할 수 있다.
본 개시는 초기 인증서 저장 영역(410)에 제1 내지 제4 초기 인증서(411~414)들이 저장된 예를 개시하나, 이는 하나의 실시예에 불과하며, 초기 인증서의 개수나 저장 형태 등은 이에 한정되지 않는다. 초기 인증서 저장 영역(410)에 저장된 초기 인증서들은 각각의 공개키를 포함할 수 있다.
또한 초기 인증서 저장 영역(410)의 적어도 일부에 초기 인증서 대신 더미 인증서가 저장될 수 있다. 더미 인증서는 공개키와 같이 실질적으로 인증에 사용될 수 있는 정보를 포함하지 않고, 초기 인증서 저장 영역(410)에서 초기 인증서 저장을 위해 예약된 단위 영역을 형식적으로 채우는 데이터를 가리킬 수 있다.
제1 내지 제4 초기 인증서(411~414)는 적어도 하나의 예상 사용자(예컨대 B2B 또는 B2G 클라이언트), 제조자 중 적어도 하나에 각각 대응하는 인증서들일 수 있다.
예컨대, 서로 다른 예상 B2B클라이언트들에 각각 대응하는 공개키들을 포함한 인증정보를 저장하거나, 동일한 예상 B2B 클라이언트에 대응하는 복수의 서로 다른 공개 키들을 갖는 복수의 초기 인증서들을 초기 인증서 저장 영역(410)에 저장할 수 있다.
또 다른 개시에 따르면, 제1 초기 인증서(411)는 전자장치의 제조자의 공개키(public key)를 포함하고, 제2 초기 인증서(412)는 사용자(주문자)의 공개키를 포함할 수 있다. 또는, 제1 초기 인증서(411)는 전자장치 제조자의 제1 공개키를 포함하고, 제2 초기 인증서(412)는 제1초기 인증서(411)와 동일한 전자장치 제조자의 제2 공개키를 포함할 수 있다.
제1초기 인증서(411)에 대응되는 부트 이미지와 제2초기 인증서(412)에 대응되는 부트 이미지는 서로 동일하거나 상이할 수 있다. 부트 이미지들 각각에 대하여, 커널을 로드한 후 부팅할 때, 커널에 대한 인증을 수행할 지 여부를 다르게 처리할 수 있다.
이와 같은 초기 인증서는 전자장치가 판매된 이후에 사후적으로 변경될 수 있다.
부트 이미지 인증서 저장 영역(430)은 부트 이미지 인증서(attestation certificate, 431)를 저장할 수 있다.
부트 이미지 인증서(431)는 부트 이미지(442)의 무결성(integrity)을 증명하기 위한 인증서이며, 부트 이미지 인증서(431)를 구성하는 각각의 필드(field)에 부트 이미지(442)에 관한 부가적인 정보를 포함할 수 있다. 부트 이미지 인증서 저장 영역(430)은 부트 이미지 인증서(431)를 초기 인증서의 공개키에 대응되는 개인키로 전자 서명한 전자서명(432)을 추가적으로 저장할 수 있다. 구현 예에 따라서는, 부트 이미지 인증서(431)에 사용자를 식별할 수 있는 정보와 관련된 필드(예컨대, EID)가 추가될 수 있다.
인증기관 인증서 저장영역(420)는 인증기관 인증서(attestation CA certificate, 421)를 저장할 수 있다.
인증기관 인증서(421)는 전술한 부트 이미지 인증서가 정상적인 인증서 인증기관에서 발급되었는지를 증명하기 위한 인증서이며, 인증기관 관련 부가적인 정보를 포함할 수 있다. 인증기관 인증서 저장 영역(420)은 인증기관 인증서(421)를 초기 인증서에 대응되는 개인키로 전자 서명한 전자서명(422)을 추가적으로 저장할 수 있다. 구현 예에 따라서는, 인증기관 인증서(421)에 사용자를 식별할 수 있는 정보와 관련된 필드(예컨대, EID)가 추가될 수 있다.
부트 이미지 저장 영역(440)은 부트 이미지의 헤더(Header, 441), 부트 이미지(Boot image, 442) 및 부트 이미지의 전자서명(443)을 포함할 수 있다.
부트 이미지(442)는 전자장치 내부에 포함되거나 외부에서 연결된 적어도 하나의 장치를 초기화하도록 설정된 소스 코드, 다음 부트로더 또는 커널을 전자장치 내부 또는 외부의 휘발성 메모리에 로드하도록 설정된 소스 코드, 로드된 다음 부트로더 또는 커널을 인증하도록 설정된 코드 등을 포함할 수 있다. 부트 이미지의 전자서명(443)은 초기 인증서의 공개키에 상응하는 개인키를 이용하여 부트 이미지(442)의 원본 또는 축약본(예컨대, 해쉬 값)에 대하여 서명함으로써 생성될 수 있다. 여기서 개인키는 사용자(주문자) 또는 제조자가 가지고 있을 수 있다.
도 5를 참조하면, 본 개시에 따른 전자장치는 칩 셋(510) 및 제1 메모리(500)를 포함하여 구성될 수 있다.
제1메모리(500)는 적어도 하나 이상의 부트로더(400)를 저장할 수 있으며, 본 개시에 따른 부트로더(400)의 구성은 도 4에 도시된 부트로더(400)의 구성에 대응될 수 있다.
칩 셋(510)은 제2메모리(511), 제5메모리(512) 및 프로세서(processor, 513)를 포함할 수 있으며, 이들은 각각 도1에 도시된 칩 셋(120)의 제2메모리(130), 제5메모리(135) 및 프로세서(140)에 각각 대응될 수 있다.
제2메모리(511)는 적어도 1회 변경 가능한 메모리로 구현될 수 있으며, 적어도 일부의 영역에 인증서 선택부(531)를 포함할 수 있다. 제2메모리(511)는 칩 셋의 퓨즈 영역(fuse area)일 수 있다.
인증서 선택부(531)는 초기 인증서 저장 영역(410)에 저장된 복수의 인증서들(411~414) 중 하나의 초기 인증서를 가리키는 인증서 선택 정보를 저장할 수 있다. 예를 들어, 인증서 선택 정보는 부트로더(400) 상에서 하나의 초기 인증서가 저장된 메모리 주소정보일 수 있다.
구현 예에 따라서는, 제2메모리(511)의 인증서 선택부(531) 외에도 제1메모리(500) 부트 이미지의 적어도 일부의 영역(예컨대, 헤더, 441)에 복수의 초기 인증서들 중 하나의 초기 인증서를 가리키는 인증서 선택 정보를 포함할 수도 있다.
다른 구현 예에 따라서는, 제2 메모리(511), 제1메모리(500)의 부트 이미지 인증서(431), 또는 제1메모리(500)의 인증 기관 인증서(421) 중 적어도 일부에 사용자를 식별하기 위한 정보에 관련된 추가적인 필드(예컨대, EID)를 저장할 수 있다.
제5메모리(512)는 칩 셋 내부의 비휘발성 메모리로, 제1메모리(400)의 초기 인증서 저장 영역(410) 전체의 초기 해쉬 값을 저장할 수 있다. 초기 해쉬 값은 칩 셋 제조 시점에 제1메모리(500)의 초기 인증서 저장 영역(410)에 대해 미리 계산된 해쉬 값으로, 사후적인 초기 인증서 변경 시점에 초기 인증서 저장 영역의 무결성을 입증하기 위해 칩 셋 내부의 비휘발성 메모리에 저장될 수 있다.
이하에서 본 개시에 따른 전자장치의 보안 부팅에 대해 설명한다.
도 6은 본 개시에 따른 보안 부팅 방법의 흐름을 나타내는 순서도이다.
본 개시에 따른 보안 부팅 방법은 1차 보안검증 및 2차 보안검증을 포함하여 구현될 수 있다.
동작 610에서, 프로세서는 부트 이미지를 포함한 부트로더를 내부 또는 외부의 휘발성 메모리에 로드하고, 로드된 부트로더에 대한 보안검증을 시작할 수 있다.
동작 620에서, 프로세서는 제5메모리에 기저장된 초기 해시 값을 로드(load)할 수 있다. 동작 622에서, 프로세서는 제1메모리의 초기 인증서 저장 영역 전체의 현재 해시 값을 계산할 수 있다.
동작 630에서, 프로세서는 620 동작에서 로드된 초기 해시 값과 622 동작에서 계산된 현재 해시 값을 비교하여 일치여부를 판단할 수 있다. 동작635에서, 기준 해시 값과 현재 해시 값이 동일하지 않은 것으로 판단된 경우에는, 제1메모리의 초기 인증서 저장 영역이 위변조된 것으로 판단하여, 전자장치의 부팅 과정을 종료시킬 수 있다.
동작635 에서, 초기 해시 값과 현재 해시 값이 동일하다고 판단된 경우에는, 제1메모리의 초기 인증서 저장 영역의 무결성(integrity)을 인증할 수 있다. 이는 제1메모리의 초기 인증서 저장 영역에 저장된 코드 및 데이터 등이 위변조, 대체, 손상 또는 변형되지 않았음을 나타낼 수 있다.
상기와 같은 동작630 및 동작635까지의 1차 보안검증이 통과되면, 2차 보안 검증이 실행될 수 있다.
동작 632에서, 2차 보안 검증 실행을 위해, 인증서 선택 정보에 대응하는 초기 인증서를 선택할 수 있다.
동작 640에서는, 동작 632에 따라 선택된 초기 인증서에 포함된 공개키를 이용하여 전자서명을 복호화(unsign)하고, 전자서명의 복호화를 통해 부트 이미지에 대하여 미리 저장된 초기 해시값을 획득할 수 있다.
동작642에서는, 제1메모리의 부트 이미지 저장 영역에 저장된 부트 이미지에 대하여 현재 시점에서 계산된 해쉬값을 계산할 수 있다.
동작 650에서는, 동작642 에서 획득한 초기 해시값과 동작642 에서 계산한 현재 해시값의 일치여부를 판단할 수 있다. 동작 655에서, 초기 해시 값과 현재 해시 값이 동일하지 않은 것으로 판단되면, 제1메모리의 부트 이미지 저장 영역에 현재 저장된 부트 이미지가 위변조된 것으로 판단하여, 부트 이미지를 실행하지 않고, 전자장치의 부팅 과정을 종료시킬 수 있다. 반대로, 동작 660에서는, 초기 해시 값과 현재 해시 값이 동일하다고 판단되면, 부트 이미지가 변형되지 않은 것으로 판단하여, 부트 이미지의 무결성을 인증할 수 있다. 이처럼 부트 이미지의 무결성이 인증되면, 전자장치의 부팅 과정을 계속할 수 있다.
구현 예에 따라서는 제2메모리에 기록된 사용자 식별 정보 필드(EID)와 제1메모리의 발급기관 인증서 또는 부트 이미지 인증서에 저장된 사용자 필드(EID)의 일치여부를 추가로 확인할 수 있다.
이하에서는 본 개시에 따른 보안루트를 변경하는 방법에 대해 상세히 설명하기로 한다. 도 7은 본 개시에 따른 보안루트를 변경하는 방법의 흐름을 도시한다.
도 7을 참조하면, 동작 710에서는, 초기 인증서 저장영역, 부트 이미지, 전자서명을 포함하는 적어도 하나 이상의 부트로더가 전자장치에 저장된다. 이후 전자장치는 주문자/구매자에게 판매되거나 제조사/공급사가 가지고 있을 수 있다.
동작 720 에서는, 전자장치는 초기 인증서를 제1 초기 인증서에서 제2 초기 인증서로 변경하기 위한 요청을 수신할 수 있다. 동작 740 에서는, 동작 710에서 저장되었던 제1부트 이미지를 변경하고자 하는 제2 부트 이미지로 변경할 수 있다. 제2 부트 이미지는 전자장치 외부로부터 물리적인 커넥터 또는 유무선 인터페이스를 통해 수신되거나 전자장치 내부로부터 로드될 수 있다.
구현 예에 따라서, 제1 부트 이미지 및 제2 부트 이미지는 서로 다른 기능 그룹을 활성화하도록 설정될 수 있다. 예컨대, 제1 부트 이미지는 전자장치의 모든 기능을 활성화하도록 설정될 수 있고, 제2 부트 이미지는 전자장치의 카메라 기능을 제외한 나머지 모든 기능을 활성화하도록 설정될 수 있다.
다른 구현 예에 따라서, 제1 부트 이미지 및 제2 부트 이미지가 서로 동일할 수 있으며, 제1 부트 이미지 및 제2 부트 이미지가 서로 동일한 경우에는 동작 740에 따른 부트 이미지의 변경을 생략할 수 있다.
동작 750에서는, 제1 부트 이미지의 전자서명에서 제2 부트 이미지의 전자서명으로 변경할 수 있다. 이때 제2 부트 이미지의 전자서명은 제2 부트 이미지의 원본 또는 축약본(예컨대, 해쉬값)을 제2 초기 인증서의 공개키에 대잉되는 개인키로 서명하여 생성될 수 있다.
제2 부트 이미지의 전자서명은 전자장치 외부로부터 물리적인 커넥터 또는 유무선 인터페이스를 통해 수신하거나 전자장치 내부로부터 로드할 수 있다.
동작 760 전자장치의 칩 셋의 제2 메모리에 저장된 인증서 선택정보를 변경할 수 있다.
구현 예에 따라서는, 부트로더의 일부영역(예컨대, 헤더)에서 인증서 선택정보를 포함하고 있는 경우에는 해당 인증서 선택 정보를 변경할 수 있다.
본 실시예에서는 740, 750, 760 순으로 동작이 수행되는 것처럼 기술되었으나, 이들 동작들은 서로 선후를 바꾸어 수행되거나, 일부가 동시에 수행되거나, 일부가 생략되거나, 또는 일부의 동작이 추가될 수도 있다.
도 8은 본 개시에 따른 전자장치의 인증서 선택 정보를 변경하는 예를 도시한다.
도 8을 참조하면, 인증서 선택 정보는 복수의 비트들로 구성되고, 이들 중 맨 오른쪽 비트 값을 0 (퓨징되지 않은 상태) 또는 1 (퓨징된 상태)로 설정하여(예컨대, 0b00 또는 0b01) 제1초기 인증서가 저장된 메모리 주소 정보를 나타내도록 설정할 수 있다. 이러한 인증서 선택 정보는 제2메모리의 인증서 선택부의 디폴트 값으로 설정될 수 있다. 이후, 초기 인증서를 제3 인증서로 변경하기 위한 요청이 수신되면, 인증서 선택부(531)의 디폴트 값을 제3 초기 인증서가 저장된 주소 정보를 나타내도록 변경할 수 있다.
예컨대, 인증서 선택 정보가 제1초기 인증서의 주소 정보를 가리키는 값인 0b01로 설정된 경우에, 제1초기 인증서에 제3초기 인증서로 변경하기 위해서, 인증서 선택 정보의 두 번째로 오른쪽에 위치한 비트값을 1로 기록하여 제3초기 인증서의 주소 정보를 가리키는 값인 0b11로 변경할 수 있다.
도 9는 본 개시에 따른 초기 인증서 저장 영역을 예시한다.
도9를 참조하면, 본 개시 따른 초기 인증서 저장 영역(900)은 제조사의 제1 초기 인증서(910), 제조사의 제2초기 인증서(920), 사용자(또는 구매자)의 제3 초기 인증서(930) 및 사용자(구매자)의 제4 초기 인증서(940)를 포함할 수 있다. 제1 초기 인증서(910)및 제2 초기 인증서(920)는 각각 제조사의 제1공개키 및 제2공개키를 포함할 수 있으며, 제1공개키 및 제2공개키는 서로 동일하거나 상이해도 무방하다.
제1초기 인증서(910) 및 제2초기 인증서(920)에 각각 대응하는 부트로더들은 상이할 수 있다.
예컨대, 제1초기 인증서(910)에 대응하는 부트로더는, 커널을 휘발성 메모리에 로드하여 실행할 때, 커널을 제1 초기 인증서(910)를 기반으로 인증하도록 설정된 코드를 포함할 수 있다.
제2초기 인증서(920)에 대응하는 부트로더는, 커널을 휘발성 메모리에 로드하여 실행할 때, 커널에 대한 인증을 생략하도록 설정된 코드를 포함할 수 있다.
제3 초기 인증서(930) 및 제4초기 인증서(940)의사용자는 B2B 클라이언트(예컨대, Enterprise Customer), B2G 클라이언트(국방부, 국가정보기관기타정부기관 또는 GTC 등)를 포함할 수 있으며, 제3초기 인증서(930) 및 제4 초기 인증서(940)의 사용자는 서로 동일하거나 상이해도 무방하다.
여기서, 초기 인증서 저장 영역(900)은 제조사의 제1 공개키, 제조사의 제2 공개키, 사용자(또는 구매자)의 제3 공개키 및 사용자의 제4 공개키를 포함하는 영역으로 구성될 수 있음에 한정하지 않는다.
한편, 본 개시에 따른 명령들을 저장하고 있는 저장 매체(기록 매체)에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작을 포함할 수 있다.
상기 동작은, 제1 초기 인증서 및 제2 초기 인증서를 포함하는 다수의 초기 인증서들을 저장하는 동작과, 제1 초기 인증서 또는 제2 초기 인증서 중 선택된 초기 인증서를 가리키는 인증서 선택값을 저장하는 동작과, 요청에 따라 상기 초기 인증서를 상기 제1 초기 인증서에서 상기 제2 인증수단으로 변경하는 동작을 포함할 수 있다. 이와 같은 저장 매체의 동작에 관한 상세한 설명은 앞서 언급한 본 개시에 관한 설명을 참고할 수 있다.
본 개시에 따르면, 예상 구매자 및 제조업자의 초기 인증서 전체를 전자장치에 저장해놓고, 추후 트러스트 루트 변경 요청에 따라 그 중 하나의 초기 인증서를 선택하게 함으로써, 트러스트 루트를 변경할 수 있다.
이 초기 인증서를 선택하는 시점은 제품 생산 시점 또는 제품이 공급된 후의 시점일 수 있으며, 이에 따라 주문자의 필요에 의해 초기 인증서를 선택하거나 변경할 수 있다.
또한, 서로 다른 다수의 초기 인증서들에 대응되는 부트로더 또는 부트 이미지가 서로 상이한 기능 또는 보안 레벨을 갖도록 설정하는 경우에, 초기 인증서의 변경에 따라 전자장치를 서로 다른 기능 또는 보안 레벨로 사용할 수 있다.
120: 칩 셋 110: 제1 메모리
130: 제2 메모리 135: 제5 메모리
140: 프로세서 160: 인증서 저장영역
170: 부트 이미지 저장영역 180: 전자서명 저장영역

Claims (26)

  1. 전자장치를 위한 보안 부트(secure boot)를 생성하는 방법에 있어서,
    제1 초기 인증서 및 제2 초기 인증서를 포함하는 다수의 초기 인증서들을 저장하는 동작;
    상기 제1 초기 인증서를 상기 전자장치의 보안부팅을 위한 초기 인증서(root certificate)로 지정하는 동작; 및
    요청에 따라 상기 초기 인증서를 상기 제1 초기 인증서에서 상기 제2 초기 인증서로 변경하는 동작을 포함하는 방법.
  2. 제1항에 있어서,
    상기 제1 초기 인증서는 제1사용자에 대응되며, 상기 제2 초기 인증서는 제2사용자에 대응되는 방법.
  3. 제1항에 있어서,
    상기 제1 초기 인증서 및 상기 제2 초기 인증서는 동일한 사용자 또는 상기 전자장치의 제조자에 대응되는 방법.
  4. 제1항에 있어서,
    상기 변경하는 동작은 상기 전자장치의 부팅을 위한 부트 이미지를 상기 제2 초기 인증서의 공개키에 대응되는 개인키로 서명하여 생성된 제2 전자 서명을 저장하는 방법.
  5. 제4항에 있어서,
    상기 변경하는 동작은 기저장된 제1 전자 서명을 상기 제2 전자 서명으로 대치하는 동작을 포함하는 방법.
  6. 제1항에 있어서,
    상기 변경하는 동작은 상기 요청을 상기 전자 장치의 판매 이후에 받는 동작을 포함하는 방법.
  7. 제1항에 있어서,
    상기 지정하는 동작은 상기 초기 인증서의 주소 정보를 상기 전자장치의 칩 셋의 퓨즈 영역 또는 부트 이미지의 헤더 중 적어도 하나에 저장하는 동작을 더 포함하는 방법.
  8. 제1항에 있어서,
    상기 제1 초기 인증서에 대응하는 적어도 하나의 추가 인증서를 저장하는 동작을 더 포함하는 방법.
  9. 제1항에 있어서,
    상기 제1 초기 인증서 또는 상기 제2 초기 인증서 중 어느 하나에 대응하는 사용자 식별 정보를 상기 전자장치의 칩 셋의 퓨즈 영역 또는 인증서 저장 영역 중 적어도 하나에 저장하는 동작을 더 포함하는 방법.
  10. 전자장치에 있어서,
    제1 초기 인증서 및 제2 초기 인증서를 포함하는 다수의 초기 인증서들을 저장하기 위한 제1메모리;
    상기 제1 초기 인증서 또는 상기 제2 초기 인증서 중 선택된 초기 인증서를 가리키는 인증서 선택 정보를 저장하기 위한 제2메모리; 및
    상기 인증서 선택 정보가 상기 제1 초기 인증서를 가리킨다고 결정하는 경우에, 상기 제1 초기 인증서를 이용하여 상기 전자장치의 부트 이미지를 인증하고, 상기 인증서 선택 정보가 상기 제2 초기 인증서를 가리킨다고 결정하는 경우, 상기 제2 초기 인증서를 이용하여 상기 부트 이미지를 인증하도록 설정된 인증 모듈을 실행하기 위한 하나 이상의 프로세서를 포함하는 전자장치.
  11. 제10항에 있어서,
    상기 인증서 선택 정보는 상기 전자장치의 판매 이후에 수신되는 입력에 따라 변경 가능하도록 설정된 전자장치.
  12. 제10항에 있어서,
    상기 제2메모리는 적어도 일회 변경 가능한 메모리인 전자장치.
  13. 제10항에 있어서,
    상기 제1 초기 인증서는 상기 전자장치의 제조자의 공개키를 포함하고,
    상기 제2 초기 인증서는 사용자의 공개키를 포함하는 전자장치.
  14. 제10항에 있어서,
    상기 제1 초기 인증서는 상기 전자 장치의 제조자의 제1 공개키를 포함하고,
    상기 제2 초기 인증서는 상기 전자 장치의 제조자의 제2 공개키를 포함하는 전자장치.
  15. 제10항에 있어서,
    상기 인증 모듈은 상기 인증서 선택 정보에 따라 상기 부트 이미지 중 적어도 일부의 바이너리 코드에 대한 전자 서명을 확인하도록 설정된 전자장치.
  16. 제15항에 있어서,
    상기 인증 모듈은 상기 전자 서명을 확인한 결과에 따라 성공적으로 서명 인증된 바이너리 코드를 실행하는 전자장치.
  17. 제15항에 있어서,
    상기 인증 모듈은 상기 전자 서명을 확인한 결과에 따라 서명 인증에 실패한 바이너리 코드의 실행을 종료하는 전자장치.
  18. 제10항에 있어서,
    상기 전자장치는 상기 부트 이미지의 원본 또는 원본의 축약된 메시지를 상기 선택된 초기 인증서의 공개키에 대응되는 개인키로 서명하여 생성된 전자 서명을 저장하고,
    상기 인증 모듈은 상기 선택된 초기 인증서를 기반으로 상기 전자 서명을 인증하도록 설정된 전자장치.
  19. 제18항에 있어서,
    상기 인증 모듈은 상기 선택된 초기 인증서의 공개키를 기반으로 상기 전자 서명을 인증하도록 설정된 전자장치.
  20. 제10항에 있어서,
    상기 제2메모리는 사용자 식별 정보를 저장하고,
    상기 인증 모듈은 상기 선택된 초기 인증서 또는 상기 사용자 식별 정보 중 적어도 하나를 기반으로 하여 상기 부트 이미지를 인증하도록 설정된 전자장치.
  21. 제10항에 있어서,
    상기 인증 모듈은 상기 부트 이미지의 적어도 일부 영역에 기록된 정보가 상기 제2 초기 인증서를 가리키는 경우에, 상기 제2 초기 인증서를 기반으로 상기 부트 이미지를 인증하는 전자장치.
  22. 제10항에 있어서,
    상기 부트 이미지의 적어도 일부 영역은 상기 부트 이미지의 헤더를 포함하는 전자장치.
  23. 제10항에 있어서,
    상기 선택된 초기 인증서의 변경을 위한 명령을 상기 전자장치의 외부로부터 수신할 수 있는 적어도 하나의 인터페이스를 더 포함하는 전자장치.
  24. 제10항에 있어서,
    상기 인증 모듈은 상기 제1 초기 인증서를 기반으로 상기 부트 이미지를 인증하는 경우에는 상기 전자장치의 제1 기능 그룹을 활성화하고, 상기 제2 초기 인증서를 기반으로 상기 부트 이미지를 인증하는 경우에는 상기 전자장치의 제2 기능 그룹을 활성화하도록 설정된 전자장치.
  25. 제10항에 있어서,
    상기 인증 모듈은 상기 선택된 초기 인증서가 상기 제1 초기 인증서에서 상기 제2 초기 인증서로 변경되면, 상기 부트 이미지를 상기 제1 초기 인증서에 대응하는 제1 부트 이미지에서 상기 제2 초기 인증서에 대응하는 제2 부트 이미지로 변경하도록 설정된 전자장치.
  26. 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은,
    제1 초기 인증서 및 제2 초기 인증서를 포함하는 다수의 초기 인증서들을 저장하는 동작;
    상기 제1 초기 인증서 전자장치의 보안부팅을 위한 초기 인증서로 지정하는 동작; 및
    요청에 따라 상기 초기 인증서를 상기 제1 초기 인증서에서 상기 제2 초기 인증서로 변경하는 동작을 포함하는 저장 매체.
KR1020130045350A 2012-12-22 2013-04-24 보안부팅을 위한 인증수단의 변경을 지원하는 방법 및 장치 KR20140082542A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US14/138,810 US9971895B2 (en) 2012-12-22 2013-12-23 Method and apparatus for supporting dynamic change of authentication means secure booting
EP13199298.4A EP2746982B1 (en) 2012-12-22 2013-12-23 Method and apparatus for supporting dynamic change of authentication means for secure booting
CN201310717070.4A CN103886246B (zh) 2012-12-22 2013-12-23 支持认证装置安全引导的动态改变的方法和设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20120151590 2012-12-22
KR1020120151590 2012-12-22

Publications (1)

Publication Number Publication Date
KR20140082542A true KR20140082542A (ko) 2014-07-02

Family

ID=51733451

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130045350A KR20140082542A (ko) 2012-12-22 2013-04-24 보안부팅을 위한 인증수단의 변경을 지원하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20140082542A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020096345A1 (ko) * 2018-11-07 2020-05-14 시큐리티플랫폼 주식회사 시큐어 부팅 장치 및 방법
WO2021085954A1 (ko) * 2019-10-28 2021-05-06 삼성전자 주식회사 전자 장치의 고유 정보에 대한 무결성을 보장하는 전자 장치 및 그의 동작 방법
CN117193863A (zh) * 2023-09-08 2023-12-08 上海合芯数字科技有限公司 主机引导程序的启动方法、装置、系统和处理器
CN117494079A (zh) * 2023-12-25 2024-02-02 飞腾信息技术有限公司 一种镜像权转移方法、安全启动方法及相关装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020096345A1 (ko) * 2018-11-07 2020-05-14 시큐리티플랫폼 주식회사 시큐어 부팅 장치 및 방법
KR20200052750A (ko) * 2018-11-07 2020-05-15 시큐리티플랫폼 주식회사 시큐어 부팅 장치 및 방법
US11899795B2 (en) 2018-11-07 2024-02-13 Security Platform Inc. Secure boot device and process
WO2021085954A1 (ko) * 2019-10-28 2021-05-06 삼성전자 주식회사 전자 장치의 고유 정보에 대한 무결성을 보장하는 전자 장치 및 그의 동작 방법
CN117193863A (zh) * 2023-09-08 2023-12-08 上海合芯数字科技有限公司 主机引导程序的启动方法、装置、系统和处理器
CN117193863B (zh) * 2023-09-08 2024-05-24 上海合芯数字科技有限公司 主机引导程序的启动方法、装置、系统和处理器
CN117494079A (zh) * 2023-12-25 2024-02-02 飞腾信息技术有限公司 一种镜像权转移方法、安全启动方法及相关装置
CN117494079B (zh) * 2023-12-25 2024-03-26 飞腾信息技术有限公司 一种镜像权转移方法、安全启动方法及相关装置

Similar Documents

Publication Publication Date Title
EP2746982B1 (en) Method and apparatus for supporting dynamic change of authentication means for secure booting
KR20150008546A (ko) 보안 다운로드 및 기능 실행방법 및 장치
CA3057331C (en) Method and apparatus for processing transaction requests
US10735427B2 (en) Method and apparatus for managing program of electronic device
US11921860B2 (en) Rollback resistant security
JP4843051B2 (ja) フラッシュメモリ及び電子装置のためのセキュアなデジタル証明書の保存方法
US9633210B2 (en) Keying infrastructure
US8683213B2 (en) Progressive boot for a wireless device
US8539610B2 (en) Software security
JP2015036847A (ja) 半導体装置
WO2021208956A1 (zh) 智能合约的部署
JP2007133875A (ja) コードイメージを安全に更新してブーティングする方法及び装置
FR3002671A1 (fr) Procede de mise a jour du systeme d'exploitation d'un microcircuit securise
TW201941065A (zh) 積體電路資料保護
KR20140082542A (ko) 보안부팅을 위한 인증수단의 변경을 지원하는 방법 및 장치
US20160350537A1 (en) Central processing unit and method to verify mainboard data
CN107924440B (zh) 用于管理容器的方法、系统和计算机可读介质
US9715587B2 (en) Implementing security functions using ROM
US20200310776A1 (en) Over-the-air update validation
US11765149B2 (en) Secure data provisioning
CN117098136A (zh) 设备保护方法及相关装置
Abrahamsson Security Enhanced Firmware Update Procedures in Embedded Systems
JP2009015434A (ja) 携帯可能情報処理装置及び情報処理プログラム

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid