KR20230079487A - 차량 내 전자 제어 유닛들 간의 보안 통신 - Google Patents

차량 내 전자 제어 유닛들 간의 보안 통신 Download PDF

Info

Publication number
KR20230079487A
KR20230079487A KR1020237017622A KR20237017622A KR20230079487A KR 20230079487 A KR20230079487 A KR 20230079487A KR 1020237017622 A KR1020237017622 A KR 1020237017622A KR 20237017622 A KR20237017622 A KR 20237017622A KR 20230079487 A KR20230079487 A KR 20230079487A
Authority
KR
South Korea
Prior art keywords
ecu
vehicle
ecus
security
processors
Prior art date
Application number
KR1020237017622A
Other languages
English (en)
Other versions
KR102658765B1 (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 KR1020247012420A priority Critical patent/KR20240055869A/ko
Publication of KR20230079487A publication Critical patent/KR20230079487A/ko
Application granted granted Critical
Publication of KR102658765B1 publication Critical patent/KR102658765B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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/083Key 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 central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • 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)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Stored Programmes (AREA)
  • Lock And Its Accessories (AREA)

Abstract

본 개시의 측면은 차량에서 전자 제어 유닛(ECU) 사이의 보안 통신을 가능하게 하는 시스템, 방법 및 장치를 다룬다. 시스템은 차량의 복수의 ECU로부터의 제 1 및 제 2 ECU를 포함할 수 있다. 제 1 ECU는 제 3 ECU와 교환된 메시지를 인증하기 위한 인증 데이터를 제 2 ECU에 공급하는 동작과 제 3 ECU가 제 2 ECU와 보안적으로 메세지를 교환할 수 있도록 보안 키 세트를 제 3 ECU에 공급하는 동작을 포함하는 동작을 수행함으로써 복수의 ECU 간의 보안 통신을 가능하게 한다. 제 2 ECU는 제 3 ECU에 제공된 보안 키 세트 중 하나의 보안 키를 사용하여 암호화 서명된 보안 메시지를 제 3 ECU로부터 수신하고, 제 2 ECU는 인증 데이터와 인증 신호를 비교하여 보안 메시지를 인증한다.

Description

차량 내 전자 제어 유닛들 간의 보안 통신{SECURE COMMUNICATION BETWEEN IN-VEHICLE ELECTRONIC CONTROL UNITS}
우선권 주장
본원은, 2018년 1월 29일자로 출원된 미국 가출원 제 62/623,304 호 "트러스트 존 내의 자동차 전자 제어 유닛의 자동화된 안전한 포함" 및 2018년 7월 5일자로 출원된 미국 출원 제 16/027,681 호 "차량 내 전자 제어 유닛들 간의 보안 통신"의 우선권을 주장하며, 상기 출원들은 본원에 참조로서 통합된다.
본원에 개시된 대상은 전자 제어 유닛(ECU)을 포함하는 차량 컴퓨터 시스템에서의 보안에 관한 것이다. 예시적인 실시예는 ECU들 간의 통신과 같이 차량 컴퓨터 시스템에서의 보안 통신을 위한 기법을 다룬다.
자동차, 보트, 기차, 및 비행기와 같은 차량은 전형적으로 개별 구성요소 제조 조립 라인에서 조립된다. 이러한 구성요소는 여러 전자 제어 유닛(ECU)으로 구성된 컴퓨터 시스템을 포함할 수 있다. ECU는 각각 차량에서 하나 이상의 전기 시스템 또는 하위 시스템을 제어하는 임베디드 시스템일 수 있다. ECU의 수의 증가는 결국 차량 컴퓨터 시스템의 보안의 취약성을 증가시킨다. 이러한 취약성은 악성 또는 악의적인 제어로 이어지는 사이버 위협을 가능하게 할 수 있다. 현재 모든 ECU가 보안적으로 그리고 자동화되어 연결되는 방식이 손상될 수 있다.
첨부된 도면 중 여러 도면은 본 주제의 예시적인 실시 예를 예시할 뿐이며 그 범위를 제한하는 것으로 간주될 수 없다.
도 1은 일부 실시예에 따라, 트러스트존 내로의 차량 전자 제어 유닛(ECU)의 보안 포함을 자동화하기 위한 아키텍쳐를 갖는 보안 시스템을 도시하는 아키텍쳐 다이어그램이다.
도 2는 일부 대안적인 실시 예에 따라, 트러스트 존 내로의 차량 ECU의 자동화된 보안 포함을 위한 아키텍처를 갖는 보안 시스템을 나타내는 아키텍처 다이어그램이다.
도 3은 일부 대안적인 실시 예에 따라 트러스트 존 내로의 차량 ECU의 자동화된 보안 포함을 위한 아키텍쳐를 갖는 보안 시스템을 나타내는 아키텍처 다이어그램이다.
도 4는 일부 실시 예에 따라, 차량의 복수의 ECU 간의 보안 통신을 가능하게 하는 방법을 수행할 때 보안 시스템의 구성요소들 간의 상호 작용을 나타내는 상호 작용 다이어그램이다.
도 5는 일부 실시 예에 따라 차량의 복수의 ECU에 대한 펌웨어를 보안적으로 구성하기 위한 방법을 수행할 때 보안 시스템의 구성요소들 간의 상호 작용을 나타내는 상호 작용 다이어그램이다.
도 6은 일부 실시 예에 따라 교체 ECU에 대한 펌웨어를 보안적으로 구성하기 위한 방법을 수행할 때 보안 시스템의 구성요소 간의 상호 작용을 나타내는 상호 작용 다이어그램이다.
도 7은 일부 대안적인 실시 예에 따라 교체 ECU에 대한 펌웨어를 보안적으로 구성하기 위한 방법을 수행할 때 보안 시스템의 구성요소들 간의 상호 작용을 나타내는 상호 작용 다이어그램이다.
도 8은 일부 실시 예에 따른 ECU의 기능적 구성요소를 예시하는 시스템 다이어그램이다.
도 9는 일부 실시 예들에 따라 차량의 ECU들 사이에서 메시지를 보안적으로 교환하기 위한 방법을 수행할 때 보안 시스템의 구성요소들 사이의 상호 작용을 예시하는 개념도이다.
도 10 및 도 11은 일부 실시 예에 따라 메시지를 보안적으로 교환하기 위한 방법을 수행할 때 차량의 복수의 ECU 사이의 상호 작용을 예시하는 상호 작용 다이어그램이다.
도 12는 일부 실시 예에 따른 보안 시스템에 의해 제공되는 그래픽 인터페이스의 양상을 예시하는 인터페이스 다이어그램이다.
도 13은 기계가 본원에 논의된 하나 이상의 방법들을 수행하게끔 하기 위한 한 세트의 명령이 실행될 수 있는 컴퓨터 시스템의 예시적인 형태인, 기계의 도해이다.
이제 주제를 수행하기 위한 특정 예시적인 실시 예에 대한 참조가 상세하게 이루어질 것이다. 이러한 특정 실시 예의 예는 첨부된 도면에 예시되어 있으며, 특정 세부 사항은 주제에 대해 철저한 이해를 제공하기 위해 다음 설명에 명시되어 있다. 이들 예시는 청구 범위의 범위를 예시된 실시 예로 제한하려는 것이 아님을 이해할 것이다. 반대로, 이들은 본 개시의 범위 내에 포함될 수 있는 그러한 대안, 수정 및 등가물을 포함하도록 의도된다.
본 발명의 측면은 전자 제어 유닛(ECU)을 포함하는 복수의 구성요소 사이에서 차량 내의 보안 통신을 가능하게 하는 시스템을 개발하기 위한 보안 아키텍쳐를 포함한다. 보안 아키텍처는 보안 FOTA(Firmware Over-The-Air) 업데이트, 보안 MOTA(Map Over-The-Air) 업데이트, ECU 간의 보안 통신, 보안 차량 대 차량 및 차량 대 인프라(총칭 "V2X") 통신, 및 합법적인 ECU 교체를 가능하게 한다.
차량 조립 공정 동안, 차량의 ECU의 세부사항은 공지되거나 공지되지 않을 수 있다. 예를 들어, ECU의 유형(예를 들어, 게이트웨이 제어 유닛(GCU), 도어 제어 유닛(DCU), 텔레매틱스 제어 유닛(TCU) 등)만이 공지될 수 있다. 또 다른 시나리오에서, 차량에 들어가는 정확한 ECU가 공지될 수 있다. 그러나 본원에 기재된 보안 아키텍쳐는 OEM(original equipment manufacturer)이 배치시에 또는 배치 후에 보안될 필요가 있는 네트워크의 구성요소의 세부사항을 정확하게 인지하는 것을 요구하지 않는다. 이러한 방식으로 보안 아키텍처는 ECU에 대한 사전 세부 지식이 있든 없든 ECU를 보호할 수 있다. ECU들이 메인 ECU(예를 들어, 센트럴 게이트웨이)에 연결될 경우, 식별될 수 있으며 이러한 식별 정보는 이들을 자동화 방식으로 신뢰되고 보안된 네트워크로 이동시키는데 사용될 수 있다.
본 공개의 추가적인 측면은, 차량의 ECU들 간의 보안 통신을 가능하게 하기 위한 기법(예를 들어, 시스템, 방법 또는 장치) 다룬다. 시스템은 적어도 하나의 제 1 ECU 및 하나의 제 2 ECU를 차량에 포함할 수 있다. 제 1 ECU는 복수의 ECU를 통신적으로 연결하여 ECU들 간의 보안 통신을 가능하게 한다. ECU를 통신적으로 연결함에 있어서, 제 1 ECU는 제 3 ECU와 교환된 메시지를 인증하기 위한 인증 데이터를 제 2 ECU에 제공할 수 있고, 제 1 ECU는 제 3 ECU가 제 2 ECU와 메시지를 교환할 수 있게 하는 보안 키들의 세트를 제 3 ECU에 제공할 수 있다. 제 2 ECU는 제 3 ECU에 제공된 보안 키들의 세트 중 하나의 보안 키를 사용하여 암호화 서명된 보안 메시지를 제 3 ECU로부터 수신할 수 있다. 제 2 ECU는 인증 데이터와 인증 신호를 비교하여 보안 메시지를 인증할 수 있다.
예를 들어, 인증 데이터는 제 3 ECU가 제 2 ECU로 전송할 수 있는 메시지 수를 제한하는 최대 메시지 수를 포함할 수 있고, 인증 신호는 제 3 ECU에 의해 제 2 ECU로 전송되는 메시지 수에 대응하는 메시지 카운터를 포함할 수 있다. 이 예에서, 제 3 ECU로부터 메시지를 수신하면, 제 2 ECU는 메시지 카운터를 증분시키고 메시지 카운터를 최대 메시지 수와 비교할 수 있다. 메시지 카운터가 최대 메시지 수보다 작거나 같으면 제 2 ECU가 제 3 ECU으로부터의 메시지를 성공적으로 인증한다. 메시지 카운터가 최대 메시지 수보다 크면 제 2 ECU는 제 3 ECU로부터 수신한 메시지를 성공적으로 인증할 수 없다.
예를 들어, 인증 데이터는 제 3 ECU로부터 메시지를 암호화 서명하는데 사용되는 보안 키의 만료 시간을 포함할 수 있으며, 인증 신호는 클럭 신호를 포함할 수 있다. 이 예에서 제 3 ECU로부터 메시지를 수신하면 제 2 ECU는 만료 시간을 클럭 신호와 비교한다. 만료 시간이 지나지 않은 경우 제 2 ECU는 제 3 ECU의 메시지를 성공적으로 인증한다. 만료 시간이 지나면 제 2 ECU는 제 3 ECU에서 수신한 메시지를 성공적으로 인증할 수 없을 것이다.
제 2 ECU가 상기 논의된 예시에서와 같이 제 3 ECU로부터 수신된 메시지를 성공적으로 인증할 수 없는 경우에, 제 2 ECU는 제 3 ECU에 관하여 실패한 보안 키 인증을 표시하는 제 1 ECU에 신호를 전송할 수 있다. 이에 응하여, 제 1 ECU는 차량의 작동을 제한할 수 있다. 예를 들어, 제 1 ECU는 제 3 ECU가 하나 이상의 동작을 수행하는 것을 제한하는 제 3 ECU를 제한된 동작 모드로 둘 수 있다. 추가로 또는 대안적으로, 제 1 ECU는 보안 서브 시스템에 의해 제공되는 보안 서비스로부터, 제 2 ECU에 대한 인증 데이터를 업데이트하기 위한 업데이트된 인증 데이터를 요청할 수 있다. 추가로, 또는 대안적으로, 제 1 ECU는 제 3 ECU에 대한 새로운 보안 키를 요청할 수 있다.
보안 아키텍처
도 1을 참조하면, 일부 실시 예에 따른 예시적인 보안 시스템(100)이 도시되어있다. 예시적인 보안 시스템(100)은 ECU들이 서로 보안적으로 통신할 수 있도록 신뢰할 수 있는 영역에 차량 ECU를 자동으로 보안적으로 포함하도록 구성된다. 불필요한 세부 사항으로 대상을 모호하게 하는 것을 피하기 위해, 대상의 이해를 전달하는 것과 관련이 없는 다양한 기능적 구성요소(예를 들어, 서비스 및 엔진)는 도 1에서 생략되었다. 그러나, 당업자는, 다양한 부가 기능적 구성요소가 본원에서 구체적으로 설명되지 않은 추가 기능을 용이하게 하도록 보안 시스템(100)에 의해 지지될 수 있는 것을 용이하게 인지할 것이다.
관련 컴퓨터 분야의 숙련된 기술자에 의해 이해되는 바와 같이, 도 1에 도시된 기능적 구성요소는, 하드웨어 구성요소, 펌웨어 구성요소, 또는 실행 가능한 명령들의 세트를 갖는 구성요소 및 상기 명령을 실행하기 위한 상응하는 하드웨어(예를 들어, 메모리 및 프로세서)와 같은 하나 이상의 구성요소를 나타낸다. 또한, 도 1의 기능적 구성요소가 단수로 언급되었으나, 다른 실시예에서 하나 이상의 구성요소의 복수의 경우가 이용될 수 있는 것이 이해되어야 한다.
도 1에 도시된 바와 같이, 보안 시스템(100)은 네트워크(106)를 통해 보안 서비스를 제공하는 네트워크 액세스 가능한 보안 서브 시스템(104)과 통신하는 조립된 차량의 차량 시스템(102)을 포함한다. 하나 이상의 부분의 네트워크(106)는, 애드혹(ad hoc) 네트워크, 인트라넷, 엑스트라넷, 가상 사설 네트워크(VPN), 근거리 통신 네트워크(LAN), 무선 LAN(WLAN), 광역 네트워크(WAN), 무선 WAN(WWAN), 대도시 지역 네트워크(MAN), 인터넷, 인터넷의 일부, 공중 전화 교환망(PSTN)의 일부, 평범한 구식 전화 서비스(POTS) 네트워크, 셀룰러 전화 네트워크, 무선 네트워크, Wi-Fi® 네트워크, 다른 유형의 네트워크 또는 두 개 이상의 이러한 네트워크 조합일 수 있다. 예를 들어, 네트워크(106) 또는 네트워크의 일부(106)는 무선 또는 셀룰러 네트워크를 포함하고, 네트워크(106)에 연결되어 있는 것으로, 도 1에 도시되는 구성요소들 중 임의의 하나는 코드 분할 다중 액세스(CDMA) 연결, GSM(Global System for Mobile Communications) 연결, 또는 다른 유형의 셀룰러 또는 무선 연결을 통해 네트워크(106)에 연결될 수 있다. 이 예에서, 네트워크(106)에 대한 커플링은 1xRTT(Single Carrier Radio Transmission Technology), EVDO(Evolution-Data Optimized) 기술, GPRS(General Packet Radio Service) 기술, EDGE(Enhanced Data Rates for GSM Evolution) 기술, 3G를 포함한 3GPP(third Generation Partnership Project), 4G(fourth generation wireless) 네트워크, UMTS(Universal Mobile Telecommunicatios System), HSPA(High-Speed Packet Access), WiMAX(Worldwide Interoperability for Microwave Access), LTE(Long-Term Evolution) 표준, 다양한 기준 설정 조직에 의해 규정된 다른 기술, 다양한 원거리 프로토콜, 또는 다른 데이터 전송 기술과 같이 데이터 전달 기술의 다양한 유형 중 임의의 하나의 유형을 실행할 수 있다.
도시된 바와 같이, 보안 서브 시스템(104)은 프론트 엔드 서버(110) 및 백엔드 서버(112)와 같은 하나 이상의 컴퓨터 시스템을 포함한다. 차량 시스템(102)은 조립된 ECU와 같은 복수의 제어 유닛을 포함한다. 예를 들면, 차량 시스템(102)은 메인 ECU(116)(예를 들어, "게이트웨이") TCU(118), 파워트레인 ECU, 변속기 ECU, 서스펜션 ECU, 브레이크 제어 장치(BCU), ADA ECU, 클러스터 ECU 및 제동 ECU와 같은 하나 이상의 ECU를 포함할 수 있다. 메인 ECU(116)는 차량 시스템(102)의 ECU들의 각각의 ECU와 보안 환경의 맥락 내에서 통신하도록 구성된다. 예를 들어, 백엔드 서버(112), 메인 ECU(116) 또는 컴퓨터 장치(예를 들어 보안 도구)에서 또는 이것에 의해 내장될 수 있는 프로그램 코드(108)(예를 들어, 특정 기능을 수행하도록 실행 기계를 구성하는 기계 판독 가능 명령들의 세트를 포함하는 소프트웨어 어플리케이션)는, 예를 들면, 네트워크(106)를 통해 메인 ECU(116)와 보안 서브 시스템(104) 사이의 통신을 용이하게 한다. 차량 시스템(102)과의 추가 통신은 핀아웃, 전기 및 프로토콜 표준을 제공하는 온보드 진단(OBD) 시스템(120)에 의해 촉진될 수 있다.
TCU(118)는 차량의 트래킹을 제어하고 이동 통신을 위한 외부 인터페이스(예를 들어, GSM, GPRS, Wi-Fi, WiMAX 또는 LTE) - 네트워크(106)를 통해 예를 들어 중앙 집중식 지리 정보 시스템(GIS) 데이터베이스 서버(미도시)를 제공함 - 를 제공하도록 구성된다. 일부 실시 예에서, TCU(118)는 또한 메인 ECU(116)가 프로그램 코드(108)를 필요로 하지 않고 보안 서브 시스템(104)과 직접 통신하도록 할 수 있다.
도시된 바와 같이, 메인 ECU(116)는 또한 차량 탑승자에게 오디오 및 비디오 콘텐츠를 제공하도록 구성된 IVI(in-vehicle infotainment) 시스템(122) 과 통신한다. IVI 시스템(122)은 또한 하나 이상의 외부 장치와 통신 커플링(예를 들어, Wi-Fi, USB 또는 이더넷)을 통해 네트워크(106)를 통해 하나 이상의 외부 시스템(예를 들어, 외부 콘텐츠 공급 시스템)과 통신하도록 구성된다.
보안 시스템(100)의 맥락에서, 각각의 ECU의 제조 동안, 대칭 키는 각각의 ECU의 보안 저장 구성요소 또는 다른 보안 요소(예를 들어, ECU에서 운영하는 프로세스에 의해 또는 ECU의 외부에서 운영하는 임의의 프로세스에 의해 접근될 수 없는 소자)에 저장된다. 추가적으로, 각각의 ECU의 제조 동안, 백엔드 루트 인증서는 각각의 ECU의 변형 불가능한 저장 장치에 저장된다. 차량의 조립 공정의 종료가 임박할 때, 모든 조립된 ECU는 최소 기능을 제공하되 차량이 작동되는 것만은 허용하지 않는 임베드된 부분 프로그램 코드만을 갖는다. 예를 들어, 부분 프로그램 코드는 ECU가 메인 ECU(116)에 고유 식별자(예를 들어, 공개 키 인증서)를 통신하는 것을 가능하게 할 수 있다. 각각의 ECU의 고유 식별자는 제조 동안 상응하는 ECU의 변형 불가능한 저장 메커니즘에 저장될 수 있다. 부분 프로그램 코드는 ECU를 승인하는데 도움을 주도록 ECU들 간의 다른 부수적인 통신을 가능하게할 수 있다.
일부 실시 예에 따르면, 프로그램 코드(108)를 실행하는 장치 또는 시스템 은 차량 제조업체에 의한 최종 조립 프로세스 동안 차량의 메인 ECU(116)에 연결될 수 있다. 프로그램 코드(108)를 실행하는 장치 또는 시스템은: 1) 공유된 비밀(예를 들어 대칭 키 및 비대칭 키)을 기준으로 하여 프로그램 코드(108)와 메인 ECU(116) 사이에서 신뢰되는 통신이 설정될 수 있고; 또는 2) 보안 연결이 설정되지 않되, 이러한 프로세스는 차량 OEM에 의해 제공된 완전히 제어되고 안전한 환경에서 차량 조립의 종료시에 실행되는, 적어도 2개의 방식 중 하나로 메인 ECU(116)에 연결될 수 있다.
(예를 들어, OBD 시스템(120)을 통해) 메인 ECU(116)에 연결되면, 프로그램 코드(108)는 메인 ECU(116)로부터 차량 내 모든 조립된 ECU의 고유 식별자(공개 키 인증서)의 리스트를 얻는다. 차량 내 정확한 ECU가 먼저 공지되는 경우에, 프로그램 코드(108)는 조립된 ECU의 적법성을 검증하기 위하여 생산된 리스트와 공지된 리스트(예를 들어, 매니페스트)를 비교한다. 공지된 리스트는 예를 들어 백엔드 서버(112)로부터 프로그램 코드(108)에 의해 검색될 수 있다. 다른 예에서, 알려진 목록의 적어도 일부는 각 ECU의 생산자에 의해 제공될 수 있다.
일단 ECU가 검증되면, 프로그램 코드(108)는 모든 ECU가 차량 시스템(102)의 ECU들 사이의 보안 통신을 가능하게 하는 방식으로 통신적으로 연결되게 한다. 프로그램 코드(108)는 메인 ECU(116)가 ECU들 사이의 보안 통신을 가능하게 하도록 ECU를 통신적으로 연결하게 하는 메인 ECU(116)에 커맨드를 발행할 수 있다. 커맨드를 수신하면, 메인 ECU(116)는 ECU들이 다른 ECU들과 메세지를 보안적으로 교환하는 것을 가능하게 함으로써 ECU들을 연결하는 보안 키들(예를 들어, 암호화 키들)의 세트가 각각의 ECU에 공급된다. 메인 ECU(116)는 또한 다른 ECU로부터 수신된 메시지를 인증하기 위한 인증 데이터를 각각의 ECU에 제공한다. 일부 실시 예에서, 백엔드 서버(112)는 모두 ECU에 대한 보안 키를 생성하고 프로그램 코드(108)를 통해 메인 ECU(116)에 이 키들을 제공한다. 일부 실시 예에서, 메인 ECU(116)는 각각의 ECU에 대한 보안 키 쌍을 생성하고, 각각의 개별적인 ECU는 그 자체의 보안 키 쌍을 생성할 수 있다. 이들 실시 예에 따라, 각 ECU의 공개 키는 각 ECU에 내장된 고유 식별자를 사용하여 백엔드 서버(112)에 제공된다. 많은 알려진 기술 중 하나가 보안 키를 생성하고 공급하는 데 사용될 수 있다. 예를 들어, 보안 키는 알려진 대칭 알고리즘을 사용하여 생성된 "비밀 키" 이거나 알려진 비대칭 알고리즘을 사용하여 생성된 "공개 키"일 수 있다.
ECU의 연결에 관하여, 모든 ECU는 서로 연결될 수 있고, 각각의 ECU는 메인 ECU(116)와 개별적으로 연결되거나, 일부 ECU는 서로 연결될 수 있되, 다른 ECU는 메인 ECU(116)와만 연결된다. 이러한 통신 기법을 가능하게 하기 위하여, ECU들 중 임의의 하나의 ECU에는 다수의 보안 키가 제공될 수 있다. 궁극적으로, 각각의 ECU를 갖는 보안 키는 다른 ECU와 통신을 가능하게 하도록 공급되므로, 보안 키는, 임의의 주어진 ECU가 통신하도록 허용되는 다른 ECU를 지시한다. 이러한 방식으로 두 ECU 사이의 각 채널은 고유 키로 보호될 수 있다.
보안 키가 공급되면 ECU는 서로 정보를 보안적으로 교환할 수 있다. 실시 예에 따라, 정보는 각각의 공급된 보안 키로 암호화되거나 암호화 서명된 메시지에 포함될 수 있다. 실시 예에 따라, 정보를 교환할 때, 수신 ECU는 서명이 알려진 서명인지 또는 ECU가 ECU 들 간에 협상된 세션을 암호화할 수 있는 키를 가지고 있는지를 확인한다.
보안 차량 내 통신 링크가 설정된 후에, 프로그램 코드(108)는 백엔드 서버(112)에 메인 ECU(116)를 연결하며, 백엔드 서버(112)는 ECU들 중 각각의 ECU에 대한 디지털 인증서(예를 들어, 공개 키 인증서)를 메인 ECU(116)에 공급한다. 더 구체적으로, 백엔드 서버(112)는 신뢰의 인증서 체인을 설명하기 위해 백엔드 루트 인증서로 서명된 중간 인증서를 메인 ECU(116)에 제공한다. 이 디지털 인증서는 프로그램 코드를 완성하고 차량을 완전히 기능하게 하는 예를 들어 FOTA 플랫폼 또는 서비스를 통해 새로운 펌웨어를 허용하도록 ECU에 의해 사용될 수 있다. 이를 통해 차량의 네트워크가 작동하기 전에 보안을 유지할 수 있다. 백엔드 루트 인증서 또는 신뢰의 백엔드 체인 내의 인증서로 서명된 각 디지털 인증서가 되어 대응하는 ECU에 저장된다.
ECU들 중 하나 교체될 때, 딜러에서 OEM(original equipment manufacturer)에 의해 또는 애프터마켓 시설에서, 메인 ECU(116)와 프로그램 코드(108) 간에 보안 연결이 이루어진다. 프로그램 코드(108)는 보안 서브 시스템(104)과의 보안 연결을 설정한다. 보안 서브 시스템(104)은 프로그램 코드(108)를 검증하고 백엔드 서버(112)를 통해 디지털 인증서를 제공한다. 프로그램 코드(108)는 교체 ECU에 대한 고유 식별자를 식별하고, 프로그램 코드(108) 또는 백엔드 서버(112)는 식별자를 사용하여 교체 ECU의 진위성을 검증하며 프로그램 코드(108)는 인증서를 교체 ECU에 전달하도록 보안 연결을 사용한다. FOTA 서비스를 통해 펌웨어 업데이트가 전송되어 교체 ECU의 프로그램 코드를 완성하고 작동하게 한다.
ECU가(예를 들어, 키 부족으로) 다른 ECU가 손상되었다고 판단하면, ECU는 이러한 정보를 메인 ECU(116), 다른 ECU 또는 보안 서브 시스템(204)과 통신할 수 있는 구성요소에 보고할 수 있다. 메인 ECU(116)는 손상되거나 안전하지 않을 수 있는 ECU를 다루거나 해결하는데 어떤 동작 또는 동작들을 취할지 결정하기 위해 설계될 수 있다. 예를 들어, 메인 ECU(116)는, 차량의 안전 메커니즘(예를 들어, 제동 시스템)이 한정되지 않더라도, 차량 엔진의 동작이 한정되는 "안전" 모드에 차량을 배치할 수 있다. 예를 들어, "안전" 모드는 분당 회전 수(RPM) 또는 시간당 마일(MPH)의 스레스홀드 수로 작동하도록 차량을 제한할 수 있다. 다른 예로서, "안전" 모드는 차량이 완전히 꺼지기 전에 제한된 거리(예를 들어, 100 마일) 동안 정상 모드로 주행할 수 있도록 할 수 있다. 메인 ECU(116)가 보안 서브 시스템(104)에 연결될 수 있으면, 메인 ECU(116)는 백엔드 서버(112)에 손상된 ECU의 보고를 제공할 수 있다.
일부 실시 예에 따라, 보안 시스템(100)은 LTE/GSMA/글로벌 플랫폼 프레임 워크를 사용하여 차량의 ECU들 사이에서 보안 네트워크를 가능하게 하고 보안을 관리하도록 하드웨어 신뢰점(RoT)의 역할을 하도록 기술 및 임베디드 범용 집적 회로 카드(eUICC) 기반 SIM(Subscriber Identity Module) 인프라스트럭쳐를 실행할 수 있다. 보안 시스템(100)은 ECU의 임베드된 RoT와 외부 보안 요소를 레버리지할 수 있다. 이러한 RoT 또는 보안 소자는 구성요소 생산 중에 수정 불가능한 저장 메커니즘에 안전하고 비밀리에 저장되는 내장된 사전 공유 키에 저장할 수 있다. ECU RoT 또는 외부 보안 요소는 구성요소 생산 중 수정 불가능한 저장 메커니즘에 추가 데이터뿐만 아니라 백엔드 CA(인증 기관) 인증서와 ECU 고유 식별자를 저장할 수 있다.
도 1에 예시된 실시 예에서, 차량 시스템(102)은 프로그램 코드(108)를 통해 네트워크(106)를 통해 보안 서브 시스템(104)과 통신하고 있다. 그러나 일부 실시 예에서 차량 시스템(102)은 트러스트 존을 확립하기 위해 보안 서브 시스템(104) 과 직접 통신할 수 있다. 예를 들어, 도 2는 일부 대안적인 실시 예에 따라 차량 ECU를 트러스트 존에 자동 보안 포함하도록 구성된 보안 시스템(200)을 도시한다. 보안 시스템(100)과 같이, 보안 시스템(200)은 ECU, OBD 시스템(220), 및 IVI 시스템(222)을 포함하는 차량 시스템(202); 및 프런트 엔드 서버(210) 및 백엔드 서버(212)를 포함하는 보안 서브 시스템(204)을 포함한다. 차량 시스템(202)의 ECU는 메인 ECU(216)와 TCU(218)를 포함한다. 차량 시스템(202) 및 보안 서브 시스템(204)의 각각은 동일한 개별적인 구성요소를 포함하고 보안 시스템(100)의 차량 시스템(102)과 보안 서브 시스템(104)과 동일한 개별 기능을 제공한다.
그러나, 보안 시스템(100)과 다르게, 보안 시스템(200)에서, 메인 ECU(216)는 프로그램 코드를 요하지 않고도 네트워크(206)를 통해 보안 서브 시스템(204)과 통신할 수 있다. 메인 ECU(216)와 보안 서브 시스템(204) 사이의 통신은 TCU(218)를 통해서 또는 메인 ECU(216)에 내장된 통신 구성요소에 의해 활성화될 수 있다. 보안 시스템(200)의 맥락에서, 메인 ECU(216)는 도 1에 관하여 상기 기재된 프로그램 코드(108)의 기능을 수행하도록 구성된다.
도 1 및 도 2는 네트워크를 통해 서버 기반 보안 서비스와 직접적으로 또는 간접적으로 통신하는 차량 시스템을 도시하고, 다른 실시예에서, 보안 시스템의 보안 하위 시스템은 차량 시스템에 직접 연결되는 이동 하드웨어 장치(예를 들어, 동글)을 대신 포함할 수 있다. 예를 들어, 도 3은 동글 기반 보안 서브 시스템(304) 과 통신하는 차량 시스템(302)을 포함하는 보안 시스템(300)을 도시한다.
차량 시스템(102 및 202)과 유사하게, 차량 시스템(302)은 메인 ECU(316) 및 TCU(318)를 포함하는 ECU; OBD 시스템(320) 및 IVI 시스템(322)을 포함한다. 차량 시스템(302)의 구성요소의 각각은 보안 시스템(100)의 차량 시스템(102)의 상응하는 구성요소와 동일한 기능을 제공한다.
보안 시스템(100 및 200)의 보안 서브 시스템(104 및 204)과 다르게, 보안 서브 시스템(304)은 동글(312)을 단순히 포함한다. 동글(312)은 적어도 하나의 메모리, 프로세서 및 적어도 메인 ECU(316)와 통신하기 위한 수단을 포함하는 소형 이동 하드웨어 장치이다. 일부 실시예에서, 동글(312)은 스마트폰과 같은 이동 컴퓨팅 장치가 되거나 또는 포함할 수 있다.
실시 예에 따라, 차량 시스템(302)은 OBD 시스템(320)과 함께 또는 없이 동글 기반 보안 서브 시스템(304)과 통신할 수 있다. 도시된 바와 같이, 동글 기반 보안 서브 시스템(304)은 차량 시스템(302)에 직접적으로 연결될 수 있으며, 동글 기반 보안 서브 시스템(304)은 이러한 연결을 통해 메인 ECU(316)와 직접적으로 통신할 수 있다. 차량 시스템(302)의 용량에 따라, 연결 매체는 예를 들어, 무선(예를 들어, 블루투스 또는 Wi-Fi), 유선(예를 들어, 이더넷 케이블), 범용 직렬 버스(USB) 또는 데이터 버스일 수 있다.
동글 기반 보안 서브 시스템(304)은 차량 시스템(302)에 직접 연결될 수 있기 때문에, 보안 시스템(300)은 통상적으로 ECU 교체의 맥락에서 발생하는, 네트워크 연결이 이용불가능한 상황에서 응용 프로그램을 찾을 수 있다. 예를 들어, 배치 전에, 적절한 보안 수단을 갖는 개별적인 네트워크 연결된 장치는 동글(312)을 인증하기 위한 시간이 한정된 크리덴셜을 다운로드할 것이다. 동글(312)이 인증되면, 교체 ECU를 위한 펌웨어 및 하나 이상의 디지털 인증서(예를 들어, 공개 키 인증서)는 동글(312)의 메모리로 다운로드되고 그에 암호화 저장될 수 있다.
현장에 배치되면, 동글(312)은 도 1 및 도 2를 참조하여 위에서 설명된 서버 기반 보안 서비스의 기능을 에뮬레이트한다. 예를 들어, 동글(312)은 차량 시스템(302)에 연결될 수 있으며 디지털 인증서 및 펌웨어는 교체 ECU에 설치될 수 있다. 이러한 펌웨어 업데이트는 교체 ECU의 프로그램 코드를 완성하여 완벽하게 작동하게 한다. 차량의 차량 식별 번호(VIN)와 관련된 구성요소 목록은 새로운 구성요소 정보로 업데이트된다.
일부 실시 예에서, 차량이, 네트워크 연결이 이용가능하고 추가 정보가 교체 ECU에 제공될 수 있는 설비로 이동될 때까지, 동글(312)에 의해 교체 ECU에 제공되는 펌웨어 업데이트는 한정된 양의 시간 동안만 교체 ECU가 완전히 기능하도록 프로그램 코드를 완성한다. 이와 같이, 동글(312)에 의해 제공되는 펌웨어 업데이트는 만료 시간 및/또는 날짜를 포함할 수 있다.
보안 통신 구현
도 4는, 일부 실시예에 따라 차량(예를 들어, 차량 시스템(102))의 ECU들 간의 보안 통신을 가능하게 하기 위한 방법(400)을 수행하는데 있어서, 보안 서비스를 제공하는 보안 서브 시스템(예를 들어, 보안 서브 시스템(104)), 프로그램 코드(예를 들어, 프로그램 코드(108)) 및 보안 시스템(예를 들어, 보안 시스템(100))의 메인 ECU(예를 들어, 메인 ECU(116)) 사이의 상호작용을 설명하는 상호작용 다이어그램이다. 방법(400)은 하나 이상의 하드웨어 구성요소(예를 들어, 프로세서)에 의한 실행을 위한 컴퓨터 판독 가능 명령들로 실행될 수 있다.
도 4에 도시된 바와 같이, 방법(400)은 알려진 ECU 식별자의 목록을 프로그램 코드에 제공하는 보안 서브 시스템으로 시작한다(동작 402). 각각의 ECU 식별자는 해당 ECU와 관련된 고유 번호이다. 이러한 고유 식별자는 예를 들어 ECU에 할당된 공개 키 인증서에 해당할 수 있다. 알려진 ECU 식별자의 목록은 프로그램 코드에 의해 수신된다(동작 404). 알려진 ECU 식별자 목록에 포함된 각각의 ECU 식별자는 구성(예를 들어 조립 프로세스)을 겪는 특정 차량에 포함되도록 의도된 ECU에 해당한다.
프로그램 코드는 조립된 차량에 포함된 조립된 ECU 식별자의 목록에 대한 메인 ECU를 질의한다(동작 406). 그 다음, 메인 ECU는 차량에 조립된 각각의 ECU로부터 식별자를 컴파일한다(동작 408). 예를 들어, 메인 ECU는 식별자 요청으로 각 ECU를 핑(ping)할수 있다. 각 ECU와 관련된 고유 식별자는 해당 ECU의 수정 불가능한 저장 메커니즘에 저장된다. 위에서 언급한 바와 같이 각 ECU는 초기에 고유 식별자를 메인 ECU에 통신하는 기능과 같은 최소한의 기능을 제공하는 부분 프로그램 코드만 포함하되 부분 프로그램 코드는 차량이 작동하는 것을 허용하지 않는다.
완전한 목록이 컴파일되면, 메인 ECU는 조립된 ECU의 리스트를 프로그램 코드에 송신한다(동작 410). 조립된 ECU 식별자의 목록을 수신하면(동작 412), 프로그램 코드는 조립된 ECU 식별자의 목록에 공지된 ECU 식별자들의 목록을 비교함으로써 조립된 ECU의 진위성을 검증한다(동작 414).
일부 실시 예에서, 조립된 ECU의 진위가 검증되면, 보안 서브 시스템은 인증 데이터와 함께 조립된 ECU 각각에 대한 보안 키를 생성하고(동작 416), 보안 서브 시스템은 보안된(예를 들어, 암호화된) 채널을 통해 프로그램 코드에 인증 데이터와 함께 보안 키를 제공한다(동작 418). 프로그램 코드는, 이어서, 보안된 채널을 통해 메인 ECU에 조립된 ECU에 대한 보안 키 및 인증 데이터를 제공하고(동작 420) 그리고 프로그램 코드로부터 보안 키 및 인증 데이터를 수신한다(동작 422).
다른 실시 예에서, 메인 ECU는 보안 서브 시스템이 아닌 보안 키를 생성한다. 이러한 실시 예에서, 동작 416, 418, 420 및 422)는 방법(400)에서 생략될 수 있다. 또한, 이러한 실시 예에서, 메인 ECU는 ECU들 중 각각의 ECU에 대응하는 보안 키의 프로그램 코드를 통해 보안 서브 시스템에 통지하며 보안 서브 시스템 그에 따라 기록을 업데이트할 수 있다.
다시 도 4에 도시된 바와 같이, 프로그램 코드는 메인 ECU에 연결 커맨드를 발행하고(동작 424), 메인 ECU는 조립된 ECU를 통신적으로 연결한다(동작 426). 메인 ECU는 상응하는 보안 키(들) 및 인증 데이터를 각각의 ECU에 공급함으로써 조립된 ECU를 연결할 수 있다. 보안 키가 공급되면, ECU는 메인 ECU, 다른 ECU 및 보안 키가 공급된 방법에 따라 양쪽의 조합과 정보를 보안적으로 교환할 수 있다. 예를 들어, 일 실시예에 따라, 모든 ECU는 서로 연결될 수 있고, 각각의 ECU는 메인 ECU와 개별적으로 연결될 수 있거나 일부 ECU는, 다른 ECU가 메인 ECU와만 연결되는 동안 서로 연결될 수 있다. 이러한 통신 기법을 가능하게 하도록, 임의의 하나 이상의 ECU에는 복수의 보안 키가 제공될 수 있다. 궁극적으로, 각각의 ECU가 공급되는 보안 키는 다른 ECU와의 통신을 가능하게 하여, 보안 키는, 임의의 주어진 ECU가 통신하도록 허용되는 다른 ECU를 지시한다. 다른 ECU와 메세지를 교환할 때, 전송 ECU은 다른 ECU와의 통신이 관련된 보안 키(들)을 갖는 메세지를 서명한다. 이러한 방식으로, 2개의 ECU 사이의 채널에는 고유 키가 확보될 수 있다. 또한, 각각의 ECU는 다른 ECU로부터 수신된 메세지를 인증하도록 인증 데이터를 사용한다. 인증 데이터는, 예를 들어, 특정 보안 키에 대한 시간대 또는 만료 시간을 규정하는 시간 속성, 특정 보안 키가 메세지를 서명하도록 사용될 수 있는 최대 메세지 카운트를 규정하는 메세지 카운트 속성, ECU가 수행하도록 허용되는 특정 동작을 규정하는 동작 속성 또는 특정 ECU가 통신하도록 허용되는 차량 시스템 내의 특정 구성요소를 규정하는 구성요소 속성과 같은 다른 ECU와의 통신에 관한 하나 이상의 속성을 포함한다.
ECU 펌웨어를 보안적으로 구성
도 5는, 일부 실시예에 따라 차량(예를 들어, 차량 시스템(102))의 복수의 ECU에 대한 펌웨어를 보안적으로 구성하기 위한 방법(500)을 수행하는데 있어서, 보안 서브 시스템(예를 들어, 보안 서브 시스템(104)), 프로그램 코드(예를 들어, 프로그램 코드(108)) 및 보안 시스템(예를 들어, 보안 시스템(100))의 메인 ECU(예를 들어, 메인 ECU(116)) 사이의 상호작용을 설명하는 상호작용 다이어그램이다. 방법(500)은 하나 이상의 하드웨어 구성요소(예를 들어, 프로세서)에 의한 실행을 위한 컴퓨터 판독 가능 명령들로 실행될 수 있다. 방법(500)의 동작은 예를 들어 상기 기재된 방법(400)의 동작에 후속하여 수행될 수 있다.
도시된 바와 같이, 방법(500)은 메인 ECU가 차량 시스템의 ECU에 보안 키가 공급된 것에 대한 표시를 프로그램 코드에 제공하는 것으로 시작한다(동작 502). 이 표시를 수신하면, 프로그램 코드는 메인 ECU를 보안 서브 시스템과 연결한다(동작 504). 보안 서브 시스템은 ECU들의 각각에 대한 디지털 인증서(예를 들어, 공개 키 증명서)를 생성하고, 메인 ECU의 디지털 인증서를 제공한다(동작 506). 디지털 인증서를 수신하면, 메인 ECU는 각각의 ECU의 디지털 인증서를 사용하여 FOTA 서비스로부터 각각의 ECU에 대한 펌웨어를 구성하기 위한 펌웨어 데이터를 요청할 수 있다(동작 508). 메인 ECU는 FOTA 서비스로부터 펌웨어 데이터를 수신하고(동작 510) 펌웨어 데이터를 이용하여 각 ECU에 대한 해당 펌웨어를 구성한다(동작 512). 일단 구성되면, 펌웨어는 ECU에 내장된 1회용 부분 프로그램 코드를 완성하여, 차량이 완전히 동작하게 한다.
교체 ECU에 대한 펌웨어의 안전한 구성
도 6는, 일부 실시예에 따라 교체 ECU에 대한 펌웨어를 보안적으로 구성하기 위한 방법(600)을 수행하는데 있어서, 보안 서브 시스템(예를 들어, 보안 서브 시스템(104)), 프로그램 코드(예를 들어, 프로그램 코드(108)) 및 보안 시스템(예를 들어, 보안 시스템(100))의 메인 ECU(예를 들어, 메인 ECU(116)) 사이의 상호작용을 설명하는 상호작용 다이어그램이다. 방법(600)은 하나 이상의 하드웨어 구성요소(예를 들어, 프로세서)에 의한 실행을 위한 컴퓨터 판독 가능 명령들로 실행될 수 있다.
도시된 바와 같이, 방법(600)은 ECU가 교체되었다는 표시를 프로그램 코드에 제공하는 메인 ECU로 시작한다(동작 602). 표시는 교체 ECU와 관련된 고유 식별자(예를 들어, 공개 키)를 포함할 수 있다. 처음에 교체 ECU에는 차량 작동을 허용하지 않는 부분적인 프로그램 코드만 포함된다.
메인 ECU로부터 표시를 수신하는 것에 응하여, 프로그램 코드는 보안 서브 시스템과의 보안 연결을 설정한다(동작 604). 보안 연결을 설정하면, 보안 서브 시스템은 프로그램 코드를 실행하는 장치 또는 시스템의 신뢰성을 검증한다(동작 606). 프로그램 코드는 표시의 일부로 수신된 식별자를 기반으로 교체 ECU를 검증한다(동작 608).
교체 ECU가 검증되면, 보안 서브 시스템은 메인 ECU에 프로그램 코드를 통해 교체 ECU에 대한 하나 이상의 보안 키를 생성하고 제공한다(동작 610). 프로그램 코드는 메인 ECU에 연결 커맨드를 발행하고(동작 612), 메인 ECU는, 이어서, 하나 이상의 보안 키를 교체 ECU에 공급함으로써 하나 이상의 다른 ECU와 교체 ECU를 연결한다(동작 614). 교체 ECU는, 하나 이상의 보안 키가 공급되면, 차량 시스템의 하나 이상의 다른 ECU와 보안적으로 통신할 수 있다. 예를 들어, 교체 ECU는 다른 ECU와 교환된 암호화된 메세지를 서명하도록 하나 이상의 보안 키를 사용할 수 있다. 교체 ECU는 교체 ECU가 통신하도록 서로에 보안 키가 공급될 수 있다. 이런 방식으로, ECU와 교체 ECU 사이의 각각의 채널에는 고유의 키가 확보될 수 있다.
교체 ECU가 차량 시스템의 다른 ECU(들)과 연결되면, 보안 서브 시스템은 프로그램 코드를 통해 메인 ECU에 교체 ECU를 위한 디지털 인증서(예를 들어, 공개 키 인증서)를 생성하고 제공한다(동작 616). 메인 ECU(116)는 교체 ECU의 수정 불가능한 저장 메커니즘에 저장될 수 있는 디지털 인증서를 교체 ECU에 공급한다(동작 618). 메인 ECU는 디지털 인증서를 사용하여 FOTA 플랫폼 또는 서비스로부터 교체 ECU에 대한 펌웨어를 구성하기 위한 펌웨어 데이터를 요청할 수 있다(동작 620). FOTA 플랫폼 또는 서비스로부터 펌웨어 데이터를 수신할 시, 메인 ECU는 교체 ECU에 대한 펌웨어를 구성한다(동작 622). 구성되면, 펌웨어는 교체 ECU에 내장된 일회성 부분 프로그램 코드를 완성하여 차량이 완전히 동작하게 한다.
동글을 사용하여 교체 ECU에 대한 펌웨어를 보안적으로 구성
도 7은 일부 실시예에 따라, 교체 ECU에 대한 펌웨어를 보안적으로 구성하기 위한 방법(700)을 수행하는데 있어서, 보안 시스템(예를 들어, 보안 시스템(300))의 메인 ECU(예를 들어, 메인 ECU(316))와 동글(예를 들어, 동글(312)) 사이의 상호작용을 설명하는 상호작용 다이어그램. 방법(700)은 하나 이상의 하드웨어 구성요소(예를 들어, 프로세서)에 의한 실행을 위한 컴퓨터 판독 가능 명령으로 실행될 수 있다.
도시된 바와 같이, 방법(700)은 교체 ECU를 위한 디지털 인증서 및 펌웨어를 획득하며 동글로 시작한다(동작 702). 동글은 서버 기반 보안 서비스(예를 들어, 보안 서브 시스템(104))로부터 디지털 인증서와 펌웨어를 얻을 수 있되, 동글은 보안 서비스와 통신을 허용하는 네트워크 연결에 대한 액세스를 갖는다. 동글은 교체 ECU와 연관된 고유 식별자(예를 들어, 공개 키)에 기초하여 교체 ECU를 검증한다(동작 704). 고유 식별자는 교체 ECU의 수정 불가능한 저장 메커니즘에 저장될 수 있으며 메인 ECU에 의해 동글에 제공될 수 있다. 교체 ECU를 검증하면 동글은 교체 ECU에 대한 디지털 인증서와 펌웨어를 메인 ECU에 제공한다(동작 706). 동작 706)에서, 동글은 또한 메인 ECU에 연결 커맨드를 발행할 수 있다. 연결 동작은 임시 키를 사용하여 수행될 수 있다(예를 들어, 교체 ECU에서 보안적으로 저장된다). 이는 네트워크 연결에 대한 액세스가 이용가능해질 때 교체 절차를 종결하도록 워크샵에 도달하는 한정된 시간을 허용한다.
연결 커맨드를 수신하는 것에 응하여, 메인 ECU는 디지털 인증서를 교체 ECU에 공급하고(동작 708) 그리고 교체 ECU에 대한 펌웨어를 구성한다(동작 710). 구성되면, 펌웨어는 교체 ECU에 내장된 일회용 부분 프로그램 코드를 완성하여 차량이 완전히 동작하게 한다.
ECU의 기능 구성요소
도 8은 일부 실시 예에 따른 ECU(800)의 기능적 구성요소를 예시하는 시스템 다이어그램이다. ECU(800)는 도 1 내지 도 3에 예시되고 도 4 내지 도 7에 논의된 ECU의 예이다. ECU(800)가 도시되며, 이는, 리시버(804), 트랜스미터(806), 인증 구성요소(808) 및 메모리(810)를 포함하는 보안 통신 시스템(802)을 포함한다. 리시버(804)는 암호화 구성요소(812)를 포함할 수 있고, 트랜스미터(806)는 암호화 구성요소(814)를 포함할 수 있다.
보안 통신 시스템(802)의 기능 구성요소는 ECU(800)가 차량의 다른 ECU와 메세지를 보안적으로 교환하는 것을 가능하게 한다. 예를 들어, 메모리(810)는 ECU(800)가 하나 이상의 다른 ECU에 보안(예를 들어, 암호화된 또는 암호화 서명된) 메세지를 전송하며 다른 ECU로부터 수신된 암호화된 메세지를 복호화하는 것을 가능하게 하는 보안 키(들)(816)을 저장한다. 또한, 메모리(810)는 다른 ECU로부터 수신된 메세지를 인증하기 위한 인증 데이터(818)를 저장한다. 인증 데이터(818)는 하나 이상의 다른 ECU와의 통신에 관한 하나 이상의 속성을 포함한다. 하나 이상의 속성은 예를 들어 보안 키에 대한 만료 시간 또는 시간대를 특정하는 시간 속성, 보안 키에 대한 최대 메세지 카운트를 특정하는 메세지 카운트 속성, ECU가 수행하도록 허용되는 하나 이상의 동작을 특정하는 동작 속성 및 ECU가 통신하도록 허용되는 차량의 구성요소를 특정하는 구성요소 속성 중 하나 이상을 포함할 수 있다. 언급된 바와 같이 차량 시스템의 메인 ECU(예를 들어, 메인 ECU(116))는 ECU(800)에 보안 키(들)(816) 및 인증 데이터(818)를 공급할 수 있다.
리시버(804)는 다른 ECU로부터 보안(예를 들어, 암호화 또는 암호화 서명된) 메시지를 수신할 책임이 있으며, 리시버(804)의 복호화 구성요소(812)는 메모리(810)에 저장된 보안 키(들)(816) 중 하나를 사용하여 암호화된 메시지를 복호화한다. 트랜스미터(806)는 메모리(810)에 저장된 보안 키(들)(816) 중 하나를 사용하여 암호화 구성 요소(814)에 의해 암호화 그리고/또는 암호화 서명된 다른 ECU로 메시지를 전송하는 역할을 한다. 인증 구성 요소(808)는 다른 ECU로부터 수신된 메시지를 인증한다. 인증 구성요소(808)는 ECU에 대한 인증 데이터(818)를 ECU(800)에 의해 유지되는 인증 신호와 비교함으로써 다른 ECU로부터 수신된 메시지를 인증할 수 있다. 메시지의 인증에 관한 추가 세부 사항은 아래에서 논의된다.
보안 통신 시스템(802)의 다양한 구성 요소는(예를 들어, 버스, 공유 메모리 또는 스위치를 통해) 서로 통신하도록 구성될 수 있다. 설명된 임의의 하나 이상의 구성 요소는 하드웨어 단독(예를 들어, 기계의 하나 이상의 프로세서) 또는 하드웨어와 소프트웨어의 조합을 사용하여 실행될 수 있다. 예를 들어, 보안 통신 시스템(802)의 임의의 구성 요소는 해당 구성 요소에 대해 본원에 설명된 동작을 수행하도록 구성된 하나 이상의 프로세서(820)(예를 들어, 기계의 하나 이상의 프로세서의 서브 세트 또는 그 사이)의 배열을 물리적으로 포함할 수 있다. 다른 예로서, 보안 통신 시스템(802)의 임의의 구성 요소는 해당 구성요소에 대하여 본원에 설명된 동작을 수행하기 위해 하나 이상의 프로세서(820)의 배열(예를 들어, 기계의 하나 이상의 프로세서 사이)을 구성하는 소프트웨어, 하드웨어 또는 둘 다를 포함할 수 있다. 따라서, 보안 통신 시스템(802)의 상이한 구성 요소는 그러한 프로세서(820)의 상이한 배열 또는 상이한 시점에서 그러한 프로세서(820)의 단일 배열을 포함하고 구성할 수 있다. 더욱이, 보안 통신 시스템(802)의 임의의 둘 이상의 구성 요소는 단일 구성 요소로 결합될 수 있고, 단일 구성 요소에 대해 여기에서 설명된 기능은 여러 구성 요소로 세분화될 수 있다. 또한, 다양한 예시적인 실시 예에 따르면, 단일 기계, 데이터베이스 또는 장치 내에서 실행되는 것으로 본원에 설명된 구성 요소는 여러 기계, 데이터베이스 또는 장치에 걸쳐 분산될 수 있다.
ECU들 사이의 보안 통신
도 9는 일부 실시 예들에 따라 차량 시스템의 ECU들 사이에서 메시지를 보안적으로 교환하기 위한 방법(900)을 수행할 때 보안 시스템의 구성요소들 사이의 상호 작용을 예시하는 개념도이다. 특히, 도 9는 보안 서브 시스템(예를 들어, 보안 서브 시스템(104))과 4개의 ECU들, ECU 1, ECU 2, ECU 3, ECU 4 간의 상호 작용을 도시한다. ECU 1, ECU 2, ECU 3, ECU 각각은 ECU(800)의 예시이며, 또한, ECU 1은 메인 ECU(예를 들어, 메인 ECU(116, 216 또는 316))에 대응할 수 있다.
도시된 바와 같이, 동작 902)에서, 보안 서브 시스템은 ECU들 사이에서 교환되는 메시지를 인증하기 위해 다수의 보안 키 세트 및 관련 인증 데이터를 ECU 1(예를 들어, 메인 ECU(116))에 제공한다. 다수의 보안 키 세트는 ECU 2에 대응하는 제 1 세트의 보안 키, ECU 3에 대응하는 제 2 세트의 보안 키 및 ECU 4에 대응하는 제 3 세트의 보안 키를 포함한다.
동작 904A)에서, ECU 1는 ECU 2에 제 1 세트의 보안 키 및 관련 인증 데이터를 공급한다. 동작 904B)에서, ECU 1은 ECU 3에 제 2 보안 키 세트 및 관련 인증 데이터를 공급한다. 동작 904C)에서, ECU 1은 ECU 4에 제 3 보안 키 세트 및 관련 인증 데이터를 제공한다. ECU 2, ECU 3 및 ECU 4 각각은 보안 저장 장치(예를 들어, 메모리(810))에 각각의 보안 키 세트를 저장할 수 있다.
이 예에서, ECU 2는 ECU 3과 메시지를 교환할 수 있지만 ECU 2는 ECU 4와 메시지를 교환할 수 없다. 따라서, 제 1 보안 키 세트는 ECU 2가 ECU 3과 보안적으로 통신하게 하도록 하나 이상의 보안 키를 포함하며, 제 2 보안 키 세트는 ECU 3가 ECU 2와 보안적으로 통신할 수 있도록 하는 하나 이상의 보안 키를 포함한다. 예를 들어, 제 1 보안 키 세트는 ECU 2가 메세지를 암호화하고 그리고/또는 암호화 서명할 수 있는 프라이빗 키 및 ECU 2가(예를 들어, ECU 3에 공급된 프라이빗 키를 사용하여) ECU 3에 의해 서명된 메시지를 복호화할 수 있게 하는 공개 키를 포함할 수 있다. 마찬가지로, 제 2 보안 키 세트는 ECU 3가 메시지를 암호화하기 위한 프라이빗 키와 ECU 3가 ECU 2에 의해 암호화 서명된 메시지를 해독할 수 있도록 하는 공개 키를 포함할 수 있다.
또한, ECU 2에 공급된 인증 데이터는 ECU 2가 ECU 3의 메시지를 인증할 수 있게 하지만 ECU 4로부터의 메시지는 인증할 수 있게 하지 않는다. 인증 데이터는 예를 들어 공개 키에 대한 시간대 또는 만료 시간을 규정하는 시간 속성, 공개 키에 대한 최대 메세지 카운트를 규정하는 메세지 카운트 속성, ECU 3이 수행하도록 허용되는 하나 이상의 동작을 규정하는 동작 속성 또는 ECU 3이 통신하도록 허용되는 차량의 구성요소를 규정하는 구성요소 속성의 하나 이상을 포함할 수 있는 하나 이상의 속성을 포함한다.
동작 906)에서, ECU 3는 제 2 세트의 보안 키 중 하나의 보안 키를 사용하여 암호화 서명된 보안 메시지를 ECU 2로 전송한다. 보안 메시지를 수신하면, ECU 2는 ECU 2에 공급된 인증 데이터를 사용하여 보안 메시지를 성공적으로 인증하고 메시지를 보안 저장 영역에 저장한다(동작 908). 아래에서 더 논의되는 바와 같이, 보안 메시지의 인증은 인증 데이터를 인증 신호와 비교하는 것을 포함할 수 있다.
동작 910)에서, ECU 4는 제 3 보안 키 세트로 중 하나의 보안 키를 사용하여 암호화 서명된 보안 메시지를 ECU 2에 전송한다. 그러나 위에서 언급한 바와 같이, 이 예에서 ECU 2와 ECU 4는 서로 메시지를 교환하는 것이 허용되지 않다. 따라서, 동작 912)에 도시된 바와 같이, ECU 4로부터 수신된 메시지의 인증이 실패한다. ECU 4로부터 수신된 메시지를 인증할 수 없는 것에 응하여, ECU 2는 메시지를 폐기할 수 있고, ECU 1에 실패한 보안 키 인증을 통지하기 위해 신호를 추가로 보낼 수 있다.
도 10 및 도 11은 일부 실시 예에 따라 메시지를 보안적으로 교환하기 위한 방법(1000)을 수행할 때 차량의 다수의 ECU 사이의 상호 작용을 예시하는 상호 작용 다이어그램이다. 더 구체적으로, 도 10 및 도 11은 방법(1000)을 수행할 때 ECU 1, ECU 2 및 ECU 3 사이의 상호 작용을 예시한다. 방법(1000)은 하나 이상의 하드웨어 구성 요소(예를 들어, 프로세서)에 의해 실행되도록 컴퓨터 판독 가능 명령으로 실행될 수 있으므로 방법(1000)의 동작은 ECU 1, ECU 2 및 ECU 3에 의해 수행될 수 있다. 위에서 언급한 바와 같이, ECU 1, ECU 2 및 ECU 3은 ECU(800)의 예이다. 또한, ECU 1은 메인 ECU에 대응할 수 있다(예를 들어, 메인 ECU(116, 216 또는 316)).
도시된 바와 같이, 방법(1000)은 ECU 3가 적어도 ECU 2를 포함하는 하나 이상의 ECU와 메시지를 교환할 수 있도록 하는 보안 키 세트를 ECU 3에 공급하는 ECU 1(예를 들어, 메인 ECU(116))로 시작한다(동작 1002). ECU 3는 동작 1004)에서 키 세트를 수신한다.
ECU 1는 ECU 3와 교환된 메시지를 인증하기 위한 인증 데이터를 ECU 2에 제공한다(동작 1006). 인증 데이터는 동작 1008)에서 ECU 2에 의해 수신된다. 인증 데이터는 보안 키 세트를 기초로 한, ECU 3와의 통신과 관련된 하나 이상의 속성을 포함한다. 하나 이상의 속성은 예를 들어 다음 중 하나 이상을 포함할 수 있다 : 보안 키에 대한 만료 시간을 정의하는 시간 속성, 보안 키로 암호화 서명된 메시지를 전송하기 위한 시간대를 정의하는 시간 속성, 보안 키에 대한 최대 메시지 수를 규정하는 메세지 카운트 속성, ECU 3가 통신하는 것이 허용되는 차량의 구성 요소의 식별자를 명시하는 구성 요소 속성, ECU 3가 수행할 수 있는 작업을 명시하는 작업 속성. 일부 실시 예에서, 하나 이상의 속성은 인증된 메시지에 대응하는 제 1 메시지 수 속성 및 인증이 실패한 메시지에 대응하는 제 2 메시지 수 속성을 포함할 수 있다.
ECU 3는 보안 키 세트 중 하나의 보안 키를 사용하여 암호화 서명된 보안 메시지를 생성하고(동작 1010), ECU 3는 보안 메시지를 ECU 2에 전송한다(동작 1012). ECU 2는 ECU 3에 제공된 보안 키 세트 중 하나의 보안 키를 사용하여 암호화 서명된 ECU 3로부터 보안 메시지를 수신한다(동작 1014).
ECU 2는 ECU 3로부터 수신된 보안 메시지를 인증하기 위해 인증 데이터를 사용한다(동작 1016). 특히, ECU 2는 인증 데이터와 인증 신호를 비교하여 보안 메시지를 인증한다. 인증 신호는 ECU 2에 의해 유지될 수 있다. 일부 실시 예에서, 인증 신호는 ECU 2 및 ECU 3 모두에 의해 유지될 수 있다. 이러한 실시 예에 따라, ECU 3은 보안 키와 인증 신호의 조합을 사용하여 보안 메시지에 암호화 서명할 수 있다. 일부 실시 예에 따라, 보안 메시지의 인증 이전에 또는 그 일부로서, ECU 2는 ECU 2에 공급된 하나 이상의 보안 키를 사용하여 보안 메시지를 복호화할 수 있다.
제 1 예에서, 하나 이상의 속성은 보안 키에 대한 만료 시간을 정의하는 시간 속성을 포함하고, 인증 신호는 클록 신호를 포함한다. 제 1 예에서 ECU 2는 만료 시간을 클럭 신호와 비교하여 ECU 3의 보안 메시지를 인증하고 만료 시간이 지나지 않은 경우 ECU 2는 보안 메시지를 성공적으로 인증한다. 한편, 만료 시간이 지나면 인증에 실패하고 ECU 2는 ECU 3에 대한 보안 키 인증 실패를 나타내는 메시지를 ECU 1에 보낼 수 있다.
제 2 예에서, 하나 이상의 속성은 보안 키를 사용하여 서명된 메시지가 전송될 수 있는 시간대를 규정하는 시간 속성을 포함하고, 인증 신호는 클록 신호를 포함한다. 제 2 예에서 ECU 2는 시간대를 클럭 신호와 비교하여 ECU 3의 보안 메시지를 인증하고, 메시지가 시간대 내에 전송된 경우 ECU 2는 보안 메시지를 성공적으로 인증한다. 반면에 메시지가 시간대 밖에서 전송된 경우 인증이 실패하고 ECU 2는 ECU 3에 대한 보안 키 인증 실패를 나타내는 신호를 ECU 1에 전송할 수 있다. 또한, 제 1 및 제 2 예의 맥락에서, ECU 2는 ECU 1과 통신하는 컴퓨터 시스템(예를 들어, 백엔드 서버(112))에 의해 제공되는 하나 이상의 클록 신호 업데이트에 기초하여 클록 신호를 유지할 수 있다.
세 번째 예에서, 하나 이상의 속성은 보안 키를 사용하여 서명될 수 있는 메시지 수를 제한하는 최대 메시지 수를 규정하는 메시지 수 속성을 포함하고, 인증 신호는 보안 키를 사용하여 서명된 메시지 수에 대응하는 메시지 카운터를 포함한다. 세 번째 예에서, ECU 2는 ECU 3로부터 보안 메시지를 수신할 때 메시지 카운터를 증분시키고 메시지 카운터를 최대 메시지 수와 비교함으로써 보안 메시지를 인증한다. 메시지 카운터가 최대 메시지 수를 초과하지 않으면 ECU 2는 보안 메시지를 성공적으로 인증한다. 메시지 카운터가 최대 메시지 수를 초과하면 인증이 실패하고 ECU 2는 ECU 3에 대한 보안 키 인증 실패를 나타내는 신호를 ECU 1에 보낼 수 있다. ECU 2가 유지하는 메시지 카운터는 ECU 3에 공급된 보안 키 세트 중 하나의 보안 키를 사용하여 암호화 서명된 메세지에 상응한다. 최대 메시지 수는 성공적으로 인증된 메시지 또는 성공적으로 인증되지 않은 메시지에 해당할 수 있으므로 성공적으로 인증된 메시지와 실패한 메시지에 대해 별도의 메시지 카운터가 유지될 수 있다.
제 4 예에서, 하나 이상의 속성은 ECU 3가 통신하도록 허용된 차량의 구성 요소를 명시하는 구성 요소 속성을 포함하고, ECU 2는 보안 메시지가 ECU 3가 통신하도록 허용된 차량의 구성 요소의 동작에 관련됨을 확인함으로써 ECU 3로부터 보안 메시지를 인증한다.
제 5 예에서, 하나 이상의 속성은 ECU 3가 수행하도록 허용된 동작을 명시하는 작업 속성을 포함하고, ECU 2는 보안 메시지가 ECU 3이 수행하도록 허용된 동작에 대응하는지 확인하여 보안 메시지를 인증한다.
도 11에 도시된 바와 같이, 방법(1000)은 일부 실시 예에서 동작(1016, 1018, 1020, 1022, 1024, 1026, 1028, 1030, 및 1032)을 포함할 수 있다. 일부 실시 예에 따르면, 동작(1016, 1018, 1020, 1022, 1024, 1026, 1028, 1030 및 1032)은 ECU 2가 ECU 3로부터 수신된 보안 메시지를 인증하는 동작 1014 후에 수행될 수 있다. 위에서 언급한 바와 같이, 일부 경우에, ECU 2는 동작 1014에서 보안 메시지를 성공적으로 인증하지 못할 수 있다. ECU 2가 보안 메시지를 성공적으로 인증할 수 없는 것에 응하여, ECU 2는 ECU 3에 대한 보안 키 인증 실패를 나타내는 신호를 ECU 1에 전송한다(동작 1016).
ECU 2로부터 신호를 수신하면, ECU 1는 차량의 작동을 제한한다(동작 1018계). ECU 1는 하나 이상 ECU가 하나 이상의 동작(예를 들어, 메시지 전송)을 수행하는 것을 제한하는 제한된 동작 모드로 차량에 하나 이상의 ECU를 둠으로써 차량의 동작을 제한할 수 있다. 예를 들어, ECU 1은 ECU 2가 ECU 3로부터 수신된 보안 메시지를 성공적으로 인증할 수 없는 것에 응하여 ECU 3을 제한된 작동 모드에 둘 수 있다.
또한, ECU 1는 ECU 3에 대한 인증 실패 통지를 디스플레이 장치에 디스플레이 한다(동작 1020). 디스플레이 장치는 차량의 디스플레이 장치(예를 들어, 대시 보드 디스플레이 장치) 또는 ECU 1과 통신하는 외부 컴퓨터 시스템(예를 들어, 진단 도구)의 디스플레이 장치일 수 있다. 통지(notification)는 차량의 각 ECU에 대한 인증 및 작동 상태를 제공하는 그래픽 인터페이스 내에 표시될 수 있다. 이러한 그래픽 인터페이스의 예가 도 12에 도시되며 이하에서 설명된다.
ECU 2로부터 신호를 수신하는 것에 응하여, ECU 1는 또한 보안 서브 시스템으로부터 업데이트된 인증 데이터를 요청할 수 있다(동작 1022). 업데이트된 인증 데이터는 예를 들어 보안 키에 대한 업데이트된 만료 시간을 포함할 수 있다. ECU 1은 동작 1026에서 ECU 2에 의해 수신된 업데이트된 인증 데이터를 ECU 2에 제공한다(동작 1024).
일부 실시 예에서, ECU 1는 동작 1028에서 인증 실패를 초래한 보안 키를 교체하기 위해 ECU 3에 대한 새로운 보안 키를 추가로 요청할 수 있다. ECU 1은 동작 1030에서 새로운 보안 키를 ECU 3에 공급하고, ECU 3은 동작 1032에서 새로운 보안 키를 수신한다.
그래픽 인터페이스
도 12는 일부 실시 예에 따른 보안 시스템(예를 들어, 보안 시스템(100, 200 또는 300))에 의해 제공되는 그래픽 인터페이스(1200)의 측면을 예시하는 인터페이스 다이어그램이다. 도시된 바와 같이, 그래픽 인터페이스(1200)는 각 ECU에 대한 인증 및 작동 상태와 함께 차량의 ECU 목록을 포함한다. 그래픽 인터페이스(1200)는 실패한 인증의 통지를 디스플레이할 수 있다. 예를 들어, 도 12를 참조하면, "ECU 4"가 제한된 작동 모드에 있다는 알림과 함께 "ECU 4"에 대한 인증 실패 알림이 표시된다.
컴퓨터 시스템
도 13은 예시적인 실시 예에 따라, 기계(1300)가 본 명세서에서 논의된 방법론들 중 임의의 하나 이상을 수행하게 하기 위해 명령 세트가 실행될 수 있는 컴퓨터 시스템의 형태로 기계(1300)의 도해를 도시한다. 구체적으로, 도 13은 컴퓨터 시스템의 예시적인 형태로 기계(1300)의 도식적 표현을 도시하고, 그 안에서 기계(1300)가 본원에서 논의된 하나 이상의 방법론을 수행하게 하기 위한 명령(1316)(예를 들어, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱 또는 다른 실행 코드)이 실행될 수 있다. 예를 들어, 기계(1300)는 프론트 엔드 서버(110, 210), 백엔드 서버(112, 212), OBD 시스템(120, 220, 320), IVI 시스템(122, 222, 322), 동글(312), ECU(800) 및 그 예 중 임의의 하나에 대응할 수 있다. 또한, 명령(1316)은 기계(1300)로 하여금 방법(400, 500, 600, 700, 900, 또는 1000) 중 어느 하나를 실행하게 할 수 있다. 명령(1316)은 프로그래밍 되지 않은 일반적인 기계(1300)를 상기 언급된 방식으로 기재되고 도시된 기능을 수행하도록 프로그래밍되는 특정 기계(1300)로 변환한다. 대안적인 실시 예에서, 기계(1300)는 독립형 장치로서 동작하거나 다른 기계에 커플링(예를 들어, 네트워크킹)될 수 있다. 네트워크 배치에서, 기계(1300)는 서버-클라이언트 네트워크 환경에서 서버 기계 또는 클라이언트 기계의 용량으로, 또는 피어-투-피어(또는 분산) 네트워크 환경에서 피어 기계로서 동작할 수 있다. 기계(1300)는, 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 스마트폰, 모바일 장치, 네트워크 라우터, 네트워크 스위치, 네트워크 브리지 또는 기계(1300)에 의해 취해질 동작을 명시하는 명령(1316)을 순차적으로 또는 달리 실행할 수 있는 임의의 기계를 포함할 수 있되 이에 한정되지 않는다. 또한, 단일 기계(1300)만이 예시되었지만, 용어 "기계"는 또한 본 명세서에서 논의된 방법론 중 임의의 하나 이상을 수행하기 위해 명령(1316)을 개별적으로 또는 공동으로 실행하는 기계(1300)의 집합을 포함하는 것으로 간주된다.
기계(1300)는 프로세서(1310), 메모리(1330) 및 I/O 구성요소(1350)를 포함할 수 있으며, 이는 버스(1302)를 통해 서로 통신하도록 구성될 수 있다. 예시적인 실시 예에서, 프로세서(1310)(예를 들어, 중앙 처리 장치(CPU), 축소 명령 세트 컴퓨팅(RISC) 프로세서, 복합 명령 세트 컴퓨팅(CISC) 프로세서, 그래픽 처리 장치(GPU), 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 무선 주파수 집적 회로(RFIC), 다른 프로세서 또는 이들의 임의의 적절한 조합)는 예를 들어, 프로세서(1312) 및 명령(1316)을 실행할 수 있는 프로세서(1314)를 포함할 수 있다. 용어 "프로세서"는 동시에 명령을 실행할 수 있는 2개 이상의 독립 프로세서(때로는 "코어"라고 함)를 포함할 수 있는 멀티 코어 프로세서(1310)를 포함하도록 의도된다. 도 13은 다중 프로세서를 도시하고, 기계(1300)는 단일 코어가 있는 단일 프로세서, 다중 코어가 있는 단일 프로세서(예를 들어, 다중 코어 프로세서), 단일 코어가 있는 다중 프로세서, 다중 코어가 있는 다중 프로세서 또는 임의의 조합을 포함할 수 있다.
메모리(1330)는 메인 메모리(1332), 정적 메모리(1334) 및 저장 유닛(1336)을 포함할 수 있으며, 각각은 버스(1302)를 통해 프로세서(1310)에 액세스할 수 있다. 메인 메모리(1332), 정적 메모리(1334) 및 저장 장치 유닛(1336)은 본 명세서에 설명된 방법론 또는 기능 중 임의의 하나 이상을 실행하는 명령(1316)을 저장한다. 명령(1316)은 또한 기계(1300)에 의한 그의 실행 동안, 메인 메모리(1332) 내에, 정적 메모리(1334) 내에, 저장 유닛(1336) 내에, 프로세서(1310) 중 적어도 하나 내에(예를 들어, 프로세서의 캐시 메모리 내에), 또는 임의의 적절한 이들의 조합 내에 완전히 또는 부분적으로 상주할 수 있다.
I/O 구성요소(1350)는 입력을 수신하고, 출력을 제공하고, 출력을 생성하고, 정보를 전송하고, 정보를 교환하고, 측정을 캡처하는 등의 다양한 구성 요소를 포함할 수 있다. 특정 기계(1300)에 포함된 특정 I/O 구성요소(1350)는 기계의 유형에 따라 달라질 것이다. 예를 들어, 휴대폰과 같은 휴대용 기계에는 터치 입력 장치 또는 기타 이러한 입력 메커니즘이 포함될 가능성이 있는 반면 헤드리스 서버 기계에는 이러한 터치 입력 장치가 포함되지 않을 가능성이 높다. I/O 구성요소(1350)는 도 13에 도시되지 않은 많은 다른 구성요소를 포함할 수 있다는 것을 이해할 것이다. I/O 구성요소(1350)는 단지 다음 논의를 단순화하기 위한 기능에 따라 그룹화되고, 그룹화는 결코 제한되지 않는다. 다양한 예시적인 실시 예들에서, I/O 구성요소들(1350)은 출력 구성요소들(1352) 및 입력 구성요소들(1345)을 포함할 수 있다. 출력 구성요소들(1352)은 시각적 구성요소들(예를 들어, 플라즈마 디스플레이 패널(PDP), 발광 다이오드(Light-Emitting Diode; LED) 디스플레이, 액정 디스플레이(LCD), 프로젝터 또는 음극선 관(CRT)), 음향 구성요소(예를 들어, 스피커), 기타 신호 발생기 등을 포함할 수 있다. 입력 구성 요소(1354)는 영숫자 입력 구성 요소(예를 들어, 키보드, 영숫자 입력을 수신하도록 구성된 터치 스크린, 광-광학 키보드 또는 기타 영숫자 입력 구성 요소), 포인트 기반 입력 구성 요소(예를 들어, 마우스, 터치 패드, 트랙볼, 조이스틱, 모션 센서 또는 다른 포인팅 도구), 촉각 입력 구성 요소(예를 들어, 물리적 버튼, 터치 또는 터치 제스쳐의 위치 및/또는 힘을 제공하는 터치 스크린 또는 기타 촉각 입력 구성 요소), 오디오 입력 구성 요소(예를 들어, 마이크) 등을 포함할 수 있다.
통신은 다양한 기술을 사용하여 실행될 수 있다. I/O 구성요소(1350)는 각각 커플링(1382) 및 커플링(1372)을 통해 기계(1300)를 네트워크(1380) 또는 장치(1370)에 커플링하도록 동작가능한 통신 구성요소(1364)를 포함할 수 있다. 예를 들어, 통신 구성요소(1364)는 네트워크 인터페이스 구성요소 또는 네트워크(1380)와 인터페이스하기 위한 다른 적절한 장치를 포함할 수 있다. 추가 예들에서, 통신 구성요소(1364)는 유선 통신 구성요소, 무선 통신 구성요소, 셀룰러 통신 구성요소, 근거리 통신 구성요소, Bluetooth 통신 구성 요소 및 Wi-Fi 통신 구성 요소를 포함할 수 있다. 장치(1370)는 다른 기계 또는 다양한 주변 장치(예를 들어, 범용 직렬 버스(USB)를 통해 커플링된 주변 장치) 중 임의의 것일 수 있다.
실행 가능한 명령 및 기계 저장 매체
다양한 메모리(예를 들어, 1330, 1332, 1334 및/또는 프로세서(들)(1310)의 메모리) 및/또는 저장 유닛(1336)은 본원에 기재된 방법론 또는 기능 중 임의의 하나 이상에 의해 실행되거나 활용되는 하나 이상의 명령 세트 및 데이터 구조(예를 들어, 소프트웨어)를 저장할 수 있다. 이러한 명령은 프로세서(들)(1310)에 의해 실행될 때 다양한 동작이 개시된 실시 예를 실행하게 한다.
본 명세서에서 사용되는 바와 같이, "기계 저장 매체", "장치 저장 매체" 및 "컴퓨터 저장 매체"라는 용어는 동일한 것을 의미하며 상호 교환적으로 사용될 수 있다. 용어는 실행 가능한 명령(1316) 및/또는 데이터를 저장하는 단일 또는 다중 저장 장치 및/또는 매체(예를 들어, 중앙 집중식 또는 분산 데이터베이스 및/또는 관련 캐시 및 서버)를 지칭한다. 따라서 용어는 프로세서(1310) 내부 또는 외부의 메모리를 포함하는 반도체 메모리, 광학 및 자기 매체를 포함하지만 이에 제한되지는 않다. 기계 저장 매체, 컴퓨터 저장 매체 및/또는 장치 저장 매체는 예를 들어 반도체 메모리 장치, 예를 들어 EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrical Erasable Programmable Read-Only Memory), 필드 프로그래밍 가능 게이트 어레이(FPGA) 및 플래시 메모리 장치를 포함하는 불휘발성 메모리; 내부 하드 디스크 및 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함한다. "기계 저장 매체", "컴퓨터 저장 매체" 및 "장치 저장 매체"라는 용어는 특히 반송파(carrier wave), 변조된 데이터 신호 및 기타 이러한 매체를 제외하며, 이들 중 적어도 일부는 이하에서 논의되는 "전송 매체"라는 용어에 포함된다.
전송 매체
다양한 예시적인 실시 예에서, 네트워크(1380)의 하나 이상의 부분은, 애드혹(ad hoc) 네트워크, 인트라넷, 엑스트라넷, 가상 사설 네트워크(VPN), 근거리 통신 네트워크(LAN), 무선 LAN(WLAN), 광역 네트워크(WAN), 무선 WAN(WWAN), 대도시 지역 네트워크(MAN), 인터넷, 인터넷의 일부, 공중 전화 교환망(PSTN)의 일부, 평범한 구식 전화 서비스(POTS) 네트워크, 셀룰러 전화 네트워크, 무선 네트워크, Wi-Fi® 네트워크, 다른 유형의 네트워크 또는 두 개 이상의 이러한 네트워크 조합일 수 있다. 예를 들어, 네트워크(1380) 또는 네트워크(1380)의 일부는 무선 또는 셀룰러 네트워크를 포함할 수 있으며, 커플링(1382)은 CDMA(Code Division Multiple Access) 연결, GSM(Global System for Mobile Communications) 연결 또는 셀룰러 또는 무선 커플링의 다른 유형을 포함할 수 있다. 이 예에서, 커플링(1382)은 1xRTT(Single Carrier Radio Transmission Technology), EVDO(Evolution-Data Optimized) 기술, GPRS(General Packet Radio Service) 기술, GSM 에볼루션을 위한 개선된 데이터 속도(EDGE) 기술, 3G를 포함한 3GPP(third Generation Partnership Project), 4세대 무선 (4G) 네트워크, UMTS(Universal Mobile Telecommunications System), HSPA(High-Speed Packet Access), WiMAX(Worldwide Interoperability for Microwave Access), LTE(Long Term Evolution) 표준, 다양한 표준 설정 조직에 의해 규정된 다른 기준, 기타 장거리 프로토콜 또는 기타 데이터 전송 기술과 같은 임의의 다양한 유형의 데이터 전송 기술을 실행할 수 있다.
명령(1316)은 네트워크 인터페이스 장치(예를 들어, 통신 구성요소(1364)에 포함된 네트워크 인터페이스 구성요소)를 통해 전송 매체를 사용하고 다수의 잘 알려진 전송 프로토콜들 중 임의의 하나의 프로토콜(예를 들어, 하이퍼텍스트 전송 프로토콜(HTTP))을 사용하여 네트워크(1380)를 통해 전송 또는 수신될 수 있다. 유사하게, 명령(1316)은 커플링(1372)(예를 들어, 피어-투-피어 커플링)을 통해 장치(1370)로 전송 매체를 사용하여 전송 또는 수신될 수 있다. 용어 "전송 매체" 및 "신호 매체"는 동일한 것을 의미하고 본 개시에서 상호 교환적으로 사용될 수 있다. "전송 매체" 및 "신호 매체"라는 용어는 기계(1300)에 의한 실행을 위한 명령(1316)을 저장, 인코딩 또는 전달할 수 있는 모든 무형 매체를 포함하며 그러한 소프트웨어의 통신을 용이하게 하기 위해 디지털 또는 아날로그 통신 신호 또는 기타 무형 매체를 포함하는 것으로 간주된다. 따라서 "전송 매체" 및 "신호 매체"라는 용어는 변조된 데이터 신호, 반송파 등의 모든 형태를 포함하는 것으로 간주된다. 용어 "변조된 데이터 신호"는 신호의 정보를 인코딩하는 방식으로 설정되거나 변경된 특성 중 하나 이상을 갖는 신호를 의미한다.
컴퓨터 판독 가능 매체
"기계 판독 가능 매체", "컴퓨터 판독 가능 매체" 및 "장치 판독 가능 매체"라는 용어는 동일한 것을 의미하며 본 개시에서 상호 교환적으로 사용될 수 있다. 이 용어는 기계 저장 매체와 전송 매체를 모두 포함하도록 정의된다. 따라서 이 용어는 저장 장치/매체 및 반송파/변조된 데이터 신호를 모두 포함한다.
본 명세서에 설명된 예시적인 방법의 다양한 동작은 관련 동작을 수행하도록 일시적으로 구성되거나 (예를 들어, 소프트웨어에 의해) 영구적으로 구성되는 하나 이상의 프로세서에 의해 적어도 부분적으로 수행될 수 있다. 유사하게, 여기에 설명된 방법은 적어도 부분적으로 프로세서에 의해 실행될 수 있다. 예를 들어, 방법의 동작 중 적어도 일부는 하나 이상의 프로세서에 의해 수행될 수 있다. 특정 작업의 성능은 하나 이상의 프로세서 간에 분산될 수 있으며 단일 시스템 내에 있을 뿐만 아니라 여러 시스템에 배포될 수 있다. 일부 예시적인 실시 예에서, 프로세서 또는 프로세서들은 단일 위치(예를 들어, 가정환경, 사무실 환경 또는 서버 팜 내)에 위치할 수 있는 반면, 다른 실시 예에서 프로세서는 다수의 위치에 분산될 수 있다.
본 개시의 실시 예가 특정 예시적인 실시 예를 참조하여 설명되었지만, 본 발명의 더 넓은 범위를 벗어나지 않고 이러한 실시 예에 대해 다양한 수정 및 변경이 이루어질 수 있음은 자명할 것이다. 따라서, 명세서 및 도면은 제한적인 의미가 아닌 예시적인 의미로 간주되어야 한다. 본 명세서의 일부를 형성하는 첨부된 도면은 주제가 실시될 수 있는 특정 실시 예를 제한이 아닌 예시로서 도시한다. 예시된 실시 예는 당업자가 본 명세서에 개시된 교시를 실시할 수 있도록 충분히 상세하게 설명된다. 다른 실시 예가 이용되고 그로부터 유도될 수 있어서, 본 개시의 범위를 벗어나지 않고 구조적 및 논리적 대체 및 변경이 이루어질 수 있다. 따라서, 이 상세한 설명은 제한적인 의미로 받아들여서는 안되며, 다양한 실시 예의 범위는 첨부된 청구 범위에 의해서만 정의되며, 이러한 청구 범위가 부여되는 등가물의 전체 범위에 의해 정의된다.
본 명세서에서 특정 실시 예가 예시되고 설명되었지만, 동일한 목적을 달성하기 위해 계산된 임의의 배열이 도시된 특정 실시 예를 대체할 수 있다는 것을 이해해야 한다. 본 개시는 다양한 실시 예의 임의의 그리고 모든 적응 또는 변형을 포함하도록 의도된다. 전술한 실시 예의 조합 및 본 명세서에 구체적으로 설명되지 않은 다른 실시 예는 상기 설명을 검토하면 당업자에게 명백할 것이다.
이 문서에서, 용어 "하나" 또는 "하나의"는 특허 문서에서 일반적으로 사용되며, 용어 "적어도 하나" 또는 "하나 이상의"의 임의의 다른 경우 또는 용법과 무관하게 하나 이상을 포함하도록 사용된다. 이 문서에서 "또는"이라는 용어는 비배타적인 의미로 사용되므로, 달리 명시되지 않는 한 용어 "A 또는 B"는 "A이지만 B는 아님", "B이지만 A는 아님" 및 "A 및 B"가 포함된다. 첨부된 청구 범위에서, "포함하는" 및 "여기서"라는 용어는 각각의 용어 "포함하는" 및 "여기에"의 평이한 영어 등가물로 사용된다. 또한, 다음 청구 범위에서 "포함하는" 및 "포함하고"라는 용어는 제한이 없다. 즉, 클레임에서 이러한 용어 뒤에 나열된 요소 외에 요소를 포함하는 시스템, 장치, 물품 또는 프로세스는 여전히 해당 클레임의 범위 내에 있는 것으로 간주된다.

