Signify statt GnuPG für LibreSSL-Veröffentlichungen
Zusammenfassung
Das OpenBSD-Team signierte 2014 die Veröffentlichungen seines neuen OpenSSL-Ablegers LibreSSL nicht mit GnuPG, sondern mit dem selbst entwickelten Werkzeug signify. Die Begründung: signify umfasse nur rund 1.300 Zeilen C-Code, und für zwei schlecht geschriebene Krypto-Codebasen fehle die Energie. Felix von Leitner portierte signify daraufhin nach Linux und wies auf eine Schwäche hin: Der öffentliche Schlüssel lag auf demselben Server wie die signierten Dateien.
Was signify ist
signify erstellt und prüft digitale Signaturen mit dem modernen Verfahren Ed25519. Es kann bewusst nur das: Schlüssel erzeugen, signieren, prüfen. GnuPG dagegen bietet Verschlüsselung, Schlüsselverwaltung, Vertrauensnetz und viele Formate, ist entsprechend groß und hatte immer wieder Sicherheitsprobleme. Für das reine Prüfen von Softwarepaketen genügt ein kleines Werkzeug, das sich vollständig überblicken lässt.
LibreSSL selbst war im April 2014 nach der Lücke Heartbleed entstanden, als das OpenBSD-Team begann, OpenSSL radikal aufzuräumen.
Die Schwachstelle der Schlüsselverteilung
Eine Signatur nützt nur, wenn man den öffentlichen Schlüssel auf sicherem Weg bekommt. Liegt er neben dem Tarball, kann ein Angreifer, der den Server kontrolliert, beides austauschen. OpenBSD löst das für das eigene System, indem jede Version die Schlüssel für die nächste mitbringt. Für Nutzer anderer Systeme bleibt die Frage, woher sie den Schlüssel vertrauenswürdig beziehen.
Ideen
- Ein kleines Werkzeug mit genau einer Aufgabe lässt sich vollständig prüfen.
- Ed25519 ermöglicht kurze Schlüssel und schnelle Signaturen.
- Jede Version kann die Schlüssel für die nächste Version mitliefern.
Einsichten
- Eine Signatur ist nur so viel wert wie der Weg, auf dem der öffentliche Schlüssel verteilt wird.
- Weniger Code bedeutet weniger Angriffsfläche, auch bei Sicherheitswerkzeugen.
Fakten
- signify umfasste laut OpenBSD-Team rund 1.300 Zeilen C-Code.
- Felix von Leitners Linux-Port kam mit Hilfscode auf knapp 8.000 Zeilen.
- LibreSSL entstand 2014 nach Heartbleed als Abspaltung von OpenSSL.
Referenzen
Bemerkungen
- Mit minisign gibt es ein verwandtes Werkzeug, das auf vielen Systemen verfügbar ist.
Empfehlungen
- Prüfe Signaturen von Downloads und beziehe den öffentlichen Schlüssel über einen zweiten, unabhängigen Weg.
- Bevorzuge für einfache Aufgaben kleine, überschaubare Sicherheitswerkzeuge.
Links zur Originalquelle und zum Webarchiv öffnen einen neuen Tab.