PGP-Verschlüsselung im Detail
Die Schritte zur Verschlüsselung sind die Folgenden:
- Eine Signatur kann erzeugt werden
- Die Nachricht (und die Signatur) wird komprimiert
- Symmetrische Verschlüsselung mit zufälligem Schlüssel KM
- Asymmetrische Verschlüsselung des Schlüssels KM mit dem öffentlichen Schlüssel des Empfängers
- 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.
Listing 1
—–BEGIN PGP MESSAGE—–
Version: GnuPG v2.0.16 (GNU/Linux)
hQEMA1PUVhZb8UnsAQf+KS9PNvkWYFONnoStveMc4KwvGT7WlRFv/ZACvdyFsKDO
icurhL57uh56KCof1m5drfftwjDQWgNyMy0cixqV/2WzeQgjZILE0Z1FDg7cgAbs
UZvy2hmaJf0dhHEUziALotfUMhoSeHeObxmomzb7vovJv5tWDtQ9W+p2tbQ4tiin
LAsJtwQhEVPNltootBteC0dTgOdISe6kfqUSoN3A22SiSUihmjxMPiiO6iZB8gBS
hhfiSPa4khNwODncRe2BjqW+YQHf7L6CfLjx2S1BCSr+KWLmUnVdWSUonhHPF9mI
E/q7t2uoBWg0iQgCjQubgYeqSUYN/xWpqAUX9O71zdKUAbVjjLVT0qTjNLLvms2H
s4BDzHEqKeuGuMAWFzyfuW+VNofTxtcHhzrdjPuYi7sRL3YNUvqUpcGeKGyTApW2
k/fd7U32av7Pq63NoKK2g3RFcyBUiSdNlNhW8TYS1NdMSMXNw1R9dWVgFmsLj2vs
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:
- http://gpg4win.org/
- http://macgpg.sourceforge.net/de/
- Via Paketmanager installieren
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.