Anne B.: Kleine eigene Verschlüsselung - macht das Sinn?

Hallo.

würde es Sinn machen Passwörter mit einer eigenen Verschlüsselung zu speichern?

Bsp.

1. Verschlüsseln des PWs mit sha1()
2. Eigene Verschlüsselung (die sich auch wieder entschlüsseln lässt!)

Bsp.
Ersetze jedes a durch 2, b durch g usw.. alle Zeichen durch.

Am ende Drehe alle Zeichen um.

Das lässt sich ja auch wieder rückgängig machen. Und wenn jemand den "verschlüsselten" Hash aus der DB klaut kann er ohne die PHP Dateien mit der Verschlüsselungs Funktion nichts anfangen!

Was haltet ihr davon?

Lg

Anne

  1. Also bitte nicht selber was zusammenreimen.
    Deine Caesar verschlüsselung ist sowas von einfach zu knacken.
    Du könntest vl deinen Hash damit nochmals "verschlüsseln" aber das macht auch keinen Sinn.
    BTW ist SHA-1 nicht knackbar?

    --
    LG,
    Snafu
    1. BTW ist SHA-1 nicht knackbar?

      Kommt drauf an, was du unter "knackbar" verstehst. Das urpsrüngliche Passwort lässt sich nicht wieder herausfinden.

      1. Hallo!

        Kommt drauf an, was du unter "knackbar" verstehst. Das urpsrüngliche Passwort lässt sich nicht wieder herausfinden.

        Hmm, ja, ka. Bin nicht so bewandert zu diesem Thema.
        Ich persönlich verwende immer MD5 für meine Sachen. Ich glaube irgendwann mal aufgeschnappt zu haben, dass man SHA-1 nicht mehr verwenden sollte weil es bereits geknackt wurde oder so.
        SHA-256 + sollte aber kein Problem sein :)

        --
        LG,
        Snafu
        1. Yerf!

          Ich persönlich verwende immer MD5 für meine Sachen. Ich glaube irgendwann mal aufgeschnappt zu haben, dass man SHA-1 nicht mehr verwenden sollte weil es bereits geknackt wurde oder so.

          Man konnte glaube ich den Aufwand gegenüber einem vollständigen Brute-Force verringern. Er liegt aber immer noch höher als bei MD5...

          Gruß,

          Harlequin

          --
          <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
          1. Hallo!

            Man konnte glaube ich den Aufwand gegenüber einem vollständigen Brute-Force verringern. Er liegt aber immer noch höher als bei MD5...

            Aha, ok, danke.
            Man lernt ja schießlich nie aus :)

            --
            LG,
            Snafu
          2. Hallo miteinander.

            Siehe auch Wikipedia: SHA-1#Schwächen.

            Servus

    2. HI!

      Also bitte nicht selber was zusammenreimen.
      Deine Caesar verschlüsselung ist sowas von einfach zu knacken.
      Du könntest vl deinen Hash damit nochmals "verschlüsseln" aber das macht auch keinen Sinn.

      Aber wieso?
      Sieh mal, solange der Typ der das PW hat nicht die Verschlüsselungsfunktion hat weiß er nicht wie er ans richtige kommt!

      BTW ist SHA-1 nicht knackbar?

      md5 auch!

      1. Moin!

        Sieh mal, solange der Typ der das PW hat nicht die Verschlüsselungsfunktion hat weiß er nicht wie er ans richtige kommt!

        Wie gerade durch den Heise-Ticker läuft, hat jemand die Support-Foren dreier großer Boardsoftware-Anbieter gehackt - bzw. ist durch einen kompromittierten FTP-Zugang eingedrungen und konnte ein Vollbackup sowohl von Webspace als auch Datenbank ziehen.

        Dieses Szenario ist auch bei dir nicht unwahrscheinlich: Oft ist die Datenbank von außen gar nicht direkt erreichbar, d.h. Angriffspunkte treffen immer zuerst den PHP-Teil und schleusen dort Code ein - Code, der zum einen zum Auslesen aller gespeicherten PHP-Skripte führt (man benötigt ja schließlich die DB-Zugangsdaten), danach dann zum Zugriff auf die Datenbank.

        Dein Verschlüsselungs- und Entschlüsselungscode würde dem Angreifer also zusammen mit den verschlüsselten Passworten in die Hände fallen. Wozu dann noch verschlüsseln? Klartextpassworte sind da eindeutig einfacher - sowohl beim Handling, weil sich keine Fehler in die Schlüsselfunktionen einschleichen, als auch vom Sicherheitsgefühl her: Du weißt, dass es keine Sicherheit gibt, also verhältst du dich auch nicht so, als gäbe es eine.

        BTW ist SHA-1 nicht knackbar?
        md5 auch!

        "Knackbar" ist ein relativer Begriff.

        Alle Hashfunktionen sind durch Rainbow-Tabellen angreifbar, in denen für ausgewählte uncodierte Worte deren Hashwert gespeichert ist. Auf diese Weise kann man im Glücksfall ganz leicht zurückermitteln, welches Wort gehasht wurde.

        MD5 ist darüber hinaus noch in einem anderen Aspekt angreifbar: Man kann mehrere unterschiedliche uncodierte Strings herstellen, deren MD5-Hashwert identisch ist. Zuletzt wurde das mit einem deutlich längeren Dokument demonstriert, in dem der Gewinner der US-Präsidentenwahl genannt wurde: Alle 11 Kandidaten wurden in 11 Dokumenten als Sieger bezeichnet, der MD5-Hashwert aller 11 Dokumente war identisch.

        Dieser Angriff funktioniert aber nur dann, wenn man in der Wahl seines "Ausgangsmaterials" frei ist. Es ist bislang noch kein Weg bekannt geworden, der es erlaubt, zu einem bekannten MD5-Hashwert mit unbekanntem Quellmaterial ein anderes Quellmaterial zu berechnen, welches den identischen Hashwert liefert.

        Wenn MD5 das einzige ist, was leicht verfügbar genutzt werden kann, sollte man es nutzen, anstelle sich selbst etwas zu basteln. Die Anfälligkeit gegen Rainbow-Tabellen eliminiert man, indem man (unterste Sicherheitsstufe) einen konstanten Stringwert zum Passwort hinzufügt bzw. (bessere Sicherheitsstufe) zu jedem Passwort einen unterschiedlichen Stringwert hinzufügt (und den separat ungehasht speichert, sonst weiß man hinterher nicht mehr, welcher String zu einem konkreten Passwort hinzugefügt werden muß, um den Hash zu erhalten).

        Sofern SHA-1 verfügbar ist, ist das die bessere Alternative zu MD5, soll aber laut den Kryptografen ähnliche Strukturen und Sicherheitsprobleme haben, wie MD5. Die Kombination von MD5 und SHA-1 (also zwei Hashwerte parallel zu berechnen und zu vergleichen) macht es einem Angreifer aber schon mal schwerer, was zu drehen.

        Es ist sicherlich für Passwörter keine schlechte Idee, sowieso immer den höchsten verfügbaren Hashgenerator zu nutzen, ab SHA-256 aufwärts.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
  2. Hallo.

    würde es Sinn machen Passwörter mit einer eigenen Verschlüsselung zu speichern?

    Nein, weil...

    Bsp.

    1. Verschlüsseln des PWs mit sha1()
    2. Eigene Verschlüsselung (die sich auch wieder entschlüsseln lässt!)

    Bsp.
    Ersetze jedes a durch 2, b durch g usw.. alle Zeichen durch.

    Am ende Drehe alle Zeichen um.

    Das lässt sich ja auch wieder rückgängig machen. Und wenn jemand den "verschlüsselten" Hash aus der DB klaut kann er ohne die PHP Dateien mit der Verschlüsselungs Funktion nichts anfangen!

    Vorausgesetzt, er hat lediglich Zugriff auf die Datenbank, hilft das wirklich. Allerdings gibt es da Verfahren, die viel effektiver sind und das gleiche bewirken. Z.B. sogenannte Salts.

    Was haltet ihr davon?

    Du kannst dabei etwas lernen, viel mehr bringt es aber nicht.