Überprüfen der Signatur: Unterschied zwischen den Versionen
Echse (Diskussion | Beiträge) (→Download der Hashsummen und Signaturen: Anpassung für Rampones aktuelle inline binary sig) |
K (Bugfix: detached signature) |
||
Zeile 41: | Zeile 41: | ||
prüft man dann einfach die Signatur mit | prüft man dann einfach die Signatur mit | ||
$ gpg --verify SHA256SUMS.sign | $ gpg --verify SHA256SUMS.sign SHA256SUMS | ||
gpg: Signature made Wed 27 Aug 2014 10:40:01 PM CEST using RSA key ID FA27C6E4 | 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: Good signature from "Freifunk-KBU Release Signing Key (Used by jenkins.kbu.freifunk.net) <info@kbu.freifunk.net>" | ||
gpg: | gpg: Note: This key has expired! | ||
Primary key fingerprint: E3B3 AF2B 6B54 149B 9313 4EC0 E782 EAC7 FA27 C6E4 | Primary key fingerprint: E3B3 AF2B 6B54 149B 9313 4EC0 E782 EAC7 FA27 C6E4 | ||
Die Signatur ist also korrekt. | Die Signatur ist also korrekt - auch wenn der Key inzwischen nicht mehr gültig ist (FIXME: Update!). | ||
Version vom 7. November 2015, 14:53 Uhr
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.