Überprüfen der Signatur

Aus Freifunk Köln, Bonn und Umgebung
Wechseln zu: Navigation, Suche


Damit sichergestellt ist, dass die heruntergeladene Freifunk-Firmware auch wirklich die ist, welche wir erstellt und zum Download angeboten haben, sollten unbedingt die Hash-Werte (d.h. ein eindeutiger Fingerabdruck) der Firmware-Dateien und die korrekte Signatur der von uns bereitgestellten Hash-Wert-Datei geprüft werden. Dieses ist vermutlich der schwierigste Teil der Installation und wird von Einzelnen gelegentlich übergangen, getreu der Kölschen Lebensweisheit "Et hät noch immer joot jejange". Darauf sollte man sich aber in der heutigen Zeit nicht verlassen.

Die Datei mit den Hash-Werten ist mit unserem GPG-Schlüssel signiert. Der heimliche Austausch einer Freifunk-Firmware und des entsprechenden Hash-Wertes ist also nicht möglich, da die Signatur nur bei unveränderter Hash-Wert-Datei gültig bleibt. Unser öffentlicher GPG-Schlüssel ist auf den gängigen Keyservern wie pgp.mit.edu und subkeys.pgp.net hinterlegt.

Wer sich mit GPG noch nicht auskennt, kann sich z.B. unter www.gnupg.org aufschlauen.


Schlüssel besorgen

Unseren (alten) GPG-Schlüssel bekommt man z.B. unter Linux/Unix von der Kommandozeile aus so:

# gpg --recv-key  '0FA27C6E4'

Achtung: Der alte Schlüssel ist nur noch bis Ende 2014 gültig gewesen, so dass die Überprüfung der Signatur aus 2014 zu einer Warnung führt:

gpg: Good signature from "Freifunk-KBU Release Signing Key (Used by jenkins.kbu.freifunk.net) <info@kbu.freifunk.net>"
gpg: Note: This key has expired!
Primary key fingerprint: E3B3 AF2B 6B54 149B 9313  4EC0 E782 EAC7 FA27 C6E4

Den seit 2015 gültigen GPG-Schlüssel für Signaturen aus 2015 erhält man mit:

# gpg --recv-key 0xFEE7BD18

Künftige Releases werden also mit diesem Key signiert sein.

Achtung: Nur zu überprüfen, ob die Key-IDs (bspw. 0x01DE5D6C) übereinstimmen reicht nicht! Diese können sehr leicht gefälscht werden.


Für die aktuellen Gluon Beta-Releases muss man Rampones GPG-Key importieren:

# gpg --recv-key 0x01DE5D6C

Dieser Key hat den Fingerprint 456A 3DB8 7D34 F3C5 2B2C 3FA8 7585 3500 01DE 5D6C. Am besten sollte man überprüfen, dass dieser mit dem in der Konsole angegebenen Schlüssel übereinstimmt und ob er in der Geschichte dieses Wiki-Eintrags geändert/manipuliert wurde. Weiterhin kann man überprüfen, dass er dem Schlüssel entspricht, den man über die Keyserver bekommt, wenn man nach "rampone %$($(#@AT@$($(# gmail.com" sucht. Natürlich ohne Leer- und Sonderzeichen.

Download der Hashsummen und Signaturen

Nach dem Download der beiden Dateien

prüft man dann einfach die Signatur mit

 $ gpg --verify SHA256SUMS.sign SHA256SUMS
 gpg: Signature made Wed 27 Aug 2014 10:40:01 PM CEST using RSA key ID FA27C6E4
 gpg: Good signature from "Freifunk-KBU Release Signing Key (Used by jenkins.kbu.freifunk.net) <info@kbu.freifunk.net>"
 gpg: Note: This key has expired!
 Primary key fingerprint: E3B3 AF2B 6B54 149B 9313  4EC0 E782 EAC7 FA27 C6E4

Die Signatur ist also korrekt - auch wenn der Key inzwischen nicht mehr gültig ist (FIXME: Update!).


Bei den Gluon Beta-Releases wird Signatur und Unterschrift in einer Datei veröffentlicht:

Diese wird mittels

 $ gpg <SHA512SUMS.sign > SHA512SUMS

überprüft und in ein lesbares Format übersetzt.

Den Fingerprint des Schlüssels prüft man am besten einmal offline bei unseren regelmäßigen Treffen.

Hash prüfen

Hat man eine authentische Liste mit den Hashes wie oben beschrieben erhalten und überprüft kann man nun selbst den Hash-Wert der heruntergeladenen Firmware (hier am Beispiel des Routers TL WR841n mit der Hardware-Version 9) berechnen

 $ sha256sum ff-kbu-tl-wr841n-v9-1.2.1b.bin
 2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ff-kbu-tl-wr841n-v9-1.2.1b.bin

und mit dem Hash-Wert in der signierten und zuvor korrekt verifizierten Datei vergleichen:

 $ grep ff-kbu-tl-wr841n-v9-1.2.1b.bin SHA256SUMS
 2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ./ff-kbu-tl-wr841n-v9-1.2.1b.bin
 2a3df4ea2e10cc9697a80fa0db7cf962fca052ec5d669779ae79e0345da16b30  ./untested/barrier_breaker/ff-kbu-tl-wr841n-v9-1.2.1b.bin

Damit ist die heruntergeladenen Datei auch genau die, die wir für Freifunk erstellt und angeboten haben. Unter der Voraussetzung, dass uns niemand den privaten GPG-Schlüssel entwendet und das Passwort zur Sicherung des privaten Schlüssels geknackt hat. Letzteres ist sehr sehr unwahrscheinlich.