anpera.net
https://anpera.homeip.net/phpbb3/

Passwörter verschlüsselt übertragen
https://anpera.homeip.net/phpbb3/viewtopic.php?f=43&t=1577
Seite 1 von 1

Autor:  dragonslayer [ Di 19 Jul, 2005 00:40 ]
Betreff des Beitrags:  Passwörter verschlüsselt übertragen

Das Passwort wird bei LotgD unverschlüsselt über das Netz übertragen und in der Login form gespeichert. Ich hab mitbekommen, dass einige User damit Schindluder getrieben haben und sich über geknackte Mailaccounts etc beschwert haben. Also wird mit dem folgenden kleinen Addon das Passwort direkt auf dem PC des Users in MD5 gehashed und ist somit nicht mehr für anderes verwendbar. Natürlich kann es immernoch abgefangen werden und für eine Replay Attacke ausgenutzt werden, wenn sich ein Angreifer damit auskennen sollte . Netter Nebeneffekt, das Passwort wird nicht mehr im Login Form gespeichert. Da viele User von mir aus der Schule spielen ist das sehr nützlich.

Los geht's

1. Datei md5.js in das Templates Verzeichnis speichern

2. common.php öffnen
suche
$this->bbcode_second_pass_code('', '
$script.="<script language=\"JavaScript\" type=\"text/javascript\">
')

ersetze mit
$this->bbcode_second_pass_code('', '$script.='<script language="JavaScript" type="text/javascript" src="templates/md5.js"></script>';
$script.="<script language=\"JavaScript\" type=\"text/javascript\">')

3.index.php öffnen
suche
$this->bbcode_second_pass_code('', 'output("<form action='login.php' method='POST'>"')

ersetze mit
$this->bbcode_second_pass_code('', '$encoded_password_transfer_script = 'onSubmit="document.forms.loginform.hidden_pw.value = calcMD5(document.forms.loginform.password.value);document.forms.loginform.password.value=\'\';"';
output("<form action='login.php' name='loginform' method='POST' $encoded_password_transfer_script><input type='hidden' name='hidden_pw' />"')

3. Login.php öffnen
suche
$this->bbcode_second_pass_code('', '
$sql = "SELECT * FROM accounts WHERE login = '$HTTP_POST_VARS[name]' AND password=MD5('$HTTP_POST_VARS[password]') AND locked=0";
')

ersetze mit
$this->bbcode_second_pass_code('', '$sql = "SELECT * FROM accounts WHERE login = '$HTTP_POST_VARS[name]' AND password='$HTTP_POST_VARS[hidden_pw]' AND locked=0";')

Das sollte es gewesen sein. Ich hoffe das passt in die Standarddistribution noch rein, ich weiß mittlerweile nicht mehr genau wo wir schon was geändert haben und wo nicht.

Dateianhänge:
Dateikommentar: MD5 Javascript Bibliothek entpacken
md5.zip [2 KIB]
646-mal heruntergeladen

Autor:  Kevz [ Di 19 Jul, 2005 00:53 ]
Betreff des Beitrags: 

Öhm nur so am rande, in der ext 3 werden die passwörter bereits verschlüsselt...

Autor:  dragonslayer [ Di 19 Jul, 2005 01:06 ]
Betreff des Beitrags: 

Ja, das stimmt, die Passwörter werden in das Login formular eingetragen, und im Klartext an den Server gesendet, wo sie dann "verschlüsselt" werden. Mit dem Hack oben werden die Passwörter bereits lokal verschlüsselt!
Das Ziel ist, dass man das Klartextpasswort nicht mehr sehen kann, wenn man den Traffic mitschneidet, um evtl zu testen, ob Webmailer/Ebay/Amazon des Users mit dem gleichen Passwort funktionieren...ich will gar nicht wissen wie oft das funktioniert.
Funktional ändert sich also nix an der ext3, ich fands nur sinnvoll, weil ich so ein paar echt dreisten Kerlen die Tour vermiesen kann

Autor:  Chaosmaker [ Di 19 Jul, 2005 21:25 ]
Betreff des Beitrags: 

Öh... ich kann nur davon abraten, das einzubauen, denn es macht das System deutlich unsicherer.
Nach Deinem Addon werden die Paßwörter nämlich clientseitig verschlüsselt und nicht mehr serverseitig - somit kannst Du sie gleich unverschlüsselt lassen, da der eigentliche Sinn einer Verschlüsselung vollkommen zunichte gemacht wird.
Dazu reicht es auch weiterhin, einfach die eingegebenen Paßwörter mitzuloggen - man übergibt sie einfach in einem selbst erstellten Formular und nicht über das von LoGD.

Autor:  dragonslayer [ Fr 22 Jul, 2005 09:50 ]
Betreff des Beitrags: 

Kannst Du bitte versuchen das nochmal zu erklären wo der Nachteil in der Methode besteht gegenüber der bisherigen Anpera-Methode? Mag sein, dass ich da in meiner Betrachtung was übersehen habe. Meiner Meinung nach ändert sich an der Sicherheit des Spiels nichts, nur eben dass das Klartextpasswort nicht mehr zu sehen ist, wenn man den Traffic mitlogged.

Autor:  Chaosmaker [ Fr 22 Jul, 2005 10:49 ]
Betreff des Beitrags: 

Ganz einfach: In der aktuellen Anpera-Version ist das Paßwort in der DB verschlüsselt, wird aber im Klartext übertragen - mit dem Sinn, daß jemand, der Zugriff auf die DB bekommt, keine brauchbaren Paßwörter hat, sondern nur unnütze MD5-Keys.
Wird das Paßwort aber schon Clientseitig bei der Eingabe verschlüsselt, hat das zur Folge, daß das Paßwort so übertragen wird, wie es in der DB steht. Sprich: Ein möglicher Angreifer kann wie gehabt das Paßwort bei der Übertragung von Client zu Server abfangen und sich damit einloggen (indem er sich eine eigene Maske bastelt, wo es direkt gesendet wird), aber zusätzlich kann jemand, der - aus welchen Gründen auch immer - Lesezugriff auf die DB bekommt, sich auch mit jedem beliebigen Account einloggen.
Sprich, der einzige Unterschied zu vorher ist, daß ein Angreifer nicht weiß, was der User eingegeben hat, sondern "nur", was er zur DB senden muß, damit er reinkommt, und daß die Datenbank weitaus unsicherer wird.

Einzig sinnvolle Methode wäre wie in der 1er-Version von LoGD, das Paßwort doppelt zu verschlüsseln - einmal clientseitig und einmal serverseitig. Damit wäre dem Anspruch einer sicheren Datenbank immer noch gedient und ein Angreifer würde nicht die Eingabe des Users sehen. Einloggen könnte er sich mit einem abgefangenen, nur einmal verschlüsselten Paßwort allerdings trotzdem noch.

Autor:  dragonslayer [ Fr 22 Jul, 2005 16:49 ]
Betreff des Beitrags: 

Hm, okay, das sehe ich ein, den Punkt "direkter Datenbankzugriff" hab ich nicht bedacht. In dem Fall ist das was ich oben geschrieben habe wirklich vollkommen unsicher und sollte so nicht verwendet werden. Ich denke ich habe dafür aber eine Lösung, ohne doppelte MD5 Prüfsumme auf Serverbasis
Ich versuchs mal und danke für den Hinweis!

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/