教育情報セキュリティ

子どもたちを守る「認証」の強さとは。
その直感と現実 後編より信頼性が高い「認証」を実現する考え方と手段

GIGAスクール構想によって児童生徒1人1台端末が整備されました。これによりコンピュータが児童生徒1人ひとりに配付され、日常的に活用できる環境が整いました。本稿では安全に端末を活用するために欠かせない認証について、「直感」によって引き起こされる誤解と「現実」という観点で解説。認証とは何かを考察した前回に引き続き、より具体的に信頼性が高い認証を行うために必要な考え方と具体的な手段を整理します。

猪俣 敦夫 大阪大学 サイバーメディアセンター 教授

猪俣 敦夫大阪大学 サイバーメディアセンター 教授

2008年奈良先端科学技術大学院大学准教授、2016年東京電機大学教授を経て、2019年より大阪大学教授、同サイバーメディアセンター副センター長。立命館大学客員教授。博士(情報科学)、情報処理安全確保支援士、CISSP。一般社団法人JPCERTコーディネーションセンター理事、奈良県警察サイバーセキュリティ対策アドバイザー。

「直感」で思い浮かべる予測と「現実」に起こりうる問題の差

「認証」と聞いたとき、あなたはどのような方法を思い浮かべますか。多くの方が、まずIDとパスワードを挙げられるのではないでしょうか。これは、その本人しか知らない「知識」を用いる手法です。また、クレジットカードや学生証のような(ICチップが搭載された)カードの「所有」を用いる手法も利用したことがあるはずです。それ以外にも、指紋や虹彩、静脈などの「生体情報」を用いる手法が、入退室管理やATMで利用されている場面を思い起こされた方もいらっしゃるのではないでしょうか。これらは、いずれも「認証」を具現化した技術の一例です。とはいえ何と言っても私たちが、実に長い間、何も疑問を持たずに使い続けているIDとパスワードは、すでに人類の生活と切っても切り離せない関係になっています。一般社団法人JPCERTコーディネーションセンターでは、安全なパスワードの条件を次のように紹介しています。

  1. パスワードの文字列は長めにする(12文字以上を推奨)
  2. インターネットサービスで利用できるさまざまな文字種(大小英字、数字、記号)を組み合わせるとより強固になる
  3. 推測されやすい単語、生年月日、数字、キーボードの配列順などの単純な文字の並びやログインIDは避ける
  4. 他のサービスで使用しているパスワードは使用しない

数字4桁の鍵を解錠するのに必要な試行回数は?

図1ダイヤルロック

ここで自転車などに取り付けるダイヤルロック図1を例に考えてみます。一般的なダイヤルロックの暗証番号は4桁ですので、0000から9999までの1万通りの候補のうちの1つが正解であることはすぐにお分かりになると思います。それでは、ダイヤルロックの鍵として4桁の数字でなく、大小英文字+数字+記号(94種程度の文字)が使えるならば候補はどのぐらいになると思いますか。答えは約7,800万通りです。では、同じ条件で5桁の場合はどうでしょう? 候補は約73億通りとさらに大きく増えます。このように桁数を上げることによって、その鍵の答えとなる空間が膨大に広がります。もちろん、73億通りといっても現代のスーパーコンピュータを利用すれば、難なく解読できてしまうのですが。

この話には、もう1つ気になることがあります。あなたが解錠の答えを知らないダイヤルロックを渡され「解錠してください」と頼まれたとします。4桁であれば、1万回ダイヤルを回せば答えに行き着くだろうと簡単に想像できると思います。しかし、実際に0000から1つずつダイヤルを回し始めたとして、答えが9999だったなんてことはおそらくないですよね(もちろん、可能性が0というわけではありませんが)。普通は2573といったような答えが設定されていることから、意外と早く正解に到達できる場合がほとんどです。これは、鍵の答えとなる候補の空間全体の大きさが強度そのものにはならないということを意味します。

「直感」と大きく異なる「現実」バースデー・パラドックス問題

ここで、皆さんにクイズを出してみたいと思います。

クイズ

あるグループの中で、同じ誕生日の人がいる確率が50%以上になるには、そのグループに何人を集めれば良いでしょうか?

多くの人は「だいたい180人ぐらいかな」と答えるかもしれません。1年は365日なので、その半分ぐらいの人数がいれば50%程度の確率になるだろうと推測するからです。しかし答えは、なんと23人です。ちょっと信じられないかもしれませんが、これは有名な「バースデー・パラドックス問題」というもので、驚くことに40人なら、その確率は89%にもなります。なぜこのような想像以上の結果になるのでしょうか。次に示した流れを見ながら考えてみましょう。

