用語集
多要素認証とは
さまざまなWebサービスをはじめとする多くのITシステムでは、IDとパスワードを使って、正当な利用者であることを認証するのが一般的です。しかし、単なる文字の羅列であるパスワードには「でたらめにパスワードを入力し続けることでいつかは突破可能である」という本質的な問題が存在します。そこで、不正アクセスからアカウントを守るため、近年多くのサービスで導入されつつあるのが「多要素認証」です。
本記事をご覧いただいた方向けに、おすすめの記事をまとめました。こちらもあわせてご確認ください。
NISTによる電子認証ガイドライン「NIST SP 800-63-3」とは?
2017年6月に米国国立標準技術研究所(National Institute of Standards and Technology, NIST)が、電子的認証に関するガイドライン(Electronic Authentication Guideline)第3版を発表しました。これは、一般的に「NIST SP 800-63-3」と呼ばれ、米国の政府機関がユーザー認証や身元証明を行うシステムを実装する際のガイドラインとなるものです。NISTが発表するガイドラインは、あくまで米国政府機関向けの基準で作られたものですが、米国政府機関以外にとっても参考にすべき点が多く、実際に日本をはじめとする世界各国から参考にされている基準の1つとなっています。
認証の三要素とは
「NIST SP 800-63-3」において、認証システムは「知識認証(Something you know)」「所有認証(Something you have)」「生体認証(Something you are)」の3つに分類されています。
知識認証とは、本人のみが知っている情報を用いた認証方式で暗証番号やパスワードなどが該当します。所有認証とは、本人のみが所有しているものを用いた認証でワンタイムパスワードトークンやスマートフォンのSMS認証などが該当します。生体認証とは、本人の身体の一部を用いた認証方式で指紋・静脈・虹彩などを用いた認証が該当します。
これらの認証の三要素のうち、複数の異なる認証要素を組み合わせることで、セキュリティレベルを高めることができます。NISTでは、認証システムのセキュリティ的な強度(Authenticator Assurance Level, AAL)を3段階のレベル(AAL1~AAL3)で表していますが、上位のレベルであるAAL2/AAL3では、複数の認証要素を組み合わせることが必須となっています。具体的には、AAL1は単要素のみで認証が可能(例:パスワードのみ)ですが、AAL2はソフトウェアベースの二要素認証が必要(例:パスワードとSMS認証)、AAL3はハードウェアトークンなどを利用した二要素認証が必要(例:パスワードとUSBドングル)と定められています。
二段階認証と二要素認証の違い
2019年、コンビニエンスストアのQRコード決済システムにおいて設計の不備による不正利用が続出し、開始から数日でサービス停止に追い込まれた事件は記憶に新しいでしょう。この事件について、多くのメディアでは「二段階」認証に対応していなかったことが問題と報道されていました。しかし、このケースにおいて必要だったのは「二段階」認証ではなく、「二要素」認証であったのではないかと考えられます。
なぜならば、「二段階」認証では単要素の認証システムを複数組み合わせたものも許容されてしまうためです。例えば、二段階認証としてサービスのログイン時にパスワードに加えて秘密の質問(例:母親の旧姓、ペットの名前など)を要求されることがあります。しかし、この例で利用されているパスワードと秘密の質問は、どちらも認証の三要素における「知識認証」に分類されます。前述の通り、AALを上げるためには異なる認証要素を組み合わせる必要があるため、この例は「二段階」認証ではあるものの「単要素」認証に過ぎず、認証の強度としてはAAL1に留まります。
繰り返しになりますが、認証の強度を上げるためには認証に必要な要素数を増やすだけではなく、異なる認証要素を適切に組み合わせる必要があることに注意してください。
多要素認証が必要なシーン
複数の異なる認証要素を組み合わせれば、認証の強度を上げることが可能です。とはいえ、あらゆる箇所で最高強度の認証を導入しようとすると、ユーザーの利便性を著しく損ってしまうでしょう。セキュリティと利便性はトレードオフの関係にあるため、守るべき情報の価値やリスクに応じてこの2つを天秤にかけ、その場に最適な認証要素の組み合わせを考慮する必要があります。
例として、クラウドサービスの利用アカウントについて考えてみましょう。万が一、サーバーの作成や削除などが可能な強い権限を持つアカウントが乗っ取られてしまうと、運用中のサーバーを消されてサービスが停止してしまったり、大量のサーバーを起動されて甚大な金銭的被害を被る可能性が考えられます。そのため、こうした権限の強いアカウントは利便性よりもセキュリティを重視し、二要素認証を設定するのが妥当でしょう。
FJcloud-V(旧ニフクラ)では、最高の権限を持つ親アカウントに対して二要素認証が設定できるようになっています。不正アクセスの被害にあわないためにも、二要素認証を設定することをお勧めします。