KR20190060032A - 차량용 제어 유닛의 업데이트 방법 및 차량 - Google Patents

차량용 제어 유닛의 업데이트 방법 및 차량 Download PDF

Info

Publication number
KR20190060032A
KR20190060032A KR1020170157805A KR20170157805A KR20190060032A KR 20190060032 A KR20190060032 A KR 20190060032A KR 1020170157805 A KR1020170157805 A KR 1020170157805A KR 20170157805 A KR20170157805 A KR 20170157805A KR 20190060032 A KR20190060032 A KR 20190060032A
Authority
KR
South Korea
Prior art keywords
data
control unit
verification
server
encrypted
Prior art date
Application number
KR1020170157805A
Other languages
English (en)
Other versions
KR102025808B1 (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 KR1020170157805A priority Critical patent/KR102025808B1/ko
Publication of KR20190060032A publication Critical patent/KR20190060032A/ko
Application granted granted Critical
Publication of KR102025808B1 publication Critical patent/KR102025808B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Lock And Its Accessories (AREA)
  • Traffic Control Systems (AREA)

Abstract

본 발명은, 서버가, 차량에 구비된 제1 제어 유닛의 소프트웨어를 업데이트하기 위한 데이터(이하 ‘제1 데이터’라 함)와, 상기 제1 데이터를 상기 서버의 개인키(private key)로 암호화하여 생성되는 데이터(이하 ‘암호화 데이터’라 함)를, 상기 차량에 구비된 제2 제어 유닛으로 전송하는 제1 단계, 상기 제2 제어 유닛이, 상기 제1 데이터 및 상기 암호화 데이터를 수신하는 제2 단계, 상기 제2 제어 유닛이, 상기 암호화 데이터 및 상기 서버의 공개키(public key)에 기초하여 상기 제1 데이터를 검증하고, 상기 제1 데이터에 대한 검증 결과를 나타내는 검증 데이터(verification data)를 생성하는 제3 단계, 상기 제2 제어 유닛이, 상기 검증 데이터와 상기 제1 데이터를, 상기 제1 제어 유닛에 전송하는 제4 단계, 및 상기 제1 제어 유닛이, 상기 검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되면, 상기 제1 데이터를 사용하여 업데이트를 수행하는 제5 단계를 포함하는 차량용 제어 유닛의 업데이트 방법에 관한 것이다.

Description

차량용 제어 유닛의 업데이트 방법 및 차량{Driving assistance Apparatus for Vehicle and Control method thereof}
본 발명은 비대칭 암호화 방식의 검증을 수행할 수 없는 제어 유닛과, 비대칭 암호화 방식의 검증을 수행할 수 있는 제어 유닛을 구비한 차량에서, 비대칭 암호화 방식의 검증을 수행할 수 있는 제어 유닛이, 비대칭 암호화 방식의 검증을 수행할 수 없는 제어 유닛을 대신하여 데이터의 전자 서명을 검증하는 방법에 관한 것이다.
차량은 탑승하는 사용자가 원하는 방향으로 이동시키는 장치이다. 대표적으로 자동차를 예를 들 수 있다.
한편, 차량을 이용하는 사용자의 편의를 위해, 각 종 센서와 전자 장치 등이 구비되고 있는 추세이다. 특히, 사용자의 운전 편의를 위해 차량 운전자 보조 시스템(ADAS : Advanced Driver Assistance System)에 대한 연구가 활발하게 이루어지고 있다. 나아가, 차량이 자율적으로 주행하는 차량용 주행 시스템에 대한 연구 개발이 활발하게 이루어지고 있다.
차량에 다양한 전자 장치와 시스템이 구비됨에 따라, 차량에는 다양한 제어 유닛이 구비되는 추세이다. 예를 들어, 차량에 구비되는 제어 유닛은, ECU(Electronic Control Unit)나, 프로세서일 수 있다.
또한, 차량에 구비된 여러 제어 유닛에는, 각각의 소프크웨어가 탑재될 수 있다. 이 경우, 차량에 구비된 여러 제어 유닛에 탑재된 소프트웨어는, 서버에서 제공하는 업데이트 데이터를 통하여 업데이트될 수 있다.
차량에 구비된 제어 유닛이, 서버에서 제공하는 업데이트 데이터를 수신하는 경우, 수신되는 데이터의 전자 서명을 검증해야 한다. 이러한 전자 서명의 검증을 수행하기 위해서는, 비대칭 암호화 방식(asymmetric cryptosystem)을 사용해야 한다. 비대칭 암호화 방식(asymmetric cryptosystem)의 검증은, 대칭 암호화 방식(symmetric cryptosystem)의 검증보다 많은 연산 능력을 필요로 한다. 그러나, 차량에는, 연산 능력이 부족하여, 비대칭 암호화 방식(asymmetric cryptosystem)의 검증을 수행할 수 없는 제어 유닛이 존재할 수 있다.
예를 들어, 하드웨어 상의 문제로 HSM(Hardware Security Module)을 구비하지 않거나, 연산 능력이 부족한 HSM을 구비한 제어 유닛은, 비대칭 암호화 방식(asymmetric cryptosystem)의 검증을 수행할 수 없다.
본 발명의 실시예는, 차량에 비대칭 암호화 방식의 검증을 수행할 수 없는 제1 제어 유닛이 존재하는 경우, 비대칭 암호화 방식의 검증을 수행할 수 있는 제2 제어 유닛을 이용하여, 제1 제어 유닛에 대한 데이터를 대신 검증하고, 검증 결과에 따라 제1 제어 유닛의 업데이트를 수행할 것인지 결정하는 제어 유닛의 업데이트 방법을 제공하는데 목적이 있다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 달성하기 위하여, 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법은, 서버가, 차량에 구비된 제1 제어 유닛의 소프트웨어를 업데이트하기 위한 데이터(이하 ‘제1 데이터’라 함)와, 상기 제1 데이터를 상기 서버의 개인키(private key)로 암호화하여 생성되는 데이터(이하 ‘암호화 데이터’라 함)를, 상기 차량에 구비된 제2 제어 유닛으로 전송하는 제1 단계, 상기 제2 제어 유닛이, 상기 제1 데이터 및 상기 암호화 데이터를 수신하는 제2 단계, 상기 제2 제어 유닛이, 상기 암호화 데이터 및 상기 서버의 공개키(public key)에 기초하여 상기 제1 데이터를 검증하고, 상기 제1 데이터에 대한 검증 결과를 나타내는 검증 데이터(verification data)를 생성하는 제3 단계, 상기 제2 제어 유닛이, 상기 검증 데이터와 상기 제1 데이터를, 상기 제1 제어 유닛에 전송하는 제4 단계, 및 상기 제1 제어 유닛이, 상기 검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되면, 상기 제1 데이터를 사용하여 업데이트를 수행하는 제5 단계를 포함할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 실시예에 따르면 다음과 같은 효과가 하나 혹은 그 이상 있다.
첫째, 차량에 연산 능력이 부족한 제어 유닛이 존재하더라도, 연산 능력이 충분한 다른 제어 유닛을 이용하여 데이터를 대신 검증할 수 있는 효과가 있다.
둘째, 데이터의 검증을 대신 수행하는 제어 유닛 뿐만 아니라, 데이터에 대한 재검증을 수행하는 또 다른 제어 유닛을 이용하여 데이터 검증의 정확성이 향상된다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법을 수행하는 서버와 제어 유닛들을 나타내는 도면이다.
도 2 및 도 3은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 단계 및 제2 단계를 설명하기 위한 도면이다.
도 4 및 도 5은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제3 단계 및 재4 단계를 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 재검증 단계를 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제5 단계를 설명하기 위한 도면이다.
도 8 및 도 9는 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제2 및 3 재검증 단계를 설명하기 위한 도면이다.
도 10 및 도 11은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제5 단계를 설명하기 위한 도면이다.
도 12은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법을 수행하는 서버와 제어 유닛들을 나타내는 도면이다.
도 13은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 단계 및 제2 단계를 설명하기 위한 도면이다.
도 14 및 도 15은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제3 단계 및 제4 단계를 설명하기 위한 도면이다.
도 16은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 재검증 단계를 설명하기 위한 도면이다.
도 17 및 도 18은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제2 및 3 재검증 단계를 설명하기 위한 도면이다.
도 19은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제5 단계를 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에서 기술되는 차량은, 자동차, 오토바이를 포함하는 개념일 수 있다. 이하에서는, 차량에 대해 자동차를 위주로 기술한다.
본 명세서에서 기술되는 차량은, 동력원으로서 엔진을 구비하는 내연기관 차량, 동력원으로서 엔진과 전기 모터를 구비하는 하이브리드 차량, 동력원으로서 전기 모터를 구비하는 전기 차량등을 모두 포함하는 개념일 수 있다. 차량은, 다양한 제어 유닛을 구비한다.
최근 Automotive system에서는 자동차 환경의 변화에 따라 요구되는 차량 보안을 위해 HSM(HW security module)로서 EVITA(E-safety Vehicle Intrusion proTected Applications) 등급을 요구하는 추세이다.
EVITA 등급은 요구되는 안전 등급(security level)에 따라 EVITA-Full, EVITA-Medium, EVITA-light로 분류된다.
차량에는, 비대칭 암호화 방식(asymmetric cryptography)의 연산이 어려운 제어 유닛(ECU)이 존재한다.
예를 들어, Performance의 제한, chip size 등 기타 H/W의 문제로 HSM이 구비되지 않거나, Sensor, actuator과 같이 요구되는 안전 등급이 낮아 Light EVITA의 HSM만을 구비하는 제어 유닛은, 비대칭 암호화 방식(asymmetric cryptography)의 연산이 불가하다.
비대칭 암호화 방식의 연산이 어려운 제어 유닛은 서버로부터 전송되는 업데이트 데이터의 무결성을 전자 서명으로 검증하기가 어렵다.
본 발명은 비대칭 암호화 연산이 가능한 제2 제어 유닛(120)이 비대칭 암호화 연산이 불가한 제1 제어 유닛(110)을 대신하여 서버(200)의 업데이트 데이터의 서명을 검증하는 업데이트 방법에 관한 것이다.
또한, 본 발명의 다른 일 실시예는, 제2 제어 유닛(120)이 검증 결과나 데이터를 조작하는 가능성을 차단하기 위하여, 하나 이상의 제3 제어 유닛이나 제4 제어 유닛(140)이 데이터를 재 검증하는 방법을 포함한다.
도 1은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법을 수행하는 서버(200)와 제어 유닛들을 나타내는 도면이다.
본 발명의 서버(200)는, 차량(100)에 구비된 각종 제어 유닛의 소프트웨어를 업데이트하기 위한 데이터를 제공한다.
이를 위하여 서버(200)는, 각종 업데이트를 수행하기 위한 데이터를 생성하고, 저장한다. 서버(200)는, 각종 데이터를 차량에 전송하기 위한 통신 장치를 구비할 수 있다.
서버(200)는, 구비된 통신 장치를 통하여, 각종 데이터를 차량(100)으로 전송할 수 있다.
서버(200)는, 서버 난수 및 서버 개인키 중 적어도 하나를 구비할 수 있다.
서버(200)는, 서버 난수를 주기적으로 갱신할 수 있다. 예를 들어, 서버(200)는, 서버 난수를 기설정된 시간이 경과할때마다 새로운 값으로 설정하거나, 부팅될 때마다 서버 난수를 새롭게 설정할 수 있다.
서버(200)는, 주기적으로 갱신되는 서버 난수를 제2 제어 유닛(120), 제3 제어 유닛, 및 제4 제어 유닛(140)과 공유할 수 있다. 이에 따라, 제2 제어 유닛(120), 제3 제어 유닛, 및 제4 제어 유닛(140)은, 주기적으로 갱신되는 서버 난수를 구비할 수 있다.
차량(100)은, 각종 제어 유닛을 구비할 수 있다. 예를 들어, 차량(100)은, 디스플레이 장치를 제어하기 위한 제어 유닛, 브레이크 장치를 제어하기 위한 제어 유닛, 오디오 장치를 제어하기 위한 제어 유닛, 조향 장치를 제어하기 위한 제어 유닛, 공조 장치를 제어하기 위한 제어 유닛, 차량(100)이 움직이기 위한 각종 구동 장치를 제어하기 위한 제어 유닛 등을 구비할 수 있다.
본 발명의 차량(100)은, 제1 제어 유닛(110) 및 제2 제어 유닛(120)을 구비할 수 있다.
제1 제어 유닛(110)은, HSM(Hardware Security Module)를 구비하지 않거나, 비대칭 암호화 방식(asymmetric cryptosystem)의 검증을 수행할 수 없는 HSM만을 구비한다. 이에 따라, 제1 제어 유닛(110)은, 비대칭 암호화 방식의 검증을 수행할 수 없다.
비대칭 암호화 방식의 검증은, 특정 장치가 구비하는 개인키로 암호화된 데이터를, 상기 특정 장치의 공개키로 복호화하여, 상기 데이터가 정당한 권한을 갖는 주체로부터 전송되었는지 및 무결성이 만족되는지를 확인하는 것이다.
제1 제어 유닛(110)은, 유닛 난수, 및 검증이나 재검증을 수행하는 제어 유닛들 각각의 개인 대칭키(symmetric-key)를 구비할 수 있다.
예를 들어, 도면의 실시예와 같이 차량(100)이 제2 제어 유닛(120), 제3 제어 유닛A(130a), 제3 제어 유닛B(130b)를 구비하는 경우, 제1 제어 유닛(110)은, 제2 제어 유닛(120)의 개인 대칭키1, 제3 제어 유닛A(130a)의 개인 대칭키A, 및 제3 제어 유닛B(130b)의 개인 대칭키B를 구비할 수 있다.
차량(100)에 구비된 모든 제어 유닛은, 유닛 난수를 공유할 수 있다. 유닛 난수는, 특정 제어 유닛에 의하여 주기적으로 갱신되어, 다른 제어 유닛들에 공유될 수 있다. 이에 따라, 제1 제어 유닛(110), 제2 제어 유닛(120), 제3 제어 유닛, 및 제4 제어 유닛(140)은, 유닛 난수를 구비할 수 있다.
제2 제어 유닛(120)은, 비대칭 암호화 방식의 검증을 수행할 수 있는 HSM을 구비한다. 이에 따라, 제2 제어 유닛(120)은, 비대칭 암호화 방식의 검증을 수행할 수 있다.
제2 제어 유닛(120)은, 서버 난수, 유닛 난수, 서버(200) 공개키, 및 개인 대칭키1을 구비할 수 있다.
본 발명에서, 개인 대칭키1은, 제1 대칭키로 명명될 수도 있다.
제2 제어 유닛(120)은, 서버(200)와 통신을 수행할 수 있다. 이는 차량과 서버(200)와의 통신이므로, V2X 통신으로 명명될 수 있다.
V2X 통신은, 차량과 서버(200)(V2I : Vehicle to Infra), 차량과 타 차량(V2V : Vehicle to Vehicle), 및 차량과 보행자(V2P : Vehicle to Pedestrian) 간의 무선 통신을 뜻한다.
제2 제어 유닛(120)은, 서버(200)와 통신을 수행하기 위한 통신 모듈을 구비할 수 있다.
차량(100)은, 하나 이상의 제3 제어 유닛를 더 구비할 수 있다. 도면의 실시예와 같이, 차량(100)은, 제3 제어 유닛A(130a), 및 제3 제어 유닛B(130b)을 구비하여, 2개의 제3 제어 유닛을 구비할 수도 있다.
제3 제어 유닛은, 비대칭 암호화 방식의 검증을 수행할 수 있는 HSM을 구비한다. 이에 따라, 제3 제어 유닛도, 비대칭 암호화 방식의 검증을 수행할 수 있다.
제3 제어 유닛은, 서버 난수, 유닛 난수, 서버(200) 공개키, 및 고유의 개인 대칭키를 구비할 수 있다. 본 발명에서 제3 제어 유닛이 구비하는 개인 대칭키는, 제2 대칭키라고 명명될 수 있다.
제3 제어 유닛은, 하나 이상일 수 있다. 제3 제어 유닛이 복수인 경우, 복수의 제3 제어 유닛은, 각각 자신의 개인 대칭키를 구비한다. 도면의 실시에에서, 제3 제어 유닛A(130a)는, 개인 대칭키A를 구비하고, 제3 제어 유닛B(130b)는, 개인 대칭키B를 구비할 수 있다.
차량(100)은, 제4 제어 유닛(140)를 더 구비할 수 있다. 제4 제어 유닛(140)에 대한 설명은, 도 12에 대한 설명에서 후술한다.
제4 제어 유닛(140)은, 비대칭 암호화 방식의 검증을 수행할 수 있는 HSM을 구비한다. 이에 따라, 제4 제어 유닛(140)도, 비대칭 암호화 방식의 검증을 수행할 수 있다.
차량(100)에 구비된 모든 제어 유닛은, IVN(In-Vehicle Network)로 연결도니다. 예를 들어, IVN은, CAN(Controller Area Network)일 수 있다.
이에 따라, 차량(100)에 구비된 모든 제어 유닛은, IVN(In-Vehicle Network)를 통하여 각종 데이터를 공유할 수 있다. 예를 들어, 제2 제어 유닛(120)이 제1 데이터를 IVN로 전송하는 경우, 다른 제어 유닛들 모두 제1 데이터를 획득할 수 있다.
본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법은, 제1 단계, 제2 단계, 제3 단계, 제4 단계, 및 제5 단계를 포함할 수 있다. 또한, 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법은, 제4 단계 및 제5 단계 사이에 제1 재검증 단계, 제2 재검증 단계, 및 제3 재검증 단계를 더 포함할 수도 있다.
구체적으로, 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법은, 서버(200)가, 차량에 구비된 제1 제어 유닛(110)의 소프트웨어를 업데이트하기 위한 데이터(이하 '제1 데이터'라 함)와, 제1 데이터를 상기 서버(200)의 개인키(private key)로 암호화하여 생성되는 데이터(이하 '암호화 데이터'라 함)를, 차량에 구비된 제2 제어 유닛(120)으로 전송하는 제1 단계; 제2 제어 유닛(120)이, 제1 데이터 및 암호화 데이터를 수신하는 제2 단계; 제2 제어 유닛(120)이, 암호화 데이터 및 서버(200)의 공개키(public key)에 기초하여 제1 데이터를 검증하고, 제1 데이터에 대한 검증 결과를 나타내는 검증 데이터(verification data)를 생성하는 제3 단계; 제2 제어 유닛(120)이, 검증 데이터와 제1 데이터를, 제1 제어 유닛(110)에 전송하는 제4 단계; 및 제1 제어 유닛(110)이, 검증 데이터에 기초하여 제1 데이터에 오류가 없다고 판단되면, 제1 데이터를 사용하여 업데이트를 수행하는 제5 단계를 포함할 수 있다. 이하 도면을 참조하여 각 단계를 구체적으로 설명한다.
도 2 및 도 3은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 단계 및 제2 단계를 설명하기 위한 도면이다.
도 2를 참조하면, 제1 단계에서, 서버(200)는, 제1 제어 유닛(110)을 업데이트하기 위한 데이터(제1 데이터)와 제1 데이터를 암호화한 전자 서명 값인 암호화 데이터를 제2 제어 유닛(120)에 전송한다.
본 발명의 제1 제어 유닛(110)은 전자 서명을 검증하기 위한 비대칭 암호화 방식의 연산을 수행할 수 없으므로, 서버(200)는 제1 제어 유닛(110)을 대신하여 검증을 수행할 제2 제어 유닛(120)에게 제1 데이터와 암호화 데이터를 전송한다.
도 3을 참조하면, 제1 단계에서, 서버(200)는, 제1 데이터 및 암호화 데이터를 전송하기 전에, 제1 데이터를 분할하고, 암호화 데이터를 생성한다.
제1 단계에서, 서버(200)는, 제1 데이터의 크기, 제1 제어 유닛(110)의 메모리 크기, 제2 제어 유닛(120)의 메모리 크기, 및 IVN의 데이터 프레임 (data frame)의 최대 크기 중 적어도 하나에 기초하여, 제1 데이터에 대한 분할 사이즈(fragmentation size)를 결정할 수 있다.
제1 데이터의 크기가 제2 제어 유닛(120)이나 제1 제어 유닛(110)의 메모리 크기보다 큰 경우, 서버(200)는, 제1 데이터를 적절한 사이즈로 분할하여 제2 제어 유닛(120)이나 제1 제어 유닛(110)이 분할된 데이터에 대하여 순차적으로 검증 및 전달을 수행할 수 있게 할 수 있다.
또한, IVN의 데이터 프레임 (data frame)의 최대 크기가 제1 데이터의 크기보다 작은 경우, 1개의 데이터 프레임에 제1 데이터가 모두 포함될 수 없으므로, 서버(200)는, 제1 데이터를 적절한 사이즈로 분할하여 제2 제어 유닛(120)이 수행하는 2차 데이터 분할시 많은 시간이 소요되지 않게 할 수 있다.
서버(200)는, 제1 데이터에 대한 분할 사이즈가 결정된 경우, 결정된 분할 사이즈에 따라 제1 데이터를 분할(fragment)하여, N개의 1차 분할 데이터를 생성한다.
예를 들어, 제1 데이터의 크기가 1메가 바이트이고, IVN의 데이터 프레임의 최대 크기가 8바이트인 경우, 서버(200)는, 제1 데이터에 대한 분할 사이즈를, 1킬로 바이트로 결정할 수 있다. 서버(200)는, 제1 데이터를 1킬로 바이트의 크기로 분할하여, 1024개의 1차 분할 데이터를 생성할 수 있다. 이 경우, 1차 분할 데이터의 개수 N은 1024이다.
제1 단계에서, 서버(200)는, N개의 1차 분할 데이터를, 제2 제어 유닛(120)으로 전송한다. 즉, 서버(200)는, 제1 데이터를 N개의 1차 분할 데이터로 분할하여 제2 제어 유닛(120)에 전송한다.
제1 단계에서, 서버(200)는, 제1 데이터를 서버 난수와 서버(200)의 개인키로 암호화하여, 암호화 데이터를 생성한다.
도면의 실시예에서, 서버(200)는, N개로 분할된 제1 데이터에 대하여 암호화를 수행한다. 서버(200)는, N개의 1차 분할 데이터 각각에 서버 난수를 결합시킨 값의 해시 값을 서버 개인키로 암호화한다. 이에 따라, N개의 암호화 데이터가 생성된다. 서버(200)는, N개의 암호화 데이터를 제2 제어 유닛(120)에 전송한다.
제2 단계에서, 제2 제어 유닛(120)은, 서버(200)로부터 N개의 1차 분할 데이터를 수신한다.
도 4 및 도 5은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제3 단계 및 재4 단계를 설명하기 위한 도면이다.
도 4를 참조하면, 제2 제어 유닛(120)은, 제3 단계에서 검증 데이터를 생성하고, 제4 단계에서, 검증 데이터, 제1 데이터, 암호화 데이터를 IVN에 전송한다.
제3 단계에서, 제2 제어 유닛(120)은, 암호화 데이터, 서버(200)의 공개키, 및 서버 난수에 기초하여, 제1 데이터를 검증할 수 있다.
구체적으로, 제2 제어 유닛(120)은, 암호화 데이터를 서버(200)의 공개키로 복호화한 값과, 서버 난수와 제1 데이터를 결합한 값의 해시값을 비교하여, 제1 데이터를 검증할 수 있다.
제2 제어 유닛(120)은, 암호화 데이터를 서버(200)의 공개키로 복호화한 값과, 서버 난수와 제1 데이터를 결합한 값의 해시값이 동일하다고 판단되면, 제1 데이터에 오류가 없다고 판단한다.
제2 제어 유닛(120)은, 암호화 데이터를 서버(200)의 공개키로 복호화한 값과, 서버 난수와 제1 데이터를 결합한 값의 해시값이 상이하다고 판단되면, 제1 데이터에 오류가 있다고 판단한다.
제3 단계에서, 제2 제어 유닛(120)은, 제1 데이터에 대한 검증 결과와 제1 데이터를 상기 제1 대칭키로 암호화하여, 검증 데이터를 생성할 수 있다.
또한, 제3 단계에서, 제2 제어 유닛(120)은, 제1 데이터에 대한 검증 결과와 제1 데이터를, 유닛 난수와 제1 대칭키로 암호화하여, 검증 데이터를 생성할 수도 있다.
제2 제어 유닛(120)은, 제1 데이터에 대한 검증결과와, 제1 데이터의 해시값과, 유닛 난수를 결합하고, 결합된 값을 개인 대칭키1로 암호화하여, 검증 데이터를 생성할 수 있다. 이는, 메시지 인증 코드(MAC, Message Authentication Code)를 생성하는 방식이다.
도 5를 참조하면, 제3 단계에서, 제2 제어 유닛(120)은, N개의 1차 분할 데이터 각각에 대하여 검증을 수행하여, N개의 검증 데이터를 생성한다.
제3 단계에서, 제2 제어 유닛(120)은, N개의 1차 분할 데이터 각각에 대하여 상술한 과정을 수행한다. 이에 따라, N개의 검증 데이터가 생성된다.
제4 단계에서, 제2 제어 유닛(120)은, IVN의 데이터 프레임의 최대 크기에 기초하여, N개의 1차 분할 데이터에 대한 2차 분할 사이즈를 결정한다.
예를 들어, 제2 제어 유닛(120)은, IVN의 데이터 프레임의 최대 크기를, 2차 분할 사이즈로 결정할 수 있다. 예를 들어, IVN이 CAN이고, CAN의 데이터 프레임의 최대 크기가 8바이트인 경우, 제2 제어 유닛(120)은, 2차 분할 사이즈를 8바이트로 결정할 수 있다.
제4 단계에서, 제2 제어 유닛(120)은, 서버(200)로부터 수신된 N개의 1차 분할 데이터 각각을, 2차 분할 사이즈에 따라 분할하여, 총 N*M 개의 2차 분할 데이터를 생성할 수 있다.
제4 단계에서, 제2 제어 유닛(120)은, N*M 개의 2차 분할 데이터, 및 N개의 검증 데이터를 제1 제어 유닛(110)에 전송할 수 있다.
도 6은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 재검증 단계를 설명하기 위한 도면이다.
도 6을 참조하면, 제1 제어 유닛(110)은, 제2 제어 유닛(120)이 전송하는 제1 데이터 및 검증 데이터를 수신할 수 있다. 예를 들어, 제1 제어 유닛(110)은, N*M 개의 2차 분할 데이터, 및 N개의 검증 데이터를 수신할 수 있다.
또한, 제3 제어 유닛은, 제2 제어 유닛(120)이 전송하는 제1 데이터와 암호화 데이터를 수신할 수 있다. 제3 제어 유닛이, 제2 제어 유닛(120)이 전송하는 제1 데이터와 암호화 데이터를 수신하는 단계는, 제1 재검증 단계라고 명명될 수 있다.
도면과 같이, 제3 제어 유닛이 2개인 경우, 제3 제어 유닛A(130a)와, 제3 제어 유닛B(130b)는, 각각 제1 데이터와 암호화 데이터를 수신할 수 있다.
도 7은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제5 단계를 설명하기 위한 도면이다.
도 7을 참조하면, 제5 단계에서, 제1 제어 유닛(110)은, 제2 제어 유닛(120)의 검증 결과를 확인한다.
제1 제어 유닛(110)은, N*M 개의 2차 분할 데이터, 및 N개의 검증 데이터를 순차적으로 수신한다.
제1 제어 유닛(110)은, N*M 개의 2차 분할 데이터를 수신하면서, N개의 1차 분할 데이터를 복원한다.
제1 제어 유닛(110)은, 1차 분할 데이터 1개가 복원될 때마다 검증 데이터를 이용하여 제2 제어 유닛(120)의 검증 결과를 확인한다.
제1 제어 유닛(110)은, 검증 결과를 확인하기 위하여, 검증 확인 데이터를 생성한다.
제1 제어 유닛(110)은, 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 제1 데이터를 유닛 난수와 제1 대칭키(개인 대칭키1)로 암호화하여, 검증 확인 데이터(verification check data)를 생성한다.
구체적으로, 제1 제어 유닛(110)은, 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과, 제1 데이터의 해시값, 및 유닛 난수를 결합하고, 결합된 값을 개인 대칭키1로 암호화하여, 검증 확인 데이터를 생성할 수 있다.
제1 제어 유닛(110)은, 검증 확인 데이터와 제2 제어 유닛(120)이 전송한 검증 데이터가 동일하면, 제2 제어 유닛(120)이 제1 데이터에 오류가 없다고 판단한 것으로 판단한다.
제1 제어 유닛(110)은, 검증 확인 데이터와 제2 제어 유닛(120)이 전송한 검증 데이터가 상이하면, 제2 제어 유닛(120)이 제1 데이터에 오류가 있다고 판단한 것으로 판단한다.
제1 제어 유닛(110)은, N개의 1차 분할 데이터를 복원하면서, 복원되는 데이터를 이용하여 N개의 검증 확인 데이터를 생성할 수 있다. 제1 제어 유닛(110)은, 1개의 검증 확인 데이터가 생성될 때마다 이에 대응하는 검증 데이터와 비교하여 검증 결과를 확인할 수 있다.
제1 제어 유닛(110)은, N 번의 검증 결과 확인 과정을 통하여, 최종적으로 제2 제어 유닛(120)의 검증 결과를 판단할 수 있다.
제1 제어 유닛(110)은, N개의 검증 데이터와 N개의 검증 확인 데이터가 상호 대응하는 것끼리 모두 동일하다고 판단되면, 제2 제어 유닛(120)이 제1 데이터에 오류가 없다고 판단한 것으로 판단한다.
도면의 실시예와 달리 제3 제어 유닛이 없고, 제2 제어 유닛(120)과 제1 제어 유닛(110)만 존재하는 실시예에서, 제1 제어 유닛(110)은, 제2 제어 유닛(120)의 검증 결과에 기초하여, 업데이트 수행 여부를 결정한다.
이 경우, 제5 단계에서, 제1 제어 유닛(110)은, 제 2제어 유닛이 전송한 검증 데이터에 기초하여, 제1 데이터에 오류가 있는지 판단한다. 제1 제어 유닛(110)은, 제2 제어 유닛(120)의 검증 결과에 따라 제1 데이터에 오류가 없다고 판단되면, 제1 데이터에 대응하는 업데이트를 수행하고, 제1 데이터에 오류가 있다고 판단되면, 제1 데이터에 대응하는 업데이트를 중단한다.
구체적으로, 제5 단계에서, 제1 제어 유닛(110)은, 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 제1 데이터를 유닛 난수와 제1 대칭키(개인 대칭키1)로 암호화하여, 검증 확인 데이터(verification check data)를 생성하고, 검증 확인 데이터와 검증 데이터가 동일하면, 제1 데이터에 오류가 없다고 판단하고, 검증 확인 데이터와 검증 데이터가 상이하면, 제1 데이터에 오류가 있다고 판단한다.
도 8 및 도 9는 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제2 및 3 재검증 단계를 설명하기 위한 도면이다.
도 8을 참조하면, 본 발명에 따른 차량용 제어 유닛의 업데이트 방법은, 제3 제어 유닛이, 암호화 데이터 및 서버(200)의 공개키를 기초로 제1 데이터를 검증하여, 재검증 데이터를 생성하는 제2 재검증 단계; 및 제3 제어 유닛이, 재검증 데이터를, 상기 제1 제어 유닛(110)에 전송하는 제3 재검증 단계를 더 포함할 수 있다.
도면의 실시예와 같이 제3 제어 유닛이 복수인 경우, 제2 재검증 단계에서, 복수의 제3 제어 유닛 각각은, 암호화 데이터 및 서버(200)의 공개키를 기초로 제1 데이터를 검증하여, 재검증 데이터를 생성할 수 있다. 이 경우, 제3 재검증 단계에서, 복수의 제3 제어 유닛은, 각각 재검증 데이터를 전송한다.
도면의 실시예에서, 제3 제어 유닛A(130a)는, 제1 데이터를 검증하여 재검증 데이터A를 생성하고, 생성된 재검증 데이터A를 제1 제어 유닛(110)에 전송한다. 제3 제어 유닛B(130b)는, 제1 데이터를 검증하여 재검증 데이터B를 생성하고, 생성된 재검증 데이터B를 제1 제어 유닛(110)에 전송한다.
도 9를 참조하면, 제3 제어 유닛A(130a) 및 제3 제어 유닛B(130b)는, 각각 재검증 데이터를 생성한다. 두 제어 유닛의 동작은 동일하므로, 이하 하나의 제어 유닛의 동작만 설명한다.
제3 제어 유닛A(130a)는, 제2 제어 유닛(120)이 순차적으로 전송하는 N*M 개의 2차 분할 데이터, 및 N개의 검증 데이터를 순차적으로 수신한다.
제3 제어 유닛A(130a)는, N*M 개의 2차 분할 데이터를 수신하면서, N개의 1차 분할 데이터를 복원한다.
제3 제어 유닛A(130a)는, 1차 분할 데이터 1개가 복원될 때마다 이에 대한 재검증 데이터를 생성한다.
예를 들어, 제3 제어 유닛A(130a)는, 1차 분할 데이터 1이 복원되는 경우, 재검증 데이터 1을 생성한다. 제3 제어 유닛A(130a)는, 1차 분할 데이터 2이 복원되는 경우, 재검증 데이터 2을 생성한다. 제3 제어 유닛A(130a)는, 이러한 과정을 N번 반복하여 N개의 재검증 데이터를 생성한다.
제3 제어 유닛A(130a)는, 암호화 데이터 및 서버(200)의 공개키를 기초로 상기 제1 데이터를 검증하고, 제1 데이터에 대한 검증 결과, 제1 데이터, 유닛 난수, 및 개인 대칭키A를 이용하여 재검증 데이터A를 생성한다.
구체적으로, 제3 제어 유닛A(130a)는, 제1 데이터에 대한 검증 결과, 제1 데이터의 해시값, 및 유닛 난수를 결합하고, 결합된 값을 개인 대칭키A로 암호화하여, 재검증 데이터A를 생성할 수 있다.
도면의 실시예에서, 재검증 데이터A는, 재검증 데이터1 내지 N을 포함하는 것이다.
도 10 및 도 11은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제5 단계를 설명하기 위한 도면이다.
제5 단계에서, 제1 제어 유닛(110)은, 재검증 데이터와 검증 데이터에 기초하여, 업데이트의 수행 여부를 결정할 수 있다.
제3 제어 유닛이 하나인 실시예에서, 제1 제어 유닛(110)은, 검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되고, 상기 재검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되면, 상기 업데이트를 수행하고, 상기 검증 데이터 및 상기 재검증 데이터 중 적어도 하나에 기초하여, 상기 제1 데이터에 오류가 있다고 판단되면, 상기 업데이트를 중단할 수 있다.
구체적으로, 제5 단계에서, 상기 제1 제어 유닛(110)은, 상기 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 상기 제1 데이터를, 상기 제1 대칭키로 암호화하여 제1 검증 확인 데이터를 생성한다. 또한, 제1 제어 유닛(110)은, 상기 가상의 검증 결과와 상기 제1 데이터를, 상기 제2 대칭키로 암호화하여 제2 검증 확인 데이터를 생성한다. 유닛 난수가 존재한다면, 제1 제어 유닛(110)은, 상기 가상의 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제1 대칭키로 암호화하여 상기 제1 검증 확인 데이터를 생성하고, 상기 가상의 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제2 대칭키로 암호화하여 상기 제2 검증 확인 데이터를 생성한다.
이후, 제1 제어 유닛(110)은, 상기 제1 검증 확인 데이터와 상기 검증 데이터가 동일하고, 상기 제2 검증 확인 데이터와 상기 재검증 데이터가 동일하다고 판단되면, 상기 제1 데이터에 대응하는 업데이트를 수행한다. 제1 제어 유닛(110)은, 상기 제1 검증 확인 데이터와 상기 검증 데이터가 상이하거나, 상기 제2 검증 확인 데이터와 상기 재검증 데이터가 상이하다고 판단되면, 상기 제1 데이터에 대응하는 업데이트를 중단한다.
제3 제어 유닛이 복수인 실시예에서, 제1 제어 유닛(110)은, 상기 복수의 제3 제어 유닛 각각이 전송하는 복수의 재검증 데이터를 수신하고, 상기 검증 데이터 및 상기 복수의 재검증 데이터 각각이 나타내는 복수의 검증 결과를 판단한다.
구체적으로, 제5 단계에서, 제1 제어 유닛(110)은, 상기 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 상기 제1 데이터를, 상기 복수의 개인 대칭키로 암호화하여, 상기 검증 데이터 및 복수의 재검증 데이터 각각에 대응하는 복수의 검증 확인 데이터를 생성한다.
제1 제어 유닛(110)은, 상기 복수의 검증 확인 데이터 중 상기 검증 데이터에 대응하는 것과, 상기 검증 데이터가 동일한 경우, 상기 검증 데이터가 상기 제1 데이터에 오류가 없다는 검증 결과를 나타낸다고 판단한다.
제1 제어 유닛(110)은, 상기 복수의 검증 확인 데이터와 상기 복수의 재검증 데이터를, 상호 대응하는 데이터끼리 비교하여, 대응하는 검증 확인 데이터와 동일한 재검증 데이터는, 상기 제1 데이터에 오류가 없다는 검증 결과를 나타낸다고 판단한다.
제1 제어 유닛(110)은, 상기 복수의 검증 결과 중 상기 제1 데이터에 오류가 없다는 검증 결과가 이외의 검증 결과보다 많거나, 상기 제1 데이터에 오류가 없다는 검증 결과의 수가 기설정된 기준값보다 크다고 판단되면, 업데이트를 수행한다. 기준값은, 제1 제어 유닛(110)에 저장된 값이다.
도 10을 참조하면, 제5 단계에서, 제1 제어 유닛(110)은, 재검증 데이터A 및 재검증 데이터B에 기초하여, 제3 제어 유닛A(130a) 및 제3 제어 유닛B(130b)의 검증 결과를 확인할 수 있다.
제1 제어 유닛(110)은, 제2 제어 유닛(120)으로부터 수신된 제1 데이터의 해시값, 제1 데이터에 오류가 없다고 가정한 가상의 검증 결과, 및 유닛 난수를 결합하고, 결합된 값을 개인 대칭키A로 암호화하여 제2 검증 확인 데이터A를 생성할 수 있다.
제1 제어 유닛(110)은, 제2 검증 확인 데이터A를, 재검증 데이터A와 비교하고, 제2 검증 확인 데이터A와 재검증 데이터A가 동일한 경우, 제3 제어 유닛A(130a)가 제1 데이터에 오류가 없다고 판단한 것으로 판단한다. 제1 제어 유닛(110)은, 제2 검증 확인 데이터A와 재검증 데이터A가 상이한 경우, 제3 제어 유닛A(130a)가 제1 데이터에 오류가 있다고 판단한 것으로 판단한다.
제1 제어 유닛(110)은, 제2 제어 유닛(120)으로부터 수신된 제1 데이터의 해시값, 제1 데이터에 오류가 없다고 가정한 가상의 검증 결과, 및 유닛 난수를 결합하고, 결합된 값을 개인 대칭키B로 암호화하여 제2 검증 확인 데이터B를 생성할 수 있다.
제1 제어 유닛(110)은, 제2 검증 확인 데이터B를, 재검증 데이터B와 비교하고, 제2 검증 확인 데이터B와 재검증 데이터B가 동일한 경우, 제3 제어 유닛B(130b)가 제1 데이터에 오류가 없다고 판단한 것으로 판단한다. 제1 제어 유닛(110)은, 제2 검증 확인 데이터B와 재검증 데이터B가 상이한 경우, 제3 제어 유닛B(130b)가 제1 데이터에 오류가 있다고 판단한 것으로 판단한다.
도 11을 참조하면, 제1 제어 유닛(110)은, 복수의 검증 결과 중, 제1 데이터에 오류가 없다고 판단한 검증 결과가 그외의 검증 결과보다 많은 경우, 제1 데이터를 이용하여 업데이트를 수행할 수 있다.
도 12은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법을 수행하는 서버(200)와 제어 유닛들을 나타내는 도면이다.
차량(100)은, 서버(200)와 통신을 수행하는 제4 제어 유닛(140)을 더 구비할 수 있다.
이 경우, 상기 제1 제어 유닛(110), 제2 제어 유닛(120), 제3 제어 유닛(130), 및 제4 제어 유닛(140)은, 상기 차량의 IVN으로 연결될 수 있다.
제4 제어 유닛(140)은, 서버(200)로부터 데이터를 수신하는 제어 유닛이고, 개인 대칭키 4를 제1 유닛과 공유한다.
상기 제1 단계에서, 상기 서버(200)는, 상기 제1 데이터와 상기 암호화 데이터를 상기 제2 제어 유닛(120)과 제4 제어 유닛(140)으로 전송한다.
상기 제2 단계에서, 상기 제2 제어 유닛(120)과 제4 제어 유닛(140)은, 상기 제1 데이터와 상기 암호화 데이터를 수신한다.
상기 제3 단계에서, 상기 제2 제어 유닛(120)은, 암호화 데이터 및 상기 서버(200)의 공개키를 기초로 상기 제1 데이터를 검증하여, 제1 검증 데이터를 생성하고, 상기 제4 제어 유닛(140)은, 암호화 데이터 및 상기 서버(200)의 공개키를 기초로 상기 제1 데이터를 검증하여, 제2 검증 데이터를 생성한다.
상기 제4 단계에서, 상기 제2 제어 유닛(120)은, 상기 제1 검증 데이터, 상기 제1 데이터, 및 상기 암호화 데이터를, 상기 차량의 IVN으로 전송하고, 상기 제4 제어 유닛(140)은, 상기 제2 검증 데이터, 상기 제1 데이터, 및 상기 암호화 데이터를, 상기 차량의 IVN으로 전송한다.
상기 제1 재검증 단계에서, 상기 제3 제어 유닛(130)은, 상기 제2 제어 유닛(120)이 전송한 제1 데이터(이하 '제2 데이터'라 함)와 암호화 데이터(이하 '제2 암호화 데이터'라 함)를 수신하고, 상기 제4 제어 유닛(140)이 전송한 제1 데이터(이하 '제3 데이터'라 함)와 암호화 데이터(이하 '제3 암호화 데이터'라 함)를 수신한다. 상기 제2 제어 유닛(120)은, 상기 제3 데이터 및 제3 암호화 데이터를 수신한다. 상기 제4 제어 유닛(140)은, 상기 제2 데이터 및 제2 암호화 데이터를 수신한다.
상기 제2 재검증 단계에서, 상기 제3 제어 유닛(130)은, 상기 제2 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제2 데이터를 검증하여, 제1 재검증 데이터를 생성하고, 상기 제3 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제3 데이터를 검증하여, 제2 재검증 데이터를 생성하고, 상기 제2 제어 유닛(120)은, 상기 제3 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제3 데이터를 검증하여, 제3 재검증 데이터를 생성하고, 상기 제4 제어 유닛(140)은, 상기 제2 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제2 데이터를 검증하여, 제4 재검증 데이터를 생성한다.
상기 제3 재검증 단계에서, 상기 제3 제어 유닛(130)은, 상기 제1 재검증 데이터 및 제2 재검증 데이터를 상기 제1 제어 유닛(110)에 전송하고, 상기 제2 제어 유닛(120)은, 상기 제3 재검증 데이터를 상기 제1 제어 유닛(110)에 전송하고, 상기 제4 제어 유닛(140)은, 상기 제4 재검증 데이터를 상기 제1 제어 유닛(110)에 전송한다.
상기 제5 단계에서, 상기 제1 제어 유닛(110)은, 상기 제1 및 2 검증 데이터와 상기 제1 내지 4 재검증 데이터에 기초하여, 상기 제2 데이터 또는 상기 제3 데이터에 대응하는 업데이트의 수행 여부를 결정한다.
도 13은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 단계 및 제2 단계를 설명하기 위한 도면이다.
제1 단계에서, 서버(200)는, 제1 데이터와 암호화 데이터를 제2 제어 유닛(120)과 제4 제어 유닛(140)으로 전송한다.
이 경우에도, 서버(200)는, 제1 데이터에 대한 1차 분할을 수행한다.
제1 데이터를 제2 제어 유닛(120) 뿐만 아니라, 제4 제어 유닛(140)도 수신하므로, 데이터의 오류 발생을 검출할 가능성이 향상될 수 있다.
제2 단계에서, 상기 제2 제어 유닛(120)과 제4 제어 유닛(140)은, 상기 제1 데이터와 상기 암호화 데이터를 수신한다.
도 14 및 도 15은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제3 단계 및 제4 단계를 설명하기 위한 도면이다.
도 15를 참조하면, 제3 단계에서, 상기 제2 제어 유닛(120)은, 제2 암호화 데이터 및 상기 서버(200)의 공개키를 기초로 상기 제2 데이터를 검증하여, 제1 검증 데이터를 생성하고, 상기 제4 제어 유닛(140)은, 제3 암호화 데이터 및 상기 서버(200)의 공개키를 기초로 상기 제3 데이터를 검증하여, 제2 검증 데이터를 생성한다.
본 발명에서 제2 데이터는, 제4 제어 유닛(140)이 존재하는 경우, 제2 제어 유닛(120)이 수신하고 전달하는 제1 데이터를 의미한다.
본 발명에서 제3 데이터는, 제4 제어 유닛(140)이 존재하는 경우, 제4 제어 유닛(140)이 수신하고 전달하는 제1 데이터를 의미한다.
제2 데이터와 제3 데이터는, 원칙적으로 제1 데이터와 동일한 데이터이지만, 서버(200)가 데이터를 전송하는 과정에서 데이터가 손실될 수 있고, 제2 제어 유닛(120)이나 제4 제어 유닛(140)이 공격 다하여 오류가 발생하는 경우 수신된 제1 데이터를 손상시킬 수 있으므로, 본 발명에서는, 제1 데이터를 수신하고 전달하는 주체에 따라 구분한다.
본 발명에서 제2 암호화 데이터는, 제4 제어 유닛(140)이 존재하는 경우, 제2 제어 유닛(120)이 수신하고 전달하는 암호화 데이터를 의미한다.
본 발명에서 제3 암호화 데이터는, 제4 제어 유닛(140)이 존재하는 경우, 제4 제어 유닛(140)이 수신하고 전달하는 암호화 데이터를 의미한다.
제2 암호화 데이터와 제3 암호화 데이터는, 원칙적으로 암호화 데이터와 동일한 데이터이지만, 서버(200)가 암호화 데이터를 전송하는 과정에서 암호화 데이터가 손실될 수 있고, 제2 제어 유닛(120)이나 제4 제어 유닛(140)이 공격 다하여 오류가 발생하는 경우 수신된 암호화 데이터를 손상시킬 수 있으므로, 본 발명에서는, 암호화 데이터를 수신하고 전달하는 주체에 따라 구분한다.
제2 제어 유닛(120)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.
제2 제어 유닛(120)과 서버(200)가 서버 난수를 공유하는 경우, 제2 제어 유닛(120)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.
제4 제어 유닛(140)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.
제4 제어 유닛(140)과 서버(200)가 서버 난수를 공유하는 경우, 제4 제어 유닛(140)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.
제2 제어 유닛(120)은, 제2 데이터에 대한 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키1로 암호화하여 제1 검증 데이터를 생성할 수 있다.
제4 제어 유닛(140)은, 제3 데이터에 대한 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키4로 암호화하여 제2 검증 데이터를 생성할 수 있다.
도 14를 참조하면, 제4 단계에서, 상기 제2 제어 유닛(120)은, 상기 제1 검증 데이터, 상기 제2 데이터, 및 상기 제2 암호화 데이터를, 상기 차량의 IVN으로 전송하고, 상기 제4 제어 유닛(140)은, 상기 제2 검증 데이터, 상기 제3 데이터, 및 상기 제3 암호화 데이터를, 상기 차량의 IVN으로 전송한다.
도 16은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제1 재검증 단계를 설명하기 위한 도면이다.
도 16을 참조하면, 제1 재검증 단계에서, 제3 제어 유닛(130)은, 제2 제어 유닛(120)이 전송한 제2 데이터와 제2 암호화 데이터를 수신한다.
제3 제어 유닛(130)은, 상기 제4 제어 유닛(140)이 전송한 제3 데이터와 제3 암호화 데이터를 수신한다.
상기 제2 제어 유닛(120)은, 상기 제3 데이터 및 제3 암호화 데이터를 수신한다.
상기 제4 제어 유닛(140)은, 상기 제2 데이터 및 제2 암호화 데이터를 수신한다.
제1 제어 유닛(110)은, 제2 데이터, 제3 데이터, 제1 검증 데이터, 및 제2 검증 데이터를 수신한다.
도 17 및 도 18은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제2 및 3 재검증 단계를 설명하기 위한 도면이다.
도 18을 참조하면, 제2 재검증 단계가 나타난다.
도 18의 (a)를 참조하면, 제2 제어 유닛(120)이 제3 데이터에 대한 검증을 수행하여, 제3 재검증 데이터를 생성하는 과정이 나타난다.
제2 제어 유닛(120)은, 상기 제3 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제3 데이터를 검증하여, 제3 재검증 데이터를 생성한다.
제2 제어 유닛(120)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.
제2 제어 유닛(120)과 서버(200)가 서버 난수를 공유하는 경우, 제2 제어 유닛(120)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.
제2 제어 유닛(120)은, 제3 데이터에 대한 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키1로 암호화하여 제3 재검증 데이터를 생성할 수 있다.
도 18의 (b)를 참조하면, 제4 제어 유닛(140)이 제2 데이터에 대한 검증을 수행하여, 제4 재검증 데이터를 생성하는 과정이 나타난다.
제4 제어 유닛(140)은, 상기 제2 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제2 데이터를 검증하여, 제4 재검증 데이터를 생성한다.
제4 제어 유닛(140)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.
제4 제어 유닛(140)과 서버(200)가 서버 난수를 공유하는 경우, 제4 제어 유닛(140)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.
제4 제어 유닛(140)은, 제2 데이터에 대한 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키4로 암호화하여 제4 재검증 데이터를 생성할 수 있다.
도 18의 (c)를 참조하면, 제3 제어 유닛(130)이 제2 및 3 데이터에 대한 검증을 수행하여, 제1 및 2 재검증 데이터를 생성하는 과정이 나타난다.
제3 제어 유닛(130)은, 제2 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제2 데이터를 검증하여, 제1 재검증 데이터를 생성한다.
제3 제어 유닛(130)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.
제3 제어 유닛(130)과 서버(200)가 서버 난수를 공유하는 경우, 제3 제어 유닛(130)은, 제2 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제2 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제2 데이터에 오류가 없다고 판단할 수 있다.
제3 제어 유닛(130)은, 제2 데이터에 대한 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키3로 암호화하여 제1 재검증 데이터를 생성할 수 있다.
제3 제어 유닛(130)은, 제3 암호화 데이터와 상기 서버(200)의 공개키를 기초로 상기 제3 데이터를 검증하여, 제2 재검증 데이터를 생성한다.
제3 제어 유닛(130)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.
제3 제어 유닛(130)과 서버(200)가 서버 난수를 공유하는 경우, 제3 제어 유닛(130)은, 제3 암호화 데이터를 서버(200)의 공개키로 복호화한 값이, 제3 데이터와 서버 난수가 결합된 값의 해시값과 동일한 경우, 제3 데이터에 오류가 없다고 판단할 수 있다.
제3 제어 유닛(130)은, 제3 데이터에 대한 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키3로 암호화하여 제2 재검증 데이터를 생성할 수 있다.
도 17을 참조하면, 제3 재검증 단계에서, 상기 제3 제어 유닛(130)은, 상기 제1 재검증 데이터 및 제2 재검증 데이터를 상기 제1 제어 유닛(110)에 전송하고, 상기 제2 제어 유닛(120)은, 상기 제3 재검증 데이터를 상기 제1 제어 유닛(110)에 전송하고, 상기 제4 제어 유닛(140)은, 상기 제4 재검증 데이터를 상기 제1 제어 유닛(110)에 전송한다.
제1 제어 유닛(110)은, 제1 내지 4 재검증 데이터를 수신한다.
도 19은 본 발명의 실시예에 따른 차량용 제어 유닛의 업데이트 방법의 제5 단계를 설명하기 위한 도면이다.
제5 단계에서, 상기 제1 제어 유닛(110)은, 상기 제1 및 2 검증 데이터와 상기 제1 내지 4 재검증 데이터에 기초하여, 상기 제2 데이터 또는 상기 제3 데이터에 대응하는 업데이트의 수행 여부를 결정한다.
제5 단계에서, 상기 제1 제어 유닛(110)은, 상기 제1 및 2 검증 데이터와 상기 제1 내지 4 재검증 데이터 각각이 나타내는 복수의 검증 결과를 판단한다.
제1 제어 유닛(110)은, 제2 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키1로 암호화한다. 이에 따라 생성된 값(이하 '제1 확인 데이터'라 함.)은, 제1 검증 데이터에 대응하는 검증 확인 데이터이다.
제1 제어 유닛(110)은, 제1 확인 데이터와 제1 검증 데이터가 동일하다고 판단되면, 제1 검증 데이터가 제2 데이터에 이상이 없다는 검증 결과를 나타낸다고 판단할 수 있다. 이는, 제2 제어 유닛(120)이 제2 데이터에 오류가 없다고 판단하였음을 나타낸다.
제1 제어 유닛(110)은, 제2 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키3로 암호화한다. 이에 따라 생성된 값(이하 '제2 확인 데이터'라 함.)은, 제1 재검증 데이터에 대응하는 검증 확인 데이터이다.
제1 제어 유닛(110)은, 제2 확인 데이터와 제1 재검증 데이터가 동일하다고 판단되면, 제1 재검증 데이터가 제2 데이터에 이상이 없다는 검증 결과를 나타낸다고 판단할 수 있다. 이는, 제3 제어 유닛(130)이 제2 데이터에 오류가 없다고 판단하였음을 나타낸다.
제1 제어 유닛(110)은, 제2 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제2 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키4로 암호화한다. 이에 따라 생성된 값(이하 '제3 확인 데이터'라 함.)은, 제4 재검증 데이터에 대응하는 검증 확인 데이터이다.
제1 제어 유닛(110)은, 제3 확인 데이터와 제4 재검증 데이터가 동일하다고 판단되면, 제4 재검증 데이터가 제2 데이터에 이상이 없다는 검증 결과를 나타낸다고 판단할 수 있다. 이는, 제4 제어 유닛(140)이 제2 데이터에 오류가 없다고 판단하였음을 나타낸다.
제1 제어 유닛(110)은, 제3 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키4로 암호화한다. 이에 따라 생성된 값(이하 '제4 확인 데이터'라 함.)은, 제2 검증 데이터에 대응하는 검증 확인 데이터이다.
제1 제어 유닛(110)은, 제4 확인 데이터와 제2 검증 데이터가 동일하다고 판단되면, 제2 검증 데이터가 제3 데이터에 이상이 없다는 검증 결과를 나타낸다고 판단할 수 있다. 이는, 제4 제어 유닛(140)이 제3 데이터에 오류가 없다고 판단하였음을 나타낸다.
제1 제어 유닛(110)은, 제3 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키3로 암호화한다. 이에 따라 생성된 값(이하 '제5 확인 데이터'라 함.)은, 제2 재검증 데이터에 대응하는 검증 확인 데이터이다.
제1 제어 유닛(110)은, 제5 확인 데이터와 제2 재검증 데이터가 동일하다고 판단되면, 제2 재검증 데이터가 제3 데이터에 이상이 없다는 검증 결과를 나타낸다고 판단할 수 있다. 이는, 제3 제어 유닛(130)이 제3 데이터에 오류가 없다고 판단하였음을 나타낸다.
제1 제어 유닛(110)은, 제3 데이터에 오류가 없다고 가정한 가상의 검증 결과, 유닛 난수, 제3 데이터의 해시값을 결합하고, 결합된 값을 개인 대칭키1로 암호화한다. 이에 따라 생성된 값(이하 '제6 확인 데이터'라 함.)은, 제3 재검증 데이터에 대응하는 검증 확인 데이터이다.
제1 제어 유닛(110)은, 제6 확인 데이터와 제3 재검증 데이터가 동일하다고 판단되면, 제3 재검증 데이터가 제3 데이터에 이상이 없다는 검증 결과를 나타낸다고 판단할 수 있다. 이는, 제2 제어 유닛(120)이 제3 데이터에 오류가 없다고 판단하였음을 나타낸다.
제1 제어 유닛(110)은, 제2 데이터와 제3 데이터가 동일한지 판단한다.
제1 제어 유닛(110)은, 상기 제2 데이터와 제3 데이터가 동일하다고 판단되는 경우, 상기 복수의 검증 결과 중 상기 제2 데이터나 제3 데이터에 오류가 없다는 검증 결과가, 이외의 검증 결과보다 많은지 판단한다. 제1 제어 유닛(110)은, 상기 제2 데이터나 제3 데이터에 오류가 없다는 검증 결과가, 이외의 검증 결과보다 많다고 판단되면, 상기 제2 데이터나 제3 데이터를 사용하여 업데이트를 수행한다.
제1 제어 유닛(110)은, 상기 제2 데이터와 제3 데이터가 동일하지 않다고 판단되는 경우, 상기 제2 데이터와 제3 데이터 중, 오류가 없다고 판단된 검증 결과가 더 많은 데이터를 선택하고, 선택된 데이터를 사용하여 업데이트를 수행한다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 상기 컴퓨터는 프로세서 또는 제어부를 포함할 수도 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
100 : 차량
200 : 서버
110 : 제1 제어 유닛
120 : 제2 제어 유닛

Claims (20)

  1. 서버가,
    차량에 구비된 제1 제어 유닛의 소프트웨어를 업데이트하기 위한 데이터(이하 '제1 데이터'라 함)와, 상기 제1 데이터를 상기 서버의 개인키(private key)로 암호화하여 생성되는 데이터(이하 '암호화 데이터'라 함)를,
    상기 차량에 구비된 제2 제어 유닛으로 전송하는 제1 단계;
    상기 제2 제어 유닛이, 상기 제1 데이터 및 상기 암호화 데이터를 수신하는 제2 단계;
    상기 제2 제어 유닛이,
    상기 암호화 데이터 및 상기 서버의 공개키(public key)에 기초하여 상기 제1 데이터를 검증하고,
    상기 제1 데이터에 대한 검증 결과를 나타내는 검증 데이터(verification data)를 생성하는 제3 단계;
    상기 제2 제어 유닛이, 상기 검증 데이터와 상기 제1 데이터를, 상기 제1 제어 유닛에 전송하는 제4 단계; 및
    상기 제1 제어 유닛이, 상기 검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되면, 상기 제1 데이터를 사용하여 업데이트를 수행하는 제5 단계;
    를 포함하는 차량용 제어 유닛의 업데이트 방법.
  2. 제1항에 있어서,
    상기 제1 제어 유닛은,
    HSM(Hardware Security Module)를 구비하지 않거나, 비대칭 암호화 방식(asymmetric cryptosystem)의 검증을 수행할 수 없는 HSM만을 구비하여, 비대칭 암호화 방식의 검증을 수행할 수 없고,
    상기 제2 제어 유닛은,
    비대칭 암호화 방식의 검증을 수행할 수 있는 HSM을 구비하여, 비대칭 암호화 방식의 검증을 수행할 수 있는 차량용 제어 유닛의 업데이트 방법.
  3. 제1항에 있어서,
    상기 서버는, 주기적으로 갱신되는 서버 난수(Server Nonce)를, 상기 제2 제어 유닛과 공유하고,
    상기 제1 단계에서,
    상기 서버는, 상기 제1 데이터를 상기 서버 난수와 상기 서버의 개인키로 암호화하여, 상기 암호화 데이터를 생성하고,
    상기 제3 단계에서,
    상기 제2 제어 유닛은, 상기 암호화 데이터, 상기 서버의 공개키, 및 상기 서버 난수에 기초하여, 상기 제1 데이터를 검증하는 차량용 제어 유닛의 업데이트 방법.
  4. 제1항에 있어서,
    상기 제1 제어 유닛과 제2 제어 유닛은, IVN(In-Vehicle Network)로 연결되고,
    상기 제1 단계에서,
    상기 서버는,
    상기 제1 데이터의 크기, 상기 제1 제어 유닛의 메모리 크기, 상기 제2 제어 유닛의 메모리 크기, 및 상기 IVN의 데이터 프레임(data frame)의 최대 크기 중 적어도 하나에 기초하여, 상기 제1 데이터에 대한 분할 사이즈(fragmentation size)를 결정하고,
    상기 분할 사이즈에 따라 상기 제1 데이터를 분할(fragment)하여, N개의 1차 분할 데이터를 생성하고,
    상기 N개의 1차 분할 데이터를, 상기 제2 제어 유닛으로 전송하는 차량용 제어 유닛의 업데이트 방법.
  5. 제4항에 있어서,
    상기 제2 단계에서,
    상기 제2 제어 유닛은, 상기 N개의 1차 분할 데이터를 수신하고,
    상기 제3 단계에서,
    상기 제2 제어 유닛은, 상기 N개의 1차 분할 데이터 각각에 대하여 검증을 수행하여, N개의 검증 데이터를 생성하고,
    상기 제4 단계에서,
    상기 제2 제어 유닛은,
    상기 IVN의 데이터 프레임의 최대 크기에 기초하여, 상기 N개의 1차 분할 데이터에 대한 2차 분할 사이즈를 결정하고,
    상기 N개의 1차 분할 데이터 각각을 상기 2차 분할 사이즈에 따라 분할하여, 총 N*M 개의 2차 분할 데이터를 생성하고,
    상기 N*M 개의 2차 분할 데이터, 및 상기 N개의 검증 데이터를 상기 제1 제어 유닛에 전송하는 차량용 제어 유닛의 업데이트 방법.
  6. 제5항에 있어서,
    상기 IVN은, CAN(Controller Area Network)인, 차량용 제어 유닛의 업데이트 방법.
  7. 제1항에 있어서,
    상기 제5 단계에서,
    상기 제1 제어 유닛은,
    상기 검증 데이터에 기초하여, 상기 제1 데이터에 오류가 있는지 판단하고,
    상기 제1 데이터에 오류가 없다고 판단되면, 상기 제1 데이터에 대응하는 업데이트를 수행하고,
    상기 제1 데이터에 오류가 있다고 판단되면, 상기 제1 데이터에 대응하는 업데이트를 중단하는 차량용 제어 유닛의 업데이트 방법.
  8. 제1항에 있어서,
    상기 제1 제어 유닛은,
    비대칭 암호화 방식(asymmetric cryptosystem)의 검증을 수행할 수 없고, 대칭 암호화 방식(symmetric cryptosystem)의 검증을 수행할 수 있고,
    상기 제1 제어 유닛과 제2 제어 유닛은, 각각 제1 대칭키(symmetric key)를 구비하고,
    상기 제3 단계에서,
    상기 제2 제어 유닛은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를 상기 제1 대칭키로 암호화하여, 상기 검증 데이터를 생성하고,
    상기 제5 단계에서,
    상기 제1 제어 유닛은,
    상기 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 상기 제1 데이터를 상기 제1 대칭키로 암호화하여, 검증 확인 데이터(verification check data)를 생성하고,
    상기 검증 확인 데이터와 상기 검증 데이터가 동일하면, 상기 제1 데이터에 오류가 없다고 판단하고,
    상기 검증 확인 데이터와 상기 검증 데이터가 상이하면, 상기 제1 데이터에 오류가 있다고 판단하는 차량용 제어 유닛의 업데이트 방법.
  9. 제8항에 있어서,
    상기 제1 제어 유닛과 제2 제어 유닛은,
    주기적으로 갱신되는 유닛 난수(Unit Nonce)를 공유하고,
    상기 제3 단계에서,
    상기 제2 제어 유닛은,
    상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제1 대칭키로 암호화하여, 상기 검증 데이터를 생성하고,
    상기 제5 단계에서,
    상기 제1 제어 유닛은,
    상기 가상의 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제1 대칭키로 암호화하여 상기 검증 확인 데이터를 생성하는 차량용 제어 유닛의 업데이트 방법.
  10. 제1항에 있어서,
    상기 차량은, 제3 제어 유닛를 더 구비하고,
    상기 제1 제어 유닛, 제2 제어 유닛, 및 제3 제어 유닛은, 상기 차량의 IVN으로 연결되고,
    상기 제4 단계에서,
    상기 제2 제어 유닛은, 상기 제1 데이터와 상기 암호화 데이터를, 상기 제3 제어 유닛에 전송하고,
    상기 제5 단계 이전에,
    상기 차량에 구비된 제3 제어 유닛이, 상기 제2 제어 유닛이 전송하는 상기 제1 데이터와 상기 암호화 데이터를 수신하는 제1 재검증 단계;
    상기 제3 제어 유닛이, 상기 암호화 데이터 및 상기 서버의 공개키를 기초로 상기 제1 데이터를 검증하여, 재검증 데이터를 생성하는 제2 재검증 단계; 및
    상기 제3 제어 유닛이, 상기 재검증 데이터를, 상기 제1 제어 유닛에 전송하는 제3 재검증 단계; 를 더 포함하고,
    상기 제5 단계에서,
    상기 제1 제어 유닛은,
    상기 재검증 데이터와 상기 검증 데이터에 기초하여, 상기 업데이트의 수행 여부를 결정하는 차량용 제어 유닛의 업데이트 방법.
  11. 제10항에 있어서,
    상기 제5 단계에서,
    상기 제1 제어 유닛은,
    상기 검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되고, 상기 재검증 데이터에 기초하여 상기 제1 데이터에 오류가 없다고 판단되면, 상기 업데이트를 수행하고,
    상기 검증 데이터 및 상기 재검증 데이터 중 적어도 하나에 기초하여, 상기 제1 데이터에 오류가 있다고 판단되면, 상기 업데이트를 중단하는 차량용 제어 유닛의 업데이트 방법.
  12. 제10항에 있어서,
    상기 제1 제어 유닛과 제2 제어 유닛은, 제1 대칭키를 공유하고,
    상기 제1 제어 유닛과 제3 제어 유닛은, 제2 대칭키를 공유하고,
    상기 제3 단계에서,
    상기 제2 제어 유닛은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를 상기 제1 대칭키로 암호화하여, 상기 검증 데이터를 생성하고,
    상기 제2 재검증 단계에서,
    상기 제3 제어 유닛은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를 상기 제2 대칭키로 암호화하여, 상기 재검증 데이터를 생성하고
    상기 제5 단계에서,
    상기 제1 제어 유닛은,
    상기 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 상기 제1 데이터를, 상기 제1 대칭키로 암호화하여 제1 검증 확인 데이터를 생성하고,
    상기 가상의 검증 결과와 상기 제1 데이터를, 상기 제2 대칭키로 암호화하여 제2 검증 확인 데이터를 생성하고,
    상기 제1 검증 확인 데이터와 상기 검증 데이터가 동일하고, 상기 제2 검증 확인 데이터와 상기 재검증 데이터가 동일하다고 판단되면, 상기 제1 데이터에 대응하는 업데이트를 수행하고,
    상기 제1 검증 확인 데이터와 상기 검증 데이터가 상이하거나, 상기 제2 검증 확인 데이터와 상기 재검증 데이터가 상이하다고 판단되면, 상기 제1 데이터에 대응하는 업데이트를 중단하는 차량용 제어 유닛의 업데이트 방법.
  13. 제12항에 있어서,
    상기 제1 제어 유닛, 제2 제어 유닛, 및 제3 제어 유닛은,
    주기적으로 갱신되는 유닛 난수(Unit Nonce)를 공유하고,
    상기 제3 단계에서,
    상기 제2 제어 유닛은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를 상기 유닛 난수와 상기 제1 대칭키로 암호화하여, 상기 검증 데이터를 생성하고,
    상기 제2 재검증 단계에서,
    상기 제3 제어 유닛은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제2 대칭키로 암호화하여, 상기 재검증 데이터를 생성하고,
    상기 제5 단계에서,
    상기 제1 제어 유닛은,
    상기 가상의 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제1 대칭키로 암호화하여 상기 제1 검증 확인 데이터를 생성하고,
    상기 가상의 검증 결과와 상기 제1 데이터를, 상기 유닛 난수와 상기 제2 대칭키로 암호화하여 상기 제2 검증 확인 데이터를 생성하는 차량용 제어 유닛의 업데이트 방법.
  14. 제10항에 있어서,
    상기 제3 제어 유닛은, 복수 개이고,
    상기 제1 재검증 단계에서,
    상기 복수의 제3 제어 유닛은, 각각 상기 제2 제어 유닛이 전송하는 상기 제1 데이터 및 상기 암호화 데이터를 수신하고,
    상기 제2 재검증 단계에서,
    상기 복수의 제3 제어 유닛 각각은, 상기 암호화 데이터 및 상기 서버의 공개키를 기초로 상기 제1 데이터를 검증하여, 재검증 데이터를 생성하고,
    상기 제3 재검증 단계에서,
    상기 복수의 제3 제어 유닛은, 각각 상기 재검증 데이터를 전송하고,
    상기 제5 단계에서,
    상기 제1 제어 유닛은,
    상기 복수의 제3 제어 유닛 각각이 전송하는 복수의 재검증 데이터를 수신하고,
    상기 검증 데이터 및 상기 복수의 재검증 데이터 각각이 나타내는 복수의 검증 결과를 판단하고,
    상기 복수의 검증 결과 중 상기 제1 데이터에 오류가 없다는 검증 결과가 이외의 검증 결과보다 많거나, 상기 제1 데이터에 오류가 없다는 검증 결과의 수가 기설정된 기준값보다 크다고 판단되면, 상기 업데이트를 수행하는 차량용 제어 유닛의 업데이트 방법.
  15. 제14항에 있어서,
    상기 제2 제어 유닛과 복수의 제3 제어 유닛은, 각각 자신의 개인 대칭키를 하나씩 구비하고,
    상기 제1 제어 유닛은, 상기 복수의 개인 대칭키를 모두 구비하고,
    상기 제3 단계에서,
    상기 제2 제어 유닛은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를, 자신의 개인 대칭키로 암호화하여, 상기 검증 데이터를 생성하고,
    상기 제2 재검증 단계에서,
    상기 복수의 제3 제어 유닛 각각은, 상기 제1 데이터에 대한 검증 결과와 상기 제1 데이터를, 자신의 개인 대칭키로 암호화하여, 상기 재검증 데이터를 생성하고,
    상기 제5 단계에서,
    상기 제1 제어 유닛은,
    상기 제1 데이터에 오류가 없다고 가정된 가상의 검증 결과와 상기 제1 데이터를, 상기 복수의 개인 대칭키로 암호화하여, 상기 검증 데이터 및 복수의 재검증 데이터 각각에 대응하는 복수의 검증 확인 데이터를 생성하고,
    상기 복수의 검증 확인 데이터 중 상기 검증 데이터에 대응하는 것과, 상기 검증 데이터가 동일한 경우, 상기 검증 데이터가 상기 제1 데이터에 오류가 없다는 검증 결과를 나타낸다고 판단하고,
    상기 복수의 검증 확인 데이터와 상기 복수의 재검증 데이터를, 상호 대응하는 데이터끼리 비교하여, 대응하는 검증 확인 데이터와 동일한 재검증 데이터는, 상기 제1 데이터에 오류가 없다는 검증 결과를 나타낸다고 판단하는 차량용 제어 유닛의 업데이트 방법.
  16. 제10항에 있어서,
    상기 차량은, 상기 서버와 통신을 수행하는 제4 제어 유닛을 더 구비하고,
    상기 제1 제어 유닛, 제2 제어 유닛, 제3 제어 유닛, 및 제4 제어 유닛은, 상기 차량의 IVN으로 연결되고,
    상기 제1 단계에서, 상기 서버는, 상기 제1 데이터와 상기 암호화 데이터를 상기 제2 제어 유닛과 제4 제어 유닛으로 전송하고,
    상기 제2 단계에서, 상기 제2 제어 유닛과 제4 제어 유닛은, 상기 제1 데이터와 상기 암호화 데이터를 수신하고,
    상기 제3 단계에서,
    상기 제2 제어 유닛은, 암호화 데이터 및 상기 서버의 공개키를 기초로 상기 제1 데이터를 검증하여, 제1 검증 데이터를 생성하고,
    상기 제4 제어 유닛은, 암호화 데이터 및 상기 서버의 공개키를 기초로 상기 제1 데이터를 검증하여, 제2 검증 데이터를 생성하고,
    상기 제4 단계에서,
    상기 제2 제어 유닛은, 상기 제1 검증 데이터, 상기 제1 데이터, 및 상기 암호화 데이터를, 상기 차량의 IVN으로 전송하고,
    상기 제4 제어 유닛은, 상기 제2 검증 데이터, 상기 제1 데이터, 및 상기 암호화 데이터를, 상기 차량의 IVN으로 전송하고,
    상기 제1 재검증 단계에서,
    상기 제3 제어 유닛은,
    상기 제2 제어 유닛이 전송한 제1 데이터(이하 '제2 데이터'라 함)와 암호화 데이터(이하 '제2 암호화 데이터'라 함)를 수신하고,
    상기 제4 제어 유닛이 전송한 제1 데이터(이하 '제3 데이터'라 함)와 암호화 데이터(이하 '제3 암호화 데이터'라 함)를 수신하고,
    상기 제2 제어 유닛은, 상기 제3 데이터 및 제3 암호화 데이터를 수신하고,
    상기 제4 제어 유닛은, 상기 제2 데이터 및 제2 암호화 데이터를 수신하고,
    상기 제2 재검증 단계에서,
    상기 제3 제어 유닛은,
    상기 제2 암호화 데이터와 상기 서버의 공개키를 기초로 상기 제2 데이터를 검증하여, 제1 재검증 데이터를 생성하고,
    상기 제3 암호화 데이터와 상기 서버의 공개키를 기초로 상기 제3 데이터를 검증하여, 제2 재검증 데이터를 생성하고,
    상기 제2 제어 유닛은, 상기 제3 암호화 데이터와 상기 서버의 공개키를 기초로 상기 제3 데이터를 검증하여, 제3 재검증 데이터를 생성하고,
    상기 제4 제어 유닛은, 상기 제2 암호화 데이터와 상기 서버의 공개키를 기초로 상기 제2 데이터를 검증하여, 제4 재검증 데이터를 생성하고,
    상기 제3 재검증 단계에서,
    상기 제3 제어 유닛은, 상기 제1 재검증 데이터 및 제2 재검증 데이터를 상기 제1 제어 유닛에 전송하고,
    상기 제2 제어 유닛은, 상기 제3 재검증 데이터를 상기 제1 제어 유닛에 전송하고,
    상기 제4 제어 유닛은, 상기 제4 재검증 데이터를 상기 제1 제어 유닛에 전송하고,
    상기 제5 단계에서,
    상기 제1 제어 유닛은,
    상기 제1 및 2 검증 데이터와 상기 제1 내지 4 재검증 데이터에 기초하여,
    상기 제2 데이터 또는 상기 제3 데이터에 대응하는 업데이트의 수행 여부를 결정하는 차량용 제어 유닛의 업데이트 방법.
  17. 제16항에 있어서,
    상기 제5 단계에서,
    상기 제1 제어 유닛은,
    상기 제1 및 2 검증 데이터와 상기 제1 내지 4 재검증 데이터 각각이 나타내는 복수의 검증 결과를 판단하고,
    상기 제2 데이터와 제3 데이터가 동일한지 판단하고,
    상기 제2 데이터와 제3 데이터가 동일하다고 판단되는 경우, 상기 복수의 검증 결과 중 상기 제2 데이터나 제3 데이터에 오류가 없다는 검증 결과가, 이외의 검증 결과보다 많다고 판단되면, 상기 제2 데이터나 제3 데이터를 사용하여 업데이트를 수행하고,
    상기 제2 데이터와 제3 데이터가 동일하지 않다고 판단되는 경우, 상기 제2 데이터와 제3 데이터 중, 오류가 없다고 판단된 검증 결과가 더 많은 데이터를 선택하고, 선택된 데이터를 사용하여 업데이트를 수행하는 차량용 제어 유닛의 업데이트 방법.
  18. 제1항에 있어서,
    상기 제1 제어 유닛, 및 제2 제어 유닛을 포함하는 차량.
  19. 제10항에 있어서,
    상기 제1 제어 유닛, 제2 제어 유닛, 및 제3 제어 유닛을 포함하는 차량.
  20. 제16항에 있어서,
    상기 제1 제어 유닛, 제2 제어 유닛, 제3 제어 유닛, 제4 제어 유닛을 포함하는 차량.


KR1020170157805A 2017-11-24 2017-11-24 차량용 제어 유닛의 업데이트 방법 및 차량 KR102025808B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170157805A KR102025808B1 (ko) 2017-11-24 2017-11-24 차량용 제어 유닛의 업데이트 방법 및 차량

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170157805A KR102025808B1 (ko) 2017-11-24 2017-11-24 차량용 제어 유닛의 업데이트 방법 및 차량

Publications (2)

Publication Number Publication Date
KR20190060032A true KR20190060032A (ko) 2019-06-03
KR102025808B1 KR102025808B1 (ko) 2019-09-26

Family

ID=66849105

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170157805A KR102025808B1 (ko) 2017-11-24 2017-11-24 차량용 제어 유닛의 업데이트 방법 및 차량

Country Status (1)

Country Link
KR (1) KR102025808B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210042575A (ko) * 2019-10-10 2021-04-20 박재완 차량의 소프트웨어 업데이트 장치 및 시스템 및 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120104193A (ko) * 2009-09-30 2012-09-20 차이나 아이더블유엔콤 씨오., 엘티디 온라인 제 3 신뢰 기관을 도입함으로써 엔티티 공개키 획득, 인증서 검증 및 인증을 수행하는 방법 및 시스템
JP2017046038A (ja) * 2015-08-24 2017-03-02 Kddi株式会社 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム
JP2017120984A (ja) * 2015-12-28 2017-07-06 Kddi株式会社 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム
JP2017199183A (ja) * 2016-04-27 2017-11-02 日立オートモティブシステムズ株式会社 車両用電子制御装置、プログラム更新方法、サーバ装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120104193A (ko) * 2009-09-30 2012-09-20 차이나 아이더블유엔콤 씨오., 엘티디 온라인 제 3 신뢰 기관을 도입함으로써 엔티티 공개키 획득, 인증서 검증 및 인증을 수행하는 방법 및 시스템
JP2017046038A (ja) * 2015-08-24 2017-03-02 Kddi株式会社 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム
JP2017120984A (ja) * 2015-12-28 2017-07-06 Kddi株式会社 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム
JP2017199183A (ja) * 2016-04-27 2017-11-02 日立オートモティブシステムズ株式会社 車両用電子制御装置、プログラム更新方法、サーバ装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A. Menezes 외 2명, Handbook of Applied Cryptography, Chapter.10, CRC Press (1996.)* *
A. Menezes 외 2명, Handbook of Applied Cryptography, Chapter.12, CRC Press (1996.)* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210042575A (ko) * 2019-10-10 2021-04-20 박재완 차량의 소프트웨어 업데이트 장치 및 시스템 및 방법

Also Published As

Publication number Publication date
KR102025808B1 (ko) 2019-09-26

Similar Documents

Publication Publication Date Title
EP3690643B1 (en) Vehicle-mounted device upgrading method and related device
EP3780481B1 (en) Method for upgrading vehicle-mounted device, and related device
EP3883212B1 (en) Device upgrade method and related device
US10419220B2 (en) Management device, key generating device, vehicle, maintenance tool, management system, management method, and computer program
US11212087B2 (en) Management system, key generation device, in-vehicle computer, management method, and computer program
JP5818392B2 (ja) 無線通信装置
CN103166759B (zh) 使用诊断链路连接器(dlc)和onstar系统的用于安全固件下载的方法和装置
US11265170B2 (en) Vehicle information collection system, vehicle-mounted computer, vehicle information collection device, vehicle information collection method, and computer program
EP3926500B1 (en) Device upgrade method and related device
CN111684760A (zh) 用于管理数字证书的密码方法和系统
WO2015080108A1 (ja) プログラム更新システム及びプログラム更新方法
WO2014196181A1 (ja) データ認証装置、及びデータ認証方法
Munir et al. Design and analysis of secure and dependable automotive CPS: A steer-by-wire case study
JP5772692B2 (ja) 車載制御装置の認証システム及び車載制御装置の認証方法
US20180212780A1 (en) Control interface for autonomous vehicle
WO2021217263A1 (en) Method and system for establishing trust for a cybersecurity posture of a v2x entity
CN115495395A (zh) 用于保护计算系统存储器的方法和系统以及存储介质
KR20200020645A (ko) 전자식 제어기의 펌웨어 업데이트 방법, 시스템 및 프로그램
KR20190060032A (ko) 차량용 제어 유닛의 업데이트 방법 및 차량
Giri et al. An integrated safe and secure approach for authentication and secret key establishment in automotive Cyber-Physical systems
Kathiresh et al. Vehicle diagnostics over internet protocol and over-the-air updates
US11818280B2 (en) Systems and methods for centrally managing and routing multiple credentials
WO2023074072A1 (ja) データ保存システム、移動体、及びデータ保存プログラム
WO2023088548A1 (en) Method and system for carrying out measurement campaigns by means of motor vehicles using a centrally-controlled campaign-specific end-to-end encryption of the measurement data

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