KR101780909B1 - 소프트웨어 갱신 장치 및 소프트웨어 갱신 프로그램을 기억한 기억 매체 - Google Patents

소프트웨어 갱신 장치 및 소프트웨어 갱신 프로그램을 기억한 기억 매체 Download PDF

Info

Publication number
KR101780909B1
KR101780909B1 KR1020167011876A KR20167011876A KR101780909B1 KR 101780909 B1 KR101780909 B1 KR 101780909B1 KR 1020167011876 A KR1020167011876 A KR 1020167011876A KR 20167011876 A KR20167011876 A KR 20167011876A KR 101780909 B1 KR101780909 B1 KR 101780909B1
Authority
KR
South Korea
Prior art keywords
verification
data
unit
update data
divided
Prior art date
Application number
KR1020167011876A
Other languages
English (en)
Other versions
KR20160065201A (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 미쓰비시덴키 가부시키가이샤
Publication of KR20160065201A publication Critical patent/KR20160065201A/ko
Application granted granted Critical
Publication of KR101780909B1 publication Critical patent/KR101780909B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

작업 영역이 되는 휘발 메모리가 충분히 크지 않은 경우에 있어서, 안전하게 소프트웨어의 갱신을 가능하게 하는 것을 목적으로 한다. 내장형 기기는, 소프트웨어를 갱신하는 갱신 데이터가 복수로 분할된 각 섹션에 대하여 차례로 검증 처리를 행한다. 내장형 기기는, 검증 처리의 도중에 얻어지는 중간치를 기억하여 둔다. 내장형 기기는, 모든 섹션에 대하여 검증 처리가 완료되면, 검증 처리에서 얻어진 값과, 검증 데이터를 비교하여, 부당 변경이 없는 것을 확인한다. 부당 변경이 없는 것을 확인할 수 있으면, 내장형 기기는, 다시 각 섹션에 대하여 차례로 검증 처리를 행한다. 내장형 기기는, 검증 처리에서 얻어진 중간치와 기억하여 둔 중간치를 비교하여, 일치하면, 그 섹션에 의해 소프트웨어를 갱신한다.

Description

소프트웨어 갱신 장치 및 소프트웨어 갱신 프로그램을 기억한 기억 매체{SOFTWARE UPDATE APPARATUS AND STORAGE MEDIUM STORING SOFTWARE UPDATE PROGRAM}
본 발명은, 갱신 데이터에 의해 펌웨어 등의 소프트웨어를 안전하게 갱신하는 기술에 관한 것이다.
내장형 기기(embedded apparatus)의 동작을 규정하는 소프트웨어를 펌웨어라고 부른다.
펌웨어를 갱신하면, 결함의 수정이나 기능 추가를, 제품 출하 후에 실현할 수 있다. 그때, 갱신을 최종 사용자에 의해 실행할 수 있으면, 제품 회수가 불필요하다. 그 때문에, 일반적으로, 최종 사용자에 의한 펌웨어의 갱신 기능이 내장형 기기에 실장되어 있다.
최종 사용자에 의한 펌웨어의 갱신의 일반적인 순서는 이하의 (1)부터 (3)과 같이 된다. (1) 최종 사용자가 제조업자의 웹 사이트로부터 갱신 데이터를 취득한다. (2) 갱신 데이터를 유선 통신이나 기록 매체를 통해서 대상의 내장형 기기에 입력한다. (3) 내장형 기기가, 갱신 데이터를 바탕으로 펌웨어를 리라이트한다(rewrite).
펌웨어의 갱신 기능을 내장형 기기에 실장한 경우, 예컨대, 악의 있는 최종 사용자가, 해당 내장형 기기의 개조를 목적으로 하여, 개변된(altered) 갱신 데이터를 대상의 내장형 기기에 입력하는 것을 생각할 수 있다. 이와 같은 개조가 실현되어 버린 경우, 해당 내장형 기기가 구비하는 시큐리티 기능이 우회되어 버릴 가능성이 있다. 그 결과, 해당 내장형 기기 제조업자는, 불법 복제나 모방품 제조라고 하는 피해를 받을 가능성이 있다.
그 때문에, 펌웨어의 갱신이 가능한 내장형 기기에 있어서, 펌웨어를 임의로 개변하는 것을 저지하는 기술이 필요하게 되고 있다.
비 특허 문헌 1에는, 암호 기술을 이용하여, 펌웨어를 임의로 개변하는 것을 저지하는 기술에 대하여 기재되어 있다. 비 특허 문헌 1에서는, 디지털 서명이나 메시지 인증 코드에 의한 메시지에의 부당 변경(tampering)의 검출을, 펌웨어의 보호에 응용하고 있다.
(선행 기술 문헌)
(비 특허 문헌)
(비 특허 문헌 1) RFC4108, “Using Cryptographic Message Syntax(CMS) to Protect Firmware Packages”, http://tools.ietf.org/html/rfc4108
(비 특허 문헌 2) E. Fleischmann, C. Forler, S. Lucks, and J. Wenzel, “McOE : A Family of Almost Foolproof On-Line Authenticated Encryption Schemes”, Cryptology ePrint Archive : Report 2011/644
(비 특허 문헌 3) A. J. Menezes, P. C. van Oorschot, and S. A. Vanstone, “Handbook of Applied Cryptography”, 2001.
(비 특허 문헌 4) G. Bertoni, J. Daemen, M. Peters, and G. Van Assche, “On the Indifferentiability of the Sponge Construction”, Eurocrypt 2008.
(비 특허 문헌 5) NIST, “Recommendation for Block Cipher Modes of Operation : Galois/Counter Mode(GCM) for Confidentiality and Authentication,” Draft Special Publication 800-38D, Apr. 2006.
비 특허 문헌 1에 기재된 바와 같이, 부당 변경 검출 기술을 펌웨어의 보호에 응용하는 경우, 펌웨어를 갱신하는 내장형 기기에 있어서, 부당 변경 검출을 행하는 검증 처리를 행할 필요가 있다.
이 검증 처리를 안전하게 실현하기 위해서는, 작업 영역이 되는 휘발 메모리가 충분히 클 필요가 있다. 고성능의 CPU를 갖는 기기이면, 이 요건은 만족되어 있는 것이 일반적이다. 그러나, 비교적 성능이 낮은 내장형 기기에서는, 이 요건은 만족되어 있지 않은 경우가 있다. 특히, 플래시 ROM을 내장한 CPU(원 칩 마이크로컴퓨터)에서는, 비휘발 메모리의 용량보다 휘발 메모리의 용량이 작은 것이 일반적이어서, 이 요건은 만족되어 있지 않은 경우가 많다.
본 발명은, 작업 영역이 되는 휘발 메모리가 충분히 크지 않은 경우에 있어서, 안전하게 펌웨어 등의 소프트웨어의 갱신을 가능하게 하는 것을 목적으로 한다.
본 발명과 관련되는 소프트웨어 갱신 장치는,
소프트웨어를 갱신하는 갱신 데이터가 복수로 분할된 각 분할 갱신 데이터를 차례로 취득하는 데이터 취득부와,
상기 데이터 취득부가 취득한 분할 갱신 데이터에 대하여 검증 처리를 실행하는 검증부와,
상기 검증부가 실행한 검증 처리 중에 얻어지는 중간치를 기억하는 중간치 기억부와,
상기 각 분할 갱신 데이터에 대하여 상기 검증 처리가 끝나고, 상기 갱신 데이터의 검증이 성공한 경우, 다시 상기 각 분할 갱신 데이터를 차례로 취득하는 데이터 재취득부와,
상기 데이터 재취득부가 취득한 분할 갱신 데이터에 대하여 상기 검증 처리를 실행하는 재검증부와,
상기 재검증부가 실행한 검증 처리 중에 얻어지는 중간치와, 상기 중간치 기억부가 기억한 중간치가 일치하는 경우, 상기 데이터 재취득부가 취득한 상기 분할 갱신 데이터에 의해 소프트웨어를 갱신하는 갱신부
를 구비하는 것을 특징으로 한다.
본 발명과 관련되는 소프트웨어 갱신 장치에서는, 갱신 데이터에 대하여 한 번에 검증 처리를 행하는 것이 아니라, 갱신 데이터가 복수로 분할된 분할 갱신 데이터마다 검증 처리를 행한다. 그 때문에, 작업 영역이 되는 휘발 메모리가 작더라도, 검증 처리를 행할 수 있다.
또한, 본 발명과 관련되는 소프트웨어 갱신 장치에서는, 각 분할 갱신 데이터에 대하여 차례로 검증 처리를 행하여, 부당 변경이 되어 있지 않은 것을 확인함과 아울러 검증 처리 중에 얻어지는 중간치를 기억하여 둔다. 그리고, 부당 변경이 되어 있지 않은 것이 확인되면, 다시 각 분할 갱신 데이터에 대하여 차례로 검증 처리를 행하여, 얻어진 중간치와 전에 기억한 중간치가 동일한 것을 확인하고, 확인이 된 경우에 소프트웨어를 갱신한다. 그 때문에, 일단 검증 처리가 끝난 후에, 부당 변경된 분할 갱신 데이터에 의해 소프트웨어를 갱신한다고 하는 부정도 막을 수 있다.
도 1은 내장형 기기(100)의 하드웨어 구성도.
도 2는 대체적인 방법 1의 처리를 나타내는 플로차트.
도 3은 대체적인 방법 2의 개략을 나타내는 도면.
도 4는 대체적인 방법 3의 처리를 나타내는 플로차트.
도 5는 실시의 형태 1과 관련되는 방법의 개략을 나타내는 도면.
도 6은 실시의 형태 1과 관련되는 내장형 기기(100)의 기능 구성도.
도 7은 실시의 형태 1과 관련되는 내장형 기기(100)의 펌웨어 갱신 처리를 나타내는 플로차트.
도 8은 내장형 기기(100)의 하드웨어 구성의 다른 예를 나타내는 도면.
도 9는 내장형 기기(100)의 하드웨어 구성의 다른 예를 나타내는 도면.
도 10은 내장형 기기(100)의 하드웨어 구성의 다른 예를 나타내는 도면.
도 11은 내장형 기기(100)의 하드웨어 구성의 다른 예를 나타내는 도면.
도 12는 중간치의 예를 나타내는 도면.
도 13은 중간치의 예를 나타내는 도면.
도 14는 중간치의 예를 나타내는 도면.
실시의 형태 1.
도 1은 내장형 기기(100)(소프트웨어 갱신 장치)의 하드웨어 구성도이다.
내장형 기기(100)는, CPU(101), 기억 매체(102), 휘발 메모리(103), 비휘발 메모리(104)를 구비한다.
최종 사용자는, 기억 매체(102)를 통해서, 업데이트 파일(105)(갱신 데이터)을 내장형 기기(100)에 공급한다. 내장형 기기(100)는, 기억 매체(102)에 저장된 업데이트 파일(105)에 의해, 비휘발 메모리(104) 내에 있는 펌웨어(109)를 갱신한다.
부당 변경 검출 기술을 펌웨어의 보호에 응용하는 경우, 최종 사용자는, 업데이트 파일(105)과 함께, 업데이트 파일(105)의 부당 변경을 검출하기 위한 검증 데이터(106)를 내장형 기기(100)에 공급한다.
펌웨어(109)의 갱신시에 CPU(101)는 다음과 같은 처리를 행한다.
우선, CPU(101)는, 처리 A를 실행하여, 기억 매체(102)에 존재하는 업데이트 파일(105)과 검증 데이터(106)를 휘발 메모리(103)에 카피한다. 카피한 데이터를, 업데이트 파일(107), 검증 데이터(108)라고 부르기로 한다.
계속하여, CPU(101)는, 처리 B를 실행하여, 업데이트 파일(107)에 대하여 검증 처리를 행하여 얻어진 검증용 값이, 검증 데이터(108)와 일치하는 것인지 여부를 검증한다. 검증 처리는 암호 처리를 이용하여 검증용 값을 연산하는 처리이다.
검증 처리를 행하여 얻어진 결과가 검증 데이터(108)와 일치하지 않으면, 부당 변경이 검지되었다고 인식되어, 그 시점에 갱신 처리를 중단하여 종료한다. 한편, 검증 결과가 일치한 경우는, CPU(101)는, 처리 C를 실행하여, 휘발 메모리(103)에 있는 업데이트 파일(107)을, 비휘발 메모리(104)에 기입하여, 펌웨어(109)를 갱신한다.
갱신시에 이상의 처리를 행하는 것에 의해, 부당 변경된 업데이트 파일(107)에 의해, 비휘발 메모리(104)에 기억된 펌웨어(109)를 갱신하는 것을 방지할 수 있다.
이상의 방법을 실현하기 위해서는, 업데이트 파일(107)과 검증 데이터(108)를 기억하고, 또한 검증 처리를 실행할 만큼의 용량이 휘발 메모리(103)에 필요하다.
휘발 메모리(103)에 충분한 용량이 없는 경우의 대체적인 방법을 3가지 설명한다. 그리고, 3가지의 방법의 과제를 설명한 다음, 실시의 형태 1과 관련되는 방법에 대하여 설명한다.
(대체적인 방법 1)
대체적인 방법 1은, 검증 처리의 완료를 기다리지 않고서, 업데이트 파일(107)로 비휘발 메모리(104)에 기억된 펌웨어(109)를 갱신하여 버려, 검증 처리에서 부당 변경이 발견된 경우에, 내장형 기기(100)를 동작 불능으로 하여 버리는 방법이다. 내장형 기기(100)를 동작 불능으로 한 경우에는, 펌웨어(109)의 재갱신이 필요하게 된다.
도 2는 대체적인 방법 1의 처리를 나타내는 플로차트이다.
대체적인 방법 1에서는, 사전에, 업데이트 파일(107)을 섹션(분할 갱신 데이터)마다 m개로 분할하여 둔다.
그리고, 우선, CPU(101)는, 플래그를 1(무효)로 초기화한다(S11).
계속하여, S12부터 S14의 루프에 있어서, CPU(101)는, 업데이트 파일(107)을 섹션마다 휘발 메모리(103)에 읽어 들이고(S12), S12에서 읽어 들인 섹션의 데이터에 대하여 검증 처리를 행하고(S13), S12에서 읽어 들인 섹션의 데이터를 비휘발 메모리(104)에 전송한다(S14). 이것에 의해, 서서히 펌웨어(109)가 갱신된다.
그리고, 모든 섹션에 대한 S12부터 S14의 처리가 완료되어, 검증용 값이 계산되면, CPU(101)는, 검증 데이터(108)를 읽어 들인다. CPU(101)는, 검증 처리에서 얻어진 검증용 값과, 검증 데이터(108)를 비교하여, 검증 성공인지 여부를 판정한다(S15). CPU(101)는, 검증 성공이면(S15에서 성공), 플래그를 0(성공)으로 한 다음(S16), 처리를 종료한다. 한편, CPU(101)는, 검증 실패이면(S15에서 실패), 그대로 처리를 종료한다.
내장형 기기(100)는, 기동시 등에, 플래그가 0(성공)인지 여부를 확인하고, 플래그가 0(성공)이 아닌 경우에는, 기동을 중지하여, 펌웨어(109)의 재갱신을 요구하는 등의 응답을 행한다.
그러나, 대체적인 방법 1에서는, 검증 실패시에는 내장형 기기(100)가 동작 불능이 되어 버린다. 그 때문에, 일시적으로 내장형 기기(100)가 동작 불능이 되더라도 상관없는 경우밖에 채용할 수 없다.
또한, 펌웨어(109)의 실장 방식에 따라서는, 기동시에 플래그를 확인하는 기능마다 리라이트되어, 플래그의 확인이 우회되어 버릴 가능성이 있다. 이 경우에는, 펌웨어(109)가 부정하게 갱신된 상태에서, 내장형 기기(100)가 동작하게 된다.
또한, 검증 처리의 실장 방식에 따라서는, 개변된 업데이트 파일(107)의 암호문에 대한 평문이 비휘발 메모리(104)에 기입되기 때문에, 그 정보가 검증 처리에 이용하는 암호 해독의 실마리가 될 가능성이 있다(on line decryption misuse, 비 특허 문헌 2 참조).
(대체적인 방법 2)
대체적인 방법 2는, 업데이트 파일(107)의 섹션마다 검증 데이터(108)를 준비하여 두고, 섹션마다 검증을 행하는 방법이다.
도 3은 대체적인 방법 2의 개략을 나타내는 도면이다.
도 3a에 나타내는 바와 같이, 업데이트 파일(107)의 포맷을 변경하여, 섹션마다, 그 섹션을 검증하기 위한 검증 데이터(108)를 준비한다. 이것에 의해, CPU(101)는, 섹션마다 독립적으로 검증 처리를 실행할 수 있다. 따라서, CPU(101)는, 섹션마다, 차례로 검증 처리를 행하고, 검증 처리가 끝난 섹션으로부터 비휘발 메모리(104)에 기입할 수 있다. 그 결과, 검증 처리가 완료되어 있지 않은 데이터를 비휘발 메모리(104)에 기입하여, 펌웨어(109)를 갱신하여 버리는 것을 방지할 수 있다.
그러나, 대체적인 방법 2에서는, 도 3b에 나타내는 바와 같이, 파일 내의 섹션을 재배열하는 공격이 성립하여 버린다. 또한, 도 3c에 나타내는 바와 같이, 일부의 섹션을 오래된 버전으로 교체하는 공격이 성립하여 버린다.
(대체적인 방법 3)
대체적인 방법 3은, 대체적인 방법 1과 마찬가지로 업데이트 파일(107)을 섹션마다 차례로 검증 처리에 입력하고, 업데이트 파일(107) 전체의 검증이 성공한 경우에, 다시 업데이트 파일(107)을 섹션마다 다시 취득하여 펌웨어(109)를 갱신하는 방법이다.
도 4는 대체적인 방법 3의 처리를 나타내는 플로차트이다.
대체적인 방법 3에서는, 대체적인 방법 1과 마찬가지로, 사전에, 업데이트 파일(107)을 섹션마다 m개로 분할하여 둔다.
그리고, S21부터 S22의 루프에 있어서, CPU(101)는, 업데이트 파일(107)을 섹션마다 휘발 메모리(103)에 읽어 들이고(S21), S21에서 읽어 들인 섹션의 데이터에 대하여 검증 처리를 행한다(S22).
그리고, 모든 섹션에 대한 S21부터 S22의 처리가 완료되어, 검증용 값이 계산되면, CPU(101)는, 검증 데이터(108)를 읽어 들인다. CPU(101)는, 검증 처리에서 얻어진 검증용 값과, 검증 데이터(108)를 비교하여, 검증 성공인지 여부를 판정한다(S23). CPU(101)는, 검증 성공이면(S23에서 성공), 처리를 S24로 이동한다. 한편, CPU(101)는, 검증 실패이면(S23에서 실패), 펌웨어(109)를 갱신하지 않고 처리를 종료한다.
검증 성공의 경우, S24부터 S25의 루프에 있어서, CPU(101)는, 다시 업데이트 파일(107)을 섹션마다 휘발 메모리(103)에 읽어 들이고(S24), S24에서 읽어 들인 섹션의 데이터를 비휘발 메모리(014)에 전송한다(S25). 이것에 의해, 서서히 펌웨어(109)가 갱신된다.
대체적인 방법 3에서는, 업데이트 파일(107) 전체의 검증이 끝나고 나서, 펌웨어(109)를 갱신할 수 있다.
그러나, 대체적인 방법 3에서는, S21부터 S22의 루프에서 1번째로 읽어 들인 업데이트 파일(107)과, S24부터 S25의 루프에서 2번째로 읽어 들인 업데이트 파일(107)이 동일한 내용이라는 것의 보증이 없다. 다시 말해, 예컨대, 조작된 기억 매체(102)를 이용하여, 2번째로 읽어 들일 때에만, 개변한 업데이트 파일(107)을 읽어 들이게 하는 공격이 가능하게 된다.
(실시의 형태 1과 관련되는 방법)
실시의 형태 1과 관련되는 방법은, 대체적인 방법 3과 마찬가지로, 업데이트 파일(107)을 섹션마다 차례로 검증 처리에 입력하고, 업데이트 파일(107)의 검증이 성공한 경우에, 다시 업데이트 파일(107)을 섹션마다 기억 매체(102)로부터 취득하여 펌웨어(109)를 갱신하는 방법이다. 단, 실시의 형태 1과 관련되는 방법에서는, 1번째로 읽어 들인 업데이트 파일(107)에 대하여 검증 처리를 행했을 때에 얻어지는 중간치를 기억하여 둔다. 그리고, 2번째로 읽어 들인 업데이트 파일(107)에 대해서도 검증 처리를 행하고, 얻어진 중간치와, 기억하여 둔 중간치를 비교하여, 1번째로 읽어 들인 업데이트 파일(107)과 2번째로 읽어 들인 업데이트 파일(107)이 동일한 내용인 것을 확인한다.
도 5는 실시의 형태 1과 관련되는 방법의 개략을 나타내는 도면이다.
도 5에서는, 업데이트 파일(107)을 섹션 1~4의 4개로 분할하고 있다. 또, 각 섹션 1~4는, 휘발 메모리(103)의 용량을 고려하여, 1개의 섹션의 데이터를 기억하면서, 검증 처리를 실행할 수 있는 사이즈이다.
우선, CPU(101)는, 섹션 1을 읽어내고, 검증 처리를 행한다. 이때, CPU(101)는, 검증 처리에서 얻어진 중간치 1을 기억하여 둔다. 계속하여, CPU(101)는, 섹션 2를 읽어내고, 검증 처리를 행한다. 이때, CPU(101)는, 검증 처리에서 얻어진 중간치 2를 기억하여 둔다. 마찬가지로, CPU(101)는, 섹션 3, 4를 차례로 읽어내고, 검증 처리를 행하고, 검증 처리에서 얻어진 중간치 3, 4를 기억하여 둔다.
그리고, CPU(101)는, 검증 처리에서 얻어진 검증용 값과, 검증 데이터(108)를 비교하여, 검증 성공인지 여부를 판정한다.
검증 성공의 경우, CPU(101)는, 섹션 1을 다시 읽어내고, 검증 처리를 행하고, 중간치 1'를 얻는다. CPU(101)는, 얻어진 중간치 1'와, 기억하여 둔 중간치 1을 비교하여, 일치하는 것을 확인한다. 그리고, 일치하는 것을 확인할 수 있으면, CPU(101)는, 섹션 1로 펌웨어(109)를 갱신한다. 계속하여, CPU(101)는, 섹션 2를 다시 읽어내고, 검증 처리를 행하고, 중간치 2'를 얻는다. CPU(101)는, 얻어진 중간치 2'와, 기억하여 둔 중간치 2를 비교하여, 일치하는 것을 확인한다. 그리고, 일치하는 것을 확인할 수 있으면, CPU(101)는, 섹션 2로 펌웨어(109)를 갱신한다. 마찬가지로, CPU(101)는, 섹션 3, 4에 대해서도 차례로 읽어내고, 중간치의 비교를 행하고, 펌웨어(109)를 갱신한다.
도 6은 실시의 형태 1과 관련되는 내장형 기기(100)의 기능 구성도이다.
내장형 기기(100)는, 데이터 취득부(10), 검증부(20), 중간치 기억부(30), 데이터 재취득부(40), 재검증부(50), 비교부(60), 갱신부(70)를 구비한다. 여기서, 데이터 취득부(10), 검증부(20), 중간치 기억부(30), 데이터 재취득부(40), 재검증부(50), 비교부(60), 갱신부(70)는, 예컨대, 프로그램, 소프트웨어이고, 비휘발 메모리(104)에 기억되어 있고, CPU(101)에 의해 읽어내어져 실행된다. 이들은, 펌웨어(109)의 일부를 구성하는 기능이더라도 좋다. 또한, 이들은, 회로나 장치 등의 하드웨어에 의해 실현되어 있더라도 좋다.
도 7은 실시의 형태 1과 관련되는 내장형 기기(100)의 펌웨어 갱신 처리를 나타내는 플로차트이다.
사전에, 업데이트 파일(107)을 섹션마다 m개로 분할하여 둔다.
그리고, 우선, S31부터 S33의 루프에 있어서, 업데이트 파일(107)의 각 섹션에 대하여 차례로 처리를 행한다. 구체적으로는, 데이터 취득부(10)는, 기억 매체(102)에 기억된 업데이트 파일(107)의 하나의 섹션을 휘발 메모리(103)에 읽어 들인다(S31). 계속하여, 검증부(20)는, S31에서 휘발 메모리(103)에 읽어 들인 섹션의 데이터에 대하여, 휘발 메모리(103)에 있어서 검증 처리를 행한다(S32). 그리고, 중간치 기억부(30)는, S32에서 행한 검증 처리에서 얻어지는 중간치를 휘발 메모리(103)에 기억한다(S33).
그리고, 모든 섹션에 대한 S31부터 S33의 처리가 완료되어, 검증용 값이 계산되면, 데이터 취득부(10)는, 기억 매체(102)에 기억된 검증 데이터(108)를 읽어 들인다. 검증부(20)는, S32에서 행한 검증 처리에서 얻어진 검증용 값과, 검증 데이터(108)를 비교하여, 검증 성공인지 여부를 판정한다(S34). 검증부(20)는, 검증 성공이면(S34에서 성공), 처리를 S35로 이동한다. 한편, 검증부(20)는, 검증 실패이면(S34에서 실패), 펌웨어(109)를 갱신하지 않고 처리를 종료한다.
검증 성공의 경우, S35부터 S38의 루프에 있어서, 업데이트 파일(107)의 각 섹션에 대하여 차례로 처리를 행한다. 구체적으로는, 데이터 재취득부(40)는, 기억 매체(102)에 기억된 업데이트 파일(107)의 하나의 섹션을 휘발 메모리(103)에 읽어 들인다(S35). 계속하여, 재검증부(50)는, S35에서 읽어 들인 섹션의 데이터에 대하여, 휘발 메모리(103)에 있어서 검증 처리를 행한다(S36). 비교부(60)는, S36에서 행한 검증 처리에서 얻어지는 중간치와, S33에서 휘발 메모리(103)에 기억한 중간치를 비교하여, 일치하고 있는지 여부를 판정한다(S37). 일치하고 있는 경우(S37에서 일치), 갱신부(70)는, S35에서 읽어 들인 업데이트 파일(107)의 섹션의 데이터에 의해, 펌웨어(109)를 갱신하는(S38) 한편, 일치하지 않는 경우(S37에서 불일치), 펌웨어(109)를 갱신하지 않고 처리를 종료한다.
이상과 같이, 실시의 형태 1과 관련되는 방법에서는, 검증된 섹션과 동일한 내용인 것이 확인된 섹션으로 펌웨어(109)가 갱신된다. 따라서, 대체적인 방법 3의 경우와 같이, 조작된 기억 매체(102)를 이용하여, 2번째로 읽어 들일 때에만, 개변한 업데이트 파일(107)을 읽어 들이게 하는 공격을 받는 일이 없다.
또한, 실시의 형태 1과 관련되는 방법에서는, 중간치는, 비휘발 메모리(104)에 기억되는 일이 없고, 휘발 메모리(103) 밖으로 노출되는 일이 없기 때문에, 공격자에게 읽히는 일도 없다. 그 때문에, 중간치를 이용한 공격을 받는 일도 없다.
물론, 실시의 형태 1과 관련되는 방법에서는, 대체적인 방법 1~3과 마찬가지로, 업데이트 파일(107)을 섹션마다 분할하여, 하나의 섹션씩 휘발 메모리(103)에 읽어 들이고, 검증 처리를 행한다. 그 때문에, 휘발 메모리(103)의 용량이 작더라도, 검증 처리를 실행할 수 있다.
또, 상기 설명에서는, 내장형 기기(100)의 하드웨어 구성을 도 1에 나타내는 구성인 것으로 했다.
그러나, 도 8에 나타내는 바와 같이, 내장형 기기(100)는, CPU(101)와 휘발 메모리(103)와 비휘발 메모리(104)를 함께 탑재한 칩(110)을 구비하는 구성이더라도 좋다.
또한, 도 9에 나타내는 바와 같이, 내장형 기기(100)는, 도 1에 나타내는 구성에 더하여, 시큐리티 칩(111)을 구비하는 구성이더라도 좋다. 그리고, 시큐리티 칩(111)을 이용하여 검증 처리를 행하도록 하더라도 좋다.
또한, 도 10에 나타내는 바와 같이, 기억 매체(102) 대신에, 통신 인터페이스(112)를 구비하는 구성이더라도 좋다. 그리고, CPU(101)는, 통신 인터페이스(112)를 통해서, 외부 PC(113) 등으로부터 업데이트 파일(105)이나 검증 데이터(106)를 취득하여, 휘발 메모리(103)에 기억하도록 하더라도 좋다. 또한, 도 11에 나타내는 바와 같이, CPU(101)는, 통신 인터페이스(112)를 통해서, 인터넷 등에 의해 접속된 외부 서버(114) 등으로부터 업데이트 파일(105)이나 검증 데이터(106)를 취득하여, 휘발 메모리(103)에 기억하도록 하더라도 좋다.
또한, 상기 설명에서는, 중간치를 단지 검증 처리 중에 얻어지는 값으로 했다.
여기서, 검증 처리의 암호 알고리즘으로서, Merkle-Damgard형 해시 함수(비 특허 문헌 3 참조)를 이용할 수 있다. 도 12에 나타내는 바와 같이, Merkle-Damgard형 해시 함수에서는, 압축 함수를 반복하여 계산하는 처리를 포함한다. 검증 처리의 암호 알고리즘으로서, Merkle-Damgard형 해시 함수를 이용하는 경우, 예컨대, 적당한 단수(stage number)에 있어서의 압축 함수의 출력을 중간치로 할 수 있다.
또한, 검증 처리의 암호 알고리즘으로서, 스펀지형 해시 함수(비 특허 문헌 4 참조)를 이용할 수 있다. 도 13에 나타내는 바와 같이, 스펀지형 해시 함수에서는, 치환 함수를 반복하여 계산하는 처리를 포함한다. 검증 처리의 암호 알고리즘으로서, 스펀지형 해시 함수를 이용하는 경우, 예컨대, 적당한 단수에 있어서의 치환 함수의 출력을 중간치로 할 수 있다.
또한, 검증 처리의 암호 알고리즘으로서, 메시지 인증 코드(비 특허 문헌 3 참조)와, 메시지 인증을 포함하는 암호 이용 모드(비 특허 문헌 3 참조)를 이용할 수 있다. 도 14는, 갈루아 카운터 모드(비 특허 문헌 5 참조)를 나타내지만, 도 14에 나타내는 바와 같이, 메시지 인증 코드나 메시지 인증을 포함하는 암호 이용 모드에서는, 동일한 연산을 반복하여 계산하는 처리를 포함한다. 검증 처리의 암호 알고리즘으로서, 메시지 인증 코드나 메시지 인증을 포함하는 암호 이용 모드를 이용하는 경우, 예컨대, 적당한 단수에 있어서의 연산의 출력을 중간치로 할 수 있다.
100 : 내장형 기기
101 : CPU
102 : 기억 매체
103 : 휘발 메모리
104 : 비휘발 메모리
105, 107 : 업데이트 파일
106, 108 : 검증 데이터
109 : 펌웨어
10 : 데이터 취득부
20 : 검증부
30 : 중간치 기억부
40 : 데이터 재취득부
50 : 재검증부
60 : 비교부
70 : 갱신부

Claims (5)

  1. 소프트웨어를 갱신하는 갱신 데이터가 복수로 분할된 각 분할 갱신 데이터를 차례로 취득하는 데이터 취득부와,
    상기 데이터 취득부가 취득한 분할 갱신 데이터에 대하여 검증 처리를 실행하는 검증부와,
    상기 검증부가 실행한 검증 처리 중에 얻어지는 중간치를 기억하는 중간치 기억부와,
    모든 분할 갱신 데이터에 대하여 상기 검증 처리가 끝나고, 상기 갱신 데이터의 검증이 성공한 경우, 다시 상기 각 분할 갱신 데이터를 차례로 취득하는 데이터 재취득부와,
    상기 데이터 재취득부가 취득한 분할 갱신 데이터에 대하여 상기 검증 처리를 실행하는 재검증부와,
    상기 재검증부가 실행한 검증 처리 중에 얻어지는 중간치와, 상기 중간치 기억부가 기억한 중간치가 일치하는 경우, 상기 데이터 재취득부가 취득한 상기 분할 갱신 데이터에 의해 소프트웨어를 갱신하는 갱신부
    를 구비하는 것을 특징으로 하는 소프트웨어 갱신 장치.
  2. 제 1 항에 있어서,
    상기 검증부는, 모든 분할 갱신 데이터에 대하여 검증 처리를 실행하여 계산된 값과, 검증 데이터를 비교하여, 일치하고 있는지 여부를 판정하는 것에 의해, 상기 갱신 데이터의 검증이 성공했는지 여부를 판정하고,
    상기 데이터 재취득부는, 상기 갱신 데이터의 검증이 성공했다고 상기 검증부가 판정한 경우에, 다시 상기 각 분할 갱신 데이터를 차례로 취득하는
    것을 특징으로 하는 소프트웨어 갱신 장치.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 소프트웨어는, 제 1 기억 장치에 기억되어 있고,
    상기 데이터 취득부 및 상기 데이터 재취득부는, 취득한 상기 분할 갱신 데이터를 제 2 기억 장치에 기억하고,
    상기 검증부 및 상기 재검증부는, 상기 제 2 기억 장치에 기억된 상기 분할 갱신 데이터에 대하여 상기 검증 처리를 실행하는
    것을 특징으로 하는 소프트웨어 갱신 장치.
  4. 제 3 항에 있어서,
    상기 중간치 기억부는, 상기 중간치를 상기 제 2 기억 장치에 기억하는 것을 특징으로 하는 소프트웨어 갱신 장치.
  5. 소프트웨어를 갱신하는 갱신 데이터가 복수로 분할된 각 분할 갱신 데이터를 차례로 취득하는 데이터 취득 처리와,
    상기 데이터 취득 처리에서 취득한 분할 갱신 데이터에 대하여 검증 처리를 실행하는 검증 처리와,
    상기 검증 처리에서 실행한 검증 처리 중에 얻어지는 중간치를 기억하는 중간치 기억 처리와,
    상기 각 분할 갱신 데이터에 대하여 상기 검증 처리가 끝나고, 상기 갱신 데이터의 검증이 성공한 경우, 다시 상기 각 분할 갱신 데이터를 차례로 취득하는 데이터 재취득 처리와,
    상기 데이터 재취득 처리에서 취득한 분할 갱신 데이터에 대하여 상기 검증 처리를 실행하는 재검증 처리와,
    상기 재검증 처리에서 실행한 검증 처리 중에 얻어지는 중간치와, 상기 중간치 기억 처리에서 기억한 중간치가 일치하는 경우, 상기 데이터 재취득 처리에서 취득한 상기 분할 갱신 데이터에 의해 소프트웨어를 갱신하는 갱신 처리
    를 컴퓨터에 실행시키는 것을 특징으로 하는 소프트웨어 갱신 프로그램을 기억한 기억 매체.
KR1020167011876A 2013-11-06 2013-11-06 소프트웨어 갱신 장치 및 소프트웨어 갱신 프로그램을 기억한 기억 매체 KR101780909B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/079986 WO2015068220A1 (ja) 2013-11-06 2013-11-06 ソフトウェア更新装置及びソフトウェア更新プログラム

Publications (2)

Publication Number Publication Date
KR20160065201A KR20160065201A (ko) 2016-06-08
KR101780909B1 true KR101780909B1 (ko) 2017-09-21

Family

ID=53041027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167011876A KR101780909B1 (ko) 2013-11-06 2013-11-06 소프트웨어 갱신 장치 및 소프트웨어 갱신 프로그램을 기억한 기억 매체

Country Status (7)

Country Link
US (1) US20160267273A1 (ko)
JP (1) JP6053950B2 (ko)
KR (1) KR101780909B1 (ko)
CN (1) CN105706099B (ko)
DE (1) DE112013007574T5 (ko)
TW (1) TWI503747B (ko)
WO (1) WO2015068220A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095501B2 (en) * 2013-03-15 2018-10-09 Oracle International Corporation Deployment and activation of updates on target hosts
US9792109B2 (en) * 2015-09-30 2017-10-17 Apple Inc. Software updating
CN105468964B (zh) * 2015-12-04 2018-09-14 上海兆芯集成电路有限公司 计算机系统以及计算机系统操作方法
TWI649671B (zh) * 2017-04-14 2019-02-01 精品科技股份有限公司 用於固定環境的資安防護系統及其資安防護方法
TWI649672B (zh) * 2017-04-14 2019-02-01 精品科技股份有限公司 用於固定環境的更新防護系統及其更新防護方法
TWI678658B (zh) * 2017-05-23 2019-12-01 慧榮科技股份有限公司 資料儲存裝置之韌體更新之方法
TWI700627B (zh) 2017-05-23 2020-08-01 慧榮科技股份有限公司 認證韌體資料之資料儲存裝置與資料儲存方法
US11516024B2 (en) 2018-01-19 2022-11-29 Renesas Electronics Corporation Semiconductor device, update data-providing method, update data-receiving method, and program
CN110083381B (zh) * 2018-01-26 2023-04-28 启碁科技股份有限公司 增量升级的方法及装置
CN110874225B (zh) * 2018-08-29 2023-05-02 杭州海康威视数字技术股份有限公司 一种数据校验方法、装置、嵌入式设备及存储介质
US10868709B2 (en) 2018-09-10 2020-12-15 Oracle International Corporation Determining the health of other nodes in a same cluster based on physical link information
DE102018217432A1 (de) * 2018-10-11 2020-04-16 Siemens Schweiz Ag Prüfung der Integrität von eingebetteten Geräten
US11632293B2 (en) * 2019-01-23 2023-04-18 Scalar, Inc. Tamper-evidence processing by comparing updated objects or by comparing summaries thereof
JP7282616B2 (ja) * 2019-06-27 2023-05-29 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
CN113221149B (zh) * 2021-05-27 2024-02-09 深圳市共进电子股份有限公司 固件加密方法、装置、固件解密方法和计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100729525B1 (ko) * 2005-10-06 2007-06-15 삼성에스디에스 주식회사 펌웨어 업데이트 방법 및 시스템
JP2009267605A (ja) * 2008-04-23 2009-11-12 Nippon Hoso Kyokai <Nhk> 送信装置及び限定受信装置
JP2013138409A (ja) * 2011-11-30 2013-07-11 Canon Inc 情報処理装置およびその方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8181020B2 (en) * 2005-02-02 2012-05-15 Insyde Software Corp. System and method for securely storing firmware
JP2009054064A (ja) * 2007-08-29 2009-03-12 Hitachi Ltd ディジタル信号再生装置およびディジタル信号再生方法
US20100082963A1 (en) * 2008-10-01 2010-04-01 Chun Hui Li Embedded system that automatically updates its software and the method thereof
CN101930387A (zh) * 2009-06-19 2010-12-29 上海惠普有限公司 用于更新压缩只读文件系统的改进的容错方法及装置
JP5346253B2 (ja) * 2009-08-24 2013-11-20 株式会社日立ソリューションズ ファームウェア更新システム、及び情報機器、並びにプログラム
JP5411282B2 (ja) * 2009-09-17 2014-02-12 パナソニック株式会社 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路
WO2012056656A1 (ja) * 2010-10-28 2012-05-03 パナソニック株式会社 改ざん監視システム、保護制御モジュール及び検知モジュール
TWI445323B (zh) * 2010-12-21 2014-07-11 Ind Tech Res Inst 資料傳送的混合式編解碼裝置與方法
JP5286380B2 (ja) * 2011-03-07 2013-09-11 株式会社東芝 データ送信装置および送信方法
US20120331303A1 (en) * 2011-06-23 2012-12-27 Andersson Jonathan E Method and system for preventing execution of malware
CN103366125B (zh) * 2012-03-28 2017-07-21 富泰华工业(深圳)有限公司 文件加密系统和方法
CN102868765B (zh) * 2012-10-09 2015-06-03 乐视网信息技术(北京)股份有限公司 文件上传方法和系统
US9092300B2 (en) * 2013-04-18 2015-07-28 Ottr Products, Llc Peripheral device and method for updating firmware thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100729525B1 (ko) * 2005-10-06 2007-06-15 삼성에스디에스 주식회사 펌웨어 업데이트 방법 및 시스템
JP2009267605A (ja) * 2008-04-23 2009-11-12 Nippon Hoso Kyokai <Nhk> 送信装置及び限定受信装置
JP2013138409A (ja) * 2011-11-30 2013-07-11 Canon Inc 情報処理装置およびその方法

Also Published As

Publication number Publication date
KR20160065201A (ko) 2016-06-08
WO2015068220A1 (ja) 2015-05-14
TWI503747B (zh) 2015-10-11
US20160267273A1 (en) 2016-09-15
JPWO2015068220A1 (ja) 2017-03-09
JP6053950B2 (ja) 2016-12-27
DE112013007574T5 (de) 2016-08-18
TW201519096A (zh) 2015-05-16
CN105706099A (zh) 2016-06-22
CN105706099B (zh) 2018-11-30

Similar Documents

Publication Publication Date Title
KR101780909B1 (ko) 소프트웨어 갱신 장치 및 소프트웨어 갱신 프로그램을 기억한 기억 매체
JP5690412B2 (ja) ハードウェアデバイスの鍵プロビジョン方法および装置
US10474823B2 (en) Controlled secure code authentication
CN108241517B (zh) 一种软件升级方法、客户端及电子设备
TWI667586B (zh) 用以核對uefi認證變量變化之系統及方法
KR101247914B1 (ko) 보안 생체인식 모델을 이용한 아이덴티티 기반 대칭 암호체계
US8555049B2 (en) Secure boot terminal, secure boot method, secure boot program, recording medium, and integrated circuit
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
TWI436280B (zh) 存取基本輸入輸出系統設定的認證方法
US20060005046A1 (en) Secure firmware update procedure for programmable security devices
EP2965254A1 (en) Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
JP6927981B2 (ja) パスコード検証のためのフォワードセキュア型暗号技術を使用した方法、システム、及び装置。
WO2015042981A1 (zh) 加解密处理方法、装置和设备
WO2016014120A1 (en) Device authentication agent
JP6654651B2 (ja) 動的なセキュリティーモジュール端末装置及びその駆動方法
WO2009156302A1 (en) Electronic device and method of software or firmware updating of an electronic device
US9940462B2 (en) Code validation
KR20200129103A (ko) 집적 회로 데이터 보호
US9893882B1 (en) Apparatus, system, and method for detecting device tampering
JP2014509808A (ja) 携帯端末暗号方式、ハードウェア暗号化デバイス及び携帯端末
WO2018166163A1 (zh) Pos终端控制方法、pos终端、服务器及存储介质
JP6888122B2 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
KR102216869B1 (ko) 종단간 암호화가 적용된 파일에 대한 복호화 장치 및 방법
JP2018194879A (ja) 半導体装置、ブート方法、およびブートプログラム
KR20180052479A (ko) 서명 체인을 이용한 유무선 공유기의 펌웨어 업데이트 시스템, 유무선 공유기 및 유무선 공유기의 펌웨어 업데이트 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right