AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Passwort-Stärke ermitteln (Code und Prüflogik)
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Satty67 · begonnen am 18. Sep 2010 · letzter Beitrag vom 23. Jul 2015
Antwort Antwort
Seite 2 von 7     12 34     Letzte »    
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#11

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

  Alt 18. Sep 2010, 15:12
Ganz ehrlich, ich bin mit Auswertungsergebnis ziemlich zufrieden. Hagen hat mit Sicherheit die cryptologisch besseren Prüfmethoden verwendet, aber imho eben an einer Stelle einen Fehler drin oder zumindest ein seltsames Verhalten.
Ich würde, allein auf Grund Deiner Aussage, eher Hagens Prüfmethode bevorzugen da er, wie Du selbst sagt, die kryptologisch bessere Prüfmethode verwendet. Was bringt mir dann eine, die eine Passwortsicherheit anzeigt, die sich jemand ausgedacht hat?

Eventuell kann ja Hagen das ganze mal kommentieren, auch Deine Aussage, dass die vielen 't' hintereinander eine Brute-Force-Attacke erschweren sollte.
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#12

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

  Alt 18. Sep 2010, 16:35
"hey, du solltest hier besser eine Klasse draus machen!"
Es steht zwar versteckt da, aber es steht da... wird später Bestandteil eines TPasswordEdits bzw. passwordTextBox.

die kryptologisch bessere Prüfmethode verwendet. Was bringt mir dann eine, die eine Passwortsicherheit anzeigt, die sich jemand ausgedacht hat?
Es gibt auch sichere Passwörter, die nicht wie von einem RandomCryptoGenerator erzeugt aussehen, da patzt nunmal meiner Meinung nach PassphraseQuality. Man kann PassphraseQuality zwar nicht vorwerfen, das es schlechte Passwörter gut bewertet, aber zumindest gleichwertige nicht gleich. Zudem denke ich, das meine Methode garnicht so übel ist, auch unter streng cryptologischen Gesichtspunkten.

Es wird eine Benutzerschnittstelle, das soll alles möglichst nachvollziehbar sein und nicht verwundern oder gar verärgern. Ich hätte mir die Arbeit ja garnicht gemacht, wenn ich nicht selbst beim Testen plötzlich ganz irritiert gewesen wäre.

eine Passwortsicherheit anzeigt, die sich jemand ausgedacht hat?
Alles ist ausgedacht... von irgend jemandem, irgendwann. Ich hab's mir ja auch nicht in der dunklen Kammer ausgedacht, sondern mich durch Überlegungen und Beispiele aus dem Internet anregen lassen. Ich verfolge nur nicht die ganz strege entropologische Prüfung, weil ich davon überzeugt bin, dass es das nicht braucht.

dass die vielen 't' hintereinander eine Brute-Force-Attacke erschweren sollte.
Da habe ich mich Sir Rufo's Einwänden angeschlossen und einen Kompromiss gefunden. Viele gleiche Zeichen werten ein Passwort nicht mehr auf, aber auch nicht mehr ab im vergleich zu einem gleichen Passwort, dem nur die wiederholten Zeichen fehlen.

***

Ich schreibe nacher Hagen eine Mail, er hat ja in jedem Fall viel Erfahrung in dem Bereich und möchte Stellung beziehen.

Geändert von Satty67 (18. Sep 2010 um 18:51 Uhr)
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#13

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

  Alt 18. Sep 2010, 18:13
Alles ist ausgedacht... von irgend jemandem, irgendwann. ....
Hallo,

ein grundsätzlicher Einwand: man kann (soll) Passwörter so erzeugen, dass die Folge völlig zufällig ist, z.B. mit einem Passwortgenerator. Das ist auch garkein Problem, aber umgekehrt ist es sehr schwer festzustellen, ob eine Buchstabenfolge zufällig ist (was immer das heisst, denn unter den zufälligen Folgen befinden sich ja auch alle sinnvollen Wörter).

Beispiele: VWLOHFZ HAMBURG LJYQXVD SCHATZI UZMZUOE

Eigentlich müssten Hamburg und Schatzi mit 0, die 3 anderen (generierten) mit 1 bzw. der für 7 Buchstaben höchsten Zahl bewertet werden. Ich schätze das geht nicht ohne Wörterbuch, und das müsste für jedes Land anders sein.

