本レポートは、2023年2月9日に行われた講演をもとにしたものです。
個人アカウントを守る、セキュリティを高める二要素認証の必要性
Twilio Japanは、SNSや電話、チャット、ビデオ、Eメールといった、さまざまなコミュニケーションチャネルをAPIとして提供する企業。TwilioのAPIを企業が提供しているプロダクトに組み込むことによって、ユーザーとシステム、アプリケーションがやり取りをできるようになる。使われかたはさまざまで、深夜にサーバーが落ちるなどのトラブルが起こったときに担当者へ架電したり、自動音声応答でユーザーからの問い合わせに対応したりといったことが可能になる。
TwilioのAPIは、サインイン(ログイン)したときの認証インフラとしても使われている。IDとパスワードの認証後、携帯電話のSMSなどへ認証コードを送るといった使い方がされている。
セキュリティに関する問題はいま、インターネットを利用したサービスを提供する企業にとって、もっとも重要な関心事だ。しかし、企業がどんなに強固なセキュリティシステムを導入したとしても、ユーザーがIDやパスワードを管理している限り不正アクセスからは逃れられない。ユーザーを不正アクセスから守る仕組みとして、二要素認証(二段階認証)がある。IDとパスワードだけでサインインさせるのではなく、プラスアルファの要素を必要とする仕組みだ。
IDとパスワードの入力で本人確認をしてきた歴史はかなり長い。池原氏は「Gmailのサービスがはじまった初期の2006年ごろからのメールアドレスを使用しているので、Chromeで管理されているアカウントが222件ありました。数が多すぎて覚えることが難しくなっています。パスワードマネージャーを使わないともう無理ですよね」と自身の状況から、アカウントを管理が困難になっていることを説明した。
アカウントの管理が難しいからといって、IDとパスワードを使うのはかなりリスクが高い。haveibeenpwned.comというサイトでは、Emailアドレスや電話番号に紐づいたアカウントが流出しているかどうかを調べられる。入力してみると、相当な量のアカウントがすでに流出していることがわかる。もし、IDとパスワードを使い回していると、流出したアカウントをもとにほかのサイトへサインインできてしまうことになる。
IDとパスワードはもはや盗まれるもので、いつまでも安全なものではないということが共通認識として必要だ。そういった背景もあり、IDとパスワードという「知る要素」+携帯電話などの「持つ要素」+指紋や静脈などの「備える要素」というものを使うことでセキュリティを高めている取り組みが、ここ10〜15年ほど続いてきている。アカウントの認証方法としてIDとパスワードの入力に、さらに本人確認を加える二要素認証がよく使われている。
4つの二要素認証の方法、それぞれの利点と欠点
二要素認証の代表的な方法には、次の4つがある。
- 電話番号を利用したワンタイムパスワード
- Emailアドレスを使ったワンタイムパスワード
- Time-Based One-Time Password(TOTP)
- アプリのPush通知
二要素認証はそれぞれに利点があり、またセキュリティの強度も異なる。どれが優れていて、どれが劣っているということはなく、導入するときは総合的に考えて判断する必要がある。
電話番号を利用した二要素認証は、IDとパスワードの認証後に登録している電話番号へSMSや電話でワンタイムパスワードを送信する。電話番号を利用した二要素認証は、追加のソフトウェアを必要としない、電話番号の乗っ取りが難しいといったメリットがある。ユーザーが所有するデバイスへ送信されるという安心感もある。
ただし、偽サイトでIDとパスワードを入力すると正規のサイトへ送信され、二要素認証のワンタイムパスワードが所有するデバイスへ送信されるSMSフィッシングという脅威がある。電話番号を使った二要素認証にも脆弱性があるのだ。
Eメールアドレスを使ったワンタイムパスワードによる二要素認証もよく利用されている。電話番号のワンタイムパスワードとは、送信する手法と受け取る側のメディアが違うだけである。サイトでIDとパスワードを入力すると、登録しているEメールアドレスにワンタイムパスワードが届く仕組みだ。
Eメールアドレスによる認証の問題点は、指定したアドレスにワンタイムパスワードを送信して入力してもらっているだけなので、本人かどうかの判断はできないことだ。
TOTP(Time-based One-time Password)とは、ある一定の時間で変わる、一度しか使えないパスワードを利用して認証する方法だ。TOTPではIDとパスワードを入力したら、事前に登録しているGoogle AuthenticatorやMicrosoft Authenticatorといったアプリで発行されるパスワードを入力することで認証が完了する。
実装する側としては、運用コストを抑制できるという特性がある。欠点はユーザーがアプリを導入するのに手間がかかることだ。アプリを導入した経験のある池原氏は「この方法で本当に合っているのかな」と不安を感じたことを話した。提供するサービスによっては、ユーザーにこの手間を負担させられるかどうかの見きわめも必要だ。
アプリのPush通知の認証は、IDとパスワードの入力をしたあとに、ほかのソフトウェア「ログインしましたか?」と、本人かどうかの認証を行う。このPush通知の認証方法は、FacebookやGoogleアカウントなどで導入されている。
ただし、初回のアカウント生成で認証済みのデバイスがないため、初回をどうするのかという課題が残る。また、何度もPush通知を連続して送り続けることでユーザーを疲れさせ、認証させる悪質な手口も存在する。
サイレントネットワーク認証と、二要素認証の今後
すべての方法に何らかの欠点があるため、二要素認証はいくつかの方法を組み合わせたり、どこかを妥協したりして使っていく必要がある。しかし、池原氏は導入にあたって、考えておくべきこととして「サービスの提供側は二要素認証の導入を進めていきたいと考えています。しかし、ユーザーにとっては必ずしも導入してほしい、導入したいものではないということです」と指摘する。
ユーザーにしてみれば手間が増えるので「煩わしい」と感じてしまう壁がある。それを乗り越えるにはどうしたらいいのか。
まず考えられるのが、二要素認証を導入しないとユーザーがサービスを使えないようにすることだ。金融系のサービスなどでは、二要素認証が必須になっていることが多い。わずらわしいと感じる壁は越えられないものの、機能を利用するために仕方なく導入するだろう。
2つ目は二要素認証を導入することで、ユーザーにメリットがあると提示すること。BtoBでは見かけない方法だが、BtoCだと使われていることが多い。オンラインゲームの利用中にユーザーが二要素認証を導入することで、本来であれば課金する必要のあるサービスが無料で利用できるようになるといった使い方がされている。
3つ目は無意識のうちに認証させる方法だ。2022年末から話題になっているWebAuthn/Passkeysがそれにあたる。IDやパスワード、要素認証ではなく、認証情報を各ブラウザやデバイスで共有して、パスワードレスで認証しようというものだ。IDとパスワードを覚える必要がなく、二要素認証で毎回コードを入力する必要がない。認証情報がほかの環境と共有できる世界がもうすぐ来るといわれている。
また、サイレントネットワーク認証というものもある。これはスマートフォンなどのSIMやeSIMの情報を使って、携帯電話キャリアが認証を行うもの。サイレントネットワーク認証は、昨年からTwilioでもサポートをはじめ、認証方法の1つとして提案を行っている。スマートフォンのSIMに登録されている情報を使って本人確認をすることで、なりすましをするのは難しいと考えられる。ワンタイムパスワードの入力をすることなく、SIMを内蔵しているデバイスで認証をかけたら本人確認ができるようになるのだ。日本での導入はまだ検討中だが、アジアパシフィック地域では実用化されている。
池原氏は二要素認証の今後について「将来的にはいわゆる二要素認証はもしかすると、なくなっていく技術かもしれません。ただし、すぐにそういった世界になるのは難しいため、紹介した二要素認証の利点や欠点を考慮しながら導入を進めていく。すでに導入しているのであれば、この認証方法でよいのか、将来的にはどうしていくのかを考えていく、そういった時代になってきたのかなと思います」と話し、講演を締めくくった。