WO2025183497A1 - Time falsification prevention method and apparatus for security of fod services - Google Patents
Time falsification prevention method and apparatus for security of fod servicesInfo
- Publication number
- WO2025183497A1 WO2025183497A1 PCT/KR2025/002813 KR2025002813W WO2025183497A1 WO 2025183497 A1 WO2025183497 A1 WO 2025183497A1 KR 2025002813 W KR2025002813 W KR 2025002813W WO 2025183497 A1 WO2025183497 A1 WO 2025183497A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- time
- information
- service
- fod
- certificate
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
Definitions
- the present disclosure relates to a method and device for preventing time tampering for securing FoD services.
- ECUs electronice control units
- Feature on Demand (FoD) services have been provided as a means to selectively activate or deactivate equipment already installed in a vehicle, or to activate or deactivate installed software functions.
- the integrity and authenticity of the contents of the service package delivered by the server can be guaranteed using the certificate's electronic signature.
- the FoD service has an expiration date and this expiration date is based on the time in the vehicle, even after the expiration date has passed, an attacker can attempt to illegally use the FoD service by tampering with the vehicle time, etc.
- NTP Network Time Protocol
- the main purpose of the present disclosure is to provide a method and device for preventing time tampering for securing FoD services.
- a time tampering prevention device including: a certificate receiving unit that receives a certificate for an FoD service in a vehicle from a server; a time obtaining unit that obtains a first current time of the vehicle and a clock time related to activation of the FoD service; a time error obtaining unit that obtains a first time error which is a difference between the first current time and the clock time; a time information comparing unit that compares information related to the first time error with previous time error information previously stored in a storage related to the certificate and generates a comparison result; and a service determining unit that determines whether to apply the FoD service based on the comparison result.
- a method for preventing time tampering including: a certificate receiving process for receiving a certificate for an FoD service in a vehicle from a server; a time obtaining process for obtaining a first current time of the vehicle and a clock time related to activation of the FoD service; a time error obtaining process for obtaining a first time error which is a difference between the first current time and the clock time; a time information comparing process for generating a comparison result by comparing information related to the first time error with previous time error information previously stored in a storage related to the certificate; and a service determination process for determining whether to apply the FoD service based on the comparison result.
- Figure 1 conceptually illustrates a vehicle system being connected to a server via a network.
- Figure 2 illustrates the functional blocks that constitute a vehicle connected to an external network.
- FIG. 3 illustrates the functional blocks that constitute the gateway (110).
- FIG. 4 illustrates the functions performed by the CCU (111).
- FIG. 5 illustrates the functional blocks that constitute the server.
- FIG. 6 is a block diagram illustrating a time tamper prevention device (600) according to one embodiment of the present disclosure.
- FIG. 7 is a flowchart illustrating a time tamper prevention method according to one embodiment of the present disclosure.
- Figure 8 is a flowchart illustrating a time information comparison method.
- FIG. 9 is a block diagram schematically illustrating an exemplary computing device that may be used to implement a method or device according to the present disclosure.
- symbols such as first, second, i), ii), a), b) may be used. These symbols are only for distinguishing the components from other components, and the nature, order, or sequence of the components are not limited by the symbols.
- symbols When a part in the specification is said to "include” or “have” a component, this does not mean that other components are excluded, but rather that other components may be included, unless explicitly stated otherwise.
- Figure 1 conceptually illustrates a vehicle system being connected to a server via a network.
- the vehicle system (100) can be connected to a server (200) that provides vehicle-related functions or services through a wireless network (300) such as LTE, 5G, or Wi-Fi.
- a wireless network such as LTE, 5G, or Wi-Fi.
- Figure 2 illustrates the functional blocks that constitute a vehicle connected to an external network.
- a vehicle system (100) may be configured to include a gateway (110) connected to an external network and an internal network, and subsystems connected to the internal network.
- the subsystems may include, for example, a powertrain subsystem (120), a body subsystem (130), a chassis subsystem (140), an infotainment subsystem (150), etc.
- Each subsystem 120, 130, 140, 150 includes one or more electrical components with similar functions connected by the same type of internal bus, and each electrical component can be controlled and driven by a corresponding ECU.
- the powertrain subsystem (120) is a collection of components that generate the driving force of a vehicle, and may include components such as an engine, motor, transmission, battery, generator, etc., and an ECU (121, 122, 123) for controlling each component.
- the body subsystem (130) is a collection of components for enhancing the convenience and safety of passengers, and may include components such as seats, heating/ventilation/air conditioning (HVAC), lighting, doors, windows, indoor/outdoor lighting, and an ECU (131, 132, 133) for controlling each component.
- HVAC heating/ventilation/air conditioning
- ECU 131, 132, 133
- the infotainment subsystem (150) is a collection of components related to driving guidance or multimedia, and may include components such as a navigation system, a multimedia system, a head-up display, and an ECU (151, 152, 153) for controlling each component.
- the internal network connecting the gateway (110) and the electrical components that constitute the subsystem can use communication protocols such as LIN (Local Interconnect Network), CAN (Control Area Network), CAN-FD, FlexRay, MOST (Media Oriented Systems Transport), and Ethernet.
- LIN Local Interconnect Network
- CAN Control Area Network
- CAN-FD Control Area Network
- FlexRay FlexRay
- MOST Media Oriented Systems Transport
- Ethernet Ethernet
- FIG. 3 illustrates the functional blocks that constitute the gateway (110).
- the gateway (110) may be configured to include a central control unit (111, CCU (Central Control Unit)), a storage unit (113, Storage), an external communication unit (115), and an internal communication unit (117).
- a central control unit 111, CCU (Central Control Unit)
- a storage unit 113, Storage
- an external communication unit 115
- an internal communication unit 117
- the central control unit (111) has the function of controlling the overall operation of the vehicle system (100).
- the storage unit (113) stores data received from an external network or an internal network and data or information related to the operation of the vehicle system (100).
- the external communication unit (115) functions to connect to the server (200) via an external network.
- the internal communication unit (117) functions to connect to the electrical components (ECU) of each subsystem (120, 130, 140, 150) through the internal network.
- the central control unit (111), internal communication unit (117) and separate storage unit may be configured as separate devices separated from the gateway (110).
- FIG. 4 illustrates the functions performed by the CCU (111).
- the functions performed by the central control unit (111), particularly those performed based on data transmitted through an external network and/or an internal network, may include functions such as driving/parking management, remote diagnosis/control, subscription service (FoD) management, software update, and security management.
- functions such as driving/parking management, remote diagnosis/control, subscription service (FoD) management, software update, and security management.
- the driving/parking management function (411) comprehensively controls the vehicle's speed, steering, braking, and sensor data when driving and parking the vehicle, thereby improving safety and convenience.
- the remote diagnosis/control function (412) transmits status information collected while the vehicle is in operation to the server (200) to enable real-time diagnosis, and changes the control conditions of the vehicle or supports remote control in an emergency situation based on the diagnosis results received from the server (200).
- the subscription service (FoD) management function (413) manages FoD (Feature On Demand), a type of subscription service, which enables new features to be downloaded and activated through the server (200) or the customer's terminal, or features that are already installed but deactivated to be activated and used.
- FoD Feature On Demand
- the central control unit (111) performs the setting or cancellation operation of the subscription service, and checks whether the service requested by the customer is a service activated by the customer by selecting a subscription or whether the activation of the driving service is by an illegal method, and may perform or not perform the service based on this.
- the security management function (415) may include functions or services related to the security of the vehicle system (100) or authentication of a connecting external device.
- Security threats related to the vehicle system (100) may include firmware tampering, vehicle remote control hacking, CAN tampering, vehicle illegal operation, and denial of service. Additionally, security threats related to external network communications may include communication eavesdropping and message tampering.
- the security management function (415) can perform, for example, a function to detect and respond to intrusions into the vehicle's internal network through an external network (IDS: Intrusion Detection System), a service to record data related to security events (data immediately before a security accident) (EDR: Event Data Recorder), etc.
- IDS Intrusion Detection System
- EDR Event Data Recorder
- FIG. 5 illustrates the functional blocks that constitute the server.
- the server (200) may be configured to include a management unit (210, Manager), a database (220, Database), a storage unit (230, Storage), and a communication unit (240).
- a management unit 210, Manager
- a database 220, Database
- a storage unit 230, Storage
- a communication unit 240
- the database (220) manages information related to each vehicle, such as the software version installed in each vehicle, activated subscription services, and authentication-related information.
- the storage unit (230) stores multiple versions of software, data related to driving of multiple vehicles, etc.
- the database (220) may be installed separately from the server (200).
- a time tampering prevention device (600) includes a certificate receiving unit (610), a user verifying unit (620), a validity verifying unit (630), a time obtaining unit (640), a time difference obtaining unit (650), a time information comparing unit (660), a certificate information recording unit (670), and a service deciding unit (680).
- Not all blocks illustrated in FIG. 6 are essential components, and some blocks included in the time tampering prevention device (600) may be added, changed, or deleted in other embodiments. Meanwhile, the components illustrated in FIG. 6 represent functionally distinct elements, and at least one of the components may be implemented in a form in which they are integrated with each other in an actual physical environment.
- the certificate receiving unit (610) receives a certificate for the FoD service in the vehicle from the server (200).
- the certificate receiving unit (610) can be implemented as a function of the central control unit (111).
- the certificate includes user identification information for a user of at least one subscribed FoD service, identification information for at least one subscribed FoD service, information on whether each subscribed FoD service is activated, the creation time of the certificate, the period of use of the certificate, and electronic signature information.
- Information regarding the activation status of each subscribed FoD service may indicate whether the FoD service is activated or deactivated. Additionally, the certificate's usage period may be the same as the FoD service's validity period, and the usage period may include at least one of the certificate's start time and expiration time.
- the user verification unit (620) verifies the user of the FoD service by checking whether the user identification information stored in the storage is identical to the user identification information included in the certificate.
- the user verification unit (620) may be implemented as a function of the central control unit (111), but depending on the embodiment, it may also be implemented as a function of one target ECU (e.g., the corresponding ECU (151) within the infotainment subsystem (150)) related to the FoD service associated with the received certificate.
- one target ECU e.g., the corresponding ECU (151) within the infotainment subsystem (150)
- the validation unit (630) verifies the validity of the certificate using the electronic signature information in the received certificate.
- the validation unit (630) verifies the validity of the electronic signature of the certificate using a public key stored in a storage (not shown).
- the public key may be stored in the storage (not shown) or transmitted from the server (200).
- the storage (not shown) may be included in the target ECU (151) or the gateway (110).
- the time acquisition unit (640) acquires the first current time of the vehicle and acquires the clock time related to the activation of the FoD service.
- the time acquisition unit (640) acquires the first current time from a gateway (110) related to multiple controllers in the vehicle, and acquires it from the corresponding controller (151) that determines activation or deactivation of the FoD service corresponding to the certificate.
- the first current time may be information indicating the year, month, day, hour, minute, and second of the current point in time, and may be time information converted to epoch time (EPM: Epoch Time-based Parameter).
- EPM Epoch Time-based Parameter
- the clock time can be obtained from the RTC (real time clock) in the controller (151), and the data form of the clock time can be in the form of a clock counter.
- the data type of the first current time and the data type of the clock time are not limited to specific data types, and the two can be data types that are comparable to each other.
- the time error acquisition unit (650) acquires a first time error, which is the difference between the first current time and the clock time.
- the first time error can be a value obtained by subtracting the clock time from the first current time, a value obtained by subtracting the first current time from the clock time, or an absolute value of the difference between the first current time and the clock time.
- the time information comparison unit (660) compares information related to the first time error with previous time error information stored in a storage (not shown) related to the certificate to generate a comparison result.
- the certificate information recorder (670) stores information about the first time error as previous time error information related to the certificate in the storage (not shown).
- the time information comparison unit (660) generates a first unique code for the first time error, and determines the generated first unique code as information related to the first time error (i.e., first time error related information).
- the time information comparison unit (660) compares the determined first time error related information with the previous time error information stored in a storage (not shown) to generate a comparison result.
- the time information comparison unit (660) generates a first unique code related to the first time error using a unique code generation key stored in a storage (not shown).
- the first unique code may be a MAC (Message Authentication Code), which is a message authentication code generated using a unique code generation key and has a cryptographic hash value that ensures that specific data has not been tampered with.
- MAC Message Authentication Code
- the previous time error information is stored in the form of a unique code in the storage (not shown).
- the time information comparison unit (660) checks whether, among the plurality of first unique codes sequentially generated for the plurality of error values, there is one that matches the previous time error information stored in the storage (not shown).
- the time information comparison unit (660) sequentially generates a first unique code for a plurality of error values within a certain range based on the first time error and determines the generated first unique code as information on the first time error.
- the time information comparison unit (660) compares the information on the first time error generated in this way with previous time error information.
- the time information comparison unit (660) sequentially generates a first unique code for a plurality of error values (i.e., generates information on the first time error) and compares the information on the first time error with the previous time error information.
- a first unique code for a plurality of error values i.e., generates information on the first time error
- compares the information on the first time error with the previous time error information When information on the first time error that matches the previous time error information is generated, the generation of information on the first time error for any more error values among the plurality of error values is stopped and the comparison result is determined to be normal.
- the service judgment unit (680) determines whether to apply the FoD service included in the certificate based on the comparison result.
- the time information comparison unit (660) sequentially generates a first unique code for a plurality of error values within a certain range, and compares each generated first unique code with the previous time error information, if no matching comparison result is generated, i.e., if the comparison result is determined to be abnormal for the certificate, the service judgment unit (680) determines that the certificate has been used illegally and terminates the process.
- the service judgment unit (680) activates or deactivates the corresponding FoD service according to the activation information for the FoD service in the certificate.
- the service judgment unit (680) obtains the identification information of the FoD service, information on whether the FoD service is activated, and the validity period from the certificate. At this time, the service judgment unit (680) determines whether to activate or deactivate the corresponding FoD service based on the validity period and the information on whether the corresponding FoD service is activated.
- the service judgment unit (680) determines that the corresponding FoD service has ended if the first current time has passed the validity period even if the comparison result of the time information comparison unit (660) is normal.
- the service judgment unit (680) determines whether to activate or deactivate the FoD service based on information regarding whether the FoD service is activated.
- the information regarding whether the FoD service is activated may be information indicating the activation of the FoD service or information indicating the deactivation of the FoD service.
- the certificate information recorder (670) updates the information on the first time error as previous time error information related to the certificate based on the comparison result of the time information comparison unit (660) and stores the updated information in a storage (not shown).
- the information on the first time error updated in the storage (not shown) means that the first time error has been converted into a first unique code.
- the certificate information recording unit (670) updates the first unique code corresponding to the first time error as the previous time error information related to the certificate, replacing the previous time error information already stored in the storage (not shown).
- FIG. 7 is a flowchart illustrating a time tamper prevention method according to one embodiment of the present disclosure.
- a time tamper prevention method is performed by a time tamper prevention device (600).
- the certificate receiving unit (610) receives a certificate for a FoD service in a vehicle from the server (200), the user verification unit (620) verifies the user of the subscribed FoD service using user identification information, and the validity verification unit (630) verifies the validity of the certificate using the electronic signature information in the received certificate (S710).
- the process of the validation unit (630) verifying the validity of the certificate using the electronic signature information in the received certificate may not be performed in S710, but may be performed in the S770 process described later.
- the time acquisition unit (640) acquires the first current time (GWT, Gateway Time) of the vehicle and acquires the clock time (RTC_ECU) related to the activation of the FoD service (S720).
- the time error acquisition unit (650) acquires the first time error (DT, Delta (Time Difference)), which is the difference between the first current time and the clock time (S730).
- DT Delta (Time Difference)
- the time information comparison unit (660) compares the information on the first time error with the previous time error information (MDM', MAC Delta in Minute') previously stored in the storage (701) in relation to the certificate, and generates a comparison result (S740).
- FIG 8 is a drawing illustrating in detail the time information comparison process (S740) by the time information comparison unit (660).
- DT means time in seconds
- TW is a coefficient for indicating the comparison time unit compared to the time unit of DT. If DT is in seconds, TW can have a value of 60 corresponding to a minute unit, or a value of 3600 corresponding to a time unit.
- the time information comparison unit (660) assigns a preset value TWS (Time Window Size) to variable i (S820).
- TWS is a value representing the preset error range for the first time error.
- the time information comparison unit (660) obtains the previous unique code (MDM') stored in the storage (701) in relation to the certificate (or in relation to the corresponding FoD service) (S830).
- the time information comparison unit (660) adds the DM value to the value obtained by multiplying the variable i by TWS and stores it as DMi (S840).
- the time information comparison unit (660) stores the first unique code for DMi as MDMi (S850).
- the first unique code MDMi for DMi is also generated using the same unique code generation key (K) as that used to generate the previous unique code (MDM').
- the time information comparison unit (660) compares whether MDMi and MDM' are identical (S860). If this comparison results in MDMi and MDM' being identical, the time error verification by the time information comparison unit (660) is deemed successful.
- the certificate information recording unit (670) updates the information on the first time error as previous time error information related to the certificate and stores it in the storage (701) (S760).
- the information on the first time error updated in the storage means that the first time error has been converted into a first unique code.
- the validation unit (630) verifies the validity of the certificate using the electronic signature information within the received certificate (S770). If the verification at step S770 fails, the process ends.
- the service judgment unit (680) extracts data including the identification information of the FoD service, information on whether the FoD service is activated, and the validity period from the received certificate (S780).
- the service judgment unit (680) determines whether to activate or deactivate the corresponding FoD service based on the information on the validity period and whether the corresponding FoD service is activated (S790).
- the service judgment unit (680) determines that the corresponding FoD service has ended if the first current time has passed the validity period even if the comparison result of the time information comparison unit (660) is normal.
- the service judgment unit (680) determines whether to activate or deactivate the FoD service based on information on whether the FoD service is activated, if the comparison result of the time information comparison unit (660) is normal and the first current time has not passed the validity period.
- step S860 the comparison result MDMi and MDM' are not the same, the time information comparison unit (660) checks whether the i value is the same as TWS (S870).
- the time information comparison unit (660) outputs a result of verification failure. In other words, the comparison result by the time information comparison unit (660) is determined to be abnormal.
- step S870 if the i value is not equal to TWS, the time information comparison unit (660) increases the i value by 1 (S880) and proceeds to step S840 again.
- FIG. 9 is a block diagram schematically illustrating an exemplary computing device that may be used to implement a method or device according to the present disclosure.
- the computing device (9) may include some or all of a memory (900), a processor (920), storage (940), an input/output interface (960), and a communication interface (980).
- the computing device (9) may be a stationary computing device such as a desktop computer, a server, etc., as well as a mobile computing device such as a laptop computer, a smart phone, an automotive electronics, etc.
- the computing device (9) may be implemented with any specialized hardware accelerator capable of efficiently processing operations for an artificial intelligence model.
- the computing device (9) may include a graphic processing unit (GPU), a tensor processing unit (TPU), or a neural processing unit (NPU).
- the memory (900) may store a program that causes the processor (920) to perform a method or operation according to various embodiments of the present disclosure.
- the program may include a plurality of instructions executable by the processor (920), and the methods illustrated in FIGS. 7 and 8 may be performed by executing the plurality of instructions by the processor (920).
- the memory (900) may be a single memory or a plurality of memories. In this case, information required to perform the method or operation according to various embodiments of the present disclosure may be stored in a single memory or may be divided and stored in a plurality of memories. When the memory (900) is composed of a plurality of memories, the plurality of memories may be physically separated.
- the memory (900) may include at least one of a volatile memory and a nonvolatile memory.
- the volatile memory includes a static random access memory (SRAM) or a dynamic random access memory (DRAM), and the nonvolatile memory includes a flash memory.
- SRAM static random access memory
- DRAM dynamic random access memory
- the processor (920) may include at least one core capable of executing at least one instruction.
- the processor (920) may execute instructions stored in the memory (900).
- the processor (920) may be a single processor or multiple processors.
- Storage (940) maintains stored data even when power supplied to the computing device (9) is cut off.
- storage (940) may include non-volatile memory, or may include storage media such as magnetic tape, optical disk, or magnetic disk.
- a program stored in storage (940) may be loaded into memory (900) before being executed by processor (920).
- Storage (940) may store a file written in a programming language, and a program generated from the file by a compiler or the like may be loaded into memory (900).
- Storage (940) may store data to be processed by processor (920) and/or data processed by processor (920).
- the input/output interface (960) may include input devices such as a keyboard, mouse, touch display, microphone, etc., and may include output devices such as a display, speaker, etc.
- a user may trigger execution of a program by the processor (920) and/or check the processing result of the processor (920) through the input/output interface (960).
- the communication interface (980) may provide access to an external network.
- the computing device (9) may communicate with other devices via the communication interface (980).
- Each component of the device or method according to the present invention may be implemented in hardware, software, or a combination of hardware and software. Furthermore, the functions of each component may be implemented in software, with a microprocessor executing the software functions corresponding to each component.
- Various implementations of the systems and techniques described herein may be implemented as digital electronic circuits, integrated circuits, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), computer hardware, firmware, software, and/or combinations thereof. These various implementations may include implementations of one or more computer programs executable on a programmable system.
- the programmable system includes at least one programmable processor (which may be a special purpose processor or a general purpose processor) coupled to receive data and instructions from and transmit data and instructions to a storage system, at least one input device, and at least one output device.
- Computer programs also known as programs, software, software applications, or code
- a computer-readable recording medium includes any type of recording device that stores data that can be read by a computer system.
- a computer-readable recording medium may be a non-volatile or non-transitory medium such as a ROM, CD-ROM, magnetic tape, floppy disk, memory card, hard disk, magneto-optical disk, storage device, and may further include a transitory medium such as a data transmission medium.
- the computer-readable recording medium may be distributed across network-connected computer systems, so that computer-readable code can be stored and executed in a distributed manner.
- Vehicle system 110 Gateway
- Chassis subsystem 150 Infotainment subsystem
- Database 230 Storage
- Driving/Parking Management 412 Remote Diagnosis/Control
- Certificate receiving unit 620 User verification unit
- Time error acquisition unit 660 Time information comparison unit
- Computing device 900 Memory
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 개시는 FoD 서비스의 보안을 위한 시간 변조 방지 방법 및 장치에 관한 것이다.The present disclosure relates to a method and device for preventing time tampering for securing FoD services.
이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아니다.The content described below merely provides background information related to the present embodiment and does not constitute prior art.
배터리 기술의 발전 및 충전 인프라 구축에 따라 전기 자동차의 시장 규모가 점점 커지고 있다. 또한, 인공 지능, 이동/무선 통신, 클라우드 컴퓨팅, 센서, 정밀 측위 등의 기술 발전에 따라 자동차에 적용되는 자율 주행 단계도 점점 올라가고 있다.The electric vehicle market is steadily growing, driven by advancements in battery technology and the development of charging infrastructure. Furthermore, advancements in technologies like artificial intelligence, mobile/wireless communications, cloud computing, sensors, and precision positioning are advancing the level of autonomous driving applied to automobiles.
이러한 환경에서 주행 안전, 운전자 보조, 자율 주행 등의 여러 기능과 서비스를 수행하기 위해, 제어기(Electronic Control Unit: ECU)에 의해 구동되는 전장화된 또는 전자화된 장치 또는 부품 등이 다수 차량에 탑재되고 있다.In this environment, many vehicles are equipped with electrified or electronic devices or components driven by electronic control units (ECUs) to perform various functions and services such as driving safety, driver assistance, and autonomous driving.
최근에는 차량에 이미 장착된 장비를 선택적으로 활성화 또는 비활성화하거나, 탑재된 소프트웨어 기능에 대하여 활성화 또는 비활성화하는 수단으로서 FoD(Feature on Demand) 서비스가 제공되고 있다.Recently, Feature on Demand (FoD) services have been provided as a means to selectively activate or deactivate equipment already installed in a vehicle, or to activate or deactivate installed software functions.
FoD 서비스를 차량에 적용하기 위하여 인증서를 사용하는 경우, 서버가 전달하는 서비스 패키지의 내용의 무결성과 진본성을 인증서의 전자 서명을 이용하여 보증할 수 있다. When using a certificate to apply FoD service to a vehicle, the integrity and authenticity of the contents of the service package delivered by the server can be guaranteed using the certificate's electronic signature.
하지만, FoD 서비스의 사용 기한이 있는 경우 이 사용 기한이 차량에서의 시간을 기준으로 적용되기 때문에, 사용 기한이 경과한 경우에도 공격자가 차량 시간의 변조 등을 이용하여 FoD 서비스의 불법 사용을 시도할 수 있다.However, since the FoD service has an expiration date and this expiration date is based on the time in the vehicle, even after the expiration date has passed, an attacker can attempt to illegally use the FoD service by tampering with the vehicle time, etc.
또한, 두 시스템 간의 시간을 동기화하기 위하여 가장 일반적으로 NTP(Network Time Protocol) 서버를 이용할 수 있으나, 이 경우, NTP 서버의 구축에 별도의 비용이 소요하거나, 외부의 NTP 서버와 시간 동기화를 위한 별도의 통신을 해야 하는 추가 부담이 생길 수 있다.Additionally, to synchronize the time between two systems, a Network Time Protocol (NTP) server can most commonly be used, but in this case, separate costs may be incurred for setting up an NTP server, or additional burdens may arise from separate communication with an external NTP server for time synchronization.
본 개시는 FoD 서비스의 보안을 위한 시간 변조 방지 방법 및 장치를 제공하는 데에 주된 목적이 있다.The main purpose of the present disclosure is to provide a method and device for preventing time tampering for securing FoD services.
본 발명이 해결하고자 하는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the problems mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the description below.
본 개시의 일 측면에 의하면, 차량 내의 FoD 서비스에 대한 인증서를 서버로부터 수신하는 인증서 수신부; 상기 차량의 제1 현재시간을 획득하고 상기 FoD 서비스의 활성화와 관련된 클럭 시간을 획득하는 시간 획득부; 상기 제1 현재 시간과 상기 클럭 시간 사이의 차이인 제1 시간 오차를 획득하는 시간오차 획득부; 상기 제1 시간 오차와 관련한 정보와, 상기 인증서와 관련하여 저장소에 기 저장된 이전 시간 오차 정보를 서로 비교하여 비교 결과를 생성하는 시간정보 비교부; 및 상기 비교 결과에 따라, 상기 FoD 서비스의 적용 여부를 결정하는 서비스 판정부를 포함하는 시간변조 방지 장치를 제공한다.According to one aspect of the present disclosure, a time tampering prevention device is provided, including: a certificate receiving unit that receives a certificate for an FoD service in a vehicle from a server; a time obtaining unit that obtains a first current time of the vehicle and a clock time related to activation of the FoD service; a time error obtaining unit that obtains a first time error which is a difference between the first current time and the clock time; a time information comparing unit that compares information related to the first time error with previous time error information previously stored in a storage related to the certificate and generates a comparison result; and a service determining unit that determines whether to apply the FoD service based on the comparison result.
본 개시의 다른 측면에 의하면, 차량 내의 FoD 서비스에 대한 인증서를 서버로부터 수신하는 인증서 수신 과정; 상기 차량의 제1 현재시간을 획득하고 상기 FoD 서비스의 활성화와 관련된 클럭 시간을 획득하는 시간 획득 과정; 상기 제1 현재 시간과 상기 클럭 시간 사이의 차이인 제1 시간 오차를 획득하는 시간오차 획득 과정; 상기 제1 시간 오차와 관련한 정보와, 상기 인증서와 관련하여 저장소에 기 저장된 이전 시간 오차 정보를 서로 비교하여 비교 결과를 생성하는 시간정보 비교 과정; 및 상기 비교 결과에 따라, 상기 FoD 서비스의 적용 여부를 결정하는 서비스 판정 과정을 포함하는 시간변조 방지 방법을 제공한다.According to another aspect of the present disclosure, a method for preventing time tampering is provided, including: a certificate receiving process for receiving a certificate for an FoD service in a vehicle from a server; a time obtaining process for obtaining a first current time of the vehicle and a clock time related to activation of the FoD service; a time error obtaining process for obtaining a first time error which is a difference between the first current time and the clock time; a time information comparing process for generating a comparison result by comparing information related to the first time error with previous time error information previously stored in a storage related to the certificate; and a service determination process for determining whether to apply the FoD service based on the comparison result.
본 개시의 실시예에 의하면, FoD 서비스의 불법 사용을 방지하는 효과가 있다.According to an embodiment of the present disclosure, there is an effect of preventing illegal use of FoD services.
또한, 유효기간이 지난 인증서를 이용하여 차량 내 시간을 변조하여 인증서를 재사용하는 것을 방지할 수 있다.Additionally, it can prevent the reuse of certificates by tampering with the time in the vehicle using expired certificates.
시간의 확인을 위한 NTP 서버의 사용을 생략할 수 있으므로 추가적인 NTP 서버의 구축이나 NTP 서버와의 통신이 필요하지 않게 된다.Since the use of an NTP server for time verification can be omitted, there is no need to set up an additional NTP server or communicate with an NTP server.
본 개시의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present disclosure are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.
도 1은 차량 시스템이 네트워크를 통해 서버에 연결되는 것을 개념적으로 도시한 것이다.Figure 1 conceptually illustrates a vehicle system being connected to a server via a network.
도 2는 외부 네트워크에 연결되는 차량을 구성하는 기능 블록을 도시한 것이다.Figure 2 illustrates the functional blocks that constitute a vehicle connected to an external network.
도 3은 게이트웨이(110)를 구성하는 기능 블록을 도시한 것이다.Figure 3 illustrates the functional blocks that constitute the gateway (110).
도 4는 CCU(111)가 수행하는 기능을 도시한 것이다.Figure 4 illustrates the functions performed by the CCU (111).
도 5는 서버를 구성하는 기능 블록을 도시한 것이다.Figure 5 illustrates the functional blocks that constitute the server.
도 6은 본 개시의 일 실시예에 따른 시간 변조 방지 장치(600)를 블록도로 도시한 도면이다.FIG. 6 is a block diagram illustrating a time tamper prevention device (600) according to one embodiment of the present disclosure.
도 7은 본 개시의 일 실시예에 따른 시간 변조 방지 방법을 흐름도로 예시한 도면이다.FIG. 7 is a flowchart illustrating a time tamper prevention method according to one embodiment of the present disclosure.
도 8은 시간정보 비교부 방법을 흐름도로 예시한 도면이다.Figure 8 is a flowchart illustrating a time information comparison method.
도 9는 본 개시에 따른 방법 또는 장치를 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 장치를 개략적으로 나타낸 블록 구성도이다.FIG. 9 is a block diagram schematically illustrating an exemplary computing device that may be used to implement a method or device according to the present disclosure.
이하, 본 개시의 일부 실시예들을 예시적인 도면을 이용해 상세하게 설명한다. 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면 상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present disclosure will be described in detail using exemplary drawings. When designating components in each drawing, it should be noted that, where possible, identical components are given the same reference numerals, even if they appear in different drawings. Furthermore, when describing the present disclosure, detailed descriptions of related known structures or functions will be omitted if they are deemed to obscure the gist of the present disclosure.
본 개시에 따른 실시예의 구성요소를 설명하는 데 있어서, 제1, 제2, i), ii), a), b) 등의 부호를 사용할 수 있다. 이러한 부호는 그 구성요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 부호에 의해 해당 구성요소의 본질 또는 차례나 순서 등이 한정되지 않는다. 명세서에서 어떤 부분이 어떤 구성요소를 '포함' 또는 '구비'한다고 할 때, 이는 명시적으로 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. In describing components of embodiments according to the present disclosure, symbols such as first, second, i), ii), a), b) may be used. These symbols are only for distinguishing the components from other components, and the nature, order, or sequence of the components are not limited by the symbols. When a part in the specification is said to "include" or "have" a component, this does not mean that other components are excluded, but rather that other components may be included, unless explicitly stated otherwise.
첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 개시의 예시적인 실시형태를 설명하고자 하는 것이며, 본 개시가 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다.The detailed description set forth below, together with the accompanying drawings, is intended to explain exemplary embodiments of the present disclosure and is not intended to represent the only embodiments in which the present disclosure may be practiced.
도 1은 차량 시스템이 네트워크를 통해 서버에 연결되는 것을 개념적으로 도시한 것이다.Figure 1 conceptually illustrates a vehicle system being connected to a server via a network.
차량 시스템(100)은 LTE, 5G, Wi-Fi 등의 무선 네트워크(300)를 통해 차량과 관련된 기능이나 서비스를 제공하는 서버(200)에 연결될 수 있다.The vehicle system (100) can be connected to a server (200) that provides vehicle-related functions or services through a wireless network (300) such as LTE, 5G, or Wi-Fi.
도 2는 외부 네트워크에 연결되는 차량을 구성하는 기능 블록을 도시한 것이다.Figure 2 illustrates the functional blocks that constitute a vehicle connected to an external network.
차량 시스템(100)은, 외부 네트워크 및 내부 네트워크에 연결되는 게이트웨이(110), 및 내부 네트워크에 연결되는 서브시스템들을 포함하여 구성될 수 있다. 서브 시스템들은, 예를 들어 파워트레인(PowerTrain) 서브시스템(120), 바디(Body) 서브시스템(130), 섀시(Chassis) 서브시스템(140), 인포테인먼트(Infotainment) 서브시스템(150) 등을 포함할 수 있다.A vehicle system (100) may be configured to include a gateway (110) connected to an external network and an internal network, and subsystems connected to the internal network. The subsystems may include, for example, a powertrain subsystem (120), a body subsystem (130), a chassis subsystem (140), an infotainment subsystem (150), etc.
각 서브시스템(120, 130, 140, 150)은 비슷한 기능을 하는 부품들이 같은 종류의 내부 버스로 연결된 것으로서 하나 이상의 전장 부품을 포함하고, 각 전장 부품은 해당하는 ECU에 의해 각각 제어 및 구동될 수 있다.Each subsystem (120, 130, 140, 150) includes one or more electrical components with similar functions connected by the same type of internal bus, and each electrical component can be controlled and driven by a corresponding ECU.
파워트레인(PowerTrain) 서브시스템(120)은, 차량의 구동력을 발생시키는 부품들의 집합으로, 엔진, 모터, 변속기, 배터리, 발전기 등의 부품 및 각 부품을 제어하기 위한 ECU(121, 122, 123)를 포함할 수 있다.The powertrain subsystem (120) is a collection of components that generate the driving force of a vehicle, and may include components such as an engine, motor, transmission, battery, generator, etc., and an ECU (121, 122, 123) for controlling each component.
바디 서브시스템(130)은, 탑승자의 편의와 안전을 높이기 위한 부품들의 집합으로, 시트, 난방/환기/에어컨(HVAC), 조명, 도어, 창문, 실내외 조명 등의 부품 및 각 부품을 제어하기 위한 ECU(131, 132, 133)를 포함할 수 있다.The body subsystem (130) is a collection of components for enhancing the convenience and safety of passengers, and may include components such as seats, heating/ventilation/air conditioning (HVAC), lighting, doors, windows, indoor/outdoor lighting, and an ECU (131, 132, 133) for controlling each component.
섀시 서브시스템(140)은, 바디를 제외한 자동차 주행에 필요한 나머지 부품들의 집합으로, 조향, 브레이크, 현가, 타이어 압력 측정 등과 관련된 부품 및 각 부품을 제어하기 위한 ECU(141, 142, 143)를 포함할 수 있다.The chassis subsystem (140) is a set of parts required for driving a vehicle excluding the body, and may include parts related to steering, brakes, suspension, tire pressure measurement, etc., and an ECU (141, 142, 143) for controlling each part.
인포테인먼트 서브시스템(150)은 주행 안내 또는 멀티미디어와 관련된 부품들의 집합으로, 내비게이션, 멀티미디어 시스템, 헤드업 디스플레이 등의 부품 및 각 부품을 제어하기 위한 ECU(151, 152, 153)를 포함할 수 있다.The infotainment subsystem (150) is a collection of components related to driving guidance or multimedia, and may include components such as a navigation system, a multimedia system, a head-up display, and an ECU (151, 152, 153) for controlling each component.
게이트웨이(110)와 서브시스템을 구성하는 전장 부품을 연결하는 내부 네트워크는 LIN(Local Interconnect Network), CAN(Control Area Network), CAN-FD, FlexRay, MOST(Media Oriented Systems Transport), Ethernet 등의 통신 프로토콜을 이용할 수 있다.The internal network connecting the gateway (110) and the electrical components that constitute the subsystem can use communication protocols such as LIN (Local Interconnect Network), CAN (Control Area Network), CAN-FD, FlexRay, MOST (Media Oriented Systems Transport), and Ethernet.
다른 통신 프로토콜을 사용하는 다른 서브시스템의 전장 부품들은 게이트웨이(110)를 통해 서로 데이터를 주고받을 수 있다.Electrical components of different subsystems using different communication protocols can exchange data with each other through the gateway (110).
도 3은 게이트웨이(110)를 구성하는 기능 블록을 도시한 것이다.Figure 3 illustrates the functional blocks that constitute the gateway (110).
게이트웨이(110)는 중앙 제어부(111, CCU(Central Control Unit)), 저장부(113, Storage), 외부 통신부(115) 및 내부 통신부(117)를 포함하여 구성될 수 있다.The gateway (110) may be configured to include a central control unit (111, CCU (Central Control Unit)), a storage unit (113, Storage), an external communication unit (115), and an internal communication unit (117).
중앙 제어부(111)는 차량 시스템(100)의 전반적인 동작을 제어하는 기능을 한다.The central control unit (111) has the function of controlling the overall operation of the vehicle system (100).
저장부(113)는 외부 네트워크 또는 내부 네트워크로부터 수신되는 데이터와 차량 시스템(100)의 동작과 관련된 데이터 또는 정보를 저장한다.The storage unit (113) stores data received from an external network or an internal network and data or information related to the operation of the vehicle system (100).
외부 통신부(115)는 외부 네트워크를 통해 서버(200)와 연결하기 위한 기능을 한다.The external communication unit (115) functions to connect to the server (200) via an external network.
내부 통신부(117)는 내부 네트워크를 통해 각 서브시스템(120, 130, 140, 150)의 전장 부품들(ECU)과 연결하기 위한 기능을 한다.The internal communication unit (117) functions to connect to the electrical components (ECU) of each subsystem (120, 130, 140, 150) through the internal network.
중앙 제어부(111), 내부 통신부(117) 및 별도의 저장부가 게이트웨이(110)와 분리되어 별도의 장치로 구성될 수도 있다.The central control unit (111), internal communication unit (117) and separate storage unit may be configured as separate devices separated from the gateway (110).
도 4는 CCU(111)가 수행하는 기능을 도시한 것이다.Figure 4 illustrates the functions performed by the CCU (111).
중앙 제어부(111)는, 탑승자의 요청, 주행 상황에 의한 필요 등에 따라 적어도 하나의 서브시스템(120, 130, 140, 150)에 포함된 적어도 하나의 전장 부품의 ECU를 제어하여 차량 시스템(100)의 여러 동작을 제어할 수 있다.The central control unit (111) can control various operations of the vehicle system (100) by controlling the ECU of at least one electric component included in at least one subsystem (120, 130, 140, 150) according to a request from a passenger, a need due to a driving situation, etc.
중앙 제어부(111)가 수행하는 기능, 특히 외부 네트워크 및/또는 내부 네트워크를 통해 전달되는 데이터에 기초하여 수행하는 기능에는, 주행/주차 관리, 원격 진단/제어, 구독 서비스(FoD) 관리, 소프트웨어 갱신, 보안 관리 등의 기능이 포함될 수 있다.The functions performed by the central control unit (111), particularly those performed based on data transmitted through an external network and/or an internal network, may include functions such as driving/parking management, remote diagnosis/control, subscription service (FoD) management, software update, and security management.
주행/주차 관리 기능(411)은 차량의 주행 및 주차 시 차량의 속도, 조향, 제동, 센서 데이터를 종합적으로 제어하여 안전성과 편의성을 향상하는 역할을 수행한다.The driving/parking management function (411) comprehensively controls the vehicle's speed, steering, braking, and sensor data when driving and parking the vehicle, thereby improving safety and convenience.
원격 진단/제어 기능(412)은, 차량 운행 때 수집한 상태 정보를 서버(200)로 전송하여 실시간 진단하도록 하고, 서버(200)로부터 수신되는 진단 결과를 토대로 차량의 제어 조건을 변경하거나 긴급 상황 때 원격 제어를 지원한다.The remote diagnosis/control function (412) transmits status information collected while the vehicle is in operation to the server (200) to enable real-time diagnosis, and changes the control conditions of the vehicle or supports remote control in an emergency situation based on the diagnosis results received from the server (200).
구독 서비스(FoD) 관리 기능(413)은, 새로운 기능을 서버(200)나 고객의 단말을 통해 다운 받아 활성화시키거나 이미 탑재되어 있지만 비활성화된 기능을 활성화하여 사용하도록 하는 FoD(Feature On Demand), 일종의 구독 서비스를 관리한다.The subscription service (FoD) management function (413) manages FoD (Feature On Demand), a type of subscription service, which enables new features to be downloaded and activated through the server (200) or the customer's terminal, or features that are already installed but deactivated to be activated and used.
중앙 제어부(111)는, 구독 서비스의 설정이나 해제 동작을 수행하고, 고객이 요청한 서비스가 고객이 구독을 선택하여 활성화시킨 서비스인지 여부 또는 구동 서비스의 활성화가 부정한 방법에 의한 것인지 여부를 확인하고 이에 기초하여 해당 서비스를 수행하거나 수행하지 않을 수 있다.The central control unit (111) performs the setting or cancellation operation of the subscription service, and checks whether the service requested by the customer is a service activated by the customer by selecting a subscription or whether the activation of the driving service is by an illegal method, and may perform or not perform the service based on this.
소프트웨어 갱신 기능(414)은, OTA가 적용되는 차량 시스템(100)에서 소프트웨어 갱신 조건이 만족할 때 중앙 제어부(111)가 스스로 수행하는 서비스로서, 차량 시스템(100) 전반의 동작을 관리하는 소프트웨어(중앙 제어부(111)의 동작 시스템)의 갱신뿐만 아니라 각 전장 부품의 ECU에 설치된 펌웨어(Firmware)의 갱신을 포함할 수 있다.The software update function (414) is a service that the central control unit (111) performs on its own when a software update condition is satisfied in a vehicle system (100) to which OTA is applied, and may include not only an update of the software (operation system of the central control unit (111)) that manages the operation of the entire vehicle system (100) but also an update of the firmware installed in the ECU of each electrical component.
보안 관리 기능(415)은, 차량 시스템(100)의 보안이나 접속하는 외부 장치의 인증과 관련된 기능이나 서비스를 포함할 수 있다.The security management function (415) may include functions or services related to the security of the vehicle system (100) or authentication of a connecting external device.
차량 시스템(100)과 관련된 보안 위협에는 펌웨어 변조, 차량 원격 제어 해킹, CAN의 위변조, 차량 불법 조작, 서비스 거부 등이 포함될 수 있다. 또한, 외부 네트워크 통신과 관련된 보안 위협에는 통신 도청, 메시지 위변조 등이 포함될 수 있다.Security threats related to the vehicle system (100) may include firmware tampering, vehicle remote control hacking, CAN tampering, vehicle illegal operation, and denial of service. Additionally, security threats related to external network communications may include communication eavesdropping and message tampering.
보안 관리 기능(415)은, 예를 들어 외부 네트워크를 통한 차량 내부 네트워크로의 침입을 탐지하여 대응하는 기능(IDS: Intrusion Detection System), 보안 이벤트와 관련된 데이터(보안 사고 직전 데이터)의 기록 서비스(EDR: Event Data Recorder) 등을 수행할 수 있다.The security management function (415) can perform, for example, a function to detect and respond to intrusions into the vehicle's internal network through an external network (IDS: Intrusion Detection System), a service to record data related to security events (data immediately before a security accident) (EDR: Event Data Recorder), etc.
도 5는 서버를 구성하는 기능 블록을 도시한 것이다.Figure 5 illustrates the functional blocks that constitute the server.
서버(200)는 관리부(210, Manager), 데이터베이스(220, Database), 저장부(230, Storage) 및 통신부(240) 등을 포함하여 구성될 수 있다.The server (200) may be configured to include a management unit (210, Manager), a database (220, Database), a storage unit (230, Storage), and a communication unit (240).
관리부(210)는 차량 시스템(100)의 요청에 따른 동작, 예를 들어 소프트웨어 갱신, FoD와 관련된 데이터 전송, 차량 보안/인증 등의 동작을 관리하는 기능을 수행한다.The management unit (210) performs a function of managing operations according to a request of the vehicle system (100), such as software update, data transmission related to FoD, vehicle security/authentication, etc.
데이터베이스(220)는 각 차량과 관련된 정보, 예를 들어 각 차량에 설치된 소프트웨어 버전, 활성화된 구독 서비스, 인증 관련 정보 등을 관리한다.The database (220) manages information related to each vehicle, such as the software version installed in each vehicle, activated subscription services, and authentication-related information.
저장부(230)는 여러 버전의 소프트웨어, 복수 차량의 주행과 관련된 데이터 등을 저장한다.The storage unit (230) stores multiple versions of software, data related to driving of multiple vehicles, etc.
통신부(240)는 외부 네트워크를 통해 차량 시스템(100)과 연결하여 데이터를 주고받기 위한 기능을 수행한다.The communication unit (240) performs a function for exchanging data by connecting to the vehicle system (100) through an external network.
서버(200)는 차량 시스템(100)의 중앙 제어부(111)가 수행하는 기능이나 서비스에 따라 구분되어 서로 다른 복수 개의 시스템으로 구성될 수도 있다.The server (200) may be composed of multiple different systems, each of which is divided according to the function or service performed by the central control unit (111) of the vehicle system (100).
데이터베이스(220)는 서버(200)와 분리되어 설치될 수도 있다.The database (220) may be installed separately from the server (200).
도 6은 본 개시의 일 실시예에 따른 시간 변조 방지 장치(600)를 블록도로 도시한 도면이다.FIG. 6 is a block diagram illustrating a time tamper prevention device (600) according to one embodiment of the present disclosure.
본 개시의 일 실시예에 따른 시간 변조 방지 장치(600)는 인증서 수신부(certificate receiving unit, 610), 사용자 검증부(user verifying unit, 620), 유효성 검증부(validity verifying unit, 630), 시간 획득부(time obtaining unit, 640), 시간오차 획득부(time difference obtaining unit, 650), 시간정보 비교부(time information comparing unit, 660), 인증서정보 기록부(certificate information recording unit, 670) 및 서비스 판정부(service deciding unit, 680)를 포함한다. 도 6에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 시간 변조 방지 장치(600)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다. 한편, 도 6에 도시된 구성요소들은 기능적으로 구분되는 요소들을 나타낸 것으로서, 적어도 하나의 구성요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있다.A time tampering prevention device (600) according to one embodiment of the present disclosure includes a certificate receiving unit (610), a user verifying unit (620), a validity verifying unit (630), a time obtaining unit (640), a time difference obtaining unit (650), a time information comparing unit (660), a certificate information recording unit (670), and a service deciding unit (680). Not all blocks illustrated in FIG. 6 are essential components, and some blocks included in the time tampering prevention device (600) may be added, changed, or deleted in other embodiments. Meanwhile, the components illustrated in FIG. 6 represent functionally distinct elements, and at least one of the components may be implemented in a form in which they are integrated with each other in an actual physical environment.
인증서 수신부(610)는 차량 내의 FoD 서비스에 대한 인증서를 서버(200)로부터 수신한다. The certificate receiving unit (610) receives a certificate for the FoD service in the vehicle from the server (200).
인증서 수신부(610)는 중앙 제어부(111)의 기능으로서 구현될 수 있다.The certificate receiving unit (610) can be implemented as a function of the central control unit (111).
인증서는 구독중인 적어도 하나의 FoD 서비스의 사용자에 대한 사용자 식별정보, 구독중인 적어도 하나의 FoD 서비스의 식별 정보, 구독중인 FoD 서비스별 활성화 여부에 대한 정보, 인증서의 생성시간, 인증서의 사용 기간 및 전자 서명 정보를 포함한다. The certificate includes user identification information for a user of at least one subscribed FoD service, identification information for at least one subscribed FoD service, information on whether each subscribed FoD service is activated, the creation time of the certificate, the period of use of the certificate, and electronic signature information.
구독중인 FoD 서비스별 활성화 여부에 대한 정보는 FoD 서비스별로 활성화 및 비활성화 중 어느 하나를 나타내는 정보일 수 있다. 또한, 인증서의 사용 기간은 FoD 서비스의 유효 기간과 같은 정보일 수 있으며, 사용 기간은 인증서의 시작시간 및 만료 시간 중 적어도 하나를 포함할 수 있다.Information regarding the activation status of each subscribed FoD service may indicate whether the FoD service is activated or deactivated. Additionally, the certificate's usage period may be the same as the FoD service's validity period, and the usage period may include at least one of the certificate's start time and expiration time.
사용자 검증부(620)는 사용자 식별정보를 이용하여 구독중인 FoD 서비스의 사용자를 검증한다. The user verification unit (620) verifies the user of the subscribed FoD service using user identification information.
사용자 검증부(620)는 저장소에 저장하고 있는 사용자 식별정보와 인증서에 포함된 사용자 식별정보와 동일한지 여부를 확인하여 FoD 서비스의 사용자를 검증한다. The user verification unit (620) verifies the user of the FoD service by checking whether the user identification information stored in the storage is identical to the user identification information included in the certificate.
사용자 검증부(620)는 중앙 제어부(111)의 기능으로서 구현될 수 있으나, 실시예에 따라서는 수신된 인증서와 관련된 FoD 서비스와 관련된 하나의 타겟 ECU(예컨대, 인포테인먼트 서브시스템(150) 내의 해당 ECU(151))의 기능으로서 구현될 수도 있다.The user verification unit (620) may be implemented as a function of the central control unit (111), but depending on the embodiment, it may also be implemented as a function of one target ECU (e.g., the corresponding ECU (151) within the infotainment subsystem (150)) related to the FoD service associated with the received certificate.
이하의 설명에서, 서버(200)로부터 수신된 인증서와 관련된 특정 FoD 서비스에 해당하는 하나의 타겟 ECU가 인포테인먼트 서브시스템(150) 내의 하나의 ECU인 ECU(151)인 것으로 가정하여 설명한다.In the following description, it is assumed that one target ECU corresponding to a specific FoD service related to a certificate received from a server (200) is an ECU (151) within an infotainment subsystem (150).
유효성 검증부(630)는 수신된 인증서 내의 전자 서명 정보를 이용하여 인증서의 유효성을 검증한다.The validation unit (630) verifies the validity of the certificate using the electronic signature information in the received certificate.
유효성 검증부(630)는 저장소(미도시)에 저장된 공개 키를 이용하여 인증서의 전자 서명에 대한 유효성을 검증한다. 여기서 공개키는 저장소(미도시)에 저장될 수도 있고 서버(200)로부터 전송받을 수도 있다. 또한, 저장소(미도시)는 해당 타겟 ECU(151)에 포함되거나 게이트웨이(110)에 포함될 수도 있다.The validation unit (630) verifies the validity of the electronic signature of the certificate using a public key stored in a storage (not shown). Here, the public key may be stored in the storage (not shown) or transmitted from the server (200). In addition, the storage (not shown) may be included in the target ECU (151) or the gateway (110).
이하에서 설명되는 시간 획득부(640), 시간오차 획득부(650), 시간정보 비교부(660), 인증서정보 기록부(670) 및 서비스 판정부(680)의 기능은 해당 ECU(151) 내에 구현될 수 있으나, 본 발명이 이에 한정되지 않고 이 기능들 중 적어도 하나의 기능은 게이트웨이(110) 또는 기타 다양한 장치 내에 구현될 수도 있다.The functions of the time acquisition unit (640), time error acquisition unit (650), time information comparison unit (660), certificate information recording unit (670), and service determination unit (680) described below may be implemented within the corresponding ECU (151), but the present invention is not limited thereto, and at least one of these functions may be implemented within the gateway (110) or other various devices.
시간 획득부(640)는 차량의 제1 현재시간을 획득하고 FoD 서비스의 활성화와 관련된 클럭 시간을 획득한다.The time acquisition unit (640) acquires the first current time of the vehicle and acquires the clock time related to the activation of the FoD service.
시간 획득부(640)는 차량 내의 복수의 제어기와 관련된 게이트웨이(110)로부터 제1 현재시간을 획득하고, 인증서에 해당하는 FoD 서비스의 활성화 또는 비활성화를 결정하는 해당 제어기(151)로부터 획득한다.The time acquisition unit (640) acquires the first current time from a gateway (110) related to multiple controllers in the vehicle, and acquires it from the corresponding controller (151) that determines activation or deactivation of the FoD service corresponding to the certificate.
제1 현재 시간은 현재 시점의 연월일시 분초를 나타내는 정보일 수 있으며, 에포크 타임으로 변환된 시간 정보(EPM: Epoch Time-based Parameter)일 수 있다.The first current time may be information indicating the year, month, day, hour, minute, and second of the current point in time, and may be time information converted to epoch time (EPM: Epoch Time-based Parameter).
또한, 클럭 시간은 제어기(151) 내의 RTC(real time clock)으로부터 획득될 수 있으며, 클럭 시간의 데이터 형태는 클럭 카운터 형태일 수 있다.Additionally, the clock time can be obtained from the RTC (real time clock) in the controller (151), and the data form of the clock time can be in the form of a clock counter.
본 실시예에서, 제1 현재 시간의 데이터 형태 및 클럭 시간의 데이터 형태는 특정 데이터 형태로 한정하지 않으며, 그 둘은 서로 비교 가능한 형태의 데이터 형태일 수 있다.In this embodiment, the data type of the first current time and the data type of the clock time are not limited to specific data types, and the two can be data types that are comparable to each other.
시간오차 획득부(650)는 제1 현재 시간과 클럭 시간 사이의 차이인 제1 시간 오차를 획득한다.The time error acquisition unit (650) acquires a first time error, which is the difference between the first current time and the clock time.
여기서, 제1 시간 오차는 제1 현재 시각에서 클럭 시간을 뺀 값이거나, 클럭 시간에서 제1 현재 시각을 뺀 값이거나, 제1 현재 시간과 클럭 시간 사이의 차이의 절대값일 수 있다.Here, the first time error can be a value obtained by subtracting the clock time from the first current time, a value obtained by subtracting the first current time from the clock time, or an absolute value of the difference between the first current time and the clock time.
시간정보 비교부(660)는 제1 시간 오차와 관련한 정보와, 인증서와 관련하여 저장소(미도시)에 기 저장된 이전 시간 오차 정보를 서로 비교하여 비교 결과를 생성한다.The time information comparison unit (660) compares information related to the first time error with previous time error information stored in a storage (not shown) related to the certificate to generate a comparison result.
인증서정보 기록부(670)는 인증서와 관련한 기 저장된 이전 시간 오차 정보가 저장소(미도시)에 존재하지 않는 경우, 제1 시간 오차에 대한 정보를 인증서와 관련한 이전 시간 오차 정보로서 저장소(미도시)에 저장한다.If previously stored time error information related to the certificate does not exist in the storage (not shown), the certificate information recorder (670) stores information about the first time error as previous time error information related to the certificate in the storage (not shown).
시간정보 비교부(660)는 제1 시간 오차에 대하여 제1 고유 코드를 생성하고, 여기서 생성된 제1 고유 코드를 제1 시간 오차와 관련한 정보(즉, 제1 시간 오차 관련 정보)로 결정한다.The time information comparison unit (660) generates a first unique code for the first time error, and determines the generated first unique code as information related to the first time error (i.e., first time error related information).
시간정보 비교부(660)는 결정된 제1 시간 오차 관련 정보 및 저장소(미도시)에 기 저장된 이전 시간 오차 정보를 서로 비교하여 비교 결과를 생성한다.The time information comparison unit (660) compares the determined first time error related information with the previous time error information stored in a storage (not shown) to generate a comparison result.
시간정보 비교부(660)는 저장소(미도시)에 저장된 고유 코드 생성키를 이용하여 제1 시간 오차와 관련한 제1 고유 코드를 생성한다.The time information comparison unit (660) generates a first unique code related to the first time error using a unique code generation key stored in a storage (not shown).
제1 고유 코드는 MAC(Message Authentication Code)일 수 있으며, MAC는 고유 코드 생성키를 이용하여 생성되는 메시지 인증 코드로서 특정 데이터가 변조되지 않았음을 보장하는 암호학적 해시값을 갖는다.The first unique code may be a MAC (Message Authentication Code), which is a message authentication code generated using a unique code generation key and has a cryptographic hash value that ensures that specific data has not been tampered with.
MAC을 구현하는 방법으로는 CMAC(Cipher-based Message Authentication Code), HMAC(Hash-based Message Authentication Code), GMAC(Galois Message Authentication Code) 등을 사용할 수 있다.Methods for implementing MAC include CMAC (Cipher-based Message Authentication Code), HMAC (Hash-based Message Authentication Code), and GMAC (Galois Message Authentication Code).
제1 시간 오차와 관련한 제1 고유 코드가 제1 시간 오차에 대한 정보로서 생성되도록 구현된 경우, 저장소(미도시)에는 이전 시간 오차 정보가 고유 코드 형태로 저장된다.If the first unique code related to the first time error is implemented to be generated as information about the first time error, the previous time error information is stored in the form of a unique code in the storage (not shown).
시간정보 비교부(660)는 복수의 오차값에 대하여 순차적으로 생성된 복수의 제1 고유 코드 중에서 저장소(미도시)에 기 저장된 이전 시간 오차 정보와 일치하는 것이 존재하는지 여부를 확인한다.The time information comparison unit (660) checks whether, among the plurality of first unique codes sequentially generated for the plurality of error values, there is one that matches the previous time error information stored in the storage (not shown).
시간정보 비교부(660)는 제1 시간 오차를 기준으로 일정 범위 내의 복수의 오차값에 대하여 순차적으로 제1 고유 코드를 생성하여 생성된 제1 고유 코드를 제1 시간 오차에 대한 정보로서 결정한다. 시간정보 비교부(660)는 이와 같이 생성된 제1 시간 오차에 대한 정보를 이전 시간 오차 정보와 비교한다.The time information comparison unit (660) sequentially generates a first unique code for a plurality of error values within a certain range based on the first time error and determines the generated first unique code as information on the first time error. The time information comparison unit (660) compares the information on the first time error generated in this way with previous time error information.
시간정보 비교부(660)는 복수의 오차값에 대하여 순차적으로 제1 고유 코드를 생성(즉, 제1 시간 오차에 대한 정보를 생성)하면서 제1 시간 오차에 대한 정보와 이전 시간 오차 정보를 비교하다가 이전 시간 오차 정보와 일치하는 제1 시간 오차에 대한 정보가 생성된 경우, 복수의 오차값 중에서 더 이상의 오차값에 대한 제1 시간 오차에 대한 정보의 생성은 중단하고 비교 결과가 정상임을 판정한다.The time information comparison unit (660) sequentially generates a first unique code for a plurality of error values (i.e., generates information on the first time error) and compares the information on the first time error with the previous time error information. When information on the first time error that matches the previous time error information is generated, the generation of information on the first time error for any more error values among the plurality of error values is stopped and the comparison result is determined to be normal.
서비스 판정부(680)는 비교 결과에 따라, 인증서에 포함된 FoD 서비스의 적용 여부를 결정한다.The service judgment unit (680) determines whether to apply the FoD service included in the certificate based on the comparison result.
시간정보 비교부(660)에 의해 일정 범위 내의 복수의 오차값에 대하여 순차적으로 제1 고유 코드를 생성하면서, 생성된 제1 고유 코드마다 이전 시간 오차 정보와 비교하여도 서로 일치하는 비교 결과가 전혀 생성되지 않은 경우, 즉 비교 결과가 인증서의 비정상인 것으로 판정된 경우, 서비스 판정부(680)는 인증서가 부정 사용된 인증서로 판정하고 종료한다.When the time information comparison unit (660) sequentially generates a first unique code for a plurality of error values within a certain range, and compares each generated first unique code with the previous time error information, if no matching comparison result is generated, i.e., if the comparison result is determined to be abnormal for the certificate, the service judgment unit (680) determines that the certificate has been used illegally and terminates the process.
서비스 판정부(680)는 시간정보 비교부(660)의 비교 결과가 제1 시간 오차 정보와 기 저장된 이전 시간 오차 정보가 서로 동일함을 의미하는 경우, 인증서 내의 FoD 서비스에 대한 활성화 여부 정보에 따라 해당 FoD 서비스를 활성화 또는 비활성화한다.If the comparison result of the time information comparison unit (660) means that the first time error information and the previously stored time error information are identical, the service judgment unit (680) activates or deactivates the corresponding FoD service according to the activation information for the FoD service in the certificate.
서비스 판정부(680)는 시간정보 비교부(660)에 의해 비교 결과가 정상인 것으로 판정된 경우, 인증서로부터 FoD 서비스의 식별정보, FoD 서비스의 활성화 여부에 대한 정보 및 유효기간을 획득한다. 이때, 서비스 판정부(680)는 유효 기간 및 해당 FoD 서비스의 활성화 여부에 대한 정보에 기초하여 해당 FoD 서비스의 활성화 또는 비활성화를 결정한다.If the comparison result is determined to be normal by the time information comparison unit (660), the service judgment unit (680) obtains the identification information of the FoD service, information on whether the FoD service is activated, and the validity period from the certificate. At this time, the service judgment unit (680) determines whether to activate or deactivate the corresponding FoD service based on the validity period and the information on whether the corresponding FoD service is activated.
서비스 판정부(680)는 시간정보 비교부(660)의 비교 결과가 정상이더라도 제1 현재시간이 유효 기간을 경과한 경우, 해당 FoD 서비스가 종료된 것으로 판정한다.The service judgment unit (680) determines that the corresponding FoD service has ended if the first current time has passed the validity period even if the comparison result of the time information comparison unit (660) is normal.
서비스 판정부(680)는 시간정보 비교부(660)의 비교 결과가 정상이고 제1 현재시간이 유효 기간을 경과하지 않은 경우, 해당 FoD 서비스의 활성화 여부에 대한 정보에 기초하여 FoD 서비스의 활성화 또는 비활성화를 결정한다. 해당 FoD 서비스의 활성화 여부에 대한 정보는 해당 FoD 서비스의 활성화를 의미하는 정보이거나 해당 FoD 서비스의 비활성화를 의미하는 정보일 수 있다.If the comparison result of the time information comparison unit (660) is normal and the first current time has not expired, the service judgment unit (680) determines whether to activate or deactivate the FoD service based on information regarding whether the FoD service is activated. The information regarding whether the FoD service is activated may be information indicating the activation of the FoD service or information indicating the deactivation of the FoD service.
인증서정보 기록부(670)는 시간정보 비교부(660)의 비교 결과에 따라, 제1 시간 오차에 대한 정보를 인증서와 관련한 이전 시간 오차 정보로서 업데이트하여 저장소(미도시)에 저장한다. 여기서, 저장소(미도시)에 업데이트되는 제1 시간 오차에 대한 정보는 제1 시간 오차가 제1 고유 코드로 변환된 것을 의미한다.The certificate information recorder (670) updates the information on the first time error as previous time error information related to the certificate based on the comparison result of the time information comparison unit (660) and stores the updated information in a storage (not shown). Here, the information on the first time error updated in the storage (not shown) means that the first time error has been converted into a first unique code.
즉, 시간정보 비교부(660)의 비교 결과가 정상인 경우, 인증서정보 기록부(670)는 저장소(미도시)에 기 저장된 이전 시간 오차 정보를 대신하여 제1 시간 오차에 해당하는 제1 고유 코드를 인증서와 관련한 이전 시간 오차 정보로서 업데이트한다.That is, if the comparison result of the time information comparison unit (660) is normal, the certificate information recording unit (670) updates the first unique code corresponding to the first time error as the previous time error information related to the certificate, replacing the previous time error information already stored in the storage (not shown).
도 7은 본 개시의 일 실시예에 따른 시간 변조 방지 방법을 흐름도로 예시한 도면이다. FIG. 7 is a flowchart illustrating a time tamper prevention method according to one embodiment of the present disclosure.
본 개시의 일 실시예에 따른 시간 변조 방지 방법은 시간 변조 방지 장치(600)에 의해 수행된다.A time tamper prevention method according to one embodiment of the present disclosure is performed by a time tamper prevention device (600).
인증서 수신부(610)는 서버(200)로부터 인증서를 수신한 차량 내의 FoD 서비스에 대한 인증서를 서버(200)로부터 수신하고, 사용자 검증부(620)는 사용자 식별정보를 이용하여 구독중인 FoD 서비스의 사용자를 검증하고, 유효성 검증부(630)는 수신된 인증서 내의 전자 서명 정보를 이용하여 인증서의 유효성을 검증한다(S710).The certificate receiving unit (610) receives a certificate for a FoD service in a vehicle from the server (200), the user verification unit (620) verifies the user of the subscribed FoD service using user identification information, and the validity verification unit (630) verifies the validity of the certificate using the electronic signature information in the received certificate (S710).
참고로, 유효성 검증부(630)가 수신된 인증서 내의 전자 서명 정보를 이용하여 인증서의 유효성을 검증하는 과정은, S710에서 수행되지 않고 후술하는 S770 과정에서 수행될 수도 있다.For reference, the process of the validation unit (630) verifying the validity of the certificate using the electronic signature information in the received certificate may not be performed in S710, but may be performed in the S770 process described later.
시간 획득부(640)는 차량의 제1 현재시간(GWT, Gateway Time)을 획득하고 FoD 서비스의 활성화와 관련된 클럭 시간(RTC_ECU)을 획득한다(S720).The time acquisition unit (640) acquires the first current time (GWT, Gateway Time) of the vehicle and acquires the clock time (RTC_ECU) related to the activation of the FoD service (S720).
시간오차 획득부(650)는 제1 현재 시간과 클럭 시간 사이의 차이인 제1 시간 오차(DT, Delta(Time Difference))를 획득한다(S730).The time error acquisition unit (650) acquires the first time error (DT, Delta (Time Difference)), which is the difference between the first current time and the clock time (S730).
시간정보 비교부(660)는 제1 시간 오차에 대한 정보와, 인증서와 관련하여 저장소(701)에 기 저장된 이전 시간 오차 정보(MDM', MAC Delta in Minute')를 서로 비교하여 비교 결과를 생성한다(S740).The time information comparison unit (660) compares the information on the first time error with the previous time error information (MDM', MAC Delta in Minute') previously stored in the storage (701) in relation to the certificate, and generates a comparison result (S740).
도 8은 시간정보 비교부(660)에 의한 시간정보 비교 과정(S740)을 상세히 예시한 도면이다.Figure 8 is a drawing illustrating in detail the time information comparison process (S740) by the time information comparison unit (660).
시간정보 비교부(660)는 제1 시간 오차(DT)를 비교 시간 단위로 변환한다(S810). 즉, S810 과정에서는, DM=round(DT/TW) 연산 동작에 의해 DT를 TW(Time Window)로 나눈 후 나누어진 값에서 소수점 이하를 버려서 시간단위 변환값(DM, Delta in Minute)을 획득한다. 여기서 DT는 초 단위의 시간을 의미하며, TW는 DT의 시간 단위 대비 비교 시간 단위를 나타내기 위한 계수이다. DT가 초 단위인 경우, TW는 예컨대 분 단위에 해당하는 60의 값을 갖거나, 시간 단위에 해당하는 3600의 값을 가질 수 있다.The time information comparison unit (660) converts the first time error (DT) into a comparison time unit (S810). That is, in the S810 process, DT is divided by TW (Time Window) through the DM=round(DT/TW) operation, and then the decimal point is discarded from the divided value to obtain a time unit conversion value (DM, Delta in Minute). Here, DT means time in seconds, and TW is a coefficient for indicating the comparison time unit compared to the time unit of DT. If DT is in seconds, TW can have a value of 60 corresponding to a minute unit, or a value of 3600 corresponding to a time unit.
시간정보 비교부(660)는 변수 i에 기설정 값 TWS(Time Window Size)를 할당한다(S820).The time information comparison unit (660) assigns a preset value TWS (Time Window Size) to variable i (S820).
여기서, TWS는 제1 시간 오차에 대한 기설정 오차 범위를 나타내는 값이다.Here, TWS is a value representing the preset error range for the first time error.
시간정보 비교부(660)는 인증서와 관련하여(또는 해당 FoD 서비스와 관련하여) 저장소(701)에 저장된 이전 고유 코드(MDM')을 획득한다(S830).The time information comparison unit (660) obtains the previous unique code (MDM') stored in the storage (701) in relation to the certificate (or in relation to the corresponding FoD service) (S830).
시간정보 비교부(660)는 변수 i에 TWS를 곱한 값에 DM 값을 더하여 DMi로 저장한다(S840).The time information comparison unit (660) adds the DM value to the value obtained by multiplying the variable i by TWS and stores it as DMi (S840).
시간정보 비교부(660)는 DMi에 대한 제1 고유 코드를 MDMi로 저장한다(S850). DMi에 대한 제1 고유 코드 MDMi도 이전 고유 코드(MDM')의 생성시와 동일한 고유 코드 생성키(K)를 이용하여 생성된다.The time information comparison unit (660) stores the first unique code for DMi as MDMi (S850). The first unique code MDMi for DMi is also generated using the same unique code generation key (K) as that used to generate the previous unique code (MDM').
시간정보 비교부(660)는 MDMi와 MDM'이 동일한지 여부를 비교한다(S860). 만일, 이 비교의 결과, MDMi와 MDM'이 동일하다면 시간정보 비교부(660)에 의한 시간 오차 검증이 성공한 것이 된다.The time information comparison unit (660) compares whether MDMi and MDM' are identical (S860). If this comparison results in MDMi and MDM' being identical, the time error verification by the time information comparison unit (660) is deemed successful.
시간정보 비교부(660)에 의한 시간 오차 검증이 성공한 경우(즉, 시간정보 비교부(660)에 의해 비교 결과가 정상인 것으로 판정된 경우), 인증서정보 기록부(670)는 제1 시간 오차에 대한 정보를 인증서와 관련한 이전 시간 오차 정보로서 업데이트하여 저장소(701)에 저장한다(S760). 여기서, 저장소(미도시)에 업데이트되는 제1 시간 오차에 대한 정보는 제1 시간 오차가 제1 고유 코드로 변환된 것을 의미한다.If the time error verification by the time information comparison unit (660) is successful (i.e., if the comparison result is determined to be normal by the time information comparison unit (660), the certificate information recording unit (670) updates the information on the first time error as previous time error information related to the certificate and stores it in the storage (701) (S760). Here, the information on the first time error updated in the storage (not shown) means that the first time error has been converted into a first unique code.
유효성 검증부(630)는 수신된 인증서 내의 전자 서명 정보를 이용하여 인증서의 유효성을 검증한다(S770). 만일, S770 단계에서의 검증이 실패하면 종료한다.The validation unit (630) verifies the validity of the certificate using the electronic signature information within the received certificate (S770). If the verification at step S770 fails, the process ends.
S770 단계에서의 검증이 성공한 경우, 서비스 판정부(680)는 수신된 인증서로부터 FoD 서비스의 식별정보, FoD 서비스의 활성화 여부에 대한 정보 및 유효기간을 포함하는 데이터를 추출한다(S780).If the verification at step S770 is successful, the service judgment unit (680) extracts data including the identification information of the FoD service, information on whether the FoD service is activated, and the validity period from the received certificate (S780).
이때, 서비스 판정부(680)는 유효 기간 및 해당 FoD 서비스의 활성화 여부에 대한 정보에 기초하여 해당 FoD 서비스의 활성화 또는 비활성화를 결정한다(S790).At this time, the service judgment unit (680) determines whether to activate or deactivate the corresponding FoD service based on the information on the validity period and whether the corresponding FoD service is activated (S790).
S790 단계에서, 서비스 판정부(680)는 시간정보 비교부(660)의 비교 결과가 정상이더라도 제1 현재시간이 유효 기간을 경과한 경우, 해당 FoD 서비스가 종료된 것으로 판정한다.At step S790, the service judgment unit (680) determines that the corresponding FoD service has ended if the first current time has passed the validity period even if the comparison result of the time information comparison unit (660) is normal.
서비스 판정부(680)는 시간정보 비교부(660)의 비교 결과가 정상이고 제1 현재시간이 유효 기간을 경과하지 않은 경우, 해당 FoD 서비스의 활성화 여부에 대한 정보에 기초하여 FoD 서비스의 활성화 또는 비활성화를 결정한다.The service judgment unit (680) determines whether to activate or deactivate the FoD service based on information on whether the FoD service is activated, if the comparison result of the time information comparison unit (660) is normal and the first current time has not passed the validity period.
만일, S860 단계에서의 비교 결 MDMi와 MDM'이 동일하지 않은 경우, 시간정보 비교부(660)는 i 값이 TWS와 동일한지 여부를 확인한다(S870).If, in step S860, the comparison result MDMi and MDM' are not the same, the time information comparison unit (660) checks whether the i value is the same as TWS (S870).
만일, S870 단계에서의 확인 결과, i 값이 TWS과 동일하면 제1 시간 오차에 대한 기설정 오차 범위에 대하여 모든 비교가 다 이루어진 상태이므로, 시간정보 비교부(660)는 검증 실패라는 결과를 출력한다. 즉, 시간정보 비교부(660)에 의한 비교 결과가 정상이 아닌 것으로 판정된다.If, as a result of the verification at step S870, the i value is equal to TWS, all comparisons have been made for the preset error range for the first time error, and therefore the time information comparison unit (660) outputs a result of verification failure. In other words, the comparison result by the time information comparison unit (660) is determined to be abnormal.
S870 단계에서의 확인 결과, i 값이 TWS과 동일하지 않으면, 시간정보 비교부(660)는 i값을 1 증가시키고(S880), 다시 S840 단계로 진행한다.As a result of the verification at step S870, if the i value is not equal to TWS, the time information comparison unit (660) increases the i value by 1 (S880) and proceeds to step S840 again.
도 9는 본 개시에 따른 방법 또는 장치를 구현하기 위해 사용될 수 있는 예시적인 컴퓨팅 장치를 개략적으로 나타낸 블록 구성도이다.FIG. 9 is a block diagram schematically illustrating an exemplary computing device that may be used to implement a method or device according to the present disclosure.
컴퓨팅 장치(9)는 메모리(900), 프로세서(920), 스토리지(940), 입출력 인터페이스(960) 및 통신 인터페이스(980) 중 일부 또는 전부를 포함할 수 있다. 컴퓨팅 장치(9)는 데스크탑 컴퓨터, 서버 등과 같은 고정형(stationary) 컴퓨팅 장치뿐만 아니라, 랩탑 컴퓨터, 스마트 폰, 차량용 전장 등과 같은 휴대용(mobile) 컴퓨팅 장치일 수도 있다. 컴퓨팅 장치(9)는 인공지능 모델에 대한 연산들을 효율적인 방식으로 처리하는 것이 가능한 임의의 특수화된 하드웨어 가속기(accelerator)로 구현될 수도 있다. 예컨대, 컴퓨팅 장치(9)는 그래픽 처리 장치(graphic processing unit, GPU), 텐서 처리 장치(Tensor Processing Unit, TPU) 또는 신경망 처리 장치(Neural Processing Unit, NPU)를 포함할 수 있다. The computing device (9) may include some or all of a memory (900), a processor (920), storage (940), an input/output interface (960), and a communication interface (980). The computing device (9) may be a stationary computing device such as a desktop computer, a server, etc., as well as a mobile computing device such as a laptop computer, a smart phone, an automotive electronics, etc. The computing device (9) may be implemented with any specialized hardware accelerator capable of efficiently processing operations for an artificial intelligence model. For example, the computing device (9) may include a graphic processing unit (GPU), a tensor processing unit (TPU), or a neural processing unit (NPU).
메모리(900)는 프로세서(920)로 하여금 본 개시의 다양한 실시예에 따른 방법 또는 동작을 수행하도록 하는 프로그램을 저장할 수 있다. 예를 들면, 프로그램은 프로세서(920)에 의해서 실행 가능한(executable) 복수의 명령어들을 포함할 수 있고, 복수의 명령어들이 프로세서(920)에 의해서 실행됨으로써 도 7, 8에 도시된 방법이 수행될 수 있다. 메모리(900)는 단일 메모리 또는 복수의 메모리들일 수 있다. 이 경우, 본 개시의 다양한 실시예에 따른 방법 또는 동작을 수행하기 위해 필요한 정보는 단일 메모리에 저장되거나 복수의 메모리들에 나뉘어 저장될 수 있다. 메모리(900)가 복수의 메모리들로 구성된 경우, 복수의 메모리들은 물리적으로 분리될 수 있다. 메모리(900)는 휘발성 메모리 및 비휘발성 메모리 중 적어도 하나를 포함할 수 있다. 휘발성 메모리는 SRAM(Static Random Access Memory) 또는 DRAM(Dynamic Random Access Memory) 등을 포함하고, 비휘발성 메모리는 플래시 메모리(flash memory) 등을 포함한다.The memory (900) may store a program that causes the processor (920) to perform a method or operation according to various embodiments of the present disclosure. For example, the program may include a plurality of instructions executable by the processor (920), and the methods illustrated in FIGS. 7 and 8 may be performed by executing the plurality of instructions by the processor (920). The memory (900) may be a single memory or a plurality of memories. In this case, information required to perform the method or operation according to various embodiments of the present disclosure may be stored in a single memory or may be divided and stored in a plurality of memories. When the memory (900) is composed of a plurality of memories, the plurality of memories may be physically separated. The memory (900) may include at least one of a volatile memory and a nonvolatile memory. The volatile memory includes a static random access memory (SRAM) or a dynamic random access memory (DRAM), and the nonvolatile memory includes a flash memory.
프로세서(920)는 적어도 하나의 명령어들을 실행할 수 있는 적어도 하나의 코어를 포함할 수 있다. 프로세서(920)는 메모리(900)에 저장된 명령어들을 실행할 수 있다. 프로세서(920)는 단일 프로세서 또는 복수의 프로세서들일 수 있다. The processor (920) may include at least one core capable of executing at least one instruction. The processor (920) may execute instructions stored in the memory (900). The processor (920) may be a single processor or multiple processors.
스토리지(940)는 컴퓨팅 장치(9)에 공급되는 전력이 차단되더라도 저장된 데이터를 유지한다. 예를 들면, 스토리지(940)는 비휘발성 메모리를 포함할 수도 있고, 자기 테이프, 광학 디스크, 자기 디스크와 같은 저장 매체를 포함할 수도 있다. 스토리지(940)에 저장된 프로그램은 프로세서(920)에 의해서 실행되기 이전에 메모리(900)로 로딩될 수 있다. 스토리지(940)는 프로그램 언어로 작성된 파일을 저장할 수 있고, 파일로부터 컴파일러 등에 의해서 생성된 프로그램은 메모리(900)로 로딩될 수 있다. 스토리지(940)는 프로세서(920)에 의해서 처리될 데이터 및/또는 프로세서(920)에 의해서 처리된 데이터를 저장할 수 있다. Storage (940) maintains stored data even when power supplied to the computing device (9) is cut off. For example, storage (940) may include non-volatile memory, or may include storage media such as magnetic tape, optical disk, or magnetic disk. A program stored in storage (940) may be loaded into memory (900) before being executed by processor (920). Storage (940) may store a file written in a programming language, and a program generated from the file by a compiler or the like may be loaded into memory (900). Storage (940) may store data to be processed by processor (920) and/or data processed by processor (920).
입출력 인터페이스(960)는 키보드, 마우스, 터치 디스플레이, 마이크 등과 같은 입력 장치를 포함할 수 있고, 디스플레이, 스피커 등과 같은 출력 장치를 포함할 수 있다. 사용자는 입출력 인터페이스(960)를 통해 프로세서(920)에 의한 프로그램의 실행을 트리거하고/거나 프로세서(920)의 처리 결과를 확인할 수 있다.The input/output interface (960) may include input devices such as a keyboard, mouse, touch display, microphone, etc., and may include output devices such as a display, speaker, etc. A user may trigger execution of a program by the processor (920) and/or check the processing result of the processor (920) through the input/output interface (960).
통신 인터페이스(980)는 외부 네트워크에 대한 액세스를 제공할 수 있다. 컴퓨팅 장치(9)는 통신 인터페이스(980)를 통해 다른 장치들과 통신할 수 있다.The communication interface (980) may provide access to an external network. The computing device (9) may communicate with other devices via the communication interface (980).
본 발명에 따른 장치 또는 방법의 각 구성요소는 하드웨어 또는 소프트웨어로 구현되거나, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 각 구성요소의 기능이 소프트웨어로 구현되고 마이크로프로세서가 각 구성요소에 대응하는 소프트웨어의 기능을 실행하도록 구현될 수도 있다.Each component of the device or method according to the present invention may be implemented in hardware, software, or a combination of hardware and software. Furthermore, the functions of each component may be implemented in software, with a microprocessor executing the software functions corresponding to each component.
본 명세서에 설명되는 시스템들 및 기법들의 다양한 구현예들은, 디지털 전자 회로, 집적회로, FPGA(field programmable gate array), ASIC(application specific integrated circuit), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현예들은 프로그래밍가능 시스템 상에서 실행 가능한 하나 이상의 컴퓨터 프로그램들로 구현되는 것을 포함할 수 있다. 프로그래밍가능 시스템은, 저장 시스템, 적어도 하나의 입력 디바이스, 그리고 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들에게 데이터 및 명령들을 전송하도록 결합되는 적어도 하나의 프로그래밍가능 프로세서(이것은 특수 목적 프로세서일 수 있거나 혹은 범용 프로세서일 수 있음)를 포함한다. 컴퓨터 프로그램들(이것은 또한 프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 혹은 코드로서 알려져 있음)은 프로그래밍가능 프로세서에 대한 명령어들을 포함하며 "컴퓨터가 읽을 수 있는 기록매체"에 저장된다.Various implementations of the systems and techniques described herein may be implemented as digital electronic circuits, integrated circuits, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), computer hardware, firmware, software, and/or combinations thereof. These various implementations may include implementations of one or more computer programs executable on a programmable system. The programmable system includes at least one programmable processor (which may be a special purpose processor or a general purpose processor) coupled to receive data and instructions from and transmit data and instructions to a storage system, at least one input device, and at least one output device. Computer programs (also known as programs, software, software applications, or code) include instructions for the programmable processor and are stored on a "computer-readable recording medium."
컴퓨터가 읽을 수 있는 기록매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체는 ROM, CD-ROM, 자기 테이프, 플로피디스크, 메모리 카드, 하드 디스크, 광자기 디스크, 스토리지 디바이스 등의 비휘발성(non-volatile) 또는 비일시적인(non-transitory) 매체일 수 있으며, 또한 데이터 전송 매체(data transmission medium)와 같은 일시적인(transitory) 매체를 더 포함할 수도 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다.A computer-readable recording medium includes any type of recording device that stores data that can be read by a computer system. Such a computer-readable recording medium may be a non-volatile or non-transitory medium such as a ROM, CD-ROM, magnetic tape, floppy disk, memory card, hard disk, magneto-optical disk, storage device, and may further include a transitory medium such as a data transmission medium. Furthermore, the computer-readable recording medium may be distributed across network-connected computer systems, so that computer-readable code can be stored and executed in a distributed manner.
본 명세서의 흐름도/타이밍도에서는 각 과정들을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 개시의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 개시의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 개시의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 흐름도/타이밍도에 기재된 순서를 변경하여 실행하거나 각 과정들 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 흐름도/타이밍도는 시계열적인 순서로 한정되는 것은 아니다.Although the flowchart/timing diagram of this specification describes each process as being executed sequentially, this is merely an illustrative description of the technical idea of one embodiment of the present disclosure. In other words, a person of ordinary skill in the art to which one embodiment of the present disclosure belongs may modify and apply various modifications and variations by changing the order described in the flowchart/timing diagram without departing from the essential characteristics of one embodiment of the present disclosure, or by executing one or more of the processes in parallel. Therefore, the flowchart/timing diagram is not limited to a chronological order.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely an example of the technical idea of the present embodiment, and those skilled in the art will appreciate that various modifications and variations can be made without departing from the essential characteristics of the present embodiment. Therefore, the present embodiments are not intended to limit the technical idea of the present embodiment, but rather to explain it, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of the present embodiment should be interpreted by the claims below, and all technical ideas within a scope equivalent thereto should be interpreted as being included in the scope of rights of the present embodiment.
[부호의 설명][Explanation of symbols]
100: 차량 시스템 110: 게이트웨이100: Vehicle system 110: Gateway
111: CCU 113: 저장부111: CCU 113: Storage Unit
115: 외부 통신부 117: 내부 통신부115: External Communications Department 117: Internal Communications Department
120: 파워트레인 서브시스템 130: 바디 서브시스템120: Powertrain subsystem 130: Body subsystem
140: 섀시 서브시스템 150: 인포테인먼트 서브시스템140: Chassis subsystem 150: Infotainment subsystem
200: 서버 210: 관리부200: Server 210: Administration
220: 데이터베이스 230: 저장부220: Database 230: Storage
240: 통신부 300: 무선 네트워크240: Communications Department 300: Wireless Network
411: 주행/주차 관리 412: 원격 진단/제어411: Driving/Parking Management 412: Remote Diagnosis/Control
413: 구독 서비스(FoD) 관리 414: 소프트웨어 갱신413: Subscription Services (FoD) Management 414: Software Renewal
415: 보안 관리 600: 시간 변조 방지 장치415: Security Management 600: Time Tamper Protection Device
610: 인증서 수신부 620: 사용자 검증부610: Certificate receiving unit 620: User verification unit
630: 유효성 검증부 640: 시간 획득부630: Validation Unit 640: Time Acquisition Unit
650: 시간오차 획득부 660: 시간정보 비교부650: Time error acquisition unit 660: Time information comparison unit
670: 인증서정보 기록부 680: 서비스 판정부670: Certificate Information Record 680: Service Decision Record
701: 저장소701: Storage
9: 컴퓨팅 장치 900: 메모리9: Computing device 900: Memory
920: 프로세서 940: 스토리지920: Processor 940: Storage
960: 입출력 인터페이스 980: 통신 인터페이스960: Input/Output Interface 980: Communication Interface
CROSS-REFERENCE TO RELATED APPLICATIONCROSS-REFERENCE TO RELATED APPLICATION
본 특허출원은, 본 명세서에 그 전체가 참고로서 포함되는, 2024년 02월 28일에 한국에 출원한 특허출원번호 제10-2024-0029244호에 대해 우선권을 주장한다.This patent application claims priority to Korean Patent Application No. 10-2024-0029244, filed on February 28, 2024, which is incorporated herein by reference in its entirety.
Claims (20)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2024-0029244 | 2024-02-28 | ||
| KR20240029244 | 2024-02-28 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025183497A1 true WO2025183497A1 (en) | 2025-09-04 |
Family
ID=96921732
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2025/002813 Pending WO2025183497A1 (en) | 2024-02-28 | 2025-02-28 | Time falsification prevention method and apparatus for security of fod services |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025183497A1 (en) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015136107A (en) * | 2014-01-06 | 2015-07-27 | アーガス サイバー セキュリティ リミテッド | Global automobile safety system |
| KR20180042034A (en) * | 2016-10-17 | 2018-04-25 | 현대자동차주식회사 | V2x communication apparatus for verifying reliability of v2x data, system having the same and method thereof |
| KR20200091689A (en) * | 2019-01-23 | 2020-07-31 | 한국전자통신연구원 | Security management system for vehicle communication and operating method thereof, messege processing method of vehicle communication service providing system having the same |
| KR20220096636A (en) * | 2020-12-31 | 2022-07-07 | 주식회사 카카오 | Method and apparatus for providing mutiple subscription service |
| KR20220155850A (en) * | 2021-05-17 | 2022-11-24 | 현대자동차주식회사 | System and method for providing service of vehicle |
-
2025
- 2025-02-28 WO PCT/KR2025/002813 patent/WO2025183497A1/en active Pending
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2015136107A (en) * | 2014-01-06 | 2015-07-27 | アーガス サイバー セキュリティ リミテッド | Global automobile safety system |
| KR20180042034A (en) * | 2016-10-17 | 2018-04-25 | 현대자동차주식회사 | V2x communication apparatus for verifying reliability of v2x data, system having the same and method thereof |
| KR20200091689A (en) * | 2019-01-23 | 2020-07-31 | 한국전자통신연구원 | Security management system for vehicle communication and operating method thereof, messege processing method of vehicle communication service providing system having the same |
| KR20220096636A (en) * | 2020-12-31 | 2022-07-07 | 주식회사 카카오 | Method and apparatus for providing mutiple subscription service |
| KR20220155850A (en) * | 2021-05-17 | 2022-11-24 | 현대자동차주식회사 | System and method for providing service of vehicle |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11618395B2 (en) | Vehicle data verification | |
| WO2018194368A1 (en) | Method and apparatus for access control in distributed blockchain-based internet of things (iot) network | |
| WO2019194474A1 (en) | Electronic device and method for diagnosing vehicle | |
| WO2019225921A1 (en) | Method for storing digital key and electronic device | |
| WO2021060853A1 (en) | Network access control system and method therefor | |
| EP3334085B1 (en) | Management device, management system, key generation device, key generation system, key management system, vehicle, management method, key generation method, and computer program | |
| WO2022127064A1 (en) | Vehicle digital key distribution management method and device | |
| US20140032800A1 (en) | Vehicle message filter | |
| KR20190083336A (en) | Security provisioning and management of devices | |
| WO2018230988A1 (en) | Can communication based hacking attack detection method and system | |
| WO2017039046A1 (en) | Charging control apparatus and control method therefor | |
| WO2010068073A2 (en) | Method for providing service using device-identification data, device for same, and computer-readable medium on which program for same is recorded | |
| WO2020022700A1 (en) | Secure element for processing and authenticating digital key and operation method therefor | |
| WO2020189810A1 (en) | Hybrid biometric authentication system in vehicle, and operating method therefor | |
| WO2020013560A1 (en) | Device and method for managing block chain-based distribution-type autonomous travel information | |
| WO2020171466A1 (en) | Electronic device, and authentication method in electronic device | |
| WO2021125626A1 (en) | Electronic device for controlling entry or exit by using wireless communication, and method therefor | |
| WO2021206215A1 (en) | Apparatus and method for providing ict-based driver-specific evaluation analysis and compensation platform for two-wheeled vehicle driving | |
| WO2012060479A1 (en) | System for providing location information certification management service, and method for providing same | |
| WO2020045826A1 (en) | Electronic device for processing digital key, and operation method therefor | |
| WO2023120906A1 (en) | Method for receiving firmware and method for transmitting firmware | |
| WO2025183497A1 (en) | Time falsification prevention method and apparatus for security of fod services | |
| WO2020122368A1 (en) | System and method for securing and managing data in storage device by using secure terminal | |
| WO2021049681A1 (en) | Electronic device for performing authentication on basis of cloud server and control method therefor | |
| WO2022055301A1 (en) | On-boarding method, apparatus, and program for group authenticator |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 25762414 Country of ref document: EP Kind code of ref document: A1 |