Frage

Ich muss einige Passwörter generieren. Ich möchte Zeichen vermeiden, die miteinander verwechselt werden können.Gibt es eine endgültige Liste von Charakteren, die ich vermeiden sollte?meine aktuelle Liste ist

il10o8B3Evu![]{}

Gibt es noch andere Zeichenpaare, die leicht zu verwechseln sind?Bei Sonderzeichen wollte ich mich auf die unter den Zifferntasten beschränken, obwohl ich weiß, dass dies je nach Nationalität Ihrer Tastatur unterschiedlich ist!

Als Fahrerfrage möchte ich, dass meine Passwörter „wortartig“ sind. Haben Sie dafür einen bevorzugten Algorithmus?

Danke :)

War es hilfreich?

Lösung

Hier sind die Zeichensätze, dass Steve Gibson verwendet für seine "Perfect Papier Passwort" System. Sie sind „Zeichen zu ermöglichen“ und nicht als „Zeichen zu vermeiden“, aber sie scheinen ziemlich vernünftig für das, was Sie wollen:

Ein Standardsatz von 64 Zeichen

!#%+23456789:=?@ABCDEFGHJKLMNPRS
TUVWXYZabcdefghijkmnopqrstuvwxyz

Eine größere Gruppe von 88 Zeichen

!"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHJKLMNO
PRSTUVWXYZ[\]^_abcdefghijkmnopqrstuvwxyz{|}~

Für aussprechbar Passwörter, bin ich mit den Algorithmen nicht vertraut, aber Sie könnten unter APG und pwgen als Ausgangspunkt.

Andere Tipps

Meine bevorzugte Methode ist eine Wortliste von 3, 4 und 5 Buchstaben-Worten zu bekommen. Dann wählen Sie mindestens zwei von denen, und legen Sie eine zufällige 2-stellige Zahl oder ein Sonderzeichen (% & * @ # $) zwischen jedem Wort. Wenn Sie möchten, können Sie nach dem Zufallsprinzip ein Zeichen pro Wort Kapital auf.

Je nach Anforderungen an die Festigkeit Sie am Ende mit leicht zu merkende und kommunizieren Passwörter wie:

  • Zitrone% Schreibtisch
  • Papier & boy32hat

Beachten Sie gelegentlich interessante oder unpassende Kombinationen von Wörtern bekommen (ich werde Sie Ihre Fantasie verwenden lassen). Ich habe in der Regel eine Taste ermöglicht die Generierung eines neuen Passworts, wenn die eine präsentiert unbeliebt ist.

In der Regel verwendet nur Symbole, die Menschen häufig die Namen kennen. Auf einer US-Standard-Tastatur würde ich vermeiden ~ ` '/ \ ^

Ich denke, diese mehr beantwortet Ihre Fahrer Frage als Ihre wichtigste Frage. ..

Viel Glück!

Lesen Sie Wahl Sichere Passwörter .

Ein interessanter Leckerbissen von dort: Für eine sicherere Passwörter, stellen Sie sicher, dass einige Zahlen und Sonderzeichen in der Mitte erscheinen. Programme zum Knacken prüfen für sich am Anfang und enden früher.

zu Jims Antwort hinzuzufügen kann, auch die Wortliste verwenden könnte und ersetzen zufällig bestimmte Zeichen mit Symbolen (ein @ für ein A, ein 0 (Null) für einen O oder 5 für eine S) und / oder die Vokale entfernen von den Worten.

  • lmn% Desk
  • p @ pro & b0y32H @ t

Still meist Menschen lesbar.

Als weitere Option können Sie eine Monospace / Terminal Schriftart wie Courier verwenden, um die Passwörter für den Druck. Ähnliche Zeichen sollten viel mehr unterscheidbar so sein.

Für einen internationalen Kunden vor einigen Jahren hatte ich zufällig, sichere Passwörter zu generieren, die dann durch meinen Mandanten in Dokumenten-Mail zusammengefasst und per Post an die Empfänger in 40 Ländern gesendet. Nicht zu wissen, welche Schrift wurde in den Dokumenten verwendet werden, habe ich eine Liste von Zeichen wie der Steve Gibson 64- Zeichen setzt die Verwirrung zwischen ähnlichen Glyphen zu beseitigen.

Um die daraus resultierenden Passwörter aussprechbar zu machen, und somit leichter zu merken, gepaart ich Konsonanten und Vokale zusammen mit einigem Konsonanten Digraphe (sh, th, wh, etc.) zur Mischung hinzugefügt.

Um die Chancen von unangemessenen oder beleidigenden Worten von generiert wird (in Englisch oder in dem Empfänger Sprachen) zu reduzieren, ich begrenzt Läufe von aufeinanderfolgenden Alpha-Zeichen auf zwei, mit Ziffern oder Satzzeichen betwee:

Es4tU$sA6
wH@cY8Go2

Mit Blick auf meiner Methode zurück jetzt merke ich, dass es Raum für Verbesserungen in der Unangemessenheit Algorithmus war. Mit den nur die oben genannten Regeln sind einige beleidigenden Worte jetzt möglich, dass einige Zahlen und Satzzeichen sind für Buchstaben ersetzt.

Für Menschen lesbarer Passwörter, habe ich kürzlich eine PHP-Skript sehr ähnlich den unten. Es funktionierte gut. Zugegeben, werden die Passwörter nicht unglaublich sicher gehen zu sein (wie sie auf Wörterbuchangriffe anfällig sind), aber für speicherbaren oder zumindest lesbar, Passwörter es funktioniert gut. Allerdings sollte diese Funktion nicht verwendet werden, wie sie ist, dann ist es mehr zur Veranschaulichung als alles andere.

function generatePassword($syllables = 2, $use_prefix = true)
{

    // Define function unless it is already exists
    if (!function_exists('arr'))
    {
        // This function returns random array element
        function arr(&$arr)
        {
            return $arr[rand(0, sizeof($arr)-1)];
        }
    }

    // Random prefixes
    $prefix = array('aero', 'anti', 'auto', 'bi', 'bio',
                    'cine', 'deca', 'demo', 'dyna', 'eco',
                    'ergo', 'geo', 'gyno', 'hypo', 'kilo',
                    'mega', 'tera', 'mini', 'nano', 'duo',
                    'an', 'arch', 'auto', 'be', 'co',
                    'counter', 'de', 'dis', 'ex', 'fore',
                    'in', 'infra', 'inter', 'mal', 
                    'mis', 'neo', 'non', 'out', 'pan',
                    'post', 'pre', 'pseudo', 'semi',
                    'super', 'trans', 'twi', 'vice');

    // Random suffixes
    $suffix = array('dom', 'ity', 'ment', 'sion', 'ness',
                    'ence', 'er', 'ist', 'tion', 'or',
                    'ance', 'ive', 'en', 'ic', 'al',
                    'able', 'y', 'ous', 'ful', 'less',
                    'ise', 'ize', 'ate', 'ify', 'fy', 'ly'); 

    // Vowel sounds 
    $vowels = array('a', 'o', 'e', 'i', 'y', 'u', 'ou', 'oo', 'ae', 'ea', 'ie'); 

    // Consonants 
    $consonants = array('w', 'r', 't', 'p', 's', 'd', 'f', 'g', 'h', 'j', 
                        'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm', 'qu');

    $password = $use_prefix?arr($prefix):'';
    $password_suffix = arr($suffix);

    for($i=0; $i<$syllables; $i++)
    {
        // selecting random consonant
        $doubles = array('n', 'm', 't', 's');
        $c = arr($consonants);
        if (in_array($c, $doubles)&&($i!=0)) { // maybe double it
            if (rand(0, 2) == 1) // 33% probability
                $c .= $c;
        }
        $password .= $c;
        //

        // selecting random vowel
        $password .= arr($vowels);

        if ($i == $syllables - 1) // if suffix begin with vovel
            if (in_array($password_suffix[0], $vowels)) // add one more consonant 
                $password .= arr($consonants);

    }

    // selecting random suffix
    $password .= $password_suffix;

    return $password;
}

In meiner (Elektrotechnik, techie) Graduiertenschule, alle Computerkonten wurden mit Passwörtern initialisiert, die, nehme ich an, von einem Standard-Linux-Dienstprogramm generiert wurden. Sie bestand aus drei zufälligen Silben, mit drei Kleinbuchstabe in jeder Silbe. Das Ergebnis war einigermaßen sicher ist (in der Größenordnung von Milliarden von möglichen Kombinationen) noch so ausspricht-able, dass ich noch später einige dieser Passwörter mehr als ein Jahrzehnt nutzen. James' Beispiel ist eine hervorragende Demonstration dafür.

Ein Kommentar auf Passwörter in der Regel von einem Netzwerk-Sicherheitsexperten: Sie sind schrecklich, aus verschiedenen Gründen, einschließlich:

  • Im Allgemeinen leicht gebrochen, entweder durch Social Engineering oder mit Angriff Software, vor allem wenn man weiß, alles über Ihr Ziel.

    Beispiel 1: Ich muß vor kurzem ein kennwortgeschützte technisches Dokument revidieren. Mit Blick auf den Zeitpunkt, wusste ich, die unsere Tech Writer in residence an der Zeit war, tippte das erste Wort, das meinen Geist eingegeben und entsperrt das Dokument sofort.

    Beispiel 2: Standard-Passwort-Cracker-Programme ermöglichen es dem Cracker eine Reihe von Regeln zu spezifizieren, die auf einem vom Benutzer angegebenen Wörterbuch arbeiten. Es ist trivial bestimmte Buchstaben mit $ ymb01 $ zu ersetzen oder in 1337 zu übersetzen, etc.

  • "Sichere" Passwörter sind es nicht. Angesichts der schieren Anzahl der Passwörter, die meisten Menschen erinnern müssen, die häufigste Art und Weise zu „erinnern“, ein „starkes“ Passwort wie „a4 $ N! 8_q“ ist es auf ein Stück Papier zu schreiben (oder, schlimmer noch, sollte sie in eine Textdatei). ‚Nuff said.

Wenn Sie wirklich sicher Authentifizierung, Multi-Faktor (oder Zwei-Faktor ) ist die Industrie akzeptierten Mechanismus. Die „zwei Faktoren“ sind in der Regel etwas, das Sie Haben (wie eine Zugangskarte) und etwas, das Sie wissen , die es (wie zum Beispiel eine PIN) ermöglicht. Keiner arbeitet ohne das andere -. Sie müssen beide

Auf der anderen Seite, sollten Sie das Niveau der Sicherheit, die Sie wirklich brauchen. Was schützen Sie? Wie schlecht machen die „bösen Jungs“ wollen es zu bekommen, und was sind die Konsequenzen, wenn sie es tun? Die Chancen stehen gut, "sein @ Secret!" ist mehr als gut genug. : -)

Ich liebe nicht die Wortliste Ansatz. Zum Beispiel in / usr / share / dict / words auf OSX gibt es 5110 4-Zeichen Worte. Mit zwei von ihnen mit einem seperator Charakter produziert ~ 600M Kombinationen. Aber wenn Sie das Zeichen direkt mit einem starken Zufallszahlengenerator eingestellt verwenden, dann würden Sie 88 ^ 9 mögliche Passwörter haben, 3.16e + 17 Kombinationen.

So oder so wird der wahrscheinlich Angriff gegen dieses System geht gegen den Zufallszahlengenerator sein, so stellen Sie sicher, dass Sie einen kryptografisch starken verwenden. Wenn Sie PHP-Standard-rand-Funktion verwenden, wird es durch die Registrierung und das Zurücksetzen Tausende von Passwörtern angegriffen werden, um die RNG Zustand zu probieren und dann den verbleibenden RNG Zustand vorherzusagen, was die Anzahl der möglichen Passwörter reduzieren wird ein Angreifer testen muss.

Ein Ausgang Ansatz könnte meist gültig Englisch Silben zu erzeugen sein, sie mischte, dann in einer text-> l33t Umwandlung zu werfen. Es gab Arbeit der Generationen natürliche Sprache Grammatiken getan, also einer von denen könnte helfen.

z. ah ul ing sind alle gültigen Silben oder nahe daran ... mischen sie -> Ingulah ... l33t es -> 1ngu4h. Ist es das Beste da draußen? Nö. Aber zumindest ist es semipronouncable (wenn Sie sprechen l33t) und rechentechnisch sicher.

Wenn Sie bei der Erzeugung aussprechbar Passwörter interessiert sind, gibt es eine C # Port an: http://www.hoogervorst.ca/arthur/?attachment_id=1708

Im Code, finden Sie hilfreiche Links zu finden, um mehr zu lernen. http://www.multicians.org/thvv/gpw.html

Good Luck. James

function random_readable_pwd($length=12){
    // special characters
    $sym="!\"§$%&/()={[]}\,.-_:;@>|";

    // read words from text file to array
    $filename="special.txt";
    if (!file_exists($filename)) { die('File "'.$filename.'" is not exists!'); }
    $lines = file($filename);
    foreach ($lines as $line_num => $line) {
        $line=substr($line, 0, -2);
        $words[].=$line;
    }

    // Add words while password is smaller than the given length
    $pwd = '';
    $ran_date=date("s");
    while (strlen($pwd) < $length){
        $r = mt_rand(0, count($words)-1);
        // randomly upercare word but not all in one time
        if ($ran_date % 3 == 0) $words[$r]=ucwords($words[$r]);
        $pwd .= $words[$r];
        //randomly add symbol
        if ($ran_date % 2 == 0) $pwd .= $sym{mt_rand(0,strlen($sym))};
        $ran_date++;
    }

    // append a number at the end if length > 2 and
    // reduce the password size to $length
    $num = mt_rand(1, 99);
    if ($length > 2){
        $pwd = substr($pwd,0,$length-strlen($num)).$num;
    } else { 
        $pwd = substr($pwd, 0, $length);
    }

    return $pwd;

}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top