1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
790
790
EMPFEHLEN
-
Hi,
ich habe aufgrund eines aktuellen Projektes mir mal Gedanken gemacht, wie ich die Sicherheit meiner Sessions erhöhen kann.
Daher bin ich auf die Idee gekommen, 3 verschiedene SHA1 Werte meiteinander zu kombinieren und diese als Session_id zu benutzen. Dies sollte die Möglichkeiten des zufälligen Treffers (z. B. mittels Rainbowtabellen/Rainbow Table) gegen Null tendieren lassen denke ich.
Hier mal den Denkansatz:
Die Ausgabe sähe wie folgt aus:PHP-Code:/*
-------------------------------------------------------
Cryptography funktion - 3x SHA1 kombiniert
-------------------------------------------------------
*/
// "ClosedDoor" - SHA1 coded - Vom Benutzer frei gewählt
// und in Datenbank-Userprofil gespeichert
$salt_1 = "6a2181a17e3a4c902996a33266cfc554cff49be1";
// "MobyDick" - SHA1 coded - Fest implementiert im System
// vom Entwickler vergeben
$salt_2 = "29edcdf410a7907e3826c5fbc5a15f0a1ae95953";
// "FreeEntry" - SHA1 coded - Passwort des Benutzers
// von ihm frei gewählt
$password = "c4777c8581cb36c74be0923e4a4b1d753de6d4d6";
function cryptmix($salt_1,$salt_2,$password) {
echo "<p>".$salt_1."<br />";
echo $salt_2."<br />";
echo $password."</p>";
$salt_1 = str_split( $salt_1, 1 );
$salt_2 = str_split( $salt_2, 1 );
$password = str_split( $password, 1 );
// Jeweils die 1. Ziffer der 3 Strings wird hintereinandergereiht,
// dann die 2., etc.
for($i=0; $i<40; $i++) {
$mix[] = $salt_1[$i].$salt_2[$i].$password[$i];
}
// Ausgabe des "gemischten" (Gesamt-) Strings mit 120 Stellen
echo "Mix: ";
for($i=0; $i<40; $i++) {
echo $mix[$i];
}
// Wandelt das Array $mix[] in den String $mix um zwecks weiterer Verwendung
$mix = join('',$mix);
}
// Aufruf der Funktion
cryptmix($salt_1,$salt_2,$password);
Das Array $mix[] wird dann als Session_id gespeichert. Kann man auch "nur" mit zwei SHA1 Werten machen, was die Arraylänge auf 80 Zeichen reduziert und die Reproduzierbarkeit auch minimal erscheinen lässt.Salt_1: 6a2181a17e3a4c902996a33266cfc554cff49be1
Salt_2: 29edcdf410a7907e3826c5fbc5a15f0a1ae95953
Password: c4777c8581cb36c74be0923e4a4b1d753de6d4d6
Mix: 62ca942e71d78c71dcaf8145718e013aca7b493c0697c0e723498b92e660ac93523f32be6c465aca4f1bc515fd5074a5c13f adfee49695db94e5d136
Was haltet ihr davon?
Beste Grüße!Geändert von preko (25.01.11 um 11:56 Uhr) Grund: Tippfehler bereinigt. ;)
Wem das Wasser bis zum Hals steht, sollte den Kopf nicht hängen lassen.
Was man heute Rap-Musik nennt, hieß früher Stottern und war heilbar...
Es gibt zwei Wege im Leben - den schweren und den falschen!
-----------------------------------------------------------------------------------------------------
http://www.prenociste-mir.com
-----------------------------------------------------------------------------------------------------
-
25.01.11 11:59 #2
Meiner Meinung nach ist das eher ein Beitrag für Security through obscurity.
Die Gefahr von Rainbow Tables, von denen es für SHA noch nicht soviele gibt, wie z. B. bei md5(), sind ja nicht direkt für das Finden von Passwörtern da, sondern für die Kollisionsmenge.
Hier würde ich sagen: Zuviel Rechenaufwand für zuwenig Ertrag.
Für einen vernünftigen Salt:
Man nehme das Passwort, verlängere es mit einem Salt und erstelle einen Hash, fertig.KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Ich bin ein Fan von folgeneder Verschlüsselung:
Passwort wird md5 verschlüsselt. Dann wird mit einen : ein salt drangehangen. Dieses Konstrukt wird dann nochmal md5 verschlüsseltIch bin keine Signatur! - Auch wenn`s so aussieht :) - Wirklich!
Über ein Danke freut sich jeder
-
26.01.11 12:04 #4
Es gibt riesige Rainbowtables in md5() und es sollte, imho, einfach nicht mehr benutzt werden. Es geht nicht um Passwörter die gefunden werden, sondern um Kollisionen bei md5.
D. h. unterschiedliche Werte erzeugen den gleichen Hash. Und in dieser Hinsicht ist md5 geknackt, weshalb da auch kein Salt mehr hilft. Dieser hilft hier nur keinen Rückschluss auf das richtige Passwort zu bekommen, falls der User auf mehreren Seiten das gleiche Passwort verwendet. Aber es hilft nicht die Applikation vor dem Login zu schützen. Deshalb lieger auf einen stärkeren Algorithmus setzen.KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
Ähnliche Themen
-
[C++] Passwortsicherheit SQL
Von Reiskocher im Forum C/C++Antworten: 6Letzter Beitrag: 18.08.10, 15:26 -
Anzeige der Passwortsicherheit
Von Freak_Desperado im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 20.06.07, 17:05 -
sha1 in PostgreSQL?
Von DealeyLama im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 14.09.05, 23:23 -
sha1 - Verschlüsselung
Von bastiglasl im Forum PHPAntworten: 4Letzter Beitrag: 11.06.04, 14:05 -
Passwortsicherheit überprüfen
Von coredump im Forum Security (Viren, Trojaner, Spam)Antworten: 6Letzter Beitrag: 06.02.04, 19:55





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren