ozumaのコメント: Re:絵文字を使ったパスワード (スコア 2) 13
NIST SP 800-63Bを見る限り、Unicodeをパスワードとして使う時代はそう遠くないと思います。
NIST SP 800-63B
5.1.1.2 Memorized Secret Verifiers
....
All printing ASCII [RFC 20] characters as well as the space character SHOULD be acceptable in memorized secrets. Unicode [ISO/ISC 10646] characters SHOULD be accepted as well.
....
ここでは、全てのASCII文字列と、そしてUnicode文字もMemorized Secret(要するにパスワード)として扱えるようにすべきとなっています。
パスワードをハッシュ化するという当たり前のことをきちんとしていれば、結局はASCIIの文字列になるわけなので、Unicodeで漢字が来ようが、絵文字が来ようが、ヒエログリフが来ようが、理屈としては問題ないわけで。
(NFKD/NFKC正規化もきちんと担保しろよってことも、上記の800-63Bに書いてあります)
UTF-16だとサロゲートペアがきちんと扱えないアプリは全滅するでしょうが、そりゃ「ちゃんと対応しよう」と言うしかないわけで。
これを受けて、GCP(Google Cloud Platform)のブログでも、以下のように述べられています。
ユーザー アカウント、承認、パスワード管理に効く 12 のベスト プラクティス
ハッシュ化されたパスワードは、既知の ASCII 文字の一部だけで構成されます。そうでなくても、バイナリ ハッシュは簡単に Base64 に変換できます。
こうした点を踏まえると、ユーザーが使いたいあらゆる文字をパスワードに使用できるようにするべきです。Klingon や Emoji、両端に空白を含む制御文字をパスワードに含めたいユーザーがいたとしても、それを拒む技術的理由はないはずです。