小問題1

あるグループに「同じ誕生日」の人がいる確率は?

図2バースデー・パラドックス問題

この計算式のとおり、グループの人数が増えていけば、当然同じ誕生日の人がいる確率は高くなっていきます。これを図にすると次のようになり、23人では約50%、40人集まれば90%近くになることが分かります。

同様に、次の問題も考えてみましょう。

小問題2

あるグループに「“私と”同じ誕生日」の人がいる確率は?

この場合では、先の例と比べて確率の伸び方が緩やかになります。計算がおかしいのではないかと思われた方もいらっしゃるかもしれません。この違いこそが、私たち人間が持つ「直観」と「現実」の違いです。まだよく分からないかもしれませんが、もう一度この2つの小問題の問題文を見比べてみてください。違いは「誕生日」と「私の誕生日」です。一見ほぼ変わらないのではと思いきや「私の誕生日」が複数あるなんてことはありません。すなわち、グループの人数が増えたとしても「私の誕生日」の候補が増えることはなく、ただ1つだけです。最初のクイズで「だいたい180人ぐらい」と答えてしまうのは、「私と同じ誕生日」の人がいる確率が50%以上になるには、という問題だと誤解してしまったためです。つまり、私たち人間が持つ「直感」が問題の解釈に影響を与えてしまったのです。

このバースデー・パラドックス問題は、情報セキュリティと大きな関係を持っています。情報セキュリティのさまざまな機能を実現するために、とても重要な役割を担う「ハッシュ関数」に対する攻撃に、このバースデー・パラドックス問題が適用できます。本稿ではその説明を省かせていただく代わりに、今回のテーマでもある「認証」において、この問題を捉えてみたいと思います。

パスワードの桁数と文字種でセキュリティの強度が決まる

あなたはA小学校のシステム担当者として、全校児童(400人)に学習支援システムへのログインパスワードを発行することになりました。なお、パスワードは数字のみの5桁(00000から99999)でランダムに発行されるものとします。このとき、同じパスワードになる人の確率が50%以上になる状況は、どのぐらいの人数で起こりうるかという問題です。パスワードの候補は10万通りあるので、「直感」ではその半分程度(5万人)の児童がいなければ発生しない、すなわち400人程度でパスワードが重複することはまずないだろうと推測するのです。

しかし、すでに私たちはバースデー・パラドックス問題を見てきましたので、この推測が危険だと想像できるはずです。確認の意味で実際に計算してみると、10万通りの候補では、たった373人いれば50%の確率で重複が起こることが分かります。さらに568人で80%、775人で95%という驚きの結果です。この結果をどのように思われるでしょうか。10万通りというと比較的大きな空間のように感じていたかもしれません。次に、この空間の大きさの意味について、もう一度パスワードの視点からまとめます。

用いる文字種が増えるだけで堅牢さが飛躍的に増す

ログインに認証を必要とする一般的なシステムでは、パスワードに設定される文字の種類として、①数字のみ ②数字+英字 ③ ②に加えて大文字・小文字の区別 ④ ③に加えて記号、といった文字種が選ばれます。そして、①から④のように文字種が増えていくことで、仮にパスワードが1文字だけだとしても数字のみ(0~9の10種類)よりも英数字を使い、さらに大文字・小文字を区別し、記号を追加したほうがその候補が広がることはすぐにお分かりになると思います。特に④では、(記号の数にもよりますが)94種類程度になります。

さすがに1文字のパスワードというのは現実的ではありません。そこで強度を高めるための重要な要素がパスワードの文字数になります。例えば、4文字であれば数字のみ(0~9の10種類)の4乗(=1万通り)なのに対して、さらに94種類の文字が加わることにより94の4乗(=78,074,896)となり、文字数を増やすことによってパスワード候補は相当大きな空間になります。この空間の大きさそのものが、情報セキュリティでよく言われている「ブルートフォースアタック」と呼ばれる全数探索攻撃に耐えるための強さになります。これは、攻撃者がパスワードを破る最も単純な方法として知られており、攻撃手法に知恵をつけたものではなく、例に挙げたダイヤルロックの解錠でダイヤルを1つずつ回していくのと同じ要領なので、答えを見つけるには時間も労力もかかり相当大変なことは事実です。今回は、暗号そのものを解読する手法には焦点を当てませんが、この単純な方法では「とにかくしらみつぶしに探索する」ということが答えを見つける手段であるということになります。

