Jemand zu Hause?
QuoteBeim Geheimwort weiß ich nicht, wie man das unkenntlich machen könnte.
2013-10-05T10:54:16 GwenDragon
Crypt::SaltedHash
2013-10-04T17:51:00 GwenDragonUnd MD5 ist einfach zu knacken
2013-10-04T17:51:00 GwenDragonDu kannst ja einen SaltedHash senden. Siehe auchCrypt::SaltedHash
2013-10-05T08:36:15 bianca2013-10-04T17:51:00 GwenDragonDu kannst ja einen SaltedHash senden. Siehe auchCrypt::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.
HashfunktionQuoteFrage 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.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2013-10-05T11:52:48 pqdann darfst du das passwort jedenfalls nicht hashen.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2013-10-05T14:57:55 pqin der originalfrage steht nicht, dass du das passwort auf dem server im klartext brauchst.
HMAC mit dem Prüfsummenalgorithmus der Wahl oder ein Verfahren wie den
Digital Signature Algorithm empfehlen.
Zero-Knowledge-Beweis verwenden.
2013-10-04T17:51:41 murphy
Digest::HMAC angeschaut und finde auch dort wieder mal nicht, wie man das ganze decryptet??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 einenZero-Knowledge-Beweis verwenden.
2013-10-05T08:45:26 bianca2013-10-04T17:51:41 murphy
Habe mir nur mal die Doku vonDigest::HMAC angeschaut und finde auch dort wieder mal nicht, wie man das ganze decryptet??
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2013-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.
Crypt::Rijndael?
Crypt::CBC scheint gut zu funktionieren und hat zur angenehmen Abwechslung sogar eine verständliche Doku: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";
HTTP::Request::Common zu einem Request für
LWP::UserAgent verwurstet. Ich vermute, dass an der Stelle aus dem Binärstring Base64 werden wird. Ist das so OK oder sollte ich schon bei der Verschlüsselung eine andere Methode verwenden, damit nichts binäres raus kommt?2013-10-05T10:08:33 biancaFrage 2: Das Ergebnis wird später mit der Methode POST() vonHTTP::Request::Common zu einem Request für
LWP::UserAgent verwurstet. Ich vermute, dass an der Stelle aus dem Binärstring Base64 werden wird.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2013-10-05T12:00:18 pqwieso sollte an der stelle aus dem binärstring base64 werden? welcher code sollte das veranlassen und warum?
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2013-10-05T15:00:58 pqes sollte wie alle formulardaten uri-encodiert werden. es sei denn, du machst einen file-upload.
HTTP::Request::Common eingelesen.
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem2013-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?
[...]
Crypt::CBC und das gewählte Blockverschlüsselungsmodul mathematisch und programmatisch bugfrei sind, ist das solange sicher, wie die gesamte jemals mit demselben Schlüssel verschickte Nachrichtenlänge in einem vernünftigen Rahmen bleibt. Bei CBC mit randomisiertem IV sollte die irgendwo in der Größenordnung von 2^(<Blocklänge in Bits> / <kleine Konstante>) liegen.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?
[...]
Crypt::CBC nicht benutzen.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
Crypt::OpenSSL::RSA oder
Crypt::RSA zurück greifen. Auf Anfrage sendet der Server den Public Key, der Client verschlüsselt damit und sendet diese Daten.
Crypt::CBC verblowfishen. Und den dafür nötigen key bilde ich auf beiden Seiten dynamisch unter Einbeziehung sich verändernder Werte wie z.B. Datum usw.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.
Crypt::CBC?
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 ModulCrypt::CBC?