Threat Model for Decentralized Credentials

Editor’s Draft,

More details about this document
This version:
https://w3c.github.io/threat-model-decentralized-credentials/
Latest published version:
https://www.w3.org/TR/threat-model-decentralized-credentials/
Feedback:
public-security@w3.org with subject line “[threat-model-decentralized-credentials] … message topic …” (archives)
GitHub
Editors:
Simone Onofri (W3C)
Amir Sharif (Invited Expert)

Abstract

This document is the live "meta" Threat Model related to Decentralized Credentials. This outlines the many concerns related to these work areas and the initial principles for addressing user considerations for starting a discussion.

Status of this document

This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C standards and drafts index.

This Group Note Draft is endorsed by the Security Interest Group, but is not endorsed by W3C itself nor its Members.

To provide feedback regarding this specification, the preferred method is using GitHub. It is free to create a GitHub account to file issues. A list of issues filed as well as archives of previous mailing list public-security@w3.org (archive) discussions are publicly available.

This document was published by the Security Interest Group as a Group Note Draft using the Note track.

Group Draft Notes are not endorsed by W3C nor its Members.

This is a draft document and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to cite this document as other than a work in progress.

The W3C Patent Policy does not carry any licensing requirements or commitments on this document.

This document is governed by the 18 August 2025 W3C Process Document.

1. Introduction

1.1. Scope

The topic of Digital Identities is vast and intricate. Defining the initial scope of the model, which can be expanded when necessary, if we consider the ecosystem of Digital Identities, we find ourselves in the specific case of Decentralized Identities, those identities related to people and in particular those considered high-assurance (e.g., those issued by governments) and in the Layer 3: "Credentials" and precisely the Credential-Presentation Phase - as defined by the SSI Technology Stack from ToITP and DIF FAQ and as written in the Identity & the Web Report:

decentralized identity layers

On the one hand, the need arose within the W3C about the potential adoption of the Digital Credentials API - which would allow User-Agents to mediate communication between a website requiring the submission of evidence and the user’s Wallet - by the Federated Identity Working Group, on the other hand the lack of a more general model analyzing threats on the various levels related to Security, Privacy, and Human Rights was also identified.

As the Threat Model is a living document, it can be expanded to include other parts of the architecture and to a different level of detail, e.g., going deep into the cryptographic aspects of a specific profile or expanding it into the broader governance context to identify or mitigate threats.

It is also important to note that because it is a generic model, it is useful for understanding the properties and requirements needed for Security, Privacy, and Harm. Therefore, it is important to carry over these properties later into the specific architecture or implementation, which is defined precisely by architectural and technological choices (e.g., a profile).

It is intended to be a choral analysis. It stems from the need to understand a Threat Model to guide the development of Decentralized Identities in a secure/privacy-preserving way and avoid harm. It will start from the Digital Credentials API from a high-level perspective.

1.1.1. Terminology

For Identity, we can refer to the definition in ISO/IEC 24760-1:2019 "IT Security and Privacy - A framework for identity management".

Identity is "a set of attributes related to an entity". Where the entity is something "that has recognizably distinct existence", and that can be "logical or physical" such as "a person, an organization, a device, a group of such items, a human subscriber to a telecom service, a SIM card, a passport, a network interface card, a software application, a service or a website" and the attributes are "characteristics or properties" such as "an entity type, address information, telephone number, a privilege, a MAC address, a domain name".

We present credentials to claim a certain identity, whether in the physical or digital world. Just as we do not have a one-size-fits-all definition of identity, we also do not have a one-size-fits-all definition of credentials in IT, as they vary by context.

The credential definition from the W3C Verifiable Credentials Data Model (VCDM) states: a "set of one or more claims made by an issuer". Its framing is in the Decentralized Identity Model, and we can map the ISO’s attributes to VCDM claims.

For example, a person’s characteristics can include physical appearance, voice, beliefs, habits, and so on. It is important to distinguish identity from an identifier (e.g., a username).

It is usual to think of Digital Credentials as related to humans, particularly those issued by a government, also known as "Real-world Identities", even if we also have Non-Human Identities.

This leads to a broader consideration of the Threat Model, as it also includes Privacy as a right and Harm components.

1.3. Methodology

Since security is a _separation function between the asset and the threat_, the threat can have different impacts, such as security, privacy, or harm.

There are many approaches to Threat Modeling. The first approach we will use is based on Adam Shostack’s four-question frame:

For the central phases, it is possible to use (as in Risk Management) prompt lists or checklists of either threats, attacks, or controls, for example:

It is useful to frame the analysis with OSSTMM. OSSTMM controls allow analyses of what can go wrong (e.g., a control not present or a control problem).

Even if it is control-oriented and seems security-oriented, privacy is an operational control that can connect different pieces.

1.4. Channel and Vector

OSSTMM is very precise when used to analyze, so it defines a channel and a vector.

For an accurate analysis, we consider the COMSEC Data Networks Channel in the specific Internet/Web vector for this issue.

Although different digital credentials may use different channels or vectors (e.g., Wireless), they can still be analyzed similarly.

2. Analysis

2.1. What are we working on?

To create a good Threat Model, we can first consider the components of the Decentralized Identity architecture (which in this context is synonymous with Self-Sovereign Identity) as defined in W3C’s Verifiable Credentials Data Model and how they interact.

