KR20220034355A - 통신 장치 및 그를 가지는 차량 - Google Patents

통신 장치 및 그를 가지는 차량 Download PDF

Info

Publication number
KR20220034355A
KR20220034355A KR1020200116619A KR20200116619A KR20220034355A KR 20220034355 A KR20220034355 A KR 20220034355A KR 1020200116619 A KR1020200116619 A KR 1020200116619A KR 20200116619 A KR20200116619 A KR 20200116619A KR 20220034355 A KR20220034355 A KR 20220034355A
Authority
KR
South Korea
Prior art keywords
information
received
message
controller
firmware
Prior art date
Application number
KR1020200116619A
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 KR1020200116619A priority Critical patent/KR20220034355A/ko
Publication of KR20220034355A publication Critical patent/KR20220034355A/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/12Applying verification of the received information
    • 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/55Detecting local intrusion or implementing counter-measures
    • 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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40104Security; Encryption; Content protection
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • 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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Power Engineering (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명의 차량은, 복수 개의 디바이스; 및 복수 개의 디바이스 간 통신이 이루어지도록 하는 통신 장치를 포함하고, 복수 개의 디바이스 각각은, 온보드 통신 보안 정보가 포함된 메시지가 수신되면, 온보드 통신 보안 정보 내의 맥 정보의 존재 여부 및 맥 정보의 변조 여부에 기초하여 수신된 메시지의 정상 여부 및 수신된 메시지의 공격 유형 중 적어도 하나를 판단하고, 수신된 메시지가 비정상적인 메시지라고 판단되면 메시지가 수신된 시간에 대한 정보, 수신된 메시지의 공격 유형에 대한 정보 및 메시지의 식별 정보를 이용하여 제1로그 테이블을 생성하는 제어기; 및 제1로그 테이블을 저장하는 메모리를 포함한다.
차량의 복수 개의 디바이스에 마련된 각각의 제어기는, 통신 장치에 진단기를 통해 보안 업데이트가 포함된 펌웨어가 수신되면, 수신된 보안 업데이트 내의 서명 정보의 존재 여부 및 서명 정보의 변조 여부에 기초하여 수신된 펌웨어의 정상 여부 및 수신된 펌웨어의 공격 유형 중 적어도 하나를 판단하고, 수신된 펌웨어가 비정상적인 펌웨어라고 판단되면 펌웨어가 수신된 시간에 대한 정보, 수신된 펌웨어의 공격 유형에 대한 정보 및 펌웨어의 소프트웨어 버전 정보를 이용하여 제2로그 테이블을 생성하고 사익 생성된 제2로그 테이블을 메모리에 저장하도록 한다.

Description

통신 장치 및 그를 가지는 차량 {Device and Vehicle having the same}
본 발명은 통신 보안 강화를 위한 디바이스 및 그를 가지는 차량에 관한 것이다.
차량은 기본적인 주행 기능 외에도 오디오 기능, 비디오 기능, 내비게이션 기능, 공조 기능, 시트 열선 기능, 외부 단말기와의 통신 기능 등의 사용자 편의를 위한 부가적인 기능을 더 수행한다.
이와 같이 차량은 다양한 기능을 수행할 수 있으며, 이를 위해 차량에 마련된 동력 장치, 제동 장치, 조향 장치, 카메라, 감지 장치, 입력 장치 및 디스플레이 장치, 각종 기능을 제어하는 복수 개의 전자 제어 유닛(Electronic Control Unit: ECU, 또는 제어기) 등의 각종 장치(Device)들은 CAN, FlexRay, MOST, 이더넷(Ethernet)과 같은 통신 장치들을 통해 서로 통신을 수행함으로써 각종 데이터들을 공유한다.
최근, 차량 내 각종 장치의 수가 늘어나고 성능이 고도화됨에 따라 차량 네트워크에 대한 사이버 공격의 위험이 증가하고 있다. 이에 따라 차량 네트워크에 있어 보안을 강화할 수 있는 기술이 필요하다.
일 측면은 포함된 메시지 내에 포함된 온보드 통신 보안 정보에 기초하여 메시지의 정상 여부를 판단하고 메시지가 비정상적인 메시지일 때 공격 유형에 대응하는 로그 정보를 저장하는 디바이스 및 그를 가지는 차량을 제공한다.
또 다른 측면은 서명 정보에 기초하여 보안 업데이트를 수행하고, 비정상적인 펌웨어 업데이트일 때 공격 유형에 대응하는 로그 정보를 저장하는 디바이스 및 그를 가지는 차량을 제공한다.
일 측면에 따른 디바이스는, 다른 디바이스와 통신을 수행하는 통신부; 통신부를 통해 온보드 통신 보안 정보가 포함된 메시지가 수신되면, 온보드 통신 보안 정보 내의 맥 정보의 존재 여부 및 맥 정보의 변조 여부에 기초하여 수신된 메시지의 정상 여부 및 수신된 메시지의 공격 유형 중 적어도 하나를 판단하고, 수신된 메시지가 비정상적인 메시지라고 판단되면 메시지가 수신된 시간에 대한 정보, 수신된 메시지의 공격 유형에 대한 정보 및 메시지의 식별 정보를 이용하여 로그 테이블을 생성하는 제어기; 및 로그 테이블을 저장하는 메모리를 포함한다.
일 측면에 따른 디바이스의 제어기는, 애플리케이션과, 온보드 통신 보안 정보 내의 맥 정보를 포함시키는 온보드 통신 보안 모듈을 포함하는 마이컴과, 맥 정보를 생성하고 맥 검증을 수행하며, 맥 검증을 통해 수신된 메시지가 비정상적인 메시지라고 판단되면 로그 테이블을 생성하고 생성된 로그 테이블을 마이컴에 전달하는 계층적 저장 관리기를 포함한다.
일 측면에 따른 디바이스의 메모리는, 계층적 저장 관리기의 내부에 마련되고, 메모리에 저장된 로그 테이블은, 마이컴에 의해 리드된다.
일 측면에 따른 디바이스의 제어기는, 온보드 통신 보안 정보 내의 맥 정보가 존재하고, 맥 정보가 미리 설정된 맥 정보라고 판단되면 수신된 메시지에 기초하여 적어도 하나의 기능을 제어한다.
일 측면에 따른 디바이스의 제어기는, 온보드 통신 보안 정보 내의 맥 정보가 존재하지 않으면 공격 유형을 제1유형으로 판단한다.
일 측면에 따른 디바이스의 제어기는, 온보드 통신 보안 정보가 온보드 통신 보안 모듈의 표준을 만족하지 않으면 공격 유형을 제1유형으로 판단한다.
일 측면에 따른 디바이스의 제어기는, 온보드 통신 보안 정보 내의 맥 정보가 존재하고, 미리 설정된 맥 정보에 기초하여 맥 정보가 변조된 맥 정보라고 판단되면 공격 유형을 제2유형으로 판단한다.
일 측면에 따른 디바이스의 제어기는, 수신된 메시지의 공격 유형에 대한 정보와 메시지의 식별 정보에 기초하여 카운터를 획득하고 획득된 카운터에 대한 정보를 로그 테이블에 저장하도록 한다.
다른 측면에 따른 디바이스는, 다른 디바이스와 통신을 수행하는 통신부; 통신부를 통해 보안 업데이트가 포함된 펌웨어가 수신되면, 수신된 보안 업데이트 내의 서명 정보의 존재 여부 및 서명 정보의 변조 여부에 기초하여 수신된 펌웨어의 정상 여부 및 수신된 펌웨어의 공격 유형 중 적어도 하나를 판단하고, 수신된 펌웨어가 비정상적인 펌웨어라고 판단되면 펌웨어가 수신된 시간에 대한 정보, 수신된 펌웨어의 공격 유형에 대한 정보 및 펌웨어의 소프트웨어 버전 정보를 이용하여 로그 테이블을 생성하는 제어기; 및 로그 테이블을 저장하는 메모리를 포함한다.
다른 측면에 따른 디바이스의 제어기는, 부트로더를 포함하는 마이컴과, 서명 정보의 검증을 수행하며, 서명 정보의 검증을 통해 수신된 펌웨어가 비정상적인 펌웨어라고 판단되면 로그 테이블을 생성하고 생성된 로그 테이블을 마이컴에 전달하는 계층적 저장 관리기를 포함한다.
다른 측면에 따른 디바이스의 메모리는, 계층적 저장 관리기의 내부에 마련되고, 메모리에 저장된 로그 테이블은, 마이컴에 의해 리드된다.
다른 측면에 따른 디바이스의 제어기는, 펌웨어 내에 서명 정보가 존재하고, 서명 정보가 미리 설정된 서명 정보라고 판단되면 수신된 펌웨어에 기초하여 업데이트를 수행한다.
다른 측면에 따른 디바이스의 제어기는, 펌웨어 내에 서명 정보가 존재하지 않으면 공격 유형을 제1유형으로 판단하고, 펌웨어 내에 서명 정보가 존재하고, 미리 설정된 서명 정보에 기초하여 서명 정보가 변조된 서명 정보라고 판단되면 공격 유형을 제2유형으로 판단한다.
다른 측면에 따른 디바이스의 제어기는, 수신된 메시지의 공격 유형에 대한 정보와 메시지의 식별 정보에 기초하여 카운터를 획득하고 획득된 카운터에 대한 정보를 로그 테이블에 저장하도록 한다.
또 다른 측면에 따른 차량은, 복수 개의 디바이스; 및 복수 개의 디바이스 간 통신이 이루어지도록 하는 통신 장치를 포함하고, 복수 개의 디바이스 각각은, 온보드 통신 보안 정보가 포함된 메시지가 수신되면, 온보드 통신 보안 정보 내의 맥 정보의 존재 여부 및 맥 정보의 변조 여부에 기초하여 수신된 메시지의 정상 여부 및 수신된 메시지의 공격 유형 중 적어도 하나를 판단하고, 수신된 메시지가 비정상적인 메시지라고 판단되면 메시지가 수신된 시간에 대한 정보, 수신된 메시지의 공격 유형에 대한 정보 및 메시지의 식별 정보를 이용하여 제1로그 테이블을 생성하는 제어기; 및 제1로그 테이블을 저장하는 메모리를 포함한다.
또 다른 측면에 따른 차량의 복수 개의 디바이스에 마련된 각각의 제어기는, 통신 장치에 진단기를 통해 보안 업데이트가 포함된 펌웨어가 수신되면, 수신된 보안 업데이트 내의 서명 정보의 존재 여부 및 서명 정보의 변조 여부에 기초하여 수신된 펌웨어의 정상 여부 및 수신된 펌웨어의 공격 유형 중 적어도 하나를 판단하고, 수신된 펌웨어가 비정상적인 펌웨어라고 판단되면 펌웨어가 수신된 시간에 대한 정보, 수신된 펌웨어의 공격 유형에 대한 정보 및 펌웨어의 소프트웨어 버전 정보를 이용하여 제2로그 테이블을 생성하고 사익 생성된 제2로그 테이블을 메모리에 저장하도록 한다.
또 다른 측면에 따른 차량의 복수 개의 디바이스에 마련된 각각의 제어기는, 진단기로부터 제1 로그 테이블 중 적어도 하나의 리드 명령이 수신되면 메모리에 저장된 제1 로그 테이블을 진단기에 전송하고, 진단기로부터 제2 로그 테이블 중 적어도 하나의 리드 명령이 수신되면 메모리에 저장된 제2 로그 테이블을 진단기에 전송한다.
또 다른 측면에 따른 차량의 복수 개의 디바이스에 마련된 각각의 제어기는, 온보드 통신 보안 정보 내의 맥 정보가 존재하지 않으면 공격 유형을 제1유형으로 판단하고, 온보드 통신 보안 정보 내의 맥 정보가 존재하고, 미리 설정된 맥 정보에 기초하여 맥 정보가 변조된 맥 정보라고 판단되면 공격 유형을 제2유형으로 판단한다.
또 다른 측면에 따른 차량의 복수 개의 디바이스에 마련된 각각의 제어기는, 펌웨어 내에 서명 정보가 존재하지 않으면 공격 유형을 제1유형으로 판단하고, 펌웨어 내에 서명 정보가 존재하고, 미리 설정된 서명 정보에 기초하여 서명 정보가 변조된 서명 정보라고 판단되면 공격 유형을 제2유형으로 판단한다.
또 다른 측면에 따른 차량의 복수 개의 디바이스; 및 통신 장치는, 캔 통신을 수행한다.
본 발명은 침입탐지시스템(IDS: Intrusion Detection System)의 기능에 상관없이 제어기 자체에 대한 공격 유형에 대해서 로그를 탐지할 수 있다.
본 발명은 공격자에 의해 차량이 이상 동작하거나 불능이 되었을 경우 이에 대한 상세한 로그를 기록하여 향후 추적할 수 있는 효과가 있다.
본 발명은 캔 통신 상에서의 해킹, 리프로그래밍을 포함한 제어기 소프트웨어(SW) 자체 해킹에 대한 로그를 기록한다.
본 발명은 침입 탐지 시스템(IDS)의 유무와 상관없이 제어기 내 마이컴(Host) 자체적으로 해킹에 대한 로그를 기록함으로써 향후 게이트웨이(Central Gateway) 또는 외부 진단기를 통해 이상 감지를 판별할 수 있으며 그에 대한 자세한 사항을 확인할 수 있다.
본 발명은 모든 제어기에 대한 판별은 통합 진단 서비스(UDS: Unified Diagnostic Services)를 활용하고 기능 주소(Functional Address, 0x7DF)를 통해 차량 내 모든 제어기에 대한 이상감지를 동시에 확인할 수 있다.
본 발명은 캔 통신 또는 리프로그래밍에서 해킹에 이용된 핵심 사항을 테이블에 타임 스탬프(Time stamp)와 함께 저장함으로써 향후 디버깅 또는 보안 대응책 마련에 용이하게 이용할 수 있다.
본 발명은 제어기의 불능 시, 이상행동 로그 읽기를 통해 제어기의 불능 원인을 인식할 수 있다. 예를 들어, 본 발명은 제어기의 불능 시 단순 애플리케이션 코드(Application Code) 에러 및 제어기의 펌웨어 업데이트 해킹에 의한 업데이트 실패 등을 인식할 수 있다.
본 발명은 통신 장치 및 차량의 품질을 향상시킬 수 있고 나아가 사용자의 만족도를 높일 수 있으며 사용자의 편리성을 향상시킬 수 있다.
도 1은 실시 예에 따른 차량에 마련된 통신 장치와 복수 개의 디바이스의 예시도이다.
도 2는 도 1에 도시된 차량 내 복수 개의 디바이스와 통신 장치의 제어 구성도이다.
도 3a 및 도 3b는 메시지 수신 시 메시지의 식별 정보(CAN ID)별 공격 유형(Attack Scenario)에 대응하는 제1로그 테이블의 생성 및 저장을 설명하기 위한 예시도이다.
도 4는 도 3b의 제1로그 테이블을 생성 및 저장하기 위한 제어기의 상세 구성도이다.
도 5a 및 도 5b는 펌웨어 업데이트 시 공격 유형(Attack Scenario)에 대응하는 제2로그 테이블의 생성 및 저장을 설명하기 위한 예시도이다.
도 6은 도 5b의 제2로그 테이블을 생성 및 저장하기 위한 제어기의 상세 구성도이다.
도 7은 실시 예에 따른 차량의 제어 순서도이다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시 예들의 모든 요소들을 설명하는 것은 아니며, 본 발명이 속하는 기술분야에서 일반적인 내용 또는 실시 예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '부, 디바이스, 장치'라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '부, 디바이스, 장치'가 하나의 구성요소로 구현되거나, 하나의 '부, 디바이스, 장치'가 복수의 구성요소들을 포함하는 것도 가능하다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 간접적으로 연결되어 있는 경우를 포함하고, 간접적인 연결은 무선 통신망을 통해 연결되는 것을 포함한다.
또한 어떤 부분이 어떤 구성요소를"포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
명세서 전체에서, 어떤 부재가 다른 부재 "상에" 위치하고 있다고 할 때, 이는 어떤 부재가 다른 부재에 접해 있는 경우뿐 아니라 두 부재 사이에 또 다른 부재가 존재하는 경우도 포함한다.
제 1, 제 2, 제3, 제4 및 제5 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 전술된 용어들에 의해 제한되는 것은 아니다.
단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다.
각 단계들에 있어 식별부호는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다.
이하 첨부된 도면들을 참고하여 본 발명의 작용 원리 및 실시 예들에 대해 설명한다.
도 1은 실시 예에 따른 통신 장치와, 복수 개의 디바이스를 포함하는 차량의 구성도이고, 도 2는 도 1에 도시된 차량 내 복수 개의 디바이스의 제어 구성도이다.
도 1에 도시된 바와 같이, 차량(1)은 적어도 하나의 기능을 수행하는 복수 개의 디바이스들(110, 120, 130, 140, 150)과, 복수 개의 디바이스(110, 120, 130, 140, 150) 중 하나의 디바이스에서 적어도 하나의 다른 디바이스로 메시지를 전송할 때 적어도 하나의 다른 디바이스로 메시지 전송 경로를 설정하고 메시지 전송을 제어하는 통신 장치(160)를 포함할 수 있다.
복수 개의 디바이스(110, 120, 130, 140, 150)는 통신 장치(160)에 의해 전기적으로 연결될 수 있고, 통신 장치(160)를 이용하여 서로 간의 통신을 수행하며, 통신 수행 중 적어도 하나의 기능을 수행하기 위한 각종 메시지를 송수신한다.
복수 개의 디바이스(110, 120, 130, 140, 150)는 적어도 하나의 기능을 수행하는 부하를 포함하는 전자 장치일 수 있고, 차량의 상태에 대한 적어도 하나의 정보를 검출하는 검출 장치일 수 있으며, 적어도 하나의 기능을 수행하도록 하는 제어기일 수 있다. 이러한 복수 개의 디바이스의 구성을 도 2를 참조하여 설명한다.
도 2에 도시된 바와 같이, 각 디바이스(110, 120, 130, 140, 150)는 통신 장치(160)를 통해 다른 디바이스와의 통신을 수행하는 통신부(111, 121, 131, 141, 151)와, 통신부(111, 121, 131, 141, 151)를 통해 수신되는 메시지 및 내부의 프로그램에 기초하여 제어 신호를 생성하는 제어기(112, 122, 132, 142, 152)와, 메시지의 식별 정보 별로 메시지를 송신할 다른 디바이스의 식별 정보를 저장하고 목적지 IP 주소(즉 수신 디바이스의 IP주소)를 저장하는 메모리(114, 124, 134, 144, 154)를 포함할 수 있다.
각 디바이스(110, 120, 130, 140, 150)의 통신부(111, 121, 131, 141, 151)는 통신 장치(160)와 동일한 네트워크 아키텍처를 가질 수 있다. 즉 각 디바이스(110, 120, 130, 140, 150)의 통신부와 통신 장치(160)는 네트워크 아키텍처에 기초하여 통신을 수행할 수 있다.
각 디바이스의 제어기(112, 122, 132, 142, 152)는 통신부(111, 121, 131, 141, 151)를 통해 수신된 메시지에 대해 필요한 식별 정보를 가진 메시지이면 제어에 이용하고, 불필요한 식별 정보를 가진 메시지이면 수신된 메시지를 무시한다.
각 디바이스의 제어기(112, 122, 132, 142, 152)는 디바이스기 내 구성요소들의 동작을 제어하기 위한 알고리즘 또는 알고리즘을 재현한 프로그램에 대한 데이터를 저장하는 메모리(미도시), 및 메모리에 저장된 데이터를 이용하여 전술한 동작을 수행하는 프로세서(미도시)로 구현될 수 있다. 이때, 메모리와 프로세서는 각각 별개의 칩으로 구현될 수 있다. 또는, 메모리와 프로세서는 단일 칩으로 구현될 수도 있다.
각 디바이스의 메모리(114, 124, 134, 144, 154)는 캐쉬, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 및 플래쉬 메모리(Flash memory)와 같은 비휘발성 메모리 소자 또는 RAM(Random Access Memory)과 같은 휘발성 메모리 소자 또는 하드디스크 드라이브(HDD, Hard Disk Drive), CD-ROM과 같은 저장 매체 중 적어도 하나로 구현될 수 있으나 이에 한정되지는 않는다.
각 메모리는 각 제어기와 관련하여 전술한 프로세서와 별개의 칩으로 구현된 메모리일 수 있고, 프로세서와 단일 칩으로 구현될 수도 있다.
복수 개의 디바이스 중 일부(110, 120, 130, 140)는 제어기의 제어 신호에 대응하여 동작하는 부하(113, 123, 133, 143)를 포함할 수 있다. 이 경우, 각 디바이스(110, 120, 130, 140)의 제어기는 부하의 동작을 제어하는 부하용 제어기일 수 있다.
제5디바이스(150)는 다른 디바이스로부터 각종 동작 정보를 수신하고 수신된 각종 동작 정보에 기초하여 다른 디바이스 또는 또 다른 디바이스의 부하를 제어함으로써 적어도 하나의 기능을 수행하도록 하는 제어기일 수 있다. 이 경우 제5디바이스(150)의 제어기(152)는 다른 디바이스의 부하에서 수행 가능한 기능들 중의 일부 기능을 제어하기 위한 기능 수행용 제어기일 수 있다.
여기서 다른 디바이스는 하나 또는 둘 이상의 디바이스일 수 있다.
복수 개의 디바이스들(110, 120, 130, 140, 150)에 각각 마련된 제어기(112, 122, 132, 142, 152)는, 중요 시그널 조작 방지를 위한 인증된 메시지를 전송하도록 하는 온보드 통신 보안(SecOC : Secure Onboard Communication) 모듈을 포함할 수 있다.
온보드 통신 보안 모듈은, 캔(CAN) 통신을 통해 메시지를 전송할 때 메시지에 맥(MAC) 정보를 포함시켜 송신하고 카운터(Counter) 정보를 더 포함시켜 송신하는 것도 가능하다. 여기서 메시지는 캔 메시지일 수 있다.
온보드 통신 보안 모듈은 재전송 공격(replay attack) 및 전송 중에 메시지가 변조되는 것을 방지할 수 있다. 또한 온보드 통신 보안 모듈은 메시지가 스니핑(sniffing)되어 역분석 되거나, 차량에 이상동작을 유발하는 메시지 값이 변조되어 주입된다 하여도 이를 차단할 수 있다.
온보드 통신 보안 모듈이 마련된 제어기(112, 122, 132, 142, 152)는, 온보드 통신 보안에 대한 로그 기능을 수행할 수 있다. 이에 따라 각각의 제어기는 온보드 통신 보안 모듈에 대한 공격 대응 로그 테이블(즉 제1로그 테이블)에 대한 정보를 가질 수 있다.
각각의 제어기(112, 122, 132, 142, 152)는 온보드 통신 보안 정보가 포함된 메시지에 대한 식별 정보(ID)를 기준으로 제1테이블을 생성하되 메시지의 식별정보(CAN ID)별로 제1테이블을 생성하고, 공격이 발생되었다고 판단되면 제1 테이블 내에 로그 여부에 대한 정보를 저장한다.
각각의 제어기(112, 122, 132, 142, 152)는 제1테이블 생성 시 로그 여부에 대응하여 제1로그 테이블로 생성할 수 있다. 즉 각각의 제어기(112, 122, 132, 142, 152)는 로그 정보를 가진 제1로그 테이블을 생성 및 저장할 수 있다.
여기서 온보드 통신 보안 정보가 포함된 메시지는 맥(MAC) 정보가 포함된 메시지일 수 있고, 맥 정보가 포함되어 있지 않은 메시지일 수 있으며, 변조된 맥 정보가 포함된 메시지일 수 있다. 이에 대한 구체적 구성을 추후 설명한다.
각각의 제어기(112, 122, 132, 142, 152)는 펌웨어 업데이트 시 펌웨어를 검증하여 업데이트하는 보안 업데이트(Secure Update)를 수행한다.
좀 더 구체적으로, 각각의 제어기(112, 122, 132, 142, 152)는 펌웨어 업데이트 시, 펌웨어에 전자서명을 포함시켜 검증을 수행한다.
각각의 제어기는 펌웨어가 정상적인 장치에서 생성된 후 전자 서명이 추가되었는지를 판단하는 진본위성과, 중간 통신 과정에서 변조되지는 않았는지를 판단하는 무결성을 확인한다.
진본위성(또는 진본성 Authenticity) 확인은 송신하는 디바이스와 수신하는 디바이스 사이에 신뢰할 수 있는 데이터를 교환하였는지를 확인하는 것이고, 무결성(Integrity) 확인은 정보 컨텐츠의 완전성을 확인 및 검증하는 것이다.
이를 통해 각각의 제어기(112, 122, 132, 142, 152)는 서버로부터 만들어지지 않은, 즉 공격 디바이스에 의해 변조된 펌웨어로 제어기가 업데이트 또는 업그레이드는 것을 방지할 수 있다.
각각의 제어기(112, 122, 132, 142, 152)는 보안 업데이트에 대한 로그(Secure Update LOG) 기능을 수행할 수 있다. 이에 따라 각각의 제어기는 보안 업데이트에 대한 공격 대응 로그 테이블(즉 제2로그 테이블)를 가질 수 있다.
각각의 제어기(112, 122, 132, 142, 152)는 보안 업데이트가 적용된 펌웨어 업데이트 공격 유형에 대응하여 제2테이블을 생성할 수 있다. 각각의 제어기(112, 122, 132, 142, 152)는 제2테이블 생성 시 로그 여부에 대응하여 제2로그 테이블로 생성할 수 있다. 즉 각각의 제어기(112, 122, 132, 142, 152)는 로그 정보를 가진 제2로그 테이블을 생성 및 저장할 수 있다. 이에 대한 구체적 구성을 추후 설명한다.
각각의 제어기(112, 122, 132, 142, 152)는 소프트웨어 버전을 기준으로 제1테이블을 작성하고 공격이 발생하였다고 판단되면 로그를 저장할 수 있다. 여기서 소프트웨어 버전(SW Version)은 펌웨어 업데이트 전에 리드 데이터(Read Data)를 통해 요청하는 소프트웨어 버전일 수 있다.
제 5디바이스(150)가 메인 제어기의 기능을 수행할 경우, 메인 제어기에 대한 추가적 구성에 대해 설명한다.
메인 제어기(150)는 차량에 마련된 복수 개의 디바이스 간의 통신을 제어하고, 복수 개의 디바이스를 관리하고 복수 개의 디바이스의 동작을 제어한다. 이러한 메인 제어기(150)는 진단기(170)와의 통신을 제어하는 것도 가능하다.
메인 제어기(150)는 입력부(111)에 입력된 출력 명령이 수신되면 메인 메모리(즉, 제5 메모리, 154)에 저장된 에러 정보를 표시부(112)를 통해 표시하도록 표시부(112)의 동작을 제어하고, 입력부(111)에 입력된 전송 명령이 수신되면 메인 메모리(154)에 저장된 에러 정보를 통신 장치(160)를 통해 진단기(170)에 전송하도록 통신 장치(160)의 동작을 제어한다.
메인 제어기(150)는 입력부(111)에 입력된 전송 명령이 수신되면 진단기(170)의 연결 요청에 대한 정보를 출력하도록 표시부(118)의 동작을 제어하고, 진단기(170)와의 통신 가능성을 확인함으로써 통신 장치(160)와 진단기(170)와의 정상 연결 여부를 판단하는 것도 가능하다.
메인 제어기(150)는 진단기(170)로부터 에러 정보의 전송 명령이 수신되면 메인 메모리(154)에 저장된 에러 정보를 통신 장치(160)를 통해 진단기(170)에 전송하도록 통신 장치(160)의 동작을 제어한다.
메인 제어기(150)는 에러 정보의 출력 명령이 수신되거나 에러 정보의 전송 명령이 수신되면 복수 개의 제어기에 에러 정보의 전송을 요청하고, 복수 개의 제어기 중 적어도 하나의 제어기로부터 에러 정보를 수신하며 수신된 에러 정보를 진단기(170)에 전송하도록 통신 장치(160)의 동작을 제어한다.
메인 제어기(150)는 적어도 하나의 제어기로부터 에러 정보가 수신되면 수신된 에러 정보를 메인 메모리(154)에 저장하는 것도 가능하다.
메인 메모리(154)는 에러 정보를 저장하고 복수 개의 디바이스의 제어기의 식별 정보를 저장할 수 있다.
이러한, 복수 개의 디바이스들(110, 120, 130, 140, 150)은 통신 장치(160)를 통해 서로 전기적, 기계적 및 통신적으로 연결될 수 있다.
통신 장치(160)는 유선 통신을 위한 유선 통신 모듈 및 무선 통신을 위한 무선 통신 모듈 중 적어도 하나를 포함할 수 있다.
이러한 통신 장치는 적어도 두 개의 디바이스들 사이에서 통신을 중계한다. 예를 들어, 통신 장치(160)는 유선을 통해 서로 다른 제어기 사이에서 제어 신호를 송수신한다. 이러한 통신 장치는 게이트웨이를 포함할 수 있다.
본 실시 예의 통신 장치는 유선 통신 모듈 중 캔 통신 모듈을 예를 들어 설명한다.
캔 통신 모듈은 두 개의 통신 선인 하이 라인과 로우 라인을 통하여 적어도 하나의 제어기, 전자 장치 및 검출 장치 중 적어도 하나에 제어 신호를 전송하며, 신호 전송 시 초당 수천 개의 신호를 전송할 수 있다.
이러한 캔 통신 모듈은 제어 신호를 송수신하는 통신 속도에 따라 저속 캔 통신 모듈과 고속 캔 통신 모듈로 구분될 수 있다.
여기서 저속 캔 통신 모듈은 기준 속도 미만의 통신 속도를 가진 캔 통신 모듈일 수 있고, 고속 캔 통신 모듈은 기준 속도 이상의 통신 속도를 가진 캔 통신 모듈일 수 있다.
저속 캔 통신 모듈은 멀티미디어 캔(M-CAN: Multimedia Controller Area Network)통신 모듈과, 각종 전자 장치를 동작시키기 위한 신호를 송수신하는 바디 캔(B-CAN: Body Controller Area Network) 통신 모듈을 포함할 수 있다.
고속 캔 통신 모듈은 파워 트레인, 안정성 제어(ABS, 액티브 서스펜션 등), 변속 기능을 실시간으로 제어하기 위한 신호를 송수신하는 파워 트레인 캔(P-CAN: Power Train Controller Area Network) 통신 모듈과, 섀시 캔(C-CAN: Chassis Controller Area Network) 통신 모듈을 포함하고 에러를 진단하기 위한 진단 캔(D-CAN) 통신 모듈을 포함할 수 있다.
도 3a 및 도 3b는 메시지 수신 시 메시지의 식별 정보(CAN ID)별 공격 유형(Attack Scenario)에 대응하는 제1로그 테이블의 생성 및 저장을 설명하기 위한 예시도이고, 도 4는 제1로그 테이블을 생성 및 저장하기 위한 제어기의 상세 구성도이다.
공격 유형(Attack Scenario)은, 온보드 통신 보안 정보가 미포함된 메시지가 수신되는 제1유형(Without MAC)과, 변조된 온보드 통신 보안 정보가 포함된 메시지가 수신되는 제2유형(맥 변조)을 포함할 수 있다. 여기서 변조된 온보드 통신 보안 정보는 변조된 맥 정보를 포함하는 정보일 수 있다.
온보드 통신 보안 정보가 미포함된 메시지는 맥정보가 미포함된 메시지일 수 있다.
아울러 제1디바이스(110)의 제1제어기(112)가 메시지를 송신하는 송신 디바이스이고, 제2디바이스(120)의 제2제어기(122)가 메시지를 수신하는 수신 디바이스인 경우를 예를 들어 설명한다.
제1디바이스(110)의 제1제어기(112)는 식별 정보를 가지는 메시지를 제2디바이스(120)의 제2제어기(122)에 전송한다.
제1디바이스(110)의 제1메모리는 메시지의 식별 정보별 맥 정보를 저장할 수 있다. 제1디바이스(110)의 제1메모리는 미리 설정된 맥 정보를 저장할 수 있다.
이때 제2디바이스(120)의 제2제어기(122)는 제1디바이스(110)로부터 메시지를 수신하고 수신된 메시지의 식별 정보에 기초하여 수신된 메시지가 제2디바이스(120)의 제2부하의 제어에 필요한 메시지인지 확인하고 수신된 메시지가 제2디바이스(120)의 제2부하의 제어에 필요한 메시지이며 수신된 메시지를 저장한다.
제2디바이스(120)의 제2제어기(122)는 수신된 메시지의 식별 정보를 확인하고 확인된 식별 정보(CAN ID)별로 메시지를 저장할 수 있다. 즉, 수신 디바이스는 송신 디바이스별로 메시지를 저장할 수 있다.
제2디바이스(120)의 제2제어기(122)는 메시지에 포함된 온보드 통신 보안 정보를 확인하고, 확인된 온보드 통신 보안 정보 내의 맥의 검증을 수행하며 맥 검증의 수행 결과에 기초하여 메시지가 정상이라고 판단되면 메시지의 식별 정보와 노멀(Normal)에 대한 값을 함께 저장할 수 있다. 여기서 노멀은 메시지가 공격 없이 수신됨을 의미한다.
제2디바이스(120)의 제2제어기(122)는 맥 검증의 결과에 기초하여 메시지가 정상이라고 판단되면 수신된 메시지를 처리하여 메시지에 대응하는 제어를 수행한다.
제2디바이스(120)의 제2제어기(122)는 수신된 메시지에 대한 로그 정보를 저장하지 않는다. 즉 제2디바이스(120)의 제2제어기(122)는 정상적인 메시지에 대한 제1 로그 테이블을 생성 및 저장하지 않는다.
제2디바이스(120)의 제2제어기(122)는 맥 검증의 수행 결과에 기초하여 온보드 통신 보안 정보에 맥 정보가 포함되어 있지 않거나 온보드 통신 보안 정보가 온보드 통신 보안 표준을 만족하지 않는다고 판단되면 수신된 메시지를 비정상 메시지로 판단하고 공격 유형 중 제1 유형(Without MAC)에 대한 값과 메시지의 식별 정보(ID)를 이용하여 제1로그 테이블을 생성 및 저장한다.
제2디바이스(120)의 제2제어기(122)는 수신된 메시지가 비정상 메시지라고 판단되면 메시지가 수신된 시간에 대한 시간 정보를 확인하고 확인된 시간 정보에 기초하여 타임 스탬프(Time stamp)를 생성하고, 제1 유형(Without MAC)에 대한 값, 타임 스탬프 및 메시지의 식별 정보를 이용하여 제1로그 테이블을 생성 및 저장한다.
제2디바이스(120)의 제2제어기(122)는 비정상 메시지가 수신된 횟수를 카운트하고 카운트된 횟수 정보를 제1로그 테이블에 저장할 수 있다.
제2디바이스(120)의 제2제어기(122)는 맥 검증을 수행한 후 온보드 통신 보안 정보에 포함된 맥이 변조되었다고 판단되면 메시지가 비정상이라고 판단하고 공격 유형 중 제2 유형(맥 변조)에 대한 값과 메시지의 식별 정보를 이용하여 제1로그 테이블을 생성 및 저장한다.
맥이 변조되었다고 판단하는 것은, 맥 값, 즉 맥 정보가 변조되었다고 판단하는 것을 포함한다.
여기서 맥 검증은, 맥 정보가 미리 설정된 맥 정보와 동일한지 상이한지를 판단하는 것을 포함할 수 있다. 맥 정보가 미리 설정된 맥 정보와 상이하면 수신된 맥정보는 변조된 맥 정보일 수 있다.
제2디바이스(120)의 제2제어기(122)는 변조된 맥 정보가 포함된 메시지가 수신된 시간에 대한 시간 정보를 확인하고 확인된 시간 정보에 기초하여 타임 스탬프(Time stamp)를 생성하고, 제2 유형에 대한 값, 타임 스탬프 및 메시지의 식별 정보를 이용하여 제1로그 테이블을 생성 및 저장한다.
제2디바이스(120)의 제2제어기(122)는 변조된 맥 정보가 포함된 메시지가 수신된 횟수를 카운트하고 카운트된 횟수 정보를 제1로그 테이블에 저장할 수 있다.
제2디바이스(120)의 제2제어기(122)는 변조된 맥 정보가 포함된 메시지가 수신될 때마다 카운트를 1씩 증가시킬 수 있다.
제2디바이스(120)의 제2제어기(122)는 메시지의 식별 정보별 공격 유형의 정보, 타임 스탬프의 정보 및 카운터의 정보가 매치된 제1테이블을 생성할 수 있다. 아울러 제1테이블은 로그 저장 여부에 대한 정보를 더 포함할 수 있다.
본 실시 예의 제어기는, 어느 시점에 어떤 방식으로 몇 번, 차량을 공격하기 위한 메시지가 수신되었는지를 알 수 있다.
제1 로그 테이블은 애플리케이션(또는 호스트)에 의해 변경될 수 없다.
제1 로그 테이블을 생성 및 저장하기 위한 제어기의 구성에 대해 좀 더 구체적으로 설명한다.
도 4에 도시된 바와 같이, 각 디바이스의 제어기는 마이컴(Host) 및 계층적 저장 관리기(HSM)를 포함할 수 있다.
마이컴(Host)과 계층적 저장 관리기(HSM)는 인터페이스를 통해 전기적, 기계적, 통신적으로 연결될 수 있다.
마이컴(Host)은 메시지를 인식하고 인식된 메시지에 기초하여 부하의 동작을 제어하거나, 사용자 인터페이스를 제공하는 애플리케이션을 포함한다.
마이컴(Host)은 온보드 통신 보안 모듈을 포함할 수 있다.
계층적 저장 관리기(HSM)는 인터페이스를 통해 맥 검증 요청을 수신하고, 맥 검증 결과에 대한 정보를 마이컴에 전달하고, 제1로그 테이블을 마이컴에 전달한다.
계층적 저장 관리기(HSM)는 메시지 전달 시에 맥을 생성하고, 메시지 수신 시에 맥 검증을 수행하는 알고리즘을 포함할 수 있다.
여기서 알고리즘은 크립토(crypto) 알고리즘을 포함할 수 있다.
알고리즘은 에이 이 에스 씨맥(AES-CMAC) 또는 에이치 맥(HMAC: keyed-Hash-base Message Authentication Code)을 포함할 수 있다.
계층적 저장 관리기(HSM)는 맥 검증 후 메시지가 비정상이라고 판단되면 로그 테이블을 작성하고 작성된 제1로그 테이블이 저장되도록 하는 보안 앱을 더 포함한다. 여기서 보안 앱은 온보드 통신 보안 모듈과 연계하여 제1로그 테이블을 생성할 수 있다.
계층적 저장 관리기(HSM)는 제1로그 테이블을 저장하는 메모리를 더 포함할 수 있다. 여기서 메모리는 디 플래시(D-Flash) 메모리일 수 있다.
이와 같이, 제1 로그 테이블은 제어기 내 계층적 저장 관리기(HSM: Hierarchical Storage Management)에 의해 생성되며 계층적 저장 관리기 내의 메모리에 저장될 수 있다. 이 경우 제어기의 마이컴(호스트일 수 있음)은 제1로그 테이블을 리드(read)만 할 수 있다.
도 5a 및 도 5b는 펌웨어 업데이트 시 공격 유형(Attack Scenario)에 대응하는 제2로그 테이블의 생성 및 저장을 설명하기 위한 예시도이고, 도 6은 도 5b의 제2로그 테이블을 생성 및 저장하기 위한 제어기의 상세 구성도이다.
공격 유형(Attack Scenario)은, 서명 정보가 미포함된 펌웨어가 수신되는 제1유형(Without 서명)과, 변조된 서명 정보가 포함된 메시지가 수신되는 제2유형(서명 변조)을 포함할 수 있다.
아울러 복수 개의 디바이스들 중 제5디바이스의 펌웨어 업데이트를 예를 들어 설명한다.
진단기(170)는 서명 정보를 가지는 펌웨어를 제5디바이스(150)의 제5제어기(152)에 전송한다. 여기서 서명 정보가 포함된 펌웨어는 보안 업데이트가 적용된 펌웨어일 수 있다.
이때 제5디바이스(150)의 제5제어기(152)는 진단기(170)로부터 펌웨어를 수신하고 수신된 펌웨어에 서명 정보가 존재하는지 판단하고, 서명 정보가 존재한다고 판단되면 서명 정보에 대한 진본성 및 무결성을 확인하고, 확인된 진보성과 무결성에 기초하여 수신된 펌웨어가 미리 정해진 서버로부터 전송된 펌웨어인지 판단한다.
제5디바이스(150)의 제5제어기(152)는 미리 정해진 서버로부터 전송된 펌웨어라고 판단되면 수신된 펌웨어를 이용하여 업데이트를 수행한다.
제5디바이스(150)의 제5제어기(152)는 펌웨어가 정상이라고 판단되면 수신된 펌웨어의 소프트웨어 버전을 확인하고 확인된 소프트웨어 버전에 대한 소프트웨어 버전정보를 이용하여 제2테이블을 생성 및 저장한다.
제5디바이스(150)의 제5제어기(152)는 소프트웨어 버전 정보와 노멀(Normal)에 대한 값을 함께 저장할 수 있다. 여기서 노멀은 펌웨어가 공격 없이 수신됨을 의미한다.
제5디바이스(150)의 제5제어기(152)는 수신된 펌웨어에 대한 로그 정보를 저장하지 않는다. 즉 제5디바이스(150)의 제5제어기(152)는 정상적인 펌웨어에 대한 제2로그 테이블을 생성 및 저장하지 않는다.
제5디바이스(150)의 제5제어기(152)는 수신된 펌웨어에 서명 정보가 존재하지 않거나, 서명 정보의 형태가 상이하다고 판단되면 보안 업데이트 사양을 만족하지 않는다고 판단한다.
제5디바이스(150)의 제5제어기(152)는 펌웨어가 비정상이라고 판단하고 공격 유형 중 제1 유형(Without 서명)에 대한 값과 소프트웨어 버전 정보를 이용하여 제2로그 테이블을 생성 및 저장한다.
제5디바이스(150)의 제5제어기(152)는 펌웨어가 비정상이라고 판단되면 펌웨어가 수신된 시간에 대한 시간 정보를 확인하고 확인된 시간 정보에 기초하여 타임 스탬프(Time stamp)를 생성하고, 제1 유형(Without 서명)에 대한 값, 타임 스탬프 및 소프트웨어 버전 정보를 이용하여 제2로그 테이블을 생성 및 저장한다.
제5디바이스(150)의 제5제어기(152)는 비정상인 메시지가 수신된 횟수를 카운트하고 카운트된 횟수 정보를 제2로그 테이블에 저장할 수 있다.
제5디바이스(150)의 제5제어기(152)는 서명 정보가 존재한다고 판단되면 수신된 서명 정보가 변조되는지를 판단하고, 수신된 서명 정보가 변조되었다고 판단되면 메시지가 비정상이라고 판단하고 공격 유형 중 제2 유형(서명 변조)에 대한 값과 소프트웨어 버전 정보를 이용하여 제2로그 테이블을 생성 및 저장한다.
수신된 서명 정보가 변조되었는지 판단하는 것은, 수신된 서명 정보와 미리 설정된 서명 정보의 일치, 상이 여부를 판단하는 것을 포함한다. 즉 제5제어기(152)는 수신된 서명 정보가 미리 설정된 서명 정보와 상이하면 수신된 서명 정보가 변조되었다고 판단할 수 있다.
제5디바이스(150)의 제5제어기(152)는 변조된 서명 정보가 포함된 펌웨어가 수신된 시간에 대한 시간 정보를 확인하고 확인된 시간 정보에 기초하여 타임 스탬프(Time stamp)를 생성하고, 제2 유형에 대한 값, 타임 스탬프 및 소프트웨어 버전 정보를 이용하여 제2로그 테이블을 생성 및 저장한다.
제5디바이스(150)의 제5제어기(152)는 변조된 서명 정보가 포함된 펌??어가 수신된 횟수를 카운트하고 카운트된 횟수 정보를 제2로그 테이블에 저장할 수 있다.
제5디바이스(150)의 제5제어기(152)는 변조된 서명 정보가 포함된 펌웨어가 수신될 때마다 카운트를 1씩 증가시킬 수 있다.
제5디바이스(150)의 제5제어기(152)는 소프트웨어 버전별 공격 유형의 정보, 타임스탬프의 정보 및 카운터의 정보가 매치된 제2테이블을 생성할 수 있다. 아울러 제2테이블은 로그 저장 여부에 대한 정보를 더 포함할 수 있다.
본 실시 예의 제어기는, 어느 시점에 어떤 방식으로 몇 번, 차량을 공격하기 위한 펌??어가 수신되었는지를 알 수 있다.
제2 로그 테이블은 애플리케이션(또는 호스트), 부트스트랩(Bootstrap) 로더(또는, Bootloader)에 의해 변경될 수 없다.
제2 로그 테이블을 생성 및 저장하기 위한 제어기의 구성에 대해 좀 더 구체적으로 설명한다.
도 6에 도시된 바와 같이, 각 디바이스의 제어기는 마이컴(Host) 및 계층적 저장 관리기(HSM)를 포함할 수 있다.
마이컴(Host)과 계층적 저장 관리기(HSM)는 인터페이스를 통해 전기적, 기계적, 통신적으로 연결될 수 있다.
마이컴(Host)은 펌웨어를 인식하고 인식된 펌웨어에 기초하여 제어기를 보안 업데이트 또는 보안 업그레이드하는 부트로더를 포함할 수 있다.
계층적 저장 관리기(HSM)는 인터페이스를 통해 서정 정보을 수신하고, 수신된 서명 검증에 대한 정보를 마이컴에 전달하고, 제2로그 테이블을 마이컴에 전달한다.
계층적 저장 관리기(HSM)는 서명 검증을 수행하는 알고리즘을 포함할 수 있다. 여기서 알고리즘은 크립토(crypto) 알고리즘을 포함할 수 있다. 또한 알고리즘은 알에스에이(RSA) 또는 해쉬(Hash) 알고리즘을 포함할 수 있다.
계층적 저장 관리기(HSM)는 서명 검증 후 펌웨어가 비정상이라고 판단되면 제2로그 테이블을 생성하고 생성된 제2로그 테이블이 저장되도록 하는 보안 앱을 더 포함한다. 여기서 보안 앱은 보안 업데이트 모듈과 연계하여 제2로그 테이블을 생성할 수 있다.
계층적 저장 관리기(HSM)는 제2로그 테이블을 저장하는 메모리를 더 포함할 수 있다. 여기서 메모리는 디 플래시(D-Flash) 메모리일 수 있다.
이와 같이, 제2 로그 테이블은 제어기 내 계층적 저장 관리기(HSM: Hierarchical Storage Management)에 의해 생성되며 계층적 저장 관리기 내의 메모리에 저장될 수 있다. 이 경우 제어기의 마이컴(호스트일 수 있음)은 제2로그 테이블을 리드(read)만 할 수 있다.
도 7은 실시 예에 따른 차량의 통신 보안을 위한 제어 순서도이다.
차량에 마련된 제1디바이스의 제1제어기(112)는 메시지가 수신되면 수신된 메시지의 식별 정보를 확인하고, 확인된 메시지의 식별 정보에 기초하여 제1부하의 제어에 필요한 메시지인지 판단하고, 제1부하의 제어에 불필요한 메시지라고 판단되면 캔 통신(CAN BUS)을 통해 다른 디바이스(예를 들어 제5디바이스)에 전달한다.
이때 제1디바이스의 제1제어기(112)에 수신된 메시지는, 정해지지 않은 디바이스(즉 공격 디바이스라 함)로부터 수신된 메시지로, 온보드 통신 보안 정보를 포함할 수 있다. 여기서 온보드 통신 보안 정보에는 맥 값이 포함되어 있거나, 설정되지 않은 맥 값이 포함되어 있거나, 맥 값이 포함되어 있지 않을 수 있다.
아울러 제1디바이스의 제1제어기(112)에서 다른 디바이스로 전송되는 메시지에 포함된 맥 값은, 공격 디바이스에 의해 변조될 수도 있다.
제1디바이스의 제1제어기(112)는 온보드 통신 보안 정보 내에 맥 값이 설정되지 않은 맥 값이면, 맥 값을 변조시키고 변조된 맥 값을 포함하는 온보드 통신 보안 정보를 캔 통신(CAN BUS)을 통해 다른 디바이스(150)에 전송할 수 있다.
제5디바이스의 제5제어기(152)에 마련된 마이컴(HOST)은 메시지가 수신되면 수신된 메시지의 식별 정보를 확인하고, 확인된 메시지의 식별 정보에 기초하여 제5제어기의 제어에 필요한 메시지인지 판단하고, 제5제어기의 제어에 필요한 메시지라고 판단되면, 메시지에 포함된 온보드 통신 보안 정보 내의 맥의 검증을 위해 계층적 저장 관리기(HSM)에 맥 검증을 요청한다.
계층적 저장 관리기는 맥 검증 요청에 대응하여 온보드 통신 보안 정보에 포함된 맥 값이 변조되는지 판단하고, 맥 값이 변조되었다고 판단되면 메시지가 비정상이라고 판단하고 공격 유형을 제2 유형(MAC 변조)으로 판단하며, 메시지가 수신된 시간에 대한 시간 정보를 확인하고 확인된 시간 정보에 기초하여 타임 스탬프(Time stamp)를 생성하고, 제2 유형(MAC 변조)에 대한 값, 타임 스탬프 및 메시지의 식별 정보를 이용하여 제1로그 테이블을 생성하고 생성된 제1로그 테이블을 디 플래시 메모리에 저장한다.
계층적 저장 관리기는 제1로그 테이블을 생성할 때 비정상인 메시지가 수신된 횟수를 카운트하고 카운트된 횟수 정보를 이용하여 제1로그 테이블을 생성할 수도 있다.
계층적 저장 관리기는 수신된 메시지가 비정상 메시지라고 판단되면 수신된 메시지를 폐기할 수 있다.
진단기(170)는 캔 통신을 통해 차량에 연결되면 제1로그 테이블 리드 명령을 차량에 송신할 수 있다. 이 경우, 진단기(170)는 메인 제어기(제5디바이스의 제5제어기)에 제1로그 테이블 리드 명령을 송신할 수 있다.
진단기(170)는 캔 통신을 통해 차량에 연결되면 제2로그 테이블 리드 명령을 차량에 송신할 수 있다. 이 경우, 진단기(170)는 메인 제어기(제5디바이스의 제5제어기)에 제2로그 테이블 리드 명령을 송신할 수 있다.
제1, 2 로그 테이블을 수신하기 위한 동작이 동일한 바, 제1로그 테이블을 수신하는 예에 대해 설명한다.
차량에 마련된 제5디바이스의 제5제어기에 마련된 마이컴(HOST)은, 캔 통신을 통해 진단기(170)가 연결된 후, 진단기로부터 제1로그 테이블 리드 명령(UDS Read Data)이 수신되면 계층적 저장 관리기(HSM)에 제1로그 테이블을 요청하는 명령을 전송한다. 이때 계층적 저장 관리기(HSM)는 마이컴(HOST)에서 수신된 제1로그 테이블의 요청 명령에 대응하여 디플래시 메모리에 저장된 제1로그 테이블을 마이컴에 전송한다.
마이컴(HOST)은 제1로그 테이블이 수신되면 수신된 제1로그 테이블을 캔 통신을 통해 진단기에 전송한다.
이때 진단기는, 제1로그 테이블에 저장된 정보에 기초하여 제5디바이스의 이상을 인식한다. 이와 같은 과정을 통해, 진단기는 차량 내에 마련된 모든 디바이스의 제어기의 고장을 진단할 수 있다.
진단기는 기능주소(Functional Address (0x7DF)) 를 통해 모든 제어기의 이상을 동시에 확인할 수 있다.
한편, 개시된 실시예들은 컴퓨터에 의해 실행 가능한 명령어를 저장하는 기록매체의 형태로 구현될 수 있다. 명령어는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 프로그램 모듈을 생성하여 개시된 실시예들의 동작을 수행할 수 있다. 기록매체는 컴퓨터로 읽을 수 있는 기록매체로 구현될 수 있다.
컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터에 의하여 해독될 수 있는 명령어가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다.
이상에서와 같이 첨부된 도면을 참조하여 개시된 실시예들을 설명하였다.본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고도, 개시된 실시예들과 다른 형태로 본 발명이 실시될 수 있음을 이해할 것이다. 개시된 실시예들은 예시적인 것이며, 한정적으로 해석되어서는 안 된다.
1: 차량 110: 제1디바이스
120: 제2디바이스 130: 제3디바이스
140: 제4디바이스 150: 제5디바이스
160: 통신 장치 170: 진단기

Claims (20)

  1. 다른 디바이스와 통신을 수행하는 통신부;
    상기 통신부를 통해 온보드 통신 보안 정보가 포함된 메시지가 수신되면, 상기 온보드 통신 보안 정보 내의 맥 정보의 존재 여부 및 상기 맥 정보의 변조 여부에 기초하여 상기 수신된 메시지의 정상 여부 및 상기 수신된 메시지의 공격 유형 중 적어도 하나를 판단하고, 상기 수신된 메시지가 비정상적인 메시지라고 판단되면 상기 메시지가 수신된 시간에 대한 정보, 상기 수신된 메시지의 공격 유형에 대한 정보 및 메시지의 식별 정보를 이용하여 로그 테이블을 생성하는 제어기; 및
    상기 로그 테이블을 저장하는 메모리를 포함하는 디바이스.
  2. 제 1 항에 있어서, 상기 제어기는,
    애플리케이션과, 상기 온보드 통신 보안 정보 내의 맥 정보를 포함시키는 온보드 통신 보안 모듈을 포함하는 마이컴과,
    맥 정보를 생성하고 맥 검증을 수행하며, 상기 맥 검증을 통해 상기 수신된 메시지가 비정상적인 메시지라고 판단되면 상기 로그 테이블을 생성하고 상기 생성된 로그 테이블을 상기 마이컴에 전달하는 계층적 저장 관리기를 포함하는 디바이스.
  3. 제 2 항에 있어서,
    상기 메모리는, 상기 계층적 저장 관리기의 내부에 마련되고,
    상기 메모리에 저장된 로그 테이블은, 상기 마이컴에 의해 리드되는 디바이스.
  4. 제 1 항에 있어서, 상기 제어기는,
    상기 온보드 통신 보안 정보 내의 맥 정보가 존재하고, 상기 맥 정보가 미리 설정된 맥 정보라고 판단되면 상기 수신된 메시지에 기초하여 적어도 하나의 기능을 제어하는 디바이스.
  5. 제 1 항에 있어서, 상기 제어기는,
    상기 온보드 통신 보안 정보 내의 맥 정보가 존재하지 않으면 상기 공격 유형을 제1유형으로 판단하는 디바이스.
  6. 제 1 항에 있어서, 상기 제어기는,
    상기 온보드 통신 보안 정보가 온보드 통신 보안 모듈의 표준을 만족하지 않으면 상기 공격 유형을 제1유형으로 판단하는 디바이스.
  7. 제 1 항에 있어서, 상기 제어기는,
    상기 온보드 통신 보안 정보 내의 맥 정보가 존재하고, 미리 설정된 맥 정보에 기초하여 상기 맥 정보가 변조된 맥 정보라고 판단되면 상기 공격 유형을 제2유형으로 판단하는 디바이스.
  8. 제 1 항에 있어서, 상기 제어기는,
    상기 수신된 메시지의 공격 유형에 대한 정보와 상기 메시지의 식별 정보에 기초하여 카운터를 획득하고 상기 획득된 카운터에 대한 정보를 상기 로그 테이블에 저장하도록 하는 디바이스.
  9. 다른 디바이스와 통신을 수행하는 통신부;
    상기 통신부를 통해 보안 업데이트가 포함된 펌웨어가 수신되면, 상기 수신된 보안 업데이트 내의 서명 정보의 존재 여부 및 상기 서명 정보의 변조 여부에 기초하여 상기 수신된 펌웨어의 정상 여부 및 상기 수신된 펌웨어의 공격 유형 중 적어도 하나를 판단하고, 상기 수신된 펌웨어가 비정상적인 펌웨어라고 판단되면 상기 펌웨어가 수신된 시간에 대한 정보, 상기 수신된 펌웨어의 공격 유형에 대한 정보 및 펌웨어의 소프트웨어 버전 정보를 이용하여 로그 테이블을 생성하는 제어기; 및
    상기 로그 테이블을 저장하는 메모리를 포함하는 디바이스.
  10. 제 9 항에 있어서, 상기 제어기는,
    부트로더를 포함하는 마이컴과,
    서명 정보의 검증을 수행하며, 상기 서명 정보의 검증을 통해 상기 수신된 펌웨어가 비정상적인 펌웨어라고 판단되면 상기 로그 테이블을 생성하고 상기 생성된 로그 테이블을 상기 마이컴에 전달하는 계층적 저장 관리기를 포함하는 디바이스.
  11. 제 10 항에 있어서,
    상기 메모리는, 상기 계층적 저장 관리기의 내부에 마련되고,
    상기 메모리에 저장된 로그 테이블은, 상기 마이컴에 의해 리드되는 디바이스.
  12. 제 9 항에 있어서, 상기 제어기는,
    상기 펌웨어 내에 서명 정보가 존재하고, 상기 서명 정보가 미리 설정된 서명 정보라고 판단되면 상기 수신된 펌웨어에 기초하여 업데이트를 수행하는 디바이스.
  13. 제 9 항에 있어서, 상기 제어기는,
    상기 펌웨어 내에 서명 정보가 존재하지 않으면 상기 공격 유형을 제1유형으로 판단하고, 상기 펌웨어 내에 서명 정보가 존재하고, 미리 설정된 서명 정보에 기초하여 상기 서명 정보가 변조된 서명 정보라고 판단되면 상기 공격 유형을 제2유형으로 판단하는 디바이스.
  14. 제 9 항에 있어서, 상기 제어기는,
    상기 수신된 메시지의 공격 유형에 대한 정보와 상기 메시지의 식별 정보에 기초하여 카운터를 획득하고 상기 획득된 카운터에 대한 정보를 상기 로그 테이블에 저장하도록 하는 디바이스.
  15. 복수 개의 디바이스; 및
    상기 복수 개의 디바이스 간 통신이 이루어지도록 하는 통신 장치를 포함하고,
    상기 복수 개의 디바이스 각각은,
    온보드 통신 보안 정보가 포함된 메시지가 수신되면, 상기 온보드 통신 보안 정보 내의 맥 정보의 존재 여부 및 상기 맥 정보의 변조 여부에 기초하여 상기 수신된 메시지의 정상 여부 및 상기 수신된 메시지의 공격 유형 중 적어도 하나를 판단하고, 상기 수신된 메시지가 비정상적인 메시지라고 판단되면 상기 메시지가 수신된 시간에 대한 정보, 상기 수신된 메시지의 공격 유형에 대한 정보 및 메시지의 식별 정보를 이용하여 제1로그 테이블을 생성하는 제어기; 및 상기 제1로그 테이블을 저장하는 메모리를 포함하는 차량.
  16. 제 15항에 있어서, 상기 제어기는,
    상기 통신 장치에 진단기를 통해 보안 업데이트가 포함된 펌웨어가 수신되면, 상기 수신된 보안 업데이트 내의 서명 정보의 존재 여부 및 상기 서명 정보의 변조 여부에 기초하여 상기 수신된 펌웨어의 정상 여부 및 상기 수신된 펌웨어의 공격 유형 중 적어도 하나를 판단하고, 상기 수신된 펌웨어가 비정상적인 펌웨어라고 판단되면 상기 펌웨어가 수신된 시간에 대한 정보, 상기 수신된 펌웨어의 공격 유형에 대한 정보 및 펌웨어의 소프트웨어 버전 정보를 이용하여 제2로그 테이블을 생성하고 사익 생성된 제2로그 테이블을 상기 메모리에 저장하도록 하는 차량.
  17. 제 16항에 있어서, 상기 제어기는,
    상기 진단기로부터 제1 로그 테이블 중 적어도 하나의 리드 명령이 수신되면 상기 메모리에 저장된 제1 로그 테이블을 상기 진단기에 전송하고, 상기 진단기로부터 제2 로그 테이블 중 적어도 하나의 리드 명령이 수신되면 상기 메모리에 저장된 제2 로그 테이블을 상기 진단기에 전송하는 차량.
  18. 제 16 항에 있어서, 상기 제어기는,
    상기 온보드 통신 보안 정보 내의 맥 정보가 존재하지 않으면 상기 공격 유형을 제1유형으로 판단하고, 상기 온보드 통신 보안 정보 내의 맥 정보가 존재하고, 미리 설정된 맥 정보에 기초하여 상기 맥 정보가 변조된 맥 정보라고 판단되면 상기 공격 유형을 제2유형으로 판단하는 차량.
  19. 제 15 항에 있어서, 상기 제어기는,
    상기 펌웨어 내에 서명 정보가 존재하지 않으면 상기 공격 유형을 제1유형으로 판단하고, 상기 펌웨어 내에 서명 정보가 존재하고, 미리 설정된 서명 정보에 기초하여 상기 서명 정보가 변조된 서명 정보라고 판단되면 상기 공격 유형을 제2유형으로 판단하는 차량.
  20. 제 15항에 있어서,
    상기 복수 개의 디바이스; 및 상기 통신 장치는, 캔 통신을 수행하는 차량.
KR1020200116619A 2020-09-11 2020-09-11 통신 장치 및 그를 가지는 차량 KR20220034355A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200116619A KR20220034355A (ko) 2020-09-11 2020-09-11 통신 장치 및 그를 가지는 차량

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200116619A KR20220034355A (ko) 2020-09-11 2020-09-11 통신 장치 및 그를 가지는 차량

Publications (1)

Publication Number Publication Date
KR20220034355A true KR20220034355A (ko) 2022-03-18

Family

ID=80936481

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200116619A KR20220034355A (ko) 2020-09-11 2020-09-11 통신 장치 및 그를 가지는 차량

Country Status (1)

Country Link
KR (1) KR20220034355A (ko)

Similar Documents

Publication Publication Date Title
US11223525B2 (en) Gateway device, firmware update method, and recording medium
EP3889766B1 (en) Secure firmware upgrade method, device, on-board system, and vehicle
JP7060362B2 (ja) 電子デバイスのためのイベント証明書
US10268557B2 (en) Network monitoring device, network system, and computer program product
US10229547B2 (en) In-vehicle gateway device, storage control method, and computer program product
US10009350B2 (en) Hardware components configured for secure physical separation of communication networks in a vehicle and methods of use thereof
JP5864510B2 (ja) 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置
US11848947B2 (en) System and method for providing security to in-vehicle network
JP6741559B2 (ja) 評価装置、評価システム及び評価方法
US20240053977A1 (en) Gateway device, in-vehicle network system, and firmware update method
CN107124431A (zh) 鉴权方法、装置、计算机可读存储介质和鉴权系统
US10353830B2 (en) Method and memory module for security-protected write processes and/or read processes on the memory module
US20130055228A1 (en) System and Method for Installing a Patch on a Computing System
WO2021111681A1 (ja) 情報処理装置、制御方法及びプログラム
US20130035924A1 (en) Electronic Data Processing System Having A Virtual Bus Server Application
EP3904161A1 (en) Information processing device
KR20220034355A (ko) 통신 장치 및 그를 가지는 차량
JP2018006782A (ja) データ提供システム、データ提供装置、車載コンピュータ、データ提供方法、及びコンピュータプログラム
EP3944116A1 (en) Method to forward automotive safety integrity level (asil) relevant information in a vehicle bus system (vbs) of a vehicle from a data source to a data sink and vbs for forwarding asil relevant information in a vehicle from a data source to a data sink
CN114785557A (zh) 一种整车对称密钥分发系统、方法及存储介质
KR20230029952A (ko) 차량에 개별 인증서의 보안 탑재를 위한 방법
WO2020090418A1 (ja) 電子制御装置、電子制御装置のリプログラミング方法
CN110874323A (zh) 信息处理装置、嵌入式系统以及调试控制方法
CN110874225A (zh) 一种数据校验方法、装置、嵌入式设备及存储介质
JP2018050334A (ja) データ提供システム、データ提供装置、車載コンピュータ、データ提供方法、及びコンピュータプログラム

Legal Events

Date Code Title Description
A201 Request for examination