35 Reaktionen zu “Passwort Sicherheit erhöhen mit saltedpasswords”

Kommentare abonnieren (RSS) oder TrackBack URL

2 kleine Bemerkungen:

-) Mit 4-6 wird saltedpasswords default auf on sein

-) Was mir bisschen fehlt ist das Bewusstsein von Extensionautoren, die Extensions im TER veröffentlichen. Vielen scheint nicht bewusst zu sein, dass aufgrund Ihrer unsauberen Arbeiten sowas wie bei Rewe möglich bzw deutlich erleichtert wird. Ich bitte das mal gründlich zu verinnerlichen wenn man die Extension ins TER hochladet

Georg Ringer am 25. Juli 2011 um 07:59

@Georg: wird saltedpasswords in TYPO3 4.6 nur bei Neuinstallationen aktiv sein oder auch bei Updates auf 4.6?

Peter Kraume am 25. Juli 2011 um 08:08

@Peter: Trete der Diskussion bei und bestimme mit wie es sein wird:

http://lists.typo3.org/pipermail/typo3-project-v4/2011-July/002645.html

Helmut Hummel am 25. Juli 2011 um 08:44

Das temporäre Verzeichnis für rsaauth ist nur nötig, wenn openssl nicht direkt als PHP Modul zur Verfügung steht (eher selten).

Helmut Hummel am 25. Juli 2011 um 08:52

Hi Peter,

danke für den Artikel und dass du den Leuten saltedpasswords näher bringst. Wie erwähnt und wieder von Rewe demonstriert: Ein absolutes Muss!

Ich hab zu selbigem Theme letztes Jahr auch mal eine Präsentation gemacht. Ist inhaltlich ziemlich deckungsgleich, aber wen es interessiert: http://www.slideshare.net/StephenKing/passwrter-in-typo3-sicher-speichern-mit

Ergänzend:
Zur Situation ohne saltedpasswords/rsaauth:
> Bislang “verschlüsselt” TYPO3 das Passwort mit einer JavaScript Methode, bevor es zum Server übertragen wird.
AFAIK wird einfach vor der Übertragung schon der MD5-Hash berechnet, der dann übertragen wird.

Die Konvertierung eines Passworts in ein gesalzenes funktioniert natürlich nur für unverschlüsselt gespeicherte FE-User-Passwörter (ich hoffe, das macht eh keiner mehr ;-)). Alle anderen Passwörter können nur beim ersten Login des Users konvertiert werden, weil nur da kurzzeitig das Passwort im Klartext vorliegt.

Steffen Gebert am 25. Juli 2011 um 09:34

Vielen herzlichen Dank für diesen Beitrag. Ich hoffe, er bewegt Admins dazu, die Extension einzusetzen.
Einen Punkt möchte ich aber ansprechen:
Es ist richtig, dass die Basis für saltedpasswords eine TER-Extension von mir ist. Aber zum derzeitigen Stand haben auch andere Personen maßgeblich beigetragen:
* Core-Integration
Steffen Ritter (v4 Core Team), Oliver Hader (v4 team leader)
* Konvertierungs-Task
Christian Kuhn (v4 Core Team)
* Default Integration in v4.6
Helmut Hummel (Security Team)

Und verwaltet wird die Extension mittlerweile vom Core Team.
Genau das zeichnet den TYPO3 Core aus: viele Personen tragen zum Gelingen bei. Und kollaboriertes Arbeiten erhöht zusätzlich noch die Code-Qualität.

Marcus Krause am 25. Juli 2011 um 09:43

Hallo Peter,
danke für die idiotensichere Anleitung.
Ich hab meine Seiten gleich angesehen und hatte es tatsächlich auf einer vergessen einzurichten. Dank Deiner Anleitung war das jetzt auch nur eine Sache von fünf Minuten.
Viele Grüße,
Hella

Hella Schuster am 25. Juli 2011 um 11:43

Meines Wissens wird als Salz der EncryptionKey aus der localconf.php genommen. Müßten dann nicht bei einer Änderung des encryptionKey alle Paßwort-Hashes ungültig und damit ein Login unmöglich werden?

Andreas am 25. Juli 2011 um 23:37

Hi Andreas,

ne, das stimmt so nicht. Das salt wird für jedes Passwort individuell generiert und zusammen mit dem Passwort im Hash abgespeichert. Die ersten paar Zeichen sind das salt, danach folgt der sich aus hashfunktion(password + salt) ergebende Hash.

Ist in der von mir oben verlinkten Slideshare-Präsentation etwas ausführlicher erklärt.

Steffen

Steffen Gebert am 25. Juli 2011 um 23:40

Meine Information hatte ich aus dem Buch „100 Tips für TYPO3“ von Patrick Lobacher (Seite 229).

Andreas am 25. Juli 2011 um 23:49

Das hab ich nicht. Wenn das so drin steht, dass die Passwörter nur auf dem Encryption Key basieren (bzw der essenziell dafür ist), dann ist das grob falsch. Definitiv.

Gruß
Steffen

Steffen Gebert am 25. Juli 2011 um 23:51

Bist du so gut, und liest das zur Sicherheit noch ein zweites Mal durch (was du aber bestimmt schon getan hast.. 😉 und schreibst dann Patrick einfach eine Mail, dass er da Bescheid weiß?

Danke!

Steffen Gebert am 25. Juli 2011 um 23:57

Ich hab es jetzt bestimmt 4x gelesen… Und es steht im krassen Gegensatz zu Deinen Ausführungen.
Ich werde mich an ihn per Mail wenden.
Vielen Dank für Deine Zeit!

Andreas am 26. Juli 2011 um 00:00

Hallo,

der Beitrag hat mir endlich die Lösung für mein Problem geliefert.

Ich hatte das Login bereits mit saltedpasswords und rsaauth ausgestattet, jedoch wurden Passwörter nur im Klartext abgefragt. Die Lösung war der Hinweis auf das OpenSSL. Das war in der PHP-Version auf dem Webserver nicht vorhanden. Nachdem ich nun beim Provider die richtige PHP-Version eingerichtet habe, funktionierts.

Vielen Dank.

Michael D. am 26. Juli 2011 um 10:33

Hi Michael,

eigentlich müsste rsaauth dich ja deutlich warnen, wenn es nicht lauffähig ist und weder die PHP openssl-Extension findet, noch das openssl Binary ausführen kann.

War das im Extensionmanager nicht der Fall?

Steffen

Steffen Gebert am 26. Juli 2011 um 10:51

Hallo Steffen,

das war nicht der Fall. Alle Extensions wurden mir als funktionsfähig und sauber konfiguriert ausgewiesen. Deshalb quält mich dieses Problem auch schon 3 Wochen. Wenn das Problem so klar angezeigt werden müsste, ist das wahrscheinlich auch der Grund dafür, dass im Netz nichts zu finden war, dass das ein großer Stolperstein sein kann.

Michael D. am 26. Juli 2011 um 11:13

Hallo, evtl. kannst du miir sagen wieso das Ganze bei mit lokal nicht funktioniert. Ich habe WIn7-System und das aktuelle Xampp. Habe in der php.ini auch die extension php_opensll aktiviert. Die installation und die Checks in Typo3 sind alle erfolgreich, aber wenn ich mich erneut im BE einloggen wil erhalte ich die fehlermeldung „no authentications methods available..“ Hast du einen Tipp?

Carlos am 29. Juli 2011 um 09:13

Mir geht’s ähnlich wie Carlos, ich bekomme es Local nicht zum laufen (mit WAMPSERVER) und dass ob wohl OpenSSL aktiviert ist.

Ich fühle mich bei Typo3-Sachen (wohl zurecht) immer noch als Noob….

David am 20. Dezember 2011 um 17:09

Danke für die Anleitung!

Alex am 17. Juni 2012 um 15:26

Hallo zusammen,

vielen Dank erstmal für die ganzen Ausführungen! Mich beschäftigt derzeit ein höchst kurioses Problem. Da mir die sr_feuser_register-ext ein wenig zu komplex ist (muss ja fast alles im Typoscript konfiguriert werden), habe ich vor kurzem datamints_feusers installiert und eine Registrierung gebastelt.
Soweit funktioniert die ext super. Man kann sich registrieren, bekommt ne mail mit bestätigungslink (double-optin), danach gibts noch ne adminbestätigung, auch per Mail mit Link und anschließend ist der User perfekt im Backend zu sehen. Alles scheint geklappt zu haben. Auch das Passwort ist verschlüsselt (oben genannte extensions waren die ersten, die installiert wurden). Aber der Schein trügt. Nach einem Loginversuch kommt die Meldung, dass während der Anmeldung ein Fehler aufgetreten sei. Mehrere Testuser später lege ich probeweise einen Testuser mit der sr_feuser_register-ext an, der ein identisches Passwort hat und siehe da: In der DB stehen unterschiedliche hashes! Auf welchem Wege kann denn da was falsch gelaufen sein? Theoretisch ist doch für die Verschlüsselung nur und ausschließlich die ext saltedpasswords zuständig, oder?

Beste Grüße aus der sächsischen Landeshauptstadt
Addy

Addy am 10. August 2012 um 20:27

Hier muß ich was richtig stellen:
die Paßwörter werden in der Datenbank nicht verschlüsselt abgelegt, sondern gehasht (ist nicht umkehrbar).
Der Hash wird mit dem Salz erzeugt, das ist richtig. Aber bei jedem Erzeugen des Hashs wird ein anderes Salz benutzt und damit entsteht auch jedes mal ein anderer Hash. Das Salz steht übrigens auch in dem Hash mit drin.

Andreas am 10. August 2012 um 22:07

Jetzt war ich doch auch etwas ungenau in meinem letzten Satz: Das was letztlich in die Datenbank geschrieben wird ist das Salz und der Hash.

Andreas am 10. August 2012 um 22:11

Das Salz müsste doch für alle Hash-Vorgänge im selben System gleich sein, oder?
In meiner DB fangen alle Hashes mit $2a$07$ an. So wie ich das jetzt hier verstanden habe, ist das das Salz. Alles andere ist der Hash. Bei zwei gleichen Passwörtern sollte der doch gleich sein. Sonst würde ja auch der Login nicht klappen. Nur seltsamerweise erzeugt datamints_feusers bei mir einen anderen Hash als sr_feuser_register (bei gleichem Salt – s.o.). Die Loginform hasht eingegebene PW’s so, dass sie mit den Hashes von sr_feuser_register übereinstimmen, aber nicht mit den Hashes der datamints_feusers-Extension.

Addy am 11. August 2012 um 01:12

Der Hash wird gebildet aus (zufälligem) Salz und Paßwort. In der Datenbank stehen Salz und Hash (aneinandergehängt).

Andreas am 11. August 2012 um 08:08

Okay. Hab mir gerade nochmal die Slideshare-Folien von Steffen angeschaut und dabei gemerkt, dass das $2a$07$ nur das Blowfish-Präfix ist. Wie wird denn aber sichergestellt, dass die Loginform das selbe Salz nimmt, mit dem auch das Passwort in der Datenbank gesalzen wurde?
Irgendwie muss ja auch ein Vergleich stattfinden, bei dem eine Übereinstimmung, bzw. Abweichung festgestellt wird…

lg, Adrian

Addy am 11. August 2012 um 12:42

Das im Login-Formular eingegebene Kennwort wird mit einer JavaScript Funktion des Formulars verschlüsselt und dann zum Server übertragen. Dieser entschlüsselt es und erzeugt unter Verwendung des Salzes (steht ja in der DB) den Hash und vergleicht ihn mit dem in der DB hinterlegten Hash.

Andreas am 11. August 2012 um 14:42

Das Salt ist im Hash selbst enthalten (je nach Algorithmus unterschiedlich viele Zeichen am Anfang des Hashes). Daher verwenden nicht alle Passwörter das gleiche Salt.

Die crypt-Funktion nimmt als ersten Parameter das zu überprüfende (Klartext-)Passwort und als zweiten Parameter das salt. Um das zu übergeben, übergibt man einfach den Hash, der in der DB steht. Der Rückgabewert hasht dann das Passwort auf Basis des angegebenen Salts, was genau das ergeben sollte, was in der DB steht (wenn es das richtige PW war). Sprich, wenn ($hash == crypt($password, $hash) TRUE ist, dann ist $password das selbe, das zur Erzeugung von $hash verwendet wurde.

Aber ja, crypt() ist schon etwas kryptisch zu verstehen 😉

Steffen

Steffen Gebert am 11. August 2012 um 16:14

Hallo
Nachdem ich convert user password to salted password fürs BE gemacht habe, komme ich beim nächsten Anmelden nicht mehr ins Backend. Mein Passwort wird anscheinend nicht automatisch konvertiert.
Ich verstehe aber deine obige Erklärung nicht, wie man das anpassen kann.
Mitgelieferter Scheduler Task.
Brauche dringend Hilfe.
Danke
Chantal

Chantal am 13. August 2012 um 23:33

Hey, toller Artikel, vielen Dank dafür. Ich beschäftige mich seit Jahren mit dem Thema Sicherheite in CMS. Dabei kommt sicheren Passwörtern eine zentrale Bedeutung zu.

Herzliche Grüße!

Mittags-Pause.de am 16. Dezember 2012 um 11:35

Gracias 🙂

Marks am 24. Januar 2013 um 13:43

Prima Anleitung! Damit konnte ich diese letzte Lücke bei mir in wenigen Minuten schliessen!

Danke dafür!

Merlin

Merlin am 05. Dezember 2013 um 18:33
Trackbacks & Pingbacks

Passwort Sicherheit erhöhen mit saltedpasswords | TYPO3 Blogger…

Der Artikel soll zeigen, dass es in wenigen Schritten möglich ist, die Passwort Sicherheit in TYPO3 Webseiten zu erhöhen um im Fall eines Einbruchs auf den Webserver nicht auch noch alle Passwörter zu verlieren….

Pingback von t3n.de/socialnews am 25. Juli 2011 um 07:42

[…] Artikel zu dem ich nur sagen kann: “Must have!”. Mal wieder im TYPO3 Blogger gefunden: Passwort Sicherheit erhöhen mit saltedpasswords Mit den beiden Extensions rsaauth und saltedpasswords kann die Sicherheit der TYPO3-Installation […]

Pingback von TYPO3 - Passwort Sicherheit | Ventil FeelFree am 25. Juli 2011 um 22:12

[…] vor, dass verschiedenen eingegebenen Buchstabenfolgen die gleiche Prüfsumme zugewiesen wird, so Kraume bei typo3blogger.de. Außerdem gebe es Rainbow Tables, in denen Kombinationen aus Passwort und Prüfsumme gespeichert […]

Pingback von TYPO3 Passwörter: So machst Du sie sicherer » t3n News am 26. Juli 2011 um 16:57

[…] In Neuinstallationen von TYPO3 werden automatisch die Extensions saltedpasswords und rsaauth aktiviert. Anwendern, die ein Update auf TYPo3 4.6 durchführen, wird dringend empfohlen, diese beiden Extensions manuell zu aktivieren. Eine Anleitung dazu liefert dieser Artikel. […]

Pingback von TYPO3 4.6 ist da! | TYPO3 Blogger am 25. Oktober 2011 um 16:15

Kategorien

Archiv