January 30, 2021By Shirousa← Back to Blog

多要素認証、多段階認証、正しい知識


目次

多要素認証、多段階認証、正しい知識

昨今、多要素認証(MFA)や2要素認証(2FA)などといった言葉が認証の標準として広く利用されています。

この、『要素』や『段階』について正しい知識を有している方が少ないと感じており、これに関する解説記事となります。

『認証』とはなにか

よく間違えて使われているため単語となるため、本題の前に整理の章を挟ませていただきます。

『認証』(Authentication)とは、人を特定することです。

よく間違われる使い方としては下記のようなものがあります。

  • アリスさんは、プロジェクトのファイルサーバーにアクセスが認証されている。
  • アリスさんは、会社のSNSアカウントの利用が認証されている。
  • アカウント alice の SNSアカウントとシステム連携する。

この利用法は、間違いです。

『認証』という言葉が指すとき、本人の特定だけを表します。

例示としては下記のような形です。

  • アカウント alice の利用者は、アリスさんとして認証された。
  • 今ログインしてきたユーザーは、アリスさんとして認証できた。

この間違い、『認可』(Authorization)という言葉との誤用のためです。

認可は、本人が何を出来るか? という概念です。

最初の間違いは、認可を表していたのです。

セキュリティを扱う際は、『認証』、『認可』、『認証・認可』といった言葉を正しく使い分ける必要があります。 似た言葉で誤用する可能性が高いため、注意をお願いいたします。

この章のまとめ

  • 認証 Authentication

    • 本人を特定すること。
    • MFA などはコチラの分野
  • 認可 Authorization

    • 本人に適切な権限を付与すること。
    • OAuth などは認可の技術
  • 認証・認可

    • 認証および、認可の複合
    • SAML などは認証・認可の技術

認証の『要素』とはなにか

多要素認証(MFA: Multi Factor Authentication)とは、複数の『要素』を用いた認証のことです。

ここでは、認証の『要素』について考えたいと思います。

この中で、認証の要素となるものは分かりますでしょうか?

  • ID / Password
  • 携帯電話の認証アプリ
  • 電話番号
  • 記憶

この中で、正解は『記憶』のみとなります。

おそらく、多くの方が間違える問題かと思います。 この理解不足が、MFA というものの理解不足の一因であると考えております。

認証の『要素』といったとき、現段階で 3つしか有りません。

認証の要素とは『記憶』『所有』『生体』の 3つのみ です。 ID / Password などは、『要素』 ではなく、『要素』を実現する手法の一つなのです。

それぞれ、要素と手法の例示をしたいと思います。

  • 記憶

    • ID / Password
    • 秘密の質問と答え
  • 所有

    • スマートフォンアプリ
    • 電話番号
  • 生体

    • 指紋
    • 虹彩

認証で、MFA や 2FA といった場合、これらから2つを選ぶ必要があります。 一昔前のアプリでよくあった『ID / Password』と『秘密の質問と答え』の組み合わせは間違いなのです。

正しい組み合わせとしては、 『記憶』(ID / Password) と 『所有』(スマートフォンアプリ)など、異なる要素同士の組み合わせを選ぶ必要があります。

この章のまとめ

  • 認証の『要素』とは 下記の3つのみ

    • 記憶 (ID/Password、秘密の質問など)
    • 所有 (スマートフォンアプリ、電話番号など)
    • 生体 (指紋、虹彩など)
  • 多要素認証(MFA) や 2要素認証(2FA) とは

    • 要素のうち、2つ、3つを組み合わせたもの

要素ごとのメリット、デメリット

なぜ、2つ以上の要素を組み合わせる必要があるのか?

それは、それぞれのメリット、デメリットがあり、それぞれが補っている状況があるためです。 たとえば、記憶は忘れる(本人認証ができなくなる)ことがありますが、生体は紛失する(認証できなくなる)ことは原則としてありません。

それぞれの認証ごとの重要な特徴を下記にまとめます。

  • 記憶

    • メリット

      • 変更することが出来る
      • 一意に認証できる
    • デメリット

      • 本人が忘れる
      • メモなどにより、本人以外に漏洩する
  • 所有

    • メリット

      • 変更することが出来る
      • 忘れることがない
      • 一意に認証できる
    • デメリット

      • 紛失する
  • 生体

    • メリット

      • 忘れることがない
      • 紛失することがない
    • デメリット

      • 変更することが出来ない
      • 一意に認証できない
      • 個人情報に抵触する

これらの特徴から、どの要素を使うか検討することが肝要なのです。

この章のまとめ

  • 要素はそれぞれ、異なるメリット、デメリットをもつ
  • 目的に合わせて必要な要素を選択する必要がある。

1段階認証と、多段階認証

これも、MFAとよく間違われる概念であり、正しく実装がされていない場合が多いものです。

たとえば、ID / Password と スマートフォンアプリの 2FA 認証の実装として以下のような実装をしていませんでしょうか?

  1. ユーザーの ID / Password を確認する。
  2. 正しければ次へ、間違っていればエラーを返す。
  3. ユーザースマートフォンアプリのトークンを確認する。
  4. 正しければログインを許可、間違っていればエラーを返す。

これは、多要素認証・多段階認証と呼ばれる仕組みとなります。

多段階認証は、攻撃者が多くの情報を知ることが出来るため、非推奨の実装となります。 認証を求める場合、その正しい実装は『多要素認証・1段階認証』となります。

具体的には、下記のような手順となります。

  1. ユーザーの ID / Password を確認する。
  2. ユーザースマートフォンアプリのトークンを確認する。
  3. ID / Password および トークンの組み合わせが正しければログインを許可、間違っていればエラーを返す。

なぜ、1段階認証が推奨されるのか考えてみたいと思います。

たとえば、多段階認証の場合を考えます。

攻撃者は 総当りで ID / Password を探索し、トークン確認が出るか確認します。 トークン確認が出た段階で攻撃者は ID / Password の組み合わせが正しい事がわかり、つぎは総当りでトークンを探索します。 トークンがわからない場合でも、ほかサイトで同じ ID / Passwordで入れるか確認することが出来ます。

ログインが出来なくても、攻撃者は ID / Password の組み合わせを知ることが出来るのです。

しかし、1段階認証の場合は異なります。

1段階認証では、ID / Password / トークンの全ての値がわからない限り突破できず、 ID / Password が正しいか否かも攻撃者は知ることが出来ないのです。

この章のまとめ

  • 認証は 1段階認証で行う。
  • 多段階認証では、ログインできなくても攻撃者は情報詐取が可能。

まとめ

MFAは昨今のシステムでは必須となりつつあります。 しかし、これだけMFAが普及しても正しい、『多要素認証・1段階認証』のサイトは少ないです。

正しい認証方法を身につけていただきたいと思います。

以上

✨ブログランキングにご協力ください✨ にほんブログ村 IT技術ブログ セキュリティ・暗号化へ

本サイトの記事について

本サイトの記事は、プログラミングだけでなく、雑多な雑学を多く配信しております。

もしよろしければ、ほか記事も閲覧いただけますと幸いです。

© 2020-2021 – Shirousa.org