Problem bei Funktion Encrypt

  • Ok das weiß ich jetzt...

    In meinem letzten Skript hatte ich ja vorher noch mit encrypt gearbeitet...
    Das macht es aber nicht sicherer oder? Ich habe halt 2 Passwort abfragen dadurch aber ist encrypt nicht leichter zu kancken als MD5???


    Ist es noch sicherer eventuell den encrypteten Wert mit MD5 zuverschlüsseln und dann zu vergleichen?
    Also ohne den Wert zu decrypten gleich mit MD5 zu verschlüsseln...

  • Hallo chesstiger,

    Mit Sonderzeichen, Zahlen und Buchstaben ist MD5 praktisch unknackbar. ;)


    Da muss ich Dir entschieden wiedersprechen. Das Problem mit Hashes (egal ob MD5 oder SHA) ist ja, wenn ich ein und dasselbe Wort hashe, kommt jedes Mal derselbe Hash raus.
    Wenn ich also eine Datenbank mit bereits gehashten Kennwörtern habe, kann ich die Hashes vergleichen und weiß welches Kennwort verwendet wurde.
    Klar wird das deutlich schwieriger, wenn Sonderzeichen und Ziffern in Kennwörtern verwendet werden, das hast Du ja schon selbst geschrieben.
    Sicherer ist es aber, wenn Kennwörter gesalzen werden und für jedes gehashte Kennwort immer wieder ein anderer Salz verwendet wird.
    Dadurch gleicht kein Hash dem anderen, auch wenn dasselbe Kennwort verwendet wurde.

    Schaut euch doch mal meine UDF Hashpassword.au3 an. (siehe Signatur)
    Diese UDF beinhaltet alles, was man zum sicheren speichern von Kennwörtern braucht.

    Viele Grüße
    M3d1c5

  • Ich habe es mir angeshen...

    Nur den Includ sprich _HashPasswort also die wichtige Funktion habe ich nicht gesehen und ich meine das sie bei Autoit includs nicht vorhanden ist...


    Was sagst du zu der idee den encrypteten text zu hashen...

  • M3d1c5
    Du hast natürlich recht, es ist nicht "unknackbar", jedoch wird man durch eine Dictionary-Attack oder durch Rainbow-Tables so ein Passwort nur sehr schwer bis garnicht knacken können, schon garkein Laie, der noch nie was mit Kryptographie zutun hatte:

    Code
    _~Basti2022~_


    Zumindest mit einer solchen Website, wie ich vorher gepostet habe, ist das unmöglich. Und viel mehr ist hier auch nicht nötig, ein MD5-Hash & ein ordentliches Passwort reich vollkommen. Du verwahrst ja keine hochgeheimen Daten wie die Startcodes der Atomraketen der USA. 8o

    lg chess

  • Ich hätte aber gerne ein Programm das meine Daten so sicher unterverschluss hält we die Startcodes...

    Nur so ein Projekt einen möglichst sicheren Identifizierung Vorgang zu ermöglichen...


    [autoit]

    If $Datei3 = -1 Then

    [/autoit][autoit][/autoit][autoit]

    ElseIf $Datei3 <> -1 Then
    $Text = FileRead ($Datei3)

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit]

    If _MD5 ($Pass) = $Text then
    ...

    [/autoit]

    Ist das net recht sicher??
    Dann braucht man zumindest die Datei die hinter $Datei3 steckt...

    Wie sicher ist eigentlich das encrypten man kann das Level ja verstellen...

    Einmal editiert, zuletzt von Basti2022 (26. Juli 2012 um 13:17)

    • Offizieller Beitrag

    Es ist schon richtig, man sollte immer ein Augenmerk auf den Einsatzzweck haben.
    Aber trotzdem bleibt wohl anzunehmen, dass die Sicherheit mit MD5 rapide abwärts geht. Spätestens mit IPv6 entfällt das "Problem" wechselnder IP und Botnetze werden sich leichter erstellen lassen. Die Millionen Smartphones rücken auch in das Visier der Internet-Kriminellen, ebenso wie dann der Kühlschrank, der selbst Ware nachbestellt - alles potentielle Kandidaten für Botnetze. Wer braucht schon noch einen Cray, wenn sich Millionen CPU's "verbotnetzen" lassen... :wacko:

  • Sicherer ist es aber, wenn Kennwörter gesalzen werden und für jedes gehashte Kennwort immer wieder ein anderer Salz verwendet wird.
    Dadurch gleicht kein Hash dem anderen, auch wenn dasselbe Kennwort verwendet wurde.


    Grundsätzlich hast du recht, da aber die bösen Buben sich nicht an Gesetze halten, werden sie jawohl zuvor das Skript deompilieren und dann ist auch dein Salz unnötig. Sogar die ganze Passwortabfrage ist dann ein Witz, die entsprechende Abgrage wird entfernt und die dadurch gesicherte Funktion direkt aufgerufen.
    Die braven und auch die unwissenden Buben scheitern aber schon an dem normalem MD-Hash.

    Trotzdem ein Lob: sauber umgesetzt.

    mfg autoBert

  • Wie sicher ist denn nun die Mitgelieferte Funktion von Autoit

    _String Encrypt?????


    Das Level ist ja verstellbar ist es je höher das Level auch umso sicherer??

    Und im Vergleich mit MD5-Hash??

  • Hallo Basti2022,

    nimm die beiden Funktionen: _HashPassword und CheckPassword von M3d1c5. Er verwendet SHA512, welches MD5 vorzuziehen ist. Aber wie schon erwähnt sind AutoIt-EXEn nicht vor bösen Buben sicher.

    mfg autoBert

  • Klar das mit dem Decompilieren ist klar...

    Das ist meine neuste idee:

    [autoit]

    #Includ <MD5.au3>
    ####################
    $Pass = Inputbox ("Identifizierungscode eingeben","Groß- und Kleinschreibung beachten")
    ####################
    $Level = Inputbox ("Level eingeben","Nur Zahlen")
    ####################
    $Code = Inputbox ("Code eingeben","Sonderzeichen")
    ####################
    $Encrypt = _StringEncrypt (1, $Pass, $Code, $Level)
    ####################
    If _MD5 ($Encrypt) <> ... Then
    exit
    Elseif MD5 ($Encrypt) = ... Then
    Endif
    .
    .
    .
    ###################

    [/autoit]

    Ist das denn (jetzt mal vom decompilieren abgesehen) so schon ganz gut???????
    Auch wenn mir noch niemand gesagt hat wie gut sich stringencrypt zum sichern eignet...

  • sodele ich habe es jetzt nochmal weiterprobiert mit MD5

    [autoit]


    #include <MD5.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $Pass = InputBox ("Code eingeben","...")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $Runde = 0
    $Text = $Pass

    [/autoit][autoit][/autoit][autoit]

    While 1
    $MD5 = _MD5 ($Text)
    $Text = $MD5
    $Runde = $Runde + 1
    #MsgBox (0,"Jetzt",$MD5)

    If $Runde = 2000 Then
    #MsgBox (0,"50","")
    ExitLoop
    ElseIf $Runde <> 5 Then
    EndIf

    WEnd

    [/autoit][autoit][/autoit][autoit]

    If $MD5 = "9545d437c995824da3f8b02067d67a2e" Then
    MsgBox (0,"Richtig","...")
    ElseIf $MD5 <> "9545d437c995824da3f8b02067d67a2e" Then
    Exit
    EndIf

    [/autoit]


    macht es das so sicherer?????
    also ich meine ich habe aus dem Hash 2000 den Hash genommen... sollte schwieriger sein jetzt noch das kennwort heraus zubekommen...

    weiß es einer von euch???

    ist es so überhaupt sicherer???? ?(?(?(?(

    3 Mal editiert, zuletzt von Basti2022 (27. Juli 2012 um 12:01)

  • Ja ich kann mich dem Lob nur anschließen...

    1 Eine Frage bleibt noch dann stelle ich auf gelöst...
    Macht es das ganze sicherer aus einem MD5 Hash nochmal nen MD5 Hash nimmt (siehe mein letztes Skript) ???

    Danke

  • Da stellt sich nochmals die Frage:

    Wenn du so sichere Passwörter haben willst, warum proggst dann in AutoiIt, wo man dein Script ganz leicht aushebeln kann??
    Beides beisst sich m.M. nach absolut.

    MD5-Hashes aus Zahlen/Buchstaben/Zeichen-Kombis reichen für jeden Normal-DAU aus.
    Wenn du sichererererererer haben willst, dann "darfst" du auf keinen Fall in AutoIt scripten..