DE102021001095A1 - Counter-based method for recognizing lost and re-imported messages - Google Patents

Counter-based method for recognizing lost and re-imported messages Download PDF

Info

Publication number
DE102021001095A1
DE102021001095A1 DE102021001095.7A DE102021001095A DE102021001095A1 DE 102021001095 A1 DE102021001095 A1 DE 102021001095A1 DE 102021001095 A DE102021001095 A DE 102021001095A DE 102021001095 A1 DE102021001095 A1 DE 102021001095A1
Authority
DE
Germany
Prior art keywords
counter
messages
message
sender
total
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102021001095.7A
Other languages
German (de)
Inventor
Viktor Friesen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mercedes Benz Group AG
Original Assignee
Daimler AG
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 Daimler AG filed Critical Daimler AG
Priority to DE102021001095.7A priority Critical patent/DE102021001095A1/en
Publication of DE102021001095A1 publication Critical patent/DE102021001095A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • 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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/106Packet or message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Die Erfindung betrifft ein zählerbasiertes Verfahren zum Erkennen verlorengegangener und wiedereingespielter Nachrichten, bei dem ein Empfänger und eine Sender mit jeweils einer Kommunikationseinheit ausgestattet sind, mit der sie Nachrichten senden und empfangen können, wobei jeweils ein Gesamtzähler mit einer vorgegebenen Gesamtlänge sowohl beim Sender als auch beim Empfänger vorgehalten wird, wobei diese sich vor Beginn synchronisieren und wobei sich Sender und Empfänger vor dem Versenden der Nachrichten auf eine Anzahl von zu übertragenen niederwertigen Bits des Gesamtzählers einigen. Der Sender fügt der neu zu versendenden Nachricht die vereinbarte Anzahl der niederwertigen Bits seines zuvor inkrementierten Gesamtzählers hinzu, wobei der Empfänger den zu der empfangenen Nachricht gehörenden Gesamtzähler aus dem lokal beim Empfänger abgelegten Wert des Gesamtzählers und den empfangenen niederwertigen Bits rekonstruiert, indem ein Rumpfzähler aus den höherwertigen Bits des Gesamtzählers mit den übertragenen niederwertigen Bits falls der Wert der lokale Wert der niederwertigen Bits kleiner-gleich dem übertragenen Wert ist direkt konkateniert oder andernfalls der Rumpfzähler zuvor inkrementiert wird. Der Sender und der Empfänger haben ein Integritätsschutzverfahren implementiert, welches für die Nachricht ein Integritätsstempel erzeugt, welcher auf den Nutzdaten und dem Gesamtzähler des Senders beruht, wobei der Empfänger den Integritätsstempel der empfangenen Nachricht unter Berücksichtigung des rekonstruierten Zählers berechnet. Die Erfindung sieht es vor, dass im Fall der nicht vorliegenden Übereinstimmung die Überprüfung des Integritätsstempels mehrfach durchlaufen wird, bis eine Übereinstimmung erzielt oder eine vorgegebene Anzahl von iterativen Ausführungen erreicht worden ist, wobei in jeder iterativen Ausführung der besagte Rumpfzähler inkrementiert und mit den übertragenen niederwertigen Bits konkateniert wird, wobei der so neu rekonstruierte Zähler der jeweiligen erneuten Berechnung und Überprüfung des Integritätsstempels zugrunde gelegt wird.The invention relates to a counter-based method for recognizing lost and re-imported messages, in which a receiver and a transmitter are each equipped with a communication unit with which they can send and receive messages, with a total counter with a predetermined total length both at the transmitter and at the Receiver is held, with these synchronize before the beginning and with the sender and receiver agree on a number of low-order bits of the total counter to be transmitted before the messages are sent. The sender adds the agreed number of low-order bits of its previously incremented total counter to the new message to be sent, with the receiver reconstructing the total counter belonging to the received message from the total counter value stored locally at the receiver and the low-order bits received by using a trunk counter the higher-order bits of the total counter with the transferred lower-order bits if the value of the local value of the lower-order bits is less than or equal to the transferred value, or otherwise the rump counter is incremented beforehand. The sender and the receiver have implemented an integrity protection method which generates an integrity stamp for the message, which is based on the user data and the total counter of the sender, the receiver calculating the integrity stamp of the received message taking into account the reconstructed counter. The invention provides that, in the event that there is no match, the integrity stamp is checked several times until a match has been achieved or a predetermined number of iterative executions has been achieved, in each iterative execution the said body counter incremented and with the lower-order ones transmitted Bits is concatenated, the newly reconstructed counter being used as a basis for the respective recalculation and checking of the integrity stamp.

Description

Die Erfindung betrifft ein Zählerbasiertes Verfahren zum Erkennen verlorengegangener und wiedereingespielter Nachrichten nach der im Oberbegriff von Anspruch 1 näher definierten Art.The invention relates to a counter-based method for recognizing lost and re-imported messages according to the type defined in more detail in the preamble of claim 1.

Diese Erfindung ist aus dem Gebiet der CarlT-Security für Fahrzeuge. Sie beschreibt ein zählerbasiertes Verfahren zum Schutz vor Replay-Attacken bei Nutzung eines unsicheren Kommunikationskanals mit begrenzter Übertragungskapazität.This invention is in the field of CarlT security for vehicles. It describes a counter-based method to protect against replay attacks when using an insecure communication channel with limited transmission capacity.

Es gibt viele Anwendungen, bei denen Fahrzeuge durch Personen ferngesteuert werden, bspw. ferngesteuertes Parken oder dergleichen. Bei einem allgemeinen Fernsteuerungsvorgang wird mit Hilfe einer Steuerungseinheit, bspw. eines Smartphones als Sender über einen Kommunikationskanal (bspw. Bluetooth) ein Zielsystem (bspw. ein Fahrzeug) als Empfänger gesteuert. Dabei sendet die Steuerungseinheit Steuerungsinformationen enthaltende Nachrichten (Steuerungsnachrichten) über den Kommunikationskanal an das Zielsystem und beeinflusst damit das Zielsystem, bspw. dessen Verhalten, bspw. dessen mechanische Bewegung, bspw. dessen Geschwindigkeit und Richtung. Dabei kann zur selben Zeit das Zielsystem wiederum Nachrichten bspw. mit Informationen über seinen Zustand, bspw. über die korrekt oder unkorrekt empfangenen Steuerungsnachrichten, an die Steuerungseinheit senden, muss es aber nicht notwendigerweise.There are many applications in which vehicles are remotely controlled by people, for example remote controlled parking or the like. In a general remote control process, a target system (e.g. a vehicle) is controlled as a receiver with the aid of a control unit, e.g. a smartphone as a transmitter via a communication channel (e.g. Bluetooth). The control unit sends messages containing control information (control messages) via the communication channel to the target system and thus influences the target system, for example its behavior, for example its mechanical movement, for example its speed and direction. At the same time, the target system can in turn send messages to the control unit, for example with information about its status, for example about the correctly or incorrectly received control messages, but does not necessarily have to.

Wird ein System, bspw. ein bewegliches System, bspw. ein Fahrzeug, bspw. durch eine Person, in Echtzeit ferngesteuert, so kommt der Funktionssicherheit (Safety) eine besondere Bedeutung zu, da bei der Bewegung des Systems ggf. Sachschaden entstehen oder sogar Personen verletzt werden könnten. Dadurch ergeben sich mehrere zentrale Anforderungen an das für die Fernsteuerung genutzte Protokoll. Die die Steuerungsinformationen enthaltenden Nachrichten müssen:

  1. 1. aktuell sein, d.h., ein durch die Steuerungseinheit erteilter Befehl muss zeitnah (mit niedriger Latenz (Verzögerungszeit)) am Zielsystem angekommen und dort verarbeitet sein,
  2. 2. mit einer hohen Frequenz verschickt werden, damit das Zielsystem kontinuierlich (aktuelle) Steuerungsinformationen erhält und dadurch die Gewissheit hat, dass die Steuerungsseite ihre Rolle wahrnimmt, d.h., das Zielsystem kontrolliert und bspw. die Steuerung nicht ausgefallen ist,
  3. 3. integritätsgeschützt sein, damit das Zielsystem eine während der Übertragung stattgefundene Veränderung einer Steuerungsnachricht, verlorengegangene oder mehrfach versendete Steuerungsnachrichten erkennen kann.
If a system, for example a moving system, for example a vehicle, for example by a person, is remote-controlled in real time, then the functional reliability (safety) is of particular importance, since the movement of the system may result in property damage or even people could be injured. This results in several central requirements for the protocol used for remote control. The messages containing the control information must:
  1. 1. be up-to-date, i.e. a command issued by the control unit must arrive promptly (with low latency (delay time)) at the target system and be processed there,
  2. 2. are sent with a high frequency so that the target system continuously receives (current) control information and thus has the certainty that the control side is performing its role, i.e. the target system is checking and, for example, the control has not failed,
  3. 3. Be integrity-protected so that the target system can recognize a change in a control message that has taken place during the transmission, or control messages that have been lost or that have been sent several times.

Aus der angestrebten niedrigen Latenz und hohen Frequenz folgt zum einen, dass es vorteilhaft ist, kurze einfach zu verarbeitende Steuerungsnachrichten zu versenden, bei denen sowohl die Erzeugung im Steuerungssystem, die Übertragung zum Zielsystem als auch die Verarbeitung im Zielsystem wenig Zeit benötigt. Zum anderen ist das so, dass viele der infrage kommenden Technologien für solche Steuerungsprotokolle, bspw. Bluetooth Low Energy [BLE], besonders effizient bei der Verwendung sehr kurzer Nachrichten sind und dadurch sich eine Obergrenze für eine sinnvolle Größe der Steuerungsnachrichten ergibt.From the desired low latency and high frequency, it follows on the one hand that it is advantageous to send short, easy-to-process control messages for which both generation in the control system, transmission to the target system and processing in the target system require little time. On the other hand, it is so that many of the technologies in question for such control protocols, for example Bluetooth Low Energy [BLE], are particularly efficient when using very short messages and this results in an upper limit for a meaningful size of the control messages.

Je nach Situation kann ein angemessener Integritätsschutz der Steuerungsnachrichten auf zweierlei Weise erreicht werden. Wird angenommen, dass die Steuerungsnachrichten nur gegen technische Fehler, bspw. Übertragungsfehler, nicht aber gegen (absichtliche) Manipulation abgesichert werden müssen, so wird zum Integritätsschutz typischerweise ein nicht-manipulationssicheres Verfahren wie bspw. ein CRC (bspw. CRC-32 oder CRC-64) eingesetzt.Depending on the situation, adequate protection of the integrity of the control messages can be achieved in two ways. If it is assumed that the control messages only have to be protected against technical errors, e.g. transmission errors, but not against (intentional) manipulation, a non-tamper-proof procedure such as a CRC (e.g. CRC-32 or CRC- 64) used.

Wird hingegen angenommen, dass die Steuerungsnachrichten während der Übertragung ggf. durch einen Angreifer manipuliert werden könnten, so sollten sie kryptographisch authentifiziert werden. Aus der angestrebten niedrigen Latenz, hohen Frequenz und der geringen Länge der Steuerungsnachrichten folgt, dass Steuerungsnachrichten sinnvollerweise durch im Vergleich zu asymmetrischen kryptographischen Verfahren in nahezu jeder Hinsicht signifikant weniger Ressourcen benötigende symmetrische kryptographische Verfahren, insb. symmetrische Authentifizierungsmechanismen wie bspw. HMAC, abgesichert werden sollten, auch wenn dafür im Prinzip auch asymmetrische Authentifizierungsmechanismen wie bspw. digitale Signaturen genutzt werden können.If, on the other hand, it is assumed that the control messages could possibly be manipulated by an attacker during the transmission, then they should be cryptographically authenticated. From the desired low latency, high frequency and short length of the control messages, it follows that control messages should sensibly be secured by symmetric cryptographic methods, in particular symmetric authentication mechanisms such as HMAC, which require significantly fewer resources in almost every respect compared to asymmetric cryptographic methods , even if, in principle, asymmetrical authentication mechanisms such as digital signatures can also be used for this.

Ein weiterer Aspekt des Integritätsschutzes sind verlorengegangene oder mehrfach versendete Steuerungsnachrichten. Beides kann sowohl Folge eines technischen Fehlers als auch das Ergebnis einer bewussten Manipulation durch einen Angreifer sein und sollte vom Zielsystem erkannt werden können.Another aspect of the integrity protection is lost or multiple sent control messages. Both can be the result of a technical error as well as the result of deliberate manipulation by an attacker and should be able to be recognized by the target system.

Da die Systeme oft durch Personen gesteuert und damit visuell überwacht werden, ist i.d.R. kein permanentes Feedback vom Zielsystem an die Steuerungseinheit notwendig, es kann für die Zeit der Steuerung ein unidirektionales Protokoll genutzt werden, was die Erfüllung der Anforderung nach mit einer hohen Frequenz versendeten Steuerungsnachrichten wesentlich erleichtert, da der Sender (die Steuerungseinheit) nicht auf eine Antwort des Empfängers (des Zielsystems) warten muss sondern die Steuerungsnachrichten zu nah beieinander liegenden Zeitpunkten, ggf. sogar zu festen äquidistanten Zeitpunkten, hintereinander abschicken kann.Since the systems are often controlled by people and thus visually monitored, there is generally no need for permanent feedback from the target system to the control unit; a unidirectional protocol can be used for the time of control, which means that the requirement for control messages sent at a high frequency can be met much easier, since the sender (the control unit) does not have to wait for a response from the receiver (the target system) but rather the Can send control messages one after the other at times that are too close together, possibly even at fixed equidistant times.

Da die Steuerungseinheit keine Rückmeldung vom Empfänger bekommen muss, insb. keine Empfangsbestätigungen für versendete Steuerungsnachrichten, kann die Steuerungseinheit verlorene Nachrichten nicht erneut senden, denn sie bekommt es nicht immer mit, ob eine Nachricht angekommen oder verlorengegangen ist.Since the control unit does not have to receive any feedback from the recipient, in particular no acknowledgments of receipt for control messages that have been sent, the control unit cannot re-send lost messages because it does not always know whether a message has arrived or has been lost.

Um den Replay-Schutz sicherzustellen oder den Verlust von Steuerungsnachrichten im Zielsystem erkennen zu können, wird nach dem Stand der Technik allen Nachrichten eine sogenannte Nonce hinzugefügt, die im gesamten Lebenszyklus der Kommunikationsbeziehung nur einmal vorkommen darf. Zur Bestimmung der Nonce wird oft eins der drei in der nicht vorveröffentlichten DE 10 2020 003 328 vom 30.06.2020 „Zeitstempelbasiertes Verfahren zum Schutz vor Replay-Attacken“ beschriebenen Verfahren herangezogen: Challenge-Response, monoton wachsender Zähler, Zeitstempel.In order to ensure replay protection or to be able to detect the loss of control messages in the target system, a so-called nonce is added to all messages according to the state of the art, which may only occur once in the entire life cycle of the communication relationship. One of the three in the not previously published is often used to determine the nonce DE 10 2020 003 328 of 06/30/2020 "Time stamp-based procedure for protection against replay attacks" are used: Challenge-Response, monotonically increasing counter, time stamp.

Das erste Verfahren, Challenge-Response, ist für das hier beschriebene Umfeld nicht geeignet, da unidirektionale Kommunikation angenommen wird und damit keine Challenge vom Zielsystem an die Steuerungseinheit übermittelt werden kann. Das dritte Verfahren, Zeitstempel, ist für das hier beschriebene Umfeld ebenfalls ungeeignet, da die Nachrichten in sehr kurzen potentiell im Millisekunden-Bereich liegenden Abständen versendet werden und die Uhren der beiden Systeme sehr genau aufeinander abgestimmt sein müssten, damit die Kommunikation robust funktionieren könnte.The first method, challenge-response, is not suitable for the environment described here, since unidirectional communication is assumed and therefore no challenge can be transmitted from the target system to the control unit. The third method, time stamp, is also unsuitable for the environment described here, since the messages are sent at very short intervals, potentially in the millisecond range, and the clocks of the two systems would have to be very precisely coordinated so that communication could function robustly.

Das verbleibende Verfahren, das einen monoton wachsender Zähler als Nonce nutzt, löst die Aufgabe im Großen und Ganzen gut. Damit können sowohl verlorengegangene als auch mehrfach versendete Steuerungsnachrichten vom Zielsystem erkannt werden. Des Weiteren kann ein monoton wachsender Zähler sowohl mit nicht gegen Manipulation schützenden (wie CRC) als auch mit gegen Manipulation schützenden Integritätsschutzverfahren (wie HMAC) gut kombiniert werden. Das einzige Problem, das in dem Zusammenhang auftritt, ist der Platz in der Nachricht, den der Zähler benötigt. Dabei wird ein Zähler i. d. R. durch eine nichtnegative ganze Zahl repräsentiert, deren Binärdarstellung in der Nachricht als eine Bitfolge fester Länge kodiert wird, die ggf. führende Nullen aufweist. So wird bspw. bei einer Zählerlänge von acht Bits der Zählerwert 15 durch die Bitfolge 00001111 und der Zählerwert 254 durch die Bitfolge 11111110 repräsentiert. Da beim Steuerungsvorgang wegen der hohen Frequenz sehr viele Nachrichten übertragen werden müssen, kann ein Zähler, der bspw. über die gesamte Lebensdauer des Systems zu eindeutigen Nonces führen soll, mehrere Byte (drei-vier) benötigen. In kurzen bspw. 20 Byte langen Nachrichten spielen drei-vier Byte, die nicht für die Übertragung von Nutzdaten (Steuerungsinformationen) genutzt werden können, aber eine große Rolle. Wenn man bedenkt, dass ein Teil der Nachrichten für einen Authentifizierungsstempel benötigt wird, bspw. 10 Byte für einen gekürzten MAC, so verbleiben insgesamt nur höchstens 10 Byte für Nutzdaten. Werden davon drei-vier Byte für den Zähler verwendet, so verbleiben nur noch sechs-sieben Byte für Nutzdaten.The remaining method, which uses a monotonically increasing counter as a nonce, does the job well by and large. This means that control messages that have been lost or that have been sent multiple times can be recognized by the target system. Furthermore, a monotonically growing counter can be combined well with both non-tamper-proof (such as CRC) and tamper-proof integrity protection methods (such as HMAC). The only problem that arises in this context is the space in the message that the meter needs. A counter i. d. Usually represented by a non-negative integer, the binary representation of which is encoded in the message as a bit sequence of fixed length, which may have leading zeros. For example, with a counter length of eight bits, the counter value 15 is represented by the bit sequence 00001111 and the counter value 254 by the bit sequence 11111110. Since a large number of messages have to be transmitted during the control process due to the high frequency, a counter, which, for example, should lead to unambiguous nonces over the entire service life of the system, may require several bytes (three-four). In short messages, for example 20 byte long, three or four bytes, which cannot be used for the transmission of user data (control information), play a major role. If you consider that some of the messages are required for an authentication stamp, e.g. 10 bytes for an abbreviated MAC, then a total of only 10 bytes at most remain for user data. If three-four bytes of this are used for the counter, only six-seven bytes remain for user data.

Wie viele andere Protokolle auch, bspw. auch das weit verbreitete TLS, besteht ein Steuerungsprotokoll typischerweise aus zwei Phasen. In der ersten Phase, der Initialisierungsphase („Handshake“ in TLS), werden zwischen den Kommunikationspartnern, also bspw. der Steuerungseinheit und dem Zielsystem, die Details des in der zweiten Phase, der Betriebsphase (Steuerungsphase, Steuerungsvorgang), zu nutzenden Protokolls und dessen Parameter bzw. Startwerte für bestimmte Variablen ausgehandelt. Diese Details können bspw. die zu nutzende Protokollversion, die Vereinbarung der in der Steuerungsphase zu nutzenden genauen Nachrichtenformate, die Aushandlung gemeinsamer symmetrischer kryptographischer Schlüssel, die Abstimmung der Länge und eines gemeinsamen Startwerts des für den Schutz gegen Replay-Attacken zu nutzenden Zählers und die Festlegung weiterer Protokollparameter betreffen.Like many other protocols, e.g. also the widespread TLS, a control protocol typically consists of two phases. In the first phase, the initialization phase ("handshake" in TLS), the details of the protocol to be used in the second phase, the operating phase (control phase, control process), and its Negotiated parameters or start values for certain variables. These details can be, for example, the protocol version to be used, the agreement of the exact message formats to be used in the control phase, the negotiation of common symmetric cryptographic keys, the coordination of the length and a common start value of the counter to be used for protection against replay attacks and the definition concern other protocol parameters.

Werden dabei für jeden neuen Steuerungsvorgang neue kryptographische Schlüssel auf sichere Art und Weise ausgehandelt, so kann bei jedem Steuerungsvorgang der Startwert für den Zähler gleich, bspw. bzw. typischerweise 0, sein. Werden jedoch die gleichen Schlüssel für mehrere Steuerungsvorgänge, bspw. für die gesamte Lebensdauer des Steuerungssystems oder für die gesamte Lebensdauer des Zielsystems, genutzt, so darf sich der in den einzelnen Steuerungsnachrichten enthaltene Zähler nicht wiederholen und muss zu Beginn zwischen den Kommunikationspartnern explizit abgestimmt werden. Sinnvollerweise wird der Zähler in diesem Fall nach dem Ende eines Steuerungsvorgangs von einem der Kommunikationspartner persistent gespeichert und vor dem nächsten Steuerungsvorgang der anderen Seite während der Initialisierungsphase sicher übermittelt. Deswegen kann davon ausgegangen werden, dass zu Beginn des Steuerungsvorgangs beide Partner im Besitz des gleichen Zählers sind, d.h., seinen Wert kennen und dieser gleich ist.If new cryptographic keys are negotiated in a secure manner for each new control process, the start value for the counter can be the same, for example or typically 0, for each control process. However, if the same key is used for several control processes, for example for the entire service life of the control system or for the entire service life of the target system, the counter contained in the individual control messages must not be repeated and must be explicitly agreed between the communication partners at the beginning. In this case, the counter is sensibly stored persistently by one of the communication partners after the end of a control process and is securely transmitted to the other side during the initialization phase before the next control process. It can therefore be assumed that at the beginning of the control process both partners are in possession of the same counter, i.e. they know its value and it is the same.

Verglichen mit der Steuerungsphase ist die Initialisierungsphase weniger zeitkritisch, da in dieser Zeit kein Steuerungsvorgang, also bspw. keine Bewegung des Zielsystems, stattfindet. So können in dieser Phase bspw. längere Nachrichten bidirektional ausgetauscht oder/und asymmetrische Kryptographie, bspw. zur Aushandlung eines gemeinsamen symmetrischen Schlüssels, genutzt werden. In der nachfolgenden Steuerungsphase findet der eigentliche Steuerungsvorgang statt; in dieser Phase sind die Nachrichten kurz und es kann i. d. R. sinnvollerweise nur symmetrische Kryptographie genutzt werden.Compared to the control phase, the initialization phase is less time-critical, since no control process, for example no movement of the target system, takes place during this time. So can in this phase, for example, longer messages are exchanged bidirectionally and / or asymmetric cryptography, for example for negotiating a common symmetric key, is used. The actual control process takes place in the subsequent control phase; In this phase, the messages are short and, as a rule, only symmetric cryptography can be used.

Um Übertragungsressourcen einzusparen, verwendet „Security Protocols for Sensor Networks. Adrian Perrig, Robert Szewczyk, Victor Wen, David Culler, J. D. Tygar, Wireless Networks 8, 521-534, Kluwer Academic Publishers, 2002“ nachfolgend als [SNEP] bezeichnet, einen zwischen Sender und Empfänger geteilten Zähler, der nicht übertragen sondern stattdessen auf beiden Seiten (Sender, Empfänger) geführt und nach jeder Nachricht simultan inkrementiert wird: „Second, like many cryptographic protocols it uses a counter, but we avoid transmitting the counter value by keeping state at both end points.“ Und weiter: „However, sending the randomized data over the RF channel requires more energy. So we construct another cryptographic mechanism that achieves semantic security with no additional transmission overhead. Instead, we rely on a shared counter between the sender and the receiver for the block cipher in counter mode (CTR) (as we discuss in Section 6). Since the communicating parties share the counter and increment it after each block, the counter does not need to be sent with the message. To achieve twoparty authentication and data integrity, we use a message authentication code (MAC)“.To save transmission resources, uses "Security Protocols for Sensor Networks. Adrian Perrig, Robert Szewczyk, Victor Wen, David Culler, JD Tygar, Wireless Networks 8, 521-534, Kluwer Academic Publishers, 2002 “hereinafter referred to as [SNEP], a counter shared between sender and receiver that does not transmit but instead on both sides (sender, recipient) and is incremented simultaneously after each message: "Second, like many cryptographic protocols it uses a counter, but we avoid transmitting the counter value by keeping state at both end points." And further: "However, Sending the randomized data over the RF channel requires more energy. So we construct another cryptographic mechanism that achieves semantic security with no additional transmission overhead. Instead, we rely on a shared counter between the sender and the receiver for the block cipher in counter mode (CTR) (as we discuss in Section 6). Since the communicating parties share the counter and increment it after each block, the counter does not need to be sent with the message. To achieve two party authentication and data integrity, we use a message authentication code (MAC) ".

Falls bei [SNEP] die Überprüfung des MAC fehlschlägt, wird angenommen, dass Nachrichten verlorengegangen sein müssen und es wird versucht, durch Ausprobieren den zu der empfangenen Nachricht passenden Zählerwert zu ermitteln und damit den Wert des Zählers auf beiden Seiten erneut zu synchronisieren. Schlägt dieses fehl, wird der Zählerwert mit Hilfe eines dedizierten Protokolls synchronisiert. „In case the MAC does not match, the receiver can try out a fixed, small number of counter increments to recover from message loss. In case the optimistic re-synchronization fails, the two parties engage in a counter exchange protocol, which uses the strong freshness protocol described below.“If the check of the MAC fails with [SNEP], it is assumed that messages must have been lost and an attempt is made to determine the counter value that matches the received message by trial and error and thus to synchronize the value of the counter on both sides again. If this fails, the counter value is synchronized using a dedicated protocol. "In case the MAC does not match, the receiver can try out a fixed, small number of counter increments to recover from message loss. In case the optimistic re-synchronization fails, the two parties engage in a counter exchange protocol, which uses the strong freshness protocol described below. "

Bei der Verwendung eines Zählers als Nonce zum Schutz gegen Replay-Attacken unterscheiden sich die in aufeinanderfolgenden Nachrichten enthaltenen als Bitfolge kodierten Zähler lediglich um eins, also kaum. Die meisten der in den Zählern aufeinanderfolgender Nachrichten enthaltenen Bits, i.d.R. die „linken“ (höherwertigeren) More Significant Bits (MS-Bits), werden daher i.d.R. gleich sein, deren Übertragung ist somit in den meisten Fällen redundant. Könnte man davon ausgehen, dass der Kommunikationskanal absolut zuverlässig ist, dass also keine Steuerungsnachrichten verlorengehen bzw. wiederholt übertragen werden und die Steuerungsnachrichten stets in der Reihenfolge ihres Versendens beim Zielsystem ankommen, so müsste nach einer Initialisierungsphase, bei der ein gemeinsamer Startwert für den Zähler festgelegt worden ist, gar kein Zähler in den einzelnen Steuerungsnachrichten mehr übertragen werden, das Bestimmen des zu einer Steuerungsnachricht gehörenden Zählers könnte durch einfaches Hochzählen (Inkrementieren) des Zählers mit jeder empfangenen Steuerungsnachricht komplett implizit erfolgen. So wird bei [SNEP] vorgegangen.When using a counter as a nonce to protect against replay attacks, the counters encoded as a bit sequence contained in successive messages differ only by one, i.e. hardly any. Most of the bits contained in the counters of consecutive messages, usually the "left" (more significant) More Significant Bits (MS bits), will therefore usually be the same, and their transmission is therefore redundant in most cases. If one could assume that the communication channel is absolutely reliable, i.e. that no control messages are lost or repeatedly transmitted and the control messages always arrive at the target system in the order in which they were sent, an initialization phase would have to set a common start value for the counter has been, no more counters are transmitted in the individual control messages, the determination of the counter belonging to a control message could be done completely implicitly by simply counting up (incrementing) the counter with each received control message. This is how it works at [SNEP].

In der Praxis können Nachrichten jedoch verlorengehen. Geht man davon aus, dass höchstens eine Nachricht hintereinander verlorengehen kann, so reicht es, um stets zu allen verlorengegangenen Nachrichten den dazugehörigen Zähler bestimmen zu können, nur ein Bit (das niedrigwertigste Least Significant Bit, LS-Bit) des Zählers zu übertragen. Können höchstens zwei oder drei Nachrichten hintereinander verlorengehen, müssen zwei der Less Significant Bits (LS-Bits) des Zählers übertragen werden. Bei höchstens vier bis sieben möglichen hintereinander verlorengegangenen Nachrichten sind es drei LS-Bits usw. Im allgemeinen Fall kann man sagen, dass bei k übertragenen LS-Bits die dazugehörigen Zähler von bis zu (2k - 1) hintereinander verlorengegangenen Nachrichten korrekt bestimmt werden können. Es ist wichtig, eine „optimale“ Anzahl von LS-ZählerBits mit den Steuerungsnachrichten zu übertragen, um auf der einen Seite den vom Sender bei der Bildung des Integritätsstempels (bspw. CRC oder MAC) verwendeten vollständigen Zähler stets vom Empfänger korrekt rekonstruieren und anschließend für die Prüfung des Integritätsstempels verwenden zu können, auf der anderen Seite jedoch nicht zu viel Platz in den Steuerungsnachrichten für die LS-Bits des Zählers zu verwenden.In practice, however, messages can be lost. Assuming that at most one message can be lost in a row, it is sufficient to transfer only one bit (the lowest significant least significant bit, LS bit) of the counter in order to always be able to determine the associated counter for all lost messages. If a maximum of two or three messages can be lost in a row, two of the less significant bits (LS bits) of the counter must be transmitted. With a maximum of four to seven possible consecutive lost messages there are three LS bits, etc. In the general case, one can say that with k transmitted LS bits, the associated counters of up to (2 k - 1) consecutive lost messages can be correctly determined . It is important to transmit an "optimal" number of LS counter bits with the control messages in order, on the one hand, to always correctly reconstruct the complete counter used by the sender when forming the integrity stamp (e.g. CRC or MAC) by the receiver and then for to be able to use the checking of the integrity stamp, but on the other hand not to use too much space in the control messages for the LS bits of the counter.

Es wird im allgemeinen Stand der Technik vorgeschlagen, analog zu [SNEP], den Zähler auf beiden Seiten, also beim Sender und beim Empfänger, zu speichern und synchron zu inkrementieren, dabei jedoch, im Gegensatz zu [SNEP], eine bestimmte Anzahl der Less Significant Bits (LS-Bits) des Zählers mit jeder Nachricht zu übertragen. Dieser in jeder Nachricht N enthaltene Anteil der Zähler-Bitfolge wird als N.ÜbertrZähler und dessen Länge, also die Anzahl der übertragenen Bits, die für alle Nachrichten innerhalb eines Steuerungsvorgangs gleich ist, als ÜbertrZählerLänge bezeichnet.In the general state of the art, it is proposed, analogously to [SNEP], to store the counter on both sides, ie at the sender and at the receiver, and to increment it synchronously, but in contrast to [SNEP], a certain number of Less Significant bits (LS bits) of the counter to be transmitted with each message. This portion of the counter bit sequence contained in each message N is referred to as N.ÜbertrZähler and its length, i.e. the number of bits transmitted, which is the same for all messages within a control process, is referred to as the transfer counter length.

Eine Nachricht N besteht somit aus der Konkatenation von Nutzdaten und der übertragenen LS-Bits des Zählers, also N = N.Nutzdaten II N.ÜbertrZähler. Nach dem Empfang der Nachricht N' = N'.Nutzdaten II N'.ÜbertrZähler rekonstruiert der Empfänger daraufhin den zu N' gehörenden Zähler N'.GesZähler aus dem beim Empfänger E intern abgespeicherten zu der letzten korrekt empfangenen (und ggf. geprüften) Nachricht gehörenden erfolgreich rekonstruierten Zähler E.GesZähler und den als Teil der neuen Nachricht N' empfangenen LS-Bits N'.ÜbertrZähler des zu der neuen Nachricht gehörenden Gesamtzählers N'.GesZähler.A message N therefore consists of the concatenation of user data and the transmitted LS bits of the counter, i.e. N = N.Nutzdaten II N.ÜbertrZähler. After receiving the message N '= N'. User data II N '. Transfer counter, the Receiver then the counter N 'belonging to N'. Total counter from the successfully reconstructed counter E total counter belonging to the last correctly received (and possibly checked) message, stored internally at receiver E, and the LS counter received as part of the new message N ' Bits N'.TransferCounter of the total counter N'.TotalCounter belonging to the new message.

Es wird im allgemeinen Stand der Technik des Weiteren vorgeschlagen, dass der Sender vor dem Bilden einer neuen Nachricht N = N.Nutzdaten || N.ÜbertrZähler den lokal abgelegten Zähler S.GesZähler inkrementiert und der Empfänger den Wert des zu einer empfangenen Nachricht N' gehörenden Gesamtzählers N'.GesZähler aus dem lokal abgelegten Wert des Gesamtzählers E.GesZähler = E.RumpfZähler II E.ÜbertrZähler und dem empfangenen Wert des Übertragungszählers N'.ÜbertrZähler wie folgt rekonstruiert. Dabei wird ohne Beschränkung der Allgemeinheit nur der Fall betrachtet, dass der Sender den Zähler vor dem Bilden der Nachricht inkrementiert, d.h., für die Bildung der ersten Nachricht als Wert des Zählers der um eins erhöhte bspw. in der Initialisierungsphase ausgehandelte Startwert des Zählers genutzt wird. Alternativ könnte der Zähler auch nach dem Versenden einer Nachricht inkrementiert werden, in diesem Fall würde die erste Steuerungsnachricht mit dem ausgehandelten Startwert gleichen Wert des Zählers gebildet.

  1. 1. Inkrementiere den Wert des beim Empfänger lokal gespeicherten Zählers E.GesZähler um 1, so dass E.GesZähler := E.GesZähler +1
    1. a. Sind keine Steuerungsnachrichten seit dem Empfang der letzten korrekten Steuerungsnachricht verlorengegangen und ist die Nachricht unverändert in der korrekten Reihenfolge beim Empfänger angekommen, so ist jetzt N'.GesZähler = E.GesZähler, da die Steuerungseinheit den Wert ihres lokal abgelegten Zählers vor der Bildung der Nachricht N ebenfalls inkrementiert hat.
  2. 2. Bestimme ausgehend von der Bitfolge E.GesZähler und der Anzahl der zu übertragenden Bits ÜbertrZählerLänge die beiden Bitfolgen E.RumpfZähler und E.ÜbertrZähler, so dass E.GesZähler = E.RumpfZähler II E.ÜbertrZähler
  3. 3. Prüfe, ob der so ermittelte lokale Wert E.ÜbertrZähler kleiner oder gleich dem empfangenen Wert N'.ÜbertrZähler ist, also ob E.ÜbertrZähler ≤ N'.ÜbertrZähler
    1. a. Wenn ja, wird angenommen, dass es seit dem Empfang der letzten korrekten Steuerungsnachricht durch das Zielsystem zu keinem Überlauf im Bereich der übertragenen LS-Bits aufgrund potentiell verlorengegangener Steuerungsnachrichten gekommen ist, der Gesamtzähler der empfangenen Nachricht N'.GesZähler wird direkt gebildet: N'.GesZähler := E.RumpfZähler II N'.ÜbertrZähler
    2. b. Wenn nein, wird angenommen, dass es seit dem Empfang der letzten korrekten Steuerungsnachricht durch das Zielsystem zu einem Überlauf im Bereich der übertragenen LS-Bits aufgrund potentiell verlorengegangener Steuerungsnachrichten gekommen ist, der Rumpf des lokal abgelegten Zählers wird vor der Bildung des Gesamtzählers der empfangenen Nachricht N'.GesZähler um eins erhöht:
      • N'.RumpfZähler := E.RumpfZähler +1
      • N'.GesZähler := N'.RumpfZähler II N'.ÜbertrZähler
It is also proposed in the general prior art that the sender N = N. User data || N.ÜbertrZähler increments the locally stored counter S.TotalCounter and the recipient the value of the total counter N'.TotalCounter belonging to a received message N 'from the locally stored value of the total counter E.TotalCounter = E.RumpfZähler II E.TransferCounter and the received The value of the transfer counter N '. Transfer counter reconstructed as follows. Without loss of generality, only the case is considered in which the sender increments the counter before the message is created, i.e. the start value of the counter increased by one, e.g. negotiated in the initialization phase, is used to create the first message as the counter value . Alternatively, the counter could also be incremented after a message has been sent, in which case the first control message would be formed with the same value of the counter as the negotiated start value.
  1. 1. Increment the value of the counter E.TotalCounter stored locally at the receiver by 1, so that E.TotalCounter: = E.TotalCounter +1
    1. a. If no control messages have been lost since the last correct control message was received and the message has arrived unchanged in the correct order at the recipient, N'.GesCounter = E.GesCounter, since the control unit reads the value of its locally stored counter before the message was created N has also incremented.
  2. 2. On the basis of the bit sequence E.TotalCounter and the number of bits to be transmitted, TransferCounterLength, determine the two bit sequences E.RumpfZähler and E.TubertrZähler, so that E.TotalCounter = E.RumpfZähler II E.TransferCounter
  3. 3. Check whether the local value E.OverCounter determined in this way is less than or equal to the received value N'.TransferCounter, i.e. whether E.TransferCounter ≤ N'.TransferCounter
    1. a. If so, it is assumed that there has been no overflow in the area of the transmitted LS bits since the last correct control message was received by the target system due to potentially lost control messages, the total counter of the received message N '. Total counter is formed directly: N' .TotalCounter: = E.RumpfCounter II N'.TransferCounter
    2. b. If not, it is assumed that since the last correct control message was received by the target system, there has been an overflow in the area of the transmitted LS bits due to potentially lost control messages N'.Total counter increased by one:
      • N '. Body counter: = E. Body counter +1
      • N'.TotalCounter: = N'.RumpfZähler II N'.TransferCounter

Nimmt man an, dass

  1. (1) sich Nachrichten während der Übertragung weder aus technischen Gründen noch durch Manipulation verändern,
  2. (2) Nachrichten in der richtigen Reihenfolge beim Empfänger ankommen,
  3. (3) Nachrichten nicht mehrfach versendet werden und (4) nicht mehr als (2ÜbertrZählerlänge-1) Nachrichten hintereinander verlorengehen,
so kann mit Hilfe des oben beschriebenen Verfahrens der zu einer Nachricht N' gehörende Zähler N'.GesZähler immer korrekt rekonstruiert werden (so dass N'.GesZähler = N.GesZähler) und damit die Nummer der empfangenen Nachricht eindeutig bestimmt werden. Insbesondere kann vom Empfänger so erkannt werden, ob und ggf. wie viele Nachrichten verlorengegangen sind. Die von ÜbertrZählerLänge abhängige maximale Anzahl hintereinander verlorengegangener Nachrichten, die vom Empfänger korrekt rekonstruiert werden können, wird mit MaxRekonstr(ÜbertrZählerLänge) bezeichnet, also MaxRekonstr(ÜbertrZählerLänge) := (2ÜbertrZählerlänge - 1).Assume that
  1. (1) Messages change during transmission neither for technical reasons nor through manipulation,
  2. (2) Messages arrive at the recipient in the correct order,
  3. (3) Messages are not sent more than once and (4) no more than (2 transfer counter length -1) messages are lost one after the other,
Thus, with the aid of the method described above, the counter N'.GesCounter belonging to a message N 'can always be correctly reconstructed (so that N'.GesCounter = N.GesCounter) and thus the number of the received message can be clearly determined. In particular, the recipient can thus recognize whether and, if so, how many messages have been lost. The maximum number of consecutive lost messages that can be correctly reconstructed by the recipient, which depends on the ÜberertrZählerLänge, is referred to as MaxRekonstr (TransferCounterLength), i.e. MaxRekonstr (TransferCounterLength): = (2 TransferCounter length - 1).

Es wird vorgeschlagen, den vom Empfänger ermittelten Wert des Gesamtzählers N'.GesZähler = N'.GesZähler(E.GesZähler, N'.ÜbertrZähler) zu nutzen, um festzustellen, ob und ggf. wie viele Nachrichten verlorengegangen sind. Dazu werden der beim Empfänger abgelegte Gesamtzähler E.GesZähler und der rekonstruierte Gesamtzähler der empfangenen Nachricht N'.GesZähler miteinander verglichen.

  1. 1. E.GesZähler > N'.GesZähler kann wegen der Art der Berechnung von N'.GesZähler aus E.GesZähler und N'.ÜbertrZähler nicht vorkommen.
  2. 2. Ist E.GesZähler = N'.GesZähler, so handelt es sich bei der empfangenen Nachricht N' um die erwartete Nachricht N.
  3. 3. Ist E.GesZähler < N'.GesZähler, so handelt es sich bei der Nachricht N' um eine bislang nicht empfangene Nachricht N, es sind jedoch (N'.GesZähler - E.GesZähler) Nachrichten verlorengegangen.
It is suggested to use the value of the total counter N'.TotalCounter = N'.TotalCounter (E.TotalCounter, N'.TransferCounter) determined by the recipient in order to determine whether and, if so, how many messages have been lost. For this purpose, the total counter E.TotalCounter stored at the receiver and the reconstructed total counter of the received message N'.TotalCounter are compared with one another.
  1. 1. E.TotalCounter>N'.TotalCounter cannot occur because of the type of calculation of N'.TotalCounter from E.TotalCounter and N'.TotalCounter.
  2. 2. If E.TotalCounter = N'.TotalCounter, the received message N 'is the expected message N.
  3. 3. If E.TotalCounter <N'.TotalCounter, the message N 'is a message N that has not yet been received, but (N'.TotalCounter - E.TotalCounter) messages have been lost.

Es wird des Weiteren vorgeschlagen, am Ende aller Überprüfungen dem lokal abgelegten Gesamtzähler des Empfängers E.GesZähler den rekonstruierten Wert des Gesamtzählers der Nachricht N'.GesZähler zuzuweisen, also E.GesZähler := N'.GesZähler. Damit entspricht E.GesZähler wieder dem Wert des erfolgreich rekonstruierten Gesamtzählers der zuletzt empfangenen Nachricht, damit ist der Empfänger wieder in dem Zustand, der es ihm erlaubt, den Gesamtzähler der nächsten empfangenen Nachricht korrekt zu rekonstruieren.It is further proposed, at the end of all checks, to assign the reconstructed value of the total counter of the message N'.TotalCounter to the locally stored total counter of the receiver E.GesCounter, i.e. E.GesCounter: = N'.TotalCounter. E.TotalCounter thus corresponds again to the value of the successfully reconstructed total counter of the last received message, so that the recipient is again in the state that allows him to correctly reconstruct the total counter of the next received message.

Des Weiteren wird vorgeschlagen, den nach dem zuerst beschriebenen Verfahren rekonstruierten Gesamtzähler N'.GesZähler der empfangenen Nachricht N' zum Erkennen beliebig vieler verlorengegangener oder mehrfach übertragener oder in falscher Reihenfolge angekommener Nachrichten zu verwenden. Dazu wird vorgeschlagen, mit jeder Nachricht zusätzlich zu den Nutzdaten und den übertragenen LS-Bits des Zählers einen Integritätsstempel IntStemp der Nachricht zu übertragen, wobei dieser Integritätsstempel IntStemp mit Hilfe eines Integritätsschutzverfahrens INT in Abhängigkeit von den zu übertragenden Nutzdaten N.Nutzdaten und dem gesamten beim Sender abgelegten Zähler S.GesZähler gebildet wird, also N.IntStemp := INT(N.Nutzdaten, S.GesZähler), wobei als Integritätsschutzverfahren INT bspw. ein nicht kryptographisch sicheres Integritätsschutzverfahren wie bspw. CRC oder ein kryptographisch sicheres bspw. symmetrisches Authentifizierungsverfahren wie bspw. HMAC genutzt wird. Somit hat die übertragene Nachricht die Form N = N.Nutzdaten II N.ÜbertrZähler || N.IntStemp, wobei bspw. N.IntStemp := CRC(N.Nutzdaten || S.GesZähler) oder N.IntStemp := AUTH(symmKey, N.Nutzdaten || S.GesZähler), wobei AUTH ein kryptografisch sicheres von beiden Partnern implementiertes symmetrisches Authentifizierungsverfahren und symmKey ein dem Sender und dem Empfänger gleichermaßen bekannter symmetrischer Schlüssel ist. Dabei kann, um Platz in der Nachricht zu sparen, im Falle der Verwendung eines kryptographisch sicheren symmetrischen Authentifizierungsverfahrens alternativ nicht der ganze Integritätsstempel sondern nur ein Teil davon, bspw. die ersten (höherwertigen, Most Significant) k, bspw. zehn, Bits als Teil der Nachricht N.IntStemp übertragen werden.Furthermore, it is proposed to use the total counter N'.GesCounter of the received message N ', reconstructed according to the method described first, to identify any number of messages that have been lost or that have been transmitted several times or that have arrived in the wrong order. For this purpose, it is proposed to transmit an integrity stamp IntStemp of the message with each message in addition to the user data and the transmitted LS bits of the counter, this integrity stamp IntStemp using an integrity protection method INT depending on the user data to be transmitted N. user data and the total at Transmitter stored counter S.GesZähler is formed, i.e. N.IntStemp: = INT (N.Nutzdaten, S.GesZähler), with the integrity protection method INT e.g. a non-cryptographically secure integrity protection method such as CRC or a cryptographically secure e.g. symmetrical authentication method such as e.g. HMAC is used. The transmitted message thus has the form N = N.Nutzdaten II N.ÜbertrZähler || N.IntStemp, where e.g. N.IntStemp: = CRC (N.Nutzdaten || S.TotalCounter) or N.IntStemp: = AUTH (symmKey, N.Nutzdaten || S.TotalCounter), where AUTH is a cryptographically secure one of the two The symmetric authentication method implemented by partners and symmKey is a symmetric key that is known to both the sender and the recipient. In order to save space in the message, if a cryptographically secure symmetric authentication method is used, not the entire integrity stamp but only part of it, e.g. the first (higher-value, most significant) k, e.g. ten, bits can be used as part of the message N.IntStemp.

Generell können als INT auch asymmetrische Authentifizierungsverfahrens, bspw. digitale Signaturen, die dann als IntStemp übertragen werden, genutzt werden. In dem hier beschriebenen Kontext dürften diese jedoch eine geringere Rolle spielen, da die typische digitale Signatur (bspw. 2048 bei RSA oder 256 bei ECC-256) mindestens so groß wie der typische MAC (bspw. 256 bei HMAC-SHA-256) ist und vor allem, um erfolgreich vom Empfänger geprüft werden zu können, eine digitale Signatur immer komplett beim Empfänger vorliegen und damit komplett als Teil der Nachricht übertragen werden muss, die Übertragung nur eines Teils des Integritätsstempels, wie im symmetrischen Fall möglich und üblich, nicht möglich ist.In general, asymmetrical authentication procedures, e.g. digital signatures, which are then transmitted as IntStemp, can also be used as INT. In the context described here, however, these should play a lesser role, since the typical digital signature (e.g. 2048 with RSA or 256 with ECC-256) is at least as large as the typical MAC (e.g. 256 with HMAC-SHA-256) And above all, in order to be able to be successfully checked by the recipient, a complete digital signature must always be available to the recipient and must therefore be transmitted completely as part of the message, the transmission of only part of the integrity stamp, as possible and usual in the symmetrical case, not possible is.

Es wird dabei ferner vorgeschlagen, nach Empfang der Nachricht N' = N'.Nutzdaten II N'.ÜbertrZähler || N'.lntStemp zur Feststellung, ob die empfangene Nachricht während der Übertragung verändert worden ist oder Nachrichten verlorengegangen oder mehrfach versendet worden sind oder in einer falschen Reihenfolge angekommen sind, vom Empfänger folgende Schritte durchzuführen.

  1. 1. Rekonstruiere den Gesamtzähler der empfangenen Nachricht N' N'.GesZähler bspw. nach dem oben beschriebenen Verfahren 1.
  2. 2. Berechne den Integritätsstempel N'.IntStemp' := INT(N'.Nutzdaten, N'.GesZähler) nach dem mit dem Sender vereinbarten Verfahren INT, bspw. als
    1. a. N'.lntStemp' := CRC(N'.Nutzdaten || N'.GesZähler) oder
    2. b. N'.lntStemp' := AUTH(symmKey, N'.Nutzdaten || N'.GesZähler)
It is also proposed that after receiving the message N '= N'.Nutzdaten II N'.ÜbertrZähler || N'.lntStemp to determine whether the received message has been changed during transmission or whether messages have been lost or have been sent several times or have arrived in the wrong order, the recipient should carry out the following steps.
  1. 1. Reconstruct the total counter of the received message N 'N'. Total counter, for example using method 1 described above.
  2. 2. Calculate the integrity stamp N'.IntStemp ': = INT (N'.Nutzdaten, N'.TotalCounter) according to the INT method agreed with the sender, e.g. as
    1. a. N'.lntStemp ': = CRC (N'. user data || N'.total counter) or
    2. b. N'.lntStemp ': = AUTH (symmKey, N'. user data || N'.total counter)

Die Darstellung nimmt an dieser Stelle ohne Beschränkung der Allgemeinheit die Nutzung eines symmetrische Verfahrens wie CRC oder HMAC an.

  • 3.Vergleiche den berechneten Integritätsstempel N'.IntStemp' mit dem empfangenen Integritätsstempel N'.IntStemp.
    • a.Falls N'.IntStemp' == N'.IntStemp
      1. i. ERFOLG :=TRUE
    • b.Falls N'.lntStemp' # N'.IntStemp
      1. i. ERFOLG := FALSE
At this point, the representation assumes the use of a symmetrical procedure such as CRC or HMAC without loss of generality.
  • 3. Compare the calculated integrity stamp N'.IntStemp 'with the received integrity stamp N'.IntStemp.
    • a.If N'.IntStemp '== N'.IntStemp
      1. i. SUCCESS: = TRUE
    • b.If N'.lntStemp '# N'.IntStemp
      1. i. SUCCESS: = FALSE

Sind die beiden Integritätsstempel nicht gleich, ist also ERFOLG = FALSE, so entspricht der nach dem oben zuerst beschriebenen Verfahren rekonstruierte Zähler N'.GesZähler nicht dem vom Sender verwendeten Zähler S.GesZähler, somit hat sich die Nachricht während der Übertragung verändert bzw. sie ist verändert worden oder es ist eine in der falschen Reihenfolge angekommene Nachricht empfangen worden oder es sind seit dem Empfang der letzten korrekt empfangenen Nachricht mehr als MaxRekonstr(ÜbertrZählerLänge) Nachrichten verlorengegangen. In diesem Fall kann eine Ausnahmebehandlung eingeleitet werden, bspw. kann der Steuerungsvorgang abgebrochen werden und anschießend die Werte der Gesamtzähler auf beiden Seiten, also S.GesZähler und E.GesZähler, außerhalb des Steuerungsvorgangs erneut synchronisiert werden.If the two integrity stamps are not the same, i.e. if SUCCESS = FALSE, then the counter N'.TotalCounter reconstructed according to the method first described above does not correspond to the counter S.TotalCounter used by the sender, so the message has changed or it has changed during the transmission has been changed, or a message that has arrived in the wrong order has been received, or since the last correctly received message was received, more than MaxRekonstr (TransferCounterLength) messages have been lost. In this case, exception handling can be initiated, for example the control process can be aborted and then the values of the total counter on both sides, i.e. S.TotalCounter and E.TotalCounter, are synchronized again outside of the control process.

Sind die beiden Integritätsstempel gleich, ist also ERFOLG = TRUE, so entspricht der nach Verfahren 1 rekonstruierte Zähler N'.GesZähler dem vom Sender verwendeten Zähler S.GesZähler, das bedeutet, die Nachricht ist unverändert und in der korrekten Reihenfolge beim Empfänger angekommen und es sind seit dem Empfang der letzten Nachricht N'.GesZähler - E.GesZähler ≤ MaxRekonstr(ÜbertrZählerLänge) Nachrichten verlorengegangen.If the two integrity stamps are the same, i.e. if SUCCESS = TRUE, then the counter N'.TotalCounter reconstructed according to method 1 corresponds to the counter S.TotalCounter used by the sender, which means that the message has arrived unchanged and in the correct order at the recipient and it N'.TotalCounter - E.TotalCounter ≤ MaxRekonstr (TransferCounterLength) messages have been lost since the last message was received.

Bei ERFOLG = TRUE wird des Weiteren vorgeschlagen, am Ende aller Überprüfungen dem lokal abgelegten Gesamtzähler des Empfängers E.GesZähler den rekonstruierten und mit INT geprüften Wert des Gesamtzählers der Nachricht N'.GesZähler zuzuweisen, also E.GesZähler := N'.GesZähler.If SUCCESS = TRUE, it is also proposed, at the end of all checks, to assign the reconstructed and INT-checked value of the total counter of the message N'.GesCounter to the locally stored total counter of the recipient E.GesCounter, i.e. E.GesCounter: = N'.GesCounter.

Wie oben beschrieben, kann es für das Fehlschlagen der nach der Rekonstruktion des Gesamtzählers N'.GesZähler mit INT, bspw. CRC oder AUTH, durchgeführten Integritätsprüfung mehrere Gründe geben, z.B. eine Veränderung der Nachricht während der Übertragung, zu viele verlorengegangene Nachrichten, etc. Für den Fall, dass Nachrichten verlorengegangen sein könnten, wird in [SNEP] versucht, durch ggf. mehrfaches sukzessives Inkrementieren des beim Empfänger abgelegten geteilten Zählers und eine erneute anschließende Authentifizierungsprüfung den zur empfangenen Nachricht passenden Zähler zu finden und im Erfolgsfall die Nachricht zu akzeptieren und anschließend den Zähler beim Empfänger entsprechend anzupassen.As described above, there can be several reasons for the failure of the integrity check carried out after the reconstruction of the total counter N'.TotalCounter with INT, e.g. CRC or AUTH, e.g. a change in the message during transmission, too many lost messages, etc. In the event that messages could have been lost, an attempt is made in [SNEP] to find the counter that matches the received message by successively incrementing the shared counter stored at the recipient multiple times, if necessary, and then performing a renewed authentication check and, if successful, to accept the message and then adjust the counter at the recipient accordingly.

Die Aufgabe der hier vorliegenden Erfindung besteht nun darin, ein verbessertes Verfahren anzugeben.The object of the present invention now consists in specifying an improved method.

Diese Aufgabe wird durch das Verfahren mit den Merkmalen im Anspruch 1 gelöst. Vorteilhafte Ausgestaltungen und Weiterbildungen sind in den hiervon abhängigen Ansprüchen angegeben.This object is achieved by the method with the features in claim 1. Advantageous refinements and developments are specified in the dependent claims.

Das erfindungsgemäße zählerbasierte Verfahren zum Erkennen verlorengegangener und wiedereingespielter Nachrichten, sieht es vor, dass ein Empfänger E bzw. ein Zielsystem ZS und ein Sender S bzw. eine Steuerungseinheit SE mit jeweils einer Kommunikationseinheit ausgestattet sind, mit der sie Nachrichten senden und empfangen können, wobei der Sender Steuerungsnachrichten zum Empfänger versendet. Zum Erkennen verlorengegangener und gegebenenfalls wiedereingespielter Nachrichten ist jeweils ein Gesamtzähler S.GesZähler, E.GesZähler mit einer vorgegebenen Gesamtlänge GesZählerLänge von mehr als 0 Bits vorgesehen, der sowohl beim Sender S als auch beim Empfänger E vorgehalten wird, wobei vor Beginn eines die Nachrichten umfassenden Steuerungsvorgangs die Kommunikationspartner den zu verwendenden Startwert für die Gesamtzähler S.GesZähler, E.GesZähler synchronisieren, wobei sich der Sender und der Empfänger vor dem Versenden der Nachrichten auf eine Anzahl ÜbertrZählerLänge von mit den Nachrichten übertragenen niederwertigen Bits des Gesamtzählers einigen, welche zwischen Null und der Gesamtlänge GesZählerLänge der beiden Gesamtzähler liegt, wobei vor dem Bilden einer neu zu versendenden Nachricht der Sender seinen Gesamtzähler S.GesZähler inkrementiert und den Nutzdaten der neu zu versendenden Nachricht die vereinbarte Anzahl der niederwertigen Bits LS-Bits seines zuvor inkrementierten Gesamtzählers hinzufügt, wobei der Empfänger nach Empfang der Nachricht den zu der empfangenen Nachricht N' gehörenden Gesamtzähler N'.GesZähler aus dem lokal beim Empfänger E abgelegten Wert eines Rumpfzählers E.RumpfZähler des Gesamtzählers und den empfangenen niederwertigen Bits rekonstruiert. Der Rumpfzähler wird dazu entweder direkt mit den übertragenen niederwertigen Bits konkateniert, wenn der lokale Wert der niederwertigen Bits kleiner-gleich dem übertragenen Wert ist oder er wird andernfalls zuvor inkrementiert, wie es oben beschrieben ist. Der Rumpfzähler selbst enthält dabei eine Anzahl von höherwertigen Bits des Gesamtzählers E.GesZähler des Empfängers, welche sich aus der Gesamtlänge E.GesamtLängeZähler abzüglich der der übertragenen Anzahl N'.ÜbertrZählerLänge der niederwertigen Bits ergibt.The inventive counter-based method for recognizing lost and re-imported messages provides that a receiver E or a target system ZS and a transmitter S or a control unit SE are each equipped with a communication unit with which they can send and receive messages, with the sender sends control messages to the recipient. A total counter S.TotalCounter, E.TotalCounter with a predetermined total length GesZählerLänge of more than 0 bits is provided in each case to identify lost and possibly re-imported messages, which are held at both the sender S and the receiver E, whereby before the start of a message comprising the messages During the control process, the communication partners synchronize the start value to be used for the total counters S.TotalCounter, E.TotalCounter, whereby the sender and receiver agree on a number of TransferCounterLength of the lower-order bits of the total counter transmitted with the messages, which are between zero and the total length GesZählerLength of the two total counters, with the sender incrementing its total counter S.GesZähler and the user data of the new message to be sent the agreed number of low-order bits LS bits of its previous increment before the creation of a new message to be sent erten total counter, the recipient after receiving the message reconstructs the total counter N'.GesZähler belonging to the received message N 'from the value of a trunk counter E.RumpfZähler of the total counter stored locally at the receiver E and the received low-order bits. For this purpose, the body counter is either concatenated directly with the transmitted lower-order bits if the local value of the lower-order bits is less than or equal to the transmitted value, or it is otherwise incremented beforehand, as described above. The rump counter itself contains a number of more significant bits of the total counter E. Total counter of the receiver, which results from the total length E. Total length counter minus the transmitted number N '. Transfer counter length of the lower value bits.

Sowohl der Sender als auch der Empfänger haben dabei ein Integritätsschutzverfahren implementiert, gemäß welchem der Sender für die Nachricht N einen Integritätsstempel N.IntStemp erzeugt, welcher auf den Nutzdaten N. Nutzdaten und dem Gesamtzähler S.GesZähler des Senders beruht, und diesen Integritätsstempel der Nachricht hinzufügt. Beim Empfänger wird der mit der empfangenen Nachricht N' empfangene Integritätsstempel N'.IntStemp nach dem vereinbarten oder vorgegebenen Integritätsschutzverfahren unter Berücksichtigung des rekonstruierten Zählers berechnet.Both the sender and the receiver have implemented an integrity protection procedure, according to which the sender generates an integrity stamp N.IntStemp for the message N, which is based on the user data N. User data and the total counter S.TotalCounter of the sender, and this integrity stamp of the message adds. At the receiver, the integrity stamp N'.IntStemp received with the received message N 'is calculated according to the agreed or specified integrity protection method, taking into account the reconstructed counter.

Gemäß der Erfindung ist es dabei vorgesehen, dass im Fall der nicht vorliegenden Übereinstimmung die Überprüfung des Integritätsstempels mehrfach durchlaufen wird, bis eine Übereinstimmung erzielt oder eine vorgegebene Anzahl n von iterativen Ausführungen bzw. Schleifen i erreicht worden ist, wobei in jeder iterativen Ausführung i der oben ermittelte Rumpfzähler inkrementiert und mit den übertragenen niederwertigen Bits konkateniert wird. Der so neu rekonstruierte Zähler wird der jeweiligen erneuten Berechnung und Überprüfung des Integritätsstempels zugrunde gelegt. Im Falle des Erreichens der vorgegebene Anzahl n von iterativen Ausführungen i auf eine während der Übertragung veränderte Nachricht, auf zu viele ausgefallene, auf wiedereingespielte oder auf in der falschen Reihenfolge angekommene Nachrichten geschlossen wird.According to the invention, it is provided that in the event that there is no match, the verification of the integrity stamp is run through several times until a match is achieved or a predetermined number n of iterative executions or loops i has been achieved, with i in each iterative execution i the The body counter determined above is incremented and concatenated with the transmitted lower-order bits. The thus newly reconstructed counter is used for the respective recalculation and verification of the Based on the integrity stamp. In the event that the specified number n of iterative executions i is reached, it is concluded that a message was changed during the transmission, that there are too many failed messages, that messages have been replayed or that messages have arrived in the wrong order.

Bei dem erfindungsgemäßen Verfahren kann unter der Annahme verlorengegangener aber nicht veränderter Nachrichten davon ausgegangen werden, dass die empfangenen ÜbertrZählerLänge LS-Bits des zur Nachricht passenden Zählers korrekt sind, also zur empfangenen Nachricht N' passen. Es wird daher vorgeschlagen, anders als in [SNEP], nach einer fehlgeschlagenen Integritätsprüfung nicht den gesamten zur empfangenen Nachricht ermittelten Gesamtzähler sukzessive zu inkrementieren, sondern den Gesamtzähler durch Inkrementieren des während der Rekonstruktion des Gesamtzählers von N' ermittelten Rumpfes N'.RumpfZähler und das anschließende Zusammensetzen des neu auszuprobierenden Zählers N'.GesZähler aus dem neuen inkrementierten N'.RumpfZähler und dem unveränderten empfangenen N'.ÜbertrZähler sukzessive neu zu bilden und anschließend dessen Eignung mit INT auszuprobieren, indem folgende Schritte durchgeführt werden: (n steht dabei für die maximale Anzahl durchzuführender Versuche, n = 1 entspricht somit der oben beschriebenen einmaligen Prüfung des rekonstruierten Gesamtzählers mit INT; i repräsentiert die jeweilige iterativen Ausführung bzw. Schleife).

  1. 1. Initialisierung
    1. a. Rekonstruiere N'.GesZähler nach dem oben zuerst beschriebenen Verfahren
    2. b. N'.RumpfZähler(1) := N'.RumpfZähler
    3. c. i := 1, ERFOLG := FALSE
  2. 2. Schleife
    1. a. Wiederhole
      1. i. N'.GesZähler(i) := N'.RumpfZähler(i) || N'.ÜbertrZähler
      2. ii. N'.lntStemp(i) := INT(N'.Nutzdaten, N'.GesZähler(i))
      3. iii. falls N'.IntStemp(i) # N'.IntStemp
        • N'.RumpfZähler(i+1) := N'.RumpfZähler(i) + 1
        • i := i + 1
        • andernfalls
        • ERFOLG := TRUE
        • N'.GesZähler := N'.GesZähler(i)
        • Abbruch der Schleife
    2. b. bis i > n
In the method according to the invention, assuming lost but not changed messages, it can be assumed that the received transfer counter length LS bits of the counter matching the message are correct, i.e. match the received message N '. It is therefore proposed, unlike in [SNEP], not successively increment the entire total counter determined for the received message after an unsuccessful integrity check, but instead increment the total counter by incrementing the body N ', body counter and that determined during the reconstruction of the total counter of N' Subsequent assembly of the new N'.TotalCounter to be tried out from the new incremented N'.RumpfZähler and the unchanged received N'.TransferCounter to be successively newly formed and then to try out its suitability with INT by performing the following steps: (n stands for the maximum number of attempts to be carried out, n = 1 thus corresponds to the above-described one-time test of the reconstructed total counter with INT; i represents the respective iterative execution or loop).
  1. 1. Initialization
    1. a. Reconstruct N'.totalcount using the method first described above
    2. b. N'.RumpCounter (1): = N'.RumpCounter
    3. c. i: = 1, SUCCESS: = FALSE
  2. 2nd loop
    1. a. Repeat
      1. i. N'.TotalCounter (i): = N'.RumpCounter (i) || N'.Transfer counter
      2. ii. N'.lntStemp (i): = INT (N'. user data, N'.total counter (i))
      3. iii. if N'.IntStemp (i) # N'.IntStemp
        • N'.RumpCounter (i + 1): = N'.RumpCounter (i) + 1
        • i: = i + 1
        • otherwise
        • SUCCESS: = TRUE
        • N'.TotalCounter: = N'.TotalCounter (i)
        • Termination of the loop
    2. b. until i> n

Anhand des Wertes von ERFOLG kann anschließend abgelesen werden, ob ein passender Gesamtzähler für N' gefunden werden konnte.The value of SUCCESS can then be used to read off whether a suitable total counter for N 'could be found.

Ist ERFOLG = FALSE, so entspricht keiner der sukzessive bestimmten Zähler N'.GesZähler(i) dem vom Sender verwendeten Zähler S.GesZähler, es hat sich die Nachricht während der Übertragung verändert bzw. sie ist verändert worden oder es ist eine in der falschen Reihenfolge angekommene Nachricht empfangen worden oder es sind seit dem Empfang der letzten korrekt empfangenen Nachricht mehr als MaxRekonstr(ÜbertrZählerLänge, n) Nachrichten verlorengegangen (eine Definition für MaxRekonstr(ÜbertrZählerLänge, n) wird weiter unten angegeben). In diesem Fall kann eine Ausnahmebehandlung eingeleitet werden, bspw. kann der Steuerungsvorgang abgebrochen werden und anschießend die Werte der Gesamtzähler auf beiden Seiten, also S.GesZähler und E.GesZähler, außerhalb des Steuerungsvorgangs erneut synchronisiert werden.If SUCCESS = FALSE, none of the successively determined counters N'.TotalCounter (i) corresponds to the counter S.TotalCounter used by the sender, the message has changed during the transmission or it has been changed or there is one in the wrong one Sequence of received messages or more than MaxRekonstr (TransferCounterLength, n) messages have been lost since the last correctly received message (a definition for MaxRekonstr (TransferCounterLength, n) is given below). In this case, exception handling can be initiated, e.g. the control process can be aborted and then the values of the total counters on both sides, i.e. S.TotalCounter and E.TotalCounter, can be synchronized again outside of the control process.

Ist ERFOLG == TRUE, so ist die Nachricht N' unverändert und in der korrekten Reihenfolge beim Empfänger angekommen, i enthält am Ende die Anzahl der durchgeführten Versuche, wobei i der erfolgreiche Versuch war, N'.GesZähler = N'.GesZähler(i) den korrekten zu N' passenden Gesamtzähler und die Anzahl der seit dem Empfang der letzten korrekten Nachricht hintereinander verlorengegangenen Nachrichten ist dann durch (N'.GesZähler(i) - E.GesZähler) gegeben.If SUCCESS == TRUE, the message N 'is unchanged and arrived at the recipient in the correct order, i contains the number of attempts at the end, where i was the successful attempt, N'.TotalCounter = N'.TotalCounter (i ) the correct total counter matching N 'and the number of messages that have been lost one after the other since the last correct message was received is then given by (N'.TotalCounter (i) - E.TotalCounter).

Bei ERFOLG = TRUE wird des Weiteren vorgeschlagen, am Ende aller Überprüfungen dem lokal abgelegten Gesamtzähler des Empfängers E.GesZähler den erfolgreich bestimmten Wert des Gesamtzählers der Nachricht N'.GesZähler zuzuweisen, also E.GesZähler := N'.GesZähler.If SUCCESS = TRUE, it is also proposed, at the end of all checks, to assign the successfully determined value of the total counter of the message N'.GesCounter to the locally stored total counter of the recipient E.GesCounter, i.e. E.GesCounter: = N'.GesCounter.

Es ist dabei klar, dass das eben beschriebene Verfahren mit n sukzessiv durchgeführten Versuchen von n verschiedenen Gesamtzähler-Werten nur sinnvoll angewendet werden kann, wenn die ausgetauschten Nachrichten mittels INT integritätsgeschützt sind und ein Integritätsstempel übertragen wird. Ohne diesen Integritätsschutz könnte nicht festgestellt werden, ob ein bestimmter Gesamtzähler zu einer empfangenen Nachricht passt oder nicht.It is clear that the method just described with n successive attempts of n different total counter values can only be used meaningfully if the exchanged messages are integrity-protected by means of INT and an integrity stamp is transmitted. Without this integrity protection, it would not be possible to determine whether a specific total counter matches a received message or not.

Folgende Vorteile ergeben sich durch die Erfindung:

  • •Durch die Übertragung nur eines Teils des Zählers wird Platz in der Nachricht gespart, was insb. bei Verwendung sehr kurzer Nachrichten, wie sie oft zur Echtzeitsteuerung verwendet werden, von großer Bedeutung sein kann.
  • •Es kann ein beliebig großer Zähler verwendet werden, so dass es keine Security-Einbußen gibt.
  • •Durch sukzessives ausprobieren mehrerer Gesamtzähler, also sukzessives Inkrementieren des Zählerrumpfes und nachfolgende Integritätsprüfungen unter Nutzung des neuen Gesamtzählers nach erfindungsgemäßen Verfahren, kann die Robustheit gegen verlorengegangene Nachrichten weiter erhöht werden.
The invention provides the following advantages:
  • • The transmission of only part of the counter saves space in the message, which can be of great importance, especially when using very short messages, as are often used for real-time control.
  • • Any size counter can be used so that there is no loss of security.
  • By successively trying out several total counters, ie successive incrementing of the counter body and subsequent integrity checks using the new total counter according to the method according to the invention, the robustness against lost messages can be further increased.

Die maximale Anzahl von hintereinander verlorengegangenen Nachrichten, die vom Protokoll noch „verkraftet“ werden, indem der zu einer empfangenen Nachricht gehörende Gesamtzähler noch erfolgreich bestimmt werden kann, hängt sowohl von der Anzahl der übertragenen LS-Bits des Zählers, also von ÜbertrZählerLänge, als auch von der maximalen Anzahl durchzuführender Versuche n ab. Und zwar kann vom Empfänger der Gesamtzähler einer Nachricht N' nach maximal (n*2 ÜbertrZählerLänge -1) (n >=1, ÜbertrZählerLänge >= 0) hintereinander verlorengegangenen Nachrichten erfolgreich bestimmt werden. Dieser Wert wird mit MaxRekonstr(ÜbertrZählerLänge, n) bezeichnet, also MaxRekonstr(ÜbertrZählerLänge, n) := (n*2 ÜbertrZählerLänge - 1).The maximum number of consecutive lost messages that the protocol can still "cope with" in that the total counter belonging to a received message can still be successfully determined depends both on the number of LS bits transmitted by the counter, i.e. on the transfer counter length, as well as on the maximum number of attempts n to be carried out. The recipient can successfully determine the total counter of a message N 'after a maximum of (n * 2 TransferCounterLength -1) (n> = 1, TransferCounterLength> = 0) consecutive lost messages. This value is called MaxRekonstr (TransferCounterLength, n), i.e. MaxRekonstr (TransferCounterLength, n): = (n * 2 TransferCounterLength - 1).

Man beachte, dass n = 1 dem Fall des Protokolls ohne Integritätsschutz, also ohne die Anwendung von INT, und dem Fall des Protokolls mit Integritätsschutz mit genau einem Versuch entspricht. In beiden Fällen kann der Gesamtzähler einer Nachricht bei zuvor bis zu (2 ÜbertrZählerLänge - 1) hintereinander verlorengegangenen Nachrichten korrekt bestimmt werden. ÜbertrZählerLänge = 0 besagt, dass der Gesamtzähler einer Nachricht bei zuvor bis zu n hintereinander verlorengegangenen Nachrichten korrekt bestimmt werden kann. n = 1 (genau ein Versuch) und ÜbertrZählerLänge = 0 (keine übertragenen LS-Bits) besagt, dass bereits bei einer verlorengegangenen Nachricht der Gesamtzähler der nachfolgenden Nachricht nicht mehr bestimmt werden kann.Note that n = 1 corresponds to the case of the protocol without integrity protection, i.e. without the use of INT, and the case of the protocol with integrity protection with exactly one attempt. In both cases, the total counter of a message can be correctly determined for up to (2 transfer counter length - 1) messages that were lost one after the other. TransferCounterLength = 0 means that the total counter of a message can be correctly determined if up to n messages were lost in a row. n = 1 (exactly one attempt) and transfer counter length = 0 (no transmitted LS bits) means that the total counter of the following message can no longer be determined if a message is lost.

MaxRekonstr(ÜbertrZählerLänge, n) kann durch Erhöhung von ÜbertrZählerLänge und/oder durch Erhöhung von n vergrößert werden, Je größer n bzw. ÜbertrZählerLänge sind, desto mehr verlorengegangene Nachrichten können vom Protokoll toleriert werden. Sowohl die Erhöhung von n als auch die Erhöhung von ÜbertrZählerLänge führen zu einem höheren Ressourcenverbrauch, jedoch in verschiedener Hinsicht. Je größer n ist, desto mehr IntStemp-Prüfungsversuche muss der Empfänger durchführen, eine Erhöhung von n belastet also primär die Rechenleistung des Empfängers und vergrößert damit ggf. die Zeitspanne zwischen dem Versenden der Nachricht durch den Sender und der Verarbeitung der in deren Nutzdaten enthaltenen Informationen durch den Empfänger. Eine Erhöhung von ÜbertrZählerLänge führt hingegen zur Verringerung des Platzes, der für die Übertragung der Nutzdaten in der Nachricht zur Verfügung steht. Durch eine geeignete aufeinander abgestimmte Wahl von Werten für n und ÜbertrZählerLänge kann eine Einstellung für das Protokoll gewählt werden, die für das vorgesehene Einsatzumfeld und die zu lösende Aufgabe besonders gut geeignet ist.MaxRekonstr (TransferCounterLength, n) can be increased by increasing TransferCounterLength and / or by increasing n. The larger n or TransferCounterLength, the more lost messages can be tolerated by the protocol. Both the increase in n and the increase in TransCounterLength lead to a higher consumption of resources, but in different ways. The larger n is, the more IntStemp test attempts the recipient has to carry out, so an increase in n primarily loads the computing power of the recipient and thus increases the time span between the sending of the message by the sender and the processing of the information contained in its user data by the recipient. On the other hand, an increase in TransferCounterLength leads to a reduction in the space that is available for the transmission of the user data in the message. A suitable, coordinated selection of values for n and transfer counter length can be used to select a setting for the protocol that is particularly suitable for the intended application environment and the task to be solved.

Angenommen, es ist für das Protokoll festgelegt worden, dass ein Zähler von ZählerLänge Bits benötigt wird, um gegen Replay-Attacken ausreichend lange geschützt zu sein. Es stellt sich die Frage, wie viele seiner LS-Bits mit der Nachricht übertragen werden müssen, also wie groß ÜbertrZählerLänge sein muss, und wie viele IntStemp-Prüfungsversuche n maximal durchgeführt werden müssen, um mit einer ausreichenden Wahrscheinlichkeit den vom Sender bei der Erstellung des Integritätsstempels als Nonce genutzten Zähler auf der Empfängerseite fehlerfrei bestimmten zu können.Assume that it has been specified for the protocol that a counter of counter-length bits is required in order to be protected against replay attacks for a sufficiently long time. The question arises of how many of its LS bits have to be transmitted with the message, i.e. how large the ÜtransCounterLength has to be, and how many IntStemp test attempts n have to be carried out at the maximum in order to have a sufficient probability of the sender generating the Integrity stamp used as a nonce counter on the receiving end without errors.

Es können mindestens zwei Obergrenzen für die Größe von MaxRekonstr(ÜbertrZählerLänge, n) festgelegt werden. Wie oben angemerkt, wird davon ausgegangen, dass der Kommunikationskanal unzuverlässig ist und dass Nachrichten verlorengehen können. Durch die Festlegung auf eine Technologie (bspw. BLE) kann ggf. eine technologieabhängige Obergrenze dafür angegeben werden, der Verlust von wie vielen aufeinanderfolgenden Nachrichten von der Technologie noch akzeptiert wird bevor die Verbindung auf der unteren Schicht abgebrochen wird bzw. der Verlust von wie vielen aufeinanderfolgenden Nachrichten bei der verwendeten Technologie dermaßen unwahrscheinlich ist, dass dieser Wert als Obergrenze angenommen wird und dass der seltene Fall, dass mehr aufeinanderfolgende Nachrichten verlorengehen, hingenommen wird. Diese durch die verwendete Technologie bestimmte Obergrenze wird mit MaxNachrVerlTechn bezeichnet.At least two upper limits can be set for the size of MaxRekonstr (TransferCounterLength, n). As noted above, the communication channel is believed to be unreliable and messages can be lost. By specifying a technology (e.g. BLE), a technology-dependent upper limit can be specified for the loss of how many consecutive messages will be accepted by the technology before the connection on the lower layer is broken or the loss of how many consecutive messages is so unlikely with the technology used that this value is accepted as an upper limit and that the rare event that more consecutive messages are lost is accepted. This upper limit determined by the technology used is referred to as MaxNachrVerlTechn.

Eine zweite Obergrenze ist immer durch die Anwendung, bspw. durch das Zielsystem, gegeben. Es kann immer festgelegt werden, das Ausfallen wie vieler aufeinanderfolgender Steuerungsnachrichten die Anwendung bzw. das Zielsystem verkraften kann, bevor es den Steuerungsvorgang, bspw. aus Sicherheitsgründen, abbricht. Werden bspw. Nachrichten im Abstand von 50ms versendet und ist von der Anwendung ein Timeout von zwei Sekunden festgelegt, so wird das Zielsystem spätestens nach 40 hintereinander ausgefallenen Steuerungsnachrichten den Steuerungsvorgang abbrechen. Diese anwendungsabhängige Anzahl von Nachrichten wird mit MaxNachrVerlAnw bezeichnet.A second upper limit is always given by the application, for example by the target system. It can always be stipulated how many consecutive control messages the application or target system can cope with before it cancels the control process, for example for safety reasons. If, for example, messages are sent every 50 ms and the application has set a timeout of two seconds, the target system will abort the control process after 40 consecutive control messages have failed. This application-dependent number of messages is referred to as MaxNachrVerlAnw.

Nun kann in erster Näherung eine indirekte Obergrenze für ÜbertrZählerLänge und n festgelegt werden, indem ÜbertrZählerLänge und n so gewählt werden müssen, dass, falls ÜbertrZählerLänge >0, stets MaxRekonstr(ÜbertrZählerLänge - 1, n) < MaxVerlNachr und, falls n > 1, stets MaxRekonstr(ÜbertrZählerLänge, n -1) < MaxVerlNachr gilt, wobei MaxVerlNachr wie folgt definiert ist MaxVerlNachr := MIN{MaxVerlNachrTechn, MaxVerINachrAnw}, wobei MIN das kleinste Element einer endlichen Menge ganzer Zahlen bezeichnet.Now, as a first approximation, an indirect upper limit for OvertrailerLength and n can be determined by choosing OvertransCounterLength and n in such a way that, if TransferCounterLength> 0, always MaxRekonstr (TransferCounterLength - 1, n) <MaxVerlNachr and, if n> 1, always MaxRekonstr (TransferCounterLength, n -1) <MaxVerlNachr applies, where MaxVerlNachr is defined as follows MaxVerlNachr: = MIN {MaxVerlNachrTechnr, MaxVerlNachrTechnr, MaxVerlNachrTechnr , where MIN denotes the smallest element of a finite set of integers.

Ist bspw. MaxVerlNachrTechn = 24 und MaxVerlNachrAnw = 40, so wird, falls n=1 gewählt wird, maximal die für die Kodierung von MaxVerlNachr = 24 benötigte Anzahl von Bits über-tragen, in diesem Fall, wegen (1*25-1 -1 < 24 ≤ 1*26-1 - 1), also maximal fünf Bits, also MaxÜbertrZählerLänge(n=1) = 5. Bei n=2 werden wegen (2·24-1 - 1 < 24 ≤ 2·25-1 -1) maximal vier Bits übertragen, also MaxÜbertrZählerLänge(n=2) = 4 und bei n=3 werden wegen (3*23 - 1 - 1) < 24 ≤ 3*24-1 -1) maximal drei Bits übertragen. Die Übertragung von mehr Bits macht keinen Sinn, da diese für die Rekonstruktion des Zählers niemals benötigt werden, denn ein Abbruch des Steuerungsvorgangs wird bereits früher wegen Überschreitung von MaxVerlNachrTechn oder MaxVerlNachrAnw erfolgen. Es kann aber durchaus Sinn machen, weniger als MaxÜbertrZählerLänge(n) der LS-Bits des Zählers tatsächlich zu übertragen, um bspw. Platz in der Nachricht zu sparen.If, for example, MaxVerlNachrTechn = 24 and MaxVerlNachrAnw = 40, if n = 1 is selected, the maximum number of bits required for coding MaxVerlNachr = 24 is transmitted, in this case because of (1 * 2 5-1 -1 <24 ≤ 1 * 2 6-1 - 1), i.e. a maximum of five bits, i.e. MaxTransferCounterLength (n = 1) = 5. With n = 2, due to (2 · 2 4-1 - 1 <24 ≤ 2 · 2 5-1 -1) transfer a maximum of four bits, i.e. MaxÜbertrZählerLänge (n = 2) = 4 and with n = 3 because (3 * 2 3 - 1 - 1) <24 ≤ 3 * 2 4-1 -1) transfer a maximum of three bits. The transmission of more bits makes no sense, since these are never required for the reconstruction of the counter, because the control process will be aborted earlier because MaxVerlNachrTechn or MaxVerlNachrAnw is exceeded. However, it can make perfect sense to actually transfer less than MaxÜbertrZählerLänge (n) of the LS bits of the counter in order to save space in the message, for example.

Es wird des Weiteren vorgeschlagen, die beiden Variablen MaxNachrVerlTechn und MaxNachrVerlAnw in einem der beiden Systeme oder in beiden Systemen persistent vorzuhalten. In der Initialisierungsphase wird dann der Wert MaxVerlNachr ausgehandelt, indem bspw. zuerst das Minimum MaxVerlNachr der beiden Werte auf der jeweiligen Seite (Steuerungseinheit, Zielsystem) bestimmt und anschließend das Minimum der beiden Minima als Ausgangspunkt für die Bestimmung des Wertes von MaxRekonstr(ÜbertrZählerLänge, n) genommen wird. Es wird vorgeschlagen, dass die während der Steuerungsphase zu verwendenden Werte für ÜbertrZählerLänge und n während der Initialisierungsphase ausgehandelt werden und dass sie stets so gewählt werden, dass, falls ÜbertrZählerLänge > 0, stets MaxRekonstr(ÜbertrZählerLänge - 1, n) < MaxVerlNachr und, falls n > 1, stets MaxRekonstr(ÜbertrZählerLänge, n - 1) < MaxVerlNachr gilt.It is also proposed to keep the two variables MaxNachrVerlTechn and MaxNachrVerlAnw persistent in one of the two systems or in both systems. In the initialization phase, the MaxVerlNachr value is negotiated by, for example, first determining the minimum MaxVerlNachr of the two values on the respective side (control unit, target system) and then the minimum of the two minima as the starting point for determining the value of MaxRekonstr (TransferCounterLength, n ) is taken. It is proposed that the values to be used during the control phase for TransferCounterLength and n are negotiated during the initialization phase and that they are always selected so that, if TransferCounterLength> 0, MaxRekonstr (TransferCounterLength - 1, n) <MaxVerlNachr and, if n> 1, always MaxRekonstr (transfer counter length, n - 1) <MaxVerlNachr applies.

Unter der sinnvollen Annahme, dass das Zielsystem nach einer gewissen Zeit ohne empfangene Steuerungsnachrichten („Timeout“) oder beim Empfang einer Steuerungsnachricht, für die kein passender Gesamtzähler bestimmt werden kann, in einen sicheren Zustand übergeht, kann man sagen, dass je kleiner ÜbertrZählerLänge, also die Anzahl der übermittelten LS-Bits des Zählers, gewählt wird, d.h., je weniger LS-Bits mit jeder Steuerungsnachricht übermittelt werden, desto präziser und insb. sicherere (im Sinne von Safety, „funktionssicherer“) die Steuerung ist. Dafür gibt es zwei Gründe:

  1. 1. Je weniger Zählerbits übertragen werden, also je kleiner ÜbertrZählerLänge ist, desto mehr Platz gibt es in der Nachricht für Nutzdaten, insb. bspw. für ggf. safetyrelevante Steuerungsinformationen enthaltende Nutzdaten. Auf diese Weise können präzisere Steuerungsbefehle in der Steuerungsnachricht kodiert werden, wodurch die Qualität der Steuerung, insb. deren Sicherheit, erhöht wird.
  2. 2. Je weniger Zählerbits (bei einer festen maximalen Anzahl n von ausprobierten Gesamtzählerwerten) übertragen werden, desto kleiner sind die „Pausen“ zwischen empfangenen Nachrichten, die vom Zielsystem akzeptiert werden. Wird eine „Pause“ zu groß, schlägt die Gesamtzählerbestimmung für die erste nach der „Pause“ empfangene Steuerungsnachricht fehl, weil der zu dieser Nachricht gehörende Gesamtzähler vom Zielsystem anhand der zu wenigen empfangenen Bits (und eines ggf. zu kleinen n) nicht bestimmt werden kann und der Steuerungsvorgang daraufhin abgebrochen wird.
Under the reasonable assumption that the target system goes into a safe state after a certain time without receiving control messages ("timeout") or when receiving a control message for which no suitable total counter can be determined, it can be said that the smaller the transfer counter length, That is, the number of LS bits transmitted by the counter is selected, ie the fewer LS bits that are transmitted with each control message, the more precise and, in particular, more reliable (in the sense of safety, “more reliable”) the control is. There are two reasons:
  1. 1. The fewer counter bits are transmitted, that is, the smaller the ÜberertrZählerLänge is, the more space there is in the message for user data, in particular, for example, for user data that may contain security-relevant control information. In this way, more precise control commands can be encoded in the control message, whereby the quality of the control, in particular its safety, is increased.
  2. 2. The fewer counter bits (with a fixed maximum number n of tried total counter values) that are transmitted, the smaller the “pauses” between received messages that are accepted by the target system. If a "pause" is too large, the total counter determination for the first control message received after the "pause" fails because the total counter belonging to this message is not determined by the target system based on the few received bits (and possibly too small n) and the control process is then aborted.

Aus dieser Überlegung heraus kann der oben definierte Wert von MaxVerlNachrAnw durch mindestens zwei folgende Ziele beeinflusst werden:

  1. 1. die Qualität der in den Steuerungsnachrichten enthaltenen Steuerungsinformation (je weniger Zählerbits übertragen werden, desto mehr Platz gibt es in den Steuerungsnachrichten für die Übertragung hochwertigerer Steuerungsinformationen) und
  2. 2. die maximale Anzahl von hintereinander ausgefallenen Steuerungsnachrichten, die das Zielsystem bereit zu akzeptieren ist (je weniger Zählerbits übertragen werden und je weniger Integritätsprüfungsversuche n maximal durchgeführt werden, desto weniger ausgefallene Nachrichten werden akzeptiert)
Based on this consideration, the value of MaxVerlNachrAnw defined above can be influenced by at least two of the following goals:
  1. 1. the quality of the control information contained in the control messages (the fewer counter bits are transmitted, the more space there is in the control messages for the transmission of higher quality control information) and
  2. 2. the maximum number of consecutive failed control messages that the target system is ready to accept (the fewer counter bits are transmitted and the fewer integrity check attempts n maximum are carried out, the fewer failed messages are accepted)

Auf der anderen Seite ist der Steuerungsvorgang desto robuster, je mehr Zählerbits übertragen werden und je größer n ist, denn auf diese Weise kann der Gesamtzähler der Nachricht auch bei einer hohen Anzahl hintereinander ausgefallener Steuerungsnachrichten erfolgreich vom Zielsystem bestimmt werden, was einen Abbruch des Steuerungsvorgangs verhindert.On the other hand, the more counter bits are transmitted and the larger n is, the more robust the control process, because in this way the total counter of the message can be successfully determined by the target system even if there is a large number of consecutive failed control messages, which prevents the control process from being aborted .

Es wird des Weiteren vorgeschlagen, eine Variable MinNutzdLänge in einem der beiden Systeme oder in beiden Systemen (Steuerungseinheit, Zielsystem) persistent vorzuhalten. Der Wert dieser Variable beschreibt, wie viele Bits mindestens für die Übertragung von Nutzdaten, bspw. Steuerungsinformationen, benötigt werden. Dadurch wird sichergestellt, dass die Qualität der übertragenen Nutzdaten, bspw. der Steuerungsinformationen, ein bestimmtes durch MinNutzdLänge definiertes Niveau nicht unterschreitet. Unter der Annahme, dass die Nutzdaten und der übertragene Teil des Zählers sich einen Teil der Nachricht fester Länge teilen, wird durch diese Variable implizit auch die Anzahl der zu übertragenden Zählerbits nach oben begrenzt. Somit kann der Wert von MinNutzdLänge zusätzlich zum Wert von MaxVerlNachr dazu genutzt werden, den Wert von ÜbertrZählerLänge während der Initialisierungsphase festzulegen bzw. weiter einzuschränken.It is also proposed to keep a variable MinUsedLength persistently in one of the two systems or in both systems (control unit, target system). The value of this variable describes how many bits are at least required for the transmission of user data, e.g. control information. This ensures that the quality of the transmitted user data, for example the control information, does not reach a certain level defined by MinNutzdLänge falls below. Assuming that the user data and the transmitted part of the counter share a part of the message of fixed length, this variable implicitly also limits the number of counter bits to be transmitted. Thus, the value of MinNutzdLänge can be used in addition to the value of MaxVerlNachr to determine or further limit the value of TransferCounterLength during the initialization phase.

Den Variablen MaxVerlNachrTechn, MaxVerlNachrAnw und MinNutzdLänge werden Schätzwerte zugeordnet, die das Wissen und die Erfahrung widerspiegeln, die zum Zeitpunkt der Zuordnung dieser Werte vorhanden waren. Die Einschätzung über die optimalen Werte für MaxVerlNachrTechn, MaxVerlNachrAnw und MinNutzdLänge kann sich mit der Zeit jedoch ändern. Können die Variablen MaxVerlNachrTechn, MaxVerlNachrAnw und MinNutzdLänge in den jeweiligen Systemen (Steuerungseinheit, Zielsystem) aktualisiert werden, so sollte dieses auch vorgenommen werden. Dadurch verändern sich ggf. auch die sinnvollen Wertebereiche für ÜbertrZählerLänge und n. Auf der anderen Seite können diese Aktualisierungen nicht gleich schnell und gleich kostengünstig auf beiden Seiten vorgenommen werden (bspw. kann ein Update einer Steuerungseinheit (Smartphone-App) viel einfacher als ein Update des Zielsystems (Fahrzeug-Steuergerät) sein). Unter anderem daher ist es möglich, dass die den Variablen MaxVerlNachrTechn, MaxVerlNachrAnw und MinNutzdLänge auf den jeweiligen Seiten zugeordneten Werte unterschiedlich sind.The variables MaxVerlNachrTechn, MaxVerlNachrAnw and MinNutzdLänge are assigned estimated values that reflect the knowledge and experience that were available at the time these values were assigned. However, the assessment of the optimal values for MaxVerlNachrTechn, MaxVerlNachrAnw and MinNutzdLänge can change over time. If the variables MaxVerlNachrTechn, MaxVerlNachrAnw and MinNutzdLänge can be updated in the respective systems (control unit, target system), this should also be done. This may also change the meaningful value ranges for TransferCounterLength and n. On the other hand, these updates cannot be made equally quickly and cost-effectively on both sides (e.g. an update of a control unit (smartphone app) is much easier than an update of the target system (vehicle control unit)). Among other things, it is therefore possible that the values assigned to the variables MaxVerlNachrTechn, MaxVerlNachrAnw and MinNutzdLänge on the respective pages are different.

Es wird des Weiteren vorgeschlagen, die mindestens drei persistenten Variablen MaxVerlNachrTechn, MaxVerlNachrAnw, MinNutzdLänge in den jeweiligen Systemen (Steuerungseinheit, Zielsystem) aktualisierbar zu machen, wobei die Aktualisierungen zwischen den Steuerungsvorgängen vorgenommen werden. Diese Aktualisierungen können auf zweierlei Weise vorgenommen werden.

  1. 1. Von einem außerhalb der beiden Systeme (Steuerungseinheit, Zielsystem) liegenden, bspw. zentralen, Drittsystem wird festgestellt, dass der als optimal angesehene Wert für eine der mindestens drei persistenten Variablen sich geändert hat und daraufhin dieser neue als optimal angesehene Wert dem jeweiligen System (Steuerungseinheit, Zielsystem) mitgeteilt wird, worauf dieses den Wert der betroffenen Variable auf den neuen zu diesem Zeitpunkt als optimal angesehenen Wert aktualisiert.
  2. 2. Von einem der beiden Systeme (Steuerungseinheit, Zielsystem) wird, bspw. eigenständig, festgestellt, dass der als optimal angesehene Wert für eine der mindestens drei in dem System abgelegten persistenten Variablen sich geändert hat. Daraufhin wird dieser neue als optimal angesehene Wert der betroffenen Variable zugewiesen.
It is also proposed that the at least three persistent variables MaxVerlNachrTechn, MaxVerlNachrAnw, MinNutzdLänge be updated in the respective systems (control unit, target system), the updates being made between the control processes. These updates can be made in two ways.
  1. 1. From a, for example, central, third-party system located outside of the two systems (control unit, target system), it is determined that the value considered optimal for one of the at least three persistent variables has changed and then this new value considered optimal has changed for the respective system (Control unit, target system) is communicated, whereupon it updates the value of the variable concerned to the new value considered optimal at this point in time.
  2. 2. One of the two systems (control unit, target system) establishes, for example independently, that the value that is regarded as optimal has changed for one of the at least three persistent variables stored in the system. This new value, which is considered optimal, is then assigned to the variable concerned.

Durch die mindestens drei Variablen MaxVerlNachrTechn, MaxVerlNachrAnw, MinNutzdLänge werden die mögliche Anzahl der zu übertragenden Zählerbits ÜbertrZählerLänge und die maximale Anzahl der auszuprobierenden Gesamtzählerwerte n auf verschiedene Weise nach oben eingeschränkt aber nicht exakt definiert. Es wird vorgeschlagen, den Wert ÜbertrZählerLänge in einem der beiden Systeme (Steuerungseinheit, Zielsystem) oder in beiden Systemen und die maximale Anzahl der auszuprobierenden Gesamtzählerwerte n im Zielsystem persistent abzulegen und bei jeder Initialisierungsphase zu prüfen, ob die abgelegten Werte alle Forderungen in Bezug auf die drei einschränkenden Variablen MaxVerlNachrTechn, MaxVerlNachrAnw, MinNutzdLänge erfüllen.With the at least three variables MaxVerlNachrTechn, MaxVerlNachrAnw, MinNutzdLänge, the possible number of counter bits to be transmitted, TransferCounterLength and the maximum number of total counter values n to be tested, are restricted in various ways, but not precisely defined. It is suggested to persistently store the value TransferCounterLength in one of the two systems (control unit, target system) or in both systems and the maximum number of total counter values to be tried out in the target system and to check in each initialization phase whether the stored values meet all requirements with regard to the meet three restrictive variables MaxVerlNachrTechn, MaxVerlNachrAnw, MinNutzdLänge.

Durch die Variablen MaxVerlNachrTechn, MaxVerlNachrAnw und MinNutzdLänge wird eine sinnvolle Obergrenze für die Anzahl der zu übertragenden Bits des Zählers und die maximale Anzahl der auszuprobierenden Gesamtzähler implizit definiert und so sichergestellt, dass keine offensichtlich unnötigen Bits des Zählers übertragen bzw. keine offensichtlich nicht passenden Gesamtzähler ausprobiert werden.The variables MaxVerlNachrTechn, MaxVerlNachrAnw and MinNutzdLänge implicitly define a sensible upper limit for the number of bits to be transmitted in the counter and the maximum number of total counters to be tested, thus ensuring that no obviously unnecessary counter bits are transmitted or that no obviously unsuitable total counters are tried out become.

Durch die abgestimmte Einstellung der Anzahl der zu übertragenden Bits des Zählers und der Anzahl der auszuprobierenden Gesamtzähler kann das Protokoll der jeweiligen Situation angepasst werden und dadurch der Platz in der Nachricht optimal ausgenutzt oder der Rechenaufwand auf Seiten des Empfängers reduziert werden. Dabei kann durch die Wahl einer etwas größeren Anzahl der auszuprobierenden Gesamtzähler n und einer etwas kleineren Anzahl übertragener LS-Bits ggf. vorteilhaft ausgenutzt werden, dass der durch ein großes n entstehende Nachteil, nämlich der erhöhte Rechenbedarf beim Empfänger, nur im ggf. relativ selten vorkommenden Fall tatsächlich verlorengegangener Nachrichten wirksam wird, während eine größere Anzahl übertragener LS-Bits sich bei jeder übertragenen Nachricht nachteilig auswirkt.Due to the coordinated setting of the number of bits to be transmitted in the counter and the number of total counters to be tried out, the protocol can be adapted to the respective situation and the space in the message can be optimally used or the computational effort on the part of the recipient can be reduced. By choosing a slightly larger number of total counters n to be tried out and a slightly smaller number of transmitted LS bits, the disadvantage arising from a large n, namely the increased computational requirements at the receiver, may only be relatively seldom occurring case of actually lost messages becomes effective, while a larger number of transmitted LS bits has an adverse effect on each transmitted message.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturPatent literature cited

  • DE 102020003328 [0011]DE 102020003328 [0011]

Claims (8)

Zählerbasiertes Verfahren zum Erkennen verlorengegangener und wiedereingespielter Nachrichten, bei dem ein Empfänger und ein Sender mit jeweils einer Kommunikationseinheit ausgestattet sind, mit der sie Nachrichten senden und empfangen können, wobei der Sender Nachrichten zum Empfänger versendet, wobei zum Erkennen verlorengegangener und gegebenenfalls wiedereingespielter Nachrichten jeweils ein Gesamtzähler mit einer vorgegebenen Gesamtlänge von mehr als 0 Bits eingesetzt wird, der sowohl beim Sender als auch beim Empfänger vorgehalten wird, wobei vor Beginn eines die Nachrichten umfassenden Steuerungsvorgangs der Sender und der Empfänger den zu verwendenden Startwert für die Gesamtzähler synchronisieren, wobei sich der Sender und der Empfänger vor dem Versenden der Nachrichten auf eine Anzahl von zusammen mit den Nutzdaten der Nachrichten übertragenen niederwertigen Bits des Gesamtzählers einigen, welche zwischen 0 und der Gesamtlänge der Gesamtzähler liegt, wobei vor dem Bilden einer neu zu versenden Nachricht der Sender seinen Gesamtzähler inkrementiert, wobei der Sender in der neu zu versendenden Nachricht die vereinbarte Anzahl der niederwertigen Bits seines zuvor inkrementierten Gesamtzählers den Nutzdaten hinzufügt, wobei der Empfänger den zu der empfangenen Nachricht gehörenden Gesamtzähler aus dem lokal beim Empfänger abgelegten Wert des Gesamtzählers und den empfangenen niederwertigen Bits rekonstruiert, indem ein Rumpfzähler, welcher eine Anzahl von höherwertigen Bits des Gesamtzählers des Empfängers umfasst, welche sich aus der Gesamtlänge des Gesamtzählers abzüglich der übertragenen Anzahl der niederwertigen Bits ergibt, direkt mit den übertragenen niederwertigen Bits konkateniert wird, wenn der Wert der lokale Wert der niederwertigen Bits kleiner oder gleich dem übertragenen Wert der niederwertigen Bits ist, oder falls dies nicht der Fall ist der Rumpfzähler zuerst inkrementiert und dann mit den niederwertigen Bits konkateniert wird, wobei der Sender und der Empfänger ein Integritätsschutzverfahren implementiert haben, indem der Sender für die Nachricht einen Integritätsstempel erzeugt, welcher auf den Nutzdaten und dem Gesamtzähler des Senders beruht, und diesen Integritätsstempel der Nachricht hinzufügt, wobei der Empfänger den Integritätsstempel der empfangenen Nachricht nach dem vereinbarten oder vorgegeben Integritätsschutzverfahren unter Berücksichtigung des rekonstruierten Zählers berechnet, dadurch gekennzeichnet, dass im Fall der nicht vorliegenden Übereinstimmung die Überprüfung des Integritätsstempels mehrfach durchlaufen wird, bis eine Übereinstimmung erzielt oder eine vorgegebene Anzahl von iterativen Ausführungen erreicht worden ist, wobei in jeder iterativen Ausführung der besagte Rumpfzähler inkrementiert oder erneut inkrementiert und mit den übertragenen niederwertigen Bits konkateniert wird, wobei der so neu rekonstruierte Gesamtzähler der jeweiligen erneuten Berechnung und Überprüfung des Integritätsstempels zugrunde gelegt wird, und wobei im Falle des Erreichens der vorgegebene Anzahl von iterativen Ausführungen auf eine während der Übertragung veränderte Nachricht, auf zu viele ausgefallene Nachrichten, auf wiedereingespielte Nachrichten oder auf in der falschen Reihenfolge angekommene Nachrichten geschlossen wird.Counter-based method for recognizing lost and replayed messages, in which a receiver and a sender are each equipped with a communication unit with which they can send and receive messages, the sender sending messages to the recipient, with one to recognize lost and possibly re-imported messages Total counter with a predetermined total length of more than 0 bits is used, which is held both at the sender and at the receiver, the sender and the receiver synchronizing the start value to be used for the total counter before the start of a control process comprising the messages, with the sender and before the messages are sent, the receiver agrees on a number of low-order bits of the total counter transmitted together with the user data of the messages, which is between 0 and the total length of the total counter, with one before the formation In the new message to be sent, the sender increments its total counter, the sender adding the agreed number of the lower-order bits of its previously incremented total counter to the user data in the new message to be sent, the recipient using the total counter belonging to the received message from the total counter stored locally at the recipient The value of the total counter and the received low-order bits are reconstructed by concatenating a trunk counter, which comprises a number of high-order bits of the total counter of the receiver, which results from the total length of the total counter minus the transferred number of low-order bits, directly with the transferred low-order bits , if the value of the local value of the lower-order bits is less than or equal to the transmitted value of the lower-order bits, or if this is not the case, the body counter is first incremented and then concatenated with the lower-order bits, whereby the sender and the recipient has implemented an integrity protection method by the sender generating an integrity stamp for the message, which is based on the user data and the total counter of the sender, and adding this integrity stamp to the message, the recipient adding the integrity stamp of the received message according to the agreed or specified integrity protection method calculated taking into account the reconstructed counter, characterized in that if there is no match, the verification of the integrity stamp is run through several times until a match has been achieved or a predetermined number of iterative executions has been achieved, said rump counter being incremented or in each iterative execution incremented again and concatenated with the transmitted lower-order bits, the total counter thus newly reconstructed pulling the respective recalculation and checking of the integrity stamp round is placed, and in the event that the predetermined number of iterative executions is reached, a message changed during transmission, too many failed messages, replayed messages or messages that have arrived in the wrong order are concluded. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass, für den Fall des Abbruchs der iterativen Ausführungen aufgrund einer erkannten Übereinstimmung der Gesamtzähler des Empfängers auf den Wert des rekonstruierten Zählers bei der Übereinstimmung gesetzt wird.Procedure according to Claim 1 , characterized in that, in the event that the iterative executions are aborted due to a recognized match, the total counter of the receiver is set to the value of the reconstructed counter in the case of the match. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass als Integritätsschutzverfahren ein nicht kryptographisch sicheres Integritätsschutzverfahren, ein kryptographisch sicheres symmetrisches Authentifizierungsverfahren oder ein kryptographisch sicheres asymmetrisches Authentifizierungsverfahren eingesetzt wird.Procedure according to Claim 1 or 2 , characterized in that a non-cryptographically secure integrity protection process, a cryptographically secure symmetrical authentication process or a cryptographically secure asymmetrical authentication process is used as the integrity protection process. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass als Integritätsschutzverfahren CRC, HMAC, DSA oder ECDSA genutzt wird.Procedure according to Claim 3 , characterized in that CRC, HMAC, DSA or ECDSA is used as the integrity protection procedure. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die von dem Sender versendete Nachricht die allgemeine Form N = N.Nutzdaten || N.ÜbertrZähler || N.IntStemp annimmt.Method according to one of the Claims 1 to 4th , characterized in that the message sent by the sender has the general form N = N.Nutzdaten || N.TransferCounter || N.IntStemp accepts. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass der Sender und/oder der Empfänger eine oder mehreren von drei Variablen MaxVerINachrTechn, MaxVerlNachrAnw, MinNutzdLänge persistent vorhält, wobei aus den Werten der einen oder der mehreren Variablen der Wert MaxVerlNachr bestimmt wird, wobei die Anzahl der übertragenen niederwertigen Bits ÜbertrZählerLänge die durch MinNutzdLänge gegebene Einschränkung stets erfüllt, und wobei die Anzahl der übertragenen niederwertigen Bits ÜbertrZählerLänge und die Anzahl der Versuche n stets so gewählt werden, dass, falls ÜbertrZählerLänge > 0, stets MaxRekonstr(ÜbertrZählerLänge - 1, n) < MaxVerlNachr und, falls n > 1, stets MaxRekonstr(ÜbertrZählerLänge, n - 1) < MaxVerlNachr gilt.Method according to one of the Claims 1 to 5 , characterized in that the sender and / or the receiver holds one or more of three variables MaxVerINachrTechn, MaxVerlNachrAnw, MinNutzdLänge persistently, the value MaxVerlNachr being determined from the values of the one or more variables, with the number of low-order bits transmitted, TransferCounterLength the restriction given by MinUsableLength is always met, and the number of low-order bits transferred, TransferCounterLength and the number of attempts n are always selected so that, if TransferCounterLength> 0, MaxRekonstr (TransferCounterLength - 1, n) <MaxVerlNachr and, if n > 1, always MaxRekonstr (transfer counter length, n - 1) <MaxVerlNachr applies. Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass die Anzahl der übertragenen niederwertigen Bits und die Anzahl der vorgegebenen Versuche so gewählt werden, dass die maximale denkbare Anzahl hintereinander verlorengegangener Nachrichten erkannt wird, sodass MaxRekonstr(ÜbertrZählerLänge, n) ≥ MaxVerlNachr gilt.Procedure according to Claim 6 , characterized in that the number of low-order bits transmitted and the number of specified attempts are selected so that the maximum conceivable number of consecutive lost messages is recognized, so that MaxRekonstr (TransferCounterLength, n) ≥ MaxVerlNachr applies. Verfahren nach Anspruch 6 oder 7, dadurch gekennzeichnet, dass die drei Variablen MaxVerlNachrTechn, MaxVerlNachrAnw, MinNutzdLänge aktualisierbar sind, wobei die Aktualisierung von außen durch ein Drittsystem erfolgen kann oder vom System selbst auf Grund der Beobachtung der Umgebung und der Bedingungen und des Lernens aus der Vergangenheit erfolgen kann.Procedure according to Claim 6 or 7th , characterized in that the three variables MaxVerlNachrTechn, MaxVerlNachrAnw, MinNutzdLänge can be updated, whereby the update can be carried out externally by a third-party system or by the system itself based on the observation of the environment and the conditions and learning from the past.
DE102021001095.7A 2021-03-02 2021-03-02 Counter-based method for recognizing lost and re-imported messages Withdrawn DE102021001095A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102021001095.7A DE102021001095A1 (en) 2021-03-02 2021-03-02 Counter-based method for recognizing lost and re-imported messages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021001095.7A DE102021001095A1 (en) 2021-03-02 2021-03-02 Counter-based method for recognizing lost and re-imported messages

Publications (1)

Publication Number Publication Date
DE102021001095A1 true DE102021001095A1 (en) 2021-06-10

Family

ID=75963188

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021001095.7A Withdrawn DE102021001095A1 (en) 2021-03-02 2021-03-02 Counter-based method for recognizing lost and re-imported messages

Country Status (1)

Country Link
DE (1) DE102021001095A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021005213A1 (en) 2021-10-19 2023-04-20 Mercedes-Benz Group AG Method for generating a u-bit fingerprint and method for encrypting plain text
DE102022004632B3 (en) 2022-12-12 2024-03-21 Mercedes-Benz Group AG Method for encrypting plain text

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021005213A1 (en) 2021-10-19 2023-04-20 Mercedes-Benz Group AG Method for generating a u-bit fingerprint and method for encrypting plain text
WO2023066689A1 (en) 2021-10-19 2023-04-27 Mercedes-Benz Group AG Method for encrypting plain text
DE102022004632B3 (en) 2022-12-12 2024-03-21 Mercedes-Benz Group AG Method for encrypting plain text

Similar Documents

Publication Publication Date Title
DE102011014556B4 (en) Adaptive certificate distribution mechanism in vehicle networks using forward error correction codes
DE102011120968B4 (en) Create secure keys on demand
EP3501136B1 (en) Method, transmitter, and receiver for authenticating and protecting the integrity of message contents
EP2484047B1 (en) Method for protecting sensor data from manipulation, and sensor to this end
DE102009002396A1 (en) Method for manipulation protection of a sensor and sensor data of the sensor and a sensor for this purpose
DE60302276T2 (en) Method for remotely changing a communication password
DE102011014558A1 (en) Adaptive certificate distribution mechanism in vehicle networks using a variable renewal period between certificates
DE102014208975A1 (en) A method for generating a key in a network and subscribers to a network and network
LU93024B1 (en) Method and arrangement for establishing secure communication between a first network device (initiator) and a second network device (responder)
DE102021001095A1 (en) Counter-based method for recognizing lost and re-imported messages
DE102014113582A1 (en) Apparatus, method and system for context aware security control in a cloud environment
DE102010040688A1 (en) Method and device for authenticating multicast messages
DE102013218212A1 (en) Method for secure transmission of data
EP3506144A1 (en) Method and system for checking an integrity of a communication
EP2863610A2 (en) Method and system for tamper-proof provision of multiple digital certificates for multiple public keys of a device
DE102015220038A1 (en) A method of creating a secret or key in a network
DE102019204608B3 (en) Devices and methods for generating and authenticating at least one data packet to be transmitted in a bus system (BU) of a motor vehicle
EP2695324B1 (en) Method for sending messages with integrity protection
DE60017261T2 (en) METHOD AND DEVICE FOR ENSURING THE INTEGRITY AND AUTHENTICITY OF A RECORD
EP2989743B1 (en) Method and system for protected group communication with transmitter authentication
EP3895387B1 (en) Communication module
EP3427174B1 (en) Method and apparatuses for authenticating a data stream
EP3954082A1 (en) Method for securely exchanging encrypted messages
DE102014217320A1 (en) Method for generating a cryptographic key in a device and device set up for this purpose
EP3367285B1 (en) Terminal, id-token, computer program and corresponding methods for authenticating access authorization

Legal Events

Date Code Title Description
R230 Request for early publication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee