[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Verschluesselung
[Thread Prev] | [Thread Next]
- Subject: Re: Verschluesselung
- From: Thomas Jaeger <jaeger@xxxxxxxxxxxx>
- Date: Mon, 08 Jan 2007 23:50:22 +0100
- To: uugrn@xxxxxxxxxxxxxxx
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