機密情報を守る認証方式について
現在、paypayやd払いのようにキャッシュレスで決済を行う機会が増えています。このキャッシュレス機能は主に個人の資産に関わる情報をインターネット上で扱うことが一般的であり、テレワークの普及、クラウドサービスの活用など業務を行う際にも、従来のように組織の管理するインフラネット外から機密情報へのアクセスが必要な場合も増えています。
それに伴い、不正なアクセスによるクレジットカードの不正利用や、情報漏洩などのインシデントも増えており、このインシデントを未然に防ぐためにいくつかの取り組みがされています。
今回はその1つとして、認証方式について簡単に説明したいと思います。
認証の3要素とは
まず、認証について説明します。認証とは、システムやサービスが「この人がシステムを利用する権限がある」と判別することです。
一般的に知られる認証としてID / パスワードを用いたパスワード認証があります。アカウントを識別するIDと鍵の役割を果たすパスワードを入力することでセキュリティを担保した状態でサービスを利用することができます。
この認証には主に3つの要素があります。こちら順を追って説明します。
知識要素(Something they know)
所有要素(Something they have)
生体要素(Something they have)
知識要素(Something they know)
知識要素とは、「ある人が知っている、記憶している情報が認証要素」となるものです。もっとも有名なものとしては、パスワードがあげられます。
所有要素(Something they have)
所有要素とは「ある人が持っているものにある情報が認証要素」となるものです。文字列が表示されるワンタイムパスワードトークン(※)やSMSなどが有名です。
生体要素(Something they have)
生体要素とは「あるがままの状態で「ある」、つまり人の人体が認証要素」となるものです。指紋、静脈、虹彩などが有名です。
認証とは、これらの認証要素を複数用いて、利用されます。例えば、「IDとパスワード」であれば、「知識要素が1つ」となります。
Authenticatorとは
ここでは、認証に欠かせない概念であるAuthenticatorについて説明します。
Authenticatorはパスワード入力なしに各種サービスのアカウントへのログインを簡単かつセキュリティを強固にするアプリのことです。顔認証、指紋、PIN(個人識別番号)を利用して、MicrosoftやGoogleなどのアカウントにサインインすることができます。
このAuthenticatorには9つのタイプに分けることができます。
以下には、具体的な認証方法、認証要素が記載されており、例えば「パスワードと乱数表で認証を行った場合には、知識情報と所有情報の組み合わせで、2要素認証」になります。
機能シークレット:システムやソフトウェアにおいて、特定の機能や設定を利用するために必要な秘密情報やキーのことを指す
例:パスワード、PIN
認証要素:知識要素
ルックアップシークレット:特定の質問や情報を基にシークレットを確認する仕組み
例:乱数表
認証要素:所有
経路外デバイス:通常の経路とは異なる方法で認証を行うデバイス
例:SMSコードになるコード送信、QRコード読み取り
認証要素:所有
単一要素OTPデバイス:OTP(ワンタイムパスワード)のみで認証するデバイス
例:パスフレーズ(※)入力不要のOTPデバイス(※)
認証要素:所有
多要素OTPデバイス:OTPに加えて他の認証手段も使うデバイス
例:Touch IDやマスタパスワードでアクティベイトし利用するOTPデバイス(※)
認証要素:所有+知識 / 生体
単一要素暗号ソフト:1つの認証要素で暗号化・復号化を行うソフト
例:端末ごとのクライアント証明書(※)
認証情報:所有
単一要素暗号デバイス:1つの認証要素で暗号化・復号化を行うデバイス
例:FIDO(※) U2FのUSBドングル(※)
認証要素:所有
多要素ソフトウェア:複数の認証要素を組み合わせて認証・暗号化を行うソフト
例:指紋認証を行うことで有効化されるクライアント証明書
認証要素:知識+所有 / 生体
多要素暗号デバイス:複数の認証要素を組み合わせて認証・暗号化を行うデバイス
例:パスワードや生体認証でアクティベートされたUSBトークン(※)、FIDO対応スマホ、Touch IDなど
詳細はトラスト・ログインブログ: 世界の電子認証基準が変わる:NIST SP800-63-3を読み解く
認証の強度について
認証には「セキュリティ的に弱い認証」と「セキュリティ的に強い強固な認証」があり、認証の強さについて明確に定義づけられています。
この強度のことをAuthenticator Assurance Level (通称AAL)と呼び、AAL1、AAL2、AAL3の3段階で定義づけることができます。数字が大きい方がセキュリティが高いことを意味しています。
AAL1
条件:単要素認証でOK
AAL2
条件:2要素認証が必要
2要素目の認証手段はソフトウェアベースのものでOK
AAL3
条件:2要素認証が必要
2要素認証の認証手段はハードウェアを用いたものを利用する(ハードウェアトークン(※)など)
例えば、「パスワードのみ」の認証の場合、認証要素が「知識要素」のみとなるため、セキュリティの強度はAAL1となります。
一方で、「パスワード」と「ワンタイムパスワード」の場合、認証要素が「知識要素」と「所有要素」の2要素となるため、AAL2になる、といった具合です。
AAL3は認証要素が2つで、ハードウェアデバイスを利用した認証が含まれた場合の認証強度になります。
「二段階認証」「二要素認証」「多要素認証」とは
次に、よく耳にする上記3つの違いについて分かりやすく説明します。とても似ている言葉ですが、実は似て非なる概念です。
二段階認証
二段階認証とは認証時に2段階(2ステップ)の認証が必要となる認証であり、必要な認証の要素数として制限がありません。つまり1要素で2ステップの認証を行うことができれば、二段階認証となります。
例えば、「IDとパスワードだけの認証」に加えて、2回目の認証を実施することでより、セキュリティを強固にできます。
注意として、「二段階認証でかつ、二要素認証」である場合もあります。
しかし、認証の段階の多さと認証の強度は関係がありません。このため、欧米圏では「二段階認証」という表現は用いず、「二要素認証」「多要素認証」という表現が用いられます。
二要素認証
二要素認証とは認証時に認証の要素が2種類必要になる認証のことです。
必要となる要素数として、2つ必要となり、「知識要素」に加え「生体要素」を追加することで、二要素認証を実施することができます。
例えば、認証に「IDとパスワード(知識要素)」と「ワンタイムパスワード(所有要素)」の2要素が用いられた認証となるため、「二要素認証」となります。
なお、「二段階認証」とは異なり、認証のステップ数は問題とはならず、1ステップでの認証でも、、2ステップでの認証でも、2つの認証要素さえ満たすことができれば、「二要素認証」です。
上記に記載したように、2つの要素を持つ場合には「AAL2」または「AAL3」となります。
多要素認証
多要素認証とは、認証時に認証要素が2種類以上必要となる認証であり、必要な認証要素数は2要素、もしくは3要素となります。
認証要素は「知識要素」「所持要素」「生体要素」の3つがありますが、このうちの2つ、または3つを含んでいれば「多要素認証」となります。
「多要素認証」と「二要素認証」との違いは、二要素認証が「認証要素が2つ」であるのに対して、多要素認証は「認証要素が2つ以上(3つでも可)」であることを示しています。
そのため、多要素認証は「二要素認証」と同じ意味で使われることが多く、認証の強度を示す「AAL」においても、もっとも強度の高い「AAL3」では、3要素の認証は求められていません(2要素認証でうち1つがハードウェアトークンを利用)
なぜ「秘密の質問」の利用は認証強度を高めないのか
一昔前は「認証強度を高めるために、秘密の質問を使うべき」と言われてきました。
しかし、秘密の質問は多要素認証ではなく、複数の知識要素を用いた単なる単要素認証(AAL1)です。つまり「IDパスワード」と同じ認証要素(知識要素)である秘密の質問を用いたところで、認証強度が高くなるならないため、現在では利用されることは奨励されていないのです。
まとめ
いかがだったでしょうか。色々記載しましたが、ぜひ皆様の参考になれば幸いです。
用語集
ワンタイムパスワードトークン:一度だけ使用できる使い捨てのパスワード(ワンタイムパスワード)を生成するためのデバイスやソフトウェアのこと
パスフレーズ: 複数の単語を組み合わせた長いパスワード
入力不要のOTPデバイス: 手動入力せずにワンタイムパスワードを使用するデバイス
クライアント証明書: ユーザーやデバイスがサーバーに対して正当性を証明するためのデジタル証明書
FIDO:パスワードに依存しない、安全で使いやすいオンライン認証を実現するための国際標準
FIDO U2FのUSBドングル: USBポートに差し込んで二要素認証を行うセキュリティデバイス
USBトークン: デジタル証明書や暗号鍵を保管し、セキュリティ認証に使用する物理デバイス
ハードウェアトークン:セキュリティを強化するために使用される物理的なデバイスで、ユーザーの認証を行うために使用される