2.1.1. Architecture and Actors

Decentralized Identity Model

Interactions between actors occur normatively through software or other technological mediums. We will generically call such components Agents. One agent might be embedded in a Wallet (the component that contains the Holder’s credentials), and another might be a Browser (which, by definition, is a user agent).

2.1.2. Flows

We can consider three general flows, with four "ceremonies" where the various actors interact.

It is important to note that the flow stops here and can be safely continued in several ways. For example, the Holder receives credentials from an Issuer and uses them to identify themselves to a Verifier to buy a physical object or a ticket to an event. So the Verifier could become an Issuer to issue a certificate of authenticity for good or issue the ticket directly into the Holder’s Wallet.

2.1.3. Trust and Trust Boundaries

Trust is a key element in threat modeling. In fact, in OSSTMM, it is an element of privileged access to the asset, which, when trusted, lowers various operational controls.

At the Process level, trust relationships are:

At the Software level, Trust boundaries are documented in the Data Model in section 8.2:

However, from a threat modeling perspective, the Issuer, Verifier, and Holder are external entities, so there are trust boundaries between them. This makes sense and is also why we have the concept of (crypto) verification.

2.1.4. Data Model, Formats, Protocols

To model Decentralized Identities and Credentials, it is possible to use them as a high-level meta-model using Verifiable Credentials documentation (the list of technologies is partial; feel free to extend):

2.1.5. Assets

Assuming that the main asset is the credential and information derived during its life cycle, we can consider the protection of its three Privacy Properties, as they were defined by Ben Laurie, as the basis:

These properties were defined in a very specific case of Decentralized Identities. Those related to people, and, more specifically, those issued by governments, are based on the concept of Privacy for the protection of the Holder.

While we can, therefore, consider the Minimal and Unlinkable properties as elements of the Holder, the Verifiable property is of interest to all. Verifiable means that the Verifier can confirm who issued the credential, that it has not been tampered with, has not expired or been revoked, contains the required data, and may be associated with the Holder.

Therefore, the Threat Model wants to start with this specific use case: government-issued credentials for people, as it is one of the most complex.

Minimization and Unlinkability are generally interrelated (e.g., the less data I provide, the less they can be related). They must coexist with Verifiability (e.g., if I need to know that the credential has been revoked, I usually need to contact the Issuer, which maintains a list of revoked credentials, but this approach allows linking the credential).

2.1.5.1. Minimization Scale

To try to qualify Minimization, we can use a scale defined by the various cryptographic techniques developed for Digital Credentials:

2.1.5.2. Unlinkability Scale

To try to qualify Unlinkability, we can use the Nymity Slider, which classifies credentials by:

Therefore, it might be possible to consider "moving" the slider toward Unlinkable Anonymity, as per the properties.

2.2. What can go wrong?

After reasoning about assets, what we can protect and "who" becomes obvious.

2.2.1. Threat Actors

We have mentioned before that one of the key points is protecting the Holder. Still, by simplifying and referring to the well-known practice of "trust no one", we can easily get the list of actors involved:

Holder, Issuer, Verifier, and their agents/software components (e.g., Browser, Wallet, Websites). Which of these can be a Threat Actor? To simplify the question, each actor may be a Threat Actor to the others. So, all against all. Indeed, one is often also a Threat Actor to oneself (e.g., Alert fatigue).

In addition, although there are trust relationships between the various actors and their software (which hold across the various steps), such software can also be malicious. Specifically, it can track Holders, the type of credential they have, and how and where they use it through telemetry and statistical collection, and it can push users toward certain attitudes.

One must also consider a possible external threat actor, who could also be an observer or use active techniques, and who wants to track the three main actors or their agents, such as Marketers, Data brokers, Stalkers, Identity thieves, intelligence and law enforcement agencies (laws often constrain them), and OSINT investigators.

A further case is the combination of such actors, such as multiple _Verifiers_ in cahoots or a potential collaboration between Issuer and Verifier to track the Holder.

2.2.2. Evil user stories

Using the information we now have, we can create some generic Evil User Stories:

2.2.3. Finding the Threats

One effective, though inefficient, approach to threat modeling is to cycle through the lists of threats and attacks, controls, and objectives in a brainstorming session to assess how they may affect architecture components, actors, assets, and the overall flow. Using multiple frameworks may result in some elements being repeated.

2.2.3.1. Ben’s Privacy Properties (Objectives)
2.2.3.2. LINDDUN (Threats)
2.2.3.3. RFC 6973 (Threats)
2.2.3.4. RFC 3552 (Attacks)
2.2.3.5. STRIDE (Threats)
2.2.3.6. OSSTMM (Controls)
2.2.3.7. Responsible Innovation (Harms)

2.2.4. Other Threats and Harms

2.2.4.1. Government-issued credentials

Considering the specific case of government credentials issued to people, it is useful to think about some use cases:

2.2.4.2. Credentials used for authentication

Another scenario is the use of a credential for authentication:

Other threats to consider:

2.2.4.3. Societal Threats

Other threats to consider as specified in the Team report on Federated Identity Working Group Charter Formal Objection - Adding Digital Credentials API:

2.3. What are we going to do about it?

Countermeasures/Features: