WO2020096345A1 - 시큐어 부팅 장치 및 방법 - Google Patents

시큐어 부팅 장치 및 방법 Download PDF

Info

Publication number
WO2020096345A1
WO2020096345A1 PCT/KR2019/014971 KR2019014971W WO2020096345A1 WO 2020096345 A1 WO2020096345 A1 WO 2020096345A1 KR 2019014971 W KR2019014971 W KR 2019014971W WO 2020096345 A1 WO2020096345 A1 WO 2020096345A1
Authority
WO
WIPO (PCT)
Prior art keywords
electronic device
public key
firmware
memory area
integrity
Prior art date
Application number
PCT/KR2019/014971
Other languages
English (en)
French (fr)
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 US17/291,626 priority Critical patent/US11899795B2/en
Priority to CN201980073087.6A priority patent/CN112955889A/zh
Publication of WO2020096345A1 publication Critical patent/WO2020096345A1/ko

Links

Images

Classifications

    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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

Abstract

시큐어 부팅을 수행하는 전자 장치가 개시될 수 있다. 개시된 일 실시 예에 따른 전자 장치는, 개인키로 서명된 펌웨어를 저장하기 위한 제1메모리 영역, 펌웨어의 무결성을 검증하고 무결성이 검증된 펌웨어를 실행하기 위한 부트 로더를 저장하기 위한 제2메모리 영역, 및 개인키와 쌍을 이루는 제1공개키를 저장하기 위한 제3메모리 영역을 포함하고, 제2메모리 영역은 개인키와 쌍을 이루는 제2공개키를 저장할 수 있다. 부트 로더는, 제3메모리 영역에 제1공개키가 있으면 제1공개키로 펌웨어의 무결성을 검증하고, 제3메모리 영역에 제1공개키가 없으면 제2공개키로 펌웨어의 무결성을 검증하도록 구성될 수 있다.

Description

시큐어 부팅 장치 및 방법
본 발명은 전자 장치에 관한 것으로, 보다 구체적으로는 시큐어 부팅 장치 및 방법에 관한 것이다.
시큐어 부트(Secure Boot)는 운영체제(Operating System, OS), 펌웨어(Firmware), 및 어플리케이션과 같은 소프트웨어의 무결성을 보장하기 위해 사용되는 시스템 부팅 방법이다. 예를 들어, 시큐어 부트를 사용하여 오염되지 않은 펌웨어만 부트할 수 있도록 함으로써 전자 장치에 설치된 펌웨어를 보호할 수 있다.
펌웨어가 오염되었다는 것은 펌웨어 생성 주체가 의도하지 않은 다른 형태로 펌웨어가 변경되었음을 의미하며, 펌웨어를 보호한다는 것은 펌웨어 생성 주체가 만들어 낸 형태가 변하지 않도록 하는 것을 의미한다. 시큐어 부트는 의도하지 않은 형태로 펌웨어가 변경되었을 경우 부트를 거부하는 기술이다.
시큐어 부팅을 수행하기 위한 장치 및 방법이 제공될 수 있다.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
시큐어 부팅을 수행하는 전자 장치에 있어서, 개인키로 서명된 펌웨어를 저장하기 위한 제1메모리 영역, 상기 펌웨어의 무결성을 검증하고 무결성이 검증된 상기 펌웨어를 실행하기 위한 부트 로더를 저장하기 위한 제2메모리 영역, 및 상기 개인키와 쌍을 이루는 제1공개키를 저장하기 위한 제3메모리 영역을 포함하고, 상기 제2메모리 영역은 상기 개인키와 쌍을 이루는 제2공개키를 저장하고, 상기 부트 로더는, 상기 제3메모리 영역에 상기 제1공개키가 있으면 상기 제1공개키로 상기 펌웨어의 무결성을 검증하고, 상기 제3메모리 영역에 상기 제1공개키가 없으면 상기 제2공개키로 상기 펌웨어의 무결성을 검증하도록 구성될 수 있다.
상기 펌웨어는, 상기 전자 장치의 조립 상태 또는 동작 상태를 검사하기 위해 상기 전자 장치의 제조 과정 동안 또는 제조 직후에 상기 전자 장치의 제조자에 의해 설치될 수 있다.
상기 제2공개키는, 상기 전자 장치의 제조 과정 동안 또는 제조 직후에 상기 전자 장치의 제조자에 의해 상기 제2메모리 영역에 저장될 수 있다.
상기 펌웨어의 서명은 상기 제2메모리 영역에 저장될 수 있다.
전자 장치에 의해 수행되는 시큐어 부팅 방법에 있어서, 전원이 공급됨으로써 상기 전자 장치의 부트로더가 동작하는 단계, 소정의 공개키 저장 영역을 검사하여, 펌웨어의 서명을 검증할 제1공개키가 기록되어 있는지 여부를 검사하는 단계, 상기 검사 결과, 상기 공개키 저장 영역에 상기 제1공개키가 기록되어 있으면, 상기 제1공개키로 상기 펌웨어의 무결성을 검증하는 단계, 및 상기 검사 결과, 상기 공개키 저장 영역에 상기 제1공개키가 기록되어 있지 않으면, 상기 부트로더에 내장된 제2공개키로 상기 펌웨어의 무결성을 검증하는 단계를 포함하고, 상기 소정의 공개키 저장 공간은, 상기 부트로더가 저장된 메모리 영역과 다른 메모리 영역일 수 있다.
상기 펌웨어는, 상기 전자 장치의 조립 상태 또는 동작 상태를 검사하기 위해 상기 전자 장치의 제조 과정 동안 또는 제조 직후에 상기 전자 장치의 제조자에 의해 설치될 수 있다.
상기 제2공개키는, 상기 전자 장치의 제조 과정 동안 또는 제조 직후에 상기 전자 장치의 제조자에 의해 상기 부트로더에 내장될 수 있다.
전자 장치의 제조 방법에 있어서, 테스트용 펌웨어의 서명을 생성할 개인키와 상기 개인키와 쌍을 이루는 공개키를 생성하는 단계, 상기 개인키를 이용하여 상기 테스트용 펌웨어의 서명을 생성하는 단계, 상기 서명과 공개키를 부트로더에 내장하는 단계, 및 상기 부트로더와 서명된 상기 테스트용 펌웨어를 상기 전자 장치에 저장하는 단계를 포함하고, 상기 테스트용 펌웨어는, 상기 전자 장치의 조립 상태 또는 동작 상태를 검사하기 위한 펌웨어일 수 있다.
공개키가 아직 기록되어 있지 않은 제조 및 생산 시점의 전자 장치에 설치된 테스트용 펌웨어의 무결성을 검증함으로써, 테스트용 펌웨어를 위변조 위험으로부터 보호할 수 있다.
도1은 일 실시 예에 따라, 시큐어 부팅을 수행하기 위한 전자 장치를 나타낸다.
도2는 일 실시 예에 따라, 시큐어 부팅을 수행하기 위한 제조 시점의 전자 장치를 나타낸다.
도3은 일 실시 예에 따라, 시큐어 부팅을 수행하기 위한 제조 시점의 전자 장치를 나타낸다.
도4는 일 실시 예에 따라, 전자 장치에 대서 수행되는 시큐어 부팅 방법의 흐름도를 나타낸다.
도5는 일 실시 예에 따라, 시큐어 부팅을 수행하기 위한 전자 장치의 제조 방법의 흐름도를 나타낸다.
아래에서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자들(이하, 통상의 기술자들)이 본 발명을 용이하게 실시할 수 있도록, 첨부되는 도면들을 참조하여 몇몇 실시 예가 명확하고 상세하게 설명될 것이다.
도1은 일 실시 예에 따라, 시큐어 부팅을 수행하기 위한 전자 장치를 나타낸다.
도1을 참조하면, 서명 생성 주체인 전자 장치(1200)의 제조자(예를 들어, 전자 장치(1200)의 제조사 또는 관리자 등)는 자신의 개인키(PRK) 또는 비밀키로 서명한 펌웨어(1260)를 제공할 수 있다. 펌웨어(1260)는 개인키(PRK)에 의해 생성된 서명(SIG)과 함께 전자 장치(1200)의 메모리에 저장될 수 있다.
전자 장치(1200)의 일 영역(1240)에는 개인키(PRK)에 대응하는 공개키(PUK)가 저장될 수 있다. 영역(1240)은 소정의 공개키 저장 영역으로서, 제조자에 의해 미리 지정된 영역일 수 있다. 전자 장치(1200)에 전원이 공급되어 부트로더(1220)가 실행되면 부트로더(1220)는 공개키(PUK)로 펌웨어(1260)의 서명(SIG)을 검증하고, 펌웨어(1260)가 개인키(PRK)로 서명된 것이 확인되면 펌웨어(1260)를 실행시킬 수 있다.
부트로더(1220)는 펌웨어(1260)의 무결성을 검증하고, 무결성이 깨지지 않은 것이 확인된 경우에 전자 장치(1200)에 대한 제어권을 펌웨어(1260)로 넘긴다. 그러나, 부트로더(1220)는 펌웨어(1260)의 무결성이 깨진 것으로 판단되면 부트를 멈추고 사용자에게 알리거나 원본 이미지로 복구하는 등 후속 조치를 이행한다. 부트로더(1220)는 전자 장치(1200)의 메모리에 저장될 수 있다.
일 실시 예에 따라, 부트로더(1220)가 저장되는 메모리 영역, 펌웨어(1260)가 저장되는 메모리 영역, 및 공개키가 저장되는 영역(1240) 각각은 전자 장치(1200) 내의 서로 다른 메모리 영역일 수 있다. 예를 들어, 부트로더(1220)가 저장되는 메모리 영역, 펌웨어(1260)가 저장되는 메모리 영역, 및 공개키가 저장되는 영역(1240) 각각은 전자 장치(1200) 내 제1메모리 영역, 제2메모리 영역, 제3메모리 영역으로 지칭될 수 있다. 메모리는 ROM(Read Only Memory)과 같은 비휘발성 메모리일 수 있다. 또는, 부트로더(1220)가 저장되는 메모리 영역, 펌웨어(1260)가 저장되는 메모리 영역, 및 공개키가 저장되는 영역(1240) 각각은 전자 장치(1200)에 포함된 복수의 메모리 장치들 중 서로 다른 메모리 장치일 수 있다.
상술한 바와 같이, 펌웨어(1260)의 변경 여부를 알아내기 위해 서명 알고리즘이 사용될 수 있다. 전자 장치(1200)의 제조사는 펌웨어(1260)를 만들 때 미리 정해둔 위치(예를 들어, 펌웨어가 저장된 메모리 영역)에 서명(SIG)을 추가한다. 서명(SIG)을 생성하기 위해, 전자 장치(1200)에 미리 저장해 둔 공개키(PUK)와 쌍이 되는 개인키(PRK)가 사용될 수 있다. 시큐어부팅 과정에서, 부트로더(1220)는 펌웨어(1260)의 이미지와 서명(SIG)의 쌍이 일치하는지 전자 장치(1200)에 있는 공개키(PUK)를 이용하여 검증할 수 있다.
다만, 공개키(PUK)가 전자 장치(1200)에 저장되는 시점은 전자 장치(1200)가 생산 및 제조가 완료되는 시점 이후이다. 따라서, 제조가 완료된 시점에 전자 장치(1200)가 제대로 조립되었는지 또는 제대로 동작하는지 검사하기 위해 일반적으로 사용되는 테스트용 펌웨어가 변조되면 전자 장치(1200)가 오염될 수 있으므로 테스트용 펌웨어의 무결성도 검사할 필요가 있다. 그러나, 제조과정 동안의 전자 장치(1200) 또는 제조 직후의 전자 장치(1200)에는 아직 공개키(PUK)가 삽입되지 않았으므로 테스트용 펌웨어의 무결성을 검증할 방법이 없다.
도2는 일 실시 예에 따라, 시큐어 부팅을 수행하기 위한 제조 시점의 전자 장치를 나타낸다.
도2의 전자 장치(2200)는 도1의 전자 장치(2200)의 실시 예를 나타낸다. 예를 들어, 도2의 부트로더(2220), 영역(2240), 및 테스트용 펌웨어(2260)는 도1의 부트로더(1220), 영역(1240), 및 펌웨어(1260)와 각각 대응될 수 있다. 따라서, 이하 생략되는 내용이라 하더라도, 도1의 구성 요소들에 관하여 설명된 내용은 도2의 구성 요소들에도 적용될 수 있다.
도2를 참조하면, 전자 장치(2200)의 제조자(예를 들어, 전자 장치(2200)의 제조사 또는 관리자 등)는 자신의 개인키(PRK) 또는 비밀키로 서명한 테스트용 펌웨어(2260)를 제공할 수 있다. 테스트용 펌웨어(2260)는 전자 장치(2200)가 제대로 조립되었는지 또는 잘 동작하는지 검사하기 위해 사용되는 펌웨어일 수 있다.
전자 장치(2200)의 일 영역(2240)에는 개인키(PRK)에 대응하는 공개키(PUK)가 저장되어야 하지만 제조과정 동안의 또는 제조 직후의 전자 장치(2200)에는 아직 공개키(PUK)가 기록되지 않을 수 있다. 이러한 경우, 부트로더(2220)는 자신이 내장한 공개키(PUK_T)와 서명(SIG)을 이용하여 테스트용 펌웨어(2260)의 무결성을 검증할 수 있다. 이러한 실시 예에서, 공개키(PUK_T)는 부트로더(2220)가 저장되는 메모리 영역에 기록될 수 있다.
도3은 일 실시 예에 따라, 시큐어 부팅을 수행하기 위한 제조 시점의 전자 장치를 나타낸다.
도3의 전자 장치(3200)가 도2의 전자 장치(2200)와 다른 점은 부트로더(3220)에 공개키(PUK_T) 뿐만 아니라 서명(SIG)까지 내장되었다는 점이다. 이러한 실시 예에서, 공개키(PUK_T)와 서명(SIG)은 부트로더(3220)가 저장되는 메모리 영역에 기록될 수 있다.
부트로더(3220)에 서명(SIG)을 내장시키는 것은 제조자가 의도한 테스트용 펌웨어가 아닌 다른 테스트용 펌웨어가 전자 장치(3200)에서 실행되지 않도록 제한하기 위함이다. 서명(SIG)을 부트로더(3220)에 내장시킴으로써, 제조자가 테스트용 펌웨어(3260)와는 다른 새로운 테스트 펌웨어를 실행하기 위해 새로운 부트로더를 제작하여 설치하지 않는 한 서명(SIG)은 교체될 수 없으며, 허가 받지 않은 주체가 임의로 테스트용 펌웨어(3260)를 교체할 수 없다. 이로써, 모든 종류의 제품에 동일한 공개키 쌍을 사용하여 테스트용 펌웨어(3260)를 생성하더라도 한 종류의 제품에는 단 한가지 테스트용 펌웨어만 실행하도록 제한할 수 있다. 이는 취약점이 발견된 테스트용 펌웨어를 다른 종류의 제품에 적용하여 실행하지 못하도록 제한하기 위한 것이다.
도4는 일 실시 예에 따라, 전자 장치에서 수행되는 서명 알고리즘 기반 시큐어 부팅 방법의 흐름도를 나타낸다.
단계 S4200에서, 전자 장치(2000)에 전원이 공급되어 부트로더가 동작할 수 있다.
단계 S4400에서, 전자 장치(2000)는 소정의 공개키 저장 공간(예를 들어, 도2의 영역(2240))을 검사하여, 펌웨어의 서명을 검증할 제1공개키가 기록되어 있는지 여부를 검사할 수 있다.
소정의 공개키 저장 공간에 제1공개키가 기록되어 있으면, 단계 S4600에서, 전자 장치(2000)는 제1공개키로 개인키로 서명된 펌웨어의 무결성을 검증할 수 있다. 소정의 공개키 저장 공간에 제1공개키가 기록되어 있지 않으면, 단계 S4800에서, 전자 장치(2000)는 부트로더에 내장된 제2공개키로 펌웨어의 무결성을 검증할 수 있다. 제2공개키로 무결성이 검증된 펌웨어는, 전자 장치(2000)의 조립 또는 동작 여부를 검사하기 위한 테스트용 펌웨어로서, 제2공개키와 쌍을 이루는 개인키로 서명된 것일 수 있다.
도5는 일 실시 예에 따라, 시큐어 부팅을 수행하기 위한 전자 장치의 제조 방법의 흐름도를 나타낸다.
단계 S5200에서, 전자 장치(2000)의 제조자는 테스트용 펌웨어의 서명을 생성할 개인키와 개인키의 쌍이 되는 공개키를 생성할 수 있다.
단계 S5400에서, 전자 장치(2000)의 제조자는 개인키를 이용하여 테스트용 펌웨어의 서명을 생성할 수 있다.
단계 S5600에서, 전자 장치(2000)의 제조자는 생성된 서명과 공개키를 내장하는 부트로더를 생성할 수 있다. 일 실시 예에 따라, 전자 장치(2000)의 제조자는 공개키를 부트로더에 내장할 수 있다. 일 실시 예에 따라, 전자 장치(2000)의 제조자는 부트로더와 함께 공개키를 비휘발성 메모리(예를 들어, ROM)의 적어도 일부 영역에 기록할 수 있다. 일 실시 예에 따라, 전자 장치(2000)의 제조자는 서명을 부트로더에 내장할 수 있다. 이러한 경우, 전자 장치(2000)의 제조자는 공개키와 서명을 부트로더와 함께 비휘발성 메모리(예를 들어, ROM)의 적어도 일부 영역에 기록할 수 있다.
단계 S5800에서, 전자 장치(2000)의 제조자는 부트로더와 서명된 테스트용 펌웨어를 전자 장치(2000)에 기록할 수 있다.
설명들은 본 발명을 구현하기 위한 예시적인 구성들 및 동작들을 제공하도록 의도된다. 본 발명의 기술 사상은 위에서 설명된 실시 예들뿐만 아니라, 위 실시 예들을 단순하게 변경하거나 수정하여 얻어질 수 있는 구현들도 포함할 것이다. 또한, 본 발명의 기술 사상은 위에서 설명된 실시 예들을 앞으로 용이하게 변경하거나 수정하여 달성될 수 있는 구현들도 포함할 것이다.

