WARNING
This specification is outdatet and has been archived.

Introduction

This document defines a set of requirements based on new or existing technical specifications and aims to enable interoperability between issuers, wallets and verifiers of credentials in the swiyu Public Beta Trust Infrastructure. It is intended as an interoperability profile that can be used by implementers. As such it shows how the referenced specifications can, and sometimes have to be, implemented.

Target Audience/Usage

The target audience of the document are early adopters who want to use the swiyu Public Beta Trust Infrastructure to:

Scope

The following specifications are in scope of this “Swiss Profile”:

The following assumptions apply:

Out of Scope

The following items are currently out of scope but might be added in future versions:

Standard Requirements

The following table defines which specification must be supported by an actor (issuer, verifier, wallet) in order to comply with this profile.

Specification Issuer Wallet Verifier
OID4VP MAY MUST MUST
OID4VCI MUST MUST MAY
DID:TDW/DID:WEBVH MUST MUST MUST
SD-JWT VC profile MUST MUST MUST
Status List MUST MUST MUST
Trust Protocol MAY MUST MAY

Issuer & Verifier Identification

Issuers and verifiers use DID:TDW version 0.3 as identifiers.

DID:TDW/DID:WEBVH

Implementations of this profile:

DID Document Format

The following specification defines the requirements of the to DID Document.

Property Description
@context MUST contain https://www.w3.org/ns/did/v1 and https://w3id.org/security/jwk/v1
id MUST contain the DID of the DID document
verificationMethod MUST contain at least one public key from type PublicKeyJwk
alsoKnownAS MUST NOT be used
controller MUST NOT be used
service MUST NOT be used

NOTE

Issuer and Verifier have the possibility to add metatada to their DIDs with:

OpenID for Verifiable Credential Issuance

Implementations of this profile:

This chapter maps to OpenID4VCI draft 13

Credential Offer

Both sending credential offer same-device and cross-device are supported.

Credential Issuer Metadata

Credential Endpoint

Credential Request

JWT Proof Type

The JOSE header MUST contain following values:

The JWT body MUST contain following values:

Credential Response

Credential Error Response

If the wallet was sending a signed nonce on their proof, the following value MUST be added:

Token Endpoint

Token Request

Token Response

OpenID for Verifiable Presentations

This chapter maps to OpenID4VP draft 20

Authorization Request

Authorization Response

Credential Formats

SD-JWT VC

As credential format, SD-JWT VCs as defined in ietf-oauth-sd-jwt-vc MUST be supported.

In addition, this profile defines the following additional requirements.

Compact serialization MUST be supported as defined in ietf-oauth-selective-disclosure-jwt. The following JWT Claims MUST be supported content

Claim SD-JWT
vct MUST
iss MUST
iat SHOULD
exp SHOULD
status SHOULD
sub MAY
cnf MAY

Issuer Identification and Key Resolution to validate an Issued Credential

Cryptographic Device Binding between Wallet and Verifier

WARNING Issuers can issue low assurance VCs without device binding but they can become vulnerable to replay attacks.

OpenID4VC Credential Format Profile

This section specifies how SD-JWT VCs as defined in I-D.ietf-oauth-sd-jwt-vc are used in conjunction with the OpenID4VC specifications.

Format Identifier

The credential format identifier is vc+sd-jwt. This format identifier is used in issuance and presentation requests.

Credential Issuer Metadata

The following additional credential issuer metadata are defined for this credential format to be used in addition to those defined in Section 10.2 of OpenID4VCI.

Credential Status

An issuer MAY at their discretion add a status entry to their verifiable credential.

The credential status specification to use depends on the credential format as follow:

Credential format Specification
SD-JWT VC Token Status List
JSON format only

Trust Protocol

This chapter maps to Trust Protocol based on VCs V0.1

Crypto Suites

Issuers, wallets and verifiers MUST support P-256 (secp256r1) as a key type with ES256 JWT algorithm for signing and signature validation whenever this profiles requires to do so.

SHA256 MUST be supported by all the entities as the hash algorithm to generate and validate digests.

NOTE
When using this profile with other cryptosuites, it is recommended to be explicit about which entity is required to support which curve for signing and/or signature validation

Privacy Considerations

In the current profile, sections SD-JWT VC, credential status and device binding contain no protection against user correlation. To adress this batch-issuance will be implemented in a future release.

References