[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Verschluesselung


Philipp Schafft wrote:
>> ich suche nach einer verlaesslichen Moeglichkeit mit php o.ae. aus einer
>> eingegebenen Datei mit gesetztem Passwort einen Hash zu erstellen, der
>> mit eben diesem Passwort wieder zu entschluesseln ist.
>> Einzige brauchbare Loesung bisher war ein base64_encode-Verfahren mit
>> Blowfish. Habe gehoert, 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 Loesung auf md5-Basis?
> 
> was auch immer du willst, md5 ist es jedenfalls nicht.
> md5 gilt als geknackt.

Verschluesselung mit Passwort hat erstmal nichts mit symmetrisch oder
asymmetrisch zu tuen. Von symmetrischen Verfahren redet man, wenn _ein_
Schluessel fuers ver- und entschluesseln verwendet wird. Typische Verfahren
sind : AES (oder Rijndael), DES, Blowfish, Twofish, ...
Blowfish gilt als "quasi" sicher, dass heisst, dass es zwar unter
gewissen Umstaenden (schwache Schluessel) empfindlich ist, aber es reicht
aus. Wenn Du ganz sicher gehen willst, nimm AES-256, damit sollte auch
jeglicher Geheimdienst ausgesperrt werden koennen ;)
Als privater Schluessel kann ein (hinreichend lang gewaehltes) Passwort
dienen.

Base64 ist lediglich ein Verfahren, um Binaerzeichen als ASCII Zeichen
darzustellen. Hat also mit Verschluesselung primaer nichts zu tuen. Damit
werden aber vorzugsweise verschluesselte Dateien (die Binaerzeichen
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
laesst sich nur schwer bilden digest(^-1)(h)=text und (2) es laesst sich
nur schwer einen text2 zu text1 finden mit digest(text1) = digest(text2)
(Kollision).
Diese werden oft zur Signatur oder zum Pruefen 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 Schluessel: oeffentlich + privat)
eignen sich aufgrund ihrer notwendigen CPU Leistung nicht fuer reines
Verschluesseln, sondern erst dann, wenn Nachrichten verschluesselt
ausgetauscht werden sollen (Email, Signaturen).
PGP ist eine Mischung: Der asymmetrische (oeffentliche) Schluessel dient
nur zur Verschluesselung des symmetrisch (temporaeren) Schluessel. Dieser
Schluessel verschluesselt dann den Text. Aehnlich funktioniert auch SSL/TLS
(das "S" in HTTPS). AES ist mittlerweile das bevorzugte symmetrische
Verfahren in PGP. Blowfish war es lange Zeit (aus Patentgruenden 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:
Verschluessel Deine Texte mit AES und Passwort.
# openssl aes-256-cbc -a -salt -in file.txt

PHP unterstuetzt 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