Kryptographie macht Anwendungen und Geräte sicherer. Um das Testen von Hardware und das Debuggen von Software zu ermöglichen, sind Hersteller jedoch oft auf einen Kanal angewiesen, der die kryptographischen Prozesse umgeht. Luther Martin, Security Technologist bei Micro Focus, beleuchtet dieses Thema genauer.
„Backdoors“ sind die Regel
Das Testen von Hardware und Debuggen von Software ist heute nicht ganz trivial. Wie testet man Millionen Code-Zeilen oder Milliarden Transistoren? Je komplexer die Technologie wird, desto kreativere Ansätze sind nötig. Kryptographische Systeme bergen dabei oft eine zusätzliche Herausforderung. Denn letztlich geht es bei vielen Testing-Verfahren darum, zu überprüfen, ob das System den zum Input passenden Output liefert. Mit bekannten Input-Output-Paaren lassen sich auch kryptographische Verfahren zuverlässig testen. Solche Input-Output-Paare nennen sich Test-Vektoren und werden in der Regel durch den Anbieter des Verfahrens bereitgestellt.
Wer ein System aber mit Zufallswerten füttern will, für den stellt Kryptographie oft ein nur schwer zu überwindendes Hindernis dar. Für diesen Zweck bauen die Hersteller von Hardware mit kryptographischer Funktionalität in ihre Geräte Möglichkeiten ein, den integrierten Zufallszahlengenerator zu umgehen. Solche „Backdoors“ sind überraschend weit verbreitet und waren zumindest früher meist nicht dokumentiert. Bereits in den 1990er Jahren gab es in der legendären Entwickler-Zeitschrift „Dr. Dobb’s Journal“ eine Sektion, in der einige dieser undokumentierten Features beschrieben wurden. Mittlerweile ist die Geheimniskrämerei jedoch schwieriger geworden, vor allem durch das Internet. Zum Beispiel listet die Wikipedia-Seite für x86-Instructions viele undokumentierte Features auf. Und dennoch gibt es immer wieder spektakuläre Fälle, teilweise mit konkreter Bedeutung für die IT-Sicherheit.
Beispiel Rosenbridge
Auf der Konferenz Black Hat USA sorgte der Security-Spezialist Christopher Domas 2018 für einen handfesten Skandal. Er macht eine Backdoor in verschiedenen x86-Prozessoren bekannt – die Rosenbridge-Backdoor. Sie macht es möglich, von der niedrigsten Privilegierungsstufe des Prozessors (Ring 3) auf die höchste (Ring 0) zu wechseln. Auf Ring 3 laufen Anwendungsprogramme. Sie genießen dort keinerlei Privilegien – was sie davon abhält, auf den Code oder die Daten anderer Anwendungen zuzugreifen. Ring 0 ist hingegen für das Betriebssystem selbst reserviert, das die Ressourcen verwaltet, auf die alle laufenden Prozesse zugreifen können.
Wenn Software auf Ring 0 läuft, kann sie potenziell jeden Sicherheitsmechanismus eines anderen Prozesses aushebeln. Setzt der Prozess beispielsweise ein Passwort oder einen kryptographischen Schlüssel ein, kann die Software diese Information etwa aus dem Arbeitsspeicher auslesen. Auch ist es ihr ohne weiteres möglich, sich Root-Berechtigungen zu erteilen. Die Backdoor ist auf den meistens betroffenen Prozessoren zwar deaktiviert. Mit Ring-0-Privilegien lässt sie sich jedoch anschalten. Und einige Systeme wurden gar mit aktivierter Backdoor ausgeliefert – in der Regel sicherlich ohne Wissen der Nutzer.
Die Rechteeskalation ist möglich, weil in den betroffenen Chips ein Coprozessor verbaut ist, der das undokumentierte Feature ermöglicht. Es handelt sich um die relativ alte Baureihe Via C3, die in industriellen Automatisierungssystemen, Point-of-Sale-Systemen, Geldautomaten, HealthTech-Geräten und verschiedenen Desktop-PCs sowie Laptops zum Einsatz kommt. Zwar weist das Datasheet des Chips auf das Feature hin. Es betont aber auch: „Dieser alternative Befehlssatz ist für das Testen, Debuggen und die Verwendung spezieller Anwendungen vorgesehen. Dementsprechend ist er nicht für den allgemeinen Gebrauch dokumentiert.“
Wege aus dem Dilemma
Wie bereits gesagt, lässt sich nur mühsam sicherstellen, dass ein Verschlüsselungsmechanismus richtig implementiert wurde. Der Output von kryptographischen Algorithmen wirkt oft wie eine Ansammlung von hunderten oder tausenden zufälliger Bits. Niemals liefern sie etwas wie „Dieser String“, sondern in der Regal etwas wie "0x7649abac8119b246cee98e9b12e91-97d8964e0b149c10b7b682e6e39aaeb731c". Den zugrundeliegenden Code zu debuggen, ist deshalb nicht ganz einfach.
Für Software-Entwickler gibt es jedoch einen einfachen Ausweg: Schreiben Sie niemals ihre eigene kryptographische Software! Zwar mögen Sie im Rahmen ihres Studiums gelernt haben, wie entsprechende Algorithmen funktionieren und weshalb sie sicher sind. Aber hoffentlich hat Ihnen der Dozent auch gesagt, dass Eigenentwicklungen in diesem Bereich selten sinnvoll sind. Denn erstens handelt es sich um eine äußerst komplizierte Angelegenheit, bei der jede Nachlässigkeit bedeuten kann, dass der Algorithmus in der Praxis keinen Schutz bietet. Und zweitens stehen zahlreiche Bibliotheken kostengünstig oder gar kostenlos zur Verfügung, die nach höchsten Standards validiert sind.
Alle anderen sollten zumindest im Hinterkopf behalten, dass Hardware, die kryptographische Funktionen implementiert, mit einer entsprechenden Backdoor versehen sein könnte. Auf die IT-Sicherheit hat das nicht zwangsläufig Auswirkungen, ausschließen lässt sich jedoch nichts. Dass die relativ alten Chips der Baureihe Via C3 in modernen Unternehmen noch im Einsatz sind, ist zum Beispiel relativ unwahrscheinlich. Aber es lohnt sich auf jeden Fall, auch bei anderer Hardware genauer hinzuschauen.
Micro Focus ist ein führender, weltweit agierender Anbieter von Unternehmens-Software, der sich auf einzigartige Weise positioniert hat, um Kunden bei der Ausweitung vorhandener Investitionen und der gleichzeitigen Einführung neuer Technologien in einer Welt der Hybrid IT zu unterstützen. Micro Focus stellt seinen Kunden ein erstklassiges Portfolio an skalierbaren Unternehmenslösungen mit integrierten Analysen zur Verfügung und sorgt damit für kundenzentrierte Innovationen in den Bereichen Enterprise DevOps, Hybrid IT Management, Security, Risk and Governance sowie Predictive Analytics. Weitere Informationen erhalten Sie auf www.microfocus.com.