Gruss Reinhard
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#14

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

  Alt 18. Sep 2010, 18:14
Noch wichtiger als die Anzahl und Entropie der Zeichen wäre imo zu prüfen, ob das Passwort zum Großteil aus einem oder 2 Wörtern besteht. Die meisten Angreifer werden nicht alle Möglichkeiten bruteforcen sondern einfach eine Wörterbuchattacke durchführen, mit der sie vielleicht bei 50% der Nutzer erfolgreich sind. Es gibt im Internet Listen mit häufig verwendeten Wörtern oder sogar häufig verwendeten Passwörtern.
Wenn ein Wort gefunden wird, sollte es als nur ein (oder 2?) Buchstabe(n) gewertet werden. (DasPferdFrisstGerneGurkenSalat ist ja schließlich nicht unsicherer als SPFGGS, genauer gesagt ist es sogar sicherer, weil es mehr Wörter als Buchstaben gibt).
Kommt halt darauf an, wie viel Aufwand du in die Passwortprüfung investieren willst...
[edit]Reinhard Kern war schneller...[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#15

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

  Alt 18. Sep 2010, 18:35
Zitat:
Keyboard-Layout: QWERTZ und CO, was Hagen bei sich implementiert hat
wenn du dein programm nur in einem land nutzt ist das relativ einfach, schwieriger wird es wenn es international ist.

Zitat:
Wenn eines der häufig genutzen Passwörter eingegeben wird
du kannst dir im netz ein password wörterbuch beschaffen, es gibt dort welche mit den 3000-4000 meist genuzten passwörtern.
Gruß
Cookie
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#16

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

  Alt 18. Sep 2010, 18:40
Ja, eine Liste der häufigsten Passwörter zum ausschließen ist auf der ToDo-Liste (siehe erster Post). Das mache ich aber erst, wenn der Code in ein TPasswortEdit eingebaut wird. Die Liste kommt nicht fest in den Code sondern wird per Property publiziert. Dann kann man die auch noch in der Anwendung pflegen und aktualisieren und evtl. auf Wörterbuchgröße erweitern.

Das "Wörter einer Sprache" eine großes Problem sind, hab' ich auch gelesen, genauso Namen und eben Kombinationen daraus. Derzeit ist nur ein Methode drin, die Passwörter aus nur Buchstaben abwertet. Reinhards Beispiel zeigt schön, dass es mathematisch wohl keine sprachübergreifende gute Lösung für das Problem gibt. Mein Ansatz "drängt" den Anwender nur dazu, Zahlen und Sonderzeichen einzubauen, um auf einen besseren Wert zu kommen.

Die im Moment noch als Konstanten in der Funktion vorhandenen Werte, werden später auch als Property angeboten. Um den Einwänden Rechnung zu tragen,wird noch Bewertung der Länge und Abwertung von "Nur Buchstaben"-Passwörtern einstellbar. Neben der Manupulation der Einzel-Faktoren, kann ich dann auch Profile anbieten, die von locker bis streng voreinstellen.

Ich denke der Code ist schon recht flexibel... setze ich z.B. DiffCharsMaxMulti = 100, ist die Entropie fast schon strenger wie bei PassphraseQuality.

***

Was die Komplexität angeht... für das aktuelle Projekt nicht nötig. Dort wird auch nur angezeigt, nicht ein mindest Wert vorgeschrieben. Es sind Fahrzeug-Dokumente, keine geheimen Staatsakten. Aber soll ja alles wiederverwertbar sein und notfalls auch höheren Ansprüchen genügen.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#17

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

  Alt 18. Sep 2010, 19:20
Vielleicht könnte man als Annäherung analysieren, welche Buchstaben oder Buchstabenpaare oder Silben in der jeweiligen Sprache statistisch am häufigsten aufeinander folgen und dann diese Folgen in den Passwörtern abwerten? Somit muss man nicht ein komplettes Wörterbuch "mitschleppen", sondern nur ein vergleichsweise kleines Sprachprofil. Man könnte vielleicht sogar ein neuronales Netz dafür nehmen.

Ich habe aber keine Ahnung, wie gut so etwas funktionieren würde. Möglicherweise ist die Idee auch nur Mist...
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#18

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

  Alt 19. Sep 2010, 00:59
Hier gibt es einen Online-Passwortchecker von Microsoft in JavaScript.


EDIT:
Auf StackOverFlow gibt es auch Anregungen.

U.A. dort für interessant befunden:
Bei Google suchenalgorithm password strength findet auch eine ganz Menge Bibliotheken. Viele scheinen einen heuristischen Ansatz zu verfolgen.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (19. Sep 2010 um 01:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#19

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

  Alt 19. Sep 2010, 05:41
Zitat:
Hier gibt es einen Online-Passwortchecker von Microsoft in JavaScript.
der bestimmt aber nur die passwortlänge, sonst nichts.
Gruß
Cookie
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#20

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

  Alt 19. Sep 2010, 09:01
Auf StackOverFlow gibt es auch Anregungen.
Ja, da hab' ich mich für den mittleren Prüfteil insperieren lassen:
Zitat:
* At least one uppercase and one lowercase letter
* At least one number
* At least one special character
wobei ich das in der Schleife im Case-Block prüfe.

Dezeit wird ja geprüft:
  • Eventuell ein Datum? -> auf Zahlen reduzieren (da nur Zahlen sowieso ein schlechtes Ergebnis bringen)
  • Wiederholdende Zeichen? -> nur das erste bewerten (da das scheinbar kein großen Vorteil bringt)
  • Mindestens je ein Groß/KleinBuchstabe, Zahl, Sonderzeichen vorhanden?
  • Anzahl unterschiedlicher Zeichen im Passwort (Entropie)
  • Länge des Passwortes
Punkt 1/2 passen nur das zu prüfende Passwort (intern) an, also schneiden Punkte bzw. Zeichenwiederholungen aus.

Punkt 3 vergibt pro Zeichengruppe einen Multiplikator-Anteil, der später aufaddiert wird. Sind aber nur Groß/Klein-Buchstaben vorhanden, dann wird abgewertet.

Punkt 4 ergibt je nach Anzahl unterschiedlicher Zeichen zu Länge einen Multiplikator

Punkt 5 Bewertet die Länge expentionel, allerdings etwas abgemildert durch die Log2 Funktion

Am Ende steht ein Entropie-Wert (aus Punkt 3/4) und ein Längen-Wert (aus Punkt 4), die miteinander multipliziert das Ergebnis bilden.

Grundsätzlich sind alle in Tutorials vorgeschlagenen Prüfmethoden drin. Ebenso kann man durch etwas probieren, die Anteile der einzelnen Methoden am Gesamtergebnis verschieben. Wer also auf Entropie einen riesen Wert legt, kann das mit "DiffCharsMaxMulti = 100" machen. Was noch fehlt sind erweiterte Prüfungen wie Keybord-Layout-Check, TopTen-Passwörter-Check und wohl zu aufwändig, ein Wörterbuch-Check.

***

Zum Thema Entropie und Passwortlänge:

Kein Mensch/Hacker setzt sich an den PC und probiert manuell zig Tausend Kombinationen an der Tastatur. Es ist entweder ein wissensbasierter Angriff (Geburtstag/Name des Hundes/Passwort-TopTen), der dann einen Glückstreffer bringt oder ein maschineller Angriff auf den Hashcode.

Beim Angriff mit Hashcode wird wohl erst eine Wörterbuch-Attacke (einzelne/kombinierte Wörter einer Sprache) erfolgen und danach simples BruteForce... also alle Zeichenkombinationen/Längen durchprobiert. Da bin ich davon überzeugt, das leichte Entropie und breite Nutzung des Zeichensatzes und vor allem Länge den maximalen Schwierigkeitsgrad bringen. Eine maximale Entropie ist garnicht nötig, es werden sowieso maschinell alle Zeichen durchgetestet, also die Schleifen für jede Zeichenposition immer komplett durchlaufen.

***

Ich lasse mal das ganze etwas ruhen, ich denke es wurde so ziemlich alles zum Thema angesprochen. Für mich arbeitet die Prüfmethode gut und ich werde die (Logik) ins Projekt übernehmen.

Wenn ich mit dem Hauptprojekt weiter bin, werde ich dann hier noch die resultierenden Komponenten anhängen.

Geändert von Satty67 (19. Sep 2010 um 09:35 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 7     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:45 Uhr.
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