Claims (20)

  1. 시스템으로서,
    차량의 복수의 ECU 중 제1 전자 제어 유닛(ECU);
    차량의 복수의 ECU 중 제2 ECU; 및
    차량의 하나 이상의 프로세서를 포함하고;
    상기 제1 ECU는,
    제2 ECU가 차량의 복수의 ECU 중에서 더 이상 이전 ECU의 교체가 아니라는 표시를 하나 이상의 프로세서에 제공하는 동작을 포함하는 제1 동작들을 수행하도록 구성되고;
    상기 하나 이상의 프로세서는,
    이전 ECU의 교체인 것으로 제1 ECU에 의해 표시된 제2 ECU를 검증하는 동작을 포함하는 제2 동작들을 수행하도록 구성되고; 또한
    상기 제1 ECU는,
    하나 이상의 프로세서로부터, 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트에 액세스하는 동작;
    이전 ECU의 교체인 것으로 제1 ECU에 의해 표시된 제2 ECU에 대응하는 하나 이상의 보안 키들의 액세스된 세트에 기초하여 제2 ECU가 복수의 ECU 중 하나 이상의 다른 ECU와 연결되게 하는 동작;
    연결된 제2 ECU에 대응하는 디지털 인증서를 연결된 제2 ECU에 제공하는 동작; 및
    연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여 제2 ECU에 펌웨어를 설치하는 동작을 더 포함하는 제1 동작들을 수행하도록 구성되는, 시스템.
  2. 청구항 1에 있어서,
    상기 제1 ECU는,
    연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여, 제2 ECU에 설치될 펌웨어를 요청하는 동작을 더 포함하는 제1 동작들을 수행하도록 구성되고; 여기서,
    제2 ECU에 펌웨어를 설치하는 것은 연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여 제1 ECU에 의해 요청된 펌웨어를 설치하는 것인, 시스템.
  3. 청구항 1에 있어서,
    상기 제1 ECU는,
    차량의 보안 서브 시스템으로부터, 연결된 제2 ECU에 대응하는 디지털 인증서에 액세스하는 동작을 더 포함하는 제1 동작들을 수행하도록 구성되고; 여기서,
    연결된 제2 ECU를 제공하는 것은 차량의 보안 서브 시스템으로부터 액세스된 디지털 인증서를 연결된 제2 ECU에 제공하는 것인, 시스템.
  4. 청구항 1에 있어서,
    상기 제1 ECU는,
    연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여, 제2 ECU에 설치될 펌웨어에 액세스하는 동작을 더 포함하는 제1 동작들을 수행하도록 구성되고; 여기서,
    제2 ECU에 펌웨어를 설치하는 것은 연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여 제1 ECU에 의해 액세스된 펌웨어를 설치하는 것인, 시스템.
  5. 청구항 1에 있어서,
    차량의 하나 이상의 프로세서에 의해, 이전 ECU의 교체인 것으로 제1 ECU에 의해 표시된 제2 ECU를 검증하는 것은 차량의 보안 서브 시스템이 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트를 생성하게 하고;
    상기 하나 이상의 프로세서는, 이전 ECU의 교체인 것으로 제1 ECU에 의해 표시된 제2 ECU의 검증에 응하여, 보안 서브 시스템에 의해 생성된 하나 이상의 보안 키들의 세트를 제공함으로써 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트를 제1 ECU에 제공하는 동작을 더 포함하는 제2 동작들을 수행하도록 구성되는, 시스템.
  6. 청구항 1에 있어서,
    상기 하나 이상의 프로세서는,
    차량의 보안 서브 시스템으로부터, 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트에 액세스하는 동작; 및
    차량의 보안 서브 시스템으로부터 액세스된 하나 이상의 보안 키들의 세트를 제공함으로써 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트를 제1 ECU에 제공하는 동작을 더 포함하는 제2 동작들을 수행하도록 구성되는, 시스템.
  7. 청구항 1에 있어서,
    상기 하나 이상의 프로세서는,
    차량의 보안 서브 시스템으로부터, 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트에 액세스하는 동작; 및
    제2 ECU를 복수의 ECU 중 하나 이상의 다른 ECU와 연결시키는 커맨드를 제1 ECU에 발행하는 동작을 더 포함하는 제2 동작들을 수행하도록 구성되고; 여기서,
    제1 ECU에 의해, 제2 ECU가 복수의 ECU 중 하나 이상의 다른 ECU와 연결되게 하는 것은 차량의 하나 이상의 프로세서에 의해 제1 ECU에 발행된 커맨드에 응하는 것인, 시스템.
  8. 청구항 1에 있어서,
    상기 하나 이상의 프로세서는,
    차량의 보안 서브 시스템에 대한 보안 연결을 확립하는 동작 - 보안 서브 시스템은 차량의 하나 이상의 프로세서에 대한 보안 연결의 확립에 기초하여 차량의 하나 이상의 프로세서를 검증함 - 을 더 포함하는 제2 동작들을 수행하도록 구성되고; 여기서,
    차량의 하나 이상의 프로세서에 의해, 이전 ECU의 교체인 것으로 제1 ECU에 의해 표시된 제2 ECU을 검증하는 것은 보안 서브 시스템에 의해 차량의 하나 이상의 프로세서를 검증하는 것에 기초하는, 시스템.
  9. 청구항 1에 있어서,
    제1 ECU에 의해, 연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여 제2 ECU에 펌웨어를 설치하는 것은 제2 ECU를 차량의 동작을 허용하지 않는 제1 상태로부터 차량의 동작을 허용하는 제2 상태로 변경하는 것인, 시스템.
  10. 방법으로서,
    차량의 복수의 ECU 중 제1 전자 제어 유닛(ECU)에 의해 차량의 하나 이상의 프로세서에, 복수의 ECU 중 제2 ECU가 차량의 복수의 ECU 중에서 더 이상 이전 ECU의 교체가 아니라는 표시를 제공하는 단계 - 차량의 하나 이상의 프로세서는 이전 ECU의 교체인 것으로 제1 ECU에 의해 표시된 제2 ECU를 검증함 - ;
    제1 ECU에 의해, 차량의 하나 이상의 프로세서로부터, 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트에 액세스하는 단계;
    제1 ECU에 의해, 이전 ECU의 교체인 것으로 제1 ECU에 의해 표시된 제2 ECU에 대응하는 하나 이상의 보안 키들의 액세스된 세트에 기초하여 제2 ECU가 복수의 ECU 중 하나 이상의 다른 ECU와 연결되게 하는 단계;
    제1 ECU에 의해, 연결된 제2 ECU에 대응하는 디지털 인증서를 연결된 제2 ECU에 제공하는 단계; 및
    제1 ECU에 의해, 연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여 제2 ECU에 펌웨어를 설치하는 단계를 포함하는, 방법.
  11. 청구항 10에 있어서,
    제1 ECU에 의해, 연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여 제2 ECU에 설치될 펌웨어를 요청하는 단계를 더 포함하고; 여기서,
    제1 ECU에 의해 제2 ECU에 펌웨어를 설치하는 것은 연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여 제1 ECU에 의해 요청된 펌웨어를 설치하는 것인, 방법.
  12. 청구항 10에 있어서,
    제1 ECU에 의해, 차량의 보안 서브 시스템으로부터, 연결된 제2 ECU에 대응하는 디지털 인증서에 액세스하는 단계를 더 포함하고; 여기서,
    제1 ECU에 의해, 연결된 제2 ECU를 제공하는 것은 차량의 보안 서브 시스템으로부터 액세스된 디지털 인증서를 연결된 제2 ECU에 제공하는 것인, 방법.
  13. 청구항 10에 있어서,
    제1 ECU에 의해, 연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여 제2 ECU에 설치될 펌웨어에 액세스하는 단계를 더 포함하고; 여기서,
    제1 ECU에 의해 제2 ECU에 펌웨어를 설치하는 것은 연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여 제1 ECU에 의해 액세스된 펌웨어를 설치하는 것인, 방법.
  14. 청구항 10에 있어서,
    제1 ECU에 의해, 연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여 제2 ECU에 펌웨어를 설치하는 것은 제2 ECU를 차량의 동작을 허용하지 않는 제1 상태로부터 차량의 동작을 허용하는 제2 상태로 변경하는 것인, 방법.
  15. 방법으로서,
    차량의 하나 이상의 프로세서에 의해, 차량의 복수의 ECU 중 제1 전자 제어 유닛(ECU)이, 차량의 복수의 ECU 중 제2 ECU가 차량의 복수의 ECU 중에서 더 이상 이전 ECU의 교체가 아니라는 것을 표시했음을 검출하는 단계;
    차량의 하나 이상의 프로세서에 의해, 이전 ECU의 교체인 것으로 제1 ECU에 의해 표시된 제2 ECU를 검증하는 단계; 및
    차량의 하나 이상의 프로세서에 의해, 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트를 제1 ECU에 제공하는 단계 - 제1 ECU는 이전 ECU의 교체인 것으로 제1 ECU에 의해 표시된 제2 ECU에 대응하는 하나 이상의 보안 키들의 제공된 세트에 기초하여 제2 ECU가 복수의 ECU 중 하나 이상의 다른 ECU와 연결되게 하고, 제1 ECU는 연결된 제2 ECU에 대응하는 디지털 인증서를 연결된 제2 ECU에 제공하고, 연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여 제2 ECU에 펌웨어를 설치함 - 를 포함하는, 방법.
  16. 청구항 15에 있어서,
    차량의 하나 이상의 프로세서에 의해, 이전 ECU의 교체인 것으로 제1 ECU에 의해 표시된 제2 ECU를 검증하는 것은 차량의 보안 서브 시스템이 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트를 생성하게 하고;
    차량의 하나 이상의 프로세스에 의해, 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트를 제1 ECU에 제공하는 것은 이전 ECU의 교체인 것으로 제1 ECU에 의해 표시된 제2 ECU의 검증에 응하여 보안 서브 시스템에 의해 생성된 하나 이상의 보안 키들의 세트를 제공하는 것인, 방법.
  17. 청구항 15에 있어서,
    차량의 하나 이상의 프로세서에 의해, 차량의 보안 서브 시스템으로부터, 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트에 액세스하는 단계를 더 포함하고; 여기서,
    차량의 하나 이상의 프로세서에 의해, 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트를 제1 ECU에 제공하는 것은 차량의 보안 서브 시스템으로부터 액세스된 하나 이상의 보안 키들의 세트를 제공하는 것인, 방법.
  18. 청구항 15에 있어서,
    차량의 하나 이상의 프로세서에 의해, 차량의 보안 서브 시스템으로부터, 제2 ECU에 대응하는 하나 이상의 보안 키들의 세트에 액세스하는 단계; 및
    차량의 하나 이상의 프로세서에 의해, 제2 ECU를 복수의 ECU 중 하나 이상의 다른 ECU와 연결시키는 커맨드를 제1 ECU에 발행하는 단계를 더 포함하고; 여기서,
    제1 ECU는 차량의 하나 이상의 프로세서에 의해 제1 ECU에 발행된 커맨드에 응하여 제2 ECU가 복수의 ECU 중 하나 이상의 다른 ECU와 연결되게 하는, 방법.
  19. 청구항 15에 있어서,
    차량의 하나 이상의 프로세서에 의해, 차량의 보안 서브 시스템에 대한 보안 연결을 확립하는 단계 - 보안 서브 시스템은 차량의 하나 이상의 프로세서에 대한 보안 연결의 확립에 기초하여 차량의 하나 이상의 프로세서를 검증함 - 를 더 포함하고; 여기서,
    차량의 하나 이상의 프로세서에 의해, 이전 ECU의 교체인 것으로 제1 ECU에 의해 표시된 제2 ECU를 검증하는 것은 보안 서브 시스템에 의해 차량의 하나 이상의 프로세서를 검증하는 것에 기초하는, 방법.
  20. 청구항 15에 있어서,
    제1 ECU에 의해, 연결된 제2 ECU에 대응하는 제공된 디지털 인증서에 기초하여 제2 ECU에 펌웨어를 설치하는 것은 제2 ECU를 차량의 동작을 허용하지 않는 제1 상태로부터 차량의 동작을 허용하는 제2 상태로 변경하는 것인, 방법.