もし突破された場合は、連鎖的に被害が発生する恐れも

A小学校の例に戻ると、あなたはシステム担当者として、まだアルファベットを学んでいない児童も利用することが前提のため、文字種は数字のみに限定されるが、その候補が10万通りもあれば安全であろうという考えから5桁を採用すると結論づけました。これは、ブルートフォースアタックに対して10万通りの攻撃耐性を持っていることを表します。加えてログイン試行回数に制限を施しておけば、現実的にはそれなりに安全だと言えるのかもしれません。

ここでもう一度、バースデー・パラドックス問題のことを思い出してください。10万通りの攻撃耐性を持つという「直感」が、パスワードの強さに対する誤解を生み出すこともあるのです。もし、パスワードが破られて不正アクセスが行われていたとしても、それを子どもたちだけで気づくことは難しく、また、同一のパスワードがほかのシステムでも使いまわせるように設計されていた場合には、攻撃者らによる攻撃が加速度的に進んでしまうことが想像できます。

どんなに強いパスワードが設定されていたとしても、一度でも破られてしまえばあっけないもので、連鎖的にほかのシステムにまで被害が及んでしまいます。この問題は、パスワードを利用するシステムの宿命でもあります。

複数の要素を組み合わせることで突破の可能性を大幅に低下させる

この問題に光を与えることになったのが、今や当たり前になりつつある「多要素認証」と呼ばれる手段です。冒頭でご紹介した「認証」の3要素である「知識」「所有」「生体情報」を、2つ以上組み合わせて認証を行うことによって、たとえパスワードが突破されたとしても、もう1つ別の認証を連続的に突破される可能性は大幅に低くなります。なお、2つの要素を組み合わせて行うことから「二要素認証」と呼ばれたり、2つのステップを経て認証を行うことから「二段階認証」と呼ばれたりもします。TwitterやLINEといったSNSの一般的な認証スタイルにもなっており、今や企業などでは必須の機能となっています。それでは、さっそく「A小学校にも二要素認証を導入すべきだ」という流れになるかと思われますが、それは少しお待ちください。「認証」として大切なことは、児童生徒たちが使うシステムの認証機能としてふさわしいのかという観点で考える必要があります。

二要素として、「知識」であるパスワード以外の要素に「所有」もしくは「生体情報」を用いることになります。「生体情報」の場合、小学生や中学生は成長著しい時期であり、背丈や顔の変化も大きくなりやすいものです。もちろん最近の生体認証システムは精度が著しく向上しましたが、それでも失敗することも十分に考えられます。また、学校に設置する生体認証リーダの管理も必要になり、また感染症対策の観点から非接触である必要性も出てくるなど、それなりのコストを見積もらなければなりません。

また「所有」では、一般的にICチップが搭載されたカードなどを使う方法が考えられます。しかし、紛失対策やICカードリーダの配付など、こちらもそれなりの費用を想定しておかなければなりません。そこで、アイデアの一つとしては、かつてオンラインバンキングなどでよく使われていた番号確認カード(乱数表のようなもの)を用いる手法が考えられます。この手法は、すでにオンラインバンキングでは使われなくなっているように堅牢な強度を持つ認証手段であるというわけではありません。しかしながら、子どもたちに対してはパズルのような番号確認カード(と呼ぶ用紙)を配付するだけで実現でき、もし紛失した場合にも新しい番号確認カードを再発行すればよく、それほどの手間はかかりません。

楽しみながら認証の大切さを理解できる方法を考えることが本来の意義からもとても大事なこと。

情報セキュリティは本来、目に見えない裏方で活躍すべき

このアイデアのように、いろいろな二要素認証の手段が考えられると思います。いずれにせよ、ユーザとなる子どもたちの視点に目線を合わせ、子どもたちが楽しみながら認証の大切さを理解できるような方法を考えることが「認証」の本来の意義からもとても大事なことだと思います。

最後に。子どもたちを守る情報セキュリティを考えることはとても大切ですが、そのセキュリティの強さばかりに意識を集中させてしまうと、使う側の子どもたちにとっては「ただ使いにくいだけのもの」になりかねません。情報セキュリティは本来、見えない裏方で活躍する縁の下の力持ちであるということを忘れないようにしていただければと思います。

(2022年2月掲載)