Claims (8)

  1. 시큐어 부팅을 수행하는 전자 장치에 있어서,
    개인키로 서명된 펌웨어를 저장하기 위한 제1메모리 영역;
    상기 펌웨어의 무결성을 검증하고 무결성이 검증된 상기 펌웨어를 실행하기 위한 부트 로더를 저장하기 위한 제2메모리 영역; 및
    상기 개인키와 쌍을 이루는 제1공개키를 저장하기 위한 제3메모리 영역을 포함하고,
    상기 제2메모리 영역은 상기 개인키와 쌍을 이루는 제2공개키를 저장하고,
    상기 부트 로더는, 상기 제3메모리 영역에 상기 제1공개키가 있으면 상기 제1공개키로 상기 펌웨어의 무결성을 검증하고, 상기 제3메모리 영역에 상기 제1공개키가 없으면 상기 제2공개키로 상기 펌웨어의 무결성을 검증하도록 구성되는 전자 장치.
  2. 제1항에 있어서,
    상기 펌웨어는, 상기 전자 장치의 조립 상태 또는 동작 상태를 검사하기 위해 상기 전자 장치의 제조 과정 동안 또는 제조 직후에 상기 전자 장치의 제조자에 의해 설치되는 전자 장치.
  3. 제2항에 있어서,
    상기 제2공개키는, 상기 전자 장치의 제조 과정 동안 또는 제조 직후에 상기 전자 장치의 제조자에 의해 상기 제2메모리 영역에 저장되는 전자 장치.
  4. 제1항에 있어서,
    상기 펌웨어의 서명은 상기 제2메모리 영역에 저장되는 전자 장치.
  5. 전자 장치에 의해 수행되는 시큐어 부팅 방법에 있어서,
    전원이 공급됨으로써 상기 전자 장치의 부트로더가 동작하는 단계;
    소정의 공개키 저장 영역을 검사하여, 펌웨어의 서명을 검증할 제1공개키가 기록되어 있는지 여부를 검사하는 단계;
    상기 검사 결과, 상기 공개키 저장 영역에 상기 제1공개키가 기록되어 있으면, 상기 제1공개키로 상기 펌웨어의 무결성을 검증하는 단계; 및
    상기 검사 결과, 상기 공개키 저장 영역에 상기 제1공개키가 기록되어 있지 않으면, 상기 부트로더에 내장된 제2공개키로 상기 펌웨어의 무결성을 검증하는 단계를 포함하고,
    상기 소정의 공개키 저장 공간은, 상기 부트로더가 저장된 메모리 영역과 다른 메모리 영역인 시큐어 부팅 방법.
  6. 제5항에 있어서,
    상기 펌웨어는, 상기 전자 장치의 조립 상태 또는 동작 상태를 검사하기 위해 상기 전자 장치의 제조 과정 동안 또는 제조 직후에 상기 전자 장치의 제조자에 의해 설치되는 시큐어 부팅 방법.
  7. 제5항에 있어서,
    상기 제2공개키는, 상기 전자 장치의 제조 과정 동안 또는 제조 직후에 상기 전자 장치의 제조자에 의해 상기 부트로더에 내장되는 시큐어 부팅 방법.
  8. 전자 장치의 제조 방법에 있어서,
    테스트용 펌웨어의 서명을 생성할 개인키와 상기 개인키와 쌍을 이루는 공개키를 생성하는 단계;
    상기 개인키를 이용하여 상기 테스트용 펌웨어의 서명을 생성하는 단계;
    상기 서명과 공개키를 부트로더에 내장하는 단계; 및
    상기 부트로더와 서명된 상기 테스트용 펌웨어를 상기 전자 장치에 저장하는 단계를 포함하고,
    상기 테스트용 펌웨어는, 상기 전자 장치의 조립 상태 또는 동작 상태를 검사하기 위한 펌웨어인 제조 방법.
