6.1. Empfehlungen für Benutzercodes (User Code Recommendations)
🇬🇧 English
For many users, their nearest Internet-connected device will be their mobile phone; typically, these devices offer input methods that are more time-consuming than a computer keyboard to change the case or input numbers. To improve usability (improving entry speed and reducing retries), the limitations of such devices should be taken into account when selecting the user code character set.
One way to improve input speed is to restrict the character set to case-insensitive A-Z characters, with no digits. These characters can typically be entered on a mobile keyboard without using modifier keys. Further removing vowels to avoid randomly creating words results in the base 20 character set BCDFGHJKLMNPQRSTVWXZ. Dashes or other punctuation may be included for readability.
An example user code following this guideline, WDJB-MJHT, contains 8 significant characters and has dashes added for end-user readability. The resulting entropy is 20^8.
Pure numeric codes are also a good choice for usability, especially for clients targeting locales where A-Z character keyboards are not used, though the length of such a code needs to be longer to maintain high entropy.
An example numeric user code that contains 9 significant digits and dashes added for end-user readability with an entropy of 10^9 is 019-450-730.
When processing the inputted user code, the server should strip dashes and other punctuation that it added for readability (making the inclusion of such punctuation by the user optional). For codes using only characters in the A-Z range, as with the base 20 charset defined above, the user's input should be uppercased before a comparison to account for the fact that the user may input the equivalent lowercase characters. Further stripping of all characters outside the chosen character set is recommended to reduce instances where an errantly typed character (like a space character) invalidates otherwise valid input.
It is RECOMMENDED to avoid character sets that contain two or more characters that can easily be confused with each other, like "0" and "O" or "1", "l" and "I". Furthermore, to the extent practical, when a character set contains a character that may be confused with characters outside the character set, a character outside the set MAY be substituted with the one in the character set with which it is commonly confused; for example, "O" may be substituted for "0" when using the numerical 0-9 character set.
🇩🇪 Deutsch
Für viele Benutzer wird ihr nächstes mit dem Internet verbundenes Gerät ihr Mobiltelefon sein; typischerweise bieten diese Geräte Eingabemethoden, die zeitaufwändiger sind als eine Computertastatur, um Groß-/Kleinschreibung zu ändern oder Zahlen einzugeben. Um die Benutzerfreundlichkeit zu verbessern (Eingabegeschwindigkeit zu verbessern und Wiederholungen zu reduzieren), sollten die Einschränkungen solcher Geräte bei der Auswahl des Benutzercode-Zeichensatzes berücksichtigt werden.
Eine Möglichkeit, die Eingabegeschwindigkeit zu verbessern, besteht darin, den Zeichensatz auf nicht groß-/kleinschreibungsempfindliche A-Z-Zeichen ohne Ziffern zu beschränken. Diese Zeichen können typischerweise auf einer mobilen Tastatur eingegeben werden, ohne Modifikatortasten zu verwenden. Das weitere Entfernen von Vokalen, um das zufällige Erstellen von Wörtern zu vermeiden, führt zum Base-20-Zeichensatz BCDFGHJKLMNPQRSTVWXZ. Bindestriche oder andere Interpunktion können zur Lesbarkeit enthalten sein.
Ein Beispiel-Benutzercode nach dieser Richtlinie, WDJB-MJHT, enthält 8 signifikante Zeichen und hat Bindestriche zur Lesbarkeit für den Endbenutzer hinzugefügt. Die resultierende Entropie beträgt 20^8.
Rein numerische Codes sind ebenfalls eine gute Wahl für die Benutzerfreundlichkeit, insbesondere für Clients, die auf Gebietsschemas abzielen, in denen A-Z-Zeichen-Tastaturen nicht verwendet werden, obwohl die Länge eines solchen Codes länger sein muss, um eine hohe Entropie beizubehalten.
Ein Beispiel für einen numerischen Benutzercode, der 9 signifikante Ziffern enthält und Bindestriche zur Lesbarkeit für den Endbenutzer mit einer Entropie von 10^9 hinzugefügt hat, ist 019-450-730.
Bei der Verarbeitung des eingegebenen Benutzercodes sollte der Server Bindestriche und andere Interpunktion entfernen, die er zur Lesbarkeit hinzugefügt hat (wodurch das Einbeziehen solcher Interpunktion durch den Benutzer optional wird). Für Codes, die nur Zeichen im A-Z-Bereich verwenden, wie beim oben definierten Base-20-Zeichensatz, sollte die Eingabe des Benutzers vor einem Vergleich in Großbuchstaben umgewandelt werden, um der Tatsache Rechnung zu tragen, dass der Benutzer die entsprechenden Kleinbuchstaben eingeben kann. Es wird empfohlen, alle Zeichen außerhalb des gewählten Zeichensatzes weiter zu entfernen, um Fälle zu reduzieren, in denen ein versehentlich eingegebenes Zeichen (wie ein Leerzeichen) eine ansonsten gültige Eingabe ungültig macht.
Es wird EMPFOHLEN, Zeichensätze zu vermeiden, die zwei oder mehr Zeichen enthalten, die leicht miteinander verwechselt werden können, wie "0" und "O" oder "1", "l" und "I". Darüber hinaus kann, soweit praktikabel, wenn ein Zeichensatz ein Zeichen enthält, das mit Zeichen außerhalb des Zeichensatzes verwechselt werden kann, ein Zeichen außerhalb des Satzes durch das im Zeichensatz ersetzt werden, mit dem es üblicherweise verwechselt wird; zum Beispiel kann "O" durch "0" ersetzt werden, wenn der numerische 0-9-Zeichensatz verwendet wird.