KR20220154879A - 차량 제어 장치 및 방법 - Google Patents

차량 제어 장치 및 방법 Download PDF

Info

Publication number
KR20220154879A
KR20220154879A KR1020210062373A KR20210062373A KR20220154879A KR 20220154879 A KR20220154879 A KR 20220154879A KR 1020210062373 A KR1020210062373 A KR 1020210062373A KR 20210062373 A KR20210062373 A KR 20210062373A KR 20220154879 A KR20220154879 A KR 20220154879A
Authority
KR
South Korea
Prior art keywords
host
secure boot
result
boot
cycle
Prior art date
Application number
KR1020210062373A
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 KR1020210062373A priority Critical patent/KR20220154879A/ko
Priority to US17/484,646 priority patent/US11893119B2/en
Publication of KR20220154879A publication Critical patent/KR20220154879A/ko

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/575Secure boot
    • 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/023Electric 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 transmission of signals between vehicle parts or subsystems
    • 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/44Program or device 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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • 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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

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)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mechanical Engineering (AREA)
  • Power Engineering (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 일 실시예에 따른 차량 제어 장치는 차량 제어기의 구동 어플리케이션을 포함하는 호스트 및 n차 사이클의 시큐어 부트의 결과를 기반으로 상기 호스트의 부팅을 허용하는 메시지를 상기 호스트로 전송할지 여부를 결정하고, 상기 메시지가 상기 호스트로 전송되는지 여부에 따라 n+1차 사이클에서 상기 시큐어 부트의 수행 여부를 결정할 수 있다.

Description

차량 제어 장치 및 방법{APPARATUS AND METHOD FOR CONTROLLING VEHICLE}
본 발명은 차량 제어 장치 및 방법에 관한 것이다.
최근 차량 제어기를 해킹하는 사례가 증가하면서, 법규적으로 제어기의 보안 강화를 위한 기술이 개발되고 있다. 대표적인 보안 강화 기술은 제어기에 하드 웨어 보안 모듈(Hardware Security Module)을 적용하는 것이다.
하드웨어 보안 모듈은 차량 제어기 내에 별도의 보안 코어(Secure Core) 및 보안 플래쉬/램(Flash/Ram)을 포함하여 암호화 키를 저장할 뿐만 아니라, 암호화 키를 활용한 크립토 알고리즘 및 보안 기능을 수행할 수 있다. 뿐만 아니라, 하드웨어 보안 모듈은 시큐어 부트(Secure boot) 기술을 지원한다. 시큐어 부트는 차량 제어기 부팅 시 하드웨어 보안 모듈이 먼저 부팅된 후 제어기 호스트(Host)의 무결성을 검증하여 제어기 호스트가 변조되었는지 검증하고, 제어기 호스트 부팅을 허용 또는 불허하는 기술이다.
그러나, 하드웨어 보안 모듈이 제어기의 호스트에 대한 무결성을 검증하기에 기본적인 부팅시간이 증가하며, 제어기 호스트의 주소값을 통해 특정 하나의 영역을 검증하게 되어, 차량의 동작과 관련된 제어기의 호스트 무결성이 검증되지 않는 경우 제어기의 부팅이 불허되어, 차량이 동작이 중지되는 한계가 있다.
본 발명의 일 목적은 차량 제어기의 부팅시간을 단축시키고, 제어기의 특정 및 보안 기능을 분할하여 제어기 호스트 무결성을 검증할 수 있는 차량 제어 장치 및 방법을 제공하는데 있다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재들로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 따른 차량 제어 장치는 차량 제어기의 구동 어플리케이션을 포함하는 호스트 및 n차 사이클의 시큐어 부트의 결과를 기반으로 상기 호스트의 부팅을 허용하는 메시지를 상기 호스트로 전송할지 여부를 결정하고, 상기 메시지가 상기 호스트로 전송되는지 여부에 따라 n+1차 사이클에서 상기 시큐어 부트의 수행 여부를 결정하는 하드웨어 보안 모듈을 포함할 수 있다.
상기 하드웨어 보안 모듈은 상기 n차 사이클의 시큐어 부트의 결과가 성공인 경우, 상기 호스트의 부팅을 허용하는 메시지를 상기 호스트로 전송하고, 상기 n+1차 사이클에서 상기 시큐어 부트를 수행할 수 있다.
상기 호스트는 상기 메시지를 수신한 이후 부팅할 수 있다.
상기 하드웨어 보안 모듈은 복수개의 검증 영역으로 분할하여 상기 시큐어 부트를 수행할 수 있다.
상기 하드웨어 보안 모듈은 상기 검증 영역 별로 서로 상이한 부트 키 값, 상기 검증 영역의 주소값 및 부트 메시지 인증 코드(Message Authentication Code)를 할당하고, 상기 검증 영역 별 시큐어 부트 결과를 산출할 수 있다.
상기 하드웨어 보안 모듈은 상기 검증 영역, 상기 검증 영역 별 상기 부트 키 값, 상기 검증 영역의 주소값 및 상기 부트 메시지 인증 코드, 상기 검증 영역 별 상기 시큐어 부트의 결과를 테이블로 저장할 수 있다.
상기 하드웨어 보안 모듈은 상기 시큐어 부트 결과를 상기 호스트로 전송할 수 있다.
상기 하드웨어 보안 모듈 및 상기 호스트 중 어느 하나 이상은 상기 시큐어 부트 결과가 상기 호스트로 전송되면, 상기 복수개의 검증 영역 별 상기 시큐어 부트의 결과에 상응하여 미리 저장된 동작을 수행할 수 있다.
상기 하드웨어 보안 모듈은 상기 n차 사이클의 시큐어 부트의 결과가 실패인 경우, 상기 호스트의 부팅을 허용하는 메시지를 상기 호스트로 전송하지 않고, 상기 n+1차 사이클에서 상기 시큐어 부트를 수행하지 않는다.
본 발명의 일 실시예에 따른 차량 제어 방법은 n차 사이클의 시큐어 부트의 결과를 기반으로 호스트의 부팅을 허용하는 메시지를 하드웨어 보안 모듈로부터 상기 호스트로 전송할지 여부를 결정하는 단계 및 상기 메시지가 상기 호스트로 전송되는지 여부에 따라 상기 하드웨어 보안 모듈이 n+1차 사이클에서 상기 시큐어 부트의 수행 여부를 결정하는 단계를 포함할 수 있다.
상기 n차 사이클의 시큐어 부트의 결과가 성공인 경우, 상기 호스트의 부팅을 허용하는 메시지를 상기 호스트로 전송하는 단계 및 상기 n+1차 사이클에서 상기 시큐어 부트를 수행하는 단계를 포함할 수 있다.
상기 호스트는 상기 메시지를 수신한 이후 부팅하는 단계를 더 포함할 수 있다.
상기 시큐어 부트를 수행하는 단계는 복수개의 검증 영역으로 분할하여 상기 시큐어 부트를 수행할 수 있다.
상기 검증 영역 별로 서로 상이한 부트 키 값, 상기 검증 영역의 주소값 및 부트 메시지 인증 코드(Message Authentication Code)를 할당하고, 상기 검증 영역 별 시큐어 부트 결과를 산출하는 단계를 포함할 수 있다.
상기 검증 영역, 상기 검증 영역 별 상기 부트 키 값, 상기 검증 영역의 주소값 및 상기 부트 메시지 인증 코드, 상기 검증 영역 별 상기 시큐어 부트의 결과를 테이블로 저장하는 단계를 더 포함할 수 있다.
상기 시큐어 부트 결과를 상기 호스트로 전송하는 단계를 더 포함할 수 있다.
상기 시큐어 부트 결과가 상기 호스트로 전송되면, 상기 복수개의 검증 영역 별 상기 시큐어 부트의 결과에 상응하여 미리 저장된 동작을 수행할 수 있다.
상기 n차 사이클의 시큐어 부트의 결과가 실패인 경우, 상기 호스트의 부팅을 허용하는 메시지를 상기 호스트로 전송하지 않고, 상기 n+1차 사이클에서 상기 시큐어 부트를 수행하지 않는다.
본 발명의 일 실시예에 따른 차량 제어 장치 및 방법은 하드웨어 보안 모듈이 시큐어 부트된 이후 차량 제어기 호스트의 부팅을 허용함으로써, 차량 제어기의 부팅시간을 단축시킬 수 있다. 아울러, 시큐어 부트 시 검증 영역을 분할시키기 때문에 각 검증 영역에 따른 해킹 피해를 최소화시킬 수 있다. 아울러, 차량 제어 장치는 차량 제어기의 특정 영역에서 시큐어 부트가 실패된 경우 사용자에게 안내하여 사용자로 하여금 사전에 문제 발생을 인지하고 대응하도록 할 수 있다.
도 1은 본 발명의 일 실시예에 따른 차량 제어 장치의 구성을 나타낸 구성도이다.
도 2는 본 발명의 일 실시예에 따른 차량 제어 장치의 동작을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따라 시큐어 부트의 검증 영역의 상세 정보를 개략적으로 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따라 시큐어 부트 결과에 따른 호스트 및 HSM의 동작을 개략적으로 나타낸 도면이다.
도 5은 본 발명의 일 실시예에 따라 n+1차 시큐어 부트 결과가 실패인 경우 차량 제어 장치의 동작을 나타낸 도면이다.
도 6은 본 발명의 다른 실시예에 따라 n+1차 시큐어 부트 결과가 실패인 경우 차량 제어 장치의 동작을 나타낸 도면이다.
도 7은 본 발명의 실시예에 따라 n차 사이클에서 시큐어 부트 결과가 실패인 경우 차량 제어 장치의 동작을 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 방법을 실행하는 컴퓨팅 시스템의 구성을 도시한 도면이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명은 생략한다.
본 발명의 실시예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 차량 제어 장치의 구성을 나타낸 구성도이다.
도 1에 도시된 바와 같이, 차량 제어 장치(100)는 호스트(110) 및 하드웨어 보안 모듈(120)을 포함할 수 있다.
호스트(110)는 부트 로더(boot loader)와 차량 제어기의 구동 어플리케이션(application)을 포함할 수 있다.
하드웨어 보안 모듈(120, HSM)은 n차 사이클의 시큐어 부트(Secure boot) 결과를 기반으로 호스트(110)의 부팅을 허용하는 메시지를 호스트로 전송할지 여부를 결정하고, 메시지가 호스트(110)로 전송되는지 여부에 따라 n+1차 사이클에서 시큐어 부트의 수행 여부를 결정할 수 있다.
호스트(110) 및 하드웨어 보안 모듈(120)의 보다 구체적인 동작은 도 2를 참조하여 설명한다.
도 2는 본 발명의 일 실시예에 따른 차량 제어 장치의 동작을 나타낸 도면이다.
도 2에 도시된 바와 같이, 하드웨어 보안 모듈(120)이 부팅된 후(S110), n차 사이클에서 시큐어 부트를 통해 호스트(110)의 무결성이 검증된 경우, 즉, 시큐어 부트 결과가 성공(호스트(110)의 무결성 검증이 성공)인 경우, 호스트(110)의 부팅을 허용하는 메시지를 호스트(110)로 전송할 수 있다(S120). 호스트(110)는 부팅을 허용하는 메시지를 수신하는 경우, 부팅을 수행할 수 있다(S130).
하드웨어 보안 모듈(120)은 호스트(110)의 부팅을 허용하는 메시지를 전송한 후, 시큐어 부트를 수행할 수 있다(S140). 하드웨어 보안 모듈(120)은 n+1 사이클에서의 시큐어 부트의 결과를 호스트(110)로 전송할 수 있다(S150). 시큐어 부트의 결과 성공은 호스트(110)의 무결성 검증이 성공함 의미할 수 있으며, 시큐어 부트의 결과 실패는 호스트(110)의 무결성 검증이 실패함을 의미할 수 있다. S140 및 S150의 보다 구체적인 설명은 도 3을 참조한다.
도 3은 본 발명의 일 실시예에 따라 시큐어 부트의 검증 영역의 상세 정보를 개략적으로 나타낸 도면이다.
도 3에 도시된 바와 같이, 시큐어 부트의 검증 영역은 부트 로더 영역 및 어플리케이션 영역을 포함할 수 있다. 부트 로더 영역은 구체적으로 부팅 시퀀스 코드를 포함하는 제1 영역, 리프로그래밍 코드를 포함하는 제2 영역, 각종 인증서 및 공개키를 포함하는 제3 영역으로 나누어질 수 있다. 또한, 어플리케이션 영역은 보안키를 사용하는 어플리케이션 영역을 포함하는 제4 영역과, 일반 어플리케이션(예, 보안키를 미사용하는 어플리케이션) 영역을 포함하는 제5 영역을 포함할 수 있다.
하드웨어 보안 모듈(120)은 상술한 제1 영역 내지 제5 영역 각각에 서로 다른 부트 키 값, 검증 영역의 주소값, 부트 메시지 인증 코드(MAC)를 할당하고, 각 영역 별 시큐어 부트 결과를 산출할 수 있다. 아울러, 하드웨어 보안 모듈(120)은 검증 영역, 검증 영역 별 부트 키 값, 검증 영역의 주소값 및 부트 메시지 인증 코드(MAC), 검증 영역 별 시큐어 부트 결과를 도3의 테이블로 저장할 수 있다.
호스트(110)는 및 하드웨어 보안 모듈(120)은 시큐어 부트 결과가 호스트(110)로 전송되면, 복수개의 검증 영역(제1 영역 내지 제5 영역) 별 시큐어 부트의 결과에 상응하여 미리 저장된 동작을 수행할 수 있다(S160, S170). S160 및 S170의 보다 구체적인 설명은 도 4를 참조한다.
도 4는 본 발명의 일 실시예에 따라 n+1차 시큐어 부트 결과에 따른 호스트 및 HSM의 동작을 개략적으로 나타낸 도면이다.
S150에서 하드웨어 보안 모듈(120)이 n+1차 사이클에서의 시큐어 부트의 결과를 호스트(110)로 전송하면, 호스트(110)는 본 발명의 일 실시예에 따라 도 4에 도시된 바와 같이 시큐어 부트의 결과에 상응하여 복수의 영역(제1 영역 내지 제5 영역) 별로 미리 정해진 동작을 수행할 수 있다.
호스트(110)는 제1 영역에서 n+1차 사이클에서의 시큐어 부트의 결과가 성공인 경우, n+2차 사이클에서 정상적으로 부팅하도록 할 수 있다. 그러나, 호스트(110)는 제1 영역에서 n+1차 사이클에서의 시큐어 부트의 결과가 실패인 경우, 사용자에게 제1 영역의 시큐어 부트 결과가 실패임을 안내할 수 있다. 실시예에 따르면, 호스트(110)는 시큐어 부트의 결과를 사용자가 인지할 수 있는 메시지로 출력할 수 있다. 메시지는 차량 내 표시부(내비게이션의 표시부, 경고등)등을 통해 시각적 또는 청각적으로 출력될 수 있다. 아울러, 하드웨어 보안 모듈(120)은 제1 영역에서 n+1차 사이클에서의 시큐어 부트 결과가 실패인 경우, n+2차 사이클에서 제1 영역의 시큐어 부트를 수행하지 않는다.
호스트(110)는 제2 영역에서 n+1차 사이클에서의 시큐어 부트의 결과가 실패인 경우, 리프로그래밍이 정상으로 동작하도록 할 수 있다. 그러나, 호스트(110)는 제2 영역에서 n+1차 사이클에서의 시큐어 부트의 결과가 실패인 경우, 사용자에게 제2 영역의 시큐어 부트 결과가 실패임을 안내할 수 있다. 실시예에 따르면, 호스트(110)는 시큐어 부트의 결과를 사용자가 인지할 수 있는 메시지로 출력할 수 있다. 메시지는 차량 내 표시부(내비게이션의 표시부, 경고등)등을 통해 시각적 또는 청각적으로 출력될 수 있다.
또한, 호스트(110)는 제2 영역에서 n+1차 사이클에서의 시큐어 부트의 결과가 성공인 경우, 진단 장치(차량의 상태를 진단하는 장치)가 프로그래밍 세션으로 진입하는 것을 금지할 수 있다. 아울러, 하드웨어 보안 모듈(120)은 제2 영역에서 n+1차 사이클에서의 시큐어 부트 결과가 실패인 경우, n+2차 사이클에서 제2 영역의 시큐어 부트를 수행하지 않는다.
호스트(110)는 제3 영역에서 n+1차 사이클에서의 시큐어 부트의 결과가 성공인 경우, 인증서 및 공개키의 사용을 허용할 수 있다. 그러나, 호스트(110)는 제3 영역에서 n+1차 사이클에서의 시큐어 부트의 결과가 실패인 경우, 사용자에게 제3 영역의 시큐어 부트 결과가 실패임을 안내할 수 있다. 실시예에 따르면, 호스트(110)는 시큐어 부트의 결과를 사용자가 인지할 수 있는 메시지로 출력할 수 있다. 메시지는 차량 내 표시부(내비게이션의 표시부, 경고등)등을 통해 시각적 또는 청각적으로 출력될 수 있다.
또한, 호스트(110)는 제3 영역에서 n+1차 사이클에서의 시큐어 부트의 결과가 실패인 경우, 인증서 및 공개키를 사용하는 어플리케이션의 호출이 불가하도록 동작할 수 있다. 아울러, 하드웨어 보안 모듈(120)은 제3 영역에서 n+1차 사이클에서의 시큐어 부트 결과가 실패인 경우, n+2차 사이클에서 제3 영역의 시큐어 부트를 수행하지 않는다.
호스트(110)는 제4 영역에서 n+1차 사이클에서의 시큐어 부트의 결과가 성공인 경우, 보안키 요청이 요구되는 어플리케이션이 정상적으로 수행되도록 동작할 수 있다. 여기서, 보안키는 하드웨어 보안 모듈(120)에 저장된 대칭키 및 개인키 등을 포함할 수 있다. 그러나, 호스트(110)는 제4 영역에서 n+1차 사이클에서의 시큐어 부트 결과가 실패인 경우, 사용자에게 제4 영역의 시큐어 부트 결과가 실패임을 안내할 수 있다. 실시예에 따르면, 호스트(110)는 시큐어 부트의 결과를 사용자가 인지할 수 있는 메시지로 출력할 수 있다. 메시지는 차량 내 표시부(내비게이션의 표시부, 경고등)등을 통해 시각적 또는 청각적으로 출력될 수 있다.
아울러, 하드웨어 보안 모듈(120)은 제4 영역에서 n+1차 사이클에서의 시큐어 부트 결과가 실패인 경우, 하드웨어 보안 모듈(120) 내 저장된 보안키의 사용을 불허할 수 있다. 따라서, 호스트(110)는 하드웨어 보안 모듈(120)로부터 하드웨어 보안 모듈(120) 내 저장된 보안키의 사용이 불허됨에 따라 보안키 사용이 요구되는 어플리케이션이 정상적으로 수행되도록 동작할 수 없다.
호스트(110)는 제5 영역에서 n+1차 사이클에서의 시큐어 부트의 결과가 성공인 경우, 일반 어플리케이션(보안키 사용이 요구되지 않는 어플리케이션)이 정상적으로 수행되도록 동작할 수 있다. 그러나, 호스트(110)는 제5 영역에서 n+1차 사이클에서의 시큐어 부트 결과가 실패인 경우, 사용자에게 제5 영역의 시큐어 부트 결과가 실패임을 안내할 수 있다. 실시예에 따르면, 호스트(110)는 시큐어 부트의 결과를 사용자가 인지할 수 있는 메시지로 출력할 수 있다. 메시지는 차량 내 표시부(내비게이션의 표시부, 경고등)등을 통해 시각적 또는 청각적으로 출력될 수 있다.
아울러, 하드웨어 보안 모듈(120)은 제5 영역의 n+1차 사이클에서 시큐어 부트의 결과가 실패하여, 시큐어 부트의 결과가 실패인 횟수가 소정 횟수를 초과하거나, 차량 주행과 관련된 어플리케이션에 대해 시큐어 부트가 실패한 경우, n+2차 사이클에서 제5 영역의 시큐어 부트를 수행하지 않는다.
따라서, 본 발명의 실시예에 따르면, 시큐어 부트의 결과가 실패인 경우, 호스트(110)의 모든 동작을 중지시키는 것이 아니라, 검증 영역 별로 시큐어 부트에 따라 미리 정해진 동작을 수행하도록 함으로써, 최소한의 기능은 동작하도록 할 수 있고, 시큐어 부트의 결과를 운전자가 인지하도록 할 수 있다.
도 5은 본 발명의 일 실시예에 따라 n+1차 사이클에서 시큐어 부트 결과가 실패인 경우 차량 제어 장치의 동작을 나타낸 도면이다.
도 5에 도시된 바와 같이, 하드웨어 보안 모듈(120)이 부팅된 후(S210), n차 사이클에서 시큐어 부트를 통해 호스트(110)의 무결성이 검증된 경우, 즉, 시큐어 부트 결과가 성공인 경우, 호스트(110)의 부팅을 허용하는 메시지를 호스트(110)로 전송할 수 있다(S220). 호스트(110)는 부팅을 허용하는 메시지를 수신하는 경우, 부팅을 수행할 수 있다(S230).
하드웨어 보안 모듈(120)은 호스트(110)의 부팅을 허용하는 메시지를 전송한 후, 시큐어 부트를 수행할 수 있다(S240). S240에서 하드웨어 보안 모듈(120)은 도 3에 도시된 복수의 영역(제1 영역 내지 제5 영역)에서 시큐어 부트를 수행할 수 있다. S240에서 복수의 영역에서 시큐어 부트 결과가 모두 실패인 경우, 하드웨어 보안 모듈(120)은 n+1차 사이클에서의 시큐어 부트의 결과(실패)를 호스트(110)로 전송할 수 있다(S250).
호스트(110)는 복수의 영역 에서 n+1차 사이클에서 시큐어 부트의 결과가 모두 실패인 경우, 도 4에 도시된 바와 같이 사용자에게 n+1차 사이클에서 시큐어 부트의 결과가 모두 실패임을 안내할 수 있다(S260).
호스트(110)는 진단 장치(차량의 상태를 진단하는 장치, 200)로부터 제어기의 리프로그래밍을 요청받는 경우(S270), 부정 응답을 생성하여 리프로그래밍 세션으로 진입하는 것을 금지할 수 있다(S280). 본 발명의 실시예에 따르면, S260에서 호스트(110)는 n+1차 사이클에서 시큐어 부트의 결과가 모두 실패였으므로 호스트(110)의 부트로더 리프로그래밍 코드가 이미 해킹되었다고 판단할 수 있으며, 호스트(110)는 부정 응답 코드를 생성하여 진단 장치(200)로 출력할 수 있다.
도 6은 본 발명의 다른 실시예에 따라 시큐어 부트 결과가 실패인 경우 차량 제어 장치의 동작을 나타낸 도면이다. 도 6의 동작은 도 5의 S260 이후 수행될 수 있다.
도 6에 도시된 바와 같이, 호스트(110)는 진단 장치(200)로부터 인증서 사용 또는 서명 검증을 요청받는 경우(S290), 인증서 및 공개키를 사용하는 어플리케이션의 호출을 금지하는 부정 응답 코드를 생성하여 진단 장치(200)로 출력할 수 있다(S300).
또한, 호스트(110)는 진단 장치(200)로부터 암호화 메시지 수신하는 경우(S310), 하드웨어 보안 모듈(120)에 저장된 보안키를 이용하여 복호화하기 위해 하드웨어 보안 모듈(120)로 보안키를 이용한 복호화를 요청할 수 있다(S320). 하드웨어 보안 모듈(120)은 시큐어 부트의 결과가 실패이므로 보안키의 사용을 요청하는 어플리케이션이 해킹 또는 변조되었다고 판단할 수 있으며, 부정 응답 코드를 생성하고, 호스트(110)로 전송할 수 있다(S330).
도 7은 본 발명의 실시예에 따라 n차 사이클에서 시큐어 부트 결과가 실패인 경우 차량 제어 장치의 동작을 나타낸 도면이다.
도 7에 도시된 바와 같이, 하드웨어 보안 모듈(120)이 부팅된 후(S410), n차 사이클에서 시큐어 부트를 통해 호스트(110)의 무결성이 검증되지 않은 경우, 즉, 시큐어 부트 결과가 실패(호스트(110)의 무결성 검증이 성공)인 경우, 호스트(110)의 부팅을 허용하는 메시지를 호스트(110)로 전송하지 않고, 호스트(110)의 부팅을 불허할 수 있다(S420). 호스트(110)는 호스트(110)의 부팅을 허용하는 메시지가 수신되지 않으면, 부팅을 수행하지 않는다(S430). 따라서, 하드웨어 보안 모듈(120)은 n차 사이클에서 시큐어 부트가 실패한 경우, n+1차 사이클에서 시큐어 부트를 수행하지 않는다.
도 8은 본 발명의 일 실시예에 따른 방법을 실행하는 컴퓨팅 시스템의 구성을 도시한 도면이다.
도 8을 참조하면, 컴퓨팅 시스템(1000)은 버스(1200)를 통해 연결되는 적어도 하나의 프로세서(1100), 메모리(1300), 사용자 인터페이스 입력 장치(1400), 사용자 인터페이스 출력 장치(1500), 스토리지(1600), 및 네트워크 인터페이스(1700)를 포함할 수 있다.
프로세서(1100)는 중앙 처리 장치(CPU) 또는 메모리(1300) 및/또는 스토리지(1600)에 저장된 명령어들에 대한 처리를 실행하는 반도체 장치일 수 있다. 메모리(1300) 및 스토리지(1600)는 다양한 종류의 휘발성 또는 불휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(1300)는 ROM(Read Only Memory,1310) 및 RAM(Random Access Memory,1320)을 포함할 수 있다.
따라서, 본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서(1100)에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM과 같은 저장 매체(즉, 메모리(1300) 및/또는 스토리지(1600))에 상주할 수도 있다. 예시적인 저장 매체는 프로세서(1100)에 커플링되며, 그 프로세서(1100)는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서(1100)와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다.
따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
차량 제어 장치 100
호스트 110
하드웨어 보안 모듈 120

Claims (18)

  1. 차량 제어기의 구동 어플리케이션을 포함하는 호스트; 및
    n차 사이클의 시큐어 부트의 결과를 기반으로 상기 호스트의 부팅을 허용하는 메시지를 상기 호스트로 전송할지 여부를 결정하고, 상기 메시지가 상기 호스트로 전송되는지 여부에 따라 n+1차 사이클에서 상기 시큐어 부트의 수행 여부를 결정하는 하드웨어 보안 모듈을 포함하는 차량 제어 장치.
  2. 청구항 1에 있어서,
    상기 하드웨어 보안 모듈은
    상기 n차 사이클의 시큐어 부트의 결과가 성공인 경우, 상기 호스트의 부팅을 허용하는 메시지를 상기 호스트로 전송하고, 상기 n+1차 사이클에서 상기 시큐어 부트를 수행하는 차량 제어 장치.
  3. 청구항 1에 있어서,
    상기 호스트는
    상기 메시지를 수신한 이후 부팅하는 차량 제어 장치.
  4. 청구항 2에 있어서,
    상기 하드웨어 보안 모듈은
    복수개의 검증 영역으로 분할하여 상기 시큐어 부트를 수행하는 차량 제어 장치.
  5. 청구항 4에 있어서,
    상기 하드웨어 보안 모듈은
    상기 검증 영역 별로 서로 상이한 부트 키 값, 상기 검증 영역의 주소값 및 부트 메시지 인증 코드(Message Authentication Code)를 할당하고, 상기 검증 영역 별 시큐어 부트 결과를 산출하는 차량 제어 장치.
  6. 청구항 5에 있어서,
    상기 하드웨어 보안 모듈은
    상기 검증 영역, 상기 검증 영역 별 상기 부트 키 값, 상기 검증 영역의 주소값 및 상기 부트 메시지 인증 코드, 상기 검증 영역 별 상기 시큐어 부트의 결과를 테이블로 저장하는 차량 제어 장치.
  7. 청구항 5에 있어서,
    상기 하드웨어 보안 모듈은
    상기 시큐어 부트 결과를 상기 호스트로 전송하는 차량 제어 장치.
  8. 청구항 7에 있어서,
    상기 하드웨어 보안 모듈 및 상기 호스트 중 어느 하나 이상은
    상기 시큐어 부트 결과가 상기 호스트로 전송되면, 상기 복수개의 검증 영역 별 상기 시큐어 부트의 결과에 상응하여 미리 저장된 동작을 수행하는 차량 제어 장치.
  9. 청구항 1에 있어서,
    상기 하드웨어 보안 모듈은
    상기 n차 사이클의 시큐어 부트의 결과가 실패인 경우, 상기 호스트의 부팅을 허용하는 메시지를 상기 호스트로 전송하지 않고, 상기 n+1차 사이클에서 상기 시큐어 부트를 수행하지 않는 차량 제어 장치.
  10. n차 사이클의 시큐어 부트의 결과를 기반으로 호스트의 부팅을 허용하는 메시지를 하드웨어 보안 모듈로부터 상기 호스트로 전송할지 여부를 결정하는 단계; 및
    상기 메시지가 상기 호스트로 전송되는지 여부에 따라 상기 하드웨어 보안 모듈이 n+1차 사이클에서 상기 시큐어 부트의 수행 여부를 결정하는 단계를 포함하는 차량 제어 방법.
  11. 청구항 10에 있어서,
    상기 n차 사이클의 시큐어 부트의 결과가 성공인 경우,
    상기 호스트의 부팅을 허용하는 메시지를 상기 호스트로 전송하는 단계; 및
    상기 n+1차 사이클에서 상기 시큐어 부트를 수행하는 단계를 포함하는 차량 제어 방법.
  12. 청구항 10에 있어서,
    상기 호스트는 상기 메시지를 수신한 이후 부팅하는 단계를 더 포함하는 차량 제어 방법.
  13. 청구항 11에 있어서,
    상기 시큐어 부트를 수행하는 단계는
    복수개의 검증 영역으로 분할하여 상기 시큐어 부트를 수행하는 차량 제어 방법.
  14. 청구항 13에 있어서,
    상기 검증 영역 별로 서로 상이한 부트 키 값, 상기 검증 영역의 주소값 및 부트 메시지 인증 코드(Message Authentication Code)를 할당하고, 상기 검증 영역 별 시큐어 부트 결과를 산출하는 단계를 포함하는 차량 제어 방법.
  15. 청구항 14에 있어서,
    상기 검증 영역, 상기 검증 영역 별 상기 부트 키 값, 상기 검증 영역의 주소값 및 상기 부트 메시지 인증 코드, 상기 검증 영역 별 상기 시큐어 부트의 결과를 테이블로 저장하는 단계를 더 포함하는 차량 제어 방법.
  16. 청구항 14에 있어서,
    상기 시큐어 부트 결과를 상기 호스트로 전송하는 단계를 더 포함하는 차량 제어 방법.
  17. 청구항 16에 있어서,
    상기 시큐어 부트 결과가 상기 호스트로 전송되면, 상기 복수개의 검증 영역 별 상기 시큐어 부트의 결과에 상응하여 미리 저장된 동작을 수행하는 차량 제어 방법.
  18. 청구항 10에 있어서,
    상기 n차 사이클의 시큐어 부트의 결과가 실패인 경우,
    상기 호스트의 부팅을 허용하는 메시지를 상기 호스트로 전송하지 않고, 상기 n+1차 사이클에서 상기 시큐어 부트를 수행하지 않는 차량 제어 방법.
KR1020210062373A 2021-05-14 2021-05-14 차량 제어 장치 및 방법 KR20220154879A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210062373A KR20220154879A (ko) 2021-05-14 2021-05-14 차량 제어 장치 및 방법
US17/484,646 US11893119B2 (en) 2021-05-14 2021-09-24 Apparatus and method for controlling vehicle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210062373A KR20220154879A (ko) 2021-05-14 2021-05-14 차량 제어 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20220154879A true KR20220154879A (ko) 2022-11-22

Family

ID=83997829

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210062373A KR20220154879A (ko) 2021-05-14 2021-05-14 차량 제어 장치 및 방법

Country Status (2)

Country Link
US (1) US11893119B2 (ko)
KR (1) KR20220154879A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230073884A1 (en) * 2021-09-09 2023-03-09 GM Global Technology Operations LLC Method and system to perform a secure boot procedure using a multi-stage security verification in a microcontroller of a vehicle

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506380B2 (en) * 2005-01-14 2009-03-17 Microsoft Corporation Systems and methods for boot recovery in a secure boot process on a computer with a hardware security module
US9959225B2 (en) * 2013-01-31 2018-05-01 Mitsubishi Electric Corporation Computer apparatus and control method of computer apparatus
US9779247B2 (en) * 2015-05-29 2017-10-03 GM Global Technology Operations LLC Boot control systems and methods for vehicles
US10177910B2 (en) * 2016-08-31 2019-01-08 Microsoft Technology Licensing, Llc Preserving protected secrets across a secure boot update
US10242197B2 (en) * 2016-09-23 2019-03-26 Intel Corporation Methods and apparatus to use a security coprocessor for firmware protection
KR101887974B1 (ko) * 2016-12-01 2018-08-13 현대오트론 주식회사 엔진제어기의 안전부팅을 위한 시스템 및 방법

Also Published As

Publication number Publication date
US20220366053A1 (en) 2022-11-17
US11893119B2 (en) 2024-02-06

Similar Documents

Publication Publication Date Title
US6615355B2 (en) Method and apparatus for protecting flash memory
US7711942B2 (en) Computer security system and method
CN113434853B (zh) 一种将固件烧录至存储设备的方法及控制器
US20020069316A1 (en) Method and apparatus for protecting flash memory
TW202132973A (zh) 系統晶片及其操作方法、以及電子裝置
JP2022136052A (ja) セキュア不揮発性メモリのためのシステム、方法およびデバイス
US20220272090A1 (en) Validating an electronic control unit of a vehicle
WO2021103839A1 (zh) 安全加固架构、加解密方法、车联网终端和车辆
EP3832511A1 (en) Security processor configured to authenticate user and authorize user for user data and computing system including the same
CN112685338A (zh) 包括安全可修补rom的半导体装置及其修补方法
CN111177709A (zh) 一种终端可信组件的执行方法、装置及计算机设备
CN113946375A (zh) 嵌入式系统快速安全启动方法、装置及电子设备
KR20220154879A (ko) 차량 제어 장치 및 방법
WO2022052665A1 (zh) 无线终端及无线终端在Uboot模式下的接口访问鉴权方法
KR20210016547A (ko) 데이터 처리
US20230115187A1 (en) Remote hardware execution service with customer consented debugging
CN112733208B (zh) 一种芯片的安全boot方法、装置、安全芯片和计算机设备
JP6698778B2 (ja) 制御システム
CN113935013A (zh) 用于对控制设备进行安全更新的方法
US12008107B2 (en) Chip and method capable of authenticating off-chip debug firmware program and debug user
EP4220461A1 (en) Accelerated secure boot for embedded controllers
JP7404205B2 (ja) 半導体装置及びそれを含むシステム
US20220342996A1 (en) Information processing apparatus, method of controlling the same, and storage medium
US20240193275A1 (en) Electronic device and secure booting method thereof
CN116776333A (zh) 用于执行计算单元的安全启动序列的方法

Legal Events

Date Code Title Description
A201 Request for examination