suit: Sichere Verschlüsselung?

Beitrag lesen

Was haltet ihr davon:

Beim Login wird das Passwort mittels
hash('sha512', hash('sha256',(hash('sha256', $pass . $salt))) . $user);
verschlüsselt und überprüft, der salt ist locker 200 Zeichen gross und besteht aus allen Möglichen zeichen.

Das ist übertrieben, 200 Zeichen - "alle möglichen" umfasst mehrere Millionen zeichen

Mehrere Millionen ^ 200 überschreitet in jedem fall die Maximale Nachrichtengröße für die SHA-2-Famile.

Ebenso ist das mehrmalige Hashen nur bedingt sinnvoll da es die Entropie des ursprünglichen Strings nicht erhöht aber bei manchen Hash-Algorithmen die Kollisionswahrscheinlichkeit steigert (wie das bei SHA ist, weiss ich nicht - zu diesem zweck wechselt man bei einer auftretenden Kollision dann die Hashfunktion um keine "doppelten Einträge" zu haben.

Sinnvoll gemacht steigert das aber die Dauer des ermittelns eines potentiellen Klartexts drastisch.

(Darf ich da übrigens die zeichen haben: ç,ö,ä,à,è ? Also die ganz exotischen, hab ich jetzt eigentlich ausgelassen.)

Du sagtest "alle möglichen Zeichen"

Das impliziert auch á, ㍐, oder ➡.

Daraus wird mit noch einer Verschlüsselungsrunde ein Key generiert, wieder mit genug Salz. ^^

Der Key landet in der Session.

Was soll das bringen?

Eigentlich wär es doch egal, wenn ich dan die PW's direkt in die Session übernehme oder? Wer den Key hat, hat sowieso vollen zugriff.

Wie stellst du sicher, dass niemand die Session klaut?

Eine Idee wir ich das ganze jetzt noch Perfektionieren kann?

Zwei Dinge: einerseits. Was nutzt das mehrmalige salten und hashen, wenn du das Klartextpasswort brauchst? Jegliche Form das hashens ist hier Unsinn, du musst das Masterpasswort im Klartext zur Verfügung haben, wenn du es als Schlüssel verwendest.

Alternativ kannst du natürlich als Schlüssel den Hash des Masterpassworts verwenden.