
Proof-of-Concept, das einen Seitenkanalangriff durch Leistungsanalyse gegen eine verwundbare RSA-Implementierung auf Arduino (Atmega328P) demonstriert, mit detailliertem Hardware-Setup und Messmethodik.
Kürzlich habe ich beobachtet, wie Leute selbst Kryptographie für Arduino implementieren, wie zum Beispiel in diesem Thema auf Stackoverflow:
https://stackoverflow.com/questions/39189065/rsa-encryption-decryption-functions-for-arduino
Einige davon sind im Internet zu finden, einige übrigens auch in bekannten Bibliotheken.
Ich beschloss, diese kleine PoC (Proof of Concept) durchzuführen, um zu zeigen, warum es wichtig ist, nicht nur keinen eigenen Kryptographiealgorithmus zu erfinden, sondern auch eine robuste Implementierung solcher Algorithmen zu verwenden.
Diese PoC führt einen Seitenkanalangriff (Leistungsanalyseangriff) gegen eine schlechte Implementierung einer Hilfsroutine durch, die in der RSA-Implementierung verwendet wird (schnelle Exponentiation).
Ein Seitenkanalangriff ist eine Methode, um ein kryptographisches System zu kompromittieren, indem indirekte Informationslecks ausgenutzt werden, anstatt den kryptographischen Algorithmus oder das Protokoll selbst direkt anzugreifen.
Diese Art von Leck kann aus verschiedenen Quellen stammen, wie z. B. Timing-Informationen, Stromverbrauch, elektromagnetische Emissionen oder sogar Geräusche.
Solche Angriffe können sehr effektiv sein, um kryptographische Systeme wie RSA zu kompromittieren, ohne dass der Angreifer die zugrundeliegenden mathematischen Probleme lösen muss, die die Sicherheit des kryptographischen Schemas gewährleisten (Kocher, Jaffe & Jun, 1999).
Dieses Papier führt einen Leistungsanalyseangriff auf eine bekannte Schwachstelle in einer Implementierung des RSA-Algorithmus in einer Firmware für Arduino (Atmega328P) durch.
Hinweis: Ich habe dies in Eile getan, bitte verzeihen Sie die Rechtschreib-/Grammatikfehler, die Sie eventuell finden werden.
Angriffe durch Leistungsanalyse beinhalten die Messung des Stromverbrauchs eines Geräts während kryptographischer Operationen.
Die differentielle Leistungsanalyse (DPA) umfasst die statistische Analyse von Stromverbrauchsmustern über mehrere kryptographische Operationen hinweg, um Geheimnisse zu extrahieren. Sie ist anspruchsvoller als die einfache Leistungsanalyse (SPA), die Stromschwankungen direkt mit bestimmten kryptographischen Operationen korreliert, um Geheimnisse abzuleiten.
Differentielle Leistungsanalyse (DPA) und einfache Leistungsanalyse (SPA) können verwendet werden, um private Schlüssel zu extrahieren, indem Muster im Stromverbrauch während RSA-Berechnungen analysiert werden.
Diese Angriffe können den privaten Schlüssel aufdecken, indem sie unterschiedliche Stromverbrauchsmuster identifizieren, die mit verschiedenen Schlüsselbits verbunden sind (Kocher, Jaffe & Jun, 1999).
RSA (Rivest-Shamir-Adleman) ist ein weit verbreiteter Public-Key-Verschlüsselungsalgorithmus, benannt nach seinen Erfindern: Ron Rivest, Adi Shamir und Leonard Adleman, die ihn 1977 vorstellten (Paar & Pelzl, 2010).
Er bleibt eine der sichersten Methoden, um Daten sicher über das Internet zu übertragen.
Eine der Grundlagen der RSA-Sicherheit liegt in der Schwierigkeit, große zusammengesetzte Zahlen in ihre Primfaktoren zu zerlegen (Menezes, van Oorschot & Vanstone, 1996).
Dieses Problem, bekannt als das Faktorisierungsproblem, besteht darin, die Primzahlen zu finden, die miteinander multipliziert eine gegebene große Zahl ergeben.
Die RSA-Verschlüsselung beruht auf der Annahme, dass dieses Faktorisierungsproblem rechnerisch schwierig genug ist, um es unpraktikabel zu machen, die Verschlüsselung durch Faktorisierung des Modulus in seine Primfaktoren zu brechen (Menezes, van Oorschot & Vanstone, 1996).
Abbildung 1 veranschaulicht den RSA-Verschlüsselungs- und Entschlüsselungsprozess anhand eines einfachen Beispiels.

