Skip to content

Commit

Permalink
rename revocation to status
Browse files Browse the repository at this point in the history
Signed-off-by: Mirko <[email protected]>
  • Loading branch information
cre8 committed Oct 26, 2023
1 parent b0af0cf commit d4a56a3
Show file tree
Hide file tree
Showing 34 changed files with 41 additions and 41 deletions.
8 changes: 4 additions & 4 deletions article.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ In this paper, we aim to describe the rationale behind the credential profile ma

## Methodology

For the creation of the credential profile matrix, a group of domain experts gathered first at the Internet Identity Workshop in its 34th incarnation (IIWXXIV) in Mountain View in April 2022. They kicked off with listening to experts for different VC types and formats, starting to gather data in a structured way, to ultimately be able to compare them in defined categories. This lead to a definition for a _credential profile_: a configuration of the credential format, signing algorithm, revocation algorithm and key management. These properties are then further drilled down, e.g. looking at technical traits like selective disclosure, crypto agility, or hardware support, and adoption criteria like standardization, technology readiness level, or implementation support.
For the creation of the credential profile matrix, a group of domain experts gathered first at the Internet Identity Workshop in its 34th incarnation (IIWXXIV) in Mountain View in April 2022. They kicked off with listening to experts for different VC types and formats, starting to gather data in a structured way, to ultimately be able to compare them in defined categories. This lead to a definition for a _credential profile_: a configuration of the credential format, signing algorithm, status algorithm and key management. These properties are then further drilled down, e.g. looking at technical traits like selective disclosure, crypto agility, or hardware support, and adoption criteria like standardization, technology readiness level, or implementation support.

For example, what is typically refered to as AnonCreds resolves to the credential profile "AnonCreds + CL + Indy Revocation + did:indy + link secrets".

Expand Down Expand Up @@ -69,7 +69,7 @@ The credential format and the signature algorithm are in scope, as the choice in

## Guide

