日々惑う -雑記ブログ-

プログラミングやUnityの使い方、ソシャゲ運営の手法など自身の考え方などをまとめていく。

「パスワードの定期変更」はむしろ脆弱性を生む

認証システムを作る際によくある方法として、IDとパスワードによる認証がある。
その際にパスワードの扱いでよく見るのが、以下のもの

 ----------------
1. 8文字以上
2. 英数記号を含める
3. 定期的(3ヶ月程度)に変更する
4. パスワードを忘れたら「秘密の質問」に答えることで代替措置を取る
 ----------------

そもそも、これらについて全般的に少し疑問に思っているところがある。

1. 8文字以上 2. 英数記号を含める

ブルートフォースアタックでパスワードをクラックされる場合にかかる時間を考慮しての事かと考えますが、PCの性能が上がるにつれて複雑さや長さが増やす必要があるので、文字数の規定があまり意味が無い。

3. 定期的(3ヶ月程度)に変更する

変更コストが高く、安易な変更にやりやすい。つまり、より簡単な覚えやすいパスワードを設定していく危険性が高い。

4. パスワードを忘れたら「秘密の質問」に答えることで代替措置を取る

パスワード以上に秘密の質問や答えを忘れる。
パスワードよりも調べたら分かることになっている場合が多い

3,4に関しては2017年の8月頃に明確に否定されている。
「パスワードの定期変更」「秘密の質問」を明確に否定
jp.wsj.com
blogos.com

パスワードの扱いについてどうするかを考える大本になっていたのが、「NIST SP800-63-2 Appendix A」の,パスワード規則に関する記述だと考えられますが、今回NIST から否定が入っているので既存のシステムは根本的に考える必要があるかと。

今後のパスワードのガイドラインをどうするのかという点については議論の余地がありそうですが、いくつかの記事を見たところ以下の様な要素になりそうだと考えます。

記号を無理に使うよりは,覚えやすく「長い」こと

覚えられないパスワードは結局(利用者に)淘汰されてしまうので、単純でも長い方がいい
matsutakegohan1.com

パスワード変更は「盗難など,第三者に使われた可能性を認識した」とき

問題が無い限りはパスワードを変えない方がいいし、定期的に変えるよりももっと効果的な方法がある
blog.tokumaru.org