Wie verifiziere ich eine PGP-Signatur?

How Do I Verify Pgp Signature

PGP (Pretty Good Privacy) ist ein auf öffentlichen Schlüsseln basierendes Kryptographieprogramm. PGP ergänzt symmetrische Schlüssel mit asymmetrischen Schlüsselalgorithmen, was diese Software zu einem hybriden kryptografischen System macht, das oft als . bezeichnet wird hybrides Kryptosystem .

PGP wird nicht nur verwendet, um Informationen vor Cyber-Bedrohungen zu schützen, sondern auch, um die Dateiintegrität zu überprüfen.



Dieses Tutorial erklärt leicht, wie PGP funktioniert und So überprüfen Sie PGP-Signaturen .



So funktioniert PGP

Das Bild unten zeigt einen öffentlichen PGP-Schlüssel. Dieser öffentliche PGP-Schlüssel kann nur mit einem bestimmten privaten PGP-Schlüssel entschlüsselt werden. Der Herausgeber des nachstehenden öffentlichen Schlüssels hat auch einen privaten PGP-Schlüssel ausgegeben, da diese im selben Prozess generiert werden. Er teilt nur den öffentlichen Schlüssel.
Wenn Sie seinen öffentlichen Schlüssel nehmen, um ihm eine Nachricht zu verschlüsseln, kann er die Nachricht mit seinem privaten Schlüssel entschlüsseln. Nur sein privater Schlüssel kann die Nachricht entschlüsseln, die Sie mit seinem öffentlichen Schlüssel verschlüsselt haben.



Die Informationen werden mit dem öffentlichen Schlüssel verschlüsselt und mit dem privaten Schlüssel entschlüsselt. Das nennt man asymmetrische Verschlüsselung .

Selbst wenn es einem Angreifer also gelingt, die Nachricht ohne den privaten Schlüssel abzufangen, kann er den Nachrichteninhalt nicht sehen.



Der Vorteil der asymmetrischen Verschlüsselung ist der einfache Austausch von Schlüsseln. Der Nachteil ist jedoch, dass große Datenmengen nicht verschlüsselt werden können, weshalb PGP beide implementiert.

Die symmetrische Verschlüsselung wird angewendet, wenn der öffentliche Schlüssel zum Verschlüsseln der geschützten Daten verwendet wird. Mit dem öffentlichen Schlüssel macht der Absender zwei Dinge: Zuerst erzeugt er die symmetrische Verschlüsselung zum Schutz der Daten und wendet dann die asymmetrische Verschlüsselung an, die nicht die Daten selbst verschlüsselt, sondern den symmetrischen Schlüssel, der die Daten schützt.

Aus technischer Sicht werden die Daten vor der Anwendung des symmetrischen Schlüssels auch komprimiert, bevor sie mit dem symmetrischen Schlüssel und dem öffentlichen Schlüssel verschlüsselt werden. Der folgende Diagrammfluss zeigt den gesamten Prozess:

PGP-Signaturen

PGP wird auch verwendet, um die Integrität von Paketen zu überprüfen. Dies wird durch eine digitale Signatur erreicht, die mit PGP erfolgen kann.

Zunächst generiert PGP einen Hash, der mit dem privaten Schlüssel verschlüsselt wird. Sowohl der private Schlüssel als auch der Hash können mit dem öffentlichen Schlüssel entschlüsselt werden.

PGP erstellt beispielsweise eine digitale Signatur für ein ISO-Image mithilfe von DSA- oder RSA-Algorithmen. In diesem Fall wird der private Schlüssel entgegen der zuvor beschriebenen Vorgehensweise an die Software oder das ISO-Image angehängt. Der öffentliche Schlüssel wird ebenfalls geteilt.

Benutzer verwenden den öffentlichen Schlüssel, um die an die freigegebene Software angehängte Signatur zu überprüfen.

Der folgende Diagrammfluss zeigt, wie der private Schlüssel und Hash an die Software angehängt wird und wie der Benutzer die Software mit dem angehängten Hash und privaten Schlüssel zusammen mit dem öffentlichen Schlüssel nimmt, um die Signatur zu überprüfen:

Wie verifiziere ich eine PGP-Signatur?

Das erste Beispiel zeigt, wie die Linux-Kernel-Signatur überprüft wird. Um es auszuprobieren, greifen Sie zu https://kernel.org und laden Sie eine Kernel-Version und ihre PGP-Datei herunter. Für dieses Beispiel werde ich Dateien herunterladen linux-5.12.7.tar.xz und linux-5.12.7.tar.sign .

Das erste Beispiel zeigt, wie Sie die Signatur mit einem einzigen Befehl überprüfen. Laut der Manpage wird diese Optionskombination in zukünftigen Versionen veraltet sein. Es ist jedoch immer noch weit verbreitet, und während die spezifische Kombination veraltet ist, bleiben die Optionen bestehen.

Die erste Möglichkeit –Schlüsselserver-Optionen ermöglicht das Definieren von Optionen für den Schlüsselserver, auf dem öffentliche Schlüssel gespeichert werden. Grundsätzlich ermöglicht dies die Implementierung von Abrufoptionen für öffentliche Schlüssel.

Die –Schlüsselserver-Optionen ist kombiniert mit dem –automatische Schlüsselabfrage Option zum automatischen Abrufen öffentlicher Schlüssel von einem Schlüsselserver bei der Überprüfung von Signaturen.

Um die öffentlichen Schlüssel zu finden, liest dieser Befehl die Signatur auf der Suche nach einem definierten bevorzugten Schlüsselserver oder einer Unterzeichner-ID durch einen Suchprozess mithilfe des Web-Schlüsselverzeichnisses.

gpg--keyserver-optionsautomatischer Schlüsselabruf--verifizierenlinux-5.12.7.tar.sign

Wie Sie sehen, ist die Signatur gut, aber es gibt eine Warnmeldung, die besagt, dass gpg nicht bestätigen kann, dass die Signatur dem Eigentümer gehört. Jeder kann als Greg Krohan-Hartman eine öffentliche Unterschrift leisten. Sie wissen, dass die Signatur legitim ist, weil Sie dem Server vertrauen, von dem Sie sie heruntergeladen haben. In diesem Fall wird es in der von kernel.org heruntergeladenen .sign-Datei angegeben.
Diese Warnung ist immer vorhanden und Sie können sie vermeiden, indem Sie mit der Option Signaturen zu einer Liste mit vertrauenswürdigen Signaturen hinzufügen –Schlüsselvertrauen bearbeiten . Die Wahrheit ist, dass kein Benutzer dies tut und die Gpg-Community die Entfernung der Warnung beantragt hat.

Überprüfung von SHA256SUMS.gpg

Im folgenden Beispiel werde ich die Integrität eines alten Kali Linux-Images überprüfen, das ich in meiner Box gefunden habe. Zu diesem Zweck habe ich die Dateien SHA256SUMS.gpg und SHA256SUMS heruntergeladen, die zum gleichen ISO-Image gehören.

Nachdem Sie ein ISO-Image, SHA256SUMS.gpg und SHA256SUMS heruntergeladen haben, müssen Sie die öffentlichen Schlüssel abrufen. Im folgenden Beispiel hole ich die Schlüssel mit wget und gpg –importieren (Die Anweisungen zur Kali-Überprüfung verweisen auf diesen Schlüsselserver).

Dann überprüfe ich die Dateiintegrität, indem ich gpg mit dem aufrufe -verifizieren Streit:

wget -Q -ODER- https://archiv.kali.org/Archiv-Schlüssel.asc|gpg--importieren

gpg--verifizierenSHA256SUMS.gpg SHA256SUMS

Wie Sie sehen, ist die Signatur gut und die Überprüfung war erfolgreich.

Das folgende Beispiel zeigt, wie Sie einen NodeJS-Download überprüfen. Der erste Befehl gibt einen Fehler zurück, da kein öffentlicher Schlüssel vorhanden ist. Der Fehler zeigt an, dass ich nach dem Schlüssel 74F12602B6F1C4E913FAA37AD3A89613643B6201 suchen muss. Normalerweise finden Sie die Schlüssel-ID auch in der Anleitung.

Mit der Option –Schlüsselserver , kann ich den Server angeben, um nach dem Schlüssel zu suchen. Mit der Option –rev-Tasten , ich hole Schlüssel ab. Dann funktioniert die Überprüfung:

gpg--verifizierenSHASUMS256.txt.asc

Ich kopiere den Schlüssel, den ich abrufen muss, und führe dann Folgendes aus:

gpg--keyserverpool.sks-keyservers.net--recv-Tasten

74F12602B6F1C4E913FAA37AD3A89613643B6201


gpg--verifizierenSHASUMS256.txt.asc

Suche nach gpg-Schlüsseln:

Wenn das automatische Abrufen von Schlüsseln nicht funktioniert und Sie die verifizierungsspezifischen Anweisungen nicht finden können, können Sie den Schlüssel mit der Option . auf einem Schlüsselserver suchen –Suchschlüssel .

gpg--Suchschlüssel74F12602B6F1C4E913FAA37AD3A89613643B6201

Wie Sie sehen, wurde der Schlüssel gefunden. Sie können es auch abrufen, indem Sie die Nummer der Taste drücken, die Sie abrufen möchten.

Abschluss

Die Überprüfung der Integrität von Downloads kann ernsthafte Probleme verhindern oder erklären, beispielsweise wenn heruntergeladene Software nicht richtig funktioniert. Der Vorgang mit gpg ist, wie oben gezeigt, ziemlich einfach, solange der Benutzer alle erforderlichen Dateien erhält.

Das Verständnis der asymmetrischen Verschlüsselung oder der Verschlüsselung auf Basis von öffentlichen und privaten Schlüsseln ist eine Grundvoraussetzung für eine sichere Interaktion im Internet, beispielsweise mithilfe digitaler Signaturen.

Ich hoffe, dieses Tutorial zu PGP-Signaturen war hilfreich. Folgen Sie dem Linux-Hinweis für weitere Linux-Tipps und -Tutorials.