NIST SP 800-63 の Digital Identity Model について読んでみる
はじめに
みなさまお疲れ様です. nbifrye です.
エンジニアたるもの一度は Qiita や Zenn などに技術記事をあげてみるべきかなと思い立ち, 第一弾として, NIST SP 800-63 の中から, 単一サービスの中で完結する範囲においての Digital Identity Model について読んでみた内容を書きました. 個人として全世界に記事を公開するのって緊張しますね.
この記事では, NIST SP 800-63 からの引用を多用し, 和訳はできるだけニュアンスを損なわないよう直訳にしながら読み込んでいくことで, SP 800-63 に出てくる内容をそのまま読めるようになることを目標として情報を整理しています. 本記事中の引用は全て NIST SP 800-63, Revision 4 の Final 版 を元にしています. また, 引用に併記している和訳は, 全てこの記事の著者によるものです.
Identity Proofing and Enrollment
まずは 2.2. Identity Proofing and Enrollment を参照し, サービスへの登録プロセス, Identity Proofing (身元確認) と Enrollment (登録) について見ていきます. Fig. 1. Sample identity proofing and enrollment digital identity model より, 一般的な流れは以下の通りです.
なんとなく, 免許証など身元確認のための書類を提出して身元確認を実施し, 確認できれば登録処理を行うのだろうということが読み取れます. 深掘りを行いたいところですが, 本文に
A unique subscriber account is then created, and one or more authenticators are registered to that account.
訳: 一意の Subscriber Account が作成され, そのアカウントに 1 つ以上の Authenticator (認証器) が登録される.
と記載されているため, Authentication (当人認証) に関するプロセスも踏まえて確認する方がわかりやすそうです. そこで, 深掘りをする前に Authentication に関するプロセスを確認します.
Authentication Process
先述の通り, 次は 2.3.2. Authentication Process を参照し, Authentication (当人認証) に関するプロセスについて見ていきます. Fig. 2. Sample authentication process より, 一般的な流れは以下の通りです.
なんとなく, パスワードなど当人認証のためのものを提出して当人認証を実施し, 認証済みセッションが確立されるのだろうということが読み取れます.
ここまでで大枠の雰囲気は掴めたため, 以降は用語の定義などに注意し, 正確に読み込んでいきます.
キーワードを正確に理解する
ここまでで登場した用語について, 2.1. Overview および B. Glossary を参照し, 正確な理解に努めます. 原文は全て英語なので, 可能な範囲で日本語への翻訳を試みます.
Identity
まず "Identity" というキーワードについて確認します. 直接的な説明は次のとおりです.
identity
See digital identity.
digital identity
An attribute or set of attributes that uniquely describes a subject within a given context.
訳: 特定の Context (文脈) において, Subject を一意に Describe (説明) する, Attribute (属性) または Attribute の Set.
そして, この説明中に登場したキーワードの説明は次のとおりです.
Subject
In these guidelines, a subject is a person and is represented by one of three roles, depending on where they are in the digital identity process.
訳: これらのガイドライン (SP 800-63) においては, Subject は Person (個人) を指し, デジタルアイデンティティのプロセスにおける位置付けに応じて 3 つの役割 (Applicant, Subscriber, Claimant) で表される.
subject
A person, organization, device, hardware, network, software, or service. In these guidelines, a subject is a natural person.
訳: 個人, 組織, デバイス, ハードウェア, ネットワーク, ソフトウェア またはサービス. これらのガイドライン (SP 800-63) においては, Natural Person (自然人).
attribute
A quality or characteristic ascribed to someone or something. An identity attribute is an attribute about the identity of a subscriber (e.g., name, date of birth, address).
訳: Someone または Something に Ascribe される (帰する), Quality (性質) または Characteristic (特徴). Identity Attribute は Subscriber の Identity に関する Attribute である. (例: 名前, 生年月日, 住所)
Subject, Applicant, Subscriber, Claimant
次は, 頻出する "Subject" というキーワードについて確認します. 直接的な説明は次のとおりです.
Subject
In these guidelines, a subject is a person and is represented by one of three roles, depending on where they are in the digital identity process.
訳: これらのガイドライン (SP 800-63) においては, Subject は Person (個人) を指し, デジタルアイデンティティのプロセスにおける位置付けに応じて 3 つの役割 (Applicant, Subscriber, Claimant) で表される.
subject
A person, organization, device, hardware, network, software, or service. In these guidelines, a subject is a natural person.
訳: 個人, 組織, デバイス, ハードウェア, ネットワーク, ソフトウェア またはサービス. これらのガイドライン (SP 800-63) においては, Natural Person (自然人).
Subject は Applicant, Subscriber, Claimant の 3 つの役割で表され, それぞれ以下のように説明されています.
Applicant
A subject to be identity-proofed and enrolled.
訳: Identity Proofing および Enrollment の対象となる Subject.
applicant
A subject undergoing the processes of identity proofing and enrollment.
訳: Identity Proofing および Enrollment のプロセスを受けている Subject.
Subscriber
A subject who has successfully completed the identity proofing and enrollment process or who has been successfully authenticated to an online service.
訳: Identity Proofing および Enrollment のプロセスを正常に完了した Subject, またはオンラインサービスに対して正常に Authenticate された Subject.
subscriber
An individual enrolled in the CSP identity service.
訳: CSP の Identity Service に登録されている個人.
Claimant
A subject "making a claim" to be eligible for authentication.
訳: Authentication される資格があると "Claim" する Subject.
claimant
A subject whose identity is to be verified using one or more authentication protocols.
訳: 1 つ以上の Authentication Protocol によって, Identity を Verify される Subject.
CSP, Verifier
次は CSP と Verifier です. それぞれ以下のように説明されています.
Credential service provider (CSP)
CSP functions include identity proofing applicants, enrolling them into their identity service, establishing subscriber accounts, and binding authenticators to those accounts. A subscriber account is the CSP's established record of the subscriber, the subscriber's attributes, and associated authenticators. CSP functions may be performed by an independent third party.
訳: CSP の機能には, Applicant の Identity Proofing, Identity Service への Applicant の登録, Subscriber Account の確立, Subscriber Account と Authenticator の紐付けが含まれる. Subscriber Account は, CSP が確立する, Subscriber, Subscriber の Attribute, 関連する Authenticator のレコードです. CSP の機能は独立した第三者である場合がある.
credential service provider (CSP)
A trusted entity whose functions include identity proofing applicants to the identity service and registering authenticators to subscriber accounts. A CSP may be an independent third party.
訳: 信頼できる Entity で, その機能には Identity Service への Applicant の Identity Proofing と, Subscriber Account への Authenticator の登録が含まれる. CSP は独立した第三者である場合がある.
Verifier
A verifier confirms the claimant's identity by verifying the claimant's possession and control of one or more authenticators using an authentication protocol. To do this, the verifier needs to confirm the binding of the authenticators with the subscriber account and check that the subscriber account is active.
訳: Verifier は, Authentication Protocol を用いて, Claimant が 1 つ以上の Authenticator を所有および管理していることを Verify することにより, Claimant の Identity を Confirm する.
verifier
An entity that confirms the claimant's identity by verifying the claimant's possession and control of one or more authenticators using an authentication protocol. To do this, the verifier needs to confirm the binding of the authenticators with the subscriber account and check that the subscriber account is active.
訳: Authentication Protocol を用いて, Claimant が 1 つ以上の Authenticator を所有および管理していることを Verify することにより, Claimant の Identity を Confirm する Entity.
また, 2.1. Overview には以下のような注意書きがあります.
While presented as separate roles, the functions of the CSP, verifier, and IdP may be performed by a single entity or distributed across multiple entities, depending on the implementation (see Sec. 2.5).
訳: CSP, Verifier, IdP の機能は別々の役割として表されているが, 実装によって, これらの機能は単一の Entity によって Perform (実行) される場合も, 複数の Entity に分散される場合もある.
Subscriber Account については 2.1. Overview での CSP の説明に内包されていますが, B. Glossary にも個別の説明があります.
subscriber account
An account established by the CSP for each subscriber enrolled in its identity service that contains information about the subscriber and a record of any authenticators registered to the subscriber.
訳: CSP が Identity Service に登録された各 Subscriber のため確立する Account で, Subscriber に関する情報と, その Subscriber に登録された Authenticator のレコードを含む.
Relying Party (RP)
次は RP です.
Relying party (RP)
RPs provide online transactions and services and rely upon a verifier's assertion of a subscriber's identity to grant access to those services. When using federation, the RP accesses the information in the subscriber account through assertions from an identity provider (IdP).
訳: RP はオンライントランザクションおよびサービスを提供し, Subscriber の Identity に関する Verifier の Assertion に基づいて, それらのサービスへのアクセスを許可する. Federation を使用する場合, RP は IdP からの Assertion を通じて Subscriber Account の情報にアクセスする.
relying party (RP)
An entity that relies on a verifier's assertion of a subscriber's identity, typically to process a transaction or grant access to information or a system.
訳: Subscriber の Identity に関する Verifier の Assertion を信頼する Entity. 通常, トランザクションの処理や, 情報またはシステムへのアクセス権の付与を行うために利用される.
途中で出てきた Assertion の説明も参照します.
assertion
A statement from an IdP to an RP that contains information about an authentication event for a subscriber. Assertions can also contain identity attributes for the subscriber in the form of attribute values, derived attribute values, and attribute bundles.
訳: Subscriber の Authentication Event に関する情報を含む, IdP から RP への Statement. Assertion には Subscriber の Identity Attribute が Attribute Value, Derived Attribute Value, Attribute Bundle の形式で含まれることがある.
RP の説明では "verifier's assertion" とあるので, ここでの "from an IdP to an RP" という説明はあまりフィットしないですね. これはあくまで特定の文脈においての "Assertion" の説明ということでしょうか.
次に, Transaction (トランザクション) の説明も参照しておきます.
transaction
See digital transaction.
digital transaction
A discrete digital event between a user and a system that supports a business or programmatic purpose.
訳: ビジネスまたはプログラマティックな目的をサポートする, ユーザーとシステムの間での Discrete (離散的) なデジタルイベント
Identity Proofing
次は Identity Proofing です.
identity proofing
The processes used to collect, validate, and verify information about a subject to establish assurance in the subject's claimed identity.
訳: Subject の Claimed Identity の Assurance (保証) を確立するために, Subject に関する情報を収集, Validate, Verify するプロセス.
Validate, Verify の意味の解釈に悩みますが, それぞれ Validation, Verification の説明があるため, そちらを参照します.
validation
The process or act of checking and confirming that the evidence and attributes supplied by an applicant are authentic, accurate, and associated with a real-life identity. See attribute validation.
訳: Applicant が提供した Evidence と Attribute が, 実在の Identity と関連し, Authentic (真正) かつ Accurate (正確) であることを Check し Confirm するプロセスまたは行為.
verification
The process or act of confirming that the applicant undergoing identity proofing holds the claimed real-life identity represented by the validated identity attributes and associated evidence. Synonymous with identity verification.
訳: Identity Proofing されている Applicant が, Validate された Identity の Attribute およびそれに関連する Evidence によって Represent (代表) される, Claim された現実の Identity を保有 (Hold) していることを Confirm するプロセスまたは行為.
attribute validation
The process or act of confirming that a set of attributes are accurate and associated with a real-life identity. See validation.
訳: Attribute の Set が Accurate (正確) であり, 現実の Identity と関連付けられていることを Confirm するプロセスまたは行為.
identity verification
See verification.
"Evidence" については "Identity Evidence" の説明を参照します.
identity evidence
Information or documentation that supports the real-world existence of the claimed identity. Identity evidence may be physical (e.g., a driver's license) or digital (e.g., a mobile driver's license or digital assertion). Evidence must support both validation (i.e., confirming authenticity and accuracy) and verification (i.e., confirming that the applicant is the true owner of the evidence).
訳: Claimed Identity の実在性を裏付ける情報または書類. Identity Evidence は物理的なもの (例: 運転免許証) の場合もあれば, またはデジタルなもの (例: mDL や Digital Assertion) の場合もある. Evidence は Validation (Authenticity (真正性) と Accuracy (正確性) を確認すること) と Verification (Applicant が Evidence の真の所有者であることを確認すること) の両方をサポートしなければならない.
また, Claimed Identity に関する説明も参照しておきます.
claimed identity
An applicant's declaration of unvalidated and unverified personal attributes.
訳: Applicant の, Unvalidated かつ Unverified な, 個人の Attribute の宣言.
加えて, 2.2. Identity Proofing and Enrollment の本文中に "The CSP resolves the user" という表現が出てくるため, これと関連するであろう "Resolution" というキーワードについても参照しておきます.
resolution
See identity resolution.
identity resolution
The process of collecting information about an applicant to uniquely distinguish an individual within the context of the population that the CSP serves.
訳: CSP がサービスの提供対象とする母集団のコンテキスト中で, 個人を一意に特定するために, Applicant に関する情報を収集するプロセス.
Enrollment
次は Enrollment です.
enrollment
The process through which a CSP/IdP provides a successfully identity-proofed applicant with a subscriber account and binds authenticators to grant persistent access.
訳: CSP または IdP が, Identity Proofing が完了した Applicant に Subscriber Account を提供し, Authenticator (認証器) を紐付けて持続的なアクセスを付与するプロセス.
ここでは, Enrollment には Identity Proofing が必須であるかのように書かれています. しかし, 広く一般には, Identity Proofing が不要なサービスもあるような気がします. これは, SP 800-63 のスコープにおいては Identity Proofing が必要なサービスを前提としているということでしょうか?それとも, 要否は適宜判断すればよいので, 必要な前提で書いてしまっているということでしょうか. (ここの説明は normative ではなく informative ですし.) 1.1. Scope and Applicability も参照してみましたが, いまいちよくわかりませんでした.
Authentication
次は Authentication に関するキーワードです.
authenticate
See authentication.
authentication
The process by which a claimant proves possession and control of one or more authenticators bound to a subscriber account to demonstrate that they are the subscriber associated with that account.
訳: Claimant が Subscriber Account に紐付けられた 1 つ以上の Authenticator を所有および管理していることを証明し, 自身がその Subscriber Account に関連した Subscriber であることを証明するプロセス.
authentication protocol
A defined sequence of messages between a claimant and a verifier that demonstrates that the claimant has possession and control of one or more valid authenticators to establish their identity and, optionally, demonstrates that the claimant is communicating with the intended verifier.
訳: Claimant と Verifier の間で定義されたメッセージのシーケンスで, Claimant が 1 つ以上の有効な Authenticator を所有および管理していることを証明することで, Claimant の Identity を確立する. また, オプションとして, Claimant が意図した Verifier と通信していることを証明する.
authenticator
Something that the subscriber possesses and controls (e.g., a cryptographic module or password) and that is used to authenticate a claimant's identity. See authenticator type and multi-factor authenticator.
訳: Subscriber が所有および管理するもので, Claimant の Identity を Authenticate するために使用されるもの. 例: Cryptographic Module (暗号モジュール) またはパスワード.
authenticator output
The output value generated by an authenticator. The ability to generate valid authenticator outputs on demand proves that the claimant possesses and controls the authenticator. Protocol messages sent to the verifier depend on the authenticator output, but they may or may not explicitly contain it.
訳: Authenticator によって生成される出力値. 有効な Authenticator Output をオンデマンドで生成する能力は, Claimant が Authenticator を所有および管理していることを証明する. Verifier に送信されるプロトコルメッセージは Authenticator Output に依存するが, 明示的に含まれる場合とそうでない場合がある.
Authenticated Session
最後は Authenticated Session です.
authenticated session
See protected session.
protected session
A session in which messages between two participants are encrypted and integrity is protected using a set of shared secrets called "session keys." A protected session is said to be authenticated if one participant proves possession of one or more authenticators in addition to the session keys and if the other party can verify the identity associated with the authenticators during the session. If both participants are authenticated, the protected session is said to be mutually authenticated.
訳: "Session Key" と呼ばれる共有鍵のセットを使用して, 2 人の参加者の間で交換されるメッセージを暗号化し, 完全性を保護するセッション. Protected Session は, Session Key に加えて 1 つ以上の Authenticator の所有を 1 つの参加者が証明し, かつセッション中に相手がその Authenticator と関連付けられた Identity を Verify できる場合, Authenticated と呼ばれる. 両方の参加者が Authenticate されている場合, Protected Session は Mutually (相互) Authenticated と呼ばれる.
session
A persistent interaction between a subscriber and an endpoint, either an RP or a CSP. A session begins with an authentication event and ends with a session termination event. A session is bound by the use of a session secret that the subscriber's software (e.g., browser, application, OS) can present to the RP to prove association of the session with the authentication event.
訳: RP または CSP の Endpoint と Subscriber との, 持続的なインタラクション. Session は Authentication Event で開始し, Session Termination Event で終了する. Session は, Subscriber のソフトウェア (例: ブラウザ, アプリケーション, OS) が Session との関連を証明するために RP に提示できる Session Secret の使用によって, Authentication Event と束縛される.
あらためて Identity Proofing and Enrollment を読む
ここまで見てきた, 各キーワードの正確な説明を踏まえた上で, 再度 Identity Proofing と Enrollment について見ていきます.
この図を踏まえた上で, 2.2. Identity Proofing and Enrollment の本文の内容を確認しつつ, 流れを文章にして追っていきます.
まず, CSP が提供するオンラインサービスへのアクセスを Subject (自然人) が試みるなどによって, Identity Proofing が開始されます. この時点で, CSP から見た Subject は Identity Proofing の対象になるため, Applicant と呼ばれます.
Identity Proofing が開始されたら, CSP は Applicant に Identity の Evidence と Attribute を要求します. 以降, CSP による Identity Proofing が行われます. Identity Proofing は以下のようなプロセスで構成されていそうです.
- Applicant が Identity を CSP に Claim する (= Evidence と Attributes を提出する)
- CSP が実在の Identity (個人) を特定するために Applicant に関する情報を収集する (= Resolution)
- Applicant が提供した Evidence と Attribute が, 実在の Identity と関連し, Authentic (真正) かつ Accurate (正確) であることを CSP が Check し Confirm する (= Validation)
- 平易な表現にすれば, 提出された情報が実在する人物に紐付くものであるか確認する, ということ
- Applicant が, Validate された Identity の Attribute およびそれに関連する Evidence によって Represent (代表) される, Claim された現実の Identity を保有 (Hold) していることを Confirm する (= Verification)
- 平易な表現にすれば, 提出された情報に紐付く実在の人物が Applicant と一致するか確認する, ということ
このことは, SP 800-63A Identity Proofing & Enrollment の 2.1.1. Process Flow でより詳細に説明されていそうですが, ここではまだ触れないことにします.
上記のプロセスを経て Identity Proofing が完了したら, Applicant は CSP の Subscriber として Identity Service に登録 (= Enrollment) されます. その後, 一意な Subscriber Account が作成され, 1 つ以上の Authenticator が Subscriber Account に紐付けられます. Identity Proofing が完了した時点で, 先ほどまで Applicant だった Subject は Subscriber と呼ばれるようになります.
2.2. Identity Proofing and Enrollment には記載がないですが, 2.3.2. Authentication Process の内容を踏まえれば, Subscriber Account の作成が終わった後に Protected Session (≒ Authenticated Session) が開かれるのが自然なように思います. もちろん, サービスによるというのは前提で, ですが.
2.5.1. Non-Federated Digital Identity Model によれば, "Steps 3 through 5 can immediately follow steps 1 and 2 or be done at a later time.", つまり, Authentication は Identity Proofing および Enrollment の直後に実行されることもあれば, 後から実行されることもある...ということですが, Enrollment が終わった段階で Subject はすでに Subscriber になっているので, 直後は Authentication しなくていいような...?わかりません.
あらためて Authentication Process を読む
ここまで見てきた, 各キーワードの正確な説明を踏まえた上で, 次は Authentication Process について見ていきます. こちらも図を再掲します.
こちらに関しては, この図中に必要なことが全て盛り込まれていそうなので, 特筆することがないですね. こちらのケースでは, 最初にサービスを利用しようとしたタイミングでの Subject は, これから Authentication の対象となる Subject なので, Claimant と呼ばれます. そして, Authentication が完了した段階で Subscriber と呼ばれるようになります.
気をつけるべきは, "Authentication (当人認証)" は "Authenticator の所有および管理を証明すること" によってなされるのであり, Authenticated Session と紐付く Session Secret の提示は Authentication ではないというところでしょうか. このあたりは, "認証" という言葉の指すところが曖昧にされがちな部分のような気がします.
おわりに
NIST SP 800-63 の中から, 単一サービスの中で完結する範囲においての Digital Identity Model について読んでみました. いきなり xAL やら Federation やら OIDC やらを扱うと学ぶべきことが多くて大変なので, 狭い範囲から丁寧に学ぶことは有意義だなというのが, 読んでみての感想です.
ここから少しずつ, 読む範囲を広げていこうかなと思います. まずは Digital Identity Model を Federation 含めて読破したいですが, Wallet やら DID/VC やらに関する知識が全くないので, 2.5.3. Federated Digital Identity Model with Subscriber-Controlled Wallet を読むのにビビっているところです.
追記: Federation 編を書きました. Wallet については扱っていません.
Discussion