Skip to content

Commit 8e1b82f

Browse files
committed
fix: add security consideration to errata
1 parent 00c225e commit 8e1b82f

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

1.0/openid-4-verifiable-credential-issuance-1_0.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1503,6 +1503,17 @@ An attacker might leverage the Credential issuance process and the End-User's tr
15031503

15041504
In order to cope with that issue, the Wallet is RECOMMENDED to interact with trusted Credential Issuers only. In that case, the Wallet would not process a Credential Offer with an untrusted issuer URL. The Wallet MAY also show the End-User the endpoint of the Credential Issuer it will be sending the Transaction Code to and ask the End-User for confirmation.
15051505

1506+
### Transaction Code Guessing
1507+
1508+
When the Pre-Authorized Code Flow is used together with a Transaction Code (`tx_code`), the Transaction Code is typically short, low-entropy, and intended for one-time use. As a result, it may be susceptible to online guessing or brute-force attacks if an attacker can repeatedly submit Token Requests using the same Pre-Authorized Code.
1509+
1510+
To mitigate this risk, the Authorization Server SHOULD limit the number of failed Transaction Code verification attempts associated with a Pre-Authorized Code or issuance transaction. Once a configurable maximum number of failed attempts is exceeded, the Authorization Server SHOULD invalidate the Pre-Authorized Code and reject further Token Requests for that transaction.
1511+
1512+
Transaction Codes SHOULD be short-lived and SHOULD be treated as single-use. Upon successful verification, a Transaction Code SHOULD NOT be accepted again.
1513+
1514+
When a valid Pre-Authorized Code is presented with an incorrect Transaction Code, the Authorization Server SHOULD return an error indicating that the provided Transaction Code is invalid.
1515+
If the Pre-Authorized Code has expired, has been invalidated (including due to too many failed attempts), or is otherwise no longer valid, the Authorization Server SHOULD return the `invalid_grant` error.
1516+
15061517
## Credential Lifecycle Management
15071518

15081519
The Credential Issuer is supposed to be responsible for the lifecycle of its Credentials. This means the Credential Issuer will invalidate Credentials when it deems appropriate, e.g., if it detects fraudulent behavior.
@@ -3026,7 +3037,7 @@ The technology described in this specification was made available from contribut
30263037

30273038
-19
30283039

3029-
* TBD
3040+
* Add security consideration on transaction code guessing
30303041

30313042
-final
30323043

0 commit comments

Comments
 (0)