ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Symmetrische Verschlüsselung

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

In Ergänzung zu der im GnuPG-Artikel beschriebenen Methode der asymmetrischen Verschlüsselung[1] mit Hilfe von Schlüsselpaaren (bestehend aus einem öffentlichen und einem privaten Schlüssel), unterstützt GnuPG auch das symmetrische Verschlüsseln. Bei dieser Variante braucht man vorher nicht die öffentlichen Schlüssel auszutauschen, sondern einigt sich einzig und allein auf ein Schlüsselwort (auch Passwort oder Passphrase oder mehrdeutig Key [Schlüssel] genannt). Diese Methode hat jedoch den Nachteil, dass sie in vielen Situationen nicht so sicher ist wie die asymmetrische Verschlüsselung. Folgende zwei Punkte sind dabei zu bedenken:

Im Gegensatz zur derzeitigen Public-Key-Kryptographie bietet die symmetrische Verschlüsselung auch in Zukunft Schutz vor Angriffe durch Quantencomputer.

Algorithmen

Man kann bei GnuPG zwischen verschiedenen Algorithmen wählen, einmal für die Verschlüsselung an sich und einmal für die Hashfunktion. Eine Prüfsumme (Englisch "hash") sorgt dabei für die Integrität (Unverändertheit) der Daten. Welche Algorithmen zur Verfügung stehen, zeigt folgender Befehl im Terminal [2] an:

gpg2 --version 

Als Ausgabe erscheint z.B.:

gpg (GnuPG) 2.2.4
libgcrypt 1.8.1
Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

Home: ~/.gnupg
Unterstützte Verfahren:
Öff.Schlüssel: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Verschlü.: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Komprimierung: nicht komprimiert, ZIP, ZLIB, BZIP2

Verschlüsselung

In der Zeile Verschlü.: werden nun die symmetrischen Verschlüsselungsalgorithmen aufgeführt. Diese sind standardmäßig:

Von GPG unterstützte symmetrische Verschlüsselungsverfahren
Name Blockgröße/Bit Schlüssellänge/Bit Beschreibung
IDEA 64 128 Alternative zum unsicheren DES-Algorithmus
3DES 64 56, 112, 168 Nachfolgeversion des DES-Algorithmus (auch Triple-DES genannt)
CAST5 64 128 In der Praxis wenig verbreitet
BLOWFISH 64 128 Von Sicherheitsguru Bruce Schneier entworfen
AES 128 128 Derzeit am weitesten verbreitet
AES192 192
AES256 256
TWOFISH 128 256 Nachfolgeversion von Blowfish
CAMELLIA128 128 128 Vergleichbar mit AES
CAMELLIA192 192
CAMELLIA256 256

(Je größer Blockgröße und Schlüssellänge, desto sicherer.)

Achtung!

3DES und Blowfish gelten als unsicher 🇬🇧 und sollten bei sicherheitsrelevanten Anwendungen nicht mehr verwendet werden. (Dasselbe gilt wahrscheinlich auch für IDEA und CAST5, da sie als Blockgröße ebenfalls 64-Bit verwenden. Wegen ihrer geringen Verbreitung gibt es dazu aber kaum zuverlässige Angaben.)

Der Unterschied für den Benutzer ergibt sich meist in der Geschwindigkeit, mit der die Algorithmen verschlüsseln. Wer auf der sicheren Seite sein will, wird sich vermutlich für AES256 oder Twofish entscheiden. IDEA und CAST5 spielen heutzutage in der Praxis kaum eine Rolle.

Prüfsummen (Hashfunktionen)

In der Zeile Hash: werden die verschiedenen Prüfsummen-Algorithmen aufgelistet:

  • MD5, weit verbreiteter Prüfsummen-Algorithmus, der von vielen Webapps verwendet wird. Es existieren zahlreiche Rainbowtables, die es ermöglichen, eine MD5-Prüfsumme in seinen Plaintext umzuwandeln.

  • SHA1, wurde bereits mehrfach durch eine "known plaintext attack" (Angriff über bekannten Klartext) gebrochen.

  • RIPEMD160

  • SHA256, eine Variante von SHA2.

  • SHA384, eine Variante von SHA2.

  • SHA512, eine Variante von SHA2.

  • SHA224, eine Variante von SHA2.

Achtung!

MD5 und SHA-1 gelten als nicht mehr sicher und sollten bei sicherheitsrelevanten Anwendungen nicht mehr verwendet werden. Wer auf der sicheren Seite sein möchte, sollte sich für eine SHA2-Variante entscheiden.

Benutzung

Will man nun eine Datei geheim.txt mit Twofish verschlüsseln und mit SHA512 hashen, gibt man im Terminal dies ein:

gpg2 -c --cipher-algo TWOFISH --digest-algo SHA512 geheim.txt 

Nach diesem Befehl wird man nun nach dem Passwort gefragt. Dieses muss man zur Bestätigung nochmal wiederholen, und dann wird die Datei verschlüsselt. Als Ausgabe erhält man dann die Datei geheim.txt.gpg.

Will man sie wieder entschlüsseln, gibt man im Terminal:

gpg2 -d -o geheim.txt geheim.txt.gpg 

ein. Danach wird man nun wieder nach dem Passwort gefragt, womit die Datei verschlüsselt wurde, und nach dessen Eingabe wird die Datei entschlüsselt.

Weitere Optionen

Parameter Bedeutung
--s2k-mode N N kann dabei die Werte 0, 1 und 3 einnehmen. 0 bedeutet, das Passwort wird im Klartext verwendet, was nicht empfehlenswert ist. 1 bedeutet, dass ein "Salt" zum Passwort hinzugefügt wird, und ist der Standard. 3 ist das sicherste und wiederholt den Prozess von 1 mehrmals.
--s2k-digest-algo Dieser Parameter erwartet einen Prüfsummen-Algorithmus, mit dem das Passwort gehashed werden soll.
--armor ASCII bzw. base64 Ausgabedatei; damit lässt es sich auch über Kanäle übertragen, die keine Binärdaten erlauben.

Beispiel für eine sehr sichere Verschlüsselung (natürlich nur, wenn auch ein sicheres Passwort verwendet wird):

gpg2 -c --cipher-algo TWOFISH --digest-algo SHA512 --s2k-mode 3 --s2k-digest-algo SHA512 geheim.txt 

Diese Revision wurde am 17. Juni 2018 15:36 von rolands11 erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Kommunikation, Sicherheit, Verschlüsselung