DE102021001095A1 - Counter-based method for recognizing lost and re-imported messages - Google Patents
Counter-based method for recognizing lost and re-imported messages Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000004891 communication Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims description 29
- 230000005540 biological transmission Effects 0.000 claims description 22
- 238000012546 transfer Methods 0.000 claims description 19
- 238000012795 verification Methods 0.000 claims description 3
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 101000868422 Homo sapiens Sushi, nidogen and EGF-like domain-containing protein 1 Proteins 0.000 description 7
- 102100032853 Sushi, nidogen and EGF-like domain-containing protein 1 Human genes 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000002085 persistent effect Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- BUHVIAUBTBOHAG-FOYDDCNASA-N (2r,3r,4s,5r)-2-[6-[[2-(3,5-dimethoxyphenyl)-2-(2-methylphenyl)ethyl]amino]purin-9-yl]-5-(hydroxymethyl)oxolane-3,4-diol Chemical compound COC1=CC(OC)=CC(C(CNC=2C=3N=CN(C=3N=CN=2)[C@H]2[C@@H]([C@H](O)[C@@H](CO)O2)O)C=2C(=CC=CC=2)C)=C1 BUHVIAUBTBOHAG-FOYDDCNASA-N 0.000 description 1
- 241001295925 Gegenes Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3252—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
- H04W12/106—Packet or message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/84—Vehicles
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. 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. 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. integritätsgeschützt sein, damit das Zielsystem eine während der Übertragung stattgefundene Veränderung einer Steuerungsnachricht, verlorengegangene oder mehrfach versendete Steuerungsnachrichten erkennen kann.
- 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. 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. 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
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. 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
- 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. 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. 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
- 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
- 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
- 1. Increment the value of the counter E.TotalCounter stored locally at the receiver by 1, so that E.TotalCounter: = E.TotalCounter +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. 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. 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
- 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
- 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) sich Nachrichten während der Übertragung weder aus technischen Gründen noch durch Manipulation verändern,
- (2) Nachrichten in der richtigen Reihenfolge beim Empfänger ankommen,
- (3) Nachrichten nicht mehrfach versendet werden und (4) nicht mehr als (2ÜbertrZählerlänge-1) Nachrichten hintereinander verlorengehen,
- (1) Messages change during transmission neither for technical reasons nor through manipulation,
- (2) Messages arrive at the recipient in the correct order,
- (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,
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. 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. Ist E.GesZähler = N'.GesZähler, so handelt es sich bei der empfangenen Nachricht N' um die erwartete Nachricht N.
- 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.
- 1. E.TotalCounter>N'.TotalCounter cannot occur because of the type of calculation of N'.TotalCounter from E.TotalCounter and N'.TotalCounter.
- 2. If E.TotalCounter = N'.TotalCounter, the received message N 'is the expected message N.
- 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. Rekonstruiere den Gesamtzähler der empfangenen Nachricht N' N'.GesZähler bspw. nach dem oben beschriebenen Verfahren 1.
- 2. Berechne den Integritätsstempel N'.IntStemp' := INT(N'.Nutzdaten, N'.GesZähler) nach dem mit dem Sender vereinbarten Verfahren INT, bspw. als
- a. N'.lntStemp' := CRC(N'.Nutzdaten || N'.GesZähler) oder
- b. N'.lntStemp' := AUTH(symmKey, N'.Nutzdaten || N'.GesZähler)
- 1. Reconstruct the total counter of the received message N 'N'. Total counter, for example using method 1 described above.
- 2. Calculate the integrity stamp N'.IntStemp ': = INT (N'.Nutzdaten, N'.TotalCounter) according to the INT method agreed with the sender, e.g. as
- a. N'.lntStemp ': = CRC (N'. user data || N'.total counter) or
- 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
- i. ERFOLG :=TRUE
- b.Falls N'.lntStemp' # N'.IntStemp
- i. ERFOLG := FALSE
- a.Falls N'.IntStemp' == N'.IntStemp
- 3. Compare the calculated integrity stamp N'.IntStemp 'with the received integrity stamp N'.IntStemp.
- a.If N'.IntStemp '== N'.IntStemp
- i. SUCCESS: = TRUE
- b.If N'.lntStemp '# N'.IntStemp
- i. SUCCESS: = FALSE
- a.If N'.IntStemp '== N'.IntStemp
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. Initialisierung
- a. Rekonstruiere N'.GesZähler nach dem oben zuerst beschriebenen Verfahren
- b. N'.RumpfZähler(1) := N'.RumpfZähler
- c. i := 1, ERFOLG := FALSE
- 2. Schleife
- a. Wiederhole
- i. N'.GesZähler(i) := N'.RumpfZähler(i) || N'.ÜbertrZähler
- ii. N'.lntStemp(i) := INT(N'.Nutzdaten, N'.GesZähler(i))
- 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
- b. bis i > n
- a. Wiederhole
- 1. Initialization
- a. Reconstruct N'.totalcount using the method first described above
- b. N'.RumpCounter (1): = N'.RumpCounter
- c. i: = 1, SUCCESS: = FALSE
- 2nd loop
- a. Repeat
- i. N'.TotalCounter (i): = N'.RumpCounter (i) || N'.Transfer counter
- ii. N'.lntStemp (i): = INT (N'. user data, N'.total counter (i))
- 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
- b. until i> n
- a. Repeat
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 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. 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. 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.
- 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. 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. 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. 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)
- 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. 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. 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. 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.
- 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. 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)
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)
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 |
-
2021
- 2021-03-02 DE DE102021001095.7A patent/DE102021001095A1/en not_active Withdrawn
Cited By (3)
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 |