DE102016207855A1 - Method and device for averting computer time attacks on a secret calculation - Google Patents

Method and device for averting computer time attacks on a secret calculation Download PDF

Info

Publication number
DE102016207855A1
DE102016207855A1 DE102016207855.0A DE102016207855A DE102016207855A1 DE 102016207855 A1 DE102016207855 A1 DE 102016207855A1 DE 102016207855 A DE102016207855 A DE 102016207855A DE 102016207855 A1 DE102016207855 A1 DE 102016207855A1
Authority
DE
Germany
Prior art keywords
random
calculation
waiting period
time
procedure
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.)
Pending
Application number
DE102016207855.0A
Other languages
German (de)
Inventor
Robert Szerwinski
Harald Weiler
Paulius Duplys
Christian Horst
Clemens Schroff
Herve Seudie
Arthur Mutter
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102016207855.0A priority Critical patent/DE102016207855A1/en
Publication of DE102016207855A1 publication Critical patent/DE102016207855A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Verfahren (40) zum Abwehren von Rechenzeitangriffen auf eine geheime Berechnung, gekennzeichnet durch folgende Merkmale: – vor der Berechnung wird eine bestimmte Wartefrist (tzufall) ausgelöst, – die Berechnung wird angestellt, während die Wartefrist (tzufall) verstreicht, und – sobald die Berechnung abgeschlossen und die Wartefrist (tzufall) abgelaufen ist, wird ein Ergebnis der Berechnung zum Versand bereitgestellt (48).Method (40) for averting computer time attacks on a secret calculation, characterized by the following features: - before the calculation, a certain waiting period (accidental) is triggered, - the calculation is made while the waiting period (accidentally) elapses, and - as soon as the calculation and the waiting period (random) has expired, a result of the calculation for shipment is provided (48).

Description

Die vorliegende Erfindung betrifft ein Verfahren zum Abwehren von Rechenzeitangriffen auf eine geheime Berechnung. Die vorliegende Erfindung betrifft darüber hinaus einen entsprechenden Kontroller für einen Bus, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium.The present invention relates to a method for averting computational time attacks on a secret computation. The present invention also relates to a corresponding controller for a bus, a corresponding computer program and a corresponding storage medium.

Stand der TechnikState of the art

Eine kryptoanalytische Methode, welche die physische Implementierung eines Kryptosystems in einer Vorrichtung ausnutzt, wird in der Kryptologie als Seitenkanalangriff (side channel attack) bezeichnet. Eine verbreitete Variante des Seitenkanalangriffs ist dem Fachmann als Rechenzeitangriff (timing attack) bekannt.A cryptoanalytic method which exploits the physical implementation of a cryptosystem in a device is referred to in cryptology as a side channel attack. A widespread variant of the side channel attack is known to the person skilled in the art as a timing attack.

Zur Ausführung eines Rechenzeitangriffs misst der Angreifer die Rechenzeit des implementierten kryptographischen Verfahrens für verschiedene, in der Regel vom Angreifer selbst gewählte Eingaben. Hierbei macht sich der Angreifer den Umstand zunutze, dass bestimmte Kryptosysteme von Fall zu Fall leicht abweichende Rechenzeiten benötigen, die einerseits vom gewählten Schlüssel, andererseits von den Eingabedaten, also dem Klartext oder Chiffre abhängen können. Durch eine wiederholte Laufzeitanalyse kann der Schlüssel auf diese Weise schrittweise rekonstruiert werden. Bekannte Rechenzeitangriffe richten sich gegen unterschiedlichste Hardware und Software.To perform a computational time attack, the attacker measures the computational time of the implemented cryptographic method for various inputs, usually selected by the attacker himself. In this case, the attacker takes advantage of the fact that certain cryptosystems require slightly different computing times from case to case, which may depend on the one hand on the key chosen, on the other hand on the input data, ie the plain text or cipher. Through a repeated runtime analysis, the key can be reconstructed step by step in this way. Known computing time attacks are directed against a wide variety of hardware and software.

DE 10 2013 205 542 A1 betrifft eine Vorrichtung zur Verarbeitung von Daten, wobei die Vorrichtung eine Eingangsschnittstelle zum Empfang von Eingangsdaten, eine Verarbeitungseinheit zur Verarbeitung von Daten und eine Kodiereinheit aufweist, die dazu ausgebildet ist, an der Eingangsschnittstelle als Eingangsdaten erhaltene Datenworte zu kodieren, um kodierte Datenworte zu erhalten, wobei für kodierte Datenworte die kodierten Datenworte und/oder ihre Verarbeitung durch die Vorrichtung charakterisierende Messwerte in Abhängigkeit mindestens einer physikalischen Größe der Vorrichtung ermittelbar sind, wobei die Kodiereinheit dazu ausgebildet ist, die Datenworte so zu kodieren, dass ein vorgebbarer Anteil aller Messwerte, vorzugsweise mindestens etwa 50% aller Messwerte, einen Unterschied zu einem Vorgabewert aufweist, der kleiner oder gleich einem vorgebbaren Schwellwert ist, und die Verarbeitungseinheit dazu ausgebildet ist, die kodierten Datenworte zu verarbeiten. DE 10 2013 205 542 A1 relates to a device for processing data, the device having an input interface for receiving input data, a processing unit for processing data and a coding unit which is designed to encode data words received at the input interface as input data in order to obtain coded data words, wherein for coded data words the coded data words and / or their processing by the device characterizing measured values as a function of at least one physical size of the device can be determined, wherein the coding unit is adapted to encode the data words so that a predetermined portion of all measured values, preferably at least approximately 50% of all measured values, a difference from a default value which is less than or equal to a predefinable threshold, and the processing unit is adapted to process the coded data words.

Offenbarung der ErfindungDisclosure of the invention

Die Erfindung stellt ein Verfahren zum Abwehren von Rechenzeitangriffen auf eine geheime Berechnung, eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium gemäß den unabhängigen Ansprüchen bereit.The invention provides a method for repelling computing time attacks on a secret calculation, a corresponding device, a corresponding computer program and a corresponding storage medium according to the independent claims.

Dem erfindungsgemäßen Ansatz liegt dabei die Erkenntnis zugrunde, dass das in 1 gezeigte Angriffsszenario vorstellbar ist. Ein Angreifer (Knoten A) kann demnach über einen Bus (10) Botschaften mit einer Aufforderung (11) zur Entschlüsselung, Verschlüsselung oder Signatur einer Nachricht, Überprüfung einer persönlichen Kennzahl (personal identification number, PIN) o. ä. an die Sicherheitssoftware (12) eines legitimen Steuergerätes (Knoten B) schicken, welches mittels eines Kommunikationskontrollers (14) und Sendeempfängers (transceiver, 15) an den Bus (10) angeschlossen ist, somit die entsprechende Berechnung auf dem angegriffenen Steuergerät (Knoten B) auslösen und die Antwortzeit messen (16). Beliebige Funktionen können über verschiedene physikalische Steuergeräte (17) verteilt werden, welche dann gleichsam nach einem Client-Server-Modell aufgerufen werden können.The approach according to the invention is based on the knowledge that the in 1 Attack scenario shown is conceivable. An attacker (node A) can therefore use a bus ( 10 ) Messages with a request ( 11 ) for decrypting, encrypting or signing a message, checking a personal identification number (PIN) or similar to the security software ( 12 ) of a legitimate control device (node B), which by means of a communication controller ( 14 ) and transceiver (transceiver, 15 ) to the bus ( 10 ), thus triggering the corresponding calculation on the attacked controller (Node B) and measuring the response time ( 16 ). Any functions can be controlled via various physical control devices ( 17 ), which can then be called up according to a client-server model.

2 zeigt die vom Angreifer (Knoten A) gemessene Gesamtlaufzeit unter besonderer Berücksichtigung der internen Laufzeiten innerhalb des Angriffszieles (Knoten B). Hierbei bezeichnet „tpropAB = const” die Laufzeit von Knoten A zu B, „tqueue = 0..X” die Zeit, bis die Botschaft von der Sicherheitssoftware (12) verarbeitet wird, „tsecure_algo = V..W” die zu schützende Berechnungszeit, „tsw_hprio = 0..Z” etwaige Präemptionen oder Unterbrechungen (interrupts), „ttx = const” die benötigte Zeit, um Antwort-Botschaften in den Kommunikationskontroller (14) zu kopieren und deren Versand auszulösen, „tarb_int = 0..M” die zur internen Arbitration der Antwort-Botschaft gegen andere zu sendende Botschaften erforderliche Zeit, „tarb_bus = 0..L” die zur Arbitration der Antwort-Botschaft gegen andere durch andere Knoten zu sendende Botschaften benötigte Zeit und schließlich „tpropBA = const” die Laufzeit von Knoten B zu A. Viele Teile der Gesamtlaufzeit sind somit variabel. Deshalb ermittelt der Angreifer (Knoten A) bei einem Rechenzeitangriff für jede Hypothese in der Regel das Minimum der gemessenen Antwortzeiten. Mit einer ausreichenden Zahl von Anfragen kann der Angreifer (Knoten A) so die minimale Gesamtlaufzeit für die Antwortzeit (16) ausforschen. Die so ermittelte minimale Antwortzeit (16) ermöglicht es dem Angreifer (Knoten A) Rückschlüsse über die interne Berechnungszeit zu gewinnen. 2 shows the total runtime measured by the attacker (node A) with special consideration of the internal runtimes within the attack target (node B). In this case, "t propAB = const" designates the runtime from node A to B, "t queue = 0..X" the time until the message from the security software ( 12 ), "t secure_algo = V..W" the computation time to be protected, "t sw_hprio = 0..Z" any preemptions or interrupts, "t tx = const" the time required to reply messages in the communication controller ( 14 ) and trigger their dispatch, "t arb_int = 0..M" the time required for the internal arbitration of the reply message against other messages to be sent, "t arb_bus = 0..L", which is to arbitrate the response message against other messages to be sent by other nodes take time and finally "t propBA = const" the runtime from node B to A. Many parts of the total run time are thus variable. Therefore, the attacker (node A) usually determines the minimum of the measured response times for a computing time attack for each hypothesis. With a sufficient number of requests, the attacker (node A) can thus determine the minimum total run time for the response time (node A). 16 ). The thus determined minimum response time ( 16 ) allows the attacker (node A) to draw conclusions about the internal calculation time.

Zur Verschleierung der internen Berechnungszeit wäre es insofern denkbar, eine zufällige Wartezeit (tzufall = P..Q) nach der Zeitspanne tsecure_algo einzufügen (2). Da eine solche zusätzliche zufällige Verzögerung auch ein Minimum hat, könnte ein Angreifer mitunter bei einer ausreichend großen Stichprobe dennoch in der Lage sein, die minimale Gesamtlaufzeit zu ermitteln. Somit würde ein solcher Ansatz die Ermittlung der minimalen Laufzeit erschweren, könnte diese aber nicht in jedem Fall gänzlich verhindern.To obscure the internal calculation time, it would be conceivable to insert a random waiting time (t random = P..Q) after the time period t secure_algo ( 2 ). Since such an additional random delay also has a minimum, an attacker could still be able to determine the minimum total run time with a sufficiently large sample. Thus, one would However, such an approach may make it difficult to identify the minimum maturity, but it may not prevent it altogether.

Ein Vorzug der vorgeschlagenen Lösung liegt im Vergleich zu solch einer – und erst recht einer vollkommen ungeschützten – Implementierung darin, dass Rechenzeitangriffe durch eine Ausführungsform der Erfindung gänzlich verhindert werden. Folglich muss die von einem Rechenzeitangriff ausgehende Gefahr nicht durch anderweitige softwaretechnische Maßnahmen ausgeschlossen werden. Eine Ausführungsform der Erfindung ist dabei – unter dem Gesichtspunkt der benötigten Hardwareressourcen – vergleichsweise einfach zu realisieren. Der Stand der Technik wird hierzu insofern erweitert, als die zufällige Wartezeit vor bzw. mit der zu schützenden Berechnungszeit (tsecure_algo = V..W) gestartet wird (3). Somit laufen einerseits die zu schützende Berechnungszeit (tsecure_algo = V..W) und andererseits die gleichsam „eingefügte” Zeit (tzufall = P..Q) parallel. Auf diese Weise wird die zu schützende Berechnungszeit (tsecure_algo = V..W) komplett verschleiert. In anderen Worten: Die Antwortzeit des Angriffszieles (Knoten B) steht nicht mehr im Zusammenhang mit der zu schützenden Berechnungszeit (tsecure_algo = V..W).An advantage of the proposed solution, in comparison to such an implementation - and certainly a completely unprotected one - is that computing time attacks are completely prevented by an embodiment of the invention. Consequently, the danger emanating from a computing time attack need not be excluded by other software measures. An embodiment of the invention is - comparatively easy to implement - from the point of view of the required hardware resources. For this purpose, the state of the art is expanded insofar as the random waiting time before or with the calculation time to be protected (t secure_algo = V..W) is started ( 3 ). Thus, on the one hand, the calculation time to be protected (t secure_algo = V..W) and, on the other hand, the "inserted" time (t random = P..Q) run in parallel. In this way, the calculation time to be protected (t secure_algo = V..W) is completely obfuscated. In other words, the response time of the attack target (node B) is no longer related to the calculation time to be protected (t secure_algo = V..W).

Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im unabhängigen Anspruch angegebenen Grundgedankens möglich. So kann das erfindungsgemäße Unterbinden eines Rechenzeitangriffs im Falle des Kommunikationskontrollers (14) durch eine relativ einfache Erweiterung entsprechend der 3 erreicht werden. Ein Grundgedanke dieser Ausgestaltung besteht darin, den Sendezeitpunkt für ausgewählte Botschaften im Kommunikationskontroller (14) so zu verzögern, dass der Angreifer (Knoten A) nicht auf die zu schützende Berechnungszeit (tsecure_algo = V..W) schließen kann. Auch dieser Aspekt erlaubt somit die sichere Verschleierung der zu schützenden Berechnungszeit (tsecure_algo = V..W).The measures listed in the dependent claims advantageous refinements and improvements of the independent claim basic idea are possible. Thus, the inventive prevention of a computing time attack in the case of the communication controller ( 14 ) by a relatively simple extension according to 3 be achieved. A basic idea of this refinement is to determine the transmission time for selected messages in the communication controller ( 14 ) so that the attacker (node A) can not conclude on the calculation time to be protected (t secure_algo = V..W). This aspect also allows the secure concealment of the calculation time to be protected (t secure_algo = V..W).

Gemäß einem weiteren Aspekt kann vorgesehen sein, dass die Konfiguration des Kommunikationskontrollers (14) eine vorab zwar im Wesentlichen zufällig gewählte, zur Laufzeit jedoch feste Länge der Wartefrist (tzufall) vorgibt. Das ist eine einfache Realisierung des erfindungsgemäßen Grundgedankens und liefert auch ein deterministisches Verhalten, unterscheidet sich gleichwohl wesentlich von bekannten Ansätzen.According to a further aspect, it may be provided that the configuration of the communication controller ( 14 ) prescribes an essentially random selection of the waiting period (t random ), which is fixed in advance, but at fixed term. This is a simple realization of the basic idea according to the invention and also provides a deterministic behavior, but nevertheless differs substantially from known approaches.

Gemäß einem weiteren Aspekt kann vorgesehen sein, dass die Konfiguration (42) eine Mindestlänge P und eine Höchstlänge Q der Wartefrist (tzufall = P..Q) vorgibt, wobei letztere zufällig derart bestimmt wird, dass sie die Mindestlänge und die Höchstlänge einhält. Läuft die Wartefrist (tzufall = P..Q) ab, bevor die Berechnung abgeschlossen ist, so werden die Mindestlänge und/oder die Höchstlänge verändert. Diese Variante erkennt, falls nach einer Software-Änderung die ursprünglich eingestellten Grenzen P und Q nicht mehr unter allen Bedingungen stimmen. In der beschriebenen Ausführungsform könnte sich die Implementierung in solch einem Anwendungsfall im Wesentlichen selbst konfigurieren oder zumindest adaptieren.According to another aspect, it may be provided that the configuration ( 42 ) specifies a minimum length P and a maximum length Q of the waiting period (t random = P..Q), the latter being determined at random so as to comply with the minimum length and the maximum length. If the waiting period (t random = P..Q) expires before the calculation is completed, the minimum length and / or the maximum length are changed. This variant detects if, after a software change, the originally set limits P and Q are no longer correct under all conditions. In the described embodiment, the implementation in such an application could essentially self-configure or at least adapt.

Diese Aufgabe ist erfindungsgemäß sehr einfach mittels angepasster Hardware oder Software lösbar. Der Vorteil einer möglichen Hardware-Lösung liegt darin, dass eine solche Lösung nur geringe Änderungen in der Software erfordert. Typischerweise genügt es, dass neue Register zum Konfigurieren und Bedienen gelesen und geschrieben werden.This object is achieved according to the invention very easily by means of adapted hardware or software. The advantage of a possible hardware solution is that such a solution requires only minor changes in the software. Typically, it is sufficient to read and write new registers for configuration and operation.

Kurze Beschreibung der ZeichnungenBrief description of the drawings

Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:Embodiments of the invention are illustrated in the drawings and explained in more detail in the following description. It shows:

1 einen Rechenzeitangriff in einem Fahrzeug über dessen CAN-Bus. 1 a computing time attack in a vehicle via its CAN bus.

2 schematisch die im Falle einer Alternativlösung auftretenden Laufzeiten beginnend mit dem Versand der Anfrage des Angreifers bis zum Empfang der Antwort. 2 schematically the durations occurring in the case of an alternative solution starting with the dispatch of the request of the attacker to the receipt of the answer.

3 die 2 entsprechenden Laufzeiten im Falle einer Ausführungsform der Erfindung. 3 the 2 corresponding maturities in the case of an embodiment of the invention.

4 eine Darstellung der Umsetzung dieser Ausführungsform seitens des Angriffsziels. Diese Einheit ist dem Kommunikationskontroller (14) vorgeschaltet oder ein Teil davon. Diese Einheit ist für die Verzögerung um tzufall zuständig. Die Funktion dieser Einheit kann auch komplett in Software realisiert werden. 4 a representation of the implementation of this embodiment on the part of the attack target. This unit is the communication controller ( 14 ) or part of it. This unit is responsible for the delay at random . The function of this unit can also be realized completely in software.

Ausführungsformen der ErfindungEmbodiments of the invention

3 zeigt die Gesamtlaufzeit, die der Angreifer (Knoten A) im Falle eines Rechenzeitangriffes messen kann. Um die zu schützende Berechnungszeit (tsecure_algo = V..W) zu verschleiern, wird nun vor dem Start der Berechnung eine zufällige oder pseudozufällige Wartefrist (tzufall = P..Q) bestimmt. Diese Wartefrist (tzufall = P..Q) läuft, wie in 3 gezeigt, parallel zur Berechnungszeit (tsecure_algo = V..W) der Sicherheitssoftware (12). Der Zeitpunkt „Start” markiert den Beginn der Berechnungszeit (tsecure_algo = V..W). „Ende” markiert den Zeitpunkt, an dem die „Vorgeschaltete Einheit” (4) den Versand des Ergebnisses der zu schützenden Berechnung an den Angreifer (Knoten A) veranlasst. Die Differenz zwischen Zeitpunkten „Ende” und „Start” kann auch größer sein als durch tzufall maximal zu erreichen ist – dies passiert, wenn z. B. tsw_hprio unerwartet groß wird. Beginnend mit dem Zeitpunkt „Ende” ist der Kommunikationskontroller (14) für den Versand verantwortlich. 3 shows the total runtime that the attacker (node A) can measure in the case of a computational time attack. In order to disguise the calculation time to be protected (t secure_algo = V..W), a random or pseudo-random waiting period (t random = P..Q) is now determined before the start of the calculation. This waiting period (t coincidence = P..Q) runs as in 3 shown parallel to the calculation time (t secure_algo = V..W) of the security software ( 12 ). The time "Start" marks the beginning of the calculation time (t secure_algo = V..W). "End" marks the time when the "Upstream Unit" ( 4 ) causes the result of the calculation to be protected to be sent to the attacker (node A). The difference between times "end" and "start" can also be greater than by t coincidence maximum reach - this happens when z. For example, t sw_hprio becomes unexpectedly large. Starting with the time "end" is the communication controller ( 14 ) responsible for the shipment.

Damit das Verfahren funktioniert, ist folgende Ungleichung einzuhalten: tzufall > tsecure_algo – ttk + δt For the procedure to work, the following inequality must be observed: t random > t secure_algo - t tk + δ t

In obiger Formel bezeichnet δt alle sonstigen konstanten Zeitanteile zwischen Beginn (Start) der Berechnungszeit (tsecure_algo = V..W) und Zeitpunkt (Ende) des Ergebnisses. Mit „konstanter Zeitanteil” ist die minimale Zeit für eine Aktion gemeint; diesem Wortsinn entsprechend wäre im beispielhaften Fall einer stochastischen Zeitgröße t ∈ [a, b] die Untergrenze a als konstanter Anteil, die Intervalllänge b – a hingegen als variabler Anteil der Zufallsvariablen t zu erachten. „Rein variable” Zeiten und die variablen Anteile der Zeiten – konstante Anteile sind in der Ungleichung zuvor berücksichtigt worden – zwischen Start und Ende sind dabei als gewissermaßen natürliche Randbedingung anzusehen, vergleichbar etwa einer aus der Netzwerktechnik bekannten Varianz der Laufzeit von Datenpaketen (jitter).In the above formula δ t denotes all other constant time shares between the start (start) of the calculation time (t secure_algo = V..W) and the time (end) of the result. By "constant time share" is meant the minimum time for an action; According to this sense of the word, in the exemplary case of a stochastic time variable t ∈ [a, b], the lower limit a would be regarded as a constant component, while the interval length b - a would be considered as the variable component of the random variable t. "Purely variable" times and the variable parts of the times - constant parts have been considered in the inequality - between start and end are to be regarded as a kind of natural boundary condition, comparable to a known from the network technology variance of the duration of data packets (jitter).

Vorzugsweise ist die Zeit tzufall zufällig, jedoch zwischen P und Q zu wählen. Die Obergrenze Q ist hierbei beliebig, solange daraus resultierende Antwortzeiten tolerierbar sind; die Untergrenze, d. h. die minimale zufällige Wartezeit P wird abhängig von der geschätzten Rechenzeit (tsecure_algo = V..W) des zu schützenden Algorithmus festgelegt. Diese Festlegung kann nichtlinear, beliebig einfach oder kompliziert sein. Zum Beispiel mag, falls die Rechenzeit (tsecure_algo = V..W) des Algorithmus als sehr kurz eingeschätzt wird, ein sehr hoher Wert für Q gewählt werden; falls die Rechenzeit (tsecure_algo = V..W) des Algorithmus als kurz eingeschätzt wird, mag ein mittlerer Wert für Q gewählt werden; und falls die Rechenzeit (tsecure_algo = V..W) des Algorithmus als lang eingeschätzt wird, mag ein großer Wert für Q gewählt werden. In jedem Fall ist folgende Ungleichung zu erfüllen: tzufall > tsecure_algo – ttx + δt Preferably, the time t is random, but to choose between P and Q. The upper limit Q is arbitrary, as long as resulting response times are tolerable; the lower limit, ie the minimum random waiting time P, is determined as a function of the estimated computing time (t secure_algo = V..W) of the algorithm to be protected. This determination can be nonlinear, arbitrarily simple or complicated. For example, if the calculation time (t secure_algo = V..W) of the algorithm is estimated to be very short, a very high value may be chosen for Q; if the calculation time (t secure_algo = V..W) of the algorithm is considered short, a mean value for Q may be chosen; and if the calculation time (t secure_algo = V..W) of the algorithm is estimated to be long, a large value for Q may be chosen. In any case, the following inequality must be fulfilled: t random > t secure_algo - t tx + δ t

In Betracht kommt dabei eine dynamische Anpassung der Grenzen P und Q. Wird die Ungleichung einmal verletzt, so passt die Implementierung die Grenzen an. Wird beispielsweise der Wert tzufall – P – 1 gewählt und die Implementierung – sei es Hardware oder Software – stellt fest, dass ein die Sendeanfrage (transmission request) signalisierender Statusindikator (flag) für die Antwort-Botschaft erst nach Ablauf dieser Zeit von der Software gesetzt (set) wird, so nimmt die Implementierung folgende Zuweisungen vor: Pneu :– Palt + x und Qneu :– Pneu + y A dynamic adaptation of the limits P and Q is considered. Once the inequality is violated, the implementation adjusts the limits. If, for example, the value t random -P-1 is selected and the implementation - be it hardware or software - determines that a transmission request signaling status indicator (flag) for the response message only after this time from the software set, the implementation makes the following assignments: P new : - P alt + x and Q new : - P new + y

Eine Umsetzung des erfindungsgemäßen Grundgedankens ist in Software und Hardware möglich. Hierbei erfordert eine Software-Realisierung eine Änderung in der Sicherheitssoftware (12), obgleich der zu schützende Algorithmus selbst nicht angepasst werden muss.An implementation of the inventive concept is possible in software and hardware. In this case, a software implementation requires a change in the security software ( 12 ), although the algorithm to be protected itself does not have to be adapted.

In einer beispielhaften Hardware-Realisierung hingegen können in zusätzlichen Konfigurationsregistern in der „vorgeschalteten Einheit” (4) die Kennungen der Botschaften, für welche der Sendezeitpunkt zu randomisieren ist, gespeichert werden. Zusätzlich können in weiteren Konfigurationsregistern die Randbedingungen für die Randomisierung gespeichert werden. Zu den Randbedingungen zählen beispielsweise die minimale (P) und maximale (Q) Dauer der zufällig gewählten Wartefrist (tzufall = P..Q). Diese Randbedingungen könnten bezüglich einer vorgegebenen Zeiteinheit – z. B. μs –, als Vielfaches einer Taktperiode des Mikrokontrollers (13) oder eines Bitintervalls des Busses (10) repräsentiert werden.In an exemplary hardware implementation, however, additional configuration registers in the "upstream unit" (FIG. 4 ) store the identifiers of the messages for which the send time is to be randomized. In addition, the boundary conditions for the randomization can be stored in further configuration registers. The boundary conditions include, for example, the minimum (P) and maximum (Q) durations of the randomly selected waiting period (t random = P..Q). These boundary conditions could with respect to a given time unit -. B. μs -, as a multiple of a clock period of the microcontroller ( 13 ) or a bit interval of the bus ( 10 ).

4 zeigt schematisch die beispielhafte Realisierung dieser Erfindung als digitale Hardware-Erweiterung in einem Kommunikationskontroller (14). Das Verfahren (40) könnte z. B. folgendermaßen ablaufen: Das potenzielle Angriffsziel (Knoten B) empfängt eine Botschaft mit dem Auftrag, etwas nach dem zu schützenden Algorithmus zu berechnen. Unmittelbar vor Beginn (Start) der Berechnungszeit (tsecure_algo = V..W) teilt die Sicherheitssoftware (12) des potenziellen Angriffszieles (Knoten B) per Schreibzugriff (46) auf die Zeiteinheit (41) den Start einer Berechnung mit. Die Zeiteinheit (41) bestimmt anhand dessen Konfiguration (42) eine Wartefrist (tzufall = P..Q), deren Überwachung mittels eines geeigneten Zeitgebers (timer) erfolgt. Die Wartefrist kann wie anfangs beschrieben konstant, rein zufällig oder auch abhängig von einer abgeschätzten Berechnungszeit (tsecure_algo) sein. Die Sicherheitssoftware (12) kopiert die Antwort-Botschaft in den Kommunikationskontroller (14) und setzt (47) anschließend den besagten Statusindikator für die Sendeanfrage (43) in der erfindungsgemäßen Verzögerungseinheit (4). Die Prüfeinheit (45) prüft, ob die Wartefrist (tzufall = P..Q) abgelaufen ist und zudem die Sendeanfrage (43) vorliegt. Ist beides gegeben, so setzt sie (45) schließlich die verzögerte Sendeanfrage (44) für die Antwort-Botschaft im Kommunikationskontroller (14). 4 FIG. 12 schematically illustrates the exemplary implementation of this invention as a digital hardware extension in a communications controller (FIG. 14 ). The procedure ( 40 ) could z. For example, the potential attack target (Node B) receives a message asking it to calculate something according to the algorithm to be protected. Immediately before the start (start) of the calculation time (t secure_algo = V..W), the security software ( 12 ) of the potential attack target (Node B) by write access ( 46 ) on the time unit ( 41 ) start the calculation with. The time unit ( 41 ) determined by its configuration ( 42 ) a waiting period (t zufall = P..Q), the monitoring by means of a suitable timer (timer) takes place. The waiting period can be constant, purely random or dependent on an estimated calculation time (t secure_algo ) as described at the beginning. The security software ( 12 ) copies the reply message to the communication controller ( 14 ) and sets ( 47 ) then the said status indicator for the send request ( 43 ) in the delay unit according to the invention ( 4 ). The test unit ( 45 ) checks whether the waiting period (t coincidence = P..Q) has expired and also the send request ( 43 ) is present. If both are given, then it sets ( 45 ) finally the delayed send request ( 44 ) for the reply message in the communication controller ( 14 ).

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE 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 has been 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 PatentliteraturCited patent literature

  • DE 102013205542 A1 [0004] DE 102013205542 A1 [0004]

Claims (10)

Verfahren (40) zum Abwehren von Rechenzeitangriffen auf eine geheime Berechnung, gekennzeichnet durch folgende Merkmale: – vor der Berechnung wird eine bestimmte Wartefrist (tzufall) ausgelöst, – die Berechnung wird angestellt, während die Wartefrist (tzufall) verstreicht, und – sobald die Berechnung abgeschlossen und die Wartefrist (tzufall) abgelaufen ist, wird ein Ergebnis der Berechnung zum Versand bereitgestellt (48).Procedure ( 40 ) to avert computing time attacks on a secret calculation, characterized by the following features: - before the calculation a certain waiting period (t random ) is triggered, - the calculation is made while the waiting period (t random ) elapses, and - as soon as the calculation is completed and the waiting period (t random ) has expired, a result of the calculation for shipment is provided ( 48 ). Verfahren (40) nach Anspruch 1, gekennzeichnet durch folgende Merkmale: – die Wartefrist (tzufall) wird durch einen Kommunikationskontroller (14) für einen Bus (10), insbesondere ein CAN, bestimmt und überwacht und – das Liefern des Ergebnisses (48) erfolgt durch eine verzögerte Sendeanfrage (44) im Kommunikationskontroller (14).Procedure ( 40 ) according to claim 1, characterized by the following features: - the waiting period (t random ) is determined by a communication controller ( 14 ) for a bus ( 10 ), in particular a CAN, determines and monitors and - delivering the result ( 48 ) is done by a delayed send request ( 44 ) in the communication controller ( 14 ). Verfahren (40) nach Anspruch 2, gekennzeichnet durch folgendes Merkmal: – das Bestimmen der Wartefrist (tzufall) erfolgt anhand einer Konfiguration (42).Procedure ( 40 ) according to claim 2, characterized by the following feature: - the waiting period (t random ) is determined on the basis of a configuration ( 42 ). Verfahren (40) nach Anspruch 3, gekennzeichnet durch folgendes Merkmal: – die Konfiguration (42) gibt eine feste Länge der Wartefrist (tzufall) vor.Procedure ( 40 ) according to claim 3, characterized by the following feature: - the configuration ( 42 ) specifies a fixed length of the waiting period (t random ). Verfahren (40) nach Anspruch 3, gekennzeichnet durch folgende Merkmale: – die Konfiguration (42) gibt eine Mindestlänge und eine Höchstlänge der Wartefrist (tzufall) vor und – die Wartefrist (tzufall) wird zufällig oder abhängig von einer geschätzten Berechnungszeit derart bestimmt, dass sie die Mindestlänge und die Höchstlänge einhält.Procedure ( 40 ) according to claim 3, characterized by the following features: - the configuration ( 42 ) specifies a minimum length and a maximum length of the waiting period (t random ) and - the waiting period (t random ) is determined at random or depending on an estimated calculation time such that it complies with the minimum length and the maximum length. Verfahren (40) nach Anspruch 5, gekennzeichnet durch folgende Merkmale: – läuft die Wartefrist (tzufall) ab, bevor die Berechnung abgeschlossen ist, so werden die Mindestlänge und/oder die Höchstlänge verändert.Procedure ( 40 ) according to claim 5, characterized by the following features: - If the waiting period (t random ) expires before the calculation is completed, then the minimum length and / or the maximum length are changed. Verfahren (40) nach Anspruch 5 oder 6, gekennzeichnet durch folgende Merkmale: – die Mindestlänge und die Höchstlänge werden in der Konfiguration (42) bezüglich einer vorgegebenen Zeiteinheit, einer Taktperiode oder eines Bitintervalls des Busses (10) repräsentiert.Procedure ( 40 ) according to claim 5 or 6, characterized by the following features: - the minimum length and the maximum length are in the configuration ( 42 ) with respect to a given time unit, a clock period or a bit interval of the bus ( 10 ). Computerprogramm (12), welches eingerichtet ist, das Verfahren (40) nach einem der Ansprüche 1 bis 7 auszuführen.Computer program ( 12 ), which is set up, the method ( 40 ) according to one of claims 1 to 7. Maschinenlesbares Speichermedium, auf dem das Computerprogramm (12) nach Anspruch 8 gespeichert ist.Machine-readable storage medium on which the computer program ( 12 ) is stored according to claim 8. Kommunikationskontroller (14) für einen Bus (10), der eingerichtet ist, das Verfahren (40) nach einem der Ansprüche 1 bis 7 auszuführen.Communication Controller ( 14 ) for a bus ( 10 ), which is set up, the procedure ( 40 ) according to one of claims 1 to 7.
DE102016207855.0A 2016-05-06 2016-05-06 Method and device for averting computer time attacks on a secret calculation Pending DE102016207855A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102016207855.0A DE102016207855A1 (en) 2016-05-06 2016-05-06 Method and device for averting computer time attacks on a secret calculation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016207855.0A DE102016207855A1 (en) 2016-05-06 2016-05-06 Method and device for averting computer time attacks on a secret calculation

Publications (1)

Publication Number Publication Date
DE102016207855A1 true DE102016207855A1 (en) 2017-11-09

Family

ID=60119284

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016207855.0A Pending DE102016207855A1 (en) 2016-05-06 2016-05-06 Method and device for averting computer time attacks on a secret calculation

Country Status (1)

Country Link
DE (1) DE102016207855A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112115657A (en) * 2020-10-14 2020-12-22 深圳安捷丽新技术有限公司 Chip security simulation analysis method and device for preventing single time attack

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013205542A1 (en) 2013-03-28 2014-10-02 Robert Bosch Gmbh Apparatus and method for processing data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013205542A1 (en) 2013-03-28 2014-10-02 Robert Bosch Gmbh Apparatus and method for processing data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112115657A (en) * 2020-10-14 2020-12-22 深圳安捷丽新技术有限公司 Chip security simulation analysis method and device for preventing single time attack

Similar Documents

Publication Publication Date Title
DE112018004408B4 (en) IDENTIFICATION OF ATTACK FLOWS IN A LAYERED NETWORK TOPOLOGY
EP3254227A1 (en) Method for protecting security-relevant data in a cache memory
EP2235598B1 (en) Field device and method of operation thereof
DE102020214099A1 (en) Procedure for detecting unauthorized physical access to a bus system
EP3720039B1 (en) Method for configuring a security module comprising at least one derived key
DE102016207855A1 (en) Method and device for averting computer time attacks on a secret calculation
DE102016205122A1 (en) Method for exchanging messages between security-relevant devices
DE112012000780B4 (en) Processing Authorization Check Data
EP2618226B1 (en) Industrial automation system and method for its protection
EP3134845A1 (en) Method and system for identifying manipulation of data records
DE102013108073B4 (en) DATA PROCESSING ARRANGEMENT AND DATA PROCESSING METHOD
WO2018234039A1 (en) Method and device for transmitting a message in a safety-relevant facility
DE102013225755A1 (en) A method for time-limited release of access of an external device to data in a vehicle, and device therefor
EP3376419A1 (en) System and method for electronically signing a document
DE102018221349A1 (en) Procedure for managing a store
DE102016207051A1 (en) Method and device for controlling a bus
DE102018203143A1 (en) A method of sending and method for checking at least two data blocks authenticated using a key
EP3703333B1 (en) Method, apparatus and system for processing at least one information item in a safety system
DE102013209915A1 (en) Method and apparatus for providing random bit sequences in a virtual execution environment of a computer system
DE10258323A1 (en) Increasing security against determination of encryption key, by evaluating input data based on check of predetermined criteria and calculating cipher text accordingly
EP3066812B1 (en) Method for securing telecommunications traffic data
DE102017205552A1 (en) A method of controlling access of an electronic device to a system and security device
DE102016107673A1 (en) Method for using a proxy server for data exchange
DE102021201443A1 (en) Method and device for transmitting data in a network using a service-oriented protocol
DE102018221348A1 (en) Procedure for managing a store

Legal Events

Date Code Title Description
R012 Request for examination validly filed