KR20150008546A - 보안 다운로드 및 기능 실행방법 및 장치 - Google Patents

보안 다운로드 및 기능 실행방법 및 장치 Download PDF

Info

Publication number
KR20150008546A
KR20150008546A KR1020130082615A KR20130082615A KR20150008546A KR 20150008546 A KR20150008546 A KR 20150008546A KR 1020130082615 A KR1020130082615 A KR 1020130082615A KR 20130082615 A KR20130082615 A KR 20130082615A KR 20150008546 A KR20150008546 A KR 20150008546A
Authority
KR
South Korea
Prior art keywords
binary
electronic device
unique
boot loader
specific information
Prior art date
Application number
KR1020130082615A
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 KR1020130082615A priority Critical patent/KR20150008546A/ko
Priority to US14/331,935 priority patent/US9378372B2/en
Publication of KR20150008546A publication Critical patent/KR20150008546A/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Abstract

본 개시의 보안 다운로드 실행방법은, 전자장치를 위한 보안 다운로드를 실행하는 방법에 있어서, 상기 전자장치에 고유 아이디를 저장하는 동작과, 바이너리 업데이트 요청을 수신하는 동작과, 상기 저장된 고유 아이디와 상기 바이너리에 서명된 고유 아이디의 일치여부를 판단하는 동작 및 상기 일치여부에 따라 상기 바이너리를 다운로드하는 동작을 포함한다.

Description

보안 다운로드 및 기능 실행방법 및 장치{Method and apparatus for executing secure download and function}
본 개시는 보안 다운로드 및 기능 실행방법 및 장치에 관한 것으로서, 특히 전자장치의 바이너리 업데이트 요청 수신시 설정된 특정 사용자의 서명정보를 인증함으로써 보안 다운로드를 실행하고, 바이너리에 포함된 기능 수행 시, 서명된 바이너리의 특정 정보를 인증함으로써, 보안 다운로드 및 보안 기능을 실행하는 방법과 그의 전자장치에 관한 것이다.
스마트 폰, 태블릿 PC와 같은 모바일 기기가 대중화되고 응용 프로그램의 종류가 늘어나면서 모바일 기기의 사용 환경은 PC 환경과 유사해지고 있다.
이에 따라 모바일 기기에서도 악성 코드에 의한 피해 사례가 증가하고 있다.
또한 전자결재와 같은 높은 보안수준을 필요로 하는 응용 분야가 확대되어감에 따라 스마트폰의 보안에 대한 요구와 관심이 높아지고 있다.
특히, 안드로이드 운영체제는 오픈 소스 플랫폼에 기반하여 대부분의 소스 코드가 공개되어 있어 취약점에 쉽게 노출될 수 있는 약점이 있고, 엄격하게 통제되지 않은 앱스토어를 통해 악성 애플리케이션이 유통될 우려가 높으며, 실제로도 플랫폼의 루트 권한을 획득하여 사용자의 민감한 개인정보를 유출하는 사고 사례들이 많이 보고되고 있다.
특히, 이러한 보안 취약점들은 스마트 기기가 높은 보안 수준을 요구하는 공공 부분으로 도입되어 활용되는데 걸림돌이 되고 있어, 이를 극복하기 위해 모바일 운영체제의 보안 설계가 지속적으로 강화되고 있으며, 최근의 SoC들은 부팅 과정에서 인증서와 디지털 서명을 기반으로 하는 보안 부팅을 지원하고 있다.
최근의 SoC는 부팅 동작에서 보안 부트 체인(Secure boot chain)의 형태로 기초 보안을 제공한다.
이와 같은 종래기술로서, 대한민국 공개특허공보 제10-2002-0092222호(발명의 명칭: 보안 부팅 방법 및 보안 부트 이미지 생성 방법)는 인증되지 않은 부트 이미지를 통한 부팅을 방지할 수 있는 보안 부팅 방법을 개시하고 있다.
본 개시는 설정된 특정 사용자의 바이너리 다운로드 시 정보 유출을 방지하고, 바이너리에 포함된 기능 수행 시, 전자장치의 비정상 동작 가능성을 방지하는, 보안 다운로드 및 기능 실행방법 및 장치를 제공한다.
본 개시의 보안 다운로드 실행방법은, 전자장치를 위한 보안 다운로드를 실행하는 방법에 있어서, 상기 전자장치에 고유 아이디를 저장하는 동작과, 바이너리 업데이트 요청을 수신하는 동작과, 상기 저장된 고유 아이디와 상기 바이너리에 서명된 고유 아이디의 일치여부를 판단하는 동작 및 상기 일치여부에 따라 상기 바이너리를 다운로드하는 동작을 포함한다.
본 개시의 보안 기능 실행방법은, 전자장치를 위한 보안 부트를 실행하는 방법에 있어서, 상기 전자장치의 메모리에 저장된 적어도 하나의 부트로더를 순차적으로 인증 및 실행시키는 동작과, 상기 부트로더에 저장된 특정정보와 커널 바이너리의 특정정보의 일치 여부를 판단하는 동작 및 상기 특정정보의 일치여부에 따라 상기 바이너리에 포함된 기능을 실행하는 동작을 포함한다.
본 개시의 보안 다운로드 및 기능 실행방법은, 전자장치를 위한 기능 실행 방법에 있어서, 상기 전자장치에 적어도 하나의 예상 사용자에 대응하는 고유 아이디와 부트로더의 특정정보를 저장하는 동작과, 상기 신규 바이너리 업데이트 요청 수신 시, 상기 전자장치에 저장된 고유 아이디와 상기 바이너리의 고유 아이디의 일치여부를 판단하는 동작과, 상기 고유 아이디가 일치하면, 상기 신규 바이너리를 다운로드하여 저장하는 동작과, 상기 전자장치에 저장된 적어도 하나의 부트로더를 순차적으로 인증 및 실행시키는 동작과, 상기 부트로더의 특정정보와 상기 저장된 신규 바이너리의 특정정보의 일치여부를 판단하는 동작 및 상기 특정정보의 일치여부에 따라 상기 바이너리에 포함된 기능을 수행하는 동작을 포함한다.
본 개시의 보안 다운로드 및 기능 실행 장치는 부트로더의 실행에 의해 로드되어 기능을 실행하는 바이너리를 저장하는 바이너리 저장부와, 적어도 하나의 예상 사용자에 대응하는 고유 아이디를 저장하고, 상기 바이너리 업데이트 요청 수신시, 신규 바이너리의 고유 아이디와 상기 미리 저장된 고유 아이디의 일치여부를 판단함으로써, 상기 신규 바이너리를 인증하는 인증 구성부와, 바이너리와 쌍으로 설정된 부트로더의 특정정보를 저장하는 부트로더 특정정보 저장부 및 상기 신규 바이너리 인증 성공시, 상기 신규 바이너리를 다운로드하여 저장하고, 상기 바이너리의 기능 실행 시, 상기 부트로더의 특정정보와 상기 신규 바이너리의 특정정보의 일치여부에 따라 상기 기능을 실행하는 프로세서를 포함한다.
본 개시에 따르면 전자장치의 바이너리 업데이트 시 설정된 특정 사용자의 서명정보를 인증함으로써 보안 다운로드와 같은 바이너리에 포함된 기능을 수행함으로써, 정보 유출을 방지할 수 있다.
구체적으로, 본 개시는 부팅 시, 서명된 바이너리의 특정 정보와 부트로더의 특정 정보의 일치여부를 판단하여 일치할 경우에만 상기 바이너리에 포함된 기능을 실행함으로써, 전자장치의 비정상 동작 가능성을 방지할 수 있다.
도 1은 본 개시에 따른 보안 부팅을 수행하기 위한 전자장치를 수행하는 시스템을 개략적으로 도시한다.
도 2는 본 개시에 따른 전자장치의 보안부팅을 위한 부트로더의 구성을 개략적으로 도시한다.
도 3은 본 개시에 따른 전자장치의 보안부팅을 위한 커널 바이너리의 구성을 개략적으로 도시한다.
도 4는 보안 부팅시 이용되는 초기 인증서가 서로 다른 커널 바이너리들의 구성을 도시한다.
도 5는 본 개시의 일 실시예에 따른 커널 바이너리의 업데이트 메커니즘을 도시한다.
도 6은 본 개시에 따른 보안 부팅 방법의 흐름을 나타내는 순서도이다.
이하, 첨부된 도면을 참조하여 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자가 본 개시를 용이하게 실시할 수 있도록 실시예를 상세히 설명한다. 다만, 본 개시의 실시예를 상세하게 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 유사한 기능 및 작용을 하는 부분에 대해서는 도면 전체에 걸쳐 동일한 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
본 개시의 실시 예에서 지원하는 전자장치는, 태블릿 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)라고 부른다.
도 1은 본 개시에 따른 보안 부팅을 수행하기 위한 전자장치를 수행하는 시스템을 개략적으로 도시한다.
도 1을 참조하면, 본 개시에 따른 전자장치(100)는 칩 셋(110), 제1메모리(120) 및 제4메모리(130)를 포함하여 구성될 수 있다.
칩 셋(110)은 프로세서(114), 제2 메모리(112), 제3 메모리(113)를 포함하여 구성될 수 있다. 이외에도 메모리 컨트롤러, 추가적인 메모리 등을 더 포함할 수 있음은 자명하다.
제1 메모리(120)는 적어도 하나 이상의 부트로더, 부트로더 버전정보, 커널인증 구성요소 및 커널 바이너리를 포함할 수 있다. 부트로더, 부트로더 버전정보, 커널인증 구성요소 및 커널 바이너리는 각각 소프트웨어 소스 코드일 수 있다.
예컨대, 도 1에 도시된 바에 따르면, 제1메모리(120)는 3개의 부트로더 즉, 제1 부트 로더(BL1), 제2 부트 로더(BL2), 제3 부트로더(BL3), 부트로더 버전정보, 커널인증 구성요소(aBoot) 및 커널 바이너리(Kernel binary)를 포함할 수 있다. 이는 하나의 실시예에 불과하며, 본 개시는 부트로더의 개수를 한정하지 않는다. 제1메모리(120)에 다수의 부트로더가 포함된 경우, 다수의 부트로더는 그에 저장된 서명이 순차적으로 인증 및 실행될 수 있다.
제5 메모리(112)는 칩 셋 내부의 비휘발성 메모리로, 시스템에 전원이 공급될 때 실행되는 초기 부트로더(ROM BOOT)를 저장할 수 있다.
제3메모리(113)는 칩 셋 내부의 휘발성 메모리로, 제2 메모리에 저장된 초기 부트로더, 제1 메모리(120)에 저장된 부트로더 및 커널 바이너리 중 적어도 일부의 코드를 수행시키기 위해 동적으로 로드할 수 있는 공간을 제공할 수 있다.
제4 메모리(130)는 칩 셋 외부의 휘발성 메모리로, 제1 메모리(120)에 저장된 부트로더 또는 커널 중 적어도 일부의 코드를 수행시키기 위해 동적으로 로드할 수 있는 공간을 제공할 수 있다. 예컨대, 제4 메모리(130)는 제3 메모리(113)보다 큰 용량을 가질 수 있으며, 이 경우에, 부트로더 중 상대적으로 작은 크기의 코드는 제3 메모리(113)에 로드되고, 상대적으로 큰 크기의 코드는 제4메모리(130)에 로드될 수 있으나, 이는 하나의 실시예에 불과하며, 본 개시는 제3메모리(113) 및 제4메모리(130)의 용량을 한정하지 않는다. 예컨대, 제 3 메모리 및 제4메모리는 DRAM(dynamic random access memory), SRAM(static random access memory), SDRAM(synchronous dynamic random access memory) 중 적어도 하나의 휘발성 메모리일 수 있다.
예컨대, 전자장치의 전원이 켜지면, 초기 부트로더(ROM BOOT)는 제3메모리(113)로 로드되어 프로세서에 의해 실행될 수 있다.
초기 부트로더(ROM BOOT)가 실행되면, 프로세서(114)는 제1 메모리(120)를 탐지(detect)하고, 탐지된 제1메모리(120)를 초기화하며, 제1 메모리(120)에 저장된 제1 부트 로더(BL1)를 제3 메모리(113)에 로드하고, 제1 부트 로더(BL1)를 인증하고, 인증에 성공하면, 제1부트로더(BL1)를 실행시킬 수 있다.
제1 부트 로더(BL1)가 실행되면, 프로세서(114)는 제2 부트로더(BL2)를 인증하고, 인증에 성공하면, 제2부트로더(BL2)를 실행시킬 수 있다.
제2 부트 로더(BL2)가 실행되면, 프로세서(114)는 제4메모리(330)를 탐지하고, 탐지된 제4메모리(330)를 초기화하고, 초기화된 제4메모리(330)에 제3부트로더(BL3)를 로드하고, 제3부트로더(BL3)를 인증하고, 인증에 성공하면, 제3부트로더(BL3)를 실행시킬 수 있다.
제3 부트로더(BL3)의 실행에 의해 커널인증 구성요소(aBoot)가 실행된다. 커널인증 구성요소(aBoot)는 부트로더(BL1~BL3) 중 적어도 하나에 저장된 버전 정보와 전자장치에 저장된 서명된 커널 바이너리의 버전 정보의 일치 여부를 판단하여, 두 버전 정보가 일치할 경우에만 전자장치를 부팅한다. 이에 대해 상세한 설명은 이하에서 도 5를 참조하여 설명하기로 한다.
전자장치의 보안부팅은 초기 부트로더(ROM BOOT)부터 제1 부트로더(BL1), 제2 부트로더(BL2), 제3부트로더(BL3), 커널인증 구성요소(aBoot) 및 커널 바이너리(kernel binary) 실행의 순서로 수행될 수 있으나, 이는 하나의 실시예에 불과할 뿐이며, 본 개시는 이러한 수행 순서나 부트로더의 개수나 종류를 한정하지 않는다. 그리고, 제1메모리(120)에 부트로더가 다수 포함될 수 있으나, 부트로더가 하나인 경우에도 무방하다.
여기서, 커널 바이너리는 전자장치 운영체계의 핵심으로서 운영체계의 다른 모든 부분에 여러 가지 기본적인 서비스를 제공한다. 예컨대, 프로세스 관리, 메모리 관리, 태스크 관리, 입출력 관리, 시스템 관리 기능 등의 서비스를 제공한다.
이와 같은 커널 바이너리는 상기 언급한 바와 같은 보안부팅 과정을 통해서 기초 보안이 제공된 이후, 실제 전자장치의 부팅으로서 실행된다. 커널 바이너리는 시큐어 부트로더와는 달리 플래싱 툴(flashing tool)을 통해 쉽게 업데이트되고, 기본적으로 커스텀 커널(custom kernel)을 다운로드하는 행위가 불법이 아니기 때문에 B2C/B2B용 전자장치에 보안을 위해 커스텀 커널의 다운로드를 선택적으로 막는 것은 불가능하였다. 따라서 전자장치가 B2B 용도로 사용 중일 경우, 일반용 커널 바이너리를 업데이트하거나 다른 B2B용의 커널 바이너리를 다운로드하는 문제에 의해 의도치 않은 상황에 처할 수 있다.
이와 같은 문제를 해결하기 위해 본 개시의 일 실시예는 B2B용과 같은 특정 사용자의 전자장치의 정보 유출 방지를 위해 특정 사용자 장치의 용도에 적합한 커널 바이너리를 업데이트할 수 있는 방법을 제시한다.
여기서 커널 바이너리는 여러 종류의 바이너리들 중 본 발명의 구성을 설명하기 위한 하나의 실시 예일 뿐, 커널 바이너리 이외의 다른 기능을 수행하는 바이너리가 적용될 수 있음을 알린다.
도 2는 본 개시에 따른 전자장치의 보안부팅을 위한 부트로더의 구성을 개략적으로 도시한다. 본 개시에 따른 부트로더는 도 3에 도시된 제1 부트로더(BL1), 제2부트로더(BL2) 및 제3부트로더(BL3) 중 적어도 하나에 대응될 수 있다.
도 2를 참조하면, 본 개시에 따른 하나의 부트로더는 부트로더 버전정보 저장영역(151), 초기 인증서 저장영역(152), 인증기관 인증서 저장 영역(157), 부트 이미지 인증서 저장영역(160), 부트 이미지 저장영역(170)을 포함할 수 있다.
부트로더 버전정보 저장영역(151)은 부트로더의 버전정보를 저장하는 영역이고, 도 1에 도시된 바와 같이 제1 메모리(120) 내에 부트로더 버전정보가 포함되어 있으면, 부트로더 내에는 부트로더 버전정보 저장영역(151)을 생략할 수 있다. 부트로더 버전정보는 부트로더와 한 쌍으로 설정된 커널 바이너리에 함께 부여되는 버전정보라 할 수 있다.
초기 인증서 저장영역(152)은 보안 부팅에 사용되는 적어도 하나 이상의 초기 인증서를 저장할 수 있다.
예컨대, 초기 인증서 저장영역(152)에 제1초기 인증서(153) 및 제2 초기 인증서(154)를 포함한 복수의 초기 인증서들을 저장한 경우에는, 부트로더의 인증에 사용할 초기 인증서를 제1초기 인증서(153)에서 제2초기 인증서(154)로 변경할 수 있고, 전자장치가 판매된 이후에 초기 인증서를 사후적으로 변경할 수 있다.
본 개시는 초기 인증서 저장 영역(152)에 제1 내지 제4 초기 인증서(153~156)들이 저장된 예를 개시하나, 이는 하나의 실시예에 불과하며, 초기 인증서의 개수나 저장 형태 등은 이에 한정되지 않는다. 초기 인증서 저장 영역(152)에 저장된 초기 인증서들은 각각의 공개키를 포함할 수 있다.
또한 초기 인증서 저장 영역(152)의 적어도 일부에 초기 인증서 대신 더미 인증서가 저장될 수 있다. 더미 인증서는 공개키와 같이 실질적으로 인증에 사용될 수 있는 정보를 포함하지 않고, 초기 인증서 저장 영역(152)에서 초기 인증서 저장을 위해 예약된 단위 영역을 형식적으로 채우는 데이터를 가리킬 수 있다.
제1 내지 제4 초기 인증서(153~156)는 적어도 하나의 예상 사용자(예컨대 B2B 또는 B2G 클라이언트), 제조자 중 적어도 하나에 각각 대응하는 인증서들일 수 있다.
예컨대, 서로 다른 예상 B2B클라이언트들에 각각 대응하는 공개키들을 포함한 인증정보를 저장하거나, 동일한 예상 B2B 클라이언트에 대응하는 복수의 서로 다른 공개 키들을 갖는 복수의 초기 인증서들을 초기 인증서 저장 영역(152)에 저장할 수 있다.
또 다른 개시에 따르면, 제1 초기 인증서(153)는 전자장치의 제조자의 공개키(public key)를 포함하고, 제2 초기 인증서(154)는 사용자(주문자)의 공개키를 포함할 수 있다. 또는, 제1 초기 인증서(153)는 전자장치 제조자의 제1 공개키를 포함하고, 제2 초기 인증서(154)는 제1초기 인증서(153)와 동일한 전자장치 제조자의 제2 공개키를 포함할 수 있다.
제1초기 인증서(153)에 대응되는 부트 이미지와 제2초기 인증서(154)에 대응되는 부트 이미지는 서로 동일하거나 상이할 수 있다. 부트 이미지들 각각에 대하여, 커널을 로드한 후 부팅할 때, 커널에 대한 인증을 수행할 지 여부를 다르게 처리할 수 있다.
이와 같은 초기 인증서는 전자장치가 판매된 이후에 사후적으로 변경될 수 있다.
부트 이미지 인증서 저장 영역(160)은 부트 이미지 인증서(attestation certificate, 161)를 저장할 수 있다.
부트 이미지 인증서(161)는 부트 이미지(172)의 무결성(integrity)을 증명하기 위한 인증서이며, 부트 이미지 인증서(161)를 구성하는 각각의 필드(field)에 부트 이미지(172)에 관한 부가적인 정보를 포함할 수 있다. 부트 이미지 인증서 저장 영역(160)은 부트 이미지 인증서(161)를 초기 인증서의 공개키에 대응되는 개인키로 전자 서명한 전자서명(162)을 추가적으로 저장할 수 있다. 구현 예에 따라서는, 부트 이미지 인증서(161)에 사용자를 식별할 수 있는 정보와 관련된 필드(예컨대, EID)가 추가될 수 있다.
인증기관 인증서 저장영역(157)는 인증기관 인증서(attestation CA certificate, 158)를 저장할 수 있다.
인증기관 인증서(158)는 전술한 부트 이미지 인증서가 정상적인 인증서 인증기관에서 발급되었는지를 증명하기 위한 인증서이며, 인증기관 관련 부가적인 정보를 포함할 수 있다. 인증기관 인증서 저장 영역(157)은 인증기관 인증서(158)를 초기 인증서에 대응되는 개인키로 전자 서명한 전자서명(159)을 추가적으로 저장할 수 있다. 구현 예에 따라서는, 인증기관 인증서(158)에 사용자를 식별할 수 있는 정보와 관련된 필드(예컨대, EID)가 추가될 수 있다.
부트 이미지 저장 영역(170)은 부트 이미지의 헤더(Header, 171), 부트 이미지(Boot image, 172) 및 부트 이미지의 전자서명(173)을 포함할 수 있다.
부트 이미지(172)는 전자장치 내부에 포함되거나 외부에서 연결된 적어도 하나의 장치를 초기화하도록 설정된 소스 코드, 다음 부트로더 또는 커널을 전자장치 내부 또는 외부의 휘발성 메모리에 로드하도록 설정된 소스 코드, 로드된 다음 부트로더 또는 커널을 인증하도록 설정된 코드 등을 포함할 수 있다. 부트 이미지의 전자서명(173)은 초기 인증서의 공개키에 상응하는 개인키를 이용하여 부트 이미지(172)의 원본 또는 축약본(예컨대, 해쉬 값)에 대하여 서명함으로써 생성될 수 있다. 여기서 개인키는 사용자(주문자) 또는 제조자가 가지고 있을 수 있다.
도 3은 본 개시에 따른 전자장치의 보안부팅을 위한 커널 바이너리의 구성을 개략적으로 도시한다.
도 3을 참조하면, 본 개시에 따른 커널 바이너리(200)는 커널 바이너리 버전정보(205), 특정 사용자의 고유 아이디(210) 및 커널 이미지 저장영역(250)을 포함할 수 있다.
커널 이미지 저장 영역(250)은 수행될 커널 이미지를 저장할 수 있다. 커널 이미지는 전자장치를 부팅하기 위해 설정된 소스 코드를 포함할 수 있다.
도 4는 보안 부팅시 이용되는 초기 인증서가 서로 다른 커널 바이너리들의 구성을 도시한 도면이다. 도 4를 참조하면, 본 개시의 실시예에 따른 커널 바이너리는 보안 부팅시 디폴트 인증서에 대응하는 제1 커널 바이너리(310), 보안 부팅시 제2 초기 인증서에 대응하는 제2 커널 바이너리(330), 보안 부팅시 제3 초기 인증서에 대응하는 제3 커널 바이너리(350) 및 보안 부팅 시 제4 초기 인증서에 대응하는 제4 커널 바이너리(370)를 포함할 수 있다.
즉, 전자장치는 제1 커널 바이너리(310) 내지 제4 커널 바이너리(370) 중 보안 부팅시 활성화되는 하나의 초기 인증서에 대응하는 커널 바이너리를 저장할 수 있다.
전자장치의 제조시 보안부팅을 위해 설정된 하나의 초기 인증서를 디폴트 인증서라 하면, 상기 디폴트 인증서에 대응하는 제1 커널 바이너리(310)가 전자장치 제조시에 디폴트로 저장될 수 있다. 제2 커널 바이너리(330) 내지 제4 커널 바이너리(370)는 외부 저장장치에 저장되어 있을 수 있고, 전자장치의 외부 소스로부터 접속 인터페이스를 통하여 다운로드할 수 있다. 상기 접속 인터페이스는 USB 접속, 이더넷 접속 또는 무선 네트워크 접속 등에 기초할 수 있다.
예를 들어, 제1 커널 바이너리(310)가 디폴트로 저장된 이후, 초기 인증서를 디폴트 인증서에서 제2 초기 인증서 내지 제4 초기 인증서 중 어느 하나로 변경하기 위한 요청을 수신할 수 있다. 상기 요청 수신 시, 변경하고자 하는 초기 인증서에 대응하는 커널 바이너리를 신규 커널 바이너리로서 전자장치의 외부 소스로부터 접속 인터페이스를 통하여 다운로드할 수 있다.
디폴트 인증서를 제외한 제2 커널 바이너리(330), 제3 커널 바이너리(350) 및 제4 커널 바이너리(370)는 각각 제1 고유 아이디(Magic string 1), 제2 고유 아이디(Magic string 2) 및 제3 고유 아이디(Magic string 3)를 포함할 수 있다. 그리고 이와 동일한 제1 고유 아이디(Magic string 1) 내지 제3 고유 아이디(Magic string 3)는 커널 바이너리 다운로드시 인증을 위해 전자장치에 미리 저장된다.
예컨대, 제1 고유 아이디(Magic string 1)는 특정 기업용 사용자(B2B)의 전자장치의 커널 바이너리 다운로드를 위해 고유할 수 있다. 즉, 제1 고유 아이디(Magic string 1)는 일반 사용자(B2C) 및 해당 고유 아이디가 없는 타 기업용 사용자(B2B)의 커널 바이너리와 특정 기업용 사업자(B2B)의 커널 바이너리를 구분할 수 있게 한다. 제2 고유 아이디(Magic string 2)는 일반 사용자(B2C)의 전자장치의 커널 바이너리 다운로드를 위해 고유할 수 있으며, 제3 고유 아이디(Magic string 3)는 타 기업용 사용자(B2B)의 커널 바이너리 다운로드를 위해 고유할 수 있으나, 설계자의 의도에 따라 특정 기업용 사용자(B2B)에 대응하는 제1 고유 아이디(Magic string 1)만 설정하고, 제2 고유 아이디 및 제3 고유 아이디(Magic string 2, Magic string 3)는 생략할 수 있다.
이미 생산된 B2C 방식의 전자장치의 트러스트 루트(root of trust)를 특정 기업용 사용자 B2B 방식으로 이전하는 경우를 예로 들면, 부팅시 디폴트 인증서(221)가 활성화되는 제1 커널 바이너리(310)가 전자장치에 디폴트로 저장된 이후, 초기 인증서를 디폴트 인증서(221)에서 제2 초기 인증서(222)로 변경하고자 하는 요청을 수신할 수 있다. 이때, 커널인증 구성요소(aBoot)는 상기 초기 인증서 변경 요청에 대응하여 신규 커널 바이너리로서 제2 커널 바이너리(330)를 다운로드하기 전에 다운로드하고자 하는 커널 바이너리의 고유 아이디를 전자장치에 미리 프리로드(preload)된 제1 고유 아이디와 일치여부를 판단함으로써 인증할 수 있다.
전자장치에 미리 프리로드된 제1 고유 아이디와 다운로드하고자 하는 커널 바이너리의 고유 아이디가 일치하면, 전자장치는 제2 커널 바이너리(330)를 전자장치에 다운로드할 수 있다.
이와 달리 신규 커널 바이너리를 다운로드하기 전에 신규 커널 바이너리의 고유 아이디가 전자장치에 미리 프리로드된 고유 아이디와 일치하지 않으면, 신규 커널 바이너리의 다운로드를 막을 수 있다. 즉, B2C용 바이너리를 다운로드하거나, B2B 고유 아이디가 틀린 타 기업용 사용자 B2B용 커널 바이너리를 다운로드하는 행위를 방지할 수 있다.
따라서 본 개시에 의하면 전자장치의 커널 바이너리 업데이트 시 설정된 특정 사용자의 서명정보를 인증함으로써 보안 다운로드를 실행함으로써, 정보 유출을 방지할 수 있다.
도 5는 본 개시의 일 실시예에 따른 커널 바이너리의 업데이트 메커니즘을 도시한 도면이다. 설명에 앞서, 부트로더를 제외한 적어도 한 개 이상의 바이너리 중 실시예로서 커널 바이너리를 가정하기로 하며, 경우에 따라 상기 커널 바이너리 이외의 다른 바이너리가 적용될 수 있음을 알린다.
도 5를 참조하면, 본 개시의 일 실시예에 따른 커널 바이너리 업데이트는 먼저, 410 동작에서 적어도 하나의 고유 아이디를 전자장치에 미리 저장할 수 있다. 고유 아이디는 신규 커널 바이너리를 다운로드하기 전에 신규 커널 바이너리의 인증을 위해 전자장치에 저장되고, 신규 커널 바이너리에 서명된 고유 아이디와 일치여부 판단 시 기준이 될 수 있다. 예상 B2B클라이언트들과 일반 사용자들에 대응하는 적어도 하나의 고유 아이디가 제1 메모리(120)에 저장될 수 있다.
본 개시에서 상기 고유 아이디는 일반 사용자(B2C) 및 해당 고유 아이디를 포함하지 않는 타 기업용 사용자(B2B)와 특정 기업용 사용자(B2B)를 구분하기 위해 설정된 특정 기업용 사용자(B2B) 고유의 식별자를 가정할 수 있다. 고유 아이디는 제1 메모리(120)에 저장될 수 있다.
다음으로, 420 동작에서 커널 바이너리 업데이트 요청을 수신할 수 있다. 즉, 제1 커널 바이너리를 신규 커널 바이너리로 변경하기 위한 신규 커널 바이너리 다운로드 요청을 수신할 수 있다. 신규 커널 바이너리는 전자장치 외부의 소스로부터 접속 인터페이스를 통하여 다운로드될 수 있다. 상기 접속 인터페이스는 USB 접속, 이더넷 접속 또는 무선 네트워크 접속 등에 기초할 수 있다.
다음으로, 430 동작에서 410 동작에서 전자장치에 저장된 고유 아이디와 신규 커널 바이너리의 고유 아이디의 일치 여부를 판단한다. 즉, 제1 메모리(120)에 저장된 고유 아이디와 신규 커널 바이너리에 포함된 고유 아이디가 일치하는지 판단할 수 있다.
430 동작에서 전자장치에 저장된 고유 아이디와 신규 커널 바이너리의 고유 아이디가 일치하는 것으로 판단되면, 신규 커널 바이너리가 특정 기업용 사용자(B2B) 고유의 커널 바이너리임을 인증하여, 440 동작에서 신규 커널 바이너리를 다운로드 및 저장한다.
반면, 430 동작에서 전자장치에 저장된 고유 아이디와 신규 커널 바이너리의 고유 아이디가 일치하지 않거나, 신규 커널 바이너리에 고유 아이디가 없는 경우, 신규 커널 바이너리가 기업용 사용자(B2B) 고유의 커널 바이너리가 아닌 것으로, 인증에 실패한 것으로 판단하여, 450 동작에서 신규 커널 바이너리의 다운로드 실행을 방지한다. 신규 커널 바이너리에 고유 아이디가 포함되지 않았거나, 신규 커널 바이너리의 고유 아이디가 제1 커널 바이너리의 고유 아이디와 일치하지 않는다는 것은 신규 커널 바이너리가 특정 기업용 사용자(B2B) 용도로 설정되지 않음을 의미하기 때문이다.
도 6은 본 개시에 따른 보안 부팅 방법의 흐름을 나타내는 순서도이다. 설명에 앞서, 부트로더를 제외한 적어도 한 개 이상의 바이너리 중 실시예로서 커널 바이너리를 가정하기로 하며, 경우에 따라 상기 커널 바이너리 이외의 다른 바이너리가 적용될 수 있음을 알린다.
먼저, 510 동작에서, 프로세서는 앞서 도 4를 참조하여 언급한 방법으로 서명된 커널 바이너리를 전자장치에 다운로드 및 저장할 수 있다.
다음으로, 520 동작에서 보안 검증을 시작할 수 있다.
다음으로, 530 동작에서 부트 이미지를 포함한 부트로더를 내부 또는 외부의 휘발성 메모리에 로드하고, 로드된 부트로더에 대한 보안검증을 시작할 수 있다. 또한, 초기 인증서 저장 영역의 초기 해시값과 현재 해시값의 일치여부를 판단함으로써, 초기 인증서 저장 영역에 저장된 코드 및 데이터 등이 위변조, 대체, 손상 또는 변형되었는지 검증할 수 다. 여기서 복수의 부트로더를 순차적으로 인증 및 실행시켜 보안검증을 수행할 수 있다.
부트로더의 인증 및 실행에 의한 기초 보안이 검증된 이후, 540 동작에서 마지막 부트로더에 의해 커널 바이너리가 로드되면, 부트로더의 특정정보와 커널 바이너리의 특정 정보의 일치여부를 판단할 수 있다.
상기 특정정보는 바이너리와 부트로더 각각의 버전 정보, 생성 시간(build time) 정보, 상기 부트로더와 상기 바이너리 간에 페어(pair)된 정보 중 적어도 하나일 수 있다.
부트로더의 버전정보와 커널 바이너리의 특정정보가 일치한다면, 550 동작에서 커널 바이너리를 메모리에 로딩하여 커널 부팅을 수행할 수 있다.
이와 달리 부트로더의 특정정보와 커널 바이너리의 특정정보가 일치하지 않으면, 560 동작에서 커널 부팅을 중단시키고, 전자장치의 부팅을 종료시킬 수 있다.
이와 같이 본 개시에 따르면 부팅 시, 서명된 커널 바이너리의 특정 정보와 부트로더의 특정 정보의 일치여부를 판단하여 일치할 경우에만 커널 부팅을 실행함으로써, 전자장치의 비정상 동작 가능성을 방지할 수 있다.
한편, 본 개시에 따른 명령들을 저장하고 있는 저장 매체(기록 매체)에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작을 포함할 수 있다.
본 개시에 따르면, 예상 구매자 및 사용자의 고유 아이디를 전자장치에 저장해놓고, 추후 트러스트 루트 변경 요청이나 커널 바이너리 업데이트 요청에 따라 저장된 고유 아이디를 다운로드하고자 하는 신규 커널 바이너리의 고유 아이디와 일치여부를 비교하여 인증함으로써, 트러스트 루트 변경시 보안 다운로드를 실행할 수 있다.
이 커널 바이너리를 다운로드 하는 시점은 제품 생산 시점 또는 제품이 공급된 후의 시점일 수 있으며, 이에 따라 주문자의 필요에 의해 고유 인증서를 선택하거나 변경할 수 있다.
또한, 전자장치의 부팅시 서명된 커널 바이너리를 로드하여 부트로더의 버전과 상기 커널 바이너리의 버전의 일치여부를 판단하여, 일치할 경우에만 부팅을 실행함으로써, 커널 부팅 시에도 보안 부팅을 실행할 수 있다.
120: 칩 셋 110: 제1 메모리
130: 제2 메모리 135: 제5 메모리
140: 프로세서 160: 인증서 저장영역
170: 부트 이미지 저장영역

