Skip to content

Commit 3aabe80

Browse files
authored
Merge pull request peppelinux#96 from peppelinux/editorials-and-terms
fix: terms and editorials for better readability
2 parents 96338f8 + 329c68b commit 3aabe80

File tree

1 file changed

+33
-29
lines changed

1 file changed

+33
-29
lines changed

draft-demarco-oauth-status-assertions.md

+33-29
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,10 @@ informative:
110110
Status Assertion is a signed object that demonstrates the validity status of a
111111
digital credential.
112112
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
114114
with the corresponding digital credentials.
115115
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,
117117
such as the non-revocation, of a digital credential
118118
without requiring to query any third-party entities.
119119

@@ -124,46 +124,46 @@ without requiring to query any third-party entities.
124124
Status Assertions show the status of digital
125125
credentials, whether in JSON Web Tokens (JWT) or CBOR Web Tokens (CWT)
126126
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.
130130
The approach outlined in this specification enables the
131-
verification of credentials against revocation without
131+
verification of Credentials against revocation without
132132
direct queries to third-party systems,
133133
enhancing privacy, reducing latency, and
134134
faciliting offline verification.
135135

136-
The figure below illustrates the process by which a client,
136+
The figure below illustrates the process by which a Holder,
137137
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.
139139

140140
~~~ ascii-art
141141
+----------------+ +------------------+
142142
| | Requests Status Assertions | |
143143
| |----------------------------->| |
144-
| Client | | Issuer |
144+
| Holder | | Issuer |
145145
| | Status Assertions | |
146146
| |<-----------------------------| |
147147
+----------------+ +------------------+
148148
~~~
149149
**Figure 1**: Status Assertion Issuance Flow.
150150

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.
153153

154154
~~~ ascii-art
155155
+----------------+ +------------------+
156156
| | Presents Digital Credential | |
157-
| Client | and Status Assertion | Verifier |
157+
| Holder | and Status Assertion | Verifier |
158158
| |---------------------------->| |
159159
+----------------+ +------------------+
160160
~~~
161161
**Figure 2**: Status Assertion Presentation Flow.
162162

163-
In summary, the Issuer provides the client with a
163+
In summary, the Issuer provides the Holder with a
164164
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
167167
validity status.
168168

169169
# Conventions and Definitions
@@ -177,26 +177,25 @@ This specification uses the terms "End-User", "Entity" as defined by
177177
OpenID Connect Core [OpenID.Core], the term "JSON Web Token (JWT)"
178178
defined by JSON Web Token (JWT) {{RFC7519}},
179179
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].
181182

182183
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.
184185
Alternative names are "Verifiable Credential" or "Credential".
185186

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-
190187
Issuer:
191188
: Entity that is responsible for the issuance of the Digital Credentials.
192189
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".
194192

195193
Verifier:
196194
: 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
198196
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".
200199

201200
Wallet Instance:
202201
: The digital Wallet in control of a User, also known as Wallet.
@@ -212,8 +211,7 @@ There are cases where the Verifier only needs
212211
to check the revocation status of a Digital Credential at the time of
213212
presentation, and therefore it should not be allowed to
214213
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.
217215

218216
For instance, consider a scenario where a Verifier's repeated access to a
219217
status list, such as the one defined in
@@ -399,7 +397,10 @@ Host: issuer.example.org
399397
Content-Type: application/json
400398

401399
{
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+
]
403404
}
404405
~~~
405406

@@ -438,7 +439,10 @@ HTTP/1.1 200 OK
438439
Content-Type: application/json
439440

440441
{
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+
]
442446
}
443447
~~~
444448

@@ -509,7 +513,7 @@ table below:
509513

510514
## Rationale About The Unsigned Status Assertion Errors
511515

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.
513517

514518
## Status Assertion Error Values
515519

0 commit comments

Comments
 (0)