「認証」を整理する
2024年04月25日 木曜日
CONTENTS
はじめに
「近年、セキュリティ強化のため、パスワード認証に加え、SMS認証を追加した2段階認証を導入するサービスが増えている。また、指紋認証や顔認証でサインインできるパスキー認証が急速に普及し始めている」
……と言うように、IT機器やインターネット上のサービスを利用する上で欠かせない「認証」には数多くの方式が存在します。これらの「○○認証」は、名前の雰囲気から何となく同列に位置する技術のように認識され、単純な比較や置き換えが可能であるかのように思われがちです。しかし、実際は異なるレイヤーに属し、役割や位置付けが異なる技術です。
本記事は、読者の皆さんが最新の認証技術に関する情報に触れる際の理解の手助けとなるべく、漠然とした用法で使用されがちな認証にまつわる概念を整理します。
日本語の「認証」を整理する
まずは、日本語の「認証」という言葉の意味について確認しておきましょう。『広辞苑 第七版』では以下のように記されています。
にん‐しょう 【認証】
(1) 一定の行為または文書が正当な手続・方式でなされたことを公の機関が証明すること。特定公務員の任免、批准書や外交文書には天皇の認証が必要とされ、また、株式会社の定款には公証人が認証を行う。
(2) コンピューター‐システムで、対象の信頼性・正当性を確認すること。ユーザの利用資格を確認することなど。パスワードや指紋・虹彩などのバイオ‐メトリクスを用いて実現される。
このように、一般的に「認証」は2つの意味で用いられます。
(1)の意味での「認証」をもう少しかみ砕くと、「身分証による身元の保証や、各種証明書による資格の認定を、公的機関等の信頼できる第三者が証明する行為」と言えます。簡潔に言い換えるなら「公の機関による証明」となります。「公の機関による証明」という意味での「認証」は英語の「Certification」に当たり、日本語の「認証」は元々、この意味で使われてきました。
一方、(2)の意味での「認証」は、広辞苑にあるようにITの分野に限って使われる用法です。簡潔に言い換えるなら「対象の信頼性・正当性の確認」となります。こちらの意味での「認証」は大きく以下の3種類に分けられます。
ユーザ認証
まずは、「ユーザ認証」としての用法です。英語では「Authentication」に当たります。具体的には「システム(サービスやデバイス等)を利用しようとしているユーザ(人に限らず、組織、デバイス、アプリケーション等の場合もある)を、システムに登録済みのユーザかどうか識別し、ユーザが主張する身元を検証するプロセス」を指します。ユーザは識別のための識別子(ユーザ名等)と検証のための身元検証用データ(パスワード等)をシステムに提示します。さらなる詳細については、本記事後半で触れます。
本記事冒頭に記した「○○認証」はすべてこの「ユーザ認証」としての「認証」に該当します。アイデンティティ(個人の身元情報)管理の分野で「認証」と言えば通常はこの意味です。
本人確認
「ユーザ認証」としての「認証」の対象はシステムに登録済みのユーザでした。これとは別に、まだシステムに登録されていないユーザを新規登録する際の本人確認のプロセスも「認証」と呼ばれることがあります。これは「本人確認」の意味で使用される用法です。例えば、サービスに登録する際のメールアドレスやSMSによる到達確認などです。より厳密な確認が求められるサービスであれば、eKYCや対面での身分証の確認などが要求されることもあるでしょう。これらの本人確認プロセスはアイデンティティ管理の分野では「Identity Proofing」と呼ばれ、「Authentication」とは区別されています。ユーザの身元を確認するという行為に類似性はありますが、求められる要件や技術は大きく異なります。
アクセス制御
もう一つは「アクセス制御」の意味で「認証」を使う用法です。例えば、以下のようなケースで「認証」という言葉が使われることがあります。
- 社内ネットワークからだけアクセスを許可する
- 特定の国・地域からのアクセスを拒否する
- ランダムな文字列を含むURLを知っている人だけダウンロードを許可する
- その他、ユーザエージェントやCAPTCHA等を使用してアクセスを許可/拒否する
これらは不特定多数からのアクセスを制御するための手法です。「アクセス制御」は「ユーザ認証」と組み合わせて実行されることが多いため、この二つは混同されがちです。しかし、上記のようなアクセス制御手法では「ユーザ認証」に必須なユーザ識別子や身元検証用データを扱わないので、「ユーザ認証」には使用できません。したがって、アイデンティティ管理の用語としての「Authentication」には該当せず、単に「Access Control」と呼ぶのが適切です。
日本語の「認証」の分類
以下にここまで述べた、日本語の「認証」と言う言葉の使われ方をまとめます。
「認証」の用法 | 対応する英語 | 具体例 | |
---|---|---|---|
公の機関による証明 | Certification | マイナンバーカードの発行 | |
対象の信頼性・正当性の確認 | ユーザ認証 | Authentication | ユーザ名、パスワードによるサインイン |
本人確認 | Identity Proofing | マイナンバーカードによる本人確認 | |
アクセス制御 | Access Control | 位置情報によるアクセス拒否 |
英語の「Authentication」を整理する
ここからは先ほどの分類で言うところの「ユーザ認証」としての「認証」、つまり英語の「Authentication」に該当する「認証」について、さらに整理を進めていきます。
先ほど、「ユーザ認証」を「システムを利用しようとしているユーザを、システムに登録済みのユーザかどうか識別し、ユーザが主張する身元を検証するプロセス」と説明しました。「ユーザの識別」と「身元の検証」はユーザ認証に欠かせませんが、実際は他にも「ユーザの有効/無効状態の確認」や「検証に成功した場合の身元の保証(アクセストークンの発行等)」などの処理も一般的にユーザ認証のプロセスには含まれます。
ここで冒頭の「○○認証」を振り返りましょう。パスワード認証、SMS認証、指紋認証、顔認証は実はここで言うユーザ認証には該当せず、ユーザ認証中の一処理である「身元の検証」を担っていることがおわかりいただけるでしょうか。これらの技術はあくまでも検証の部分を担当し、ユーザ認証の実装に必要なその他の機能を提供しているわけではありません。
一方、パスキー認証はユーザ認証のプロセス全体を形式化したものです。他にもKerberos認証やRADIUS認証のようなネットワーク認証プロトコルや、スマートフォンのロック解除のようなプロセスもユーザ認証の一種と呼べるでしょう。
このように認証技術を理解する際は、それが身元の検証方式の一種なのか、あるいはユーザ認証全体を形式化した方式の一種なのか、区別して考えることが重要です。
次に、身元の検証方式について、さらに掘り下げていきましょう。
認証器
NIST(アメリカ国立標準技術研究所)が発行する、デジタルアイデンティティサービスを実装するためのガイドライン『NIST SP 800-63 Digital Identity Guidelines(以下、NIST SP 800-63と呼ぶ)』では、「認証器(Authenticator)」という用語を定義しています。NIST SP 800-63における「認証器」とは、「身元の検証に必要なデータを保管・生成するためにユーザが所持している具体的な手段」を指します。ちょっとわかりにくいですが、例えば、パスワード、PINコード、指紋、スマートカード、USBトークン等が該当します。日本語の「器」という表現から物理的なデバイスを連想されるかもしれませんが、必ずしもハードウェアに限りません。
多要素認証と単要素認証
身元の検証のために、認証器が保管・生成するデータを「認証要素(Authentication Factor)」と呼びます。NIST SP 800-63では認証要素を以下の3つに分類しています。
- 記憶情報(Something you know): パスワード、PINコード等
- 所持情報(Something you have):USBトークン、スマートカード等
- 生体情報(Something you are):指紋、顔等
認証要素の分類はユーザ認証プロセスを設計・評価するに当たり、重要な点です。分類が異なる複数の認証要素(つまり「記憶+所持」「所持+生体」「生体+記憶」のいずれか、もしくは3つ全て)による検証が実施されるユーザ認証を「多要素認証(Multi-Factor Authentication(MFA))」と呼びます。一方、認証要素が単一(もしくは同分類の要素の組み合わせ)の場合は「単要素認証(Single-Factor Authentication(SFA))」と呼びます。セキュリティ強化のためには多要素認証が望ましいのは言うまでもありません。
なお、「2段階認証」は(おそらく)日本でのみ使われる方言で、2つの認証要素による多要素認証を一般の方向けにわかりやすくした表現です。同分類の認証要素を2つ使うことでも字義的には2段階認証に当てはまりそうではありますが、その場合は単要素認証となり、セキュリティ強度的にはあまり意味がありません。
認証器を整理する
ここからは、NIST SP 800-63を参考に、各認証要素ごとに認証器をその特徴から分類してみます。
記憶情報を認証要素とする認証器
記憶による秘密
「記憶による秘密(Memorized Secrets)」は、ユーザが選択し、記憶することを意図した秘密の値を使用する認証器です。代表例は、パスワード、パスフレーズ、PINコード、(画面をなぞる)パターン、等です。
なお、「記憶による秘密」の中でも、「秘密の質問」という呼び名でよく知られる「知識ベースの認証(Knowledge-Based Authentication)」には注意が必要です。「知識ベースの認証」とは、ユーザだけが知っているプライベートな情報を認証器とする身元の検証方式です。しかし、「回答者が質問の答えを忘れる場合がある」「質問が一般的で回答が推測しやすい場合がある」「不要なプライバシー侵害につながる」といったことなどから適切に運用することは難しく、通常、単要素認証の認証器としては使用できません。
所持情報を認証要素とする認証器
参照による秘密
「参照による秘密(Look-Up Secrets)」は、ユーザ認証する側とされる側が事前に共有した秘密の情報から、認証セッションごとに異なる値を選択する仕組みを使用した認証器です。代表例は、乱数表、リカバリーキー等です。例えば、乱数表の場合、事前に共有している乱数表に対し、ユーザ認証する側が位置やパターンを指示し、される側がその指示に従って乱数表に記載の情報を認証する側に伝えます。
経路外デバイス
「経路外デバイス(Out-of-Band Device)」は、ユーザ認証のセッションとして使用している経路とは別の経路による通信が可能なデバイスがユーザの制御下にあることを利用する認証器です。代表例は、SMS、二次元コードの読み取り、電話での読み上げ、等です。例えば、パソコンでユーザ認証を試みた際に、スマートフォンにSMSでコードが届き、それをパソコンの画面に入力する、といったような手順が典型的です。
ちなみにSMSと異なり、メールでの受信確認はデバイスの所持を意味しない(パスワードのみで受信可能であり、認証要素は「記憶」に分類される)ので、経路外デバイス認証器には該当しません。
OTPデバイス
「OTPデバイス(OTP Device)」はユーザの携帯電話等のデバイスにインストールされたワンタイムパスワード(OTP)生成アプリケーションを使用する認証器です。
OTP生成アプリケーションがロックなしで使用可能な場合、これを「単要素OTPデバイス(Single-Factor OTP Device)」と呼びます。一方、生体情報もしくは記憶情報を認証要素とする認証器を用いたロックがかけられている場合は、「所持+生体」もしくは「所持+記憶」による多要素認証が成立するので、「多要素OTPデバイス(Multi-Factor OTP Device)」と呼びます。ほとんどのユーザはスマートフォンをロックして使用しているので、スマートフォン上のOTP生成アプリケーションの大半が多要素OTPデバイスに該当します。
暗号ソフトウェア
「暗号ソフトウェア(Cryptographic Software)」は、システム上のディスクまたはメディアに格納された暗号鍵を使用するタイプの認証器です。
ユーザ認証セッションが暗号鍵をロック無しで読み取れる場合、これを「単要素暗号ソフトウェア(Single-Factor Cryptographic Software)」と呼びます。一方、生体情報もしくは記憶情報を認証要素とする認証器を用いたロックがかけられている場合は、「所持+生体」もしくは「所持+記憶」による多要素認証が成立するので、「多要素暗号ソフトウェア(Multi-Factor Cryptographic Software)」と呼びます。例えば、デバイス上のセキュアエレメント領域に保存されている暗号鍵を使用するケースなどが多要素暗号ソフトウェアに該当します。
暗号デバイス
「暗号デバイス(Cryptographic Device)」は、ユーザが使用している端末とは分離されたデバイス内に格納された暗号鍵を使用するタイプの認証器です。例えば、USBセキュリティキーなどがこの認証器に該当します。デバイスは耐タンパー性を持ち、暗号鍵がエクスポートできないようになっている必要があります。
暗号デバイスがロック無しで使用可能な場合、これを「単要素暗号デバイス(Single-Factor Cryptographic Device)」と呼びます。一方、生体情報もしくは記憶情報を認証要素とする認証器を用いたロックがかけられている場合は、「所持+生体」もしくは「所持+記憶」による多要素認証が成立するので、「多要素暗号デバイス(Multi-Factor Cryptographic Device)」と呼びます。例えば、指紋認証による保護付きのUSBセキュリティキーなどが多要素暗号デバイスに該当します。
生体情報を認証要素とする認証器
生体認証
「生体認証(Biometrics)」は指紋、顔、声、虹彩、静脈等のユーザの生体情報を使用する認証器です。
なお、NIST SP 800-63では生体認証を単要素認証の認証器として認めていません。これは現在の生体認証には次のような課題があるからです。
- 他の認証器が決定論的に身元の検証を行うのに対し、生体認証は確率論的であり、誤判定が発生する余地がある。
- 指紋や顔等を秘匿して日常生活を送るわけではないので、複製される可能性がある。
- 各システムごとに異なるパスワードを使用することは可能だが、生体情報ではそれは困難である。また、流出してしまった場合に失効させることも難しい。
生体認証は多要素認証の一要素としては使用可能です。
おわりに
以上、文脈によって混同されがちな認証にまつわる概念を、NIST SP 800-63などを参考に整理してみました。
今回は主に日本語の「認証」と言う言葉の用法と認証器の分類に関する記事となりましたが、次回は今回触れられなかったパスキー認証等のユーザ認証プロセスや、SAML等のID連携プロトコルなどを分類、解説する記事を執筆する予定です。
参考文献
- NIST SP 800-63 Digital Identity Guidelines
- ISO/IEC 24760-1:2019 IT Security and Privacy – A framework for identity management
- ITU-T X.1254 Entity authentication assurance framework
- 認証器レジストリについて:2023オープンフォーラム認証トラック
- 板倉征男・外川 政夫(2010)『ネット社会と本人認証 – 原理から応用まで -』電子情報通信学会