KR20200143959A - 차량 업데이트 관리 장치 및 방법 - Google Patents

차량 업데이트 관리 장치 및 방법 Download PDF

Info

Publication number
KR20200143959A
KR20200143959A KR1020190071689A KR20190071689A KR20200143959A KR 20200143959 A KR20200143959 A KR 20200143959A KR 1020190071689 A KR1020190071689 A KR 1020190071689A KR 20190071689 A KR20190071689 A KR 20190071689A KR 20200143959 A KR20200143959 A KR 20200143959A
Authority
KR
South Korea
Prior art keywords
rom data
target controller
controller
hash value
internal storage
Prior art date
Application number
KR1020190071689A
Other languages
English (en)
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 KR1020190071689A priority Critical patent/KR20200143959A/ko
Publication of KR20200143959A publication Critical patent/KR20200143959A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Mechanical Engineering (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 차량 업데이트 관리 장치 및 방법에 관한 것으로서, 본 발명에 따른 장치는, 리프로그래밍 수행 대상 제어기 중 보안 기능을 지원하지 않는 제어기의 롬 데이터 내 빈 공간에 랜덤 데이터를 삽입하여 내부 저장소에 저장하는 데이터 처리부, 상기 내부 저장소에 저장된 롬 데이터를 기반으로 대상 제어기의 리프로그래밍을 수행하는 제어부, 및 상기 내부 저장소에 저장된 롬 데이터를 기반으로 리프로그래밍이 완료된 상기 대상 제어기의 롬 데이터에 대한 무결성을 진단하는 진단부를 포함한다.

Description

차량 업데이트 관리 장치 및 방법{APPARATUS AND METHOD FOR MANAGING UPDATE OF VEHICLE}
본 발명은 차량 업데이트 관리 장치 및 방법에 관한 것이다.
OTA(Over The Air)를 이용한 제어기 무선 업데이트는 관리용 제어기가 서버로부터 펌웨어를 무선으로 수신하여 리프로그래밍 수행 대상이 되는 제어기를 업데이트 하는 기술이다.
일반적으로, 제어기 무선 업데이트는 기술자가 없는 상황에서 차량 내부의 관리 제어기가 각 제어기들의 리프로그래밍을 수행한다.
차량에 구비된 일부 제어기들은 보안을 위해 내부에 전용 H/W 모듈을 가지고 펌웨어 부팅 전 제어기 내부 펌웨어의 무결성을 검사한다.
하지만, 일부의 저가형 제어기는 내부에 전용 H/W 모듈을 가지고 있지 않기 때문에 제어기의 펌웨어가 보안 위협에 쉽게 노출될 수 있다.
본 발명의 목적은, 내부에 보안 모듈을 구비하지 않은 저가형 제어기의 펌웨어에 대한 무결성 검증이 가능하도록 함으로써 보안 위협을 최소화하도록 한, 차량 업데이트 관리 장치 및 방법을 제공함에 있다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재들로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 차량 업데이트 관리 장치는, 리프로그래밍 수행 대상 제어기 중 보안 기능을 지원하지 않는 제어기의 롬 데이터 내 빈 공간에 랜덤 데이터를 삽입하여 내부 저장소에 저장하는 데이터 처리부, 상기 내부 저장소에 저장된 롬 데이터를 기반으로 대상 제어기의 리프로그래밍을 수행하는 제어부, 및 상기 내부 저장소에 저장된 롬 데이터를 기반으로 리프로그래밍이 완료된 상기 대상 제어기의 롬 데이터에 대한 무결성을 진단하는 진단부를 포함하는 것을 특징으로 한다.
상기 진단부는, 상기 내부 저장소에 저장된 롬 데이터에 대한 연속된 임의의 두 주소값을 생성하고, 상기 임의의 두 주소값 내 바이너리를 기반으로 해시값을 생성하는 것을 특징으로 한다.
상기 진단부는, 상기 대상 제어기로 상기 임의의 두 주소값에 대한 해시값을 요청하는 것을 특징으로 한다.
상기 진단부는, 상기 대상 제어기로부터 상기 임의의 두 주소값에 대응하는 해시값이 수신되면, 상기 내부 저장소에 저장된 롬 데이터 기반의 해시값과 비교하여 상기 대상 제어기의 롬 데이터에 대한 무결성을 진단하는 것을 특징으로 한다.
상기 진단부는, 상기 대상 제어기로부터 수신된 해시값이 상기 내부 저장소에 저장된 롬 데이터 기반의 해시값과 일치하지 않으면 유효하지 않은 해시값으로 판단하여 상기 대상 제어기의 롬 데이터에 대해 이상 진단하는 것을 특징으로 한다.
상기 진단부는, 상기 대상 제어기로부터 기준 시간 내에 해시값이 수신되지 않으면, 상기 대상 제어기의 롬 데이터에 대해 이상 진단하는 것을 특징으로 한다.
상기 진단부는, 상기 대상 제어기의 리프로그래밍이 완료된 후 상기 차량이 구동되면, 상기 차량의 구동이 종료될 때까지 소정 주기 마다 상기 대상 제어기의 롬 데이터에 대한 무결성을 진단하는 것을 특징으로 한다.
상기 데이터 처리부는, 상기 대상 제어기의 메모리 맵을 이용하여 상기 롬 데이터 내 빈 공간에 랜덤 데이터를 삽입하는 것을 특징으로 한다.
상기 대상 제어기의 롬 데이터는, 외부의 진단 장치로부터 다운로드 된 것을 특징으로 한다.
상기 대상 제어기의 롬 데이터는, 무선 업데이트 서버로부터 다운로드 된 것을 특징으로 한다.
또한, 상기의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 차량 업데이트 관리 방법은, 리프로그래밍 수행 대상 제어기 중 보안 기능을 지원하지 않는 제어기의 롬 데이터 내 빈 공간에 랜덤 데이터를 삽입하여 내부 저장소에 저장하는 단계, 상기 내부 저장소에 저장된 롬 데이터를 기반으로 대상 제어기의 리프로그래밍을 수행하는 단계, 및 상기 내부 저장소에 저장된 롬 데이터를 기반으로 리프로그래밍이 완료된 상기 대상 제어기의 롬 데이터에 대한 무결성을 진단하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 내부에 보안 모듈을 구비하지 않은 저가형 제어기의 펌웨어에 대한 무결성 검증이 가능하도록 함으로써 보안 위협을 최소화할 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 차량 업데이트 관리 장치가 적용된 차량 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 차량 업데이트 관리 장치의 구성을 도시한 도면이다.
도 3a 내지 도 6은 본 발명의 일 실시예에 따른 차량 업데이트 관리 장치의 동작을 설명하는데 참조되는 실시예를 도시한 도면이다.
도 7 및 도 8은 본 발명의 일 실시예에 따른 차량 업데이트 관리 방법에 대한 동작 흐름을 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 방법이 실행되는 컴퓨팅 시스템을 도시한 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 발명의 실시예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 차량 업데이트 관리 장치가 적용된 차량 시스템의 구성을 도시한 도면이다.
도 1을 참조하면, 차량 시스템은 복수의 제어기들(10) 및 차량 업데이트 관리 장치(100)를 포함할 수 있다.
여기서, 복수의 제어기들(10)은 차량 내에 설치된 제어기들로서, 각 제어기들은 차량의 일부 기능을 제어하는 역할을 한다. 복수의 제어기들(10)은 내부에 보안 모듈을 구비하지 않은 저가형 제어기를 적어도 하나 이상 포함할 수 있다.
차량 업데이트 관리 장치(100)는 차량의 업데이트 수행 시 제어기(10)의 리프로그래밍을 수행하도록 한다.
차량 업데이트 관리 장치(100)는 진단 장치(300) 및/또는 서버(OTA)(400)로부터 복수의 제어기들(10)의 리프로그래밍을 위한 롬 데이터를 다운로드 할 수 있다. 여기서, 차량 업데이트 관리 장치(100)는 인터넷을 통해 외부의 진단 장치(300) 및 서버(OTA)(400)와 연결될 수 있다. 차량 업데이트 관리 장치(100)는 서버(OTA)(400)가 차량 시스템 내에 구비된 경우 차량 네트워크를 통해 연결될 수도 있다.
차량 업데이트 관리 장치(100)는 진단 장치(300) 또는 서버(OTA)(400)로부터 다운로드 된 롬 데이터를 복수의 제어기(10)로 송신하여 각 제어기(10)의 리프로그래밍을 지시할 수 있다.
여기서, 차량 업데이트 관리 장치(100)는 롬 데이터를 복수의 제어기(10)로 송신하기 전 보안 기능을 지원하는 제어기인지를 확인한 후에 롬 데이터를 송신할 수 있다.
여기서, 차량 업데이트 관리 장치(100)는 대상 제어기(10)가 보안 기능을 지원하는 제어기인 경우에 다운로드 된 롬 데이터를 바로 송신할 수 있다.
한편, 차량 업데이트 관리 장치(100)는 대상 제어기(10)가 보안 기능을 지원하지 않는 제어기인 것으로 확인되면, 대상 제어기(10)의 메모리 맵을 기반으로 롬 데이터의 빈 공간을 랜덤 데이터로 채운 후에 내부 저장소(140)에 저장하고, 저장된 롬 데이터를 대상 제어기(10)로 송신할 수 있다.
차량 업데이트 관리 장치(100)는 제어기(10)의 리프로그래밍 완료 후 차량이 동작하면, 제어기(10)의 리프로그래밍 된 롬 데이터의 해시값과 내부 저장소(140)에 저장된 롬 데이터의 해시값을 기반으로 무결성을 검증할 수 있다.
이에, 차량 업데이트 관리 장치(100)의 세부 구성 및 동작에 대한 설명은 도 2의 실시예를 참조하도록 한다.
본 발명에 따른 차량 업데이트 관리 장치(100)는 차량의 내부에 구현될 수 있다. 이때, 차량 업데이트 관리 장치(100)는 차량의 내부 제어 유닛들과 일체로 형성될 수 있으며, 별도의 장치로 구현되어 별도의 연결 수단에 의해 차량의 제어 유닛들과 연결될 수도 있다.
도 2는 본 발명의 일 실시예에 따른 차량 업데이트 관리 장치의 구성을 도시한 도면이다.
도 2를 참조하면, 차량 업데이트 관리 장치(100)는 제어부(110), 인터페이스부(120), 통신부(130), 저장소(140), 데이터 처리부(150) 및 진단부(160)를 포함할 수 있다. 여기서, 본 실시예에 따른 차량 업데이트 관리 장치(100)의 제어부(110), 데이터 처리부(150) 및 진단부(160)는 적어도 하나 이상의 프로세서(processor)로서 구현될 수 있다.
제어부(110)는 차량 업데이트 관리 장치(100)의 각 구성요소들 간에 전달되는 신호를 처리할 수 있다.
인터페이스부(120)는 사용자로부터의 제어 명령을 입력 받기 위한 입력수단과 차량 업데이트 관리 장치(100)의 동작 상태 및 결과 등을 출력하는 출력수단을 포함할 수 있다.
여기서, 입력수단은 키 버튼을 포함할 수 있으며, 마우스, 조이스틱, 조그셔틀, 스타일러스 펜 등을 포함할 수도 있다. 또한, 입력수단은 디스플레이 상에 구현되는 소프트 키를 포함할 수도 있다.
출력수단은 디스플레이를 포함할 수 있으며, 스피커와 같은 음성출력수단을 포함할 수도 있다. 이때, 터치 필름, 터치 시트, 터치 패드 등의 터치 센서가 디스플레이에 구비되는 경우, 디스플레이는 터치 스크린으로 동작하며, 입력수단과 출력수단이 통합된 형태로 구현될 수 있다.
이때, 디스플레이는 액정 디스플레이(Liquid Crystal Display, LCD), 박막 트랜지스터 액정 디스플레이(Thin Film Transistor-Liquid Crystal Display, TFT LCD), 유기 발광 다이오드(Organic Light-Emitting Diode, OLED), 플렉시블 디스플레이(Flexible Display), 전계 방출 디스플레이(Feld Emission Display, FED), 3차원 디스플레이(3D Display) 중에서 적어도 하나를 포함할 수 있다.
통신부(130)는 차량에 구비된 복수의 제어기들(10)과의 차량 네트워크 통신을 위한 통신모듈을 포함할 수 있다. 일 예로서, 통신모듈은 복수의 제어기들(10)로 롬 데이터 및 리프로그래밍 명령을 송신할 수 있다. 또한, 통신모듈은 리프로그래밍 완료된 제어기(10)로부터 랜덤 주소 영역에 대한 해시값을 요청하고, 해당 제어기(10)로부터 해시값을 수신할 수 있다.
또한, 통신모듈은 복수의 제어기들(10) 외에 차량에 구비된 전장품들과 신호를 송수신할 수도 있다.
여기서, 차량 네트워크 통신 기술로는 CAN(Controller Area Network) 통신, LIN(Local Interconnect Network) 통신, 플렉스레이(Flex-Ray) 통신 등이 포함될 수 있다.
또한, 통신부(130)는 진단 장치(300) 및/또는 서버(OTA)(400)와의 무선 인터넷 접속을 위한 통신모듈 또는 근거리 통신(Short Range Communication)을 위한 통신모듈을 더 포함할 수 있다.
여기서, 무선 인터넷 기술로는 무선랜(Wireless LAN, WLAN), 와이브로(Wireless Broadband, Wibro), 와이파이(Wi-Fi), 와이맥스(World Interoperability for Microwave Access, Wimax) 등이 포함될 수 있다. 또한, 근거리 통신 기술로는 블루투스(Bluetooth), 지그비(ZigBee), UWB(Ultra Wideband), RFID(Radio Frequency Identification), 적외선통신(Infrared Data Association, IrDA) 등이 포함될 수 있다.
저장소(140)는 차량 업데이트 관리 장치(100)가 동작하는데 필요한 데이터 및/또는 알고리즘 등을 저장할 수 있다. 또한, 저장소(140)는 진단 장치(300) 및/또는 서버(OTA)(400)로부터 다운로드 된 제어기(10)의 롬 데이터가 저장될 수 있다.
또한, 저장소(140)는 롬 데이터를 이용하여 제어기(10)의 리프로그래밍 동작을 수행하기 위한 명령 및/또는 알고리즘이 저장될 수 있다. 또한, 저장소(140)는 롬 데이터의 무결성을 진단하기 위한 명령 및/또는 알고리즘 등이 저장될 수도 있다.
여기서, 저장소(140)는 RAM(Random Access Memory), SRAM(Static Random Access Memory), ROM(Read-Only Memory), PROM(Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory)와 같은 저장매체를 포함할 수 있다.
제어부(110)는 차량 업데이트 요청이 수신되면, 진단 장치(300) 및/또는 서버(OTA)(400)에 접속하여 제어기(10)의 리프로그래밍을 위한 롬 데이터를 다운로드 한다.
이때, 제어부(110)는 리프로그래밍을 수행할 대상 제어기(10)가 보안 기능을 지원하는지를 판단한다. 제어부(110)는 대상 제어기(10)가 보안 기능을 지원하는 것으로 확인되면, 다운로드 된 롬 데이터를 대상 제어기(10)로 송신하면서 리프로그래밍 명령을 함께 송신할 수 있다.
한편, 제어부(110)는 리프로그래밍을 수행할 대상 제어기(10)가 보안 기능을 지원하지 않는 것으로 확인되면, 데이터 처리부(150)로 롬 데이터의 처리를 요청한다.
이에, 데이터 처리부(150)는 대상 제어기(10)의 메모리 맵을 이용해 다운로드 된 롬 데이터 내 리프로그래밍 바이너리가 차지하는 공간 및 빈 공간을 확인한다.
데이터 처리부(150)는 롬 데이터 내 빈 공간이 확인되면, 랜덤으로 난수값을 발생하여 롬 데이터의 빈 공간에 랜덤 데이터를 삽입한다. 데이터 처리부(150)는 롬 데이터의 빈 공간이 랜덤 데이터로 모두 채워지면 해당 롬 데이터를 내부 저장소(140)에 저장한다.
제어부(110)는 내부 저장소(140)에 롬 데이터가 저장되면, 내부 저장소(140)에 저장된 롬 데이터를 리프로그래밍 명령과 함께 대상 제어기(10)로 송신하도록 한다. 따라서, 제어기(10)는 제어부(110)의 명령에 따라 제어부(110)로부터 수신된 롬 데이터를 적용하여 리프로그래밍을 수행하도록 한다.
롬 데이터 내 빈 영역에 랜덤 데이터를 삽입하는 실시예는 도 3a 및 도 3b를 참조하도록 한다.
먼저, 도 3a는 다운로드 된 롬 데이터를 내부 저장소(140)에 저장하는 실시예는 나타낸 것이다. 도 3a에 도시된 바와 같이, 데이터 처리부(150)는 다운로드 된 롬 데이터(311) 내 바이너리 영역과 빈 영역을 확인하고, 도면부호 315와 같이 롬 데이터의 빈 영역에 랜덤 데이터를 삽입하여 내부 저장소(140)에 저장한다.
이때, 제어부(110)는 도면부호 315와 같이 빈 영역이 랜덤 데이터로 채워진 롬 데이터를 제어기(10)로 송신한다.
따라서, 제어기(10)는 도 3b와 같이, 빈 영역이 랜덤 데이터로 채워진 롬 데이터(325)를 기반으로 리프로그래밍을 수행하게 된다
데이터 처리부(150) 및 제어부(110)는 상기와 같은 방식으로 복수의 제어기들 각각에 대해 리프로그래밍 동작이 수행되도록 한다.
제어부(110)는 복수의 제어기들에 대한 리프로그래밍이 완료된 후 차량이 시동 온 상태가 되면, 진단부(160)로 펌웨어의 무결성 진단을 요청한다.
이에, 진단부(160)는 복수의 제어기들 중 보안 기능을 지원하지 않는 제어기 리스트를 확인한다. 진단부(160)는 대상 제어기들의 정보를 추출하고, 내부 저장소(140)에 저장된 롬 데이터를 추출한다. 이때, 진단부(160)는 추출된 롬 데이터를 기반으로 난수 생성을 통해 연속되는 임의의 두 개의 주소값을 생성한다.
진단부(160)는 롬 데이터 내 해당 주소값의 바이너리를 이용하여 해시값을 생성할 수 있다.
또한, 진단부(160)는 연속된 임의의 두 개 주소값 정보를 제어기(10)로 송신하여 해시값을 요청할 수 있다. 진단부(160)는 제어기(10)로부터 해시값이 수신되면, 제어기(10)로부터 수신된 해시값과 앞서 내부 저장소(140)의 롬 데이터를 기반으로 생성된 해시값을 비교하여 제어기(10)의 롬 데이터에 대한 무결성을 진단한다. 이에 대한 실시예는 도 4를 참조하도록 한다.
도 4를 참조하면, 차량 업데이트 관리 장치(100)의 내부 저장소(140)에는 빈 영역이 랜덤 데이터로 채워진 롬 데이터가 저장되어 있다. 또한, 제어기(10)에 저장된 롬 데이터가 무결한 데이터인 경우에 롬 데이터 내부의 빈 영역이 랜덤 데이터로 채워져 있어야 한다.
이 경우, 진단부(160)는 도면부호 411과 같이, 제어기(10) 내 롬 데이터의 무결성 검증을 위해 대상 제어기(10)로 연속된 두 개의 주소값, 예를 들어, 0x100~0x456의 해시값을 요청한다. 제어기(10)는 저장된 롬 데이터(413)의 해당 주소값 내 바이너리를 이용하여 해시값 0x1234567을 생성하고, 도면부호 415와 같이 해시값 0x1234567을 차량 업데이트 관리 장치(100)의 진단부(160)로 회신한다.
진단부(160)는 제어기(10)로부터 해시값이 수신되면, 제어기(10)로부터 수신된 해시값과 앞서 내부 저장소(140)의 롬 데이터를 기반으로 생성된 해시값을 비교하여 제어기(10)의 롬 데이터에 대한 무결성을 진단한다. 이때, 진단부(160)는 두 개의 해시값이 동일하면 제어기(10) 내 롬 데이터가 무결한 것으로 진단할 수 있다.
한편, 제어기(10) 내 펌웨어가 오염된 경우 일부 빈 영역이 채워지지 않을 수 있다. 이 경우, 제어기(10)는 진단부(160)의 해시값 요청에 대해 응답하지 않거나, 혹은 유효하지 않은 해시값을 회신할 수 있다.
따라서, 진단부(160)는 제어기(10)의 무응답 또는 유효하지 않은 해시값 회신으로 인해 제어기(10) 내 롬 데이터가 오염된 것으로 진단할 수 있다.
이에 대한 실시예는 도 5a 및 도 5b를 참조하도록 한다.
먼저, 도 5a는 제어기(10) 내 롬 데이터가 오염된 경우에 빈 영역의 주소값에 대한 해시값 요청이 있는 실시예를 나타낸 것이다.
이 경우, 진단부(160)는 도면부호 511과 같이, 제어기(10) 내 롬 데이터의 무결성 검증을 위해 대상 제어기(10)로 연속된 두 개의 주소값, 예를 들어, 0x100~0x456의 해시값을 요청한다. 제어기(10)는 오염된 롬 데이터(513)의 해당 주소값 내 바이너리가 존재하지 않을 수 있다. 이 경우, 제어기(10)는 차량 업데이트 관리 장치(100)의 진단부(160)로 해시값을 회신할 수 없다.
따라서, 진단부(160)는 대상 제어기(10)로 해시값 요청 이후 기준 시간이 경과하도록 대상 제어기(10)로부터 해시값의 회신이 없으면 대상 제어기(10) 내 롬 데이터가 오염된 것으로 진단할 수 있다.
도 5b는 제어기(10) 내 롬 데이터가 오염된 경우에 오염된 바이너리를 기반으로 생성된 해시값을 회신하는 실시예를 나타낸 것이다.
이 경우, 진단부(160)는 도면부호 521과 같이, 제어기(10) 내 롬 데이터의 무결성 검증을 위해 대상 제어기(10)로 연속된 두 개의 주소값, 예를 들어, 0x100~0x456의 해시값을 요청한다. 제어기(10)는 오염된 롬 데이터(523)의 해당 주소값 내 바이너리를 기반으로 해시값 0x7654321을 생성하고, 도면부호 525와 같이 해시값 0x7654321을 차량 업데이트 관리 장치(100)의 진단부(160)로 회신한다.
진단부(160)는 제어기(10)로부터 해시값이 수신되면, 제어기(10)로부터 수신된 해시값과 앞서 내부 저장소(140)의 롬 데이터를 기반으로 생성된 해시값을 비교하여 제어기(10)의 롬 데이터에 대한 무결성을 진단한다. 이때, 진단부(160)는 두 개의 해시값이 동일하지 않으면 제어기(10) 내 롬 데이터가 오염된 것으로 진단할 수 있다.
진단부(160)는 차량이 구동되는 동안 일정 주기마다 제어기(10) 내 롬 데이터의 무결성을 진단할 수 있다.
진단부(160)는 제어기(10) 내 롬 데이터의 진단 결과를 제어부(110)로 전달할 수 있다. 따라서, 제어부(110)는 진단 결과를 인터페이스부(120)로 출력함으로써 사용자에게 진단 결과를 안내할 수 있다.
한편, 도 6의 실시예와 같이, 제어기(10) 내 롬 데이터의 빈 영역을 랜덤 데이터로 채우지 않는 경우에는 해시값을 요청하면(611), 대상 제어기(10)의 롬 데이터(613)가 오염됐다 하더라도 해커의 펌웨어가 정식 펌웨어 정보를 가지고 진단부(160)에 유효한 해시값(625)을 응답할 수 있다.
이와 같이, 본 발명에 따른 차량 업데이트 관리 장치(100)는 차량 내 복수의 제어기(10)에 대한 리프로그래밍을 수행한 후에 차량이 구동되는 동안 롬 데이터의 무결성을 진단하고, 롬 데이터 오염 시 이를 사용자에게 안내함으로써 보안 위협에 빠르게 대처할 수 있게 된다.
상기에서와 같이 동작하는 본 실시예에 따른 차량 업데이트 관리 장치(100)는 메모리와 각 동작을 처리하는 프로세서를 포함하는 독립적인 하드웨어 장치 형태로 구현될 수 있으며, 마이크로프로세서나 범용 컴퓨터 시스템과 같은 다른 하드웨어 장치에 포함된 형태로 구동될 수 있다.
상기와 같이 구성되는 본 발명에 따른 차량 업데이트 관리 장치의 동작 흐름을 보다 상세히 설명하면 다음과 같다.
도 7 및 도 8은 본 발명의 일 실시예에 따른 차량 업데이트 관리 방법에 대한 동작 흐름을 도시한 도면이다.
먼저, 도 7은 대상 제어기(10)의 리프로그래밍을 수행하는 동작 흐름을 나타낸 것이다.
도 7을 참조하면, 차량 업데이트 관리 장치(100)는 차량 업데이트 진행을 위해 진단 장치(300) 또는 서버(OTA)(400)로부터 제어기(10)의 롬 데이터를 다운로드 하고(S110), 다운로드 된 롬 데이터를 저장한다(S120).
이때, 차량 업데이트 관리 장치(100)는 다운로드 된 롬 데이터를 이용한 리프로그래밍 대상 제어기(10)가 보안 기능을 지원하는 제어기인지를 판단하여, 보안 기능을 지원하면(S130), 다운로드 된 롬 데이터를 기반으로 대상 제어기(10)의 리프로그래밍을 수행하도록 한다(S180).
한편, 차량 업데이트 관리 장치(100)는 'S130' 과정에서 대상 제어기(10)가 보안 기능을 지원하지 않는 것으로 확인되면, 대상 제어기(10)의 메모리 맵을 이용하여 롬 데이터 내 바이너리가 차지하는 공간 및 빈 공간을 확인한다(S140).
차량 업데이트 관리 장치(100)는 'S140' 과정에서 롬 데이터 내 빈 공간이 확인되면, 랜덤으로 난수값을 발생하여 롬 데이터의 빈 공간에 랜덤 데이터를 삽입한다(S150). 차량 업데이트 관리 장치(100)는 'S150' 과정에서 롬 데이터의 빈 공간이 랜덤 데이터로 모두 채워지도록 한다.
이후, 차량 업데이트 관리 장치(100)는 빈 공간이 랜덤 데이터로 채워진 롬 데이터를 내부 저장소(140)에 저장한다. 이때, 차량 업데이트 관리 장치(100)는 롬 데이터의 바이너리 이미지를 저장할 수 있다(S160).
차량 업데이트 관리 장치(100)는 'S160' 과정에서 내부 저장소(140)에 저장된 롬 데이터의 바이너리 이미지를 대상 제어기(10)의 롬 데이터에 적용하여(S170), 대상 제어기(10)의 리프로그래밍을 수행한다(S180).
도 8은 대상 제어기의 펌웨어 무결성을 진단하는 동작 흐름을 나타낸 것이다.
도 8을 참조하면, 차량 업데이트 관리 장치(100)는 도 6의 과정들을 통해 제어기(10) 리프로그래밍이 완료된 이후에, 차량의 시동 온(ON) 상태가 되면(S210), 복수의 제어기들에 대한 동작 상태를 확인한다(S220).
이때, 차량 업데이트 관리 장치(100)는 복수의 제어기들 중 보안 기능을 지원하지 않는 대상 제어기 리스트를 확인하고(S230), 대상 제어기들의 정보 및 내부 저장소(140)에 저장된 롬 데이터를 추출한다(S240).
차량 업데이트 관리 장치(100)는 'S240' 과정에서 추출된 롬 데이터를 기반으로 난수 생성을 통해 연속되는 두 개의 주소값을 생성하고, 롬 데이터 내 해당 주소값의 바이너리를 이용하여 해시값을 생성한다(S250).
이때, 차량 업데이트 관리 장치(100)는 'S250' 과정에서 생성된 연속된 두 개의 주소값 정보를 대상 제어기(10)로 송신하여 해시값을 요청한다(S260).
차량 업데이트 관리 장치(100)는 제어기(10)로부터 해시값이 수신되면(S270), 제어기(10)로부터 수신된 해시값과 앞서 내부 저장소(140)의 롬 데이터를 기반으로 생성된 해시값을 비교하여 제어기(10)로부터 수신된 해시값이 유효한지를 확인한다. 만일, 제어기(10)로부터 수신된 해시값이 유효한 경우(S275), 대상 제어기(10)의 롬 데이터가 무결한 것으로 판단한다. 이후, 차량 업데이트 관리 장치(100)는 소정 주기 마다 'S220 이후 과정을 수행할 수 있다.
한편, 차량 업데이트 관리 장치(100)는 'S275' 과정에서 제어기(10)로부터 수신된 해시값이 유효하지 않을 것으로 확인된 경우, 대상 제어기(10)의 롬 데이터가 오염된 것으로 판단하여 이상 진단을 하도록 한다(S290).
또한, 차량 업데이트 관리 장치(100)는 기준 시간이 경과하도록 대상 제어기(10)로부터 해시값이 수신되지 않는 경우(S270, S280), 대상 제어기(10)의 롬 데이터가 오염된 것으로 판단하여 이상 진단을 하도록 한다(S290).
도 9는 본 발명의 일 실시예에 따른 방법이 실행되는 컴퓨팅 시스템을 도시한 도면이다.
도 9를 참조하면, 컴퓨팅 시스템(1000)은 버스(1200)를 통해 연결되는 적어도 하나의 프로세서(1100), 메모리(1300), 사용자 인터페이스 입력 장치(1400), 사용자 인터페이스 출력 장치(1500), 스토리지(1600), 및 네트워크 인터페이스(1700)를 포함할 수 있다.
프로세서(1100)는 중앙 처리 장치(CPU) 또는 메모리(1300) 및/또는 스토리지(1600)에 저장된 명령어들에 대해 처리를 실행하는 반도체 장치일 수 있다. 메모리(1300) 및 스토리지(1600)는 다양한 종류의 휘발성 또는 불휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(1300)는 ROM(Read Only Memory)(1310) 및 RAM(Random Access Memory)(1320)을 포함할 수 있다.
따라서, 본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서(1100)에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM과 같은 저장 매체(즉, 메모리(1300) 및/또는 스토리지(1600))에 상주할 수도 있다. 예시적인 저장 매체는 프로세서(1100)에 커플링되며, 그 프로세서(1100)는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서(1100)와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다.
따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 제어기 100: 차량 업데이트 관리 장치
110: 제어부 120: 인터페이스부
130: 통신부 140: 저장소
150: 데이터 처리부 160: 진단부
300: 진단 장치 400: 서버(OTA)

Claims (20)

  1. 리프로그래밍 수행 대상 제어기 중 보안 기능을 지원하지 않는 제어기의 롬 데이터 내 빈 공간에 랜덤 데이터를 삽입하여 내부 저장소에 저장하는 데이터 처리부;
    상기 내부 저장소에 저장된 롬 데이터를 기반으로 대상 제어기의 리프로그래밍을 수행하는 제어부; 및
    상기 내부 저장소에 저장된 롬 데이터를 기반으로 리프로그래밍이 완료된 상기 대상 제어기의 롬 데이터에 대한 무결성을 진단하는 진단부
    를 포함하는 것을 특징으로 하는 차량 업데이트 관리 장치.
  2. 청구항 1에 있어서,
    상기 진단부는,
    상기 내부 저장소에 저장된 롬 데이터에 대한 연속된 임의의 두 주소값을 생성하고, 상기 임의의 두 주소값 내 바이너리를 기반으로 해시값을 생성하는 것을 특징으로 하는 차량 업데이트 관리 장치.
  3. 청구항 2에 있어서,
    상기 진단부는,
    상기 대상 제어기로 상기 임의의 두 주소값에 대한 해시값을 요청하는 것을 특징으로 하는 차량 업데이트 관리 장치.
  4. 청구항 3에 있어서,
    상기 진단부는,
    상기 대상 제어기로부터 상기 임의의 두 주소값에 대응하는 해시값이 수신되면, 상기 내부 저장소에 저장된 롬 데이터 기반의 해시값과 비교하여 상기 대상 제어기의 롬 데이터에 대한 무결성을 진단하는 것을 특징으로 하는 차량 업데이트 관리 장치.
  5. 청구항 4에 있어서,
    상기 진단부는,
    상기 대상 제어기로부터 수신된 해시값이 상기 내부 저장소에 저장된 롬 데이터 기반의 해시값과 일치하지 않으면 유효하지 않은 해시값으로 판단하여 상기 대상 제어기의 롬 데이터에 대해 이상 진단하는 것을 특징으로 하는 차량 업데이트 관리 장치.
  6. 청구항 3에 있어서,
    상기 진단부는,
    상기 대상 제어기로부터 기준 시간 내에 해시값이 수신되지 않으면, 상기 대상 제어기의 롬 데이터에 대해 이상 진단하는 것을 특징으로 하는 차량 업데이트 관리 장치.
  7. 청구항 1에 있어서,
    상기 진단부는,
    상기 대상 제어기의 리프로그래밍이 완료된 후 상기 차량이 구동되면, 상기 차량의 구동이 종료될 때까지 소정 주기 마다 상기 대상 제어기의 롬 데이터에 대한 무결성을 진단하는 것을 특징으로 하는 차량 업데이트 관리 장치.
  8. 청구항 1에 있어서,
    상기 데이터 처리부는,
    상기 대상 제어기의 메모리 맵을 이용하여 상기 롬 데이터 내 빈 공간에 랜덤 데이터를 삽입하는 것을 특징으로 하는 차량 업데이트 관리 장치.
  9. 청구항 1에 있어서,
    상기 대상 제어기의 롬 데이터는,
    외부의 진단 장치로부터 다운로드 된 것을 특징으로 하는 차량 업데이트 관리 장치.
  10. 청구항 1에 있어서,
    상기 대상 제어기의 롬 데이터는,
    무선 업데이트 서버로부터 다운로드 된 것을 특징으로 하는 차량 업데이트 관리 장치.
  11. 리프로그래밍 수행 대상 제어기 중 보안 기능을 지원하지 않는 제어기의 롬 데이터 내 빈 공간에 랜덤 데이터를 삽입하여 내부 저장소에 저장하는 단계;
    상기 내부 저장소에 저장된 롬 데이터를 기반으로 대상 제어기의 리프로그래밍을 수행하는 단계; 및
    상기 내부 저장소에 저장된 롬 데이터를 기반으로 리프로그래밍이 완료된 상기 대상 제어기의 롬 데이터에 대한 무결성을 진단하는 단계
    를 포함하는 것을 특징으로 하는 차량 업데이트 관리 방법.
  12. 청구항 11에 있어서,
    상기 진단하는 단계는,
    상기 내부 저장소에 저장된 롬 데이터에 대한 연속된 임의의 두 주소값을 생성하는 단계; 및
    상기 임의의 두 주소값 내 바이너리를 기반으로 해시값을 생성하는 단계를 포함하는 것을 특징으로 하는 차량 업데이트 관리 방법.
  13. 청구항 12에 있어서,
    상기 진단하는 단계는,
    상기 대상 제어기로 상기 임의의 두 주소값에 대한 해시값을 요청하는 단계를 더 포함하는 것을 특징으로 하는 차량 업데이트 관리 방법.
  14. 청구항 13에 있어서,
    상기 진단하는 단계는,
    상기 대상 제어기로부터 상기 임의의 두 주소값에 대응하는 해시값이 수신되면, 상기 내부 저장소에 저장된 롬 데이터 기반의 해시값과 비교하는 단계를 더 포함하는 것을 특징으로 하는 차량 업데이트 관리 방법.
  15. 청구항 14에 있어서,
    상기 진단하는 단계는,
    상기 대상 제어기로부터 수신된 해시값이 상기 내부 저장소에 저장된 롬 데이터 기반의 해시값과 일치하지 않으면 유효하지 않은 해시값으로 판단하여 상기 대상 제어기의 롬 데이터에 대해 이상 진단하는 단계를 더 포함하는 것을 특징으로 하는 차량 업데이트 관리 방법.
  16. 청구항 13에 있어서,
    상기 진단하는 단계는,
    상기 대상 제어기로부터 기준 시간 내에 해시값이 수신되지 않으면, 상기 대상 제어기의 롬 데이터에 대해 이상 진단하는 단계를 더 포함하는 것을 특징으로 하는 차량 업데이트 관리 방법.
  17. 청구항 11에 있어서,
    상기 진단하는 단계는,
    상기 대상 제어기의 리프로그래밍이 완료된 후 상기 차량이 구동되면, 상기 차량의 구동이 종료될 때까지 소정 주기 마다 반복적으로 수행되는 것을 특징으로 하는 차량 업데이트 관리 방법.
  18. 청구항 11에 있어서,
    상기 내부 저장소에 저장하는 단계는,
    상기 대상 제어기의 메모리 맵을 이용하여 상기 롬 데이터 내 빈 공간에 랜덤 데이터를 삽입하는 단계를 포함하는 것을 특징으로 하는 차량 업데이트 관리 방법.
  19. 청구항 11에 있어서,
    상기 내부 저장소에 저장하는 단계 이전에, 외부의 진단 장치로부터 상기 대상 제어기의 롬 데이터를 다운로드 하는 단계를 더 포함하는 것을 특징으로 하는 차량 업데이트 관리 방법.
  20. 청구항 11에 있어서,
    상기 내부 저장소에 저장하는 단계 이전에, 무선 업데이트 서버로부터 상기 대상 제어기의 롬 데이터를 다운로드 하는 단계를 더 포함하는 것을 특징으로 하는 차량 업데이트 관리 방법.
KR1020190071689A 2019-06-17 2019-06-17 차량 업데이트 관리 장치 및 방법 KR20200143959A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190071689A KR20200143959A (ko) 2019-06-17 2019-06-17 차량 업데이트 관리 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190071689A KR20200143959A (ko) 2019-06-17 2019-06-17 차량 업데이트 관리 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20200143959A true KR20200143959A (ko) 2020-12-28

Family

ID=74086864

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190071689A KR20200143959A (ko) 2019-06-17 2019-06-17 차량 업데이트 관리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20200143959A (ko)

Similar Documents

Publication Publication Date Title
US11436002B2 (en) Systems and methods for failsafe firmware upgrades
US9792440B1 (en) Secure boot for vehicular systems
US9959125B2 (en) Field update of boot loader using regular device firmware update procedure
KR20200141296A (ko) 차량 업데이트 제어 장치 및 방법
CN112181449B (zh) 车载软件升级方法、装置、系统及存储介质
CN111758087A (zh) 一种车辆诊断方法、服务器及诊断设备
JP2009175947A (ja) 車載電子制御装置及びその車載電子制御装置の情報更新方法
US20220091762A1 (en) Electronic Control Device and Program-Update Method
CN112015489A (zh) 一种车载软件的管理方法、装置、存储介质及系统
US11048610B2 (en) Fleet-wide monitoring system for vehicles
JP2019109745A (ja) 自動車用電子制御装置
CN110879714B (zh) 用于提供车辆的更新的装置和计算机可读存储介质
US20220107798A1 (en) Server, software update system, distribution method, and non-transitory storage medium
US11836045B2 (en) Electronic control device having a non-volatile memory with a reserved area storing failure data
KR20200143959A (ko) 차량 업데이트 관리 장치 및 방법
CN113939802A (zh) 车辆控制装置、更新程序、程序更新系统以及写入装置
JP2019016086A (ja) 自動車用電子制御装置
JP2015210669A (ja) プログラム書き換え方法
US20220391192A1 (en) Ota master, center, system, method, non-transitory storage medium, and vehicle
US20220035620A1 (en) Software update device, update control method, non-transitory storage medium, and server
KR102540932B1 (ko) 차량의 업데이트 제공 장치 및 컴퓨터 기록 매체
CN114527994A (zh) 固件的烧写方法、系统、车辆控制系统
US20230350692A1 (en) Arithmetic device and computer program
US20240070282A1 (en) Firmware update method and apparatus for a mcu of a vehicle
US11947824B2 (en) Electronic control unit, method, and program

Legal Events

Date Code Title Description
E902 Notification of reason for refusal