KR1020237017622A 2018-01-29 2019-01-25 차량 내 전자 제어 유닛들 간의 보안 통신 KR102658765B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247012420A KR20240055869A (ko) 2018-01-29 2019-01-25 차량 내 전자 제어 유닛들 간의 보안 통신

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201862623304P 2018-01-29 2018-01-29
US62/623,304 2018-01-29
US16/027,681 2018-07-05
US16/027,681 US11178158B2 (en) 2018-01-29 2018-07-05 Secure communication between in-vehicle electronic control units
KR1020207024956A KR102538435B1 (ko) 2018-01-29 2019-01-25 차량 내 전자 제어 유닛들 간의 보안 통신
PCT/EP2019/051877 WO2019145488A1 (en) 2018-01-29 2019-01-25 Secure communication between in-vehicle electronic control units

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207024956A Division KR102538435B1 (ko) 2018-01-29 2019-01-25 차량 내 전자 제어 유닛들 간의 보안 통신

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247012420A Division KR20240055869A (ko) 2018-01-29 2019-01-25 차량 내 전자 제어 유닛들 간의 보안 통신

Publications (2)

Publication Number Publication Date
KR20230079487A true KR20230079487A (ko) 2023-06-07
KR102658765B1 KR102658765B1 (ko) 2024-04-18

Family

ID=67393826

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020207024956A KR102538435B1 (ko) 2018-01-29 2019-01-25 차량 내 전자 제어 유닛들 간의 보안 통신
KR1020237017622A KR102658765B1 (ko) 2018-01-29 2019-01-25 차량 내 전자 제어 유닛들 간의 보안 통신
KR1020247012420A KR20240055869A (ko) 2018-01-29 2019-01-25 차량 내 전자 제어 유닛들 간의 보안 통신

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207024956A KR102538435B1 (ko) 2018-01-29 2019-01-25 차량 내 전자 제어 유닛들 간의 보안 통신

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020247012420A KR20240055869A (ko) 2018-01-29 2019-01-25 차량 내 전자 제어 유닛들 간의 보안 통신

Country Status (7)

Country Link
US (2) US11178158B2 (ko)
EP (1) EP3747172A1 (ko)
JP (1) JP7159328B2 (ko)
KR (3) KR102538435B1 (ko)
CN (2) CN115776385A (ko)
BR (1) BR112020015133A2 (ko)
WO (1) WO2019145488A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11178158B2 (en) 2018-01-29 2021-11-16 Nagravision S.A. Secure communication between in-vehicle electronic control units
AT521914B1 (de) * 2018-12-13 2020-10-15 Avl List Gmbh Kommunikationsmodul
US11290437B2 (en) * 2018-12-27 2022-03-29 Beijing Voyager Technology Co., Ltd. Trusted platform protection in an autonomous vehicle
US11356256B2 (en) * 2019-03-25 2022-06-07 Micron Technology, Inc. Secure vehicular part communication
KR20200119601A (ko) * 2019-04-10 2020-10-20 현대모비스 주식회사 차량의 바이너리 데이터 처리 장치 및 방법
CA3127711A1 (en) * 2019-04-25 2020-10-29 Deere & Company Systems, methods and controllers for secure communications
US11368471B2 (en) * 2019-07-01 2022-06-21 Beijing Voyager Technology Co., Ltd. Security gateway for autonomous or connected vehicles
US11126752B2 (en) * 2019-09-04 2021-09-21 Fresenius Medical Care Holdings, Inc. Authentication of medical device computing systems by using metadata signature
DE102019216462A1 (de) * 2019-10-25 2021-04-29 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben einer Recheneinrichtung
US11080387B1 (en) * 2020-03-16 2021-08-03 Integrity Security Services Llc Validation of software residing on remote computing devices
EP4120622A4 (en) * 2020-04-15 2023-04-26 Huawei Technologies Co., Ltd. DATA VERIFICATION METHOD AND APPARATUS
US20210362735A1 (en) * 2020-05-20 2021-11-25 Intertrust Technologies Corporation Policy managed vehicle operation systems and methods
CN111817849A (zh) * 2020-06-30 2020-10-23 宝能(广州)汽车研究院有限公司 电子控制单元ecu及其安全通信方法、系统
US11589326B2 (en) * 2020-07-30 2023-02-21 Nokia Technologies Oy Secure clock source as a service in a communication system
CN112131572B (zh) * 2020-08-31 2022-12-27 华为技术有限公司 车载设备的控制方法、车载设备及车辆系统
US11509466B2 (en) 2021-01-14 2022-11-22 Ford Global Technologies, Llc Transmission of authentication keys
US11791999B2 (en) 2021-02-18 2023-10-17 Ford Global Technologies, Llc Vehicle electronic control unit authentication
US11804962B2 (en) * 2021-04-29 2023-10-31 GM Global Technology Operations LLC System and method for establishing an in-vehicle cryptographic manager
KR20220158523A (ko) * 2021-05-24 2022-12-01 현대자동차주식회사 차량 시스템, 서버 및 차량 통신 보안 방법
WO2023191195A1 (ko) * 2022-03-31 2023-10-05 엘지전자 주식회사 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치
US20240073037A1 (en) * 2022-08-31 2024-02-29 Toyota Motor North America, Inc. Internal certificate authority for electronic control unit
WO2024070044A1 (ja) * 2022-09-28 2024-04-04 パナソニックオートモーティブシステムズ株式会社 検証システム、検証方法、及び、プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130076519A (ko) * 2011-12-28 2013-07-08 한국단자공업 주식회사 스마트카의 보안시스템 및 보안방법
JP2015136107A (ja) * 2014-01-06 2015-07-27 アーガス サイバー セキュリティ リミテッド グローバル自動車安全システム
EP3041196A1 (en) * 2015-01-01 2016-07-06 Harman Becker Automotive Systems GmbH Method and apparatus for connecting a mobile communication device to a head unit of a vehicle
US9705678B1 (en) * 2014-04-17 2017-07-11 Symantec Corporation Fast CAN message authentication for vehicular systems

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3139702A1 (de) 1981-10-06 1983-04-21 Boehringer Mannheim Gmbh, 6800 Mannheim Gefaess zur handhabung von pastoesem probenmaterial
US7805612B2 (en) * 2005-12-02 2010-09-28 Gm Global Technology Operations, Inc. Use of global clock to secure and synchronize messages in XM and SMS messages to a vehicle
US8090949B2 (en) * 2008-03-13 2012-01-03 GM Global Technology Operations LLC Certificate assignment strategies for efficient operation of the PKI-based security architecture in a vehicular network
US8275891B2 (en) * 2009-07-20 2012-09-25 At&T Intellectual Property I, L.P. Method and apparatus for social networking in a dynamic environment
JP5310761B2 (ja) * 2011-03-04 2013-10-09 トヨタ自動車株式会社 車両ネットワークシステム
JP5479408B2 (ja) * 2011-07-06 2014-04-23 日立オートモティブシステムズ株式会社 車載ネットワークシステム
US9280653B2 (en) * 2011-10-28 2016-03-08 GM Global Technology Operations LLC Security access method for automotive electronic control units
EP3142289B1 (en) * 2014-05-08 2020-10-07 Panasonic Intellectual Property Corporation of America In-vehicle network system, electronic control unit, and irregularity detection method
US9460567B2 (en) * 2014-07-29 2016-10-04 GM Global Technology Operations LLC Establishing secure communication for vehicle diagnostic data
US9825937B2 (en) * 2014-09-23 2017-11-21 Qualcomm Incorporated Certificate-based authentication
CN110377310B (zh) * 2014-11-12 2023-04-07 松下电器(美国)知识产权公司 更新管理方法、更新管理装置以及计算机可读取的记录介质
KR20160093764A (ko) * 2015-01-29 2016-08-09 주식회사 아나스타시스 Otp rom을 활용하는 ecu 보안 통신 시스템
DE102015209116A1 (de) * 2015-05-19 2016-11-24 Robert Bosch Gmbh Verfahren und Aktualisierungsgateway zum Aktualisieren eines eingebetteten Steuergerätes
WO2017022821A1 (ja) * 2015-08-05 2017-02-09 Kddi株式会社 管理装置、管理システム、鍵生成装置、鍵生成システム、鍵管理システム、車両、管理方法、鍵生成方法、及びコンピュータプログラム
JP6505318B2 (ja) 2015-09-10 2019-04-24 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングRobert Bosch Gmbh 車両の電子制御ユニットへの不正アクセスイベントの通知
JP6217728B2 (ja) * 2015-10-19 2017-10-25 トヨタ自動車株式会社 車両システムおよび認証方法
KR20170055648A (ko) * 2015-11-12 2017-05-22 주식회사 미래테크놀로지 자동차 내부 네트웍의 보안통신장치
KR102210438B1 (ko) * 2015-12-27 2021-02-01 한국전자기술연구원 대칭키 알고리즘을 이용한 경량 암복호화 방법 및 시스템
JP6260067B1 (ja) 2016-08-09 2018-01-17 Kddi株式会社 管理システム、鍵生成装置、車載コンピュータ、管理方法、及びコンピュータプログラム
CN106533655B (zh) * 2016-10-27 2020-07-31 江苏大学 一种车内网ecu安全通信的方法
US10516683B2 (en) * 2017-02-15 2019-12-24 Ford Global Technologies, Llc Systems and methods for security breach detection in vehicle communication systems
GB2561256A (en) * 2017-04-05 2018-10-10 Stmicroelectronics Grenoble2 Sas Apparatus for use in a can system
JP6625269B2 (ja) * 2017-05-09 2019-12-25 三菱電機株式会社 車載認証システム、車両通信装置、認証管理装置、車載認証方法および車載認証プログラム
US20190068361A1 (en) * 2017-08-30 2019-02-28 Ford Global Technologies, Llc In-vehicle group key distribution
US10009325B1 (en) * 2017-12-07 2018-06-26 Karamba Security End-to-end communication security
US11178158B2 (en) 2018-01-29 2021-11-16 Nagravision S.A. Secure communication between in-vehicle electronic control units

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130076519A (ko) * 2011-12-28 2013-07-08 한국단자공업 주식회사 스마트카의 보안시스템 및 보안방법
JP2015136107A (ja) * 2014-01-06 2015-07-27 アーガス サイバー セキュリティ リミテッド グローバル自動車安全システム
US9705678B1 (en) * 2014-04-17 2017-07-11 Symantec Corporation Fast CAN message authentication for vehicular systems
EP3041196A1 (en) * 2015-01-01 2016-07-06 Harman Becker Automotive Systems GmbH Method and apparatus for connecting a mobile communication device to a head unit of a vehicle

