@@ -110,10 +110,10 @@ informative:
110
110
Status Assertion is a signed object that demonstrates the validity status of a
111
111
digital credential.
112
112
These assertions are periodically provided
113
- to holders , who can present these to Verifier along
113
+ to Holders , who can present these to Credential Verifier along
114
114
with the corresponding digital credentials.
115
115
The approach outlined in this document
116
- makes the Verifier able to check the status,
116
+ makes the Credential Verifier able to check the status,
117
117
such as the non-revocation, of a digital credential
118
118
without requiring to query any third-party entities.
119
119
@@ -124,46 +124,46 @@ without requiring to query any third-party entities.
124
124
Status Assertions show the status of digital
125
125
credentials, whether in JSON Web Tokens (JWT) or CBOR Web Tokens (CWT)
126
126
format. Status Assertions function
127
- similarly to OCSP Stapling ([RFC6066]), allowing clients to present to the
128
- relying parties
129
- time-stamped assertions provided by the issuer .
127
+ similarly to OCSP Stapling ([RFC6066]), allowing Holders
128
+ to present to the Relying Parties
129
+ time-stamped assertions provided by the Issuer .
130
130
The approach outlined in this specification enables the
131
- verification of credentials against revocation without
131
+ verification of Credentials against revocation without
132
132
direct queries to third-party systems,
133
133
enhancing privacy, reducing latency, and
134
134
faciliting offline verification.
135
135
136
- The figure below illustrates the process by which a client ,
136
+ The figure below illustrates the process by which a Holder ,
137
137
such as a wallet instance,
138
- requests and obtains a Status Assertion from the issuer .
138
+ requests and obtains a Status Assertion from the Issuer .
139
139
140
140
~~~ ascii-art
141
141
+----------------+ +------------------+
142
142
| | Requests Status Assertions | |
143
143
| |----------------------------->| |
144
- | Client | | Issuer |
144
+ | Holder | | Issuer |
145
145
| | Status Assertions | |
146
146
| |<-----------------------------| |
147
147
+----------------+ +------------------+
148
148
~~~
149
149
**Figure 1**: Status Assertion Issuance Flow.
150
150
151
- The figure below illustrates the process by which a client
152
- presents the Status Assertion along with the corresponding digital credential .
151
+ The figure below illustrates the process by which a Holder
152
+ presents the Status Assertion along with the corresponding Digital Credential .
153
153
154
154
~~~ ascii-art
155
155
+----------------+ +------------------+
156
156
| | Presents Digital Credential | |
157
- | Client | and Status Assertion | Verifier |
157
+ | Holder | and Status Assertion | Verifier |
158
158
| |---------------------------->| |
159
159
+----------------+ +------------------+
160
160
~~~
161
161
**Figure 2**: Status Assertion Presentation Flow.
162
162
163
- In summary, the Issuer provides the client with a
163
+ In summary, the Issuer provides the Holder with a
164
164
Status Assertion, which is linked to a Digital Credential. This enables
165
- the client to present both the digital credential and its
166
- Status Assertion to a Verifier as proof of the digital credential 's
165
+ the Holder to present both the Digital Credential and its
166
+ Status Assertion to a Credential Verifier as proof of the Digital Credential 's
167
167
validity status.
168
168
169
169
# Conventions and Definitions
@@ -177,26 +177,25 @@ This specification uses the terms "End-User", "Entity" as defined by
177
177
OpenID Connect Core [OpenID.Core], the term "JSON Web Token (JWT)"
178
178
defined by JSON Web Token (JWT) {{RFC7519}},
179
179
the term "CBOR Web Token (CWT)" defined in {{RFC8392}}, "Client" as
180
- defined {{RFC6749}}, "Verifiable Presentation" defined in [OpenID4VP].
180
+ defined {{RFC6749}}, "Holder", "Verifiable Presentation"
181
+ defined in [OpenID4VP].
181
182
182
183
Digital Credential :
183
- : A set of one or more claims about a subject made by an Issuer.
184
+ : A set of one or more claims about a subject issued by an Issuer.
184
185
Alternative names are "Verifiable Credential" or "Credential".
185
186
186
- Holder :
187
- : An entity that possesses Digital Credentials and has
188
- control over them to present them to the Verifiers as Verifiable Presentations.
189
-
190
187
Issuer :
191
188
: Entity that is responsible for the issuance of the Digital Credentials.
192
189
The Issuer is responsible for the lifecycle of their issued
193
- Digital Credentials and their validity status and responsible for issuance of related Status Assertions.
190
+ Digital Credentials and their validity status and responsible for issuance
191
+ of related Status Assertions. Alternative name is "Credential Issuer".
194
192
195
193
Verifier :
196
194
: Entity that relies on the validity of the Digital Credentials presented to it.
197
- This Entity, also known as a Relying Party, verifies the authenticity and
195
+ This Entity, verifies the authenticity and
198
196
validity of the Digital Credentials, including their revocation status,
199
- before accepting them.
197
+ before accepting them. Alternative names are
198
+ " Relying Party" and "Credential Verifier".
200
199
201
200
Wallet Instance :
202
201
: The digital Wallet in control of a User, also known as Wallet.
@@ -212,8 +211,7 @@ There are cases where the Verifier only needs
212
211
to check the revocation status of a Digital Credential at the time of
213
212
presentation, and therefore it should not be allowed to
214
213
check the status of a Digital Credential over time due to some
215
- privacy constraints,
216
- in compliance with national privacy regulations.
214
+ privacy constraints, in compliance with national privacy regulations.
217
215
218
216
For instance, consider a scenario where a Verifier's repeated access to a
219
217
status list, such as the one defined in
@@ -399,7 +397,10 @@ Host: issuer.example.org
399
397
Content-Type : application/json
400
398
401
399
{
402
- " status_assertion_requests" : ["${base64url(json({typ: (some pop for status-assertion)+jwt, ...}))}.payload.signature", ... ]
400
+ " status_assertion_requests" : [
401
+ $status_assertion_request,
402
+ $status_assertion_request, ...
403
+ ]
403
404
}
404
405
~~~
405
406
@@ -438,7 +439,10 @@ HTTP/1.1 200 OK
438
439
Content-Type : application/json
439
440
440
441
{
441
- " status_assertion_responses " : ["${base64url(json({typ: status-assertion+jwt, ...}))}.payload.signature", ... ]
442
+ " status_assertion_responses " : [
443
+ $status_assertion_response,
444
+ $status_assertion_response, ...
445
+ ]
442
446
}
443
447
~~~
444
448
@@ -509,7 +513,7 @@ table below:
509
513
510
514
# # Rationale About The Unsigned Status Assertion Errors
511
515
512
- To mitigate potential resource exhaustion attacks where an adversary could issue hundreds of fake Status Assertion Requests to force an Issuer to sign numerous Status Assertion Errors, it is advisable to set the header parameter`alg` value to `none` for Status Assertion Errors that do not require signatures. This approach conserves computational resources and prevents abuse, especially in scenarios where the Issuer's implementation could be vulnerable to resource exhaustion attacks. However, even if it is out of the scopes of this specification determine in which the Status Error Assertion signatures are necessary, when the Issuer signs the Status Assertion Errors the Client that received them MUST validate the signature.
516
+ To mitigate potential resource exhaustion attacks where an adversary could issue hundreds of fake Status Assertion Requests to force an Issuer to sign numerous Status Assertion Errors, it is advisable to set the header parameter`alg` value to `none` for Status Assertion Errors that do not require signatures. This approach conserves computational resources and prevents abuse, especially in scenarios where the Issuer's implementation could be vulnerable to resource exhaustion attacks. However, even if it is out of the scopes of this specification determine in which the Status Error Assertion signatures are necessary, when the Issuer signs the Status Assertion Errors the Holder that received them MUST validate the signature.
513
517
514
518
# # Status Assertion Error Values
515
519
0 commit comments