QuoteBeim Geheimwort weiß ich nicht, wie man das unkenntlich machen könnte.
2013-10-05T10:54:16 GwenDragon
2013-10-04T17:51:00 GwenDragonUnd MD5 ist einfach zu knacken
2013-10-04T17:51:00 GwenDragonDu kannst ja einen SaltedHash senden. Siehe auch Crypt::SaltedHash
2013-10-05T08:36:15 bianca2013-10-04T17:51:00 GwenDragonDu kannst ja einen SaltedHash senden. Siehe auch Crypt::SaltedHash
Ich hasse Moduldokus mit unvolltändigen Codebeispielen. Was will ich mit Pseudocode?
QuoteAber wirklich enttäuschend finde ich, dass auch auf http://perl-howto.de/kryptographie nicht steht, wie man das Passwort auf der anderen Seite wieder decryptet.
QuoteFrage deshalb hier: Wie kann die Gegenstelle das Geheimwort wieder decrypten? Die Gegenstelle braucht es zur Weiterverarbeitung auf jeden Fall wieder im Klartext wie es vor der Übertragung war.
2013-10-05T11:52:48 pqdann darfst du das passwort jedenfalls nicht hashen.
2013-10-05T14:57:55 pqin der originalfrage steht nicht, dass du das passwort auf dem server im klartext brauchst.
2013-10-04T17:51:41 murphy
2013-10-04T17:51:41 murphy
2013-10-04T17:51:41 murphyEin Passwort würde ich entweder verschlüsselt übertragen, oder, noch besser, gar nicht übertragen, sondern als Grundlage für einen Zero-Knowledge-Beweis verwenden.
2013-10-05T08:45:26 bianca2013-10-04T17:51:41 murphy
Habe mir nur mal die Doku von Digest::HMAC angeschaut und finde auch dort wieder mal nicht, wie man das ganze decryptet??
2013-10-04T17:54:12 MuffiDu willst also einmal signieren und einmal verschlüsseln.
2013-10-04T17:54:12 MuffiGängige symmetrische Verschlüssler sind z. B. AES, 3DES oder Twofish. Für Standardsachen sollten 128 bit Schlüssel immer noch reichen. Wenns wirklich sicher sein soll wohl eher 256.
2013-10-04T17:54:12 MuffiSignieren, also etwas vor Veränderung schützen geht mit Hashfunktionen wie MD5 oder wenns auch hier wirklich sicher sein soll SHA1.
Eine fertige Implementierung ist z. B HMAC. Das kann man aber auch nachimplementieren, ist kein großes Hexenwerk
2013-10-04T18:10:21 RelaisWenn nur die Übertragung verschlüsselt sein soll, dann nimm OpenSSH.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#!/usr/bin/perl use strict; use warnings; use diagnostics; use Crypt::CBC 2.30; my $text = <<PLAIN Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. PLAIN ; my $cipher_sender = Crypt::CBC->new( -key => 'schluessel', -cipher => 'Blowfish', ); my $verschl = $cipher_sender->encrypt($text); print "Salat: '$verschl'\n"; my $cipher_empfaenger = Crypt::CBC->new( -key => 'schluessel', -cipher => 'Blowfish', ); my $klar = $cipher_empfaenger->decrypt($verschl); print 'Klappt'.($klar ne $text ? ' NICHT' : '')."!\n";
2013-10-05T10:08:33 biancaFrage 2: Das Ergebnis wird später mit der Methode POST() von HTTP::Request::Common zu einem Request für LWP::UserAgent verwurstet. Ich vermute, dass an der Stelle aus dem Binärstring Base64 werden wird.
2013-10-05T12:00:18 pqwieso sollte an der stelle aus dem binärstring base64 werden? welcher code sollte das veranlassen und warum?
2013-10-05T15:00:58 pqes sollte wie alle formulardaten uri-encodiert werden. es sei denn, du machst einen file-upload.
2013-10-06T11:39:39 pqdu kannst ja ganz schön schnell lesen
2013-10-05T10:08:33 biancaCrypt::CBC scheint gut zu funktionieren und hat zur angenehmen Abwechslung sogar eine verständliche Doku:
[...]
Frage 1: Kann bei diesem Verfahren wirklich sichergestellt werden, dass jemand nicht allein aufgrund des verschluesselten Binärcodes auf den Schlüssel kommen kann?
[...]
Quote[...]
Frage 3: Der Parameter -cipher ist mir nicht ganz klar. In der Doku steht u.a. You may use any compatible block encryption algorithm that you have installed.. Habe ich eine Chance herauszufinden, was ich alles installiert habe? Oder bezieht sich das darauf, welche der nachfolgend erwähnten Module installiert sind?
[...]
Quote[...]
The -cipher option specifies which block cipher algorithm to use to encode each section of the message. This argument is optional and will default to the quick-but-not-very-secure DES algorithm unless specified otherwise. You may use any compatible block encryption algorithm that you have installed. Currently, this includes Crypt::DES, Crypt::DES_EDE3, Crypt::IDEA, Crypt::Blowfish, Crypt::CAST5 and Crypt::Rijndael. You may refer to them using their full names ("Crypt::IDEA") or in abbreviated form ("IDEA").
[...]
Quote[...]
Angenommen, davon wäre keines installiert, welche Wahlmöglichkeiten habe ich dann? Ist Blowfish die einzige?
[...]
Quote[...]
Würde gern sicherstellen, dass das Verfahren verwendet wird, was den größten "Knackschutz" bei vertretbarem Rechenaufwand bietet.
[...]
Quote[...]
Frage 4: Wenn jemand während der Übertragung die Datei austauscht und mein Empfänger entschlüsselt die Datei mit dem selben Schlüssel wie der Absender, dann kommt ja trotzdem etwas raus. Das entspricht natürlich nicht mehr dem, was abgesendet wurde aber wie kann der Empfänger das feststellen?
2013-10-05T11:47:16 topegDas Passwort ist ja beiden Seiten bekannt
2013-10-06T14:45:20 murphyDer von Dir beschriebene Ansatz schützt Dich zum Beispiel nicht davor, dass jemand Daten an den verschlüsselten Inhalt anhängt und dabei auch die Prüfsumme ersetzt.
2013-10-06T14:45:20 murphysolltest Du einen stark zufälligen Initialisierungsvektor benutzen um die Verschlüsselung zu salzen, wenn Dein Schlüssel eher schwach ist.
2013-10-06T15:03:44 bianca2013-10-06T14:45:20 murphyDer von Dir beschriebene Ansatz schützt Dich zum Beispiel nicht davor, dass jemand Daten an den verschlüsselten Inhalt anhängt und dabei auch die Prüfsumme ersetzt.
Meine Empfängerseite würde dann ja das gesamte Paket verwenden für das Entschlüsseln. Und auf das Ergebnis würde sie die Prüfsumme anwenden. Und dafür wiederum würde die vom Angreifer hinzugefügte Prüfsumme nicht mehr passen. Die passt ja nur auf seinen hinzugefügten Teil plus mein verschlüsselter Teil.
[...]
Quote[...]
2013-10-06T14:45:20 murphysolltest Du einen stark zufälligen Initialisierungsvektor benutzen um die Verschlüsselung zu salzen, wenn Dein Schlüssel eher schwach ist.
Wie macht man das praktisch mit dem Modul Crypt::CBC?