Warum und wie man eine digitale PGP-Signatur verwendet

Vor einiger Zeit haben wir über kryptografische Hashes (wie MD5- und SH1-Prüfsummen) gesprochen und darüber, wie sie dazu beitragen, dass eine heruntergeladene Datei dieselbe Datei ist, die ihr Ersteller herunterladen wollte, indem sie einen eindeutigen „Fingerabdruck“ der Datei erstellen, die es sein kann gegen das Original geprüft.

Die Möglichkeit, die Integrität fast jeder Datei zu überprüfen, ist wichtig, aber wenn wir Datenschutz- und Sicherheitssoftware aus dem Internet herunterladen, ist dies absolut entscheidend. Was bringt es schließlich, Ihre Privatsphäre und Sicherheit einem Programm anzuvertrauen, das möglicherweise einen Virus enthält, insbesondere wenn Sie bedenken, dass solche Software und ihre Benutzer ohne Zweifel Ziele mit hoher Priorität für die NSA und ihresgleichen sind?

Selbst wenn Sie Software direkt von der Website eines Anbieters oder Entwicklers herunterladen, könnten Sie Opfer eines Man-in-the-Middle (MitM)-Angriffs werden, oder die Website selbst könnte auf verschiedene Weise kompromittiert werden.

Die Verwendung kryptografischer Hashes ist ein Versuch, dieses Problem zu lösen, aber leider hat die Technik eine große Schwäche – zum Beispiel kann die Website eines Entwicklers gehackt werden, um den Hash einer kompromittierten Datei anstelle des Originals anzuzeigen, oder mathematische Schwachstellen können sie unsicher machen. Hashes sind daher nützlich, um zu überprüfen, ob eine Datei nicht beschädigt wurde, aber sie sind nur von begrenztem Nutzen, um sicherzustellen, dass die Datei, die Sie herunterladen, dieselbe Datei ist, die ihre Entwickler herunterladen möchten.

Um dies besser zu gewährleisten, können Entwickler ihre Dateien mit digitalen Signaturen signieren, die eine Form der asymmetrischen Kryptographie (öffentliche Schlüssel und private Schlüssel) verwenden, um zu überprüfen, ob eine Datei genau das ist, was sie vorgibt zu sein.

Ein Diagramm, das zeigt, wie eine digitale Signatur angewendet und dann verifiziert wird.

Digitale PGP-Signaturen

Unterschiedliche kryptografische Systeme verwenden unterschiedliche Mechanismen, um digitale Signaturen zu erstellen und zu validieren. Windows verwendet beispielsweise die Microsoft Public Key Infrastructure (PKI)-Technologie, um Signaturen automatisch zu validieren, wenn Software zum ersten Mal installiert wird.

Open-Source-Software kann die proprietäre Microsoft PKI nicht verwenden und verwendet daher stattdessen digitale PGP-Signaturen. Die muss dann manuell authentifiziert werden. Diese funktionieren ähnlich wie die Schlüsselpaare, die zur Authentifizierung von PGP-E-Mails verwendet werden. und wie wir sehen werden, erfordert die Überprüfung digitaler PGP-Signaturen die Verwendung eines PGP-kompatiblen E-Mail-Programms.

Leider bedeutet dies auch, dass die Verwendung digitaler PGP-Signaturen ebenso wie die Verwendung von PGP zum Sichern von E-Mails zu komplex ist.

So verifizieren Sie eine digitale Signatur mit der Kleopatra-GUI

Um die digitale PGP-Signatur einer Datei zu überprüfen, müssen Sie einen PGP-Client verwenden (genauer gesagt GnuPG – seinen Open-Source-Klon). Versionen von GnuPG sind für Windows (Gpg4win), Mac OSX und Linux (normalerweise vorinstalliert) verfügbar.

In diesem Tutorial werden wir die digitale Signatur von Pidgin + OTR mit Gpg4win überprüfen, aber der Prozess ist für andere Versionen von GnuPG sehr ähnlich.

Wir haben einen zweiteiligen Artikel über die Verwendung von Gpg4win und wir empfehlen dringend, mindestens Teil 1 davon zu lesen, um sich mit den Schlüsselkonzepten vertraut zu machen, die im Folgenden verwendet werden.

Der Gpg4win-Download selbst ist mit einem Schlüssel digital signiert, der von einer anerkannten Zertifizierungsstelle (CA) verifiziert wurde und der unabhängig mit einer vertrauenswürdigen älteren Kopie von GnuPG (ein SHA1-Hash ist ebenfalls verfügbar) auf Verifizierung überprüft werden kann. Sie sollten niemals einer Kopie von Gpg4win vertrauen, die Sie nicht verifiziert haben.

Sobald GnuPG installiert ist, benötigen wir drei Dinge, um eine digitale Signatur zu überprüfen:

  • Die Datei, die wir überprüfen wollen (duh!), zB der Installer pidgin-otr-4.0.1.exe
  • Die PGP/GPG-Signaturdatei (.asc), zB pidgin-otr-4.0.1.exe.asc
  • Der öffentliche Schlüssel/das PGP-Zertifikat, mit dem diese Signatur erstellt wurde, z. B. gpgkey.asc

Diese Dateien sollten alle (hoffentlich) von dem Entwickler bereitgestellt werden, dessen digital signierte Dateien Sie überprüfen möchten. Öffentliche Schlüssel/PGP-Zertifikate werden häufig auf einem Schlüsselserver gespeichert, aber die Entwickler sollten Anweisungen für den Zugriff darauf bereitstellen.

Kleopatra

Kleopatra ist ein mit Gpg4win gebündeltes Schlüsselverwaltungsprogramm.

1. Sie benötigen einen persönlichen privaten Schlüssel, um das PGP-Zertifikat zu zertifizieren. Wenn Sie zuvor eines erstellt haben (z. B. mit GPA), können Sie es importieren (Datei -> Zertifikate importieren…) oder ein neues Schlüsselpaar erstellen (Datei -> Neues Zertifikat…).

Assistenten führen Sie durch den Rest dieses Prozesses

2. Importieren Sie den öffentlichen Schlüssel/das PGP-Zertifikat in Kleopatra – entweder mit „Zertifikate importieren“ oder indem Sie mit der rechten Maustaste auf die Datei klicken und „Schlüssel importieren“ auswählen.

3. Zertifizieren Sie das PGP-Zertifikat mit Ihrem privaten Schlüssel – dies teilt GnuPG mit, dass Sie der Person vertrauen, die das Zertifikat signiert hat.

a) Klicken Sie in Kleopatra mit der rechten Maustaste auf den Schlüssel und wählen Sie „Zertifikat zertifizieren“.

b) Wählen Sie das Zertifikat aus und bestätigen Sie, dass Sie seinen Fingerabdruck verifiziert haben (hoffentlich wird dies auf der Website des Entwicklers veröffentlicht).

c) Wenn Sie sich der Echtheit des Zertifikats nicht sehr sicher sind, sollten Sie nur für sich selbst zertifizieren (Zertifikate funktionieren nach dem Prinzip des Vertrauensnetzes – je mehr Menschen ihnen vertrauen, desto sicherer können Sie sein, dass sie echt sind).

d) Geben Sie die Passphrase Ihres privaten Schlüssels ein, um die Überprüfung des Zertifikats abzuschließen.

4. Nachdem Sie nun das Zertifikat zertifiziert haben, das zum Erstellen der Signatur für die heruntergeladene Datei verwendet wurde (wow!), können Sie es verwenden, um die Signatur zu überprüfen.

a) Gehen Sie in Kleopatra zu Datei -> Dateien entschlüsseln/überprüfen und suchen Sie nach der Signaturdatei oder klicken Sie mit der rechten Maustaste darauf und gehen Sie zu Weitere GpgEX-Optionen -> Überprüfe.

b) Stellen Sie sicher, dass „Eingabedatei“ die Signaturdatei ist und dass das Feld „Signierte Daten“ das Programm oder die Datei enthält, die Sie überprüfen möchten, und klicken Sie dann auf „Entschlüsseln/Verifizieren“.

c) Wenn alles in Ordnung ist, wird Kleopatra die Unterschrift für gültig erklären.

Wie kann ich einem Zertifikat vertrauen?

Der einfachste Weg, die Gültigkeit eines PGP-Zertifikats zu überprüfen, ist, die Website der Person zu überprüfen, die das Zertifikat signiert haben soll … mit etwas Glück wird dort der Fingerabdruck des Zertifikats veröffentlicht.

Dies ist zwar einfach, garantiert jedoch nicht die Echtheit der Signatur, da die Website möglicherweise gehackt oder von einer Regierung gezwungen wurde, einen gefälschten Fingerabdruck anzuzeigen (dasselbe Problem, das kryptografische Hashes plagt).

Hier kommt das Web of Trust ins Spiel, bei dem Benutzer für ein Zertifikat bürgen. In der Praxis ist dies ein geheimnisvoller Prozess, der für die meisten Benutzer sowohl zu komplex als auch zu undurchsichtig ist. Daher können die meisten von uns bestenfalls darauf hoffen, dass das Zertifikat von einer anerkannten Zertifizierungsstelle verbürgt oder von bekannten Entwicklern signiert wurde die ihre Signaturschlüssel veröffentlichen (wie zum Beispiel die Tor-Entwickler).

Pidgin + OTR ist in gewisser Weise ein schlechtes Beispiel dafür, wie digitale Signaturen funktionieren sollten, da die OTR-Webseite fast keine Anweisungen zur Verwendung ihrer veröffentlichten Schlüssel enthält und ihr PGP-Zertifikat nicht nur sehr schwer zu finden, sondern auch verfügbar war von https://otr.cypherpunks.ca/gpgkey.asc gibt es keine einfache Möglichkeit, seine Authentizität zu überprüfen (die Tatsache, dass ein 1024-Bit-RSA-Schlüssel verwendet wird, ist in dieser Zeit, in der die NSA wahrscheinlich eine so schwache Verschlüsselung knacken kann, ebenfalls ein schwaches Zeichen ).

Fazit

Wie Sie sehen können, ist die Überprüfung einer digitalen Signatur wirklich mühsam, daher ist es kein Wunder, dass sich selbst diejenigen, die den Fachjargon-lastigen, geheimnisvollen Prozess verstehen, selten die Mühe machen. Das Problem wird noch dadurch verschlimmert, dass viele Entwickler nicht erklären, wie sie ihre Dateien verifizieren können, und/oder schlampige PGP-Zertifikate ausstellen, deren Echtheit sehr schwer zu verifizieren ist (OTR-Team, wir sehen euch an!).

Die Tatsache, dass digitale Signaturen nach wie vor die einzig sinnvolle Methode sind, um sicherzustellen, dass die von Ihnen heruntergeladenen Dateien die sind, die Sie herunterladen wollten (oder dass ihre Entwickler beabsichtigten, dass Sie sie herunterladen), verheißt nichts Gutes für die Internetsicherheit.

Bis jedoch jemand ein besseres, benutzerfreundlicheres System erfindet, besteht unsere beste Hoffnung darin, die Entwickler zu ermutigen, klare Anweisungen zur Verwendung ihrer digitalen Signaturen zu geben und aussagekräftige Garantien für die Authentizität ihrer PGP-Zertifikate zu veröffentlichen … (seufz)

“Digital Signature diagram” von Acdx – Eigene Arbeit. Lizenziert unter CC BY-SA 3.0 über Wikimedia Commons – https://commons.wikimedia.org/wiki/File:Digital_Signature_diagram.svg#mediaviewer/File:Digital_Signature_diagram.svg