Also Published As

Publication number Publication date
KR102658765B1 (ko) 2024-04-18
US20190238555A1 (en) 2019-08-01
KR20240055869A (ko) 2024-04-29
US11178158B2 (en) 2021-11-16
US20220094695A1 (en) 2022-03-24
CN115776385A (zh) 2023-03-10
EP3747172A1 (en) 2020-12-09
KR102538435B1 (ko) 2023-05-31
JP2021512543A (ja) 2021-05-13
WO2019145488A1 (en) 2019-08-01
JP7159328B2 (ja) 2022-10-24
CN111788811B (zh) 2022-11-25
US11916924B2 (en) 2024-02-27
KR20200135775A (ko) 2020-12-03
CN111788811A (zh) 2020-10-16
BR112020015133A2 (pt) 2021-01-05

Similar Documents

Publication Publication Date Title
KR102538435B1 (ko) 차량 내 전자 제어 유닛들 간의 보안 통신
CN107040368B (zh) 用于车辆的受保护的通信的方法
EP3883212B1 (en) Device upgrade method and related device
KR102347659B1 (ko) 디바이스의 보안 프로비저닝 및 관리
EP3319266B1 (en) Software distribution processing device, vehicle, software distribution processing method, and computer program
WO2020020184A1 (en) Systems and methods for managing wireless communications by a vehicle
EP3403246B1 (en) A device and method for collecting user-based insurance data in vehicles
CN108989024B (zh) 控制ecu间通信的方法、装置、设备以及相应车辆
EP3926500B1 (en) Device upgrade method and related device
US20200169422A1 (en) System and method for cryptographic protections of customized computing environment
CN110708388B (zh) 用于提供安全服务的车身安全锚节点设备、方法以及网络系统
US20140075198A1 (en) Fully authenticated content transmission from a provider to a recipient device via an intermediary device
CN111131313A (zh) 智能网联汽车更换ecu的安全保障方法及系统
KR20150074414A (ko) 펌웨어 업그레이드 방법 및 그 시스템
CN113439425B (zh) 报文传输方法及装置
KR102389727B1 (ko) 차량 내 전자식 제어기 보안성 평가 방법 및 그 장치
CN103414567A (zh) 信息监控方法及系统
US20240195813A1 (en) Secure communication between in-vehicle electronic control units
CN114980012A (zh) 一种车联网设备认证方法、装置及存储介质
JP2017011482A (ja) 管理システム、車両、管理装置、車載コンピュータ、管理方法、及びコンピュータプログラム
WO2022241799A1 (zh) 一种密钥生成方法及装置
CN103414565A (zh) 输出方法及安全设备、响应方法及系统、执行方法及系统
CN103414566A (zh) 输出方法及安全设备、响应方法及系统、执行方法及系统
CN115996375A (zh) 一种实现车辆空中下载的方法及系统
CN112448809A (zh) 密钥配置系统及相关方法和产品

Legal Events

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