Da viele Unternehmen von Papierdokumenten zu digitalen Dokumenten übergehen, sind digitale Signaturen erforderlich, um sensible digitale Dokumente zu verwalten. Digitale Signaturen können verwendet werden, um die Quelle der Nachricht zu authentifizieren, sodass der Empfänger entscheiden kann, ob er dem Absender vertraut oder nicht. Heutzutage wird es am häufigsten für die Softwareverteilung und Finanztransaktionen verwendet.
Bei der Public-Key-Kryptographie ist es möglich, einen privaten Schlüssel zum Signieren einer Datei zu verwenden. Jeder, der über den entsprechenden öffentlichen Schlüssel verfügt, kann überprüfen, ob die Datei mit dem privaten Schlüssel signiert wurde. Wer den privaten Schlüssel nicht hat, kann eine solche Signatur nicht fälschen.
Digitale Signaturen können zur Absenderauthentifizierung und Nachweisbarkeit verwendet werden. Der Unterzeichner kann nicht behaupten, dass er das Dokument nicht unterzeichnet hat.
Heutzutage spielen digitale Signaturen eine Schlüsselrolle bei der Softwareverteilung. Wenn Sie eine Software vom Debian-Spiegel installieren, wird die Software nach dem Herunterladen überprüfen, ob die Software von einer vertrauenswürdigen Quelle stammt, indem die Signatur überprüft wird, wodurch sichergestellt wird, dass das Paket von einer vertrauenswürdigen Quelle stammt.
Nun sehen wir uns die verschiedenen Methoden zum Signieren von Dokumenten mit dem GnuPG-Tool an.
Wenn Sie neu im GnuPG-Tool sind, sollten Sie zuerst verstehen, wie die grundlegenden gpg-Befehle verwendet werden.
Eine digitale Signatur zertifiziert und versieht ein Dokument mit einem Zeitstempel. Wenn das Dokument in irgendeiner Weise verändert wird, schlägt eine Überprüfung der Signatur fehl.
1. Digitale Signatur für eine Datei erstellen
Um ein Dokument digital zu signieren, wird die Option „Signieren“ verwendet. Sie werden aufgefordert, Ihre Passphrase einzugeben, um den privaten Schlüssel freizugeben, der zum Signieren des Dokuments verwendet wird.
$ gpg --sign file.txt You need a passphrase to unlock the secret key for user: "lakshmanan (This is lakshmans key) " 2048-bit RSA key, ID 3630F8D6, created 2012-12-30 Enter passphrase:
Jetzt wird eine Datei namens „file.txt.gpg“ im Binärformat erstellt. Die Eingabedatei wird komprimiert, bevor die Datei signiert wird.
2. Digitale Signatur verifizieren
Bei einem signierten Dokument können Sie die Signatur mit der Option –verify überprüfen.
$ gpg --verify file.txt.gpg gpg: Signature made Saturday 12 January 2013 11:17:46 PM IST using RSA key ID 3630F8D6 gpg: Good signature from "lakshmanan (This is lakshmans key) "
Der obige Befehl überprüft, ob die Signatur gut ist.
3. Extrahieren Sie das Dokument aus der Datei
Um das Originaldokument aus der signierten Datei zu extrahieren, verwenden Sie die Option –decrypt. Sie können die –output verwenden, um die Ausgabedatei zum Speichern des tatsächlichen Dateiinhalts anzugeben.
$ gpg --output doc.txt --decrypt file.txt.gpg gpg: Signature made Saturday 12 January 2013 11:17:46 PM IST using RSA key ID 3630F8D6 gpg: Good signature from "lakshmanan (This is lakshmans key) "
Jetzt wird das eigentliche Dokument in der Datei doc.txt gespeichert.
4. Unterzeichnen Sie die Dokumente eindeutig
Eine häufige Verwendung von digitalen Signaturen ist das Versenden von E-Mails. In einem solchen Fall ist es nicht wünschenswert, die Datei binär zu komprimieren und zu signieren. Sie können die Option –clearsign verwenden, um die Datei in gepanzerte ASCII-Signaturen einzuschließen.
$ gpg --output file.sig --clearsign file.txt
Nun wird eine ASCII-Datei namens file.sig erstellt, die die digitale Signatur und die Datei selbst enthält.
$ cat file.sig -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 This is a test file -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iQEcBAEBAgAGBQJQ8af1AAoJEHUf3BE2MPjWJ6QIAIoM7vZlvVD4PR4TgqKkUAr5 S4Pc/7tjkEquBcPfzHgm6MPdTd7kIvUzwHNkkST0FyB2cLzvx8wNf7Zp/kDYL0Uz /7UCocMPsDBYHasUY4XRfCDUkF0ER/NAFdiL9AUTvQf6oQxwuQG9sWxb6tcK8eiV U7BBvQvMl6RszP+e7VXgcDbNeYMrTDwrivP9BKwAFuBtZmRg0vQKnjenUyVJL6gJ tndkwtOd1XGpc5ZKCTRSKOoTonuUQAD1q0Pi6nmeaNskSqwVOxzQcV6lQ8nHJTh2 XfKSAopNriv405YfC1KO5H2Ffzee2jx+o3HqxfU1vQbHtP7uf4QqxUc2HtDnRNQ= =PN+K -----END PGP SIGNATURE-----
Die Überprüfung des klar signierten Dokuments ähnelt der Überprüfung des binär signierten Dokuments.
5. Getrennte Signatur erstellen
Bei getrennten Signaturen wird eine neue Datei als Signatur erstellt. Sie können die Option –detach-sign verwenden, um eine getrennte Signatur zu erstellen.
$ gpg --armor --detach-sig file.txt
Nun wird eine ASCII-Datei mit dem Namen file.txt.asc erstellt, die die abgetrennte Signatur enthält. Sie können –output verwenden, um den Dateinamen der getrennten Signatur zu ändern.
6. Überprüfen Sie die abgetrennte Signatur
Um eine getrennte Signatur zu verifizieren, benötigen Sie sowohl die Signaturdatei als auch die Datendatei.
$ gpg --verify file.txt.asc file.txt gpg: Signature made Sunday 13 January 2013 12:13:59 AM IST using RSA key ID 3630F8D6 gpg: Good signature from "lakshmanan (This is lakshmans key) "
Versuchen wir, die file.txt zu bearbeiten. Fügen Sie etwas Inhalt zur file.txt hinzu und versuchen Sie, die Signatur zu verifizieren.
$ echo "Append" >> file.txt $ gpg --verify file.txt.asc file.txt gpg: Signature made Sunday 13 January 2013 12:13:59 AM IST using RSA key ID 3630F8D6 gpg: BAD signature from "lakshmanan (This is lakshmans key) "
Jetzt ist die Überprüfung fehlgeschlagen und sagt BAD-Signatur, da der Inhalt geändert wurde.
7. Verschlüsseln und signieren Sie ein Dokument
In einem unserer vorherigen Beiträge haben wir auch ausführlich darüber gesprochen, wie man eine Datei mit GnuPG ver- und entschlüsselt. Wenn Sie ein Dokument jedoch gleichzeitig verschlüsseln und signieren möchten, gehen Sie wie folgt vor:
$ gpg --sign --encrypt --recipient raman file.txt
Der obige Befehl verschlüsselt die file.txt und signiert das Dokument digital. Der Empfänger kann die Signatur überprüfen und das Dokument mit der Option –decrypt.
entschlüsseln