KR102002517B1 - 전자식 제어기 보안 기능 설정 방법 및 시스템 - Google Patents

전자식 제어기 보안 기능 설정 방법 및 시스템 Download PDF

Info

Publication number
KR102002517B1
KR102002517B1 KR1020170083825A KR20170083825A KR102002517B1 KR 102002517 B1 KR102002517 B1 KR 102002517B1 KR 1020170083825 A KR1020170083825 A KR 1020170083825A KR 20170083825 A KR20170083825 A KR 20170083825A KR 102002517 B1 KR102002517 B1 KR 102002517B1
Authority
KR
South Korea
Prior art keywords
ecu
security function
firmware
present
user authentication
Prior art date
Application number
KR1020170083825A
Other languages
English (en)
Other versions
KR20190003222A (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 KR1020170083825A priority Critical patent/KR102002517B1/ko
Priority to PCT/KR2018/006770 priority patent/WO2019004638A1/ko
Publication of KR20190003222A publication Critical patent/KR20190003222A/ko
Application granted granted Critical
Publication of KR102002517B1 publication Critical patent/KR102002517B1/ko
Priority to US16/728,223 priority patent/US11379587B2/en

Links

Images

Classifications

    • 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • G06F21/575Secure boot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 일 실시예에 따르면, ECU(Electronic Control Unit) 및 상기 ECU와 통신망으로 연결된 테스터를 포함하는 ECU 보안 기능 설정 시스템으로서, 상기 테스터는, ECU(Electronic Control Unit)가 보안 기능 설정 모드인 경우 상기 ECU로 보안 기능 로더를 요청하는 보안 기능 요청부; 상기 ECU 로부터 사용자 인증 요청을 수신하여 사용자 인증을 수행하는 사용자 인증부; 상기 사용자 인증이 통과되면 저장된 보안 기능 펌웨어를 상기 ECU로 전송하는 펌웨어 전송부; 를 포함하고, 상기 ECU는 수신된 상기 보안 기능 펌웨어에 존재하는 명령어를 활성화하여 보안 기능 설정을 수행하는, ECU 보안 기능 설정 시스템이 제공된다.

Description

전자식 제어기 보안 기능 설정 방법 및 시스템{METHOD AND SYSTEM FOR CONFIGURATION OF ECU SECURITY}
본 발명은 전자식 제어기(Electronic Control Unit, ECU) 보안 기능 설정 방법 및 시스템에 관한 것으로, 보다 상세하게는 인증이 완료된 외부의 테스터로부터 보안 기능 펌웨어를 수신하고, 보안 기능 펌웨어의 무결성을 확인한 후 ECU 의 보안 기능을 설정하는 ECU 보안 기능 설정 방법 및 시스템에 관한 것이다.
일반적으로, 전자제어기술의 비약적인 발전에 따라 자동차에서도 기계적인 방법에 의해 동작하던 각종 장치들이 운전자의 편리성 및 운행의 안전성 등의 이유로 전기적인 방법에 의해 구동되고 있으며, 자동차의 시스템은 점차 고도화되고 최첨단화되어 가고 있다. 특히, 차량의 시스템이 전자동화됨에 따라, 차량 내부 ECU들 간의 통신 또한 빈번하게 이뤄지고 있다. 차량 내부 통신을 위해서 CAN(Controller Area Network) 통신이 일반적으로 이용된다.
즉, 자동차 내부의 전자제어시스템은 엔진 ECU, 변속기 ECU, 브레이크 ECU, 에어백 ECU 등 수십여개의 전자식 제어기(Electronic Control Unit, ECU)들로 구성되어 있다. 또한, 각 전자식 ECU들은 CAN 통신을 위한 CAN 컨트롤러를 구비하고, 이러한 전자식 ECU들 간의 통신은 CAN 통신을 사용한다.
한편, 자동차 내부의 각각의 ECU들은 해킹 공격의 대상이 될 수 있으며, 이를 차단하기 위한 보안 기능을 포함할 수 있다. ECU의 보안 기능 설정은 해커에 의해 접근이 불가능하도록 하는 차단 장치가 필요하다. 이때 ECU의 보안 기능 설정은 개발 단계와 양산/출시 단계로 구분될 수 있으며, 각 단계별로 요구하는 보안수준이 다를 수 있다. 예를 들어, 개발 단계에서는 개발 및 테스트 용도로 디버거(debugger) 연결이 허용되어야 하지만, 양산/출시 단계에서 디버거 연결은 제한되어야 한다. 또한 개발 단계에서는 ECU 및 내부 펌웨어를 보호하기 위한 보안기능이 비활성화되어야 하지만, 출시 단계에서는 활성화되어야 한다. 즉, 단계별로 보안기능을 활성화 여부를 효율적으로 관리할 필요성이 존재한다.
본 발명은 인증이 완료된 외부의 테스터로부터 보안 기능 펌웨어를 수신하고, 보안 기능 펌웨어의 무결성을 확인한 후 ECU 의 보안 기능을 설정 가능하도록 함으로써, ECU 자체적으로 보안 기능을 활성화시키는 것을 방지하는 것을 일 목적으로 한다.
본 발명은 ECU 보안 기능 설정 시 워치독 타이머 기반의 모니터링을 수행하는 것을 다른 목적으로 한다.
본 발명의 일 실시예에 따르면, ECU(Electronic Control Unit) 및 상기 ECU와 통신망으로 연결된 테스터를 포함하는 ECU 보안 기능 설정 시스템으로서, 상기 테스터는, ECU(Electronic Control Unit)가 보안 기능 설정 모드인 경우 상기 ECU로 보안 기능 로더를 요청하는 보안 기능 요청부; 상기 ECU로부터 사용자 인증 요청을 수신하여 사용자 인증을 수행하는 사용자 인증부; 상기 사용자 인증이 통과되면 저장된 보안 기능 펌웨어를 상기 ECU로 전송하는 펌웨어 전송부; 를 포함하고, 상기 ECU는 수신된 상기 보안 기능 펌웨어에 존재하는 명령어를 활성화하여 보안 기능 설정을 수행하는, ECU 보안 기능 설정 시스템이 제공된다.
본 발명에 있어서, 상기 ECU 및 테스터는 워치독(WatchDog) 기반의 명령어 인터프리터로서 동작된다.
본 발명에 있어서, 상기 ECU는 수신된 상기 보안 기능 펌웨어를 상기 ECU의 휘발성 메모리 영역에 임시적으로 로딩한다.
본 발명에 있어서, 상기 보안 기능 펌웨어에 존재하는 명령어는, 상기 ECU의 비휘발성 메모리에 존재하는 보호 메모리 영역의 값을 저장, 변경 또는 삭제하는 것에 관한 명령어일 수 있다.
본 발명에 있어서, 상기 ECU는 수신된 상기 보안 기능 펌웨어의 상기 통신망의 송수신 과정에서의 무결성을 확인한 후, 상기 보안 기능 펌웨어에 존재하는 명령어를 활성화할 수 있다.
본 발명의 다른 일 실시예에 따르면, ECU(Electronic Control Unit)가 보안 기능 설정 모드인 경우 상기 ECU로 보안 기능 로더를 요청하는 단계; 상기 ECU로부터 사용자 인증 요청을 수신하여 사용자 인증을 수행하는 단계; 상기 사용자 인증이 통과되면 보안 기능 펌웨어를 상기 ECU로 전송하는 단계; 수신된 상기 보안 기능 펌웨어의 통신망의 송수신 과정에서의 무결성을 확인하는 단계; 상기 수신된 상기 보안 기능 펌웨어를 상기 ECU의 휘발성 메모리 영역에 임시적으로 로딩하는 단계; 수신된 상기 보안 기능 펌웨어에 존재하는 명령어를 활성화하여 보안 기능 설정을 수행하는 단계; 를 포함하는 ECU 보안 기능 설정 방법이 제공된다.
본 발명에 방법을 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 제공된다.
본 발명에 의하면, ECU 자체적으로 보안기능관련 설정을 임의로 변경하는 것을 방지할 수 있으므로, 해커의 공격을 차단할 수 있는 효과를 가진다.
본 발명에 의하면, ECU 보안 기능 설정 시 워치독 타이머 기반의 모니터링을 수행함으로써 보안성 향상의 효과를 얻을 수 있다.
도 1 은 본 발명의 일 실시예에 따른 ECU 보안 기능 설정 시스템의 구성을 블록도로 나타낸 것이다.
도 2 는 본 발명의 일 실시예에 따른 ECU의 내부 구성을 블록도로 나타낸 것이다.
도 3 은 본 발명의 일 실시예에 따르면 테스터의 내부 구성을 블록도로 나타낸 것이다.
도 4 는 본 발명의 일 실시예에 따른 마이크로컨트롤러의 내부 구성을 블록도로 나타낸 것이다.
도 5 는 본 발명의 일 실시예에 따른 보안 기능 설정 방법을 시계열적으로 나타낸 것이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 구성요소를 나타낸다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 여러 실시예에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1 은 본 발명의 일 실시예에 따른 ECU 보안 기능 설정 시스템의 구성을 블록도로 나타낸 것이다.
도 1 을 참조하면, 본 발명의 ECU 보안 기능 설정 시스템은 다수의 ECU(100), 테스터(200) 및 ECU(100)와 테스터(200) 간의 통신 채널을 제공하는 통신망(300)으로 구성된다.
다수의 ECU(Electronic Control Unit)(100) 또는 제1 내지 제N ECU(100) 간에는 예를 들어, CAN 버스에 소정의 CAN 커넥터를 통해 연결될 수 있으며, 이론적으로 하나의 CAN 통신에 연결될 수 있는 최대 ECU의 개수는 2032이다. 본 발명의 다른 실시예에서는, ECU 간에도 CAN 이 아닌 다른 범용의 통신망, 예를 들어 통신망(300)으로 연결될 수 있다.
ECU(100)는 스마트폰, 인터넷, 교통정보시스템 등의 외부 통신망과 연결되어 보안 위험성에 직접적으로 노출된 ECU들과, 외부 통신망과 직접적인 연결이 없어 상대적으로 안전한 ECU들로 구분될 수 있다.
전자의 ECU(100)들은 멀티미디어 캔(CAN)으로서, 텔레매틱스나 네비게이션 등에 관련된 ECU들이다. 이들 ECU들은 스마트폰, 인터넷, 교통정보시스템 등의 외부 통신망과 연결되어, 데이터 통신을 수행한다. 따라서 이들 ECU(10)들은 외부 단말 또는 시스템에서 접근이 가능한 ECU이다.
반면, 후자의 ECU(100)들은 주로 종래 전형적인 ECU로서, 차량 내부 시스템을 제어하기 위한 ECU들이다. 예를 들어, 엔진, 트랜스미션 등 파워트레인에 관련된 ECU들; 제동장치, 조향장치, 에어백 등 샤시에 관련된 ECU들; 클러스터, 도어, 윈도우 등 바디에 관련된 ECU들이다. 통상 이들을 각각 P-CAN, C-CAN, B-CAN 등으로 부르기도 한다.
테스터(200)는 본 발명의 일 실시예에 따라 ECU(100)에 보안 기능 로더 명령어를 요청하고, 테스터(200)에 대한 사용자 인증이 완료되면 보안 기능 펌웨어를 ECU(100)로 전송할 수 있다. 즉, 본 발명의 일 실시예에 따른 테스터(200)는 ECU(100)에 내장되어 있지 않은 보안 기능 펌웨어를 인증 후 전송할 수 있는 외부 테스터일 수 있다.
통신망(300)은 ECU(100)와 테스터(200) 사이의 연결 채널을 제공하는 통신망으로서, UART, ETHERNET, CAN, CAN-FD 등 통상의 통신망이 사용될 수 있다.
본 발명은 ECU 보안 기능 설정 방법 및 시스템에 관한 것으로, 본 발명의 일 실시예에 따른 ECU(100)는 통상적인 경우의 노멀 모드 및 보안 기능 설정을 위한 특수 모드를 가질 수 있다. 본 발명에 있어서 보안 기능이란, 보호 메모리에 저장된 내용을 수정하거나, 보안 기능을 활성화 또는 비활성화하거나 임시적으로 불능 상태(단, ECU의 리셋 이후 원래 보안기능 상태로 돌아갈 수 있음)가 되게 하는 기능을 뜻한다.
보다 상세히, ECU(100)의 부트 모드 실행 시(예를 들어, ECU power on 시) 특정 조건이 만족될 경우 해당 ECU(100)는 일반 모드에서 특수 모드로 진입할 수 있다. 특정 조건이란, 비휘발성 메모리 영역에서 특정 부트 모드 설정값을 설정(set)하거나, 혹은 ECU 커넥터 내에 적어도 하나의 pin 값에 특정 조건에 맞는 전기적 신호를 트리거링 하는 것일 수 있다.
본 발명의 일 실시예에 따르면, 보안 기능 설정을 위한 특수모드에 진입한 경우 ECU(100) 및 테스터(200)는 명령어 인터프리터로 동작될 수 있다. 즉, 본 발명의 일 실시예에 따라 ECU(100)와 테스터(200)는 통신 채널을 통해, 테스터(200)와 ECU(100) 간의 명령어 요청 및 응답을 수행할 수 있다.
보다 상세히, 본 발명의 일 실시예에 따른 ECU(100) 및 테스터(200)는 명령어 인터프리터로서 동작될 때 단일 명령어 처리 시간 및 명령어 요청 대기 시간을 워치독(WatchDog) 타이머 기반으로 모니터링할 수 있다. 예를 들어, ECU(100)는 일정시간 동안 요청된 명령어가 처리 완료되지 않거나 명령어 요청이 없으면 워치독 타이머가 만료되어, 보안 기능 설정이 가능한 특수모드에서 강제로 빠져나오게 된다. 즉, 워치독 타이머가 만료되어 리셋되면, ECU(100)는 특수 모드에서 노멀 모드로 진입한다. 본 발명과 같이 ECU(100)가 명령어 처리 시간 및 명령어 요청 대기 시간을 워치독 타이머 기반으로 모니터링하는 경우, 해커가 ECU(100)의 본래 기능을 정상적으로 수행하지 못하도록 강제로 불능상태를 만들어버리는 것을 방지할 수 있으며, 이로서 보안성 향상의 효과를 얻을 수 있다.
이하에서는, ECU(100)의 내부 구성을 중심으로 본 발명에 대해 보다 상세히 살펴보기로 한다.
도 2 는 본 발명의 일 실시예에 따른 ECU의 내부 구성을 블록도로 나타낸 것이다.
도 2 를 참조하면, ECU(100)는 마이크로 컨틀롤러(CPU)(110), 컨트롤러(controller)(120), 트랜시버(transceiver)(130), 휘발성 메모리(140) 및 비휘발성 메모리(150)를 포함할 수 있다.
마이크로컨트롤러(110)는 CPU가 탑재될 수 있으며, 상위 계층 프로토콜을 제공하고 다양한 응용들을 제공할 수 있다. 또한, 마이크로컨트롤러(110)는 후술하는 바와 같이 보안 기능 설정을 위한 특수모드에서 테스터(200)를 인증하고, 보안 기능 펌웨어를 휘발성 메모리 상에 로딩하여 보안 기능 펌웨어에 존재하는 명령어를 활성화시킬 수 있다. 또한, 비록 도 2 에서는 휘발성 메모리(140) 및 비휘발성 메모리(150)가 마이크로컨트롤러(110) 외부에 존재하는 것으로 도시되었지만, 본 발명의 일 실시예에 따르면 휘발성 메모리(140) 및 비휘발성 메모리(150)는 마이크로컨트롤러(110)에 포함될 수 있다. 마이크로컨트롤러(110)에 대해서는 후술하는 도 4 와 관련한 설명에서 보다 상세히 살펴보기로 한다.
컨트롤러(120)는 통신 프로토콜 메시지를 송수신하고 송수신된 메시지에 대한 메시지 필터링 기능을 수행할 수 있다. 또한, 컨트롤러(30)는 재전송 제어를 위한 메시지 버퍼 및 마이크로컨트롤러(40)와의 인터페이스 기능을 제공한다.
트랜시버(130)는 소정 통신망 커넥터를 통해 통신망와 연결되며, ECU의 물리 계층을 구성한다. 트랜시버(130)는 통신망의 장애를 감지하고 이를 관리하는 기능 및 메시지의 송수신 기능을 제공할 수 있다.
휘발성 메모리(140)는 저장된 정보를 유지하기 위해 전기를 요구하는 메모리로서, 본 발명의 휘발성 메모리(140)는 RAM(Random Access Memory), 동적 RAM(Dynamic RAM), 정적 RAM(Static RAM) 등 통상의 휘발성 메모리일 수 있다. 본 발명의 휘발성 메모리(140)에는 테스터(200)로부터 제공된 보안 기능 펌웨어가 로딩될 수 있으며, 휘발성 메모리(140)의 특성 상 ECU(100)가 리셋되면 로딩된 보안 기능 펌웨어는 사라진다.
비휘발성 메모리(150)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 메모리로서, 본 발명의 비휘발성 메모리(150)는 ROM(Read Only Memory), 플래시(flash) 메모리 등 통상의 비휘발성 메모리일 수 있다.
비휘발성 메모리(150) 내의 보호 메모리에는 ECU(100)에서 중요하며 해킹 공격에서 보호되어야 할 정보들이 저장된다. 이때, 보호 메모리에 저장되는 정보들은 보안 기능 설정값, 보안 기능 동작에 사용되는 학습값, ECU의 비밀 번호, 암호키 값 등일 수 있다. 보다 상세히, 보안 기능 설정값은 플래시 메모리 읽기/쓰기 보호(Read/Write Protection) 설정 혹은 OneTimeProgrammable 등 메모리 보호 관련 설정값일 수 있다. 또한, 보안 기능 동작에 사용되는 학습값은 ECU가 네트워크로부터 메시지를 수발신 할 때 사용되는 ID 필터값, 동일 ID 메시지에 대한 학습값, ECU 상태 학습값 등이 될 수 있다.
상술한 바와 같은 보호 메모리에 저장되는 정보들은 매우 중요하므로, 권한 없는 자에 의해 수정되는 경우 문제가 발생할 수 있다. 따라서 본 발명의 일 실시예에 따른 보안 기능 설정 방법은 보호 메모리를 수정할 수 있는 기능을 ECU(100) 출시 시 제거하고, 테스터(200)로부터 보안 기능 펌웨어를 제공받아서만 보호 메모리 수정이 가능하도록 한다. 이로써 해커의 펌웨어 추출 및 역공학으로 보호 메모리 제어 방법 등이 유출되는 것을 방지할 수 있다.
이하에서는, 테스터(200)와 마이크로컨트롤러(110)의 내부 구성을 중심으로 본 발명의 보안 기능 설정 방법에 대해 보다 상세히 살펴보기로 한다.
도 3 은 본 발명의 일 실시예에 따르면 테스터(200)의 내부 구성을 블록도로 나타낸 것이다.
도 3 을 참조하면, 본 발명의 일 실시예에 따르면 테스터(200)는 펌웨어 저장부(210), 보안 기능 요청부(220), 사용자 인증부(230) 및 펌웨어 전송부(240)를 포함한다.
먼저, 펌웨어 저장부(210)는 본 발명의 보안 기능 펌웨어가 저장된 테스터(200)의 저장 영역일 수 있다. 보안 기능 펌웨어는 ECU(100)의 보호 메모리 값을 저장, 변경 또는 삭제할 수 있는 기능이 포함된 펌웨어이다. 본 발명의 일 실시예에 따르면 보안 기능 펌웨어는 ECU(100)에 포함되지 않고, 테스터(200)로부터 제공받아 ECU(100)의 휘발성 메모리 상에서 동작할 수 있다. 이는, ECU(100)가 보안 기능 펌웨어를 내장할 경우 해킹 공격에 의해 ECU(100)의 보호 메모리 내용이 변경될 수 있기 때문에, 보안 기능 펌웨어 자체를 ECU(100)가 포함하고 있지 않도록 하기 위함이다. 따라서, 본 발명의 일 실시예에 따른 테스터(200)의 펌웨어 저장부(210)는 ECU(100)에 제공하기 위한 보안 기능 펌웨어를 저장할 수 있다.
다음으로, 보안 기능 요청부(220)는 ECU(100)에 보안 기능 로더를 요청한다. 이때, 보안 기능 로더를 요청받는 ECU(100)는 보안 기능 설정 특수 모드 상태일 수 있다.
다음으로, 사용자 인증부(230)는 ECU(100)로부터의 요청에 따라 테스터(200)가 정당한 권한을 가졌는지 여부에 대한 사용자 인증을 수행한다.
다음으로, 펌웨어 전송부(240)는 사용자 인증부(230)에 의해 사용자 인증이 완료된 경우, 보안 기능 펌웨어를 ECU(100)에 제공한다. 이때, 보안 기능 펌웨어는 ECU(100) 상에 정상적으로 로딩된 경우에 보안 기능 명령어를 수행하며, 보안 기능 명령어는 ECU(100)의 보호 메모리에 저장된 내용을 수정하거나, 보안 기능을 활성화 또는 비활성화하거나, ECU(100)를 임시적으로 디스에이블(disable) 상태로 만들 수 있다.
도 4 는 본 발명의 일 실시예에 따른 마이크로컨트롤러(120)의 내부 구성을 블록도로 나타낸 것이고, 도 5 는 본 발명의 일 실시예에 따른 보안 기능 설정 방법을 시계열적으로 나타낸 것이다. 이하에서는 도 4 및 도 5 를 함께 참조하여 설명하기로 한다.
도 4 를 참조하면, 본 발명의 일 실시예에 따른 마이크로컨트롤러(110)는 보안 기능 요청 수신부(111), 테스터 인증부(112), 무결성 확인부(113), 펌웨어 로딩부(114) 및 보안 기능 수행부(115)를 포함한다. 상술한 바와 같이, 휘발성 메모리(140) 및 비휘발성 메모리(150)는 마이크로컨트롤러(110)에 포함될 수 있다.
먼저, 보안 기능 요청 수신부(111)는 보안 기능 로더 명령어 요청을 테스터(200)로부터 수신한다(S41). 이때, ECU(100)의 상태는 보안 기능 설정 특수모드일 수 있다.
다음으로, 테스터 인증부(112)는 보안 기능 로더 명령어를 요청한 테스터(200)가 정당한 권한을 가졌는지 여부에 대한 사용자 인증을 요청한다(S42). 테스터(200)는 사용자 인증 요청을 수신하여 요구된 사용자 인증 요청에 대한 응답을 전송한다(S43). 또한, 테스터(200)는 ECU(100)로부터 사용자 인증 확인을 수신하여, 보안 기능 펌웨어를 ECU(100)로 전송한다(S44).
다음으로, 무결성 확인부(113)는 테스터(200)로부터 수신된 보안 기능 펌웨어에 대해 전자 서명을 이용하여 통신망(300)을 통한 송/수신 과정에서의 무결성을 확인한다(S45).
다음으로, 펌웨어 로딩부(114)는 보안 기능 펌웨어가 무결성 확인을 통과하는 경우, 보안 기능 펌웨어(151)를 휘발성 메모리(140)에 임시적으로 로딩한다(S46). 이때 임시적으로 로딩한다는 것은 보안 기능 펌웨어가 휘발성 메모리(140)에 로딩되기 때문에 ECU(100)의 리셋 이후 삭제된다는 것을 뜻한다. 휘발성 메모리(140)는 RAM일 수 있다. 또한, 테스터(200)는 보안 기능 펌웨어를 실행 가능한 바이너리 형태(예를 들어, 임베디드 환경에서 *.HEX 파일 형태)로 전달한다.
본 발명의 일 실시예에 따르면 펌웨어 로딩부(114)는 테스터(200)로부터 제공된 보안 기능 펌웨어(151)를 임시적으로 RAM 에 로딩한다. 본 발명의 일 실시예에 따르면, 보안 기능 펌웨어(151)를 휘발성 메모리(140)에 임시적으로 로딩하며, 이는 보안 기능 펌웨어는 사용자 인증 및 보안 기능 펌웨어의 무결성 확인을 모두 통과한 경우에만 한해 제한적으로 사용 가능해야 하기 때문이다. 즉, ECU(100)에 보안 기능 펌웨어가 영구적으로 포함되어 해킹 공격에 악용되는 일이 없도록, ECU(100)가 리셋되면 해당보안기능 펌웨어는사라진다
다음으로, 보안 기능 수행부(115)는 RAM 에 로딩된 보안 기능 펌웨어에 존재하는 크리티컬(critical) 명령어들을 활성화시킨다(S47). 즉, 보안 기능 수행부(115)는 보안 기능 펌웨어 로더 명령어가 정상적으로 수행된 이후에 보안 기능 명령어를 수행한다. 이때, 크리티컬 명령어는 비휘발성 메모리(160) 내의 보호 메모리(161)에 저장된 정보를 생성 또는 변경할 수 있는 명령어로서, 본 발명의 보안 기능 설정을 위한 명령어일 수 있다. 본 발명에 있어서 보안 기능이란, 보호 메모리에 저장된 내용을 수정하거나, 보안 기능을 활성화 또는 비활성화하거나 임시적으로 불능 상태(단, ECU의 리셋 이후 원래 보안기능 상태로 돌아갈 수 있음)가 되게 하는 기능을 뜻한다.
ECU(100)의 휘발성 메모리(150) 내의 코드에는 보안 기능 자체가 존재하지 않았기 때문에 보안 기능이 비활성화되어 있으므로, 본 발명에서는 보안 기능 펌웨어(151)를 로딩하는 보안 기능 로더 과정을 통해서만 보안 기능 명령어가 활성화 될 수 있다.
즉, 보안 기능 명령어는 보안 기능 펌웨어가 로딩되지 않는 한 자체적으로 활성화 될 수 없으므로, 본 발명에 의하면 해커의 공격에 의해 ECU 자체적으로 보호 메모리(161)의 내용이 변경되는 것을 방지할 수 있다. 또한, 본 발명에 의하면 보안 기능 펌웨어는 ECU(100) 외부의 사용자 인증 및 무결성 확인이 완료된 테스터(200)를 통해서만 로딩되므로, ECU(100)에서 자체적으로 보안 기능을 활성화시킬 수 없다는 효과를 가진다.
즉, 본 발명의 일 실시예에 따르면, 보안 기능 펌웨어(151)는 보호 메모리 영역의 설정값을 입력, 수정, 삭제 하는데 사용되며, 보안 기능 펌웨어(151)는 양산 출시되는 ECU(100)의 펌웨어에 포함되지 않는다. 이로써, 본 발명의 일 실시예에 따르면 해커의 역공학(Reverse Engineering)을 통해 보안기능을 제어하는 로직이 유출되지 않으므로 해커의 공격에 의해 보호 메모리 영역이 임의로 제어(예를 들어, 설정값이 임의로 변경되거나 보안 기능이 비활성화 되는 것 등)되는 것을 방지할 수 있다.
이상에서는 ECU(100) 또는 테스터(200)를 중심으로 본 발명을 설명하였다. 한편, 본 발명의 다른 실시예에서는, ECU(100) 및 테스터(200)의 동작과 관련된 방법이 일 실시예으로서 구현될 수 있다. 즉, 본 발명의 다른 실시예에 따르면, 본 명세서에서 설명된 ECU(100) 또는 테스터(200)의 동작들은 시계열적 단계를 가지는 방법으로서 구현될 수 있으며, 이때 방법의 수행 주체는 반드시 ECU(100) 또는 테스터(200)가 아닐 수도 있다. 예를 들어, 도 5 에서 설명된 각 단계들을 수행하는 방법이 본 발명의 일 실시예가 될 수 있고, 이때 각 단계들을 수행하는 방법은 ECU(100) 및 테스터(200)가 아닌 다른 장치 또는 프로세서에 의해서도 수행될 수 있다.
예를 들어, 본 발명의 다른 실시예에 따른 방법을 수행하는 주체는 ECU(100) 또는 테스터(200)에 내장된 프로세서일 수 있으며, 이때 프로세서에 저장된 명령들은 본 발명의 실시예에 따라 ECU(100) 또는 테스터(200)를 제어할 수 있으므로, 이 경우 자동차뿐만 아니라 건설 중장비, 농업 트랙터 등 CAN 통신을 사용하는 다양한 분야의 전자식 ECU에 적용 가능하다는 장점이 있다. 유사한 논지로, 혹은 본 발명의 다른 실시예에 따른 방법을 수행하는 주체는 ECU(100) 또는 테스터(200)에 H/W 형태의 커넥터 타입으로 연결되는 보조 제어기일 수 있으며, 이 경우 보조 제어기를 ECU(100) 또는 테스터(200)에 연결하기만 하면 되므로 H/W 혹은 S/W 측면의 변경이 불필요하다는 장점이 존재한다. 혹은 본 발명의 다른 실시예에 따른 방법을 수행하는 주체는 ECU(100) 또는 테스터(200)의 내부에 내장되는 반도체 장치이고, 반도체 장치의 S/W 가 본 발명의 방법을 수행하도록 설계될 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항과 한정된 실시예 및 도면에 의하여 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위하여 제공된 것일 뿐, 본 발명이 상기 실시예에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정과 변경을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (7)

  1. ECU(Electronic Control Unit) 및 상기 ECU와 통신망으로 연결된 테스터를 포함하는 ECU 보안 기능 설정 시스템으로서,
    상기 테스터는,
    ECU(Electronic Control Unit)가 보안 기능 설정 모드인 경우 상기 ECU로 보안 기능 로더를 요청하는 보안 기능 요청부;
    상기 ECU로부터 사용자 인증 요청을 수신하여 사용자 인증을 수행하는 사용자 인증부;
    상기 사용자 인증이 통과되면 저장된 보안 기능 펌웨어를 상기 ECU로 전송하는 펌웨어 전송부; 를 포함하고,
    상기 ECU는 수신된 상기 보안 기능 펌웨어를 상기 ECU의 휘발성 메모리 영역에 임시적으로 로딩하고, 수신된 상기 보안 기능 펌웨어에 존재하는 명령어를 활성화하여 보안 기능 설정을 수행하며,
    상기 ECU의 휘발성 메모리 영역에 로딩된 상기 보안 기능 펌웨어는 상기 ECU의 리셋(reset)시 삭제되는, ECU 보안 기능 설정 시스템.
  2. 제 1 항에 있어서,
    상기 ECU 및 테스터는 워치독(WatchDog) 기반의 명령어 인터프리터로서 동작되는, ECU 보안 기능 설정 시스템.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 보안 기능 펌웨어에 존재하는 명령어는, 상기 ECU의 비휘발성 메모리에 존재하는 보호 메모리 영역의 값을 저장, 변경 또는 삭제하는 것에 관한 명령어인, ECU 보안 기능 설정 시스템.
  5. 제 1 항에 있어서,
    상기 ECU는 수신된 상기 보안 기능 펌웨어의 상기 통신망의 송수신 과정에서의 무결성을 확인한 후, 상기 보안 기능 펌웨어에 존재하는 명령어를 활성화하는, ECU 보안 기능 설정 시스템.
  6. ECU(Electronic Control Unit)가 보안 기능 설정 모드인 경우 상기 ECU로 보안 기능 로더를 요청하는 단계;
    상기 ECU로부터 사용자 인증 요청을 수신하여 사용자 인증을 수행하는 단계;
    상기 사용자 인증이 통과되면 보안 기능 펌웨어를 상기 ECU로 전송하는 단계;
    수신된 상기 보안 기능 펌웨어의 통신망의 송수신 과정에서의 무결성을 확인하는 단계;
    상기 수신된 상기 보안 기능 펌웨어를 상기 ECU의 휘발성 메모리 영역에 임시적으로 로딩하는 단계;
    수신된 상기 보안 기능 펌웨어에 존재하는 명령어를 활성화하여 보안 기능 설정을 수행하는 단계;
    를 포함하고, 상기 ECU의 휘발성 메모리 영역에 로딩된 상기 보안 기능 펌웨어는 상기 ECU의 리셋(reset)시 삭제되는 ECU 보안 기능 설정 방법.
  7. 컴퓨터를 이용하여 제 6 항에 따른 방법을 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.
KR1020170083825A 2017-06-30 2017-06-30 전자식 제어기 보안 기능 설정 방법 및 시스템 KR102002517B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170083825A KR102002517B1 (ko) 2017-06-30 2017-06-30 전자식 제어기 보안 기능 설정 방법 및 시스템
PCT/KR2018/006770 WO2019004638A1 (ko) 2017-06-30 2018-06-15 전자식 제어기 보안 기능 설정 방법 및 시스템
US16/728,223 US11379587B2 (en) 2017-06-30 2019-12-27 Method and system for setting electronic controller security function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170083825A KR102002517B1 (ko) 2017-06-30 2017-06-30 전자식 제어기 보안 기능 설정 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20190003222A KR20190003222A (ko) 2019-01-09
KR102002517B1 true KR102002517B1 (ko) 2019-07-22

Family

ID=64742367

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170083825A KR102002517B1 (ko) 2017-06-30 2017-06-30 전자식 제어기 보안 기능 설정 방법 및 시스템

Country Status (3)

Country Link
US (1) US11379587B2 (ko)
KR (1) KR102002517B1 (ko)
WO (1) WO2019004638A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10841284B2 (en) * 2018-05-30 2020-11-17 Lear Corporation Vehicle communication network and method
US11055105B2 (en) * 2018-08-31 2021-07-06 Micron Technology, Inc. Concurrent image measurement and execution
EP3736716B1 (en) * 2019-05-10 2021-12-22 Aptiv Technologies Limited Method for protecting an electronic control unit
US20230014101A1 (en) * 2021-07-15 2023-01-19 Rambus Inc. Serial presence detect logging
US20230126350A1 (en) * 2021-10-25 2023-04-27 Nvidia Corporation Non-volatile memory storage and interface

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083531A1 (en) * 2007-09-24 2009-03-26 Ting Nmi Zhou System and method for modifying software routines
JP2017059211A (ja) * 2015-09-14 2017-03-23 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4556653B2 (ja) * 2004-12-10 2010-10-06 株式会社デンソー 車載電子制御装置のプログラム書換システム、車載電子制御装置のコンピュータ用ブートローダ、記録媒体、及び車載電子制御装置
KR101879820B1 (ko) * 2011-12-28 2018-07-18 한국단자공업 주식회사 스마트카의 보안시스템 및 보안방법
KR101675223B1 (ko) * 2015-03-31 2016-11-11 현대오토에버 주식회사 워치독 장치, 워치독 보안 시스템 및 그 보안 방법
EP3109831B1 (en) * 2015-06-22 2020-01-08 Square Enix Co., Ltd. Program, recording medium, luminance computation apparatus, and luminance computation method
US10747640B2 (en) * 2016-11-08 2020-08-18 Intel Corporation Techniques for managing a distributed computing environment using event digests
US10757113B2 (en) * 2017-03-17 2020-08-25 Cylance Inc. Communications bus signal fingerprinting
KR101988558B1 (ko) * 2017-06-07 2019-06-12 현대오트론 주식회사 멀티 코어를 갖는 마이크로콘트롤러 유닛을 감시하는 감시장치 및 그것의 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083531A1 (en) * 2007-09-24 2009-03-26 Ting Nmi Zhou System and method for modifying software routines
JP2017059211A (ja) * 2015-09-14 2017-03-23 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法

Also Published As

Publication number Publication date
US20200134186A1 (en) 2020-04-30
US11379587B2 (en) 2022-07-05
KR20190003222A (ko) 2019-01-09
WO2019004638A1 (ko) 2019-01-03

Similar Documents

Publication Publication Date Title
KR102002517B1 (ko) 전자식 제어기 보안 기능 설정 방법 및 시스템
US20190340357A1 (en) Secure controller operation and malware prevention
JP6629999B2 (ja) セキュアロックダウンを実装するように構成された関連装置を有する特別にプログラムされたコンピューティングシステムおよびその使用方法
JP6585019B2 (ja) ネットワーク監視装置、ネットワークシステムおよびプログラム
CN105892348B (zh) 用于运行控制设备的方法
WO2017022149A1 (ja) 処理装置、車載端末装置、処理装置の起動方法、及び処理装置の起動プログラム
US20160344862A1 (en) Disablement of lost or stolen device
WO2021121382A1 (en) Security management of an autonomous vehicle
US10339307B2 (en) Intrusion detection system in a device comprising a first operating system and a second operating system
CN110826086A (zh) 跨租户授权方法、装置、计算机设备及存储介质
CN115879099A (zh) 一种dcs控制器、操作处理方法和防护子系统
CN105183799A (zh) 一种权限管理的方法及客户端
US10785242B1 (en) Intrusion detection in airborne platform
JP6698778B2 (ja) 制御システム
CN113935013A (zh) 用于对控制设备进行安全更新的方法
CN116208353A (zh) 一种校验固件的方法、装置、网卡、芯片系统及服务器
EP3904161A1 (en) Information processing device
CN113836529A (zh) 进程检测方法、装置、存储介质以及计算机设备
US10904279B1 (en) Policy generation in airborne systems
US10789365B2 (en) Control device and control method
US12039050B2 (en) Information processing device
US20230267204A1 (en) Mitigating a vehicle software manipulation
US20240067193A1 (en) Vehicle control using serverless functions
CN111310131B (zh) so库调用处理方法、装置、电子装置及存储介质
WO2023042426A1 (ja) 車載装置及びプログラム更新システム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant