Codesigning mit x509 sicherer als mit PGP

Die Bullshit-Meldung der Woche

Die Woche ist erst wenige Stunden alt, aber ich wage zu behaupten, dass ich guten Gewissens diese Slashdot-Meldung als Bullshit der Woche bezeichnen kann. Es sind auf PGP-Keyservern offenbar falsche Schlüssel für Entwickler an Tor und Bitcoin aufgetaucht. Die Schlüssel werden von den Entwicklern zum Signieren ihrer Code-Releases genutzt. Der Artikel spekuliert, daß Nachrichtendienste versuchen könnten, auf diese Weise manipulierten Code unter die Leute zu bringen – und daß ein Wechsel von PGP auf x509 eine probate Gegenmaßnahme wäre. Was für ein unglaublicher Bullshit!

Mit dem Signieren des Codes werden zwei Dinge bezweckt: Zum einen wird bestätigt, daß der Code tatsächlich vom Autor stammt (bzw. der Autor den Codestand für integer hält), zum anderen führen Veränderungen des Codepakets dazu, daß die Signatur ungültig wird. Das daraus folgende Problem ist, den verwendeten Schlüssel einwandfrei dem Autor zuzuordnen. PGP folgt hierbei dem Web-of-Trust-Ansatz, wohingegen x509 eine Hierarchie von Zertifizierungsstellen nutzt.

Gerade wenn es aber um die Angst vor irgendwelchen Regierungsstellen geht, eignen sich zentralistische, hierarchische Strukturen wie bei x509 besonders gut, unbemerkt Manipulationen vorzunehmen: Es genügt eben, an einer einzigen Stelle auf irgendeine Weise – angefangen mit kompromittierter Infrastruktur bei der CA über bestechliche Mitarbeiter bis hin zu einer richterlichen Anordnung – einen Zweitschlüssel zu generieren. Das Web of Trust ist (bei korrekter Benutzung) hier bedeutend resistenter gegen Änderungen. Gerade aus Sorge vor Manipulation durch Regierungsorgane sich in die Hände eines einzelnen „starken Mannes“ zu begeben ist ausgesprochener Blödsinn.

Ebenso falsch ist die Behauptung, daß es zwar „plausibel scheint, es dafür aber bis dato keinerlei Beweise“ für eine kompromittierte CA gäbe. Hier seien einige Beispiele genannt, die Liste ist sicher nicht vollständig:

Großartig ist die Naivität des abschließenden Arguments des Artikels: Falsche Zertifikate könnten bei einer CA ja widerrufen werden, wohingegen man bei PGP außer Blogposts nichts machen könne. Das ist im Prinzip richtig, läßt aber den Umkehrschluß außer acht: Eine CA kann auch das (ehemals) legitime Zertifikat eines Nutzers widerrufen und so die Fälschung perfekt machen.

Vertrauen in Krypto-Schlüssel ist ein kompliziertes Problem und kann nicht axiomatisch hergestellt werden. Sich aber aus diesem Grund in die Hände zentralisierter Stellen zu begeben ist schlicht Bullshit.