パスワードとは何か、そしてなぜ私たちは六十年間まちがえてきたのか

公開日 著者 David Carrero

パスワードとは、とても古い問いへの答えである。お前は味方か?

これを発明したのはコンピューターではない。ポリュビオスは紀元前2世紀に、ローマ軍が 毎晩、木の板——テッセラ——に書いた語を部隊から部隊へ回し、司令部へ戻していたと 記している。それを知る者は味方だった。知らぬ者は違った。

二千年後、私たちはまったく同じことをしている。変わったのは、誰が問うのか、そして どれだけの速さで答えを推測できるのか、それだけだ。

1961年 パスワードがコンピューターに入る

1961年11月、MITはフェルナンド・コルバトが率いる CTSSCompatible Time-Sharing System)を披露した。新しい発想だった。非常に高価な一台の コンピューターを、複数の人が同時に共有する。

そこで問題が現れた。機械がみんなのものなら、各自のファイルは各自のものでなければ ならない。コンピューターには、誰が打っているのかを知る方法が必要だった。解決策は もっとも当たり前で、もっともローマ的なものだった。利用者ごとに自分の語を持たせる。

正確に言っておきたい。コルバトはパスワードを発明したのではない。彼が発明したのは 多人数コンピューターにおける利用者ごとのパスワードであって、それは別のことだ。 晩年、彼自身がこれは「悪夢」になったと語っている。

1962年 最初の流出、そして理由は計算時間だった

一年後、同じMITの博士課程にいたアラン・シェアは、きわめて世俗的な問題を抱えて いた。週に四時間しか計算時間を割り当てられず、博士論文にはもっと必要だった。

そこで彼はシステムにパスワードファイルを印刷させた。それだけだ。平文でそこに あり、誰かがそれを求めるとは誰も考えていなかった。印刷を手に、彼は他人のアカウント を使って作業を続けた。

面白いのは手口ではない。動機だ。史上初のパスワード流出は犯罪者の仕業ではなく、 作業を続けたかった人間の仕業だった。六十年後、セキュリティの穴の大半は、いまも まっとうな人間が近道を探すところから生まれている。

1979年 そもそも保存すべきではないと気づく

二十年近く、多くのシステムはパスワードをそのまま保存していた。誰かがファイルを 読めば、すべてを持ち去れた。

1979年、ロバート・モリスとケン・トンプソンCommunications of the ACM に 「Password Security: A Case History」と題した論文を発表した。Unix でやったことに ついてである。今日すべての土台となる二つの考え方だ。

  • パスワードを保存せず、そのハッシュを保存する。 システムはあなたのパスワードが 何かを知る必要はない。いま打たれたものが同じ結果を出すか確かめられればよい。
  • ソルト:ハッシュ化の前に各パスワードへ乱数を加える。同じパスワードの二人が 同じハッシュにならず、表を事前計算して一網打尽にされることもなくなる。

今日、あるサービスが「あなたのパスワードを知るべきではない」と言うとき、私たちは 1979年の論文を引用している。

2003年 私たちが教わった規則と、その出どころ

2003年、米国NISTのビル・バーが、世界の半分がパスワードをどう求めるかを支配する ことになる文書を書いた。SP 800-63 である。あなたが即座に見分けるものはすべて ここから出ている。

大文字を一つ、数字を一つ、記号を一つ以上。90日ごとに変更すること。

科学のように聞こえた。そうではなかった。バーには実在のパスワードに関するまともな データがなかった——ほとんど存在しなかった——ので、手元にあるものに寄りかかり、 理にかなって見えるほうへ推論した。文字の種類が増えれば、組み合わせが増え、安全に なる、と。

問題は、人間は乱数生成器ではないということだ。大文字を求めれば先頭に置く。 数字を求めれば末尾に置く。記号を求めれば ! になる。三か月ごとの変更を強いれば、 Natsu2024!Aki2024! になる。

その結果が、複雑に見えて実は自明なパスワードの世代まるごとと、もう限界だから どこでも使い回す疲れ切った利用者たちだった。

2017年 NISTが撤回し、バーもまた

2017年、NISTは SP 800-63B を公表し、ほぼすべてを撤回した。

  • 長さは複雑さより重要である。
  • 侵害の兆候がない限り、強制的な変更はしない
  • 記号を要求するのではなく、流出リストと照合する

同じ年、バーは Wall Street Journal に、自分が書いたことの多くを悔いていると 語った。コンピューターセキュリティが生んだもっとも誠実な訂正のひとつである。 ——それでも今なお何千という入力欄が、著者自身が否認した文書のせいで記号を要求して いる。

これが遠い昔の話ではない理由

これらすべてには、きわめて具体的な帰結がある。ここで見ることができる。

私たち自身のチェッカーは、つい最近まで2003年の論理で動いていた。 大文字と数字と記号を数えていたのだ。Contraseña1! ——文字どおりスペイン語の 「パスワード」——に 92 %「非常に強い」 を与え、比べものにならないほど優れた ランダムな五語のフレーズに 0 %「非常に弱い」 を与えていた。

やってはいけないことを、まさに褒めていた。私たちは入れ替えた。いまは単語・名前・ 都市・キーボードの並びの辞書からあなたのパスワードを探し、実際にどれだけ持ちこたえ るかを告げる。

そして ジェネレーター が百分率ではなくエントロピーのビット数を見せるのも そのためだ。百分率は何も意味しない。ビットは意味する。あなたのことを何も知らない者 が何回試さねばならないか、その数である。

どうすればいいか、二行で

  • 長さはひねりに勝つ。 ランダムな四つか五つの単語は P@ssw0rd を桁違いに 上回る。
  • どこでも別のものを、管理ソフトに。 2003年の規則で唯一いまも立っているもので あり、私たちがもっとも守らなかったものだ。

問いは2世紀のローマと同じである。お前は味方か? 変わったのは、問う者がいまや毎秒 十億の答えを試せることだ。あなたの答えが辞書に載っていないことを願う。


出典:F. J. コルバトとCTSS(MIT、1961年)· 1962年についてのアラン・シェア自身の 証言 · R. モリス、K. トンプソン「Password Security: A Case History」Communications of the ACM、1979年 · NIST SP 800-63(2003年)およびSP 800-63B(2017年)· ビル・ バーの Wall Street Journal への発言、2017年8月。

← ブログに戻る