二段階認証とは、二要素認証とは? 二段階認証と二要素認証との違いを解説

セキュリティ

近年二段階認証や二要素認証が採用されているシステムをよく見かけます。Google、AmazonやMicrosoftなどでは二段階認証(Two-Step Verification)と呼び、Facebookでは日本語は二段階認証で英語だとTwo-Factor Authenticationだったりと混乱も見られるようです。

ネット上の解説記事にはこれらは同じものとして書かれているものも多いですが、システムを開発してお客様に納品する立場としては、お客様が多要素認証を求めているのか、二段階認証でも良いのかは大きな違いになりますので、細かな違いを理解しておく必要があります。

二段階認証とは

二段階認証は英語で、Two-Step Verificationとなります。認証後に検証を行う作業が加わり、2ステップで行われるものになります。

一般的に、最初にIDとパスワードを入力させて、正しいIDとパスワードであることを確認します。確認できた場合、次のステップに進みます。例えば携帯電話番号にSMSで6桁のPINコードが送信されて、それを画面に打ち込むことで事前に登録してある携帯電話の持ち主であることを検証します。

このように身元確認後に検証作業が行われのが二段階認証と呼ばれる認証方式になります。

二要素認証とは

二要素認証は英語では、Two-Factor Authenticationと呼ばれます。二要素認証は多要素認証(Multi-Factor Authentication)のサブセットになります。要素が2つのものが二要素認証になります。

要素は3種類に分けられます。知識要素(Something you know)、所有要素(Something you have)、生体要素(Something you are)の3つとなります。これらを重複することなく2つ以上組み合わせる認証を多要素認証や二要素認証と呼びます。

二段階認証と二要素認証の違いとは

これら二つの言葉の意味することは異なりますが、その違いを説明します。

同じ認証という言葉だけど意味が違う

日本語だと同じ認証という言葉が使われるのですが、英語だとVerificationとAuthenticationで異なる言葉が使われるので、違いにすぐに気が付くことができます。業界でVerificationは、身元確認(Identity Assurance)を取り扱うときに使う言葉です。日本語だと検証という言葉を使うのが正しいと思います。

これは2ステップ目は認証ではなくて、検証という意味で利用されているということを示しています。1ステップ目のIDとパスワードで身元確認は済んでいて、更に検証が要求されてそれに成功しないと利用し続けることができないというものが二段階認証(Two-Step Verification)と呼ばれる認証プロセスになります。

二要素認証は2つの要素を同時に確認する

二要素認証の場合、例えば先にIDを入力するとPINコードが携帯電話に届き、ユーザーはPINコードとパスワードを入力してから認証を行います。どちらか片方だけだと認証できません。PINコードや指紋を確認する認証器でも、所有要素のデバイスを使ってPINコードを入力して2つがそろわないと認証に移行しません。

これだけ聞くとあまり違いが無いように思われるかもしれませんが、エラーのときの振る舞いが異なります。二段階認証の場合は、例えばパスワードが間違っていたのか、正しかったのかを特定することができます。一方二要素認証の場合にはパスワードが違うのか、入れたPINが違うのかが分からなかったり、多要素認証器の場合パスワードを利用するリスクごと無くすこともできます。

二要素認証の方が二段階認証よりも多少ですが強い認証方式であることが分かると思います。ですので米軍に納品するなどの場合は、当然二要素認証の方が求められます。

まとめ

今回は二段階認証と二要素認証の違いについて解説しました。二段階認証でも単なるIDとパスワードの認証に比べると、セキュリティは格段に強化できますので十分意味があります。

しかし、厳密にはさらに上の要求をされるお客様も多くいらっしゃいますので、定義を明確にして都度確認することが必要になってきます。違いを知らないと確認することもできません。

以前はCAC/PIVカードぐらいでしたが、最近ではFIDO2などを想定して二要素認証を要求されることが多いです。具体的にFIDO2でと指定されればよいですが、そうでない場合は注意しましょう。細かくはSP800-63BでのAALについてなどもありますが、またの機会に記事にしたいと思います。

コメント