KR102227263B1 - 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치 - Google Patents

보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치 Download PDF

Info

Publication number
KR102227263B1
KR102227263B1 KR1020130167999A KR20130167999A KR102227263B1 KR 102227263 B1 KR102227263 B1 KR 102227263B1 KR 1020130167999 A KR1020130167999 A KR 1020130167999A KR 20130167999 A KR20130167999 A KR 20130167999A KR 102227263 B1 KR102227263 B1 KR 102227263B1
Authority
KR
South Korea
Prior art keywords
root key
key
bit
processor core
memory
Prior art date
Application number
KR1020130167999A
Other languages
English (en)
Other versions
KR20150078546A (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 KR1020130167999A priority Critical patent/KR102227263B1/ko
Priority to US14/587,335 priority patent/US9697360B2/en
Publication of KR20150078546A publication Critical patent/KR20150078546A/ko
Application granted granted Critical
Publication of KR102227263B1 publication Critical patent/KR102227263B1/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block

Landscapes

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

Abstract

본 발명은 루트 키 입력이 가능한 복수개의 키 비트 영역을 가지는 메모리와, 외부의 입력에 대응하여 새로운 루트 키를 메모리 영역에 입력하는 프로세서 코어를 제공하기 위한 보안 부트의 권한 변경을 위한 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치를 제공하고, 다른 실시예로도 적용이 가능하다.

Description

보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치{System and Method for Changing of Secure Boot and Electronic Apparatus Equipped the System Thereof}
본 발명은 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치에 관한 것이다.
컴퓨팅 변경시스템은 부트 이미지를 실행하여 장치들을 초기화하고, 부트 이미지의 디지털 서명값을 검증하여 변조여부를 확인하는 Secure Boot Chain을 활용한다. 그러나 현재 Secure Boot 구조는 SoC(System on Chip) 제조 시에 결정된 루트 키가 SoC에 퓨징(fusing)되어 향후 루트 키의 변경이 불가능하게 설계된다.
상기와 같이 종래의 기술에서는 OEM(Original Equipment Manufacturing)에서 Secure Boot Chain을 검증하는 근간이 되는 자신만의 Root of Trust를 생성하여 소유할 수 없고, B2B(Business To Business) 서비스를 위한 Root of Trust의 변경이 불가능하다.
이러한 종래의 문제점들을 해결하기 위한 본 발명의 목적은 OEM이 자신만의 Root of Trust를 소유하여 B2B 서비스를 가능하게 하는 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치를 제공하는 것이다.
이러한 목적을 달성하기 위하여 본 발명에 따른 보안 부트 변경시스템은 루트 키 입력이 가능한 복수개의 키 비트 영역을 가지는 메모리, 외부의 입력에 대응하여 새로운 루트 키를 상기 메모리 영역에 입력하는 프로세서 코어를 포함할 수 있다.
또한, 상기 메모리는 루트 키가 할당된 키 비트 영역을 선택하는 셀렉트 비트가 할당된 셀렉트 비트 영역과 상기 키 비트 영역 중 적어도 하나의 영역을 블로킹(blocking)하는 퓨처 비트가 할당된 퓨처 비트 영역을 포함할 수 있다.
또한, 상기 제어부는 상기 셀렉트 비트를 제어하여 외부의 입력에 따라 새로운 루트 키를 선택하고, 상기 퓨처 비트를 제어하여 상기 선택된 새로운 루트 키에 해당하는 키 비트 영역을 제외한 키 비트 영역을 블로킹할 수 있다.
아울러, 본 발명에 따른 보안 부트 변경방법은 프로세서 코어가 외부로부터 새로운 루트 키를 수신하는 단계, 상기 프로세서 코어가 복수개의 키 비트 영역 중 하나의 영역에 상기 새로운 루트 키를 입력하는 단계를 포함할 수 있다.
또한, 상기 새로운 루트 키를 입력하는 단계 이후에 상기 프로세서 코어가 상기 새로운 루트 키를 선택하도록 셀렉트 비트를 제어하는 단계를 포함하고, 상기 프로세서 코어가 상기 선택된 새로운 루트 키에 해당하는 키 비트 영역을 제외한 키 비트 영역을 블로킹하는 단계를 포함할 수 있다.
아울러, 본 발명에 따른 보안 부트 변경시스템을 구비한 전자장치는 외부의 입력에 대응하여 새로운 루트 키를 복수개의 키 비트 영역 중 하나의 영역에 입력하는 변경시스템, 상기 새로운 루트 키로 부트하는 메모리장치를 포함할 수 있다.
또한, 노멀모드로 동작하여 기설정된 루트 키로 부트하고, 외부로부터의 입력에 따라 시큐어모드로 변환하여 새로운 루트 키를 생성하는 제어장치를 더 포함할 수 있다.
또한, 상기 제어장치는 상기 생성된 새로운 루트 키인 제2 루트 키로 부팅하고 상시 노멀모드로 변환하여 동작할 수 있다.
상술한 바와 같이 본 발명은 OEM이 자신만의 Root of Trust를 소유하여 Secure Boot Chain의 변경이 가능하게 함으로써 변경시스템의 보안을 향상시킬 수 있는 효과가 있다.
또한, 본 발명은 OEM이 자신만의 Root of Trust를 소유하여 보안 부트의 권한을 변경할 수 있게 함으로써 B2B 서비스를 가능하게 할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 변경시스템의 주요 구성을 나타내는 블록도이다.
도 2는 본 발명의 실시예에 따른 루트 키를 변경하는 제어장치와 외부장치를 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 루트 키를 변경하는 전자장치를 나타내는 블록도이다.
도 4는 본 발명의 실시예에 따른 루트 키를 변경하기 위한 방법을 설명하기 위한 순서도이다.
도 5는 본 발명의 실시예에 따른 외부장치에서 루트 키 변경을 수행하는 화면을 나타낸 예시도이다.
도 6은 본 발명의 실시예에 따른 전자장치에서 루트 키 변경을 수행하는 화면을 나타낸 예시도이다.
이하, 첨부된 도면을 참조하여 본 개시(Present disclosure)를 설명한다. 본 개시는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들이 도면에 예시되고 관련된 상세한 설명이 기재되어 있다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 사상 및 기술범위에 포함되는 모든 변경 및/또는 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용되었다.
본 개시 가운데 사용될 수 있는 "포함한다" 또는 "포함할 수 있다" 등의 표현은 개시된 해당 기능, 동작 또는 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작 또는 구성요소 등을 제한하지 않는다. 또한, 본 개시에서 "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 개시에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 개시에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 개시에 따른 전자장치는, 통신 기능이 포함된 장치일 수 있다. 예를 들면, 전자장치는 스마트 폰(Smart Phone), 태블릿 PC(Personal Computer), 이동전화기(Mobile Phone), 데스크탑 PC(Desktop Personal Computer), 랩탑 PC(Laptop Personal Computer), 넷북 컴퓨터(Netbook Computer), PDA(Personal Digital Assistant), MP3 플레이어, 카메라(Camera), 스마트 워치(Smart Watch) 중 적어도 하나를 포함할 수 있다.
도 1은 본 발명의 실시예에 따른 변경시스템의 주요 구성을 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 변경시스템(100)은 프로세서 코어(110), 메모리(120)를 포함할 수 있고, 메모리(120)는 키 비트 영역(121), 셀렉트 비트 영역(123), 퓨처 비트 영역(125)을 포함할 수 있다. 이때, 변경시스템(100)은 어플리케이션 프로세서(Application processor; AP), 마이크로 프로세서, 중앙처리장치(Central Processing Unit; CPU) 또는 이와 유사한 장치일 수 있다.
프로세서 코어(110)는 외부의 입력에 따른 명령어(Instruction) 또는 데이터를 패치하고, 패치된 명령어 또는 데이터를 처리할 수 있다. 프로세서 코어(110)는 메모리(120)를 제어하여 사전 기입되고 부트 시 적용되도록 설정된 기본 루트 키(이하, 제1 루트 키라 함)를 외부의 입력에 대응하여 사용 중지하고 새로운 루트 키(이하, 제2 루트 키라 함) 입력 및 적용 설정을 제어할 수 있다. 이때, 루트 키는 공개 키 방식을 활용할 수 있다.
예컨대, 프로세서 코어(110)는 외부에서 전원 온(ON) 신호가 수신되면 NW(111, Normal World)로 동작하여 키 비트 영역(121)의 가장 상위인 Root key 영역(121a)에 기입된 제1 루트 키를 선택할 수 있다. 키 비트 영역(121)은 도시된 바와 같이 복수개의 루트 키가 입력될 수 있는 공간이 형성될 수 있다. 제1 루트 키는 변경시스템(100) 제조업체가 변경시스템(100) 제조 시에 키 비트 영역(121)의 상위에 기입하여, 변경시스템(100) 부트 시에 제1 루트 키가 Secure Boot Chain 검증의 근간이 되도록 설정할 수 있다.
프로세서 코어(110)는 외부로부터 제2 루트 키가 입력되면, NW(111)에서 SW(113, Secure World)로의 동작을 변환하고, 입력된 제2 루트 키를 키 비트 영역(121)의 blank_1(121b)에 기입할 수 있다. 제2 루트 키는 변경시스템(100)의 제조업체 또는 제조업체의 지원을 받은 타 업체로부터 입력될 수 있다. 프로세서 코어(110)의 SW(113)는 blank_1(121b)에 제2 루트 키가 기입된 이후에 루트 키를 제2 루트 키로 변경하여 적용할 수 있다. 이를 위해, 프로세서 코어(110)는 셀렉트 비트 영역(123)에 할당된 셀렉트 비트를 제어하여 제2 루트 키를 선택할 수 있다. 그리고, 변경시스템(100)이 부트될 때는 NW(111)로 다시 변환하여 동작하며, 제2 루트 키로 부트를 수행할 수 있다. NW(111) 및 SW(113)는 ARM사의 ARM 계열 프로세서에 채택된 하드웨어 보안기술인 트러스트존(TrustZone)에 기반한 소프트웨어 아키텍쳐로 구현된 장치를 의미할 수 있다. 트러스트존은 ARM 계열 프로세서 코어에 하드웨어적으로 구현된 보안기능으로써 개방형 운영체제로 인해 보안이 취약한 장치의 변경시스템 보안을 강화하기 위해 개발된 기술이다.
프로세서 코어(110)는 제2 루트 키가 선택되면 퓨처 비트 영역(125)에 할당된 퓨처 비트를 이용하여 blank_2(121c) 부터 blank_n(121n)까지의 키 비트 영역(121)을 블로킹할 수 있다. 퓨처 비트가 blank_2(121c) 부터 blank_n(121n) 까지의 키 비트 영역(121)을 블로킹하여, 다른 루트 키로 변경이 불가능하도록 할 수 있다. 제2 루트 키가 선택되면 제1 루트 키는 자동으로 폐기될 수 있다.
이와 같이, 프로세서 코어(110)는 부팅 시에 셀렉트 비트가 선택한 제2 루트 키를 사용하므로, Secure Boot Chain 검증의 근간이 되는 Root of Trust를 제2 루트 키로 변경할 수 있다. Root of Trust의 변경으로 OEM이 자신만의 Root of Trust를 소유할 수 있게 되어 B2B 서비스를 제공하는 것이 가능하다.
메모리(120)는 디지털 서명에 대한 인증을 수행하기 위한 복수 개의 루트 키를 각각 저장하기 위한 키 비트 영역(121), 루트 키를 변경하기 위한 셀렉트 비트가 할당된 셀렉트 비트 영역(123), 셀렉트 비트가 선택한 루트 키를 활성화할 수 있고, 다른 루트 키 영역을 블로킹하기 위한 퓨처 비트 영역(125)를 포함할 수 있다.
키 비트 영역(121)은 제1 루트 키가 저장되는 Root key 영역(121a)을 포함할 수 있고, 외부로부터 입력된 제2 루트 키를 포함하는 새로운 루트 키가 기입될 복수개의 키 비트 영역(121b, 121c, ..., 121n)이 형성될 수 있다. 이때, 메모리(120)는 OTP(One-Time Programmable) 메모리, PROM(Programmable Read Only Memory), EPROM(Erasable Programmable Read Only Memory), EEPROM(Electrically Erasable Programmable Memory), 플래시 메모리(Flash memory) 등으로 구현될 수 있다.
도 2는 본 발명의 실시예에 따른 부트 시 사용되는 루트 키를 변경하는 제어장치와 외부장치를 나타내는 블록도이다.
도 1 및 도 2를 참조하면, 본 발명의 실시예에 따른 제어장치(150)는 변경시스템(100), 메모리장치(200)를 포함할 수 있고, 메모리장치(200)는 휘발성 메모리(210), 비휘발성 메모리(220)을 포함할 수 있다. 또한, 제어장치(150)와 연결되는 외부장치(300)는 루트키 생성부(310)를 포함할 수 있다.
제어장치(150)의 휘발성 메모리(210)는 변경시스템(100)의 메인 메모리(main memory) 역할을 수행할 수 있다. 예를 들어, 휘발성 메모리(210)는 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), 모바일 DRAM 또는 이와 유사한 메모리로 구현될 수 있다. 상기 휘발성 메모리(210)를 제어하기 위해 변경시스템(100)은 휘발성 메모리를 제어하기 위한 휘발성 메모리 제어부(미도시)를 포함할 수 있다.
제어장치(150)의 비휘발성 메모리(220)는 변경시스템(100)의 키 비트 영역(121)에 입력된 루트 키를 이용하여 부트하기 위한 부트 이미지를 저장할 수 있다. 예를 들어, 비휘발성 메모리(220)는 EEPROM, 플래시 메모리, PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 또는 이와 유사한 메모리로 구현될 수 있다.
제어장치(150)의 변경시스템(100)은 NW(111)로 동작 중에 외부장치(300)로부터 제2 루트 키가 수신되면, SW(113)를 동작시켜 키 비트 영역(120)에 제2 루트 키를 기입할 수 있다. 보다 구체적으로 SW(113)는 루트키 생성부(330)에서 생성된 제2 루트 키를 비휘발성 메모리(220)와 NW(111)를 통해 수신하고, 수신된 제2 루트 키를 키 비트 영역(121)의 blank_1(121b)에 기입할 수 있다. 그리고, SW(113)는 셀렉트 비트 영역(123)에 할당된 셀렉트 비트를 제어하여 루트 키를 제1 루트 키에서 제2 루트 키로 변경할 수 있다. 루트 키가 변경된 변경시스템(100)은 이후 부팅 시에 Secure Boot Chain 검증의 근간으로 제2 루트 키를 사용할 수 있다.
변경시스템(100)은 루트 키가 제2 루트 키로 변경된 이후에 부트가 감지되면, NW(111)로 다시 동작하여 부트 시에 제2 루트 키를 적용할 수 있다. 비휘발성 메모리(220)는 변경시스템(100)의 키 비트 영역(121)에 입력된 제2 루트 키를 이용하여 부팅할 수 있다.
외부장치(300)는 제어장치(150)와 USB Connector 등을 통해 물리적으로 연결될 수 있다.
루트키 생성부(310)는 입력부(미도시)를 통해 수신된 신호에 의거하여 제어장치(150)의 변경시스템(100)에 기입하고자 하는 새로운 루트 키 즉, 제2 루트 키를 생성할 수 있다. 생성된 제2 루트 키는 비휘발성 메모리(220)를 통해 변경시스템(100)의 NW(111)를 통해 SW(113)으로 전송될 수 있다.
이와 같이, 도 2에 따른 본 발명은 개방형 운영체제를 사용하는 외부장치(300)에서 제어장치(150)로 제어장치(150)에서 사용될 변환된 제2 루트 키를 제공함으로써, 변경시스템(100)의 루트 키를 변경할 수 있다. 이때, 외부장치(300)는 제어장치(150)와 연결이 가능한 컴퓨터, 노트북 등의 장치일 수 있다.
도 3은 본 발명의 실시예에 따른 부트 시 사용되는 루트 키를 변경하는 전자장치를 나타내는 블록도이다.
도 1 및 도 3을 참조하면, 본 발명에 따른 전자장치(400)는 입력장치(151), 제어장치(150) 및 출력장치(153)를 포함할 수 있고, 제어장치(150)는 변경시스템(100), 메모리장치(200) 및 루트키생성부(250)를 포함할 수 있다. 메모리장치(200)는 휘발성 메모리(210) 및 비휘발성 메모리(220)를 포함할 수 있다.
입력장치(151)는 외부로부터의 입력에 따라 전자장치(400)를 동작시키기 위한 동작신호를 생성하여 제어장치(150)로 제공한다. 특히, 입력장치(151)는 외부로부터의 입력에 따라 루트 키를 변경하고자 하는 신호를 생성하여 이를 제어장치(150)로 전송할 수 있다. 이를 위해, 입력장치(151)는 키패드, 터치패드, 터치스크린 등으로 형성될 수 있다. 또한, 입력장치(151)는 외부로부터의 입력에 따라 변경하고자 하는 루트 키에 대한 신호를 생성하여 제어장치(150)로 전송할 수 있다.
루트 키의 변경이 발생되기 이전에 변경시스템(100)에 포함된 키 비트 영역(121)의 Root key영역(121a)에는 제1 루트 키가 기입된 상태이고, blank_1(121b)부터 blank_n(121n)까지 비어있는 상태일 수 있다. 그리고 셀렉트 비트(123)가 제1 루트 키가 기입된 Root key영역(121a)을 선택하고 있는 상태일 수 있다. 루트 키가 제1 루트 키로 설정된 상태에서 제2 루트 키가 입력되면, 변경시스템(100)은 루트 키를 제2 루트 키로 변경할 수 있다. 이때, 전자장치(400)에는 ARM사의 ARM 계열 프로세서에 채택된 하드웨어 보안기술인 트러스트존(TrustZone)에 기반한 소프트웨어 아키텍쳐로 구현된 운영체제(Operating System)가 설치될 수 있다.
예컨대, 제어장치(150)는 전자장치(400)의 최초 부트 시에 NW(111)를 이용하여 노멀모드로 동작하고, 기설정된 제1 루트 키로 부트를 수행하여 제1 루트 키를 근간으로 Secure Boot Chain검증을 수행하고, 전자장치(400)에 설치된 운영체제를 동작시킬 수 있다. 전자장치(400)의 전원이 종료된 이후에 전자장치(400)에 설정된 루트 키를 변경하기 위한 신호가 입력장치(151)를 통해서 외부로부터 입력되면, 제어장치(150)는 SW(113)를 활성화시켜 시큐어모드로 진입하여 동작할 수 있다. 이때, 루트 키를 변경하기 위한 신호는 전자장치(400)의 전원을 온(ON)시키기 위한 신호와 다른 신호일 수 있으며, 상기 신호가 입력되면 전자장치(400)는 루트 키를 변경할 수 있는 공장초기화 설정모드로 진입할 수 있다.
제어장치(150)는 시큐어모드로 동작하여 루트 키 생성부(250)를 활성화할 수 있다. 루트키 생성부(250)는 제2 루트 키를 생성하고, 제1 루트 키의 사용을 중지할 수 있다. 이때, 제2 루트 키는 외부의 입력에 의해 생성될 수 있고, 루트 키 생성부(250)에 의해 랜덤하게 생성될 수 있다.
SW(113)는 루트키 생성부(250)에 의해 생성된 제2 루트 키를 NW(111)를 통해 제공받고, 키 비트 영역(121)의 blank_1(121b)에 기입할 수 있다. 보다 구체적으로, SW(113)는 키 비트 영역(121)의 Root key 영역(121a)에 제1 루트 키가 기입되어 있기 때문에, Root key 영역(121a)의 바로 다음 비트 영역인 blank_1(121b)에 제2 루트 키를 기입할 수 있다. Blank_1(121b)에 제2 루트 키가 기입되면 SW(113)는 셀렉트 비트가 제2 루트 키를 선택하도록 키 비트 영역(121)에 포함된 셀렉트 비트 영역(123)에 해당하는 셀렉트 비트를 제어할 수 있다.
셀렉트 비트가 blank_1(121b)을 선택한 상황에서 전자장치(400)가 재부팅되면, 제어장치(150)는 NW(111)를 활성화시켜 노멀모드로 재변경되어 동작할 수 있다. 그리고 변경시스템(100)은 키 비트 영역(121)의 blank_1(121b)에 기입된 제2 루트 키를 호출하여 메모리장치(200)로 제공할 수 있다. 메모리장치(200)는 휘발성 메모리(210)와 비휘발성 메모리(220)를 포함할 수 있다. 변경시스템(100) 및 휘발성 메모리(210)는 상기에서 설명하였으므로 상세한 설명을 생략한다.
메모리장치(200)의 비휘발성 메모리(220)는 부트로더(221) 및 커널(223)을 포함할 수 있다.
전자장치(400)는 제1 루트 키로 부트되면, 부트로더(221)에 제1 루트 키를 전달할 수 있다. 부트로더(221)는 전달받은 제1 루트 키를 이용하여 디지털 서명을 검증하고, 커널(223) 이미지의 무결성을 확보한다. 커널(223)은 무결성이 확보된 디지털 서명을 기준으로 운영체제를 동작시킬 수 있다.
아울러, 제2 루트 키로 부트되면, 변경시스템(100)은 부트로더(221)에 제2 루트 키를 전달할 수 있다. 부트로더(221)는 제2 루트 키를 이용하여 커널(223) 이미지의 디지털 서명을 검증하고, 커널(223) 이미지의 무결성을 확보할 수 있다. 커널(223)은 무결성이 확보된 디지털 서명을 기준으로 운영체제를 동작시킬 수 있다. 이와 같이, 본 발명은 외부장치의 제어 없이 전자장치(400) 내부에서 변경시스템(100)의 보안 부트를 변경할 수 있다.
출력장치(153)는 제어장치(150)의 제어에 따라 실행되는 루트 키 변경을 위한 실행화면을 표시할 수 있다. 이를 위해, 출력장치(153)는 LCD(Liquid Crystal Display), 터치스크린 등으로 형성될 수 있다.
도 4는 본 발명의 실시예에 따른 보안 부트의 권한을 변경하기 위한 방법을 설명하기 위한 순서도이다.
도 1 내지 도 4를 참조하면, 411동작에서 프로세서 코어(110)는 변경시스템(100)의 부트를 감지할 수 있다. 411동작의 감지결과 변경시스템(100)의 부트가 감지되면 프로세서 코어(110)는 413동작을 수행할 수 있다. 413동작에서 프로세서 코어(110)는 제1 루트 키를 활성화할 수 있다. 이때, 제1 루트 키는 도 1에 도시된 키 비트 영역(121) 중에서 가장 상위에 위치하는 Root key영역(121a)에 존재하는 루트 키인 것이 바람직하다.
415동작에서 프로세서 코어(110)는 외부로부터 루트 키를 제1 루트 키에서 제2 루트 키로 변경하기 위한 신호 및 제2 루트 키가 수신되면 417동작으로 진행할 수 있다.
도 2를 이용하여 411동작 내지 415동작을 설명하면, 411동작에서 프로세서 코어(110)는 외부장치(300)로부터의 입력신호에 의한 변경시스템(100)의 부트를 감지할 수 있다. 이때, 변경시스템(100)은 NW(111)를 통해 부트를 진행하도록 설정되어 있기 때문에 프로세서 코어(110)는 413동작에서 키 비트 영역(121) 중에서 가장 상위에 위치하는 Root key영역(121a)에 할당된 제1 루트 키를 활성화할 수 있다.
415동작에서 프로세서 코어(110)는 외부장치(300)로부터 루트 키를 제1 루트 키에서 제2 루트 키로 변경하기 위한 신호 및 제2 루트 키가 수신되면 417동작으로 진행할 수 있다. 이때, 변경시스템(100)은 외부로부터 루트 키를 제2 루트 키로 변경하기 위한 신호가 수신되면, NW(111)가 SW(113)를 활성화할 수 있다. SW(113)는 외부장치(300)의 루트키 생성부(310)에서 생성된 새로운 루트 키 즉, 제2 루트 키를 수신할 수 있다. SW(113)는 수신된 제2 루트 키를 키 비트 영역(121)의 blank_1(121b)에 기입할 수 있다.
아울러, 도 3을 이용하여 도 4를 설명하면, 411동작에서 전자장치(400)에 포함된 프로세서 코어(110)는 외부로부터의 입력신호에 의한 변경시스템(100)의 부트를 감지할 수 있다. 이때, 전자장치(400)는 NW(111)를 통해 변경시스템(100)의 부트를 진행하도록 설정되어 있기 때문에 프로세서 코어(110)는 413동작에서 키 비트 영역(121) 중에서 가장 상위에 위치하는 Root key영역(121a)에 할당된 제1 루트 키를 활성화할 수 있다.
415동작에서 프로세서 코어(110)는 입력장치(151)로부터 루트 키를 제1 루트 키에서 제2 루트 키로 변경하기 위한 신호가 수신되고, 루트키생성부(250)에서 생성된 제2 루트 키가 수신되면 417동작으로 진행할 수 있다. 이때, 전자장치(400)는 외부장치(300)와 마찬가지로 트러스트존에 기반한 소프트웨어 아키텍쳐가 구현된 운영체제가 설치될 수 있다. 전자장치(400)는 입력장치(151)로부터 루트 키를 변경하기 위한 신호가 수신되면 SW(113)를 활성화하고, 루트키 생성부(250)에서 생성된 제2 루트 키를 키 비트 영역(121)의 blank_1(121b)에 제2 루트 키를 기입할 수 있다.
이어서, 417동작에서 SW(113)는 키 비트 영역(121)의 셀렉트 비트 영역(123)에 할당된 셀렉트 비트를 제어하여 제2 루트 키를 선택하도록 할 수 있다. 그리고 419동작에서 프로세서 코어(110)는 퓨처 비트 영역(125)를 제어하여 제2 루트 키가 기입된 blank_1(121b)을 제외한 키 비트 영역(blank_2(121c), blank_3(121d), ..., blank_n(121n))을 블로킹하도록 할 수 있다. 419동작은 OEM업체가 선택적으로 진행할 수 있는 동작이다.
도 5는 본 발명의 실시예에 따른 외부장치에서 루트 키 변경을 수행하는 화면을 나타낸 예시도이다.
도 1, 도 2 및 도 5를 참조하면, 도 2의 제어장치(150)가 외부장치(300)와 연결되고, 루트 키를 변경하기 위한 신호를 입력하면 외부장치(300)의 화면에 루트 키를 설정할 수 있는 화면이 표시될 수 있다. 화면에 #1은 변경시스템(100) 제조업체가 변경시스템(100) 제조 시에 키 비트 영역(121)의 상위에 입력한 제1 루트 키를 의미할 수 있다. 화면의 #2는 변경시스템(100) 제조업체로부터 변경시스템(100)을 제공받은 OEM업체에서 설정한 자신들의 고유한 루트 키를 의미할 수 있다. 화면에서와 같이 외부장치(300)에서 #2의 선택신호를 프로세서 코어(110)로 전달하면, 프로세서 코어(110)는 메모리(120)의 셀렉트 비트 영역(123)에 할당된 셀렉트 비트를 제어하여 blank_1(121b) 비트 영역을 선택하도록 할 수 있다.
화면에 표시된 #1, #2 등은 변경시스템(100)에 포함된 메모리(120)의 키 비트 영역(121)을 인덱스화하여 나타낸 것이고, #1에 해당하는 Root key영역(121a)은 제1 루트 키가 기입되어 이미 사용되었으므로 USED로 표시될 수 있다. 그리고 OEM업체에서 #3에서 #8에 해당하는 비트 영역을 블로킹하도록 설정하면 프로세서 코어(110)는 메모리(120)의 퓨처 비트 영역(125)에 할당된 퓨처 비트가 blank_2(121c) 내지 blank_n(121n) 비트 영역을 블로킹하도록 할 수 있다. 이와 같이 OEM업체에서는 변경시스템(100)의 루트 키를 변경할 수 있고, 자신이 키 비트 영역(121)에서 몇 번째의 비트 영역을 사용하는지 확인할 수 있다.
도 6은 본 발명의 실시예에 따른 전자장치에서 루트 키 변경을 수행하는 화면을 나타낸 예시도이다.
도 1, 도 3 및 도 6을 참조하면, 도 3 및 도 6의 전자장치(400)가 입력장치(151)를 통해 외부로부터 루트 키를 변경하기 위한 신호가 입력되면 전자장치(400)의 화면에 루트 키를 변경할 수 있는 화면이 출력장치(153)에 표시될 수 있다. 상기 화면은 공장초기화 설정모드일 수 있다. 화면에 도시된 #1은 전자장치(400)에 포함된 변경시스템(100) 제조업체가 변경시스템(100) 제조 시에 키 비트 영역(121)의 상위에 입력한 제1 루트 키를 의미할 수 있다. 화면의 #2는 변경시스템(100)이 포함된 전자장치(400)를 제공받은 OEM업체에서 자신들의 설정한 고유한 루트 키를 의미할 수 있다. 화면에서와 같이 전자장치(400)에서 #2의 선택신호를 프로세서 코어(110)로 전달하면, 프로세서 코어(110)는 메모리(120)의 셀렉트 비트 영역(123)에 할당된 셀렉트 비트를 제어하여 blank_1(121b) 비트 영역을 선택하도록 할 수 있다.
화면에 표시된 #1, #2 등은 변경시스템(100)에 포함된 메모리(120)의 키 비트 영역(121)을 인덱스화하여 나타낸 것이고, #1에 해당하는 Root key영역(121a)은 제1 루트 키가 기입되어 이미 사용되었으므로 USED로 표시될 수 있다. 그리고 OEM업체에서 #3에서 #8에 해당하는 비트 영역을 블로킹하도록 설정하면 프로세서 코어(110)는 메모리(120)의 퓨처 비트 영역(125)에 할당된 퓨처 비트가 blank_2(121c) 내지 blank_n(121b) 비트 영역을 블로킹하도록 할 수 있다. 이와 같이 OEM업체에서는 변경시스템(100)의 루트 키를 변경할 수 있고, 자신이 키 비트 영역(121)에서 몇 번째의 비트 영역을 사용하는지 확인할 수 있다. 상기와 같이 제2 루트 키로 루트 키의 변경이 완료된 이후에 전자장치(400)를 부팅하면 제2 루트 키를 근간으로 하는 Secure Boot Chain 검증을 수행한 이후에 전자장치(400)에 설치된 운영체제를 동작시킬 수 있다.
지금까지 실시예를 통하여 본 발명에 따른 보안 부트의 권한 변경을 위한 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치에 대하여 설명하였다. 본 명세서와 도면에서는 본 발명의 바람직한 실시예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것일 뿐, 본 발명의 범위를 한정하고자 하는 것은 아니다. 상기에서 기재된 실시예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
100: 변환시스템 110: 프로세서 코어
120: 메모리 150: 제어장치
200: 메모리장치 210: 휘발성 메모리
220: 비휘발성 메모리 300: 외부장치
310: 노멀월드 320: 시큐어월드
330: 루트키생성부 400: 전자장치

