Timing-Angriff
Was ist Timing-Angriff?
Timing-AngriffEin Seitenkanalangriff, der geheime Informationen rekonstruiert, indem er misst, wie lange eine Operation bei unterschiedlichen Eingaben dauert.
Timing-Angriffe nutzen eingabeabhängige Ausführungszeiten in kryptografischem und Authentifizierungs-Code aus. Klassische Ziele sind nicht zeitkonstante String-Vergleiche (ein nicht übereinstimmendes Byte bricht früh ab und verrät, wie weit die Vermutung passte), modulare Exponentiation (Square-and-Multiply leakt Schlüsselbits), von Cache-Zuständen beeinflusste AES-Tabellenlookups sowie Kontoabfragen, deren Dauer preisgibt, ob ein Benutzername existiert. Selbst Unterschiede im Nanosekundenbereich lassen sich verstärken, indem man Tausende Messungen mittelt, um Netzwerk-Jitter zu unterdrücken.
Paul Kochers Aufsatz von 1996 setzte dies erstmals als Waffe gegen RSA und Diffie-Hellman ein. Entscheidend war, dass Brumley und Boneh 2003 in „Remote Timing Attacks Are Practical" (USENIX Security) einen privaten RSA-Schlüssel aus OpenSSL 0.9.7 über ein Netzwerk extrahierten, indem sie die Timing-Variation bei der Montgomery-Reduktion und beim Umschalten zwischen Karatsuba- und normaler Multiplikation ausnutzten – deshalb aktivierte OpenSSL RSA-Blinding standardmäßig. Lucky Thirteen (CVE-2013-0169, 2013) rekonstruierte TLS-Klartext, indem es Zeitunterschiede bei der MAC-Verifikation während der Padding-Verarbeitung im CBC-Modus maß.
flowchart TD
A[Angreifer sendet viele präparierte Eingaben] --> B[Antwortzeit präzise messen]
B --> C[Messwerte mitteln, um Jitter auszugleichen]
C --> D{Korreliert die Zeit<br/>mit dem Geheimnis?}
D -->|Ja| E[Ein Bit/Byte des Geheimnisses ableiten]
E --> F[Wiederholen und Schlüsselraum eingrenzen]
F --> G[Vollständiges Geheimnis rekonstruiert]
D -->|Nein| H[Zeitkonstanter Code: kein Leak]Zur Abwehr sind zeitkonstante Implementierungen erforderlich: verzweigungsfreie Conditional Moves, Vergleiche mit fester Laufzeit (crypto_memcmp, Pythons hmac.compare_digest, Javas MessageDigest.isEqual), Blinding für RSA/ECC und cache-gehärtete Chiffre-Primitiven. Automatisierte Werkzeuge (dudect, ctgrind, MicroWalk) helfen, datenabhängiges Timing zu auditieren, und Rate-Limiting verringert das Messbudget des Angreifers an den Netzwerkgrenzen.
● Beispiele
- 01
Kochers Timing-Angriff von 1996, der Bits des privaten RSA-/Diffie-Hellman-Schlüssels rekonstruiert.
- 02
Lucky Thirteen (CVE-2013-0169) – ein Timing-Angriff auf das CBC-Padding von TLS.
● Häufige Fragen
Was ist Timing-Angriff?
Ein Seitenkanalangriff, der geheime Informationen rekonstruiert, indem er misst, wie lange eine Operation bei unterschiedlichen Eingaben dauert. Es gehört zur Kategorie Schwachstellen der Cybersicherheit.
Was bedeutet Timing-Angriff?
Ein Seitenkanalangriff, der geheime Informationen rekonstruiert, indem er misst, wie lange eine Operation bei unterschiedlichen Eingaben dauert.
Wie schützt man sich gegen Timing-Angriff?
Schutzmaßnahmen gegen Timing-Angriff kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Timing-Angriff?
Übliche alternative Bezeichnungen: Timing-Seitenkanal.