「パスワードのベストプラクティス」が変わる

no extension

Bruce Schneier 氏の “Changes in Password Best Practices” の内容が簡潔だったので「そのうち紹介しなくちゃ」と思っていたが,先を越されたっぽい感じなので,便乗記事として上げておく(笑)

まずは “Changes in Password Best Practices” で挙げられている3つの要件を以下に紹介する。

  1. Stop it with the annoying password complexity rules. They make passwords harder to remember. They increase errors because artificially complex passwords are harder to type in. And they don’t help that much. It’s better to allow people to use pass phrases.
  2. top it with password expiration. That was an old idea for an old way we used computers. Today, don’t make people change their passwords unless there’s indication of compromise.
  3. Let people use password managers. This is how we deal with all the passwords we need.

強調部分は私によるものである。

生成規則が複雑なだけのパスワードではダメ

最初の要件は,いたずらに複雑なパスワード生成規則を強要するな,というものだ。 ここで勘違いしてもらっては困るのだが,これは「複雑なパスワードはダメ」と言っているのではない。

パスワードの要件は

  • できるだけ文字数が多いこと
  • 出来るだけ文字種が多いこと
  • 出来るだけランダムに文字を選ぶこと

の3つである。 これを人力で作って覚えるのは難しい。

パスワードの強度に関して IPA が2013年に発表した資料がある。

このうちの「解説編 」にパスワードの解読されやすさの一覧表がある。 以下に引用しよう。

