KR20190039645A - 인증 가속화를 위해 신뢰할 수 있는 저장 장치에 대한 검사 생성 - Google Patents

인증 가속화를 위해 신뢰할 수 있는 저장 장치에 대한 검사 생성 Download PDF

Info

Publication number
KR20190039645A
KR20190039645A KR1020180117228A KR20180117228A KR20190039645A KR 20190039645 A KR20190039645 A KR 20190039645A KR 1020180117228 A KR1020180117228 A KR 1020180117228A KR 20180117228 A KR20180117228 A KR 20180117228A KR 20190039645 A KR20190039645 A KR 20190039645A
Authority
KR
South Korea
Prior art keywords
storage device
embedded
controller
private key
memory controller
Prior art date
Application number
KR1020180117228A
Other languages
English (en)
Other versions
KR102557005B1 (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 KR20190039645A publication Critical patent/KR20190039645A/ko
Application granted granted Critical
Publication of KR102557005B1 publication Critical patent/KR102557005B1/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
    • 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
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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
    • 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
    • H04L9/3242Cryptographic 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 involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Stored Programmes (AREA)

Abstract

저장 장치로부터 임베디드 장치로 전송될 파일의 유효성 검사를 위한 방법으로서, 상기 저장 장치상의 제어기를 사용하여 전송할 파일을 판독하는 단계, 상기 저장 장치에서 상기 임베디드 장치로부터 저장된 공개 키를 수신하는 단계, 파일 전송 전에, 상기 저장 장치상의 개인 키 및 제어기를 사용하여 상기 저장된 공개 키를 검증하는 단계와, 상기 저장된 공개 키가 검증되면, 상기 저장 장치로부터 상기 임베디드 장치로 상기 파일을 전송하는 단계를 포함한다. 제어기를 갖는 상기 저장 장치가 외부 대용량 저장 장치 또는 eMMC 메모리 제어기 일 수 있다

Description

인증 가속화를 위해 신뢰할 수 있는 저장 장치에 대한 검사 생성 {GENERATING CHECKSUMS ON TRUSTED STORAGE DEVICES FOR ACCELERATED AUTHENTICATION}
본 발명의 주제는 컴퓨팅 시스템의 임베디드 장치에서의 펌웨어 업데이트를 위한 시스템 및 방법에 관한 것이다.
컴퓨팅 시스템의 임베디드 장치는 소비재, 자동차, 의료 및 산업 시장에서 광범위하게 응용된다. 임베디드 장치는 일반적으로 특수 목적 컴퓨팅 시스템 내에 포함된다. 많은 임베디드 장치는 시스템을 제어하기 위해 펌웨어에 의존한다. 흔히 펌웨어 제어 장치의 기능은 펌웨어 업데이트를 요한다. 예를 들어, 운영 체제와의 호환성 유지, 새로운 기능 추가, 결함 수정 또는 보안상의 이유가 해당된다. 펌웨어 업데이트는 대개 대용량 저장 장치에 저장되며 임베디드 장치와 대용량 저장 장치간에 필수 조건이 충족되면 임베디드 장치로 전송된다. 현재, 대용량 저장 장치에서 임베디드 장치에 대한 펌웨어 업데이트를 수행할 때, 업데이트 시간의 약 절반은 해시 및 서명을 검사하여 업데이트의 신뢰성 및 일관성을 확인하기 위해 초기 정보 읽기로 구성된다. 일치하면 업데이트 진행이 승인된다. 그렇지 않으면 업데이트가 거부될 것이다.
대용량 저장 장치로부터 임베디드 장치로의 펌웨어 업데이트가 이루어지는 속도를 가속화하는 시스템 및 방법이 필요하다.
공개 키가 저장된 임베디드 장치에 대한 펌웨어를 업데이트하기 위한 시스템 및 방법이 개시된다. 이 방법은 임베디드 장치와 저장 장치 간의 연결을 개시한다. 저장 장치는 제어기, 메모리, 및 임베디드 장치의 제조자와 관련된 개인 키를 갖는다. 임베디드 장치에서, 저장 장치의 펌웨어 업데이트가 감지된다. 저장된 공개 키는 저장 장치의 제어기에서 임베디트 장치로부터 수신된다. 저장된 공개 키는 저장 장치 상의 임베디드 장치 제조업체와 연관된 개인 키와 제어기를 사용하여 확인된다. 펌웨어 업데이트는 저장 장치의 제어기를 사용하여 저장 장치의 메모리로부터 판독된다. 저장된 공개 키를 확인하면 펌웨어가 임베디드 장치에서 업데이트된다.
저장 장치상의 개인 키는 저장 장치 상에 에칭된다. 저장 장치가 외부 대용량 저장 장치일 수도 있고, 또는 저장 장치가 임베디드 멀티미디어 컨트롤러 메모리 제어기 일 수도 있다.
도 1은 차량 상에 인포테인먼트 유닛으로 도시된 컴퓨팅 시스템 및 대용량 저장 장치를 수용하기 위한 USB 포트를 포함하는 업데이트 시나리오의 블록도이다.
도 2는 대용량 저장 장치와 통신하는 적어도 하나의 임베디드 장치를 갖는 컴퓨팅 시스템의 블록도이다.
도 3은 대용량 저장 장치를 사용하여 펌웨어를 업데이트하는 방법의 흐름도이다.
도면의 구성 요소 및 단계는 간략화 및 명료성을 위해 도시되고 반드시 특정 시퀀스에 따라 렌더링될 필요는 없다. 예를 들어, 동시 적으로 또는 상이한 순서로 수행될 수 있는 단계들이 본 발명의 주제의 실시예에 대한 이해를 돕기 위해 도면에 도시되어있다.
본 발명의 주제의 다양한 양상이 특정한 예시적인 실시예를 참조하여 설명되지만, 본 발명의 주제는 그러한 실시예에 한정되지 않고, 본 발명의 주제를 벗어나지 않고 추가의 수정, 응용 및 실시예가 구현될 수 있다. 도면에서, 동일한 참조 번호는 동일한 구성 요소를 설명하기 위해 사용될 것이다. 당업자는 본 명세서에 개시된 다양한 구성 요소가 본 발명의 주제의 범위를 변경하지 않고 변경될 수 있음을 인식할 것이다.
도 1은 항법 장치, 멀티미디어 장치, 인포테인먼트 유닛, 퍼스널 컴퓨터, 태블릿, 스마트 폰, 또는 소비자 전자 장치에 사용되는 다른 컴퓨팅 시스템과 같은 컴퓨팅 시스템(102)을 포함하는 업데이트 시나리오(100)의 블록도이다. 도 1에 도시된 컴퓨팅 시스템(102)은 차량 인포테인먼트 유닛이고, 예시 용도로만 도시된다. 컴퓨팅 시스템(102)에 USB 포트(104)와 같이, 컴퓨팅 시스템(102)에 대용량 저장 장치(도 1에 도시되지 않음)를 연결하는 수단(104)이 또한 도 1에 도시된다. 다시 말하지만, USB 포트가 표시되어 있지만 이는 단지 예시에 불과하다. 컴퓨팅 장치 및 대용량 저장 장치를 연결하기 위한 버스를 제공하는 다른 예는 SATA, Wi-Fi, 번개(lightning), 이더넷, UFS, 5G 등을 포함하지만 이에 한정되지는 않는다. 컴퓨팅 시스템(102)은 하나 이상의 임베디드 장치(도시되지 않음) 그래픽, 오디오, 무선 네트워킹과 같은 인터페이스를 위한 복수의 소프트웨어 프로그램 및/또는 플랫폼, 이네이블링 애플리케이션(enabling applications), 차량 구성요소, 시스템의 통합 하드웨어, 및 스마트 폰, 태블릿, 및 항법 시스템과 같은 외부 장치를 이용하여 동작할 수 있는 하나 이상의 임베디드 장치(도시되지 않음)을 가진다. 최적의 성능을 보장하려면 임베디드 장치의 펌웨어 업데이트가 거의 항상 필요하다.
이제 도 2를 참조하면, 도 1에 도시된 컴퓨팅 시스템의 임베디드 장치(202) 및 및 저장 장치(208)의 블록도(200)가 도시되어있다. 저장 장치(208)는 통신 버스(210)를 통해 컴퓨팅 시스템(102)에 접속하기 위해 USB 포트에 의해 수신될 수 있다. 도 2에서 도시된 예에서, 저장 장치는 USB 드라이브와 같은 외부 대용량 저장 장치이다. 그러나 저장 장치가 호스트의 내부에 있는 저장 장치, 예를 들어 임베디드 멀티미디어 카드(eMMC) 또는 SSD 카드와 같은 다른 SSD(Solid-State Storage) 장치일 수 있다.
임베디드 장치(202)들 중 하나 이상이 다양한 프로그래밍 언어 및/또는 기술을 사용하여 생성된 컴퓨터 프로그램으로부터 컴파일 또는 해석될 수 있는 컴퓨터 실행 가능 명령어를 포함하는 컴퓨팅 장치와 같은 처리 유닛(206)을 포함한다. 일반적으로, 프로세서(예를 들어, 마이크로 프로세서)는 예를 들어 메모리(212), 컴퓨터 판독 가능 매체 등으로부터 명령어를 수신하고 그 명령어를 실행한다. 처리 유닛(206)은 소프트웨어 프로그램의 명령어들을 실행할 수 있는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다. 컴퓨터 판독 가능 저장 매체는 전자 저장 장치, 자기 저장 장치, 광학 저장 장치, 전자기 저장 장치, 반도체 저장 장치 또는 이들의 임의의 적절한 조합 일 수 있지만, 이에 한정되는 것은 아니다. 컴퓨팅 시스템 및 임베디드 시스템들 중 하나 이상은 펌웨어에 의존하며, 운영 체제와의 호환성, 개선 및 추가 기능, 보안 업데이트 등을 보장하기 위해 수시로 업데이트해야할 수 있다. 임베디드 장치(202)는 검증을 위해 하나 이상의 공개 키(220)를 보유한다.
저장 장치(208)는 펌웨어 업데이트를 저장하고, 펌웨어 업데이트가 컴퓨팅 시스템(102) 및/또는 임베디드 장치(202)와 통신되어야할 때 저장 장치(208)에 액세스한다. 저장 장치(208)는 메모리 칩(214) 및 제어기(216)를 포함한다. 저장 장치 제어기(216)는 다양한 프로그래밍 언어 및/또는 기술을 사용하여 생성된 컴퓨터 프로그램으로부터 컴파일되거나 해석될 수 있는 컴퓨터 실행 가능 명령어를 포함하는 프로세서를 갖는다. 일반적으로, 프로세서(마이크로 프로세서와 같은)는 예를 들어 메모리, 컴퓨터 판독 가능 매체 등으로부터 명령어를 수신하고 명령어를 실행한다. 프로세서는 ROM 및 RAM을 포함하는, 소프트웨어 프로그램의 명령을 실행할 수 있는 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다. 저장 장치(208)는 임베디드 시스템상의 펌웨어로 업데이트를 전송하기 위해 임베디드 시스템에의 접속을 용이하게하기 위한 커넥터, 예를 들어 USB 커넥터를 포함한다.
저장 장치(208)는 제조자 개인 키(218)를 보유한다. 개인 키(218)는 저장 장치(208)의 실리콘 내에 물리적으로 매립, 에칭 또는 구워져(burned) 있다. 예를 들어, 조립 중에 개인 키가 레코딩/프로그래밍되어 수정할 수 없는 집적 회로 또는 SoC 내부의 1회 프로그래머블(OTP) 영역을 이용할 수 있다. 대안 적으로, 저장 장치상의 제조자 개인 키 및 판독 바이트를 포함하는 개별적인 하드웨어 보안 모듈(HSM)이 저장 장치상의 메모리로부터 저장 장치상의 HSM으로 전달되어 서명을 생성할 수 있다. 제조업자 개인 키(218)는 저장 장치(208)에서만 액세스될 수 있다. 제조자 개인 키(218)는 호스트 또는 호스트의 요청과 같이 판독되거나 전송될 수 없다. 개인 키(218)는 저장 장치 제어기(216)에 의해서만 액세스되어 파일 또는 메모리 영역 검사합 및 공개 키/인증서를 갖는 임베디드 장치에 의해 검증된 서명된 검사합을 생성한다.
도 3은 저장 장치를 이용하여 임베디드 장치상의 펌웨어에 대한 사용자 개시 업데이트를 위한 방법(300)의 흐름도이다. 저장 장치에는 임베디드 장치의 펌웨어에 대한 업데이트가 포함되어 있다. 임베디드 장치는 도 3을 참조하여 "호스트"로 지칭된다. 업데이트는 사용자에 의해 시작된다(302). 예를 들어, 사용자는 USB 포트와 같은 외부 적으로 사용 가능한 버스를 통해 저장 장치를 임베디드 장치에 연결하여 업데이트를 시작할 수 있다. USB 장치에 대한 드라이버 검출, 식별, 및 로딩 프로세스가 저장 장치와 호스트 사이에서 발생하며 장치 열거(device enumeration)라고도 한다. 호스트는 저장 장치 상에서 이용 가능한 업데이트를 검출(306)하기 위해 질의(304)를 수행한다. 호스트는 저장 장치로부터 신뢰할 수 있는 검사합(checksum)을 요청한다(308).
다음 몇 단계가 저장 장치상에서 수행된다. 일반적으로 저장 장치로부터 임베디드 장치에 대한 펌웨어 업데이트를 수행할 때, 해시 및 서명을 확인하여 업데이트의 신뢰성과 일관성을 확인하는데 업데이트 시간의 최대 50 %를 소비합니다. 이러한 모든 판독은 저장 장치의 제한된 유효 전송 속도로 인해 업데이트 병목 현상을 일으킨다. 저장 장치의 전송 속도는 일반적으로 30MB/초다. 그러나 저장 장치의 eMMC 칩에는 270 MB/초와 같이 훨씬 빠른 전송 속도를 낼 수 있는 칩이 포함되어 있다. 따라서 저장 장치 제어기에서 읽기, 해시 및 검사합 서명을 수행하면 훨씬 빠른 업데이트가 실현될 수 있다. 결과적으로 업데이트 시간의 상당 부분(40 % 정도)이 제거될 수 있다. 저장 장치는 파티션의 검사합을 생성하고(310), 내장된 제조자 개인 키로 검사합에 서명한다(312). 임베디드 장치가 임베디드 장치의 제조자로부터의 신뢰된 공개 키를 가지며(도 2, 202 참조) 저장 장치는 임베디드 장치의 제조자와 관련된 개인 키를 가지고 있기 때문에, 저장 장치에 의해 생성된 해시가 진짜의 것이거나 또는 알려진 소스의 것이라는 검증이 자동적이며, 소스)즉, 대용량 저장 장치)를 신뢰할 수 있다.
저장 장치는 서명된 검사합을 호스트에 리턴한다(314). 호스트는 검사합을 판독(316)하고 서명된 검사합을 호스트에 이미 저장된 제조자 공개 키와 대조한다(318). 검증에 성공하면, 펌웨어 업데이트가 호스트로 복사된다(320).
본 발명의 요지는 저장 장치 제어기(도 2의 216 참조)에 대한 검사를 수행함으로써 가속 및 인증 검사를 허용한다. 개인 키가 저장 장치에 새겨져 있기 때문에 해시 서명은 저장 장치에서 발생하며 결과 만 호스트나 임베디드 장치로 전송된다. 또한 저장 장치에서 읽기를 수행하면, 느린 외부 인터페이스를 통해 임베디드 장치에 데이터를 복사하는 것보다 훨씬 빠르게 검사가 이루어진다.
본 명세서의 설명은 저장 장치에 관한 것이지만, 해싱 및 서명은 내부 임베디드 멀티미디어 카드(eMMC)에도 적용될 수 있다. eMMC는 일반적으로 호스트에 있지만 개인 키는 eMMC에서 액세스할 수 있으며 개인 키는 읽거나 전송할 수 없다. 해싱은 가속화 될뿐만 아니라 보안 부팅을 위한 추가 보안을 제공한다. 또한 처리 및 해시 계산이 호스트에서 오프로드될 수 있다. 또한, 본 발명의 주제는 다운로드된 펌웨어 업데이트뿐만 아니라 내부 저장 장치상의 파일의 일관성을 검사하는데 사용될 수 있다. 예를 들어, 펌웨어 오버 디 에어(FOTA) 업데이트 또는 구글 플레이 또는 애플 앱스토어와 같은 소스의 앱은 eMMC에 설치하기 전에 일관되고 확실하다는 것을 확인할 수 있다. 가정용 기기 또는 임베디드 시스템과 같은 IoT(Internet of Things) 장치의 경우, 내부 eMMC 메모리 제어기를 활용할 수 있습니다. 내부 해싱 속도는 보다 빠르고 안전해질 것이다.
상기 명세서에서, 본 발명의 주제는 특정 예시적인 실시예를 참조하여 설명되었다. 그러나 청구 범위에 기재된 발명 주제의 범위를 벗어나지 않고 다양한 변형 및 변경이 이루어질 수 있다. 명세서 및 도면은 제한적인 것이 라기보다는 예시적인 것이며 수정은 본 발명의 주제의 범위 내에 포함되는 것으로 의도된다. 따라서, 본 발명의 주제의 범위는 설명된 예에 의해서만이 아니라 청구 범위 및 그 법적 등가물에 의해 결정되어야 한다.
예를 들어, 임의의 방법 또는 프로세스 청구 범위에 열거된 단계들은 임의의 순서로 실행될 수 있고 청구 범위에 제시된 특정 순서에 제한되지 않는다. 또한, 임의의 장치 청구항들에 언급된 구성 요소들 및/또는 구성 요소들은 다양한 순열들로 조립되거나 달리 동작 가능하게 구성될 수 있으며, 따라서 청구 범위에 기재된 특정 구성에 한정되지 않는다.
이점에 대한 이점, 다른 장점 및 문제점에 대한 해결책이 특정 실시예와 관련하여 상술되었다. 그러나, 임의의 특정 이익, 이점 또는 해결책을 발생 시키거나 더 발음하게 만들 수 있는 임의의 이점, 장점, 문제의 해결책 또는 임의의 요소는 임의의 또는 모든 청구 범위의 중요하고, 필수적인 또는 필수적인 특징 또는 구성 요소로 해석되어서는 안된다.
용어 "포함한다", "포함하다", "포함하는", "갖는", "구비하는", "구비한다"또는 이들의 임의의 변형은 비-배타적인 포함을 언급하는 것으로서, 요소들의 리스트를 포함하는 프로세스, 방법, 품목, 조성물 또는 장치는 열거된 요소들만을 포함하는 것이 아니라, 명시 적으로 열거되지 않거나 그러한 과정, 방법, 물품, 구성 또는 장치에 고유한 다른 요소들을 포함할 수 있다. 특정하게 열거되지 않은 것들 이외에, 본 발명의 주제의 실시에 사용되는 상술한 구조, 배열, 응용, 비율, 요소, 재료 또는 구성 요소의 다른 조합 및/또는 변형은 특정 환경, 제조 사양, 설계 파라미터 또는 다른 동작 요구 사항을 충족시킬 수 있다.