PCT/KR2019/014971 2018-11-07 2019-11-06 시큐어 부팅 장치 및 방법 WO2020096345A1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/291,626 US11899795B2 (en) 2018-11-07 2019-11-06 Secure boot device and process
CN201980073087.6A CN112955889A (zh) 2018-11-07 2019-11-06 安全启动装置及方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0136124 2018-11-07
KR1020180136124A KR102126931B1 (ko) 2018-11-07 2018-11-07 시큐어 부팅 장치 및 방법

Publications (1)

Publication Number Publication Date
WO2020096345A1 true WO2020096345A1 (ko) 2020-05-14

Family

ID=70611226

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/014971 WO2020096345A1 (ko) 2018-11-07 2019-11-06 시큐어 부팅 장치 및 방법

Country Status (4)

Country Link
US (1) US11899795B2 (ko)
KR (1) KR102126931B1 (ko)
CN (1) CN112955889A (ko)
WO (1) WO2020096345A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220245252A1 (en) * 2022-02-22 2022-08-04 Intel Corporation Seamless firmware update mechanism
KR102582134B1 (ko) 2022-11-22 2023-09-25 리벨리온 주식회사 프로세싱 장치 및 그의 시큐어 부팅 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115471A1 (en) * 2001-12-19 2003-06-19 Skeba Kirk W. Method and apparatus for building operational radio firmware using incrementally certified modules
KR20090007123A (ko) * 2007-07-13 2009-01-16 삼성전자주식회사 보안 부팅 방법 및 그 방법을 사용하는 반도체 메모리시스템
KR20140082542A (ko) * 2012-12-22 2014-07-02 삼성전자주식회사 보안부팅을 위한 인증수단의 변경을 지원하는 방법 및 장치
KR20170078407A (ko) * 2015-12-29 2017-07-07 삼성전자주식회사 시스템-온-칩 및 이를 포함하는 전자 장치
US20180032734A1 (en) * 2016-07-29 2018-02-01 Vmware, Inc. Secure booting of computer system

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060236122A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Secure boot
US20090327741A1 (en) * 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8539610B2 (en) * 2010-10-29 2013-09-17 Nokia Corporation Software security
US8590040B2 (en) * 2010-12-22 2013-11-19 Intel Corporation Runtime platform firmware verification
KR20120092222A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 보안 부팅 방법 및 보안 부트 이미지 생성 방법
JP2015036847A (ja) * 2013-08-12 2015-02-23 株式会社東芝 半導体装置
EP2854066B1 (en) * 2013-08-21 2018-02-28 Nxp B.V. System and method for firmware integrity verification using multiple keys and OTP memory
CN105117651B (zh) * 2015-09-16 2018-05-29 上海华为技术有限公司 一种控制单板安全启动的方法、软件包升级的方法及装置
US10025600B2 (en) * 2015-10-02 2018-07-17 Google Llc NAND-based verified boot
KR20170045795A (ko) * 2015-10-20 2017-04-28 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US10481900B2 (en) * 2016-04-11 2019-11-19 Endress+Hauser Conducta Gmbh+Co. Kg Method for updating a firmware component and device of measurement and control technology
KR101782378B1 (ko) * 2016-11-03 2017-09-27 시큐리티플랫폼 주식회사 서명된 공개 키를 이용한 시큐어 부트 방법
CN108121915A (zh) * 2016-11-30 2018-06-05 北京忆芯科技有限公司 电子设备生产的方法、启动的方法及系统
US10223531B2 (en) * 2016-12-30 2019-03-05 Google Llc Secure device state apparatus and method and lifecycle management
KR102617354B1 (ko) * 2017-01-05 2023-12-26 삼성전자주식회사 보안 부트 시퀀서 및 보안 부트 장치
CN108287999A (zh) * 2017-01-10 2018-07-17 厦门雅迅网络股份有限公司 一种基于TrustZone的系统可信启动方法
CN108347332A (zh) * 2017-06-06 2018-07-31 清华大学 验证固件签名的方法及装置
KR102434444B1 (ko) * 2017-11-29 2022-08-19 한국전자통신연구원 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치
CN108399339B (zh) * 2018-02-12 2021-09-14 广东为辰信息科技有限公司 一种基于安全芯片的可信启动方法
DE102018211139A1 (de) * 2018-07-05 2020-01-09 Robert Bosch Gmbh Steuergerät sowie Verfahren zu dessen Betrieb
EP3792802B1 (en) * 2019-09-11 2022-11-09 Secure Thingz Limited A processor system with a communication interface
TWI788594B (zh) * 2019-10-07 2023-01-01 系微股份有限公司 安全執行可延伸韌體應用程式的方法及計算機設備
KR20210112923A (ko) * 2020-03-06 2021-09-15 삼성전자주식회사 시스템 온 칩 및 이의 동작 방법
CN113779652A (zh) * 2020-06-09 2021-12-10 华为技术有限公司 数据完整性保护的方法和装置
KR102395258B1 (ko) * 2020-10-15 2022-05-10 한국전자통신연구원 부트 메모리 버스의 경로 절체 기능을 이용한 시큐어 부팅 방법 및 이를 이용한 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115471A1 (en) * 2001-12-19 2003-06-19 Skeba Kirk W. Method and apparatus for building operational radio firmware using incrementally certified modules
KR20090007123A (ko) * 2007-07-13 2009-01-16 삼성전자주식회사 보안 부팅 방법 및 그 방법을 사용하는 반도체 메모리시스템
KR20140082542A (ko) * 2012-12-22 2014-07-02 삼성전자주식회사 보안부팅을 위한 인증수단의 변경을 지원하는 방법 및 장치
KR20170078407A (ko) * 2015-12-29 2017-07-07 삼성전자주식회사 시스템-온-칩 및 이를 포함하는 전자 장치
US20180032734A1 (en) * 2016-07-29 2018-02-01 Vmware, Inc. Secure booting of computer system

Also Published As

Publication number Publication date
US20210406379A1 (en) 2021-12-30
CN112955889A (zh) 2021-06-11
KR102126931B1 (ko) 2020-06-25
US11899795B2 (en) 2024-02-13
KR20200052750A (ko) 2020-05-15

Similar Documents

Publication Publication Date Title
JP5891414B2 (ja) 情報処理装置およびアプリケーション不正連携防止方法
US9588756B2 (en) Updating software components in a program
JP5808019B2 (ja) ホワイトボックス暗号化技術を用いるインターロックされたバイナリ保護
JP4288292B2 (ja) オペレーティングシステム監視設定情報生成装置及びオペレーティングシステム監視装置
JP4729575B2 (ja) ソフトウェアのセキュリティ確保
US20170308705A1 (en) System, device and method for anti-rollback protection of over-the-air updated device images
US10318271B2 (en) Updating software components in a program
KR101503785B1 (ko) 동적 라이브러리를 보호하는 방법 및 장치
JP2014513348A (ja) 統合拡張ファームウェアインタフェース準拠計算装置内のシステムセキュリティデータベースおよびファームウェア格納部を変更する要求を処理するシステムおよび方法
US20030135746A1 (en) Software verification system, method and computer program element
WO2020096345A1 (ko) 시큐어 부팅 장치 및 방법
EP3343424B1 (en) Control board secure start method, and software package upgrade method and device
TW201333691A (zh) 安全選項唯讀記憶體控制
CN104866739A (zh) 安卓系统中应用程序加密方法及系统
CN109804378A (zh) Bios安全
JP5465738B2 (ja) システム・ファームウェアの更新方法およびコンピュータ
EP3460705B1 (en) Distributed deployment of unique firmware
CN114003915A (zh) 基于芯片的安全启动方法及装置
JP7374780B2 (ja) 情報処理装置および情報処理装置の制御方法
Titze et al. Preventing library spoofing on android
JP2020052597A (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
US20230137661A1 (en) Verification method and verification system for information and communication safety protection mechanism
US20170017794A1 (en) Method and device for protecting a computing apparatus against manipulation
CN105930744A (zh) 一种文件加固方法及装置
JP6541912B2 (ja) 情報処理装置およびアクセス管理プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19882840

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19882840

Country of ref document: EP

Kind code of ref document: A1