[go: up one dir, main page]

KR20210060798A - Guaranteeing integrity system and method of embedded software based on Cipher-Block Chaining - Google Patents

Guaranteeing integrity system and method of embedded software based on Cipher-Block Chaining Download PDF

Info

Publication number
KR20210060798A
KR20210060798A KR1020190148238A KR20190148238A KR20210060798A KR 20210060798 A KR20210060798 A KR 20210060798A KR 1020190148238 A KR1020190148238 A KR 1020190148238A KR 20190148238 A KR20190148238 A KR 20190148238A KR 20210060798 A KR20210060798 A KR 20210060798A
Authority
KR
South Korea
Prior art keywords
image data
secure boot
boot image
booting
embedded software
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020190148238A
Other languages
Korean (ko)
Other versions
KR102282039B1 (en
Inventor
김선욱
Original Assignee
한국항공우주연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국항공우주연구원 filed Critical 한국항공우주연구원
Priority to KR1020190148238A priority Critical patent/KR102282039B1/en
Publication of KR20210060798A publication Critical patent/KR20210060798A/en
Application granted granted Critical
Publication of KR102282039B1 publication Critical patent/KR102282039B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법에 관한 것으로서, 더욱 상세하게는, 임베디드 소프트웨어(Embedded software)의 보안 부팅(secure booting)을 위한 CBC(Cipher-Block Chaining) 기반의 임베디드 소프트웨어 무결성 보장 시스템에 있어서, 입력받은 이미지 데이터에 기설정된 암호화 알고리즘을 적용하여, 시큐어 부트 이미지(secure boot image) 데이터를 생성하는 암호화부(100), 상기 암호화부(100)에서 생성한 상기 시큐어 부트 이미지 데이터에 대해, 소정 영역 이미지를 추출하여 저장하고, 추출된 해당 영역은 소정 이미지로 변경하여 부팅용 시큐어 부트 이미지 데이터로 전송하는 추가 암호화부(200), 사용자의 요청에 의해 부팅 신호가 입력될 경우, 부팅용 시큐어 부트 이미지 데이터에 상기 추가 암호화부(200)에서 저장하고 있는 추출 이미지를 오버라이트(overwrite)하여 시큐어 부트 이미지 데이터로 복원하는 복원부(300), 기설정된 복호화 알고리즘을 적용하여, 상기 복원부(300)에서 복원한 상기 시큐어 부트 이미지 데이터를 복호화하는 복호화부(400) 및 상기 복호화부(400)의 복호화 결과에 따라, 상기 임베디드 소프트웨어의 정상 부팅 가능 여부를 판단하는 무결성 판단부(500)를 포함하는 것을 특징으로 하는 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템에 관한 것이다.The present invention relates to a CBC-based embedded software integrity guarantee system and method thereof, and more particularly, to a CBC (Cipher-Block Chaining)-based embedded software integrity for secure booting of embedded software. In the guarantee system, an encryption unit 100 for generating secure boot image data by applying a predetermined encryption algorithm to input image data, and the secure boot image data generated by the encryption unit 100 In the case of an additional encryption unit 200 that extracts and stores an image of a predetermined area, converts the extracted area into a predetermined image, and transmits it as secure boot image data for booting, when a booting signal is input by a user's request, The restoration unit 300 for restoring the extracted image stored in the additional encryption unit 200 to the secure boot image data by overwriting the secure boot image data for booting, and applying a preset decryption algorithm, and the restoration According to the decoding unit 400 for decoding the secure boot image data restored by the unit 300 and the decoding result of the decoding unit 400, the integrity determination unit 500 for determining whether the embedded software can be booted normally. It relates to a CBC-based embedded software integrity guarantee system comprising a.

Description

CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법 {Guaranteeing integrity system and method of embedded software based on Cipher-Block Chaining}CBC-based embedded software integrity guarantee system and its method {Guaranteeing integrity system and method of embedded software based on Cipher-Block Chaining}

본 발명은 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 임베디드 소프트웨어의 기술 유출을 방지하고, 허가되지 않은 사용자에 의한 소프트웨어의 구동을 방지할 수 있는 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법에 관한 것이다.The present invention relates to a CBC-based embedded software integrity guarantee system and a method thereof, and more particularly, to a CBC-based embedded software capable of preventing technology leakage of embedded software and preventing the operation of software by unauthorized users. It relates to an integrity guarantee system and a method thereof.

시큐어 부트(Secure boot)란, 컴퓨터 등의 부팅시, 검증받지 않은 프로그램의 실행을 막는 보안 시스템으로, 다시 말하자면, 소프트웨어의 유출과 시스템의 해킹을 방지하고자 특정 하드웨어에서 의도된 제작자에 의해 제작된 소프트웨어만 구동되도록 하고자, 암호화 알고리즘과 사인(Sign) 체크방식을 시스템 부팅시 이용하는 기술이다.Secure boot is a security system that prevents the execution of unauthorized programs when booting a computer. In other words, software produced by a manufacturer intended for specific hardware to prevent software leakage and system hacking. It is a technology that uses an encryption algorithm and a sign check method when booting the system in order to run only.

일반적인 시큐어 부트 과정은 도 1에 도시된 바와 같이, 임베디드 시스템의 내장형 소프트웨어에서, 제작자에 의해 의도된 암호화 소프트웨어 이미지(시큐어 부트 이미지 등)가 비휘발성 메모리(ROM, FLASH 등)에 저장되어 있다가, 부팅 신호가 입력(Power가 On)되면, 부트 코드에 의해 상기 암호화 소프트웨어 이미지가 RAM(DRAM, SRAM 등)으로 전송되어 복호화 수행을 통해, 사인 확인 결과 문제가 없으면, 복호화된 소프트웨어 이미지를 통해 CPU가 수행하도록 해서 시스템의 구동이 이루어지게 된다.In a typical secure boot process, as shown in FIG. 1, in the embedded software of an embedded system, an encrypted software image (secure boot image, etc.) intended by the manufacturer is stored in a nonvolatile memory (ROM, FLASH, etc.), When a boot signal is input (Power is On), the encrypted software image is transmitted to RAM (DRAM, SRAM, etc.) by the boot code and decrypted. If there is no problem as a result of sign verification, the CPU through the decrypted software image By doing so, the system is started.

일반적인 임베디드 시스템의 내장형 소프트웨어와 보안이 필요한 분야의 임베디드 시스템의 내장형 소프트웨어의 시큐어 부트 과정의 차이점으로는, 보안이 필요한 분야의 임베디드 시스템의 내장형 소프트웨어의 시큐어 부트 과정에서는 소프트웨어의 내용을 보호하기 위하여, 암호화된 이미지를 비휘발성 메모리에 저장하고, 실제 시스템 구동이 이루어지기 전에 암호화된 이미지에 대한 복호화를 진행하여 사인 검증하여 무결성이 검증된 경우에만 소프트웨어 구동을 시키게 된다.The difference between the secure boot process of the embedded software of an embedded system in a field that requires security is the difference between the secure boot process of the embedded software of an embedded system in a field that requires security, in order to protect the contents of the software in the secure boot process. The encrypted image is stored in a nonvolatile memory, and the encrypted image is decrypted before the actual system operation is performed to verify the signature, and the software is operated only when the integrity is verified.

이러한 종래의 내장형 소프트웨어의 암호화 방식은, 암호화 키를 알아내면 내장형 소프트웨어를 복원하고, 바이너리 내용을 어셈블리나 상위언어로 전환하여 분석이 가능하기 때문에, 알고리즘이나 아키텍쳐 등의 지적재산권이 노출되거나 소프트웨어가 악용될 소지가 있는 문제점이 있다. 또한, 해킹된 소프트웨어가 노출된 암호화 키로 암호화함으로써, 해당 임베디드 시스템에서, 의도치 않은 소프트웨어가 구동되어 하드웨어까지 악용될 소지가 있다.In the conventional encryption method of embedded software, if the encryption key is found, the embedded software can be restored, and binary content can be converted to assembly or higher language for analysis, so that intellectual property rights such as algorithms and architectures are exposed or software is abused. There is a potential problem. In addition, by encrypting the hacked software with an exposed encryption key, there is a possibility that unintended software is driven in the embedded system and even hardware is exploited.

즉, 도 2에 도시된 바와 같이, 해커 또는, 제작자가 의도적으로 암호화된 소프트웨어 이미지 자체가 해킹되었을 경우, 암호화에 사용된 키가 시스템 내부의 복호화 암호키와 동일하기 때문에, 복호화가 정상적으로 수행되며, 사인에 사용된 암호키 역시 시스템 내부의 것과 동일하기 때문에, 해킹(오염)된 소프트웨어 이미지를 정상 이미지로 판단하고, 정상 부팅되어 구동이 이루어지게 되는 문제점이 있다.That is, as shown in FIG. 2, when a hacker or a creator intentionally hacks the encrypted software image itself, since the key used for encryption is the same as the decryption encryption key inside the system, decryption is normally performed, Since the encryption key used for signing is also the same as the one inside the system, there is a problem in that the hacked (contaminated) software image is determined as a normal image, and is normally booted and driven.

이와 관련해서, 국내공개특허 제10-2010-0106110호("시큐어 부트 데이터 통합 관리 시스템, 시큐어 부트 데이터 통합 관리를 위한 메타데이터 생성 및 검증 방법, 이를 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체")에서는 시큐어 부트 데이터를 통합 관리하여, 다수의 시큐어 부트 데이터들을 효과적이로 체계적으로 생성 및 관리하고 무결성 검증이 가능한 기술을 개시하고 있다.In this regard, Korean Patent Publication No. 10-2010-0106110 ("Secure boot data integrated management system, metadata generation and verification method for integrated secure boot data management, The recording medium") discloses a technology capable of systematically generating and managing a plurality of secure boot data by integrating and managing secure boot data and verifying integrity.

국내 공개 특허 제10-2010-0106110호 (공개일 2010.10.01.)Korean Patent Publication No. 10-2010-0106110 (Publication date 2010.10.01.)

본 발명은 상기한 바와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은 임베디드 소프트웨어의 기술 유출을 방지하고, 허가되지 않은 사용자에 의한 소프트웨어의 구동을 방지할 수 있도록, CBC 기반으로 암호화가 진행된 이미지에 대한 추가 암호화를 진행함으로써, 무단 복호화를 불가능하게 할 수 있는 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법을 제공하는 것이다.The present invention was conceived to solve the problems of the prior art as described above, and an object of the present invention is to prevent the technology leakage of embedded software and to prevent the operation of the software by an unauthorized user, based on CBC It is to provide a CBC-based embedded software integrity guarantee system and method that can make unauthorized decryption impossible by performing additional encryption on the encrypted image.

본 발명의 일 실시예에 따른 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템은, 임베디드 소프트웨어(Embedded software)의 보안 부팅(secure booting)을 위한 CBC(Cipher-Block Chaining) 기반의 임베디드 소프트웨어 무결성 보장 시스템에 있어서, 입력받은 이미지 데이터에 기설정된 암호화 알고리즘을 적용하여, 시큐어 부트 이미지(secure boot image) 데이터를 생성하는 암호화부(100), 상기 암호화부(100)에서 생성한 상기 시큐어 부트 이미지 데이터에 대해, 소정 영역 이미지를 추출하여 저장하고, 추출된 해당 영역은 소정 이미지로 변경하여 부팅용 시큐어 부트 이미지 데이터로 전송하는 추가 암호화부(200), 사용자의 요청에 의해 부팅 신호가 입력될 경우, 부팅용 시큐어 부트 이미지 데이터에 상기 추가 암호화부(200)에서 저장하고 있는 추출 이미지를 오버라이트(overwrite)하여 시큐어 부트 이미지 데이터로 복원하는 복원부(300), 기설정된 복호화 알고리즘을 적용하여, 상기 복원부(300)에서 복원한 상기 시큐어 부트 이미지 데이터를 복호화하는 복호화부(400) 및 상기 복호화부(400)의 복호화 결과에 따라, 상기 임베디드 소프트웨어의 정상 부팅 가능 여부를 판단하는 무결성 판단부(500)를 포함하는 것이 바람직하다.In the CBC-based embedded software integrity guarantee system according to an embodiment of the present invention, in the CBC (Cipher-Block Chaining)-based embedded software integrity guarantee system for secure booting of embedded software, An encryption unit 100 that generates secure boot image data by applying a predetermined encryption algorithm to the input image data, and a predetermined area for the secure boot image data generated by the encryption unit 100 An additional encryption unit 200 that extracts and stores an image, and converts the extracted area into a predetermined image and transmits it as secure boot image data for booting, and a secure boot image for booting when a booting signal is input at the request of a user The restoration unit 300 for restoring the data to secure boot image data by overwriting the extracted image stored in the additional encryption unit 200, and applying a preset decryption algorithm, in the restoration unit 300 It is preferable to include a decoding unit 400 for decoding the restored secure boot image data, and an integrity determination unit 500 for determining whether or not the embedded software can be booted normally, according to a decoding result of the decoding unit 400 Do.

더 나아가, 상기 추가 암호화부(200)는 상기 시큐어 부트 이미지 데이터의 전체 영역 중 미리 설정된 개수만큼의 소정 영역에 해당하는 이미지들을 추출하여 저장하고, 추출된 상기 영역들과 매칭되는 영역의 이미지들은 소정 이미지로 변경하여 상기 부팅용 시큐어 부트 이미지 데이터를 생성하는 것이 바람직하다.Further, the additional encryption unit 200 extracts and stores images corresponding to a predetermined number of areas of the secure boot image data, and stores images of the areas matching the extracted areas. It is preferable to change to an image to generate the secure boot image data for booting.

더 나아가, 상기 추가 암호화부(200)는 단일 기록만 가능한 메모리 소자(One time writable media)를 포함하여 구성되며, 상기 시큐어 부트 이미지 데이터에서 추출한 소정 영역에 해당하는 이미지들을 상기 메모리 소자에 저장하는 것이 바람직하다.Furthermore, the additional encryption unit 200 is configured to include a single write-only memory device (One time writable media), and storing images corresponding to a predetermined region extracted from the secure boot image data in the memory device. desirable.

더 나아가, 상기 복원부(300)는 상기 추가 암호화부(200)에서 저장하고 있는 상기 소정 영역에 해당하는 이미지들을 각각의 영역에 맞추어 부팅용 시큐어 부트 이미지 데이터에 오버라이트하여, 시큐어 부트 이미지 데이터로 복원하는 것이 바람직하다.Furthermore, the restoration unit 300 overwrites the images corresponding to the predetermined area stored in the additional encryption unit 200 to the secure boot image data for booting according to each area, and converts the images corresponding to the predetermined area into the secure boot image data. It is desirable to restore it.

더 나아가, 상기 무결성 판단부(500)는 상기 복호화 결과에 따라, 상기 부팅용 시큐어 부트 이미지 데이터의 이상 여부를 판단하여, 상기 임베디드 소프트웨어의 정상 부팅 가능 여부를 결정하는 것이 바람직하다.Furthermore, it is preferable that the integrity determination unit 500 determines whether the bootable secure boot image data is abnormal according to the decoding result, and determines whether the embedded software can be booted normally.

본 발명의 일 실시예에 따른 CBC 기반의 임베디드 소프트웨어 무결성 보장 방법은, 임베디드 소프트웨어(Embedded software)의 보안 부팅(secure booting)을 위한 CBC(Cipher-Block Chaining) 기반의 임베디드 소프트웨어 무결성 보장 방법에 있어서, 암호화부에서, 입력받은 이미지 데이터에 기설정된 암호화 알고리즘을 적용하여, 시큐어 부트 이미지(secure boot image) 데이터를 생성하는 시큐어 이미지 생성단계(S100), 추가 암호화부에서, 상기 시큐어 이미지 생성단계(S100)에서 생성한 상기 시큐어 부트 이미지 데이터에 대해, 소정 영역 이미지를 추출하고 추출한 해당 영역을 소정 이미지로 변경하여 부팅용 시큐어 부트 이미지 데이터로 변환하는 암호화 이미지 변환단계(S200), 복원부에서, 사용자의 요청에 의해 부팅 신호가 입력될 경우, 부팅용 시큐어 부트 이미지 데이터에 상기 암호화 이미지 변환단계(S200)에서 추출하여 저장 및 관리하고 있는 소정 영역에 해당하는 이미지들을 오버라이트(overwrite)하여 시큐어 부트 이미지 데이터로 복원하는 복원단계(S300), 복호화부에서, 기설정된 복호화 알고리즘을 적용하여, 상기 복원단계(S300)에서 복원한 상기 시큐어 부트 이미지 데이터를 복호화하는 복호화단계(S400) 및 무결성 판단부에서, 상기 복호화단계(S400)에 의한 상기 시큐어 부트 이미지 데이터의 복호화 결과에 따라, 상기 임베디드 소프트웨어의 정상 부팅 가능 여부를 판단하는 무결성 판단단계(S500)로 이루어지는 것이 바람직하다.In the CBC-based embedded software integrity guarantee method according to an embodiment of the present invention, in the CBC (Cipher-Block Chaining)-based embedded software integrity guarantee method for secure booting of embedded software, In the encryption unit, a secure image generation step of generating secure boot image data by applying a preset encryption algorithm to the input image data (S100), in an additional encryption unit, the secure image generation step (S100) Encrypted image conversion step (S200) of extracting a predetermined area image and converting the extracted area into a secure boot image data for booting with respect to the secure boot image data generated in step S200, at the restoration unit, a user's request When a booting signal is input by, overwrite the images corresponding to a predetermined area extracted, stored and managed in the encrypted image conversion step (S200) to the secure boot image data for booting, and the image data is converted into secure boot image data. In the restoring step (S300) of restoring, the decryption step (S400) of decoding the secure boot image data restored in the restoring step (S300) by applying a preset decryption algorithm in the decoder and in the integrity determination unit, the decryption According to a result of decrypting the secure boot image data in step S400, it is preferable to include an integrity determination step S500 of determining whether the embedded software can be booted normally.

더 나아가, 상기 암호화 이미지 변환단계(S200)는 추출한 상기 시큐어 부트 이미지 데이터의 소정 영역에 해당하는 이미지들은 별도의 저장소자를 통해서 저장 및 관리하는 것이 바람직하다.Furthermore, in the encrypted image conversion step (S200), it is preferable to store and manage images corresponding to a predetermined area of the extracted secure boot image data through a separate storage device.

더 나아가, 상기 암호화 이미지 변환단계(S200)는 상기 시큐어 부트 이미지 데이터의 전체 영역 중 미리 설정된 개수만큼의 소정 영역에 해당하는 이미지들을 추출하여 저장하고, 추출된 상기 영역들과 매칭되는 영역의 이미지들은 소정 이미지로 변경하여 상기 부팅용 시큐어 부트 이미지 데이터를 생성하는 것이 바람직하다.Furthermore, the encrypted image conversion step (S200) extracts and stores images corresponding to a predetermined number of regions among the entire regions of the secure boot image data, and images of regions matching the extracted regions are It is preferable to change to a predetermined image to generate the secure boot image data for booting.

더 나아가, 상기 복원단계(S300)는 상기 암호화 이미지 변환단계(S200)에 의해 저장된 상기 소정 영역에 해당하는 이미지들을 각각의 영역에 맞추어 상기 부팅용 시큐어 부트 이미지 데이터에 오버라이트하여, 상기 시큐어 부트 이미지 데이터로 복원하는 것이 바람직하다.Further, in the restoration step (S300), the images corresponding to the predetermined area stored in the encrypted image conversion step (S200) are overwritten in the secure boot image data for booting according to each area, and the secure boot image It is desirable to restore it to data.

상기와 같은 구성에 의한 본 발명의 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법은, CBC 기반으로 임베디드 소프트웨어의 부팅을 위한 암호화가 진행된 이미지에 추가 암호화를 진행함으로써, 무단 복호화의 불가능으로 임베디드 소프트웨어의 불법 기술 유출을 방지하고, 허가되지 않은 사용자에 의한 소프트웨어의 구동을 방지할 수 있는 장점이 있다.The CBC-based embedded software integrity guarantee system and method of the present invention with the configuration as described above, by performing additional encryption on the image that has been encrypted for booting the embedded software based on CBC, so that unauthorized decryption is impossible. There is an advantage of preventing illegal technology leakage and preventing the operation of software by unauthorized users.

즉, 임베디드 소프트웨어의 부팅을 위해 ROM/FLASH에 저장되어 있는 CBC 기반으로 암호화가 진행된 이미지를 통한 불법 복호화가 불가능하기 때문에, 소프트웨어의 불법 기술 유출 방지 및 허가되지 않은 사용자에 의한 소프트웨어의 구동을 방지할 수 있는 장점이 있다.In other words, since it is impossible to illegally decrypt through the encrypted image based on the CBC stored in the ROM/FLASH for booting the embedded software, it is possible to prevent the leakage of illegal software technology and the operation of the software by unauthorized users. There is an advantage to be able to.

또한, 특정 하드웨어에서 허가되지 않은 사용자에 의해 불법 변조된 소프트웨어의 구동을 방지함으로써, 하드웨어의 불법 용도 변경을 방지할 수 있는 장점이 있다.In addition, there is an advantage of preventing the illegal use of the hardware from being changed by preventing the operation of illegally altered software by an unauthorized user in a specific hardware.

도 1 및 도 2는 종래의 임베디드 소프트웨어 무결성 보장 시스템의 구동을 나타낸 예시도이다.
도 3은 본 발명의 일 실시예에 따른 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템의 구성을 나타낸 도면이다.
도 4 내지 도 6은 본 발명의 일 실시예에 따른 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템의 구동을 나타낸 예시도이다.
도 7은 본 발명의 CBC 기반의 임베디드 소프트웨어 무결성 보장 방법을 나타낸 순서도이다.
1 and 2 are exemplary diagrams showing driving of a conventional embedded software integrity guarantee system.
3 is a diagram showing the configuration of a CBC-based embedded software integrity guarantee system according to an embodiment of the present invention.
4 to 6 are exemplary diagrams showing driving of a CBC-based embedded software integrity guarantee system according to an embodiment of the present invention.
7 is a flow chart showing a method of ensuring the integrity of embedded software based on CBC according to the present invention.

이하 첨부한 도면들을 참조하여 본 발명의 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법을 상세히 설명한다. 다음에 소개되는 도면들은 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 예로서 제공되는 것이다. 따라서, 본 발명은 이하 제시되는 도면들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 또한, 명세서 전반에 걸쳐서 동일한 참조번호들은 동일한 구성요소들을 나타낸다.Hereinafter, a CBC-based embedded software integrity guarantee system and method of the present invention will be described in detail with reference to the accompanying drawings. The drawings introduced below are provided as examples in order to sufficiently convey the spirit of the present invention to those skilled in the art. Accordingly, the present invention is not limited to the drawings presented below and may be embodied in other forms. In addition, the same reference numbers throughout the specification indicate the same elements.

이 때, 사용되는 기술 용어 및 과학 용어에 있어서 다른 정의가 없다면, 이 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 통상적으로 이해하고 있는 의미를 가지며, 하기의 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 설명은 생략한다.In this case, unless there are other definitions in the technical terms and scientific terms used, they have the meanings commonly understood by those of ordinary skill in the art to which this invention belongs, and the gist of the present invention in the following description and accompanying drawings Descriptions of known functions and configurations that may unnecessarily obscure are omitted.

더불어, 시스템은 필요한 기능을 수행하기 위하여 조직화되고 규칙적으로 상호 작용하는 장치, 기구 및 수단 등을 포함하는 구성 요소들의 집합을 의미한다.In addition, a system refers to a set of components including devices, devices, and means that are organized and regularly interact to perform a required function.

본 발명의 일 실시예에 따른 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법은, 시큐어 부트(Secure Boot) 과정에서, 암호화 키가 유출되더라도, 시스템 내에 존재하는 암호화된 소프트웨어 이미지(시큐어 부트 이미지)의 복호화를 불가능하게 하여, 유출된 암호화 키로 암호화된 해킹 소프트웨어의 구동을 불가능하게 할 수 있는 장점이 있다.CBC-based embedded software integrity guarantee system and method according to an embodiment of the present invention, even if an encryption key is leaked during a secure boot process, the encrypted software image (secure boot image) existing in the system is There is an advantage in that decryption is impossible, so that it is impossible to run hacking software encrypted with the leaked encryption key.

이는, CBC 암호화 방식의 알고리즘을 이용하여, 이미지의 1bit라도 변조가 발생하면, 정상적인 복호화가 불가능한 특징을 이용한 것이다.This is because the CBC encryption algorithm is used, and if even 1 bit of the image is modulated, normal decryption is impossible.

상세하게는, 블록 암호(Block cipher)란 기밀성 있는 정보를 고정된 크기의 블록단위로 구성하여, 암호화 작업을 하는 대칭키 암호 시스템으로, 암호문(Security text)은 평문(Plain text)의 반복되는 회전 함수로 생산되며 회전함수의 입력은 키(key)와 전변 회전 출력(Output of previous round)으로 구성된다.Specifically, a block cipher is a symmetric key encryption system that encrypts confidential information in blocks of a fixed size, and the security text is a repetitive rotation of plain text. It is produced as a function, and the input of the rotation function consists of a key and an Output of previous round.

CBC(Cipher-Block Chaining, 암호블록 체인방식)은 이러한 블록 암호의 한 방식으로, 각 블록은 암호화되기 전에 이전 블록의 암호화 결과와 XOR 연산을 수행하며, 첫 블록의 경우 IV(초기화벡터)를 사용하게 된다. 초기화벡터의 경우, 출력 결과가 항상 동일하기 때문에, 매 암호화마다 다른 IV를 사용해야 한다.CBC (Cipher-Block Chaining) is one of these block ciphers. Each block performs an XOR operation with the encryption result of the previous block before being encrypted, and IV (initialization vector) is used for the first block. It is done. In the case of the initialization vector, since the output result is always the same, a different IV must be used for each encryption.

CBC 방식은 현재 널리 사용되는 블록 암호 운용 방식이며, 암호화 입력값이 이전 결과에 의존하기 때문에, 병렬화가 불가능하지만, 복호화의 경우, 각 블록을 복호화한 다음 이전 암호화 블록과 XOR 연산을 통해 복구할 수 있으므로 병렬화가 가능하다.The CBC method is a currently widely used block cipher operation method, and because the encryption input value depends on the previous result, parallelization is impossible, but in the case of decryption, each block can be decrypted and then recovered through XOR operation with the previous encryption block. Therefore, parallelization is possible.

많은 분야에서 사용되고 있는 CBC 방식의 암호화 알고리즘은, 암호화된 전체의 이미지 중 1bit라도 변조가 발생하면 올바른 암호화 키로 복호화를 시도하여도, 원본과 전혀 다른 값으로 복호화가 되는 특성이 있다.The CBC encryption algorithm used in many fields has a characteristic that if even 1 bit of the entire encrypted image is altered, decryption is attempted with the correct encryption key, decryption is performed with a completely different value from the original.

이에 따라, 본 발명의 일 실시예에 따른 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템 및 그 방법은, 이러한 CBC 암호화의 특성을 이용하여, 임베디드 소프트웨어의 해킹 펌웨어 구동을 방지하는데 활용하도록 한다.Accordingly, the CBC-based embedded software integrity guarantee system and method according to an embodiment of the present invention are utilized to prevent the hacking firmware drive of the embedded software by using the CBC encryption characteristic.

즉, 원본 소프트웨어 이미지를 CBC 방식의 암호화 알고리즘을 이용하여 암호화하고, 암호화된 이미지의 일부를 비휘발성 메모리가 아닌 FPGA(Field Programmable Gate Array)에 구현된 내부 메모리나 보안성이 높은 저장소에 저장하고, 암호화된 이미지에서 저장된 부분에 해당하는 위치의 바이너리를 의미없는 값들로 채운 후, 이 이미지를 부팅용 비휘발성 메모리에 저장하게 된다.That is, the original software image is encrypted using a CBC-type encryption algorithm, and a part of the encrypted image is stored in an internal memory or high-security storage implemented in an FPGA (Field Programmable Gate Array) instead of a non-volatile memory. After filling the binary at the location corresponding to the stored portion of the encrypted image with meaningless values, the image is stored in a nonvolatile memory for booting.

파워가 온되면, 부트 로더에 의해, 비휘발성 메모리에 저장되어 있는 이미지를 RAM에 로딩하고, FPGA나 별도의 저장소에 저장된 이미지 블록을 가져와서 RAM에 로딩한 이미지의 해당 위치에 오버라이트(Overwrite)한 후, 복호화를 진행하게 된다.When the power is turned on, the boot loader loads the image stored in the nonvolatile memory into RAM, retrieves the image block stored in the FPGA or a separate storage, and overwrites the image loaded in the RAM at the corresponding location. After that, decryption proceeds.

이 때, 변조된 펌웨어가 노출된 암호키에 의해 암호화되어 비휘발성 메모리에 저장되어 있더라도, 오버라이트되는 이미지 블록에 의해 해킹된 이미지에 변조가 발생할 것이고, 이 후, 올바른 암호키로 복호화를 시도할 경우, CBC 알고리즘의 특성에 의해 원래 이미지가 아닌 비정상 값의 형태로 복호화가 이루어져, 해킹 펌웨어 구동이 불가능하게 된다.At this time, even if the modified firmware is encrypted by the exposed encryption key and stored in the nonvolatile memory, the hacked image will be altered by the overwritten image block, and then decryption is attempted with the correct encryption key. , The decoding is performed in the form of an abnormal value other than the original image due to the characteristics of the CBC algorithm, making it impossible to drive the hacking firmware.

또한, 최초 제작자에 의해 정상적으로 암호화된 부팅용 이미지가, 해킹을 위해 Flash loader 등의 기기에 의해 읽혀지더라도, 이미지의 일부가 변조되어 있기 때문에, 암호키가 노출되었어도 정상적인 복호화가 불가능하여 원본 소프트웨어 내용의 보존이 가능하게 된다.In addition, even if the booting image normally encrypted by the original creator is read by a device such as a flash loader for hacking, a part of the image is altered, so even if the encryption key is exposed, normal decryption is not possible. Preservation becomes possible.

이를 드론과 같이 무인기 분야에 적용시킬 경우, 의도치 않게 추락한 기체에 내장된 소프트웨어의 분석을 통한 소프트웨어 기술 유출을 방지할 수 있으며, 허가되지 않은 사용자에 의한 기체의 재사용을 방지할 수 있는 장점이 있다.If this is applied to the field of unmanned aerial vehicles such as drones, it is possible to prevent the leakage of software technology through analysis of the software embedded in the crashed aircraft, and the advantage of preventing the reuse of the aircraft by unauthorized users. have.

이러한 본 발명의 일 실시예에 따른 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템은 도 3에 도시된 바와 같이, 암호화부(100), 추가 암호화부(200), 복원부(300), 복호화부(400 및 무결성 판단부(500)를 포함하여 구성되는 것이 바람직하며, 임베디드 소프트웨어(Embedded software)의 보안 부팅(Secure booting)을 위한 CBC(Cipher-Block Chaining) 기반의 임베디드 소프트웨어 무결성 보장 시스템에 관한 것이다.As shown in FIG. 3, the CBC-based embedded software integrity guarantee system according to an embodiment of the present invention includes an encryption unit 100, an additional encryption unit 200, a restoration unit 300, a decryption unit 400, and It is preferably configured to include an integrity determination unit 500, and relates to an embedded software integrity guarantee system based on Cipher-Block Chaining (CBC) for secure booting of embedded software.

각 구성에 대해서 자세히 알아보자면, To learn more about each configuration,

상기 암호화부(100)는 CBC 기반으로, 입력받은 이미지 데이터에 미리 설정된 암호화 알고리즘을 적용하여, 시큐어 부트 이미지(secure boot image) 데이터를 생성하는 것이 바람직하다.It is preferable that the encryption unit 100 generates secure boot image data by applying a preset encryption algorithm to the input image data based on CBC.

이 때, 상기 이미지 데이터는, 사용자(제작자 등)에 의해 입력받는 것이 바람직하며, 상기 시큐어 부트 이미지란, 도 1로 예시를 들자면, 제작자에 의해 의도된 암호화 소프트웨어 이미지를 의미한다.In this case, the image data is preferably input by a user (producer, etc.), and the secure boot image refers to an encrypted software image intended by the manufacturer, exemplified by FIG. 1.

이 때, 상기 미리 설정된 암호화 알고리즘으로는, AEC/DES 등의 암호화 알고리즘을 이용하는 것이 바람직하며, SHA/MD5 등의 알고리즘을 이용하여 사인값(sign)을 계산하는 것이 바람직하다.In this case, as the preset encryption algorithm, it is preferable to use an encryption algorithm such as AEC/DES, and it is preferable to calculate a sign using an algorithm such as SHA/MD5.

이러한 상기 암호화부(100)의 역할은 종래의 임베디드 소프트웨어의 무결성 보장 시스템에서의 암호화 수행 동작과 거의 유사하게 이루어진다.The role of the encryption unit 100 is performed almost similar to the operation of performing encryption in a conventional embedded software integrity guarantee system.

그렇지만, 본 발명의 일 실시예에 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템은 상술한 바와 같이, CBC 기반으로 이미 암호화된 소프트웨어 이미지를 다시 한번 암호화하는 것이 바람직하다.However, in the CBC-based embedded software integrity guarantee system according to an embodiment of the present invention, as described above, it is preferable to once again encrypt a software image that has already been encrypted based on CBC.

이러한 동작은, 상기 추가 암호화부(200)를 통해서 수행되는 것이 바람직하다.This operation is preferably performed through the additional encryption unit 200.

상기 추가 암호화부(200)는 도 4에 도시된 바와 같이, 암호화된 소프트웨어 이미지 중 일부를 추출하여, FPGA의 특정 블록(block)이나, 변경 불가능하고 보안성이 높은 별도의 저장소에 저장하고, 추출한 해당 위치에는 의미없는 랜덤값으로 이미지 변경을 수행하는 것이 바람직하다.As shown in FIG. 4, the additional encryption unit 200 extracts a part of the encrypted software image, stores it in a specific block of the FPGA, or a separate storage with high security and unchangeability, and extracts the It is desirable to perform image change with a random value that is meaningless at the location.

즉, 상기 추가 암호화부(200)는 상기 암호화부(100)에서 생성한 상기 시큐어 부트 이미지 데이터에 대해, 소정 영역 이미지를 추출하여 FPGA 또는 별도의 보안성이 높은 저장소에 저장하고, 추출된 해당 영역은 소정 이미지(무의미한 랜덤값 등)로 변경하여 부팅용 시큐어 부트 이미지 데이터를 생성하는 것이 바람직하다.That is, the additional encryption unit 200 extracts a predetermined area image from the secure boot image data generated by the encryption unit 100 and stores it in an FPGA or a separate storage with high security, and the extracted corresponding area It is preferable to generate secure boot image data for booting by changing to a predetermined image (insignificant random value, etc.).

이렇게 생성한 상기 부팅용 시큐어 부트 이미지 데이터는 비휘발성 메모리에 저장시킴으로써, 추후에 파워가 온되면, 부트 로더에 의해, 비휘발성 메모리에 저장되어 있는 이미지를 RAM에 로딩하여 이 후 동작을 수행하게 된다.The secure boot image data for booting generated in this way is stored in a nonvolatile memory, so that when the power is turned on later, the boot loader loads the image stored in the nonvolatile memory into RAM and performs subsequent operations. .

상세하게는, 상기 추가 암호화부(200)는 상기 시큐어 부트 이미지 데이터의 전체 영역 중 미리 설정된 개수만큼의 소정 영역에 해당하는 이미지들을 추출하여, FPGA 또는 별도의 보안성이 높은 저장소(단일 기록만 가능한 메모리 소자(One time writable media)인 것이 가장 바람직함.)에 저장하고, 추출된 상기 영역들과 매칭되는 영역의 이미지들은 소정 이미지(무의미한 랜덤값 등)로 변경하여 부팅용 시큐어 부트 이미지 데이터를 생성하는 것이 바람직하다.In detail, the additional encryption unit 200 extracts images corresponding to a predetermined number of predetermined areas among the entire areas of the secure boot image data, and is used in an FPGA or a separate storage with high security (only a single record is possible). It is stored in a memory device (one time writable media is most preferable.), and the extracted images of the regions matching the regions are changed to a predetermined image (insignificant random value, etc.) to generate secure boot image data for booting. It is desirable to do it.

상기 복원부(300)는 사용자의 요청에 의해 부팅 신호가 입력될 경우, 즉, 파워가 온될 경우, 비휘발성 메모리에 저장하고 있는 부팅용 시큐어 부트 이미지 데이터에 상기 추가 암호화부(200)에서 저장하고 있는 추출 이미지들을 오버라이트(overwrite)하여 시큐어 부트 이미지 데이터로 복원하게 된다.When a boot signal is input by a user's request, that is, when the power is turned on, the restoration unit 300 stores the secure boot image data for booting stored in a nonvolatile memory in the additional encryption unit 200, and Existing extracted images are overwritten to restore secure boot image data.

즉, 종래의 임베디드 소프트웨어의 무결성 보장 시스템이라면, 비휘발성 메모리에 저장하고 있는 부팅용 시큐어 부트 이미지 데이터에 대한 복호화를 바로 수행하여, 복호화 결과 이미지를 이용하여 상기 임베디드 소프트웨어의 정상 부팅 가능 여부를 판단하게 된다.That is, in the case of a conventional embedded software integrity guarantee system, the secure boot image data for booting stored in the nonvolatile memory is immediately decoded, and the decoding result image is used to determine whether the embedded software can be booted normally. do.

그렇지만, 상술한 바와 같이, 유출된 암호키에 의해 암호화된 해킹 이미지가 부팅용 시큐어 부트 이미지 데이터로 저장되어 있을 경우, 이에 의한 해킹 소프트웨어 구동을 막을 수 없다. 즉, 유출된 암호키에 의해 생성된 해킹 소프트웨어 구동을 막을 수 없는 실정이다.However, as described above, when the hacking image encrypted by the leaked encryption key is stored as secure boot image data for booting, it is not possible to prevent the hacking software from being driven by this. In other words, it is impossible to prevent the operation of hacking software generated by the leaked encryption key.

이에 반해서, 본 발명의 일 실시예에 따른 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템은 상기 복원부(300)를 통해서, 상기 추가 암호화부(200)에서 저장하고 있는 상기 소정 영역에 해당하는 이미지들을 각각의 영역에 맞추어 부팅용 시큐어 부트 이미지 데이터에 오버라이트하여, 시큐어 부트 이미지 데이터로 복원하는 것이 바람직하다.In contrast, in the CBC-based embedded software integrity guarantee system according to an embodiment of the present invention, through the restoration unit 300, images corresponding to the predetermined area stored in the additional encryption unit 200 are each It is preferable to overwrite the secure boot image data for booting according to the region to restore the secure boot image data.

다시 말하자면, 도 5에 도시된 바와 같이, 비휘발성 메모리에 저장하고 있는 부팅용 시큐어 부트 이미지 데이터를 전달받아, 상기 부팅용 시큐어 부트 이미지 데이터에 상기 단일 기록만 가능한 메모리 소자에 저장하고 있던 추출 이미지들을 오버라이트함으로써, 최초 암호화한 이미지로 복원하게 된다.In other words, as shown in FIG. 5, the secure boot image data for booting stored in the nonvolatile memory is received, and extracted images stored in the memory device capable of only writing the single record to the secure boot image data for booting are transferred. By overwriting, the first encrypted image is restored.

이 때, 정상적인 암호화키에 의해 암호화된 소프트웨어 이미지라면, 도 5에 도시된 바와 같이, 정상 암호화키에 암호화된 소프트웨어 이미지로 복원되겠지만, 해커에 의해 유출된 암호화키에 의해 암호화된 소프트웨어 이미지라면, 도 6에 도시된 바와 같이, 손상된 암호화된 소프트웨어 이미지로 복원되게 된다.At this time, if the software image is encrypted by the normal encryption key, as shown in FIG. 5, the software image encrypted by the normal encryption key will be restored, but if the software image is encrypted by the encryption key leaked by a hacker, As shown in Fig. 6, the corrupted encrypted software image is restored.

즉, 도 5에 도시된 바와 같이, 비휘발성 메모리에 저장하고 있는 부팅용 시큐어 부트 이미지 데이터를 전달받아, 상기 단일 기록만 가능한 메모리 소자에 저장하고 있던 추출 이미지들을 원래 있던 위치에 오버라이트하여, 암호화된 이미지를 원래대로 복원할 수 있다.That is, as shown in FIG. 5, by receiving secure boot image data for booting stored in a nonvolatile memory, overwriting the extracted images stored in the memory device capable of only single recording to the original location, encryption You can restore the original image.

이 경우, 상기 복호화부(400)에서 미리 설정된 복호화 알고리즘(AES/DES 등 알고리즘 설정)을 적용하여, 상기 복원부(300)에서 복원한 상기 시큐어 부트 이미지 데이터를 복호화할 경우, 정상적인 복호화된 소프트웨어 이미지로 수행되게 된다.In this case, when decoding the secure boot image data restored by the restoration unit 300 by applying a preset decryption algorithm (algorithm setting such as AES/DES) in the decryption unit 400, a normal decrypted software image Will be performed as.

이에 따라, 상기 무결성 판단부(500)에서는, 상기 복호화부(400)의 복호화 결과에 따라, 복호화된 소프트웨어 이미지와 사인확인결과 문제가 없을 경우, 상기 임베디드 소프트웨어의 정상 부팅 가능으로 판단하고, 정상적으로 부팅이 수행되도록 제어하게 된다.Accordingly, in the integrity determination unit 500, if there is no problem as a result of the decoded software image and sign verification according to the decoding result of the decoding unit 400, it determines that the embedded software can be booted normally, and boots normally. Is controlled to be performed.

그렇지만, 도 6에 도시된 바와 같이, 비휘발성 메모리에 저장하고 있는 부팅용 시큐어 부트 이미지 데이터를 전달받아, 상기 단일 기록만 가능한 메모리 소자에 저장하고 있던 추출 이미지들을 원래 있던 위치에 오버라이트하였으나, 비휘발성 메모리에 저장하고 있는 부팅용 시큐어 부트 이미지 데이터 자체가 이미 해커에 의해 유출된 암호키로 만들어진 오염(손상)된 이미지 데이터이기 때문에, 암호화된 이미지를 원래대로 복원할 수 없다. 하지만, 상기 복원부(300)에서는 이를 판단할 수 없으며, 상기 복호화부(400)를 통해서, 미리 설정된 복호화 알고리즘을 적용하여, 상기 복원부(300)에서 복원한 상기 시큐어 부트 이미지 데이터를 복호화할 경우, 비정상적인 복호화된 소프트웨어 이미지로 수행되게 된다.However, as shown in FIG. 6, the secure boot image data for booting stored in the nonvolatile memory was received, and the extracted images stored in the memory device capable of only single writing were overwritten to the original location. Since the secure boot image data for booting stored in the volatile memory itself is contaminated (damaged) image data created with an encryption key that has already been leaked by a hacker, the encrypted image cannot be restored to its original state. However, the restoration unit 300 cannot determine this, and when the secure boot image data restored by the restoration unit 300 is decoded by applying a preset decryption algorithm through the decryption unit 400 , It is executed as an abnormal decoded software image.

상기 복호화부(400) 역시도 이에 대해서는 판단할 수 없으며, 상기 무결성 판단부(500)에서, 비정상적으로 복호화된 소프트웨어 이미지의 사인확인결과, 불일치로 해킹 소프트웨어로 판단하여, 부팅 수행을 중단하게 된다.The decryption unit 400 also cannot determine this, and the integrity determination unit 500 determines that the sign of the abnormally decrypted software image as a hacking software is inconsistent, and stops booting.

이 때, 상기 단일 기록만 가능한 메모리 소자에 저장하고 있던 추출 이미지들은, 정상적인 시스템 개발시, one-time writable media에 기록된 값이기 때문에, 해커에 의해 변조가 발생할 수 없다.At this time, the extracted images stored in the memory device capable of only single recording are values recorded in one-time writable media during normal system development, and thus cannot be tampered with by a hacker.

즉, 다시 말하자면, 본발명의 일 실시예에 따른 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템은, CBC 방식으로 암호화된 이미지의 일부를 추출하여 별도의 공간에 저장해놓고, 암호화된 이미지에서 추출된 부분의 값은 랜덤값으로 변경하게 된다. 즉, 소프트웨어 이미지 생성 절차에서 암호화된 이미지의 일부를 랜덤값으로 변형시키기 때문에, CBC 암호화 방식의 특징에 의해 암호키가 유출되더라도 정상적인 복호화가 불가능한 장점이 있다.That is, in other words, the CBC-based embedded software integrity guarantee system according to an embodiment of the present invention extracts a part of an image encrypted by the CBC method and stores it in a separate space, and the value of the part extracted from the encrypted image Is changed to a random value. That is, since a part of the encrypted image is transformed into a random value in the software image generation procedure, there is an advantage that normal decryption is impossible even if the encryption key is leaked due to the characteristic of the CBC encryption method.

또한, 특정 하드웨어에서 해커로부터 변조된 소프트웨어의 구동을 방지할 수도 있다. 즉, 특정 소프트웨어를 암호화한 후, 일부를 FPGA 등에 저장하고, 구동시 저장된 값으로 소프트웨어의 일부를 오버라이트 하기 때문에, 의도하지 않은 소프트웨어를 제외하고는 암호화된 소프트웨어의 복호화가 불가능하기 때문이다. 즉, 유출된 암호키에 의해 암호화된 이미지여도, 부트 로더에 의해, 일부가 추출된 부분의 값으로 오버라이트됨에 따라 유출된 암호키에 의해 암호화된 이미지가 변형되어 정상 복호화가 불가능하게 된다.In addition, it is also possible to prevent hackers from running modulated software on certain hardware. That is, since certain software is encrypted, a part is stored in an FPGA, etc., and a part of the software is overwritten with the saved value during operation, it is impossible to decrypt the encrypted software except for unintended software. That is, even if the image is encrypted by the leaked encryption key, the image encrypted by the leaked encryption key is deformed as the boot loader overwrites the value of the extracted portion, making normal decryption impossible.

도 7은 본 발명의 일 실시예에 따른 CBC 기반의 임베디드 소프트웨어 무결성 보장 방법을 나타낸 순서도로서, 본 발명의 일 실시예에 따른 CBC 기반의 임베디드 소프트웨어 무결성 보장 방법은, 시큐어 이미지 생성단계(S100), 암호화 이미지 변환단계(S200), 복원단계(S300), 복호화단계(S400) 및 무결성 판단단계(S500)로 이루어지는 것이 바람직하다.7 is a flow chart showing a CBC-based embedded software integrity guarantee method according to an embodiment of the present invention, the CBC-based embedded software integrity guarantee method according to an embodiment of the present invention, a secure image generation step (S100), It is preferable to consist of an encrypted image conversion step (S200), a restoration step (S300), a decryption step (S400), and an integrity determination step (S500).

각 단계에 대해서 자세히 알아보자면,To learn more about each step,

상기 시큐어 이미지 생성단계(S100)는 상기 암호화부(100)에서, CBC 기반으로, 입력받은 이미지 데이터에 미리 설정된 암호화 알고리즘을 적용하여, 상기 시큐어 부트 이미지 데이터를 생성하는 것이 바람직하다.In the secure image generating step (S100), it is preferable that the encryption unit 100 generates the secure boot image data by applying a preset encryption algorithm to the input image data based on CBC.

이 때, 상기 이미지 데이터는, 사용자(제작자 등)에 의해 입력받는 것이 바람직하며, 상기 시큐어 부트 이미지란, 도 1로 예시를 들자면, 제작자에 의해 의도된 암호화 소프트웨어 이미지를 의미한다.In this case, the image data is preferably input by a user (producer, etc.), and the secure boot image refers to an encrypted software image intended by the manufacturer, exemplified by FIG. 1.

이 때, 상기 미리 설정된 암호화 알고리즘으로는, AEC/DES 등의 암호화 알고리즘을 이용하는 것이 바람직하며, SHA/MD5 등의 알고리즘을 이용하여 사인값(sign)을 계산하는 것이 바람직하다.In this case, as the preset encryption algorithm, it is preferable to use an encryption algorithm such as AEC/DES, and it is preferable to calculate a sign using an algorithm such as SHA/MD5.

상기 암호화 이미지 변환단계(S200)는 상기 추가 암호화부(200)에서, 암호화된 소프트웨어 이미지 중 일부를 추출하여, FPGA의 특정 블록(block)이나, 변경 불가능하고 보안성이 높은 별도의 저장소에 저장하고, 추출한 해당 위치에는 의미없는 랜덤값으로 이미지 변경을 수행하여, 상기 부팅용 시큐어 부트 이미지 데이터로 변환하는 것이 바람직하다.In the step of converting the encrypted image (S200), the additional encryption unit 200 extracts a part of the encrypted software image and stores it in a specific block of the FPGA or a separate storage that is immutable and has high security. , It is preferable to convert the image into the secure boot image data for booting by performing image change at a random value that is meaningless to the extracted corresponding position.

상세하게는, 상기 암호화 이미지 변환단계(S200)는 상기 시큐어 이미지 생성단계(S100)에 의해 생성한 상기 시큐어 부트 이미지 데이터에 대해, 소정 영역 이미지를 추출하여 FPGA 또는 별도의 보안성이 높은 저장소에 저장하고, 추출된 해당 영역은 소정 이미지(무의미한 랜덤값 등)로 변경하여 부팅용 시큐어 부트 이미지 데이터를 변환/생성하는 것이 바람직하다.Specifically, in the encrypted image conversion step (S200), a predetermined area image is extracted from the secure boot image data generated by the secure image generating step (S100) and stored in an FPGA or a separate high-security storage. In addition, it is preferable to convert/generate the secure boot image data for booting by changing the extracted corresponding region to a predetermined image (a meaningless random value, etc.).

이렇게 생성한 상기 부팅용 시큐어 부트 이미지 데이터는 비휘발성 메모리에 저장시킴으로써, 추후에 파워가 온되면, 부트 로더에 의해, 비휘발성 메모리에 저장되어 있는 이미지를 RAM에 로딩하여 이 후 동작을 수행하게 된다.The secure boot image data for booting generated in this way is stored in a nonvolatile memory, so that when the power is turned on later, the boot loader loads the image stored in the nonvolatile memory into RAM and performs subsequent operations. .

상기 암호화 이미지 변환단계(S200)는 상기 시큐어 부트 이미지 데이터의 전체 영역 중 미리 설정된 개수만큼의 소정 영역에 해당하는 이미지들을 추출하여, FPGA 또는 별도의 보안성이 높은 저장소(단일 기록만 가능한 메모리 소자(One time writable media)인 것이 가장 바람직함.)에 저장하고, 추출된 상기 영역들과 매칭되는 영역의 이미지들은 소정 이미지(무의미한 랜덤값 등)로 변경하여 부팅용 시큐어 부트 이미지 데이터를 생성하는 것이 바람직하다.The encrypted image conversion step (S200) extracts images corresponding to a predetermined area as many as a preset number from among the entire areas of the secure boot image data, and uses an FPGA or a separate storage with high security (a memory device capable of only writing a single record). One time writable media) is most preferable.), and the extracted images of the regions matching the regions are changed to a predetermined image (insignificant random value, etc.) to generate secure boot image data for booting. Do.