Claims (23)

  1. 공개 키를 저장한 임베디드 장치의 펌웨어를 업데이트하는 방법에 있어서,
    상기 임베디드 장치와, 상기 저장 장치에서만 액세스되는 상기 임베디드 장치의 제조업 자와 관련된 개인 키, 메모리 및 제어기를 갖는 저장 장치와의 연결을 개시하는 단계와,
    상기 임베디드 장치에서, 상기 저장 장치 상의 상기 임베디드 장치에 대한 펌웨어 업데이트를 검출하는 단계와,
    상기 임베디드 장치로부터, 상기 저장 장치의 제어기에서 상기 저장된 공개 키를 수신하는 단계와,
    상기 저장 장치 제어기 및 상기 저장 장치상의 개인 키를 사용하여 상기 저장된 공개 키를 검증하는 단계와,
    상기 저장 장치 제어기를 사용하여 상기 저장 장치의 메모리로부터 상기 펌웨어 업데이트를 판독하는 단계와,
    저장된 공개 키가 검증되면, 임베디드 장치상의 펌웨어를 업데이트하는 단계를 포함하는
    펌웨어 업데이트 방법.
  2. 제 1 항에 있어서, 상기 저장 장치는 외부 대용량 저장 장치인 펌웨어 업데이트 방법.
  3. 제 2 항에 있어서, 상기 개인 키는 상기 외부 대용량 저장 장치 상에 에칭되는 펌웨어 업데이트 방법.
  4. 제 2 항에 있어서, 상기 개인 키는 상기 외부 대용량 저장 장치 내의 1회 프로그램 가능 영역에 프로그래밍되는 펌웨어 업데이트 방법.
  5. 제 1 항에 있어서, 상기 저장 장치는 임베디드 멀티미디어 컨트롤러 메모리 제어기인 펌웨어 업데이트 방법.
  6. 제 5 항에 있어서, 상기 개인 키는 상기 임베디드 멀티미디어 컨트롤러 메모리 제어기에 에칭되는 펌웨어 업데이트 방법.
  7. 제 5 항에 있어서, 상기 개인 키는 상기 임베디드 멀티미디어 컨트롤러 메모리 제어기 내의 1회 프로그램 가능 영역에 프로그래밍되는 펌웨어 업데이트 방법.
  8. 펌웨어 업데이트 시스템에 있어서,
    컴퓨팅 시스템;
    상기 컴퓨팅 시스템 상의 적어도 하나의 임베디드 장치 - 상기 임베디드 장치는 펌웨어, 프로세서, 메모리, 및 상기 적어도 하나의 임베디드 장치의 메모리에 저장된 공개 키를 가짐 - 와,
    저장 장치 상의 상기 임베디드 장치의 제조자와 관련된 개인 키를 가지며, 상기 저장 장치에서만 액세스되는, 개인 키를 갖는 상기 저장 장치 - 상기 저장 장치는 제어기를 가짐 - 와,
    상기 적어도 하나의 임베디드 장치에 의한 펌웨어 업데이트의 검출시 상기 저장 장치의 메모리에 저장되고 상기 적어도 하나의 임베디드 장치로 전송되는 펌웨어 업데이트 - 상기 저장 장치의 제어기에서 검사합을 생성하고, 상기 저장 장치 상의 개인 키를 이용하여 상기 저장 장치에서의 검사합에 서명하며, 상기 임베디드 장치에서 서명된 검사합을 검증하고, 상기 서명된 검사합의 검증시 상기 임베디드 장치에 대한 상기 펌웨어 업데이트를 수행함 - 를 포함하는
    펌웨어 업데이트 시스템.
  9. 제 8 항에 있어서, 상기 저장 장치는 외부 대용량 저장 장치인 펌웨어 업데이트 시스템.
  10. 제 9 항에 있어서, 상기 개인 키는 상기 외부 대용량 저장 장치 상에 에칭되는 펌웨어 업데이트 시스템.
  11. 제 9 항에 있어서, 상기 개인 키는 상기 외부 대용량 저장 장치 내의 1회 프로그램 가능 영역에 프로그래밍되는 펌웨어 업데이트 시스템.
  12. 제 9 항에 있어서, 상기 외부 대용량 저장 장치는 상기 개인 키를 포함하는 분리된 하드웨어 보안 모듈을 더 포함하는 펌웨어 업데이트 시스템.
  13. 제 8 항에 있어서, 상기 저장 장치는 임베디드 멀티미디어 컨트롤러 메모리 제어기를 더 포함하는 펌웨어 업데이트 시스템.
  14. 제 13 항에 있어서, 상기 개인 키는 상기 임베디드 멀티미디어 컨트롤러 메모리 제어기 상에 에칭되는 펌웨어 업데이트 시스템.
  15. 제 13 항에 있어서, 상기 개인 키는 상기 임베디드 멀티미디어 컨트롤러 메모리 제어기 내의 1회 프로그램 가능 영역에 프로그래밍되는 펌웨어 업데이트 시스템.
  16. 제 13 항에 있어서, 상기 임베디드 멀티미디어 컨트롤러 메모리 제어기는 상기 개인 키를 포함하는 별개의 하드웨어 보안 모듈을 더 포함하는 펌웨어 업데이트 시스템.
  17. 제 13 항에 있어서, 상기 저장 장치는 사물 인터넷(Internet of Things) 장치 내에 임베디드 멀티미디어 제어기를 더 포함하는 펌웨어 업데이트 시스템.
  18. 저장 장치로부터 임베디드 장치로 전송될 파일의 유효성 검사 방법에 있어서,
    상기 저장 장치상의 제어기를 사용하여 전송될 파일을 판독하는 단계;
    상기 저장 장치에서 상기 임베디드 장치 상에 저장된 공개 키를 수신하는 단계;
    상기 파일을 전송하기 전에, 상기 저장 장치상의 제어기 및 상기 저장 장치상에서만 액세스되는 개인 키를 사용하여 상기 저장된 공개 키를 검증하는 단계; 및
    상기 저장된 공개 키를 검증하면, 상기 파일을 상기 저장 장치로부터 상기 임베디드 장치로 전송하는 단계를 포함하는 유효성 검사 방법.
  19. 제 18 항에 있어서, 상기 저장 장치는 외부 대용량 저장 장치이고, 상기 외부 대용량 저장 장치상의 상기 개인 키는 상기 외부 대용량 저장 장치 상에 에칭되거나, 상기 외부 대용량 저장 장치의 1회 프로그램 가능 영역에 프로그래밍되거나, 또는, 외부 대용량 저장 장치의 별도 하드웨어 보안 모듈에 수용되는, 유효성 검사 방법.
  20. 제 18 항에 있어서, 상기 저장 장치는 임베디드 멀티미디어 제어기 메모리이고, 상기 임베디드 멀티미디어 제어기 메모리상의 상기 개인 키는 상기 임베디드 멀티미디어 컨트롤러 메모리 제어기 상에 에칭되거나, 상기 임베디드 멀티미디어 컨트롤러 메모리 제어기의 1회 프로그램 가능 영역에 프로그래밍되거나, 또는 임베디드 멀티미디어 컨트롤러 메모리 제어기 상의 별도의 하드웨어 보안 모듈 상에 수용되는 유효성 검사 방법.
  21. 임베디드 시스템에 적용될 파일의 유효성 검사 방법에 있어서,
    상기 임베디드 시스템상의 eMMC 메모리 제어기를 이용하여 적용될 파일을 판독하는 단계;
    상기 eMMC 메모리 제어기에서 상기 임베디드 시스템에 저장된 공개 키를 수신하는 단계;
    상기 파일을 적용하기 전에, 상기 eMMC 메모리 제어기 및 상기 eMMC 메모리 제어기에서만 액세스되는 개인 키를 사용하여 상기 저장된 공개 키를 검증하는 단계; 및
    저장된 공개 키가 검증되면, eMMC 메모리 제어기로부터 임베디드 시스템으로 파일을 전송하는 단계를 포함하는
    유효성 검사 방법.
  22. 제 21 항에 있어서, 상기 eMMC 메모리 제어기상의 상기 개인 키는 상기 eMMC 메모리 제어기 상에 에칭되거나, 상기 eMMC 메모리 제어기의 1회 프로그램 가능 영역에 프로그래밍되거나, 또는 상기 eMMC 메모리 제어기상의 별도의 하드웨어 보안 모듈에 포함되는 유효성 검사 방법.
  23. 제 22 항에 있어서, 상기 임베디드 시스템은 사물 인터넷(Internet of Things) 장치의 일부인 유효성 검사 방법.
