You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: openid4vc-high-assurance-interoperability-profile-1_0.md
+7-56Lines changed: 7 additions & 56 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -135,68 +135,18 @@ Both sending Credential Offer same-device and cross-device is supported.
135
135
136
136
## Token Endpoint {#token-endpoint}
137
137
138
-
* The Wallets MUST perform client authentication as defined in [@!I-D.ietf-oauth-attestation-based-client-auth].
138
+
* The Wallets MUST perform client authentication as defined in (#wallet-attestation).
139
139
* Refresh tokens are RECOMMENDED to be supported for credential refresh. For details, see Section 13.5 in [@!OIDF.OID4VCI].
140
-
* The Wallet Attestation JWT scheme is defined in (#wallet-attestation-schema).
141
140
142
141
Note: It is RECOMMENDED to use ephemeral client attestation JWTs for client authentication in order to prevent linkability across Credential Issuers.
143
142
144
143
Note: Issuers should be mindful of how long the usage of the refresh token is allowed to refresh a credential, as opposed to starting the issuance flow from the beginning. For example, if the User is trying to refresh a credential more than a year after its original issuance, the usage of the refresh tokens is NOT RECOMMENDED.
Wallets MUST use attestations following the definition given in [@!I-D.ietf-oauth-attestation-based-client-auth].
149
-
150
-
In addition to this definition, the Wallet Attestation MAY contain the following claims in the `cnf` element:
151
-
152
-
*`key_type`: OPTIONAL. JSON String that asserts the security mechanism the Wallet uses to manage the private key associated with the public key given in the `cnf` claim. This mechanism is based on the capabilities of the execution environment of the Wallet, this might be a secure element (in case of a Wallet residing on a smartphone) or a Cloud-HSM (in case of a cloud Wallet). This specification defines the following values for `key_type`:
153
-
*`software`: It MUST be used when the Wallet uses software-based key management.
154
-
*`hardware`: It MUST be used when the Wallet uses hardware-based key management.
155
-
*`tee`: It SHOULD be used when the Wallet uses the Trusted Execution Environment for key management.
156
-
*`secure_enclave`: It SHOULD be used when the Wallet uses the Secure Enclave for key management.
157
-
*`strong_box`: It SHOULD be used when the Wallet uses the Strongbox for key management.
158
-
*`secure_element`: It SHOULD be used when the Wallet uses a Secure Element for key management.
159
-
*`hsm`: It SHOULD be used when the Wallet uses Hardware Security Module (HSM).
160
-
*`user_authentication`: OPTIONAL. JSON String that asserts the security mechanism the Wallet uses to authenticate the user to authorize access to the private key associated with the public key given in the `cnf` claim. This specification defines the following values for `user_authentication`:
161
-
*`system_biometry`: It MUST be used when the key usage is authorized by the mobile operating system using a biometric factor.
162
-
*`system_pin`: It MUST be used when the key usage is authorized by the mobile operating system using personal identification number (PIN).
163
-
*`internal_biometry`: It MUST be used when the key usage is authorized by the Wallet using a biometric factor.
164
-
*`internal_pin`: It MUST be used when the key usage is authorized by the Wallet using PIN.
165
-
*`secure_element_pin` It MUST be used when the key usage is authorized by the secure element managing the key itself using PIN.
166
-
167
-
The Wallet Attestation MAY also contain the following claim:
168
-
169
-
*`aal`: OPTIONAL. JSON String asserting the authentication level of the Wallet and the key as asserted in the `cnf` claim.
170
-
171
-
To obtain the Issuer's Public key for verification, Wallet attestions MUST support web-based key resolution as defined in Section 5 of [@!I-D.ietf-oauth-sd-jwt-vc]. The JOSE header `kid` MUST be used to identify the respective key.
172
-
173
-
This is an example of a Wallet Instance Attestation:
174
-
175
-
```json
176
-
{
177
-
"typ": "wallet-attestation+jwt",
178
-
"alg": "ES256",
179
-
"kid": "1"
180
-
}
181
-
.
182
-
{
183
-
"iss": "<identifier of the issuer of this Wallet attestation>",
0 commit comments