Claims (16)

  1. 전자장치를 위한 보안 다운로드를 실행하는 방법에 있어서,
    상기 전자장치에 고유 아이디를 저장하는 동작;
    바이너리 업데이트 요청을 수신하는 동작;
    상기 저장된 고유 아이디와 상기 바이너리에 서명된 고유 아이디의 일치여부를 판단하는 동작; 및
    상기 일치여부에 따라 상기 바이너리를 다운로드하는 동작을 포함하는, 보안 다운로드 실행방법.
  2. 제1항에 있어서, 상기 전자장치에 고유 아이디를 저장하는 동작은,
    특정 기업용 사용자, 일반 사용자, 제조업자 중 적어도 하나에 대응하는 고유 아이디를 저장하는, 보안 다운로드 실행방법.
  3. 제1항에 있어서, 상기 바이너리 업데이트 요청을 수신하는 동작은,
    이미 생산된 B2C 방식의 상기 전자장치의 트러스트 루트를 특정 기업용 사용자 B2B 방식으로 이전하는 요청 또는 신규 바이너리 다운로드 요청을 수신하는, 보안 다운로드 실행방법.
  4. 제1항에 있어서, 상기 일치여부에 따라 상기 바이너리를 다운로드하는 동작은,
    상기 저장된 고유 아이디와 상기 바이너리에 서명된 고유 아이디가 일치하지 않으면, 상기 바이너리 다운로드를 막는, 보안 다운로드 실행방법.
  5. 제1항에 있어서, 상기 바이너리를 다운로드하는 동작은,
    상기 전자장치의 외부에 연결된 플래싱 툴(flashing tool)로부터 상기 바이너리를 상기 전자장치의 메모리로 플래싱하는, 보안 다운로드 실행방법.
  6. 제1항에 있어서, 상기 바이너리를 다운로드하는 동작은,
    USB 접속, 이더넷 접속 또는 무선 네트워크 접속 중 적어도 하나의 접속 인터페이스를 통하여 상기 전자장치의 외부장치로부터 상기 바이너리를 다운로드하는, 보안 다운로드 실행방법.
  7. 바이너리의 기능을 실행하는 방법에 있어서,
    상기 전자장치의 메모리에 저장된 적어도 하나의 부트로더를 순차적으로 인증 및 실행시키는 동작;
    상기 부트로더에 저장된 특정정보와 바이너리의 특정정보의 일치 여부를 판단하는 동작; 및
    상기 특정정보의 일치여부에 따라 상기 바이너리에 포함된 기능을 수행하는 동작을 포함하는, 바이너리 기능 실행방법.
  8. 제7항에 있어서,
    상기 특정정보가 매칭하는 상기 부트로더와 상기 바이너리를 생성하는 동작을 더 포함하는, 바이너리 기능 실행방법.
  9. 제7항에 있어서, 상기 바이너리에 포함된 기능을 수행하는 동작은,
    상기 특정정보가 일치하면 상기 기능을 실행하고, 상기 특정정보가 일치하지 않으면 상기 기능을 중단 또는 종료하는, 바이너리 기능 실행방법.
  10. 제7항에 있어서,
    상기 특정정보는 버전 정보, 생성 시간(build time) 정보, 상기 부트로더와 상기 바이너리 간에 페어(pair)된 정보 중 적어도 하나인, 바이너리 기능 실행방법.
  11. 전자장치의 바이너리에 포함된 기능을 실행하는 방법에 있어서,
    상기 전자장치에 적어도 하나의 예상 사용자에 대응하는 고유 아이디와 부트로더의 특정정보를 저장하는 동작;
    상기 신규 바이너리 업데이트 요청 수신 시, 상기 전자장치에 저장된 고유 아이디와 상기 바이너리의 고유 아이디의 일치여부를 판단하는 동작;
    상기 고유 아이디가 일치하면, 상기 신규 바이너리를 다운로드하여 저장하는 동작;
    상기 전자장치에 저장된 적어도 하나의 부트로더를 순차적으로 인증 및 실행시키는 동작;
    상기 부트로더의 특정정보와 상기 저장된 신규 바이너리의 특정정보의 일치여부를 판단하는 동작; 및
    상기 특정정보의 일치여부에 따라 상기 바이너리에 포함된 기능을 실행하는 동작을 포함하는, 보안 다운로드 및 기능 실행방법.
  12. 부트로더의 실행에 의해 로드되어 기능을 실행하는 바이너리를 저장하는 바이너리 저장부;
    적어도 하나의 예상 사용자에 대응하는 고유 아이디를 저장하고, 상기 바이너리 업데이트 요청 수신시, 신규 바이너리의 고유 아이디와 상기 미리 저장된 고유 아이디의 일치여부를 판단함으로써, 상기 신규 바이너리를 인증하는 인증 구성부;
    바이너리와 쌍으로 설정된 부트로더의 특정정보를 저장하는 부트로더 특정정보 저장부; 및
    상기 신규 바이너리 인증 성공시, 상기 신규 바이너리를 다운로드하여 저장하고, 상기 신규 바이너리의 기능 실행시, 상기 부트로더의 특정정보와 상기 신규 바이너리의 특정정보의 일치여부에 따라 상기 기능을 실행하는 프로세서를 포함하는, 보안 다운로드 및 기능 실행 장치.
  13. 제12항에 있어서, 상기 적어도 하나의 예상 사용자에 대응하는 고유 아이디는,
    특정 기업용 사용자, 일반 사용자, 제조업자 중 적어도 하나에 대응하는 고유 아이디인, 보안 다운로드 및 기능 실행 장치.
  14. 제12항에 있어서, 상기 프로세서는,
    상기 바이너리 업데이트 요청을 수신하는 동작으로서, 이미 생산된 B2C 방식의 상기 전자장치의 트러스트 루트를 특정 기업용 사용자 B2B 방식으로 이전하는 요청 또는 신규 바이너리 다운로드 요청을 수신하는, 보안 다운로드 및 기능 실행 장치.
  15. 제12항에 있어서, 상기 프로세서는,
    상기 전자장치의 외부에 연결된 플래싱 툴(flashing tool)로부터 상기 바이너리를 상기 전자장치의 메모리로 플래싱하는, 보안 다운로드 및 기능 실행 장치.
  16. 제12항에 있어서, 상기 프로세서는,
    USB 접속, 이더넷 접속 또는 무선 네트워크 접속 중 적어도 하나의 접속 인터페이스를 통하여 상기 전자장치의 외부장치로부터 상기 신규 바이너리를 다운로드하는, 보안 다운로드 및 기능 실행 장치.
KR1020130082615A 2013-07-15 2013-07-15 보안 다운로드 및 기능 실행방법 및 장치 KR20150008546A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130082615A KR20150008546A (ko) 2013-07-15 2013-07-15 보안 다운로드 및 기능 실행방법 및 장치
US14/331,935 US9378372B2 (en) 2013-07-15 2014-07-15 Secure download and security function execution method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130082615A KR20150008546A (ko) 2013-07-15 2013-07-15 보안 다운로드 및 기능 실행방법 및 장치

Publications (1)

Publication Number Publication Date
KR20150008546A true KR20150008546A (ko) 2015-01-23

Family

ID=52278119

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130082615A KR20150008546A (ko) 2013-07-15 2013-07-15 보안 다운로드 및 기능 실행방법 및 장치

Country Status (2)

Country Link
US (1) US9378372B2 (ko)
KR (1) KR20150008546A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022154220A1 (ko) * 2021-01-13 2022-07-21 삼성전자 주식회사 전자 장치 및 바이너리 변경 방법

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2629457A1 (en) * 2012-02-15 2013-08-21 JDS Uniphase Corporation Method and System For Network Monitoring Using Signature Packets
EP2831787B1 (en) * 2012-03-30 2020-07-08 Irdeto B.V. Method and system for preventing and detecting security threats
EP2854066B1 (en) * 2013-08-21 2018-02-28 Nxp B.V. System and method for firmware integrity verification using multiple keys and OTP memory
WO2015118384A1 (en) * 2014-02-06 2015-08-13 Sony Corporation Method and apparatus for securely distributing digital vouchers
US9756146B2 (en) * 2015-05-19 2017-09-05 Intel IP Corporation Secure boot download computations based on host transport conditions
US10191811B2 (en) * 2015-08-13 2019-01-29 Quanta Computer Inc. Dual boot computer system
US10803437B2 (en) * 2015-08-28 2020-10-13 Ncr Corporation Self-service terminal technical state monitoring and alerting
US10262164B2 (en) 2016-01-15 2019-04-16 Blockchain Asics Llc Cryptographic ASIC including circuitry-encoded transformation function
US10467415B2 (en) * 2017-03-28 2019-11-05 T-Mobile Usa, Inc. Conditional updating based on bootloader unlock status
KR102516019B1 (ko) * 2017-09-11 2023-03-30 삼성전자주식회사 외부 전자 장치와 통신하는 전자 장치 및 방법
CN108199877B (zh) * 2017-12-29 2021-06-22 生迪智慧科技有限公司 电子设备及其认证方法与固件升级方法
US10776096B2 (en) * 2018-01-12 2020-09-15 Blackberry Limited Method and system for controlling software updates on a network connected device
US10372943B1 (en) 2018-03-20 2019-08-06 Blockchain Asics Llc Cryptographic ASIC with combined transformation and one-way functions
US10256974B1 (en) * 2018-04-25 2019-04-09 Blockchain Asics Llc Cryptographic ASIC for key hierarchy enforcement
US11824882B2 (en) * 2018-08-13 2023-11-21 Ares Technologies, Inc. Systems, devices, and methods for determining a confidence level associated with a device using heuristics of trust
US11695783B2 (en) * 2018-08-13 2023-07-04 Ares Technologies, Inc. Systems, devices, and methods for determining a confidence level associated with a device using heuristics of trust
US11144631B2 (en) * 2018-09-11 2021-10-12 Apple Inc. Dynamic switching between pointer authentication regimes
US11574060B2 (en) * 2019-04-24 2023-02-07 International Business Machines Corporation Secure initial program load
CN113051584B (zh) * 2021-05-31 2023-05-02 武汉深之度科技有限公司 一种系统安全启动方法、装置、计算设备及可读存储介质
US11928205B1 (en) 2022-03-01 2024-03-12 CSP Inc. Systems and methods for implementing cybersecurity using blockchain validation

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738932B1 (en) * 2000-12-22 2004-05-18 Sun Microsystems, Inc. Method and system for identifying software revisions from memory images
JP2002359461A (ja) 2001-06-01 2002-12-13 Nec Corp 電子部品の実装方法および実装構造体、メタルマスク
US7237121B2 (en) * 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
US20040064457A1 (en) * 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
KR100506203B1 (ko) * 2003-09-17 2005-08-05 삼성전자주식회사 부팅 및 부트 코드 업데이트 방법 및 시스템
US7398382B2 (en) * 2004-12-29 2008-07-08 Intel Corporation Method and apparatus to enhance platform boot efficiency
US8291226B2 (en) * 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
US20080168435A1 (en) * 2007-01-05 2008-07-10 David Tupman Baseband firmware updating
US8254568B2 (en) * 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
KR101393307B1 (ko) * 2007-07-13 2014-05-12 삼성전자주식회사 보안 부팅 방법 및 그 방법을 사용하는 반도체 메모리시스템
US20110090086A1 (en) * 2007-10-22 2011-04-21 Kent Dicks Systems for personal emergency intervention
US8095799B2 (en) * 2008-07-28 2012-01-10 Apple Inc. Ticket authorized secure installation and boot
KR20120092222A (ko) * 2011-02-11 2012-08-21 삼성전자주식회사 보안 부팅 방법 및 보안 부트 이미지 생성 방법
US9239718B2 (en) * 2012-12-18 2016-01-19 Honeywell International Inc. System for field upgrading of firmware in multiple units

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022154220A1 (ko) * 2021-01-13 2022-07-21 삼성전자 주식회사 전자 장치 및 바이너리 변경 방법