Abbildung 1 - RSA-Beispiel.
Bitte beachten Sie, dass in diesem Fall 3 und 33 öffentlich sind. Die Zahl 7 im Beispiel ist der private Schlüssel.
Die Phi(N)-Funktion, die eulersche Phi-Funktion, berechnet alle teilerfremden Zahlen im Intervall von 1 bis 33.
Der Wert 33 ergibt sich aus der Multiplikation von P und Q; in diesem Fall 11 multipliziert mit 3.
Das Ergebnis der Phi-Funktion erhält man durch Multiplikation von (P - 1) mit (Q - 1); in diesem Fall 10 multipliziert mit 2.
Die Operation e<sup>-1</sup> mod 20 bezeichnet die modulare Inverse (Menezes, van Oorschot & Vanstone, 1996).
Hinweis: Falls Sie tiefer in RSA einsteigen möchten, was zum Verständnis dieses Papiers nicht notwendig ist. In diesem Repository gibt es eine kurze Einführung in diese grundlegenden zahlentheoretischen Operationen in der Datei number_theory.md. Die Erklärung kann Ihr Verständnis der RSA-Operationen verbessern.
Das Experiment verwendete ein Oszilloskop DS1102 (dargestellt in Abbildung 2), hergestellt von Rigol.
Das Handbuch des Oszilloskops befindet sich in den Referenzen (RIGOL Technologies, Inc., 2017).
Es wurde auch ein handelsübliches Netzteil verwendet (dargestellt in Abbildung 3).

Abbildung 2 - Im Experiment verwendetes Oszilloskop.

Abbildung 3 - Im Experiment verwendetes Netzteil.
Das Ohmsche Gesetz ist ein grundlegendes Prinzip in der Elektrotechnik und Physik.
Es besagt, dass der Strom, der durch einen Leiter zwischen zwei Punkten fließt, direkt proportional zur Spannung zwischen den beiden Punkten und umgekehrt proportional zum Widerstand zwischen ihnen ist (Boylestad, 2015).
Abbildung 4 zeigt einen Schaltkreis und das Ohmsche Gesetz.

Abbildung 4 - Veranschaulichung des Ohmschen Gesetzes.
Das Ohmsche Gesetz impliziert, dass bei Erhöhung der Spannung über einem Leiter auch der Strom ansteigt, sofern der Widerstand konstant bleibt (Johnson & Hilburn, 2013). Abbildung 5 zeigt ein Beispiel für die Anwendung des Ohmschen Gesetzes, bei dem das Ziel darin besteht, den Strom im Stromkreis zu ermitteln.

Abbildung 5 - Beispiel für das Ohmsche Gesetz.
Das Kirchhoffsche Spannungsgesetz (KVL) ist ein grundlegendes Prinzip in der Elektrotechnik und Physik (Boylestad, 2015).
Es besagt, dass die Summe aller elektrischen Potentialdifferenzen (Spannungen) in einem geschlossenen Netzwerk oder einer Masche null ist (Boylestad, 2015).
Abbildung 6 veranschaulicht das Kirchhoffsche Spannungsgesetz.

Abbildung 6 - Veranschaulichung des Kirchhoffschen Gesetzes.