상기 복원단계(S300)는 상기 복원부(300)에서, 사용자의 요청에 의해 부팅 신호가 입력될 경우, 즉, 파워가 온될 경우, 비휘발성 메모리에 저장하고 있는 부팅용 시큐어 부트 이미지 데이터에 상기 암호화 이미지 변환단계(S200)에서 추출하여 저장 및 관리하고 있는 소정 영역에 해당하는 이미지들을 오버라이트하여 시큐어 부트 이미지 데이터로 복원하게 된다.In the restoration step (S300), when a booting signal is input by the user's request, that is, when the power is turned on, the restoration unit 300 encrypts the secure boot image data for booting stored in a nonvolatile memory. Images corresponding to a predetermined area extracted, stored and managed in the image conversion step S200 are overwritten to restore secure boot image data.

다시 말하자면, 상기 복원단계(S300)는 비휘발성 메모리에 저장하고 있는 부팅용 시큐어 부트 이미지 데이터를 전달받아, 상기 부팅용 시큐어 부트 이미지 데이터에 상기 단일 기록만 가능한 메모리 소자에 저장하고 있던 추출 이미지들을 오버라이트함으로써, 최초 암호화한 이미지로 복원하게 된다.In other words, the restoration step (S300) receives the secure boot image data for booting stored in the nonvolatile memory, and overwrites the extracted images stored in the memory device capable of only writing the single record to the secure boot image data for booting. By writing, the first encrypted image is restored.

이 때, 정상적인 암호화키에 의해 암호화된 소프트웨어 이미지라면, 도 5에 도시된 바와 같이, 정상 암호화키에 암호화된 소프트웨어 이미지로 복원되겠지만, 해커에 의해 유출된 암호화키에 의해 암호화된 소프트웨어 이미지라면, 도 6에 도시된 바와 같이, 손상된 암호화된 소프트웨어 이미지로 복원되게 된다.At this time, if the software image is encrypted by the normal encryption key, as shown in FIG. 5, the software image encrypted by the normal encryption key will be restored, but if the software image is encrypted by the encryption key leaked by a hacker, As shown in Fig. 6, the corrupted encrypted software image is restored.

즉, 도 5에 도시된 바와 같이, 비휘발성 메모리에 저장하고 있는 부팅용 시큐어 부트 이미지 데이터를 전달받아, 상기 단일 기록만 가능한 메모리 소자에 저장하고 있던 추출 이미지들을 원래 있던 위치에 오버라이트하여, 암호화된 이미지를 원래대로 복원할 수 있다.That is, as shown in FIG. 5, by receiving secure boot image data for booting stored in a nonvolatile memory, overwriting the extracted images stored in the memory device capable of only single recording to the original location, encryption You can restore the original image.

이 경우, 상기 복호화단계(S400)를 통해서, 상기 복호화부(400)에서, 미리 설정된 복호화 알고리즘을 적용하여, 상기 복원단계(S300)에 의해 복원한 상기 시큐어 부트 이미지 데이터를 복호화할 경우, 정상적인 복호화된 소프트웨어 이미지로 수행되게 된다.In this case, through the decoding step (S400), when the decoding unit 400 applies a preset decoding algorithm to decode the secure boot image data restored by the restoration step (S300), normal decoding It is executed with the software image.

이에 따라, 상기 무결성 판단단계(S500)는 상기 무결성 판단부(500)에서, 상기 복호화단계(S400)에 의해 상기 시큐어 부트 이미지 데이터의 복호화 결과에 따라, 복호화된 소프트웨어 이미지와 사인확인결과 문제가 없을 경우, 상기 임베디드 소프트웨어의 정상 부팅 가능으로 판단하고, 정상적으로 부팅이 수행되도록 제어하게 된다.Accordingly, in the integrity determination step (S500), in the integrity determination unit 500, according to the decryption result of the secure boot image data by the decoding step (S400), there is no problem as a result of the decoded software image and the sign verification result. In this case, it is determined that the embedded software can be booted normally, and the booting is controlled so that the booting is normally performed.

그렇지만, 이와 달리, 도 6에 도시된 바와 같이, 비휘발성 메모리에 저장하고 있는 부팅용 시큐어 부트 이미지 데이터를 전달받아, 상기 단일 기록만 가능한 메모리 소자에 저장하고 있던 추출 이미지들을 원래 있던 위치에 오버라이트하였으나, 비휘발성 메모리에 저장하고 있는 부팅용 시큐어 부트 이미지 데이터 자체가 이미 해커에 의해 유출된 암호키로 만들어진 오염(손상)된 이미지 데이터이기 때문에, 암호화된 이미지를 원래대로 복원할 수 없다.However, unlike this, as shown in FIG. 6, by receiving the secure boot image data for booting stored in the nonvolatile memory, the extracted images stored in the memory device capable of only single writing are overwritten to the original location. However, since the secure boot image data for booting stored in the nonvolatile memory itself is contaminated (damaged) image data created with an encryption key that has already been leaked by a hacker, the encrypted image cannot be restored to its original state.

그렇기 때문에, 상기 복호화단계(S400)를 통해서, 미리 설정된 복호화 알고리즘을 적용하여, 복원한 상기 시큐어 부트 이미지 데이터를 복호화하더라도 비정상적인 소프트웨어 이미지로 수행되게 된다.Therefore, even if the restored secure boot image data is decoded by applying a preset decoding algorithm through the decoding step (S400), it is performed as an abnormal software image.

이에 따라, 상기 무결성 판단단계(S500) 역시도, 상기 복호화단계(S400)에 의해 상기 시큐어 부트 이미지 데이터의 복호화 결과에 따라, 비정상적으로 복호화된 소프트웨어 이미지의 사인확인결과, 불일치로 해킹 소프트웨어로 판단하여, 부팅 수행을 중단하게 된다.Accordingly, in the integrity determination step (S500), according to the decryption result of the secure boot image data by the decryption step (S400), the sign verification result of the abnormally decoded software image, inconsistency, is determined as hacking software, It stops booting.

이 때, 상기 단일 기록만 가능한 메모리 소자에 저장하고 있던 추출 이미지들은, 정상적인 시스템 개발시, one-time writable media에 기록된 값이기 때문에, 해커에 의해 변조가 발생할 수 없다.At this time, the extracted images stored in the memory device capable of only single recording are values recorded in one-time writable media during normal system development, and thus cannot be tampered with by a hacker.

이상과 같이 본 발명에서는 구체적인 구성 소자 등과 같은 특정 사항들과 한정된 실시예 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것 일 뿐, 본 발명은 상기의 일 실시예에 한정되는 것이 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, in the present invention, specific matters such as specific components and the like have been described by the drawings of limited embodiments, but this is provided only to help a more general understanding of the present invention, and the present invention is limited to the above-described embodiment. It is not, and those of ordinary skill in the field to which the present invention pertains can make various modifications and variations from this description.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허 청구 범위뿐 아니라 이 특허 청구 범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention is limited to the described embodiments and should not be determined, and all things that are equivalent or equivalent to the scope of the claims as well as the claims to be described later belong to the scope of the spirit of the present invention. .

100 : 암호화부
200 : 추가 암호화부
300 : 복원부
400 : 복호화부
500 : 무결성 판단부
100: encryption unit
200: additional encryption unit
300: restoration unit
400: decryption unit
500: integrity determination unit

Claims (9)

임베디드 소프트웨어(Embedded software)의 보안 부팅(secure booting)을 위한 CBC(Cipher-Block Chaining) 기반의 임베디드 소프트웨어 무결성 보장 시스템에 있어서,
입력받은 이미지 데이터에 기설정된 암호화 알고리즘을 적용하여, 시큐어 부트 이미지(secure boot image) 데이터를 생성하는 암호화부(100);
상기 암호화부(100)에서 생성한 상기 시큐어 부트 이미지 데이터에 대해, 소정 영역 이미지를 추출하여 저장하고, 추출된 해당 영역은 소정 이미지로 변경하여 부팅용 시큐어 부트 이미지 데이터로 전송하는 추가 암호화부(200);
사용자의 요청에 의해 부팅 신호가 입력될 경우, 부팅용 시큐어 부트 이미지 데이터에 상기 추가 암호화부(200)에서 저장하고 있는 추출 이미지를 오버라이트(overwrite)하여 시큐어 부트 이미지 데이터로 복원하는 복원부(300);
기설정된 복호화 알고리즘을 적용하여, 상기 복원부(300)에서 복원한 상기 시큐어 부트 이미지 데이터를 복호화하는 복호화부(400); 및
상기 복호화부(400)의 복호화 결과에 따라, 상기 임베디드 소프트웨어의 정상 부팅 가능 여부를 판단하는 무결성 판단부(500);
를 포함하는 것을 특징으로 하는 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템.
In the embedded software integrity guarantee system based on Cipher-Block Chaining (CBC) for secure booting of embedded software,
An encryption unit 100 for generating secure boot image data by applying a predetermined encryption algorithm to the input image data;
An additional encryption unit 200 for extracting and storing a predetermined area image for the secure boot image data generated by the encryption unit 100, changing the extracted area to a predetermined image, and transmitting it as secure boot image data for booting. );
When a booting signal is input by a user's request, a restoration unit 300 that overwrites the extracted image stored in the additional encryption unit 200 to the secure boot image data for booting to restore the secure boot image data. );
A decoding unit 400 for decoding the secure boot image data restored by the recovery unit 300 by applying a preset decoding algorithm; And
An integrity determination unit 500 that determines whether or not the embedded software can be booted normally according to the decoding result of the decoding unit 400;
CBC-based embedded software integrity guarantee system comprising a.
제 1항에 있어서,
상기 추가 암호화부(200)는
상기 시큐어 부트 이미지 데이터의 전체 영역 중 미리 설정된 개수만큼의 소정 영역에 해당하는 이미지들을 추출하여 저장하고,
추출된 상기 영역들과 매칭되는 영역의 이미지들은 소정 이미지로 변경하여 상기 부팅용 시큐어 부트 이미지 데이터를 생성하는 것을 특징으로 하는 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템.
The method of claim 1,
The additional encryption unit 200
Extracting and storing images corresponding to a predetermined area as many as a preset number among the entire areas of the secure boot image data,
CBC-based embedded software integrity guarantee system, characterized in that the extracted images of the regions matching the regions are changed to a predetermined image to generate the secure boot image data for booting.
제 2항에 있어서,
상기 추가 암호화부(200)는
단일 기록만 가능한 메모리 소자(One time writable media)를 포함하여 구성되며,
상기 시큐어 부트 이미지 데이터에서 추출한 소정 영역에 해당하는 이미지들을 상기 메모리 소자에 저장하는 것을 특징으로 하는 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템.
The method of claim 2,
The additional encryption unit 200
It is composed of a single write-only memory device (One time writable media),
CBC-based embedded software integrity guarantee system, characterized in that storing images corresponding to a predetermined region extracted from the secure boot image data in the memory device.
제 2항에 있어서,
상기 복원부(300)는
상기 추가 암호화부(200)에서 저장하고 있는 상기 소정 영역에 해당하는 이미지들을 각각의 영역에 맞추어 부팅용 시큐어 부트 이미지 데이터에 오버라이트하여, 시큐어 부트 이미지 데이터로 복원하는 것을 특징으로 하는 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템.
The method of claim 2,
The restoration unit 300 is
CBC-based embedded, characterized in that images corresponding to the predetermined area stored in the additional encryption unit 200 are overwritten in secure boot image data for booting according to each area, and are restored as secure boot image data. Software integrity assurance system.
제 4항에 있어서,
상기 무결성 판단부(500)는
상기 복호화 결과에 따라, 상기 부팅용 시큐어 부트 이미지 데이터의 이상 여부를 판단하여, 상기 임베디드 소프트웨어의 정상 부팅 가능 여부를 결정하는 것을 특징으로 하는 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템.
The method of claim 4,
The integrity determination unit 500
CBC-based embedded software integrity guarantee system, characterized in that by determining whether the secure boot image data for booting is abnormal according to the decoding result, and determining whether the embedded software can be booted normally.
임베디드 소프트웨어(Embedded software)의 보안 부팅(secure booting)을 위한 CBC(Cipher-Block Chaining) 기반의 임베디드 소프트웨어 무결성 보장 방법에 있어서,
암호화부에서, 입력받은 이미지 데이터에 기설정된 암호화 알고리즘을 적용하여, 시큐어 부트 이미지(secure boot image) 데이터를 생성하는 시큐어 이미지 생성단계(S100);
추가 암호화부에서, 상기 시큐어 이미지 생성단계(S100)에서 생성한 상기 시큐어 부트 이미지 데이터에 대해, 소정 영역 이미지를 추출하고 추출한 해당 영역을 소정 이미지로 변경하여 부팅용 시큐어 부트 이미지 데이터로 변환하는 암호화 이미지 변환단계(S200);
복원부에서, 사용자의 요청에 의해 부팅 신호가 입력될 경우, 부팅용 시큐어 부트 이미지 데이터에 상기 암호화 이미지 변환단계(S200)에서 추출하여 저장 및 관리하고 있는 소정 영역에 해당하는 이미지들을 오버라이트(overwrite)하여 시큐어 부트 이미지 데이터로 복원하는 복원단계(S300);
복호화부에서, 기설정된 복호화 알고리즘을 적용하여, 상기 복원단계(S300)에서 복원한 상기 시큐어 부트 이미지 데이터를 복호화하는 복호화단계(S400); 및
무결성 판단부에서, 상기 복호화단계(S400)에 의한 상기 시큐어 부트 이미지 데이터의 복호화 결과에 따라, 상기 임베디드 소프트웨어의 정상 부팅 가능 여부를 판단하는 무결성 판단단계(S500);
로 이루어지는 것을 특징으로 하는 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템.
In the method of ensuring the integrity of embedded software based on Cipher-Block Chaining (CBC) for secure booting of embedded software,
A secure image generation step (S100) of generating secure boot image data by applying a predetermined encryption algorithm to the input image data by the encryption unit;
An additional encryption unit extracts a predetermined area image from the secure boot image data generated in the secure image generation step (S100), converts the extracted area into a predetermined image, and converts the encrypted image into secure boot image data for booting. Conversion step (S200);
When a booting signal is input by the user's request, the restoration unit overwrites images corresponding to a predetermined area extracted, stored and managed in the encrypted image conversion step (S200) to the secure boot image data for booting. ) To restore the secure boot image data (S300);
A decoding step (S400) of decoding the secure boot image data restored in the recovery step (S300) by applying a predetermined decoding algorithm in the decoding unit; And
Integrity determination step (S500) of determining whether the embedded software can be booted normally according to a result of decoding the secure boot image data by the decoding step (S400);
CBC-based embedded software integrity guarantee system, characterized in that consisting of.
제 6항에 있어서,
상기 암호화 이미지 변환단계(S200)는
추출한 상기 시큐어 부트 이미지 데이터의 소정 영역에 해당하는 이미지들은 별도의 저장소자를 통해서 저장 및 관리하는 것을 특징으로 하는 CBC 기반의 임베디드 소프트웨어 무결성 보장 시스템.
The method of claim 6,
The encrypted image conversion step (S200)
CBC-based embedded software integrity guarantee system, characterized in that images corresponding to a predetermined area of the extracted secure boot image data are stored and managed through a separate storage device.
제 7항에 있어서,
상기 암호화 이미지 변환단계(S200)는
상기 시큐어 부트 이미지 데이터의 전체 영역 중 미리 설정된 개수만큼의 소정 영역에 해당하는 이미지들을 추출하여 저장하고,
추출된 상기 영역들과 매칭되는 영역의 이미지들은 소정 이미지로 변경하여 상기 부팅용 시큐어 부트 이미지 데이터를 생성하는 것을 특징으로 하는 CBC 기반의 임베디드 소프트웨어 무결성 보장 방법.
The method of claim 7,
The encrypted image conversion step (S200)
Extracting and storing images corresponding to a predetermined area as many as a preset number among the entire areas of the secure boot image data,
CBC-based embedded software integrity guarantee method, characterized in that the extracted images of the regions matching the regions are changed to a predetermined image to generate the secure boot image data for booting.
제 8항에 있어서,
상기 복원단계(S300)는
상기 암호화 이미지 변환단계(S200)에 의해 저장된 상기 소정 영역에 해당하는 이미지들을 각각의 영역에 맞추어 상기 부팅용 시큐어 부트 이미지 데이터에 오버라이트하여, 상기 시큐어 부트 이미지 데이터로 복원하는 것을 특징으로 하는 CBC 기반의 임베디드 소프트웨어 무결성 보장 방법.
The method of claim 8,
The restoration step (S300) is
CBC-based, characterized in that the images corresponding to the predetermined area stored in the encrypted image conversion step (S200) are overwritten in the secure boot image data for booting according to each area, and are restored to the secure boot image data. How to ensure the integrity of your embedded software.
KR1020190148238A 2019-11-19 2019-11-19 Guaranteeing integrity system and method of embedded software based on Cipher-Block Chaining Active KR102282039B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190148238A KR102282039B1 (en) 2019-11-19 2019-11-19 Guaranteeing integrity system and method of embedded software based on Cipher-Block Chaining

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190148238A KR102282039B1 (en) 2019-11-19 2019-11-19 Guaranteeing integrity system and method of embedded software based on Cipher-Block Chaining

Publications (2)

Publication Number Publication Date
KR20210060798A true KR20210060798A (en) 2021-05-27
KR102282039B1 KR102282039B1 (en) 2021-07-27

Family

ID=76135589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190148238A Active KR102282039B1 (en) 2019-11-19 2019-11-19 Guaranteeing integrity system and method of embedded software based on Cipher-Block Chaining

Country Status (1)

Country Link
KR (1) KR102282039B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070048960A (en) * 2005-11-07 2007-05-10 삼성전자주식회사 How and devices to safely update and boot code images
KR20100106110A (en) 2009-03-23 2010-10-01 삼성전자주식회사 Secure boot data total management system, methods for generating and verifying a verity of matadata for managing secure boot data, computer-readable recording medium storing program for executing any of such methods
JP4724835B2 (en) * 2005-02-28 2011-07-13 国立大学法人広島大学 Authentication device
KR20130021126A (en) * 2011-08-22 2013-03-05 주식회사 인프라웨어 Image-based user authentication method, and computer readable recording medium storing program for the same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4724835B2 (en) * 2005-02-28 2011-07-13 国立大学法人広島大学 Authentication device
KR20070048960A (en) * 2005-11-07 2007-05-10 삼성전자주식회사 How and devices to safely update and boot code images
KR20100106110A (en) 2009-03-23 2010-10-01 삼성전자주식회사 Secure boot data total management system, methods for generating and verifying a verity of matadata for managing secure boot data, computer-readable recording medium storing program for executing any of such methods
KR20130021126A (en) * 2011-08-22 2013-03-05 주식회사 인프라웨어 Image-based user authentication method, and computer readable recording medium storing program for the same

