SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2023 セッションレポート(AD)

ユーザーに最適な二要素認証の方法を考える、それぞれのメリット・デメリットとは?

【9-B-7】結局どれが一番なの?あなたのユーザーに最適な二要素認証の方法を考える

  • このエントリーをはてなブックマークに追加

 ユーザーは多くのアカウント管理を強いられている一方で、アカウント情報の流出は頻繁に起こっている。もはやIDやパスワードは流出するものとして考えて、セキュリティに取り組む必要がある。不正アクセスなどのセキュリティ問題からユーザーを守るため、二要素認証は欠かすことができないのが現状である。しかし二要素認証にはさまざまな方法があり、サービス提供者が導入するにはそれぞれの方法の利点や欠点などを把握することが重要である。APIで二要素認証を提供しているTwilio Japan合同会社の池原大然氏は、複数の二要素認証手法の比較と認証システムについて語った。

  • このエントリーをはてなブックマークに追加

 本レポートは、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を内蔵しているデバイスで認証をかけたら本人確認ができるようになるのだ。日本での導入はまだ検討中だが、アジアパシフィック地域では実用化されている。

スマートフォンのSIMを利用して本人確認を行うことが可能に
スマートフォンのSIMを利用して本人確認を行うことが可能に

 池原氏は二要素認証の今後について「将来的にはいわゆる二要素認証はもしかすると、なくなっていく技術かもしれません。ただし、すぐにそういった世界になるのは難しいため、紹介した二要素認証の利点や欠点を考慮しながら導入を進めていく。すでに導入しているのであれば、この認証方法でよいのか、将来的にはどうしていくのかを考えていく、そういった時代になってきたのかなと思います」と話し、講演を締めくくった。

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加

提供:Twilio Japan合同会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17542 2023/04/07 14:55

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング