KR20180056346A - Computing system for managing firmware and firmware managing method thereof - Google Patents

Computing system for managing firmware and firmware managing method thereof Download PDF

Info

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
Application number
KR1020170026424A
Other languages
Korean (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 US15/812,362 priority Critical patent/US10872155B2/en
Publication of KR20180056346A publication Critical patent/KR20180056346A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic 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

A computing system includes a processor which selects one of a plurality of code signer versions based on the model information of an electronic device, receives a signature generated by using a firmware image and a public key of the electronic device from an external hardware security module, and generates the firmware image which is signed by combining the received signature with the firmware image based on the selected code signer version, and a memory for storing the plurality of code signer versions. Accordingly, the present invention can improve security and safety for firmware.

Description

펌웨어를 관리하기 위한 컴퓨팅 시스템 및 그것의 펌웨어 관리 방법{COMPUTING SYSTEM FOR MANAGING FIRMWARE AND FIRMWARE MANAGING METHOD THEREOF}TECHNICAL FIELD [0001] The present invention relates to a computing system for managing firmware and a firmware management method thereof,

본 발명은 컴퓨팅 시스템에 관한 것으로, 좀 더 구체적으로는 펌웨어를 관리하기 위한 컴퓨팅 시스템, 및 그것의 펌웨어 관리 방법에 관한 것이다.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 second firmware image 2. The method of claim 1, further comprising: receiving second model information of the electronic device; selecting a first code snubber version of the plurality of code snubber versions based on the first model information; Selecting a second code sniffer version of the version of the firmware image, transmitting the first firmware image and the second firmware image to an external hardware security module, Receiving a second signature generated based on the generated first signature and a second firmware image, and based on the first code snorer version, generating a first signature and a first firmware, It comprises the step of generating a second image of the firmware image is coupled to sign and, on the basis of the between you version 2 code, generating a second signature and a second signature of the firmware images are combined the second firmware image.

본 발명의 실시 예에 따른 컴퓨팅 시스템은 전자 장치의 모델 정보에 기초하여, 복수의 코드사이너 버전 중 하나를 선택하고, 펌웨어 이미지 및 전자 장치의 공개키를 이용하여 생성된 서명을 외부 하드웨어 보안 모듈(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 firmware update system 100 may include a computing system 110, and a hardware security module 120.

컴퓨팅 시스템(110)은 사용자(10)와 통신할 수 있다. 컴퓨팅 시스템(110)은 사용자(10)로부터 키 요청(K_REQ)을 수신할 수 있다. 키 요청(K_REQ)에 의해, 사용자 키가 생성될 수 있다. 예로서, 사용자 키는 공개키(Public Key, PUBK), 및 비밀키(Private Key, PRIK)를 포함할 수 있다. 이때, 사용자(10)는 펌웨어 이미지를 설계하고 업데이트할 수 있는 권한을 가진 엔지니어일 수 있다. 컴퓨팅 시스템(110)은 사용자(10)로부터 수신한 키 요청(K_REQ)을 하드웨어 보안 모듈(120)로 전송할 수 있다. 예로서, 컴퓨팅 시스템(110)은 데스크탑 컴퓨터, 랩탑 컴퓨터, 워크스테이션, 및 서버 시스템 중 하나로 구현될 수 있다. The computing system 110 may communicate with the user 10. The computing system 110 may receive a key request (K_REQ) from the user 10. By a key request (K_REQ), a user key can be generated. For example, the user key may include a public key (PUBK) and a private key (PRIK). At this time, the user 10 may be an engineer authorized to design and update the firmware image. The computing system 110 may send a key request (K_REQ) received from the user 10 to the hardware security module 120. By way of example, the computing system 110 may be implemented as one of a desktop computer, a laptop computer, a workstation, and a server system.

하드웨어 보안 모듈(120)은 컴퓨팅 시스템(110)으로부터 키 요청(K_REQ)을 수신할 수 있다. 하드웨어 보안 모듈(120)은 키 생성 유닛(121)을 포함할 수 있다. 키 생성 유닛(121)은 키 요청(K_REQ)을 기반으로 공개키(PUBK) 및 비밀키(PRIK)를 생성할 수 있다. 공개키(PUBK) 및 비밀키(PRIK)는 키 생성 유닛(121)의 키 생성 알고리즘에 의해 생성될 수 있다. The hardware security module 120 may receive a key request (K_REQ) from the computing system 110. The hardware security module 120 may include a key generation unit 121. [ The key generation unit 121 may generate the public key PUBK and the secret key PRIK based on the key request K_REQ. The public key PUBK and the secret key PRIK may be generated by the key generation algorithm of the key generation unit 121. [

키 생성 유닛(121)은 키 생성 알고리즘을 구동하기 위한 하드웨어 기능 블록(Intellectual Property, IP)으로 구현될 수 있다. 또는, 키 생성 유닛(121)은 하드웨어 보안 모듈(120)에서 키 생성 알고리즘에 따라 구동되는 소프트웨어 모듈로 제공될 수 있다. 키 생성 유닛(121)은 생성된 공개키(PUBK)를 컴퓨팅 시스템(110)으로 전송할 수 있다. 그리고, 키 생성 유닛(121)은 생성된 공개키(PUBK) 및 비밀키(PRIK)를 보안 스토리지(122)에 저장할 수 있다. The key generation unit 121 may be implemented with a hardware functional block (IP) for driving a key generation algorithm. Alternatively, the key generation unit 121 may be provided as a software module that is driven in accordance with the key generation algorithm in the hardware security module 120. The key generation unit 121 may send the generated public key PUBK to the computing system 110. [ The key generation unit 121 may then store the generated public key PUBK and the secret key PRIK in secure storage 122. [

또는, 키 생성 유닛(121)은 공개키(PUBK)를 기반으로 하는 인증서(Certificate, 이하: CER)를 생성할 수 있다. 인증서(CER)는 공개키(PUBK)를 포함하고, 비밀키(PRIK)를 기반으로 생성되는 서명의 부팅(booting) 횟수에 대한 정보를 포함할 수 있다. Alternatively, the key generation unit 121 may generate a certificate (hereinafter referred to as a CER) based on the public key PUBK. The certificate (CER) includes the public key (PUBK) and may include information about the number of times the signature is booted based on the secret key (PRIK).

보안 스토리지(122)는 공개키(PUBK) 및 비밀키(PRIK)를 저장하기 위한 메모리이다. 서명 알고리즘의 실행 시 사용되는 비밀키(PRIK)는 외부의 접속에 대해 보호될 수 있다. 이를 위해, 공개키(PUBK) 및 비밀키(PRIK)는 외부에 의해서 자유롭게 접근되기 어려운 보안 기능을 갖는 보안 스토리지(122)에 저장될 수 있다. The secure storage 122 is a memory for storing the public key PUBK and the secret key PRIK. The secret key (PRIK) used in the execution of the signature algorithm can be protected against external connections. To this end, the public key (PUBK) and the secret key (PRIK) may be stored in the secure storage (122) having a security function that is difficult to access freely by the outside.

컴퓨팅 시스템(110)은 수신된 공개키(PUBK) 또는 인증서(CER)를 사용자(10)에게 전송할 수 있다. 사용자(10)는 수신된 공개키(PUBK) 또는 인증서(CER)를 전자 장치의 특정 영역에 저장할 수 있다. 전자 장치는 전자 결제, 지도, 카메라, 멀티미디어 재생, 인터넷, 근거리 무선 통신을 사용한 파일 공유 등의 다양한 응용 프로그램(Application program)을 구동할 수 있다. 뿐만 아니라, 전자 장치는 펌웨어를 통해서 응용 프로그램과는 독립적으로 하드웨어와 같이 구동될 수 있다. 저장 장치에 저장된 펌웨어는 안정된 성능과 버그 수정을 위해 제품의 출시 이후에도 새로운 버전으로 업데이트될 수 있다. 전자 장치의 펌웨어 업데이트는 서명된 펌웨어 이미지(S_FIMG)를 이용하여 수행될 수 있다. 이에 대해서는 도 3을 참조하여 자세히 설명된다. The computing system 110 may send the received public key (PUBK) or certificate (CER) to the user (10). The user 10 may store the received public key (PUBK) or certificate (CER) in a specific area of the electronic device. The electronic device can drive various application programs such as electronic payment, map, camera, multimedia reproduction, Internet, and file sharing using short-range wireless communication. In addition, the electronic device can be run as hardware independent of the application program through the firmware. The firmware stored in the storage device can be updated to a new version even after the product is released for stable performance and bug fixes. The firmware update of the electronic device may be performed using the signed firmware image S_FIMG. This will be described in detail with reference to FIG.

도 1에서 한 명의 사용자(10)가 도시되었지만, 사용자들은 두 명 이상일 수 있다. 그리고, 사용자들이 두 명 이상인 경우, 펌웨어 업데이트 시스템(100)은 사용자들 각각의 공개키(PUBK) 및 비밀키(PRIK)를 생성할 수 있다. 펌웨어 업데이트 시스템(100)은 사용자들 각각의 공개키(PUBK) 및 비밀키(PRIK)를 관리하는 서비스를 제공할 수 있다. 이에 대해서는 도 2를 참조하여 자세히 설명될 것이다.Although one user 10 is shown in Fig. 1, there may be more than two users. If the number of users is two or more, the firmware update system 100 may generate a public key (PUBK) and a secret key (PRIK) of each of the users. The firmware update system 100 may provide a service for managing the public key (PUBK) and the secret key (PRIK) of each of the users. This will be described in detail with reference to FIG.

도 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 firmware update system 100a may include a computing system 110a, and a hardware security module 120a. The firmware update system 100a shown in FIG. 2 is similar or identical to the firmware update system 100 shown in FIG. However, the firmware update system 100 shown in FIG. 2 can receive key requests K_REQ1 and K_REQ2 from a plurality of users 10a to 11a, respectively.

좀 더 구체적으로, 컴퓨팅 시스템(110a)은 복수의 사용자(10a~11a)로부터 각각 키 요청들(K_REQ1, 및 K_REQ2)을 수신할 수 있다. 그리고, 컴퓨팅 시스템(110a)은 수신된 키 요청들(K_REQ1, 및 K_REQ2)을 하드웨어 보안 모듈(120a)로 전송할 수 있다.More specifically, computing system 110a may receive key requests K_REQ1 and K_REQ2, respectively, from a plurality of users 10a-11a. The computing system 110a may then send the received key requests K_REQ1 and K_REQ2 to the hardware security module 120a.

하드웨어 보안 모듈(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)는 서로 다른 키 생성 알고리즘에 의해 생성될 수 있다. Hardware security module 120a may receive key requests K_REQ1 and K_REQ2 from computing system 110a. The hardware security module 120a may include a key generation unit 121a and secure storage 122a. The key generation unit 121a may generate a public key PUBK and a secret key PRIK for each of the plurality of users 10a to 11a based on the key requests K_REQ1 and K_REQ2. More specifically, the key generation unit 121a may generate the first public key PUBK1 and the first secret key PRIK1 for the first user 10a based on the first key request K_REQ1 . The key generation unit 121a may generate the second public key PUBK2 and the second secret key PRIK2 for the mth user 11a based on the second key request K_REQ2. For example, the first public key PUBK1 and the first secret key PRIK1, the second public key PUBK2, and the second secret key PRIK2 may be generated by different key generation algorithms.

키 생성 유닛(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 key generation unit 121a may provide the first and second public keys PUBK1 and PUBK2 to the computing system 110a. The key generation unit 121a may then store the generated first and second public keys PUBK1 and PUBK2 and the first and second secret keys PRIK1 and PRIK2 in the secure storage 122a. Alternatively, the key generation unit 121a may generate a first certificate CER1 based on the first public key PUBK1 and a second certificate CER2 based on the second public key PUBK2 . The secure storage 122a is a memory for storing the first and second public keys PUBK1 and PUBK2 and the first and second secret keys PRIK1 and PRIK2. The secure storage 122a may have security functions that are difficult to access freely by the outside.

컴퓨팅 시스템(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 computing system 110a may send the first public key PUBK1 or the first certificate CER1 to the first user 10a. The computing system 110a may then transmit the second public key PUBK2 or the second certificate CER2 to the mth user 11a. The first user 10a and the m-th user 11a may send the first public key PUBK1 or the first certificate CER1 and the second public key PUBK2 or the second certificate CER2 to different electronic devices Can be stored.

도 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 firmware update system 100b may include a computing system 110b, and a hardware security module 120b. The firmware update system 100b shown in FIG. 3 is similar or identical to the firmware update system 100 shown in FIG. However, the firmware update system 100b shown in FIG. 3 can generate a plurality of public keys PUBK1 and PUBK2 for a single user 10 and a plurality of secret keys PRIK1 and PRIK2.

좀 더 구체적으로, 컴퓨팅 시스템(110b)은 사용자(10)로부터 키 요청(K_REQ)을 수신할 수 있다. 그리고, 컴퓨팅 시스템(110b)은 수신된 키 요청(K_REQ)을 하드웨어 보안 모듈(120b)로 전송할 수 있다.More specifically, the computing system 110b may receive a key request (K_REQ) from the user 10. The computing system 110b may then send the received key request (K_REQ) to the hardware security module 120b.

하드웨어 보안 모듈(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 hardware security module 120b may receive a key request (K_REQ) from the computing system 110b. The hardware security module 120b may include a key generation unit 121b and secure storage 122b. The key generation unit 121b may generate the public key PUBK and the secret key PRIK for the user 10 based on the key request K_REQ. More specifically, the key generation unit 121b generates a first public key PUBK1 and a first public key PRIK1 for the user 10 and a second public key PUBK2 for the user 10 based on the key request K_REQ, And the second secret key PRIK2. For example, the first public key PUBK1 and the first secret key PRIK1, the second public key PUBK2, and the second secret key PRIK2 may be generated by different key generation algorithms.

키 생성 유닛(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 key generation unit 121b may provide the first and second public keys PUBK1 and PUBK2 to the computing system 110b. The key generation unit 121b may then store the generated first and second public keys PUBK1 and PUBK2 and the first and second secret keys PRIK1 and PRIK2 in the secure storage 122a. Alternatively, the key generation unit 121b may generate a first certificate CER1 based on the first public key PUBK1 and a second certificate CER2 based on the second public key PUBK2 . The secure storage 122b is a memory for storing the first and second public keys PUBK1 and PUBK2 and the first and second secret keys PRIK1 and PRIK2. The secure storage 122b may have a security function that is difficult to access freely by the outside.

컴퓨팅 시스템(110b)은 제1 공개키(PUBK1) 또는 제1 인증서(CER1) 그리고, 제2 공개키(PUBK2) 또는 제2 인증서(CER2)를 사용자(10)에게 전송할 수 있다. 사용자(10)는 제1 공개키(PUBK1) 또는 제1 인증서(CER1)와 제2 공개키(PUBK2) 또는 제2 인증서(CER2)를 서로 다른 전자 장치에 각각 저장할 수 있다. The computing system 110b may send the first public key PUBK1 or the first certificate CER1 and the second public key PUBK2 or the second certificate CER2 to the user 10. The user 10 may store the first public key PUBK1 or the first certificate CER1 and the second public key PUBK2 or the second certificate CER2 respectively in different electronic devices.

도 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 computing system 110 may be provided with a firmware image (hereinafter referred to as F_IMG) and model information (MOD_INF) from the user 10. The model information MOD_INF may be product information for the electronic device in which the public key PUBK is stored. The computing system 110 may send the firmware image F_IMG to the hardware security module 120 to generate a signature (SIG).

하드웨어 보안 모듈(120)은 펌웨어 이미지(F_IMG)를 기반으로 서명(SIG)을 생성하기 위한 서명 생성 유닛(123)을 포함할 수 있다. 하드웨어 보안 모듈(120)은 보안 스토리지(122)로부터 수신된 펌웨어 이미지(F_IMG)에 대한 비밀키(PRIK)를 읽어올 수 있다. 그리고, 하드웨어 보안 모듈(120)은 펌웨어 이미지(F_IMG)로부터 해쉬 값을 생성할 수 있다. The hardware security module 120 may include a signature generation unit 123 for generating a signature (SIG) based on the firmware image F_IMG. The hardware security module 120 may read the secret key PRIK for the firmware image F_IMG received from the secure storage 122. The hardware security module 120 may generate a hash value from the firmware image F_IMG.

하드웨어 보안 모듈(120)은 서명 생성 알고리즘을 통해 서명(SIG)을 생성할 수 있다. 서명(SIG)은 해쉬 값 및 비밀키(PRIK)를 기반으로 생성될 수 있다. 서명 생성 유닛(123)은 서명 생성 알고리즘을 구동하기 위한 하드웨어 기능 블록(IP)으로 구현될 수 있다. 또는, 서명 생성 유닛(123)은 하드웨어 보안 모듈(120)에서 서명 생성 알고리즘에 따라 구동되는 소프트웨어 모듈로 제공될 수 있다. 하드웨어 보안 모듈(120)은 생성된 서명(SIG)을 컴퓨팅 시스템(110)으로 전송할 수 있다. The hardware security module 120 may generate a signature (SIG) through a signature generation algorithm. The signature (SIG) may be generated based on the hash value and the secret key (PRIK). The signature generation unit 123 may be implemented as a hardware functional block (IP) for driving the signature generation algorithm. Alternatively, the signature generation unit 123 may be provided as a software module that is driven in accordance with the signature generation algorithm in the hardware security module 120. The hardware security module 120 may send the generated signature (SIG) to the computing system 110.

컴퓨팅 시스템(110)의 서명된 펌웨어 이미지 생성 유닛(111)은 하드웨어 보안 모듈(120)로부터 서명(SIG)을 수신할 수 있다. 그리고, 서명된 펌웨어 이미지 생성 유닛(111)은 사용자(10)로부터 모델 정보(MOD_INF)를 수신할 수 있다. 서명된 펌웨어 이미지 생성 유닛(111)은 모델 정보(MOD_INF)를 기반으로 코드사이너(Codesigner)의 버전을 선택할 수 있다. The signed firmware image generation unit 111 of the computing system 110 may receive a signature (SIG) from the hardware security module 120. [ Then, the signed firmware image generation unit 111 can receive the model information MOD_INF from the user 10. [ The signed firmware image creation unit 111 can select the version of the code signer based on the model information MOD_INF.

코드사이너는 코드사이너 알고리즘을 기반으로, 펌웨어 이미지(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 image creation unit 111 may combine the signature (SIG) with the firmware image F_IMG based on the selected code snippet. The signed firmware image creation unit 111 may combine the firmware image F_IMG and the signature SIG based on the selected code snippet to generate a signed firmware image S_FIMG.

서명된 펌웨어 이미지 생성 유닛(111)은 코드사이너 알고리즘을 구동하기 위한 하드웨어 기능 블록(IP)으로 구현될 수 있다. 또는, 서명된 펌웨어 이미지 생성 유닛(111)은 하드웨어 보안 모듈(120)에서 코드사이너 알고리즘에 따라 구동되는 소프트웨어 모듈로 제공될 수 있다. 컴퓨팅 시스템(110)은 서명된 펌웨어 이미지(S_FIMG)를 사용자(10)에게 전송할 수 있다. The signed firmware image generation unit 111 may be implemented as a hardware functional block (IP) for driving a code sniffer algorithm. Alternatively, the signed firmware image generation unit 111 may be provided as a software module that is driven in accordance with a code snippet algorithm in the hardware security module 120. The computing system 110 may send the signed firmware image S_FIMG to the user 10.

본 발명은 이에 한정되지 않고, 도 2 내지 도 4를 참조하면, 펌웨어 업데이트 시스템(100, 및 100a)은 복수의 사용자(10a~11a)로부터 펌웨어 이미지를 수신하고, 복수의 사용자(10a~11a)각각에 대한 서명된 펌웨어 이미지를 생성할 수 있다. 또는 펌웨어 업데이트 시스템(100, 및 100b)은 사용자(10)로부터 서로 다른 저장 장치에 대한 복수의 펌웨어 이미지를 수신하고, 복수의 펌웨어 이미지 각각에 대한 서명된 펌웨어 이미지를 생성할 수 있다. 펌웨어 업데이트 시스템(100, 100a, 및 100b)의 서명된 펌웨어 이미지(S_FIMG)를 생성하는 방법은 도 9 내지 도 13을 참조하여 설명된다. 2 to 4, the firmware update systems 100 and 100a receive a firmware image from a plurality of users 10a to 11a and a plurality of users 10a to 11a, You can create a signed firmware image for each. Or firmware update systems 100 and 100b may receive a plurality of firmware images for different storage devices from user 10 and generate a signed firmware image for each of the plurality of firmware images. A method of generating a signed firmware image (S_FIMG) of the firmware update systems 100, 100a, and 100b is described with reference to Figs. 9-13.

도 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 user 10 may receive a public key (PUBK) or certificate (CER) for the user 10 from the computing system 110. The public key (PUBK), or the certificate (CER), may be stored in the memory 21 of the electronic device 20. For example, the memory 21 may be a compact flash card (CF), a smart media card, a memory stick, a multi media card (MMC) (RS-MMC, MMCmicro) (SD), miniSD, microSD, SDHC, USB (Universal Serial Bus) memory card, Universal Flash Storage (UFS), and embedded MultiMediaCard .

공개키(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 memory 21 by the user 10. Alternatively, the public key (PUBK) or the certificate (CER) is provided to the manufacturer of the memory 21, and the manufacturer stores the public key (PUBK) or certificate (CER) Lt; / RTI > The public key PUBK or the certificate CER may be stored in the first boot loader 21_1 of the memory 21. [

사용자(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 user 10 may receive a signed firmware image (S_FIMG) from the computing system 110. The user 10 may store the signed firmware image S_FIMG in the memory 21 of the electronic device 20. [ The signed firmware image S_FIMG may be updated to one of the second to fourth boot loaders 21_2 to 21_4 of the memory 21. [ For example, if there is a firmware image requesting an update among the firmware images included in each of the second to fourth boot loaders 21_2 to 21_4, the user 10 transmits a new firmware image to the firmware update system 100 You can sign through. Then, the user 10 can update the signed firmware image S_FIMG to one of the second to fourth boot loaders 21_2 to 21_4. As an example, assume that the user 10 has updated the firmware image (S_FIMG) signed in the second boot loader 21_2.

제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 electronic device 20 can verify the signature (SIG) included in the signed firmware image S_FIMG based on the public key PUBK. If the certificate (CER) is stored in the first boot loader 21_1, the number of booting of the updated signed firmware image S_FIMG in the second boot loader 21_2 may be limited.

검증 동작에 의해, 서명된 펌웨어 이미지(S_FIMG)에 결함이 존재하거나, 인증이 실패하는 경우, 전자 장치(20)는 검증 페일 메시지를 사용자(10)에게 제공할 수 있다. 그러면, 사용자(10)는 서명된 펌웨어 이미지(S_FIMG)를 폐기하거나, 새로운 펌웨어 이미지에 대한 서명(SIG)을 펌웨어 업데이트 시스템(100)에 요청할 수 있다. 반면, 전자 장치(20)로부터 서명된 펌웨어 이미지(S_FIMG)의 검증이 패스하는 경우, 제2 부트 로더(21_2)의 부팅 절차가 진행될 수 있다. The electronic device 20 may provide the verification fail message to the user 10 if the verification operation results in a defect in the signed firmware image S_FIMG or if authentication fails. The user 10 may then discard the signed firmware image S_FIMG or request a signature update (SIG) for the new firmware image from the firmware update system 100. On the other hand, when the verification of the signed firmware image (S_FIMG) is passed from the electronic device 20, the boot process of the second boot loader 21_2 can proceed.

도 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 computing system 110 may include a user interface 112, a hardware security module interface 114, a processor 116, a memory 118, and a system interconnect 119 have. The present invention is not limited thereto, and the computing systems 110a and 110b shown in Figs. 2 and 3 may be implemented in the same manner as the computing system 110 shown in Fig.

컴퓨팅 시스템(110)은 사용자 인터페이스(112)를 통해 사용자(10)와 통신할 수 있다. 사용자 인터페이스(112)는 사용자(10)로부터 키 요청(K_REQ)을 수신할 수 있다. 사용자 인터페이스(112)는 수신된 키 요청(K_REQ)을 하드웨어 보안 모듈 인터페이스(114)로 전송할 수 있다. The computing system 110 may communicate with the user 10 via the user interface 112. The user interface 112 may receive a key request (K_REQ) from the user 10. The user interface 112 may send the received key request (K_REQ) to the hardware security module interface 114.

사용자 인터페이스(112)는 키보드, 키패드, 버튼, 터치 패널, 터치 스크린, 터치 패드, 터치 볼, 카메라, 및 마이크와 같은 사용자 입력 인터페이스를 포함할 수 있다. 그리고, 사용자 인터페이스(112)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diode) 표시장치, AMOLED(Active Matrix OLED) 표시장치, LED, 스피커, 및 모터와 같은 사용자 출력 인터페이스를 포함할 수 있다. The user interface 112 may include a user input interface such as a keyboard, a keypad, a button, a touch panel, a touch screen, a touch pad, a touch ball, a camera, and a microphone. The user interface 112 may include a user output interface such as a Liquid Crystal Display (LCD), an Organic Light Emitting Diode (OLED) display, an AMOLED (Active Matrix OLED) display, an LED, a speaker, .

컴퓨팅 시스템(110)은 하드웨어 보안 모듈 인터페이스(114)를 통해 하드웨어 보안 모듈(120)과 인터페이스를 가질 수 있다. 하드웨어 보안 모듈 인터페이스(114)는 키 요청(K_REQ)을 하드웨어 보안 모듈(120)로 전송할 수 있다. 그리고, 하드웨어 보안 모듈 인터페이스(114)는 하드웨어 보안 모듈(120)로부터 키 요청(K_REQ)에 의해 생성된 공개키(PUBK)를 수신할 수 있다. 하드웨어 보안 모듈 인터페이스(114)는 공개키(PUBK)를 사용자 인터페이스(112)로 전송할 수 있다. The computing system 110 may interface with the hardware security module 120 via a hardware security module interface 114. The hardware security module interface 114 may send a key request (K_REQ) to the hardware security module 120. The hardware security module interface 114 may receive the public key PUBK generated by the key request K_REQ from the hardware security module 120. The hardware security module interface 114 may transmit the public key PUBK to the user interface 112.

하드웨어 보안 모듈 인터페이스(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 security module interface 114 may be implemented using a variety of communication protocols such as Long Term Evolution (LTE), WiMax, Global System for Mobile communication (GSM), Code Division Multiple Access (CDMA), Bluetooth, Near Field Communication (Wi-Fi), Radio Frequency Identification (RFID), and the like, using at least one of various communication methods.

프로세서(116)는 컴퓨팅 시스템(110)에서 수행될 소프트웨어(응용 프로그램, 운영 체제, 장치 드라이버들)를 실행한다. 프로세서(116)는 운영 체제(OS) 기반에서 구동될 다양한 응용 프로그램들(Application Program)을 실행할 수 있다. 특히, 프로세서(116)는 서명된 펌웨어 이미지(S_FIMG)를 생성할 수 있다. 프로세서(116)의 동작은 도 7을 참조하여 자세히 설명된다. The processor 116 executes software (application programs, operating systems, device drivers) to be executed in the computing system 110. The processor 116 may execute various application programs to be run on an operating system (OS) basis. In particular, the processor 116 may generate a signed firmware image S_FIMG. The operation of the processor 116 is described in detail with reference to FIG.

메모리(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 memory 118 may include a non-volatile memory. By way of example, memory 118 may store one or more of a variety of non-volatile memories such as Phase-change Random Access Memory (PRAM), Magneto-resistive RAM (MRAM), Resistive RAM (ReRAM), and Ferro- . In addition, the memory 118 may further include volatile memory such as SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) and the like. The memory 118 may contain information about code snoder versions. The code snorer versions stored in the memory 118 are described in detail with reference to FIG.

시스템 인터커넥터(119)는 컴퓨팅 시스템(110) 내부에서 온 칩(On-Chip) 네트워크를 제공하기 위한 시스템 버스(System Bus)이다. 예로서, 시스템 인터커넥터(119)는 데이터 버스(Data Bus), 어드레스 버스(Address Bus), 및 컨트롤 버스(Control Bus)를 포함할 수 있다. 데이터 버스는 데이터의 이동 경로이다. 어드레스 버스는 기능 블록들(IP) 간의 어드레스 교환 경로를 제공한다. 컨트롤 버스는 기능 블록들(IP) 간의 제어 신호를 전달하는 경로를 제공한다. 하지만, 시스템 인터커넥터(119)의 구성은 상술한 설명에만 국한되지 않으며, 효율적인 관리를 위한 중재 수단들을 더 포함할 수 있다. The system interconnect 119 is a system bus for providing an on-chip network within the computing system 110. By way of example, the system interconnect 119 may include a data bus, an address bus, and a control bus. The data bus is the path of data movement. The address bus provides an address exchange path between functional blocks (IP). The control bus provides a path for transferring control signals between functional blocks (IP). However, the configuration of the system interconnect 119 is not limited to the above description, and may further include arbitration means for efficient management.

도 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 computing system 110 may receive a key request (K_REQ) from the user 10. In step S120, the computing system 110 may send a key request (K_REQ) to the hardware security module 120. [

S130 단계에서, 컴퓨팅 시스템(110)은 하드웨어 보안 모듈(120)로부터 키 요청(K_REQ)에 의해 생성된 공개키(PUBK)를 수신할 수 있다. S140 단계에서 컴퓨팅 시스템(110)은 사용자(10)에게 공개키(PUBK)를 전송할 수 있다. 공개키(PUBK)의 생성 및 전달 방법은 도 8을 참조하여 좀 더 자세히 설명된다. In operation S 130, the computing system 110 may receive the public key PUBK generated by the key request (K_REQ) from the hardware security module 120. In operation S140, the computing system 110 may transmit the public key PUBK to the user 10. [ The method of generating and transmitting the public key PUBK will be described in more detail with reference to FIG.

도 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 user 10 may transmit a key request (K_REQ) to the computing system 110. In step S220, the computing system 110 may send a received key request (K_REQ) to the hardware security module 120. [

S230 단계에서, 하드웨어 보안 모듈(120)은 수신된 키 요청(K_REQ)을 기반으로 사용자(10)에 대한 공개키(PUBK) 및 비밀키(PRIK)를 생성할 수 있다. S240 단계에서, 하드웨어 보안 모듈(120)은 생성된 공개키(PUBK) 및 비밀키(PRIK)를 보안 스토리지에 저장하고, 컴퓨팅 시스템(110)으로 공개키(PUBK)를 전송할 수 있다. S250 단계에서, 컴퓨팅 시스템(110)은 공개키(PUBK)를 사용자(10)에게 전송할 수 있다. 공개키(PUBK)는 펌웨어 이미지에 대한 서명 생성 과정에서 인증을 위한 수단으로 사용될 수 있다. In step S230, the hardware security module 120 may generate a public key (PUBK) and a secret key (PRIK) for the user 10 based on the received key request (K_REQ). The hardware security module 120 may store the generated public key PUBK and the secret key PRIK in secure storage and send the public key PUBK to the computing system 110 in step S240. In operation S250, the computing system 110 may transmit the public key PUBK to the user 10. The public key (PUBK) can be used as a means for authentication in the signature generation process for the firmware image.

도 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 computing system 210 includes a user interface 212, a hardware security module interface 214, a processor 216, a memory 218, and a system interconnect 219 can do. The computing system 210 shown in FIG. 9 may be similar or identical to the computing systems 110, 110a, and 110b shown in FIG. 1, FIG.

사용자 인터페이스(212)는 사용자(10)로부터 모델 정보(MOD_INF), 및 펌웨어 이미지(F_IMG)를 수신할 수 있다. 사용자 인터페이스(212)는 수신된 모델 정보(MOD_INF) 및 펌웨어 이미지(F_IMG)를 프로세서(216)로 전송할 수 있다. 그리고, 사용자 인터페이스(212)는 펌웨어 이미지(F_IMG)를 하드웨어 보안 모듈 인터페이스(214)로 전송할 수 있다. The user interface 212 may receive model information MOD_INF from the user 10, and a firmware image F_IMG. The user interface 212 may send the received model information (MOD_INF) and the firmware image (F_IMG) to the processor 216. The user interface 212 may then send the firmware image F_IMG to the hardware security module interface 214.

컴퓨팅 시스템(210)은 하드웨어 보안 모듈 인터페이스(214)를 통해 하드웨어 보안 모듈(120)과 인터페이스를 가질 수 있다. 하드웨어 보안 모듈 인터페이스(214)는 펌웨어 이미지(F_IMG)를 하드웨어 보안 모듈(120)로 전송할 수 있다. 그리고, 하드웨어 보안 모듈 인터페이스(214)는 하드웨어 보안 모듈(120)로부터 생성된 서명(SIG)을 수신할 수 있다. 하드웨어 보안 모듈 인터페이스(214)는 서명(SIG)을 프로세서(216)로 전송할 수 있다. The computing system 210 may interface with the hardware security module 120 via a hardware security module interface 214. The hardware security module interface 214 may send a firmware image (F_IMG) to the hardware security module 120. The hardware security module interface 214 may receive the signature (SIG) generated from the hardware security module 120. The hardware security module interface 214 may send a signature (SIG) to the processor 216.

프로세서(216)는 사용자 인터페이스(212)로부터 모델 정보(MOD_INF) 및 펌웨어 이미지(F_IMG)를 수신하고, 하드웨어 보안 모듈 인터페이스(214)로부터 서명(SIG)을 수신할 수 있다. 프로세서(216)는 펌웨어 이미지(F_IMG) 및 서명(SIG)을 결합하기 위한 서명된 펌웨어 이미지 생성 유닛(111)을 포함할 수 있다. 서명된 펌웨어 이미지 생성 유닛(111)은 펌웨어 이미지(F_IMG) 및 서명(SIG)을 결합하여 서명된 펌웨어 이미지(S_FIMG)를 생성할 수 있다. The processor 216 may receive the model information MOD_INF and the firmware image F_IMG from the user interface 212 and receive the signature SIG from the hardware security module interface 214. The processor 216 may include a signed firmware image generation unit 111 for combining the firmware image F_IMG and the signature SIG. The signed firmware image generation unit 111 may combine the firmware image F_IMG and the signature SIG to generate a signed firmware image S_FIMG.

프로세서(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 processor 216 may execute one of the code reader versions 218_1 through 218_3 stored in the memory 218. [ More specifically, the processor 216 may select a code snoder version based on the model information MOD_INF. The model information MOD_INF may be product information of the electronic device 20 in which the public key PUBK is stored. When the model information MOD_INF is information on the first model MOD1, the processor 216 can select the first code snubber version 218_1, and the model information MOD_INF is stored in the second model MOD2 The processor 216 may select the second code snorer version 218_2. Alternatively, when the model information MOD_INF is information on the nth model MODn, the processor 216 can select the nth code snorer version 218_3. That is, the version of the code domain may be selected according to the type of the model of the electronic device 20. [

코드사이너 버전들(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 processor 216 may adjust the location and size of the signature SIG coupled to the signed firmware image S_FIMG according to the code reader versions 218_1 - 218_3. The processor 216 may execute a code sniffer algorithm according to the selected code sniper version. As an example, assume that the processor 216 has selected the first code snorer version 218_1. The signed firmware image generation unit 111 of the processor 216 may generate the signed firmware image S_FIMG by executing the first code snoder version 218_1. The processor 216 may send a signed firmware image (S_FIMG) to the user 10 via the user interface 212.

메모리(218)에는 코드사이너 버전들(218_1~218_3)이 저장될 수 있다. 코드사이너 버전들(218_1~218_3) 각각은 전자 장치(20)의 모델 정보(MOD_INF)에 따라 선택될 수 있다. 즉, 동일한 모델의 전자 장치(20)에 대해서 동일한 코드사이너 버전이 선택될 것이다. In memory 218, code snoder versions 218_1 through 218_3 may be stored. Each of the code reader versions 218_1 to 218_3 may be selected in accordance with the model information MOD_INF of the electronic device 20. [ That is, the same code snippet version will be selected for the electronic device 20 of the same model.

본 발명의 실시 예에 따른 컴퓨팅 시스템(210)은 공개키(PUBK)와 함께 수신된 모델 정보(MOD_INF)에 따라 코드사이너 버전을 선택할 수 있다. 따라서, 컴퓨팅 시스템(210)은 전자 장치(20)의 모델 별로 서로 다른 코드사이너 알고리즘을 구동할 수 있다. 이로 인해, 서명된 펌웨어 이미지(S_FIMG)의 보안성이 향상될 수 있다. The computing system 210 according to the embodiment of the present invention can select a code snubber version according to the received model information MOD_INF together with the public key PUBK. Accordingly, the computing system 210 may drive different code sniffer algorithms for each model of the electronic device 20. As a result, the security of the signed firmware image S_FIMG can be improved.

도 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 computing system 210 may receive model information MOD_INF and firmware image F_IMG from the user 10. In operation S320, the computing system 210 may transmit the firmware image F_IMG to the hardware security module 120. [ In operation S330, the computing system 210 may receive the signature (SIG) generated in the hardware security module 120. [

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 computing system 210 may select a code snubber version (CSN_V) based on the model information MOD_INF. In step S350, the computing system 210 may generate a signed firmware image S_FIMG based on the firmware image (F_IMG) and the signature (SIG). As an example, the computing system 210 may combine the firmware image (F_IMG) and signature (SIG) based on the selected code snubber version (CSN_V) to generate a signed firmware image (S_FIMG). In step S360, the computing system 210 may send the signed firmware image (S_FIMG) to the user 10. The generation and delivery of the signed firmware image S_FIMG will be described in more detail with reference to FIG.

도 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 user 10 may transmit the model information MOD_INF, and the firmware image F_IMG to the computing system 210. The model information MOD_INF may include product information of the electronic device 20 and the firmware image F_IMG may require a signature to be updated on the electronic device 20. [

S420 단계에서, 컴퓨팅 시스템(210)은 펌웨어 이미지(F_IMG)를 하드웨어 보안 모듈(120)로 전송할 수 있다. S430 단계에서, 하드웨어 보안 모듈(120)은 펌웨어 이미지(F_IMG)에 기초하여 서명(SIG)을 생성할 수 있다. 예로서, 하드웨어 보안 모듈(120)은 펌웨어 이미지(F_IMG)로부터 해시를 생성한다. 그리고, 수신된 공개키(PUBK)에 대응하는 비밀키(PRIK)와 해시를 결합하여 서명(SIG)을 생성할 수 있다. S440 단계에서, 하드웨어 보안 모듈(120)은 서명(SIG)을 컴퓨팅 시스템(210)으로 전송할 수 있다.In operation S420, the computing system 210 may transmit the firmware image F_IMG to the hardware security module 120. [ In step S430, the hardware security module 120 may generate a signature (SIG) based on the firmware image F_IMG. As an example, the hardware security module 120 generates a hash from the firmware image F_IMG. Then, the signature (SIG) can be generated by combining the hash with the secret key (PRIK) corresponding to the received public key (PUBK). In step S440, the hardware security module 120 may send a signature (SIG) to the computing system 210. [

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 computing system 210 may select a code snubber version (CSN_V) based on the model information MOD_INF. In step S460, the computing system 210 is capable of generating a signed firmware image (S_FIMG) based on the firmware image (F_IMG) and the signature (SIG). As an example, the computing system 210 may combine the firmware image (F_IMG) and signature (SIG) based on the selected code snubber version (CSN_V) to generate a signed firmware image (S_FIMG). In step S470, the computing system 210 may send the signed firmware image (S_FIMG) to the user 10.

도 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 user 10 transmits the model information MOD_INF, the first firmware image F_IMG1, the first key information KEY_INF1 to the computing system 110b, The first firmware image F_IMG1 may be a new firmware image for updating to the first electronic device and the first key information KEY_INF1 may be information about the first public key PUBK1 The user 10 is provided with the first and second public keys PUBK1 and PUBK2 from the firmware update system 100b. (E.g., the first public key PUBK1) included in the first electronic device to which the updated electronic device is to be updated. In step S510, the computing system (110b) The code snubber version (CSN_V) can be selected based on the information (MOD_INF).

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 computing system 110b may transmit the first firmware image F_IMG1 and the first key information KEY_INF1 to the hardware security module 120b. In step S520, the hardware security module 120b transmits The first signature SIG1 may be generated from the first firmware image F_IMG1 and the first signature SIG2 may be generated based on the first firmware image F_IMG1 and the first key information KEY_INF1. More specifically, A hash and a first secret key PRIK1. In step S525, the hardware security module 120b may transmit the generated first signature SIG1 to the computing system 110b.

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 computing system 110b may generate a first firmware image S_FIMG1 that is signed based on the first firmware image F_IMG1 and the first signature SIG. By way of example, the computing system 110b may combine the first firmware image F_IMG1 and the first signature SIG1 based on the selected code sniper version CSN_V to generate a first signed firmware image S_FIMG1 have. In step S535, the computing system 210 may send the signed first firmware image S_FIMG1 to the user 10.

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 user 10 may transmit the model information MOD_INF, the second firmware image F_IMG2, and the second key information KEY_INF2 to the computing system 110b. The second firmware image F_IMG2 may be a new firmware image for updating to the second electronic device). At this time, the first electronic device and the second electronic device are different electronic devices. The user 10 may provide the computing system 110b with information about the public key (e.g., the second public key PUBK2) included in the second electronic device for which the second firmware image F_IMG2 is being updated .

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 computing system 110b may transmit the second firmware image F_IMG2 to the hardware security module 120b. In step S550, the hardware security module 120b may generate the second signature SIG2 based on the second firmware image F_IMG2 and the second key information KEY_INF2. More specifically, the second signature SIG2 may be generated by combining the hash generated from the second firmware image F_IMG2 and the second secret key PRIK2. In step S555, the hardware security module 120b may transmit the generated second signature SIG2 to the computing system 110b.

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 computing system 110b is capable of generating a second firmware image S_FIMG2 that is signed based on the second firmware image F_IMG2 and the second signature SIG2. As an example, the computing system 110b may combine the second firmware image F_IMG2 and the second signature SIG2 based on the selected code sniper version CSN_V to generate a second signed firmware image S_FIMG2 have. In step S565, the computing system 110b may send the signed second firmware image S_FIMG2 to the user 10.

도 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 computing system 110b generates 2 The new code snubber version (CSN_V) should be selected based on the firmware image (F_IMAG2) and the received model information (MOD_INF). The computing system 110b may then generate a second signed firmware image S_FIMG2 by combining the second firmware image F_IMG2 and the second signature SIG2 based on the new code signer version CSN_V .

도 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)할 수 있다. Computing systems 110 and 210 may select one of the signed firmware images (S_FIMG A through S_FIMG C) according to the selected code snoder version. As an example, if computing systems 110 and 210 select a first code sniffer version (CSN_V1), computing systems 110 and 210 may be configured to update the firmware image (S_FIMG A) An image (F_IMG) and a signature (SIG) can be combined. The signed firmware image S_FIMG A shown in the first section may be combined in the order of firmware image F_IMG, signature size information SIG S_INF, and signature SIG. The size information SIGINF of the signature may include information on the data size of the signature SIG. The signed firmware image (S_FIMG A) shown in the first section may be parsed in the electronic device 20 in the combined order. For example, the electronic device 20 may start parsing from the firmware image F_IMG and end parsing at the signature SIG.

컴퓨팅 시스템(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 computing systems 110 and 210 select a second code snubber version CSN_V2, then the computing systems 110 and 210 may generate a firmware image (S_FIMG B), such as the signed firmware image S_FIMG B shown in the second section F_IMG) and signature (SIG). The signed firmware image S_FIMG B shown in the second section may be combined in the order of size information SIG S_INF, signature SIG, and firmware image F_IMG of the signature. The signed firmware image (S_FIMG B) shown in the second section may be parsed in the electronic device 20 in the combined order. By way of example, the electronic device 20 may begin parsing from the size information SIGINF of the signature (PAR_S) and end parsing (PAR_E) from the firmware image F_IMG.

컴퓨팅 시스템(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 computing systems 110 and 210 select a third code snubber version CSN_V3, the computing systems 110 and 210 may generate a firmware image (S_FIMG C), such as the signed firmware image S_FIMG C shown in the third section F_IMG) and signature (SIG). The signed firmware image S_FIMG C shown in the third section can be combined in the order of the signature size information SIG S_INF, signature SIG, zero padding, and firmware image F_IMG. The zero padding may have a fixed size (hereinafter, referred to as " FIX_S ") in the size information SIG_INF. As an example, the fixed size FIX_S may be 256 Bytes. If the signature size information (SIG S_INF) and the signature (SIG) are 200 bytes, the remaining 56 bytes can be filled with zero padding. This is only an example for understanding the present invention, and the fixed size (FIX_S) may be larger or smaller than 256 bytes.

제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 electronic device 20 in the combined order. By way of example, the electronic device 20 may begin parsing from the size information SIGINF of the signature (PAR_S) and end parsing (PAR_E) from the firmware image F_IMG.

제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)의 보안성 및 신뢰성이 향상될 수 있다. Computing systems 110 and 210 may drive different code sniffer algorithms for each model of electronic device 20. As a result, the security and reliability of the signed firmware image S_FIMG can be improved.

위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.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 항에 있어서,
키 요청을 수신하고, 상기 수신된 키 요청을 상기 외부 하드웨어 보안 모듈로 전송하는 단계;
상기 외부 하드웨어 보안 모듈로부터 상기 키 요청을 기반으로 생성되는 제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.
제 2 항에 있어서,
상기 제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.
제 2 항에 있어서,
상기 제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.
제 2 항에 있어서,
상기 제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.
전자 장치의 모델 정보에 기초하여, 복수의 코드사이너 버전 중 하나의 코드사이너 버전을 선택하고, 펌웨어 이미지를 이용하여 생성된 서명을 외부 하드웨어 보안 모듈(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.
제 6 항에 있어서,
상기 전자 장치의 상기 모델 정보 및 상기 펌웨어 이미지를 수신하기 위한 제1 인터페이스를 더 포함하는 컴퓨팅 시스템.
The method according to claim 6,
And a first interface for receiving the model information and the firmware image of the electronic device.
제 6 항에 있어서,
상기 펌웨어 이미지를 상기 외부 하드웨어 보안 모듈로 전송하고, 상기 외부 하드웨어 보안 모듈로부터 상기 서명을 수신하기 위한 제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.
제 6 항에 있어서,
상기 복수의 코드사이너 버전 각각은 서로 다른 코드사이너 알고리즘을 포함하고,
상기 프로세서는 상기 선택된 코드사이너 버전에 포함된 코드사이너 알고리즘에 기초하여 상기 펌웨어 이미지 및 상기 서명을 결합하는 컴퓨팅 시스템.
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.
제 6 항에 있어서,
상기 펌웨어 이미지는 제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.
KR1020170026424A 2016-11-16 2017-02-28 Computing system for managing firmware and firmware managing method thereof KR20180056346A (en)

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)

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