Also Published As

Publication number Publication date
KR102282039B1 (en) 2021-07-27

Similar Documents

Publication Publication Date Title
US20210294879A1 (en) Securing executable code integrity using auto-derivative key
US8543839B2 (en) Electronic device and method of software or firmware updating of an electronic device
US11003781B2 (en) Root key processing method and associated device
KR101699998B1 (en) Secure storage of temporary secrets
EP1422591B1 (en) Program update method and server
TWI468971B (en) Secure software download
US8341751B2 (en) Software license management
KR101303278B1 (en) FPGA apparatus and method for protecting bitstream
KR20040101342A (en) Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function
US12323517B2 (en) Crypto-erasure of data stored in a key per IO-enabled device via internal action
US20080076355A1 (en) Method for Protecting Security Accounts Manager (SAM) Files Within Windows Operating Systems
CN103282913A (en) Method for loading the code of at least one software module
US9805186B2 (en) Hardware protection for encrypted strings and protection of security parameters
US10700857B2 (en) Secure programming of secret data
US20140289537A1 (en) Encryption system and method of encrypting a device
JP2016146618A (en) Information processing device
CN110674525A (en) Electronic equipment and file processing method thereof
JP2007507020A (en) Method for reloading software into the boot sector of a programmable read-only memory
CN111357003A (en) Data protection in a pre-operating system environment
US20250053407A1 (en) Hardware security module firmware update
KR102282039B1 (en) Guaranteeing integrity system and method of embedded software based on Cipher-Block Chaining
KR101405915B1 (en) Method for storing encrypted data and method for reading encrypted data
KR102295470B1 (en) Secure usb dongle for usb memory without security
SSD FIPS 140-2 Cryptographic Module Non-Proprietary Security Policy
CN117763587A (en) Algorithm encryption processing method, device, equipment and medium

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20191119

PA0201 Request for examination
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20210119

Patent event code: PE09021S01D

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20210719

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20210721

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20210722

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20240613

Start annual number: 4

End annual number: 4