概要

本稿では、2025年7月31日に公開された新しいデジタルアイデンティティ標準NIST SP 800-63-4における「バインディング(紐付け)」規定を分析します。この標準は「バインディング保証レベル(Binding Level of Assurance)」を明示的には定義していませんが、SP 800-63A-4に見られる暗黙のレベルと、SP 800-63B-4に規定された後続認証器の追加プロセスに存在する重大なセキュリティ上の問題に焦点を当てます。

中心的な問題は、現在の規定では、低い保証レベルのセッション(例えばAAL1)において、新しい、より高い保証レベルの認証器(例えばAAL2またはAAL3)を加入者アカウントへバインドできることです。低いレベルの認証器を侵害した攻撃者が、自分の高いレベルの認証器を被害者のアカウントへバインドし、アカウントを乗っ取る可能性があります。

このリスクを緩和するため、本稿ではバインディング規定に対する3つの修正案を提示します。新しい認証器のAAL以上の認証保証レベルでバインディングを実行すること、新しい認証器を現在のセッションと同じAALの認証器として登録すること、または本人確認(identity proofing)を再実施することです。これにより、低い保証レベルのセッションを使って高い保証レベルの認証器をバインドすることを防ぎ、セキュリティを強化するとともに、リライングパーティ(RP)が保証レベルをより正確に評価できるようになります。

1. はじめに

NIST SP 800-63-4は、2025年7月31日に公開された新しいデジタルアイデンティティ標準です。広範な領域を扱っていますが、本稿では「バインディング」の側面に焦点を当てます。

NIST SP 800-63B-4が「発行(Issuance)」ではなく「バインディング(Binding)」という用語を使用しているのは、CSPが認証器を発行する場合だけでなく、利用者が自分の認証器を持ち込み、CSPの加入者アカウントへ登録する場合もあるためです。したがって「バインディング」は、利用者(加入者)が自分の認証器をCSPへ登録する場合と、CSPが認証器を発行する場合の双方を包含する用語です。

NIST SP 800-63-4には、バインディング保証レベルについて明示的な記述はありません。しかし、その存在を示唆する規定はいくつかあります。主に、SP 800-63A-4で各レベルの要件として説明される、認証器の初期登録段階に現れます。各レベルに共通する具体的なセキュリティ要件については、SP 800-63B-4が参照されています。

2. 認証器のバインディング

一般規定

SP 800-63B-4では、4.1節がバインディングに充てられています。

まず、「認証器のバインディング」を次のように定義しています。

認証器のバインディング(Authenticator binding)とは、特定の認証器と加入者アカウントとの関連付けを確立し、その認証器が、単独または他の認証器と組み合わせて、当該加入者の認証に使用できるようにすることをいいます。

(出所) NIST SP 800-63B-4 に基づき筆者仮訳

続いて、次の規定群が示されています。

認証器は、次のいずれかの方法で加入者アカウントへバインドしなければなりません(SHALL)

  1. CSPが登録(enrollment)の一環として発行する。または
  2. 加入者が提供し、CSPが受け入れ可能と判断した認証器を使用する。
(出所) NIST SP 800–63B-4, Section 4.1, Paragraph 2 に基づき筆者仮訳

後続の認証器を加入者アカウントへバインドする場合、CSPは次の要件を満たさなければなりません。

  1. 加入者アカウントで現在利用可能な最大のAALと、新しい認証器が使用される最大のAALのうち、低い方のレベルで認証を要求するプロセスであることを保証しなければならない(SHALL)。さらに、
    • 例:AAL2での使用に適した認証器をバインドする場合、加入者アカウントがAAL1の認証能力しか持たない場合を除き、AAL2での認証が必要になります。
  2. 認証器が追加された場合、4.6節の規定に従い、新しい認証器をバインドするトランザクションとは独立した手段で加入者へ通知しなければならない(SHALL)
(出所) NIST SP 800-63B-4, Section 4.1, Paragraph 4.1.2.1, Paragraph 2 に基づき筆者仮訳

上記の規定1-3には問題があります。これについては5.2節で検討します。

続くパラグラフでは、アイデンティティライフサイクルを通じた規定を述べています。例によって、一つの段落に複数の要件・推奨事項 etc. を書くというわかりにくい書き方なので、以下のようにリフォーマティングして、それぞれに番号付けします。

デジタルアイデンティティのライフサイクル全体を通じて、CSPは次の要件を満たします。

  1. 次のいずれかの方法で認証器を加入者アカウントへバインドしなければならない(SHALL)
    • CSPが登録の一環として認証器を発行する。または
    • CSPが受け入れ可能な認証器を受け入れ、加入者アカウントへ登録する。
  2. 各加入者アカウントにバインドされたすべての認証器の記録を維持しなければならない(SHALL)
  3. 検証者が各AALの要件への適合性を評価できるよう、バインドされる認証器の特性(単要素か多要素か、フィッシング耐性を持つかなど)を判定しなければならない(SHALL)
  4. (暗黙的要件)判定結果をRPへ伝達しなければならない(SHALL)
  5. 強力な証拠(認証器アテステーションなど)、認証器を自ら発行したことによる直接的な情報、または認証器実装の一般的な特性(例えば、WebAuthnの利用者検証ビットがセットされているか)に基づいて判定してもよい(MAY)
  6. 認証器の検証要件を満たすために必要なその他の状態情報も維持しなければならない(SHALL)
    • 例:3.2.2節に規定された認証試行のスロットリングでは、認証器で検証されるアクティベーション要素を除き、CSPまたは検証者が直近の認証失敗に関する状態情報を維持する必要があります。
  7. 認証器のライフサイクル上の重要なイベント(加入者アカウントへのバインディング、更新、変更、失効など)の日付と時刻を含む記録を作成しなければならない(SHALL)
  8. イベントに関連するデバイスについて、バインディング元を示す情報(IPアドレス、デバイス識別子など)を含めることが望ましい(SHOULD)
  9. 新しい認証器または関連するエンドポイントが要求されたAALに適しているかを判断するため、追加情報を要求してもよい(MAY)
(出所)NIST SP 800-63B-4, Section 4.1, Paragraph 4 を元に筆者

3. 登録時のバインディング

登録時のバインディングは登録プロセスの一部であり、SP 800-63Aで扱われています。規定は次のとおりです。

CSPは、加入者に対し、少なくとも2つの異なる認証手段を紐付けるよう促すべきである(SHOULD)。加入者アカウントについては第5節を、認証器の紐付けについては[SP800-63B] 第4.1.2.1節を参照されたい。

  1. CSPは、申請者が以下のいずれかの方法によって認証器を紐付けられる機能を提供しなければならない(SHALL)。
    1. [SP800-63B] 第4.1.3節に定める認証器の種類ごとの要件に従い、加入者が提供した認証器をリモートで登録すること。
    2. 住所確認済みの宛先に物理認証器を配送すること。
    3. 認証器を配送すること、または現地で登録すること。
  2. 認証器が、利用者との単一の保護されたセッションの外で紐付けられる場合、CSPは、以下のいずれかの方法によって、意図した加入者が実際に存在することを確認しなければならない(SHALL)。
    1. 継続コードの返送。
    2. 本人確認時に取得した生体情報との照合。
(出所)NIST SP800-63A-4, Section 4.1.12 Initial Authenticator Binding

参照が入り組んでいるのでちょっとわかりにくいので以下にパラフレーズしてみます。

CSPは次の要件を満たさなければならない。

  1. 複数の認証器を加入者アカウントへバインドできるようにする。
  2. 次のうち低い方のレベルで認証を要求するプロセスであることを保証する。
    • 現在利用可能な最大のAAL。または
    • 新しい認証器が使用される最大のAAL。

      注1:これは、加入者アカウントにAAL1の認証器しかバインドされていない場合、後続のAAL2認証器がAAL1セッション内でアカウントへバインドされることを意味します。AAL1セッションは攻撃者に既に乗っ取られている可能性があり、攻撃者が自分のAAL2認証器を被害者のアカウントへバインドしようとしているかもしれないため、問題となります。
  3. 4.6節(アカウント通知)の規定に従い、新しい認証器をバインドするトランザクションとは独立した手段で加入者へ通知する。

    注2:この要件は、注1で指摘した問題に部分的に対処します。

さらに、加入者が現在認証されているデバイスとは別のデバイスから認証器が提供される場合、バインディングプロセスは次の順序で行われなければならない。

  1. 加入者が現在認証されているデバイスから、CSPへバインディングコードを要求する。
  2. CSPがバインディングコードを生成し、そのデバイスへ返す。
  3. 加入者が、新しい認証器を持つ第2のデバイスへバインディングコードを入力する。
(出所)NIST SP 800-63A-4, Section 4.1.12 を元に筆者

4. バインディング規定

SP 800-63A-4は、IALごとの要件を規定しています。以下ではIAL2とIAL3の要件を取り上げます。

4.1 IAL2のバインディング規定

IAL2のバインディング要件は、SP 800-63A-4の4.2.12節「初期認証器のバインディング(Initial Authenticator Binding)」に記載されています。

申請者(この時点で加入者)に対してCSPのアイデンティティシステム内に一意な加入者アカウントが確立された後、すなわちアイデンティティレジスターに記録が作成された後、1つ以上の認証器を加入者アカウントへ関連付ける(バインドする)ことができます。

アカウント回復の必要性を最小限に抑えるため、CSPは次の要件に従います。

  1. 加入者に対し、少なくとも2つの独立した認証手段をバインドするよう促すことが望ましい(SHOULD)
    注:加入者アカウントの詳細については5節を、認証器のバインディングについてはSP 800-63Bの4.1.2.1節を参照してください。
  1. 申請者が次のいずれかの方法で認証器をバインドできるようにしなければならない(SHALL)
    1. SP 800-63Bの4.1.3節に定義された認証器種別の要件に従って、加入者が提供する認証器をリモートで登録する。
    2. 検証済みの住所へ物理的な認証器を配送する。
    3. 認証器を配送する、または対面で登録する。
  2. 認証器が利用者との単一の保護されたセッション外でバインドされる場合、次のいずれかの方法で、意図された加入者が存在することを確認しなければならない(SHALL)
    1. 継続コードを返送する。
    2. 本人確認時に収集した生体情報と照合する。
(出所)NIST SP 800-63A-4, Section 4.2.12, Initial Authenticator Binding に基づき筆者仮訳

4.2 IAL3のバインディング規定

IAL3のバインディング要件は、SP 800-63A-4の4.3.10節「初期認証器のバインディング(Initial Authenticator Binding)」に記載されています。規定は次のとおりです。

CSPは次の要件を満たします。

  1. 本人確認担当者が立ち会う対面でのやり取りの中で、加入者の最初の認証器を配布または登録しなければならない(SHALL)
  2. CSPが、利用者との単一の認証済み保護セッション外で最初の認証器を配布または登録する場合、その認証器を登録する前に、加入者から採取した生体情報サンプルと本人確認時に採取したサンプルを照合しなければならない(SHALL)
  3. バインディングプロセスをさらに強化するため、加入者に対し、本人確認時に使用した本人確認証拠を持参するよう求めてもよい(MAY)
(出所)NIST SP 800-63A-4, Section 4.3.10, Initial Authenticator Binding に基づき筆者仮訳

5. 現行文書の問題点

SP 800-63-4のバインディングプロセスには、いくつかの問題を指摘できます。

5.1 認証器の初期バインディングをめぐる問題

特に、リモート登録に関する次のような規定が欠けています。

  1. 本人確認担当者がアイデンティティレジスターに登録するアイデンティティを確立したのと同一の保護されたセッション内で、加入者の最初の認証器を登録しなければならない(SHALL)
(出所)筆者

これは単なる見落としかもしれませんし、広く普及し、リモート本人確認で有効に利用できるデジタル身分証明書が米国には存在しないため、IAL3でのリモート本人確認が難しいという米国固有の事情を反映したものかもしれません。

デジタル身分証明書(Digital ID)を利用できる他の法域がSP 800-63-4を利用する場合、上記の規定4を追加することが望ましいでしょう。

5.2 後続認証器の追加をめぐる問題

前述のとおり、規定3には問題があります。そこには次のように記載されています。www

CSPは、加入者アカウントで現在利用可能な最大のAALと、新しい認証器が使用される最大のAALのうち、低い方のレベルで認証を要求するプロセスであることを保証しなければならない(SHALL)

(出所)NIST SP800-63B-4, Section 4.1.2.1. Binding an Additional Authenticator, Paragraph 2 に基づき筆者仮訳

これは、AAL1認証器によって作成されたセッション内で、「AAL2」または「AAL3」の認証器を加入者アカウントへバインドできることを意味します。

ここに問題があります。攻撃者が既に被害者のAAL1認証器(パスワードなど)を侵害している場合、攻撃者は自分の「AAL2/AAL3」認証器を被害者のアカウントへバインドし、その後も利用できる可能性があります。

規定3は、おそらく次のように修正すべきです。

CSPは、次のいずれかを行わなければならない(SHALL)

  1. 加入者が追加しようとしている認証器のAAL以上のレベルで認証を要求するプロセスであることを保証する。または
  2. 認証器自体がより高いAALの要件を満たせる場合でも、登録される認証器を現在のセッションと同じAALとして記録する。または
  3. 登録しようとしている認証器のAAL以上にセッションの品質を高めるため、対応するIALで本人確認を再実施する。
(出所)筆者

6. 結論

本稿では、NIST SP 800-63-4シリーズに含まれる「バインディング」規定を整理しました。SP 800-63A-4には「バインディング保証レベル」という暗黙の概念が存在すること、そして同文書から参照されるSP 800-63B-4の方法には、攻撃者が自分のより高いレベルの認証器を被害者のアカウントへ追加できるという脆弱性があることを指摘しました。

この問題を緩和するため、本稿では規定の修正・追加案を提示しました。この緩和策により、CSPは認証器をアカウントへより安全にバインドできるようになり、RPに誤った安心感を与えることも避けられます。