The [credential profile comparison matrix](https://docs.google.com/spreadsheets/d/1Z4cYfjbbE-rABcfC-xab8miocKLomivYMUFibOh9BVo) is maintained as a living spreadsheat in google sheets. In the following sections we will describe the properties listed in the comparison matrix. Some properties are present in various tables. We will discuss these first. Then we will list the properties specific to the credential format, signature algorithm, revocation algorithm, key management and trust management.
The [credential profile comparison matrix](https://docs.google.com/spreadsheets/d/1Z4cYfjbbE-rABcfC-xab8miocKLomivYMUFibOh9BVo) is maintained as a living spreadsheat in google sheets. In the following sections we will describe the properties listed in the comparison matrix. Some properties are present in various tables. We will discuss these first. Then we will list the properties specific to the credential format, signature algorithm, status algorithm, key management and trust management.

### Common Properties

Expand Down Expand Up @@ -195,7 +195,7 @@ In the comparison matrix, with regard to cryptography, we discuss signatures and

The performance of signature algorithms can impact the user-friendliness of the wallet implementing the credential profile. We express the generation of the signature in terms of seconds.

### Properties of Revocation Algorithm
### Properties of Status Algorithm

Revocation is when the issuer no longer vouches for the correctness of the information in the credential that was issued to the holder. A reason for revocation could be that the information in the credential is simply not true anymore (holder is not a student anymore) or the information has to be periodically renewed (like a passport).

Expand All @@ -213,7 +213,7 @@ This property is about whether an issuer can observe a verifier checking that a

#### Offline Friendliness

In some use cases presentations have to be verified in an offline setting, such as when presenting a mobile driving license to a police officer on the road. The verifier should then also be able to check the revocation status of the credential. This property defines whether a revocation algorithm allows for an offline workflow.
In some use cases presentations have to be verified in an offline setting, such as when presenting a mobile driving license to a police officer on the road. The verifier should then also be able to check the revocation status of the credential. This property defines whether a status algorithm allows for an offline workflow.

### Properties of Key Management

Expand Down
2 changes: 1 addition & 1 deletion data/Credential-Profile/AnonCreds-cheqd.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "AnonCreds with did:cheqd",
"Credential Format": "AnonCred",
"Signing Algorithm": "CL",
"Revocation Algorithm": "Indy Revocation",
"Status Algorithm": "Indy Revocation",
"Key Management (Issuer)": "did:cheqd",
"Key Management (Holder)": "link secrets",
"Formal Specification": "https://docs.cheqd.io/identity/advanced/anoncreds"
Expand Down
2 changes: 1 addition & 1 deletion data/Credential-Profile/AnonCreds-indy.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "Well-known default profile in all Hyperledger Indy implementations. A favoured profile due to selective disclosure and predicate capability as well as privacy-preserving revocation mechanism. Standardization in community spec in progress (July 2022).",
"Credential Format": "AnonCred",
"Signing Algorithm": "CL",
"Revocation Algorithm": "Indy Revocation",
"Status Algorithm": "Indy Revocation",
"Key Management (Issuer)": "did:indy",
"Key Management (Holder)": "link secrets",
"Trust Management": "Verifier knows Issuers",
Expand Down
2 changes: 1 addition & 1 deletion data/Credential-Profile/AnonCreds-web.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "AnonCreds with did:web",
"Credential Format": "AnonCred",
"Signing Algorithm": "CL",
"Revocation Algorithm": "Indy Revocation",
"Status Algorithm": "Indy Revocation",
"Key Management (Issuer)": "did:web",
"Key Management (Holder)": "link secrets",
"Trust Management": "Verifier knows Issuers",
Expand Down
2 changes: 1 addition & 1 deletion data/Credential-Profile/DIIP.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"Credential Profile Description": "Decentralized Identity Interop Profile",
"Credential Format": "JWT-VC",
"Signing Algorithm": "ECDSA",
"Revocation Algorithm": "Status List 2021",
"Status Algorithm": "Status List 2021",
"Key Management (Issuer)": "did:web",
"Key Management (Holder)": "did:jwk",
"Issuance Protocol": "OpenID4VCI",
Expand Down
2 changes: 1 addition & 1 deletion data/Credential-Profile/EBSI.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "[Profile description goes here]",
"Credential Format": "JWT-VC",
"Signing Algorithm": "ECDSA",
"Revocation Algorithm": "Status List 2021",
"Status Algorithm": "Status List 2021",
"Key Management (Issuer)": "did:ebsi",
"Key Management (Holder)": "did:key",
"Trust Management": "EBSI Trust Registries"
Expand Down
2 changes: 1 addition & 1 deletion data/Credential-Profile/HAIP.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"Formal Specification": "https://vcstuff.github.io/oid4vc-haip-sd-jwt-vc/draft-oid4vc-haip-sd-jwt-vc.html#name-authors-addresses",
"Credential Format": "SD-JWT-VC",
"Signing Algorithm": "ECDSA",
"Revocation Algorithm": "JWT/CWT status list",
"Status Algorithm": "JWT/CWT status list",
"Key Management (Issuer)": ".well-known/jwt-issuer",
"Key Management (Holder)": "raw public keys (jwk)",
"Issuance Protocol": "OpenID4VCI",
Expand Down
2 changes: 1 addition & 1 deletion data/Credential-Profile/ICAO-DTC.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "[Profile description goes here]",
"Credential Format": "ICAO DTC",
"Signing Algorithm": "ECDSA",
"Revocation Algorithm": "SLTD database (travel and identity documents)",
"Status Algorithm": "SLTD database (travel and identity documents)",
"Key Management (Issuer)": "raw public keys (none jwk)",
"Key Management (Holder)": "raw public keys (none jwk)",
"Trust Management": "X.509 certificates"
Expand Down
2 changes: 1 addition & 1 deletion data/Credential-Profile/IRMA-(Yivi)-wallet.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "https://dominoweb.draco.res.ibm.com/reports/rz3730_revised.pdf",
"Credential Format": "Idemix attribute-based credential",
"Signing Algorithm": "CL",
"Revocation Algorithm": "RSA-B - cryptographic accumulator based on RSA",
"Status Algorithm": "RSA-B - cryptographic accumulator based on RSA",
"Key Management (Issuer)": "raw public keys (none jwk)",
"Key Management (Holder)": "link secrets",
"Trust Management": "IRMA (Yivi) Schemes"
Expand Down
2 changes: 1 addition & 1 deletion data/Credential-Profile/ISO-mDL.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "[Profile description goes here]",
"Credential Format": "MDOC",
"Signing Algorithm": "ECDSA",
"Revocation Algorithm": "medium-term expiration",
"Status Algorithm": "medium-term expiration",
"Key Management (Issuer)": "pub key in X.509 cert",
"Key Management (Holder)": "cose key",
"Trust Management": "Verified issuer certificate authority list (VICAL)",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "[Profile description goes here]",
"Credential Format": "LDP-VC",
"Signing Algorithm": "BoundBBS+",
"Revocation Algorithm": "Status List 2021",
"Status Algorithm": "Status List 2021",
"Key Management (Issuer)": "did:web",
"Key Management (Holder)": "credential as secret"
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "[Profile description goes here]",
"Credential Format": "LDP-VC",
"Signing Algorithm": "BBS+ with public key binding",
"Revocation Algorithm": "Status List 2021",
"Status Algorithm": "Status List 2021",
"Key Management (Issuer)": "did:web",
"Key Management (Holder)": "did:key"
}
2 changes: 1 addition & 1 deletion data/Credential-Profile/JWT-VC-Presentation-Profile-2.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "https://identity.foundation/jwt-vc-presentation-profile/",
"Credential Format": "JWT-VC",
"Signing Algorithm": "ECDSA",
"Revocation Algorithm": "Status List 2021",
"Status Algorithm": "Status List 2021",
"Key Management (Issuer)": "did:web",
"Key Management (Holder)": "did:ion (long form)"
}
2 changes: 1 addition & 1 deletion data/Credential-Profile/JWT-VC-Presentation-Profile.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "https://identity.foundation/jwt-vc-presentation-profile/",
"Credential Format": "JWT-VC",
"Signing Algorithm": "ECDSA",
"Revocation Algorithm": "Status List 2021",
"Status Algorithm": "Status List 2021",
"Key Management (Issuer)": "did:ion (long form)",
"Key Management (Holder)": "did:ion (long form)"
}
2 changes: 1 addition & 1 deletion data/Credential-Profile/NGI-Atlantic-for-OpenID4VCs.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "https://ngiatlantic.info\nhttps://ngiatlantic.eu/funded-experiments/next-generation-ssi-standards",
"Credential Format": "JWT-VC",
"Signing Algorithm": "ECDSA",
"Revocation Algorithm": "short-term expiration",
"Status Algorithm": "short-term expiration",
"Key Management (Issuer)": "did:key",
"Key Management (Holder)": "did:key",
"Trust Management": "TRAIN",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "[Profile description goes here]",
"Credential Format": "SD-JWT-VC",
"Signing Algorithm": "ECDSA",
"Revocation Algorithm": "JWT/CWT status list",
"Status Algorithm": "JWT/CWT status list",
"Key Management (Issuer)": "raw public keys (none jwk)",
"Key Management (Holder)": "did:jwk",
"Trust Management": "X.509 certificates"
Expand Down
2 changes: 1 addition & 1 deletion data/Credential-Profile/x.509.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"Credential Profile Description": "[Profile description goes here]",
"Credential Format": "x509",
"Signing Algorithm": "ECDSA",
"Revocation Algorithm": "CRL - certificate revocation list",
"Status Algorithm": "CRL - certificate revocation list",
"Key Management (Issuer)": "raw public keys (none jwk)",
"Key Management (Holder)": "raw public keys (none jwk)",
"Trust Management": "X.509 certificates"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "../../schemas/Revocation-Algorithm.json",
"Revocation Algorithm": "BBF18-cryptographic accumulator based on RSA",
"Status Algorithm": "BBF18-cryptographic accumulator based on RSA",
"Recognition by government authorities (NIST, BSI, ...)": false,
"Category": "Accumulator",
"Observability": false
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "../../schemas/Revocation-Algorithm.json",
"Revocation Algorithm": "CRL - certificate revocation list",
"Status Algorithm": "CRL - certificate revocation list",
"Recognition by government authorities (NIST, BSI, ...)": true,
"Category": "Deny-List",
"Observability": true
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "../../schemas/Revocation-Algorithm.json",
"Revocation Algorithm": "Indy Revocation",
"Status Algorithm": "Indy Revocation",
"Implementation Support (e.g. Libraries) / Active Community": "Indy SDK",
"Standardization (Body, Process)": "AnonCreds",
"Recognition by government authorities (NIST, BSI, ...)": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "../../schemas/Revocation-Algorithm.json",
"Revocation Algorithm": "JWT/CWT status list",
"Status Algorithm": "JWT/CWT status list",
"Implementation Support (e.g. Libraries) / Active Community": "https://github.com/vcstuff/draft-looker-oauth-jwt-cwt-status-list",
"Specification": "https://datatracker.ietf.org/doc/draft-terbu-oauth-sd-jwt-vc/",
"Standardization (Body, Process)": "IETF Individual",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"$schema": "../../schemas/Revocation-Algorithm.json",
"Revocation Algorithm": "Non-Revocation Token"
"Status Algorithm": "Non-Revocation Token"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "../../schemas/Revocation-Algorithm.json",
"Revocation Algorithm": "RSA-B - cryptographic accumulator based on RSA",
"Status Algorithm": "RSA-B - cryptographic accumulator based on RSA",
"Implementation Support (e.g. Libraries) / Active Community": "https://github.com/privacybydesign/gabi/tree/master/revocation",
"Specification": "https://eprint.iacr.org/2017/043.pdf",
"Recognition by government authorities (NIST, BSI, ...)": false,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "../../schemas/Revocation-Algorithm.json",
"Revocation Algorithm": "SLTD database (travel and identity documents)",
"Status Algorithm": "SLTD database (travel and identity documents)",
"Category": "Deny-List"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "../../schemas/Revocation-Algorithm.json",
"Revocation Algorithm": "Status List 2021",
"Status Algorithm": "Status List 2021",
"Implementation Support (e.g. Libraries) / Active Community": "https://github.com/transmute-industries/verifiable-data/tree/main/packages/vc-status-rl-2020",
"Specification": "https://w3c-ccg.github.io/vc-status-list-2021/",
"Standardization (Body, Process)": "W3C",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "../../schemas/Revocation-Algorithm.json",
"Revocation Algorithm": "VB20 - cryptographic accumulator based on pairings",
"Status Algorithm": "VB20 - cryptographic accumulator based on pairings",
"Recognition by government authorities (NIST, BSI, ...)": false,
"Category": "Accumulator",
"Observability": false
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"$schema": "../../schemas/Revocation-Algorithm.json",
"Revocation Algorithm": "Validity Credential"
"Status Algorithm": "Validity Credential"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "../../schemas/Revocation-Algorithm.json",
"Revocation Algorithm": "medium-term expiration",
"Status Algorithm": "medium-term expiration",
"Specification": "weeks"
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "../../schemas/Revocation-Algorithm.json",
"Revocation Algorithm": "short-term expiration",
"Status Algorithm": "short-term expiration",
"Specification": "minutes"
}
4 changes: 2 additions & 2 deletions schemas/Credential-Profile.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@
"Schnorr"
]
},
"Revocation Algorithm": {
"Status Algorithm": {
"type": "string",
"description": "The format of the revocation algorithm.",
"description": "The format of the status algorithm.",
"$comment": "The value should be one of the enum list, that can be updated by running \"npm run schema\" inside the viewer folder",
"enum": [
"BBF18-cryptographic accumulator based on RSA",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"$schema": {
"$ref": "defs.json#/definitions/Schema"
},
"Revocation Algorithm": {
"Status Algorithm": {
"type": "string",
"description": "Unique identifier of the algorithm"
},
Expand All @@ -29,7 +29,7 @@
"$ref": "defs.json#/definitions/Filter"
},
{
"description": "Is the revocation algorithm recognized in regulatory frameworks of leading government bodies?"
"description": "Is the status algorithm recognized in regulatory frameworks of leading government bodies?"
}
]
},
Expand Down Expand Up @@ -84,6 +84,6 @@
]
}
},
"required": ["$schema", "Revocation Algorithm"],
"required": ["$schema", "Status Algorithm"],
"title": "RevocationAlgorithm"
}
4 changes: 2 additions & 2 deletions viewer/src/app/app.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import strucutre from '../structure.json';
export type Resource =
| 'Credential Format'
| 'Signing Algorithm'
| 'Revocation Algorithm'
| 'Status Algorithm'
| 'Key Management (Issuer)'
| 'Key Management (Holder)'
| 'Issuance Protocol'
Expand All @@ -19,7 +19,7 @@ export class AppService {
public extraValues: Resource[] = [
'Credential Format',
'Signing Algorithm',
'Revocation Algorithm',
'Status Algorithm',
'Key Management (Issuer)',
'Key Management (Holder)',
'Issuance Protocol',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ <h2>Profile configurator</h2>
[label]="'Signing Algorithm'"
[resource]="'Signing Algorithm'"
></app-auto-select>
<app-auto-select [resource]="'Revocation Algorithm'"></app-auto-select>
<app-auto-select [resource]="'Status Algorithm'"></app-auto-select>
<app-auto-select
[label]="'Key Management (Holder)'"
[resource]="'Key Management'"
Expand Down
2 changes: 1 addition & 1 deletion viewer/src/app/resources.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ export interface Resources {
'Credential Profile': Format;
'Credential Format': Format;
'Key Management': Format;
'Revocation Algorithm': Format;
'Status Algorithm': Format;
'Signing Algorithm': Format;
'Issuance Protocol': Format;
'Presentation Protocol': Format;
Expand Down

0 comments on commit d4a56a3

Please sign in to comment.