Frage

Ohne darüber nachzudenken, es überhaupt möchte ich nur sagen, dass ich jeden Charakter erlauben sollte. Es wird in jedem Fall gehasht, und ich möchte nicht, dass Menschen beschränken, die starke Passwörter erstellen möchten.

Doch darüber nachzudenken mehr, es gibt viele Zeichen, dass ich keine Ahnung, welche Wirkung sie auf die Dinge haben würde. Ausländische Zeichen, ascii Symbole usw. ein paar zu nennen.

habe ich versucht, Google, aber ich kann keinen definitiven Standard finde für das, was Menschen tun. Auch die meisten Berufsverbände scheinen nicht zu wissen. Es scheint eine gängige Praxis zu sein für viele Websites ganz besondere Zeichen zu verbieten, die nur dumm ist und nicht, was ich tun möchte.

Wie auch immer, gibt es keine Standardempfehlungen für Länge, erlaubte Zeichen und so weiter?

Ich bin mir nicht sicher, ob es wichtig ist, aber ich werde mit ASP.NET werden w / C #

War es hilfreich?

Lösung

Alle bedruckbar, das keine Leerzeichen ASCII-Zeichen (zwischen 33 und 126 einschließlich) werden in der Regel in Passwörtern erlaubt. Viele Sicherheitsexperten (und SO commenters) beraten die Verwendung eines Passwort anstelle eines Passworts , so würden Sie Räume erlauben müssen. Das Argument ist, dass aufgrund ihrer Länge, und da Sätze nicht in einem Wörterbuch sind, Paßphrasen sind schwieriger zu knacken als Passwörter. (Eine Passphrase kann auch einfacher sein, sich daran zu erinnern, so ein berechtigter Benutzer nicht zu halten hat es auf eine Haftnotiz direkt auf ihrem Monitor abgewertet.)

Einige einen Hash verwenden, so würde ich eine sehr hohe Grenze setzen auf die Länge (512 oder 1024) nur einschließend zu sein. Passwort-Generatoren heute ergeben oft Ketten von 32 bis 128 Zeichen, aber wer weiß, was Hashes in den nächsten Jahren verwendet werden.

Andere Tipps

Nicht-ASCII-Zeichen sicherlich schwerer machen Dinge, wenn es um das Passwort zu Eingabe auf begrenzte Geräte kommt (Handys, Konsolen etc.) - aber in der Regel nicht unmöglich. Diskutierbar, wenn der Benutzer das tun will, sollte man sich lassen. Es ist einfach genug, um ein angemessenes und stetiges, was zu tun - kodieren in UTF-8 vor Hashing, zum Beispiel. Sie würden nur in Schwierigkeiten geraten, wenn einige Eingabegerät die Zeichen als eine Zusammensetzung (zum Beispiel e + Akut statt „e akut“) geschickt - aber ich vermute, dass wouldn‘t im wirklichen Leben passieren. (Sie können alles selbst zersetzen, aber das wäre eine Menge Ärger zu für einen Rand Fall zu gehen.)

Ich würde beschränken es auf druckbare Zeichen, jedoch. Putting Tabs, Form-Feeds etc. in einem Kennwort wirklich Ärger bringen.

sind kein Experte, aber ich hasse es, wenn Charaktere, die ich wählen, und nicht so bizarr werden abgelehnt. Also, ich denke, dass ich mit Ihrem Darm zustimmen.

Kurze Antwort: erlaubt so viel wie das System sichert sie unterstützen können. Heutzutage gibt es wirklich keine Entschuldigung, nicht volle Unicode-Unterstützung für die Texteingabe zu verwenden, und das schließt Passwörter. Ich glaube nicht, Sie Probleme mit Zeichen kümmern, solange sie buchstäblich behandelt ist (aber ich bin kein Profi in diesem Bereich - passen Sie von SQL-Injection).

ich ein Haustier peeve gegen Websites, die Beschränkungen für Passwörter zu verhängen ... jeder Art von Einschränkung. Ich mag Websites, die Ihnen sagen, wie stark Ihr Passwort und empfehlen Sie es stärker machen, sondern zwingt einen Benutzer mindestens 8 Zeichen zu geben, oder Buchstaben und Zahlen erfordern, usw. ist einfach nur frustrierend.

Wenn Sie eine maximale Feldgröße haben müssen (zB in einer Datenbank zu speichern) versuchen, es groß genug, um für alles, was die Menschen aus der Hand geben würden. Es ist wirklich nicht so etwas wie ein zu großes Passwort-Feld, da gibt es immer die Möglichkeit einen automatisierten zu verwenden, erzeugen starkes Passwort, aber 64 bis 128 Zeichen würden sicherlich ausreichen.

Grundsätzlich sollten die meisten der Unicode-Zeichenklasse zugelassen werden. Überspringen Sie jedoch Zeichen steuern (zum Beispiel 0-31 neben Raum), die Bytereihenfolgemarkierung (0xfffe und oxfeff). Des Weiteren möchten Sie zuerst die Darstellung canonicalize durch unterschiedliche Darstellungen verursacht Probleme loszuwerden. Sie könnten Warnungen ausgeben, obwohl für Zeichen, die einzugeben, um zu hart erscheinen, aber die Benutzer dagegen selbst schützen werden.

Denken Sie daran: Wenn Sie Passwörter speichern, alle Passwörter mit einem One-Way-Algorithmus wie md5 von SHA1 verschlüsselt werden sollen. Da diese Algorithmen immer hexadezimale Zahlen ergeben, brauchen Sie nicht so über SQL-Injektionen oder nichts zu kümmern.

Also, solange Sie ein Zeichen MD5 oder SHA1 kann, sollte sie angenommen werden.

Wenn Sie sprechen, zu verhindern SQL-Injektion Art von Angriffen, ist es wahrscheinlich eine bessere Idee, um sicherzustellen, dass Ihr Code tut, was es tun soll, anstatt sich den Eingang zur Beschränkung so dass das Problem leichter wird.

Für Nicht-ASCII-Zeichen, ich sehe das nicht als ein schwierigeres Problem, wenn Sie Ihre Eingabe korrekt als Binär-String dargestellt werden (und nicht als text ), die dann zu übergeben Ihre Hash-Funktion oder Key-Generator usw.

Fügen Sie eine weitere Stimme für „lassen den Benutzer umfassen jegliche und alle Zeichen, die ihre Schnittstelle sie eingeben können“. Ich würde nicht einmal Tab oder Steuerzeichen nicht zulassen. Ihre Software hat die Fähigkeit, beliebige Byte-Strings zu akzeptieren und Hash sie, so akzeptieren beliebige Bytefolgen als Passwörter. Gehen Sie reduziert sonst den Raum, der ein Angreifer in einer Brute-Force oder Wörterbuch-Angriff suchen muß.

(Natürlich, auch wenn Sie alles tun lassen, 99% der Nutzer noch ihre Namen des Haustieres als Passwort verwenden ...)

Schließlich kann man aus dem klaren Passwort in einer confirmlation E-Mail an den Benutzer gesendet drucken.

PS: Könnte auch prüfen, Probleme in der E-Mail codiert, wenn es nicht Standard ascii ist, ist es möglich, dass ein Benutzer die E-Mail im richtigen Format erhalten oder kann es einfach nicht auf einem anderen System gelesen werden (zB japanische Zeichen.) aufgrund Schriftarten nicht installiert werden.

Das alles wiegt in den "druckbaren" ASCII-Zeichen reichen.

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