Also Published As

Publication number Publication date
US9378372B2 (en) 2016-06-28
US20150019856A1 (en) 2015-01-15

Similar Documents

Publication Publication Date Title
KR20150008546A (ko) 보안 다운로드 및 기능 실행방법 및 장치
EP2746982B1 (en) Method and apparatus for supporting dynamic change of authentication means for secure booting
CN106452783B (zh) 计算机系统及安全执行的方法
FI114416B (fi) Menetelmä elektroniikkalaitteen varmistamiseksi, varmistusjärjestelmä ja elektroniikkalaite
US9626513B1 (en) Trusted modular firmware update using digital certificate
US11921860B2 (en) Rollback resistant security
TWI667586B (zh) 用以核對uefi認證變量變化之系統及方法
US8254568B2 (en) Secure booting a computing device
US8539610B2 (en) Software security
US20160277186A1 (en) Securely recovering a computing device
US20140359268A1 (en) Methods of Securely Changing the Root Key of a Chip, and Related Electronic Devices and Chips
US9325506B2 (en) Cryptographically enforcing strict separation of environments
JP2015036847A (ja) 半導体装置
US11886593B2 (en) Verification of a provisioned state of a platform
CN110874467B (zh) 信息处理方法、装置、系统以及处理器、存储介质
US10621335B2 (en) Method and device for verifying security of application
US11755739B2 (en) Update signals
EP2291740A1 (en) Software loading method and apparatus
US20160350537A1 (en) Central processing unit and method to verify mainboard data
KR20140082542A (ko) 보안부팅을 위한 인증수단의 변경을 지원하는 방법 및 장치
CN115062291A (zh) 用于管理容器的方法、系统和计算机可读介质
US11765149B2 (en) Secure data provisioning
Abrahamsson Security Enhanced Firmware Update Procedures in Embedded Systems

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