Re: Verschlüsselung

Autor: Thomas Jäger <jaeger_at_thjaeger.org>
Datum: 08.01.2007
Philipp Schafft wrote:
>> ich suche nach einer verlässlichen Möglichkeit mit php o.ä. aus einer
>> eingegebenen Datei mit gesetztem Passwort einen Hash zu erstellen, der
>> mit eben diesem Passwort wieder zu entschlüsseln ist.
>> Einzige brauchbare Lösung bisher war ein base64_encode-Verfahren mit
>> Blowfish. Habe gehört, das sei leicht zu knacken. Stimmt das?
> 
> nochmal langsam zum mitschreiben.
> Sehe ich es richtig das du nichts anderes willst als eine Datei symetrich
> (passwort) zu verschluessel?
> 
> Was auch immer du da oben faselst, das ist das was ich draus interpretirt
> bekomme.
> 
>> Gibt es eine Lösung auf md5-Basis?
> 
> was auch immer du willst, md5 ist es jedenfalls nicht.
> md5 gilt als geknackt.

Verschlüsselung mit Passwort hat erstmal nichts mit symmetrisch oder
asymmetrisch zu tuen. Von symmetrischen Verfahren redet man, wenn _ein_
Schlüssel fürs ver- und entschlüsseln verwendet wird. Typische Verfahren
sind : AES (oder Rijndael), DES, Blowfish, Twofish, ...
Blowfish gilt als "quasi" sicher, dass heisst, dass es zwar unter
gewissen Umständen (schwache Schlüssel) empfindlich ist, aber es reicht
aus. Wenn Du ganz sicher gehen willst, nimm AES-256, damit sollte auch
jeglicher Geheimdienst ausgesperrt werden können ;)
Als privater Schlüssel kann ein (hinreichend lang gewähltes) Passwort
dienen.

Base64 ist lediglich ein Verfahren, um Binärzeichen als ASCII Zeichen
darzustellen. Hat also mit Verschlüsselung primär nichts zu tuen. Damit
werden aber vorzugsweise verschlüsselte Dateien (die Binärzeichen
enthalten) abgelegt.

md5, genauso wie sha, ripemd160 etc. sind Digest-Verfahren. Das heisst
mathematisch, Du hast eine Funktion digest(text)=h mit: (1) Die Inverse
lässt sich nur schwer bilden digest(^-1)(h)=text und (2) es lässt sich
nur schwer einen text2 zu text1 finden mit digest(text1) = digest(text2)
(Kollision).
Diese werden oft zur Signatur oder zum Prüfen von Dateien genutzt.
md5 gilt seit 2004 als "nicht mehr so toll", nachdem man Kollisionen
gefunden hat.

> oder eine Standardisirte technologie die gut und sauber funtzt:
> OpenPGP (ja, auch wenn das hier einige nicht glauben wollen,
> aber OpenPGP ist absolut in der lage dies zu tun und ist das fuer sogar
> vorgesehen ;)

Asymmetrische Verfahren (RSA, Elgamal, 2 Schlüssel: öffentlich + privat)
eignen sich aufgrund ihrer notwendigen CPU Leistung nicht für reines
Verschlüsseln, sondern erst dann, wenn Nachrichten verschlüsselt
ausgetauscht werden sollen (Email, Signaturen).
PGP ist eine Mischung: Der asymmetrische (öffentliche) Schlüssel dient
nur zur Verschlüsselung des symmetrisch (temporären) Schlüssel. Dieser
Schlüssel verschlüsselt dann den Text. Ähnlich funktioniert auch SSL/TLS
(das "S" in HTTPS). AES ist mittlerweile das bevorzugte symmetrische
Verfahren in PGP. Blowfish war es lange Zeit (aus Patentgründen nicht
IDEA und bevor es AES gab).
Deinen Kommentar "Standardisirte technologie die gut und sauber funtzt"
verstehe ich in dem Zusammenhang nicht (zumal Blowfish Bestandteil von
PGP ist). Unwissenheit?

Summa Summarum meine Empfehlung:
Verschlüssel Deine Texte mit AES und Passwort.
# openssl aes-256-cbc -a -salt -in file.txt

PHP unterstützt AES-256 (MCRYPT_RIJNDAEL_256) via mcrypt:
http://www.php.net/manual/en/ref.mcrypt.php
http://www.php.net/manual/en/function.mcrypt-cbc.php


Thomas

-- 
http://mailman.uugrn.org/mailman/listinfo/uugrn
Received on Mon Jan 8 23:52:58 2007

Dieses Archiv wurde generiert von hypermail 2.1.8.

Weitere Links: