TAMPERING DETECTION METHOD

Abstract
A method is provided for detecting use of unauthorized software in an engine control unit provided in a vehicle. The method includes calculating a Checksum Verification Number (CVN) each time the engine is started, comparing a last calculated CVN with a last stored CVN in a list of a plurality of CVN entries, storing the last calculated CVN if the last calculated CVN is different to the last stored CVN together with a date of an entry in the list of CVN and/or the current odometer status, removing entries in the list of CVN according to FIFO principle when the list of CVN is full, and presenting this upon request from an on-board or off-board tool.
Description
BACKGROUND AND SUMMARY

The invention relates to a software detection method according to the preambles of the independent claims.


An electronic control device for e.g. an internal combustion engine or a gearbox contains software for controlling different applications of said engine or gearbox.


When an engine and gearbox is leaving the factory it has a predetermined version of the software installed. Said software may later on be upgraded by the manufacturer of the vehicle at for instance service points of the vehicle for certain reasons.


However, there are also a number of more or less irresponsible tuning firms which provide for numerous variants of software tuning installations. Such unauthorised software may cause premature component wear due to manipulations of originally defined system variables such as inter alia variables for controlling, injection timing, fuel amount injected to each cylinder, boost pressure, rpm limit and manipulation of the gear shift program. Such installations of unauthorized software may case the engine and/or gear box to present premature engine and/or gearbox failure and/or noticeable wear of such components which is a problem for the manufacturer and its guarantee commitment. When there is a mechanical failure due to the use of unauthorized software the owner of the vehicle usually install the original software for hiding the use of the tuning software which may have been the cause of such mechanical failure.


It is desirable to provide a method for detecting the use of unauthorized software use in an electronic control unit e.g. for an internal combustion engine and/or vehicle gearbox for making it possible for the vehicle manufacturer to prove non approved software installations.


In a first example embodiment according to an aspect of the invention a method is provided for detecting use of unauthorized software in an electronic control unit provided in a vehicle, said method comprising the steps of calculating CVN each time the engine is started, comparing a last calculated CVN with a last stored CVN in a list comprising a plurality of storage places for said CVN, storing said last calculated CVN if said last calculated CVN is different to the last stored CVN together with a date of an entry in said list of CVN and/or the current odometer status, removing entries in the list of CVN according to FIFO principle when said list of CVN is full.


An advantage with said example embodiment of the present invention is that vehicle manufacturer may control and/or detect unauthorized software in an easy and inexpensive manner.


In another example embodiment according to an aspect of the present invention said list of CVN entries comprises at least 10 storage positions.


An advantage with said example embodiment of the present invention is that the use of unauthorized software is more difficult to erase the more storage positions there is, i.e., a user must upload a number of different versions of software in order to erase the unauthorized software.


In another example embodiment of an aspect of the present invention said method further comprises the step of providing a separate list of CVN for different predefined parts of the software application.


An advantage of having different list of CVN for different parts of the software application may be that the manufacturer can detect more accurately where in the software there has been a change and if said change is authorized or not.


In another example embodiment of the present invention said method further comprises the step of restricting said CVN calculation to a maximum of one time per day.


An advantage of said example embodiment may be that it is more difficult to erase the trace of an unauthorized software since it will take several days or several weeks depending on the number of storage positions.


In another example embodiment of the present invention said method further comprising the step of retrieving the list of a list of CVN with metadata (e.g. Odometer, date, time) for an on-board or off-board client utilizing e.g. a diagnostic communication protocol.


An advantage of said example embodiment of the present invention is that said list of CVN numbers may be easily detectable and easily visualized.





DESCRIPTION OF THE DRAWINGS

The present invention together with the above-mentioned and other objects and advantages may best be understood from the following detailed description of the embodiments, but not restricted to the embodiments, wherein is shown schematically:


CVN is an abbreviation for Checksum Verification Number. The term CVN is used for all types of checksums in the document and is not limited to the engine electronic control unit.



FIG. 1 depicts an example embodiment of a flowchart for entering CVN into a CVN logg according to the present invention.



FIG. 2 depicts an example embodiment of a software build up.



FIG. 3 depicts an example embodiment of a CVN logg.





In the drawings, equal or similar elements are referred to by equal reference numerals. The drawings are merely schematic representations, not intended to portray specific parameters of the invention. Moreover, the drawings are intended to depict only typical embodiments of the invention and therefore should not be considered as limiting the scope of the invention.


