KR102639075B1 - 차량용 진단기 및 그 인증서 관리 방법 - Google Patents

차량용 진단기 및 그 인증서 관리 방법 Download PDF

Info

Publication number
KR102639075B1
KR102639075B1 KR1020160161946A KR20160161946A KR102639075B1 KR 102639075 B1 KR102639075 B1 KR 102639075B1 KR 1020160161946 A KR1020160161946 A KR 1020160161946A KR 20160161946 A KR20160161946 A KR 20160161946A KR 102639075 B1 KR102639075 B1 KR 102639075B1
Authority
KR
South Korea
Prior art keywords
certificate
vehicle
revocation list
diagnostic
validity
Prior art date
Application number
KR1020160161946A
Other languages
English (en)
Other versions
KR20180062072A (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 KR1020160161946A priority Critical patent/KR102639075B1/ko
Priority to US15/811,064 priority patent/US10706646B2/en
Priority to DE102017128455.9A priority patent/DE102017128455A1/de
Publication of KR20180062072A publication Critical patent/KR20180062072A/ko
Application granted granted Critical
Publication of KR102639075B1 publication Critical patent/KR102639075B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/08Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
    • G07C5/0808Diagnosing performance data
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/008Registering or indicating the working of vehicles communicating information to a remotely located station
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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
    • B60R16/03Electric 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 for supply of electrical power to vehicle subsystems or for
    • B60R16/0315Electric 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 for supply of electrical power to vehicle subsystems or for using multiplexing techniques
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • B60W50/02Ensuring safety in case of control system failures, e.g. by diagnosing, circumventing or fixing failures
    • B60W50/0205Diagnosing or detecting failures; Failure detection models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C2205/00Indexing scheme relating to group G07C5/00
    • G07C2205/02Indexing scheme relating to group G07C5/00 using a vehicle scan tool

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Transportation (AREA)
  • Tourism & Hospitality (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Small-Scale Networks (AREA)
  • Operations Research (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 보다 신뢰성 있는 인증서 관리 방법에 관한 것으로, 보다 상세히는 진단기에서 자신의 인증서가 유효한지 여부를 보다 신뢰성있게 검증할 수 있는 방법 및 이를 수행할 수 있는 진단 시스템에 관한 것이다. 상기와 같은 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 진단기가 차량과 진단 통신을 수행하는 방법은, 자신이 보유한 인증서에 대한 인증서 폐지 목록(CRL)을 획득하는 단계; 상기 획득된 인증서 폐지 목록을 이용하여 상기 보유한 인증서의 유효성을 검증하는 단계; 상기 유효성 검증에 성공한 경우 상기 차량과 인증을 수행하는 단계; 및 상기 인증에 성공하면, 상기 차량과 상기 진단 통신을 개시하는 단계를 포함할 수 있다.

Description

차량용 진단기 및 그 인증서 관리 방법{DIAGNOSTICS DEVICE FOR VEHICLE AND METHOD OF MANAGING CERTIFICATE THEREOF}
본 발명은 보다 신뢰성 있는 인증서 관리 방법에 관한 것으로, 보다 상세히는 진단기에서 자신의 인증서가 유효한지 여부를 보다 신뢰성있게 검증할 수 있는 방법 및 이를 수행할 수 있는 진단 시스템에 관한 것이다.
온보드 진단기(On-Board Diagnostics), 또는 OBD는 차량 진단 분야에서 스스로 진단하고 그 결과를 리포트하는 장치를 의미한다. 최근에 생산되는 자동차에는 여러 가지 계측과 제어를 위한 센서를 탑재하고 있으며 이러한 장치들은 전자 제어기(ECU: Electronic Control Unit)에 의하여 제어되고 있다. ECU의 원래 개발 목적은 점화시기와 연료분사, 가변 밸브 타이밍, 공회전, 한계값 설정 등 엔진의 핵심 기능을 정밀하게 제어하는 것이었으나 차량과 컴퓨터 성능의 발전과 함께 자동변속기 제어를 비롯해 구동계통, 제동계통, 조향계통 등 차량의 모든 부분을 제어하는 역할까지 하고 있다. 이러한 차량의 전장화 확대에 따라 전자적인 진단 시스템은 발전을 거듭하였으며, 최근 OBD-II(On-Board Diagnostic version II)라는 표준화된 진단 시스템으로 정착되었다.
최근의 차량들에서는 OBD-II 연결을 통해 차량에 대한 비인가 접근을 차단하기 위해, 진단 장비에 접근 권한을 부여한 인증서를 발급하여 인가된 진단 장비만이 차량에 접근하도록 허용하고 있다.
이러한 인증서가 인증 기관이나 차량 제조사, 진단기 제조사 간의 관계나 기술적 변동 등의 이유로 더이상 유효하지 않게 되는 경우, 인증서는 폐지된다. 폐지된 인증서는 인증서 폐지 목록(CRL: Certificate Revocation List)의 형태로 관리되어, 차량에 전달된다. 따라서, 차량은 CRL을 획득하여 진단기의 인증서가 폐지되었는지 여부를 검증하게 된다.
그러나, 인증서 폐지 목록의 검증이 어렵거나 CRL을 외부로부터 획득하기 위한 무선 연결이 불가능한(즉, 오프라인) 차량 환경에서는 차량 입장에서 인증서의 폐지 여부를 확인하기 어렵다. 예컨대, 진단기를 통해 CRL을 차량에 전송하더라도, 컴퓨팅과 유휴 저장공간이 열악한 게이트웨이(Gateway)나 제어기(ECU)에서 CRL을 검증하는 연산을 수행하거나 저장 및 갱신하는 것은 매우 어렵다.
따라서, 오프라인 환경이나 연산/저장 능력이 열악한 차량을 위해 진단 장비의 인증서 유효성을 신뢰성 있게 검증할 방법이 요구된다.
본 발명은 보다 신뢰성 있게 진단기의 인증서 유효성을 검증할 수 있는 방법 및 그를 위한 장치를 제공하기 위한 것이다.
특히, 본 발명은 오프라인 또는 저스펙 제어기를 탑재한 차량 환경에서 진단 장비의 인증서 유효성을 신뢰성 있게 검증할 방법 및 그를 위한 장치를 제공하기 위한 것이다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 진단기가 차량과 진단 통신을 수행하는 방법은, 자신이 보유한 인증서에 대한 인증서 폐지 목록(CRL)을 획득하는 단계; 상기 획득된 인증서 폐지 목록을 이용하여 상기 보유한 인증서의 유효성을 검증하는 단계; 상기 유효성 검증에 성공한 경우 상기 차량과 인증을 수행하는 단계; 및 상기 인증에 성공하면, 상기 차량과 상기 진단 통신을 개시하는 단계를 포함할 수 있다.
또한, 본 발명의 일 실시예에 따른 차량과 진단 통신을 수행하는 진단기는 자신 보유한 인증서를 저장하는 메모리; 외부로부터 상기 보유한 인증서에 대한 인증서 폐지 목록(CRL)을 획득하는 통신부; 상기 차량과 통신하기 위한 차량 연결부; 및 상기 획득된 인증서 폐지 목록을 이용하여 상기 보유한 인증서의 유효성을 검증하고, 상기 유효성 검증에 성공한 경우 상기 차량 연결부를 통해 상기 차량과 인증을 수행하고, 상기 인증에 성공하면 상기 차량과 상기 진단 통신이 개시되도록 제어하는 프로세서를 포함할 수 있다.
상기와 같이 구성되는 본 발명의 적어도 하나의 실시예에 따르면 보다 신뢰성 있게 진단 장비의 인증서 유효성이 검증될 수 있다.
특히, 진단기 측면에서 CRL을 획득하여 자신의 인증서를 검증하되, 검증 과정의 바이패스가 방지되므로 차량이 오프라인 환경이라도 신뢰성 있는 진단기의 인증서 검증이 가능하다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 인증서 관리 시스템 구조의 일례를 나타낸다.
도 2는 본 발명의 일 실시예에 따른 진단기와 차량간 수행되는 진단기 인증 절차의 일례를 나타내는 순서도이다.
도 3은 본 발명의 일 실시예에 따른 CRL 관리 형태 및 진단기에서 CRL을 획득하는 과정의 일례를 나타낸다.
도 4는 본 발명의 일 실시예에 따른 버퍼 오버플로우 공격과, 이를 방지하기 위한 카나리 기법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 진단기 구조의 일례를 나타낸다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소들을 의미한다.
본 발명의 일 실시예에서는 오프라인 환경 또는 CRL의 검증 연산이나 저장이 원활하게 수행되기 어려운 성능의 제어기를 가진 차량 환경에서 진단 장비(또는 진단기)에 대한 CRL을 차량이 획득하여 검증하는 대신, 진단기가 CRL을 획득하여 자신의 인증서의 유효성을 검증하도록 할 것을 제안한다.
먼저, 도 1을 참조하여 CRL의 생성 및 진단 장비로의 전달 과정을 설명한다.
도 1은 본 발명의 일 실시예에 따른 인증서 관리 시스템 구조의 일례를 나타낸다.
도 1을 참조하면, 본 실시예에 따른 인증서 관리 시스템은 인증서 발급 서버(10), 업데이트 서버(20) 및 진단 장비(30)를 포함할 수 있다. 각 서버와 진단 장비는 유/무선을 통해 연결될 수 있으며, 본 실시예는 연결방식에 의해 제한되지 아니한다. 이하, 각 구성 요소에 대해 상세히 설명한다.
먼저, 인증서 발급 서버(10)는 소정의 자체 생성 규칙에 따라 복수의 진단 장비 인증서 정보(110)에 대응되는 차량 전용의 CRL 정보(120)를 생성하고, 이를 업데이트 서버(20)로 전달한다. 여기서 자체 생성 규칙에는 하나의 CRL에 최대로 포함될 수 있는 진단 장비 인증서 정보의 수, CRL의 생성(또는 업데이트) 주기, 생성(또는 업데이트)된 CRL을 업데이트 서버에 전달하는 주기 등이 정의될 수 있다. 인증서 정보(110)와 CRL 정보(120)의 대응 관계에 대해서는 도 3을 참조하여 보다 상세히 후술하기로 한다.
업데이트 서버(20)는 인증서 발급 서버(10)로부터 전달된 CRL 정보(120')를 관리하며, 진단 장비(30)의 요청이 있는 경우나 일정 주기로 진단 장비(30)가 보유한 인증서(111")에 대응되는 CRL(121")을 전달하는 역할을 수행한다.
진단 장비(30)는 차량 진단 시 자신의 인증서(111")에 대응되는 CRL(121")을 획득하고, 인증서의 유효성을 검증하며, 유효한 경우에만 차량 진단을 수행한다.
예컨대, 인증서 발급서버(10)의 기기 인증서 정보(110)에서 인증서 #1(111)이 폐기되는 경우, 인증서 발급서버(10)는 CRL 정보(120)에서 인증서 #1(111)에 대응되는 CRL #1(121)에 인증서 #1(111)에 대한 정보를 기록한다.
인증서 #1(111)에 대한 정보가 기록된 CRL #1(121)을 포함하는 CRL 정보(120)는 인증서 발급 서버(10)에서 업데이트 서버(20)로 전달(120')된다. 이후 진단 장비(30)가 차량 진단을 위해 자신의 인증서 #1(111")에 대응되는 CRL을 요청하면, 업데이트 서버(20)는 자신이 관리하는 CRL #1(121')을 진단 장비(30)에 제공한다. 진단 장비(30)는 자신에 획득된 CRL #1(121")의 유효성을 검증하고, 유효한 경우 자신의 인증서 #1(111")를 CRL #1(121")을 이용하여 유효성을 검증한다.
검증 결과, CRL #1에는 인증서 #1이 폐기됨을 나타낼 것이므로, 진단 장비(30)는 차량 진단을 수행하지 않게된다.
다음으로, 도 2를 참조하여 진단기와 차량간 통신이 수행되는 형태를 설명한다. 도 2는 본 발명의 일 실시예에 따른 진단기와 차량간 수행되는 진단기 인증 절차의 일례를 나타내는 순서도이다.
도 2를 참조하면, 진단기(30)는 먼저 차량 진단을 수행하기 위해 업데이트 서버(20)로부터 자신의 인증서에 대응되는 CRL을 획득하고(S210), CRL의 유효성을 검증한다(S220). CRL의 유효성 검증 방식은 CRL의 만료기간 및 발행 기관 확인을 통해 수행될 수 있으며, 이와 함께 추가적인 검증 방식이 수행될 수도 있다. 예컨대, 업데이트 서버(20)와의 대칭키/비대칭키 인증 절차를 통해 수행될 수도 있고, CRL 자체에 대한 인증서를 통해 수행될 수도 있으며, CRC 등의 무결성 체크 방식이 사용될 수도 있다. 물론 이러한 유효성 검증 방법은 예시적인 것으로 본 발명의 실시예들은 유효성 검증 방법에 의해 제한되지 아니한다.
CRL의 유효성이 검증되면, 진단기(30)는 CRL에 자신의 인증서에 대한 정보(즉, 폐지 목록)가 있는지 확인하여 인증서의 유효성을 검증한다(S230).
인증서가 유효한 경우, 진단기(30)는 차량(40)에 (예컨대, OBD-II 프로토콜에 따른) 통신 시작요청과 함께, 자신의 인증서를 전송한다(S240).
진단기(30)의 인증서를 획득한 차량(40)은 진단기(30)로 난수를 전송한다(S250).
난수를 수신한 진단기(30)는 해당 난수를 진단기의 개인키로 암호화하고, 유효성 검증 결과와 함께 차량(40)에 전송한다(S260).
차량(40)은 인증서 소유자 확인 및 재사용 공격 방지를 위해 암호화된 난수를 인증서에 포함된 진단기의 공개키로 복호화하여 인증서의 진본성을 검증한다(S270). 또한, 차량(40)은 자신의 유효성 검증 결과와 진단기(30)로부터 전송된 유효성 검증 결과를 비교한다.
상술한 절차들이 성공적으로 수행되는 경우 진단기(30)와 차량(40)은 정상적인 진단 통신을 수행할 수 있다.
다음으로, 도 3을 참조하여 CRL과 인증서의 관계를 설명한다.
도 3은 본 발명의 일 실시예에 따른 CRL 관리 형태 및 진단기에서 CRL을 획득하는 과정의 일례를 나타낸다.
도 3에서는 진단기(30)가 식별번호 82에 해당하는 인증서(300)를 보유하고 있으며, 업데이트 서버(20)는 복수의 CRL을 관리하되, CRL은 하나 당 최대 50개에 해당하는 폐기 인증서의 정보를 포함하는 것으로 가정한다.
예컨대, CRL #1(121')은 인증서 식별번호 1 내지 50까지의 폐기 목록을 포함할 수 있으며, CRL #2(122')는 인증서 식별번호 51 내지 100까지의 폐기 목록을 포함할 수 있다.
이러한 CRL 당 담당 폐기 목록의 개수는 아래와 같은 이유로 설정될 수 있다.
일반적인 진단기 유휴 램(RAM)은 10kb 미만이기 때문에, 최적의 동작을 위해 1k 미만으로 CRL 크기 산정되는 것이 바람직할 수 있다. 따라서 CRL의 크기는 800 바이트 미만으로 설정함을 고려해볼 수 있으며, 이때 폐기 목록은 50개의 인증서에 대한 정보를 포함하기에 적합하다. 물론, 이러한 CRL의 최대 크기, 개당 담당 폐기 인증서의 개수 등은 예시적인 것으로 반드시 이에 한정되는 것은 아니다.
도 3을 참조하면, 진단기(30)는 차량 진단을 수행하기 위해 인증서의 유효성을 검증하기 위해 업데이트 서버(20)에 CRL을 요청할 수 있다(S310). 이때, 진단기는 자신이 보유한 인증서의 식별 번호(#82)를 함께 전송한다.
식별 번호 82번에 대한 폐기 정보는 CRL #2(122')가 담당하므로, 업데이트 서버(20)는 진단기로 CRL #2(122')를 전송할 수 있다(S320).
한편, 본 실시예에서는 진단기 스스로가 CRL을 통해 자신이 보유한 인증서의 유효 여부를 판단하여 차량 진단 수행 여부를 결정하게 된다. 따라서, 진단기 사용자가 진단기의 동작 로직을 수정(예컨대, 해킹)하여 CRL을 이용한 인증서 유효성 검증을 건너 뛰는 경우, 인증서가 폐기된 경우라도 차량이 CRL을 이용한 검증을 수행하지 못하는 경우 차량에서는 인증서의 무결성 검증만이 수행되기 때문에 해당 진단기는 폐기된 인증서로 차량 진단을 수행할 우려가 있다. 이에 대하여, 본 실시예에서는 캐너리(Canary) 기법을 이용하여 인증서의 유효성 검증의 생략을 방지하고자 한다. 이를 도 4를 참조하여 설명한다.
도 4는 본 발명의 일 실시예에 따른 버퍼 오버플로우 공격과, 이를 방지하기 위한 카나리 기법을 설명하기 위한 도면이다.
먼저, 도 4의 (a)를 참조하면, 진단기(30)는 차량 진단을 수행하기 전에, CRL을 획득하여 CRL 자체의 유효성 검증(S410)을 수행하고, CRL이 유효한 경우 CRL을 이용하여 인증서의 유효성, 즉, 폐기 목록에 자신의 인증서가 포함되었는지 여부를 확인한다(S420). 만일, 자신의 인증서가 폐기되지 않고 유효한 경우, 차량과 진단 통신을 수행하기 위해 차량에 인증 요청(S430)을 수행하게 된다.
여기서, CRL 유효성 검증을 수행하기 위한 함수를 (A)라 하고, 인증서 유효성 검증을 수행하기 위한 함수를 (B)라 하며, 인증 요청을 위한 함수를 (C)로 가정한다. 도 4의 (b)와 같이 버퍼(441)에 오버플로우를 발생시켜 (B) 함수를 호출하기 위한 주소가 기록된 메모리 영역을 (C) 함수를 호출하는 주소로 덮어쓰는 경우, 인증서 유효성 검증 과정을 우회하여 인증 요청이 바로 수행될 수 있는 문제점이 있다.
이러한 문제점을 방지하기 위해, 본 실시예에서는 함수 진입시 특정 값이 변조되면 리턴 주소 이동시 함수 호출에 실패하도록 하는 로직이 적용되도록 할 것을 제안한다. 예를 들어, 도 4의 (c)와 같이 카나리(Canary, 450)라는 특정 값을 사용해서 함수 진입시 스택에 리턴 주소(443)와 함께 기록하도록 할 수 있다. 이러한 경우, 리턴 주소(443) 이동시 카나리(450)가 변조된 경우 함수 호출에 실패하게 된다. 여기서 캐너리 값은 프로그램 실행시 main() 이전에 운영 체제(OS)에서 생성된 것일 수 있으며, 아래와 같은 구성을 가질 수 있다.
Canary = XOR Random + Terminator
여기서, XOR Random은 Random 한 값과 주소(addr)를 XOR한 값으로, 공격자가 유추 불가한 값이다. 또한, 종결자(Terminator)는 CR, RF, Null, -1의 조합으로 덮어쓰기가 불가한 값이다.
다시 정리하면, 본 스택 버퍼 오버플로 방지 방식은 프로그램 시작 시에 선택된 랜덤한 작은 정수를 스택 반환 포인터 전에 놓은 것이다. 대부분의 버퍼 오버플로는 낮은 곳에서 높은 곳으로 메모리 주소를 겹쳐쓰므로 반환 포인터를 겹쳐쓰기 위해서는 카나리 값이 반드시 겹쳐써질 수 밖에 없다. 이 값은 루틴이 스택의 반환 주소를 사용하기 전에 바뀌었는지 검사하게 된다.
결국, 상술한 방법에 따라 진단기가 보유한 인증서에 대한 CRL을 이용한 검사를 우회할 수 없게 되므로, 진단기가 자신이 보유한 인증서를 자신이 검사함에 따른 보안상 취약점이 해소될 수 있다.
다음으로, 도 5를 참조하여 본 발명의 실시예들에 적용될 수 있는 진단기 구조를 설명한다.
도 5는 본 발명의 일 실시예에 따른 진단기 구조의 일례를 나타낸다.
도 5를 참조하면, 본 실시예에 따른 진단기는 OBD-II 단자를 통해 차량과 연결되는 차량 연결부(510), 차량을 제외한 외부 객체(예컨대, 업데이트 서버)와 유/무선으로 연결되어 데이터 교환을 수행하는 통신부(520), 차량 진단 정보나 진단기의 동작 상태 정보를 시각 및/또는 청각으로 출력하는 출력부(530), OS와 진단 프로그램, 인증서, CRL 등을 저장하기 위한 메모리(540) 및 메모리(540)에 저장된 소프트웨어에 따른 제어 및 연산을 수행하는 프로세서(즉, 마이컴, 550)을 포함할 수 있다.
즉, 상술한 과정에서 CRL의 요청 및 획득은 프로세서(550)의 제어에 따라 통신부(520)를 통해 수행될 수 있으며, 차량과의 통신 과정은 프로세서(550)의 제어에 따라 차량 연결부(510)를 통해 수행될 수 있다. 예컨대, 프로세서(550)는 차량 연결부(510)를 통해 수신되는 메시지를 해석하고, 그에 대응되는 연산(암호화, 복호화, 서명, MAC 생성 등)을 수행하여 그 결과에 해당하는(또는 해당 결과로 획득한 데이터를 포함시켜 전송하기 적합한) 메시지를 생성하고 차량 연결부(510)를 통해 외부로 전송되도록 할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (19)

  1. 진단기가 차량과 진단 통신을 수행하는 방법에 있어서,
    자신이 보유한 인증서에 대한 인증서 폐지 목록(CRL)을 획득하는 단계;
    상기 획득된 인증서 폐지 목록을 이용하여 상기 보유한 인증서의 유효성을 검증하는 단계;
    상기 유효성 검증에 성공한 경우 상기 차량과 인증을 수행하는 단계; 및
    상기 인증에 성공하면, 상기 차량과 상기 진단 통신을 개시하는 단계;를 포함하고,
    상기 보유한 인증서의 유효성을 검증하는 단계는,
    상기 차량에 의해 CRL이 검증되지 않은 경우, 상기 진단기를 통해 상기 CRL을 획득하고,
    상기 인증서의 유효성을 검증하는 진단 통신 수행 방법.
  2. 제 1항에 있어서,
    상기 인증서 폐지 목록에 대한 유효성을 검증하는 단계를 더 포함하는, 진단 통신 수행 방법.
  3. 제 2항에 있어서,
    상기 인증서 폐지 목록에 대한 유효성을 검증하는 단계는,
    상기 인증서 폐지 목록의 만료기간 및 발행 기관을 확인하는 단계를 포함하는, 진단 통신 수행 방법.
  4. 제 1항에 있어서,
    제 1 서버에 상기 인증서 폐지 목록을 요청하는 단계를 더 포함하는, 진단 통신 수행 방법.
  5. 제 4항에 있어서,
    상기 요청하는 단계는,
    상기 보유한 인증서의 식별 번호를 상기 제 1 서버에 전송하는 단계를 포함하는, 진단 통신 수행 방법.
  6. 제 5항에 있어서,
    상기 인증서 폐지 목록은,
    상기 제 1 서버에서 복수의 식별 번호 구간마다 준비되는, 진단 통신 수행 방법.
  7. 제 6항에 있어서,
    상기 획득하는 단계는,
    상기 제 1 서버로부터 상기 보유한 인증서의 식별 번호를 포함하는 식별 번호 구간에 대응되는 인증서 폐지 목록을 수신하는 단계를 포함하는, 진단 통신 수행 방법.
  8. 제 1항에 있어서,
    상기 획득된 인증서 폐지 목록을 이용하여 상기 보유한 인증서의 유효성을 검증하는 단계는,
    스택 반환 포인터 전의 메모리 스택에 랜덤 데이터를 기록하는 단계를 더 포함하는, 진단 통신 수행 방법.
  9. 삭제
  10. 제 1항 내지 제 8항 중 어느 한 항에 따른 진단 통신 수행 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 해독 가능 기록 매체.
  11. 차량과 진단 통신을 수행하는 진단기에 있어서,
    자신 보유한 인증서를 저장하는 메모리;
    외부로부터 상기 보유한 인증서에 대한 인증서 폐지 목록(CRL)을 획득하는 통신부;
    상기 차량과 통신하기 위한 차량 연결부; 및
    상기 획득된 인증서 폐지 목록을 이용하여 상기 보유한 인증서의 유효성을 검증하고, 상기 유효성 검증에 성공한 경우 상기 차량 연결부를 통해 상기 차량과 인증을 수행하고, 상기 인증에 성공하면 상기 차량과 상기 진단 통신이 개시되도록 제어하는 프로세서를 포함하고,
    상기 프로세서의 제어 하에, 상기 차량에 의해 CRL이 검증되지 않은 경우, 상기 CRL을 획득하고,
    상기 인증서의 유효성을 검증하는, 진단기.
  12. 제 11항에 있어서,
    상기 프로세서는,
    상기 인증서 폐지 목록에 대한 유효성을 검증하는, 진단기.
  13. 제 12항에 있어서,
    상기 프로세서는,
    상기 인증서 폐지 목록의 만료기간 및 발행 기관을 확인하여 상기 인증서 폐지 목록에 대한 유효성을 검증하는, 진단기.
  14. 제 11항에 있어서,
    상기 프로세서는,
    제 1 서버에 상기 인증서 폐지 목록을 요청하도록 상기 통신부를 제어하는, 진단기.
  15. 제 14항에 있어서,
    상기 프로세서는,
    상기 인증서 폐지 목록 요청시 상기 보유한 인증서의 식별 번호가 상기 제 1 서버에 전송되록 제어하는, 진단기.
  16. 제 15항에 있어서,
    상기 인증서 폐지 목록은,
    상기 제 1 서버에서 복수의 식별 번호 구간마다 준비되는, 진단기.
  17. 제 16항에 있어서,
    상기 획득된 인증서 폐지 목록은,
    상기 보유한 인증서의 식별 번호를 포함하는 식별 번호 구간에 대응되는, 진단기.
  18. 제 11항에 있어서,
    상기 프로세서의 제어 하에,
    상기 획득된 인증서 폐지 목록을 이용하여 상기 보유한 인증서의 유효성을 검증하고, 스택 반환 포인터 전의 메모리 스택에 랜덤 데이터를 기록하는, 진단기.
  19. 삭제
KR1020160161946A 2016-11-30 2016-11-30 차량용 진단기 및 그 인증서 관리 방법 KR102639075B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160161946A KR102639075B1 (ko) 2016-11-30 2016-11-30 차량용 진단기 및 그 인증서 관리 방법
US15/811,064 US10706646B2 (en) 2016-11-30 2017-11-13 Vehicle diagnostic device and method of managing certificate thereof
DE102017128455.9A DE102017128455A1 (de) 2016-11-30 2017-11-30 Fahrzeug-Diagnose-Vorrichtung und Verfahren zum Verwalten eines Zertifikats davon

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160161946A KR102639075B1 (ko) 2016-11-30 2016-11-30 차량용 진단기 및 그 인증서 관리 방법

Publications (2)

Publication Number Publication Date
KR20180062072A KR20180062072A (ko) 2018-06-08
KR102639075B1 true KR102639075B1 (ko) 2024-02-22

Family

ID=62117926

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160161946A KR102639075B1 (ko) 2016-11-30 2016-11-30 차량용 진단기 및 그 인증서 관리 방법

Country Status (3)

Country Link
US (1) US10706646B2 (ko)
KR (1) KR102639075B1 (ko)
DE (1) DE102017128455A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10464530B2 (en) 2017-01-17 2019-11-05 Nio Usa, Inc. Voice biometric pre-purchase enrollment for autonomous vehicles
US20180212967A1 (en) * 2017-01-25 2018-07-26 NextEv USA, Inc. Portable device used to support secure lifecycle of connected devices
CN109194475B (zh) * 2018-09-28 2023-11-07 卡斯柯信号有限公司 一种采用用于列车控制系统的信息安全保密系统的方法
US11783302B2 (en) * 2020-05-07 2023-10-10 Blackberry Limited Authorization of vehicle repairs
US20240071148A1 (en) * 2020-05-29 2024-02-29 Launch Tech Co., Ltd Method, system, and device for diagnosing vehicle, and server
CN112104603B (zh) * 2020-08-06 2023-11-14 华人运通(江苏)技术有限公司 车辆接口的访问权限控制方法、装置及系统
CN112181538B (zh) * 2020-09-27 2023-05-30 深圳市元征科技股份有限公司 诊断流程执行方法、装置、设备及存储介质
CN112398810B (zh) * 2020-10-16 2022-03-25 郑州信大捷安信息技术股份有限公司 一种obd设备的身份认证系统及方法
CN113411311B (zh) * 2021-05-20 2023-05-30 联合汽车电子有限公司 Ecu诊断授权验证方法、存储介质和系统
CN113848826B (zh) * 2021-08-31 2023-12-29 广州文远知行科技有限公司 车辆自动下线方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040185842A1 (en) * 2003-01-28 2004-09-23 Spaur Charles W. Secure telematics

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100501172B1 (ko) 2003-07-31 2005-07-18 에스케이 텔레콤주식회사 무선 인터넷을 위한 무선 인증서 상태 관리 시스템 및방법과 이를 이용한 무선 인증서 상태 검증 방법
JP3894181B2 (ja) * 2003-10-10 2007-03-14 株式会社日立製作所 公開鍵証明書検証の高速化方法、および装置
EP2038802A2 (en) 2006-07-07 2009-03-25 SanDisk Corporation Content control system and method using certificate revocation lists
IT1396303B1 (it) * 2009-10-12 2012-11-16 Re Lab S R L Metodo e sistema per l elaborazione di informazioni relative ad un veicolo
KR101216110B1 (ko) 2011-05-18 2012-12-28 목포대학교산학협력단 차량 통신을 위한 인증서 취소 목록 배포 방법 및 시스템과 이를 위한 인증서 취소 목록 획득 장치
DE112013001206T5 (de) * 2012-02-29 2014-11-13 Firestone Industrial Products Company, Llc Wechselanzeiger, Elastomerartikel und Verfahren
US8549284B1 (en) * 2012-05-09 2013-10-01 GM Global Technology Operations LLC Tunable schemes and evaluation for certificate validity check in vehicle-to-entity communications
KR101529968B1 (ko) 2012-06-05 2015-06-19 목포대학교산학협력단 차량 통신용 인증서 취소 목록 배포 방법 및 그 장치
KR101509866B1 (ko) 2012-12-20 2015-04-06 현대자동차주식회사 차량 통신용 인증서 취소목록 제공 시스템 및 방법과 이를 위한 차량 장치
US9179311B2 (en) * 2013-10-04 2015-11-03 GM Global Technology Operations LLC Securing vehicle service tool data communications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040185842A1 (en) * 2003-01-28 2004-09-23 Spaur Charles W. Secure telematics

Also Published As

Publication number Publication date
US10706646B2 (en) 2020-07-07
DE102017128455A1 (de) 2018-05-30
KR20180062072A (ko) 2018-06-08
US20180151005A1 (en) 2018-05-31

Similar Documents

Publication Publication Date Title
KR102639075B1 (ko) 차량용 진단기 및 그 인증서 관리 방법
KR102347659B1 (ko) 디바이스의 보안 프로비저닝 및 관리
JP7060362B2 (ja) 電子デバイスのためのイベント証明書
CN103685214B (zh) 用于汽车电子控制单元的安全访问方法
US10095859B2 (en) Authentication system and car onboard control device
US7197637B2 (en) Authorization process using a certificate
JP6260066B2 (ja) 車載コンピュータシステム及び車両
JP4733840B2 (ja) 署名方法
US11330432B2 (en) Maintenance system and maintenance method
JP6641241B2 (ja) 情報共有システム、計算機、及び、情報共有方法
JP6190443B2 (ja) 車載コンピュータシステム、車両、管理方法、及びコンピュータプログラム
JP2021523597A (ja) クローキングオーソリティシステム
JP6262681B2 (ja) 管理装置、車両、管理方法、及びコンピュータプログラム
CN104216907A (zh) 一种用于提供数据库访问控制的方法、装置与系统
US11182485B2 (en) In-vehicle apparatus for efficient reprogramming and controlling method thereof
JP5861597B2 (ja) 認証システムおよび認証方法
JP2002373116A (ja) マイクロコンピュータシステムの保護方法,メモリ装置,コンピュータプログラム,スマートカード,マイクロコンピュータシステム
EP3499398A2 (en) Secure storage of monotonic odo value inside a secure hardware elements update counter
CN108345803B (zh) 一种可信存储设备的数据存取方法及装置
CN113343204B (zh) 基于区块链的数字身份管理系统及方法
KR101982917B1 (ko) Ecu 보안 유지를 위한 인증서 기반 차량 보안 방법 및 장치
JP6132955B1 (ja) 検証システム、検証装置、検証方法、及びコンピュータプログラム
KR102378989B1 (ko) 산업제어시스템 운영 환경을 고려한 취약점 시험 결과 확인 시스템 및 방법
CN111226214B (zh) 用于确认密码密钥的系统和方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)