利用する文字種類数と内訳 パスワード長
種類数 数字 文字 シンボル 4文字 8文字 12文字 16文字
10種0-9なし なし1円未満($2^{13.3}$)1円未満($2^{26.6}$) 約35円($2^{39.9}$) 約35万円($2^{53.2}$)
36種0-9a-z なし1円未満($2^{20.7}$)約100円($2^{41.4}$) 約1.65億円($2^{62.0}$) 約276兆円($2^{82.7}$)
62種0-9a-z
A-Z
なし1円未満($2^{23.8}$)約7,500円($2^{47.6}$)約1,120億円($2^{71.5}$)約165京円($2^{95.3}$)
94種0-9a-z
A-Z
! " # $ %
& ' ( ) =
~ | - ^ `
¥ { @ [
+ * ] ; :
} < > ? _
, . /
1円未満($2^{26.2}$)約21万円($2^{52.4}$) 約16.5兆円($2^{78.7}$) 約129,000京円($2^{104.9}$)
パスワード解読の想定コスト例(情報漏えいを防ぐためのモバイルデバイス等設定マニュアル 解説編 2.4.2.2項より)

見たらわかると思うが,文字種の多さより文字数の多いほうがインパクトがあることが分かる。 数英大小文字記号すべて使って8文字のパスワードを作っても1日で解読完了させるコストは21万円ほどだが,これは数字だけで16文字からなるパスワードよりもコストが低い。

ただしこれは最もコストの高い「総当たり攻撃」の場合である(しかも4年も前の話だ)。

利用できる文字種類すべてを完全にランダムに選択して作ったパスワードを一つ一つ調べる全数探索により1日で解読しようとした際にかかるおおまかな想定攻撃コストを示しています。ここでは、全数探索(暗号鍵の総数256)でDES10を1日で解読するためのコストを約250万円と仮定します。また、パスワードを1つ検査するのとDESの暗号鍵を1つ検査するコストは同じであるとし、パスワードを求めるのに必要な計算量(検査する個数)が半分になればコストも半分、2倍になればコストも2倍になるものとしています。
情報漏えいを防ぐためのモバイルデバイス等設定マニュアル 解説編 2.4.2.2項より

したがって辞書にあるような単語を組み合わせたパスフレーズの場合は,余程の単語数が必要になる。 たとえば「やばいパスワード」で紹介されている方法では

テレビは1日1時間 → Terebi ha 1 niti 1 Jikan  → Terebiha1niti1Jikan

といった感じで19文字のパスワードを生成していて,先程の表で照らし合わせると,総当たり攻撃なら,ほとんど天文学的なコストになるが,実際にはそれぞれの単語が攻撃側の辞書にある場合は,たったの6単語しかないわけで,やり方によっては解読コストをかなり引き下げられる可能性もある(犯罪者側の最近の事情をよく知らないので杞憂かもしれないが)。

パスフレーズというのは,もともと「辞書攻撃」などない長閑な時代に PGP などのセキュリティ製品に採用されていたもので(今でも GnuPG ではパスフレーズが使用できる)

I could tell you my pass phrase, but then I would have to kill you.

みたいな比較的長い文(phrase)を使うことを想定している1。 したがってパスワード解読技術が向上している今の時代に単語を組み合わせただけのパスフレーズがどこまで効果的かは正直に言って分からない。 しかし “Password!1” みたいな「法令遵守の観点から社内規則に則ってはいるけど機械で容易に推測可能なパスワード」よりは遥かにマシということなのである。

パスワードの有効期限など無意味

2番目の要件は既に散々言われていることなので今更であろう。

【追記】 パスワード定期変更の起源?

JNSAメールマガジン 臨時号 2015.4.3.」によると

パスワードの定期的な変更は、パスワード文字列が4文字だった時代にパスワードの総当たり攻撃(ブルートフォース攻撃)の対策として実施したことが起源と言われている。
via JNSAメールマガジン 臨時号 2015.4.3.

なんだそうだ。 ホンマかいな(笑)

むしろ,ネットワーク管理者やセキュリティ管理者が自分たちの仕事(アカウント管理)を面倒臭がって「放っておいても期限切れになる」パスワード運用を強制した,のほうに1票いれるよ。

パスワード管理ツールを使え

3番目の要件もおなじみのやつである。

最近はウイルス対策ソフトを提供しているセキュリティ企業がパスワード管理ツールも提供していたりするので,そちらを使う手もある。 私としては KeePass を是非オススメするが。

KeePass はオープンソースのパスワード管理ツールで Windows の .NET Framework 用だが Linux 用に Mono で動作するバージョンも存在する。 また Android や iOS で動作する互換アプリも存在する。

パスワード管理ツールにはデータ暗号化にマスタパスワードを要求するものが多いが, KeePass では暗号鍵ファイルで暗号化できるのでマスタパスワードも不要だ(マスタパスワードと組み合わせることも可能)。 暗号鍵ファイルさえ適切に管理すればパスワードを格納した DB ファイルをクラウドに置いて(他人に見えないところに置いてね)機器間で共有することもできる。

パスワードを覚えようとか考えないこと

いつも言っていることだが「パスワードを覚えるなんて脳みその無駄使い」である。 最初に述べた3要件を満たすパスワードをツールで生成させてツールで管理すればよい。 どうしても不安ならば紙に書いて誰にも知られないように管理する手もある。 パスフレーズだって「覚えないといけない」という点では同じことなのだ。

「セキュリティと利便性のトレードオフ」なんてのは昔の話である。 適切な運用をすればセキュリティも利便性も両方確保できる。 それをしないのは単なる怠慢だ。

ブックマーク

参考図書

photo
PGP―暗号メールと電子署名
シムソン ガーフィンケル Simson Garfinkel
オライリー・ジャパン 1996-04
評価

プログラミング作法 プログラミング言語C 第2版 ANSI規格準拠 新版暗号技術入門 秘密の国のアリス 情報処理教科書 高度試験午後II論述 春期・秋期 (EXAMPRESS) エンタープライズ アプリケーションアーキテクチャパターン (Object Oriented Selection)

良書なのだが,残念ながら内容が古すぎた。 PGP の歴史資料として読むならいいかもしれない。

reviewed by Spiegel on 2014/10/16 (powered by G-Tools)

photo
暗号技術入門 第3版 秘密の国のアリス
結城 浩
SBクリエイティブ 2015-08-25
評価

自作エミュレータで学ぶx86アーキテクチャ コンピュータが動く仕組みを徹底理解! 数学ガールの秘密ノート/丸い三角関数 数学ガールの秘密ノート/微分を追いかけて 情報セキュリティ白書2015: サイバーセキュリティ新時代:あらゆる変化へ柔軟な対応を 数学ガールの秘密ノート/数列の広場

SHA-3 や Bitcoin/Blockchain など新しい知見や技術要素を大幅追加。暗号技術を使うだけならこれ1冊でとりあえず無問題。

reviewed by Spiegel on 2015-09-20 (powered by G-Tools)


  1. この物騒なパスフレーズは Simson Garfinkel 氏の『PGP』に載っていたものである。パスフレーズは文字数や文字種の制限がないのが特徴である。もし入力に日本語(UTF-8)が使えるのなら,海外の犯罪者に対しては,かなり強力なパスフレーズができると思うんだけどねぇ。 [return]