Asynchrone Verschlüsselung mit Pretty Good Privacy (PGP)

Ziemlich gute Privatsphäre
Kommentare

Datenschutz finden alle wichtig, aber viele handeln in ihrem Alltag nicht danach. Am Telefon werden wildfremden Leuten Informationen verraten, Passwörter werden im Klartext durch das WLAN und Internet geschickt um sich in den E-Mail-Account oder FTP-Server einzuloggen und Nachrichten bei Facebook, Twitter und Co. werden unverschlüsselt über HTTP verschickt. Genau dasselbe trifft auch auf die E-Mails selbst zu: Sensible Daten gehen mit fast jeder E-Mail durch die Netze, Zugangsdaten, persönliche Informationen und der berufliche E-Mail-Verkehr werden im Klartext verschickt und empfangen. Aber das muss nicht sein: PGP ist eine End-to-End-Verschlüsselung, seit 20 Jahren verfügbar. Hier zeige ich, wie man in PHP E-Mails und Dateien verschlüsseln, entschlüsseln, signieren und prüfen kann.

Verschlüsselung ist wichtig und wird immer wichtiger, bei Passwörtern nutzt hoffentlich jeder Programmierer in seiner Software mittlerweile Einwegverschlüsselungen/Hashes, also Verfahren um Passwörter nicht im Klartext in die Datenbank schreiben zu müssen, aber trotzdem in der Lage zu sein, ein eingegebenes Passwort überprüfen zu können. Einwegverschlüsselungen haben den großen Vorteil dass man keinen Schlüssel benötigt, und demnach auch das Ergebnis nicht wieder entschlüsseln kann um das Original zurückzuerhalten. Bekannte Vertreter sind das etwas in die Jahre gekommene MD5-Verfahren, neuere Verfahren sind beispielsweise SHA1 oder die Algorithmen aus der SHA2-Familie (Secure Hash Algorithm; SHA-224 ,SHA-256, SHA-384, SHA-512).

Symmetrische Verschlüsselung

Möchte man Daten verschlüsseln und sie auch später wieder entschlüsseln, kommt man als erstes auf symmetrische Verschlüsselungsverfahren. Bekannte Vertreter sind da AES, 3DES und Blowfish. Wer die Daten verschlüsselt und sie selbst auch wieder entschlüsseln möchte, muss nur dafür sorgen, dass das Passwort sicher gespeichert wird. Zur Verschlüsselung nimmt man ein Passwort, und nur mit genau diesem Passwort lässt sich auch das Original wieder herstellen.

Asymmetrische Verschlüsselung

Möchte man aber Daten verschlüsseln und jemand anderes, beispielsweise der Empfänger einer Nachricht, muss sie entschlüsseln können, hat man einen großes Problem: Man muss das Passwort an den Gegenüber übermitteln, logischerweise unverschlüsselt. Gerade im Internet ist das schwierig wenn es in erster Näherung als unsicher angenommen wird. Häufig kommt deshalb die asymmetrische Verschlüsselung ins Spiel. Dabei gibt es ein Schlüsselpaar bestehend aus einem privaten Schlüssel und einem dazu öffentlichen anderen Schlüssel. Den öffentlichen kann man gefahrlos weitergeben, er ist nicht geheim. Das interessante ist nun, dass man eine Nachricht mit dem öffentlichen Schlüssel verschlüsseln kann, und diese dann nur der Besitzer des dazugehörigen privaten Schlüssels entschlüsseln kann. Was an Magie zu grenzen scheint ist schlichte Mathematik und schon seit Jahrzehnten ein als sicher angesehenes Verfahren.

Signatur

Mithilfe der asymmetrischen Verschlüsselung ist es auch möglich, eine Nachricht zu signieren. Dazu wendet der Absender eine Einwegverschlüsselung auf die Nachricht an und verschlüsselt das Ergebnis mit seinem privaten Schlüssel. Für jeden anderen ist dann mittels des öffentlichen Schlüssels eine Überprüfung möglich ob der Text wirklich vom angegebenen Absender stammt und ob der Inhalt nicht verändert wurde.

Vorteile der asymmetrischen Verschlüsselung

Eine Nachricht ist also durch die asymmetrische Verschlüsselung geschützt vor neugierigen Blicken. Durch die Signatur, die parallel oder einzeln angewendet werden kann, ist auch der Absender identifizierbar und auch die Integrität der Nachricht ist sichergestellt.

PGP und GPG

Für Dateien, aber auch besonders im E-Mail-Bereich, wird das Public-Key-Verfahren PGP verwendet. PGP steht dabei für Pretty Good Privacy und wurde 1991 von Phil Zimmermann entwickelt. Da die asymmetrische gegenüber der symmetrischen Verschlüsselung sehr langsam ist wird ein Hybrid verwendet: Die eigentliche Nachricht wird zuerst mit einem zufällig erzeugten Schlüssel symmetrisch verschlüsselt, dann wird der genutzte Schlüssel asymmetrisch mit dem öffentlichen Schlüssel des Empfängers verschlüsselt. So ist es sogar möglich, eine Nachricht an mehrere Empfänger zu schicken, der symmetrische Schlüssel muss einfach nur für jeden Empfänger asymmetrisch verschlüsselt und mitgeschickt werden.

1998 wurde der OpenPGP-Standard geschaffen, den das Programm GnuPG (GPG) als Open Source implementierte, und der als freie Alternative zum kommerziellen PGP häufig genutzt wird. Leider sind beide nicht vollständig deckungsgleich, sodass es Probleme beim Austausch dieser beiden Programme geben kann, doch in der Praxis funktioniert es eigentlich immer problemlos.

PGP-Verschlüsselung im Detail

Die Schritte zur Verschlüsselung sind die Folgenden:

  1. Eine Signatur kann erzeugt werden
  2. Die Nachricht (und die Signatur) wird komprimiert
  3. Symmetrische Verschlüsselung mit zufälligem Schlüssel KM
  4. Asymmetrische Verschlüsselung des Schlüssels KM mit dem öffentlichen Schlüssel des Empfängers
  5. Zur leichteren Übertragung via E-Mail wird das Ergebnis noch Base64 kodiert

Zu guter Letzt werden noch Kopf- und Fußzeilen hinzugefügt. Das Ergebnis sieht dann beispielsweise aus wie in Listing 1.

-----BEGIN PGP MESSAGE-----
Version: GnuPG v2.0.16 (GNU/Linux)
hQEMA1PUVhZb8UnsAQf+KS9PNvkWYFONnoStveMc4KwvGT7WlRFv/ZACvdyFsKDO icurhL57uh56KCof1m5drfftwjDQWg NyMy0cixqV/2WzeQgjZILE0Z1FDg7cgAbs UZvy2hmaJf0dhHEUziALotfUMhoSeHeObxmomzb7vovJv5tWDtQ9W+p2tbQ4 tiin LAsJtwQhEVPNltootBteC0dTgOdISe6kfqUSoN3A22SiSUihmjxMPiiO6iZB8gBS hhfiSPa4khNwODncRe2BjqW+YQHf7L6 CfLjx2S1BCSr+KWLmUnVdWSUonhHPF9mI 
E/q7t2uoBWg0iQgCjQubgYeqSUYN/xWpqAUX9O71zdKUAbVjjLVT0qTjNLLv ms2H s4BDzHEqKeuGuMAWFzyfuW+VNofTxtcHhzrdjPuYi7sRL3YNUvqUpcGeKGyTApW2 k/fd7U32av7Pq63NoKK2g3RFc yBUiSdNlNhW8TYS1NdMSMXNw1R9dWVgFmsLj2vs Rv89ufRiPbNLDXcx7CkRrTf13q0miy1850d6k5nt8qUFrnh4xQ==
=z6Xk
-----END PGP MESSAGE-----

Zur Entschlüsselung muss man diese Schritte natürlich rückwärts anwenden, mit dem dazugehörigen privaten Schlüsselgegenstück.

Genug der Vorworte

Um PGP-verschlüsselte E-Mails aus PHP heraus zu verschicken gibt es mehrere Lösungswege. Für jede dieser Lösungen benötigen wir eine Installation von GnuPG. Das wird je nach Betriebssystem unterschiedlich gemacht:

Einen ersten Überblick über die Features von GnuPG bietet die Hilfe: gpg –help, für ausführliche Informationen wirft man einen Blick in die Man Page: man gpg.

Verschlüsseln

Wir möchten also eine E-Mail verschicken, deren Inhalt verschlüsselt ist, und nur der Empfänger soll sie lesen können. Ein einfaches PHP-Skript dazu sieht aus wie in Listing 2.

<?php

$recipient = 'info@phpgangsta.de';
$emailSubject = 'Meine Bankdaten';
$emailHeader = 'From: sender@phpgangsta.de';
$body = 'Kontonummer: 1234567890';

// Temporäre Dateien
$infile = tempnam('/tmp', 'PGP.asc');
$outfile = $infile.'.asc';

file_put_contents($infile, $body);

// Der Befehl zum Verschlüsseln. Öffentlicher Schlüssel des Empfängers muss im Schlüsselbund sein
$command = "/usr/local/bin/gpg --homedir /var/www/project/.gnupg -a --recipient $recipient --encrypt -o $outfile $infile";
system($command, $result);

// Datei mit Klartext löschen
unlink($infile);

if (file_exists($outfile) && filesize($outfile) > 0) {
$content = file_get_contents($outfile);
unlink($outfile);

mail($recipient, $emailSubject, $content, $emailHeader);

echo 'E-Mail erfolgreich versandt.';
} else {
echo 'Es gab ein Problem. Rückgabewert: '.$result;
}

Das Wichtigste ist hier der Befehl in Zeile 15. Der Pfad zum Schlüsselbund sowie ein Empfänger werden angegeben, es wird der Verschlüsselungsmodus genutzt und eine Ausgabedatei angegeben. Mit -a wird in den ASCII-Modus gewechselt, der für E-Mails besser geeignet ist als das Binärformat, das bei Dateiverschlüsselungen bevorzugt werden sollte, da bei der ASCII-Variante 33% mehr Speicherplatz benötigt werden.

Das Heimverzeichnis (hier auf /var/www/project/.gnupg gesetzt) muss vom Benutzer der das Skript ausführt lesbar und beschreibbar sein, also entweder der aktuelle Benutzer an der Konsole oder der Webserver (www-data o. Ä.).

Je nachdem ob die Ausgabe des gpg-Kommandos direkt ausgegeben, zurückgegeben oder verworfen werden soll, kann natürlich statt dem system()-Aufruf auch gerne exec()shell_exec() oderpassthru() benutzt werden.

Übrigens ist es auch möglich ohne die beiden temporären Eingabe- und Ausgabedateien zu arbeiten, aber dann handelt man sich eventuell Probleme ein wenn die zu verschlüsselnden Daten größer sind, deshalb bevorzuge ich die Dateien. Außerdem ist dann der Klartext in der Prozessliste des Betriebssystems sichtbar. Listing 3 zeigt ein alternatives Skript ohne temporäre Dateien.

<?php

$recipient = 'info@phpgangsta.de';
$emailSubject = 'Meine Bankdaten';
$emailHeader = 'sender@phpgangsta.de';
$body = 'Kontonummer: 1234567890';

// Der Befehl zum Verschlüsseln. Öffentlicher Schlüssel des Empfängers muss im Schlüsselbund sein
$command = 'echo '.escapeshellcmd($body).' | /usr/local/bin/gpg --homedir /var/www/project/.gnupg \
-a --always-trust --batch --no-secmem-warning --encrypt --recipient "'.$recipient.'" 2>&1';
$result = shell_exec($command);

if (strlen($result) > 0 && strpos($result, '-----BEGIN PGP MESSAGE-----') === 0) {
sendMail($recipient, $emailSubject, $result, $emailHeader);

echo 'E-Mail erfolgreich versandt.';
} else {
echo "Es gab ein Problem. Rückgabe:n".$result;
}

Wenn man dieses Skript auf der Konsole ausführt erhält man die folgende Ausgabe:

$ php pgp.php
gpg: keyring `/var/www/project/.gnupg/secring.gpg' created
gpg: keyring `/var/www/project/.gnupg/pubring.gpg' created
gpg: info@phpgangsta.de: skipped: public key not found
gpg: /private/tmp/PGP.asc2PVho5: encryption failed: public key not found
Es gab ein Problem. Rückgabewert: 2

gpg legt also zwei Schlüsselbunde an, da noch keine existieren, und versucht dann den öffentlichen Schlüssel für den Empfänger zu lesen. Da dieser im pubring nicht existiert, kann die Verschlüsselung nicht funktionieren.

Schlüssel suchen und importieren

Wir müssen also zuerst den fehlenden Schlüssel hinzufügen. Dazu holen wir ihn uns von einem öffentlichen Keyserver:

gpg --homedir /var/www/project/.gnupg --keyserver hkp://subkeys.pgp.net --recv-keys 
gpg --homedir /var/www/project/.gnupg --keyserver hkp://subkeys.pgp.net --search-keys info@phpgangsta.de

Oder wir importieren ihn aus einer Datei, falls wir ihn vom Empfänger bekommen oder auf seiner Webseite gefunden haben:

gpg --homedir /var/www/project/.gnupg --import /home/michael/info.asc

Schlüssel erstellen

Für sich selbst kann man mittels gpg –gen-key ein Schlüsselpaar erzeugen. Dabei werden einige Fragen gestellt, zum Beispiel welcher Algorithmus und welche Schlüssellänge verwendet werden sollen. Dann kann man einen Gültigkeitszeitraum festlegen, gibt seine E-Mail-Adresse, Namen und Kommentar ein, wählt eine möglichst sichere Passphrase und schon ist das Schlüsselpaar im Schlüsselbund. Wer mehrere E-Mail-Adressen besitzt, kann einen Schlüssel für mehrere E-Mail-Adressen erstellen. Dazu werden seinem bestehenden Schlüssel weitere Identitäten hinzugefügt:

gpg --homedir /var/www/project/.gnupg --edit-key 
Befehl> adduid
Befehl> save

Übrigens sollte man sehr auf sein Schlüsselpaar aufpassen, es gut aufbewahren (Kopie an einem anderen Ort), die Passphrase sicher aufbewahren und eventuell drüber nachdenken schon zu Beginn das Widerrufszertifikat zu erstellen (–gen-revoke) das benötigt wird, um den Schlüssel zurückzurufen und für ungültig erklären zu können. Wenn man nämlich seine Passphrase verliert/vergisst oder seinen private Key nicht mehr hat, kann man kein Widerrufszertifikat mehr erstellen.

Schlüssel auflisten

Nachdem einige Schlüssel im Schlüsselbund sind, können die öffentlichen und privaten Schlüssel aufgelistet werden (Listing 4).

$ gpg --homedir /var/www/project/.gnupg --list-keys --fingerprint --fingerprint
/var/www/project/.gnupg/pubring.gpg
-----------------------------------
pub 1024D/8315318B 2011-09-21 [expires: 2013-09-20]
Key fingerprint = BE08 9734 A2E9 27BA 42C8 9E31 319B B6D6 8315 318B
uid Michael Kliewe (PHPGangsta) <info@phpgangsta.de>
sub 4096g/6B0F3B42 2011-09-21 [expires: 2013-09-20]
Key fingerprint = 8A7C 6142 F94A ECC6 43A4 D262 A94C 1C3F 6B0F 3B42
$ gpg --homedir /var/www/project/.gnupg --list-secret-keys --fingerprint --fingerprint
/var/www/project/.gnupg/secring.gpg
-----------------------------------
sec 1024D/8315318B 2011-09-21 [expires: 2013-09-20]
Key fingerprint = BE08 9734 A2E9 27BA 42C8 9E31 319B B6D6 8315 318B
uid Michael Kliewe (PHPGangsta) <info@phpgangsta.de>
ssb 4096g/6B0F3B42 2011-09-21
Key fingerprint = 8A7C 6142 F94A ECC6 43A4 D262 A94C 1C3F 6B0F 3B42

Schlüssel exportieren

Den öffentlichen Teil eines Schlüssels aus dem Schlüsselbund kann man wie folgt exportieren, um ihn dann beispielsweise per E-Mail zu verschicken oder auf der Webseite zu publizieren:

gpg --homedir /var/www/project/.gnupg -a --output gpg-key.asc --export info@phpgangsta.de

Oder man lädt ihn auf einen beliebigen Keyserver im Internet hoch:

gpg --homedir /var/www/project/.gnupg --keyserver hkp://subkeys.pgp.net --send-keys 8315318B

>

Falls der private Schlüssel benötigt wird, kann man ihn wie folgt exportieren:

gpg --homedir /var/www/project/.gnupg -a --output gpg-secret-key.asc --export-secret-keys info@phpgangsta.de

Nächster Versuch der Verschlüsselung

Wenn man nun, nachdem der öffentliche Schlüssel des Empfängers hoffentlich im Schlüsselbund liegt, das obige PHP-Skript nochmals ausführt, wird die E-Mail versandt, und der Empfänger erhält eine E-Mail wie in Listing 5.

-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.9 (Darwin)

hQQOA6lMHD9rDztCEBAAhAJkCrq6w362xKSvp2lvZWJrnUGyD82oaK2pxIn6Y5Mp
qfSJaytodD/8nhvZ8wA8UYLcc5P3oQ8QdXQ5+Abdio61eKtkGU0ZA8CLU18uqJWH
rrKiTMC82fuzUoaPtxHHNgpNqayJnTWvU8WUR4PsyA+2Au2tS5sDR7wG5RF5cXWn
yMXJctfTk+IlxBch/NHAgmcI7g2FTehj5/HgCbP7KinQ5F/PYBVwCEgFqoZsNA/V
rQ8Pc9Ie1+BKeZ5h1PJYlQfRuwdcVnzjkYrMv97XdB8ujD0aXV+4YwOrNuUKaTbU
FVH/+6cFNhr82QLO5ifjWmmaNwqscEmjdy43PDtK4LE1LsUBX0j2sBdSj/yobNRj
vf2YB16Uvcknmiiqbqx++zrElcaKG0vLIDCmCWy9kdB08GKWcU9QX/amgViS+24k
6ykNFsDBwu1/3hct7f2tbfFAdBdysqA6aq93aBkdg6SI0l8B55qh6Qwycd0UGCPO
m8Fu2hoIJqITKcGZBtwzB7IbsVJ8jVDP2eafK4WS7P1GAeYLhvK3Uc3eYcxHs/t5
hHkMBurMuxth7xknfGRxqIHETxMY561V6cF+AViD2MNSCw==
=m6I+
-----END PGP MESSAGE-----

Diese kann der Empfänger nun mit PGP und seinem privaten Schlüssel entschlüsseln. Idealerweise ist im E-Mail-Programm eine entsprechende Software eingebaut die das erledigen kann. Möchte man selbst eine E-Mail, die man verschickt hat, später noch lesen können oder sie an mehrere Empfänger schicken, übergibt man dem gpg-Aufruf einfach mehrere —recipient-Parameter.

Entschlüsseln

Hat man eine Datei erhalten, die mit einem öffentlichen Schlüssel verschlüsselt wurden (zum Beispiel der oben stehende E-Mail-Inhalt), kann man sie wie folgt entschlüsseln, vorausgesetzt man besitzt den passenden privaten Schlüssel in seinem Schlüsselbund:

gpg --homedir /var/www/project/.gnupg --decrypt --output entschluesselt.txt verschluesselte_email.asc

Nach der Eingabe der Passphrase enthält die Datei entschluesselt.txt den Originaltext. Möchte man diesen Befehl aus PHP heraus auf einem Webserver ausführen, muss man die Passphrase übergeben. Das geht sowohl direkt als Parameter oder auch aus einer Datei. Ersteres sollte vermieden werden, denn dann steht die Passphrase in der Prozessliste des Betriebssystems. Zu bevorzugen ist da der Parameter –passphrase-file, dem man einen Dateipfad übergibt, der die erste Zeile der Passphrase enthält. Diese Datei gilt es natürlich vor neugierigen Augen zu schützen.

Signieren

Zu einer Datei kann eine Signatur erstellt werden, mit der nachher geprüft werden kann ob die Datei verändert wurde. Außerdem ist es möglich zu überprüfen von wem die Signatur kommt. Eine Signatur kann man entweder als einzelne Datei erstellen lassen oder direkt zusammen mit dem Original in einer Datei:

gpg --homedir /var/www/project/.gnupg --detach-sign -a entschluesselt.txt
gpg --homedir /var/www/project/.gnupg --sign -a entschluesselt.txt

Der erste Befehl generiert die folgende Datei mit einer Signatur:

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)

iEYEABECAAYFAk558LMACgkQMZu21oMVMYvajwCbBCiFWQ1/XTGZ1joUn7rV1puz
Mw0AoIowmYFYGWDHxnpl3qD7rKmSBpNv
=JD7r
-----END PGP SIGNATURE-----

Dabei wird der Standardschlüssel verwendet. Hat man mehrere private Schlüssel, kann mit dem Parameter –local-user der richtige Schlüssel ausgewählt werden. Übrigens ist es auch möglich eine Datei gleichzeitig zu verschlüsseln und zu signieren.

Signatur verifizieren

Hat man eine Signatur erhalten und möchte sie verifizieren, wird der öffentliche Schlüssel des Absenders benötigt gegen den geprüft werden soll. Die Verifizierung geht dann wie folgt:

$ gpg --homedir /var/www/project/.gnupg --verify verschl.asc.asc
gpg: Signature made Wed Sep 21 16:13:30 2011 CEST using DSA key ID 8315318B
gpg: Good signature from "Michael Kliewe (PHPGangsta) <info@phpgangsta.de>"

Alle diese gpg-Befehle kann man natürlich auch aus PHP heraus ausführen.

Fertige Klassen

Das ganze Verfahren gibt es bereits in Klassen verpackt, damit man sich nicht mehr um die Details kümmern muss. Der meiner Meinung nach beste Vertreter sind die Crypt_GPG-Klassen aus dem PEAR-Projekt. Ein Skript, das Crypt_GPG zur Verschlüsselung nutzt, sieht dann aus wie in Listing 6.

 '/var/www/project/.gnupg', 'binary' => '/usr/local/bin/gpg'));
$gpg->addEncryptKey('info@phpgangsta.de');
$gpg->encryptFile($infile, $outfile);

Der Vorteil ist, dass man sich nicht mehr um die Parameter kümmern muss. Von Nachteil ist allerdings, dass man genau das nicht mehr machen kann, denn die Klasse deckt nicht 100 % der Funktionalität von GPG ab, was bei dem Umfang von GPG auch nicht verwunderlich ist. Für 99 % aller Anwendungen reicht es aber, die wichtigsten Funktionen sind damit möglich.

GPG Made Easy und Extension

Alternativ zu dieser system()-Variante (bzw. im Fall von Crypt_GPG ist es proc_open()) mit der gpg-Applikation gibt es eine zweite Möglichkeit mit GPG zu arbeiten: GPG Made Easy (GPGME). Das ist eine Bibliothek, die den Zugriff auf GPG-Funktionen für Applikationen erleichtert. Für PHP gibt es die dazu passende Extension ext/gnupg. Die Installation erfolgt dann z. B. so:

$ sudo apt-get install gnupg gpgme gpgme-devel
$ sudo pecl install gnupg

Danach fügt man noch die Zeile extension=gnupg.so zur php.ini hinzu und startet den Apache neu. Auf jedem System ist es etwas anders, bei Debian ist es beispielsweise libgpgme11-dev anstattgpgme-devel. Ein Skript zur Verschlüsselung zeigt Listing 7.

addencryptkey($fingerprint);

$encrypted = $gpg->encrypt($data);

echo "Encrypted text: n$encryptedn";

Ein weiteres Beispiel der Benutzung zum gleichzeitigen Entschlüsseln und Verifizieren der Signatur gibt Listing 8.

adddecryptkey($fingerprint);

$info = $gpg->decryptverify($data, $decrytped);

echo "Decrypted text: n$decryptedn";
var_dump($info);

Ich persönlich mag diese Methode mit der Extension nicht, das liegt wohl daran, dass man mehr installieren muss, und ich den putenv()-Aufruf nicht mag, aber man benötigt ihn wenn man nicht das Heimverzeichnis des aktuellen Benutzers nutzen möchte. Außerdem bleibt die Flexibilität etwas auf der Strecke (gpg via system()-Aufruf bietet viel mehr Features als die gpg Extension), und nicht jeder kann oder will Extensions installieren. Manchmal ist aber auch system() verboten, und für die häufigsten Anwendungsfälle ist die Extension ausreichend. Am besten probieren Sie beides aus und entscheiden selbst. Weitere Informationen zur GnuPG Extension finden sich im PHP Manual.

Test GPG Hello Roboter: gpgtest@phpgangsta.de

Wenn man eine signierte oder verschlüsselte E-Mail an diese Adresse schickt, wird eine Antwort-E-Mail mit dem entschlüsselten Text bzw. dem Ergebnis der Signaturprüfung verschickt. Auch kann man mit dem Betreff „REQUEST ENCRYPTED MAIL“ eine verschlüsselte E-Mail anfragen, die der Roboter mit dem öffentlichen Schlüssel des Absenders verschlüsselt, wenn es diesen gibt, und dann zurückschickt. Wenn man das Ganze nicht via E-Mail machen möchte, kann man auch die Formulare auf der Webseite nutzen, um mit PGP bzw. GPG ein wenig zu experimentieren.

Fazit

Mithilfe von GnuPG sind Sie also in der Lage, Daten aller Art zu verschlüsseln, zu entschlüsseln, zu signieren und zu prüfen. Sie können verschlüsselte und signierte Dateien verschicken und auch andere Personen können Ihnen über unsichere Leitungen und Server vertrauliche Daten zukommen lassen, die automatisch entschlüsselt werden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -