KR20180056346A - Computing system for managing firmware and firmware managing method thereof - Google Patents
Computing system for managing firmware and firmware managing method thereof Download PDFInfo
- Publication number
- KR20180056346A KR20180056346A KR1020170026424A KR20170026424A KR20180056346A KR 20180056346 A KR20180056346 A KR 20180056346A KR 1020170026424 A KR1020170026424 A KR 1020170026424A KR 20170026424 A KR20170026424 A KR 20170026424A KR 20180056346 A KR20180056346 A KR 20180056346A
- Authority
- KR
- South Korea
- Prior art keywords
- firmware image
- signature
- firmware
- code
- public key
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 35
- 230000015654 memory Effects 0.000 claims abstract description 26
- 238000010586 diagram Methods 0.000 description 16
- 101100042610 Arabidopsis thaliana SIGB gene Proteins 0.000 description 10
- 101100421503 Arabidopsis thaliana SIGA gene Proteins 0.000 description 7
- 102100025745 Cerberus Human genes 0.000 description 6
- 102100026233 DAN domain family member 5 Human genes 0.000 description 6
- 101000914195 Homo sapiens Cerberus Proteins 0.000 description 6
- 101000912351 Homo sapiens DAN domain family member 5 Proteins 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 201000006618 congenital myasthenic syndrome 6 Diseases 0.000 description 4
- 101100294408 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MOT2 gene Proteins 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 101150117326 sigA gene Proteins 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 102100032919 Chromobox protein homolog 1 Human genes 0.000 description 1
- 101000797584 Homo sapiens Chromobox protein homolog 1 Proteins 0.000 description 1
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
- H04L9/3249—Cryptographic 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 using RSA or related signature schemes, e.g. Rabin scheme
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
Description
본 발명은 컴퓨팅 시스템에 관한 것으로, 좀 더 구체적으로는 펌웨어를 관리하기 위한 컴퓨팅 시스템, 및 그것의 펌웨어 관리 방법에 관한 것이다.The present invention relates to a computing system, and more particularly, to a computing system for managing firmware, and a method for managing firmware thereof.
전자 시스템을 구성하는 일부의 장치들은 펌웨어(Firmware)를 통해서 응용 프로그램이나 운영 체제(OS)와는 독립적으로 하드웨어와 같이 구동될 수 있다. 이러한 펌웨어는 안정된 성능과 버그 수정을 위해 제품의 출시 이 후에도 새로운 버전으로 업데이트될 수 있다. 최근에는 전자 시스템을 구성하는 장치들에 대한 보안 공격이 증가하고 있고, 공격 기술도 진보하고 있다. 이에 따라 전자 시스템을 구성하는 장치들의 펌웨어에 대한 보안 요구도 높아지고 있다. Some of the devices that make up the electronic system can be run as hardware independent of the application program or operating system (OS) through the firmware. These firmware can be updated to new versions after product release for stable performance and bug fixes. In recent years, security attacks on devices constituting electronic systems are increasing, and attack techniques are also advancing. Accordingly, the security requirements for the firmware of the devices constituting the electronic system are also increasing.
전자 시스템의 펌웨어를 업데이트 하기 위해서, 펌웨어 이미지를 암호화하는 과정이 요구된다. 펌웨어 이미지의 암호화를 위해 하드웨어 보안 모듈(Hardware Security Module)이 이용된다. 하드웨어 보안 모듈은 자체적으로 공개키 및 비밀키를 생성하고, 생성된 비밀키를 외부에 유출되지 않도록 내부에 보관한다. 따라서, 하드웨어 보안 모듈을 이용하여 펌웨어 이미지가 암호화되는 경우, 보안성이 향상될 수 있다. 전자 시스템 시장이 커짐에 따라, 하드웨어 보안 모듈의 필요성도 높아지고 있다. In order to update the firmware of the electronic system, a process of encrypting the firmware image is required. A hardware security module is used to encrypt the firmware image. The hardware security module generates a public key and a private key by itself, and stores the generated private key inside the private key so as not to be leaked to the outside. Therefore, when the firmware image is encrypted using the hardware security module, the security can be improved. As the market for electronic systems grows, there is a growing need for hardware security modules.
본 발명의 목적은 하드웨어 보안 모듈을 이용하여, 펌웨어에 대한 높은 보안성 및 신뢰성을 제공하기 위한 컴퓨팅 시스템, 및 그것의 펌웨어 관리 방법을 제공하는 데에 있다.It is an object of the present invention to provide a computing system and a firmware management method thereof for providing high security and reliability to firmware using a hardware security module.
본 발명의 실시 예에 따른 컴퓨팅 시스템의 펌웨어 관리 방법은 제1 펌웨어 이미지, 제2 펌웨어 이미지, 제1 펌웨어 이미지를 포함하는 제1 전자 장치의 제1 모델 정보, 및 제2 펌웨어 이미지를 포함하는 제2 전자 장치의 제2 모델 정보를 수신하는 단계, 제1 모델 정보에 기초하여, 복수의 코드사이너 버전 중 제1 코드 사이너 버전을 선택하고, 제2 모델 정보에 기초하여 복수의 코드사이너 버전 중 제2 코드사이너 버전을 선택하는 단계, 제1 펌웨어 이미지 및 제2 펌웨어 이미지를 외부 하드웨어 보안 모듈(Hardware Security Module)로 전송하는 단계, 외부 하드웨어 보안 모듈로부터 및 제1 펌웨어 이미지를 기반으로 생성된 제1 서명 및 제2 펌웨어 이미지를 기반으로 생성되는 제2 서명을 수신하는 단계, 및 제1 코드사이너 버전에 기초하여, 제1 서명 및 제1 펌웨어 이미지가 결합된 서명된 제2 펌웨어 이미지를 생성하고, 제2 코드사이너 버전에 기초하여, 제2 서명 및 제2 펌웨어 이미지가 결합된 서명된 제2 펌웨어 이미지를 생성하는 단계를 포함하다.A method for managing a firmware of a computing system according to an embodiment of the present invention includes a first firmware image, a second firmware image, a first model information of a first electronic device including a first firmware image, and a second firmware image including a
본 발명의 실시 예에 따른 컴퓨팅 시스템은 전자 장치의 모델 정보에 기초하여, 복수의 코드사이너 버전 중 하나를 선택하고, 펌웨어 이미지 및 전자 장치의 공개키를 이용하여 생성된 서명을 외부 하드웨어 보안 모듈(Hardware Security Module)로부터 수신하고, 선택된 코드사이너 버전을 기반으로 수신된 서명 및 펌웨어 이미지를 결합하여 서명된 펌웨어 이미지를 생성하도록 구성되는 프로세서, 및 복수의 코드사이너 버전을 저장하도록 구성되는 메모리를 포함한다.The computing system according to the embodiment of the present invention selects one of a plurality of code snubber versions based on the model information of the electronic device and transmits the signature generated using the firmware image and the public key of the electronic device to the external hardware security module A processor configured to receive from a Hardware Security Module and combine the received signature and firmware images based on the selected code snoder version to generate a signed firmware image; and a memory configured to store a plurality of code sniper versions .
이와 같은 본 발명의 실시 예에 따르면, 펌웨어 업데이트 시에 높은 보안성, 및 안정성을 갖는 위한 컴퓨팅 시스템, 및 그것의 펌웨어 관리 방법을 제공할 수 있다.According to the embodiments of the present invention as described above, a computing system and a firmware management method thereof for providing high security and stability at the time of firmware update can be provided.
도 1은 본 발명의 실시 예에 따른 키를 생성하기 위해 사용자와 통신하는 펌웨어 업데이트 시스템을 보여주기 위한 블록도이다.
도 2는 본 발명의 실시 예에 따른 복수의 사용자 각각에 대한 키를 생성하는 펌웨어 업데이트 시스템을 보여주기 위한 블록도이다.
도 3은 본 발명의 실시 예에 따른 사용자에 대한 복수의 키를 생성하는 펌웨어 업데이트 시스템을 보여주기 위한 블록도이다.
도 4는 본 발명의 실시 예에 따른 서명된 펌웨어 이미지를 생성하기 위해 사용자와 통신하는 펌웨어 업데이트 시스템을 보여주기 위한 블록도이다.
도 5는 본 발명의 실시 예에 따른 전자 장치의 펌웨어 업데이트 방법을 보여주기 위한 블록도이다.
도 6은 도 1의 컴퓨팅 시스템을 예시적으로 보여주기 위한 블록도이다.
도 7은 도 1의 컴퓨팅 시스템의 공개키를 제공하는 방법을 간략하게 보여주기 위한 순서도이다.
도 8은 도 1의 펌웨어 업데이트 시스템의 공개키를 생성하는 방법을 보여주기 위한 순서도이다.
도 9는은 도 4의 컴퓨팅 시스템을 예시적으로 보여주기 위한 블록도이다.
도 10은 도 4의 컴퓨팅 시스템의 서명된 펌웨어 이미지를 생성하는 방법을 보여주기 위한 순서도이다.
도 11은 도 1의 펌웨어 업데이트 시스템의 서명된 펌웨어 이미지를 생성하는 방법을 보여주기 위한 순서도이다.
도 10은 도 1의 펌웨어 업데이트 시스템의 서명된 펌웨어 이미지를 생성하는 방법을 보여주기 위한 순서도이다.
도 13은 본 발명의 실시 예에 따른 컴퓨팅 시스템에서 생성되는 서명된 펌웨어 이미지를 예시적으로 보여주기 위한 개념도이다.1 is a block diagram illustrating a firmware update system in communication with a user to generate a key according to an embodiment of the present invention.
2 is a block diagram illustrating a firmware update system for generating a key for each of a plurality of users in accordance with an embodiment of the present invention.
3 is a block diagram illustrating a firmware update system for generating a plurality of keys for a user according to an embodiment of the present invention.
4 is a block diagram illustrating a firmware update system that communicates with a user to generate a signed firmware image in accordance with an embodiment of the present invention.
5 is a block diagram illustrating a firmware update method of an electronic device according to an embodiment of the present invention.
Figure 6 is a block diagram illustrating an exemplary computing system of Figure 1;
FIG. 7 is a flowchart for schematically illustrating a method of providing a public key of the computing system of FIG. 1; FIG.
8 is a flowchart illustrating a method of generating a public key of the firmware update system of FIG.
Figure 9 is a block diagram illustrating an exemplary system of the computing system of Figure 4;
10 is a flowchart for illustrating a method for generating a signed firmware image of the computing system of FIG.
FIG. 11 is a flowchart illustrating a method for generating a signed firmware image of the firmware update system of FIG. 1; FIG.
10 is a flowchart illustrating a method for generating a signed firmware image of the firmware update system of FIG.
13 is a conceptual diagram illustrating an exemplary signed firmware image generated in a computing system according to an embodiment of the present invention.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.In the following, embodiments of the present invention will be described in detail and in detail so that those skilled in the art can easily carry out the present invention.
도 1은 본 발명의 실시 예에 따른 키를 생성하기 위해 사용자와 통신하는 펌웨어 업데이트 시스템을 보여주기 위한 블록도이다. 도 1을 참조하면, 펌웨어 업데이트 시스템(100)은 컴퓨팅 시스템(110), 및 하드웨어 보안 모듈(120)을 포함할 수 있다. 1 is a block diagram illustrating a firmware update system in communication with a user to generate a key according to an embodiment of the present invention. Referring to FIG. 1, the
컴퓨팅 시스템(110)은 사용자(10)와 통신할 수 있다. 컴퓨팅 시스템(110)은 사용자(10)로부터 키 요청(K_REQ)을 수신할 수 있다. 키 요청(K_REQ)에 의해, 사용자 키가 생성될 수 있다. 예로서, 사용자 키는 공개키(Public Key, PUBK), 및 비밀키(Private Key, PRIK)를 포함할 수 있다. 이때, 사용자(10)는 펌웨어 이미지를 설계하고 업데이트할 수 있는 권한을 가진 엔지니어일 수 있다. 컴퓨팅 시스템(110)은 사용자(10)로부터 수신한 키 요청(K_REQ)을 하드웨어 보안 모듈(120)로 전송할 수 있다. 예로서, 컴퓨팅 시스템(110)은 데스크탑 컴퓨터, 랩탑 컴퓨터, 워크스테이션, 및 서버 시스템 중 하나로 구현될 수 있다. The
하드웨어 보안 모듈(120)은 컴퓨팅 시스템(110)으로부터 키 요청(K_REQ)을 수신할 수 있다. 하드웨어 보안 모듈(120)은 키 생성 유닛(121)을 포함할 수 있다. 키 생성 유닛(121)은 키 요청(K_REQ)을 기반으로 공개키(PUBK) 및 비밀키(PRIK)를 생성할 수 있다. 공개키(PUBK) 및 비밀키(PRIK)는 키 생성 유닛(121)의 키 생성 알고리즘에 의해 생성될 수 있다. The
키 생성 유닛(121)은 키 생성 알고리즘을 구동하기 위한 하드웨어 기능 블록(Intellectual Property, IP)으로 구현될 수 있다. 또는, 키 생성 유닛(121)은 하드웨어 보안 모듈(120)에서 키 생성 알고리즘에 따라 구동되는 소프트웨어 모듈로 제공될 수 있다. 키 생성 유닛(121)은 생성된 공개키(PUBK)를 컴퓨팅 시스템(110)으로 전송할 수 있다. 그리고, 키 생성 유닛(121)은 생성된 공개키(PUBK) 및 비밀키(PRIK)를 보안 스토리지(122)에 저장할 수 있다. The
또는, 키 생성 유닛(121)은 공개키(PUBK)를 기반으로 하는 인증서(Certificate, 이하: CER)를 생성할 수 있다. 인증서(CER)는 공개키(PUBK)를 포함하고, 비밀키(PRIK)를 기반으로 생성되는 서명의 부팅(booting) 횟수에 대한 정보를 포함할 수 있다. Alternatively, the
보안 스토리지(122)는 공개키(PUBK) 및 비밀키(PRIK)를 저장하기 위한 메모리이다. 서명 알고리즘의 실행 시 사용되는 비밀키(PRIK)는 외부의 접속에 대해 보호될 수 있다. 이를 위해, 공개키(PUBK) 및 비밀키(PRIK)는 외부에 의해서 자유롭게 접근되기 어려운 보안 기능을 갖는 보안 스토리지(122)에 저장될 수 있다. The
컴퓨팅 시스템(110)은 수신된 공개키(PUBK) 또는 인증서(CER)를 사용자(10)에게 전송할 수 있다. 사용자(10)는 수신된 공개키(PUBK) 또는 인증서(CER)를 전자 장치의 특정 영역에 저장할 수 있다. 전자 장치는 전자 결제, 지도, 카메라, 멀티미디어 재생, 인터넷, 근거리 무선 통신을 사용한 파일 공유 등의 다양한 응용 프로그램(Application program)을 구동할 수 있다. 뿐만 아니라, 전자 장치는 펌웨어를 통해서 응용 프로그램과는 독립적으로 하드웨어와 같이 구동될 수 있다. 저장 장치에 저장된 펌웨어는 안정된 성능과 버그 수정을 위해 제품의 출시 이후에도 새로운 버전으로 업데이트될 수 있다. 전자 장치의 펌웨어 업데이트는 서명된 펌웨어 이미지(S_FIMG)를 이용하여 수행될 수 있다. 이에 대해서는 도 3을 참조하여 자세히 설명된다. The
도 1에서 한 명의 사용자(10)가 도시되었지만, 사용자들은 두 명 이상일 수 있다. 그리고, 사용자들이 두 명 이상인 경우, 펌웨어 업데이트 시스템(100)은 사용자들 각각의 공개키(PUBK) 및 비밀키(PRIK)를 생성할 수 있다. 펌웨어 업데이트 시스템(100)은 사용자들 각각의 공개키(PUBK) 및 비밀키(PRIK)를 관리하는 서비스를 제공할 수 있다. 이에 대해서는 도 2를 참조하여 자세히 설명될 것이다.Although one
도 2는 본 발명의 실시 예에 따른 복수의 사용자 각각에 대한 키를 생성하는 펌웨어 업데이트 시스템을 보여주기 위한 블록도이다. 도 2를 참조하면, 펌웨어 업데이트 시스템(100a)은 컴퓨팅 시스템(110a), 및 하드웨어 보안 모듈(120a)을 포함할 수 있다. 도 2에 도시된 펌웨어 업데이트 시스템(100a)은 도 1에 도시된 펌웨어 업데이트 시스템(100)과 유사 또는 동일하다. 다만, 도 2에 도시된 펌웨어 업데이트 시스템(100)은 복수의 사용자(10a~11a)로부터 각각 키 요청들(K_REQ1, 및 K_REQ2)을 수신할 수 있다.2 is a block diagram illustrating a firmware update system for generating a key for each of a plurality of users in accordance with an embodiment of the present invention. Referring to FIG. 2, the
좀 더 구체적으로, 컴퓨팅 시스템(110a)은 복수의 사용자(10a~11a)로부터 각각 키 요청들(K_REQ1, 및 K_REQ2)을 수신할 수 있다. 그리고, 컴퓨팅 시스템(110a)은 수신된 키 요청들(K_REQ1, 및 K_REQ2)을 하드웨어 보안 모듈(120a)로 전송할 수 있다.More specifically,
하드웨어 보안 모듈(120a)은 컴퓨팅 시스템(110a)으로부터 키 요청들(K_REQ1, 및 K_REQ2)을 수신할 수 있다. 하드웨어 보안 모듈(120a)은 키 생성 유닛(121a) 및 보안 스토리지(122a)를 포함할 수 있다. 키 생성 유닛(121a)은 키 요청들(K_REQ1, 및 K_REQ2)을 기반으로 복수의 사용자(10a~11a) 각각에 대한 공개키(PUBK) 및 비밀키(PRIK)를 생성할 수 있다. 좀 더 구체적으로, 키 생성 유닛(121a)은 제1 키 요청(K_REQ1)을 기반으로 제1 사용자(10a)에 대한 제1 공개키(PUBK1) 및 제1 비밀키(PRIK1)을 생성할 수 있다. 그리고, 키 생성 유닛(121a)은 제2 키 요청(K_REQ2)을 기반으로 제m 사용자(11a)에 대한 제2 공개키(PUBK2) 및 제2 비밀키(PRIK2)을 생성할 수 있다. 예로서, 제1 공개키(PUBK1) 및 제1 비밀키(PRIK1)와 제2 공개키(PUBK2) 및 제2 비밀키(PRIK2)는 서로 다른 키 생성 알고리즘에 의해 생성될 수 있다.
키 생성 유닛(121a)은 컴퓨팅 시스템(110a)으로 제1 및 제2 공개키(PUBK1, 및 PUBK2)를 제공할 수 있다. 그리고, 키 생성 유닛(121a)은 생성된 제1 및 제2 공개키(PUBK1, 및 PUBK2)와 제1 및 제2 비밀키(PRIK1, 및 PRIK2)를 보안 스토리지(122a)에 저장할 수 있다. 또는, 키 생성 유닛(121a)은 제1 공개키(PUBK1)를 기반으로 하는 제1 인증서(CER1), 및 제2 공개키(PUBK2)를 기반으로 하는 제2 인증서(CER2)를 생성할 수 있다. 보안 스토리지(122a)는 1 및 제2 공개키(PUBK1, 및 PUBK2)와 제1 및 제2 비밀키(PRIK1, 및 PRIK2)를 저장하기 위한 메모리이다. 보안 스토리지(122a)는 외부에 의해서 자유롭게 접근되기 어려운 보안 기능을 가질 수 있다.The
컴퓨팅 시스템(110a)은 제1 공개키(PUBK1) 또는 제1 인증서(CER1)를 제1 사용자(10a)에게 전송할 수 있다. 그리고, 컴퓨팅 시스템(110a)은 제2 공개키(PUBK2) 또는 제2 인증서(CER2)를 제m 사용자(11a)에게 전송할 수 있다. 제1 사용자(10a) 및 제m 사용자(11a)는 제1 공개키(PUBK1) 또는 제1 인증서(CER1)와 제2 공개키(PUBK2) 또는 제2 인증서(CER2)를 서로 다른 전자 장치에 각각 저장할 수 있다. The
도 1 및 도 2는 한 명의 사용자 당 하나의 공개키(PUBK) 및 비밀키(PRIK)를 생성하는 기술에 대해 개시하고 있다. 하지만 본 발명은 이에 한정되지 않고, 한 명의 사용자는 복수의 공개키(PUBK) 및 비밀키(PRIK)를 생성할 수 있다. 이에 대해서는 도 3을 참조하여 자세히 설명된다.Figures 1 and 2 disclose a technique for generating one public key (PUBK) and a secret key (PRIK) per user. However, the present invention is not limited to this, and one user can generate a plurality of public keys (PUBK) and secret key (PRIK). This will be described in detail with reference to FIG.
도 3은 본 발명의 실시 예에 따른 사용자에 대한 복수의 키를 생성하는 펌웨어 업데이트 시스템을 보여주기 위한 블록도이다. 도 3을 참조하면, 펌웨어 업데이트 시스템(100b)은 컴퓨팅 시스템(110b), 및 하드웨어 보안 모듈(120b)을 포함할 수 있다. 도 3에 도시된 펌웨어 업데이트 시스템(100b)은 도 1에 도시된 펌웨어 업데이트 시스템(100)과 유사 또는 동일하다. 다만, 도 3에 도시된 펌웨어 업데이트 시스템(100b)은 한 명의 사용자(10)에 대한 복수의 공개키(PUBK1, 및 PUBK2) 및 복수의 비밀키(PRIK1, 및 PRIK2)를 생성할 수 있다.3 is a block diagram illustrating a firmware update system for generating a plurality of keys for a user according to an embodiment of the present invention. Referring to FIG. 3, the
좀 더 구체적으로, 컴퓨팅 시스템(110b)은 사용자(10)로부터 키 요청(K_REQ)을 수신할 수 있다. 그리고, 컴퓨팅 시스템(110b)은 수신된 키 요청(K_REQ)을 하드웨어 보안 모듈(120b)로 전송할 수 있다.More specifically, the
하드웨어 보안 모듈(120b)은 컴퓨팅 시스템(110b)으로부터 키 요청(K_REQ)을 수신할 수 있다. 하드웨어 보안 모듈(120b)은 키 생성 유닛(121b) 및 보안 스토리지(122b)를 포함할 수 있다. 키 생성 유닛(121b)은 키 요청(K_REQ)을 기반으로 사용자(10)에 대한 공개키(PUBK) 및 비밀키(PRIK)를 생성할 수 있다. 좀 더 구체적으로, 키 생성 유닛(121b)은 키요청(K_REQ)을 기반으로 사용자(10)에 대한 제1 공개키(PUBK1) 및 제1 비밀키(PRIK1), 그리고 제2 공개키(PUBK2) 및 제2 비밀키(PRIK2)을 생성할 수 있다. 예로서, 제1 공개키(PUBK1) 및 제1 비밀키(PRIK1)와 제2 공개키(PUBK2) 및 제2 비밀키(PRIK2)는 서로 다른 키 생성 알고리즘에 의해 생성될 수 있다. The
키 생성 유닛(121b)은 컴퓨팅 시스템(110b)으로 제1 및 제2 공개키(PUBK1, 및 PUBK2)를 제공할 수 있다. 그리고, 키 생성 유닛(121b)은 생성된 제1 및 제2 공개키(PUBK1, 및 PUBK2)와 제1 및 제2 비밀키(PRIK1, 및 PRIK2)를 보안 스토리지(122a)에 저장할 수 있다. 또는, 키 생성 유닛(121b)은 제1 공개키(PUBK1)를 기반으로 하는 제1 인증서(CER1), 및 제2 공개키(PUBK2)를 기반으로 하는 제2 인증서(CER2)를 생성할 수 있다. 보안 스토리지(122b)는 제1 및 제2 공개키(PUBK1, 및 PUBK2)와 제1 및 제2 비밀키(PRIK1, 및 PRIK2)를 저장하기 위한 메모리이다. 보안 스토리지(122b)는 외부에 의해서 자유롭게 접근되기 어려운 보안 기능을 가질 수 있다.The
컴퓨팅 시스템(110b)은 제1 공개키(PUBK1) 또는 제1 인증서(CER1) 그리고, 제2 공개키(PUBK2) 또는 제2 인증서(CER2)를 사용자(10)에게 전송할 수 있다. 사용자(10)는 제1 공개키(PUBK1) 또는 제1 인증서(CER1)와 제2 공개키(PUBK2) 또는 제2 인증서(CER2)를 서로 다른 전자 장치에 각각 저장할 수 있다. The
도 4는 본 발명의 실시 예에 따른 서명된 펌웨어 이미지를 생성하기 위해 사용자와 통신하는 펌웨어 업데이트 시스템을 보여주기 위한 블록도이다. 도 1 및 도 4를 참조하면, 컴퓨팅 시스템(110)은 사용자(10)로부터 펌웨어 이미지(firmware image, 이하: F_IMG), 및 모델 정보(Model Information, 이하: MOD_INF)를 제공받을 수 있다. 모델 정보(MOD_INF)는 공개키(PUBK)가 저장된 전자 장치에 대한 제품 정보일 수 있다. 컴퓨팅 시스템(110)은 서명(Signature, 이하: SIG)을 생성하기 위해, 하드웨어 보안 모듈(120)로 펌웨어 이미지(F_IMG)를 전송할 수 있다. 4 is a block diagram illustrating a firmware update system that communicates with a user to generate a signed firmware image in accordance with an embodiment of the present invention. 1 and 4, the
하드웨어 보안 모듈(120)은 펌웨어 이미지(F_IMG)를 기반으로 서명(SIG)을 생성하기 위한 서명 생성 유닛(123)을 포함할 수 있다. 하드웨어 보안 모듈(120)은 보안 스토리지(122)로부터 수신된 펌웨어 이미지(F_IMG)에 대한 비밀키(PRIK)를 읽어올 수 있다. 그리고, 하드웨어 보안 모듈(120)은 펌웨어 이미지(F_IMG)로부터 해쉬 값을 생성할 수 있다. The
하드웨어 보안 모듈(120)은 서명 생성 알고리즘을 통해 서명(SIG)을 생성할 수 있다. 서명(SIG)은 해쉬 값 및 비밀키(PRIK)를 기반으로 생성될 수 있다. 서명 생성 유닛(123)은 서명 생성 알고리즘을 구동하기 위한 하드웨어 기능 블록(IP)으로 구현될 수 있다. 또는, 서명 생성 유닛(123)은 하드웨어 보안 모듈(120)에서 서명 생성 알고리즘에 따라 구동되는 소프트웨어 모듈로 제공될 수 있다. 하드웨어 보안 모듈(120)은 생성된 서명(SIG)을 컴퓨팅 시스템(110)으로 전송할 수 있다. The
컴퓨팅 시스템(110)의 서명된 펌웨어 이미지 생성 유닛(111)은 하드웨어 보안 모듈(120)로부터 서명(SIG)을 수신할 수 있다. 그리고, 서명된 펌웨어 이미지 생성 유닛(111)은 사용자(10)로부터 모델 정보(MOD_INF)를 수신할 수 있다. 서명된 펌웨어 이미지 생성 유닛(111)은 모델 정보(MOD_INF)를 기반으로 코드사이너(Codesigner)의 버전을 선택할 수 있다. The signed firmware
코드사이너는 코드사이너 알고리즘을 기반으로, 펌웨어 이미지(F_IMG)와 서명(SIG)을 결합할 수 있다. 펌웨어 이미지 생성 유닛(111)은 선택된 코드사이너를 기반으로 펌웨어 이미지(F_IMG)와 서명(SIG)을 결합할 수 있다. 서명된 펌웨어 이미지 생성 유닛(111)은 선택된 코드사이너에 기초하여 펌웨어 이미지(F_IMG)와 서명(SIG)를 결합하여 서명된 펌웨어 이미지(S_FIMG)를 생성할 수 있다. CodeSigner can combine a firmware image (F_IMG) with a signature (SIG), based on a code snippet algorithm. The firmware
서명된 펌웨어 이미지 생성 유닛(111)은 코드사이너 알고리즘을 구동하기 위한 하드웨어 기능 블록(IP)으로 구현될 수 있다. 또는, 서명된 펌웨어 이미지 생성 유닛(111)은 하드웨어 보안 모듈(120)에서 코드사이너 알고리즘에 따라 구동되는 소프트웨어 모듈로 제공될 수 있다. 컴퓨팅 시스템(110)은 서명된 펌웨어 이미지(S_FIMG)를 사용자(10)에게 전송할 수 있다. The signed firmware
본 발명은 이에 한정되지 않고, 도 2 내지 도 4를 참조하면, 펌웨어 업데이트 시스템(100, 및 100a)은 복수의 사용자(10a~11a)로부터 펌웨어 이미지를 수신하고, 복수의 사용자(10a~11a)각각에 대한 서명된 펌웨어 이미지를 생성할 수 있다. 또는 펌웨어 업데이트 시스템(100, 및 100b)은 사용자(10)로부터 서로 다른 저장 장치에 대한 복수의 펌웨어 이미지를 수신하고, 복수의 펌웨어 이미지 각각에 대한 서명된 펌웨어 이미지를 생성할 수 있다. 펌웨어 업데이트 시스템(100, 100a, 및 100b)의 서명된 펌웨어 이미지(S_FIMG)를 생성하는 방법은 도 9 내지 도 13을 참조하여 설명된다. 2 to 4, the
도 5는 본 발명의 실시 예에 따른 전자 장치의 펌웨어 업데이트 방법을 보여주기 위한 블록도이다. 도 1, 도 2 및 도 5를 참조하면, 사용자(10)는 컴퓨팅 시스템(110)으로부터 사용자(10)에 대한 공개키(PUBK), 또는 인증서(CER)를 수신할 수 있다. 공개키(PUBK), 또는 인증서(CER)는 전자 장치(20)의 메모리(21)에 저장될 수 있다. 예로서, 메모리(21)는 컴팩트 플래시 카드(CF), 스마트 미디어 카드(Smart Media Card), 메모리 스틱(Memory Stick), 멀티미디어 카드(Multi Media Card, MMC)(RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), USB (Universal Serial Bus) 메모리 카드, 유니버설 플래시 스토리지(Universal Flash Storage, UFS), 및 임베디드 멀티미디어 카드(embedded Multi Media Card, eMMC) 등과 같은 메모리 카드들에 구현될 수 있다. 5 is a block diagram illustrating a firmware update method of an electronic device according to an embodiment of the present invention. 1, 2 and 5, the
공개키(PUBK), 또는 인증서(CER)는 사용자(10)에 의해 메모리(21)에 저장될 수 있다. 또는, 공개키(PUBK), 또는 인증서(CER)는 메모리(21)의 제조사로 제공되고, 제조사는 메모리(21)의 제조 단계에서 공개키(PUBK), 또는 인증서(CER)를 메모리(21)에 저장할 수 있다. 공개키(PUBK), 또는 인증서(CER)는 메모리(21)의 제1 부트 로더(21_1)에 저장될 수 있다.The public key PUBK or the certificate CER may be stored in the
사용자(10)는 컴퓨팅 시스템(110)으로부터 서명된 펌웨어 이미지(S_FIMG)를 수신할 수 있다. 사용자(10)는 서명된 펌웨어 이미지(S_FIMG)를 전자 장치(20)의 메모리(21)에 저장할 수 있다. 서명된 펌웨어 이미지(S_FIMG)는 메모리(21)의 제2 내지 제4 부트 로더들(21_2~21_4) 중 하나로 업데이트될 수 있다. 예로서, 제2 내지 제4 부트 로더들(21_2~21_4) 각각에 포함된 펌웨어 이미지 중, 업데이트를 요구하는 펌웨어 이미지가 있는 경우, 사용자(10)는 새로운 펌웨어 이미지를 펌웨어 업데이트 시스템(100)을 통해 서명할 수 있다. 그리고, 사용자(10)는 서명된 펌웨어 이미지(S_FIMG)를 제2 내지 제4 부트 로더들(21_2~21_4) 중 하나로 업데이트할 수 있다. 예로서, 사용자(10)는 제2 부트 로더(21_2)에 서명된 펌웨어 이미지(S_FIMG)를 업데이트한 것으로 가정한다.The
제1 부트 로더(21_1)에 공개키(PUBK)가 저장되어 있는 경우, 공개키(PUBK)를 기반으로 제2 부트 로더(21_2)의 서명된 펌웨어 이미지(S_FIMG)가 인증될 수 있다. 좀 더 구체적으로, 전자 장치(20)는 공개키(PUBK)를 기반으로 서명된 펌웨어 이미지(S_FIMG)에 포함된 서명(SIG)을 검증할 수 있다. 만약, 제1 부트 로더(21_1)에 인증서(CER)이 저장되어 있는 경우, 제2 부트 로더(21_2)에 업데이트된 서명된 펌웨어 이미지(S_FIMG)의 부팅 횟수가 제한될 수 있다. When the public key PUBK is stored in the first boot loader 21_1, the signed firmware image S_FIMG of the second boot loader 21_2 can be authenticated based on the public key PUBK. More specifically, the
검증 동작에 의해, 서명된 펌웨어 이미지(S_FIMG)에 결함이 존재하거나, 인증이 실패하는 경우, 전자 장치(20)는 검증 페일 메시지를 사용자(10)에게 제공할 수 있다. 그러면, 사용자(10)는 서명된 펌웨어 이미지(S_FIMG)를 폐기하거나, 새로운 펌웨어 이미지에 대한 서명(SIG)을 펌웨어 업데이트 시스템(100)에 요청할 수 있다. 반면, 전자 장치(20)로부터 서명된 펌웨어 이미지(S_FIMG)의 검증이 패스하는 경우, 제2 부트 로더(21_2)의 부팅 절차가 진행될 수 있다. The
도 6은 도 1의 컴퓨팅 시스템을 예시적으로 보여주기 위한 블록도이다. 도 1 및 도 6을 참조하면, 컴퓨팅 시스템(110)은 사용자 인터페이스(112), 하드웨어 보안 모듈 인터페이스(114), 프로세서(116), 메모리(118), 및 시스템 인터커넥터(119)를 포함할 수 있다. 본 발명은 이에 한정되지 않고, 도 2 및 도 3에 도시된 컴퓨팅 시스템(110a, 및 110b)은 도 6에 도시된 컴퓨팅 시스템(110)과 동일하게 구현될 수 있다. Figure 6 is a block diagram illustrating an exemplary computing system of Figure 1; 1 and 6, a
컴퓨팅 시스템(110)은 사용자 인터페이스(112)를 통해 사용자(10)와 통신할 수 있다. 사용자 인터페이스(112)는 사용자(10)로부터 키 요청(K_REQ)을 수신할 수 있다. 사용자 인터페이스(112)는 수신된 키 요청(K_REQ)을 하드웨어 보안 모듈 인터페이스(114)로 전송할 수 있다. The
사용자 인터페이스(112)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 및 마이크와 같은 사용자 입력 인터페이스를 포함할 수 있다. 그리고, 사용자 인터페이스(112)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diode) 표시장치, AMOLED(Active Matrix OLED) 표시장치, LED, 스피커, 및 모터와 같은 사용자 출력 인터페이스를 포함할 수 있다. The
컴퓨팅 시스템(110)은 하드웨어 보안 모듈 인터페이스(114)를 통해 하드웨어 보안 모듈(120)과 인터페이스를 가질 수 있다. 하드웨어 보안 모듈 인터페이스(114)는 키 요청(K_REQ)을 하드웨어 보안 모듈(120)로 전송할 수 있다. 그리고, 하드웨어 보안 모듈 인터페이스(114)는 하드웨어 보안 모듈(120)로부터 키 요청(K_REQ)에 의해 생성된 공개키(PUBK)를 수신할 수 있다. 하드웨어 보안 모듈 인터페이스(114)는 공개키(PUBK)를 사용자 인터페이스(112)로 전송할 수 있다. The
하드웨어 보안 모듈 인터페이스(114)는 LTE (Long Term Evolution), 와이맥스(WiMax), GSM (Global System for Mobile communication), CDMA (Code Division Multiple Access), 블루투스(Bluetooth), NFC (Near Field Communication), 와이파이(Wi-Fi), RFID (Radio Frequency Identification) 등과 같은 다양한 통신 방법들 중 적어도 하나를 이용하여 하드웨어 보안 모듈(120)과 통신하도록 구성될 수 있다.The hardware
프로세서(116)는 컴퓨팅 시스템(110)에서 수행될 소프트웨어(응용 프로그램, 운영 체제, 장치 드라이버들)를 실행한다. 프로세서(116)는 운영 체제(OS) 기반에서 구동될 다양한 응용 프로그램들(Application Program)을 실행할 수 있다. 특히, 프로세서(116)는 서명된 펌웨어 이미지(S_FIMG)를 생성할 수 있다. 프로세서(116)의 동작은 도 7을 참조하여 자세히 설명된다. The
메모리(118)는 불휘발성 메모리(Non-volatile memory)를 포함할 수 있다. 예로서, 메모리(118)는 PRAM(Phase-change Random Access Memory), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), 및 FRAM(Ferro-electric RAM) 등과 같은 다양한 불휘발성 메모리 중 하나 이상을 포함할 수 있다. 추가로, 메모리(118)는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리를 더 포함할 수 있다. 메모리(118)는 코드사이너 버전들에 대한 정보를 포함할 수 있다. 메모리(118)에 저장된 코드사이너 버전들에 대해서는 도 7을 참조하여 자세히 설명된다.The
시스템 인터커넥터(119)는 컴퓨팅 시스템(110) 내부에서 온 칩(On-Chip) 네트워크를 제공하기 위한 시스템 버스(System Bus)이다. 예로서, 시스템 인터커넥터(119)는 데이터 버스(Data Bus), 어드레스 버스(Address Bus), 및 컨트롤 버스(Control Bus)를 포함할 수 있다. 데이터 버스는 데이터의 이동 경로이다. 어드레스 버스는 기능 블록들(IP) 간의 어드레스 교환 경로를 제공한다. 컨트롤 버스는 기능 블록들(IP) 간의 제어 신호를 전달하는 경로를 제공한다. 하지만, 시스템 인터커넥터(119)의 구성은 상술한 설명에만 국한되지 않으며, 효율적인 관리를 위한 중재 수단들을 더 포함할 수 있다. The
도 7은 도 1의 컴퓨팅 시스템의 공개키를 제공하는 방법을 간략하게 보여주기 위한 순서도이다. 도 1 및 도 7을 참조하면, S110 단계에서, 컴퓨팅 시스템(110)은 사용자(10)로부터 키 요청(K_REQ)을 수신할 수 있다. S120 단계에서, 컴퓨팅 시스템(110)은 하드웨어 보안 모듈(120)로 키 요청(K_REQ)을 전송할 수 있다.FIG. 7 is a flowchart for schematically illustrating a method of providing a public key of the computing system of FIG. 1; FIG. Referring to Figures 1 and 7, in step S110, the
S130 단계에서, 컴퓨팅 시스템(110)은 하드웨어 보안 모듈(120)로부터 키 요청(K_REQ)에 의해 생성된 공개키(PUBK)를 수신할 수 있다. S140 단계에서 컴퓨팅 시스템(110)은 사용자(10)에게 공개키(PUBK)를 전송할 수 있다. 공개키(PUBK)의 생성 및 전달 방법은 도 8을 참조하여 좀 더 자세히 설명된다. In operation S 130, the
도 8은 도 1의 펌웨어 업데이트 시스템의 공개키를 생성하는 방법을 보여주기 위한 순서도이다. 도 1 및 도 8을 참조하면, S210 단계에서, 사용자(10)는 키 요청(K_REQ)을 컴퓨팅 시스템(110)으로 전송할 수 있다. S220 단계에서, 컴퓨팅 시스템(110)은 수신된 키 요청(K_REQ)을 하드웨어 보안 모듈(120)로 전송할 수 있다. 8 is a flowchart illustrating a method of generating a public key of the firmware update system of FIG. Referring to FIGS. 1 and 8, in step S210, the
S230 단계에서, 하드웨어 보안 모듈(120)은 수신된 키 요청(K_REQ)을 기반으로 사용자(10)에 대한 공개키(PUBK) 및 비밀키(PRIK)를 생성할 수 있다. S240 단계에서, 하드웨어 보안 모듈(120)은 생성된 공개키(PUBK) 및 비밀키(PRIK)를 보안 스토리지에 저장하고, 컴퓨팅 시스템(110)으로 공개키(PUBK)를 전송할 수 있다. S250 단계에서, 컴퓨팅 시스템(110)은 공개키(PUBK)를 사용자(10)에게 전송할 수 있다. 공개키(PUBK)는 펌웨어 이미지에 대한 서명 생성 과정에서 인증을 위한 수단으로 사용될 수 있다. In step S230, the
도 9는 도 4의 컴퓨팅 시스템을 예시적으로 보여주기 위한 블록도이다. 도 4, 도 6 및 도 9를 참조하면, 컴퓨팅 시스템(210)은 사용자 인터페이스(212), 하드웨어 보안 모듈 인터페이스(214), 프로세서(216), 메모리(218) 및 시스템 인터커넥터(219)를 포함할 수 있다. 도 9에 도시된 컴퓨팅 시스템(210)은 도 1, 내지 도 3에 도시된 컴퓨팅 시스템(110, 110a, 및 110b)과 유사 또는 동일할 수 있다. Figure 9 is a block diagram illustrating an exemplary system of the computing system of Figure 4; 4, 6 and 9, the
사용자 인터페이스(212)는 사용자(10)로부터 모델 정보(MOD_INF), 및 펌웨어 이미지(F_IMG)를 수신할 수 있다. 사용자 인터페이스(212)는 수신된 모델 정보(MOD_INF) 및 펌웨어 이미지(F_IMG)를 프로세서(216)로 전송할 수 있다. 그리고, 사용자 인터페이스(212)는 펌웨어 이미지(F_IMG)를 하드웨어 보안 모듈 인터페이스(214)로 전송할 수 있다. The
컴퓨팅 시스템(210)은 하드웨어 보안 모듈 인터페이스(214)를 통해 하드웨어 보안 모듈(120)과 인터페이스를 가질 수 있다. 하드웨어 보안 모듈 인터페이스(214)는 펌웨어 이미지(F_IMG)를 하드웨어 보안 모듈(120)로 전송할 수 있다. 그리고, 하드웨어 보안 모듈 인터페이스(214)는 하드웨어 보안 모듈(120)로부터 생성된 서명(SIG)을 수신할 수 있다. 하드웨어 보안 모듈 인터페이스(214)는 서명(SIG)을 프로세서(216)로 전송할 수 있다. The
프로세서(216)는 사용자 인터페이스(212)로부터 모델 정보(MOD_INF) 및 펌웨어 이미지(F_IMG)를 수신하고, 하드웨어 보안 모듈 인터페이스(214)로부터 서명(SIG)을 수신할 수 있다. 프로세서(216)는 펌웨어 이미지(F_IMG) 및 서명(SIG)을 결합하기 위한 서명된 펌웨어 이미지 생성 유닛(111)을 포함할 수 있다. 서명된 펌웨어 이미지 생성 유닛(111)은 펌웨어 이미지(F_IMG) 및 서명(SIG)을 결합하여 서명된 펌웨어 이미지(S_FIMG)를 생성할 수 있다. The
프로세서(216)는 메모리(218)에 저장된 코드사이너 버전들(218_1~218_3) 중 하나를 실행할 수 있다. 좀 더 구체적으로, 프로세서(216)는 모델 정보(MOD_INF)를 기반으로 코드사이너 버전을 선택할 수 있다. 모델 정보(MOD_INF)는 공개키(PUBK)가 저장된 전자 장치(20)의 제품 정보일 수 있다. 모델 정보(MOD_INF)가 제1 모델(MOD1)에 대한 정보인 경우, 프로세서(216)는 제1 코드사이너 버전(218_1)을 선택할 수 있고, 모델 정보(MOD_INF)가 제2 모델(MOD2)에 대한 정보인 경우, 프로세서(216)는 제2 코드사이너 버전(218_2)을 선택할 수 있다. 또는, 모델 정보(MOD_INF)가 제n 모델(MODn)에 대한 정보인 경우, 프로세서(216)는 제n 코드사이너 버전(218_3)을 선택할 수 있다. 즉, 전자 장치(20)의 모델의 종류에 따라 코드사이너의 버전이 선택될 수 있다.The
코드사이너 버전들(218_1~218_3) 각각은 서로 다른 코드사이너 알고리즘을 포함할 수 있다. 따라서, 코드사이너 버전들(218_1~218_3)에 따라 프로세서(216)는 서명된 펌웨어 이미지(S_FIMG)에 결합되는 서명(SIG)의 위치 및 크기를 조절할 수 있다. 프로세서(216)는 선택된 코드사이너 버전에 따라서 코드사이너 알고리즘을 실행할 수 있다. 예로서, 프로세서(216)가 제1 코드사이너 버전(218_1)을 선택한 것으로 가정한다. 프로세서(216)의 서명된 펌웨어 이미지 생성 유닛(111)은 제1 코드사이너 버전(218_1)의 실행해 의해서 서명된 펌웨어 이미지(S_FIMG)를 생성할 수 있다. 프로세서(216)는 사용자 인터페이스(212)를 통해 서명된 펌웨어 이미지(S_FIMG)를 사용자(10)에게 전송할 수 있다.Each of the code reader versions 218_1 through 218_3 may include a different code sniffer algorithm. Accordingly, the
메모리(218)에는 코드사이너 버전들(218_1~218_3)이 저장될 수 있다. 코드사이너 버전들(218_1~218_3) 각각은 전자 장치(20)의 모델 정보(MOD_INF)에 따라 선택될 수 있다. 즉, 동일한 모델의 전자 장치(20)에 대해서 동일한 코드사이너 버전이 선택될 것이다. In
본 발명의 실시 예에 따른 컴퓨팅 시스템(210)은 공개키(PUBK)와 함께 수신된 모델 정보(MOD_INF)에 따라 코드사이너 버전을 선택할 수 있다. 따라서, 컴퓨팅 시스템(210)은 전자 장치(20)의 모델 별로 서로 다른 코드사이너 알고리즘을 구동할 수 있다. 이로 인해, 서명된 펌웨어 이미지(S_FIMG)의 보안성이 향상될 수 있다. The
도 10은 도 4의 컴퓨팅 시스템의 서명된 펌웨어 이미지를 생성하는 방법을 보여주기 위한 순서도이다. 도 4, 도 9 및 도 10을 참조하면, S310 단계에서, 컴퓨팅 시스템(210)은 사용자(10)로부터 모델 정보(MOD_INF), 및 펌웨어 이미지(F_IMG)를 수신할 수 있다. S320 단계에서, 컴퓨팅 시스템(210)은 펌웨어 이미지(F_IMG)를 하드웨어 보안 모듈(120)로 전송할 수 있다. S330 단계에서, 컴퓨팅 시스템(210)은 하드웨어 보안 모듈(120)에서 생성된 서명(SIG)을 수신할 수 있다.10 is a flowchart for illustrating a method for generating a signed firmware image of the computing system of FIG. 4, 9, and 10, at step S310, the
S340 단계에서, 컴퓨팅 시스템(210)은 모델 정보(MOD_INF)에 기초하여 코드사이너 버전(CSN_V)을 선택할 수 있다. S350 단계에서, 컴퓨팅 시스템(210)은 펌웨어 이미지(F_IMG) 및 서명(SIG)에 기초하여 서명된 펌웨어 이미지(S_FIMG)를 생성할 수 있다. 예로서, 컴퓨팅 시스템(210)은 선택된 코드사이너 버전(CSN_V)에 기초하여 펌웨어 이미지(F_IMG) 및 서명(SIG)을 결합하여 서명된 펌웨어 이미지(S_FIMG)를 생성할 수 있다. S360 단계에서, 컴퓨팅 시스템(210)은 서명된 펌웨어 이미지(S_FIMG)를 사용자(10)에게 전송할 수 있다. 서명된 펌웨어 이미지(S_FIMG)의 생성 및 전달 방법은 도 9를 참조하여 좀 더 자세히 설명된다. In step S340, the
도 11은 도 1의 펌웨어 업데이트 시스템의 서명된 펌웨어 이미지를 생성하는 방법을 보여주기 위한 순서도이다. 도 5, 도 9, 도 10 및 도 11을 참조하면, S410 단계에서, 사용자(10)는 모델 정보(MOD_INF), 및 펌웨어 이미지(F_IMG)를 컴퓨팅 시스템(210)으로 전송할 수 있다. 모델 정보(MOD_INF)는 전자 장치(20)의 제품 정보를 포함하고, 펌웨어 이미지(F_IMG)는 전자 장치(20)에 업데이트되기 위해 서명을 필요로 할 수 있다. FIG. 11 is a flowchart illustrating a method for generating a signed firmware image of the firmware update system of FIG. 1; FIG. 5, 9, 10, and 11, in step S410, the
S420 단계에서, 컴퓨팅 시스템(210)은 펌웨어 이미지(F_IMG)를 하드웨어 보안 모듈(120)로 전송할 수 있다. S430 단계에서, 하드웨어 보안 모듈(120)은 펌웨어 이미지(F_IMG)에 기초하여 서명(SIG)을 생성할 수 있다. 예로서, 하드웨어 보안 모듈(120)은 펌웨어 이미지(F_IMG)로부터 해시를 생성한다. 그리고, 수신된 공개키(PUBK)에 대응하는 비밀키(PRIK)와 해시를 결합하여 서명(SIG)을 생성할 수 있다. S440 단계에서, 하드웨어 보안 모듈(120)은 서명(SIG)을 컴퓨팅 시스템(210)으로 전송할 수 있다.In operation S420, the
S450 단계에서, 컴퓨팅 시스템(210)은 모델 정보(MOD_INF)에 기초하여 코드사이너 버전(CSN_V)을 선택할 수 있다. S460 단계에서, 컴퓨팅 시스템(210)은 펌웨어 이미지(F_IMG) 및 서명(SIG)에 기초하여 서명된 펌웨어 이미지(S_FIMG)를 생성할 수 이 있다. 예로서, 컴퓨팅 시스템(210)은 선택된 코드사이너 버전(CSN_V)에 기초하여 펌웨어 이미지(F_IMG) 및 서명(SIG)을 결합하여 서명된 펌웨어 이미지(S_FIMG)를 생성할 수 있다. S470 단계에서, 컴퓨팅 시스템(210)은 서명된 펌웨어 이미지(S_FIMG)를 사용자(10)에게 전송할 수 있다. In step S450, the
도 12은 도 3의 펌웨어 업데이트 시스템의 서명된 펌웨어 이미지를 생성하는 방법을 보여주기 위한 순서도이다. 도 3 및 도 12를 참조하면, S505 단계에서, 사용자(10)는 모델 정보(MOD_INF), 제1 펌웨어 이미지(F_IMG1), 제1 키 정보(Key Information 1, KEY_INF1)를 컴퓨팅 시스템((110b)으로 전송할 수 있다. 제1 펌웨어 이미지(F_IMG1)는 제1 전자 장치에 업데이트 하기 위한 새로운 펌웨어 이미지일 수 있다. 그리고 제1 키 정보(KEY_INF1)는 제1 공개키(PUBK1)에 대한 정보일 수 있다. 도 3을 참조하면, 사용자(10)는 펌웨어 업데이트 시스템(100b)로부터 제1 및 제2 공개키(PUBK1, 및 PUBK2)를 제공 받았다. 그러므로, 사용자(10)는 제1 펌웨어 이미지(F_IMG1)가 업데이트 되는 제1 전자 장치에 포함된 공개키(예로서, 제1 공개키(PUBK1))에 대한 정보를 컴퓨팅 시스템(110b)에 제공해야 한다. S510 단계에서, 컴퓨팅 시스템((110b)은 모델 정보(MOD_INF)에 기초하여 코드사이너 버전(CSN_V)을 선택할 수 있다. Figure 12 is a flow chart illustrating a method for generating a signed firmware image of the firmware update system of Figure 3; 3 and 12, in step S505, the
S515 단계에서, 컴퓨팅 시스템((110b)은 제1 펌웨어 이미지(F_IMG1) 및 제1 키 정보(KEY_INF1)를 하드웨어 보안 모듈(120b)로 전송할 수 있다. S520 단계에서, 하드웨어 보안 모듈(120b)은 제1 펌웨어 이미지(F_IMG1) 및 제1 키 정보(KEY_INF1)에 기초하여 제1 서명(SIG1)을 생성할 수 있다. 좀 더 구체적으로, 제1 서명(SIG1)은 제1 펌웨어 이미지(F_IMG1)로부터 생성한 해시 및 제1 비밀키(PRIK1)를 결합하여 생성될 수 있다. S525 단계에서, 하드웨어 보안 모듈(120b)은 생성된 제1 서명(SIG1)을 컴퓨팅 시스템(110b)으로 전송할 수 있다. In step S515, the
S530 단계에서, 컴퓨팅 시스템(110b)은 제1 펌웨어 이미지(F_IMG1) 및 제1 서명(SIG)에 기초하여 서명된 제1 펌웨어 이미지(S_FIMG1)를 생성할 수 있다. 예로서, 컴퓨팅 시스템(110b)은 선택된 코드사이너 버전(CSN_V)에 기초하여 제1 펌웨어 이미지(F_IMG1) 및 제1 서명(SIG1)을 결합하여 서명된 제1 펌웨어 이미지(S_FIMG1)를 생성할 수 있다. S535 단계에서, 컴퓨팅 시스템(210)은 서명된 제1 펌웨어 이미지(S_FIMG1)를 사용자(10)에게 전송할 수 있다. In step S530, the
S540 단계에서, 사용자(10)는 모델 정보(MOD_INF), 제2 펌웨어 이미지(F_IMG2), 및 제2 키 정보(KEY_INF2) 를 컴퓨팅 시스템(110b)으로 전송할 수 있다. 제2 펌웨어 이미지(F_IMG2)는 제2 전자 장치)에 업데이트 하기 위한 새로운 펌웨어 이미지일 수 있다. 이때, 제1 전자 장치와 제2 전자 장치는 서로 다른 전자 장치 이다. 사용자(10)는 제2 펌웨어 이미지(F_IMG2)가 업데이트 되는 제2 전자 장치에 포함된 공개키(예로서, 제2 공개키(PUBK2))에 대한 정보를 컴퓨팅 시스템(110b)에 제공할 수 있다. In step S540, the
S545 단계에서, 컴퓨팅 시스템(110b)은 제2 펌웨어 이미지(F_IMG2) 를 하드웨어 보안 모듈(120b)로 전송할 수 있다. S550 단계에서, 하드웨어 보안 모듈(120b)은 제2 펌웨어 이미지(F_IMG2) 및 제2 키 정보(KEY_INF2)에 기초하여 제2 서명(SIG2)을 생성할 수 있다. 좀 더 구체적으로, 제2 서명(SIG2)은 제2 펌웨어 이미지(F_IMG2)로부터 생성한 해시 및 제2 비밀키(PRIK2)를 결합하여 생성될 수 있다. S555 단계에서, 하드웨어 보안 모듈(120b)은 생성된 제2 서명(SIG2)을 컴퓨팅 시스템(110b)으로 전송할 수 있다. In step S545, the
S560 단계에서, 컴퓨팅 시스템(110b)은 제2 펌웨어 이미지(F_IMG2) 및 제2 서명(SIG2)에 기초하여 서명된 제2 펌웨어 이미지(S_FIMG2)를 생성할 수 이 있다. 예로서, 컴퓨팅 시스템(110b)은 선택된 코드사이너 버전(CSN_V)에 기초하여 제2 펌웨어 이미지(F_IMG2) 및 제2 서명(SIG2)을 결합하여 서명된 제2 펌웨어 이미지(S_FIMG2)를 생성할 수 있다. S565 단계에서, 컴퓨팅 시스템(110b)은 서명된 제2 펌웨어 이미지(S_FIMG2)를 사용자(10)에게 전송할 수 있다. In step S560, the
도 12에는 도시되지 않았지만, 만약 제2 펌웨어 이미지(F_IMAG2)와 수신된 모델 정보(MOD_INF)와 제1 펌웨어 이미지(F_IMG1)와 수신된 모델 정보(MOD_INF)가 다른 경우, 컴퓨팅 시스템(110b)은 제2 펌웨어 이미지(F_IMAG2)와 수신된 모델 정보(MOD_INF)를 기반으로 새로운 코드사이너 버전(CSN_V)을 선택해야 한다. 그리고, 컴퓨팅 시스템(110b)은 새로운 코드사이너 버전(CSN_V)에 기초하여 제2 펌웨어 이미지(F_IMG2) 및 제2 서명(SIG2)을 결합하여 서명된 제2 펌웨어 이미지(S_FIMG2)를 생성할 수 있다.12, if the second firmware image F_IMAG2, the received model information MOD_INF, the first firmware image F_IMG1, and the received model information MOD_INF are different, the
도 13은 본 발명의 실시 예에 따른 컴퓨팅 시스템에서 생성되는 서명된 펌웨어 이미지를 예시적으로 보여주기 위한 개념도이다. 도 9, 및 도 13을 참조하면, 컴퓨팅 시스템(110(110a, 110b), 및 210)은 다양한 형태의 서명된 펌웨어 이미지들(S_FIMG A~S_FIMG C)을 생성할 수 있다. 서명된 펌웨어 이미지들(S_FIMG A~S_FIMG C) 각각은 도 13의 제1 내지 제3 섹션(section)들에 도시되어 있다. 13 is a conceptual diagram illustrating an exemplary signed firmware image generated in a computing system according to an embodiment of the present invention. 9 and 13, the computing systems 110 (110a, 110b), and 210 may generate various types of signed firmware images S_FIMG A through S_FIMG C. Each of the signed firmware images S_FIMG A to S_FIMG C is shown in the first to third sections of FIG.
컴퓨팅 시스템(110, 및 210)은 선택된 코드사이너 버전에 따라 서명된 펌웨어 이미지들(S_FIMG A~S_FIMG C) 중 하나를 선택할 수 있다. 예로서, 컴퓨팅 시스템(110, 및 210)이 제1 코드사이너 버전(CSN_V1)을 선택한 경우, 컴퓨팅 시스템(110 및 210)은 제1 섹션에 도시된 서명된 펌웨어 이미지(S_FIMG A)와 같이 펌웨어 이미지(F_IMG)와 서명(SIG)을 결합할 수 있다. 제1 섹션에 도시된 서명된 펌웨어 이미지(S_FIMG A)는 펌웨어 이미지(F_IMG), 서명의 크기 정보(SIG S_INF), 및 서명(SIG)의 순서로 결합될 수 있다. 서명의 크기 정보(SIG S_INF)는 서명(SIG)의 데이터 크기에 대한 정보를 포함할 수 있다. 제1 섹션에 도시된 서명된 펌웨어 이미지(S_FIMG A)는 결합된 순서대로 전자 장치(20)에서 파싱(parsing) 될 수 있다. 예로서, 전자 장치(20)는 펌웨어 이미지(F_IMG)부터 파싱을 시작(Parsing Start, 이하: PAR_S)하고, 서명(SIG)에서 파싱을 종료(Parsing End, 이하: PAR_E)할 수 있다.
컴퓨팅 시스템(110, 및 210)이 제2 코드사이너 버전(CSN_V2)을 선택한 경우, 컴퓨팅 시스템(110, 및 210)은 제2 섹션에 도시된 서명된 펌웨어 이미지(S_FIMG B)와 같이 펌웨어 이미지(F_IMG)와 서명(SIG)을 결합할 수 있다. 제2 섹션에 도시된 서명된 펌웨어 이미지(S_FIMG B)는 서명의 크기 정보(SIG S_INF), 서명(SIG), 및 펌웨어 이미지(F_IMG)의 순서로 결합될 수 있다. 제2 섹션에 도시된 서명된 펌웨어 이미지(S_FIMG B)는 결합된 순서대로 전자 장치(20)에서 파싱될 수 있다. 예로서, 전자 장치(20)는 서명의 크기 정보(SIG S_INF)부터 파싱을 시작(PAR_S)하고, 펌웨어 이미지(F_IMG)에서 파싱을 종료(PAR_E)할 수 있다. If the
컴퓨팅 시스템(110, 및 210)이 제3 코드사이너 버전(CSN_V3)을 선택한 경우, 컴퓨팅 시스템(110, 및 210)은 제3 섹션에 도시된 서명된 펌웨어 이미지(S_FIMG C)와 같이 펌웨어 이미지(F_IMG)와 서명(SIG)을 결합할 수 있다. 제3 섹션에 도시된 서명된 펌웨어 이미지(S_FIMG C)는 서명의 크기 정보(SIG S_INF), 서명(SIG), 제로 패딩(Zero Padding), 및 펌웨어 이미지(F_IMG)의 순서로 결합될 수 있다 서명의 크기 정보(SIG S_INF)에서 제로 패딩(Zero Padding)은 고정된 크기(Fixed Size, 이하: FIX_S)를 가질 수 있다. 예로서, 고정된 크기(FIX_S)는 256 바이트(Byte)일 수 있다. 만약, 서명의 크기 정보(SIG S_INF), 및 서명(SIG), 200 바이트인 경우, 나머지 56 바이트는 제로 패딩(Zero Padding)으로 채울 수 있다. 이는 본 발명을 이해하기 위한 일 예일 뿐, 고정된 크기(FIX_S)는 256 바이트보다 크거나 작을 수 있다.If the
제3 섹션에 도시된 서명된 펌웨어 이미지(S_FIMG C)는 결합된 순서대로 전자 장치(20)에서 파싱될 수 있다. 예로서, 전자 장치(20)는 서명의 크기 정보(SIG S_INF)부터 파싱을 시작(PAR_S)하고, 펌웨어 이미지(F_IMG)에서 파싱을 종료(PAR_E)할 수 있다. The signed firmware image S_FIMG C shown in the third section can be parsed in the
제1 내지 제3 섹션들 각각에 도시된 서명된 펌웨어 이미지들(S_FIMG A~S_FIMG C)은 바이너리 코드(Binary Code)로 구현될 수 있다. 도 13에서는 세 가지의 서명된 펌웨어 이미지들(S_FIMG A~S_FIMG C)의 형태를 도시하였다. 하지만, 본 발명은 이에 한정되지 않고, 서명된 펌웨어 이미지들의 개수는 코드사이너 버전들(CSN_V1~CSNVn)의 개수와 비례할 수 있다. 또한, 서명된 펌웨어 이미지들의 형태의 종류는 도 13에 도시된 세 가지에 한정되지 않고, 서명 및 펌웨어 이미지만 포함한다면 다양한 형태로 구현될 수 있다. The signed firmware images S_FIMG A to S_FIMG C shown in each of the first to third sections may be implemented with a binary code. Figure 13 shows the form of three signed firmware images (S_FIMG A to S_FIMG C). However, the present invention is not limited to this, and the number of signed firmware images may be proportional to the number of code reader versions (CSN_V1 to CSNVn). In addition, the type of the signed firmware images is not limited to the three types shown in FIG. 13, but may be implemented in various forms including only the signature and the firmware image.
컴퓨팅 시스템(110, 210)은 전자 장치(20)의 모델 별로 서로 다른 코드사이너 알고리즘을 구동할 수 있다. 이로 인해, 서명된 펌웨어 이미지(S_FIMG)의 보안성 및 신뢰성이 향상될 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.The above description is a concrete example for carrying out the present invention. The present invention includes not only the above-described embodiments, but also embodiments that can be simply modified or easily changed. In addition, the present invention includes techniques that can be easily modified by using the above-described embodiments.
Claims (10)
제1 펌웨어 이미지, 제2 펌웨어 이미지, 상기 제1 펌웨어 이미지를 포함하는 제1 전자 장치의 제1 모델 정보, 및 상기 제2 펌웨어 이미지를 포함하는 제2 전자 장치의 제2 모델 정보를 수신하는 단계;
상기 제1 모델 정보에 기초하여, 복수의 코드사이너 버전 중 제1 코드 사이너 버전을 선택하고, 상기 제2 모델 정보에 기초하여 상기 복수의 코드사이너 버전 중 제2 코드사이너 버전을 선택하는 단계;
상기 제1 펌웨어 이미지 및 상기 제2 펌웨어 이미지를 외부 하드웨어 보안 모듈(Hardware Security Module)로 전송하는 단계;
상기 외부 하드웨어 보안 모듈로부터 및 상기 제1 펌웨어 이미지를 기반으로 생성된 제1 서명 및 제2 펌웨어 이미지를 기반으로 생성된 제2 서명을 수신하는 단계; 및
상기 제1 코드사이너 버전에 기초하여, 상기 제1 서명 및 상기 제1 펌웨어 이미지가 결합된 서명된 제1 펌웨어 이미지를 생성하고, 상기 제2 코드사이너 버전에 기초하여, 상기 제2 서명 및 제2 펌웨어 이미지가 결합된 서명된 제2 펌웨어 이미지를 생성하는 단계를 포함하는 펌웨어 관리 방법.A method for managing firmware in a computing system, the method comprising:
Receiving second model information of a second electronic device including a first firmware image, a second firmware image, a first model information of a first electronic device including the first firmware image, and a second firmware image ;
Selecting a first code snubber version of the plurality of code snubber versions based on the first model information and selecting a second code snubber version of the plurality of code snubber versions based on the second model information ;
Transmitting the first firmware image and the second firmware image to an external hardware security module;
Receiving a second signature generated from the external hardware security module and based on a first signature and a second firmware image generated based on the first firmware image; And
Generate a signed first firmware image combining the first signature and the first firmware image based on the first code signer version and generate a second signature image based on the second code signer version, And generating a second signed firmware image combined with a second firmware image.
키 요청을 수신하고, 상기 수신된 키 요청을 상기 외부 하드웨어 보안 모듈로 전송하는 단계;
상기 외부 하드웨어 보안 모듈로부터 상기 키 요청을 기반으로 생성되는 제1 공개키 및 제2 공개키를 수신하는 단계; 및
상기 제1 공개키 및 상기 제2 공개키를 외부로 출력하는 단계를 더 포함하는 펌웨어 관리 방법.The method according to claim 1,
Receiving a key request and transmitting the received key request to the external hardware security module;
Receiving a first public key and a second public key generated based on the key request from the external hardware security module; And
And outputting the first public key and the second public key externally.
상기 제1 서명은 상기 제1 펌웨어 이미지 및 상기 외부 하드웨어 보안 모듈에서 상기 제1 공개키와 함께 생성된 제1 비밀키를 기반으로 생성되고,
상기 제2 서명은 상기 제2 펌웨어 이미지 및 제2 공개키와 함께 생성된 제2 비밀키를 기반으로 생성되는 펌웨어 관리 방법.3. The method of claim 2,
Wherein the first signature is generated based on the first firmware image and the first secret key generated with the first public key in the external hardware security module,
Wherein the second signature is generated based on the second firmware image and a second secret key generated with the second public key.
상기 제1 공개키는 상기 제1 전자 장치에 저장되고, 상기 제2 공개키는 상기 제2 전자 장치에 저장되는 펌웨어 관리 방법.3. The method of claim 2,
Wherein the first public key is stored in the first electronic device and the second public key is stored in the second electronic device.
상기 제1 공개키에 대한 제1 정보 및 상기 제2 공개키에 대한 제2 정보를 수신하는 단계; 및
상기 제1 공개키에 대한 상기 제1 정보 및 상기 제2 공개키에 대한 상기 제2 정보를 상기 외부 하드웨어 보안 모듈로 전송하는 단계를 더 포함하는 펌웨어 관리 방법.3. The method of claim 2,
Receiving first information about the first public key and second information about the second public key; And
And transmitting the first information for the first public key and the second information for the second public key to the external hardware security module.
상기 복수의 코드사이너 버전을 저장하도록 구성되는 메모리를 포함하는 컴퓨팅 시스템.Selecting a code snoder version of one of a plurality of code sniper versions based on model information of the electronic device, receiving a signature generated using a firmware image from an external hardware security module, A processor configured to combine the received signature and the firmware image based on a code snoder version to generate a signed firmware image; And
And a memory configured to store the plurality of code snorer versions.
상기 전자 장치의 상기 모델 정보 및 상기 펌웨어 이미지를 수신하기 위한 제1 인터페이스를 더 포함하는 컴퓨팅 시스템.The method according to claim 6,
And a first interface for receiving the model information and the firmware image of the electronic device.
상기 펌웨어 이미지를 상기 외부 하드웨어 보안 모듈로 전송하고, 상기 외부 하드웨어 보안 모듈로부터 상기 서명을 수신하기 위한 제2 인터페이스를 더 포함하는 컴퓨팅 시스템.The method according to claim 6,
Further comprising a second interface for transmitting the firmware image to the external hardware security module and for receiving the signature from the external hardware security module.
상기 복수의 코드사이너 버전 각각은 서로 다른 코드사이너 알고리즘을 포함하고,
상기 프로세서는 상기 선택된 코드사이너 버전에 포함된 코드사이너 알고리즘에 기초하여 상기 펌웨어 이미지 및 상기 서명을 결합하는 컴퓨팅 시스템.The method according to claim 6,
Each of said plurality of code snubber versions comprising a different code snippet algorithm,
Wherein the processor combines the firmware image and the signature based on a code sniffer algorithm included in the selected code snoder version.
상기 펌웨어 이미지는 제1 펌웨어 이미지이고, 상기 서명은 제1 서명이고, 상기 서명된 펌웨어 이미지는 서명된 제1 펌웨어 이미지이고,
상기 프로세서는 상기 제1 펌웨어 이미지와 다른 제2 펌웨어 이미지 및 상기 모델 정보를 수신하고, 상기 제2 펌웨어 이미지를 이용하여 생성된 제2 서명을 상기 외부 하드웨어 보안 모듈로부터 수신하고, 상기 선택된 코드사이너 버전을 기반으로 상기 제2 서명 및 상기 제2 펌웨어 이미지를 결합하여 서명된 제2 펌웨어 이미지를 생성하고,
상기 제1 서명과 제2 서명은 다른 컴퓨팅 시스템.The method according to claim 6,
Wherein the firmware image is a first firmware image, the signature is a first signature, the signed firmware image is a signed first firmware image,
Wherein the processor receives a second firmware image and the model information different from the first firmware image, receives a second signature generated using the second firmware image from the external hardware security module, Combining the second signature and the second firmware image to generate a second signed firmware image,
Wherein the first signature and the second signature are different.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/812,362 US10872155B2 (en) | 2016-11-16 | 2017-11-14 | Computing system for managing firmware and firmware managing method thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20160152821 | 2016-11-16 | ||
KR1020160152821 | 2016-11-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180056346A true KR20180056346A (en) | 2018-05-28 |
Family
ID=62451383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170026424A KR20180056346A (en) | 2016-11-16 | 2017-02-28 | Computing system for managing firmware and firmware managing method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20180056346A (en) |
-
2017
- 2017-02-28 KR KR1020170026424A patent/KR20180056346A/en not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10872155B2 (en) | Computing system for managing firmware and firmware managing method thereof | |
KR102139546B1 (en) | Mobile system including firmware verification function and firmware update method thereof | |
JP5576983B2 (en) | Secure boot and configuration of subsystems from non-local storage | |
KR101608510B1 (en) | System and method for key management for issuer security domain using global platform specifications | |
CN107612697B (en) | Digital certificate application method and device | |
WO2018112940A1 (en) | Service execution method and device for blockchain node, and node device | |
JP6022688B2 (en) | Mechanisms that facilitate efficient operating paths for storage devices in computing systems | |
CN111264044B (en) | Chip, method for generating private key and method for trustable certification | |
CN104160652A (en) | Method and system for distributed off-line logon using one-time passwords | |
CN103368722A (en) | System and method for improving bluetooth low energy privacy | |
JP2016505960A5 (en) | ||
WO2018059033A1 (en) | Verification method, server and system | |
US11295014B2 (en) | TPM-based secure multiparty computing system using a non-bypassable gateway | |
US20240143202A1 (en) | Customer-specific activation of functionality in a semiconductor device | |
US20150113241A1 (en) | Establishing physical locality between secure execution environments | |
US11734460B2 (en) | Connectionless trusted computing base recovery | |
US11997192B2 (en) | Technologies for establishing device locality | |
US20170324560A1 (en) | Method and Server for Providing Transaction Keys | |
US9503420B2 (en) | Logical network separation method and apparatus | |
KR20180056346A (en) | Computing system for managing firmware and firmware managing method thereof | |
US11811948B2 (en) | Flexible security enclave for protecting data at rest and in motion | |
Burihabwa et al. | On the cost of safe storage for public clouds: an experimental evaluation | |
US20230033630A1 (en) | Embedded Hardware Security Module (HSM) | |
US20240275588A1 (en) | Electronic device for data isolation and method of operating the same | |
US20230138905A1 (en) | System and method for securing host devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal |