KR102579861B1 - In-vehicle software update system and method for controlling the same - Google Patents

In-vehicle software update system and method for controlling the same Download PDF

Info

Publication number
KR102579861B1
KR102579861B1 KR1020180121979A KR20180121979A KR102579861B1 KR 102579861 B1 KR102579861 B1 KR 102579861B1 KR 1020180121979 A KR1020180121979 A KR 1020180121979A KR 20180121979 A KR20180121979 A KR 20180121979A KR 102579861 B1 KR102579861 B1 KR 102579861B1
Authority
KR
South Korea
Prior art keywords
software
area
vehicle
integrity
update system
Prior art date
Application number
KR1020180121979A
Other languages
Korean (ko)
Other versions
KR20200041639A (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 KR1020180121979A priority Critical patent/KR102579861B1/en
Publication of KR20200041639A publication Critical patent/KR20200041639A/en
Application granted granted Critical
Publication of KR102579861B1 publication Critical patent/KR102579861B1/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/575Secure boot
    • 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/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Abstract

본 발명은 보안성이 향상되면서 빠른 부팅 시간을 갖는 차량용 소프트웨어 업데이트 장치 및 그 제어 방법에 관한 것이다. 본 발명의 일 실시예에 따른 차량용 소프트웨어 업데이트 시스템의 제어방법은, 제1 영역에서 제1 부트로더가 실행됨에 따라 적어도 제2 영역과의 스위칭 및 통신 기능을 제공하는 제1 소프트웨어, 제1 운영체제 및 보안 서비스와 관련된 적어도 하나의 제2 소프트웨어의 제1 무결성 검증이 수행되는 단계; 상기 제2 영역에서 제2 부트로더가 실행됨에 따라 무결성 검증 없이 제2 운영체가 부팅되는 단계; 상기 제2 영역에서 상기 제1 영역의 검증 대상 소프트웨어에 대한 보안 서비스를 요청하는 단계; 및 상기 요청에 따라 상기 제1 영역에서 상기 검증 대상 소프트웨어에 대한 제2 무결성 검증이 수행되는 단계를 포함할 수 있다. 여기서, 상기 제1 영역은 제1 모드에 대응되고, 상기 제2 영역은 제2 모드에 대응되며, 상기 차량용 소프트웨어 업데이트 시스템의 중앙처리장치는, 동시에 상기 제1 모드 및 상기 제2 모드 중 어느 하나의 모드만을 실행하고, 상기 제1 영역 및 상기 제2 영역은 상기 중앙처리장치 내에서 적어도 일부가 독립된 하드웨어 구성을 가질 수 있다.The present invention relates to a software update device for a vehicle that has fast booting time while improving security and a method of controlling the same. The control method of a vehicle software update system according to an embodiment of the present invention includes first software that provides switching and communication functions with at least a second area as the first bootloader is executed in the first area, a first operating system, and performing a first integrity verification of at least one second software related to the security service; booting a second operating system without integrity verification as a second boot loader is executed in the second area; requesting a security service for software to be verified in the first area from the second area; and performing a second integrity verification on the software to be verified in the first area according to the request. Here, the first area corresponds to the first mode, the second area corresponds to the second mode, and the central processing unit of the vehicle software update system simultaneously performs one of the first mode and the second mode. Only the mode of is executed, and the first area and the second area may have at least a portion of an independent hardware configuration within the central processing unit.

Description

차량용 소프트웨어 업데이트 장치 및 그 제어 방법{IN-VEHICLE SOFTWARE UPDATE SYSTEM AND METHOD FOR CONTROLLING THE SAME}Vehicle software update device and control method thereof {IN-VEHICLE SOFTWARE UPDATE SYSTEM AND METHOD FOR CONTROLLING THE SAME}

본 발명은 보안성이 향상되면서 빠른 부팅 시간을 갖는 차량용 소프트웨어 업데이트 장치 및 그 제어 방법에 관한 것이다.The present invention relates to a software update device for a vehicle that has fast booting time while improving security and a method of controlling the same.

일반적으로 소프트웨어의 무결성은 신뢰할 수 있는 배포자로부터 받거나 시스템에 주입된 기존 프로그램이 비인가된 사용자나 버그로부터 수정되지 않았음을 보장하는 것을 의미한다. 무결성이 보장되지 않는 경우 해커 등 악의적 사용자가 소프트웨어 취약점을 이용하여 프로그램을 수정하여, 악성코드나 백도어 같은 프로그램이 시스템 내 설치될 수 있는 상태가 될 수 있다. In general, software integrity means ensuring that existing programs received from trusted distributors or injected into the system have not been modified by unauthorized users or bugs. If integrity is not guaranteed, malicious users such as hackers may modify programs by exploiting software vulnerabilities, resulting in programs such as malware or backdoors being installed in the system.

따라서, 프로그램이 수정될 경우 탑승자는 물론 주변의 안전까지 위협할 수 있는 차량과 같은 시스템은, 높은 수준의 보안이 요구되어 소프트웨어 실행전 반드시 무결성 체크를 수행하여 소프트웨어 위변조 여부를 체크하는 것이 바람직하다.Therefore, systems such as vehicles, which can threaten the safety of not only the occupants but also the surroundings if the program is modified, require a high level of security, so it is desirable to perform an integrity check before executing the software to check for software forgery.

예컨대, 해외에서는 일부 SUV 차량에 탑재된 AVN(Audio/Video/Navigation) 시스템의 제어권을 획득한 해커가 마이크로 프로세서(MICOM)의 펌웨어를 변경하여 이전에 약속되지 않은 CAN 메시지를 보내도록 수정한 사례가 있었다. 이러한 사례는 MICOM에서 펌웨어 로딩시 무결성을 체크 했다면, 해커에 의해 변조된 펌웨어 로드가 불가하여 방지될 수 있었던 것이다.For example, there have been cases overseas where hackers who gained control of the AVN (Audio/Video/Navigation) system installed in some SUV vehicles changed the firmware of the microprocessor (MICOM) to send CAN messages that were not previously promised. there was. This case could have been prevented if MICOM had checked the integrity when loading firmware, as it would not have been possible to load firmware that had been modified by a hacker.

이하에서는 도 1을 참조하여 일반적인 소프트웨어 무결성 체크가 수행되는 과정을 설명한다. 도 1은 일반적인 차량의 소프트웨어 무결성 체크가 수행되는 과정의 일례를 나타낸다.Hereinafter, a process in which a general software integrity check is performed will be described with reference to FIG. 1. Figure 1 shows an example of a process in which a software integrity check is performed on a typical vehicle.

도 1을 참조하면, 무결성 체크 과정은 크게 제품 개발 단계와 양산 이후 과정으로 구분될 수 있다.Referring to Figure 1, the integrity check process can be largely divided into a product development stage and a post-mass production process.

먼저, 제품 개발 단계에서는 소프트웨어 배포자가 무결성을 보장하고자 하는 소프트웨어 바이너리 또는 해당 소프트웨어 바이너리가 포함된 시스템 파티션을 준비한다. 이후, 시스템 파티션의 해쉬가 계산되며, 계산된 해쉬는 소프트웨어 배포자의 개인키로 암호화된다. 해쉬 계산부터 암호화까지의 과정은 전자 서명 과정이라고도 한다. First, in the product development phase, the software distributor prepares the software binaries whose integrity is to be guaranteed or the system partition containing the software binaries. Afterwards, the hash of the system partition is calculated, and the calculated hash is encrypted with the software distributor's private key. The process from hash calculation to encryption is also called the electronic signature process.

암호화된 해쉬값은 시스템 파티션 및 공개키와 함께 차량 장치, 예컨대, AVN 시스템으로 주입될 수 있다.The encrypted hash value can be injected into a vehicle device, such as an AVN system, along with the system partition and public key.

양산 이후 AVN 시스템에서는 전자 서명을 검증하기 위해, 암호화된 해쉬는 공개키로 복호화하고, 시스템 파티션은 배포자가 해쉬를 계산한 것과 동일한 방법으로 해쉬를 계산한다. 복호화된 해쉬와 계산된 해쉬는 서로 비교되며, 비교 결과 서로 동일한 경우 전자 서명은 성공적으로 검증되며, 시스템 파티션의 사용이 가능해진다.In order to verify the digital signature in the AVN system after mass production, the encrypted hash is decrypted with a public key, and the system partition calculates the hash in the same way that the distributor calculated the hash. The decrypted hash and the calculated hash are compared, and if the comparison results are identical, the digital signature is successfully verified and the system partition can be used.

따라서, 상술한 전자 서명 방식이 적용될 경우, 공격자가 소프트웨어 배포자의 비밀키를 획득하지 않는 이상, 변조된 소프트웨어를 시스템에 주입할 수 없다.Therefore, when the above-described electronic signature method is applied, altered software cannot be injected into the system unless an attacker obtains the software distributor's private key.

다만, 전자 서명 방식은 서명 검증을 수행하는 주체에서 무결성 검증 대상(예컨대, 도 1의 시스템 파티션)에 대한 해쉬 계산을 부팅시마다 수행해야 하고, 해쉬 계산에 소요되는 시간은 무결성 검증 대상이 되는 타겟 바이너리나 파티션의 크기에 비례한다. 결국, 검증 대상 소프트웨어의 크기가 클수록, 무결성 체크에 소요되는 시간도 길어질 수 밖에 없으므로, 부팅 성능이 저하된다.However, in the electronic signature method, the subject performing the signature verification must perform a hash calculation for the integrity verification target (e.g., the system partition in Figure 1) every time it is booted, and the time required for hash calculation is calculated based on the target binary subject to integrity verification. It is proportional to the size of the partition. Ultimately, the larger the size of the software to be verified, the longer it takes for the integrity check, which deteriorates booting performance.

그런데, 대부분의 리눅스 시스템은 루트 파일 시스템 파티션에 대해서 무결성 체크를 생략한다. 이는 수 기바바이트(GB) 크기의 루트 파일 시스템에 대해 무결성을 부팅시마다 체크할 경우 부팅 시간이 크게 늘어나기 때문이다. 특히, 차량에 탑재되는 전자 장치, 예컨대, AVN 시스템은 약 2초 내에 부팅이 완료되어야 하므로 루트 파일 시스템 파티션에 대한 무결성 체크를 생략하는 것이 일반적이다. 그러나 이는 최근 상황에서 특히 위험하다.However, most Linux systems omit the integrity check for the root file system partition. This is because booting time increases significantly if the integrity of the root file system, which is several gigabytes (GB) in size, is checked at each boot. In particular, since an electronic device mounted on a vehicle, such as an AVN system, must complete booting within about 2 seconds, it is common to omit the integrity check for the root file system partition. But this is especially dangerous in recent circumstances.

구체적으로, 최근의 차량은 진단기를 통하지 않고 무선으로 업데이트 소프트웨어를 수신하여 펌웨어 업데이트나 리프로그래밍을 수행하는 OTA(Over-The-Air) 기능을 지원하는 추세이다. 보통 루트 파일 시스템에는 보안상 중요한 기능을 담당하는 소프트웨어가 존재하는데, OTA를 통해 시스템의 루트 파일 시스템의 내용을 변경이 가능한 보안상 중요한 소프트웨어가 업데이트될 경우, 이러한 소프트웨어가 무결성 체크를 수행하지 않은 실행 환경에서 구동되는 위험성이 있다.Specifically, recent vehicles tend to support the OTA (Over-The-Air) function, which performs firmware update or reprogramming by receiving update software wirelessly without going through a diagnostic device. Usually, there is software that performs security-critical functions in the root file system. When security-critical software that can change the contents of the system's root file system is updated through OTA, such software is executed without performing an integrity check. There is a risk of operating in the environment.

본 발명은 신속한 부팅 시간을 제공하면서도 보안상 중요한 소프트웨어 및 파티션에 대한 무결성 검증을 수행할 수 있는 차량용 소프트웨어 업데이트 장치 및 그 제어방법을 제공하기 위한 것이다.The present invention is to provide a software update device for a vehicle and a control method thereof that can perform integrity verification for security-critical software and partitions while providing a fast boot time.

본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below. You will be able to.

상기와 같은 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 차량용 소프트웨어 업데이트 시스템의 제어방법은, 제1 영역에서 제1 부트로더가 실행됨에 따라 적어도 제2 영역과의 스위칭 및 통신 기능을 제공하는 제1 소프트웨어, 제1 운영체제 및 보안 서비스와 관련된 적어도 하나의 제2 소프트웨어의 제1 무결성 검증이 수행되는 단계; 상기 제2 영역에서 제2 부트로더가 실행됨에 따라 무결성 검증 없이 제2 운영체가 부팅되는 단계; 상기 제2 영역에서 상기 제1 영역의 검증 대상 소프트웨어에 대한 보안 서비스를 요청하는 단계; 및 상기 요청에 따라 상기 제1 영역에서 상기 검증 대상 소프트웨어에 대한 제2 무결성 검증이 수행되는 단계를 포함할 수 있다. 여기서, 상기 제1 영역은 제1 모드에 대응되고, 상기 제2 영역은 제2 모드에 대응되며, 상기 차량용 소프트웨어 업데이트 시스템의 중앙처리장치는, 동시에 상기 제1 모드 및 상기 제2 모드 중 어느 하나의 모드만을 실행하고, 상기 제1 영역 및 상기 제2 영역은 상기 중앙처리장치 내에서 적어도 일부가 독립된 하드웨어 구성을 가질 수 있다.In order to solve the above technical problem, the control method of the vehicle software update system according to an embodiment of the present invention provides switching and communication functions with at least the second area as the first bootloader is executed in the first area. performing a first integrity verification of at least one second software related to the provided first software, first operating system, and security service; booting a second operating system without integrity verification as a second boot loader is executed in the second area; requesting a security service for software to be verified in the first area from the second area; and performing a second integrity verification on the software to be verified in the first area according to the request. Here, the first area corresponds to the first mode, the second area corresponds to the second mode, and the central processing unit of the vehicle software update system simultaneously performs one of the first mode and the second mode. Only the mode of is executed, and the first area and the second area may have at least a portion of an independent hardware configuration within the central processing unit.

또한, 본 발명의 일 실시예에 따른 차량용 소프트웨어 업데이트 시스템은, 제1 모드 또는 제2 모드로 동작하되, 상기 제1 모드에 해당하는 제1 영역 및 상기 제2 모드에 해당하는 제2 영역을 적어도 일부가 독립된 하드웨어로 처리하는 중앙처리장치; 및 상기 제1 영역에서만 접근 가능한 제1 메모리와 상기 제2 영역에서만 접근 가능한 제2 메모리를 포함하되, 상기 중앙처리장치는 동시에 상기 제1 모드와 상기 제2 모드 중 어느 하나의 모드만을 실행하고, 제1 영역에서 제1 부트로더가 실행됨에 따라 적어도 제2 영역과의 스위칭 및 통신 기능을 제공하는 제1 소프트웨어, 제1 운영체제 및 보안 서비스와 관련된 적어도 하나의 제2 소프트웨어의 제1 무결성 검증을 수행하고, 상기 제2 영역에서 제2 부트로더가 실행됨에 따라 무결성 검증 없이 제2 운영체를 부팅하고, 상기 제2 영역에서 상기 제1 영역의 검증 대상 소프트웨어에 대한 보안 서비스를 요청하는 경우, 상기 요청에 따라 상기 제1 영역에서 상기 검증 대상 소프트웨어에 대한 제2 무결성 검증을 수행할 수 있다.In addition, the vehicle software update system according to an embodiment of the present invention operates in a first mode or a second mode, and includes at least a first area corresponding to the first mode and a second area corresponding to the second mode. A central processing unit, some of which is processed as independent hardware; and a first memory accessible only in the first area and a second memory accessible only in the second area, wherein the central processing unit simultaneously executes only one of the first mode and the second mode, As the first bootloader is executed in the first area, a first integrity verification is performed on at least one second software related to the first software, the first operating system, and the security service that provides switching and communication functions with the second area. And, as the second boot loader is executed in the second area, the second operating system is booted without integrity verification, and when the second area requests a security service for software subject to verification in the first area, the request Accordingly, a second integrity verification of the software to be verified may be performed in the first area.

상기와 같이 구성되는 본 발명의 적어도 하나의 실시예에 관련된 차량용 소프트웨어 업데이트 시스템은 검증 대상을 안전 영역에 두고, 부팅 이후 서비스 요청 발생시 무결성을 체크하므로 빠른 부팅 시간이 보장된다.The vehicle software update system according to at least one embodiment of the present invention configured as described above places the verification target in a safe area and checks integrity when a service request occurs after booting, thereby ensuring a fast booting time.

또한, 무결성이 이미 검증된 검증 대상에 대해서도 타이머를 이용해 무결성 검증 결과를 리셋하므로 최초 검증 이후에도 주기적 검증이 가능하다.Additionally, since the integrity verification results are reset using a timer for verification targets whose integrity has already been verified, periodic verification is possible even after the initial verification.

본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects that can be obtained from the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below. will be.

도 1은 일반적인 차량의 소프트웨어 무결성 체크가 수행되는 과정의 일례를 나타낸다.
도 2는 본 발명의 실시예들이 수행될 수 있는 시스템 구성도의 일례를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 시스템의 부트 체인 형태의 일례를 나타낸다.
도 4는 본 발명의 일 실시예에 따른 레이지 인증 안전 어플리케이션의 무결성 체크 과정의 일례를 나타내는 순서도이다.
도 5는 본 발명의 일 실시예에 따른 서비스 식별자의 무결성 체크 과정의 일례를 나타낸다.
Figure 1 shows an example of a process in which a software integrity check is performed on a typical vehicle.
Figure 2 shows an example of a system configuration diagram in which embodiments of the present invention can be performed.
Figure 3 shows an example of a boot chain form of a system according to an embodiment of the present invention.
Figure 4 is a flowchart showing an example of an integrity check process of a lazy authentication safety application according to an embodiment of the present invention.
Figure 5 shows an example of a service identifier integrity check process according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Below, with reference to the attached drawings, embodiments of the present invention will be described in detail so that those skilled in the art can easily implement the present invention. However, the present invention may be implemented in many different forms and is not limited to the embodiments described herein. In order to clearly explain the present invention in the drawings, parts that are not related to the description are omitted, and similar parts are given similar reference numerals throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소들을 의미한다.Throughout the specification, when a part is said to “include” a certain element, this means that it may further include other elements rather than excluding other elements, unless specifically stated to the contrary. Additionally, parts indicated with the same reference numbers throughout the specification refer to the same components.

본 발명의 일 실시예에서는, 하나의 프로세서를 하드웨어적으로 격리된 서로 다른 모드를 지원하도록 하고, 두 모드 중 안전 모드에 해당하는 영역에 검증 대상을 두고, 부팅 이후 나머지 일반 모드에 해당하는 일반 영역으로부터 서비스 요청 발생시 검증 대상에 대한 무결성 검증이 수행되도록 할 것을 제안한다.In one embodiment of the present invention, one processor is configured to support different hardware-isolated modes, the verification target is placed on the area corresponding to the safe mode among the two modes, and the normal area corresponding to the remaining normal mode is set after booting. It is proposed that integrity verification of the verification target be performed when a service request occurs.

먼저, 도 2를 참조하여 시스템 구성을 설명한다. 도 2는 본 발명의 실시예들이 수행될 수 있는 시스템 구성도의 일례를 나타낸다. 도 2를 포함한 이하의 기재에서 업데이트 엔진을 포함하는 소프트웨어 업데이트 시스템을 AVN 시스템인 것으로 가정하나, 이는 설명의 편의를 위한 것으로 반드시 이에 한정되는 것은 아니다.First, the system configuration will be described with reference to FIG. 2. Figure 2 shows an example of a system configuration diagram in which embodiments of the present invention can be performed. In the following description including FIG. 2, it is assumed that the software update system including the update engine is an AVN system, but this is for convenience of explanation and is not necessarily limited thereto.

도 2에 도시된 시스템 구성은 이른바 "ARM TrustZone"을 이용하여 업데이트 엔진을 전체 시스템으로부터 격리하여, 시스템 업데이트를 안전하게 수행할 수 있다. ARM TrustZone 기술이란, 하나의 CPU를 두 개의 독립된 모드, 즉, 안전 모드와 일반 모드로 동작하게 하는 기술이다. 이는 공격자가 루트 계정을 획득하여 운영체제나 부트로더 등을 수정하거나 변조하기 위한 루트킷 등을 사용하더라도, 보호 대상 프로그램을 일반적인 운영체제조차 접근할 수 없는 영역으로 고립시키고, 고립된 상태에서 해당 프로그램이 실행될 때까지의 과정을 신뢰할 수 있는 상태로 유지하기 위한 수단 중 하나라 할 수 있다.The system configuration shown in FIG. 2 uses the so-called “ARM TrustZone” to isolate the update engine from the entire system, allowing system updates to be performed safely. ARM TrustZone technology is a technology that allows one CPU to operate in two independent modes, that is, safe mode and normal mode. This means that even if an attacker obtains a root account and uses a rootkit to modify or tamper with the operating system or bootloader, the program to be protected is isolated to an area that even the general operating system cannot access, and when the program is executed in an isolated state, It can be said to be one of the means to keep the process up to this point in a trustworthy state.

이러한 시스템에서 하나의 CPU 코어는 동시에 하나의 모드로만 동작이 가능하도록 설계되며, 안전 모드는 안전 영역(Secure World, 110)에서 실행되고, 일반 모드는 일반 영역(Normal World, 120)에서 실행될 수 있다.In these systems, one CPU core is designed to operate in only one mode at the same time, with safe mode running in the safe area (Secure World, 110) and normal mode running in the normal world (120). .

구체적으로, 안전 영역(110)에는 모니터(Monitor, 111), 신뢰운영체제(TOS: Trusted Operating System, 112), 안전 어플리케이션(Secure App, 113) 및 레이지 인증 안전 어플리케이션(LVSA: Lazy Verified Secure App, 114)을 포함할 수 있다.Specifically, the safety area 110 includes a monitor (111), a trusted operating system (TOS) (112), a secure application (Secure App) (113), and a Lazy Verified Secure App (LVSA) (114). ) may include.

모니터(111)는 최상위 권한을 갖는 소프트웨어로, CPU 코어의 다른 영역으로의 스위칭, 두 월드간 통신, 인터럽트 처리 등을 담당한다. 또한, 안전 영역(110)에서는 TOS(112)가 구동하며, 안전 어플리케이션(113)은 보안(Security)에 관련된 서비스를 제공할 수 있다. 예컨대, 안전 어플리케이션(113)은 비교적 사이즈가 작으며, "암호화 키 관리" 등 보안 서비스에 필수적인 서비스들로 이루어질 수 있다. 이들(111, 112, 113)은 부팅 타임에 무결성 체크를 완료하여 부팅 이후 서비스를 제공할 수 있도록 하는데, 이들(111, 112, 113)의 바이너리 크기가 작기 때문에 부팅 타임에 무결성을 체크해도 부팅 시간 성능 영향을 최소화 할 수 있기 때문이다.The monitor 111 is software with the highest authority and is responsible for switching to other areas of the CPU core, communication between the two worlds, and interrupt processing. Additionally, the TOS 112 runs in the safety area 110, and the safety application 113 can provide services related to security. For example, the safety application 113 is relatively small in size and may be comprised of services essential to security services such as “encryption key management”. These (111, 112, 113) complete the integrity check at boot time to enable services to be provided after booting. Since the binary size of these (111, 112, 113) is small, even if the integrity is checked at boot time, the boot time is limited. This is because the performance impact can be minimized.

LVSA(114)는 무결성 체크의 대상이 되나, 비교적 용량이 커 부팅 타임을 길어지게 만드는 소프트웨어일 수 있으며, 부팅 타임에는 메모리 적재 후 실행하지 아니하고, 런타임에 무결성 체크가 수행될 수 있다. 예컨대, LVSA(114)는 OTA를 통해 수신된 업데이트 바이너리 또는 파티션일 수 있다.The LVSA 114 is subject to an integrity check, but it may be software that prolongs booting time due to its relatively large capacity, and may not be executed after loading memory at booting time, but rather an integrity check may be performed at runtime. For example, LVSA 114 may be an update binary or partition received via OTA.

일반 영역(120)은 흔히 리치 운영 체제(Rich OS)라 칭해지는 운영체제 중 하나인 리눅스(121)가 구동될 수 있으며, 프레임워크(122) 및 AVN 시스템의 일반적인 기능을 수행하기 위한 비신뢰 소프트웨어들(Non Trusted App, 123)이 동작할 수 있다.The general area 120 can run Linux 121, one of the operating systems commonly referred to as Rich OS, and the framework 122 and untrusted software to perform general functions of the AVN system. (Non Trusted App, 123) can work.

한편, 안전 영역(110)과 일반 영역(120)의 구분을 위해, CPU의 레지스터가 영역 별로 분리되어 있을 수 있다. 예컨대, 페이지 테이블 관련 레지스터가 분리되므로, 가상주소-물리주소 변환에 사용되는 테이블의 주소가 영역별로 각각 다를 수 있다. 이는 각 영역에서 서로 다른 주소 공간을 보게 해줄 수 있다. 또한, 안전 영역(110)에서만 접근 가능한 디바이스나 메모리 영역(130)이 지정될 수 있다. 따라서, 이러한 메모리 영역(130)에 일반 영역(120)의 접근 시도 갔을 경우, 페이지 폴트가 발생할 수 있다. 아울러, 인터럽트 또한 구분되어 현재가 안전 모드일 경우, 노멀 모드의 인터럽트는 발생하지 않을 수 있다. 물론, 일반 영역(120) 또한 해당 영역에서만 접근할 수 있는 메모리(140)가 준비될 수 있으며, 두 영역 모드가 접근 가능한 공유 접근(eMMC, 150) 또한 지원될 수 있다.Meanwhile, in order to distinguish between the safe area 110 and the normal area 120, the registers of the CPU may be separated by area. For example, since the registers related to the page table are separated, the address of the table used for virtual address-physical address conversion may be different for each area. This can cause each region to see a different address space. Additionally, a device or memory area 130 that is accessible only in the safe area 110 may be designated. Therefore, if an attempt is made to access the general area 120 in the memory area 130, a page fault may occur. In addition, interrupts are also differentiated, so if the current mode is safe mode, normal mode interrupts may not occur. Of course, the general area 120 can also be prepared with a memory 140 that can be accessed only in that area, and shared access (eMMC, 150) that can be accessed by two area modes can also be supported.

결국, 본 실시예들에 적용될 수 있는 소프트웨어 업데이트 시스템은 두 모드를 지원하기 위하여 서로 다른 두 하드웨어 영역을 갖는 중앙처리장치(CPU)와, 두 영역 각각을 위한 개별적인 메모리를 포함할 수 있다.Ultimately, the software update system applicable to the present embodiments may include a central processing unit (CPU) with two different hardware areas to support the two modes, and individual memories for each of the two areas.

이하에서는 도 3을 참조하여 부팅 과정을 설명한다. 도 3은 본 발명의 일 실시예에 따른 시스템의 부트 체인 형태의 일례를 나타낸다.Hereinafter, the booting process will be described with reference to FIG. 3. Figure 3 shows an example of a boot chain form of a system according to an embodiment of the present invention.

도 3을 참조하면, 전원이 들어 오면 부터 로더 1부터 리눅스 커널(Linux Kernel)까지 일련의 소프트웨어는 메모리에 로드되기 전 도 1을 참조하여 전술한 형태의 무결성 체크를 수행한 후 메모리에 로드된다.Referring to FIG. 3, when the power is turned on, a series of software from Loader 1 to the Linux Kernel is loaded into memory after performing an integrity check of the type described above with reference to FIG. 1 before being loaded into memory.

구체적으로, 안전 영역(110)의 부트 로더(Boot Loader 1)가 실행되어(S210), 안전 영역(110)의 동작에 필수적 소프트웨어인 모니터와 TOS에 대한 해쉬와 전자 서명에 기반한 무결성 체크가 부팅 타임에 순차적으로 수행될 수 있다(S220, S230). Specifically, the boot loader (Boot Loader 1) of the safe area 110 is executed (S210), and an integrity check based on the hash and electronic signature of the monitor and TOS, which are essential software for the operation of the safe area 110, is performed at boot time. It can be performed sequentially (S220, S230).

또한, 안전 영역(110)에서 서비스를 제공하는 안전 어플리케이션에 대한 무결정 체크도 부팅 타임에 수행될 수 있다(S240).Additionally, a non-decision check for a safety application providing services in the safety area 110 may also be performed at booting time (S240).

이후 일반 영역(120)의 부트 로더(Boot Loader 2)가 실행되며(S250), 리눅스 커널이 무결성 체크 후 메모리에 로드될 수 있다(S260).Afterwards, the boot loader (Boot Loader 2) in the general area 120 is executed (S250), and the Linux kernel can be loaded into memory after integrity check (S260).

반면, 부팅 타임에는 LVSA(114)는 무결성 체크 없이 안전 영역(110)의 메모리에 적재된다. 보다 상세히, LVSA(114)는 OTA 업데이트와 같이 시스템 부팅이 완료된 후 일반 영역(120)의 AVN 시스템 요청에 의해 수행되는 보안 서비스에 해당될 수 있다. 이들(114)은 부팅 이후, 일반 영역(120)의 요청이 발생하면 실행되기 전 부팅 단계에 무결성 체크가 완료된 모니터(111)와 TOS(112)에 의해 무결성 체크가 이루어 질 수 있다.On the other hand, at boot time, the LVSA 114 is loaded into the memory of the safe area 110 without an integrity check. In more detail, the LVSA 114 may correspond to a security service performed by an AVN system request in the general area 120 after system booting is completed, such as an OTA update. After booting, when a request for the general area 120 occurs, the integrity of these 114s can be checked by the monitor 111 and TOS 112, which have completed the integrity check in the booting stage before execution.

또한, 리눅스 커널이 사용하는 리눅스 루트 파일 시스템(Linux Root File System, 141)은 부팅 타임뿐만 아니라 마운트 된 이후에도 무결성 체크를 하지 않는다.Additionally, the Linux Root File System (141) used by the Linux kernel does not perform an integrity check not only at boot time but also after it is mounted.

이하에서는 도 4를 참조하여 LVSA의 무결성 체크 과정을 설명한다. 도 4는 본 발명의 일 실시예에 따른 레이지 인증 안전 어플리케이션의 무결성 체크 과정의 일례를 나타내는 순서도이다.Below, the integrity check process of the LVSA will be described with reference to FIG. 4. Figure 4 is a flowchart showing an example of an integrity check process of a lazy authentication safety application according to an embodiment of the present invention.

도 4를 참조하면, 일반 영역(120)의 어플리케이션은 리눅스 커널에서 보안 서비스(Security Service)를 요청할 수 있다(S310).Referring to FIG. 4, an application in the general area 120 may request a security service from the Linux kernel (S310).

리눅스 커널은 요청받은 보안 서비스에 대한 서비스 식별자(Service ID)를 생성하여, 이를 안전 영역(110)으로 전달할 수 있다(S320).The Linux kernel can create a service identifier (Service ID) for the requested security service and transmit it to the safe area 110 (S320).

안전 영역(110)에서는 전달받은 서비스 식별자의 무결성 체크 여부를 확인하고(S330), 무결성 체크가 수행되지 않은 경우 무결성 체크를 수행한 후(S340) LVSA의 서비스를 수행할 수 있다(S350). In the safe area 110, it is checked whether the integrity of the received service identifier has been checked (S330), and if the integrity check is not performed, the LVSA service can be performed after performing the integrity check (S340) (S350).

서비스 식별자(Service ID)의 무결성 체크 여부의 관리 방법은 도 5를 참조하여 이하 설명한다. 도 5는 본 발명의 일 실시예에 따른 서비스 식별자의 무결성 체크 과정의 일례를 나타낸다.A method of managing whether to check the integrity of a service identifier (Service ID) will be described below with reference to FIG. 5. Figure 5 shows an example of a service identifier integrity check process according to an embodiment of the present invention.

