WO2021023694A1 - Method for writing to a secure data area of a computer on an on-board vehicle bus - Google Patents

Method for writing to a secure data area of a computer on an on-board vehicle bus Download PDF

Info

Publication number
WO2021023694A1
WO2021023694A1 PCT/EP2020/071768 EP2020071768W WO2021023694A1 WO 2021023694 A1 WO2021023694 A1 WO 2021023694A1 EP 2020071768 W EP2020071768 W EP 2020071768W WO 2021023694 A1 WO2021023694 A1 WO 2021023694A1
Authority
WO
WIPO (PCT)
Prior art keywords
computer
data structure
values
writing
command
Prior art date
Application number
PCT/EP2020/071768
Other languages
French (fr)
Inventor
Eric Abadie
Sébastien BESSIERE
Original Assignee
Renault S.A.S
Nissan Motor Co., Ltd.
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 Renault S.A.S, Nissan Motor Co., Ltd. filed Critical Renault S.A.S
Publication of WO2021023694A1 publication Critical patent/WO2021023694A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • 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/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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
    • 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
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/173Vehicle or other transportation

Definitions

  • TITLE Writing process in a secure data area of a computer on a vehicle's on-board bus.
  • the invention relates to a method for writing to a data area of a computer on a vehicle on-board bus when the data area is secure.
  • the invention relates in particular to a method for writing a data structure from a first computer on board a vehicle, in the secure data area of a second computer on board the vehicle.
  • the method according to the invention is particularly useful for carrying out updates to vehicle configurations by assigning new values to the parameters managed by the on-board computers.
  • Updates to on-board computers and the execution of real-time programs generally require the issuance of commands on one or more on-board buses.
  • Time counters are generally implemented to monitor the length of time between issuing a command and receiving a response to that command, with the drawback of increasing the time as the quantity of commands increases.
  • document WO2016 / 055730 discloses a method for real-time detection of intrusion into an on-board vehicle communication network.
  • the disclosed method comprises steps consisting in observing a flow of messages circulating on the on-board network and in detecting an intrusion when the observed flow contains a prohibited message.
  • the simple writing of values in a data structure can be satisfied with a single message constituted by a command to write values whose authenticity is checked by a digital signature.
  • the verification of the authenticity of data by a signature presents drawbacks among which we can cite those of calling upon substantial computing resources to perform the operations.
  • encryption and decryption Mention may also be made of the risks of blocking the system due to the time required for the encryption and decryption operations, which may prove detrimental to the real-time operations which are executed in parallel.
  • the subject of the invention is a method for writing values of a data structure from a first computer on board a vehicle, in a secure zone of data from a second computer on board the vehicle, comprising steps consisting in:
  • the method comprises a step consisting in verifying that the current signature is admissible on the condition at least that the second computer shares the same confidence value with a third computer.
  • the confidence value is the value of a previous signature, linked to a previous write request received. More particularly also, the method comprises steps consisting in:
  • the method comprises steps consisting in:
  • the method comprises steps consisting in:
  • the signature also relates to an identifier of the vehicle.
  • the method comprises a step consisting in:
  • the data structure includes an anti-replay value, so that the method includes a step of:
  • the anti-replay value is an integer that encodes a date expressed in year, month, day, hour, minute, second.
  • FIG 1 shows schematically an on-board vehicle system on which the invention is implemented
  • FIG. 2 shows schematically the command frames with which the invention is implemented
  • Figure 3 shows process steps according to the invention, relating to a recognition phase
  • Figure 4 shows process steps according to the invention, relating to a current signature transmission phase
  • Figure 5 shows process steps according to the invention, relating to the transition to a writing phase that is secure per se;
  • Figure 6 shows process steps according to the invention, relating to the secure writing phase per se.
  • Figure 1 shows two computers 9, 10 connected to an onboard bus 1 in a vehicle, and three computers 12, 13, 14 connected to an onboard bus 2 in the vehicle.
  • the computer 9 is for example an on-board computer dedicated to IVC (In Vehicle Communication) type telecommunications.
  • the computer 10 is for example an on-board computer of the IVI (In Vehicle Infotainment) type, the data processing capacities of which are comparable to those of a microcomputer.
  • Other on-board computers, not shown, can be connected to the on-board bus 1.
  • the computers 12, 13, 14 connected to the on-board bus 2 are preferably on-board computers for controlling and monitoring components of the vehicle of the ECU (Electronic) type. Control Unit).
  • a computer 11 connected to the on-board bus 1 and to the on-board bus 2 acts as a gateway between the two on-board buses.
  • the on-board computer 12 comprises several areas 63 to 68 of rewritable memory for permanently storing data which are written therein, in particular by means of the method described below.
  • Each memory zone is accessible in reading and writing by means of a data structure identifier, under the control of a memory access mechanism of the on-board computer 12.
  • the zone 63 dedicated to the permanent storage of a digital signature is accessible only in the computer 12 by an identifier of constant hexadecimal value F0A5 but is not directly accessible either in reading or writing by a command external to the computer 12.
  • the dedicated zone 64 the temporary storage of the digital signature is accessible only in the computer 12 by an identifier of constant hexadecimal value F0A6 but is not directly accessible either in reading or in writing by a command external to the computer 12.
  • Each of several zones 65, 66 dedicated to a free writing of data structure values, is accessible in reading and writing by an external command by means of an identifier ⁇ DID> of distinct value which varies according to the zone 65, 66.
  • Each of several zones 67, 68 dedicated to a secure writing of data structure values, is accessible only in read mode by a command external by means of an identifier ⁇ DID> of distinct value which varies according to the zone 67, 68 to which it is addressed, but is not accessible in writing by a command external by means of an identifier ⁇ DID> only under the particular control of the method explained in the remainder of the description.
  • the on-board computers 13, 14 contain rewritable memory areas (not shown) arranged in a similar manner to those of the on-board computer 12.
  • the on-board computer 11 includes several rewritable memory areas for permanently storing, and each accessible for reading and writing by means of a data structure identifier.
  • a zone 61 constantly dedicated to the storage of a command is accessible by an identifier of constant hexadecimal value, for example F0A3
  • a zone 62 constantly dedicated to the storage of a response is accessible by a constant hexadecimal value identifier eg F0A4.
  • FIG. 3 shows process steps for securely writing values of a data structure from the first computer 10 on board the vehicle, in a first secure data area of a second computer 9, 12, 13, 14 in the vehicle.
  • a data structure consists of a set of one or more numeric values, ordered to each instantiate a variable. At least one variable corresponds to an operating parameter of the vehicle.
  • an additional variable corresponds to an anti-re-execution parameter.
  • the data structure then further contains an anti-replay value which is designed to be consistently greater than a previously received anti-replay value.
  • the anti-replay value can for example encode a date expressed in years, days, hours, minutes, seconds.
  • the computer 10 initially in a standby step 100, passes to a step 102 when a secure write request submitted by a higher order method, for example a method of configuring the computer 12, validates a transition 101.
  • the request secure writing originates in particular from a remote server, directly by telecommunication, or indirectly by connection to the vehicle of a digital storage device.
  • the secure write request may contain a computer identifier among the computers 12, 13, 14 connected to the on-board bus 2, in this case the identifier of the computer 12 for the explanations which follow.
  • the computer identifier can consist of a computer address conforming to the communication protocol of bus 2, of CAN (Controller Area Network), Flex Ray or TTP type also known in the aeronautical field, automotive Ethernet or other.
  • the computer identifier can also consist of an ASCII character string, in particular an acronym which names the computer in its functional universe, for example “BCM” (Body Control Module for cash register control module), “HEVC” ( Hybrid Electric Vehicle Controller), "ADAS” (acronym for Advanced Driver Assistance System) or other.
  • An ASCII character string has the advantage of being able to designate a computer independently of an embedded system architecture.
  • a string of ASCII characters also has the advantage of being a mnemonic device that is more easily understood by humans.
  • the write request may contain a data identifier ⁇ DID> in the identified computer.
  • the secure write request contains in particular the values of the data structure to be written in the secure zone of the second computer, a secure zone identifier ⁇ DID> in the memory of the second computer in which to write the values of the data structure, and a current signature which relates at least to said data structure.
  • step 102 the computer 10 generates two main write commands by constructing for each a description of the main write command from the request which validated the transition 101.
  • a first main write command aims to make write, by the second computer 12, the current signature in the zone 63 of its rewritable memory.
  • the zone 63 of secure or non-secure data, is addressed for purely illustrative and non-limiting purposes by the identifier F0A5.
  • a second The main write command is to have the second computer 12 write the data structure in that of areas 67, 68 of its rewritable memory, indicated by the identifier ⁇ DID> of the data area in which the request secure write received, requests to write the values of the current data structure. While the data area 63 remains the same for any write request received, successive write requests can address different data areas 65, 66, 67, 68 by identifiers ⁇ DID> of different values.
  • step 102 the computer 10 then generates a first auxiliary command for writing the description of the first main command in a first dedicated data area 61, resident in the memory of the computer 11.
  • the data area 61 is addressed purely. illustrative and non-limiting by the identifier F0A3 in the remainder of the description of the steps of the method.
  • FIG. 2 shows an example of an auxiliary write command which comprises a frame 21.
  • the frame 21 comprises a field 31 identifying the command generated as a write command, a field 32 identifying the first dedicated zone 61, and at least a field 33, 34, 35, 36 to contain the description 27 of the main command.
  • the field 33 which makes up the description 27, gives a type of main order.
  • the type of main command is for example identified by two letters in ASCII code.
  • the first letter identifies a main command class, in this case "W” for write.
  • the second letter in combination with the first identifies an action within the main command class, in this case, "WD" to write a data structure.
  • the field 34 which makes up the description 27, gives an on-board computer identifier, in particular as indicated in the request, in other words in the form of an acronym which names the final destination computer.
  • the fields 35, 36 which make up the description 27, contain parameter values useful for the execution of the main command. In the example illustrated by FIG.
  • the parameter field 35 contains as parameter useful for the computer 11 to participate in the processing of the main command, the data identifier to be written which is that of the zone 63 in which to write the signature, purely by way of illustration and without limitation, the value identifier F0A5, and the current signature value.
  • the parameter field 36 contains, as a parameter useful to the computer 11 to participate in the processing of the main command, a current signature value.
  • field 31 then contains the SID (Service Identifier for service identifier in English) $ 2E which is the known hexadecimal code of a data entry by identifier DID, here of value F0A3 contained in field 32.
  • SID Service Identifier for service identifier in English
  • a transition 103 going from step 102 to step 104 is validated when the computer 11 is detected ready to respond to the first auxiliary write command supported by the frame 21.
  • the computer 11 performs a gateway function for another instance of the writing method according to the invention, or a gateway function for a command generated by another method such as for example a diagnostic method
  • the computer 10 remains on standby on step 102.
  • the computer 10 does not unnecessarily encumber the bus 1 with attempted transmission of commands which would have no effect due to the occupation of the computer 11 by other functions.
  • the momentary placing on standby of the secure write method on step 102 allows the execution of the diagnostic command without having to interrupt the diagnostic process.
  • the computer 11 which declares itself ready or not to process the commands issued as part of the secure writing process according to the invention.
  • the computer 11 periodically transmits on the bus 1, a signal comprising two states, ready, busy.
  • the computer 11 sets the signal to the ready state by default. As soon as the computer 11 receives a command, whether it be from the secure writing method according to the invention or from any other method such as for example from the diagnostic method, the computer 11 positions the signal in the occupied state until it has finished processing the current order.
  • step 104 the computer 11 having been detected ready to respond to the write command, the computer 10 sends the main current signature write command, sending its description in the first auxiliary write command to the computer 11.
  • the computer 10 can encapsulate the frame 21 in a CAN frame on the bus 1, or in another way, by example encapsulate the frame 21 in a frame over IP if the vehicle Ethernet protocol is used on bus 1.
  • the computer 11 Upon validation of the transition 301, the computer 11 executes in step 302 the first auxiliary write command and sends the computer 10 an acknowledgment of good execution. In addition, the computer 11 positions in step 302, the periodic signal in the busy state.
  • FIG. 2 gives an example of a second auxiliary command which comprises a frame 29 comprising a field 53 of identification of write command, a field 54 for identifying a data zone resident in the computer 12, with a field 55 which contains at least one value to be written in the data zone identified by the field 54.
  • field 53 then contains the SID $ 2E which is the known hexadecimal code of a data entry by DID identifier.
  • the acknowledgment of proper execution of the first auxiliary write command is materialized by a frame 22 of which a first field 37 contains the SID code of value $ 6E, and of which a second field 38 contains the value of the field 32 of the frame 21 to allow the computer 10 to recognize the write command sent to which corresponds l 'acknowledgment of receipt received.
  • the field 38 constitutes an identifier field of the first dedicated zone 61, by way of illustration of the value F0A3.
  • the computer 11 places in step 302, directly in the field 54 the identifier of the data zone 63, in this case of value F0A5, intended to contain the current signature.
  • the computer 11 accesses an associative table which lists, for each computer identifier, a previous signature received before the current signature.
  • the previous signature is listed in the associative table as being currently equal to the content of the data zone 63 identified here by the value F0A5 of the computer identified by its trigram.
  • the computer 11 places in the field 54 not the identifier of the data zone 63 intended to contain the current signature, as indicated in the first description of the main write command, but an identifier of the zone 64 of intermediate data, of value for example equal to F0A6, purely by way of illustration and not by way of limitation.
  • the computer 11 places in the field 55 the a priori content of the data zone 64 as given by the associative table.
  • computer 10 waits for the signal positioned in the ready state.
  • the steps described now with reference to FIG. 3 correspond to the second variant implementation of the invention, which is particularly advantageous for the computer 12 which does not have sufficient computing resources to process a signature compliance.
  • the computer 12 initially in a standby step 200 of the secure writing process according to the invention, validates a transition 201 when it receives the auxiliary command materialized by the frame 29 sent by the computer 11 on the onboard bus 2.
  • a validation of the transition 201 activates a step 202 in which the computer 12 positions a machine state with a finite number of states, on an initial state value, for example of value 0x00.
  • step 202 the computer 12 checks whether the content of the associative table which corresponds to it, as it is received by the second auxiliary write command, is equal to the previous signature that it contains in the data zone 63
  • the verification carried out in step 202 makes it possible to ensure that the computer 11 and the computer 12 share the same confidence value which is here that of the previous signature.
  • step 204 the computer 12 sends to the computer 11 a negative response signifying a non-acknowledgment or in other words an acknowledgment of improper execution of the second auxiliary write command.
  • the computer 12 then returns to the initial step 200 because the secure writing of the request has failed.
  • a frame 30 illustrated in FIG. 2 can materialize the negative response by taking again in fields 56, 57, 58 the values of the fields 53, 54, 55 of the frame 29 and by adding a field 59 which contains a non-acknowledgment value.
  • a match between the previous signature value contained in the data zone 64 and that received by the second auxiliary write command validates a transition 205 which activates a step 206.
  • step 206 the computer 12 positions the finite number of state machine on an acknowledged recognition phase state, for example but not necessarily of value 0x05.
  • step 206 the computer 12 issues a positive response signifying an acknowledgment or in other words an acknowledgment of proper execution of the second auxiliary write command.
  • the frame 30 illustrated in FIG. 2 also makes it possible to materialize the positive response by taking again in fields 56, 57, 58 the values of the fields 53, 54, 55 of the frame 29 and by placing in the field 59 an acknowledgment value.
  • the shared trust value in the example implementation described above is the last signature value received in a previous secure write.
  • Other shared trust values can be used such as the last anti-replay value received in a previous secure write.
  • the remainder of the description is based on the signature value previously received because it is considered easier to implement. Those skilled in the art would be able to adapt the remainder of the description for another shared trust value such as the last anti-replay value received if they preferred not to use the last signature value received.
  • the second auxiliary write command constitutes an auxiliary write command with a confidence value shared by the second computer 12 and by the third computer 11.
  • FIG. 4 shows the process steps following the steps represented in FIG. 3, in particular for transmitting the current signature to the second computer when it is appropriate so.
  • Receipt of a negative response by the computer 11 validates a transition 303 which passes the method from step 302 to a step 308 in which the computer 11 constructs a description of a negative response to the first main write command in the computer 12.
  • the response description is based for example on a response description 28 which comprises fields 43, 44, 45, 46 to each respectively contain the values of the fields 33, 34, 35, 36 of the order description 27 so as to identify that the response description is indeed that which corresponds to the description of the first main write command.
  • the response description 28 further includes a field 47 for containing a value indicating that the content of field 45 has not been written to area 63 of the rewritable memory of computer 12.
  • step 312 the computer 11 then positions the periodic signal in the ready state.
  • the computer 11 can also more simply place the single value 0x0000 in the zone 62 to indicate the failure to execute the first main write command, without constructing the response description exposed in the previous paragraph.
  • Receipt of a positive response by the computer 11 validates a transition 305 which switches the method from step 302 to a step 306 in which the computer 11 issues a third auxiliary write command to the computer 12, in the form here again frame 29.
  • Field 54 of frame 29 this time contains the identifier of the effective data zone to write the current signature there, for example purely by way of illustration, the value F0A5 to identify the data zone 63.
  • the third auxiliary write command constitutes an auxiliary current signature write command.
  • a reception of the auxiliary command for writing the current signature by the computer 12, validates a transition 207 which activates a step 208 in which the computer 12 verifies that the machine with finite number of states is indeed in the phase state of acknowledgment acknowledged.
  • the acknowledgment phase state has the technical effect of reinforcing confidence in the origin of the current signature writing auxiliary command.
  • a negative check of the acknowledgment phase state validates a transition 209 which activates a step 210.
  • step 210 the computer 12 sends to the computer 11 a negative response signifying a non-acknowledgment or in other words an acknowledgment of improper execution of the third auxiliary write command.
  • the computer 12 then returns to the initial step 200 because the secure write has failed.
  • a positive check of the acknowledgment phase state validates a transition 211 which activates a step 212.
  • step 212 the computer 12 positions the finite number of state machine in the initial state, for example in the aforementioned case, of value 0x00.
  • the exit from the acknowledgment phase state protects the process against various problems, including that of an intrusive command reception following the auxiliary command to write the current signature.
  • the computer 12 further verifies that the signature value received by the third auxiliary write command is different from the content of the data zone 64 which hitherto contains the previous signature value.
  • the current signature value should not be the same as the previous signature value which relates to previously written data structure values.
  • a signature value received by the third auxiliary write command equal to the content of the data zone 63 identified for example by the value F0A5, validates a transition 213 which activates step 210 described above. Receipt of a negative response to the third auxiliary write command by the computer 11, validates a transition 307 which activates step 308 described above.
  • a signature value received by the third auxiliary write command validates a transition 215 which activates a step 216
  • step 216 the computer 12 writes the current signature value in the zone 64, identified for example by the value F0A6 as above.
  • the computer 12 positions the machine in an acknowledged second phase state, for example purely by way of illustration and without limitation, of value 0x0F.
  • the computer 12 issues a positive response signifying an acknowledgment or in other words an acknowledgment of proper execution of the third auxiliary write command.
  • the response description 28 preferably comprises fields 43, 44, 45, 46 which each contain respectively the values of fields 33, 34, 35,
  • the response description 28 also includes the field 47 to contain the value finally written in the data zone 63 of the computer 12.
  • the computer 11 places the current signature value. in the field 47 then stores the response description 28 in the second dedicated data zone 62, resident in the memory of the computer 11.
  • the computer 11 positions the periodic signal in the ready state.
  • a transition 107 is validated when the computer 10 detects that the computer 11 is ready to respond. In the case of a preferred embodiment of the invention, the transition 107 is validated by the reception of the periodic signal in the ready state. A validation of the transition 107 activates a step 108 in the computer
  • step 108 the computer 11 having been detected ready to respond to a read command, the computer 10 issues a first auxiliary read command from the second dedicated zone 62, intended for the computer 11.
  • the auxiliary read command is given. for example materialized by a frame 23 as shown in FIG. 2.
  • the frame 23 comprises a command identification field 39 as a read command, and a field 40 identifying the second dedicated data area 62, identified with purely illustrative and non-limiting by the value F0A4.
  • the field 39 contains the value $ 22 which identifies a read command
  • the field 40 contains for example a value F0A4 of DID which is the address of the dedicated zone 62 of data in the memory of the computer 11 in the example illustrated above.
  • a transition 315 is validated when the computer 11 receives the auxiliary read command materialized by the frame 23.
  • a validation of the transition 315 activates a step 316 in which the computer 11 sends a response to the computer 10.
  • the response to the auxiliary read command received comprises a frame 24 which comprises a field 41 of the response command identifier field. reading, and an identifier field 42 of the second dedicated area 62, so as to be able to verify that the frame 24 constitutes the response to the read command materialized by the frame 23.
  • the frame 24 subsequently contains the description 28 which comprises the fields 43, 44, 45, 46 each containing a value respectively equal to that contained in each of the fields 33, 34, 35, 36 to recall the description of the first main write command.
  • Description 28 also includes field 47 which contains the value set in step 312 if the first main write command failed, or which contains the value set in step 314 if the first main write command was successful.
  • the computer 11 closes the access gate to the bus 2 via the areas 61 and 62 of its memory, so that the processing of the first main write command behaves like an atomic operation processing without the possibility of interruption by another command before the end of treatment.
  • FIG. 5 shows process steps following the steps shown in Figure 4.
  • a transition 109 is validated when the computer 10 receives the response to the read command, materialized by the frame 24.
  • a validation of the transition 109 activates a step 110 in which the computer 10 waits for reception of the periodic signal in the ready state if the response received is positive, and returns to the initial step 100 if the response received is negative. because in the latter case, the secure writing process cannot continue.
  • a reception in the computer 10 of the periodic signal in the ready state validates a transition 111 which activates a step 112 in which the computer 10 issues the main command for writing values of the data structure, by sending its description in a fourth auxiliary write command which contains the description of the second main write command.
  • the fourth auxiliary write command intended for the computer 11 constitutes an auxiliary write command for the description of the main command for writing data structure values.
  • the computer 11 Upon validation of the transition 317, the computer 11 executes in step 318 the fourth auxiliary write command and sends the computer 10 an acknowledgment of good execution. In addition, the computer 11 positions in step 317, the periodic signal in the busy state.
  • FIG. 2 gives an example of a fifth auxiliary command which comprises a frame 29 comprising a field 53 d 'write command identification, a field 54 for identifying the computer 12 and a data area resident in the computer 12, with a field 55 which contains the values of the data structure to be written in the data area identified by field 54.
  • the field 53 then contains the SID $ 2E which is the known hexadecimal code of a data entry by identifier DID.
  • the field 54 contains the DID identifier of the data zone 67, 68 of the computer 12 which was indicated in the field 35 of the frame 21.
  • the acknowledgment of good execution of the auxiliary write command is materialized by a frame 22 of which a first field 37 contains the SID code of value $ 6E, and of which a second field 38 contains the value of the field 32 of the frame 21 to allow the computer 10 to recognize the write command issued to which matches the acknowledgment received.
  • the field 38 constitutes an identifier field of the first dedicated zone 61.
  • auxiliary write command constitutes an auxiliary write command for values of the data structure.
  • the computer 11 places in step 318, directly in the field 54 the identifier DID of the secure data zone, intended to contain the data structure, so as to send the fifth auxiliary command directly to the computer 12.
  • the computer 11 does not issue the fifth auxiliary write command but activates a step 320 following step 318.
  • step 114 the computer 10 waits for the signal positioned in the ready state.
  • steps carried out following the transition 109 to steps 320 and 114 carry out a transition phase to the phase of writing the values in itself secure, controlled by a positive execution of the two preceding phases.
  • step 320 the computer 11 checks whether the current signature and the values of the data structure received in the write request agree with each other.
  • An improvement of the method may consist in further verifying that the current signature also matches a vehicle identification VIN number, for implementations in which it is received in the secure write request, the signature then also relates to the identification number VIN of the vehicle in which the computer 12 is installed. A lack of match relating to the signature validates a transition
  • step 321 which activates a step 326 in which the computer 11 constructs a negative response to the second main write command.
  • the computer 11 can send a signal to the computer 12 to make it go back directly to the initial step 200.
  • a match relating to the signature validates a transition 323 which activates a step 324 in which the computer 11 effectively issues the fifth command. writing aid for the computer 12.
  • a transition 219 is validated if the data structure identifier ⁇ DID>, received with the fifth auxiliary write command, is not listed in the computer 12.
  • a validation of the transition 219 activates a step 220 in which the computer 12 sends a write non-acknowledgment to computer 11.
  • a transition 221 is validated if the data structure identifier ⁇ DID>, received with the fifth auxiliary write command, is listed in the computer 12.
  • Validation of the transition 221 activates a step 222 consisting in checking whether the data structure identifier ⁇ DID>, received with the fifth auxiliary write command, is listed in a list of secure data areas of the computer 12.
  • a transition 223 is validated if the data structure identifier ⁇ DID>, received with the fifth auxiliary write command, is not listed in the list of secure data areas of computer 12.
  • a validation of the transition 223 activates a step 224 in which the computer 12 positions the state machine in the initial state 0x00.
  • a step 236, activated following step 224, consists in writing the content of the fifth auxiliary write command in the data zone of the computer 12, identified at the head of the fifth auxiliary write command by the identifier ⁇ DID>.
  • Step 236 in this case is particularly useful for the case where a non-secure write command, for example originating from a method other than that of the invention, would have been introduced accidentally between the first and the first. second main write command.
  • a transition 225 is validated if the data structure identifier ⁇ DID>, received with the fifth auxiliary write command, is listed in the list of secure data areas of the computer 12.
  • a validation of the transition 225 activates a step 226 consisting of verifying whether the state of the finite number of state machine is in state 0x0F with a positive response to the first main write command.
  • a transition 227 is validated if the machine with finite number of states is not on state 0x0F with a positive response to the first main write command.
  • a validation of the transition 227 activates the step 220 in which the computer 12 sends a write non-acknowledgment to the computer 11.
  • a 229 transition is validated if the finite state machine is in state 0x0F with a positive response to the first main write command.
  • a validation of the transition 229 activates an optional step 230 consisting in verifying whether the anti-re-execution value, received with the fifth auxiliary write command, is greater than an anti-re-execution value previously received by the computer 12.
  • a transition 231 is validated if the anti-re-execution value, received with the fifth auxiliary write command, is not greater than the anti-re-execution value previously received by the computer 12.
  • a validation of the transition 231 activates the step 220 described above.
  • a transition 233 is validated if the anti-replay value, received with the fifth auxiliary write command, is greater than the anti-replay value previously received by the computer 12.
  • a validation of the transition 233 activates a step 234 in which the computer 12 copies into the zone 63 dedicated to the permanent storage of the current signature, the value contained in the zone 64 dedicated to the temporary storage of the current signature.
  • This copy has the technical effect of being able to use the current signature of the values of the data structure received with the fifth auxiliary write command, as a signature previously validly received during a subsequent secure write.
  • step 236 then makes it possible to write the values of the data structure, as transmitted by the fifth auxiliary write command, in that of the secure zones 67, 68 of the computer 12 , which is identified at the head of the fifth auxiliary write command by the identifier ⁇ DID>.
  • the computer 12 sends to the computer 11, a positive acknowledgment of the writing of values in the zone allocated to the data structure.
  • step 200 marks the end of the steps performed in the computer 12 to perform the secure writing there.
  • a write non-acknowledgment reception by the computer 11 validates a transition 325 which activates step 326 explained above.
  • a positive write acknowledgment reception by the computer 11 validates a transition 327 which activates a step 328 in which the computer 11 constructs a positive response to the second main write command.
  • the computer 11 copies the current signature into its associative table of validly received signatures, in association with the computer 12. It is considered that a signature is validly received when it corresponds to data structure values which have been validated. actually written in their destination area. If the shared trust value is assigned to a piece of data other than the current signature, it is in steps 236 and 328 that the new shared trust value is stored in each of the appropriate memory areas.
  • a step 330 consists in setting to zero (in other words to be erased) the temporary signature address, for example F0A6.
  • the computer 11 positions the periodic signal in the ready state.
  • Receipt of the periodic signal in the ready state in the computer 10 validates a transition 115 which activates a step 116 in which the computer 10 issues a command to read the response contained in zone 62 of the computer 11, for example of an identifier. F0A4.
  • a reception of the read command by the computer 11, validates a transition 331 which activates a step 332 in which the computer 11 sends the content of the zone 62 to the computer 10 in response to the read command, before returning to the initial step 300.
  • Receipt of the response to the read command by the computer 10 validates a transition 117 which activates a step 118 in which the computer 10 prepares a negative or positive secure write report as a function of the response it has received. received from the computer 11.
  • the method of the invention is not limited to the exemplary implementation described above.
  • the second computer 9 can directly receive the two main write commands from the first computer 10 without going through the third computer 11.
  • the computer 9 can then directly check the admissibility of the signature according to its own criteria.
  • step 302 allows the third computer 11 to send an auxiliary command for writing the confidence value to the second computer 12 to allow it to test whether it shares the same confidence value in step 202.
  • the computer 12 can then send in step 206 a positive test result in the acknowledgment of receipt to the write command that it has received.

Abstract

To write values of a data structure from a first computer (10) on board a vehicle to a secure data area (67, 68) of a second computer (9, 12, 13, 14) on board the vehicle, the method comprises steps of: - issuing a primary command to write a current signature contained in a write request to write values of the data structure, received by the first computer (10) from a remote server, the write request also comprising an identifier of the second computer, an identifier (DID) of said secure data area, the values of the data structure to be written; - checking that the current signature is able to be received independently of the values of the data structure to be written; - issuing a primary command to write values of the data structure if the current signature relates to the values of the data structure to be written; - checking that the current signature relates to the values of the data structure to be written when the current signature is able to be received; - writing the values of the data structure to the secure area (67, 68) of the second computer (9, 12, 13, 14) if the current signature relates to the values of the data structure to be written.

Description

DESCRIPTION DESCRIPTION
TITRE : Procédé d’écriture dans une zone de données sécurisée d’un calculateur sur bus embarqué de véhicule. TITLE: Writing process in a secure data area of a computer on a vehicle's on-board bus.
L’invention concerne un procédé d’écriture dans une zone de données d’un calculateur sur bus embarqué de véhicule lorsque la zone de données est sécurisée. L’invention concerne notamment un procédé d’écriture d’une structure de données à partir d’un premier calculateur embarqué dans un véhicule, dans la zone de données sécurisée d’un deuxième calculateur embarqué dans le véhicule. The invention relates to a method for writing to a data area of a computer on a vehicle on-board bus when the data area is secure. The invention relates in particular to a method for writing a data structure from a first computer on board a vehicle, in the secure data area of a second computer on board the vehicle.
Le procédé selon l’invention, est particulièrement utile pour réaliser des mises à jour de configurations du véhicule en attribuant de nouvelles valeurs aux paramètres gérés par les calculateurs embarqués. The method according to the invention is particularly useful for carrying out updates to vehicle configurations by assigning new values to the parameters managed by the on-board computers.
Les mises à jour de calculateurs embarqués et l’exécution de programmes temps réels, nécessitent généralement des émissions de commandes sur un ou plusieurs bus embarqués. Des compteurs de temps sont généralement mis en œuvre pour contrôler la durée qui sépare l’émission d’une commande de la réception d’une réponse à cette commande, avec pour inconvénient une augmentation de durée lorsque la quantité de commandes augmente. Updates to on-board computers and the execution of real-time programs generally require the issuance of commands on one or more on-board buses. Time counters are generally implemented to monitor the length of time between issuing a command and receiving a response to that command, with the drawback of increasing the time as the quantity of commands increases.
De telles mises à jour constituent des intrusions sur le réseau embarqué du véhicule pour lesquelles il faut s’assurer de leur légitimité. Such updates constitute intrusions on the vehicle's on-board network for which it is necessary to ensure their legitimacy.
Par exemple le document WO2016/055730 divulgue un procédé de détection temps réel d’intrusion dans un réseau embarqué de communication de véhicule. Le procédé divulgué comprend des étapes consistant à observer un flux de messages circulant sur le réseau embarqué et à détecter une intrusion lorsque le flux observé contient un message prohibé. La simple écriture de valeurs dans une structure de données peut se contenter d’un unique message constitué par une commande d’écriture de valeurs dont l’authenticité est contrôlée par une signature numérique. Cependant la vérification de l’authenticité de données par une signature présente des inconvénients parmi lesquels on peut citer ceux de faire appel à des ressources de calcul conséquentes pour exécuter les opérations de chiffrement et déchiffrement. On peut aussi citer les risques de blocage du système en raison temps nécessaire aux opérations de chiffrement et déchiffrement, lequel peut se montrer préjudiciables aux opérations temps réel qui s’exécutent en parallèle. For example, document WO2016 / 055730 discloses a method for real-time detection of intrusion into an on-board vehicle communication network. The disclosed method comprises steps consisting in observing a flow of messages circulating on the on-board network and in detecting an intrusion when the observed flow contains a prohibited message. The simple writing of values in a data structure can be satisfied with a single message constituted by a command to write values whose authenticity is checked by a digital signature. However, the verification of the authenticity of data by a signature presents drawbacks among which we can cite those of calling upon substantial computing resources to perform the operations. encryption and decryption. Mention may also be made of the risks of blocking the system due to the time required for the encryption and decryption operations, which may prove detrimental to the real-time operations which are executed in parallel.
Pour remédier aux inconvénients posés par l’état antérieur de la technique, l’invention a pour objet un procédé d’écriture de valeurs d’une structure de données à partir d’un premier calculateur embarqué dans un véhicule, dans une zone sécurisée de données d’un deuxième calculateur embarqué dans le véhicule, comprenant des étapes consistant à : To remedy the drawbacks posed by the prior state of the art, the subject of the invention is a method for writing values of a data structure from a first computer on board a vehicle, in a secure zone of data from a second computer on board the vehicle, comprising steps consisting in:
- émettre une commande principale d’écriture d’une signature courante contenue dans une requête d’écriture des valeurs de ladite structure de données, reçue par le premier calculateur en provenance d’un serveur distant, la requête d’écriture comprenant par ailleurs un identificateur du deuxième calculateur, un identificateur de ladite zone sécurisée de données, les valeurs de la structure de données à écrire ; - issue a main write command for a current signature contained in a write request for the values of said data structure, received by the first computer from a remote server, the write request further comprising a identifier of the second computer, an identifier of said secure data area, the values of the data structure to be written;
- vérifier que la signature courante est recevable indépendamment des valeurs de la structure de données à écrire ; - check that the current signature is admissible independently of the values of the data structure to be written;
- émettre une commande principale d’écriture des valeurs de la structure de données à condition que la signature courante porte sur les valeurs de la structure de données à écrire ; - issue a main command for writing the values of the data structure provided that the current signature relates to the values of the data structure to be written;
- vérifier que la signature courante porte sur les valeurs de la structure de données à écrire lorsque la signature courante est recevable ; checking that the current signature relates to the values of the data structure to be written when the current signature is admissible;
- écrire les valeurs de la structure de données, dans la zone sécurisée du deuxième calculateur si la signature courante porte sur les valeurs de la structure de données à écrire. - write the values of the data structure, in the secure zone of the second computer if the current signature relates to the values of the data structure to be written.
Particulièrement, le procédé comprend une étape consistant à vérifier que la signature courante est recevable à condition au moins que le deuxième calculateur partage une même valeur de confiance avec un troisième calculateur. In particular, the method comprises a step consisting in verifying that the current signature is admissible on the condition at least that the second computer shares the same confidence value with a third computer.
Plus particulièrement la valeur de confiance est la valeur d’une signature antérieure, liée à une précédente requête d’écriture reçue. Plus particulièrement aussi, le procédé comprend des étapes consistant à :More particularly, the confidence value is the value of a previous signature, linked to a previous write request received. More particularly also, the method comprises steps consisting in:
- émettre la commande principale d’écriture de signature courante, en envoyant à partir du premier calculateur, une commande auxiliaire d’écriture d’un descriptif de la commande principale d’écriture de signature courante à destination du troisième calculateur ; - issue the main command for writing the current signature, by sending from the first computer, an auxiliary command for writing a description of the main command for writing the current signature to the third computer;
- envoyer à partir du troisième calculateur, une commande auxiliaire d’écriture de la valeur de confiance à destination du deuxième calculateur ; - send from the third computer, an auxiliary command for writing the confidence value to the second computer;
- vérifier dans le deuxième calculateur que la signature courante est recevable. - check in the second computer that the current signature is admissible.
Encore plus particulièrement, le procédé comprend des étapes consistant à : Even more particularly, the method comprises steps consisting in:
- envoyer à partir du troisième calculateur, une commande auxiliaire d’écriture de la valeur de signature courante à destination du deuxième calculateur ; - send from the third computer, an auxiliary command for writing the current signature value to the second computer;
- vérifier dans le deuxième calculateur que la signature courante est recevable à condition que de plus, la valeur de confiance soit différente de la valeur de signature courante. - check in the second computer that the current signature is admissible on condition that, moreover, the confidence value is different from the current signature value.
Avantageusement, le procédé comprend des étapes consistant à : Advantageously, the method comprises steps consisting in:
- émettre la commande principale d’écriture des valeurs de la structure de données, en envoyant à partir du premier calculateur, une commande auxiliaire d’écriture d’un descriptif de la commande principale d’écriture des valeurs de la structure de données à destination du troisième calculateur ; - issue the main command for writing the values of the data structure, by sending from the first computer, an auxiliary command for writing a description of the main command for writing the values of the data structure to the destination the third calculator;
- vérifier dans le troisième calculateur que la signature courante porte sur les valeurs de la structure de données à écrire. - check in the third computer that the current signature relates to the values of the data structure to be written.
De préférence, la signature porte de plus sur un identificateur du véhicule.Preferably, the signature also relates to an identifier of the vehicle.
Avantageusement, le procédé comprend une étape consistant à : Advantageously, the method comprises a step consisting in:
- envoyer à partir du troisième calculateur, une commande auxiliaire d’écriture des valeurs de la structure de données de manière à écrire les valeurs de la structure de données, dans celle des zones sécurisées du deuxième calculateur à condition que la signature courante porte sur les valeurs de la structure de données à écrire. Particulièrement, la structure de données comprend une valeur d’anti réexécution, de sorte que le procédé comprend une étape consistant à : - send from the third computer, an auxiliary command for writing the values of the data structure so as to write the values of the data structure, in that of the secure zones of the second computer, provided that the current signature relates to the values of the data structure to write. Particularly, the data structure includes an anti-replay value, so that the method includes a step of:
- vérifier que la valeur d’anti-réexécution, reçue avec la commande auxiliaire d’écriture des valeurs de la structure de données, est supérieure à une valeur d’anti-réexécution précédemment reçue par le deuxième calculateur. - check that the anti-re-execution value, received with the auxiliary command for writing the values of the data structure, is greater than an anti-re-execution value previously received by the second computer.
Plus particulièrement, la valeur d’anti-réexécution est un nombre entier qui code une date exprimée en année, mois, jour, heure, minute, seconde. More specifically, the anti-replay value is an integer that encodes a date expressed in year, month, day, hour, minute, second.
Le procédé est remarquable en ce que sa mise en œuvre dans le deuxième calculateur comporte une machine à nombre fini d’états. D’autres avantages et caractéristiques de l’invention apparaîtront à la lecture de la description détaillée de modes de mise en œuvre et de réalisation, à titre d’exemples illustratifs et non limitatif, en référence aux dessins annexés dans lesquels : The method is remarkable in that its implementation in the second computer comprises a machine with finite number of states. Other advantages and characteristics of the invention will become apparent on reading the detailed description of the embodiments and embodiments, by way of illustrative and non-limiting examples, with reference to the accompanying drawings in which:
La figure 1 montre schématiquement un système embarqué de véhicule sur lequel est mise en œuvre l’invention ; Figure 1 shows schematically an on-board vehicle system on which the invention is implemented;
La figure 2 montre schématiquement des trames de commandes avec lesquelles est mise en œuvre l’invention ; Figure 2 shows schematically the command frames with which the invention is implemented;
La figure 3 montre des étapes de procédé conforme à l’invention, relatives à une phase de reconnaissance ; La figure 4 montre des étapes de procédé conforme à l’invention, relatives à une phase de transmission de signature courante ; Figure 3 shows process steps according to the invention, relating to a recognition phase; Figure 4 shows process steps according to the invention, relating to a current signature transmission phase;
La figure 5 montre des étapes de procédé conforme à l’invention, relatives au passage à une phase d’écriture sécurisée en soi ; Figure 5 shows process steps according to the invention, relating to the transition to a writing phase that is secure per se;
La figure 6 montre des étapes de procédé conforme à l’invention, relatives à la phase d’écriture sécurisée en soi. Figure 6 shows process steps according to the invention, relating to the secure writing phase per se.
La figure 1 montre deux calculateurs 9, 10 connectés à un bus embarqué 1 dans un véhicule, et trois calculateurs 12, 13, 14 connectés à un bus embarqué 2 dans le véhicule. Le calculateur 9 est par exemple un calculateur embarqué dédié aux télécommunications de type IVC (In Vehicle Communication en anglais). Le calculateur 10 est par exemple un calculateur embarqué de type IVI (In Vehicle Infotainment en anglais), dont les capacités de traitement informatique sont comparables à celles d’un micro-ordinateur. D’autres calculateurs embarqués, non représentés, peuvent être connectés au bus embarqué 1. Les calculateurs 12, 13, 14 connectés au bus embarqué 2, sont de préférence des calculateurs embarqués de contrôle-commande d’organes du véhicule de type ECU (Electronic Control Unit). Un calculateur 11 connecté au bus embarqué 1 et au bus embarqué 2, exerce des fonctions de passerelle entre les deux bus embarqués. Figure 1 shows two computers 9, 10 connected to an onboard bus 1 in a vehicle, and three computers 12, 13, 14 connected to an onboard bus 2 in the vehicle. The computer 9 is for example an on-board computer dedicated to IVC (In Vehicle Communication) type telecommunications. The computer 10 is for example an on-board computer of the IVI (In Vehicle Infotainment) type, the data processing capacities of which are comparable to those of a microcomputer. Other on-board computers, not shown, can be connected to the on-board bus 1. The computers 12, 13, 14 connected to the on-board bus 2 are preferably on-board computers for controlling and monitoring components of the vehicle of the ECU (Electronic) type. Control Unit). A computer 11 connected to the on-board bus 1 and to the on-board bus 2, acts as a gateway between the two on-board buses.
Le calculateur embarqué 12 comprend plusieurs zones 63 à 68 de mémoire réinscriptible pour mémoriser de manière permanente des données qui y sont écrites notamment au moyen du procédé exposé ci-après. Chaque zone de mémoire est accessible en lecture et en écriture au moyen d’un identificateur de structure de données, sous contrôle d’un mécanisme d’accès mémoire du calculateur embarqué 12. A titre purement illustratif et non limitatif, la zone 63 dédiée à la mémorisation permanente d’une signature numérique est accessible uniquement dans le calculateur 12 par un identificateur de valeur hexadécimale constante F0A5 mais n’est directement accessible ni en lecture, ni en écriture par une commande extérieure au calculateur 12. De même la zone 64 dédiée à la mémorisation provisoire de la signature numérique est accessible uniquement dans le calculateur 12 par un identificateur de valeur hexadécimale constante F0A6 mais n’est directement accessible ni en lecture, ni en écriture par une commande extérieure au calculateur 12. Chacune de plusieurs zones 65, 66 dédiées à une écriture libre de valeurs de structure de données, est accessible en lecture et en écriture par une commande extérieure au moyen d’un identificateur <DID> de valeur distincte qui varie en fonction de la zone 65, 66. Chacune de plusieurs zones 67, 68 dédiées à une écriture sécurisée de valeurs de structure de données, est accessible uniquement en lecture par une commande extérieure au moyen d’un identificateur <DID> de valeur distincte qui varie en fonction de la zone 67, 68 à laquelle il s’adresse, mais n’est accessible en écriture par une commande extérieure au moyen d’un identificateur <DID> que sous le contrôle particulier du procédé expliqué dans la suite de la description. The on-board computer 12 comprises several areas 63 to 68 of rewritable memory for permanently storing data which are written therein, in particular by means of the method described below. Each memory zone is accessible in reading and writing by means of a data structure identifier, under the control of a memory access mechanism of the on-board computer 12. Purely by way of illustration and not limitation, the zone 63 dedicated to the permanent storage of a digital signature is accessible only in the computer 12 by an identifier of constant hexadecimal value F0A5 but is not directly accessible either in reading or writing by a command external to the computer 12. Similarly, the dedicated zone 64 the temporary storage of the digital signature is accessible only in the computer 12 by an identifier of constant hexadecimal value F0A6 but is not directly accessible either in reading or in writing by a command external to the computer 12. Each of several zones 65, 66 dedicated to a free writing of data structure values, is accessible in reading and writing by an external command by means of an identifier <DID> of distinct value which varies according to the zone 65, 66. Each of several zones 67, 68 dedicated to a secure writing of data structure values, is accessible only in read mode by a command external by means of an identifier <DID> of distinct value which varies according to the zone 67, 68 to which it is addressed, but is not accessible in writing by a command external by means of an identifier <DID> only under the particular control of the method explained in the remainder of the description.
Les calculateurs embarqués 13, 14, contiennent des zones de mémoire réinscriptible (non représentées) agencées de manière semblable à celles du calculateur embarqué 12. The on-board computers 13, 14 contain rewritable memory areas (not shown) arranged in a similar manner to those of the on-board computer 12.
Le calculateur embarqué 11 comprend plusieurs zones de mémoire réinscriptible pour mémoriser de manière permanente, et accessibles chacune en lecture et en écriture au moyen d’un identificateur de structure de données. A titre purement illustratif et non limitatif, une zone 61 constamment dédiée à la mémorisation d’une commande est accessible par un identificateur de valeur hexadécimale constante, par exemple F0A3, une zone 62 constamment dédiée à la mémorisation d’une réponse est accessible par un identificateur de valeur hexadécimale constante par exemple F0A4. The on-board computer 11 includes several rewritable memory areas for permanently storing, and each accessible for reading and writing by means of a data structure identifier. For purely illustrative and non-limiting, a zone 61 constantly dedicated to the storage of a command is accessible by an identifier of constant hexadecimal value, for example F0A3, a zone 62 constantly dedicated to the storage of a response is accessible by a constant hexadecimal value identifier eg F0A4.
La figure 3 montre des étapes de procédé d’écriture sécurisée de valeurs d’une structure de données à partir du premier calculateur 10 embarqué dans le véhicule, dans une première zone de données sécurisée d’un deuxième calculateur 9, 12, 13, 14 embarqué dans le véhicule. Une structure de données consiste en un ensemble d’une ou plusieurs valeurs numériques, ordonnées pour instancier chacune une variable. Au moins une variable correspond à un paramètre de fonctionnement du véhicule. Avantageusement, une variable supplémentaire correspond à un paramètre d’anti-réexécution. La structure de données contient alors de plus une valeur d’anti-réexécution qui est conçue pour être systématiquement supérieure à une valeur d’anti-réexécution précédemment reçue. La valeur d’anti-réexécution peut par exemple coder une date exprimée en années, jours, heures, minutes, secondes. FIG. 3 shows process steps for securely writing values of a data structure from the first computer 10 on board the vehicle, in a first secure data area of a second computer 9, 12, 13, 14 in the vehicle. A data structure consists of a set of one or more numeric values, ordered to each instantiate a variable. At least one variable corresponds to an operating parameter of the vehicle. Advantageously, an additional variable corresponds to an anti-re-execution parameter. The data structure then further contains an anti-replay value which is designed to be consistently greater than a previously received anti-replay value. The anti-replay value can for example encode a date expressed in years, days, hours, minutes, seconds.
Le calculateur 10 initialement dans une étape 100 de veille, passe dans une étape 102 lorsqu’une requête d’écriture sécurisée soumise par un procédé d’ordre supérieur, par exemple un procédé de configuration du calculateur 12, valide une transition 101. La requête d’écriture sécurisée provient notamment d’un serveur distant, directement par télécommunication, ou indirectement par branchement sur le véhicule d’un dispositif de stockage numérique. A titre illustratif, la requête d’écriture sécurisée peut contenir un identificateur de calculateur parmi les calculateurs 12, 13, 14 connectés sur le bus 2 embarqué, en l’occurrence l’identificateur du calculateur 12 pour les explications qui suivent. L’identificateur de calculateur peut consister en une adresse de calculateur conforme au protocole de communication du bus 2, de type CAN (Controller Area Network), Flex Ray ou TTP aussi connus dans le domaine aéronautique, Ethernet automobile ou autre. L’identificateur de calculateur peut aussi consister en une chaîne de caractères ASCII, notamment un acronyme qui nomme le calculateur dans son univers fonctionnel, par exemple « BCM » (Body Control Module pour module de contrôle de caisse en anglais), « HEVC » (Hybrid Electric Vehicle Controller pour Contrôleur de véhicule hybride électrique), « ADAS » (acronyme de Advanced Driver Assistance System pour système d’aide à la conduite automobile en anglais) ou autre. Une chaîne de caractères ASCII a pour avantage de pouvoir désigner un calculateur indépendamment d’une architecture de système embarqué. Une chaîne de caractères ASCII a aussi pour avantage de constituer un moyen mnémotechnique plus facilement compréhensible pour l’être humain. A titre illustratif encore, la requête d’écriture peut contenir un identificateur de donnée <DID> dans le calculateur identifié. The computer 10 initially in a standby step 100, passes to a step 102 when a secure write request submitted by a higher order method, for example a method of configuring the computer 12, validates a transition 101. The request secure writing originates in particular from a remote server, directly by telecommunication, or indirectly by connection to the vehicle of a digital storage device. By way of illustration, the secure write request may contain a computer identifier among the computers 12, 13, 14 connected to the on-board bus 2, in this case the identifier of the computer 12 for the explanations which follow. The computer identifier can consist of a computer address conforming to the communication protocol of bus 2, of CAN (Controller Area Network), Flex Ray or TTP type also known in the aeronautical field, automotive Ethernet or other. The computer identifier can also consist of an ASCII character string, in particular an acronym which names the computer in its functional universe, for example “BCM” (Body Control Module for cash register control module), “HEVC” ( Hybrid Electric Vehicle Controller), "ADAS" (acronym for Advanced Driver Assistance System) or other. An ASCII character string has the advantage of being able to designate a computer independently of an embedded system architecture. A string of ASCII characters also has the advantage of being a mnemonic device that is more easily understood by humans. By way of further illustration, the write request may contain a data identifier <DID> in the identified computer.
La requête d’écriture sécurisée contient notamment les valeurs de la structure de données à écrire en zone sécurisée du deuxième calculateur, un identificateur <DID> de zone sécurisée en mémoire du deuxième calculateur dans laquelle écrire les valeurs de la structure de données, et une signature courante qui porte au moins sur ladite structure de données. The secure write request contains in particular the values of the data structure to be written in the secure zone of the second computer, a secure zone identifier <DID> in the memory of the second computer in which to write the values of the data structure, and a current signature which relates at least to said data structure.
En étape 102, le calculateur 10 génère deux commandes principales d’écriture en construisant pour chacune un descriptif de commande principale d’écriture à partir de la requête qui a validé la transition 101. Une première commande principale d’écriture a pour but de faire écrire par le deuxième calculateur 12, la signature courante dans la zone 63 de sa mémoire réinscriptible. La zone 63, de données sécurisées ou non sécurisées, est adressée à titre purement illustratif et non limitatif par l’identificateur F0A5. Une deuxième commande principale d’écriture a pour but de faire écrire par le deuxième calculateur 12, la structure de données dans celle des zones 67, 68 de sa mémoire réinscriptible, indiquée par l’identificateur <DID> de la zone de données dans laquelle la requête d’écriture sécurisée reçue, demande à écrire les valeurs de la structure de données courante. Alors que la zone de données 63 reste la même pour toute requête d’écriture reçue, des requêtes d’écriture successives peuvent adresser des zones de données 65, 66, 67, 68 différentes par des identificateurs <DID> de valeurs différentes. In step 102, the computer 10 generates two main write commands by constructing for each a description of the main write command from the request which validated the transition 101. A first main write command aims to make write, by the second computer 12, the current signature in the zone 63 of its rewritable memory. The zone 63, of secure or non-secure data, is addressed for purely illustrative and non-limiting purposes by the identifier F0A5. A second The main write command is to have the second computer 12 write the data structure in that of areas 67, 68 of its rewritable memory, indicated by the identifier <DID> of the data area in which the request secure write received, requests to write the values of the current data structure. While the data area 63 remains the same for any write request received, successive write requests can address different data areas 65, 66, 67, 68 by identifiers <DID> of different values.
En étape 102, le calculateur 10 génère ensuite une première commande auxiliaire d’écriture du descriptif de la première commande principale dans une première zone dédiée 61 de données, résidente en mémoire du calculateur 11. La zone de données 61 , est adressée à titre purement illustratif et non limitatif par l’identificateur F0A3 dans la suite de la description des étapes du procédé. In step 102, the computer 10 then generates a first auxiliary command for writing the description of the first main command in a first dedicated data area 61, resident in the memory of the computer 11. The data area 61 is addressed purely. illustrative and non-limiting by the identifier F0A3 in the remainder of the description of the steps of the method.
La figure 2 montre un exemple de commande auxiliaire d’écriture qui comporte une trame 21. La trame 21 comprend un champ 31 identifiant la commande générée en tant que commande d’écriture, un champ 32 identifiant la première zone dédiée 61 , et au moins un champ 33, 34, 35, 36 pour contenir le descriptif 27 de la commande principale. FIG. 2 shows an example of an auxiliary write command which comprises a frame 21. The frame 21 comprises a field 31 identifying the command generated as a write command, a field 32 identifying the first dedicated zone 61, and at least a field 33, 34, 35, 36 to contain the description 27 of the main command.
Le champ 33 qui compose le descriptif 27, donne un type de commande principale. A titre purement illustratif et non limitatif, le type de commande principale est par exemple identifié par deux lettres en code ASCII. La première lettre identifie une classe de commande principale, en l’occurrence « W » pour écriture. La deuxième lettre en combinaison avec la première, identifie une action au sein de la classe de commande principale, en l’occurrence, « WD » pour écrire une structure de données. Le champ 34 qui compose le descriptif 27, donne un identificateur de calculateur embarqué, notamment tel qu’il est indiqué dans la requête, en d’autres termes sous forme d’acronyme qui nomme le calculateur destinataire final. Les champs 35, 36 qui composent le descriptif 27, contiennent des valeurs de paramètres utiles à l’exécution de la commande principale. Dans l’exemple illustré par la figure 3, le champ 35 de paramètres, contient comme paramètre utile au calculateur 11 pour participer au traitement de la commande principale, l’identificateur de donnée à écrire qui est celui de la zone 63 dans laquelle écrire la signature, à titre purement illustratif et non limitatif l’identificateur de valeur F0A5, et la valeur de signature courante. Le champ 36 de paramètres, contient comme paramètre utile au calculateur 11 pour participer au traitement de la commande principale, une valeur de signature courante. The field 33 which makes up the description 27, gives a type of main order. Purely by way of illustration and without limitation, the type of main command is for example identified by two letters in ASCII code. The first letter identifies a main command class, in this case "W" for write. The second letter in combination with the first identifies an action within the main command class, in this case, "WD" to write a data structure. The field 34 which makes up the description 27, gives an on-board computer identifier, in particular as indicated in the request, in other words in the form of an acronym which names the final destination computer. The fields 35, 36 which make up the description 27, contain parameter values useful for the execution of the main command. In the example illustrated by FIG. 3, the parameter field 35 contains as parameter useful for the computer 11 to participate in the processing of the main command, the data identifier to be written which is that of the zone 63 in which to write the signature, purely by way of illustration and without limitation, the value identifier F0A5, and the current signature value. The parameter field 36 contains, as a parameter useful to the computer 11 to participate in the processing of the main command, a current signature value.
Plus particulièrement, l’utilisation d’une commande d’écriture conforme au protocole UDS de services unifiés de diagnostic, présente l’avantage de bénéficier du mécanisme généralement préinstallé dans une majorité de calculateurs embarqués du monde automobile, notamment pour effectuer les fonctions de diagnostic, sans avoir à modifier les couches basses de communication pour mettre en œuvre le procédé d’écriture sécurisée conforme à l’invention. Dans ce cas particulier, le champ 31 contient alors le SID (Service Identifier pour identificateur de service en anglais) $2E qui est le code hexadécimal connu d’une écriture de données par identificateur DID, ici de valeur F0A3 contenu dans le champ 32. More particularly, the use of a write command conforming to the UDS protocol for unified diagnostic services has the advantage of benefiting from the mechanism generally preinstalled in a majority of on-board computers in the automotive world, in particular for performing diagnostic functions. , without having to modify the lower communication layers to implement the secure writing method according to the invention. In this particular case, field 31 then contains the SID (Service Identifier for service identifier in English) $ 2E which is the known hexadecimal code of a data entry by identifier DID, here of value F0A3 contained in field 32.
Une transition 103 de passage de l’étape 102 à une étape 104, est validée lorsque le calculateur 11 est détecté prêt pour répondre à la première commande auxiliaire d’écriture supportée par la trame 21. De la sorte, si le calculateur 11 effectue une fonction de passerelle pour une autre instance du procédé d’écriture selon l’invention, ou une fonction de passerelle pour une commande générée par un autre procédé comme par exemple un procédé de diagnostic, le calculateur 10 reste en attente sur l’étape 102. Le calculateur 10 n’encombre pas inutilement le bus 1 avec des tentatives d’émissions de commande qui resteraient sans effet en raison de l’occupation du calculateur 11 par d’autres fonctions. Dans l’exemple d’un traitement en cours d’une commande de diagnostic propre à un autre procédé, la mise en attente momentanée du procédé d’écriture sécurisée sur l’étape 102, permet l’exécution de la commande de diagnostic sans avoir à interrompre le procédé de diagnostic. Plusieurs solutions peuvent être envisagées pour détecter si le calculateur 11 est prêt pour répondre à la commande auxiliaire d’écriture supportée par la trame 21. Par exemple dans le cas où le calculateur 10 serait le seul à dialoguer avec le calculateur 11 sur le bus 1 , une couche supérieure d’ordonnancement dans le calculateur 10, pourrait contrôler l’état prêt ou non du calculateur 11. Cette solution serait difficile à mettre en œuvre lorsqu’un autre calculateur 9, dialoguerait avec le calculateur 11 sur le bus 1 , par exemple pour exécuter un diagnostic à distance. Différemment, le calculateur 10 pourrait par exemple observer le bus 1 pour y détecter les trames à destination du calculateur 11 , pour lesquelles le calculateur 11 ne serait pas prêt pour répondre à la commande d’écriture supportée par la trame 21. Cette autre solution présenterait rapidement un problème de complexité en cas de nombreux procédés empruntant la voie du bus 1. D’autres solutions sont envisageables sans sortir du cadre de l’invention.A transition 103 going from step 102 to step 104 is validated when the computer 11 is detected ready to respond to the first auxiliary write command supported by the frame 21. In this way, if the computer 11 performs a gateway function for another instance of the writing method according to the invention, or a gateway function for a command generated by another method such as for example a diagnostic method, the computer 10 remains on standby on step 102. The computer 10 does not unnecessarily encumber the bus 1 with attempted transmission of commands which would have no effect due to the occupation of the computer 11 by other functions. In the example of a processing in progress of a diagnostic command specific to another method, the momentary placing on standby of the secure write method on step 102, allows the execution of the diagnostic command without having to interrupt the diagnostic process. Several solutions can be considered for detecting whether the computer 11 is ready to respond to the auxiliary write command supported by the frame 21. For example in the case where the computer 10 is the only one to communicate with the computer 11 on the bus 1. , an upper scheduling layer in the computer 10, could control the ready state or not of the computer 11. This solution would be difficult to implement when another computer 9, would dialogue with the computer 11 on the bus 1, for example example to run a remote diagnostic. Otherwise, the computer 10 could for example observe the bus 1 in order to detect there the frames intended for the computer 11, for which the computer 11 would not be ready to respond to the write command supported by the frame 21. This other solution would present quickly a problem of complexity in the event of numerous methods taking the route of the bus 1. Other solutions can be envisaged without departing from the scope of the invention.
Selon une solution préférée pour détecter si le calculateur 11 est prêt, c’est le calculateur 11 qui se déclare lui-même prêt ou non pour traiter les commandes émises dans le cadre du procédé d’écriture sécurisée conforme à l’invention. Le calculateur 11 émet périodiquement sur le bus 1 , un signal comportant deux états, prêt, occupé. According to a preferred solution for detecting whether the computer 11 is ready, it is the computer 11 which declares itself ready or not to process the commands issued as part of the secure writing process according to the invention. The computer 11 periodically transmits on the bus 1, a signal comprising two states, ready, busy.
Dans une étape initiale 300 de veille, le calculateur 11 positionne par défaut le signal à l’état prêt. Dès que le calculateur 11 reçoit une commande, que ce soit du procédé d’écriture sécurisée selon l’invention ou de tout autre procédé comme par exemple du procédé de diagnostic, le calculateur 11 positionne le signal à l’état occupé jusqu’à avoir terminé le traitement de la commande en cours. In an initial standby step 300, the computer 11 sets the signal to the ready state by default. As soon as the computer 11 receives a command, whether it be from the secure writing method according to the invention or from any other method such as for example from the diagnostic method, the computer 11 positions the signal in the occupied state until it has finished processing the current order.
En étape 104, le calculateur 11 ayant été détecté prêt pour répondre à la commande d’écriture, le calculateur 10 émet la commande principale d’écriture de signature courante, en envoyant son descriptif dans la première commande auxiliaire d’écriture à destination du calculateur 11. Pour émettre la commande auxiliaire d’écriture qui est la commande auxiliaire d’écriture du descriptif de la première commande principale, le calculateur 10 peut encapsuler la trame 21 dans une trame CAN sur le bus 1 , ou d’autre manière, par exemple encapsuler la trame 21 dans une trame sur IP si le protocole Ethernet pour véhicule est utilisé sur le bus 1. In step 104, the computer 11 having been detected ready to respond to the write command, the computer 10 sends the main current signature write command, sending its description in the first auxiliary write command to the computer 11. To issue the auxiliary write command which is the auxiliary write command for the description of the first main command, the computer 10 can encapsulate the frame 21 in a CAN frame on the bus 1, or in another way, by example encapsulate the frame 21 in a frame over IP if the vehicle Ethernet protocol is used on bus 1.
Une réception de la première commande auxiliaire d’écriture, en d’autres termes de la commande auxiliaire d’écriture du descriptif de la première commande principale, dans le calculateur 11 , valide une transition 301 qui est nécessaire pour faire passer le calculateur 11 de l’étape initiale 300 à une étape 302 dans laquelle le calculateur 11 émet à destination de celui des calculateurs 12, 13, 14 identifié dans le champ 34, par exemple le calculateur 12, une deuxième commande auxiliaire d’écriture pour traiter la première commande principale, à partir du descriptif 27 de la commande principale, écrit dans la zone dédiée 61 de données du calculateur 11. A reception of the first auxiliary write command, in other words of the auxiliary write command of the description of the first main command, in the computer 11, validates a transition 301 which is necessary to make the computer 11 go through. the initial step 300 to a step 302 in which the computer 11 sends to that of the computers 12, 13, 14 identified in the field 34, for example the computer 12, a second auxiliary write command to process the first command main, from the description 27 of the main control, written in the dedicated data zone 61 of the computer 11.
Dès validation de la transition 301 , le calculateur 11 exécute en étape 302 la première commande auxiliaire d’écriture et envoie au calculateur 10 un accusé de bonne exécution. De plus, le calculateur 11 positionne en étape 302, le signal périodique à l’état occupé. Upon validation of the transition 301, the computer 11 executes in step 302 the first auxiliary write command and sends the computer 10 an acknowledgment of good execution. In addition, the computer 11 positions in step 302, the periodic signal in the busy state.
Dans le cas particulier de la figure 3 pour lequel la première commande principale est une commande pour écrire la signature courante dans le calculateur 12, la figure 2 donne un exemple de deuxième commande auxiliaire qui comporte une trame 29 comprenant un champ 53 d’identification de commande d’écriture, un champ 54 d’identification d’une zone de données résidente dans le calculateur 12, avec un champ 55 qui contient au moins une valeur à écrire dans la zone de données identifiée par le champ 54. In the particular case of FIG. 3 for which the first main command is a command for writing the current signature in the computer 12, FIG. 2 gives an example of a second auxiliary command which comprises a frame 29 comprising a field 53 of identification of write command, a field 54 for identifying a data zone resident in the computer 12, with a field 55 which contains at least one value to be written in the data zone identified by the field 54.
Plus particulièrement, l’utilisation d’une commande d’écriture conforme au protocole UDS de services unifiés de diagnostic, présente les avantages ci- dessus mentionnés. Dans ce cas particulier, le champ 53 contient alors le SID $2E qui est le code hexadécimal connu d’une écriture de données par identificateur DID. More particularly, the use of a write command conforming to the UDS protocol of unified diagnostic services, has the above mentioned advantages. In this particular case, field 53 then contains the SID $ 2E which is the known hexadecimal code of a data entry by DID identifier.
Par exemple, dans le cas de l’utilisation du protocole UDS, l’accusé de bonne exécution de la première commande auxiliaire d’écriture est matérialisé par une trame 22 dont un premier champ 37 contient le code SID de valeur $6E, et dont un deuxième champ 38 contient la valeur du champ 32 de la trame 21 pour permettre au calculateur 10 de reconnaître la commande d’écriture émise à laquelle correspond l’accusé de réception reçu. En d’autres termes, le champ 38 constitue un champ d’identifiant de la première zone dédiée 61, à titre illustratif de valeur F0A3. For example, in the case of the use of the UDS protocol, the acknowledgment of proper execution of the first auxiliary write command is materialized by a frame 22 of which a first field 37 contains the SID code of value $ 6E, and of which a second field 38 contains the value of the field 32 of the frame 21 to allow the computer 10 to recognize the write command sent to which corresponds l 'acknowledgment of receipt received. In other words, the field 38 constitutes an identifier field of the first dedicated zone 61, by way of illustration of the value F0A3.
Dans une première variante de mise en œuvre du procédé pour laquelle le calculateur 12 dispose de suffisamment de ressources de calcul pour traiter la conformité de la signature courante à la structure de données à écrire, le calculateur 11 place en étape 302, directement dans le champ 54 l’identificateur de la zone de données 63, en l’occurrence de valeur F0A5, destinée à contenir la signature courante. In a first variant of implementation of the method for which the computer 12 has sufficient calculation resources to process the conformity of the current signature to the data structure to be written, the computer 11 places in step 302, directly in the field 54 the identifier of the data zone 63, in this case of value F0A5, intended to contain the current signature.
Dans une deuxième variante de mise en œuvre du procédé pour laquelle les calculateurs destinataires 12, 13, 14 ne disposent pas de suffisamment de ressources de calcul pour traiter la conformité de la signature courante à la structure de données à écrire, le calculateur 11 accède à une table associative qui répertorie pour chaque identificateur de calculateur, une signature antérieure reçue avant la signature courante. La signature antérieure est répertoriée dans la table associative comme étant actuellement égale au contenu de la zone de données 63 identifiée ici par la valeur F0A5 du calculateur identifié par son trigramme. En étape 302, le calculateur 11 place dans le champ 54 non pas l’identificateur de la zone de données 63 destinée à contenir la signature courante, tel qu’il est indiqué dans le premier descriptif de commande principale d’écriture, mais un identificateur de la zone 64 de données intermédiaire, de valeur par exemple égale à F0A6, à titre purement illustratif et non limitatif. Concomitamment en étape 302, le calculateur 11 place dans le champ 55 le contenu a priori de la zone de données 64 tel qu’il est donné par la table associative. In a second variant implementation of the method for which the recipient computers 12, 13, 14 do not have sufficient calculation resources to process the conformity of the current signature to the data structure to be written, the computer 11 accesses an associative table which lists, for each computer identifier, a previous signature received before the current signature. The previous signature is listed in the associative table as being currently equal to the content of the data zone 63 identified here by the value F0A5 of the computer identified by its trigram. In step 302, the computer 11 places in the field 54 not the identifier of the data zone 63 intended to contain the current signature, as indicated in the first description of the main write command, but an identifier of the zone 64 of intermediate data, of value for example equal to F0A6, purely by way of illustration and not by way of limitation. Concomitantly in step 302, the computer 11 places in the field 55 the a priori content of the data zone 64 as given by the associative table.
Une réception par le calculateur 10 du signal périodique positionné à l’état occupé, ou de la trame 22, valide une transition 105 qui fait passer le procédé de l’étape 104 à une étape 106 dans le calculateur 10. Dans l’étape 106, le calculateur 10 se met en attente du signal positionné à l’état prêt. A reception by the computer 10 of the periodic signal positioned in the busy state, or of the frame 22, validates a transition 105 which causes the process of step 104 to step 106 in computer 10. In step 106, computer 10 waits for the signal positioned in the ready state.
Les étapes décrites à présent en référence à la figure 3, correspondent à la deuxième variante de mise en œuvre de l’invention, particulièrement avantageuse pour le calculateur 12 ne disposant pas de ressources de calcul suffisante pour traiter une conformité de signature. Le calculateur 12 initialement dans une étape de veille 200 du procédé d’écriture sécurisée conforme à l’invention, valide une transition 201 lorsqu’il reçoit la commande auxiliaire matérialisée par la trame 29 émise par le calculateur 11 sur le bus 2 embarqué. Une validation de la transition 201 active une étape 202 dans laquelle le calculateur 12 positionne un état de machine à nombre fini d’états, sur une valeur d’état initial, par exemple de valeur 0x00. The steps described now with reference to FIG. 3 correspond to the second variant implementation of the invention, which is particularly advantageous for the computer 12 which does not have sufficient computing resources to process a signature compliance. The computer 12 initially in a standby step 200 of the secure writing process according to the invention, validates a transition 201 when it receives the auxiliary command materialized by the frame 29 sent by the computer 11 on the onboard bus 2. A validation of the transition 201 activates a step 202 in which the computer 12 positions a machine state with a finite number of states, on an initial state value, for example of value 0x00.
En étape 202, le calculateur 12 vérifie si le contenu de la table associative qui lui correspond, tel qu’il est reçu par la deuxième commande auxiliaire d’écriture, est égal à la signature antérieure qu’il contient dans la zone de données 63. La vérification effectuée en étape 202, permet de s’assurer que le calculateur 11 et le calculateur 12 partagent une même valeur de confiance qui est ici celle de la signature antérieure. In step 202, the computer 12 checks whether the content of the associative table which corresponds to it, as it is received by the second auxiliary write command, is equal to the previous signature that it contains in the data zone 63 The verification carried out in step 202 makes it possible to ensure that the computer 11 and the computer 12 share the same confidence value which is here that of the previous signature.
Une discordance entre la valeur de signature antérieure contenue dans la zone de données 63 et celle reçue par la deuxième commande auxiliaire d’écriture, valide une transition 203 qui active une étape 204. A mismatch between the previous signature value contained in the data area 63 and that received by the second auxiliary write command, validates a transition 203 which activates a step 204.
En étape 204, le calculateur 12 envoie au calculateur 11 , une réponse négative signifiant un non-acquittement ou en d’autres termes un accusé de mauvaise exécution de la deuxième commande auxiliaire d’écriture. Le calculateur 12 retourne ensuite en étape initiale 200 car l’écriture sécurisée de la requête, a échoué. Une trame 30 illustrée en figure 2 peut matérialiser la réponse négative en en reprenant en champs 56, 57, 58 les valeurs des champs 53, 54, 55 de la trame 29 et en ajoutant un champ 59 qui contient une valeur de non- acquittement. Une concordance entre la valeur de signature antérieure contenue dans la zone de données 64 et celle reçue par la deuxième commande auxiliaire d’écriture, valide une transition 205 qui active une étape 206. In step 204, the computer 12 sends to the computer 11 a negative response signifying a non-acknowledgment or in other words an acknowledgment of improper execution of the second auxiliary write command. The computer 12 then returns to the initial step 200 because the secure writing of the request has failed. A frame 30 illustrated in FIG. 2 can materialize the negative response by taking again in fields 56, 57, 58 the values of the fields 53, 54, 55 of the frame 29 and by adding a field 59 which contains a non-acknowledgment value. A match between the previous signature value contained in the data zone 64 and that received by the second auxiliary write command, validates a transition 205 which activates a step 206.
En étape 206, le calculateur 12 positionne la machine à nombre fini d’états sur un état de phase de reconnaissance acquittée, par exemple mais non nécessairement de valeur 0x05. In step 206, the computer 12 positions the finite number of state machine on an acknowledged recognition phase state, for example but not necessarily of value 0x05.
En étape 206, le calculateur 12 émet une réponse positive signifiant un acquittement ou en d’autres termes un accusé de bonne exécution de la deuxième commande auxiliaire d’écriture. La trame 30 illustrée en figure 2 permet aussi de matérialiser la réponse positive en en reprenant en champs 56, 57, 58 les valeurs des champs 53, 54, 55 de la trame 29 et en plaçant dans le champ 59 une valeur d’acquittement. In step 206, the computer 12 issues a positive response signifying an acknowledgment or in other words an acknowledgment of proper execution of the second auxiliary write command. The frame 30 illustrated in FIG. 2 also makes it possible to materialize the positive response by taking again in fields 56, 57, 58 the values of the fields 53, 54, 55 of the frame 29 and by placing in the field 59 an acknowledgment value.
La valeur de confiance partagée dans l’exemple de mise en œuvre ci- dessus décrit, est la dernière valeur de signature reçue dans une précédente écriture sécurisée. D’autres valeurs de confiance partagées peuvent être utilisées comme par exemple la dernière valeur d’anti-réexécution reçue dans une précédente écriture sécurisée. La suite de la description se base sur la valeur de signature antérieurement reçue car elle est considérée plus simple de mise en œuvre. L’homme du métier serait à même d’adapter la suite de la description pour une autre valeur de confiance partagée comme par exemple la dernière valeur d’anti-réexécution reçue s’il préférait ne pas utiliser la dernière valeur de signature reçue. The shared trust value in the example implementation described above is the last signature value received in a previous secure write. Other shared trust values can be used such as the last anti-replay value received in a previous secure write. The remainder of the description is based on the signature value previously received because it is considered easier to implement. Those skilled in the art would be able to adapt the remainder of the description for another shared trust value such as the last anti-replay value received if they preferred not to use the last signature value received.
Ainsi la deuxième commande auxiliaire d’écriture constitue une commande auxiliaire d’écriture d’une valeur de confiance partagée par le deuxième calculateur 12 et par le troisième calculateur 11. Thus the second auxiliary write command constitutes an auxiliary write command with a confidence value shared by the second computer 12 and by the third computer 11.
La figure 4 montre des étapes de procédé à la suite des étapes représentées en figure 3, notamment pour transmettre la signature courante au deuxième calculateur lorsqu’il en convient ainsi. Une réception de réponse négative par le calculateur 11 , valide une transition 303 qui fait passer le procédé de l’étape 302 à une étape 308 dans laquelle le calculateur 11 construit un descriptif de réponse négative à la première commande principale d’écriture dans le calculateur 12. Le descriptif de réponse est basé par exemple sur un descriptif de réponse 28 qui comprend des champs 43, 44, 45, 46 pour contenir chacun respectivement les valeurs des champs 33, 34, 35, 36 du descriptif de commande 27 de manière à identifier que le descriptif de réponse est bien celui qui correspond au descriptif de première commande principale d’écriture. Le descriptif de réponse 28 comprend de plus un champ 47 pour contenir une valeur indiquant que le contenu du champ 45 n’a pas été écrit dans la zone 63 de la mémoire réinscriptible du calculateur 12. FIG. 4 shows the process steps following the steps represented in FIG. 3, in particular for transmitting the current signature to the second computer when it is appropriate so. Receipt of a negative response by the computer 11 validates a transition 303 which passes the method from step 302 to a step 308 in which the computer 11 constructs a description of a negative response to the first main write command in the computer 12. The response description is based for example on a response description 28 which comprises fields 43, 44, 45, 46 to each respectively contain the values of the fields 33, 34, 35, 36 of the order description 27 so as to identify that the response description is indeed that which corresponds to the description of the first main write command. The response description 28 further includes a field 47 for containing a value indicating that the content of field 45 has not been written to area 63 of the rewritable memory of computer 12.
Dans une étape 312 effectuée directement à la suite de l’étape 308, le calculateur 11 place la valeur 0x0000 dans le champ 47 puis mémorise le descriptif de réponse 28 dans une deuxième zone 62 de données, résidente en mémoire du calculateur 11 , dédiée à contenir la réponse à la commande mémorisée en zone 61. Dans l’étape 312, le calculateur 11 positionne ensuite le signal périodique à l’état prêt. Le calculateur 11 peut aussi plus simplement placer la seule valeur 0x0000 dans la zone 62 pour indiquer l’échec d’exécution de la première commande principale d’écriture, sans construire le descriptif de réponse exposé au paragraphe précédent. In a step 312 carried out directly following step 308, the computer 11 places the value 0x0000 in the field 47 then stores the response description 28 in a second data area 62, resident in the memory of the computer 11, dedicated to contain the response to the command stored in zone 61. In step 312, the computer 11 then positions the periodic signal in the ready state. The computer 11 can also more simply place the single value 0x0000 in the zone 62 to indicate the failure to execute the first main write command, without constructing the response description exposed in the previous paragraph.
Une réception de réponse positive par le calculateur 11 valide une transition 305 qui fait passer le procédé de l’étape 302 à une étape 306 dans laquelle le calculateur 11 émet une troisième commande auxiliaire d’écriture à destination du calculateur 12, sous forme ici encore de trame 29. Le champ 54 de la trame 29 contient cette fois l’identificateur de la zone de données effective pour y écrire la signature courante, par exemple à titre purement illustratif, la valeur F0A5 pour identifier la zone 63 de données. Ainsi, la troisième commande auxiliaire d’écriture constitue une commande auxiliaire d’écriture de signature courante. Une réception de la commande auxiliaire d’écriture de signature courante par le calculateur 12, valide une transition 207 qui active une étape 208 dans laquelle le calculateur 12 vérifie que la machine à nombre fini d’états est bien dans l’état de phase de reconnaissance acquittée. L’état de phase de reconnaissance acquittée a pour effet technique de renforcer la confiance sur la provenance de la commande auxiliaire d’écriture de signature courante. Receipt of a positive response by the computer 11 validates a transition 305 which switches the method from step 302 to a step 306 in which the computer 11 issues a third auxiliary write command to the computer 12, in the form here again frame 29. Field 54 of frame 29 this time contains the identifier of the effective data zone to write the current signature there, for example purely by way of illustration, the value F0A5 to identify the data zone 63. Thus, the third auxiliary write command constitutes an auxiliary current signature write command. A reception of the auxiliary command for writing the current signature by the computer 12, validates a transition 207 which activates a step 208 in which the computer 12 verifies that the machine with finite number of states is indeed in the phase state of acknowledgment acknowledged. The acknowledgment phase state has the technical effect of reinforcing confidence in the origin of the current signature writing auxiliary command.
Une vérification négative de l’état de phase de reconnaissance acquittée, valide une transition 209 qui active une étape 210. A negative check of the acknowledgment phase state validates a transition 209 which activates a step 210.
En étape 210, le calculateur 12 envoie au calculateur 11 , une réponse négative signifiant un non-acquittement ou en d’autres termes un accusé de mauvaise exécution de la troisième commande auxiliaire d’écriture. Le calculateur 12 retourne ensuite en étape initiale 200 car l’écriture sécurisée a échoué. In step 210, the computer 12 sends to the computer 11 a negative response signifying a non-acknowledgment or in other words an acknowledgment of improper execution of the third auxiliary write command. The computer 12 then returns to the initial step 200 because the secure write has failed.
Une vérification positive de l’état de phase de reconnaissance acquittée, valide une transition 211 qui active une étape 212. A positive check of the acknowledgment phase state validates a transition 211 which activates a step 212.
En étape 212, le calculateur 12 positionne la machine à nombre fini d’états sur l’état initial, par exemple dans le cas précité, de valeur 0x00. La sortie de l’état de phase de reconnaissance acquittée, protège le procédé contre différents problèmes, notamment celui d’une réception de commande intrusive à la suite de la commande auxiliaire d’écriture de la signature courante. En étape 212, le calculateur 12 vérifie de plus que la valeur de signature reçue par la troisième commande auxiliaire d’écriture, est différente du contenu de la zone de données 64 qui contient jusqu’ici la valeur de signature antérieure. La valeur de signature courante ne devrait pas être identique à la valeur de signature antérieure qui porte sur des valeurs de structure de données écrites précédemment. In step 212, the computer 12 positions the finite number of state machine in the initial state, for example in the aforementioned case, of value 0x00. The exit from the acknowledgment phase state protects the process against various problems, including that of an intrusive command reception following the auxiliary command to write the current signature. In step 212, the computer 12 further verifies that the signature value received by the third auxiliary write command is different from the content of the data zone 64 which hitherto contains the previous signature value. The current signature value should not be the same as the previous signature value which relates to previously written data structure values.
Une valeur de signature reçue par la troisième commande auxiliaire d’écriture, égale au contenu de la zone 63 de données identifiée par exemple par la valeur F0A5, valide une transition 213 qui active l’étape 210 décrite ci-dessus. Une réception de réponse négative à la troisième commande auxiliaire d’écriture par le calculateur 11 , valide une transition 307 qui active l’étape 308 décrite ci-dessus. A signature value received by the third auxiliary write command, equal to the content of the data zone 63 identified for example by the value F0A5, validates a transition 213 which activates step 210 described above. Receipt of a negative response to the third auxiliary write command by the computer 11, validates a transition 307 which activates step 308 described above.
Une valeur de signature reçue par la troisième commande auxiliaire d’écriture, différente du contenu de la zone de données 63, valide une transition 215 qui active une étape 216 A signature value received by the third auxiliary write command, different from the content of the data area 63, validates a transition 215 which activates a step 216
En étape 216, le calculateur 12 écrit la valeur de signature courante dans la zone 64, identifiée par exemple par la valeur F0A6 comme ci-dessus. Lorsque la machine à nombre fini d’états est utilisée pour renforcer la sécurité, le calculateur 12 positionne la machine sur un état de deuxième phase acquittée, par exemple à titre purement illustratif et non limitatif, de valeur 0x0F. Enfin, le calculateur 12 émet une réponse positive signifiant un acquittement ou en d’autres termes un accusé de bonne exécution de la troisième commande auxiliaire d’écriture. Une réception de réponse positive à la troisième commande auxiliaire d’écriture par le calculateur 11 , valide une transition 309 qui active une étape 310 dans laquelle le calculateur 11 construit un descriptif de réponse positive à la première commande principale d’écriture dans le calculateur 12. Comme ci- dessus, le descriptif de réponse 28 comprend de préférence les champs 43, 44, 45, 46 qui contiennent chacun respectivement les valeurs des champs 33, 34, 35,In step 216, the computer 12 writes the current signature value in the zone 64, identified for example by the value F0A6 as above. When the machine with a finite number of states is used to reinforce security, the computer 12 positions the machine in an acknowledged second phase state, for example purely by way of illustration and without limitation, of value 0x0F. Finally, the computer 12 issues a positive response signifying an acknowledgment or in other words an acknowledgment of proper execution of the third auxiliary write command. Receipt of a positive response to the third auxiliary write command by the computer 11, validates a transition 309 which activates a step 310 in which the computer 11 constructs a description of a positive response to the first main write command in the computer 12 As above, the response description 28 preferably comprises fields 43, 44, 45, 46 which each contain respectively the values of fields 33, 34, 35,
36 du descriptif de commande 27 pour identifier que le descriptif de réponse est bien celui qui correspond au descriptif de première commande principale d’écriture. Le descriptif de réponse 28 comprend aussi le champ 47 pour contenir la valeur finalement écrite dans la zone de données 63 du calculateur 12. Dans une étape 314 effectuée directement à la suite de l’étape 310, le calculateur 11 place la valeur de signature courante dans le champ 47 puis mémorise le descriptif de réponse 28 dans la deuxième zone dédiée 62 de données, résidente en mémoire du calculateur 11. Dans l’étape 314, le calculateur 11 positionne ensuite le signal périodique à l’état prêt. Une transition 107 est validée lorsque le calculateur 10 détecte que le calculateur 11 est prêt pour répondre. Dans le cas d’un mode de mise en œuvre préférée de l’invention, la transition 107 est validée par la réception du signal périodique à l’état prêt. Une validation de la transition 107 active une étape 108 dans le calculateur36 of the command description 27 to identify that the response description is indeed that which corresponds to the description of the first main write command. The response description 28 also includes the field 47 to contain the value finally written in the data zone 63 of the computer 12. In a step 314 carried out directly following step 310, the computer 11 places the current signature value. in the field 47 then stores the response description 28 in the second dedicated data zone 62, resident in the memory of the computer 11. In step 314, the computer 11 then positions the periodic signal in the ready state. A transition 107 is validated when the computer 10 detects that the computer 11 is ready to respond. In the case of a preferred embodiment of the invention, the transition 107 is validated by the reception of the periodic signal in the ready state. A validation of the transition 107 activates a step 108 in the computer
10. En étape 108, le calculateur 11 ayant été détecté prêt pour répondre à une commande de lecture, le calculateur 10 émet une première commande auxiliaire de lecture de la deuxième zone dédiée 62, à destination du calculateur 11. La commande auxiliaire de lecture est par exemple matérialisée par une trame 23 comme représentée en figure 2. La trame 23 comprend un champ 39 d’identification de commande en tant que commande de lecture, et un champ 40 d’identifiant de la deuxième zone dédiée 62 de données, identifiée à titre purement illustratif et non limitatif par la valeur F0A4. 10. In step 108, the computer 11 having been detected ready to respond to a read command, the computer 10 issues a first auxiliary read command from the second dedicated zone 62, intended for the computer 11. The auxiliary read command is given. for example materialized by a frame 23 as shown in FIG. 2. The frame 23 comprises a command identification field 39 as a read command, and a field 40 identifying the second dedicated data area 62, identified with purely illustrative and non-limiting by the value F0A4.
Notamment, dans le cas avantageux d’utilisation du protocole UDS, le champ 39 contient la valeur $22 qui identifie une commande de lecture, et le champ 40 contient par exemple une valeur F0A4 de DID qui est l’adresse de la zone dédiée 62 de données en mémoire du calculateur 11 dans l’exemple illustré ci- dessus. In particular, in the advantageous case of using the UDS protocol, the field 39 contains the value $ 22 which identifies a read command, and the field 40 contains for example a value F0A4 of DID which is the address of the dedicated zone 62 of data in the memory of the computer 11 in the example illustrated above.
Une transition 315 est validée lorsque le calculateur 11 reçoit la commande auxiliaire de lecture matérialisée par la trame 23. A transition 315 is validated when the computer 11 receives the auxiliary read command materialized by the frame 23.
Une validation de la transition 315 active une étape 316 dans laquelle le calculateur 11 émet une réponse à destination du calculateur 10. La réponse à la commande auxiliaire de lecture reçue comporte une trame 24 qui comprend un champ 41 d’identifiant de réponse à commande de lecture, et un champ 42 d’identifiant de la deuxième zone dédiée 62, de manière à pouvoir vérifier que la trame 24 constitue la réponse à la commande de lecture matérialisée par la trame 23. La trame 24 contient à la suite le descriptif 28 qui comporte les champs 43, 44, 45, 46 contenant chacun une valeur égale respectivement à celle contenue dans chacun des champs 33, 34, 35, 36 pour rappeler le descriptif de la première commande principale d’écriture. Le descriptif 28 comporte aussi le champ 47 qui contient la valeur mise en étape 312 si la première commande principale d’écriture a échoué, ou qui contient la valeur mise en étape 314 si la première commande principale d’écriture a réussi. A validation of the transition 315 activates a step 316 in which the computer 11 sends a response to the computer 10. The response to the auxiliary read command received comprises a frame 24 which comprises a field 41 of the response command identifier field. reading, and an identifier field 42 of the second dedicated area 62, so as to be able to verify that the frame 24 constitutes the response to the read command materialized by the frame 23. The frame 24 subsequently contains the description 28 which comprises the fields 43, 44, 45, 46 each containing a value respectively equal to that contained in each of the fields 33, 34, 35, 36 to recall the description of the first main write command. Description 28 also includes field 47 which contains the value set in step 312 if the first main write command failed, or which contains the value set in step 314 if the first main write command was successful.
Ainsi se termine la phase de transmission de la signature courante au calculateur embarqué 12. On notera que, en se déclarant non prêt du début de la phase de reconnaissance à la fin de la phase de transmission de la signature courante, le calculateur 11 ferme la porte d’accès au bus 2 par les zones 61 et 62 de sa mémoire, de sorte que le traitement de la première commande principale d’écriture se comporte comme un traitement d’opération atomique sans possibilité d’interruption par une autre commande avant la fin du traitement. Thus ends the phase of transmission of the current signature to the on-board computer 12. It will be noted that, by declaring itself not ready from the start of the recognition phase to the end of the phase of transmission of the current signature, the computer 11 closes the access gate to the bus 2 via the areas 61 and 62 of its memory, so that the processing of the first main write command behaves like an atomic operation processing without the possibility of interruption by another command before the end of treatment.
La figure 5 montre des étapes de procédé à la suite des étapes représentées en figure 4. Figure 5 shows process steps following the steps shown in Figure 4.
A la suite de l’étape 108, une transition 109 est validée lorsque le calculateur 10 reçoit la réponse à la commande de lecture, matérialisée par la trame 24. Following step 108, a transition 109 is validated when the computer 10 receives the response to the read command, materialized by the frame 24.
Une validation de la transition 109 active une étape 110 dans laquelle le calculateur 10 se met en attente de réception du signal périodique à l’état prêt si la réponse reçue est positive, et revient à l’étape initiale 100 si la réponse reçue est négative car dans ce dernier cas, le procédé d’écriture sécurisé ne peut se poursuivre. A validation of the transition 109 activates a step 110 in which the computer 10 waits for reception of the periodic signal in the ready state if the response received is positive, and returns to the initial step 100 if the response received is negative. because in the latter case, the secure writing process cannot continue.
Une réception dans le calculateur 10 de signal périodique à l’état prêt, valide une transition 111 qui active une étape 112 dans laquelle le calculateur 10 émet la commande principale d’écriture de valeurs de la structure de données, en envoyant son descriptif dans une quatrième commande auxiliaire d’écriture qui contient le descriptif de deuxième commande principale d’écriture. Ainsi, la quatrième commande auxiliaire d’écriture à destination du calculateur 11 , constitue une commande auxiliaire d’écriture de descriptif de commande principale d’écriture de valeurs de structure de données. A reception in the computer 10 of the periodic signal in the ready state, validates a transition 111 which activates a step 112 in which the computer 10 issues the main command for writing values of the data structure, by sending its description in a fourth auxiliary write command which contains the description of the second main write command. Thus, the fourth auxiliary write command intended for the computer 11 constitutes an auxiliary write command for the description of the main command for writing data structure values.
Une réception de la quatrième commande auxiliaire d’écriture dans le calculateur 11 , valide une transition 317 nécessaire pour faire passer le calculateur 11 de l’étape 316 à une étape 318 qui permet au calculateur 11 d’émettre par la suite à destination de celui des calculateurs 12, 13, 14 identifié dans le champ 34, par exemple le calculateur 12, une cinquième commande auxiliaire d’écriture pour traiter la deuxième commande principale, fondée sur le descriptif 27 de la commande principale qui est écrit dans la zone dédiée 61 de données du calculateur 11. A reception of the fourth auxiliary write command in the computer 11, validates a transition 317 necessary to pass the computer 11 from step 316 to a step 318 which enables computer 11 to subsequently send to that of computers 12, 13, 14 identified in field 34, for example computer 12, a fifth auxiliary command d writing to process the second main command, based on the description 27 of the main command which is written in the dedicated data zone 61 of the computer 11.
Dès validation de la transition 317, le calculateur 11 exécute en étape 318 la quatrième commande auxiliaire d’écriture et envoie au calculateur 10 un accusé de bonne exécution. De plus, le calculateur 11 positionne en étape 317, le signal périodique à l’état occupé. Upon validation of the transition 317, the computer 11 executes in step 318 the fourth auxiliary write command and sends the computer 10 an acknowledgment of good execution. In addition, the computer 11 positions in step 317, the periodic signal in the busy state.
Dans le cas particulier de la figure 5 pour lequel la deuxième commande principale est une commande pour écrire des valeurs de structure de données dans le calculateur 12, la figure 2 donne un exemple de cinquième commande auxiliaire qui comporte une trame 29 comprenant un champ 53 d’identification de commande d’écriture, un champ 54 d’identification du calculateur 12 et d’une zone de données résidente dans le calculateur 12, avec un champ 55 qui contient les valeurs de la structure de données à écrire dans la zone de données identifiée par le champ 54. In the particular case of FIG. 5 for which the second main command is a command for writing data structure values in the computer 12, FIG. 2 gives an example of a fifth auxiliary command which comprises a frame 29 comprising a field 53 d 'write command identification, a field 54 for identifying the computer 12 and a data area resident in the computer 12, with a field 55 which contains the values of the data structure to be written in the data area identified by field 54.
Plus particulièrement, l’utilisation d’une commande d’écriture conforme au protocole UDS de services unifiés de diagnostic, présente les avantages ci- dessus mentionnés. Dans ce cas particulier, le champ 53 contient alors le SID $2E qui est le code hexadécimal connu d’une écriture de données par identificateur DID. Le champ 54 contient l’identificateur DID de la zone 67, 68 de données du calculateur 12 qui était indiquée dans le champ 35 de la trame 21. Par exemple, dans le cas de l’utilisation du protocole UDS, l’accusé de bonne exécution de la commande auxiliaire d’écriture est matérialisé par une trame 22 dont un premier champ 37 contient le code SID de valeur $6E, et dont un deuxième champ 38 contient la valeur du champ 32 de la trame 21 pour permettre au calculateur 10 de reconnaître la commande d’écriture émise à laquelle correspond l’accusé de réception reçu. En d’autres termes, le champ 38 constitue un champ d’identifiant de la première zone dédiée 61. More particularly, the use of a write command conforming to the UDS protocol of unified diagnostic services has the advantages mentioned above. In this particular case, the field 53 then contains the SID $ 2E which is the known hexadecimal code of a data entry by identifier DID. The field 54 contains the DID identifier of the data zone 67, 68 of the computer 12 which was indicated in the field 35 of the frame 21. For example, in the case of the use of the UDS protocol, the acknowledgment of good execution of the auxiliary write command is materialized by a frame 22 of which a first field 37 contains the SID code of value $ 6E, and of which a second field 38 contains the value of the field 32 of the frame 21 to allow the computer 10 to recognize the write command issued to which matches the acknowledgment received. In other words, the field 38 constitutes an identifier field of the first dedicated zone 61.
On notera que la cinquième commande auxiliaire d’écriture constitue une commande auxiliaire d’écriture de valeurs de la structure de données. Note that the fifth auxiliary write command constitutes an auxiliary write command for values of the data structure.
Dans une première variante de mise en œuvre du procédé pour laquelle le calculateur 12 dispose de suffisamment de ressources de calcul pour traiter la conformité de la signature courante aux valeurs de la structure de données à écrire, le calculateur 11 place en étape 318, directement dans le champ 54 l’identificateur DID de la zone de données sécurisée, destinée à contenir la structure de données, de manière à émettre directement la cinquième commande auxiliaire à destination du calculateur 12. In a first variant of implementation of the method for which the computer 12 has sufficient calculation resources to process the conformity of the current signature to the values of the data structure to be written, the computer 11 places in step 318, directly in the field 54 the identifier DID of the secure data zone, intended to contain the data structure, so as to send the fifth auxiliary command directly to the computer 12.
Dans une deuxième variante de mise en œuvre du procédé pour laquelle les calculateurs destinataires 12, 13, 14 ne disposent pas de suffisamment de ressources de calcul pour traiter la conformité de la signature courante aux valeurs de la structure de données à écrire, le calculateur 11 n’émet pas la cinquième commande auxiliaire d’écriture mais active une étape 320 à la suite de l’étape 318. In a second variant implementation of the method for which the recipient computers 12, 13, 14 do not have sufficient calculation resources to process the conformity of the current signature with the values of the data structure to be written, the computer 11 does not issue the fifth auxiliary write command but activates a step 320 following step 318.
Une réception par le calculateur 10 du signal périodique positionné à l’état occupé, ou de la trame 22, valide une transition 113 qui fait passer le procédé de l’étape 112 à une étape 114 dans le calculateur 10. Dans l’étape 114, le calculateur 10 se met en attente du signal positionné à l’état prêt. Reception by the computer 10 of the periodic signal positioned in the busy state, or of the frame 22, validates a transition 113 which causes the process to go from step 112 to a step 114 in the computer 10. In step 114 , the computer 10 waits for the signal positioned in the ready state.
Ainsi, les étapes exécutées à la suite de la transition 109 jusqu’aux étapes 320 et 114, réalisent une phase de passage à la phase d’écriture sécurisée en soi des valeurs, contrôlée par une exécution positive des deux phases précédentes. Thus, the steps carried out following the transition 109 to steps 320 and 114, carry out a transition phase to the phase of writing the values in itself secure, controlled by a positive execution of the two preceding phases.
Les étapes relatives à la phase d’écriture sécurisée en soi qui sont décrites à présent en référence à la figure 6, correspondent à la deuxième variante de mise en œuvre de l’invention, particulièrement avantageuse pour le calculateur 12 ne disposant pas de ressources de calcul suffisante pour traiter une conformité de signature. La figure 6 montre des étapes de procédé à la suite des étapes représentées en figure 5. The steps relating to the secure writing phase per se which are now described with reference to FIG. 6, correspond to the second implementation variant of the invention, which is particularly advantageous for the computer 12 which does not have computer resources. calculation sufficient to process a signature conformance. Figure 6 shows process steps following the steps shown in Figure 5.
En étape 320, le calculateur 11 vérifie si la signature courante et les valeurs de la structure de données reçues dans la requête d’écriture, concordent l’une avec l’autre. Une amélioration du procédé peut consister à vérifier de plus que la signature courante concorde aussi avec un numéro VIN d’identification du véhicule, pour les mises en œuvre dans lesquelles il est reçu dans la requête d’écriture sécurisée, la signature porte alors aussi sur le numéro VIN d’identification du véhicule dans lequel le calculateur 12 est embarqué. Une absence de concordance relative à la signature, valide une transitionIn step 320, the computer 11 checks whether the current signature and the values of the data structure received in the write request agree with each other. An improvement of the method may consist in further verifying that the current signature also matches a vehicle identification VIN number, for implementations in which it is received in the secure write request, the signature then also relates to the identification number VIN of the vehicle in which the computer 12 is installed. A lack of match relating to the signature validates a transition
321 qui active une étape 326 dans laquelle le calculateur 11 construit une réponse négative à la deuxième commande principale d’écriture. En étape 326, le calculateur 11 peut envoyer un signal au calculateur 12 pour le faire repasser directement en étape initiale 200. Une concordance relative à la signature, valide une transition 323 qui active une étape 324 dans laquelle le calculateur 11 émet effectivement la cinquième commande auxiliaire d’écriture à destination du calculateur 12. 321 which activates a step 326 in which the computer 11 constructs a negative response to the second main write command. In step 326, the computer 11 can send a signal to the computer 12 to make it go back directly to the initial step 200. A match relating to the signature validates a transition 323 which activates a step 324 in which the computer 11 effectively issues the fifth command. writing aid for the computer 12.
Une réception de la cinquième commande auxiliaire d’écriture dans le calculateur 12, valide une transition 217 qui active une étape 218 consistant à vérifier si l’identificateur <DID> de structure de données, reçu avec la cinquième commande auxiliaire d’écriture, est répertorié dans le calculateur 12. A reception of the fifth auxiliary write command in the computer 12, validates a transition 217 which activates a step 218 consisting of verifying whether the data structure identifier <DID>, received with the fifth auxiliary write command, is listed in calculator 12.
Une transition 219 est validée si l’identificateur <DID> de structure de données, reçu avec la cinquième commande auxiliaire d’écriture, n’est pas répertorié dans le calculateur 12. Une validation de la transition 219 active une étape 220 dans laquelle le calculateur 12 émet un non-acquittement d’écriture à destination du calculateur 11. Une transition 221 est validée si l’identificateur <DID> de structure de données, reçu avec la cinquième commande auxiliaire d’écriture, est répertorié dans le calculateur 12. A transition 219 is validated if the data structure identifier <DID>, received with the fifth auxiliary write command, is not listed in the computer 12. A validation of the transition 219 activates a step 220 in which the computer 12 sends a write non-acknowledgment to computer 11. A transition 221 is validated if the data structure identifier <DID>, received with the fifth auxiliary write command, is listed in the computer 12.
Une validation de la transition 221 active une étape 222 consistant à vérifier si l’identificateur <DID> de structure de données, reçu avec la cinquième commande auxiliaire d’écriture, est répertorié dans une liste de zones de données sécurisées du calculateur 12. Validation of the transition 221 activates a step 222 consisting in checking whether the data structure identifier <DID>, received with the fifth auxiliary write command, is listed in a list of secure data areas of the computer 12.
Une transition 223 est validée si l’identificateur <DID> de structure de données, reçu avec la cinquième commande auxiliaire d’écriture, n’est pas répertorié dans la liste de zones de données sécurisées du calculateur 12. A transition 223 is validated if the data structure identifier <DID>, received with the fifth auxiliary write command, is not listed in the list of secure data areas of computer 12.
Une validation de la transition 223 active une étape 224 dans laquelle le calculateur 12 positionne la machine d’états à l’état initial 0x00. A validation of the transition 223 activates a step 224 in which the computer 12 positions the state machine in the initial state 0x00.
Une étape 236, activée à la suite de l’étape 224, consiste à écrire le contenu de la cinquième commande auxiliaire d’écriture dans la zone de données du calculateur 12, identifiée en tête de la cinquième commande auxiliaire d’écriture par l’identificateur <DID>. L’étape 236 dans ce cas, est particulièrement utile pour le cas où une commande d’écriture non sécurisée, par exemple en provenance d’un procédé autre que celui de l’invention, se serait introduite de manière fortuite entre la première et la deuxième commande principale d’écriture. A step 236, activated following step 224, consists in writing the content of the fifth auxiliary write command in the data zone of the computer 12, identified at the head of the fifth auxiliary write command by the identifier <DID>. Step 236 in this case is particularly useful for the case where a non-secure write command, for example originating from a method other than that of the invention, would have been introduced accidentally between the first and the first. second main write command.
Une transition 225 est validée si l’identificateur <DID> de structure de données, reçu avec la cinquième commande auxiliaire d’écriture, est répertorié dans la liste de zones de données sécurisées du calculateur 12. A transition 225 is validated if the data structure identifier <DID>, received with the fifth auxiliary write command, is listed in the list of secure data areas of the computer 12.
Une validation de la transition 225 active une étape 226 consistant à vérifier si l’état de la machine à nombre fini d’états, est sur l’état 0x0F de réponse positive à la première commande principale d’écriture. A validation of the transition 225 activates a step 226 consisting of verifying whether the state of the finite number of state machine is in state 0x0F with a positive response to the first main write command.
Une transition 227 est validée si la machine à nombre fini d’états, n’est pas sur l’état 0x0F de réponse positive à la première commande principale d’écriture. Une validation de la transition 227 active l’étape 220 dans laquelle le calculateur 12 émet un non-acquittement d’écriture à destination du calculateur 11. A transition 227 is validated if the machine with finite number of states is not on state 0x0F with a positive response to the first main write command. A validation of the transition 227 activates the step 220 in which the computer 12 sends a write non-acknowledgment to the computer 11.
Une transition 229 est validée si la machine à nombre fini d’états, est sur l’état 0x0F de réponse positive à la première commande principale d’écriture. A 229 transition is validated if the finite state machine is in state 0x0F with a positive response to the first main write command.
Une validation de la transition 229 active une étape 230 optionnelle consistant à vérifier si la valeur d’anti-réexécution, reçue avec la cinquième commande auxiliaire d’écriture, est supérieure à une valeur d’anti-réexécution précédemment reçue par le calculateur 12. A validation of the transition 229 activates an optional step 230 consisting in verifying whether the anti-re-execution value, received with the fifth auxiliary write command, is greater than an anti-re-execution value previously received by the computer 12.
Une transition 231 est validée si la valeur d’anti-réexécution, reçue avec la cinquième commande auxiliaire d’écriture, n’est pas supérieure à la valeur d’anti réexécution précédemment reçue par le calculateur 12. A transition 231 is validated if the anti-re-execution value, received with the fifth auxiliary write command, is not greater than the anti-re-execution value previously received by the computer 12.
Une validation de la transition 231 active l’étape 220 ci-dessus exposée.A validation of the transition 231 activates the step 220 described above.
Une transition 233 est validée si la valeur d’anti-réexécution, reçue avec la cinquième commande auxiliaire d’écriture, est supérieure à la valeur d’anti réexécution précédemment reçue par le calculateur 12. A transition 233 is validated if the anti-replay value, received with the fifth auxiliary write command, is greater than the anti-replay value previously received by the computer 12.
Une validation de la transition 233 active une étape 234 dans laquelle le calculateur 12 recopie dans la zone 63 dédiée à la mémorisation permanente de la signature courante, la valeur contenue dans la zone 64 dédiée à la mémorisation provisoire de la signature courante. Cette recopie a pour effet technique de pouvoir utiliser la signature courante des valeurs de la structure de données reçues avec la cinquième commande auxiliaire d’écriture, comme signature antérieurement valablement reçue lors d’une écriture sécurisée ultérieure. A validation of the transition 233 activates a step 234 in which the computer 12 copies into the zone 63 dedicated to the permanent storage of the current signature, the value contained in the zone 64 dedicated to the temporary storage of the current signature. This copy has the technical effect of being able to use the current signature of the values of the data structure received with the fifth auxiliary write command, as a signature previously validly received during a subsequent secure write.
Activée à la suite de l’étape 234, l’étape 236 permet alors d’écrire les valeurs de la structure de données, telles que transmises par la cinquième commande auxiliaire d’écriture, dans celle des zones 67, 68 sécurisées du calculateur 12, qui est identifiée en tête de la cinquième commande auxiliaire d’écriture par l’identificateur <DID>. En fin d’étape 236, le calculateur 12 envoie au calculateur 11 , un acquittement positif de l’écriture des valeurs dans la zone attribuée à la structure de donnée. Activated following step 234, step 236 then makes it possible to write the values of the data structure, as transmitted by the fifth auxiliary write command, in that of the secure zones 67, 68 of the computer 12 , which is identified at the head of the fifth auxiliary write command by the identifier <DID>. At the end of step 236, the computer 12 sends to the computer 11, a positive acknowledgment of the writing of values in the zone allocated to the data structure.
Le retour à l’étape initiale 200 marque la fin des étapes exécutées dans le calculateur 12 pour y réaliser l’écriture sécurisée. Une réception de non-acquittement d’écriture par le calculateur 11 , valide une transition 325 qui active l’étape 326 expliquée ci-dessus. Returning to the initial step 200 marks the end of the steps performed in the computer 12 to perform the secure writing there. A write non-acknowledgment reception by the computer 11 validates a transition 325 which activates step 326 explained above.
Une réception d’acquittement positif d’écriture par le calculateur 11 , valide une transition 327 qui active une étape 328 dans laquelle le calculateur 11 construit une réponse positive à la deuxième commande principale d’écriture. En étape 328, le calculateur 11 recopie la signature courante dans sa table associative des signatures valablement reçues, en association avec le calculateur 12. On considère qu’une signature est valablement reçue lorsqu’elle correspond à des valeurs de structure de données qui ont été effectivement écrites dans leur zone de destination. Si la valeur de confiance partagée est attribuée à une autre donnée que la signature courante, c’est en étapes 236 et 328 que la nouvelle valeur de confiance partagée est mémorisée dans chacune des zones mémoire qui conviennent. A positive write acknowledgment reception by the computer 11 validates a transition 327 which activates a step 328 in which the computer 11 constructs a positive response to the second main write command. In step 328, the computer 11 copies the current signature into its associative table of validly received signatures, in association with the computer 12. It is considered that a signature is validly received when it corresponds to data structure values which have been validated. actually written in their destination area. If the shared trust value is assigned to a piece of data other than the current signature, it is in steps 236 and 328 that the new shared trust value is stored in each of the appropriate memory areas.
A la suite des étapes 326 et 328, une étape 330 consiste à mettre à zéro (en d’autres termes à effacer) l’adresse provisoire de signature, par exemple F0A6. En étape 330, le calculateur 11 positionne le signal périodique à l’état prêt. Following steps 326 and 328, a step 330 consists in setting to zero (in other words to be erased) the temporary signature address, for example F0A6. In step 330, the computer 11 positions the periodic signal in the ready state.
Une réception du signal périodique à l’état prêt dans le calculateur 10, valide une transition 115 qui active une étape 116 dans laquelle le calculateur 10 émet une commande de lecture de la réponse contenue en zone 62 du calculateur 11 , d’identificateur par exemple F0A4. Une réception de la commande de lecture par le calculateur 11 , valide une transition 331 qui active une étape 332 dans laquelle le calculateur 11 envoie le contenu de la zone 62 au calculateur 10 en réponse à la commande de lecture, avant de retourner en étape initiale 300. Une réception de la réponse à la commande de lecture par le calculateur 10, valide une transition 117 qui active une étape 118 dans laquelle le calculateur 10 élabore un compte-rendu négatif ou positif d’écriture sécurisée en fonction de la réponse qu’il a reçue du calculateur 11. Le procédé de l’invention n’est pas limité à l’exemple de mise en œuvre exposé ci-dessus. Receipt of the periodic signal in the ready state in the computer 10, validates a transition 115 which activates a step 116 in which the computer 10 issues a command to read the response contained in zone 62 of the computer 11, for example of an identifier. F0A4. A reception of the read command by the computer 11, validates a transition 331 which activates a step 332 in which the computer 11 sends the content of the zone 62 to the computer 10 in response to the read command, before returning to the initial step 300. Receipt of the response to the read command by the computer 10, validates a transition 117 which activates a step 118 in which the computer 10 prepares a negative or positive secure write report as a function of the response it has received. received from the computer 11. The method of the invention is not limited to the exemplary implementation described above.
Par exemple si le deuxième calculateur 9 dispose de suffisamment de ressources pour exécuter l’étape 320, il peut recevoir directement les deux commandes principales d’écriture du premier calculateur 10 sans passer par le troisième calculateur 11. Le calculateur 9 peut alors directement vérifier la recevabilité de la signature en fonction de critères qui lui sont propres. For example, if the second computer 9 has sufficient resources to execute step 320, it can directly receive the two main write commands from the first computer 10 without going through the third computer 11. The computer 9 can then directly check the admissibility of the signature according to its own criteria.
Pour un deuxième calculateur 12 ne disposant que de peu de ressources, nous avons vu ci-dessus un exemple de partage de valeur de confiance avec le troisième calculateur 11 auquel sont délégués les traitements cryptographiques de signatures. Dans l’exemple illustré ci-dessus, l’étape 302 permet au troisième calculateur 11 d’envoyer une commande auxiliaire d’écriture de la valeur de confiance au deuxième calculateur 12 pour lui permettre de tester s’il partage la même valeur de confiance en étape 202. Le calculateur 12 peut alors envoyer en étape 206 un résultat de test positif dans l’accusé de réception à la commande d’écriture qu’il a reçue. For a second computer 12 having only few resources, we have seen above an example of sharing of a trust value with the third computer 11 to which the cryptographic signature processing is delegated. In the example illustrated above, step 302 allows the third computer 11 to send an auxiliary command for writing the confidence value to the second computer 12 to allow it to test whether it shares the same confidence value in step 202. The computer 12 can then send in step 206 a positive test result in the acknowledgment of receipt to the write command that it has received.

Claims

REVENDICATIONS
1. Procédé d’écriture de valeurs d’une structure de données à partir d’un premier calculateur (10) embarqué dans un véhicule, dans une zone (67, 68) sécurisée de données d’un deuxième calculateur (9, 12, 13, 14) embarqué dans le véhicule, comprenant des étapes consistant à : 1. Method for writing values of a data structure from a first computer (10) on board a vehicle, in a secure data zone (67, 68) of a second computer (9, 12, 13, 14) on board the vehicle, comprising steps consisting of:
- émettre (104) une commande principale d’écriture d’une signature courante contenue dans une requête d’écriture des valeurs de ladite structure de données, reçue (101) par le premier calculateur (10) en provenance d’un serveur distant, ladite requête d’écriture comprenant par ailleurs un identificateur du deuxième calculateur, un identificateur (DID) de ladite zone sécurisée de données, les valeurs de la structure de données à écrire ; - issue (104) a main command for writing a current signature contained in a request for writing the values of said data structure, received (101) by the first computer (10) from a remote server, said write request further comprising an identifier of the second computer, an identifier (DID) of said secure data area, the values of the data structure to be written;
- vérifier (202, 208, 212) que la signature courante est recevable indépendamment des valeurs de la structure de données à écrire ; - émettre (112) une commande principale d’écriture des valeurs de ladite structure de données si la signature courante porte sur les valeurs de la structure de données à écrire ; - verify (202, 208, 212) that the current signature is admissible independently of the values of the data structure to be written; - issue (112) a main command for writing the values of said data structure if the current signature relates to the values of the data structure to be written;
- vérifier (320) que la signature courante porte sur les valeurs de la structure de données à écrire lorsque la signature courante est recevable ; - écrire (236) les valeurs de la structure de données, dans la zone (67, 68) sécurisée du deuxième calculateur (9, 12, 13, 14) si la signature courante porte sur les valeurs de la structure de données à écrire. checking (320) that the current signature relates to the values of the data structure to be written when the current signature is admissible; - write (236) the values of the data structure, in the secure zone (67, 68) of the second computer (9, 12, 13, 14) if the current signature relates to the values of the data structure to be written.
2. Procédé selon la revendication 1 , caractérisé en ce qu’il comprend une étape (202) consistant à vérifier que la signature courante est recevable à condition au moins que le deuxième calculateur (9, 12, 13, 14) partage une même valeur de confiance avec un troisième calculateur (11). 2. Method according to claim 1, characterized in that it comprises a step (202) consisting in verifying that the current signature is admissible on condition at least that the second computer (9, 12, 13, 14) shares the same value. confidence with a third computer (11).
3. Procédé selon la revendication 2, caractérisé en ce que la valeur de confiance est la valeur d’une signature antérieure, liée à une précédente requête d’écriture reçue. 3. Method according to claim 2, characterized in that the confidence value is the value of a previous signature, linked to a previous write request received.
4. Procédé selon l’une des revendications 2 ou 3, caractérisé en ce qu’il comprend des étapes consistant à : - émettre (104) la commande principale d’écriture de signature courante, en envoyant à partir du premier calculateur (10), une commande auxiliaire d’écriture d’un descriptif de ladite commande principale d’écriture de signature courante à destination du troisième calculateur (11) ; 4. Method according to one of claims 2 or 3, characterized in that it comprises steps consisting in: - issue (104) the main command for writing the current signature, by sending from the first computer (10), an auxiliary command for writing a description of said main command for writing the current signature to the third calculator (11);
- envoyer (302) à partir du troisième calculateur (11), une commande auxiliaire d’écriture de la valeur de confiance à destination du deuxième calculateur (9, 12, 13, 14) ; - send (302) from the third computer (11), an auxiliary command for writing the confidence value to the second computer (9, 12, 13, 14);
- vérifier (202) dans le deuxième calculateur (9, 12, 13, 14) que la signature courante est recevable. - check (202) in the second computer (9, 12, 13, 14) that the current signature is admissible.
5. Procédé selon la revendication 4, caractérisé en ce qu’il comprend des étapes consistant à : 5. Method according to claim 4, characterized in that it comprises steps consisting of:
- envoyer (306) à partir du troisième calculateur (11), une commande auxiliaire d’écriture de la valeur de signature courante à destination du deuxième calculateur (9, 12, 13, 14) ; - send (306) from the third computer (11), an auxiliary command for writing the current signature value to the second computer (9, 12, 13, 14);
- vérifier (212) dans le deuxième calculateur (9, 12, 13, 14) que la signature courante est recevable à condition que de plus, la valeur de confiance soit différente de la valeur de signature courante. - Check (212) in the second computer (9, 12, 13, 14) that the current signature is admissible on condition that, moreover, the confidence value is different from the current signature value.
6. Procédé selon l’une des revendications 2 à 5, caractérisé en ce qu’il comprend des étapes consistant à : 6. Method according to one of claims 2 to 5, characterized in that it comprises steps consisting of:
- émettre (112) la commande principale d’écriture des valeurs de ladite structure de données, en envoyant à partir du premier calculateur (10), une commande auxiliaire d’écriture d’un descriptif de ladite commande principale d’écriture des valeurs de ladite structure de données à destination du troisième calculateur (11) ; - issue (112) the main command for writing the values of said data structure, by sending from the first computer (10), an auxiliary command for writing a description of said main command for writing the values of said data structure intended for the third computer (11);
- vérifier (202) dans le troisième calculateur (11) que la signature courante porte sur les valeurs de la structure de données à écrire. - Check (202) in the third computer (11) that the current signature relates to the values of the data structure to be written.
7. Procédé selon l’une des revendications 1 à 6, caractérisé en ce que la signature porte de plus sur un identificateur (VIN) du véhicule. 7. Method according to one of claims 1 to 6, characterized in that the signature also relates to an identifier (VIN) of the vehicle.
8. Procédé selon la revendication 6, caractérisé en ce qu’il comprend une étape consistant à : 8. Method according to claim 6, characterized in that it comprises a step consisting of:
- envoyer (324) à partir du troisième calculateur (11), une commande auxiliaire d’écriture des valeurs de ladite structure de données de manière à les valeurs de la structure de données, dans celle des zones (67, 68) sécurisées du deuxième calculateur (9, 12, 13, 14) si la signature courante porte sur les valeurs de la structure de données à écrire. - send (324) from the third computer (11), an auxiliary command for writing the values of said data structure in such a way to the values of the data structure, in that of the secure zones (67, 68) of the second computer (9, 12, 13, 14) if the current signature relates to the values of the data structure to be written.
9. Procédé selon la revendication 8, caractérisé en ce que ladite structure de données comprend une valeur d’anti-réexécution, et en ce qu’il comprend une étape consistant à : 9. Method according to claim 8, characterized in that said data structure comprises an anti-re-execution value, and in that it comprises a step consisting of:
- vérifier (230) que la valeur d’anti-réexécution, reçue avec la commande auxiliaire d’écriture des valeurs de la structure de données, est supérieure à une valeur d’anti-réexécution précédemment reçue par le deuxième calculateur (9, 12, 13, 14). - check (230) that the anti-re-execution value, received with the auxiliary command for writing the values of the data structure, is greater than an anti-re-execution value previously received by the second computer (9, 12 , 13, 14).
10. Procédé selon la revendication 9, caractérisé en ce que la valeur d’anti réexécution est un nombre entier qui code une date exprimée en année, mois, jour, heure, minute, seconde. 10. The method of claim 9, characterized in that the anti-re-execution value is an integer which encodes a date expressed in year, month, day, hour, minute, second.
11. Procédé selon l’une des revendications précédentes, caractérisé en ce que le deuxième calculateur (9, 12, 13, 14) comporte une machine à nombre fini d’états. 11. Method according to one of the preceding claims, characterized in that the second computer (9, 12, 13, 14) comprises a machine with a finite number of states.
PCT/EP2020/071768 2019-08-06 2020-08-03 Method for writing to a secure data area of a computer on an on-board vehicle bus WO2021023694A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR1909018 2019-08-06
FR1909018A FR3099835B1 (en) 2019-08-06 2019-08-06 Method of writing in a secure data zone of a computer on the vehicle's on-board bus.

Publications (1)

Publication Number Publication Date
WO2021023694A1 true WO2021023694A1 (en) 2021-02-11

Family

ID=69375411

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/071768 WO2021023694A1 (en) 2019-08-06 2020-08-03 Method for writing to a secure data area of a computer on an on-board vehicle bus

Country Status (2)

Country Link
FR (1) FR3099835B1 (en)
WO (1) WO2021023694A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016055730A1 (en) 2014-10-08 2016-04-14 Renault S.A.S. On-board vehicle network system and method for detecting intrusions on the on-board network
US20190007215A1 (en) * 2015-06-29 2019-01-03 Clarion Co., Ltd. In-vehicle information communication system and authentication method
US20190057214A1 (en) * 2017-08-21 2019-02-21 Kabushiki Kaisha Toshiba Update control device, terminal, and method of controlling
US20190184916A1 (en) * 2017-12-19 2019-06-20 Micron Technology, Inc. Vehicle secure messages based on a vehicle private key

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016055730A1 (en) 2014-10-08 2016-04-14 Renault S.A.S. On-board vehicle network system and method for detecting intrusions on the on-board network
US20190007215A1 (en) * 2015-06-29 2019-01-03 Clarion Co., Ltd. In-vehicle information communication system and authentication method
US20190057214A1 (en) * 2017-08-21 2019-02-21 Kabushiki Kaisha Toshiba Update control device, terminal, and method of controlling
US20190184916A1 (en) * 2017-12-19 2019-06-20 Micron Technology, Inc. Vehicle secure messages based on a vehicle private key

Also Published As

Publication number Publication date
FR3099835A1 (en) 2021-02-12
FR3099835B1 (en) 2023-06-30

Similar Documents

Publication Publication Date Title
EP3271901B1 (en) Electronics unit, method carried out in an electronics unit of said type, method for sharing a time frame between a server and an electronics unit, and method for synchronizing a server and an electronics unit
FR2926692A1 (en) METHODS AND DEVICES FOR IMPROVING COMMUNICATION RELIABILITY BETWEEN AN AIRCRAFT AND A REMOTE SYSTEM
FR2989799A1 (en) METHOD FOR TRANSFERRING A DEVICE TO ANOTHER RIGHTS OF ACCESS TO A SERVICE
EP2149823A1 (en) Onboard avionics system having dynamic reconfiguration and corresponding method and airplane having such a sytem onboard
FR3067136A1 (en) METHOD FOR UPDATING A VEHICLE ONBOARD COMPUTER
WO2009059763A1 (en) Method of unlocking an engine control computer
WO2021023694A1 (en) Method for writing to a secure data area of a computer on an on-board vehicle bus
FR3096153A1 (en) Method and device for returning to a state prior to a software update of a remote vehicle computer
WO2022123152A1 (en) Management method for authenticating a user of a device on an equipment item by pasword
EP3454246A1 (en) Method for transmitting and verifying the validity of configuration data in an electronic system, associated electronic system and computer program product
EP2750354A1 (en) Method for defining a filtering module, related filtering module
EP3991029A1 (en) Method of dialogue with a computer on an on-board bus of a vehicle
WO2021014064A1 (en) Method and device for updating software of an onboard computer of a vehicle, comprising a runtime memory, a backup memory and a control memory
EP3502949B1 (en) Method and system for controlling the scheduling of software tasks
WO2021079041A1 (en) Technique for communication between an application implementing a service and a server
WO2010076523A1 (en) Microkernel gateway server
EP3437294B1 (en) Remote vehicle control system
FR3075536A1 (en) METHOD FOR AUTHENTICATING AN ELECTRONIC DEVICE BY AN ELECTRONIC UNIT EQUIPPED WITH A VEHICLE
FR2913551A1 (en) User authenticating method for use in Internet network, involves authenticating authentication server by token and vice versa for each of web pages requested by user, by executing control script e.g. java script, in computer
WO2021181015A1 (en) Method and device for updating software comprising physical addresses to the memory of an on-board computer of a vehicle
FR3114416A1 (en) Method and device for updating software of an on-board computer of a vehicle, comprising an execution memory, a backup memory and a control memory
FR3099265A1 (en) Method and device for updating the software of an on-board computer of a vehicle, comprising an execution memory, a backup memory and a control memory
WO2023227386A1 (en) Method for managing service profiles of a secure element
FR3109001A1 (en) Secure process for inhibiting the recording of electronic equipment faults with a view to updating a vehicle component by the end customer
EP3259159B1 (en) Method for implementing a connection between a slave electronic device and a master electronic device, and related slave electronic device

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

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

Country of ref document: EP

Kind code of ref document: A1