Elderan: Sicherheit von Passwörtern gegen Cracker

Beitrag lesen

Hallo,

Wie schaut das ganze nun aber aus, wenn ich in meinem Skript ein sleep von einer Sekunde einbaue? Eine Sekunde Wartezeit wird einem Benutzer für sein einmaliges Login nicht wehtun und auf diese Weise wären dann nämlich keine ... sagen wir mal ... 1 Million Versuche pro Sekunde möglich, sondern tatsächlich nur ein Versuch pro Sekunde!

Gehen wir davon aus, man könnte 1 Mio PW's por Sekunde testen. Sagen wir der Benutzername hat 8 Zeichen/Byte, das PW hat nochmal 8 Byte.
Zusammen 16 Byte.
Also müsste er pro Sekunde 1 000 000 * 16 Byte senden, das wären schon 16 MB/s.
Dazu kommt noch der HTTP Header.

Dieser ist ~750 Byte und ~500 Byte groß (Empfangs und Senderichtung), also 1250 * 1 000 000 Byte/s, bzw. 1,25 GB/s.

Dies wäre in einem schnellen Netzwerk durchaus möglich, aber im Web? Und falls der Server diese Geschwindigkeit für 1 Person aufbringen könnte, dann würde es doch bestimmt auffallen.

Dann kommt noch das normale Formular + Ob das Passwort richtig oder falsch war.
Dort entstehen pro Aufruf wieder ein paar tausend Byte traffic.

Falls man über die Website versucht das PW zu knacken, hat man ca. 80 bis 240 Key/s, und mehr als ein Wörterbuch sollte man so nicht durchtesten.
Sonst wird das auch viel zu auffällig in der Log.

Also du siehst, diese 1 Mio/s ist, wenn man das verschlüsselte Passwort lokal auf dem PC hat.
Dort kann man ohne probleme mit einem normalen, neuem PC um die 15 bis 20 Mio/Keys pro Sek testen, je nach OS und Verschlüsselungsart.
Ein 8 stellen PW (a-z 0-9) knackt man so in ca. 20 Stunden.
Benutzt man noch groß Buchstaben, also 62^8 braucht man ca. 1500 Stunden.
Dies ist noch nicht otopisch, denn der Angreifer kann ja evt. mehrere und vorallem schnellere PC's zur Verfügung haben. Hätte er nur 10 Computer zur Verfügung, dann wären es 150 Stunden oder 6 Stunden. Und wenn man bedenkt man kann durch einen Wurm mehrere hundert/tausend PC's infizieren und damit die Rechenleistung bündeln...

Mit "Deep Crack", einem spezial PC zum Entschlüssel von DES, schaffte man so ca. 90 Mrd. Schlüssel _pro Sekunde_.
Hätte man soetwas zur Verfügung, dann könnte man damit in ca. 20 Minuten das Passwort knacken.

Also wie du siehst, dass jmd. über das Loginformular versucht das PC zu knacken ist eher unwahrscheinlich, und sofern man kein Wort aus dem Wörterbuch benutzt (fast) unmöglich.
Darum versucht ein Angreifer immer die verschlüsselte Version zu bekommen, was oft leichter ist als man denkt.
Darum sollte das Passwort auch noch dann sicher sein, wenn es ein Cracker in die finger bekommt.

Eine andere Möglichkeit sind "Passphrase". Hierzu werden Sätze (mit Groß- und Kleinschreibung) benutzt, die keinen Sinn ergeben:

Bsp:
Im SelfHTML Forum werden kostenlos atomare Vögel produziert.

Dies kann man sich gut merken, und es ist auch ausreichend sicher.

Allerdings ein Cracker wird sich meistens andere Wege als über das Passwort suchen. Falls im die verschlüsselte Version in die Hände fällt, schon und gut.
Aber meisten ist es leichter, den PC mit einem Keylogger o.Ä. zu infizieren, oder die Person auf eine gefälschte Website umleiten.

Was auch ganz wichtig, niemals bei 2 Diensten das gleiche PW benutzen. Denn wer sagt dir, dass Dienst zwei so liebt ist, und das PW verschlüsselt speichert? Vielleicht sammelt dieser Dienst die PW's um dann den Benutzern nachzuschnüffeln, und wenn die sich dann so bei der Bank einloggen können, um so schöner....

Elderan