Increase Cookie Security

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Increase Cookie Security

Beitrag von drkmnn666 »

klick

ich wollte mal eure meinung dazu hören ob diese mod sinnvoll noch ist. da so wie ich gesehen habe in der session.php schon lange auf md5 umgestellt ist anscheinend. danke

zumal das dort angeführte nicht mehr in der session vorhanden ist.
Benutzeravatar
KeineAhnung
Beiträge: 349
Registriert: Di 29.Mai, 2007 17:35
Wohnort: NRW
Kontaktdaten:

Beitrag von KeineAhnung »

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
includes/sessions.php

#
#-----[ FIND ]------------------------------------------
#
      $auto_login_key = $userdata['user_password'];
      
#
#-----[ REPLACE, WITH ]---------------------------------------------------
#
      $auto_login_key = md5($userdata['user_password'].$board_config['cookie_key']); 
diese stelle sieht nachm Salt aus (siehe wikipedia) also schaden kanns nicht, dadurch wird das im cookie zum auto login passwort nicht klar lesbargespeichert sondern passwort+das_geheime wort in md5, ein bisschen mehr sicherheits bringts ;) aber am ehesten wärs ja eh ein update fürs phpbb2 rauszubringen in dem hash genutzt werden dann kann man die rainbow tables nur noch früd as eine forum benutzten und nicht mehr woanders passwort klauen ;D

WIKIPEDIA Link: http://de.wikipedia.org/wiki/Salt_%28Kryptologie%29

aber nur der cookie wird damit sicherer gemacht das passwort ist in der datenbank immerncoh mitm normalen md5


EDIT: diesen text habe ich mal in einem anderen forum geschrieben um salts ganz einfach und verständlich zu erklären ;)
OHNE SALTS:

Ich benutze das Passwort Test bei 4 verschiedenen Internet Seiten, alle benutzten als verschlüsselung MD5. Eine der Internet Seiten wird gehackt. Alle Passwörter wurdne gestohlen und in deinem Profil ist soger ein Link zu einer der anderen Seiten bei denen du das Passwort benutzt. Der Mensch der das Passwort geklaut hat benutzt eine Rainbow Tabelle. Er sieht "AHA" Das Passwort dieser Person ist abc und kann sich damit überall einloggen


MIT SALTS:

Ich benutze immernoch überall das Passwort Test . Es wird wieder eine Internet Seite gehackt, doch diesmal benutzten alle Seiten MD5+Salts. Die Person sucht in der Rainbow Tabelle, doch da dein Hash ja nichtmehr nurnoch abc ist sondern abc+<zufälliger_wert> ergibt dies einen anderen Hash, da jede Webseite einen anderen Zufälligen Wert hat kommt bei jeder Internet Seite ein anderer MD5 Hash dabei heraus. Sollte nun der eine MD5 in der Rainbow Tabelle als ed04z8 gefunden werden, so funktioniert dieses Passwort nur auf dieser einen Seite, außer eine andere Seite hätte den selben zufälligen Wert gehabt. So kann der Hacker nur das Passwort für die eine Seite ausspionieren und dein Passwort bleibt geschützt.



Ein einfaches Script welches einen Salt mit SHA1 Macht:

[php]<?php

//Copyright by KeineAhnung ka.ultimatik.de

function make_random()
{
$buchstaben = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_/";
$buchstaben = str_split($buchstaben, 1);
$ausgabe = "";
for($i=0;$i<10;$i++)
$ausgabe .= $buchstaben[rand(0,64)];
return $ausgabe;
}

function salt_pass($passwort, $salt)
{
$passwort = sha1($passwort.$salt) or die('SHA1 Verschlüsselung nicht verfügbar!');
return $passwort;
}

function check_pass($passwort, $md5_passwort, $salt)
{
$passwort = sha1($passwort.$salt) or die('SHA1 Verschlüsselung nicht verfügbar!');
if($passwort == $md5_passwort)
return true;
else
return false;
}


$passwort = "ein_passwort";
$salt = make_random();
$verschluesseltes_passwort = salt_pass($passwort, $salt);


echo "Passwort: <b>$passwort</b><br />\nSalt: <b>$salt</b><br />\nVerschlüsseltes Passwort: <b>$verschluesseltes_passwort</b>";

?>[/php]
Zuletzt geändert von KeineAhnung am Mo 25.Feb, 2008 17:05, insgesamt 2-mal geändert.
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Beitrag von drkmnn666 »

Code: Alles auswählen

//
		// Regenerate the auto-login key
		//
		if ($enable_autologin)
		{
			$auto_login_key = dss_rand() . dss_rand();
			
			if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '')
			{
				$sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "
					SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time
					WHERE key_id = '" . md5($sessiondata['autologinid']) . "'";
also das ist der inhalt der session.php, wie müßte da verfahren, weil die zu suchende stelle schaut ja vollkommen anders aus...
Benutzeravatar
KeineAhnung
Beiträge: 349
Registriert: Di 29.Mai, 2007 17:35
Wohnort: NRW
Kontaktdaten:

Beitrag von KeineAhnung »

[quote="drkmnn666";p="85085"]

Code: Alles auswählen

//
		// Regenerate the auto-login key
		//
		if ($enable_autologin)
		{
			$auto_login_key = dss_rand() . dss_rand();
			
			if (isset($sessiondata['autologinid']) && (string) $sessiondata['autologinid'] != '')
			{
				$sql = 'UPDATE ' . SESSIONS_KEYS_TABLE . "
					SET last_ip = '$user_ip', key_id = '" . md5($auto_login_key) . "', last_login = $current_time
					WHERE key_id = '" . md5($sessiondata['autologinid']) . "'";
also das ist der inhalt der session.php, wie müßte da verfahren, weil die zu suchende stelle schaut ja vollkommen anders aus...[/quote]


ich würd mal sagen hier $auto_login_key = dss_rand() . dss_rand(); ... aber mal so ganz nebenbei omg lass es erstmal lieber was fürn phpbb2 benutzt du? o.o wenn der code ganz anders ist weis ich nciht ob das so gut ist den mod einzubauen
drkmnn666
Beiträge: 388
Registriert: Mi 23.Jan, 2008 17:29

Beitrag von drkmnn666 »

ich benutze phpbb 2.0.23 vanilla...
Antworten