DETAILED DESCRIPTION


FIG. 1 depicts an example embodiment of a flowchart for entering CVN (Calibration Verification Number) into a CVN logg according to the present invention. The CVN logg comprises a plurality of storage positions. FIG. 3 illustrates an example embodiment of a CVN logg. A first column relates to the storage event number and is denoted by #. A second column relates to the checksum and is denoted by Checksum. A third column relates to the date of the storage event and is denoted by Date. A fourth column is relating to the odometer status and is denoted by Odo. Each storage position comprises therefore possible indication of the storage event number, checksum, date and odometer position. Alternatively, there may also further information stored at each event such as a signature of a person who made a software upgrade/amendment. There is also a use case to track the software updates made at the service station with an authorized tool. Sometimes the technician make an incorrect software update and the invention can be used for tracking those update and update the service methods.


The CVN may be calculated according to well known practice, for instance by using CRC (Cyclic Redundancy Check) 32 calculation and using the content of the data bytes which are included in the area of interest in the software as an input.


The calculation of said CVN may be performed each time a vehicle is started. Alternatively said calculation of CVN is performed at a maximum of one time a day. Making a restriction of CVN calculation of only one time per day may make it more difficult to clean a list of CVN for a vehicle owner who has used unauthorized software since cleaning one entry takes one day and x entries takes x days.


The calculated CVN is compared with the latest stored CVN in the CVN logg. When a brand new vehicle leaves a factory there is at least one CVN entry in said CVN logg. If the newly calculated CVN is equal to said latest stored CVN in the list no entry is made in the CVN logg denoted by the yes trail from “same CVN?” box in the flow chart depicted in FIG. 1.


If the newly calculated CVN is different to said latest stored CVN in the list an entry is made in the CVN logg denoted by the no trail from “same CVN?” box in the flow chart depicted in FIG. 1. If there is a free available storage place after the latest CVN in the CVN logg said newly calculated CVN is stored on said place. If all available storage places in the CVN logg are full a FIFO (first in first out) principle is used to remove the oldest stored CVN and store the newly calculated CVN in the list after the last stored CVN.



FIG. 2 illustrates an example embodiment of a software build up. Said software may comprise an application part, a dataset 1 part and a dataset 2 part. The application part of the software may comprise functionality for managing the main functionality (i.e. the programme). The dataset 1 part may comprise the calibration for the functionality for managing the emissions from the vehicle. Such functionality may be management of exhaust gas after treatment system, injection timing, injection amount, rpm limits, gear change positions etc. Dataset 2 may comprise the calibration for functionality which is unique for the vehicle such as injector codes or customer parameters. The software in said application part and/or said dataset part may have its own CVN logg, i.e., the application part of the software may have a first CVN logg and the dataset part may have a second CVN logg. There is also a possibility to use a single CVN logg for both said parts of the software.


The CVN logg can be extracted (read) by an on-board or off-board client utilizing e.g. a diagnostic communication protocol, e.g., SAE J1939-73, ISO 15765-3.

Claims
  • 1. A method for detecting use of unauthorized software in an electronic control unit provided in a vehicle, method comprising: calculating Checksum Verification Number (CVN) based on the data bytes in the area of interest of the software each time the engine is started or at a maximum of one time a day,comparing a last calculated CVN with a last stored CVN in a list comprising a plurality of storage places for CVNstoring last calculated CVN, if last calculated CVN is different to the last stored CVN, together with a date of an entry in list of CVN and/or together with a current odometer status,removing entries in the list of CVN according to FIFO principle when list of CVN is full.
  • 2. The method according to claim 1, wherein list of Checksum Verification Number (CVN) comprises at least 10 storage positions.
  • 3. The method according to claim 1, wherein method further comprises providing a separate list of Checksum Verification Number (CVN) for different predefined parts of the software application.
  • 4. The method according to claim 1, wherein method further comprises restricting Checksum Verification Number (CVN) calculation to a maximum of one time per clay.
  • 5. The method according to claim 1, method further comprises retrieving the list of a list of Checksum Verification Number (CVN) with metadata for an on-board or off-board client utilizing diagnostic communication protocol.
PCT Information
Filing Document Filing Date Country Kind 371c Date
PCT/SE09/00394 8/28/2009 WO 00 3/20/2012