Welche Kriterien gelten für ein zufälliges Passwort?

Hm, hab einen Passwort-Generator geschrieben und möchte dafür JUnits schreiben. Dabei stellt sich mir die folgende Frage:
Es gibt die drei Gruppen g1, g2 und g3 mit ‚A‘-‚Z‘, ‚a‘-‚z‘ und ‚0‘-‚9‘. Welche Wahrscheinlichkeit muss für ein Zeichen im Passwort gelten? Jeweils 1/3 für ein Zeichen aus g1, g2 und g3; oder 26/62, 26/62 und 10/62?

Ich denke, würd 1/3 für jede Zeichengruppe gelten, so wäre das Passwort doch leichter zu erraten, da der Gruppe ‚0‘-‚9‘ eine höhere Wahrscheinlichkeit zukommt, oder?

Sei doch mal kreativ. Wenn jeder weiß, dass es drei Gruppen gibt und du diese gleichmäßig verteilst, dann wird dies wohl eine äußerst schlechte Wahl. Verteile es Random, das heisst, für jede Gruppe 10% bis 80%. BTW.: g4 - Sonderzeichen hast du wohl vergessen, was?

Ja, eigentlich sind es 7 Gruppen. Teils welche mit nur einem Zeichen…

Das verstehe ich nicht ganz…

:unamused:

Ähm… Jede Gruppe mindestens mit 10% im Passwort vertreten, macht 30%. Die restlichen 70% verteilst du Random auf die Gruppen. 80%-10% macht 70%.
also g3%=100%-(g1%+g2%)

Aber in dem Fall, wenn das bekannt wäre, schränkt das doch die infragekommenden, möglichen Passwörter ein - oder?

Ich zeige gleich einmal was ich meine.

Wie willst du Random denn bekannt werden lassen? Du weisst ja selbst nicht, wie das Programm in Einzelfällen verteilt.

Doch, wenn man alle Bedingungen zu dem Zeitpunkt an dem das Passwort generiert wird kennen würde, könnte man es ja imitieren und „nacherstellen“.
Aber es geht ja darum, dass sogar wenn die Regeln mit denen das Passwort erstellt wird bekannt wären, man nicht auf das Passwort schließen können sollte.
Oder verstehe ich etwas ganz falsch?

Oder die ultimative Frage, mit welchem „Muster“ erstellst du deine Passwörter? 12345? :smiley: (Ich gehe davon aus, dass du mir das hoffentlich nicht mitteilen wirst.)

Es gibt keine vollständig sicheren Passwörter. Ganz egal, ob bekannt ist, auf welcher Grundlage sie erzeugt werden oder nicht.
Letztendlich unterliegt es deiner Kreativiät, dir einen Algorithmus einfallen zu lassen, der möglichst gut verteilte, besonders lange und unvorhersehbare Passwörter generiert.

Also nochmal: Wir haben 3 Gruppen 2 mit 26 Zeichen und eine mit 10 Zeichen. Mindest- oder Beispiellänge Passwort 10 Zeichen. Aus jeder Gruppe soll mindestens ein Zeichen auftauchen, das bedeutet, die Mindesthäufigkeit jeder Gruppe muss 10% sein und damit sind schon mal 30% Passwort erledigt. die restlichen 70% verteilt man Random und zwar bei jeder PW-Erstellung neu Random. Dabei musst du die nicht mal gleichmäßig verteilen, sondern vllt. 10%-35% g1 und g2 und den Rest (10%-25%) auf g3. Da kommst du auf keinen vernünftigen Algorithmus und Bruteforce fiel ja schon bei der Verwendung von nur zwei Gruppen aus.

Edit:
BTW.: Man kann die Länge eines Passworts auch Random machen, z.B. zwischen 10 und 15 Zeichen. Dann weis der Angreifer auch schon nicht mehr, welche Bereiche er wie abklappern soll und es bleibt nur noch Bruteforce. Passwörter sind auf jeden Fall schon mal weitaus sicherer, als jedwede Verschlüsselung.

Mh, ja, ich hab auch Passwörter mit nur 10 Zeichen, einfach weil ich sie dann handlicher finde, beim Fernseher z. B. einzugeben. Den gelegentlichen Hinweis auf den Websites, Passwort „schwach“, ignoriere ich dann einfach mal.
Viele nehmen ja auch Sätze aus der Bibel und codieren diese irgendwie. Aber ob das besser wäre?
Zum Glück scheint es diese nervigen „Passwort-vergessen-Sicherheitsfragen“ nicht mehr zu geben.

So, etwas Naivität sei erlaubt… Eigentlich wär doch „mmmmmmmmmmmmmmmm“ das sicherste Passwort gemeinhin, da ‚m‘ der 13. Buchstabe im Alphabet darstellt; und gleich, ob der Backtracking beim Anfang oder Ende anfängt, es würd erst nach (26^26)/2=3078059790103578655398337144200101888 Versuchen erraten werden, und diese Zeit hat doch keiner. :clown_face:

Ist sogar ein ziemlich schlechtes Passwort. Die meisten brute force Algorithmen nehmen bekannte oder einfache Passwörter zuerst.