KR20150074414A - 펌웨어 업그레이드 방법 및 그 시스템 - Google Patents

펌웨어 업그레이드 방법 및 그 시스템 Download PDF

Info

Publication number
KR20150074414A
KR20150074414A KR1020130162187A KR20130162187A KR20150074414A KR 20150074414 A KR20150074414 A KR 20150074414A KR 1020130162187 A KR1020130162187 A KR 1020130162187A KR 20130162187 A KR20130162187 A KR 20130162187A KR 20150074414 A KR20150074414 A KR 20150074414A
Authority
KR
South Korea
Prior art keywords
firmware
encrypted
secret key
server
hash value
Prior art date
Application number
KR1020130162187A
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 KR1020130162187A priority Critical patent/KR20150074414A/ko
Priority to US14/553,645 priority patent/US20150180840A1/en
Publication of KR20150074414A publication Critical patent/KR20150074414A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • H04W4/44Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P] for communication between vehicles and infrastructures, e.g. vehicle-to-cloud [V2C] or vehicle-to-home [V2H]

Abstract

본 발명은 펌웨어 업그레이드 방법 및 그 장치에 관한 것이다. 본 발명의 일 실시예에 따른 서버에서 펌웨어를 전송하는 방법은 소정 비밀키 생성 함수를 이용하여 비밀키를 생성하는 단계와 상기 비밀키를 이용하여 원본 펌웨어를 암호화하는 단계와 미리 저장된 수신단 공개키를 이용하여 상기 비밀키를 암호화하는 단계와 상기 원본 펌웨어를 소정 해쉬 함수에 입력하여 해쉬 값을 생성하고, 상기 생성된 해쉬 값을 미리 저장된 상기 서버 개인키를 이용하여 암호화하는 단계를 포함하되, 상기 암호화된 원본 펌웨어, 상기 암호화된 비밀키, 상기 암호화된 해쉬 값을 포함하는 펌웨어 데이터를 상기 수신단에 전송하는 특징이 있다. 따라서, 본 발명은 보다 안전한 펌웨어 업그레이드 방법을 제공하는 장점이 있다.

Description

펌웨어 업그레이드 방법 및 그 시스템{Firmware upgrade method and system thereof}
본 발명은 펌웨어 업그레이드 방법 및 그 시스템에 관한 것으로서, 보다 상세하게, 안전한 펌웨어 업그레이드를 제공하기 위한 복수의 솔루션 기반 암호화/복호화 방법 및 이를 지원하는 장치(들) 및 시스템에 관한 것이다.
차량-예를 들어, 자동차, 트럭, 버스, 농용차량, 항공기 등을 포함함-은 차량 통신 네트워크를 포함한다. 차량 통신 네트워크의 복잡도는 차량 내의 전기 기기들의 종류 및 그 수가 증가함에 따라 급속도로 증가하게 된다. 예를 들어, 많은 더 향상된 차량들은 엔진 제어, 변속기 제어, 앤티록식 브레이크(antilock braking), 몸체(body) 제어, 배기 가스 제어(emissions control), 자동 실내 온도 제어, 자동 조명 제어, 자동 미러(Mirror) 제어 등을 포함한다.
또한, 차량 내의 다양한 전기 기기들을 지원하기 위해, 자동차 산업은 수많은 통신 프로토콜들을 생성해 왔다.
자동차 기술이 발달됨에 따라, 최근 출시되는 차량에는 보다 다양하고 복잡한 계측 및 센싱 기능들이 제공되고 있다. 이러한 센싱 기능들은 자동차의 전자 제어 장치 즉 ECU(Electronic Control Unit)에 의해 제공될 수 있다.
또한, 자동차는 차량 자가 진단 장치인 OBD(On Board Diagnostics)-이하, “진단기”라 명함-가 연결될 수 있는 표준화된 인터페이스 즉 OBD Connector가 제공되고 있으며, OBD가 자동차에 연결되면 소정의 제어 절차에 따라 각종 ECU에 의해 계측 및 센싱된 정보들-예를 들면, 차량 정보, 운행 기록, 배출 가스 정보, 오류 정보 등을 포함함-이 OBD에 전달된다.
또한, 진단기는 소정 서버와의 연동을 통해 ECU를 구동시키기 위한 펌웨어를 수신할 수 있으며, 수신된 펌웨어를 소정의 제어 절차를 통해 해당 ECU상에 설치할 수 있다.
특히, 차량의 고급화 및 소비자의 안전 및 편리함에 대한 지속적인 요구에 따라 더 많은 ECU들이 차량에 탑재되고 있으며, 그에 따른 잦은 ECU 펌웨어 업그레이드가 요구되고 있다. 따라서, 서버가 진단기를 통해 해당 ECU로 안전하게 펌웨어를 전송하기 위한 방법이 요구되고 있다.
도 1은 종래 기술에 따른 일반적인 서버-진단기-ECU간의 펌웨어 업그레이드 과정을 보여준다.
도 1에 도시된 바와 같이, 종래 기술에 따른 펌웨어 업그레이드 과정은 간단한 Seed-Key 알고리즘이 적용되어 진단기와 ECU간에 인증 절차만이 수행되었다.
도 1을 참조하면, 진단기가 서버로 새로운 펌웨어 전송을 요청하며, 서버는 펌웨어 데이터를 진단기에 전송한다. 이 후, 진단기는 ECU로 리프로그래밍(Re-programing)을 요청하고, 해당 ECU는 랜덤 넘버 즉, Seed 값을 생성하여 이를 저장한 후, 진단기에 전송한다. 진단기는 수신된 Seed 값 및 미리 알고 있는 키 생성 함수를 이용하여 Key 값을 생성하여 ECU로 전송한다. ECU는 기 저장된 Seed 값 및 미리 알고 있는 키 생성 함수를 이용하여 Key 값을 생성하고, 생성된 키 값과 진단기로부터 수신된 키 값을 비교하여 일치 여부를 판단한다. 판단 결과, 서로 일치하면, ECU는 외부 진단기가 인증된 것으로 판단하며, 소정의 제어 절차를 통해 진단기로부터 펌웨어 데이터를 전송 받는다. 전송이 완료되면, ECU는 수신된 펌웨어 데이터를 이용하여 리프로그래밍을 진행한다.
하지만, 상기한 방법은 보안의 중요 요소인 기밀성(Confidentiality)와 무결성(Integrity)를 보장하지 못하며, 해커의 공격에 취약한 단점이 있다.
본 발명은 상술한 종래 기술의 문제점을 해결하기 위해 고안된 것으로, 본 발명의 목적은 보다 안전한 차량용 펌웨어 암호화 방법을 제공하는 것이다.
본 발명의 다른 목적은 기밀성 및 무결성을 보장하여 보다 안전한 펌웨어 전달 및 업그레이드가 가능한 차량용 펌웨어 암호화 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 해커로부터의 공격에 강한 펌웨어 암호와 방법을 제공함과 동시에 그를 통한 운전자의 안전을 보장하는 것이 가능한 차량용 펌웨어 업그레이드 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 안전한 펌웨어 업그레이드를 위한 복수 솔루션 기반의 안전한 암호화 기법을 제공하는 것이다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명은 펌웨어 업그레이드 방법과 그 장치 및 시스템을 제공한다.
본 발명의 일 실시예에 따른 서버에서 펌웨어를 전송하는 방법은 소정 비밀키 생성 함수를 이용하여 비밀키를 생성하는 단계와 상기 비밀키를 이용하여 원본 펌웨어를 암호화하는 단계와 미리 저장된 수신단 공개키를 이용하여 상기 비밀키를 암호화하는 단계와 상기 원본 펌웨어를 소정 해쉬 함수에 입력하여 해쉬 값을 생성하고, 상기 생성된 해쉬 값을 미리 저장된 상기 서버 개인키를 이용하여 암호화하는 단계를 포함하되, 상기 암호화된 원본 펌웨어, 상기 암호화된 비밀키, 상기 암호화된 해쉬 값을 포함하는 펌웨어 데이터를 상기 수신단에 전송하는 특징이 있다.
여기서, 상기 비밀키 생성 함수에 현재 시간 정보가 입력되어 상기 비밀키가 생성될 수 있다.
또한, 상기 수신단은 차량내 ECU(Electronic Control Unit)인 펌웨어 전송 방법.
또한, 상기 펌웨어 데이터는 상기 수신단을 고유하게 식별하기 위한 상기 ECU 식별자를 더 포함할 수 있다.
또한, 상기 펌웨어 데이터가 진단기, 차량용 게이트웨이를 경유하여 상기 수신단에 전송될 수 있다.
본 발명의 다른 일 실시예에 따른 전자 제어 기기(ECU:Electronic Control Unit)에서 서버에 의해 전송된 펌웨어 데이터를 처리하는 방법에 있어서,
암호화된 펌웨어, 암호화된 비밀키, 암호화된 해쉬 값을 포함하는 상기 펌웨어 데이터를 수신하는 단계와 상기 암호화된 비밀키를 미리 저장된 상기 ECU의 개인키를 이용하여 복호하는 단계와 상기 복호된 비밀키를 이용하여 상기 암호화된 펌웨어를 복호하는 단계와 상기 복호된 펌웨어를 소정 해쉬 함수에 입력하여 제1 해쉬 값을 획득하는 단계와 미리 저장된 상기 서버의 공개키를 이용하여 상기 암호화된 해쉬 값을 복호하는 단계와 상기 제1 해쉬 값과 상기 복호된 해쉬 값이 동일한지 여부를 판단하는 단계를 포함하되, 상기 판단 결과, 동일하면, 상기 복호된 펌웨어를 이용하여 소정 리프로그래밍이 수행될 수 있다.
여기서, 상기 암호화된 펌웨어는 상기 복호된 펌웨어가 상기 복호된 비밀키를 이용하여 암호화된 정보일 수 있다.
또한, 상기 암호화된 비밀키는 상기 ECU의 공개키를 이용하여 암호화된 정보일 수 있다.
또한, 상기 암호화된 해쉬 값은 상기 서버의 개인키를 이용하여 암호화된 정보일 수 있다.
또한, 상기 복호된 비밀키는 상기 서버에 의해 생성되되, 소정 비밀키 생성 함수에 Seed 값으로 현재 시간 정보가 입력되어 생성될 수 있다.
본 발명의 다른 일 실시예에 따른 서버는 제어부와 원본 펌웨어가 저장된 펌웨어 데이터베이스와 소정 비밀키 생성 함수를 이용하여 비밀키를 생성하는 비밀키 생성 모듈과 상기 비밀키를 이용하여 상기 원본 펌웨어를 암호화하는 펌웨어 암호화 모듈과 상기 비밀키를 미리 저장된 수신단 공개키를 이용하여 암호화하는 비밀키 암호화 모듈과 상기 원본 펌웨어를 소정 해쉬 함수에 입력하여 해쉬 값을 생성하고, 생성된 해쉬 값을 상기 서버의 개인키로 암호화하는 해쉬 값 암호화 모듈과 상기 암호화된 펌웨어, 상기 암호화된 비밀키, 상기 암호화된 해쉬 값을 포함하는 펌웨어 데이터를 상기 제어부의 제어 신호에 따라 외부 기기로 전송하는 통신부를 포함할 수 있다.
본 발명의 또 다른 일 실시예에 따른 서버와 연동하여 펌웨어 업그레이드를 수행하는 전자 제어 기기(ECU: Electronic Control Unit)는 제어부와 암호화된 펌웨어, 암호화된 비밀키, 암호화된 해쉬 값을 포함하는 펌웨어 데이터를 수신하여 상기 제어부에 제공하는 통신부와 상기 암호화된 비밀키를 미리 저장된 상기 ECU의 개인키를 이용하여 복호하는 비밀키 복호화 모듈과 상기 암호화된 펌웨어를 상기 복호된 비밀키를 이용하여 복호하는 펌웨어 복호화 모듈과 상기 복호된 펌웨어를 소정 해쉬 함수에 입력하여 제1 해쉬 값을 획득하고, 미리 저장된 상기 서버의 공개키를 이용하여 상기 암호화된 해쉬 값을 복호하고, 상기 제1 해쉬 값과 상기 복호된 해쉬 값이 동일한 경우 상기 복호된 펌웨어가 무결한 것으로 판단하는 무결성 확인 모듈을 포함하되, 상기 무결한 것으로 판단되면, 상기 복호된 펌웨어를 이용하여 리프로그래밍을 수행할 수 있다.
본 발명의 또 다른 일 실시예에 따른 펌웨어 업그레이드 제공 시스템은 진단 기기와 상기 진단 기기로부터의 펌웨어 전송 요청에 따라 암호화된 펌웨어, 암호화된 비밀키, 암호화된 해쉬 값을 포함하는 펌웨어 데이터를 상기 진단 기기로 전송하는 서버와 상기 펌웨어 데이터를 상기 진단 기기로부터 수신하면, 상기 암호화된 비밀키를 자신의 개인키로 복호하고, 상기 복호된 비밀키를 이용하여 상기 암호화된 펌웨어를 복호하고, 상기 복호된 펌웨어를 소정 해쉬 함수에 입력하여 획득한 제1 해쉬 값과 상기 암호화된 해쉬 값을 미리 저장된 상기 서버의 공개키를 이용하여 복호함으로써 얻어지는 제2 해쉬 값이 동일한 경우 상기 복호된 펌웨어를 이용하여 리프로그래밍을 수행하는 전자 제어 기기(Electronic Control Unit)를 포함할 수 있다.
상기 본 발명의 양태들은 본 발명의 바람직한 실시예들 중 일부에 불과하며, 본원 발명의 기술적 특징들이 반영된 다양한 실시예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 발명의 상세한 설명을 기반으로 도출되고 이해될 수 있다.
본 발명에 따른 펌웨어 업그레이드 방법 및 그 장치 및 시스템에 대한 효과에 대해 설명하면 다음과 같다.
첫째, 본 발명은 기밀성 및 무결성을 보장하여 보다 안전한 펌웨어 전달 및 업그레이드가 가능한 차량용 펌웨어 암호화 방법을 제공하는 장점이 있다.
둘째, 본 발명은 해커로부터의 공격에 강한 펌웨어 암호와 방법을 제공함으로써 운전자의 안전까지 보장할 수 있는 효과를 기대할 수 있다.
셋째, 본 발명에 따른 펌웨어 업그레이드 방법은 차량용 전자 제어 기기의 펌웨어 업그레이드뿐만 아니라 다양한 전자 기기에도 확대 적용될 수 있는 장점이 있다.
본 발명에서 얻을 수 있는 효과 및 장점은 이상에서 언급한 효과 및 장점들로 제한되지 않으며, 언급하지 않은 또 다른 효과 및 장점들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
이하에 첨부되는 도면들은 본 발명에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 본 발명에 대한 실시예들을 제공한다. 다만, 본 발명의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시예로 구성될 수 있다.
도 1은 종래 기술에 따른 차량용 펌웨어 리프로그래밍 절차를 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 차량 통신 네트워크의 도식적인 블록도이다.
도 3은 본 발명의 일 실시예에 따른 차량용 펌웨어 암호화 방법이 적용되는 시스템 구성도이다.
도 4는 본 발명의 일 실시예에 따른 서버에서의 펌웨어 암호화 절차를 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 ECU에서의 복호화 절차를 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 서버에서의 펌웨어 암호화 절차를 설명하기 위한 순서도이다.
도 7은 본 발명의 일 실시예에 따른 진단기에서의 암호화 데이터 전송 절차를 설명하기 위한 순서도이다.
도 8은 본 발명의 일 실시예에 따라 ECU에서의 펌웨어 복호화 절차를 설명하기 위한 순서도이다.
도 9는 본 발명의 일 실시예에 따른 서버의 내부 구성도이다.
도 10은 본 발명의 일 실시예에 따른 ECU의 내부 구성도이다.
이하, 본 발명의 실시예들이 적용되는 장치 및 다양한 방법들에 대하여 도면을 참조하여 보다 상세하게 설명한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
도 2는 본 발명의 일 실시예에 따른 차량 통신 네트워크의 도식적인 블록도이다.
도 2에 도시된 바와 같이, 본 발명에 따른 차량 통신 네트워크는 하나의 차량용 게이트웨이에서 상이한 버스 통신 프로토콜을 지원하는 전자 제어 장치-이하, 간단히 ECU(Electronic Control Unit)라 명함-들간의 프로토콜 변환을 제공함으로써, 서로 통신이 가능하게 한다.
이하에서는 차량용 게이트웨이에 연결될 수 있는 버스 통신 프로토콜과 해당 버스 통신 프로토콜을 사용하는 ECU들에 대해 간단히 설명하기로 한다. 일 예로, 차량용 버스 통신 프로토콜은
(1) 차량 진단 전기 구성요소들을 위해 일반적으로 사용되는 J1850 및/또는 OBDII 버스;
(2) 엔진 제어, 변속기 제어, 실내 온도 제어(climate control)와 같은 다른 차량 시스템들을 위해 일반적으로 사용되고, 드라이브-바이-와이어(drive-by-wire) 전기 제어 유닛(ECU)을 위해서도 사용될 수 있는 인텔리버스(Intellibus);
(3) 브레이킹 시스템들 및 엔진 관리 시스템들을 위해 일반적으로 사용되는 고속(high-speed) 계측 제어기 통신망(CAN, controller area network);
(4) 안전 관련 전기 기기들을 위해 일반적으로 사용되는 분산 시스템 인터페이스(DSI, distributed system interface) 및/또는 보쉬-지멘스-테믹(BST, Bosch-Siemens-Temic);
(5) 안전 중요한 전기 기기 어플리케이션들을 위해 일반적으로 사용되는 바이트플라이트(byteflight);
(6) 인텔리전트(intelligent) 작동기들 및/또는 인텔리전트 센서들을 위해 일반적으로 사용되는 로컬(local) 내부 연결 네트워크(LIN, local interconnect network);
(7) 창문들, 미러(mirror)들, 좌석들 및/또는 실내 온도 조절기와 같은 저속 전기 기기들을 위해 일반적으로 사용되는 저속 계측 제어기 통신망(CAN) 및/또는 모토로라 인터커넥터(MI, Motorola Interconnect);
(8) 오디오 헤드 유닛, 증폭기, CD 플레이어, DVD 플레이어, 셀룰러 연결, 블루투스(Bluetooth) 연결, 주변 컴퓨터 연결들, 뒷좌석 엔터테인먼트(rear seat entertainment) 유닛들, 라디오, 디지털 스토리지(storage), 및/또는 GPS 네비게이션 시스템과 같은 차량 내의 멀티미디어 전기 기기들을 지원하는데 일반적으로 사용되는 모바일 미디어 링크(MML, mobile media link), 도메스틱 디지털 데이터(domestic digital data, D2B), 스마트와이어X(smartwireX), IEBus(inter-equipment bus), 및/또는 모스트(MOST, media oriented systems transport);
(9) 천정형 영상표시기(heads up display), 기구 패널 디스플레이(instrument panel display)들, 다른 디지털 디스플레이들, 운전자 지원 디지털 비디오 카메라(driver assist digital video camera)들을 지원하기 위해 일반적으로 사용되는 저전압 차등 신호(LVDS, Low-Voltage Differential Signaling);
(10) 안전 중요 특성들 및/또는 바이-와이어(by-wire) 어플리케이션들을 위해 사용될 수 있는 플렉스레이(FlexRay);
(11) 기기와의 일대일 통신 연결을 통해 가용 대역폭에 대한 효율성이 높아 고장 진단 시스템(OBD, On-Board Diagnostics), 인포테인먼트 시스템 및 카메라를 이용한 서라운드 뷰와 같은 기능을 포함하는 운전자 지원 시스템(DAS, Driver Assistance System) 등과의 연동을 위해 사용되는 이더넷(Ethenet) 등을 포함할 수 있다.
상기한 예에서의 상이한 버스 통신 프로토콜들을 사용하는 ECU 또는 전자 부품들이 서로 통신할 수 있게 하기 위해서는 하나 이상의 차량용 게이트웨이들이 차량 네트워크에 포함될 수 있다. 예를 들어, 안전 관련된 이슈에 있어서, 브레이킹 ECU 및 엔진 제어 ECU 및/또는 변속기 제어 ECU가 서로 통신할 필요가 있을 수 있다. 이때, 게이트웨이는 상이한 통신 프로토콜을 지원하는 ECU들 간의 통신을 용이하게 하기 위해 프로토콜 변환 기능을 제공해야 한다.
본 발명에 따른 차량용 게이트웨이는 소정 진단 통신 인터페이스(Diagnostics Communication Interface) 모듈이 구비될 수 있으며, 진단 통신 인터페이스 모듈을 통해 외부 진단기와 통신할 수 있다. 여기서, 진단 통신 인터페이스 모듈은 이더넷(Ethernet) 통신 기능, 블루투스(Bluetooth) 통신 기능, Wi-Fi 통신 기능, NFC(Near-Field Connection) 통신 기능. WCDMA(Wideband Code Division Multiple Access) 통신 기능, LTE(Long Term Evolution) 통신 기능, LTE-Advanced 통신 기능 중 적어도 어느 하나의 기능을 제공할 수 있다.
또한, 본 발명의 다른 일 실시예에 따른 차량용 게이트웨이는 외부 진단기-예를 들면, OBD 단말-의 차량용 게이트웨이 또는 특정 ECU로의 접속 요청 시 해당 외부 진단기가 해당 차량용 게이트웨이 또는 해당 ECU로의 접속 권한이 있는지를 인증하는 소정 접속 제어 모듈을 더 포함할 수도 있다. 여기서, 접속 제어 모듈은 외부 진단기의 접속 요청에 따라 랜덤넘버(Seed 값)을 생성하여 외부 진단기에 전송하고 생성된 Seed 값을 저장하는 수단, 전송한 Seed 값을 이용하여 생성된 Key 값을 외부 진단기로부터 수신하는 수단, 수신된 Key 값이 저장된 Seed 값을 소정 키 생성 함수에 입력하여 생성한 Key 값과 동일한지 여부를 판단하는 수단, 동일한 경우, 인증에 성공했음을 알리는 소정의 제어 신호를 외부 진단기로 전송하는 수단 등을 탑재할 수 있다.
본 발명의 또 다른 일 실시예에서는 개별 ECU가 상기한 접속 제어 모듈에 의해 수행되는 제반 기능이 탑재될 수도 있음을 주의해야 한다. 즉, ECU가 외부 진단기로부터의 접속 요청 시 접속 권한을 인증하는 소정의 절차를 수행할 수 있다.
도 3은 본 발명의 일 실시예에 따른 차량용 펌웨어 암호화 방법이 적용되는 시스템 구성도이다.
도 3을 참조하면, 본 발명에 따른 시스템은 서버(310), 진단기(320), 차량용 게이트웨이(330), 제1 내지 제N ECU(340)를 포함할 수 있다.
서버(310)는 유선 또는 무선 연결을 통해 진단기(320)와의 통신을 수행하며, 진단기(320)로부터 특정 ECU에 대한 펌웨어 전송 요청을 수신하면 해당 펌웨어를 암호화하여 진단기(320)에 제공할 수 있다. 서버(310)에서 수행되는 펌웨어 암호화 절차는 후술할 도면들의 설명을 통해 보다 명확해질 것이다.
진단기(320)는 서버(310)로부터 수신된 암호화된 펌웨어를 차량용 게이트웨이(330)를 통해 해당 ECU에 전달하는 기능을 수행한다.
차량용 게이트웨이(330)에 대한 설명은 상기한 도 2의 설명으로 대체하기로 한다.
제1 내지 제N ECU(340)는 진단기(320)로부터 수신된 암호화된 펌웨어를 복호하여 리프로그램밍을 수행할 수 있다. 또한, 제1 내지 제N ECU(340)는 진단기(320)로부터의 리프로그램밍 요청에 따라 해당 진단기(320)가 접속 권한이 있는지 여부를 확인하는 소정의 인증 절차를 개시할 수 있다.
도 4는 본 발명의 일 실시예에 따른 서버에서의 펌웨어 암호화 절차를 설명하기 위한 흐름도이다.
도 4를 참조하면, 서버(310)는 소정 기록 영역에 서버 개인키(401), ECU 공개키(402)를 미리 유지할 수 있다. 또한, ECU(340)는 소정 기록 영역에 서버 공개키(403), ECU 개인키(404)를 미리 유지할 수 있다.
서버 개인키(401)는 해당 서버에만 유지되는 보안 키로서, 해당 서버 이외의 다른 기기에 의해 공유되지 않는 특성이 있다. 반면, 서버 공개키(403)는 서버 이외의 다른 기기에 공유되는 보안 키로써, 모든 ECU들이 이미 알고 있는 보안 키일 수 있다. 서버 개인키(401)와 서버 공개키(403)는 배타적으로 짝을 이루며 다른 어떤 보안 키와도 연관되지 않는다. 따라서, 서버 개인키(401)에 의해 암호화된 데이터는 서버 공개키(403)에 의해서만 복호될 수 있으며 그 역도 성립될 수 있다. 즉, 개인키/공개키 구조는 단방향으로 암호화/복호화 작업이 수행된다. 따라서, 서버(310)는 서버 개인키(401)를 이용하여 암호화된 데이터를 서버 개인키(401)를 이용하여 복호할 수 없다. 또한, 개인키/공개키 구조에 사용되는 알고리즘은 한 키를 이용하여 쌍의 반대 키를 판별할 수 없도록 디자인되어 있음을 주의해야 한다. 따라서, 공개키를 통해 개인키를 복호할 수 없으며, 역으로, 개인키를 통해 공개키를 복호할 수도 없다.
ECU 개인키(404)는 해당 ECU에만 유지되는 보안 키로서, 해당 ECU 이외에 다른 기기에 의해 공유되지 않는 특성이 있다. 반면, ECU 공개키(402)는 해당 ECU 이외의 다른 기기-예를 들면, 서버(301)-들에 의해 공유되는 보안 키이다.
반면, 서버/ECU 비밀키(405)는 해당 서버에 의해 자체적으로 생성되는 보안 키로서, ECU(340)는 서버/ECU 비밀키(405)를 직접적으로 알 수 없다. 다만, ECU(340)는 ECU 공개키(402)를 이용하여 암호화된 서버/ECU 비밀키(405)를 수신하고, 암호화된 서버/ECU 비밀키(405)를 ECU 개인키(404)를 이용하여 복호하여 서버(310)에 의해 생성된 서버/ECU 비밀키(405)를 획득할 수 있다.
본 발명의 일 실시예에 따른 서버/ECU 비밀키(450)는 소정 차수의 비밀키 생성 함수(Generation function)에 비밀키 생성 당시의 현재 시간 정보를 Seed 값으로 입력하여 얻어질 수 있다. 따라서, 서버/ECU 비밀키(450)는 수신단 또는 통신 경로상의 특정 기기에서 비밀키 생성 함수를 알더라도 해당 서버/ECU 비밀키가 생성된 정확한 시간 정보를 알지 못하면 복호가 불가능한 특성이 있다.
이하에서는 상기한 도 4를 참조하여, 본 발명에 따른 서버(310)에서의 펌웨어 암호화 절차를 상세히 설명하기로 한다.
서버(310)는 진단기(320)로부터 소정의 펌웨어 전송 요청 메시지를 수신할 수 있다. 이때, 펌웨어 전송 요청 메시지는 어떤 ECU에 대한 펌웨어 전송 요청인지를 지시하기 위한 소정의 ECU 식별자, 해당 ECU에 설치된 펌웨어의 버전 정보 중 적어도 하나를 포함할 수 있다. 이 경우, 서버(310)는 수신된 ECU 식별자에 상응하여 새롭게 변경된 펌웨어가 있는지 여부를 확인하고, 새롭게 변경된 펌웨어가 존재하는 경우, 암호화 절차를 개시할 수 있다. 본 발명의 다른 일 실시예에 따른 서버(310)는 펌웨어 전송 요청 메시지를 수신하면, 해당 차량에 탑재된 ECU들에 대해 새롭게 갱신된 펌웨어가 존재하는지 여부를 확인할 수 있으며, 확인 결과에 따라 적어도 하나의 펌웨어에 대한 암호화 절차를 개시할 수도 있다.
서버(310)는 암호화 대상 펌웨어가 식별되면, 식별된 원본 펌웨어를 서버/ECU 비밀키(405)를 이용하여 암호화한다. 이하, 설명의 편의를 위해 서버/ECU 비밀키(405)에 의해 암호화된 원본 데이터를 "제1 데이터"라 명하기로 한다.
서버(310)는 서버/ECU 비밀키(405)를 ECU 공개키(402)를 이용하여 암호화한다. 이하, 설명의 편의를 위해 ECU 공개키(402)를 이용하여 암호화된 서버/ECU 비밀키(405)를 "제2 데이터"라 명하기로 한다.
서버(310)는 상기한 제1 데이터 및 제2 데이터의 생성을 통해 원본 펌웨어에 대한 기밀성(Confidentiality)을 확보할 수 있다.
이 후, 서버(310)는 원본 펌웨어를 미리 알고 있는 소정의 해쉬 함수(HASH Function)에 입력 값으로 사용하여 해쉬 값을 생성하고, 생성된 해쉬 값을 서버 개인키(401)로 암호화한다. 이를 통해, 이하, 설명의 편의를 위해 서버 개인키(401)로 암호화된 해쉬 값를 "제3 데이터"라 명하기로 한다.
서버(310)는 상기한 제3 데이터의 생성을 통해 원본 펌웨어의 무결성(Integrity) 및 ECU에서의 서버(310)에 대한 인증 수단을 제공할 수 있다.
서버(310)는 제1 데이터. 제2 데이터 및 제3 데이터를 포함하는 펌웨어 데이터를 소정의 통신 채널을 통해 진단기(320)에 전송한다.
이하에서는 본 발명의 이해를 돕기 위해 해쉬 함수 및 해쉬 값에 대해 간단히 설명하기로 한다.
일반적으로, 해쉬 함수 또는 해쉬 메쏘드(HASH Method)는 컴퓨터 암호화 기술의 일종으로서, 요약 함수, 메시지다이제스트함수(message digest function)라고도 한다. 주어진 원문에서 고정된 길이의 의사난수(Pseudo Random Number)를 생성하는 연산 기법으로서, 생성된 값은 해쉬 값이라고 한다. 통신 회선을 통해서 데이터를 주고 받을 때, 경로의 양단에서 원문에 대한 해시 값을 구한 후 송신단과 수신단의 해쉬 값을 비교하면 원문을 주고 받는 도중에 어떠한 변경이 가해졌는지 여부를 확인할 수 있는 수단을 제공한다.
특히, 해쉬 함수는 불가역적인 일방향 함수를 포함하고 있기 때문에 해쉬 값으로부터 원문을 재현할 수는 없다. 또한, 동일 해시 값을 가진 다른 원문을 작성하는 것도 극히 어렵다. 이런 특성을 기반하여, 해쉬 함수는 통신의 암호화 보조수단이나 사용자 인증, 디지털 서명 등에 응용될 수 있다. 여기서, 일방향 함수란 함정문함수(trap door function)라고도 하며, 제수(divisor)에서 결과를 구하는 것은 간단하지만, 결과에서 제수를 구하는 것을 어려운 함수를 말한다.
도 5는 본 발명의 일 실시예에 따른 ECU에서의 복호화 절차를 설명하기 위한 흐름도이다.
도 5를 참조하면, ECU(340)는 진단기(320)로부터 소정 리프로그래밍 요청 메시지를 수신하면, 소정 인증 절차를 개시한다. 여기서, 인증 절차는 상기한 도 1의 설명으로 대체하기로 한다.
ECU(340)는 인증에 성공하면, 진단기(320)로부터 제1 데이터, 제2 데이터, 제3 데이터를 포함하는 펌웨어 데이터를 수신한다.
이 후, ECU(340)는 ECU 개인키(404)를 이용하여 제2 데이터를 복호함으로써, 서버/ECU 비밀키(405)를 획득하고, 획득된 서버/ECU 비밀키(405)를 이용하여 제1 데이터를 복호함으로써, 원본 펌웨어를 획득할 수 있다.
연이어, ECU(340)는 획득된 원본 펌웨어를 소정 해쉬 함수에 입력하여 해쉬 값을 획득한다. 이하, 설명의 편의를 위해, 획득된 해쉬 값을 "제1 해쉬 값"이라 명하기로 한다.
또한, ECU(340)는 서버 공개키(430)를 이용하여 제3 데이터를 복호함으로써, 서버(310)에 의해 생성된 해쉬 값을 획득한다. 이하, 설명의 편의를 위해, 서버 공개키(430)를 이용하여 복호된 해쉬 값을 "제2 해쉬 값"이라 명하기로 한다.
이 후, ECU(340)는 제1 해쉬 값과 제2 해쉬 값이 동일한지 여부를 확인한다.
확인 결과, 동일하면, 복호된 원본 펌웨어를 이용하여 소정의 리프로그램밍 절차를 개시한다. 만약, 확인 결과, 동일하지 않으면, ECU(340)는 리프로그램이 불가함을 알리는 소정의 메시지를 진단기(320)으로 전송할 수 있다.
도 6은 본 발명의 일 실시예에 따른 서버에서의 펌웨어 암호화 절차를 설명하기 위한 순서도이다.
도 6를 참조하면, 서버(310)는 소정의 비밀키 생성 함수를 이용하여 서버/ECU 비밀키(405)를 생성하고, 생성된 서버/ECU 비밀키(405)를 이용하여 원본 펌웨어를 암호화함으로써 상기한 제1 데이터를 획득한다(S601).
서버(310)는 생성된 서버/ECU 비밀키(405)를 ECU 공개키(402)로 암호화하여 상기한 제2 데이터를 획득한다(S603).
서버(310)는 원본 펌웨어를 소정 해쉬 함수에 입력하여 해쉬 값을 생성하고, 생성된 해쉬 값을 서버 개인키(401)로 암호화하여 상기한 제3 데이터를 획득한다(S605).
이 후, 서버(310)는 암호화된 원본 펌웨어(제1 데이터), 암호화된 서버/ECU 비밀키(제2 데이터), 암호화된 해쉬 값(제3 데이터)을 포함하는 펌웨어 데이터를 진단기(320)로 전송한다(S609). 이때, 서버(310)는 펌웨어 데이터를 수신할 ECU가 식별될 수 있도록 소정의 ECU 식별자가 더 포함된 펌웨어 데이터를 진단기(320)에 전송할 수도 있다. 따라서, 진단기(320)는 ECU 식별자에 대응하는 ECU로 해당 펌웨어 데이터를 전송할 수 있다.
도 7은 본 발명의 일 실시예에 따른 진단기에서의 암호화 데이터 전송 절차를 설명하기 위한 순서도이다.
보다 상세하게, 도 7은 진단기(320)가 서버(310)로부터 수신된 펌웨어 데이터를 소정의 리프로그래밍 절차를 통해 ECU(340)에 전달하는 과정을 설명하기 위한 도면이다.
도 7을 참조하면, 진단기(320)는 암호화된 펌웨어(제1 데이터), 암호화된 비밀키(제2 데이터) 및 암호화된 해쉬 값(제3 데이터), EUC 식별자를 포함하는 펌웨어 데이터를 서버(310)로부터 수신하면, 소정 리프로그래밍 요청 메시지를 ECU 식별자에 대응하는 ECU로 전송할 수 있다(S701 내지 S703).
이 후, 진단기(320)는 해당 ECU로부터 랜덤 넘버(Seed 값)을 수신하면, 수신된 Seed 값을 미리 알고 있는 키 생성 함수에 입력하여 Key 값을 생성하고, 생성된 Key 값을 해당 ECU로 전송한다(S705 내지 S709).
만약, 해당 ECU에 의해 인증이 성공하면, 진단기(320)는 상기 710 단계에서 수신된 펌웨어 데이터를 해당 ECU로 전송한다(S711).
상기한 예에서, 진단기(320)와 해당 ECU 사이에 송수신되는 모든 정보는 차량용 게이트웨이(330)를 경유하여 전달될 수 있음을 주의해야 한다. 차량용 게이트웨이(330)는 상기한 ECU 식별자를 통해 목적지(Destination) ECU를 식별함으로써, 라우팅 동작을 수행할 수 있다.
도 8은 본 발명의 일 실시예에 따라 ECU에서의 펌웨어 복호화 절차를 설명하기 위한 순서도이다.
도 8을 참조하면, ECU(340)는 암호화된 펌웨어(제1 데이터), 암호화된 비밀키(제2 데이터) 및 암호화된 해쉬 값(제3 데이터)를 포함하는 펌웨어 데이터를 진단기(320)로부터 수신한다(S801).
ECU(340)는 제2 데이터를 ECU 개인키(404)를 이용하여 복호함으로써 서버(310)에 의해 생성된 서버/ECU 비밀키(405)를 획득할 수 있다(S803). 연이어, ECU(340)는 획득된 서버/ECU 비밀키(405)를 이용하여 제1 데이터를 복호함으로써, 원본 펌웨어를 획득한다(S805).
이 후, ECU(340)는 획득된 원본 펌웨어를 미리 알고 있는 소정 해쉬 함수에 입력하여 해쉬 값(제1 해쉬 값)을 획득한다(S807). 연이어, ECU(340)는 서버 공개키(403)을 이용하여 제3 데이터를 복호함으로써, 서버(310)에 의해 생성된 해쉬 값(제2 해쉬 값)을 획득한다(S809).
ECU(340)는 제1 해쉬 값과 제2 해쉬 값이 동일한지 여부를 판단한다(S811).
판단 결과, 동일하면, ECU(340)는 상기한 805 단계에서 획득된 원본 펌웨어를 이용하여 리프로그래밍을 개시한다(S813).
만약, 상기한 811 단계의 판단 결과, 서로 동일하지 않은 경우, ECU(340)는 리프로그래밍이 불가함을 알리는 소정의 메시지를 생성하여 진단기(320)에 전송할 수 있다(S815).
도 9는 본 발명의 일 실시예에 따른 서버의 내부 구성도이다.
도 9에 도시된 바와 같이, 서버(310)는 제어부(910)와 펌웨어 데이터베이스(920), 보안키 저장 모듈(930), 비밀키 생성 모듈(940), 펌웨어 암호화 모듈(950), 비밀키 암호화 모듈(960), 해쉬 값 암호화 모듈(970), 통신부(980) 등의 하부 모듈들을 포함하여 구성될 수 있다.
제어부(910)는 하부 모듈의 동작을 제어하고, 서버(310) 내부 또는 외부로의 메시지 입출력을 제어할 수 있다.
펌웨어 데이터베이스(920)는 차량에 탑재되는 ECU들을 위한 암호화되지 않은 원본 펌웨어가 저장된 저장 매체로서, ECU 별 최신 업데이트된 펌웨어 정보를 유지할 수 있다. 여기서, 차량에 탑재되는 ECU들은 개별 ECU를 고유하게 식별할 수 있는 소정의 ECU 식별자를 통해 서버(310)내에서 구분될 수 있다.
보안키 저장 모듈(930)은 서버(310)내에 유지되는 보안키가 저장된 저장 매체이다. 보안키 저장 모듈(930)은 소정의 사용자 인증 절차를 통해 인증된 사용자 만이 접근할 수 있도록 보안 설정되는 것이 바람직하다. 이를 위해, 본 발명의 일 실시예에 따른 서버(310)는 소정의 로그인 절차를 제공할 수 있다.
보안키 저장 모듈(930)은 서버 개인키(401) 및 차량에 탑재되는 ECU 별 ECU 공개키(402)가 유지될 수 있다.
비밀키 생성 모듈(940)은 소정의 비밀키 생성 함수를 이용하여 서버/ECU 비밀키(405)를 생성하는 기능을 제공한다. 일 실시예로, 비밀키 생성 모듈(940)은 현재 시간 정보를 상기 비밀키 생성 함수의 Seed 값으로 사용하여 서버/ECU 비밀키(405)를 생성할 수 있다. 본 발명의 다른 일 실시예에 따른 비밀키 생성 모듈(940)은 ECU 식별자를 비밀키 생성 함수의 Seed 값으로 사용하여 서버/ECU 비밀키(405)를 생성할 수도 있다.
펌웨어 암호화 모듈(950)는 서버/ECU 비밀키 생성 모듈(940)에 의해 생성된 서버/ECU 비밀키(405)를 이용하여 원본 펌웨어를 암호화하여 암호화된 펌웨어를 생성하는 기능을 제공한다.
비밀키 암호화 모듈(960)은 비밀키 생성 모듈(940)에 의해 생성된 서버/ECU 비밀키(405)를 ECU 공개키(402)를 이용하여 암호화된 비밀키를 생성하는 기능을 제공한다.
해쉬 값 암호화 모듈(970)은 원본 펌웨어를 소정 해쉬 키 생성 함수를 입력하여 해쉬 값을 획득하고, 획득된 해쉬 값을 서버 개인키(401)을 이용하여 암호화하여 암호화된 해쉬 값을 생성하는 기능을 제공한다.
제어부(910)는 암호화된 펌웨어, 암호화된 서버/ECU 비밀키, 암호화된 해쉬 값을 이용하여 펌웨어 데이터를 구성하고, 구성된 펌웨어 데이터를 포함하는 소정 메시지를 통신부(980)를 통해 진단기(320)에 전송할 수 있다. 여기서, 제어부(910)는 구성된 펌웨어 데이터에 해당 펌웨어 데이터를 수신할 ECU를 식별하기 위한 ECU 식별자를 더 포함할 수 있다.
통신부(980)는 서버(310)와 진단기(320) 사이의 메시지 또는 신호 전달을 위한 통신 수단을 제공한다. 본 발명의 일 실시예에 따른 통신부(980)는 무선 또는 무선 연결 이더넷(Ethernet) 통신 기능, 블루투스(Bluetooth) 통신 기능, Wi-Fi 통신 기능, NFC(Near-Field Connection) 통신 기능. WCDMA(Wideband Code Division Multiple Access) 통신 기능, LTE(Long Term Evolution) 통신 기능, LTE-Advanced 통신 기능 중 적어도 하나를 제공할 수 있다.
도 10은 본 발명의 일 실시예에 따른 ECU의 내부 구성도이다.
도 10을 참조하면, 본 발명에 따른 ECU(340)는 제어부(1010)와 보안키 저장 모듈(1020), 비밀키 복호화 모듈(1030), 펌웨어 복호화 모듈(1040), 무결성 확인 모듈(1050), 펌웨어 설치 모듈(1060) 및 인증 모듈(1070)을 포함하는 하부 모듈들로 구성될 수 있다.
제어부(1010)는 하부 모듈들의 동작을 제어하고, ECU(340) 내부 또는 외부로의 메시지 입출력을 제어할 수 있다.
보안키 저장 모듈(1020)에는 ECU 개인키(404) 및 서버 공개키(403)가 저장된다.
비밀키 복호화 모듈(1030)은 암호화된 비밀키(제2 데이터)를 ECU 개인키(404)를 이용하여 복호함으로써, 서버(310)에 의해 생성된 서버/ECU 비밀키(405)를 추출하는 기능을 수행한다.
펌웨어 복호화 모듈(1040)은 보안키 복호화 모듈(1030)에 의해 추출된 서버/ECU 비밀키(405)를 이용하여 암호화된 펌웨어(제1 데이터)를 복호함으로써, 원본 펌웨어를 추출하는 기능을 수행한다.
무결성 확인 모듈(1050)은 펌웨어 복호화 모듈(1040)에 의해 추출된 원본 펌웨어를 미리 알고 있는 해쉬 키 생성 함수에 입력하여 해쉬 값(제1 해쉬 키)을 획득하고, 암호화된 해쉬 값(제3 데이터)를 서버 공개키(403)를 이용하여 복호함으로써, 서버(310)에 의해 생성된 해쉬 값(제2 해쉬 값)을 획득한다. 이 후, 무결성 확인 모듈(1050)은 제1 해쉬 값과 제2 해쉬 값의 동일 여부를 판단하여 수신된 펌웨어의 무결성을 체크하는 기능을 수행한다. 여기서, 판단 결과는 소정의 제어 신호를 통해 제어부(1010)에 전달될 수 있다.
펌웨어 설치 모듈(1060)은 무결성 확인 모듈(1050)에 의해 수신된 펌웨어가 무결한 것으로 판단되면, 제어부(1010)의 제어 신호에 따라, 펌웨어 복호화 모듈(1040)에 의해 추출된 원본 펌웨어를 이용하여 리프로그램을 수행한다.
만약, 수신된 펌웨어가 결함이 있는 것으로 판단된 경우, 제어부(1010)는 리프로그래밍이 불가함을 알리는 소정의 메시지를 진단기(320)에 전송할 수 있다.
인증 모듈(1070)은 진단기(320)로부터의 리프로그래밍 요청 메시지 수신에 따라, 해당 진단기(320)의 접속 권한을 인증하는 절차를 수행한다. 인증 모듈(1070)에 의해 수행되는 인증 절차는 상기한 도 4를 참조하여 보다 명확해질 것이다.
통신부(1080)는 차량용 게이트웨이(330)와 해당 ECU 사이의 메시지 또는 신호의 송수신 수단을 제공한다. 일 예로, 통신부(180)는 상기한 도 2의 예에서 보여지는 다양한 버스 통신 수단 중 어느 하나를 제공할 수 있다.
이상의 설명에서는 본 발명에 따른 펌웨어 암호화 및 복호화 방법이 차량용 서버 및 ECU에 적용되는 것으로 한정하여 설명하고 있으나, 이는 하나의 실시예에 불과하여, 서버와의 연동을 통해 펌웨어 리프로그램밍이 가능한 다양한 전자 기기-예를 들면, 스마트폰, 컴퓨터, 각종 계측기, 항공기 등을 포함함-에 적용될 수 있음을 주의해야 한다. 따라서, 서버에 의해 전송된 펌웨어 데이터를 수신하는 주체-즉, 수신단-는 차량용 ECU뿐만 아니라 상기한 다양한 전자 기기 또는 해당 전자 기기의 특정 모듈일 수 있다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다.
따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
310: 서버 320: 진단기
330: 차량용 게이트웨이 340: ECU(들)
940: 비밀키 생성 모듈 950: 펌웨어 암호화 모듈
960: 비밀키 암호화 모듈 970: 해쉬 값 암호화 모듈

Claims (13)

  1. 서버에서 펌웨어를 전송하는 방법에 있어서,
    소정 비밀키 생성 함수를 이용하여 비밀키를 생성하는 단계;
    상기 비밀키를 이용하여 원본 펌웨어를 암호화하는 단계;
    미리 저장된 수신단의 공개키를 이용하여 상기 비밀키를 암호화하는 단계;
    상기 원본 펌웨어를 소정 해쉬 함수에 입력하여 해쉬 값을 생성하고, 상기 생성된 해쉬 값을 미리 저장된 상기 서버의 개인키를 이용하여 암호화하는 단계
    를 포함하되, 상기 암호화된 원본 펌웨어, 상기 암호화된 비밀키, 상기 암호화된 해쉬 값을 포함하는 펌웨어 데이터를 상기 수신단에 전송하는 펌웨어 전송 방법.
  2. 제1항에 있어서,
    상기 비밀키 생성 함수에 현재 시간 정보가 입력되어 상기 비밀키가 생성되는 펌웨어 전송 방법.
  3. 제1항에 있어서,
    상기 수신단은 차량내 ECU(Electronic Control Unit)인 펌웨어 전송 방법.
  4. 제3항에 있어서,
    상기 펌웨어 데이터는 상기 수신단을 고유하게 식별하기 위한 상기 ECU 식별자를 더 포함하는 펌웨어 전송 방법.
  5. 제1항에 있어서,
    상기 펌웨어 데이터가 진단기, 차량용 게이트웨이를 경유하여 상기 수신단에 전송되는 펌웨어 전송 방법.
  6. 차량용 ECU(Electronic Control Unit)에서 서버에 의해 전송된 펌웨어 데이터를 처리하는 방법에 있어서,
    암호화된 펌웨어, 암호화된 비밀키, 암호화된 해쉬 값을 포함하는 상기 펌웨어 데이터를 수신하는 단계;
    상기 암호화된 비밀키를 미리 저장된 상기 ECU의 개인키를 이용하여 복호하는 단계;
    상기 복호된 비밀키를 이용하여 상기 암호화된 펌웨어를 복호하는 단계;
    상기 복호된 펌웨어를 소정 해쉬 함수에 입력하여 제1 해쉬 값을 획득하는 단계;
    미리 저장된 상기 서버의 공개키를 이용하여 상기 암호화된 해쉬 값을 복호하는 단계; 및
    상기 제1 해쉬 값과 상기 복호된 해쉬 값이 동일한지 여부를 판단하는 단계
    를 포함하되, 상기 판단 결과, 동일하면, 상기 복호된 펌웨어를 이용하여 소정 리프로그래밍이 수행되는 펌웨어 데이터 처리 방법.
  7. 제6항에 있어서,
    상기 암호화된 펌웨어는 상기 복호된 펌웨어가 상기 복호된 비밀키를 이용하여 암호화된 정보인 펌웨어 데이터 처리 방법.
  8. 제6항에 있어서,
    상기 암호화된 비밀키는 상기 ECU의 공개키를 이용하여 암호화된 정보인 펌웨어 데이터 처리 방법.
  9. 제6항에 있어서,
    상기 암호화된 해쉬 값은 상기 서버의 개인키를 이용하여 암호화된 정보인 펌웨어 데이터 처리 방법.
  10. 제6항에 있어서,
    상기 복호된 비밀키는 상기 서버에 의해 생성되되, 소정 비밀키 생성 함수에 Seed 값으로 현재 시간 정보가 입력되어 생성되는 펌웨어 데이터 처리 방법.
  11. 펌웨어를 제공하는 서버에 있어서,
    제어부;
    원본 펌웨어가 저장된 펌웨어 데이터베이스;
    소정 비밀키 생성 함수를 이용하여 비밀키를 생성하는 비밀키 생성 모듈;
    상기 비밀키를 이용하여 상기 원본 펌웨어를 암호화하는 펌웨어 암호화 모듈;
    상기 비밀키를 미리 저장된 수신단 공개키를 이용하여 암호화하는 비밀키 암호화 모듈;
    상기 원본 펌웨어를 소정 해쉬 함수에 입력하여 해쉬 값을 생성하고, 생성된 해쉬 값을 상기 서버의 개인키로 암호화하는 해쉬 값 암호화 모듈 및
    상기 암호화된 펌웨어, 상기 암호화된 비밀키, 상기 암호화된 해쉬 값을 포함하는 펌웨어 데이터를 상기 제어부의 제어 신호에 따라 외부 기기로 전송하는 통신부
    를 포함하는 서버.
  12. 서버와 연동하여 펌웨어 업그레이드를 수행하는 전자 제어 기기(ECU: Electronic Control Unit)에 있어서,
    제어부;
    암호화된 펌웨어, 암호화된 비밀키, 암호화된 해쉬 값을 포함하는 펌웨어 데이터를 수신하여 상기 제어부에 제공하는 통신부;
    상기 암호화된 비밀키를 미리 저장된 상기 ECU의 개인키를 이용하여 복호하는 비밀키 복호화 모듈;
    상기 암호화된 펌웨어를 상기 복호된 비밀키를 이용하여 복호하는 펌웨어 복호화 모듈; 및
    상기 복호된 펌웨어를 소정 해쉬 함수에 입력하여 제1 해쉬 값을 획득하고,
    미리 저장된 상기 서버의 공개키를 이용하여 상기 암호화된 해쉬 값을 복호하고, 상기 제1 해쉬 값과 상기 복호된 해쉬 값이 동일한 경우 상기 복호된 펌웨어가 무결한 것으로 판단하는 무결성 확인 모듈
    을 포함하되, 상기 무결한 것으로 판단되면, 상기 복호된 펌웨어를 이용하여 리프로그래밍을 수행하는 전자 제어 기기.
  13. 펌웨어 업그레이드를 제공하는 시스템에 있어서,
    진단 기기;
    상기 진단 기기로부터의 펌웨어 전송 요청에 따라 암호화된 펌웨어, 암호화된 비밀키, 암호화된 해쉬 값을 포함하는 펌웨어 데이터를 상기 진단 기기로 전송하는 서버; 및
    상기 펌웨어 데이터를 상기 진단 기기로부터 수신하면, 상기 암호화된 비밀키를 자신의 개인키로 복호하고, 상기 복호된 비밀키를 이용하여 상기 암호화된 펌웨어를 복호하고, 상기 복호된 펌웨어를 소정 해쉬 함수에 입력하여 획득한 제1 해쉬 값과 상기 암호화된 해쉬 값을 미리 저장된 상기 서버의 공개키를 이용하여 복호함으로써 얻어지는 제2 해쉬 값이 동일한 경우 상기 복호된 펌웨어를 이용하여 리프로그래밍을 수행하는 전자 제어 기기(Electronic Control Unit)
    를 포함하는 펌웨어 업그레이드 제공 시스템.
KR1020130162187A 2013-12-24 2013-12-24 펌웨어 업그레이드 방법 및 그 시스템 KR20150074414A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130162187A KR20150074414A (ko) 2013-12-24 2013-12-24 펌웨어 업그레이드 방법 및 그 시스템
US14/553,645 US20150180840A1 (en) 2013-12-24 2014-11-25 Firmware upgrade method and system thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130162187A KR20150074414A (ko) 2013-12-24 2013-12-24 펌웨어 업그레이드 방법 및 그 시스템

Publications (1)

Publication Number Publication Date
KR20150074414A true KR20150074414A (ko) 2015-07-02

Family

ID=53401386

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130162187A KR20150074414A (ko) 2013-12-24 2013-12-24 펌웨어 업그레이드 방법 및 그 시스템

Country Status (2)

Country Link
US (1) US20150180840A1 (ko)
KR (1) KR20150074414A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018080020A1 (ko) * 2016-10-25 2018-05-03 주식회사 미래 테크놀로지 오티피를 이용한 브이투엑스통신 시스템
CN110912680A (zh) * 2019-11-26 2020-03-24 福建汉特云智能科技有限公司 一种提高车况数据安全性的数据传输方法及存储介质
CN111466094A (zh) * 2017-12-19 2020-07-28 美光科技公司 基于车辆私钥的车辆安全消息
KR102204581B1 (ko) * 2019-10-07 2021-01-20 주식회사 오비고 확장 서비스 프레임워크 내 특정 서비스 모듈의 업데이트 방법 및 이를 사용한 확장 서비스 프레임워크 서버
CN112311799A (zh) * 2020-11-02 2021-02-02 清创网御(合肥)科技有限公司 一种Tbox固件的OTA安全升级方法
CN115225352A (zh) * 2022-06-30 2022-10-21 厦门职行力信息科技有限公司 混合加密方法及系统
KR102579173B1 (ko) * 2023-06-15 2023-09-14 이민웅 차량용 ecu의 가상환경을 제공하는 시뮬레이터 및 이의 제어 방법

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2968250B1 (en) 2013-03-14 2019-06-19 Zafgen, Inc. Methods of treating renal disease and other disorders
KR101519777B1 (ko) * 2014-01-29 2015-05-12 현대자동차주식회사 차량 네트워크 내의 제어기간의 데이터 송신 방법 및 수신 방법
EP3412514B1 (en) 2014-11-12 2019-12-04 Panasonic Intellectual Property Corporation of America Update management method, update management device, and control program
US9923719B2 (en) * 2014-12-09 2018-03-20 Cryptography Research, Inc. Location aware cryptography
DE102015201298A1 (de) * 2015-01-26 2016-07-28 Robert Bosch Gmbh Verfahren zum kryptographischen Bearbeiten von Daten
JP6262681B2 (ja) * 2015-03-26 2018-01-17 Kddi株式会社 管理装置、車両、管理方法、及びコンピュータプログラム
EP3278259B1 (en) * 2015-03-30 2020-12-23 Irdeto B.V. Data protection
US10095634B2 (en) 2015-05-22 2018-10-09 Nxp B.V. In-vehicle network (IVN) device and method for operating an IVN device
US9825918B2 (en) * 2015-05-22 2017-11-21 Nxp B.V. Controller area network (CAN) device and method for operating a CAN device
US9935774B2 (en) * 2015-05-22 2018-04-03 Nxp B.V. Configurable cryptographic controller area network (CAN) device
JP6345157B2 (ja) 2015-06-29 2018-06-20 クラリオン株式会社 車載情報通信システム及び認証方法
JP6197000B2 (ja) * 2015-07-03 2017-09-13 Kddi株式会社 システム、車両及びソフトウェア配布処理方法
US11119757B2 (en) 2015-08-05 2021-09-14 EZ Lynk SEZC System and method for remote ECU reprogramming
US10614640B2 (en) 2015-08-05 2020-04-07 EZ Lynk SEZC System and method for real time wireless ECU monitoring and reprogramming
US11430273B2 (en) 2015-08-05 2022-08-30 EZ Lynk SEZC Apparatus and method for remote ELD monitoring and ECU reprogramming
US11210874B2 (en) 2015-08-05 2021-12-28 EZ Lynk SEZC System and method for calculation and communication of carbon offsets
US10621796B2 (en) 2015-08-05 2020-04-14 EZ Lynk SEZC System and method for real time wireless ECU monitoring and reprogramming
US11210871B2 (en) 2015-08-05 2021-12-28 EZ Lynk SEZC System and method for remote emissions control unit monitoring and reprogramming
US10200371B2 (en) 2015-11-09 2019-02-05 Silvercar, Inc. Vehicle access systems and methods
JP6561811B2 (ja) * 2015-12-09 2019-08-21 株式会社オートネットワーク技術研究所 車載通信装置、車載通信システム及び車両特定処理禁止方法
JP6609199B2 (ja) 2016-03-01 2019-11-20 ルネサスエレクトロニクス株式会社 組込み機器
JP2017156938A (ja) * 2016-03-01 2017-09-07 ヤンマー株式会社 端末装置およびソフトウェア書き換えプログラム
JP2017174111A (ja) * 2016-03-23 2017-09-28 株式会社東芝 車載ゲートウェイ装置、蓄積制御方法およびプログラム
US20170288862A1 (en) * 2016-03-31 2017-10-05 Ubimo Ltd. Securely exchanging lists of values without revealing their full content
US10846075B2 (en) * 2016-03-31 2020-11-24 Bell Holdings (Shenzhen) Technology Co., Ltd Host applications of modular assembly system
WO2017204822A1 (en) * 2016-05-27 2017-11-30 Hewlett-Packard Development Company, L.P. Firmware module encryption
US10470189B2 (en) 2016-06-27 2019-11-05 At&T Intellectual Property I, L.P. Facilitation of efficient software downloads for vehicles
EP3332344B1 (en) * 2016-08-04 2022-04-20 Gintz, Brad Methods for real time wireless ecu monitoring and reprogramming
JP6260067B1 (ja) * 2016-08-09 2018-01-17 Kddi株式会社 管理システム、鍵生成装置、車載コンピュータ、管理方法、及びコンピュータプログラム
US11146401B2 (en) * 2016-08-10 2021-10-12 Ford Global Technologies, Llc Software authentication before software update
US10846076B2 (en) * 2016-10-11 2020-11-24 Barfield, Inc. Remote application update of measurement device field firmware
WO2018070242A1 (ja) * 2016-10-13 2018-04-19 日立オートモティブシステムズ株式会社 車載ゲートウェイ、鍵管理装置
DE102016221108A1 (de) * 2016-10-26 2018-04-26 Volkswagen Aktiengesellschaft Verfahren zum Aktualisieren einer Software eines Steuergeräts eines Fahrzeugs
JP6288219B1 (ja) * 2016-11-18 2018-03-07 Kddi株式会社 通信システム
TWI638561B (zh) * 2016-12-23 2018-10-11 財團法人工業技術研究院 控制系統與控制方法
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
US10652025B2 (en) 2017-07-10 2020-05-12 Micron Technology, Inc. Secure snapshot management for data storage devices
KR102368606B1 (ko) * 2017-07-31 2022-03-02 현대자동차주식회사 효율적인 차량용 리프로그래밍 장치 및 그 제어방법
CN107957877A (zh) * 2017-12-05 2018-04-24 浪潮金融信息技术有限公司 设备固件升级方法及装置、计算机可读存储介质、终端
CN108259465B (zh) * 2017-12-08 2020-05-05 清华大学 一种智能汽车内部网络的认证加密方法
US10871952B2 (en) * 2017-12-20 2020-12-22 Nio Usa, Inc. Method and system for providing secure over-the-air vehicle updates
CN110086755B (zh) * 2018-01-26 2022-06-21 巍乾全球技术有限责任公司 实现物联网服务的方法、应用服务器、物联网设备和介质
US20210075604A1 (en) * 2019-09-06 2021-03-11 STMicroelectronics (Grand Ouest) SAS Key generation method
CN109522026B (zh) * 2018-11-01 2023-02-03 北京汽车集团越野车有限公司 一种数据刷写方法及系统、汽车
KR20200056192A (ko) * 2018-11-14 2020-05-22 현대자동차주식회사 데이터 통신 시스템과 데이터 통신 방법, 서버, 차량
CN109660609B (zh) * 2018-12-07 2019-12-06 北京海泰方圆科技股份有限公司 一种设备识别方法和装置以及存储介质
EP3899911A1 (en) * 2018-12-19 2021-10-27 Telit Communications S.P.A. Systems and methods for managing a trusted application in a computer chip module
JP7334492B2 (ja) * 2019-01-28 2023-08-29 オムロン株式会社 セーフティシステムおよびメンテナンス方法
CN110221852A (zh) * 2019-05-15 2019-09-10 深兰科技(上海)有限公司 一种固件升级方法及装置
CN110134424B (zh) * 2019-05-16 2023-06-06 上海东软载波微电子有限公司 固件升级方法及系统、服务器、智能设备、可读存储介质
US11280284B1 (en) * 2019-05-31 2022-03-22 OTR Performance, Inc. Systems and methods for remotely controlling subsystems including exhaust subsystems of a vehicle
JP7008661B2 (ja) * 2019-05-31 2022-01-25 本田技研工業株式会社 認証システム
US20190325139A1 (en) * 2019-06-28 2019-10-24 Intel Corporation Secure updating of computing system firmware
CN110515640A (zh) * 2019-08-29 2019-11-29 南方电网科学研究院有限责任公司 一种安全芯片的固件升级方法、装置、设备及存储介质
US11520572B2 (en) * 2019-09-13 2022-12-06 Oracle International Corporation Application of scheduled patches
US10997297B1 (en) * 2019-12-06 2021-05-04 Western Digital Technologies, Inc. Validating firmware for data storage devices
KR102436138B1 (ko) * 2019-12-10 2022-08-26 한국전자통신연구원 차량용 이더넷 기반 차량 내부 네트워크를 이용한 차량 부품 교체 방법 및 시스템
CN111124453B (zh) * 2019-12-25 2023-03-31 哈尔滨新中新电子股份有限公司 一种终端设备固件程序升级方法
CN113138775B (zh) * 2020-01-20 2022-11-18 上海交通大学 车载诊断系统固件保护方法及系统
CN111552497B (zh) * 2020-05-12 2023-04-07 飞天诚信科技股份有限公司 一种硬件钱包的固件更新方法及系统
EP3913880A1 (en) 2020-05-19 2021-11-24 Continental Teves AG & Co. OHG Method of and system for secure data export from an automotive engine control unit
CN111901109B (zh) * 2020-08-04 2022-10-04 华人运通(上海)云计算科技有限公司 基于白盒的通信方法、装置、设备和存储介质
CN112188484B (zh) * 2020-09-14 2021-10-26 中标慧安信息技术股份有限公司 适合于传感器网络的安全加密方法
CN112148312A (zh) * 2020-09-15 2020-12-29 中国第一汽车股份有限公司 一种电子控制器的固件升级管理方法、装置、设备和介质
CN112230967B (zh) * 2020-11-19 2024-03-29 成都新易盛通信技术股份有限公司 一种基于传统分区的光模块固件可回退在线升级方法
CN114647836A (zh) * 2020-12-18 2022-06-21 华为技术有限公司 认证方法及装置
CN112612499A (zh) * 2020-12-31 2021-04-06 京东数科海益信息科技有限公司 应用程序升级方法、装置、电子设备及存储介质
US11887411B2 (en) * 2021-01-27 2024-01-30 Amazon Technologies, Inc. Vehicle data extraction service
US11902374B2 (en) 2021-11-29 2024-02-13 Amazon Technologies, Inc. Dynamic vehicle data extraction service
CN115412244B (zh) * 2022-10-31 2023-03-24 中孚信息股份有限公司 一种加密固件在线更新方法、系统及设备
CN116455884B (zh) * 2023-04-04 2023-12-29 河南驰诚电气股份有限公司 一种无线级联方式远程调试和升级方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018080020A1 (ko) * 2016-10-25 2018-05-03 주식회사 미래 테크놀로지 오티피를 이용한 브이투엑스통신 시스템
CN111466094A (zh) * 2017-12-19 2020-07-28 美光科技公司 基于车辆私钥的车辆安全消息
US11618394B2 (en) 2017-12-19 2023-04-04 Micron Technology, Inc. Vehicle secure messages based on a vehicle private key
KR102204581B1 (ko) * 2019-10-07 2021-01-20 주식회사 오비고 확장 서비스 프레임워크 내 특정 서비스 모듈의 업데이트 방법 및 이를 사용한 확장 서비스 프레임워크 서버
US11175903B2 (en) 2019-10-07 2021-11-16 Obigo Inc. Method for updating specific update-required service module in extension service framework and extension service framework server using the same
CN110912680A (zh) * 2019-11-26 2020-03-24 福建汉特云智能科技有限公司 一种提高车况数据安全性的数据传输方法及存储介质
CN110912680B (zh) * 2019-11-26 2023-06-27 福建汉特云智能科技有限公司 一种提高车况数据安全性的数据传输方法及存储介质
CN112311799A (zh) * 2020-11-02 2021-02-02 清创网御(合肥)科技有限公司 一种Tbox固件的OTA安全升级方法
CN112311799B (zh) * 2020-11-02 2022-12-20 清创网御(合肥)科技有限公司 一种Tbox固件的OTA安全升级方法
CN115225352A (zh) * 2022-06-30 2022-10-21 厦门职行力信息科技有限公司 混合加密方法及系统
CN115225352B (zh) * 2022-06-30 2024-04-23 厦门职行力信息科技有限公司 混合加密方法及系统
KR102579173B1 (ko) * 2023-06-15 2023-09-14 이민웅 차량용 ecu의 가상환경을 제공하는 시뮬레이터 및 이의 제어 방법

Also Published As

Publication number Publication date
US20150180840A1 (en) 2015-06-25

Similar Documents

Publication Publication Date Title
KR20150074414A (ko) 펌웨어 업그레이드 방법 및 그 시스템
US10965450B2 (en) In-vehicle networking
CN109257374B (zh) 安全控制方法、装置和计算机设备
US10419220B2 (en) Management device, key generating device, vehicle, maintenance tool, management system, management method, and computer program
US20200177398A1 (en) System, certification authority, vehicle-mounted computer, vehicle, public key certificate issuance method, and program
EP3403246B1 (en) A device and method for collecting user-based insurance data in vehicles
US11201736B2 (en) Management device, management system, key generation device, key generation system, key management system, vehicle, management method, key generation method, and computer program
US11265170B2 (en) Vehicle information collection system, vehicle-mounted computer, vehicle information collection device, vehicle information collection method, and computer program
KR101673310B1 (ko) 인증서 기반의 차량 보안 접속 제어 방법 및 그를 위한 장치 및 시스템
US9577997B2 (en) Authentication system and authentication method
CN109314639B (zh) 管理系统、密钥生成装置、车载计算机、管理方法以及记录介质
EP2681901B1 (en) Vehicle network system
US9992178B2 (en) Method, apparatus and system for dynamically controlling secure vehicle communication based on ignition
CN110800249B (zh) 维护系统以及维护方法
JP6178390B2 (ja) 管理装置、管理システム、車両、管理方法、及びコンピュータプログラム
US10673621B2 (en) Management device, vehicle, management method, and computer program
US9923722B2 (en) Message authentication library
CN113439425B (zh) 报文传输方法及装置
WO2022160124A1 (zh) 一种服务授权管理方法及装置
JP2018050255A (ja) 車両情報収集システム、データ保安装置、車両情報収集方法、及びコンピュータプログラム
CN116456336A (zh) 一种外部设备接入安全认证方法、系统、汽车、设备及存储介质
CN116155579A (zh) 一种安全通信方法、系统、存储介质及车辆
Mokhadder et al. Evaluation of vehicle system performance of an SAE J1939-91C network security implementation
JP2018057044A (ja) 車両情報収集システム、データ保安装置、車両情報収集装置、車両情報収集方法、及びコンピュータプログラム
CN116095635A (zh) 一种基于DoIP的车辆安全诊断通信方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal