2008-12-09 5 views
3

Comment gérer les mots de passe pour les services lorsque l'utilisateur entre quelque chose qui est mieux représenté dans Unicode ou un autre codage de caractères non latins? En particulier, pouvez-vous utiliser un mot de passe cyrillique comme mot de passe pour Oracle? Que faites-vous pour vérifier le mot de passe d'un utilisateur par rapport à un mécanisme d'authentification Windows si le mot de passe est fourni en UTF-8?I18n et mots de passe qui ne sont pas US-ASCII, Latin1 ou Win1252

J'ai quelques idées sur la façon dont ceci devrait être traité dans notre code, mais je cherche des conseils d'autres personnes pour m'assurer que notre direction est saine.

Répondre

1

Le codage lui-même ne devrait pas poser de problème sur le chiffrement, la plupart des algorithmes fonctionnent sur des octets, pas sur des caractères. La seule chose qui pourrait être un problème est: Crypter le même mot de passe avec des encodages différents pourrait donner des valeurs différentes si des caractères exotiques (non-ASCII) sont utilisés dans le mot de passe. Convertir le mot de passe à un encodage fixe (comme UTF8) devrait résoudre ce problème, cependant.

1

Vous pouvez rencontrer des problèmes avec les restrictions de longueur des mécanismes d'authentification.

par exemple. Si le système spécifie une longueur maximale de 12 octets, cela pourrait facilement être dépassé par cinq caractères chinois dans utf-8, ce n'est pas un problème en soi car quatre caractères chinois devraient avoir assez d'entropie, mais, vous devez faire attention à l'erreur messsages. D'autres problèmes peuvent survenir si le mécanisme d'authentification applique des règles telles que "au moins une des majuscules, des minuscules, des signes de ponctuation et des caractères numériques" - plusieurs langues n'ont pas de majuscules/minuscules, et des dizaines de caractères sont définis dans unicode qu'un locuteur natif considérerait comme des nombres mais pourrait ne pas être reconnu comme tel par une règle mal implémentée.

Questions connexes