Überprüfen der Signatur: Unterschied zwischen den Versionen

Aus Freifunk Köln, Bonn und Umgebung
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
K (Entferne ein paar Absätze, um Seite kompakter zu machen)
 
(3 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Mitmachen]]
[[Kategorie:Mitmachen]]
[[Kategorie:Signaturen]]
[[Kategorie:Signaturen]]
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.


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 heutigen Zeiten 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.


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 öffentliche GPG-Schlüssel ist auf gängigen Keyservern hinterlegt.
Wer sich mit GPG noch nicht auskennt, kann sich z.B. unter [https://www.gnupg.org www.gnupg.org] aufschlauen.


Wer sich mit GPG noch nicht auskennt, kann sich z.B. unter [https://www.gnupg.org www.gnupg.org] aufschlauen.
== Schlüssel besorgen ==


Unseren (alten) GPG-Schlüssel bekommt man z.B. unter Linux/Unix von der Kommandozeile aus so:
'''Unseren (alten) GPG-Schlüssel bekommt man z.B. unter Linux/Unix von der Kommandozeile aus so:'''
  # gpg --recv-key  '0FA27C6E4'
  # 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:
'''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: Good signature from "Freifunk-KBU Release Signing Key (Used by jenkins.kbu.freifunk.net) <info@kbu.freifunk.net>"
  gpg: Note: This key has expired!
  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


Den seit 2015 gültigen GPG-Schlüssel für Signaturen aus 2015 erhält man entsprechend:
'''Den seit 2015 gültigen GPG-Schlüssel für Signaturen aus 2015 erhält man mit:'''
  # gpg --recv-key 0xFEE7BD18
  # gpg --recv-key 0xFEE7BD18


Künftige Releases werden also mit diesem Key signiert sein.
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:
'''Für die aktuellen Gluon Beta-Releases muss man [[Benutzer:Rampone|Rampone]]s GPG-Key importieren:'''
  # gpg --recv-key 0x01DE5D6C
  # 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.
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 ==
== Download der Hashsummen und Signaturen ==


Nach dem Download der beiden Dateien
Nach dem Download der beiden Dateien
Zeile 36: Zeile 36:
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: WARNING: This key is not certified with a trusted signature!
   gpg: Note: This key has expired!
  gpg:          There is no indication that the signature belongs to the owner.
   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!).  


 
Bei den Gluon Beta-Releases wird Signatur und Unterschrift in einer Datei veröffentlicht:
Bei den Gluon Beta-Releases sind es die beiden Dateien
<!--* [https://213.165.82.133/images/factory/SHA512SUMS SHA512-Summen]-->
* [https://213.165.82.133/images/factory/SHA512SUMS SHA512-Summen]
* [https://213.165.82.133/images/factory/SHA512SUMS.sign Signaturen]
* [https://213.165.82.133/images/factory/SHA512SUMS.sign Signaturen]
und man prüft man analog zu oben:
Diese wird mittels
 
   $ gpg <SHA512SUMS.sign > SHA512SUMS
   $ gpg --verify SHA512SUMS.sign
überprüft und in ein lesbares Format übersetzt.
 


Den Fingerprint prüft man am besten einmal offline bei unseren [http://kbu.freifunk.net/wiki/index.php?title=Hauptseite regelmäßigen Treffen].
Den Fingerprint des Schlüssels prüft man am besten einmal offline bei unseren [http://kbu.freifunk.net/wiki/index.php?title=Hauptseite regelmäßigen Treffen].


Dann kann man selbst den Hash-Wert der heruntergeladenen Firmware (hier am Beispiel des Routers TL WR841n mit der Hardware-Version 9) berechnen
==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
   $ sha256sum ff-kbu-tl-wr841n-v9-1.2.1b.bin

Aktuelle Version vom 25. Januar 2019, 08:46 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.