Granite: A Modular Methodology for Foundational Verification of Hardware-Software Leakage Contracts
Granite führt eine modulare, fundamentale Methodik ein, welche sowohl die funktionale Korrektheit als auch die Nicht-Leckage von RTL-Prozessoren verifiziert, indem sie eine Trace-Äquivalenz mit deterministischen ISA-Leckage-Kontrakten etabliert und dadurch die Komposition von Hardware- und Software-Beweisen ermöglicht, um Zwischenspezifikationen aus der Trusted Computing Base zu eliminieren.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Sie bauen ein superschnelles Rennauto. Sie wollen, dass es unglaublich schnell ist, also fügen Sie Turbolader, prädiktive Lenkung und ein System hinzu, das errät, welche Kurve Sie als Nächstes nehmen werden. Aber es gibt einen Haken: Wenn der Motor Ihres Autos ein spezifisches „Klacken“ macht, sobald Sie nach links abbiegen, könnte ein hinterlistiger Spion, der am Rand lauscht, Ihre gesamte Route allein durch das Geräusch entschlüsseln. In der Welt der Computerchips nennt man das einen „Timing-Seitenkanal“. Jahrelang versuchten Programmierer, Code zu schreiben, der unabhängig von den geheimen Daten, die er verarbeitet, exakt die gleiche Zeit benötigt – wie ein Spion, der versucht, durch einen Flur zu gehen, ohne ein Geräusch zu machen. Aber als die Chips schneller und intelligenter wurden, begannen sie, winzige, unvorhersehbare Geräusche zu machen – wie ein plötzliches Innehalten, um in den Spiegel zu schauen, oder ein kurzer Geschwindigkeitsschub – die versehentlich Geheimnisse preisgaben. Diese Arbeit befasst sich mit der beängstigenden Vorstellung, dass selbst wenn Ihr Code perfekt ist, die Hardware selbst Geheimnisse durch den sehr Rhythmus ihres Herzschlags verraten könnte.
Die Forscher hinter dieser Arbeit, bekannt als Granite, haben einen neuen Weg entwickelt, um mathematisch zu beweisen, dass ein Computerchip seine Geheimnisse sicher verwahrt. Sie haben nicht nur geraten oder Tests durchgeführt; sie haben ein strenges, schrittweises mathematisches Argument erstellt, das die hochgradigen Regeln, wie ein Computer sich verhalten sollte (die „Instruction Set Architecture“), bis hinunter zu den winzigen Drähten und Transistoren (die „RTL“) verbindet. Ihr wichtigstes Ergebnis ist eine Methode, um zu beweisen, dass das Timing eines Chips ausschließlich von Dingen bestimmt wird, die öffentlich sein dürfen, wie etwa welcher Knopf gedrückt wurde, und niemals von den geheimen Daten, die er verarbeitet, wie etwa einem Passwort oder einem Verschlüsselungsschlüssel. Sie schließen explizit die Idee aus, dass man einem Chip einfach vertrauen kann, weil er richtig aussieht oder weil er Standardtests bestanden hat; sie zeigen auf, dass ohne diesen spezifischen Beweistyp verborgene Lecks fast garantiert existieren. Sie schlagen dies nicht nur vor; sie haben es formal für ein Prozessordesign bewiesen, das erfolgreich für eine FPGA synthetisiert wurde, obwohl es noch nicht in ein vollständiges System-on-Chip für Post-Synthese-Tests integriert wurde.
Die große Detektivgeschichte der Computerchips
Stellen Sie sich einen Computerprozessor wie eine geschäftige, chaotische Küche in einem High-End-Restaurant vor. Die Köche (die Hardware) bereiten Mahlzeiten vor (führen Programme aus) für Kunden. Die „Instruction Set Architecture“ (ISA) ist die Speisekarte und das Rezeptbuch. Sie sagt der Küche: „Wenn Sie eine Bestellung für einen Burger erhalten, müssen Sie schließlich einen Burger servieren.“ Aber die Speisekarte sagt nicht, wie lange es dauert, den Burger zuzubereiten, oder wann der Koch das Messer greift.
In den alten Tagen wurden die Köche angewiesen, „konstantzeitig“ zu sein. Das bedeutete, dass sie Gemüse mit exakt der gleichen Geschwindigkeit hacken mussten, egal ob der Kunde einen Salat oder ein Steak bestellte, damit ein Spion, der vom Fenster aus zusieht, nicht durch den Rhythmus des Hackens erkennen konnte, was gerade gekocht wurde. Aber dann wurde die Küche zu schnell. Die Köche begannen mit „Spekulation“ – sie würden raten, was der Kunde wollte, und schon einmal Zwiebeln hacken, noch bevor die Bestellung überhaupt bestätigt war. Wenn sie falsch lagen, warfen sie die Zwiebeln weg und fingen von vorne an. Dieses Ratespiel erzeugte neue, unbeabsichtigte Geräusche: Die Zeit, die es dauerte, einen Fehler zu bemerken, oder die Zeit, die es dauerte, ein bestimmtes Gewürz zu greifen, begann Informationen preiszugeben. Ein Spion konnte in die Küche lauschen und schlussfolgern: „Ah, der Koch hat 0,0001 Sekunden gezögert; er muss etwas mit geheimen Zwiebeln kochen!“
Hier kommt Granite ins Spiel, der ultimative Kücheninspektor. Granite beobachtet nicht nur die Köche; es schreibt die Regeln der Küche um, um sicherzustellen, dass keine Geheimnisse durch das Timing des Hackens entweichen können.
Die Magie des „Schattenkochs“
Die Genialität von Granite liegt in einem cleveren Trick mit einem „Schattenkoch“. Stellen Sie sich vor, Sie haben den echten Koch, der alle geheimen Rezepte kennt (die geheimen Daten). Sie haben auch einen Schattenkoch, der Augenbinden trägt und nur die öffentlichen Teile der Bestellung kennt (die öffentlichen Daten).
Granites Methode besagt: „Wir werden beweisen, dass der echte Koch und der Schattenkoch in perfektem Gleichschritt agieren.“ Wenn der echte Koch 5 Sekunden braucht, um eine Zwiebel zu hacken, weil die Zwiebel groß war, muss auch der Schattenkoch exakt 5 Sekunden brauchen, obwohl der Schattenkoch nicht weiß, dass die Zwiebel groß war. Das Timing des Schattenkochs wird nur durch die öffentliche Bestellung gesteuert. Wenn das Timing des echten Kochs jemals von einem Geheimnis abhängt (wie der Art der Zwiebel), werden die beiden Köche aus dem Takt geraten, und der Beweis wird scheitern.
Um dies zu ermöglichen, führt Granite einen „Driver“ und einen „Witness“ ein.
- Der Driver ist wie ein Metronom, das nur auf die öffentliche Bestellung hört. Er entscheidet, wann die Küche voranschreiten soll, und stellt sicher, dass das Timing der Handlungen der Küche nur von dem diktiert wird, was der Kunde bekannt sein möchte, und nicht von den geheimen Zutaten.
- Der Witness ist ein Platzhalter für die chaotischen, unvorhersehbaren Teile der Küche (wie eine zufällige Verzögerung, weil eine Pfanne heiß ist). Der Witness sagt: „Okay, es ist uns egal, was genau hier passiert, solange es nicht vom Geheimnis abhängt.“
Indem Granite beweist, dass die echte Küche exakt so agiert wie eine Küche, die vom Driver und dem Witness gesteuert wird, beweist es, dass der Rhythmus der Küche (das Timing) unmöglich die geheimen Zutaten verraten kann.
Das modulare Puzzle
Einer der schwierigsten Teile beim Überprüfen einer ganzen Küche ist, dass sie zu groß ist, um sie auf einmal zu betrachten. Granite löst dies, indem es die Küche in kleine, unabhängige Stationen unterteilt: die Hackstation, die Grillstation, die Anrichtestation.
Granite beweist, dass jede Station für sich genommen sicher ist. Zum Beispiel wird die „Multiplizierer“-Station (die Mathematik betreibt) überprüft, um sicherzustellen, dass es nur deshalb länger dauert, zwei Zahlen zu multiplizieren, weil die Zahlen Null waren (was erlaubt ist, bekannt zu sein), und nicht wegen eines geheimen Wertes. Sobin jede einzelne Station als sicher bewiesen wurde, setzt Granite sie wie Lego-Steine zusammen. Da der Beweis „modular“ ist, müssen Sie bei einem Austausch der Grillstation gegen eine schnellere Station nicht die ganze Küche neu prüfen; Sie prüfen einfach die neue Station, und das gesamte System bleibt sicher.
Das letzte Urteil
Die Forscher haben nicht nur darüber gesprochen; sie haben ein Prozessordesign gebaut und ihren Beweis darauf angewendet. Sie nahmen eine Software, die bereits als „konstantzeitig“ bekannt war (ein kryptografisches Programm namens Salsa20), und bewiesen, dass diese, wenn sie auf ihrem Prozessordesign läuft, absolut keine Geheimnisse durch das Timing preisgibt.
Dies ist eine große Sache, weil es verändert, was man vertrauen muss. Normalerweise muss man einem komplexen Vertrag zwischen der Software und der Hardware vertrauen. Granite zeigt, dass, wenn man ihren Hardware-Beweis mit einem verifizierten Software-Beweis verbindet, der Hardware-Software-Vertrag selbst von der Liste der zu vertrauenden Komponenten gestrichen werden kann. Der Beweis stützt sich jedoch immer noch auf einige Kernkomponenten, wie die formale Definition des Instruction-Set-Vertrags und das Werkzeug, das den Code in eine Hardwarebeschreibung übersetzt, die weiterhin zum „Trusted Computing Base“ gehören. Sie fanden sogar einen Fehler in ihrem eigenen Design heraus: Sie erkannten, dass das Schreiben auf bestimmte Steuerregister (CSRs) Informationen preisgeben konnte, und behoben dies, bevor der Beweis abgeschlossen war.
Kurz gesagt ist Granite ein neuer Weg, Computerchips zu bauen, die mathematisch garantiert ihre Geheimnisse bewahren, selbst wenn sie schnell laufen, spekulieren und Geräusche machen. Es verwandelt die chaotische, lärmende Küche des modernen Computings in eine stille, geheimnisbewahrende Festung und beweist, dass man Geschwindigkeit und Sicherheit gleichzeitig haben kann.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.