Passwort richtig verschlüsseln

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • jonas.e schrieb:

    Habe ich das richtig verstanden, dass man beim salzen einfach eine beliebige Zeichenfolge an das Passwort hängt bevor man es hashed?

    Ja, und Du musst Dir diese Zeichenfolge merken, damit Du bei späteren Passwortprüfungen wieder den gleichen Hashwert bekommst. Viele Verfahren verwenden dafür Salze fester Länge und speichern es in einer Zeichenkette mit dem Hash (= SalzHash).
    „Meine Komplikation hatte eine Komplikation.“
  • Bei GET stehen die Parameter in der URL. Da besteht immer die Gefahr, dass sie irgendwo auftauchen, und für einen Angreifer lesbar sind (z. B. Serverlogs). Wenn Du die Passwörter hashst, ist es wahrscheinlich nicht mehr so tragisch. Bei anderen personenbezogenen Daten solltest Du es möglichst vermeiden.
    „Meine Komplikation hatte eine Komplikation.“
  • jonas.e schrieb:


    Warum POST und nicht GET?


    Security through obscurity. Eine GET-Parameterübergabe in der folgenden Art ist blöd:

    Quellcode

    1. http://www.foo.bar/login.php?user=foo&password=bar


    Das steht in jedem Proxy-Logfile. Bei HTTPS ist das nicht mehr dramatisch, da steht es nicht mehr im Proxy-Logfile, der Proxy kann nämlich (im Idealfall) nicht in den HTTPS-Verkehr reingucken. Firmen z.B. brechen aber gerne den HTTPS-Verkehr ihrer Mitarbeiter auf, um sicherzustellen, dass die MItarbeiter keine Raubmordkopierterroristendinge tun. Und dann stehen Benutzername und Passwort wieder im Logfile. Ganz davon abgesehen, dass die Gefahr besteht, dass die Daten über irgend ein vergessenes, krudes Logging auf Applikationsebene mitgeloggt werden. Dinge passieren nun mal. Ach ja, es gibt auch eine Menge unlauterer Proxysysteme, die in den Verkehr reingucken können.

    POST ist kein Allheilmittel, denn es überträgt die betreffenden Daten über den selben Kanal. Nur an einer anderen Stelle. Die Lösung ist also nicht der Wechsel von GET auf POST, sondern das Verwenden eines vernünftigen (== sicheren) Authentisierungsmechanimus in Verbindung mit einem vernünftigen (== sicheren) Kommunikationskanal.
  • kmr schrieb:

    Amin Negm-Awad schrieb:

    [
    keiner. Beides ist mitlerweile gehackt... Mein letzter Stand war das hmac dergestalt der Dinge ist aber das ist wie mit Viren. Sobald ein neuer Algorithmus kommt, ist der hack kurze zeit später da.....


    Hm, dieser Aussage muss ich widersprechen. ;)

    Edit: Die Aussage zu MD5 und SHA1 stimmt natürlich.
    Die Aussage war aber gar nicht von mir.

    Wobei ich widersprechen möchte. Soweit ich weiß, ist MD5 nur insoweit "gehackt", als dass es zwei bekannte Werte gibt, die denselben MD5 erzeugen. Das dürfte für Passwortverschlüsselung doch völlig gleichgültig sein.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    kmr schrieb:

    Amin Negm-Awad schrieb:

    [
    keiner. Beides ist mitlerweile gehackt... Mein letzter Stand war das hmac dergestalt der Dinge ist aber das ist wie mit Viren. Sobald ein neuer Algorithmus kommt, ist der hack kurze zeit später da.....


    Hm, dieser Aussage muss ich widersprechen. ;)

    Edit: Die Aussage zu MD5 und SHA1 stimmt natürlich.
    Die Aussage war aber gar nicht von mir.

    Wobei ich widersprechen möchte. Soweit ich weiß, ist MD5 nur insoweit "gehackt", als dass es zwei bekannte Werte gibt, die denselben MD5 erzeugen. Das dürfte für Passwortverschlüsselung doch völlig gleichgültig sein.


    es gibt aber datenbanken in denen du für einen ungesalzenen MD5-hash ein passendes passwort findest ;)

    21232f297a57a5a743894a0e4a801fc3
  • Amin Negm-Awad schrieb:


    Die Aussage war aber gar nicht von mir.


    Dass Du mir auch immer widersprechen musst!!!1

    Amin Negm-Awad schrieb:


    Wobei ich widersprechen möchte. Soweit ich weiß, ist MD5 nur insoweit "gehackt", als dass es zwei bekannte Werte gibt, die denselben MD5 erzeugen. Das dürfte für Passwortverschlüsselung doch völlig gleichgültig sein.


    Soweit korrekt. Damit ist aber eine fundamentale Anforderung an eine Hashfunktion nicht mehr erfüllt (Kollisionsresiszenz), weswegen man von der weiteren Verwendung tunlichst Abstand nehmen sollte. Zumal es genug sichere Alternativen gibt, die man ohne zusätzliche Kosten verwenden kann. Bei der Verwendung von Kryptographie ist grundsätzlich übertriebene Paranoia angezeigt, da die technische Entwicklung und die Kryptoanalyse einem ständig im Nacken sitzen. Ein Algorithmus gilt bei konservativer Betrachtung ja bereits dann als gebrochen, wenn man den mit ihm erzeugten Ciphertext reproduzierbar von Zufall unterscheiden (nicht entschlüsseln!) kann.

    Natürlich kommt es immer auf den Nutzungskontext an. Für MD5 gibt es keine Ausrede mehr, weil der Algorithmus wirklich kaputt ist. Genauso RC4. Und DES. Und und und. SHA1 gilt auch als angeschosen, den würde ich für Passwörter nicht empfehlen. Dass git indes SHA1 für die Kennzeichnung von Commits verwendet, ist kein Problem. Denn um in diesem Kontext die bisher bekannte Schwäche von SHA1 ausnutzen zu können, ist weit mehr erforderlich als Kryptoanalyse.
  • gritsch schrieb:

    Amin Negm-Awad schrieb:

    kmr schrieb:

    Amin Negm-Awad schrieb:

    [
    keiner. Beides ist mitlerweile gehackt... Mein letzter Stand war das hmac dergestalt der Dinge ist aber das ist wie mit Viren. Sobald ein neuer Algorithmus kommt, ist der hack kurze zeit später da.....


    Hm, dieser Aussage muss ich widersprechen. ;)

    Edit: Die Aussage zu MD5 und SHA1 stimmt natürlich.
    Die Aussage war aber gar nicht von mir.

    Wobei ich widersprechen möchte. Soweit ich weiß, ist MD5 nur insoweit "gehackt", als dass es zwei bekannte Werte gibt, die denselben MD5 erzeugen. Das dürfte für Passwortverschlüsselung doch völlig gleichgültig sein.


    es gibt aber datenbanken in denen du für einen ungesalzenen MD5-hash ein passendes passwort findest ;)

    21232f297a57a5a743894a0e4a801fc3

    Das ist mir bekannt.

    1. Hat das nichts mit dem Thema "MD5 ist gehackt" zu tun.
    2. Wurde Salz bereits angesprochen.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • kmr schrieb:

    Amin Negm-Awad schrieb:


    Die Aussage war aber gar nicht von mir.


    Dass Du mir auch immer widersprechen musst!!!1

    Amin Negm-Awad schrieb:


    Wobei ich widersprechen möchte. Soweit ich weiß, ist MD5 nur insoweit "gehackt", als dass es zwei bekannte Werte gibt, die denselben MD5 erzeugen. Das dürfte für Passwortverschlüsselung doch völlig gleichgültig sein.


    Soweit korrekt. Damit ist aber eine fundamentale Anforderung an eine Hashfunktion nicht mehr erfüllt (Kollisionsresiszenz), weswegen man von der weiteren Verwendung tunlichst Abstand nehmen sollte. Zumal es genug sichere Alternativen gibt, die man ohne zusätzliche Kosten verwenden kann. Bei der Verwendung von Kryptographie ist grundsätzlich übertriebene Paranoia angezeigt, da die technische Entwicklung und die Kryptoanalyse einem ständig im Nacken sitzen. Ein Algorithmus gilt bei konservativer Betrachtung ja bereits dann als gebrochen, wenn man den mit ihm erzeugten Ciphertext reproduzierbar von Zufall unterscheiden (nicht entschlüsseln!) kann.

    Natürlich kommt es immer auf den Nutzungskontext an. Für MD5 gibt es keine Ausrede mehr, weil der Algorithmus wirklich kaputt ist. Genauso RC4. Und DES. Und und und. SHA1 gilt auch als angeschosen, den würde ich für Passwörter nicht empfehlen. Dass git indes SHA1 für die Kennzeichnung von Commits verwendet, ist kein Problem. Denn um in diesem Kontext die bisher bekannte Schwäche von SHA1 ausnutzen zu können, ist weit mehr erforderlich als Kryptoanalyse.
    Die Aufzählung von theoretischen Risiken (dass es übrigens bei MD5 Kollisionen geben kann, sogar muss, war ja schon immer bekannt), bei unbedeutender praktischer Relevanz war schon immer eine Domäne von Sicherheitsexperten. Es dient ja auch deren Akquise. *g*
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Die Aufzählung von theoretischen Risiken (dass es übrigens bei MD5 Kollisionen geben kann, sogar muss, war ja schon immer bekannt), bei unbedeutender praktischer Relevanz war schon immer eine Domäne von Sicherheitsexperten. Es dient ja auch deren Akquise. *g*


    Was das Auftreten von Sicherheitsexperten angeht, gebe ich Dir vollkommen uneingeschränkt Recht. Der gemeine Sicherheitsexperte zeichnet sich durch wunderbare theoretische Ansichten und einen großen Mangel an Praxisnähe aus.

    Was MD5 speziell angeht, verweise ich abermals auf die nachweisbar angreifbare Kollisionsresistent, womit der Algorithmus die wichtigste mathematische Eigenschaft verloren hat. Was Kryptographie allgemein angeht, verweise ich darauf, dass das Verwenden sicherer Alternativen zu als bereits schlecht riechend bekannten Verfahren weder Kosten noch Mühen erfordert. Hier liegen in 99,9% aller mir bekannten Fälle schlichtweg Ignoranz, Faulheit oder Unwissenheit seitens der Entwickler vor. Und das lässt sich nicht entschuldigen.
  • kmr schrieb:

    Amin Negm-Awad schrieb:

    Die Aufzählung von theoretischen Risiken (dass es übrigens bei MD5 Kollisionen geben kann, sogar muss, war ja schon immer bekannt), bei unbedeutender praktischer Relevanz war schon immer eine Domäne von Sicherheitsexperten. Es dient ja auch deren Akquise. *g*


    Was das Auftreten von Sicherheitsexperten angeht, gebe ich Dir vollkommen uneingeschränkt Recht. Der gemeine Sicherheitsexperte zeichnet sich durch wunderbare theoretische Ansichten und einen großen Mangel an Praxisnähe aus.

    Was MD5 speziell angeht, verweise ich abermals auf die nachweisbar angreifbare Kollisionsresistent, womit der Algorithmus die wichtigste mathematische Eigenschaft verloren hat. Was Kryptographie allgemein angeht, verweise ich darauf, dass das Verwenden sicherer Alternativen zu als bereits schlecht riechend bekannten Verfahren weder Kosten noch Mühen erfordert. Hier liegen in 99,9% aller mir bekannten Fälle schlichtweg Ignoranz, Faulheit oder Unwissenheit seitens der Entwickler vor. Und das lässt sich nicht entschuldigen.

    Klar, das bessere Verfahren einzusetzen kostet nichts. Wir verwenden daher auch bcrypt. Aber das immer alle darauf rummeckern, wie unsicher MD5 doch sei, ist nicht gerechtfertigt Mit Salz ist das nichts Dramatisches, wovor man sich jetzt großartig fürchten müsste.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:


    Klar, das bessere Verfahren einzusetzen kostet nichts. Wir verwenden daher auch bcrypt. Aber das immer alle darauf rummeckern, wie unsicher MD5 doch sei, ist nicht gerechtfertigt Mit Salz ist das nichts Dramatisches, wovor man sich jetzt großartig fürchten müsste.


    Warum denn bcrypt? Das ist doch auch nicht mehr zeitgemäß. Ein Passwort darf nur 55 Zeichen lang sein. Wer verwendet denn heutzutage noch so kurze Passwörter?
  • kmr schrieb:

    Amin Negm-Awad schrieb:


    Klar, das bessere Verfahren einzusetzen kostet nichts. Wir verwenden daher auch bcrypt. Aber das immer alle darauf rummeckern, wie unsicher MD5 doch sei, ist nicht gerechtfertigt Mit Salz ist das nichts Dramatisches, wovor man sich jetzt großartig fürchten müsste.


    Warum denn bcrypt? Das ist doch auch nicht mehr zeitgemäß. Ein Passwort darf nur 55 Zeichen lang sein. Wer verwendet denn heutzutage noch so kurze Passwörter?


    Dazu fällt mir spontan nur folgendes ein:

    ablachen3000.blogspot.de/2014/…ananas.html#axzz2xKqF4GuA

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • kmr schrieb:

    Amin Negm-Awad schrieb:


    Klar, das bessere Verfahren einzusetzen kostet nichts. Wir verwenden daher auch bcrypt. Aber das immer alle darauf rummeckern, wie unsicher MD5 doch sei, ist nicht gerechtfertigt Mit Salz ist das nichts Dramatisches, wovor man sich jetzt großartig fürchten müsste.


    Warum denn bcrypt? Das ist doch auch nicht mehr zeitgemäß. Ein Passwort darf nur 55 Zeichen lang sein. Wer verwendet denn heutzutage noch so kurze Passwörter?
    Damit anständige Passwörter verwendet werden, setzen wir 54 Buchstaben fest vor: @"EinSicherersPasswortHatZiffernUndUnterstrich_89AAA". Der Nutzer muss dann nur noch eine Ziffer hinzufügen.

    Man hat 10 Versuche, bevor das Passwort gesperrt wird. Das hat sich sehr bewährt. Immer wieder sehen wir Benutzer, die augenscheinlich ihr Passwort vergessen haben und es so wiederfinden. Das entlastet den Support.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Amin Negm-Awad schrieb:

    Klar, das bessere Verfahren einzusetzen kostet nichts. Wir verwenden daher auch bcrypt. Aber das immer alle darauf rummeckern, wie unsicher MD5 doch sei, ist nicht gerechtfertigt Mit Salz ist das nichts Dramatisches, wovor man sich jetzt großartig fürchten müsste.

    MD5 würde ich dafür nicht mal mit der Rohrzange anfassen. Seit fast 10 Jahren gilt das als broken. Vor ca. 20 Jahren konnten bereits Kollisionen nachgewiesen werden. Und es ist auch nicht für den Zweck entworfen worden.

    Schau Dir mal an, was bereits mit hashcat und einer Mittelklasse-GPU möglich ist.

    kmr schrieb:


    Warum denn bcrypt? Das ist doch auch nicht mehr zeitgemäß. Ein Passwort darf nur 55 Zeichen lang sein. Wer verwendet denn heutzutage noch so kurze Passwörter?

    Hab ich die Ironie Tags übersehen? Ich bin froh wenn ein User mal ein Passwort mit mehr 10 Zeichen verwendet. Ich würde bcrypt zur Zeit gar SHA-3 vorziehen.
    * Kann Spuren von Erdnüssen enthalten.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von NSObject ()

  • Amin Negm-Awad schrieb:

    [
    Hab ich die Ironie Tags übersehen? Ich bin froh wenn ein User mal ein Passwort mit mehr 10 Zeichen verwendet. Ich würde bcrypt zur Zeit gar SHA-3 vorziehen.


    Ich würde PBKDF2 nehmen, das ist bei iOS schon eingebaut. Wenngleich nicht dokumentiert. :)

    Und was die Länge von Passwörtern angeht … so lange es zum guten Ton gehört, von Usern zu fordern, dass ein Passwort jedes Zeichen des erweiterten Unicode-Satzes mindestens einmal enthalten muss, ist es kein Wunder, dass niemand lange Passwörter nutzt.