Passwortverschlüsselung

Started by Aragon4868, July 09, 2004, 07:42:22 AM

Previous topic - Next topic

Aragon4868

Hallo zusammen,

ich möchte eine eigene Abfrage starten und muss dazu die Usernamen und die Passwörter vergleichen. Jetzt ist für mich aber nicht zu erkennen, wie die Passwörter verschlüsselt werden. Ich hatte an MD5 gedacht, aber das scheint in diesem Fall nicht richtig zu sein. Weiss jemand von euch, wie verschlüsselt wird?

Vielen Dank im Voraus!

Pitti

doch is md5 mit noch bissi zeuch dazu ;)

schau in load.php  zeile 120+irgentwas
die func md5hmac steht irgentwo in den subs.php

gruß pitti
ps: hab mir sagen lassen, manche editoren (zb proton) besitzen suchfunktionen über mehrere datein ;)

Aragon4868

OK! Danke! Dann werde ich da wohl nicht weit kommen

Pitti


Aragon4868

Weil ich nicht weiss was die noch für ein eigenes Verfahren mit eingebracht haben und wenn es simpel ist, hätten sich die Progger das ja direkt klemmen können.

Ich dachte immer MD5 wäre für Passwörter sicher genug, da brauche man nicht noch mehr mit einbringen.

robo47


Pitti

hmm,

also erstens hab ich die betreffenden datein genannt, wo man nur mal reinschaun könnte.
zweitens wird md5 in reinform benutzt. nur die art wie das pw an die routine geht ist etwas speziel.
aus deiner farge hab ich geschlossen, daß du ahnung hast und nur den schubs brauchtest.

aber letztlich gibst du zu wenig infos rüber, was du machen möchtest.

lg pitti
ps: LogInOut.php könnte och ne gute stelle sein, um zu sehn wie smf die pw's vergleicht.
gebe aber zu, daß man ob des abartigen dateinamens nich gleich drauf kommt :D

Aragon4868

Quote from: robo47 on July 09, 2004, 01:27:24 PM
was willst du denn machen?
Erst einmal danke für eure Hilfe.

Ich möchte für einen Usernamen- und Passwortabgleich die DB des SMF benutzen. Das heisst, bevor ein User ein gewisses Script aufrufen darf, muss er sich erst eben authentifizieren. Dies soll wie geschrieben über die SMF DB gehen. Also quasi ein 2 Login nur nach meinen Bedürfnissen. Habe ich mich so vetständlich ausgedrückt :-\

Daniel D.

Könnte man doch auch über ein Board im Forum machen, wo dann halt nur registrierte User Zugriff hätten. Dort stellst Du dann das Script rein.

Sampaguita

Ich lasse bei die Leute über ein und die selbe DB sich einloggen für Forum und BackOffice. Einfach den Code von SMF in das Login kopiert - fertig. Derzeit überlege ich, wie ich die SESSION von Seite und Forum so abstimmen kann, daß das Login auf der gesamten Plattform läuft. Leider finde ich im Moment nicht die Zeit die SESSION von SMF mir mal genauer anzusehen, um sie entsprechend für meine Seite zu verwenden bzw. so zu modifizieren, daß sich die Leute das doppelte Login sparen können.

Im Prinzip ist es aber wirklich extrem einfach: Login-Prozedur in den eigenen Code kopieren (und die Datei natürlich entsprechend gut abdichten!).

Pitti

soweit ich mich erinnern kann, benutzt yabbse wie smf nur den cookie zur verifizierung.
schaut in die settings.php und fragt das ding in euren scripten auch ab.
besser noch ist, wenn man seine scripte ins forum incl aktion=aufruf integriert.

gruß pitti

Christian Land

Tja... würde SMF einfach MD5 nutzen und nicht diese total blödsinnige Variante mit dem Umweg, wäre die Interaktion mit so ziemlich alle anderen Scripts die so rumschwirren, wesentlich einfacher.........

Aber warum einfach wenns auch kompliziert geht....

Naja... der entscheidene Code fliegt in Sources/Load.php rum... um genauer zu sein in der Funktion "loadUserSettings"... dort werden die Cookies und die Session gecheckt, etc.

Gagus

Bei YabBB SE hat es mit dem rüberkopieren des ensprechenden codes gut geklappt, sollte hier auch kein problem sein, ich benutze für mein News-System die Forumsuser-DB :D

KIKA

Bei Yabb war es so, das das PW im Cokie 2x mit MD5 verschlüsselt war, und in der Datenbank nur 1x. Kann mir nicht vorstellen das das geändert wurde.
Also einfach das verschlüsselte PW aus der datenbank nochmal duch MD5 jagen, und dann mit dem PW aus dem Cookie vergleichen.

Gruß KIKA
Ich kann nix dafür
Nur weil du paranoid bist, heißt das noch lange nicht, das sie nicht hinter dir her sind...

Aragon4868

Hi all!

Ich mal wieder. Endlich habe ich mal Zeit gefunden mich an das besagte Thema zu begeben.

Wenn ich jetzt wie nachfolgend den Code bei mir im Script einbinde bekomme ich eine Fehlermeldung. Was läuft da schief?


...
// MD5 Encryption used for passwords.
function md5_hmac($data, $key)
{
$key = str_pad(strlen($key) <= 64 ? $key : pack('H*', md5($key)), 64, chr(0x00));
return md5(($key ^ str_repeat(chr(0x5c), 64)) . pack('H*', md5(($key ^ str_repeat(chr(0x36), 64)). $data)));
}

  $password = md5_hmac($password);
...

Fehlermeldung:
Warning: Missing argument 2 for md5_hmac() in C:\wampp2\htdocs\town\rlc_login.php on line 64

Vielen Dank für eure Hilfe

[Unknown]

$password = md5_hmac($password, strtolower($username));

-[Unknown]

Aragon4868

Vielen Dank für die Antwort. Nun ist die Fehlermeldung weg, aber die Passwortabfrage funktioniert immer noch nicht. Er gibt immer zurück, dass das PW falsch ist. Es ist aber definitiv richtig. Hier nochmal ein Auszug aus meinem Script. Vielleicht seht ihr ja den Fehler und  könnt mir helfen.


...
// MD5 Encryption used for passwords.
function md5_hmac($data, $key)
{
$key = str_pad(strlen($key) <= 64 ? $key : pack('H*', md5($key)), 64, chr(0x00));
return md5(($key ^ str_repeat(chr(0x5c), 64)) . pack('H*', md5(($key ^ str_repeat(chr(0x36), 64)). $data)));
}

  $password = md5_hmac($password, strtolower($username));
  $query = @mysql_query("SELECT realName, passwd FROM smf1_members WHERE realName = '".$_POST['username']."'") or die('Select ist
fehlgeschlagen!');
...


Vielen Dank für eure Hilfe!

robo47

hast du mal $password und $username ausgeben lassen? z.b. is irgendwo ne leerstelel davor oder am ende

Aragon4868

Vielen Dank!

Ich habe den Fehler gefunden. Habe mich vertippt gehabt. Durch das anzeigen der Variablen bin ich dem Fehler auf die Schliche gekommen. Password war richtig nur die Abfrage nicht.

Vielen Dank nochmals für eure Klasse Hilfe.

mediman

#19
Quote from: Aragon4868 on July 09, 2004, 09:16:33 AM
Weil ich nicht weiss was die noch für ein eigenes Verfahren mit eingebracht haben und wenn es simpel ist, hätten sich die Progger das ja direkt klemmen können.

Ich dachte immer MD5 wäre für Passwörter sicher genug, da brauche man nicht noch mehr mit einbringen.
Reines md5 kann geknackt werden, auch wenn der Aufwand für das Hacken einer privaten Site vielleicht ein bissel groß ist.

Das sogenannte "eigene" Verfahren ist mehr als simpel. Hab grad mal reingekiekt.
Es handelt sich um ein simples "keyed" md5, nur etwa kompliziert gecodet um Scriptkiddies abzuschrecken. Ausserdem kenn ich kein Verfahren keyed bzw. random salted md5 zu cracken.

Du kannst, ich hab auch getutet, in den relvanten Files, die md5_hmac() gegen normales md5() austauschen. Das Risiko ist gering und du hat ein kompatibles md5 without alles!

mediman

p.s. alternativ koennte ich die Sourcen als zip hier postulieren
My Projects: http://ticker-oase.de 
Please do not PM me with support requests.

Advertisement: