パスワードのセオリー

2017/09/18

少し前にあのパスワード規則、実は失敗作だった - WSJという記事が話題になりました。いい機会なのでパスワードのセオリーについて考えてみました。

この記事は

  • NISTスペシャルパブリケーション800-63 別表A(NIST Special Publication 800-63. Appendix A.)は、米国立標準技術研究所(NIST)で2003年にまとめられたパスワードに関するルール集
  • 文字種(大文字、小文字、数字、記号)を混在させる、パスワードを定期的に変更する、といったルールはこの文書から広まった
  • 実際には作成者の思惑通りにはならず、むしろより脆弱なパスワードを生み出すことになってしまった
  • 「800-63」は2017年6月に全面改訂されたが、世界中にこの改訂が行き届くにはかなりの時間が必要だろう

という内容です。

ルール自体がダメだった、みたいな論調をちらほら見かけましたが、どちらかと言うと「適切に運用できないルールだったからダメ」という感じでしょうか。

ルールの背景も踏まえた上で扱える人には意味があるけど、世間の大多数(含む自分)はそんなことしないしできないから、結果としてダメなルールだった、と。

じゃあどうすればいいのよ?ということになると、ヘタに考えない・覚えないのが一番。パスワードマネージャーに頼るのがいいんだと思います。1PasswordとかKeePassとか。もちろんソフト自体の脆弱性には気を付けなくてはならないですが、脳みそやメモ書きよりは安全でしょう。

パスワードの生成自体もパスワードマネージャーに任せてしまい、十分に長いパスワードにしておきましょう。あとはちょっと面倒ですが2段階認証の活用ですね。

一方で作る側に回ったら、ID/password方式の認証機構を作るときは

  • 最小文字数を長めにとる
  • 文字種の混合を強要しない(受け入れはする)
  • ありがちなパスワードをブロックする
    • password, 12345678のようなあるある文字列
    • 生年月日、電話番号などを含むもの
  • 秘密の質問は採用しない(類推可能でむしろ脆弱なので)

にするのがいいのかな?「秘密の質問に効果ないよ」とか提案してもあんまり受け入れられなさそうだなー、とは思いますが...

参考URL




おススメ