[[Vorlage(getestet, general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(1)]] Wenn man eine ISO-Datei von Ubuntu [:Downloads:heruntergeladen] hat, kann man die Korrektheit des Downloads mit Hilfe einer [:Hashfunktionen/#Pruefsummen:Prüfsumme] überprüfen, wobei im weiteren Verlauf dieses Artikels die SHA256 Prüfsumme genutzt wird. Über die Prüfsumme wird festgestellt, ob z.B. Übertragungsfehler aufgetreten sind ("bit flip"). Allerdings garantiert die Prüfsumme alleine nicht, dass es sich um die original ISO-Datei von Ubuntu handelt. Hätte sich z.B. jemand Zugang zum Download-Server verschafft und die ISO-Dateien manipuliert, so wäre es ein Leichtes auch die Prüfsumme entsprechend anzupassen, so dass diese zur manipulierten ISO-Datei passt. Außerdem sind alle ISO- und Prüfsummen-Downloads unverschlüsselt, und somit anfällig für [wikipedia:Man-in-the-Middle-Angriff:Man-in-the-Middle-Angriffe]. Für diesen Zweck bietet Ubuntu seinen offiziellen [:GnuPG:GPG]-Key zum Herunterladen an. Dieser kann anhand seines [:GnuPG/#Fingerprint-anzeigen:Fingerprints] über eine HTTPS-verschlüsselte Webseite geprüft werden. Mit diesem sicheren GPG-Key wird dann die Prüfsummendatei verfiziert. Die Kette zum Überprüfen der ISO-Datei sieht wie folgt aus: 1. Ubuntu-Schlüssel vom Ubuntu-Schlüsselserver herunterladen 1. Schlüssel anhand des Fingerprints prüfen 1. Signatur der Prüfsummendatei verifizieren 1. ISO-Datei prüfen = Voraussetzungen = Es wird das Kommandozeilenprogramm '''gpg''' benötigt, welches aber bei Ubuntu standardmäßig bereits installiert ist. Sollte das Programm fehlen, ist die Installation auf der Seite [:GnuPG:] beschrieben. Dort findet man auch weitere Informationen rund um das Programm und GPG. = Vorgehen = Nach dem Herunterladen der ISO-Datei lädt man zusätzlich die beiden Dateien '''SHA256SUMS''' und '''SHA256SUMS.gpg''' herunter. Die Dateien befinden sich auf dem Download-Server im gleichen Verzeichnis wie die ISO-Datei, für Ubuntu 16.04 auf `http://releases.ubuntu.com/16.04/`. Die Dateien müssen im gleichen Verzeichnis gespeichert werden wie die ISO-Datei. Anschließend lädt man die zwei GPG-Schlüssel vom öffentlichen Ubuntu-Keyserver herunter und fügt sie in seinen Schlüsselbund hinzu[1]: {{{#!vorlage Befehl gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys "8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092" "C598 6B4F 1257 FFA8 6632 CBA7 4618 1433 FBB7 5451" }}} {{{#!vorlage Hinweis Der [wikipedia_en:Key server (cryptographic):Keyserver] verwendet das HKP-Protokoll auf TCP-Port 11371. Sollte der Befehl nicht funktionieren, ist eventuell dieser Port nicht auf der Firewall [:Offene_Ports:freigeschaltet] (s. [#Problembehebung Problembehebung weiter unten]). Bei neueren GnuPG-Versionen kann der Parameter "--keyserver hkp://keyserver.ubuntu.com" allerdings auch weggelassen werden. Es wird dann der Standard-Keyserver über das HTTPS-Protokoll verwendet, welches auf den meisten Firewalls freigeschaltet sein dürfte. Nähere Informationen darüber stehen im Wiki-Artikel [:GnuPG/Web_of_Trust/#Keyserver:Web of Trust] inkl. möglicher [:GnuPG/Web_of_Trust/#Problembehebung:Problembehebungen]. }}} Im nächsten Schritt muss der Fingerabdruck der Schlüssel geprüft werden: {{{#!vorlage Befehl gpg --list-keys --with-fingerprint 0xFBB75451 0xEFE21092 }}} Ist alles korrekt, bekommt man für jeden Schlüssel eine Ausgabe wie im folgenden gezeigt: {{{pub 4096R/EFE21092 2012-05-11 Schl.-Fingerabdruck = 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092 uid Ubuntu CD Image Automatic Signing Key (2012) pub 1024D/FBB75451 2004-12-30 Schl.-Fingerabdruck = C598 6B4F 1257 FFA8 6632 CBA7 4618 1433 FBB7 5451 uid }}} Wichtig ist dass der Wert für die Fingerabdrücke genau übereinstimmt. Jetzt kann die Signatur der Prüfsummendatei verifizieren werden. {{{#!vorlage Hinweis Da es sich bei '''SHA256SUMS.gpg''' und '''SHA256SUMS''' um Dateien handelt, muss der Befehl `gpg` in dem Verzeichnis ausgeführt werden, in dem die beiden Dateien liegen. Standardmäßig liegen heruntergeladene Dateien im Verzeichnis '''Downloads''', daher ist noch der Wechsel dahin mittels [:cd:] notwendig. Mit [:ls:] prüfen, ob die Dateien '''SHA256SUMS.gpg''' und '''SHA256SUMS''' zu sehen sind. {{{#!vorlage Befehl cd ~/Downloads ls \}}} }}} {{{#!vorlage Befehl gpg --verify SHA256SUMS.gpg SHA256SUMS }}} {{{gpg: Unterschrift vom Do 03 Aug 2017 15:56:51 CEST mittels DSA-Schlüssel ID FBB75451 gpg: Korrekte Unterschrift von »Ubuntu CD Image Automatic Signing Key « gpg: WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur! gpg: Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen Besitzer gehört. Haupt-Fingerabdruck = C598 6B4F 1257 FFA8 6632 CBA7 4618 1433 FBB7 5451 gpg: Unterschrift vom Do 03 Aug 2017 15:56:51 CEST mittels RSA-Schlüssel ID EFE21092 gpg: Korrekte Unterschrift von »Ubuntu CD Image Automatic Signing Key (2012) « gpg: WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur! gpg: Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen Besitzer gehört. Haupt-Fingerabdruck = 8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092 }}} Wichtig sind hier die beiden Zeilen "gpg: Korrekte Unterschrift von ... ", welche die Integrität der Datei '''SHA256SUMS''' bestätigen. Im letzten Schritt wird dann die Prüfsumme der heruntergeladenen ISO-Datei mit der Prüfsummendatei verglichen: {{{#!vorlage Befehl sha256sum -c SHA256SUMS 2>&1 | grep OK }}} Die Ausgabe für z.B. die ISO-Datei '''ubuntu-16.04.3-desktop-amd64.iso''' sieht so aus: {{{ ubuntu-16.04.3-desktop-amd64.iso: OK }}} Der Ausführung des Befehls kann je nach Rechnergeschwindigkeit ein wenig dauern. Wichtig ist die Ausgabe "... OK". Erscheint diese nicht, stimmt die Prüfsumme der geprüften ISO-Datei nicht, so dass entweder ein Download-Fehler oder eine manipulierte ISO-Datei vorliegt. = Problembehebung = == Download des GPG-Keys mit Webbrowser == Der Download des GPG-Keys von Ubuntu ist nicht ganz unproblematisch. GPG verwendet dazu das HKP-Protokoll des Keyservers über TCP-Port 11371. Ist dieser Port auf einer Firewall nicht freigeschaltet, funktioniert der Download nicht. Alternativ kann man daher die Keys auch über einen Webbrowser herunterladen. Dazu besucht man folgende Adresse: [https://keyserver.ubuntu.com/] {en} Im Feld ''"Search String:"'' gibt man folgendes ein: {{{ Ubuntu CD Image Automatic Signing Key }}} und klickt auf die Schaltfläche ''"Search!"''. Es wird daraufhin eine Seite mit den beiden Ubuntu-Schlüsseln angezeigt. Nach einem Klick auf die jeweilige Key-ID wird der entsprechende Schlüssel angezeigt: {{{ -----BEGIN PGP PUBLIC KEY BLOCK----- Version: SKS 1.1.6 Comment: Hostname: keyserver.ubuntu.com ... -----END PGP PUBLIC KEY BLOCK----- }}} Bei beiden Schlüsseln muss der gesamte Block (inkl. der Zeilen "-----BEGIN ...-----" und "-----END ...-----") in eine eigene Datei kopiert werden, z.B. '''ubuntu.key''' und '''ubuntu-2012.key''' Anschließend importiert man diese beiden Dateien mit GPG[1]: {{{#!vorlage Befehl gpg --import ubuntu-2012.key }}} {{{ gpg: key FBB75451: public key "Ubuntu CD Image Automatic Signing Key (2012) " imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) gpg: no ultimately trusted keys found }}} {{{#!vorlage Befehl gpg --import ubuntu.key }}} {{{ gpg: key EFE21092: public key "Ubuntu CD Image Automatic Signing Key " imported gpg: Total number processed: 1 gpg: imported: 1 gpg: no ultimately trusted keys found }}} = Links = * [:Downloads:] - Ubuntu-Downloads * [:Hashfunktionen:] - Grundlagen zur Verwendung von Hashalgorithmen * [https://tutorials.ubuntu.com/tutorial/tutorial-how-to-verify-ubuntu How to verify your Ubuntu download] {en} - Tutorial auf Ubuntu-Webseite * [https://keyserver.ubuntu.com] {en} - Öffentlicher Keyserver von Ubuntu #tag: Installation, Sicherheit, Ubuntu