KR1020180117228A 2017-10-05 2018-10-01 인증 가속화를 위해 신뢰할 수 있는 저장 장치에 대한 검사 생성 KR102557005B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/725,878 US20190108009A1 (en) 2017-10-05 2017-10-05 Generating checksums on trusted storage devices for accelerated authentication
US15/725,878 2017-10-05

Publications (2)

Publication Number Publication Date
KR20190039645A true KR20190039645A (ko) 2019-04-15
KR102557005B1 KR102557005B1 (ko) 2023-07-19

Family

ID=63722189

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180117228A KR102557005B1 (ko) 2017-10-05 2018-10-01 인증 가속화를 위해 신뢰할 수 있는 저장 장치에 대한 검사 생성

Country Status (5)

Country Link
US (1) US20190108009A1 (ko)
EP (1) EP3467647B1 (ko)
JP (1) JP7134818B2 (ko)
KR (1) KR102557005B1 (ko)
CN (1) CN109634628B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102534209B1 (ko) * 2018-01-25 2023-05-17 엘지전자 주식회사 차량용 업데이트 시스템 및 제어 방법
US10776488B2 (en) * 2018-09-24 2020-09-15 Dell Products L.P. Extend root of trust to include firmware of individual components of a device
US11184170B2 (en) * 2019-06-28 2021-11-23 Micron Technology, Inc. Public key protection techniques
KR20210017268A (ko) * 2019-08-07 2021-02-17 삼성전자주식회사 사용자 데이터에 대해 암호화 동작을 수행하는 전자 장치
US11681513B2 (en) * 2020-05-14 2023-06-20 Texas Instmments Incorporated Controlled scope of authentication key for software update
US20230281004A1 (en) * 2022-03-01 2023-09-07 Otis Elevator Company Offline self content management infotainment system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046570A1 (en) * 2001-08-07 2003-03-06 Nokia Corporation Method for processing information in an electronic device, a system, an electronic device and a processing block
US20060184686A1 (en) * 2003-10-15 2006-08-17 Daniel Lecomte Secure distribution process and system for the distribution of audiovisual streams
KR20150106219A (ko) * 2014-03-11 2015-09-21 삼성전자주식회사 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법
KR20150130254A (ko) * 2014-05-13 2015-11-23 삼성전자주식회사 무선 네트워크에서의 접속 장치 및 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4555591A (en) * 1982-09-07 1985-11-26 At&T Bell Laboratories Integrated circuit devices for secure data encryption
US20090204823A1 (en) * 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
US8761390B2 (en) * 2008-06-30 2014-06-24 Gm Global Technology Operations Production of cryptographic keys for an embedded processing device
CN101924607B (zh) * 2010-08-27 2013-01-23 华为终端有限公司 基于固件空中传输技术的固件处理方法、装置及***
WO2012109640A2 (en) * 2011-02-11 2012-08-16 Siemens Healthcare Diagnostics Inc. System and method for secure software update
WO2012127266A1 (en) * 2011-03-23 2012-09-27 Sandisk Il Ltd. Storage device and method for updating data in a partition of the storage device
US9183393B2 (en) * 2012-01-12 2015-11-10 Facebook, Inc. Multiple system images for over-the-air updates
EP2854066B1 (en) * 2013-08-21 2018-02-28 Nxp B.V. System and method for firmware integrity verification using multiple keys and OTP memory
JP5907937B2 (ja) * 2013-09-11 2016-04-26 京セラドキュメントソリューションズ株式会社 組込システム
CN103617128B (zh) * 2013-12-11 2016-08-17 长城信息产业股份有限公司 一种嵌入式***及安全操作***的实现方法
KR20150100075A (ko) * 2014-02-24 2015-09-02 삼성전자주식회사 메모리 및 컨트롤러를 포함하는 메모리 장치의 펌웨어를 업데이트하는 방법
US9524158B2 (en) * 2015-02-23 2016-12-20 Apple Inc. Managing firmware updates for integrated components within mobile devices
US9836296B2 (en) * 2015-06-11 2017-12-05 Telefonaktiebolaget Lm Ericsson (Publ) Methods and systems for providing updates to and receiving data from devices having short range wireless communication capabilities
US9935945B2 (en) * 2015-11-05 2018-04-03 Quanta Computer Inc. Trusted management controller firmware
US10355858B2 (en) * 2016-03-30 2019-07-16 Intel Corporation Authenticating a system to enable access to a diagnostic interface in a storage device
US10728249B2 (en) * 2016-04-26 2020-07-28 Garrett Transporation I Inc. Approach for securing a vehicle access port
US11146401B2 (en) * 2016-08-10 2021-10-12 Ford Global Technologies, Llc Software authentication before software update

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046570A1 (en) * 2001-08-07 2003-03-06 Nokia Corporation Method for processing information in an electronic device, a system, an electronic device and a processing block
US20060184686A1 (en) * 2003-10-15 2006-08-17 Daniel Lecomte Secure distribution process and system for the distribution of audiovisual streams
KR20150106219A (ko) * 2014-03-11 2015-09-21 삼성전자주식회사 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법
KR20150130254A (ko) * 2014-05-13 2015-11-23 삼성전자주식회사 무선 네트워크에서의 접속 장치 및 방법

Also Published As

Publication number Publication date
CN109634628B (zh) 2023-12-29
EP3467647A1 (en) 2019-04-10
CN109634628A (zh) 2019-04-16
US20190108009A1 (en) 2019-04-11
EP3467647B1 (en) 2020-06-03
JP7134818B2 (ja) 2022-09-12
KR102557005B1 (ko) 2023-07-19
JP2019071053A (ja) 2019-05-09

Similar Documents

Publication Publication Date Title
KR102557005B1 (ko) 인증 가속화를 위해 신뢰할 수 있는 저장 장치에 대한 검사 생성
US10244394B2 (en) Method and update gateway for updating an embedded control unit
US9881162B2 (en) System and method for auto-enrolling option ROMS in a UEFI secure boot database
EP2962241B1 (en) Continuation of trust for platform boot firmware
CN111630513B (zh) 认证所存储代码和代码更新的真实性
KR101687277B1 (ko) 시스템 온 칩 디바이스들에서의 키 폐기
WO2020063001A1 (zh) 基本输入输出***固件的管理方法、装置和服务器
US10509568B2 (en) Efficient secure boot carried out in information processing apparatus
US8386763B1 (en) System and method for locking down a capability of a computer system
CN109445705B (zh) 固件认证方法及固态硬盘
JP6639620B2 (ja) コード署名の条件付き規定に基づくセキュアクライアント認証
CN110874467B (zh) 信息处理方法、装置、***以及处理器、存储介质
CN113632084B (zh) 运行时代码执行验证方法、设备及***
CN112805703A (zh) 软件验证装置、软件验证方法以及软件验证程序
CN112148314B (zh) 一种嵌入式***的镜像验证方法、装置、设备及存储介质
KR20210134054A (ko) 보안 전자 제어 유닛 업데이트를 위한 로컬 원장 블록 체인
CN107924440B (zh) 用于管理容器的方法、***和计算机可读介质
KR20210132212A (ko) 차량의 전자 제어 유닛 비준
JP2022527904A (ja) 無線更新の有効性確認
KR102089435B1 (ko) 안전한 usb 장치를 보장하는 부트 방법
JP2022526936A (ja) ブロックチェーンにおけるブロックとしてのメモリの使用
KR20230082388A (ko) 차량 제어기의 부트로더 검증 장치 및 그 방법
US20230367860A1 (en) Instruction verifications
US20240193275A1 (en) Electronic device and secure booting method thereof
US10567176B2 (en) Method for loading a computer resource into an electronic device, corresponding electronic module and computer program

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