dani
Goto Top

Perl - Passwort crypten - decrypten

Guten Abend Community,
wie ihr wisst, schreibe ich zur Zeit ein größeres Perlskript.

Nun gut, im Moment stehen die Benutzer und Passwörter im Klartext in einer MSSQL. So, da wir hier aber ein paar (^^) Sicherheitsvorschriften haben, kann das so unmöglich in Produktivbetrieb gehen.
Also habe ich mir gedacht, Perl liefert in dieser Richtung bestimmt was mit. Ich habe mir mal das Modul "Blowfish" angesehen und ehrlich gesagt ist das einfach perfekt für diese Sache. Man braucht den richtigen Key, damit das verschlüsselte Passwort decyrpted wird!

Doch wie stelle ich das jetzt am Besten an?? Sprich ich habe ein schönes Beispiel gefunden. Auf dieser Seite gibt es unten eine kl. Demo. Ich habe eines unsere Testpasswörter dort eingeben und den ausgegebenen Keyin die DB eingetragen.
Dann habe ich folgende Zeilen in das Perlscript geschrieben:
use Crypt::Blowfish;

my $key = pack("H16", "0123456789ABCDEF");  # min. 8 bytes  
my $cipher = new Crypt::Blowfish $key;

my $plaintext = $cipher->decrypt($ciphertext);
Die restlichen Zeilen brauche ich doch eigentlich nicht, oder? Denn cypten fällt ja unter den Tisch, da das Passwort schon gecryptet in der DB steht.
Jedoch mekert er in dieser Konstellation => Fehlermeldung. In $ciphertext steht das verschlüsselte Passwort drin!


Kann mir von euch einer auf die Sprünge helfen?? Achja..das Perlscript läuft unter Redhat 5. Für andere Idee, etc....bin ich natürlich offen.


Schönen Sonntag Abend
Dani

Content-Key: 67133

Url: https://administrator.de/contentid/67133

Printed on: April 19, 2024 at 04:04 o'clock

Member: gnarff
gnarff Aug 27, 2007 at 00:36:18 (UTC)
Goto Top
Hallo Dani!
Das muss an der fortgeschrittenen Stunde liegen, dass ich Deinen Ueberlegungen [ mit dem Perlscript] nicht folgen kann.

Das geht doch theoretisch auch so:
http://www.webcheatsheet.com/php/md5_encrypt_passwords.php
Das ist natuerlich nur MD5...

Eine andere Frage, die sich mir stellt ist, warum Du nicht ein "integrated security model" implementierst, da werden dann keine Passwoerter auf dem SQL Server abgelegt, sondern die Zugriffsverwaltung wird ueber einen extra Server abgewickelt.

Es scheint ja wohl so zu sein, dass Du eine uralt-Version von MS SQL im Einsatz hast, also vor v.4.2;
Die anderen Versionen, ab 6.0 verfuegen sehr wohl ueber eine pwdencrypt() function.
Siehe auch den Artikel von Neil Boyle zumThema:
http://www.databasejournal.com/features/mssql/article.php/1582981
bzw.
http://www.nextgenss.com/papers/cracking-sql-passwords.pdf
ueber Passwortsicherheit in MS SQL Databases.

saludos
gnarff
Member: Dani
Dani Aug 27, 2007 at 06:43:24 (UTC)
Goto Top
Moin gnafff!
Lang is her...schön dich hier zu lesen.

Das ist natuerlich nur MD5...
Jap...ich muss das PW aber wieder im Perlscript im Klartext haben für den Login.

Eine andere Frage, die sich mir stellt ist, warum Du nicht ein "integrated security model"
implementierst, da werden dann keine Passwoerter auf dem SQL Server abgelegt, sondern
die Zugriffsverwaltung wird ueber einen extra Server abgewickelt.
Ist leider nicht möglich bzw. nicht gewünscht.

Es scheint ja wohl so zu sein, dass Du eine uralt-Version von MS SQL im Einsatz hast, also
vor v.4.2;
Ich sags mal so: In MSSQL bin ich nicht der Profi was Funktionen, etc... angeht. Wir benutzen hier eine höhere Version.


Ich weiß, dass der Sicherheitsaspekt leidet und mir auch so nicht passt aber das steht leider nicht zur Diskussion!


Grüße
Dani
Member: Dani
Dani Aug 27, 2007 at 08:12:16 (UTC)
Goto Top
Hi!
Nach 9 Tagen findet man doch noch eine vernünftige Lösung. Hier mal ein kl. Ansatz: http://www.perlunity.de/perl/forum/thread_008425.shtml

Trotzdem vielen Dank an dich "gnaff".


Grüße
Dani
Member: gnarff
gnarff Aug 27, 2007 at 14:23:33 (UTC)
Goto Top
Das ist eine klasse Loesungsansatz -und sogar "salted" , sehr schoen!
saludos
gnarff