Backdoor

Sergei Skorobogatov von der Uni Cambridge kündigt sein neues Paper an, das jedoch erst im September veröffentlicht werden wird (PDF ):
“Breakthrough silicon scanning discovers backdoor in military chip” will appear at CHES2012 in September. It will expose some serious security issues in the devices which are supposed to be unbreakable.
Es geht um Krypto, die in Hardware implementiert ist, und man hat Chips untersucht, die in aktueller militärischer Hardware eingesetzt werden, indem man Reverse Engineering-Techniken auf diese Hardware angewendet hat und das so gewonnenene Design gegen die Spezifikation verglichen hat. Die anderen Artikel auf der Seite legen nahe, daß es sich um ein FPGA handelt, bei dem man festgestellt hat, daß es neben dem durch den legitimen Benutzer verwendeten Key auch noch einen zweiten festen Key besitzt, der verwendet werden kann, den Chip aufzuschließen oder herunterzufahren, auch wenn er durch den legitimen Benutzerschlüssel versiegelt worden ist.
Die weitere Berichterstattung legt nahe, daß das Teil in so ziemlich jeder militärischen Hardware und kritischen Infrastruktur verbaut worden ist, die sich finden läßt und daß man jetzt erst mal am Schwitzen ist, weil man dieser Hardware (und auch aller anderen importierten Hardware) so gar nicht mehr trauen mag. Andererseits sind die USA etwa durch die Deindustriealisierung zum Teil gar nicht mehr in der Lage, alle für solche Systeme notwendigen Komponenten selbst zu fertigen - eine unangenehme Situation, wenn man Kriege führen möchte.
Die gefundene Backdoor erscheint mir jedoch ziemlich primitiv und wenig entwickelt, und sie wirft für den Hersteller der Hardware oder - falls verantwortlich - seine Regierung ebenso viele Probleme auf wie für die betroffenen.
Es ist ja klar, daß man als Hersteller von solcher Hardware in den Exportversionen seiner Milspec Hardware irgendwelche Kontrollmöglichkeiten haben möchte, falls das Zeugs einmal gegen einen selbst gerichtet wird. Aber nicht nur will man, daß die Backdoor schwer entdeckbar bleibt, solange sie nicht verwendet wird. Sondern eigentlich möchte man, daß sie selbst dann glaubwürdig geleugnet werden kann, wenn sie eingesetzt worden ist und der Einsatz danach bekannt wird (plausible denial ). Die ideale Backdoor sieht also aus wie ein Programmierfehler (“Bugdoor”) oder ein dummes Versehen - ein vergessener Permission-Check, verdrehte Parameter oder vertauschte Logik.
Der zweite Code im FPGA erfüllt diese Bedingung nicht. Er wäre lediglich mit demselben Argument zu ‘rechtfertigen’, mit dem auch Default-Systempaßworte oder einheitliche Wartungszugänge in DSL-Router und andere Hardware eingebaut wird (‘Unser Kundendienst muß in der Lage sein, wieder an ihre Daten zu kommen, wenn Sie die Hardware zerkonfiguriert haben.’) Wir reden hier allerdings von Milspec-Hardware, da hat man dieses Verlangen offiziell eher nicht.
Es ist auch ein Risiko, daß eine solche Hintertür durch Dritte entdeckt und kompromittiert wird. Es ist blöd, wenn die Nutzung dieser Hintertür auf allen betroffenen Systemen einfach und auf dieselbe Weise möglich ist. Am Besten wäre es, wenn die Funktion der Hintertür an eine Variable gekoppelt ist, die instanz-spezifisch ist, aber dennoch von außen erratbar wäre.
Die oben erwähnten FPGA haben diese Eigenschaft nicht - es scheint mir nach dem Lesen der wenigen gesicherten Informationen so zu sein, als könne man alle Instanzen dieses Chips mit demselben festen Zweitschlüssel öffnen. Damit hat man für sich und seinen Gegner ein riesiges Managementproblem geschaffen, weil nun dessen Infrastruktur durch jeden Dritten und seinen Hund angreifbar ist - es ist ja ausreichend, daß man jetzt weiß, daß es so eine Hintertür gibt. Sich dann den Schlüssel selber zu beschaffen ist eine Aufgabe mit überschaubaren Kosten und Aufwand für einen APT .
Alles in allem ist das keine gute Hintertür, weil sie alleine schon durch diesen einen vagen Artikel umfassend kompromittiert worden ist und zu einem unkalkulierbaren Risiko für den Angreifer und den Verteidiger wird, weil sie nun jede Menge dritte Spieler aktiviert.