パスワードだけでなく多要素認証でアカウントを守るには?

trend-m-password_authentication.png

インターネット上のWebアプリを使うとき、IDとパスワードによる認証方法が多く使われています。このIDとパスワードの組み合わせは「本人だけが知っている」ことを前提として本人であることを認証するものです。もしIDとパスワードを第三者に知られてしまうと、本人が知らない間にログインされてしまいます。

このように第三者にログインされることを防ぐためには多要素認証が必須です。具体的にどのような技術なのかを解説します。

パスワードが盗まれる理由

インターネット上にはSNSやECサイト、銀行、クレジットカードなど多くのWebアプリがあり、利用者が使っているサービスも増えています。使っているWebアプリが少なければ、複雑なパスワードを設定しても覚えられますが、数が増えると異なるパスワードを設定することが困難になります。

このため、単純なパスワードを設定してしまう、またはパスワードを使いまわしてしまう人が増えています。これにより、フィッシング詐欺などに遭ってパスワードが知られてしまう、パスワードを推測して入力されるなどの理由により、第三者が勝手にログインできてしまいます。

さらに、企業の情報漏洩によってパスワードが流出すると、長く複雑なパスワードを設定し、使いまわさないようにしていても意味がありません。

多要素認証とは

パスワードが盗まれても第三者にログインされないように、本人であることを他の方法で確認することを考えます。対面であれば、免許証などの身分証を使う方法のほか、指紋を使う方法などが考えられます。これらの認証に使われる要素は、表のように分類されます。

認証の要素内容具体例
知識情報自分だけが知っていることパスワード、暗証番号など
所持情報自分だけが持っているものスマートフォン、IDカードなど
生体情報自分の身体の特徴指紋、顔、静脈、虹彩など

この3つの要素のうち、2つ以上を組み合わせる認証方法を「多要素認証」(MFA;Multi-Factor Authentication)といい、2つの要素では「2要素認証」といいます。

つまり、IDとパスワードのような知識情報に加えて、「スマートフォンを持っているか」といった所持情報、「指紋が一致するか」といった生体情報を組み合わせるものです。

銀行で預金を引き出すときに4桁のような短い暗証番号で問題ないのは、「通帳やカード」という所持情報と「暗証番号」という知識情報を組み合わせているからです。

このように複数の要素を組み合わせることで安全性が高まるため、パスワードに加えて、「秘密の合言葉」を使うように知識情報だけを使うものは多要素認証には該当しません。

手軽なワンタイムパスワード

インターネット上のWebアプリで多要素認証を実現するとき、パスワードに加えて「スマートフォンを持っているか」を確認することを考えます。このとき、手軽なのは「ワンタイムパスワード」(OTP;One-Time Password)を使う方法です。その名の通り「一度だけ使えるパスワード」を指し、SMS(ショートメッセージ)を送信する方法が考えられます。

具体的には、ログインするためにパスワードを入力すると、「スマートフォンに届いた6桁の数字を入力してください」といったメッセージが表示され、それと同時に6桁の数字がSMSで届くのです。SMSはスマートフォンを持っていないと受け取れませんし、ワンタイムパスワードを一度使ってしまえば盗まれても次は使えません。

このように、ログインのタイミングでもう1段階の認証を要求されるため、「2段階認証」とも呼ばれています。SMSを送信する以外にも、スマートフォンのアプリでワンタイムパスワードを生成する方法もあります。このとき、「TOTP」と「HOTP」という2種類の生成方法があります。

TOTPは「時間ベースのワンタイムパスワード」で、時間に合わせてパスワードが変わります。たとえば、30秒ごとに新しい6桁の数字がスマートフォンのアプリに表示され、時間が過ぎるとその数字は使えなくなります。

HOTPは「カウンター方式のワンタイムパスワード」で、ログインのたびに番号が1つずつ増えていきます。スマートフォンやハードウェアトークンがサーバー側と番号を合わせて管理しています。

TOTPはスマホアプリでよく使われており、小規模なWebアプリでも手軽に導入できることが特徴です。HOTPは専用のハードウェアトークンなどが使われ、銀行など大規模で高いセキュリティが求められる場面で使われています。

2段階認証を突破する中間者攻撃

2段階認証を使うとパスワードだけで保護するよりも安全性は圧倒的に高まるものの、これを突破する手法も存在します。それが中間者攻撃(MITM;Man in the Middle)を使った方法です。

たとえば、偽サイトを用意し、そこでIDやパスワードを入力させるだけでなく、ワンタイムパスワードも盗み取る方法です。リアルタイムに裏側でログインすることで、第三者がログインできてしまいます。

m-password_authentication_1.png

FIDO2やWebAuthnとは?

このような攻撃を防ぐためには、パスワードを使わないログイン方法が考えられます。そこで使われるのが「FIDO2」という規格です。

FIDO2は「秘密の鍵」をパソコンやスマートフォンに安全な状態で保存し、そのペアとなる鍵をサーバー側に保持しています。この鍵がないとログインできませんし、偽のサーバーを用意してもペアの鍵を読み出せません。パスワードを覚えておく必要もなく、長く複雑なパスワードを設定する必要もありません。

秘密の鍵を保存したパソコンやスマートフォンが盗まれると第三者にログインされると考えるかもしれませんが、この鍵を読み出すときには生体認証などの認証が必要であり、安全性を確保しています。

FIDO2の技術を使って、Webサイトでの認証を簡単にするための仕組みとして「WebAuthn」があります。ChromeやSafari、FirefoxなどのWebブラウザと、認証機器(スマートフォンの指紋センサーや顔認証、USBのセキュリティキー)を連携するための標準技術で、Webサイトでも簡単かつ安全にログインできます。

このFIDO2やWebAuthnに対応している認証機器として、USBで接続する生体認証ハードウェアや、NFCでスマートフォンをタッチするような機器があります。これをパソコンやスマートフォンに接続することで、1段階での2要素認証を実現できます。

具体的な製品として、表のようなものがあります。

製品名特長接続方法
YubiKey丈夫で多くのサービスに対応しているUSB-A、USB-C、NFC、Bluetooth
SoloKeysオープンソースで安心感があるUSB-A、USB-C

このようなハードウェアを使うメリットとして、秘密の鍵が機器に閉じ込められているため盗まれにくいこと、フィッシングやなりすましに強いこと、パスワードを忘れてもログインできることがあります。

たとえば、GoogleやFacebookのアカウント設定画面で「セキュリティキーを使ったログイン」を選ぶと、ログイン時にUSBキーをパソコンに差したり、スマホにかざしたりするだけで本人確認ができます。

まとめ

パスワードだけに頼るのではなく、複数の本人確認方法を使うという多要素認証の考え方はアカウントを守るために重要です。特にスマートフォンを使ったワンタイムパスワードやFIDO2に対応したハードウェアトークンは、安全性を高めるのに有効な手段といえます。

対応しているWebサイトも増えているため、長く複雑なパスワードを設定し、使いまわさないだけでなく、多要素認証を活用するようにしましょう。

著者プロフィール
増井 敏克氏(ますい としかつ)
増井技術士事務所代表。技術士(情報工学部門)、情報処理技術者試験にも多数合格。
ビジネス数学検定1級。

「ビジネス」×「数学」×「IT」を組み合わせ、コンピューターを「正しく」「効率よく」使うためのスキルアップ支援や各種ソフトウェア開発、データ分析などをおこなっている。

著書に『図解まるわかり セキュリティのしくみ』『図解まるわかり プログラミングのしくみ』『図解まるわかり アルゴリズムのしくみ』『IT用語図鑑』『IT用語図鑑[エンジニア編]』『Pythonではじめるアルゴリズム入門』『プログラマ脳を鍛える数学パズル』『プログラマを育てる脳トレパズル』(以上、翔泳社)、『プログラマのためのディープラーニングのしくみがわかる数学入門』『プログラミング言語図鑑』(以上、ソシム)、『基礎からのプログラミングリテラシー』(技術評論社)、『RとPythonで学ぶ統計学入門』(オーム社)などがある。