도 5를 참조하면, 일반 영역(120)에서는 특정 명령어를 통해 안전 영역(110)에 서비스를 요청할 수 있으며, 이때 특정 레지스터(510)에 자신이 원하는 서비스 식별자를 표기하여 명령어를 실행할 수 있다. 여기서, 특정 명령어는 SMC일 수 있으며, 특정 레지스터는 R0 레지스터일 수 있으나, 반드시 이에 한정되는 것은 아니다.Referring to FIG. 5, in the general area 120, a service can be requested from the safe area 110 through a specific command. At this time, the command can be executed by indicating the desired service identifier in the specific register 510. Here, the specific instruction may be SMC, and the specific register may be the R0 register, but are not necessarily limited thereto.

전술된 바와 같이, 모니터(111)는 안전 영역(110)과 일반 영역(120)간의 통신 접점을 담당하는 바, CPU가 SMC 명령어를 실행하면, 모니터 코드로 실행 흐름을 변경하고, 모니터(111) 내의 SMC 핸들러를 실행할 수 있다. 모니터(111)는 서비스 식별자에 대한 무결성 검증 테이블(Integrity Check Table, 520)과 하드웨어 타이머(530)를 이용한 무결성 검증 테이블 무효화 기능을 갖는다. 따라서, SMC 핸들러는 R0 레지스터로 입력받은 서비스 식별자를 무결성 검증 테이블(520)에서 검색하고, 무결성 체크 여부를 확인할 수 있다. 여기서, 테이블(520)의 'X' 표기는 무결성 체크가 수행되지 않음(즉, 무효화)을 의미한다.As described above, the monitor 111 is responsible for the communication contact between the safe area 110 and the general area 120. When the CPU executes the SMC instruction, the execution flow is changed to the monitor code, and the monitor 111 You can run the SMC handler within it. The monitor 111 has an integrity check table 520 for the service identifier and an integrity check table invalidation function using a hardware timer 530. Accordingly, the SMC handler can search the integrity verification table 520 for the service identifier input to the R0 register and check whether the integrity is checked. Here, the 'X' notation in the table 520 means that the integrity check is not performed (i.e., invalidated).

또한, 모니터(111)는 하드웨어 타이머(530)를 통해, 주기적으로 무결성 검증 테이블(520)의 무결성 체크 여부를 'X'로 표기하여 무효화시킬 수 있다. 이는 무결성 체크를 통과한 LVSA를 나중에라도 변조한 공격을 방어하기 위함이다. 따라서, 무결성 체크 무효화를 통해 이미 무결성 검증된 어플리케이션의 메모리 변조를 통한 공격이 방어될 수 있다. 실시예에 따라서는, 타이머(530)를 이용하지 않고 LVSA가 무결성 체크를 통화하더라도 무결성 검증 테이블에 검증 여부를 기록하지 않도록 하여, 안전 영역(110)에서의 요청이 발생할 때마다 무결성 체크가 수행되도록 할 수도 있다.Additionally, the monitor 111 may periodically invalidate the integrity check of the integrity verification table 520 by indicating it as 'X' through the hardware timer 530. This is to prevent attacks that later tamper with the LVSA that has passed the integrity check. Therefore, attacks through memory modification of applications whose integrity has already been verified through integrity check invalidation can be prevented. Depending on the embodiment, even if the LVSA makes an integrity check call without using the timer 530, verification is not recorded in the integrity verification table, so that the integrity check is performed every time a request occurs in the safe area 110. You may.

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. The above-described present invention can be implemented as computer-readable code on a program-recorded medium. Computer-readable media includes all types of recording devices that store data that can be read by a computer system. Examples of computer-readable media include HDD (Hard Disk Drive), SSD (Solid State Disk), SDD (Silicon Disk Drive), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. There is.

따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.Accordingly, the above detailed description should not be construed as restrictive in all respects and should be considered illustrative. The scope of the present invention should be determined by reasonable interpretation of the appended claims, and all changes within the equivalent scope of the present invention are included in the scope of the present invention.

Claims (19)

차량용 소프트웨어 업데이트 시스템의 제어방법에 있어서,
제1 영역에서 제1 부트로더가 실행됨에 따라 적어도 제2 영역과의 스위칭 및 통신 기능을 제공하는 제1 소프트웨어, 제1 운영체제 및 보안 서비스와 관련된 적어도 하나의 제2 소프트웨어의 제1 무결성 검증이 수행되는 단계;
상기 제1 부트로더가 실행 완료된 후, 상기 제2 영역에서 제2 부트로더가 실행됨에 따라 무결성 검증 없이 제2 운영체제가 부팅되는 단계;
상기 제2 영역에서 상기 제1 영역의 검증 대상 소프트웨어에 대한 보안 서비스를 요청하는 단계; 및
상기 요청에 따라 상기 제1 영역에서 상기 검증 대상 소프트웨어에 대한 제2 무결성 검증이 수행되는 단계를 포함하되,
상기 제1 영역은 제1 모드에 대응되고, 상기 제2 영역은 제2 모드에 대응되며,
상기 차량용 소프트웨어 업데이트 시스템의 중앙처리장치는, 한 번에 상기 제1 모드 및 상기 제2 모드 중 어느 하나의 모드만을 실행하고,
상기 제1 영역 및 상기 제2 영역은 상기 중앙처리장치 내에서 적어도 일부가 독립된 하드웨어 구성을 가지며,
상기 검증 대상 소프트웨어에 대한 상기 제2 무결성 검증의 수행 시간은 상기 제2 소프트웨어의 상기 제1 무결성 검증 수행 시간보다 큰,
차량용 소프트웨어 업데이트 시스템의 제어방법.
In the control method of a vehicle software update system,
As the first bootloader is executed in the first area, a first integrity verification of the first software providing switching and communication functions with at least the second area, the first operating system, and at least one second software related to the security service is performed. stage of becoming;
After the first boot loader is completely executed, a second operating system is booted without integrity verification as the second boot loader is executed in the second area;
requesting a security service for software to be verified in the first area from the second area; and
Including performing a second integrity verification on the software to be verified in the first area according to the request,
The first area corresponds to the first mode, the second area corresponds to the second mode,
The central processing unit of the vehicle software update system executes only one of the first mode and the second mode at a time,
The first area and the second area have at least a portion of an independent hardware configuration within the central processing unit,
The performance time of the second integrity verification for the software to be verified is greater than the performance time of the first integrity verification of the second software,
Control method of vehicle software update system.
제1 항에 있어서,
상기 제1 무결성 검증이 수행되는 단계는,
상기 검증 대상 소프트웨어가 무결성 검증과 실행을 모두 하지 않고 메모리에 적재되는 단계를 포함하는, 차량용 소프트웨어 업데이트 시스템의 제어방법.
According to claim 1,
The step in which the first integrity verification is performed is,
A control method of a software update system for a vehicle, comprising loading the verification target software into a memory without performing both integrity verification and execution.
제1 항에 있어서,
상기 검증 대상 소프트웨어는,
무선 업데이트(OTA)를 통해 수신된 업데이트 바이너리 또는 파티션을 포함하는, 차량용 소프트웨어 업데이트 시스템의 제어방법.
According to claim 1,
The software subject to verification is,
A method of controlling a software update system for a vehicle, including an update binary or partition received through an over-the-air update (OTA).
제1 항에 있어서,
상기 제1 소프트웨어는,
모니터(Monitor) 소프트웨어를 포함하고,
상기 제2 소프트웨어는,
암호화 키 관리를 포함하는 필수 보안 서비스를 제공하는, 차량용 소프트웨어 업데이트 시스템의 제어방법.
According to claim 1,
The first software is,
Includes monitor software,
The second software is,
A control method for a vehicle software update system that provides essential security services including encryption key management.
제4 항에 있어서,
상기 보안 서비스를 요청하는 단계는,
상기 제1 영역에서 상기 보안 서비스에 대응되는 서비스 식별자를 생성하는 단계;
상기 생성된 서비스 식별자가 상기 모니터 소프트웨어로 전달되는 단계;
상기 모니터 소프트웨어에서 상기 서비스 식별자에 대한 무결성 체크 여부를 확인하는 단계를 포함하는, 차량용 소프트웨어 업데이트 시스템의 제어방법.
According to clause 4,
The step of requesting the security service is,
generating a service identifier corresponding to the security service in the first area;
transmitting the generated service identifier to the monitor software;
A control method of a software update system for a vehicle, comprising the step of checking whether the monitor software checks the integrity of the service identifier.
제5 항에 있어서,
상기 검증 대상 소프트웨어에 대한 제2 무결성 검증이 수행되는 단계는,
상기 서비스 식별자에 대한 무결성 체크가 수행되지 않은 것으로 확인될 경우 수행되는, 차량용 소프트웨어 업데이트 시스템의 제어방법.
According to clause 5,
The second integrity verification step for the verification target software is:
A control method of a software update system for a vehicle, which is performed when it is confirmed that an integrity check for the service identifier has not been performed.
제5 항에 있어서,
상기 서비스 식별자에 대한 무결성 체크가 수행된 것으로 확인될 경우, 상기 검증 대상 소프트웨어에 대한 보안 서비스가 수행되는 단계를 더 포함하는, 차량용 소프트웨어 업데이트 시스템의 제어방법.
According to clause 5,
When it is confirmed that an integrity check for the service identifier has been performed, a method of controlling a software update system for a vehicle further comprising performing a security service for the software to be verified.
제5 항에 있어서,
상기 모니터 소프트웨어는,
상기 검증 대상 소프트웨어를 포함한 적어도 하나의 소프트웨어에 대한 무결성 체크 여부를 나타내는 테이블을 관리하고,
하드웨어 타이머에 따라 상기 테이블의 무결성 체크를 주기적으로 무효화하는, 차량용 소프트웨어 업데이트 시스템의 제어방법.
According to clause 5,
The monitor software is,
Manage a table indicating whether to check the integrity of at least one software including the software to be verified,
A control method of a software update system for a vehicle, periodically invalidating the integrity check of the table according to a hardware timer.
제1 항에 있어서,
상기 제1 운영체제는 신뢰 운영체제(TOS)를 포함하고,
상기 제2 운영체제는 리눅스 운영체제를 포함하는, 차량용 소프트웨어 업데이트 시스템의 제어방법.
According to claim 1,
The first operating system includes a trusted operating system (TOS),
A method of controlling a software update system for a vehicle, wherein the second operating system includes a Linux operating system.
제1 항 내지 제9 항 중 어느 한 항에 따른 차량용 소프트웨어 업데이트 시스템의 제어방법을 실행시키기 위한 프로그램을 기록한 컴퓨터 해독 가능 기록 매체.A computer-readable recording medium recording a program for executing the control method of a vehicle software update system according to any one of claims 1 to 9. 차량용 소프트웨어 업데이트 시스템에 있어서,
제1 모드 또는 제2 모드로 동작하되, 상기 제1 모드에 해당하는 제1 영역 및 상기 제2 모드에 해당하는 제2 영역을 적어도 일부가 독립된 하드웨어로 처리하는 중앙처리장치; 및
상기 제1 영역에서만 접근 가능한 제1 메모리와 상기 제2 영역에서만 접근 가능한 제2 메모리를 포함하되,
상기 중앙처리장치는,
한 번에 상기 제1 모드와 상기 제2 모드 중 어느 하나의 모드만을 실행하고,
제1 영역에서 제1 부트로더가 실행됨에 따라 적어도 제2 영역과의 스위칭 및 통신 기능을 제공하는 제1 소프트웨어, 제1 운영체제 및 보안 서비스와 관련된 적어도 하나의 제2 소프트웨어의 제1 무결성 검증을 수행하고,
상기 제1 부트로더가 실행 완료된 후, 상기 제2 영역에서 제2 부트로더가 실행됨에 따라 무결성 검증 없이 제2 운영체제를 부팅하고,
상기 제2 영역에서 상기 제1 영역의 검증 대상 소프트웨어에 대한 보안 서비스를 요청하는 경우, 상기 요청에 따라 상기 제1 영역에서 상기 검증 대상 소프트웨어에 대한 제2 무결성 검증을 수행하며,
상기 검증 대상 소프트웨어에 대한 상기 제2 무결성 검증의 수행 시간은 상기 제2 소프트웨어의 상기 제1 무결성 검증 수행 시간보다 큰,
차량용 소프트웨어 업데이트 시스템.
In the vehicle software update system,
A central processing unit that operates in a first mode or a second mode, and processes at least a portion of a first area corresponding to the first mode and a second area corresponding to the second mode as independent hardware; and
A first memory that is accessible only in the first area and a second memory that is accessible only in the second area,
The central processing unit is,
Executing only one of the first mode and the second mode at a time,
As the first bootloader is executed in the first area, a first integrity verification is performed on at least one second software related to the first software, the first operating system, and the security service that provides switching and communication functions with the second area. do,
After the first boot loader completes execution, the second operating system is booted without integrity verification as the second boot loader is executed in the second area,
When the second area requests a security service for the software to be verified in the first area, a second integrity verification is performed on the software to be verified in the first area according to the request,
The performance time of the second integrity verification for the verification target software is greater than the performance time of the first integrity verification of the second software,
Vehicle software update system.
제11 항에 있어서,
상기 중앙처리장치는,
상기 제1 무결성 검증이 수행시 상기 검증 대상 소프트웨어가 무결성 검증과 실행을 모두 하지 않고 상기 제1 메모리에 적재되도록 제어하는, 차량용 소프트웨어 업데이트 시스템.
According to claim 11,
The central processing unit is,
A software update system for a vehicle that controls the verification target software to be loaded into the first memory without performing both integrity verification and execution when the first integrity verification is performed.
제11 항에 있어서,
상기 검증 대상 소프트웨어는,
무선 업데이트(OTA)를 통해 수신된 업데이트 바이너리 또는 파티션을 포함하는, 차량용 소프트웨어 업데이트 시스템.
According to claim 11,
The software subject to verification is,
A software update system for vehicles, including update binaries or partitions received via over-the-air updates (OTA).
제11 항에 있어서,
상기 제1 소프트웨어는,
모니터(Monitor) 소프트웨어를 포함하고,
상기 제2 소프트웨어는,
암호화 키 관리를 포함하는 필수 보안 서비스를 제공하는, 차량용 소프트웨어 업데이트 시스템.
According to claim 11,
The first software is,
Includes monitor software,
The second software is,
An in-vehicle software update system that provides essential security services, including encryption key management.
제14 항에 있어서,
상기 중앙처리장치는,
상기 제1 영역에서 상기 보안 서비스에 대응되는 서비스 식별자가 생성되도록 하고, 상기 생성된 서비스 식별자가 상기 모니터 소프트웨어로 전달되면, 상기 모니터 소프트웨어에서 상기 서비스 식별자에 대한 무결성 체크 여부가 확인되도록 제어하는, 차량용 소프트웨어 업데이트 시스템.
According to claim 14,
The central processing unit is,
For a vehicle, controlling a service identifier corresponding to the security service to be generated in the first area and, when the generated service identifier is transmitted to the monitor software, to check whether the integrity of the service identifier is checked in the monitor software. Software update system.
제15 항에 있어서,
상기 중앙처리장치는,
상기 서비스 식별자에 대한 무결성 체크가 수행되지 않은 것으로 확인될 경우 상기 검증 대상 소프트웨어에 대한 제2 무결성 검증이 수행되도록 제어하는, 차량용 소프트웨어 업데이트 시스템.
According to claim 15,
The central processing unit is,
A software update system for a vehicle that controls to perform a second integrity verification on the verification target software when it is confirmed that the integrity check on the service identifier has not been performed.
제15 항에 있어서,
상기 중앙처리장치는,
상기 서비스 식별자에 대한 무결성 체크가 수행된 것으로 확인될 경우, 상기 검증 대상 소프트웨어에 대한 보안 서비스가 수행되도록 제어하는, 차량용 소프트웨어 업데이트 시스템.
According to claim 15,
The central processing unit is,
A software update system for a vehicle that controls to perform a security service for the software to be verified when it is confirmed that an integrity check for the service identifier has been performed.
제15 항에 있어서,
상기 모니터 소프트웨어는,
상기 검증 대상 소프트웨어를 포함한 적어도 하나의 소프트웨어에 대한 무결성 체크 여부를 나타내는 테이블을 관리하고,
하드웨어 타이머에 따라 상기 테이블의 무결성 체크를 주기적으로 무효화하는, 차량용 소프트웨어 업데이트 시스템.
According to claim 15,
The monitor software is,
Manage a table indicating whether to check the integrity of at least one software including the software to be verified,
A software update system for a vehicle that periodically invalidates the integrity check of the table according to a hardware timer.
제11 항에 있어서,
상기 제1 운영체제는 신뢰 운영체제(TOS)를 포함하고,
상기 제2 운영체제는 리눅스 운영체제를 포함하는, 차량용 소프트웨어 업데이트 시스템.
According to claim 11,
The first operating system includes a trusted operating system (TOS),
The second operating system is a software update system for a vehicle, including a Linux operating system.
KR1020180121979A 2018-10-12 2018-10-12 In-vehicle software update system and method for controlling the same KR102579861B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180121979A KR102579861B1 (en) 2018-10-12 2018-10-12 In-vehicle software update system and method for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180121979A KR102579861B1 (en) 2018-10-12 2018-10-12 In-vehicle software update system and method for controlling the same

Publications (2)

Publication Number Publication Date
KR20200041639A KR20200041639A (en) 2020-04-22
KR102579861B1 true KR102579861B1 (en) 2023-09-18

Family

ID=70472871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180121979A KR102579861B1 (en) 2018-10-12 2018-10-12 In-vehicle software update system and method for controlling the same

Country Status (1)

Country Link
KR (1) KR102579861B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114047715B (en) * 2021-09-30 2023-11-03 黄冈普赫氢能商用车有限公司 Control method and storage medium for peripheral device during ECU application layer software update
CN114547630B (en) * 2022-04-25 2022-08-09 宁波均联智行科技股份有限公司 Vehicle-mounted multi-operating-system-based verification method and device
WO2024058560A1 (en) * 2022-09-16 2024-03-21 삼성전자 주식회사 Server supporting firmware update and operating method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011150656A (en) 2010-01-25 2011-08-04 Toyota Infotechnology Center Co Ltd Program inspection system
US20140282470A1 (en) 2013-03-13 2014-09-18 Arynga Inc. Remote transfer of electronic images to a vehicle

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102183852B1 (en) * 2013-11-22 2020-11-30 삼성전자주식회사 Method for integrity verification of electronic device, machine-readable storage medium and electronic device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011150656A (en) 2010-01-25 2011-08-04 Toyota Infotechnology Center Co Ltd Program inspection system
US20140282470A1 (en) 2013-03-13 2014-09-18 Arynga Inc. Remote transfer of electronic images to a vehicle

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
'자동차 사이버 보안 가이드 라인', 국토교통부, 2020.12.

Also Published As

Publication number Publication date
KR20200041639A (en) 2020-04-22

Similar Documents

Publication Publication Date Title
US11514159B2 (en) Method and system for preventing and detecting security threats
US10333967B2 (en) Method and system for dynamic platform security in a device operating system
US9087199B2 (en) System and method for providing a secured operating system execution environment
KR101158184B1 (en) Protecting content on client platforms
US9372699B2 (en) System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device
JP5346608B2 (en) Information processing apparatus and file verification system
KR102579861B1 (en) In-vehicle software update system and method for controlling the same
US20160004859A1 (en) Method and system for platform and user application security on a device
Zaidenberg Hardware rooted security in industry 4.0 systems
JP6462540B2 (en) Driver device, information processing system, program, and method
Ruan et al. The Engine: Safeguarding Itself before Safeguarding Others

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