Skip to content

Commit 949c4cb

Browse files
committed
improve privacy consideration to recommend re-issuance
1 parent f960404 commit 949c4cb

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

draft-ietf-oauth-status-list.md

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ TODO elaborate on status list only providing the up-to date/latest status, no hi
392392

393393
# Privacy Considerations
394394

395-
## Issuer tracking and Herd Privacy {#privacy-issuer}
395+
## Unobservability of Issuers {#privacy-issuer}
396396

397397
The main privacy consideration for a Status List, especially in the context of the Issuer-Holder-Verifier model, is to prevent the Issuer from tracking the usage of the Referenced Token when the status is being checked. If an Issuer offers status information by referencing a specific token, this would enable him to create a profile for the issued token by correlating the date and identity of Relying Parties, that are requesting the status.
398398

@@ -404,17 +404,21 @@ The herd privacy is depending on the number of entities within the Status List c
404404

405405
A malicious Issuer could bypass the privacy benefits of the herd privacy by generating a unique Status List for every Referenced Token. By these means, he could maintain a mapping between Referenced Tokens and Status Lists and thus track the usage of Referenced Tokens by utilizing this mapping for the incoming requests. This malicious behaviour could be detected by Relying Parties that request large amounts of Referenced Tokens by comparing the number of different Status Lists and their sizes.
406406

407-
## Relying Party tracking {#privacy-relying-party}
407+
## Unobservability of Relying Parties {#privacy-relying-party}
408408

409-
Once the Relying Party gets the Referenced Token, this enables him to request the Status List to validate the status of the Token through the provided "uri" property and look up the corresponding "index". However, the Relying Party may persistently store the "uri" and "index" of the Referenced Token to request the Status List again at a later time. By doing so regularly, the Relying Party may create a profile of the Referenced Token's validity status. This behaviour may be intended as a feature, e.g. for a KYC process that requires regular validity checks, but might also be abused in cases where this is not intended and unknown to the Holder, e.g. profiling the suspension of a driving license or checking the employment status of an employee credential. This behaviour could be constrained by adding authorization rules to the Status List, see [](#security-authorization).
409+
Once the Relying Party receives the Referenced Token, this enables him to request the Status List to validate its status through the provided `uri` parameter and look up the corresponding `index`. However, the Relying Party may persistently store the `uri` and `index` of the Referenced Token to request the Status List again at a later time. By doing so regularly, the Relying Party may create a profile of the Referenced Token's validity status. This behaviour may be intended as a feature, e.g. for a KYC process that requires regular validity checks, but might also be abused in cases where this is not intended and unknown to the Holder, e.g. profiling the suspension of a driving license or checking the employment status of an employee credential.
410410

411-
## Correlation Risks and Tracking
411+
This behaviour could be mitigated by:
412+
- adding authorization rules to the Status List, see [](#security-authorization).
413+
- regular re-issuance of the Referenced Token, see [](#implementation-lifecycle).
412414

413-
Colluding Issuers and Relying Parties have the possibility to identify the usage of credentials of a particular Holder, as the Referenced Token contains unique, trackable data.
415+
## Unlinkability
414416

415-
To avoid privacy risks for colluding Relying Parties, it is recommended that Issuers use batch issuance to issue multiple tokens, such that Holders can use individual tokens for specific Relying Parties. In this case, every Referenced Token MUST have a dedicated Status List entry. Revoking batch issued Referenced Tokens might reveal this correlation later on.
417+
Colluding Issuers and a Relying Parties have the possibility to link two transactions, as the tuple of `uri` and `index` inside the Referenced Token are unique and therefore traceable data. By comparing the status claims of received Referenced Tokens, two colluding Relying Parties could determine that they have interacted with the same user or an Issuer could trace the usage of its issued Referenced Token by colluding with various Relying Parties. It is therefore recommended to use Status Lists for Referenced Token formats that have similar unlinkability properties.
416418

417-
To avoid information leakage by the values of "uri" and "index", Issuers are RECOMMENDED to:
419+
To avoid privacy risks for colluding Relying Parties, it is RECOMMENDED that Issuers use batch issuance to issue multiple tokens, see [](#implementation-lifecycle).
420+
421+
To avoid further correlatable information by the values of `uri` and `index`, Issuers are RECOMMENDED to:
418422

419423
- choose non-sequential, pseudo-random or random indices
420424
- use decoy or dead entries to obfuscate the real number of Referenced Tokens within a Status List
@@ -428,7 +432,13 @@ TODO evaluate definition of Status List Provider?
428432

429433
# Implementation Considerations {#implementation}
430434

431-
TBD Declare whether JWT and CWT representations can be used interchangeably by the same issuer. For instance, declare whether a status list can reference both JWT and CWT tokens.
435+
## Token Lifecycle {#implementation-lifecycle}
436+
437+
The lifetime of a Status List (and the Status List Token) is depending on the lifetime of its Referenced Tokens. Once all Referenced Tokens are expired, the Issuer may stop serving the Status List (and the Status List Token).
438+
439+
Referenced Tokens may be regularly re-issued to increase security or to mitigate linkability and prevent tracking by Relying Parties. In this case, every Referenced Token MUST have a fresh Status List entry.
440+
441+
Referenced Tokens may also be issued in batches, such that Holders can use individual tokens for every transaction. In this case, every Referenced Token MUST have a dedicated Status List entry. Revoking batch issued Referenced Tokens might reveal this correlation later on.
432442

433443
# IANA Considerations
434444

0 commit comments

Comments
 (0)