KR102427977B1 - 추가 하드웨어 모듈을 이용하는 자동차 ecu 업데이트 방법 - Google Patents

추가 하드웨어 모듈을 이용하는 자동차 ecu 업데이트 방법 Download PDF

Info

Publication number
KR102427977B1
KR102427977B1 KR1020200151508A KR20200151508A KR102427977B1 KR 102427977 B1 KR102427977 B1 KR 102427977B1 KR 1020200151508 A KR1020200151508 A KR 1020200151508A KR 20200151508 A KR20200151508 A KR 20200151508A KR 102427977 B1 KR102427977 B1 KR 102427977B1
Authority
KR
South Korea
Prior art keywords
firmware
ecu
legacy
otasm
information
Prior art date
Application number
KR1020200151508A
Other languages
English (en)
Other versions
KR20220065223A (ko
Inventor
조진성
손희승
Original Assignee
경희대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경희대학교 산학협력단 filed Critical 경희대학교 산학협력단
Priority to KR1020200151508A priority Critical patent/KR102427977B1/ko
Publication of KR20220065223A publication Critical patent/KR20220065223A/ko
Application granted granted Critical
Publication of KR102427977B1 publication Critical patent/KR102427977B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명에 따른 자동차 ECU 업데이트 방법이 제공된다. 상기 방법은 OTA 지원 모듈(OTASM)에 의해 수행되고, 서버로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보를 검증하여 매니페스트 검증에 성공한 경우, 신규 펌웨어 파일을 암호화 통신을 통해 레거시 ECU로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신하는 펌웨어 업데이트 과정; 및 레거시 ECU로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU에 전송하고, 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축하는 부팅 및 암호화 통신 채널 형성 과정을 포함할 수 있다.

Description

추가 하드웨어 모듈을 이용하는 자동차 ECU 업데이트 방법{Update method to automotive ECU device by using external hardware module}
본 발명은 자동차 ECU 업데이트 방법에 관한 것이다. 보다 상세하게는, 추가 하드웨어 모듈을 이용하는 자동차 ECU 업데이트 방법 및 이를 수행하는 OTA 지원 모듈에 대한 것이다.
자동차 ECU OBD(On board diagnostics)과 관련하여 케이블을 통해 펌웨어 업데이트 과정이 수행될 수 있다. OTA 펌웨어 업데이트란 무선 통신(WiFi, Cellular, etc..)을 이용하여 펌웨어를 업데이트하는 방법이다. 차량의 경우 Cellular, WiFi등의 통신 모듈 및 게이트웨이 ECU를 장착하고 무선 네트워크망에 연결하여 언제 어디서나 펌웨어 업데이트가 가능하도록 한다. 이와 관련하여, 도 1은 본 발명과 관련하여 자동차 ECU OBD(On board diagnostics) 케이블 펌웨어 업데이트 과정을 나타낸다.
일반적인 자동차의 Secure OTA 펌웨어 업데이트 과정은 다음과 같다. 먼저 OEM은 업데이트 된 펌웨어 파일을 update server에 업로드 한다. 또한, 자동차의 게이트웨이 ECU는 주기적으로 update server에 업데이트 정보를 polling하여 신규 업데이트 파일이 존재할 경우 update server에 업데이트 요청을 보낸다. 이 후 server와 ECU는 미리 발급된 비대칭키를 활용하여 상호 인증 및 secure channel을 형성한다. 형성된 secure channel을 통해 updated firmware는 ECU로 전송되며, ECU는 전송된 updated firmware의 무결성을 확인한 뒤 firmware update를 진행하게 된다.
이러한 방법을 사용할 시 기본적인 요구사항으로 차량의 각 ECU 에는 OEM사의 public key가 제조 단계에서 저장 되어있어야 하며, Hash, 대칭 키, 비대칭키 알고리즘 등의 기본적인 암호화 알고리즘을 사용할 수 있어야 한다. 그러나 위의 방법은 사전에 OTA를 지원할 수 있도록 설계된 차량만 가능하므로 OTA를 지원하지 않는 상용 자동차는 이용할 수 없으며, secure channel을 형성하는데 가장 중요한 public key가 평범한 unsecure flash 메모리에 저장되므로 desoldering 혹은 data bus hijacking을 통해 public key가 외부에 노출 혹은 변형될 가능성이 있다. 이 때 flash 내의 public key가 노출될 경우 해커가 가상의 ECU를 만들어 업데이트 펌웨어를 획득하여 악용할 수 있으며, 변형될 경우 올바르지 않은 firmware가 ECU에 프로그래밍 될 수 있으므로 자동차에 큰 보안 취약점이 발생하게 된다는 문제점이 있다.
따라서, 본 발명의 목적은 전술한 문제를 해결하기 위해, 추가 하드웨어 모듈을 이용하는 자동차 ECU 업데이트 방법 및 이를 수행하는 OTA 지원 모듈을 제공함에 있다.
또한, 본 발명의 목적은 신규 및 상용 출시된 자동차 ECU에 대해 추가적인 하드웨어 모듈을 장착함으로써 자동차 내에 내장된 ECU들에 대한 Secure OTA 펌웨어 업데이트를 제공하는데 있다.
본 발명의 또 다른 목적은 자동차 시동 혹은 ECU 재부팅 시 추가 하드웨어 모듈을 이용하여 ECU내에서 실행되는 펌웨어의 무결성을 검증함으로써 잘못된 ECU 펌웨어의 신속한 복구 및 차량의 주행 안정성 상승을 제공하는데 있다.
상기와 같은 과제를 해결하기 위한 본 발명에 따른 자동차 ECU 업데이트 방법이 제공된다. 상기 방법은 OTA 지원 모듈(OTASM)에 의해 수행되고, 서버로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보를 검증하여 매니페스트 검증에 성공한 경우, 신규 펌웨어 파일을 암호화 통신을 통해 레거시 ECU로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신하는 펌웨어 업데이트 과정; 및 레거시 ECU로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU에 전송하고, 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축하는 부팅 및 암호화 통신 채널 형성 과정을 포함할 수 있다.
일 실시 예에 따르면, 레거시 ECU로부터 수신한 펌웨어 증명(attestation) 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 펌웨어 증명 상태를 갱신하고, 갱신된 증명 상태정보를 서버로 전송하는 펌웨어 증명 과정을 더 포함할 수 있다.
일 실시 예에 따르면, 상기 펌웨어 증명 과정에서, 증명 요청을 받은 레거시 ECU는 펌웨어 정보를 이용하여 Hash값을 생성하고, 레거시 ECU는 생성한 Hash값을 OTASM을 거쳐 OTASM 내부의 SE로 전송하고, OTASM의 SE (secure element)는 해당 ECU로부터 수신한 펌웨어의 증명 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신하고, SE는 갱신된 증명 상태정보를 OTASM 제조사의 상기 서버로 전송할 수 있다.
일 실시 예에 따르면, 신규 펌웨어와 해당 펌웨어의 매니페스트 정보는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명되고, 상기 펌웨어 업데이트 과정에서, OTASM는 수신한 펌웨어 파일의 Hash값을 생성한 후 SE에 Hash값과 수신한 매니페스트 정보를 전송하고, SE는 제조 단계에서 삽입된 제조사의 public key로 매니페스트를 검증하고, 검증한 매니페스트를 기반으로 매니페스트 내의 펌웨어 Hash값과 생성한 펌웨어의 Hash값을 비교하여, 해당 펌웨어를 검증할 수 있다.
일 실시 예에 따르면, 상기 펌웨어 업데이트 과정에서, 매니페스트 및 펌웨어 검증에 성공한 경우 OTASM은 신규 펌웨어 파일을 암호화 통신을 통해 레거시 ECU로 전송하고, 펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent는 제어권을 펌웨어가 보유하도록 제어할 수 있다.
일 실시 예에 따르면, 상기 부팅 및 암호화 통신 채널 형성 과정에서, 부트 로더(Bootloader) 실행 후 제어권을 ECU내의 Security Agent로 전환하고, Security Agent는 펌웨어 버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정할 수 있다.
일 실시 예에 따르면, 상기 부팅 및 암호화 통신 채널 형성 과정에서, 레거시 ECU는 OTASM에 암호 채널 형성 및 증명 부팅 실행을 요청하고, OTASM은 기 설치된 인증서를 레거시 ECU에 전송하고, 레거시 ECU는 OTASM 설치 시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인하고, OTASM의 private keyOTASM와 레거시 ECU로 전송한 public keyOTASM으로 두 장치 사이에 인증절차를 완료할 수 있다.
일 실시 예에 따르면, 상기 부팅 및 암호화 통신 채널 형성 과정에서, 상기 두 장치 사이에 알고리즘을 이용해서 세션 키를 교환하여 암호화 통신채널을 구축하고, 구축한 암호화 통신채널을 이용하여 펌웨어 증명절차를 실행하고, 펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent는 제어권을 펌웨어로 전환할 수 있다.
본 발명의 또 다른 양상에 따른 자동차 ECU 업데이트 방법을 수행하는 OTA 지원 모듈(Over The Air Supporting Module, OTASM)은 레거시 ECU와 보안 통신을 수행하도록 구성된 통신 모듈; 및 상기 통신 모듈과 동작 가능하게 결합되고, 레거시 ECU로부터 수신한 펌웨어 증명(attestation) 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 펌웨어 증명 상태를 갱신하고, 갱신된 증명 상태정보를 서버로 전송하도록 상기 통신 모듈을 제어하는 마이크로 컨트롤러 유닛(MCU)을 포함할 수 있다.
일 실시 예에 따르면, 상기 서버로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보가 SE (secure element)에 의해 매니페스트 검증에 성공한 경우, 상기 마이크로 컨트롤러 유닛(MCU)은, 신규 펌웨어 파일을 암호화 통신을 통해 상기 레거시 ECU로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신하고, 레거시 ECU로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU에 전송하고, 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축할 수 있다.
일 실시 예에 따르면, 상기 마이크로 컨트롤러 유닛은 펌웨어 정보를 이용하여 레거시 ECU에서 생성된 Hash값을 수신하도록 상기 통신 모듈을 제어하고, 상기 OTA 지원 모듈은 생성된 Hash값 및 갱신된 증명 상태정보를 저장하도록 구성된 메모리를 더 포함할 수 있다.상기 마이크로 컨트롤러 유닛이 해당 ECU로부터 수신한 펌웨어의 증명 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신하면, SE (secure element)는 갱신된 증명 상태정보를 저장하고, 상기 마이크로 컨트롤러 유닛은 메모리에 저장된 갱신된 증명 상태정보를 OTASM 제조사의 상기 서버로 전송할 수 있다.
일 실시 예에 따르면, 신규 펌웨어와 해당 펌웨어의 매니페스트 정보는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명되고, 상기 마이크로 컨트롤러 유닛은, 수신한 펌웨어 파일의 Hash값을 생성한 후 상기 SE에 Hash값과 수신한 매니페스트 정보를 저장하고, 상기 SE는 제조 단계에서 삽입된 제조사의 public key로 매니페스트를 검증할 수 있다.
일 실시 예에 따르면, 상기 마이크로 컨트롤러 유닛은, 매니페스트 검증에 성공한 경우 OTASM은 신규 펌웨어 파일을 암호화 통신을 통해 레거시 ECU로 전송하도록 상기 통신 모듈을 제어하고, 펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent는 제어권을 펌웨어가 보유하도록 제어할 수 있다.
일 실시 예에 따르면, 상기 레거시 ECU는 부트 로더(Bootloader) 실행 후 제어권을 ECU내의 Security Agent로 전환하고, Security Agent는 펌웨어 버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정하고, 암호 채널 형성 및 증명 부팅 실행 요청을 수신하면, 기 설치된 인증서를 레거시 ECU에 전송하고, 레거시 ECU가 OTASM 설치 시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인하면, private keyOTASM와 레거시 ECU로 전송한 public keyOTASM으로 레거시 ECU 간 인증절차를 완료할 수 있다.
일 실시 예에 따르면, 상기 마이크로 컨트롤러 유닛은, 레거시 ECU와 알고리즘을 이용해서 세션 키를 교환하여 암호화 통신채널을 구축하고, 구축한 암호화 통신채널을 이용하여 펌웨어 증명절차를 실행하고, 펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent로 하여금 제어권을 펌웨어로 전환하도록 제어할 수 있다.
본 발명의 또 다른 양상에 따른 ECU 업데이트 방법을 수행하는 차량 시스템은 레거시 ECU; 및 레거시 ECU로부터 수신한 펌웨어 증명(attestation) 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 펌웨어 증명 상태를 갱신하고, 갱신된 증명 상태정보를 서버로 전송하는 OTA 지원 모듈(OTASM)를 포함할 수 있다.
일 실시 예에 따르면, 상기 OTA 지원 모듈(OTASM)은, 상기 서버로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보를 검증하여 매니페스트 검증에 성공한 경우, 신규 펌웨어 파일을 암호화 통신을 통해 상기 레거시 ECU로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신하고, 레거시 ECU로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU에 전송하고, 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축할 수 있다.
일 실시 예에 따르면, 증명 요청을 받은 레거시 ECU는 펌웨어 정보를 이용하여 Hash값을 생성하고, 생성한 Hash값을 OTASM을 거쳐 OTASM 내부의 SE로 전송하고, 상기 OTASM의 SE (secure element)는 해당 ECU로부터 수신한 펌웨어의 증명 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신하고, SE는 갱신된 증명 상태정보를 OTASM 제조사의 상기 서버로 전송할 수 있다.
일 실시 예에 따르면, 신규 펌웨어와 해당 펌웨어의 매니페스트 정보는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명되고, 상기 OTASM는 수신한 펌웨어 파일의 Hash값을 생성한 후 SE에 Hash값과 수신한 매니페스트 정보를 전송하고, SE는 제조 단계에서 삽입된 제조사의 public key로 매니페스트를 검증할 수 있다.
일 실시 예에 따르면, 상기 레거시 ECU는 부트 로더(Bootloader) 실행 후 제어권을 ECU내의 Security Agent로 전환하고, Security Agent는 펌웨어 버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정하고, 상기 레거시 ECU는 OTASM에 암호 채널 형성 및 증명 부팅 실행을 요청하고, OTASM은 기 설치된 인증서를 레거시 ECU에 전송할 수 있다.
일 실시 예에 따르면, 상기 레거시 ECU는 상기 레거시 ECU와 OTASM 연결시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인하고, OTASM의 private keyOTASM와 레거시 ECU로 전송한 public keyOTASM으로 두 장치 사이에 인증절차를 완료할 수 있다.
일 실시 예에 따르면, 상기 두 장치 사이에 알고리즘을 이용해서 세션 키를 교환하여 암호화 통신채널을 구축하고, 구축한 암호화 통신채널을 이용하여 펌웨어 증명절차를 실행하고, 펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent는 제어권을 펌웨어로 전환할 수 있다.
본 발명의 또 다른 양상에 따른 ECU 업데이트 방법을 수행하는 컴퓨팅 장치의 프로세서에 의해 실행 가능한 명령어(instruction)가 인코딩된 컴퓨터 판독가능 매체는 서버로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보를 검증하여 매니페스트 검증에 성공한 경우, 신규 펌웨어 파일을 암호화 통신을 통해 상기 레거시 ECU로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신하도록 제어하는 제1 명령어, 및 레거시 ECU로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU에 전송하고, 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축하도록 제어하는 제2 명령어를 포함할 수 있다.
일 실시 예에 따르면, 상기 컴퓨터 판독가능 매체는 레거시 ECU로부터 수신한 펌웨어 증명(attestation) 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 펌웨어 증명 상태를 갱신하고, 갱신된 증명 상태정보를 서버로 전송하도록 제어하는 제3 명령어를 더 포함할 수 있다.
일 실시 예에 따르면, 상기 프로세서는 OTA 지원 모듈(Over The Air Supporting Module, OTASM)의 마이크로 프로세서 유닛이고, 증명 요청을 받은 레거시 ECU는 펌웨어 정보를 이용하여 Hash값을 생성하고, 생성한 Hash값을 OTASM을 거쳐 OTASM 내부의 SE로 전송할 수 있다.
일 실시 예에 따르면, 상기 제3 명령어가 실행되면, 상기 OTASM의 SE (secure element)는 해당 ECU로부터 수신한 펌웨어의 증명 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신하고, SE는 갱신된 증명 상태정보를 OTASM 제조사의 상기 서버로 전송할 수 있다.
일 실시 예에 따르면, 신규 펌웨어와 해당 펌웨어의 매니페스트 정보는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명될 수 있다.
일 실시 예에 따르면, 상기 제1 명령어가 실행되면, 상기 OTASM는 수신한 펌웨어 파일의 Hash값을 생성한 후 SE에 Hash값과 수신한 매니페스트 정보를 전송하고, SE는 제조 단계에서 삽입된 제조사의 public key로 매니페스트를 검증할 수 있다.
일 실시 예에 따르면, 상기 제2 명령어가 실행되면, 레거시 ECU는 부트 로더(Bootloader) 실행 후 제어권을 ECU내의 Security Agent로 전환하고, Security Agent는 펌웨어 버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정하고, 상기 레거시 ECU는 OTASM에 암호 채널 형성 및 증명 부팅 실행을 요청하고, OTASM은 기 설치된 인증서를 레거시 ECU에 전송하고, 상기 레거시 ECU는 OTASM 설치 시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인하고, OTASM의 private keyOTASM와 레거시 ECU로 전송한 public keyOTASM으로 두 장치 사이에 인증절차를 완료할 수 있다.
본 발명에 따르면, OTA 펌웨어 업데이트를 지원하지 않는 상용 자동차들을 대상으로 안전한 OTA 업데이트를 지원할 수 있는 방법을 제시할 수 있다.
또한 본 발명에 따르면, 기존 자동차의 ECU 네트워크에 OTASM장비를 설치함으로써 OTA간 암호화된 프로토콜을 사용할 수 있게 하였으며, 자체적으로 ECU에 설치된 펌웨어의 무결성을 검증할 수 있다.
또한 본 발명에 따르면, OTASM에 HSM을 장착함으로써 보안에 민감한 데이터(암호 키, 인증서 등)들과 암호화 과정을 해커의 공격으로부터 안전하게 보호할 수 있도록 하였다.
또한 본 발명에 따르면, OTA 업데이트 미지원 자동차들이 OTA를 통해 ECU업데이트를 적시에 신속히 진행할 수 있다. 뿐만 아니라, 주기적으로 펌웨어 무결성 정보를 검사하고 검사 결과를 서버로 송신하여 운전자에게 알림으로써 해커의 공격으로 인한 ECU 오작동 및 그로 인한 사고를 예방할 수 있을 것이다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
도 1은 본 발명과 관련하여 자동차 ECU OBD(On board diagnostics) 케이블 펌웨어 업데이트 과정을 나타낸다.
도 2는 본 발명에 따른 추가 하드웨어 모듈을 이용하는 자동차 ECU 업데이트 방법을 수행하는 시스템 구성도를 나타낸다.
도 3은 본 발명에 따른 펌웨어 증명 절차의 흐름도를 나타낸다.
도 4는 본 발명에 따른 OTA 펌웨어 업데이트 절차의 흐름도를 나타낸다.
도 5는 본 발명에 따른 증명된 부팅 및 암호화 통신 채널 형성 절차의 흐름도를 나타낸다.
도 6은 본 발명에 따른 추가 하드웨어 모듈을 이용하는 자동차 ECU 업데이트 방법의 흐름도를 나타낸다.
도 7은 ECU 업데이트 방법을 수행하는 컴퓨팅 장치의 구성을 나타낸다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다.
제1, 제2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 모듈, 블록 및 부는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
이하, 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 당해 분야에 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 설명한다. 하기에서 본 발명의 실시 예를 설명함에 있어, 관련된 공지의 기능 또는 공지의 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
이하에서는, 본 발명에 따른 추가 하드웨어 모듈을 이용하는 자동차 ECU (Electric Control Unit)업데이트 방법과 이를 수행하는 OTA 지원 모듈(OTASM)에 대해 설명한다. 이와 관련하여, 디바이스의 펌웨어 무결성 검증 과정에 대해 설명하면 다음과 같다.
임베디드 장치들의 펌웨어는 flash memory 내에 저장되어 있다. 그러나 flash memory는 암호화 및 사용자 인증 등의 보안 기능을 제공하지 않으므로 해커에 의해 언제든지 내부의 데이터가 변경될 수 있다. 따라서, 시스템의 상태를 알기 힘든 임베디드 장치 특성 상 사용자에게 큰 위협을 초래할 수 있다.
해커의 공격으로 인한 오작동을 예방하고 신뢰성을 높이기 위해 임베디드 장치들은 추가적인 HSM(Hardware Security Module)을 이용하여 Host장치 펌웨어의 무결성을 검증한다. 펌웨어 무결성 검증 방법들에 대한 자세한 설명은 아래와 같다.
(1) HMAC: 디바이스의 펌웨어에 지정된 특정 key값을 추가하여 Hash값을 만들어 펌웨어의 무결성을 검증한다. 단순 Hash연산 을 사용할 경우 해당 Hash값의 freshness를 보장할 수 없으므로 해커의 reply attack에 취약하므로 HMAC을 사용한다.
(2) Secure boot: 디바이스의 first bootloader로부터 디바이스 펌웨어에 대한 검증을 실시함으로써 실행하는 펌웨어의 무결성을 보장한다. First bootloader의 경우 ROM에 저장되어 변경될 수 없으므로 RoT(Root of Trust)가 보장되며, 펌웨어 검증에 실패할 경우 디바이스 부팅을 진행하지 않음으로써 예정된 피해를 막을 수 있다.
(3) Asymmetric 암호 알고리즘: 지정된 HSM에서 펌웨어 무결성 검사를 진행한 다음 해당 HSM의 private key로 검증결과를 암호화함으로써 펌웨어의 무결성과 무결성에 대한 인증을 보장한다. HSM의 private key는 외부에 노출되지 않으므로 해커의 위협으로부터 안전하다.
이러한 디바이스의 펌웨어 무결성 검증 과정을 포함하여 본 발명에서 제안하고자 하는 자동차 ECU의 OTA 업데이트 방법은 다음과 같다. 이와 관련하여, 도 2는 본 발명에 따른 추가 하드웨어 모듈을 이용하는 자동차 ECU 업데이트 방법을 수행하는 시스템 구성도를 나타낸다. 본 발명에서 제안하는 방안의 시스템 구성도는 도 2와 같다. 레거시(Legacy) ECU에는 자체 펌웨어와 별도로 OTA Support Module(이하, OTASM)과의 Secure 통신을 위한 Security Agent가 탑재되며, Agent 내에는 제조사의 public key를 보관하고 있다. OTASM에는 자체 MCU 및 Secure Element(이하 SE)가 탑재되어 있고, SE에는 제조 단계에서 저장된 OTASM의 private key 및 인증서 파일을 보관하고 있다. OTASM의 각 영역에 대한 자세한 설명은 다음과 같다.
(1) Legacy ECU (100): OTA 펌웨어 업데이트를 지원하지 않는 구형 ECU 장치이다. OBD케이블을 통한 펌웨어 업데이트를 지원하며, 외부 장치와의 연결을 위한 통신 모듈(communication module, 110)과 MCU(120) 등이 존재한다.
A. Security Agent(121): 기존에 동작하는 펌웨어와 별도로 OTASM을 설치할 때 삽입되는 소프트웨어로써, OTASM과의 통신에서 제조사의 public key를 이용한 장치 인증 및 암호화 통신 채널 구축을 담당한다.
B. Firmware(122): ECU의 기능수행을 위하여 기본적으로 내장되어 있는 펌웨어이다
(2) OTASM(Over The Air Support Module, 200): OTA를 지원하지 않는 자동차의 Secure OTA update를 위해 추가적으로 장착되는 모듈이다. OTASM(200)은 MCU(220)과 다른 ECU들과의 통신을 위한 통신 모듈(210), 암호 키와 인증서 저장 및 암호 알고리즘 동작을 위한 SE(Secure Element, 230)로 구성된다. 일 예로, SE(230)는 메모리의 기능을 수행하도록 구성될 수 있다. 이와 관련하여, SE는 보안을 위한 HSM(Hardware Security Module)으로써 보안용 SoC(System on Chip)로 구성될 수 있다. 즉, SE(230)는 보안 메모리 기능을 수행하도록 구성될 수 있지만, 메모리에 한정되는 것은 아니다.
A. SE(Secure Element): HSM(Hardware Security Module)의 한 종류로써, 보안에 민감한 데이터(암호 키, 인증서 등)를 외부에 노출되지 않게 저장하며 내부적으로 기본적인 암호화 알고리즘들을 제공한다.
본 설계에서는 제조사의 public key, 제조 단계에서 부여되는 OTASM의 private key와 인증서를 저장하며 이를 통해 ECU와의 통신에서 장치 인증 및 보안 통신 채널 형성의 역할을 한다.
한편, 본 발명에 따른 디바이스 제조(Device provisioning) 과정에 설명하면 다음과 같다. 디바이스 제조단계는 OTASM을 출고하기 전, 보안에 민감한 데이터를 사전에 주입하는 단계이다. 주입하는 데이터에 대한 자세한 설명은 다음과 같다.
(1) Manufacturer의 public key: 제조사의 public key로써, 외부 서버와 통신 시 서버 인증을 위한 인증키로써 사용한다. 추가적으로, 다운로드한 펌웨어 검증 시에도 사용될 수 있다.
(2) OTASM의 private key: OTASM장치의 고유한 private key로써, Legacy ECU와 통신 채널 수립 시 인증 및 보안 프로토콜 형성을 위하여 사용한다.
(3) OTASM의 certificate file: OTASM의 public key와 정보를 Manufacturer의 private key로 서명한 인증서로써, Legacy ECU에 OTASM장치 인증을 위하여 사용한다.
이하에서는 본 발명에 따른 추가 하드웨어 모듈을 이용하는 자동차 ECU 업데이트 방법에 대해 도면을 참조하여 상세하게 설명한다. 구체적으로, 도 3은 본 발명에 따른 펌웨어 증명 절차의 흐름도를 나타낸다. 도 4는 본 발명에 따른 OTA 펌웨어 업데이트 절차의 흐름도를 나타낸다. 도 5는 본 발명에 따른 증명된 부팅 및 암호화 통신 채널 형성 절차의 흐름도를 나타낸다.
도 3을 참조하면, 본 발명에 따른 펌웨어 증명 절차는 다음과 같은 과정으로 이루어질 수 있다.
A. OTASM에서 주기적으로 Legacy ECU에 증명 요청을 보낸다.
B. 증명 요청을 받은 Legacy ECU에서는 자기 자신의 펌웨어 정보와 Nonce값을 이용하여 Hash값(증명 정보)을 생성한다.
C. Legacy ECU는 생성한 Hash값(증명 정보)을 OTASM을 거쳐 OTASM내부의 SE로 전송한다. OTASM의 SE는 해당 ECU로부터 수신한 펌웨어의 증명 정보와 자신이 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신한다.
D. SE는 갱신된 증명 상태정보를 OTASM을 통해 OTASM 제조사의 서버로 전송한다.
도 4를 참조하면, 본 발명의 본 발명에 따른 OTA 펌웨어 업데이트 절차는 다음과 같은 과정으로 이루어질 수 있다.
A. OTASM과 제조사 서버 사이에 펌웨어 업데이트 개시 메시지를 주고받는다.
B. 제조사 서버는 OTASM으로 신규 펌웨어와 해당 펌웨어의 Manifest정보를 전송한다.
i. Manifest는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명된다.
C. OTASM은 수신한 펌웨어 파일의 Hash값을 생성한 후 SE에 Hash값과 수신한 Manifest정보를 전송한다.
D. SE는 제조 단계에서 삽입된 제조사의 public key로 Manifest를 검증한다.
E. Manifest 검증에 성공한 경우 OTASM은 신규 펌웨어 파일을 암호화 통신을 통해 Legacy ECU로 전송한다.
F. Legacy ECU는 수신한 펌웨어 정보를 내부 flash에 저장한 뒤, 결과 메시지를 OTASM으로 전송한다.
G. Device의 reboot이 가능한 경우 reboot 절차를 시작한다.
도 5를 참조하면, 본 발명에 따른 증명된 부팅 및 암호화 통신 채널 형성 절차는 다음과 같은 과정으로 이루어질 수 있다.
A. Bootloader 실행 후 제어권을 ECU내의 Security Agent로 전환한다.
B. Security Agent는 firmware버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정한다.
B-1. 부트 레코드 변경 이후 부팅할 펌웨어의 증명 정보를 변경하기 위해 OTASM으로 업데이트 완료 메시지를 전송한다.
B-2. OTASM의 SE에서 증명 정보를 신규 펌웨어 정보로 갱신한다.
C. Legacy ECU는 OTASM에 암호 채널 형성 및 증명 부팅 실행을 요청한다.
D. OTASM은 제조 단계에 주입된 인증서를 Legacy ECU에 전송한다.
E. Legacy ECU는 OTASM 설치 시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인한다.
F. OTASM의 private keyOTASM와 Legacy ECU로 전송한 public keyOTASM 으로 두 장치 사이에 인증절차를 완료한다.
G. 두 디바이스 사이에 Diffie Hellman 알고리즘을 이용해서 세션 키를 교환하여 암호화 통신채널을 구축한다.
H. 구축한 암호화 통신채널을 이용하여 펌웨어 증명절차를 실행한다.
I. 펌웨어 증명절차를 성공한 경우 Legacy ECU의 Security Agent는 제어권을 Firmware로 넘긴다.
도 2 내지 도 5를 참조하면, 본 발명에 따른 추가 하드웨어 모듈을 이용하는 자동차 ECU 업데이트 방법은 다음과 같은 과정으로 수행될 수 있다. 이와 관련하여, 도 6은 본 발명에 따른 추가 하드웨어 모듈을 이용하는 자동차 ECU 업데이트 방법의 흐름도를 나타낸다. 도 2 내지 도 6을 참조하면, 자동차 ECU 업데이트 방법은 OTA 지원 모듈(OTASM, 200)에 의해 수행될 수 있다. 자동차 ECU 업데이트 방법은 펌웨어 업데이트 과정(S100), 부팅 및 암호화 통신 채널 형성 과정(S200) 및 펌웨어 증명 과정(S300)을 포함할 수 있다. 이와 관련하여, 전술한 과정은 나열된 순서에 반드시 한정도는 것은 아니다.
펌웨어 업데이트 과정(S100)에서, 서버로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보를 검증하여 매니페스트 검증에 성공한 경우, 신규 펌웨어 파일을 암호화 통신을 통해 상기 레거시 ECU로 전송할 수 있다. 이에 따라, 신규 펌웨어 파일을 암호화 통신을 통해 상기 레거시 ECU로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신할 수 있다.
부팅 및 암호화 통신 채널 형성 과정(S200)에서, 레거시 ECU로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU에 전송할 수 있다. 또한, 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축할 수 있다.
펌웨어 증명 과정(S300)에서, 레거시 ECU로부터 수신한 펌웨어 증명(attestation) 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 펌웨어 증명 상태를 갱신하고, 갱신된 증명 상태정보를 서버로 전송할 수 있다.
한편, 펌웨어 증명 과정(S300)에서, 증명 요청을 받은 레거시 ECU는 펌웨어 정보를 이용하여 Hash값을 생성하고, 레거시 ECU는 생성한 Hash값을 OTASM을 거쳐 OTASM 내부의 SE로 전송할 수 있다. 또한, OTASM의 SE (secure element)는 해당 ECU로부터 수신한 펌웨어의 증명 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신하고, SE는 갱신된 증명 상태정보를 OTASM 제조사의 상기 서버로 전송할 수 있다.
펌웨어 업데이트 과정(S100)과 관련하여, 신규 펌웨어와 해당 펌웨어의 매니페스트 정보는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명될 수 있다. 이에 따라, 펌웨어 업데이트 과정(S100)에서, OTASM는 수신한 펌웨어 파일의 Hash값을 생성한 후 SE에 Hash값과 수신한 매니페스트 정보를 전송하고, SE는 제조 단계에서 삽입된 제조사의 public key로 매니페스트를 검증할 수 있다.
또한, 펌웨어 업데이트 과정(S100)에서, 매니페스트 검증에 성공한 경우 OTASM은 신규 펌웨어 파일을 암호화 통신을 통해 레거시 ECU로 전송할 수 있다. 펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent는 제어권을 펌웨어가 보유하도록 제어할 수 있다.
부팅 및 암호화 통신 채널 형성 과정(S200)에서, 부트 로더(Bootloader) 실행 후 제어권을 ECU내의 Security Agent로 전환할 수 있다. 이에 따라, Security Agent는 펌웨어 버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정할 수 있다.
또한, 부팅 및 암호화 통신 채널 형성 과정(S200)에서, 레거시 ECU는 OTASM에 암호 채널 형성 및 증명 부팅 실행을 요청하고, OTASM은 기 설치된 인증서를 레거시 ECU에 전송할 수 있다. 이에 따라, 레거시 ECU는 OTASM 설치 시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인할 수 있다. 또한, OTASM의 private keyOTASM와 레거시 ECU로 전송한 public keyOTASM으로 두 장치 사이에 인증절차를 완료할 수 있다.
또한, 부팅 및 암호화 통신 채널 형성 과정(S200)에서, 두 장치 사이에 알고리즘을 이용해서 세션 키를 교환하여 암호화 통신채널을 구축할 수 있다. 즉, 레거시 ECU(100)와 OTA 지원 모듈(OTASM, 200) 사이에 알고리즘을 이용해서 세션 키를 교환하여 암호화 통신채널을 구축할 수 있다. 또한, 부팅 및 암호화 통신 채널 형성 과정(S300)에서, 구축한 암호화 통신채널을 이용하여 펌웨어 증명절차를 실행하고, 펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent는 제어권을 펌웨어로 전환할 수 있다.
한편, 본 발명의 다른 양상에 따른 자동차 ECU 업데이트 방법을 수행하는 OTA 지원 모듈(Over The Air Supporting Module, OTASM, 200)에 대해 상세하게 설명하면 다음과 같다. 도 2 내지 도 5를 참조하면, OTA 지원 모듈(Over The Air Supporting Module, OTASM, 200)은 마이크로 컨트롤러 유닛(MCU, 220), 통신 모듈(210) 및 SE (secure element, 230)를 포함하도록 구성될 수 있다. 이와 관련하여, SE는 보안을 위한 HSM(Hardware Security Module)으로써 보안용 SoC(System on Chip)로 구성될 수 있다. 즉, SE(230)는 보안 메모리 기능을 수행하도록 구성될 수 있지만, 메모리에 한정되는 것은 아니다.
통신 모듈(210)은 레거시 ECU(100)와 통신 가능하게 구성될 수 있다. 즉, 통신 모듈(210)은 레거시 ECU(100)와 보안 통신을 수행하도록 구성될 수 있다. 마이크로 컨트롤러 유닛(MCU, 220)은 통신 모듈(210)과 동작 가능하게 결합될 수 있다.
구체적으로, MCU(220)는 레거시 ECU로부터 수신한 펌웨어 증명(attestation) 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 펌웨어 증명 상태를 갱신하고, 갱신된 증명 상태정보를 서버(300)로 전송하도록 통신 모듈(210)을 제어할 수 있다. 또한, SE(230)는 서버(300)로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보를 검증할 수 있다. SE(230)에 의해 매니페스트 검증에 성공한 경우, MCU(220)는 신규 펌웨어 파일을 암호화 통신을 통해 레거시 ECU(100)로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신할 수 있다.
MCU(220)는 레거시 ECU(100)로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU(100)에 전송할 수 있다. 또한, MCU(220)는 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축할 수 있다.
한편, MCU(220)는 펌웨어 정보를 이용하여 레거시 ECU(100)에서 생성된 Hash값을 수신하도록 통신 모듈(210)을 제어할 수 있다.
한편, SE(secure element)(230)는 생성된 Hash값 및 갱신된 증명 상태정보를 저장하도록 구성될 수 있다. MCU(220)이 해당 ECU로부터 수신한 펌웨어의 증명 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신하면, SE (secure element, 230)는 갱신된 증명 상태정보를 저장할 수 있다. MCU(220)는 SE(230)에 저장된 갱신된 증명 상태정보를 OTASM 제조사의 서버(300)로 전송할 수 있다.
한편, 신규 펌웨어와 해당 펌웨어의 매니페스트 정보는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명될 수 있다. 이에 따라, MCU(220)는 수신한 펌웨어 파일의 Hash값을 생성한 후 메모리에 Hash값과 수신한 매니페스트 정보를 저장하도록 제어하고, 제조 단계에서 삽입된 제조사의 public key로 매니페스트를 검증할 수 있다.
MCU(220)는 매니페스트 검증에 성공한 경우 OTASM은 신규 펌웨어 파일을 암호화 통신을 통해 레거시 ECU로 전송하도록 통신 모듈(210)을 제어할 수 있다. 또한, MCU(220)는 펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent는 제어권을 펌웨어가 보유하도록 제어할 수 있다.
레거시 ECU(100)의 MCU(120)는 부트 로더(Bootloader) 실행 후 제어권을 ECU내의 Security Agent로 전환하고, Security Agent는 펌웨어 버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정할 수 있다. 또한, MCU(220)는 암호 채널 형성 및 증명 부팅 실행 요청을 수신하면, 기 설치된 인증서를 레거시 ECU에 전송하도록 제어할 수 있다. 이와 관련하여, 레거시 ECU(100)가 OTASM 설치 시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인할 수 있다. 이에 따라, MCU(220)는 private keyOTASM와 레거시 ECU(100)로 전송한 public keyOTASM으로 레거시 ECU 간 인증절차를 완료할 수 있다.
MCU(220)는 레거시 ECU와 알고리즘을 이용해서 세션 키를 교환하여 암호화 통신채널을 구축할 수 있다. 또한, MCU(220)는 구축한 암호화 통신채널을 이용하여 펌웨어 증명절차를 실행하고, 펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent로 하여금 제어권을 펌웨어로 전환하도록 제어할 수 있다.
한편, 본 발명의 또 다른 양상에 따른 ECU 업데이트 방법을 수행하는 차량 시스템에 대해 설명하면 다음과 같다. 도 2 내지 도 5를 참조하면, 차량 시스템은 레거시 ECU(100) 및 OTA 지원 모듈(OTASM, 200)을 포함하도록 구성될 수 있다.
OTA 지원 모듈(OTASM, 200)은 레거시 ECU(100)로부터 수신한 펌웨어 증명(attestation) 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 펌웨어 증명 상태를 갱신하고, 갱신된 증명 상태정보를 서버(300)로 전송하도록 구성될 수 있다. OTASM(200)은 서버로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보를 검증하여 매니페스트 검증에 성공한 경우, 신규 펌웨어 파일을 암호화 통신을 통해 상기 레거시 ECU로 전송할 수 있다. OTASM(200)은 신규 펌웨어 파일을 암호화 통신을 통해 상기 레거시 ECU로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신할 수 있다.
또한, OTASM(200)은 레거시 ECU로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU에 전송할 수 있다. OTASM(200)은 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축할 수 있다.
한편, 증명 요청을 받은 레거시 ECU(100)는 펌웨어 정보를 이용하여 Hash값을 생성하고, 생성한 Hash값을 OTASM(200)을 거쳐 OTASM(200) 내부의 SE로 전송할 수 있다. OTASM(200)의 SE (secure element)는 해당 ECU로부터 수신한 펌웨어의 증명 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신하고, SE는 갱신된 증명 상태정보를 OTASM 제조사의 서버(300)로 전송할 수 있다.
한편, 신규 펌웨어와 해당 펌웨어의 매니페스트 정보는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명될 수 있다. 이에 따라, OTASM(200)은 수신한 펌웨어 파일의 Hash값을 생성한 후 SE에 Hash값과 수신한 매니페스트 정보를 전송하고, SE는 제조 단계에서 삽입된 제조사의 public key로 매니페스트를 검증할 수 있다.
한편, 레거시 ECU(100)는 부트 로더(Bootloader) 실행 후 제어권을 ECU내의 Security Agent로 전환하고, Security Agent는 펌웨어 버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정할 수 있다. 레거시 ECU(100)는 OTASM에 암호 채널 형성 및 증명 부팅 실행을 요청하고, OTASM은 기 설치된 인증서를 레거시 ECU에 전송할 수 있다. 또한, 레거시 ECU(100)는 OTASM 설치 시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인할 수 있다. 이에 따라, OTASM(200)의 private keyOTASM와 레거시 ECU(100)로 전송한 public keyOTASM으로 두 장치 사이에 인증절차를 완료할 수 있다.
따라서, OTASM(200)은 두 장치, 즉 레거시 ECU(100)와 OTASM(200) 사이에 알고리즘을 이용해서 세션 키를 교환하여 암호화 통신채널을 구축할 수 있다. OTASM(200)은 구축한 암호화 통신채널을 이용하여 펌웨어 증명절차를 실행하고, 펌웨어 증명절차를 성공한 경우 레거시 ECU(100)의 Security Agent는 제어권을 펌웨어로 전환할 수 있다.
한편, 본 발명의 또 다른 양상에 따른 ECU 업데이트 방법을 수행하는 컴퓨팅 장치의 프로세서에 의해 실행 가능한 명령어(instruction)가 인코딩된 컴퓨터 판독가능 매체에 대해 설명하면 다음과 같다. 이와 관련하여, 도 7은 ECU 업데이트 방법을 수행하는 컴퓨팅 장치의 구성을 나타낸다. 도 2 및 도 7을 참조하면, 컴퓨팅 장치는 OTASM(200)일 수 있지만, 이에 한정되는 것은 아니고 ECM(100) 또는 다른 제어 장치일 수도 있다. 일 예로, 컴퓨팅 장치에 해당하는 OTASM(200)의 프로세서는 MCU(220)일 수 있다.
도 2 및 도 7을 참조하면, 프로세서(220)는 보안 요소(security element, SE, 230)와 연동하여 복수의 명령어들을 실행하여 각각의 프로세스를 처리하도록 구성될 수 있다. 일 예로, 복수의 명령어들은 제1 명령어(S710) 내지 제3 명령어(S730)를 포함하도록 구성될 수 있지만, 이에 한정되는 것은 아니다.
도 2 내지 도 7을 참조하면, 제1 명령어(S710)는 서버로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보를 검증하여 매니페스트 검증에 성공한 경우, 신규 펌웨어 파일을 암호화 통신을 통해 상기 레거시 ECU로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신하도록 제어할 수 있다.
제2 명령어(S720)는 레거시 ECU로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU에 전송하고, 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축하도록 제어할 수 있다.
제3 명령어(S730)는 레거시 ECU로부터 수신한 펌웨어 증명(attestation) 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 펌웨어 증명 상태를 갱신하고, 갱신된 증명 상태정보를 서버로 전송하도록 제어할 수 있다.
제3 명령어(S730) 실행 이전에 증명 요청을 받은 레거시 ECU는 펌웨어 정보를 이용하여 Hash값을 생성하고, 생성한 Hash값을 OTASM을 거쳐 OTASM 내부의 SE로 전송할 수 있다. 제3 명령어(S730)가 실행되면, OTASM의 SE (secure element)는 해당 ECU로부터 수신한 펌웨어의 증명 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신하고, SE는 갱신된 증명 상태정보를 OTASM 제조사의 서버로 전송할 수 있다. 신규 펌웨어와 해당 펌웨어의 매니페스트 정보는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명될 수 있다.
제1 명령어(S710)가 실행되면, OTASM는 수신한 펌웨어 파일의 Hash값을 생성한 후 SE에 Hash값과 수신한 매니페스트 정보를 전송하고, SE는 제조 단계에서 삽입된 제조사의 public key로 매니페스트를 검증할 수 있다.
제2 명령어(S720)가 실행되면, 레거시 ECU는 부트 로더(Bootloader) 실행 후 제어권을 ECU내의 Security Agent로 전환하고, Security Agent는 펌웨어 버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정할 수 있다. 이에 따라, 레거시 ECU는 OTASM에 암호 채널 형성 및 증명 부팅 실행을 요청하고, OTASM은 기 설치된 인증서를 레거시 ECU에 전송할 수 있다. 또한, 레거시 ECU는 OTASM 설치 시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인할 수 있다. OTASM의 private keyOTASM와 레거시 ECU로 전송한 public keyOTASM으로 두 장치 사이에 인증절차를 완료할 수 있다.
한편, 제2 명령어(S720)가 실행되면, 상기 두 장치 사이에 알고리즘을 이용해서 세션 키를 교환하여 암호화 통신채널을 구축할 수 있다. 또한, 구축한 암호화 통신채널을 이용하여 펌웨어 증명절차를 실행하고, 펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent는 제어권을 펌웨어로 전환할 수 있다.
이상에서는 본 발명의 다양한 양상에 따른 자동차 ECU 업데이트 방법 및 이를 수행하는 OTA 지원 모듈 및 차량 시스템과 상기 방법을 수행하는 컴퓨터 판독가능 매체에 대해 설명하였다. 전술한 본 발명의 다양한 양상에 따른 자동차 ECU 업데이트 방법의 시나리오 별 취약점 및 대응방법은 다음과 같다.
(1) 펌웨어 업데이트 중 해커에 의한 중간자 공격
A. Legacy ECU ↔ OTASM: 두 장치 사이에 부팅단계에서 암호화 통신채널을 구축하였으며, 암호화 통신채널을 구축하기 위해서는 제조사의 private key로 인증된 인증서가 필요하므로 중간자 공격 불가하다.
B. OTASM ↔ Manufacturer server: 두 장치 사이에 암호화 통신채널을 구축하여 통신하며, 펌웨어를 제조사의 private key로 sign해야 하므로 중간자 공격 불가하다.
(2) 펌웨어 교체 공격: 펌웨어 부팅 시 증명 부팅을 진행하므로 오염된 펌웨어의 경우 OTASM에서 인지하여 사용자에게 경고 가능하다.
(3) 암호 키 탈취 공격: OTASM의 private key 및 인증서 등 중요한 데이터들은 SE내에 저장되므로 해커에 의한 탈취가 불가능하다.
(4) 업데이트 도중 자동차 Battery 방전: 대역폭에 따른 전송속도의 차이가 큰 OTA 다운로드의 경우 주행 중에 진행하므로 배터리 방전 우려가 없다. 또한, 내부 ECU 업데이트 도중 방전된 경우 이후 전원공급이 진행되면 OTASM에 다운로드 된 ECU펌웨어를 이용하여 즉시 복구 가능하다.
(5) 펌웨어 업데이트 실패로 인한 ECU 부팅 오류: 사전에 OTASM으로 다운로드 된 ECU 펌웨어를 이용하여 즉시 복구 가능하다.
이상에서는 본 발명에 따른 추가 하드웨어 모듈을 이용하는 자동차 ECU 업데이트 방법과 이를 수행하는 OTA 지원 모듈(OTASM)에 대해 살펴보았다. 본 발명에 따른 기술적 효과에 대해 살펴보면 다음과 같다.
본 발명에 따르면, OTA 펌웨어 업데이트를 지원하지 않는 상용 자동차들을 대상으로 안전한 OTA 업데이트를 지원할 수 있는 방법을 제시할 수 있다.
또한 본 발명에 따르면, 기존 자동차의 ECU 네트워크에 OTASM장비를 설치함으로써 OTA간 암호화된 프로토콜을 사용할 수 있게 하였으며, 자체적으로 ECU에 설치된 펌웨어의 무결성을 검증할 수 있다.
또한 본 발명에 따르면, OTASM에 HSM을 장착함으로써 보안에 민감한 데이터(암호 키, 인증서 등)들과 암호화 과정을 해커의 공격으로부터 안전하게 보호할 수 있도록 하였다.
또한 본 발명에 따르면, OTA 업데이트 미지원 자동차들이 OTA를 통해 ECU업데이트를 적시에 신속히 진행할 수 있다. 뿐만 아니라, 주기적으로 펌웨어 무결성 정보를 검사하고 검사 결과를 서버로 송신하여 운전자에게 알림으로써 해커의 공격으로 인한 ECU 오작동 및 그로 인한 사고를 예방할 수 있을 것이다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
또한, 본 발명에 따른 특허기술의 사업화 전망은 다음과 같다. 본 발명은 OTASM을 이용하여 OTA를 지원하지 않는 모든 상용 자동차에 대해 안전한 OTA업데이트 및 ECU펌웨어 무결성 검증 방법을 제시한다. 이를 통해 주기적인 ECU 업데이트를 요구하는 사용자들 및 OTA 업데이트를 지원하지 않는 자동차들의 펌웨어 결함으로 인한 리콜에 대한 해결책이 될 것이다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능뿐만 아니라 각각의 구성 요소들에 대한 설계 및 파라미터 최적화는 별도의 소프트웨어 모듈로도 구현될 수 있다. 적절한 프로그램 언어로 쓰여진 소프트웨어 어플리케이션으로 소프트웨어 코드가 구현될 수 있다. 상기 소프트웨어 코드는 메모리에 저장되고, 제어부(controller) 또는 프로세서(processor)에 의해 실행될 수 있다.
100 레거시 ECU
200 OTA 지원 모듈
300 서버

Claims (20)

  1. 자동차 ECU 업데이트 방법에 있어서, 상기 방법은 OTA 지원 모듈(OTASM)에 의해 수행되고,
    서버로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보를 검증하여 매니페스트 검증에 성공한 경우, 신규 펌웨어 파일을 암호화 통신을 통해 레거시 ECU로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신하는 펌웨어 업데이트 과정;
    레거시 ECU로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU에 전송하고, 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축하는 부팅 및 암호화 통신 채널 형성 과정; 및
    레거시 ECU로부터 수신한 펌웨어 증명(attestation) 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 펌웨어 증명 상태를 갱신하고, 갱신된 증명 상태정보를 서버로 전송하는 펌웨어 증명 과정을 포함하며,
    상기 부팅 및 암호화 통신 채널 형성 과정에서,
    부트 로더(Bootloader) 실행 후 제어권을 ECU내의 Security Agent로 전환하고, Security Agent는 펌웨어 버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정하며,
    상기 부팅 및 암호화 통신 채널 형성 과정에서,
    레거시 ECU는 OTASM에 암호 채널 형성 및 증명 부팅 실행을 요청하고, OTASM은 기 설치된 인증서를 레거시 ECU에 전송하고,
    레거시 ECU는 OTASM 설치 시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인하고,
    OTASM의 private keyOTASM와 레거시 ECU로 전송한 public keyOTASM으로 두 장치 사이에 인증절차를 완료하는, 자동차 ECU 업데이트 방법.
  2. 제1 항에 있어서,
    상기 펌웨어 증명 과정에서,
    증명 요청을 받은 레거시 ECU는 펌웨어 정보를 이용하여 Hash값을 생성하고, 레거시 ECU는 생성한 Hash값을 OTASM을 거쳐 OTASM 내부의 SE로 전송하고,
    OTASM의 SE (secure element)는 해당 ECU로부터 수신한 펌웨어의 증명 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신하고, SE는 갱신된 증명 상태정보를 OTASM 제조사의 상기 서버로 전송하는, 자동차 ECU 업데이트 방법.
  3. 제1 항에 있어서,
    신규 펌웨어와 해당 펌웨어의 매니페스트 정보는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명되고,
    상기 펌웨어 업데이트 과정에서, OTASM는 수신한 펌웨어 파일의 Hash값을 생성한 후 SE에 Hash값과 수신한 매니페스트 정보를 전송하고, SE는 제조 단계에서 삽입된 제조사의 public key로 매니페스트를 검증하고, 검증한 매니페스트를 기반으로 매니페스트 내의 펌웨어 Hash값과 생성한 펌웨어의 Hash값을 비교하여, 해당 펌웨어를 검증하는, 자동차 ECU 업데이트 방법.
  4. 제3 항에 있어서,
    상기 펌웨어 업데이트 과정에서,
    매니페스트 및 펌웨어 검증에 성공한 경우 OTASM은 신규 펌웨어 파일을 암호화 통신을 통해 레거시 ECU로 전송하고,
    펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent는 제어권을 펌웨어가 보유하도록 제어하는, 자동차 ECU 업데이트 방법.
  5. 삭제
  6. 삭제
  7. 제1 항에 있어서,
    상기 부팅 및 암호화 통신 채널 형성 과정에서,
    두 장치 사이에 알고리즘을 이용해서 세션 키를 교환하여 암호화 통신채널을 구축하고,
    구축한 암호화 통신채널을 이용하여 펌웨어 증명절차를 실행하고,
    펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent는 제어권을 펌웨어로 전환하는, 자동차 ECU 업데이트 방법.
  8. 자동차 ECU 업데이트 방법을 수행하는 OTA 지원 모듈(Over The Air Supporting Module, OTASM)에 있어서,
    레거시 ECU와 보안 통신을 수행하도록 구성된 통신 모듈; 및
    상기 통신 모듈과 동작 가능하게 결합되고, 레거시 ECU로부터 수신한 펌웨어 증명(attestation) 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 펌웨어 증명 상태를 갱신하고, 갱신된 증명 상태정보를 서버로 전송하도록 상기 통신 모듈을 제어하는 마이크로 컨트롤러 유닛(MCU)을 포함하고,
    상기 서버로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보가 SE (secure element)에 의해 매니페스트 검증에 성공한 경우, 상기 마이크로 컨트롤러 유닛(MCU)은 신규 펌웨어 파일을 암호화 통신을 통해 상기 레거시 ECU로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신하고,
    레거시 ECU로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU에 전송하고, 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축하며,
    상기 레거시 ECU는
    부트 로더(Bootloader) 실행 후 제어권을 ECU내의 Security Agent로 전환하고, Security Agent는 펌웨어 버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정하고,
    암호 채널 형성 및 증명 부팅 실행 요청을 수신하면, 기 설치된 인증서를 레거시 ECU에 전송하고,
    레거시 ECU가 상기 레거시 ECU와 OTASM 연결 시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인하면, private keyOTASM와 레거시 ECU로 전송한 public keyOTASM으로 레거시 ECU 간 인증절차를 완료하는, OTA 지원 모듈.
  9. 제8 항에 있어서,
    상기 마이크로 컨트롤러 유닛은 펌웨어 정보를 이용하여 레거시 ECU에서 생성된 Hash값을 수신하도록 상기 통신 모듈을 제어하고,
    생성된 Hash값 및 갱신된 증명 상태정보를 저장하도록 구성된 메모리를 더 포함하고,
    상기 마이크로 컨트롤러 유닛이 해당 ECU로부터 수신한 펌웨어의 증명 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신하면, SE (secure element)는 갱신된 증명 상태정보를 저장하고,
    상기 마이크로 컨트롤러 유닛은 메모리에 저장된 갱신된 증명 상태정보를 OTASM 제조사의 상기 서버로 전송하는, OTA 지원 모듈.
  10. 제8 항에 있어서,
    신규 펌웨어와 해당 펌웨어의 매니페스트 정보는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명되고,
    상기 마이크로 컨트롤러 유닛은,
    수신한 펌웨어 파일의 Hash값을 생성한 후 상기 SE에 Hash값과 수신한 매니페스트 정보를 저장하고, 상기 SE는 제조 단계에서 삽입된 제조사의 public key로 매니페스트를 검증하는, OTA 지원 모듈.
  11. 제10 항에 있어서,
    상기 마이크로 컨트롤러 유닛은,
    매니페스트 검증에 성공한 경우 OTASM은 신규 펌웨어 파일을 암호화 통신을 통해 레거시 ECU로 전송하도록 상기 통신 모듈을 제어하고,
    펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent는 제어권을 펌웨어가 보유하도록 제어하는, OTA 지원 모듈.
  12. 삭제
  13. 제8 항에 있어서,
    상기 마이크로 컨트롤러 유닛은,
    레거시 ECU와 알고리즘을 이용해서 세션 키를 교환하여 암호화 통신채널을 구축하고,
    구축한 암호화 통신채널을 이용하여 펌웨어 증명절차를 실행하고,
    펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent로 하여금 제어권을 펌웨어로 전환하도록 제어하는, OTA 지원 모듈.
  14. ECU 업데이트 방법을 수행하는 차량 시스템에 있어서,
    레거시 ECU; 및
    레거시 ECU로부터 수신한 펌웨어 증명(attestation) 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 펌웨어 증명 상태를 갱신하고, 갱신된 증명 상태정보를 서버로 전송하는 OTA 지원 모듈(OTASM)를 포함하고,
    상기 OTA 지원 모듈(OTASM)은,
    상기 서버로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보를 검증하여 매니페스트 검증에 성공한 경우, 신규 펌웨어 파일을 암호화 통신을 통해 상기 레거시 ECU로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신하고,
    레거시 ECU로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU에 전송하고, 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축하며,
    상기 레거시 ECU는 부트 로더(Bootloader) 실행 후 제어권을 ECU내의 Security Agent로 전환하고, Security Agent는 펌웨어 버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정하고,
    상기 레거시 ECU는 OTASM에 암호 채널 형성 및 증명 부팅 실행을 요청하고, OTASM은 기 설치된 인증서를 레거시 ECU에 전송하고,
    상기 레거시 ECU는 OTASM 설치 시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인하고,
    OTASM의 private keyOTASM와 레거시 ECU로 전송한 public keyOTASM으로 두 장치 사이에 인증절차를 완료하는, 차량 시스템.
  15. 제14 항에 있어서,
    증명 요청을 받은 레거시 ECU는 펌웨어 정보를 이용하여 Hash값을 생성하고, 생성한 Hash값을 OTASM을 거쳐 OTASM 내부의 SE로 전송하고,
    상기 OTASM의 SE (secure element)는 해당 ECU로부터 수신한 펌웨어의 증명 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신하고, SE는 갱신된 증명 상태정보를 OTASM 제조사의 상기 서버로 전송하고,
    신규 펌웨어와 해당 펌웨어의 매니페스트 정보는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명되고,
    상기 OTASM는 수신한 펌웨어 파일의 Hash값을 생성한 후 SE에 Hash값과 수신한 매니페스트 정보를 전송하고, SE는 제조 단계에서 삽입된 제조사의 public key로 매니페스트를 검증하는, 차량 시스템.
  16. 삭제
  17. 제14 항에 있어서,
    상기 두 장치 사이에 알고리즘을 이용해서 세션 키를 교환하여 암호화 통신채널을 구축하고,
    구축한 암호화 통신채널을 이용하여 펌웨어 증명절차를 실행하고,
    펌웨어 증명절차를 성공한 경우 레거시 ECU의 Security Agent는 제어권을 펌웨어로 전환하는, 차량 시스템.
  18. ECU 업데이트 방법을 수행하는 컴퓨팅 장치의 프로세서에 의해 실행 가능한 명령어(instruction)가 인코딩된 컴퓨터 판독가능 매체에 있어서,
    서버로부터 수신한 신규 펌웨어와 해당 펌웨어의 매니페스트(Manifest)정보를 검증하여 매니페스트 검증에 성공한 경우, 신규 펌웨어 파일을 암호화 통신을 통해 레거시 ECU로 전송하여 펌웨어 업데이트가 수행되도록 하고, 레거시 ECU로부터 업데이트 결과를 수신하도록 제어하는 제1 명령어;
    레거시 ECU로부터 암호화 채널 형성 및 증명된 부팅 실행을 요청받으면, 인증서를 레거시 ECU에 전송하고, 개인 키(private key)와 공개 키(public key)를 이용하여 레거시 ECU와 인증절차를 수행하고, 세션 키를 교환하여 암호화 통신채널을 구축하도록 제어하는 제2 명령어; 및
    레거시 ECU로부터 수신한 펌웨어 증명(attestation) 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 펌웨어 증명 상태를 갱신하고, 갱신된 증명 상태정보를 서버로 전송하도록 제어하는 제3 명령어를 포함하고,
    상기 제2 명령어가 실행되면, 레거시 ECU는 부트 로더(Bootloader) 실행 후 제어권을 ECU내의 Security Agent로 전환하고, Security Agent는 펌웨어 버전을 확인하고, 신규 펌웨어가 있을 경우 부트 레코드의 펌웨어 시작 주소를 해당 펌웨어의 위치로 재설정하고,
    상기 레거시 ECU는 OTASM에 암호 채널 형성 및 증명 부팅 실행을 요청하고, OTASM은 기 설치된 인증서를 레거시 ECU에 전송하고,
    상기 레거시 ECU는 OTASM 설치 시 저장한 제조사의 public keyMan와 OTASM 인증서의 sign값을 이용하여 인증서 및 OTASM의 public keyOTASM의 유효성을 확인하고,
    OTASM의 private keyOTASM와 레거시 ECU로 전송한 public keyOTASM으로 두 장치 사이에 인증절차를 완료하는, 컴퓨터 판독가능 매체.
  19. 제18 항에 있어서,
    상기 프로세서는 OTA 지원 모듈(Over The Air Supporting Module, OTASM)의 마이크로 프로세서 유닛이고,
    증명 요청을 받은 레거시 ECU는 펌웨어 정보를 이용하여 Hash값을 생성하고, 생성한 Hash값을 OTASM을 거쳐 OTASM 내부의 SE로 전송하고,
    상기 제3 명령어가 실행되면, 상기 OTASM의 SE (secure element)는 해당 ECU로부터 수신한 펌웨어의 증명 정보와 보유한 펌웨어 증명 정보의 값을 비교하여 증명 상태를 갱신하고, SE는 갱신된 증명 상태정보를 OTASM 제조사의 상기 서버로 전송하고,
    신규 펌웨어와 해당 펌웨어의 매니페스트 정보는 신규 펌웨어의 Hash값과 정보를 포함하며, 제조사 서버의 private key로 서명되고,
    상기 제1 명령어가 실행되면, 상기 OTASM는 수신한 펌웨어 파일의 Hash값을 생성한 후 SE에 Hash값과 수신한 매니페스트 정보를 전송하고, SE는 제조 단계에서 삽입된 제조사의 public key로 매니페스트를 검증하는, 컴퓨터 판독가능 매체.
  20. 삭제
KR1020200151508A 2020-11-13 2020-11-13 추가 하드웨어 모듈을 이용하는 자동차 ecu 업데이트 방법 KR102427977B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200151508A KR102427977B1 (ko) 2020-11-13 2020-11-13 추가 하드웨어 모듈을 이용하는 자동차 ecu 업데이트 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200151508A KR102427977B1 (ko) 2020-11-13 2020-11-13 추가 하드웨어 모듈을 이용하는 자동차 ecu 업데이트 방법

Publications (2)

Publication Number Publication Date
KR20220065223A KR20220065223A (ko) 2022-05-20
KR102427977B1 true KR102427977B1 (ko) 2022-08-01

Family

ID=81798463

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200151508A KR102427977B1 (ko) 2020-11-13 2020-11-13 추가 하드웨어 모듈을 이용하는 자동차 ecu 업데이트 방법

Country Status (1)

Country Link
KR (1) KR102427977B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102482309B1 (ko) 2022-09-27 2022-12-28 주식회사 시옷 차량용 저사양 ecu 무선 업데이트 보안 시스템
KR102629815B1 (ko) 2023-08-18 2024-01-29 주식회사 시옷 차량용 펌웨어 관리 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116340954B (zh) * 2023-03-24 2024-01-23 合芯科技有限公司 一种数据安全通道建立方法、系统控制处理器和启动固件
KR102579173B1 (ko) * 2023-06-15 2023-09-14 이민웅 차량용 ecu의 가상환경을 제공하는 시뮬레이터 및 이의 제어 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6618480B2 (ja) * 2014-11-12 2019-12-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 更新管理方法、更新管理システム及び制御プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101963776B1 (ko) * 2016-04-19 2019-07-31 주식회사 엔지스테크널러지 차량 시스템의 소프트웨어 보안 업데이트 방법 및 장치
KR102256249B1 (ko) * 2018-08-16 2021-05-26 경희대학교 산학협력단 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 펌웨어 업데이트 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6618480B2 (ja) * 2014-11-12 2019-12-11 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 更新管理方法、更新管理システム及び制御プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102482309B1 (ko) 2022-09-27 2022-12-28 주식회사 시옷 차량용 저사양 ecu 무선 업데이트 보안 시스템
KR102629815B1 (ko) 2023-08-18 2024-01-29 주식회사 시옷 차량용 펌웨어 관리 시스템
KR102657379B1 (ko) 2023-08-18 2024-04-15 주식회사 시옷 자동차 전자제어장치용 소프트웨어 검증 시스템

Also Published As

Publication number Publication date
KR20220065223A (ko) 2022-05-20

Similar Documents

Publication Publication Date Title
KR102427977B1 (ko) 추가 하드웨어 모듈을 이용하는 자동차 ecu 업데이트 방법
JP7159328B2 (ja) 車両内電子制御ユニット間のセキュアな通信
US10999078B2 (en) Software distribution processing device, software distribution processing method, and vehicle
US10382485B2 (en) Blockchain-assisted public key infrastructure for internet of things applications
US10659234B2 (en) Dual-signed executable images for customer-provided integrity
US8732812B2 (en) Method of operating an item of on-board equipment, associated equipment and aircraft comprising such equipment
JP2020504390A (ja) サービス指向アーキテクチャに基づく集中化サービスecuおよびその使用方法
US20090327741A1 (en) System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
CN107919955A (zh) 一种车辆网络安全认证方法、系统、车辆、装置及介质
CN110891257B (zh) 一种具有防攻击双向认证的网联车远程升级系统及方法
CN103166759A (zh) 使用诊断链路连接器(dlc)和onstar系统的用于安全固件下载的方法和装置
CN112534793A (zh) 一种车载设备升级方法及相关装置
TW201735578A (zh) 受控的安全碼認證
US11516194B2 (en) Apparatus and method for in-vehicle network communication
WO2019177563A1 (en) Hardware security
CN111918263B (zh) 蓝牙连接方法、装置及物联网设备
Fuchs et al. HIP: HSM-based identities for plug-and-charge
US20220182248A1 (en) Secure startup method, controller, and control system
CN117220895A (zh) 用于车辆中可服务电子部件的公钥基础设施的方法和系统
KR20220042939A (ko) 차량 내 전자식 제어기 보안성 평가 방법 및 그 장치
CN113805916A (zh) 一种升级方法、系统、可读存储介质及车辆
KR102680666B1 (ko) 차량 보안 시동 방법, 장치, 전자 제어 유닛 및 저장 매체
CN109802929B (zh) 基于双系统的客户端程序升级方法及计算机可读存储介质
US20230327883A1 (en) Vehicle bootloader authentication system
JP2018042256A (ja) システム及び管理方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant