WO2021171906A1 - 情報処理装置、及びプログラム起動方法 - Google Patents

情報処理装置、及びプログラム起動方法 Download PDF

Info

Publication number
WO2021171906A1
WO2021171906A1 PCT/JP2021/003372 JP2021003372W WO2021171906A1 WO 2021171906 A1 WO2021171906 A1 WO 2021171906A1 JP 2021003372 W JP2021003372 W JP 2021003372W WO 2021171906 A1 WO2021171906 A1 WO 2021171906A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
information
information processing
processing device
area
Prior art date
Application number
PCT/JP2021/003372
Other languages
English (en)
French (fr)
Inventor
伸義 森田
康広 藤井
金子 周平
晃啓 野村
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to CN202180014033.XA priority Critical patent/CN115244534A/zh
Priority to US17/796,158 priority patent/US20230114009A1/en
Publication of WO2021171906A1 publication Critical patent/WO2021171906A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Definitions

  • the present invention relates to an information processing device and a control device, and more particularly to a method of starting a program.
  • a program update technology that updates only the program in one storage area is being studied for a device having two storage areas that can hold the same type of program. Specifically, it has a startup area for executing programs and a memory area including a standby area for not executing programs, updates the program stored in the standby area, and replaces the startup area and standby area after the program update is completed. Update startup information. As a result, if the program update fails, the startup area that is not the update target is not affected.
  • Patent Document 1 Japanese Unexamined Patent Publication No. 2017-21434
  • the first verification unit verifies the validity of the update software and the version number
  • the rollback detection unit refers to the update software version number.
  • the version number of the current software held by the counter section is compared, it is detected whether the version of the update software is new, and if it is determined to be new, the update section updates the software using the update software.
  • the second verification unit verifies whether or not the software update is successful, and the version management unit determines the version number held by the counter unit only when the second verification unit succeeds in updating the software. It is described in the information processing device that increases until it matches the version number of the update software. According to the technique of Patent Document 1, it is possible to update the current program to the latest program that has not been tampered with.
  • the present invention has been made in view of the above problems, and the program to be started and the start area information have not been tampered with while ensuring that the program is the latest when the information processing apparatus is started.
  • the purpose is to reduce the operational load of program update workers.
  • a typical example of the invention disclosed in the present application is as follows. That is, a storage unit that is an information processing device that executes a program and includes a first area and a second area for rewritably storing programs of the same type having different versions, and a program stored in the storage unit. Each of the first area and the second area stores the program and the latest information on the newness of the program, and receives the program together with the program to be updated. It is characterized in that it is determined whether or not the storage unit is updated by the program based on the latest information, and among the programs stored in the respective areas, the latest information starts a new program.
  • the latestness of the program can be guaranteed by the latest information, and the area in which the latest program is stored can be selected and the program can be started at the time of starting. Issues, configurations and effects other than those mentioned above will be clarified by the description of the following examples.
  • an example of a program activation method for an information processing device for example, an Electronic Control Unit that controls a vehicle
  • an information processing device for example, an Electronic Control Unit that controls a vehicle
  • an in-vehicle network for example, an in-vehicle network
  • the technical idea of the present invention is not limited to this example.
  • it is an information processing device that has a two-sided configuration of a starting area and a standby area and updates a program instead of an in-vehicle control device (ECU)
  • ECU in-vehicle control device
  • the present invention is applicable.
  • FIG. 1 is a diagram showing a configuration of an information processing device according to an embodiment of the present invention.
  • the information processing device 1 is connected to another information processing device 3 via the communication bus 2.
  • the communication bus 2 may be physically composed of a plurality of communication buses, and the standards of these communication buses may be the same or different.
  • CAN registered trademark
  • LIN registered trademark
  • FlexRay registered trademark
  • Ethernet registered trademark
  • the information processing device 1 has a CPU (not shown), a ROM (not shown), and a RAM (not shown), and the CPU expands the program stored in the ROM into the RAM and executes the program to realize the following functions. That is, the information processing device 1 has the functions of the latest information verification unit 12, the verification expected value verification unit 13, the program update unit 14, the activation-related information verification unit 15, the activation area identification unit 16, and the activation area information update unit 17. , And a program execution unit 18. Further, the information processing device 1 includes a storage unit 19 which is a non-volatile storage device, and a communication unit 11 which is a communication interface and performs operations necessary for communication.
  • the communication unit 11 receives the message transmitted from the other information processing device 3 via the communication bus 2, and transmits the message to the other information processing device 3 via the communication bus 2.
  • the communication bus 2 may be physically composed of a plurality of communication buses.
  • the information processing device 1 uses the communication unit 11 to send and receive information necessary for updating the program.
  • the up-to-date information verification unit 12 compares the up-to-date information held by the information processing device 1 with the up-to-date information included in the update program-related data, and determines which is the new up-to-date information.
  • the verification expected value verification unit 13 verifies whether or not the update program-related data has been tampered with.
  • the program update unit 14 updates the standby area with update program-related data.
  • the activation-related information verification unit 15 verifies whether or not the predetermined activation-related information including the program to be verified and the latest information has been tampered with.
  • the activation area specifying unit 16 compares the latest information of each area and specifies an area holding the new latest information as an activation area.
  • the activation area information update unit 17 updates the area specified by the activation area identification unit 16 as activation area information 191 which will be described later.
  • the program execution unit 18 executes a program in the corresponding activation area.
  • the storage unit 19 stores start area information 191 indicating a storage area in which a program executed at startup is held, and verification target range information 192 indicating a verification target range of start-related information verification unit 15.
  • FIG. 2 is a flowchart of the process in which the information processing device 1 updates the program.
  • the execution subject of each step described below is a CPU (not shown) of the information processing device 1.
  • step 201 the information processing device 1 receives the update program-related data using the communication unit 11.
  • FIG. 4 shows an example of update program-related data 401 received by the information processing device 1 in step 201.
  • the program of the control device 4 is a package in the format of the update program-related data 401 shown in the figure, and is transmitted from the server.
  • the update program-related data 401 includes a program 402 executed by the information processing device 1, an up-to-date information 403 associated with the program 402, and when the verification expected value verification unit 13 verifies whether or not the program 402 has been tampered with. Includes the expected verification value 404 to be referenced.
  • the expected verification value 404 may be a signature value generated by using a public key cryptosystem such as DSA, ECDSA, or RSA, and a MAC (Message Authentication Code) generated by using a common key cryptosystem such as AES-CMAC. It can be a value of, a hash or a checksum.
  • step 202 the up-to-date information verification unit 12 acquires the up-to-date information 403 from the update program-related data 401 received in step 201, and obtains the acquired up-to-date information 403 and the up-to-date information held by the information processing device 1. compare.
  • step 203 the latestness information verification unit 12 proceeds to step 204 if the latestness information 403 acquired from the update program-related data 401 received in step 201 is newer as a result of the comparison in step 202, and newly If not, the process proceeds to step 208.
  • the value of the latest information 403 acquired from the update program related data 401 is "December 1, 2019 12:45:52”
  • the information processing device 1 is When the up-to-date information to be retained is "November 20, 2019 20:30:35”, it is determined that the received up-to-date information 403 is newer.
  • a counter that is incremented or a value that guarantees a nonce may be used as the latest information. In this case, it is determined that a larger value is newer.
  • step 204 the verification expected value verification unit 13 calculates the verification expected value by a predetermined verification expected value verification algorithm using the program 402 and the latest information 403 included in the update program-related data 401 received in step 201. Then, it is verified whether the calculated verification expected value matches the verification expected value 404 included in the update program-related data 401.
  • step 205 the verification expected value verification unit 13 proceeds to step 206 if the verification expected value calculated in step 204 and the verification expected value 404 match, and proceeds to step 208 if they do not match.
  • the activation area specifying unit 16 refers to the activation area information 191 to specify the current activation area, and specifies the standby area as the update applicable area for which the program should be updated.
  • FIG. 5 shows an example of activation area information 191 that the activation area specifying unit 16 refers to in order to specify whether each area of the storage unit 19 is an activation area in step 206.
  • the activation area information 191 includes a storage area 501 of the storage unit 19 corresponding to the device whose program should be updated, and an identifier 502 indicating an activation area and a standby area. For example, when the area 1 (A side) is "started” and the area 2 (B side) is "standby", it indicates that the current start area is the area 1 (A side).
  • the information indicating whether each area is the start area or the standby area is registered in the identifier 502 as shown in the figure, the information indicating which of the A side or the B side of each area is the start area. May be registered in the identifier 502, or information indicating which of the A-side or the B-side of each region is the standby region may be registered in the identifier 502.
  • step 207 the program update unit 14 updates the update corresponding area specified in step 206 by using the update program-related data 401. For example, when the program update unit 14 updates the area 2 (side B) specified as the area to be updated in step 206, the memory related to the area 2 (side B) at the address 601 is used as new update program-related data. rewrite.
  • FIG. 6 shows an example of the storage area to be updated in the program in step 207.
  • the address 601 indicates the address value assigned to the beginning of the storage area
  • the type 602 indicates the type of the storage area starting from the address 601
  • the update target 603 indicates whether the storage area starting from the address 601 is the update target.
  • the program update unit 14 updates the area 2 (side B) specified as the area to be updated in step 206
  • the program update unit 14 sets the area starting from the address 601 related to the side B among the types 602 as the update target, and this address. Rewrite the area starting with with the update program related data.
  • step 208 the information processing apparatus 1 executes a predetermined error process when the up-to-dateness is not guaranteed in step 203 or when the signature verification fails in step 205.
  • the program of the information processing device 1 connected to the in-vehicle network can be updated.
  • FIG. 3 is a flowchart showing a process in which the information processing device 1 starts a program.
  • the execution subject of each step described below is a CPU (not shown) of the information processing device 1.
  • the activation-related information verification unit 15 refers to the verification target range information 192 and specifies the target to be verified for falsification at the time of activation. In particular, in addition to the program to be started, the latestness of the area where the program is stored is also verified.
  • FIG. 7 shows an example of the verification target range information 192 that the activation-related information verification unit 15 refers to in order to specify the verification target range in step 301.
  • the verification target range information 192 indicates whether the address 701 indicating the address assigned to the beginning of the storage area, the type 702 indicating the type of the storage area starting from the address, and the storage area starting from the address 701 are the verification targets. Includes verification target 703.
  • the activation-related information verification unit 15 targets a storage area in a predetermined range after the address 701 “0x0050C000” whose verification target 703 is the “target”.
  • the verification target range of each storage area may be determined in advance, or may be dynamically changed based on a predetermined procedure. For example, the range actually used by the program may be the verification target range.
  • the activation-related information verification unit 15 verifies whether or not the verification target specified in step 301 has been tampered with. If the expected verification value calculated from the data stored in the verification target area and the expected verification value 404 written in the storage area in step 207 match, it can be determined that the verification target area has not been tampered with.
  • the expected verification value used in the verification process may be a MAC value generated using a common key cryptosystem such as AES-CMAC, or a signature value generated using a public key cryptosystem such as ECDSA or RSA. It may be a checksum.
  • step 303 the activation-related information verification unit 15 proceeds to step 304 if the verification results in step 302 show a match, and proceeds to step 307 if the verification results do not match.
  • step 304 the activation area specifying unit 16 acquires the latest information 403 stored in each storage area and identifies the area with the latest value.
  • step 305 the start area information update unit 17 sets the storage area 501 that holds the latest up-to-date information 403 identified in step 304 as the "start area”, and sets the storage area 501 that does not hold the latest up-to-date information 403 as "the start area”.
  • the startup area information 191 is updated as the "standby area”.
  • step 306 the program execution unit 18 executes the program stored in the storage area defined as the start area in step 305.
  • step 307 the information processing apparatus 1 executes a predetermined error process when the verification results do not match in step 303.
  • the latest information is compared (304), and the activation area is verified (302, 303) before the activation area information 191 is updated (305), but the latest information is compared. (304), the activation area may be verified (302, 303) after updating the activation area information 191 (305). That is, the processing of steps 302 and 303 is executed between steps 305 and 306. By doing so, the verification range is narrowed and the program can be started at high speed.
  • the standby area is verified together with the activation area, but in the above-described modification, the standby area is not verified and remains as an unverified area. Therefore, it is advisable to lock the program in the unverified area so that it will not be started.
  • the program can be safely started for the information processing device 1 connected to the in-vehicle network.
  • step 207 if the verification range targeted by the expected verification value 404 included in the update program-related data 401 and the verification range of the start-related information executed by the information processing apparatus at startup do not match, the program is updated. It is advisable to include both the expected verification value of the above and the expected verification value for starting the program in the update program-related data 401.
  • the expected value 804 for program update is used as the expected value for verification, and in the verification process at the time of program startup in step 302, the expected value 807 for startup is verified. Use as expected value.
  • FIG. 8 shows an example of the update program package 801 when the expected verification value for updating the program and the expected verification value for starting the program are different.
  • the update program package 801 includes update program-related data 802, program update up-to-date information 803, and program update verification expected value 804.
  • the update program-related data 802 includes program 805 and up-to-date startup data. Includes information 806 and expected activation verification value 807.
  • the update program-related data 802 is used by the program update unit 14 to rewrite the standby area in step 207.
  • the latestness information 803 for program update is generated when the update program package 801 is created, and is used by the latestness information verification unit 12 for verifying the latestness information in step 202.
  • the expected verification value 804 for program update is generated when the update program package 801 is created, and is used by the verification expected value verification unit 13 for verifying the update program in step 204.
  • the startup up-to-date information 806 is generated when the program 805 is created, and is referred to in step 303 for the start-up area specifying unit 16 to specify an area for holding the new up-to-date information.
  • the activation verification expected value 807 is generated when the program 805 is created, and is used as a verification expected value for the activation-related information verification unit 15 to verify whether or not the area to be verified has been tampered with in step 302.
  • the program update worker only needs to add the latest information at the time of generation of the update program-related data without being aware of the latest information held in the information processing device 1. As a result, the safety of the information processing device 1 can be ensured each time it is started, and the operational load of the program update worker can be suppressed.
  • the information processing device 1 has a storage unit 19 including a first area and a second area for rewritably storing programs of the same type having different versions, and a storage unit.
  • a calculation unit (CPU) for executing the program stored in 19 is provided, and each of the first area and the second area stores the program and the latest information regarding the newness of the program.
  • the latest information Based on the latest information received together with the program to be updated, it is determined whether to update the storage unit 19 with the program, and among the programs stored in a plurality of areas, the latest information starts a new program, so that the latest information is available.
  • the information can guarantee the version of the program. That is, at the time of startup, the area in which the latest program is stored can be selected and the program can be started.
  • each of the first region and the second region further stores the program stored in each region and the expected verification value for verifying the latest information, and the information processing apparatus 1 starts the program.
  • the expected value of verification is used to verify the program and the latest information of the program, and if the verification is successful, the program can be started. Therefore, the program to be started including the latest information has been tampered with. We can guarantee that there is no such thing.
  • one of the first area and the second area is a start area in which the program is executed and the other is a standby area in which the program is updated, the program is updated without stopping the information processing apparatus 1. can.
  • the program is included in the package and transmitted to the information processing device 1, and the package contains the latest information generated when the package is created, the latestness can be determined for each package.
  • the program is included in the package and transmitted to the information processing apparatus 1, and the package is used to verify the latest information generated when the package or the program included in the package is created, and the program and the latest information. Since the information processing apparatus 1 verifies the latest information contained in the package using the verification expected value at the time of updating and starting the program, one verification expected value is included at the time of updating and at the time of starting. Can be used to determine whether the program has been tampered with.
  • the program is included in the package and sent to the information processing device, and the package contains the latest update information generated when the package is created and the latest startup information generated when the program included in the package is created.
  • the information processing device 1 verifies the latest update information when the program is updated, and verifies the latest start-up information when the program is started, so that the range of the program to be updated and the start-up are started. Even if the range of the program is different, it is possible to determine whether the program has been tampered with at the time of update and startup.
  • the present invention is not limited to the above-described embodiment, but includes various modifications and equivalent configurations within the scope of the attached claims.
  • the above-described examples have been described in detail in order to explain the present invention in an easy-to-understand manner, and the present invention is not necessarily limited to those having all the described configurations.
  • a part of the configuration of one embodiment may be replaced with the configuration of another embodiment.
  • the configuration of another embodiment may be added to the configuration of one embodiment.
  • other configurations may be added / deleted / replaced with respect to a part of the configurations of each embodiment.
  • each of the above-described configurations, functions, processing units, processing means, etc. may be realized by hardware by designing a part or all of them by, for example, an integrated circuit, and the processor realizes each function. It may be realized by software by interpreting and executing the program to be executed.
  • Information such as programs, tables, and files that realize each function can be stored in a storage device such as a memory, hard disk, SSD (Solid State Drive), or a recording medium such as an IC card, SD card, DVD, or BD. can.
  • a storage device such as a memory, hard disk, SSD (Solid State Drive), or a recording medium such as an IC card, SD card, DVD, or BD. can.
  • control lines and information lines indicate those that are considered necessary for explanation, and do not necessarily indicate all the control lines and information lines that are necessary for implementation. In practice, it can be considered that almost all configurations are interconnected.

Landscapes

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

Abstract

プログラムを実行する情報処理装置であって、版が異なる同種のプログラムを書換え可能に格納する第1の領域と第2の領域とを含む記憶部と、前記記憶部に格納されたプログラムを実行する演算部とを備え、前記第1の領域及び前記第2の領域の各々は、前記プログラムと、当該プログラムの新しさに関する最新性情報とを格納しており、更新すべきプログラムと共に受信した最新性情報によって、当該プログラムで前記記憶部を更新するかを判定し、前記各領域に格納されたプログラムのうち、前記最新性情報が新しいプログラムを起動する。

Description

情報処理装置、及びプログラム起動方法 参照による取り込み
 本出願は、令和2年(2020年)2月28日に出願された日本出願である特願2020-33870の優先権を主張し、その内容を参照することにより、本出願に取り込む。
 本発明は、情報処理装置や制御装置に関し、特に、プログラムの起動方法に関する。
 プログラム更新の失敗時におけるリカバリー対策として、同じ種類のプログラムを保持可能な二つの記憶領域を備える装置を対象に、一方の記憶領域のプログラムのみを更新するプログラム更新技術が検討されている。具体的には、プログラムを実行する起動領域と、プログラムを実行しない待機領域を含むメモリ領域を備え、待機領域に格納されたプログラムを更新し、プログラム更新完了後に起動領域と待機領域を入れ替えるように起動情報を更新する。これによって、万一プログラムの更新に失敗した場合、更新対象ではない起動領域に影響を与えないように構成されている。
 また、プログラムの更新において、更新用プログラムが正しいものであること、すなわち、不正に改ざんされていないことを検証することが好ましい。例えば、特許文献1(特開2017-21434号公報)には、第1の検証部は、アップデート用ソフトウェア及びバージョン番号の正当性を検証し、ロールバック検知部は、アップデート用ソフトウェアのバージョン番号とカウンタ部が保持する現在のソフトウェアのバージョン番号を比較し、アップデート用ソフトウェアのバージョンが新しいか否かを検知し、新しいと判断された場合にアップデート部はアップデート用ソフトウェアを用いてソフトウェアを更新し、第2の検証部は、ソフトウェアの更新に成功したか否かを検証し、バージョン管理部は、第2の検証部がソフトウェアの更新に成功した場合にのみ、カウンタ部が保持するバージョン番号を、アップデート用ソフトウェアのバージョン番号と一致するまで増加させる情報処理装置に記載されている。このような特許文献1の技術によれば、現状のプログラムを改ざんされていない最新のプログラムに更新することが可能である。
 特許文献1に記載された技術では、更新時にプログラムが検証されるが、プログラム更新後もサイバー攻撃の影響を受ける機会があり、脆弱性が悪用された場合、プログラムが不正に改ざんされる可能性がある。
 プログラムの起動時に、当該プログラムの完全性を検証する技術として、セキュアブートが普及している。しかしながら、プログラムの更新によって起動領域情報が変化し、事前に情報処理装置の起動領域を把握できないため、起動領域情報が改ざんされていないことを検証できない。仮に、情報処理装置に対して現状の起動領域を確認すれば、事前に起動領域を把握することは可能であるが、対象となる情報処理装置が数百万台規模になる場合、プログラム更新作業は各情報処理装置の事前管理が必要となり、運用負荷が増大して現実的ではない。
 本発明は、以上の問題に鑑みなされたものであり、情報処理装置が起動する際に、プログラムが最新のものであることを担保しつつ、起動するプログラム及び起動領域情報が改ざんされていないことを保証し、プログラムの更新作業者の運用負荷を低減することを目的とする。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、プログラムを実行する情報処理装置であって、版が異なる同種のプログラムを書換え可能に格納する第1の領域と第2の領域とを含む記憶部と、前記記憶部に格納されたプログラムを実行する演算部とを備え、前記第1の領域及び前記第2の領域の各々は、前記プログラムと、当該プログラムの新しさに関する最新性情報とを格納しており、更新すべきプログラムと共に受信した最新性情報によって、当該プログラムで前記記憶部を更新するかを判定し、前記各領域に格納されたプログラムのうち、前記最新性情報が新しいプログラムを起動することを特徴とする。
 本発明によれば、最新性情報によってプログラムの最新性を担保でき、起動時に、最新のプログラムが格納された領域を選定し、そのプログラムを起動できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
本発明の実施例の情報処理装置の構成を示す図である。 本発明の実施例の情報処理装置におけるプログラム更新の概要処理フローを示す図である。 本発明の実施例の情報処理装置におけるプログラム起動の概要処理フローを示す図である。 本発明の実施例の更新用プログラム関連データのデータ構造を示す図である。 本発明の実施例のデータ構造を示す図である。 本発明の実施例の記憶領域の概要を示す図である。 本発明の実施例の検証対象範囲情報のデータ構造を示す図である。 本発明の実施例の更新用プログラムパッケージのデータ構造を示す図である。
 以下、本発明の実施例について、図面を参照しながら詳細に説明する。
 本発明の実施例として、車載ネットワークに接続された情報処理装置(例えば、車両を制御するElectric Control Unit)を対象としたプログラムの起動方法の例を説明する。但し、本発明の技術的思想は、この例に限定されるものではない。例えば、車載制御装置(ECU)ではなく、起動中領域と待機中領域の2面構成を有し、プログラムを更新する情報処理装置であれば、車両制御装置以外(例えば、ヘルスケアデバイス)にも本発明を適用可能である。
 図1は、本発明の実施例の情報処理装置の構成を示す図である。情報処理装置1は、通信バス2を介して他の情報処理装置3に接続されている。但し、通信バス2は物理的には複数の通信バスで構成されてもよく、これらの通信バスの規格は同一でもよいし異なってもよい。これら通信バスの規格はCAN(登録商標)、LIN(登録商標)、FlexRay(登録商標)、イーサネット(登録商標)などを用いることができる。以下、情報処理装置1について説明するが、情報処理装置3も同じ構成を有する。
 情報処理装置1は、不図示のCPU、不図示のROM、及び不図示のRAMを有し、ROMに格納されたプログラムをCPUがRAMに展開して実行することによって以下の機能を実現する。すなわち、情報処理装置1は、その機能として、最新性情報検証部12、検証期待値検証部13、プログラム更新部14、起動関連情報検証部15、起動領域特定部16、起動領域情報更新部17、及びプログラム実行部18を有する。また、情報処理装置1は、不揮発性の記憶装置である記憶部19、及び通信インタフェースであり通信に必要な演算を行う通信部11を有する。
 通信部11は、通信バス2を介して他の情報処理装置3から送信されたメッセージを受信し、通信バス2を介して他の情報処理装置3にメッセージを送信する。前述のとおり通信バス2は物理的に複数の通信バスから構成されてもよい。情報処理装置1は、通信部11を用いてプログラム更新に必要な情報を送受信する。最新性情報検証部12は、情報処理装置1が保持する最新性情報と、更新用プログラム関連データに含まれる最新性情報を比較し、どちらが新しい最新性情報であるかを判定する。検証期待値検証部13は、更新用プログラム関連データの改ざん有無を検証する。プログラム更新部14は、待機領域を更新用プログラム関連データに更新する。起動関連情報検証部15は、検証対象となっているプログラム及び最新性情報などを含む所定の起動関連情報の改ざんの有無を検証する。起動領域特定部16は、各領域の最新性情報を比較し、新しい最新性情報を保持する領域を起動領域として特定する。起動領域情報更新部17は、起動領域特定部16によって特定された領域を後述する起動領域情報191として更新する。プログラム実行部18は、前記起動関連情報検証部15によって起動領域情報191が改ざんされていないと判定した場合、該当する起動領域のプログラムを実行する。
 記憶部19には、起動時に実行されるプログラムが保持される記憶領域を示す起動領域情報191、及び起動関連情報検証部15の検証対象範囲を示す検証対象範囲情報192が記憶される。
 図2は、情報処理装置1がプログラムを更新する処理のフローチャートである。以下に説明する各ステップの実行主体は、情報処理装置1の不図示のCPUである。
 ステップ201では、情報処理装置1は通信部11を用いて更新用プログラム関連データを受信する。
 図4に、ステップ201において情報処理装置1が受信する更新用プログラム関連データ401の例を示す。制御装置4のプログラムは、図示する更新用プログラム関連データ401の形式のパッケージで、サーバから送信される。更新用プログラム関連データ401は、情報処理装置1で実行されるプログラム402と、当該プログラム402に関連付けられる最新性情報403と、検証期待値検証部13が当該プログラム402の改ざん有無を検証する際に参照する検証期待値404を含む。例えば、更新用プログラム関連データ401の作成者又は作成ツールが、当該更新用プログラム関連データ401を作成する際の日時情報を最新性情報403とし、プログラム402と最新性情報403を用いた署名生成結果を検証期待値404とする。なお、検証期待値404は、DSA、ECDSA、RSA等の公開鍵暗号技術を用いて生成した署名値でもよく、AES-CMACのような共通鍵暗号技術を用いて生成したMAC(Message Authentication Code)の値でもよく、ハッシュやチェックサムでもよい。
 ステップ202では、最新性情報検証部12は、ステップ201で受信した更新用プログラム関連データ401から最新性情報403を取得し、取得した最新性情報403と情報処理装置1が保持する最新性情報を比較する。
 ステップ203では、最新性情報検証部12は、ステップ202での比較の結果、ステップ201で受信した更新用プログラム関連データ401から取得した最新性情報403の方が新しい場合はステップ204に進み、新しくない場合はステップ208に進む。例えば、最新性情報として日時情報を用いる場合、更新用プログラム関連データ401から取得した最新性情報403の値が「2019年12月1日12時45分52秒」であり、情報処理装置1が保持する最新性情報が「2019年11月20日20時30分35秒」である場合、受信した最新性情報403の方が新しいと判定する。他にも、最新性情報としてインクリメントされるカウンタやノンスが保証される値を用いてもよく、この場合はより大きな値を示す方が新しいと判定する。
 ステップ204では、検証期待値検証部13は、ステップ201で受信した更新用プログラム関連データ401に含まれるプログラム402と最新性情報403を用いて、所定の検証期待値検証アルゴリズムによって検証期待値を算出し、当該算出された検証期待値が更新用プログラム関連データ401に含まれる検証期待値404と一致するかを検証する。
 ステップ205では、検証期待値検証部13は、ステップ204で算出した検証期待値と検証期待値404が一致する場合はステップ206に進み、一致しない場合はステップ208に進む。
 ステップ206では、起動領域特定部16は、起動領域情報191を参照し、現在の起動領域を特定し、待機領域をプログラムを更新すべき更新該当領域として特定する。
 図5に、ステップ206において記憶部19の各領域が起動領域であるかを起動領域特定部16が特定するために参照する起動領域情報191の例を示す。起動領域情報191は、プログラムを更新すべき装置に対応する記憶部19の記憶領域501と、起動領域と待機領域を示す識別子502を含む。例えば、領域1(A面)が「起動」、領域2(B面)が「待機」となっている場合、現在の起動領域が、領域1(A面)であることを示す。なお、図示した様に各領域が起動領域であるか待機領域であるかを示す情報を識別子502に登録しても、各領域のA面又はB面のいずれが起動領域であるかを示す情報を識別子502に登録しても、各領域のA面又はB面のいずれが待機領域であるかを示す情報を識別子502に登録してもよい。
 ステップ207では、プログラム更新部14は、更新用プログラム関連データ401を用いて、ステップ206で特定された更新該当領域を更新する。例えば、プログラム更新部14は、ステップ206で更新該当領域として特定した領域2(B面)を更新する場合、アドレス601における領域2(B面)に関連するメモリを新たな更新用プログラム関連データに書き換える。
 図6に、ステップ207においてプログラム更新対象となる記憶領域の例を示す。アドレス601は記憶領域の先頭に割り当てられたアドレス値を示し、種別602は当該アドレス601から始まる記憶領域の種別を示し、更新対象603はアドレス601から始まる記憶領域が更新対象になるかを示す。例えば、プログラム更新部14は、ステップ206で更新該当領域として特定した領域2(B面)を更新する場合、種別602のうち、B面に関連するアドレス601から始まる領域を更新対象として、このアドレスから始まる領域を更新用プログラム関連データで書き換える。
 ステップ208では、情報処理装置1は、ステップ203において最新性が保証されない場合、又はステップ205において署名検証に失敗した場合、所定のエラー処理を実行する。
 以上のステップによって、車載ネットワークに接続された情報処理装置1のプログラムを更新できる。
 図3は、情報処理装置1がプログラムを起動する処理を示すフローチャートである。以下に説明する各ステップの実行主体は、情報処理装置1の不図示のCPUである。
 ステップ301では、起動関連情報検証部15は、検証対象範囲情報192を参照し、起動時に改ざん有無を検証する対象を特定する。特に、起動するプログラムに加えて、当該プログラムが格納される領域の最新性も検証対象とする。
 図7に、ステップ301において起動関連情報検証部15が検証対象範囲を特定するために参照する検証対象範囲情報192の例を示す。検証対象範囲情報192は、記憶領域の先頭に割り当てられたアドレスを示すアドレス701、当該アドレスから始まる記憶領域の種別を示す種別702、及び当該アドレス701から始まる記憶領域が検証対象になるかを示す検証対象703を含む。例えば、起動関連情報検証部15は、検証対象703が「対象」となっているアドレス701「0x0050C000」以降の所定の範囲の記憶領域を検証対象とする。なお、各記憶領域の検証対象範囲は、予め決定してもよく、所定の手続きに基づいて動的に変更してもよい。例えば、プログラムが実際に使用する範囲を検証対象範囲としてもよい。
 ステップ302では、起動関連情報検証部15は、ステップ301において特定した検証対象の改ざん有無を検証する。検証対象領域に格納されているデータから算出される検証期待値と、ステップ207において記憶領域に書き込まれた検証期待値404が一致すれば、検証対象領域は改ざんされていないと判定できる。検証処理で用いる検証期待値は、AES-CMACのような共通鍵暗号技術を用いて生成したMACの値でも、ECDSA、RSA等の公開鍵暗号技術を用いて生成した署名値でもよく、ハッシュやチェックサムでもよい。
 ステップ303では、起動関連情報検証部15は、ステップ302における検証結果が一致を示す場合はステップ304に進み、検証結果が一致を示さない場合はステップ307に進む。
 ステップ304では、起動領域特定部16は、各記憶領域に格納される最新性情報403を取得し、最も新しい値の領域を特定する。
 ステップ305では、起動領域情報更新部17は、ステップ304で特定した最も新しい最新性情報403を保持する記憶領域501を「起動領域」とし、最も新しい最新性情報403を保持しない記憶領域501を「待機領域」として起動領域情報191を更新する。
 ステップ306では、プログラム実行部18は、ステップ305において起動領域と定められた記憶領域に格納されるプログラムを実行する。
 ステップ307では、情報処理装置1は、ステップ303において検証結果が一致を示さない場合、所定のエラー処理を実行する。
 なお、図3に示すフローチャートでは、最新性情報を比較し(304)、起動領域情報191を更新する(305)前に、起動領域を検証する(302、303)が、最新性情報を比較し(304)、起動領域情報191を更新した(305)後に、起動領域を検証して(302、303)もよい。すなわち、ステップ302及び303の処理をステップ305とステップ306の間で実行する。このようにすると、検証範囲が狭くなり、プログラムを高速に起動できる。一方、図3に示す形態では起動領域と共に待機領域も検証されるが、前述した変形例では待機領域が検証されずに未検証領域として残る。このため、未検証領域のプログラムを起動させないようにロックするとよい。
 以上のステップによって、車載ネットワークに接続された情報処理装置1を対象にプログラムを安全に起動できる。
 本実施例では、プログラム更新時の検証に用いる検証期待値と、プログラム起動時の検証に用いる検証期待値に同じものを用いる場合を説明した。一方、ステップ207において、更新用プログラム関連データ401に含まれる検証期待値404が対象とする検証範囲と、情報処理装置が起動時に実施する起動関連情報の検証範囲が一致しない場合は、プログラム更新用の検証期待値とプログラム起動用の検証期待値の両方を更新用プログラム関連データ401に含むとよい。具体的には、ステップ204におけるプログラム更新時の検証処理では、プログラム更新用検証期待値804を検証期待値として利用し、ステップ302におけるプログラム起動時の検証処理では、起動用検証期待値807を検証期待値として利用する。
 図8に、プログラム更新用の検証期待値とプログラム起動用の検証期待値が異なる場合の更新用プログラムパッケージ801の例を示す。
 更新用プログラムパッケージ801は、更新用プログラム関連データ802と、プログラム更新用最新性情報803と、プログラム更新用検証期待値804を含む、更新用プログラム関連データ802は、プログラム805と、起動用最新性情報806と、起動用検証期待値807を含む。更新用プログラム関連データ802は、ステップ207において、プログラム更新部14が待機領域を書き換えるために使用する。プログラム更新用最新性情報803は、更新用プログラムパッケージ801の作成時に生成され、ステップ202において、最新性情報検証部12が最新性情報を検証するために使用する。プログラム更新用検証期待値804は、更新用プログラムパッケージ801の作成時に生成され、ステップ204において、検証期待値検証部13が更新用プログラムを検証するために使用する。起動用最新性情報806は、プログラム805の作成時に生成され、ステップ303において、起動領域特定部16が新しい最新性情報を保持する領域を特定するために参照する。起動用検証期待値807は、プログラム805の作成時に生成され、ステップ302において、起動関連情報検証部15が検証対象となる領域の改ざんの有無を検証するための検証期待値として使用する。
 以上に説明したように、本発明の実施例1によれば、プログラム起動時において、実行されるプログラムに加えて、起動する領域を示す起動領域情報191の改ざんの有無を検証できる。また、プログラム更新作業者は、情報処理装置1に保持されている最新性情報を意識することなく、更新用プログラム関連データの生成時点の最新性情報を付与するだけでよい。これにより、起動の度に、情報処理装置1の安全性を担保できるとともに、プログラム更新作業者の運用負荷を抑制できる。
 以上に説明したように、本発明の実施例の情報処理装置1は、版が異なる同種のプログラムを書換え可能に格納する第1の領域と第2の領域とを含む記憶部19と、記憶部19に格納されたプログラムを実行する演算部(CPU)とを備え、第1の領域及び第2の領域の各々は、プログラムと、当該プログラムの新しさに関する最新性情報とを格納しており、更新すべきプログラムと共に受信した最新性情報によって、当該プログラムで記憶部19を更新するかを判定し、複数の領域に格納されたプログラムのうち、最新性情報が新しいプログラムを起動するので、最新性情報によってプログラムのバージョンが担保できる。すなわち、起動時に、最新のプログラムが格納された領域を選定し、そのプログラムを起動できる。
 また、第1の領域及び第2の領域の各々は、各領域に格納されたプログラム及び最新性情報を検証するための検証期待値をさらに格納しており、情報処理装置1は、プログラムの起動時に、検証期待値を用いて、当該プログラム及び当該プログラムの最新性情報を検証し、当該検証に成功すると当該プログラムを起動可能とするので、最新性情報も含めて、起動するプログラムが改ざんされていないことを保証できる。
 また、第1の領域及び第2の領域は、一方がプログラムが実行される起動領域であり、他方がプログラムが更新される待機領域であるので、情報処理装置1を停止することなくプログラムを更新できる。
 また、プログラムは、パッケージに含まれて情報処理装置1に送信され、パッケージは、当該パッケージの作成時に生成される最新性情報を含むので、パッケージ毎に最新性を判定できる。
 また、プログラムは、パッケージに含まれて情報処理装置1に送信され、パッケージは、当該パッケージ又は当該パッケージに含まれるプログラムの作成時に生成される最新性情報と、プログラム及び最新性情報を検証するための検証期待値を含み、情報処理装置1は、プログラムの更新時及び起動時に、検証期待値を用いて前記パッケージに含まれる最新性情報を検証するので、更新時と起動時に一つの検証期待値を用いてプログラムの改ざんの有無を判定できる。
 また、プログラムは、パッケージに含まれて情報処理装置に送信され、パッケージは、当該パッケージの作成時に生成される更新用最新性情報と、当該パッケージに含まれるプログラムの作成時に生成される起動用最新性情報とを含み、情報処理装置1は、プログラムの更新時に、更新用最新性情報を検証し、プログラムの起動時に、起動用最新性情報を検証するので、更新されるプログラムの範囲と起動されるプログラムの範囲とが異なっても、更新時と起動時にプログラムの改ざんの有無を判定できる。
 なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
 また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
 各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD、BD等の記録媒体に格納することができる。
 また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。

Claims (7)

  1.  プログラムを実行する情報処理装置であって、
     版が異なる同種のプログラムを書換え可能に格納する第1の領域と第2の領域とを含む記憶部と、
     前記記憶部に格納されたプログラムを実行する演算部とを備え、
     前記第1の領域及び前記第2の領域の各々は、前記プログラムと、当該プログラムの新しさに関する最新性情報とを格納しており、
     更新すべきプログラムと共に受信した最新性情報によって、当該プログラムで前記記憶部を更新するかを判定し、
     前記各領域に格納されたプログラムのうち、前記最新性情報が新しいプログラムを起動することを特徴とする情報処理装置。
  2.  請求項1に記載の情報処理装置であって、
     前記第1の領域及び前記第2の領域の各々は、各領域に格納されたプログラム及び前記最新性情報を検証するための検証期待値をさらに格納しており、
     前記情報処理装置は、前記プログラムの起動時に、前記検証期待値を用いて、当該プログラム及び当該プログラムの最新性情報を検証し、当該検証に成功すると当該プログラムを起動可能とすることを特徴とする情報処理装置。
  3.  請求項1に記載の情報処理装置であって、
     前記第1の領域及び前記第2の領域は、一方がプログラムが実行される起動領域であり、他方がプログラムが更新される待機領域であることを特徴とする情報処理装置。
  4.  請求項1に記載の情報処理装置であって、
     前記プログラムは、パッケージに含まれて情報処理装置に送信され、
     前記パッケージは、当該パッケージの作成時に生成される最新性情報を含むことを特徴とする情報処理装置。
  5.  請求項2に記載の情報処理装置であって、
     前記プログラムは、パッケージに含まれて情報処理装置に送信され、
     前記パッケージは、当該パッケージ又は当該パッケージに含まれるプログラムの作成時に生成される最新性情報と、前記プログラム及び前記最新性情報を検証するための検証期待値を含み、
     前記情報処理装置は、前記プログラムの更新時及び起動時に、前記検証期待値を用いて前記パッケージに含まれる最新性情報を検証することを特徴とする情報処理装置。
  6.  請求項2に記載の情報処理装置であって、
     前記プログラムは、パッケージに含まれて情報処理装置に送信され、
     前記パッケージは、当該パッケージの作成時に生成される更新用最新性情報と、当該パッケージに含まれるプログラムの作成時に生成される起動用最新性情報とを含み、
     前記情報処理装置は、
     前記プログラムの更新時に、前記更新用最新性情報を検証し、
     前記プログラムの起動時に、前記起動用最新性情報を検証することを特徴とする情報処理装置。
  7.  プログラムを実行する情報処理装置のプログラムを更新するプログラム起動方法であって、
     前記情報処理装置は、版が異なる同種のプログラムを書換え可能に格納する第1の領域と第2の領域とを含む記憶部と、前記記憶部に格納されたプログラムを実行する演算部とを有し、
     前記第1の領域及び前記第2の領域の各々は、前記プログラムと、当該プログラムの新しさに関する最新性情報とを格納しており、
     前記プログラム起動方法は、
     前記情報処理装置が、更新すべきプログラムと共に受信した最新性情報によって、当該プログラムで前記記憶部を更新するかを判定し、
     前記情報処理装置が、前記各領域に格納されたプログラムのうち、前記最新性情報が新しいプログラムを起動することを特徴とするプログラム起動方法。
PCT/JP2021/003372 2020-02-28 2021-01-29 情報処理装置、及びプログラム起動方法 WO2021171906A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202180014033.XA CN115244534A (zh) 2020-02-28 2021-01-29 信息处理装置及程序启动方法
US17/796,158 US20230114009A1 (en) 2020-02-28 2021-01-29 Information Processing Apparatus and Program Starting Method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020033870A JP7477990B2 (ja) 2020-02-28 2020-02-28 情報処理装置、及びプログラム起動方法
JP2020-033870 2020-02-28

Publications (1)

Publication Number Publication Date
WO2021171906A1 true WO2021171906A1 (ja) 2021-09-02

Family

ID=77490111

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/003372 WO2021171906A1 (ja) 2020-02-28 2021-01-29 情報処理装置、及びプログラム起動方法

Country Status (4)

Country Link
US (1) US20230114009A1 (ja)
JP (1) JP7477990B2 (ja)
CN (1) CN115244534A (ja)
WO (1) WO2021171906A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006301960A (ja) * 2005-04-20 2006-11-02 Denso Corp 自動車用制御ユニット
JP2017021434A (ja) * 2015-07-07 2017-01-26 キヤノン株式会社 情報処理装置及びその制御方法
US20180157840A1 (en) * 2016-12-07 2018-06-07 Google Inc. Rollback resistant security

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006301960A (ja) * 2005-04-20 2006-11-02 Denso Corp 自動車用制御ユニット
JP2017021434A (ja) * 2015-07-07 2017-01-26 キヤノン株式会社 情報処理装置及びその制御方法
US20180157840A1 (en) * 2016-12-07 2018-06-07 Google Inc. Rollback resistant security

Also Published As

Publication number Publication date
JP7477990B2 (ja) 2024-05-02
JP2021135937A (ja) 2021-09-13
US20230114009A1 (en) 2023-04-13
CN115244534A (zh) 2022-10-25

Similar Documents

Publication Publication Date Title
JP5864510B2 (ja) 修正プログラム確認方法、修正プログラム確認プログラム、及び情報処理装置
US8732445B2 (en) Information processing device, information processing method, information processing program, and integrated circuit
US8880898B2 (en) Anti-roll-back mechanism for counter
US9720782B2 (en) Authenticating a backup image with bifurcated storage
US8296579B2 (en) System and method for updating a basic input/output system (BIOS)
CN109062598B (zh) 一种安全的ota升级方法及系统
JP2007515708A (ja) 携帯端末内のデータ更新方法
EP3026559A1 (en) Method and device for providing verifying application integrity
US11829479B2 (en) Firmware security verification method and device
CN109814934B (zh) 数据处理方法、装置、可读介质和系统
JP2011003020A (ja) コンピューターシステムおよびプログラム起動方法
JP6861739B2 (ja) 組み込み装置及びファームウェア更新方法
US11366911B2 (en) Cryptography module and method for operating same
CN113360914A (zh) 一种bios更新的方法、系统、设备及介质
WO2019059148A1 (ja) Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラムが格納された記録媒体
WO2021171906A1 (ja) 情報処理装置、及びプログラム起動方法
CN114003915A (zh) 基于芯片的安全启动方法及装置
JP2005293109A (ja) ソフトウェア実行管理装置、ソフトウェア実行管理方法、及び制御プログラム
KR20190118894A (ko) 안전한 usb 장치를 보장하는 부트 방법
JP7461755B2 (ja) 情報処理装置、プログラム更新システム、及びプログラム更新方法
JP7341376B2 (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム
WO2021184712A1 (zh) 一种软件升级方法及装置
US20240020386A1 (en) Control apparatus
CN112148314B (zh) 一种嵌入式系统的镜像验证方法、装置、设备及存储介质
CN112905218B (zh) 一种固件升级方法、装置及设备

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: 21760673

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21760673

Country of ref document: EP

Kind code of ref document: A1