ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

Symmetrische Verschlüsselung

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

In Ergänzung zur im GnuPG-Artikel beschriebenen Methode der asymmetrischen Verschlüsselung[1] mit Hilfe von öffentlichen und privaten Schlüsselpaaren unterstützt GnuPG auch das symmetrische Verschlüsseln. Bei dieser Variante muss man vorher nicht die öffentlichen Schlüssel austauschen, sondern einigt sich einzig und alleine auf ein Schlüsselwort (auch Key, Passwort oder Passphrase 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:

  • Das Schlüsselwort muss beiden Parteien bekannt sein. Dabei muss strengstens darauf geachtet werden, dass niemand sonst das Passwort erfahren kann, denn sonst kann er ebenfalls die Nachricht entschlüsseln. Bei der asymmetrischen Verschlüsselung hingegen müssen nur die öffentlichen Schlüssel ausgetauscht werden. Fängt diese ein Fremder ab, kann er damit jedoch nicht die Nachricht entschlüsseln.

  • Während bei der asymmetrischen Verschlüsselung das wichtigste ist, dass man den privaten Schlüssel sicher und geheim aufbewahrt ist bei der symmetrischen Verschlüsselung das wichtigste, dass man einen guten Schlüssel verwendet. Die Sicherheit der verwendeten Algorithmen hängt zum größten Teil von der Verwendung eines starken Passwortes ab. Dies bedeutet einerseits, dass es eine große Länge besitzen sollte und aus einer Mischung von Groß- und Kleinbuchstaben, Zahlen und Sonderzeichen bestehen sollte.

Algorithmen

Man kann bei GnuPG zwischen verschiedenen Algorithmen wählen. Einmal für die Verschlüsselung an sich und einmal für das Hashen. Ein Hash sorgt dabei für die Integrität der Daten. Welche Algorithmen einem zur Verfügung stehen sieht man indem man im Terminal [2] den Befehl

gpg --version 

ausführt. Als Ausgabe erscheint dann dies:

gpg (GnuPG) 1.4.6
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, RSA-E, RSA-S, ELG-E, DSA
Verschlü.: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
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 aufgelistet. Dies sind standardmäßig:

  • 3DES, (auch Triple-DES genannt) ist eine verstärkte Methode des DES-Algorithmus.

  • CAST5

  • BLOWFISH, vom Sicherheitsguru Bruce Schneier entworfen.

  • AES, benutzt eine 128bit Blockgröße (je größer die AES-Blockgröße desto sicherer).

  • AES192 , AES mit einer 192bit Blockgröße.

  • AES256 , AES mit einer 256bit Blockgröße.

  • TWOFISH, die Nachfolge-Version von Blowfish.

Die Algorithmen sind alle recht sicher und nehmen sich nicht viel. Der Unterschied für den Benutzer ergibt sich meist nur 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.

Hash

In der Zeile Hash: werden die verschiedenen Hash-Algorithmen aufgelistet:

  • MD5, weit verbreiteter Hash-Algorithmus, der von vielen Webapps verwendet wird. Es existieren zahlreiche Rainbowtables, die es ermöglichen, einen MD5-Hash in seinen Plaintext umzuwandeln.

  • SHA1, wurde bereits mehrfach durch eine Known-Plain-Text-Attacke gebrochen.

  • RIPEMD160

  • SHA256 , eine verstärkte Variante von SHA.

  • SHA384 , eine verstärkte Variante von SHA.

  • SHA512 , eine verstärkte Variante von SHA.

  • SHA224 , eine verstärkte Variante von SHA.

Auch wenn MD5 und SHA1 in der Theorie nicht so sicher sind, sind sie bei der Benutzung in der Praxis jedoch immer noch recht sicher.

Wer jedoch auf der sicheren Seite sein möchte, sollte sich für SHA512 entscheiden.

Benutzung

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

gpg -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:

gpg -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

ParameterBedeutung
--s2k-mode NN 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. Und 3 ist das sicherste und wiederholt den Prozess von 1 mehrere male.
--s2k-digest-algo Dieser Parameter erwartet einen Hash-Algorithmus, mit dem das Passwort gehashed werden soll.

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

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

ubuntuusers.local › WikiGnuPGSymmetrische Verschlüsselung