Dies ist eine alte Version des Dokuments!
GPG-Verschlüsselung mit Passwort
- siehe auch:
kurzes Beispiel für eine symetrische Datenverschlüsselung (kompatibel zu OpenPGP):
> echo "Hallo" | gpg --no-options --personal-cipher-preferences TWOFISH -ac --batch --passphrase geheim -----BEGIN PGP MESSAGE----- jA0ECgMCptokjrv0u+T/0jsB7RKCRkOWl9984IXFXOEzanQc9t5qehK01t5VaIj1 zik23XqDVRReTLDEc507ZNjTjwHkFTrB8G/GSw== =DZT8 -----END PGP MESSAGE----- > echo "Hallo" | gpg --personal-cipher-preferences TWOFISH -c --batch --passphrase geheim | base64 jA0ECgMCsncKYQoadLH/0jsBAc5tBCl5mA21qpQMfbXU+WplL1kr7lVSmDZuwsPFkqnyB1zJMFZa 0UxdvibtsQ7DOyHJW89Cm4WQZQ== > echo 'jA0ECgMCsncKYQoadLH/0jsBAc5tBCl5mA21qpQMfbXU+WplL1kr7lVSmDZuwsPFkqnyB1zJMFZa0UxdvibtsQ7DOyHJW89Cm4WQZQ==' | base64 -d | gpg -d --batch --passphrase geheim gpg: TWOFISH verschlüsselte Daten gpg: Verschlüsselt mit einer Passphrase Hallo
Philip R. Zimmermann (* 12. Februar 1954 in Camden, New Jersey) ist Softwareentwickler und Erfinder der E-Mail-Verschlüsselungssoftware Pretty Good Privacy (PGP). Er ist Mitbegründer und Chefentwickler von Silent Circle, einem Unternehmen für verschlüsselte Kommunikation.
Zimmermann studierte Informatik an der Florida Atlantic University und arbeitete anschließend als Softwareentwickler in Boulder, Colorado. Mit seinem Programm PGP war er der erste, der die asymmetrische Kryptographie (auch Public-Key-Kryptographie genannt) als Software der Allgemeinheit leicht zugänglich machte. Dies führte dazu, dass die US-Zollbehörden ihn zum Ziel einer drei Jahre dauernden Untersuchung machten, da die Regierung der Ansicht war, dass US-amerikanische Exportbeschränkungen für kryptographische Software verletzt worden waren, als PGP ab Juni 1991 nach Veröffentlichung als Freeware im Internet seinen Siegeszug rund um die Welt antrat. Nachdem die Regierung den Fall Anfang 1996 ohne Anklage fallen ließ, gründete Zimmermann die PGP Inc., die im Dezember 1997 von Network Associates Inc. (NAI) übernommen wurde, welche ihrerseits 2010 von der börsennotierten Symantec Corporation übernommen wurden. Zimmermann blieb nach dem Verkauf drei Jahre lang bei NAI als Senior Fellow. Im Jahr 2002 wurde PGP der NAI von einer neuen Firma namens PGP Corporation abgekauft, wo Zimmermann nun als spezieller Berater tätig ist. Zimmermann ist Fellow des Stanford Law School’s Center for Internet and Society.
Im März 2006 stellte er die Beta-Version einer neu entwickelten Software namens Zfone zur Verschlüsselung von VoIP-Telefonaten vor.
Im Mai 2015 zog Zimmermann mitsamt seiner Firma Silent Circle von den USA nach Le Grand-Saconnex, einem Vorort von Genf in der Schweiz. Als Grund nannte er Datenschutzbedenken durch die Globale Überwachungs- und Spionageaffäre.
Zimmermann unterstützt außerdem das soziale Netzwerk Okuna, dessen Ziel es ist, eine ethische und datenschutzfreundliche Alternative zu bestehenden sozialen Netzwerken wie Facebook zu sein.
Base64-Kodierung:
> echo 'Hallo' | gpg --enarmor -----BEGIN PGP ARMORED FILE----- Comment: Use "gpg --dearmor" for unpacking SGFsbG8K =9zV7 -----END PGP ARMORED FILE----- > echo 'SGFsbG8K' | base64 -d Hallo > echo 'Hallo' | gpg --enarmor -o /tmp/test.txt > cat /tmp/test.txt | gpg --dearmor Hallo
Im Standard wird von GPG (Ubuntu 18.04) der Verschlüsselungsalgorithmus "CAST5" verwendet, der recht unsicher ist.
Will man einen anderen verwenden, dann kann man ihn mit dem Parameter "--cipher-algo" angeben.
mögliche Verschlüsselungsalgorithmen:
# gpg --version
...
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128,
CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
Das ist eine symetrische Verschlüsselung und kann (theoretisch) durch einen brutforce-Angriff geknackt werden.
Datei mit dem Standard-Cipher (mit CAST5 - unsicher) verschlüsseln:
# gpg -c datei.txt # ls datei.txt.gpg
Datei entschlüsseln:
# gpg -d datei.txt.gpg # gpg -do datei2.txt datei.txt.gpg
Datei mit TWOFISH (sehr sicher) verschlüsseln:
# gpg -c --cipher-algo TWOFISH datei.txt # ls datei.txt.gpg
Datei mit dem Cipher "TWOFISH" (Nachfolger von Blowfish) und dem Hash "SHA512" verschlüsseln:
# gpg -c --cipher-algo TWOFISH --digest-algo sha512 datei.txt # ls datei.txt.gpg
Ausgabedatei im Text-Format (in Base64 kodiert) ablegen (-a):
# gpg -ac --cipher-algo TWOFISH --digest-algo sha512 datei.txt # ls datei.txt.asc
Ausgabedateinamen gezielt angeben (-o datei.txt.gpg):
# gpg --cipher-algo TWOFISH --digest-algo sha512 -aco datei.txt.gpg datei.txt # ls datei.txt.gpg
Datei zusätzlich noch mit BZIP2 komprimieren:
# gpg --cipher-algo TWOFISH --digest-algo sha512 --compress-algo bzip2 -aco datei.txt.gpg datei.txt # ls datei.txt.gpg
Datei entschlüsseln, die Ausgabe wird auf der Standardausgabe ausgegeben:
# gpg -d datei.txt.gpg
den Dateinamen kann man für die Ausgabedatei auch angeben (-o datei2.txt):
# gpg -do datei2.txt datei.txt.gpg
Hashwerte ausgeben:
# echo "Hallo" | gpg --print-md md5 32 90 EC 3C 19 A8 A3 93 62 F7 D7 00 43 F1 56 27 # echo "Hallo" | gpg --print-md RIPEMD160 BB92 5A11 4E28 179E E57C 3378 AF27 EBC2 F835 74FA # echo "Hallo" | gpg --print-md sha1 6CE3 FE14 79A1 0EDB 2F1B DD6D 181A 5B0E 210A BE1A # echo "Hallo" | gpg --print-md sha224 FF36B3C6 7C62E22E 4804C9BD 7F0E5FC3 70A8A0CD 513CC310 E4E19E0B # echo "Hallo" | gpg --print-md sha256 78FCA7A0 DBD0325B 8F77333C 82FB1BA2 A5CBF9E9 0284BD24 E91CB58A C1D6232F # echo "Hallo" | gpg --print-md sha384 0B34B80F 0FB9AEF2 F6338137 F14FE80E E248F75C 835E5210 FFCF1589 693B480A 2E0769B4 6F536C97 EFC6EDC7 D89F0C37 # echo "Hallo" | gpg --print-md sha512 D34796C5 60B67648 0ACBF13B 8272440D E01DD052 6A13AFE7 BE00ABCF B81808F1 8C3939D5 DC863622 E7A327CA 701B9697 C16E0BC8 978AADA8 215F6CEB D1A4E31B
eine einfache Zeichenkette verschlüsseln:
# echo "Hallo" | gpg -ac --cipher-algo TWOFISH --digest-algo sha512 # echo "Hallo" | gpg -ac --cipher-algo TWOFISH --digest-algo sha512 -o /tmp/hallo.txt # cat /tmp/hallo.txt | gpg -d gpg: TWOFISH verschlüsselte Daten gpg: Verschlüsselt mit einer Passphrase Hallo
Detaillierte Informationen (in Ubuntu 20.04 ist der Standard-Cipher jetzt AES256):
# echo "Hallo" | gpg -acv gpg: pinentry launched (29419 gnome3 1.1.0 - xterm :1) gpg: pinentry launched (29430 gnome3 1.1.0 - xterm :1) gpg: benutze Cipher AES256 gpg: Schreiben auf die Standardausgabe -----BEGIN PGP MESSAGE----- jA0ECQMCB0fTUjxNyLH/0jsBM+F6mEcOAHva0flesoGN5mAau1bWVyHkXhUW8Bv5 Cb8rhAMAkxgYm2fkNZsx4myvDM27b0pkteOxvA== =aAaZ -----END PGP MESSAGE-----
- die drei sichersten Cipher in GnuPG Version 2.2.19-3ubuntu2.1 (Ubuntu 20.04 LTS) → Verschlüsselungsarten
