Delphi-PRAXiS
Seite 6 von 7   « Erste     456 7      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Passwort-Stärke ermitteln (Code und Prüflogik) (https://www.delphipraxis.net/154619-passwort-staerke-ermitteln-code-und-prueflogik.html)

Satty67 28. Sep 2010 15:04

AW: Passwort-Stärke ermitteln (Code und Prüflogik)
 
Zitat:

Zitat von mleyen (Beitrag 1052578)
Sobald Doppelungen vorkommen ist es halt nicht mehr die maximal mögliche Sicherheit.

Ok, fangen wir mal klein an. Das ist ja die Kernaussage, die mich in meinem Ausgangspost verwirrt hatte.

Kann mir jemand irgendwie erklären, warum "ab" sicherer ist als "cc"?
Wieso ist es einfacher herauszufinden, dass erst ein "c" kommt und danach noch ein "c"?
Wieso ist es schwerer wenn ein "a" kommt, zu ermitteln, dass danach ein "b" kommt?

Das ist auf den kleinsten Nenner reduziert, was ich irgendwie nicht ganz verstehen kann. Jetzt aber bitte nicht einfach, "weil 'ab' unterschiedliche Zeichen sind", das sehe ich auch ;). Nein, warum ist es schwerer "ab" zu ermitteln, statt "cc".

***

Beides sind ja keine Passwörter aber wären Sie es, dann sieht für mich ein Angriff so aus:

aa, ab, ac, ad ... ca, cb, cc

"cc" dauert länger und "cccc" würde erheblich länger dauern. Vielleicht gibt es ja eine einfache Erklärung, die aufzeigt, warum das ein Irrglaube ist.

mleyen 28. Sep 2010 15:21

AW: Passwort-Stärke ermitteln (Code und Prüflogik)
 
Lass mal bitte Bruteforce aus dem Spiel. Das ist eine komplette Situation für sich.
Stell dir mal vor du müsstest dich an einem online-Account anmelden und hättest nur einen Versuch. Bei falscheingabe des Passworts wird der Account direkt gesperrt/gelöscht.

Bei "cc" könnte die Passworteingabe so lauten:
"Bitte geben Sie ein 5-9 stelliges Passwort ein, welches nur aus 'c's besteht, jedoch in der Länge variiert"
Möglichkeiten dies zu erraten: 20%

Bei "ab" könnte die Passworteingabe so lauten:
"Bitte geben Sie ein 5-9 stelliges Passwort ein, welches nur aus 'a's und 'b's besteht"
Möglichkeiten dies zu erraten: 0,001%

Wenn man jetzt wüsste, dass die Eingabemöglichkeiten gleich sind, dann kann man auch sagen die Passwörter sind gleich 'gut'.

Satty67 28. Sep 2010 15:26

AW: Passwort-Stärke ermitteln (Code und Prüflogik)
 
und wenn die Aufforfderung lautet:
"Bitte geben Sie ein 5-9 stelliges Passwort ein, welches nur aus 'a's und/oder 'b's und/oder 'c's besteht"

Hier wurde doch (im ersten Fall) schon wieder ein Sonderfall als Erklärung konstruiert, dass der Angreifer weis, das Passwort besteht nur aus "c"s.

Ich weis, dass niemand mir das erklären muss, vor allem weil ich stur und gerne starrköpfig bin, auch nicht so einfach. Ihr könnt mich auch mit meinem Irrglauben alleine in der Wüste stehen lassen ;) Aber das ist halt der Punkt, wo ich irgendwie (beim Verstehen) klemme...

Sir Rufo 28. Sep 2010 15:43

AW: Passwort-Stärke ermitteln (Code und Prüflogik)
 
Ein Grund wäre z.B. wenn das Passwort auch für eine Verschlüsselung benutzt wird (WLAN).

Dann schwächen viele sich wiederholende Zeichen die Verschlüsselung.

Satty67 28. Sep 2010 16:10

AW: Passwort-Stärke ermitteln (Code und Prüflogik)
 
Also die Verschlüsselung wird dadurch schwächer. Ok, das kann ich verstehen.

Das der Programmierer das Passwort direkt dafür einsetzt wäre natürlich doof, aber das kann die Testfunktion ja nicht wissen und muss den schlimmsten Fall annehmen.

Ich weis nicht ob es am Wetter liegt oder was sonst ist. Aber hier im Forum herrscht im Moment eine großzügige Gelassenheit. Nicht nur mein Thread ist sicher nervend, auch einige Anfänger-Threads wurden sehr gelassen ohne Aggression behandelt. Macht im Moment richtig Spass, im Forum zu lesen...

negaH 28. Sep 2010 20:01

AW: Passwort-Stärke ermitteln (Code und Prüflogik)
 
Der offensichtliche Unterschied zwischen den 3 Zeichen Passwörtern "ccc" und "abc" besteht in der Varianz.

Beide Passwörter haben 3 Zeichen. Aber nur das Passwort "abc" hat 3 Zeichen aus einem Alphabet von 3 Zeichen. Das Passwort "ccc" hat 3 Zeichen aus einem Alphabet von 1 Zeichen.

Nun beweise mir das der Angreifer nicht nur das Alphabeth "c" benutzt sondern eben immer das komplette Alphabet bei seinem Angriff benutzt. Denn falls er seinen Angriff nur mit dem Symbolraum "c" durchführt dann kann er das Passwort "ccc" nach 3 Versuchen knacken. Beim Symbolraum "abc" benötigt er aber schon 6 Versuche. Dh. an Hand des Passwortes kann man sehr wohl den nötigen Aufwand festlegen den der Hacker aufwenden muß. Jede andere Annahme führt die auf Passwörtern basierende Kryptographie ad absurdum.

Wenn du eine Funktion bauen möchtest die die Qualität eines Passwortes bewertet dann muß man sich eben über verschiedene Punkte im Klaren sein:

1.) die einzige, harte Ausgangsbasis ist der Fakt das wir ein Passwort für eine Verschlüsselung bewerten wollen. Dh. die für die Verschlüsselungen anerkannten Regeln für gute Passwörter müssen als Bewertungsfunktion benutzt werden. Die beiden wichtigsten Regeln für Passörter in Verschlüsselungen sind die Länge des Passwortes und die Gleichverteilung der Wahrscheinlichkeit des ausgewählten Schlüssels im Schlüsselraum der Verschlüsselung. Letzteres mal verkürzt ausgedückt: das Passwort sollte zufällig sein.

2.) Irgendwelche Annahmen mit welchem Verfahren, also wie und welche Verfahren ein möglicher Angreifer konkret benutzt sind enorm schwierig. Im Grunde wäre das Hellsehen.

3.) man kann abstrahieren und wird feststellen das bessere Angriffe die Eigenheiten der Menschen bei der Wahl der Passwörter ausnutzen. Dh. ein Angreifer wird nicht alle 256 Zeichen des ASCII Alphabetes benutzen sondern im Idealfall die Buchstaben gewichtet nach ihrer Häufigkeit in unserer Sprache.

Berachtet man nun alle Fakten was wir überhaupt tuen können dann bleibt im Grunde nur das was ich in meiner Funktion versucht habe zu bewerkstelligen.

Nun, meine Funktion bewertet nicht auf "faire" Art & Weise alle möglichen Passwörter, das ist vom Rainhard Kern schon korrekt herausgearbeitet worden. Denn ein Passwort aus lauter Nullen ist ebenso wahrscheinlich wenn man es zufällig erzeugt und könnte ebenso gut bewertet werden. Meine Funktion hat nur die Aufgabe ein Passwort besser zu bewerten wenn es komplexer ist als andere. Und das heist letzendlich: möglichst lang, möglichst viele verschiedene Buchstaben, möglichst wenig wiederholende Muster (und "ccc" ist ein Muster, 3x "c"), möglichst wenig Entropie und damit wenig Redundanzen.

Das heist das eine Passwort-Bewertungs-Funktion immer wie ein Sieb arbeitet und aus der Menge aller Passwörter diejenigen auswählt bei denen wir die Möglichkeit haben zu beweisen das sie gut sein müssen im Rahmen unserer gewählten Bewertungsfunktion. Dabei müssen je nach Bewertungsfunktion, quasi Kollateralschäden entstehen und ansonsten gute Passwörter als schlechter bewertet werden.

Mehr können wir nicht bewerten und macht auch keinen Sinn.

Schlußendlich gibt es bei zb. einer 128 Bit Verschlüsselung 2^128 verschiede starke 128 Bit lange Passwörter. Alle sollten sie identich stark sein, wenn die Verschlüsselung gut ist. Insofern hat Rainhard bis hier auch Recht. Das was nun verschiedene Passwörter so schlecht macht sind die ausgefeilten Angriffe auf verschiedene Passwörter. Fast alle diese Angriffe basieren auf der Annahme das von Menchen ausgedachte und eingebbare Passwörter benutzt wurden. Ergo: die Angriffe schränken als erstes den Suchraum ein indem sie den benutzen Symbolraum einschränken. Statt einen Suchraum von 256 ASCII Zeichen pro Symbol nutzen sie zb. nur das Alphabet und die Ziffern als eingeschränkten Suchraum. Zudem sortieren sie diese Menge noch nach Häufigkeiten der Buchstaben, also zb. "e" wird im Angriff häufiger und früher verwendet als "ß" oder "z" usw.
Weiter führend wird dieser Angriff in den höherwertigen Symbol Raum "Wörter" überführt, wo wir dann bei der Wörterbuchattacke angekommen wären.

Der Angreifer macht also nichts anderes als die Entropie unserer Sprache auszunutzen um seinen Suchraum effizienter zu gestalten. Sowohl auf Symbolebene wie auch Wortebene nutzt er diesen Trick.
Die Aufgabe eines "Gegners" des Hackers ist es also ebenfalls die Entropie zu benutzen um möglichst schwer erratbare Passwörter als besser zu bewerten.

Eine Passwort-Bewertungs-Funktion wird also immer nur die Komplexität eines Passwortes bewerten können. Und das heist: maximale Länge + maximale Ausnutzung des Symbolraumes + maximale Varianz der ausgewählten Symbole aus dem Symbolraum (keine Wiederholungen).

Ich stimme aber mit Rainhard nicht übereine wenn er behauptet das man Passwörter nicht bewerten kann. Das geht sehr wohl und muß auch gehen da ansonsten wiederum die Kryptographie basiernd auf Passwörtern sinnfällig würde. Die Frage ist welche Bewertung kann man praktisch programmieren und macht noch einen Sinn. Und da habe ich von Anfang an betont das man nie die Qualität eines Passwortes bewerten kann wenn man als Angriff eine Wörterbuchattacke mit unbekannten Wörterbuch annimmt. Insofern verstehe ich auch nicht warum immer wieder dahingehend argumentiert wird.
Allerdings kann man davon ausgehen das ein Angreifer in seinem Wörterbuch die häufigst benutzten Passwörter abgespeichert hat, logisch oder ? Und da diese Passwörter bisher noch von Menschen ausgedacht wurden und damit sehr nahe an unserer Sprache liegen, ist die Entropie als eine Funktion der Bewertung von Redundanz in unserer Sprache sehr wohl eine brauchbare Funktion um Passwörter zu qualifizieren.

Nun kommen wir wieder zum Anfang der Geschichte: als ich sagte das es am Wichtigsten ist das man weiß was man tut und warum man es tut. Meine Funktion habe ich exakt aus all diesen Erwägungen heraus gezielt so konstruiert wie sie jetzt ist. Nicht weil ich gefühlsmäßig meinte das ist richtig und jenes wäre unlogisch oder so.

Gruß Hagen

Satty67 28. Sep 2010 20:27

AW: Passwort-Stärke ermitteln (Code und Prüflogik)
 
Es ist schon richtig, das ich mich hier viel zu stark auf mein Gefühl, statt auf mathematisch belegbare Methoden verlassen habe. Zumindest was das Kernproblem "ccc" angeht.

Dein letzter Post ist da für auch nochmal deutlicher, was das Problem bei einer Bewertung angeht. Auch das ich bestimmte Angriffsmethoden vorausgesetzt habe und andere quasi ausgeschlossen (z.B. Verwendung eines sehr stark eingeschränkten Zeichensatzes), war wohl nicht zielführend.

Satttttttty fällt quasi aus der Bewertung, weil es zwar sicherer sein könnte als Satty, es aber nicht belegbar ist bzw. nicht alle belegbaren Sicherheitsmerkmale erfüllt.

***

Im Eingabe-Dialog für das Masterpasswort will ich nicht auf eine Bewertung verzichten. Ich müsste dort halt dem Anwender klarmachen, das ich nicht ungenau bewerte (wie es für Unwissende fälschlichweise aussieht), sondern nur nach belegbaren Kriterien bewerte (wenn ich PassphraseQuality verwende).

hathor 28. Sep 2010 20:38

AW: Passwort-Stärke ermitteln (Code und Prüflogik)
 
Zitat:

Zitat von negaH (Beitrag 1052663)
...Beim Symbolraum "abc" benötigt er aber schon 6 Versuche...

Gruß Hagen

27.

Den Rest habe ich nicht gelesen!

hathor 25. Apr 2011 09:56

AW: Passwort-Stärke ermitteln (Code und Prüflogik)
 
Info:
http://www.passwordmeter.com/

Sir Rufo 25. Apr 2011 10:17

AW: Passwort-Stärke ermitteln (Code und Prüflogik)
 
Zitat:

Zitat von hathor (Beitrag 1096772)

Schau mal in Post #34 und #36 ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:27 Uhr.
Seite 6 von 7   « Erste     456 7      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz