フォームが母親の旧姓を尋ねてくるとき、それはあなたに秘密を求めているのではない。戸籍に載っている記録を求めているだけだ。
批判の核心はそこにあり、あとは細部にすぎない。秘密の質問とは、普通のパスワードにはない三つの欠陥を抱えたパスワードだ。自分で選んでいない、多くの人が同じ答えを書くので当てられる、そして自分の管理外のどこかに書かれていることが多い。その代わりに、とてつもない特権が与えられている。パスワードの代わりになれるのだ。あなたのアカウントの裏口であり、しかも表の扉より脆い。
これは業界の勘ではない。Google が測定した事実である。
フォームを設計する前に誰も読まない研究
2015年、5人の研究者 — Joseph Bonneau、Elie Bursztein、Ilan Caron、Rob Jackson、Mike Williamson — がフィレンツェで開かれた WWW 会議で、タイトルだけでほぼ内容が分かる論文を発表した。Secrets, Lies, and Account Recovery である。30人のボランティアを集めた実験室の話ではない。彼らが分析したのは数億件の秘密の答えと、数百万件の実際のアカウント復旧の試みだった。
この発見には二つの半分がある。たいてい語られるのは片方だけだ。
半分その一:当てられる
論文の脅威モデルは、詮索好きな親戚ではない。アカウントを大量に攻撃し、ごく一部でも当たれば十分だという相手だ。そのレンズを通すと、数字の意味が変わる。
たった一回の試行で、攻撃者は英語話者ユーザーの「好きな食べ物は?」への答えの 19.7 % を的中させる。一回で、である。念のために言えば、答えは今あなたが思い浮かべたそれになりがちだ。十回の試行なら、韓国語話者ユーザーの「生まれた都市は?」への答えの 39 % に当たる。そして一回の試行で、Google が翻訳して提示していた「父親の第一姓は?」という質問に対するスペイン語話者の答えの 3.8 % が当たる。
3.8 % は小さく聞こえる。攻撃者が狙っているのがあなたのアカウント一つではなく百万件だと思い出すまでは。しかもそのリストを作るのに Google である必要はない。著者らはそれを実証した。クラウドソーシングサービスで買ったわずか千件の答えから、最大百回試行した場合に本物の分布の 75 % から 80 % に匹敵する効果を持つ分布を組み立てたのだ。実験にかかったのは100ドルと、一日足らずの時間だった。
とどめは、一意になるよう設計された質問すら助からないことだ。マイレージ番号は定義上、他人と重なりようがないはずだ。ところが実際には、一回の試行で英語話者の 4.2 % が当たる。理由は見事なもので、あとでまた戻ってくる。人は嘘をつく。しかも、群れで同じ嘘をつく。
半分その二:忘れられる
ここで論拠は完全に崩れる。私たちが秘密の質問を使い続けている唯一の理由は、それが確実だという思い込みだからだ。前提そのものは筋が通っていた。生まれた街を思い出すほうが xK4$mz を思い出すより簡単なはずだ、と。そうではなかった。**アメリカの英語話者ユーザーの 40 % は、いざ必要になったときに自分の答えを思い出せなかった。**漠然と忘れていたのではない。アカウントに入ろうとしていて、入れなかったのである。
そして完璧な逆転が現れる。十年前にこの技術にとどめを刺していてもおかしくなかった事実だ。**質問が安全であればあるほど、思い出せない。**同じ集団で、「父親のミドルネームは?」という脆い質問は 76 % が正解した。当てるのがかなり難しい「最初に使った電話番号は?」は 55 % まで落ちる。そして理論上もっとも安全なはずの候補は沈む。「図書館カードの番号は?」が 22 %、「マイレージ番号は?」は 9 % だ。
時間がとどめを刺す。「好きな食べ物は?」の正解率は、1か月後で 74 %、3か月後で 53 %、1年後にはわずか 47 % だった。しかも復旧は最初のうちに集中しない。著者らは、ユーザーが早い時期にアカウントを復旧する傾向は遅い時期より高いわけではないと突き止めた。つまり大半の人は、記憶が蒸発しきったころに質問へたどり着く。
著者らの結論に、解釈の余地はあまりない。安全でありながら記憶に残る秘密の質問を見つけることは、ほぼ不可能に思われる。
嘘は身を守らない。閉じ込める
問題を理解したとき、まともな反応は嘘をつくことだ。生まれた街を訊かれたら「レイキャビク」とでも答えて先へ進めばいい。
論文はそれも測定している。アメリカの人々を対象にした調査だ。偽の答えを書いたと認めた人のうち、37 % は攻撃者を困らせるため、15 % はそのほうが覚えやすいから — 二度読んでほしい — そして 31.9 % はプライバシーのため、つまり自分の来歴を企業に献上したくなかったからだった。
問題は、答えを固くするという仕草が予測可能だという点にある。マイレージ番号の 4.2 % がまさにそれだ。多くの人の嘘は、その人たちの真実よりはるかに互いに似通っている。そして代償はもう半分のほうで支払う。「最初に使った電話番号は?」に7桁の何か — もっともらしい答え — を書いたアメリカのユーザーは、55 % の確率で自分の答えを思い出せた。6文字を書いた人、つまり何かをでっち上げた人の正解率は 18 % だった。
書き留めずに嘘をつくのはセキュリティ戦略ではない。鍵を捨てる行為だ。
日本語では、質問そのものが成立していない
母親の旧姓に戻ろう。日本では夫婦同姓が原則で、結婚のたびに姓が変わり、その前後がすべて戸籍に書き残される。母親の旧姓は謎ではなく、戸籍謄本に印字されている。
これは日本だけの珍事ではない。論文自身が Griffith と Jakobsson の研究を引いている。公開されている出生と婚姻の記録から、テキサス州の住民の少なくとも 30 % について母親の旧姓を導き出した研究だ。さらに Rabkin の指摘も引かれている。実際に使われている質問の 16 % は、その答えが SNS の公開プロフィールに日常的に列挙されていた。
登記簿に載っていてプロフィールにも出ている情報は、共有された秘密ではない。パスワードの入力欄が前に置かれただけの公開情報である。
強制してくるフォームへの対処法
逃げ道がないこともある。銀行が三つの質問を要求し、答えなければ先へ進めない。そういうときは、それを質問として扱うのをやめて、正体どおりに扱えばいい。
- 人生ではなく、パスワードで答える。「生まれた都市は?」には、ジェネレーターで作ったランダムな文字列でも、先にチェッカーへ通したフレーズでも答えられる。どこの記録にも載っていない答えは、それだけだ。
- **パスワードマネージャーの、そのサイトの項目に書き留める。**任意ではない。まさにこれが、記憶の 55 % と 18 % を分ける差である。嘘は、保存してはじめて機能する。
- **別の復旧方法を選ばせてくれるサービスなら、そちらを選ぶ。**Google のデータでは、アメリカの英語話者ユーザーで SMS が 81 %、メールが 75 % 成功したのに対し、秘密の質問は 61 % — フランス語話者に至っては 44 % — だった。
Google は自分たちのデータを前にして、それに従って行動した。秘密の質問を最後の手段へ格下げし、常に他のシグナルと組み合わせるようにしたのだ。論文が勧めているのは、単独で使わないということである。
11年経った今も、保険会社はあなたに最初に飼ったペットの名前を尋ねてくる。ランダムな16文字で答えてやればいい。その程度の扱いがふさわしい。
出典:J. Bonneau, E. Bursztein, I. Caron, R. Jackson, M. Williamson, “Secrets, Lies, and Account Recovery: Lessons from the Use of Personal Knowledge Questions at Google”, WWW 2015, フィレンツェ · V. Griffith, M. Jakobsson, “Messin’ with Texas: Deriving Mother’s Maiden Names Using Public Records”, ACNS 2005、および実運用における秘密の質問についての A. Rabkin の研究。いずれも前掲の論文で引用されている。