Claims (10)

  1. 루트 키 입력이 가능한 복수개의 키 비트 영역을 가지는 메모리;
    외부의 입력에 대응하여 새로운 루트 키를 키 비트 영역에 입력하는 프로세서 코어;
    를 포함하고,
    상기 메모리는 상기 복수개의 키 비트 영역 중 하나를 선택하는 셀렉트 비트가 할당된 셀렉트 비트 영역을 더 포함하고,
    상기 프로세서 코어는 상기 셀렉트 비트를 제어하여 상기 새로운 루트 키가 입력된 상기 키 비트 영역을 선택하는, 보안 부트 변경시스템.
  2. 제1항에 있어서,
    상기 메모리는
    상기 키 비트 영역 중 적어도 하나의 영역을 블로킹(blocking)하는 퓨처 비트가 할당된 퓨처 비트 영역을 더 포함하는 보안 부트 변경시스템.
  3. 삭제
  4. 제2항에 있어서,
    상기 프로세서 코어는
    상기 퓨처 비트를 제어하여 상기 선택된 새로운 루트 키에 해당하는 키 비트 영역을 제외한 키 비트 영역을 블로킹하는 보안 부트 변경시스템.
  5. 프로세서 코어가 외부로부터 새로운 루트 키를 수신하는 단계; 및
    상기 프로세서 코어가 복수개의 키 비트 영역 중 하나의 키 비트 영역에 상기 새로운 루트 키를 입력하는 단계;
    를 포함하고,
    상기 새로운 루트 키를 입력하는 단계 이후에,
    상기 프로세서 코어가, 상기 복수개의 키 비트 영역 중 하나를 선택하는 셀렉트 비트를 제어하여 상기 새로운 루트 키가 입력된 상기 키 비트 영역을 선택하는 단계를 포함하는, 보안 부트 변경 방법.
  6. 삭제
  7. 제5항에 있어서,
    상기 셀렉트 비트를 제어하는 단계 이후에
    상기 프로세서 코어가 상기 선택된 새로운 루트 키에 해당하는 키 비트 영역을 제외한 키 비트 영역을 블로킹하는 단계;
    를 포함하는 보안 부트 변경 방법.
  8. 보안 부트 변경시스템을 구비한 전자장치에 있어서,
    외부의 입력에 대응하여 새로운 루트 키를 복수개의 키 비트 영역 중 하나의 키 비트 영역에 입력하는 변경시스템;
    상기 새로운 루트 키로 부트하는 메모리장치;
    를 포함하고,
    상기 변경 시스템은, 상기 복수개의 키 비트 영역 중 하나를 선택하는 셀렉트 비트를 제어하여 상기 새로운 루트 키가 입력된 상기 키 비트 영역을 선택하는, 전자장치.
  9. 제8항에 있어서,
    노멀모드로 동작하여 기설정된 루트 키로 부트하고, 외부로부터의 입력에 따라 시큐어모드로 변환하여 새로운 루트 키를 생성하는 제어장치;
    를 더 포함하는 전자장치.
  10. 제9항에 있어서,
    상기 제어장치는
    상기 생성된 새로운 루트 키인 제2 루트 키로 부팅하고 상기 노멀모드로 변환하여 동작하는 전자장치.
KR1020130167999A 2013-12-31 2013-12-31 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치 KR102227263B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130167999A KR102227263B1 (ko) 2013-12-31 2013-12-31 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치
US14/587,335 US9697360B2 (en) 2013-12-31 2014-12-31 System and method for changing secure boot and electronic device provided with the system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130167999A KR102227263B1 (ko) 2013-12-31 2013-12-31 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치

Publications (2)

Publication Number Publication Date
KR20150078546A KR20150078546A (ko) 2015-07-08
KR102227263B1 true KR102227263B1 (ko) 2021-03-15

Family

ID=53482114

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130167999A KR102227263B1 (ko) 2013-12-31 2013-12-31 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치

Country Status (2)

Country Link
US (1) US9697360B2 (ko)
KR (1) KR102227263B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10735200B2 (en) * 2015-03-27 2020-08-04 Comcast Cable Communications, Llc Methods and systems for key generation
US11257590B2 (en) * 2017-03-02 2022-02-22 Karl Storz Imaging, Inc. Method and apparatus for medical devices under regulatory control
US10984136B2 (en) * 2017-04-21 2021-04-20 Micron Technology, Inc. Secure memory device with unique identifier for authentication
US11074348B2 (en) * 2017-08-24 2021-07-27 International Business Machines Corporation Securing and changing immutable data in secure bootup
US10885211B2 (en) 2017-09-12 2021-01-05 Sophos Limited Securing interprocess communications
US11194913B2 (en) * 2019-03-12 2021-12-07 International Business Machines Corporation Unsecure to secure transition of mutable core root of trust
JP7287115B2 (ja) * 2019-05-30 2023-06-06 京セラドキュメントソリューションズ株式会社 集積回路及び集積回路の制御方法
KR20210097379A (ko) 2020-01-30 2021-08-09 삼성전자주식회사 보안 장치, 전자 장치, 보안 부트 관리 시스템, 부트 이미지 생성 방법 및 부트 체인 실행 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7463739B2 (en) * 2001-08-02 2008-12-09 Safenet, Inc. Method and system providing improved security for the transfer of root keys
KR100823293B1 (ko) * 2001-08-21 2008-04-18 삼성전자주식회사 컴퓨터시스템 및 그 제어방법
US7366906B2 (en) * 2003-03-19 2008-04-29 Ricoh Company, Ltd. Digital certificate management system, digital certificate management apparatus, digital certificate management method, program and computer readable information recording medium
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
US20070022243A1 (en) * 2005-07-22 2007-01-25 John Rudelic Method and apparatus capable of disabling authenticated operations and guaranteed secure boot in a wireless platform
KR20090037712A (ko) 2007-10-12 2009-04-16 삼성전자주식회사 보안 부트-업되는 전자 장치, 그것의 해쉬값 계산 방법 및부트-업 방법
DE102008011925B4 (de) * 2008-02-29 2018-03-15 Globalfoundries Inc. Sicheres Initialisieren von Computersystemen
JP2010185982A (ja) * 2009-02-10 2010-08-26 Toshiba Storage Device Corp 暗号化装置、復号化装置及び記憶装置
US20120284534A1 (en) * 2011-05-04 2012-11-08 Chien-Kang Yang Memory Device and Method for Accessing the Same
US9021246B2 (en) * 2011-10-28 2015-04-28 GM Global Technology Operations LLC Method to replace bootloader public key
GB2514771B (en) * 2013-06-03 2015-10-21 Broadcom Corp Methods of securely changing the root key of a chip, and related electronic devices and chips

Also Published As

Publication number Publication date
US20150186651A1 (en) 2015-07-02
US9697360B2 (en) 2017-07-04
KR20150078546A (ko) 2015-07-08

Similar Documents

Publication Publication Date Title
KR102227263B1 (ko) 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치
US11113404B2 (en) Securing operating system configuration using hardware
KR102026393B1 (ko) 판독 전용 메모리의 부트 코드 패칭
US11809544B2 (en) Remote attestation for multi-core processor
US9021244B2 (en) Secure boot administration in a Unified Extensible Firmware Interface (UEFI)-compliant computing device
EP3678039B1 (en) Secure startup method and apparatus, and terminal device
US8621195B2 (en) Disabling communication ports
CN112789574B (zh) 经由***及电源管理微控制器的安全启动
WO2014190884A1 (zh) 通过开机密码保护终端的方法及装置
US10698696B2 (en) Chipset fuse programming system
US20230198775A1 (en) Memory device with secure boot updates and self-recovery
US11593462B2 (en) Baseboard management controller firmware security system
US20200344066A1 (en) Information processing apparatus and data verification method
US9152429B2 (en) Computer system having a near field communication tag with user identification function
US11068276B2 (en) Controlled customization of silicon initialization
WO2018124894A1 (en) Embedded oem code for fault recovery
JP2009251954A (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