w3c-dc-api-security

star 0

Use when reviewing W3C Digital Credentials API security and privacy. Covers: credential protocol security, cross-device security, quishing, data integrity, XSS/CSRF protection, session security, privacy considerations, and accessibility.

sourcelabbg By sourcelabbg schedule Updated 3/7/2026

name: "w3c-dc-api-security" description: "Use when reviewing W3C Digital Credentials API security and privacy. Covers: credential protocol security, cross-device security, quishing, data integrity, XSS/CSRF protection, session security, privacy considerations, and accessibility." sections: - "Security Considerations" - "Credential Protocols" - "Cross-device Protocols" - "Quishing" - "Data Integrity" - "Authentication" - "Cross-Site Scripting (XSS) and Cross-Site Request Forgery (CSRF)" - "Session Security" - "Privacy Considerations" - "Design Considerations and Alternatives" - "Spectrum of Privacy" - "Exchange Protocol and Credential Format" - "Unnecessary Requests for Credentials" - "Fingerprinting and Data Leakage" - "User Permission and Transparency" - "Accessibility Considerations"

Security Considerations

      This section is a work in progress as this document evolves.
    
    
      The documents listed below outline initial security considerations
      for Digital Credentials, both broadly and for presentation on the
      web. Their contents will be integrated into this document gradually.
    
    
      - 
        
        TAG Security and Privacy Considerations Questionnaire (WIP)
      
      - 
        
        Threat Model for Decentralized Identities
      
    
  
  

Credential Protocols

      Explain that while the API provides security at the browser API
      level, that security for the underlying credential issuance or
      presentation protocol is a separate concern and that developers need
      to understand that layer of the stack to get a total picture of the
      protections that are in place during any given transaction.
    
  
  

Cross-device Protocols

      Explain that cross-device issuance or presentation uses a separate
      protocol that has its own security characteristics.
    
  
  

Quishing

      Explain that the API is designed to avoid the problem of quishing
      (phishing via QR Codes) and other QR Code and non-browser API-based
      attacks and to be aware of exposure of QR Codes during digital
      credential interactions.
    
  
  

Data Integrity

      Explain that the API does not provide data integrity on the digital
      credential requests or responses and that responsibility is up to the
      underlying protocol used for the request or response.
    
  
  

Authentication

      Explain that authentication (such as a PIN code to unlock) to a
      particular app, such as a digital wallet, that responds to an API
      request is crucial in high-risk use cases.
    
  
  

Cross-Site Scripting (XSS) and Cross-Site Request Forgery (CSRF)

      Explain what attacks are possible via XSS and CSRF, if any.
    
  
  

Session Security

      Explain that once a secure session is established at a website using
      credentials exchanged over this API, that the subsequent security is
      no longer a function of the credential used or this API and is up to
      the session management utilized on the website.

Privacy Considerations

      This section is a work in progress as this document evolves.
    
  
  
    The Digital Credentials API integrates into a complex ecosystem with
    multiple technology layers and various participants (including but not
    limited to Verifiers, Holders and Issuers), each of which have to
    consider different aspects of user privacy. This specification does not
    attempt to exhaustively list all considerations for the different
    participants. We would like to refer these parties to a variety of
    other resources that explore the digital credentials threat model more
    holistically:
  
  
    - [[[credential-considerations]]]
    
    - [[[threat-model-decentralized-identities]]]
    
    - 
      VC Data Model
      Privacy Considerations
    
    - ...
    
  
  
    Instead, these considerations focus on the Digital Credentials API
    itself, and describe how user agents can satisfy their user agent duties in an
    implementation of the API, taking into account the relevant privacy
    properties of the ecosystem it interacts with.
  
  
    The privacy considerations for digital credentials are not static. They
    will evolve over time as the ecosystem matures, and may be informed by
    the behavior of other actors in the ecosystem, improvements in other
    layers of the stack, new threats to user privacy, as well as changing
    societal norms and regulations.
  
  
    It is expected that the various groups involved in the design and
    implementation of the Digital Credentials API actively monitor the
    evolving privacy landscape and participate in the corresponding
    evolution of the API.
  
  

Design Considerations and Alternatives

      The Digital Credentials API is designed to mediate requests for
      digital credentials from websites, being agnostic to the credential
      format and the information contained in it, as well as the protocol
      used to exchange it (within the bounds on the protocol registry
      inclusion criteria). This and other key design choices are derived
      from the goal of providing a more secure and private credential
      exchange experience for users than the existing alternatives (e.g.,
      [[custom-schemes]]), that is still compatible with common exchange
      protocols for ease of adoption.
    
    
      The API provides the connection interface between [=verifiers=] and
      [=holders=], i.e. the means by which a [=digital credential/exchange
      protocol|credential exchange protocol=] is initiated and the user
      switches to the [=holder=] application to select a credential.
      Solutions that have been used for this purpose in the past include QR
      codes and custom URL schemes. As documented in
      [[[presenting-credentials-on-the-web]]] and [[[custom-schemes]]],
      those solutions have security, privacy, and accessibility concerns.
    
    
      With adoption of digital credential technology being driven by
      ecosystem demand and regulatory mandates, the Web platform offers an
      alternative to the aforementioned less-desirable technologies that is
      easy to use for developers, is compatible with existing credential
      exchange protocols and, most importantly, has better user privacy,
      security, and accessibility properties than these alternatives.
    
    
      The Digital Credentials API offers the user agent the ability to
      intermediate on behalf of the user (e.g. in the form of a
      [=credential chooser=]) to contextualize requests and prevent immediate exposure to
      holder applications. It also enforces certain minimum
      requirements on supported protocols, such as response encryption.
    
    
      The Digital Credentials API is not intended to inhibit the
      development of other standardized solutions that enhance user
      privacy. For example, an API could be standardized that more strictly
      enforces unlinkability for specific purposes such as age
      verification. Higher-level, designed-for-purpose APIs often enable
      purpose
      limitation, ease of explanation to the user, and privacy and
      security protections from user agents.
    
  
  

Spectrum of Privacy

      The Digital Credentials API serves a variety of use cases with
      different grades of data disclosure and individual users with
      different preferences depending on the context that they are in.
      Notably, the privacy properties of a credential exchange mediated by
      this API could be mandated by the legal and regulatory environment of
      an individual user.
    
    
      This means that some users may not want, or be allowed, to use the
      most privacy-preserving means of exchanging credential information.
      Nonetheless, user agents need to serve users with an experience that
      is private by default and protect them from harm.
    
    
      Because of this spectrum of preferences and use cases, it may be
      difficult for a user agent to discern whether a user means to expose
      their personal information or is being tricked into doing so. It is
      thus the user agent's responsibility to ensure that every user
      understands what data they are sharing and who will participate in
      the exchange of information, before the exchange begins.
    
  
  

Exchange Protocol and Credential Format

      Because the Digital Credentials API sits at the center of an exchange
      that involves multiple independent parties, the exchange protocol and
      credential format used by these parties for exchanging user
      information are crucial to the user agent's goal of protecting user
      privacy.
    
    
      The protocol registry for the Digital Credentials API is designed to
      ensure that, among other requirements, supported protocols facilitate
      specific privacy-enhancing capabilities. Protocols are required to
      undergo privacy review by the W3C's Privacy Working Group.
    

Exchange Protocol Considerations for User Privacy

Selective disclosure
      Selective
      disclosure is a fundamental technique for data minimization that
      allows holders to share the minimum required information that is
      requested by a verifier. Protocols are expected to facilitate
      selective disclosure by allowing the verifier to specify the exact
      claims needed.
    
Unlinkable presentations
      Unlinkability
      is a property that ensures that, if a user presents attributes from a
      credential multiple times, verifiers cannot link these separate
      presentations to conclude they concern the same user
      (verifier-verifier linkability), or that verifiers can not collude
      with issuers to report the exchange of a credential from a wallet to
      the issuer (verifier-issuer linkability). The former is a property
      that can be maintained by the wallet and issuer, e.g. through issuing
      fresh credentials for individual verifiers.
    
    
      While the latter is achievable, e.g. through Zero-Knowledge Proofs,
      design choices of the API such as encrypted responses make it
      impossible for a user agent to prove that verifier-issuer
      unlinkability was achieved in practice. Nonetheless, protocols are
      requested to limit linkability wherever possible.
    
    
      Note that unlinkability is exclusively a consideration for attributes
      that can not be linked to a specific user identity. Inherently
      linkable attributes such as names, driver's license numbers or phone
      numbers do not benefit from unlinkability.
    
    
      Through the Digital Credentials API, the user agent can help
      verifiers and wallets exchange unlinkable attributes, but, because of
      response encryption, it can not guarantee that no linkable
      information is passed between verifiers and wallets. It is
      recommended that user agents account for this fact in their user
      permission experience.
    
    
      Which level of unlinkability is the goal for this API? Can we
      normatively enforce support for any particular unlinkability features
      as part of the protocol registry inclusion criteria?
    
"Phone home" mechanisms
      "Phoning
      home" refers to scenarios where the presentation or verification
      of a digital credential causes a notification or communication back
      to the issuer or another central entity, which can lead to tracking
      and profiling of individuals.
    
    
      Similar to unlinkability, it is impossible for user agents to ensure
      that an issuer isn't actively involved in the creation or validation
      of credential presentations after a user has given permission to
      proceed with a credential request. From that point on, the wallet
      application owns this decision. While some wallets can be considered
      user agents, it is generally recommended that the user agent
      implementing the Digital Credentials API designs its permission
      experience to prevent exposure of a request to the
      wallet application before user confirmation (keeping in mind
      [considerations for integrating
      multiple cooperating user agents](https://w3c-fedid.github.io/digital-credentials/#multiple-user-agents)).
    
    
      Protocols are required to support mechanisms that allow issuers,
      wallets and verifiers avoid or reduce the dependence on "phone home"
      mechanisms.
    
    
      Which level of unlinkability is the goal for this API? To what degree
      can the spec mandate restrictions to issuer involvement?
    
Unlinkable revocation
      A common instance of issuer involvement in a credential exchange is
      for credential revocation checks. This is particularly challenging
      when presentations are intended to be verifier-issuer unlinkable.
      When credential presentations are made unlinkable through the use of
      e.g. Zero-Knowledge Proofs, the credential formats used in protocols
      are expected to support offline revocation methods such as Cryptographic
      Accumulators. It is further expected that protocol design and
      specification discourages the involvement of verifiers for the
      purpose of revocation where possible.
    
    
      We should discuss whether unlinkable revocation techniques are
      practical enough to be required normatively.
    
Support for user transparency, permission and consent
      User understanding and participation are non-negotiable properties of
      a credential exchange. The protocol is expected to help all involved
      parties enable user participation by providing the information vital
      for informed permission and/or consent.
    
Support for verifier authorization
      Verifier authorization refers to the process by which a verifier
      proves its identity and demonstrates that it is legitimately entitled
      to request specific attributes or credentials. This is particularly
      useful when exchanging sensitive data, such as from government-issued
      credentials. Verifier authorization can limit unnecessary or abusive
      credential requests, and ensure that a verifier's access is
      restricted to the specific credential attributes it registered for.
    
    
      Checking verifier authorization is usually handled by the wallet, but
      user agents could find the presence of such a scheme helpful in
      preventing API abuse and designing a well-informed user permission
      experience.
    
    
      Should we require protocols to include provisions that allow user
      agents to understand verifier authorization?
    
Encrypting credential responses
      To prevent exposure of user information to other parties in
      "transit", for example browser extensions loaded on verifier pages,
      and to encourage secure storage of user credentials by the verifier,
      protocols are required to support and mandate encrypted responses in
      a credential exchange.
    
    
  
  

Unnecessary Requests for Credentials

      Unnecessary credential requests are a key privacy risk to the entire
      digital credentials ecosystem. They could manifest in different ways
      and from different motivations:
    
    
      - Intentional abuse of the API to learn sensitive information about
      the user for the purpose of fraud, tracking, or sale of the data. For
      example, a site could trick a user into sharing their passport
      information through misleading content. This can lead to identity
      theft and financial loss, and severe loss of control and/or leakage
      of personal information.
      
      - Unnecessary requests for credentials without the explicit intent
      of user harm, such as an online store requesting users to sign up
      with their driver's license instead of generic email & passkey or
      federated credentials. This can lead to exclusion of
      users without the ability or willingness to share such a credential
      with the site, a deterioration of the prompt experience on the web,
      and an increase in the risk of accidental data leakage.
      
      - Requests for an excessive amount of information for valid
      purposes against the principle of data minimization. A common example
      is collection of a user's entire national identity document for age
      verification instead of relying on selective disclosure and age
      predicates.
      
    
    
      One challenge here is determining what constitutes "valid" purposes
      and which requests are therefore "unnecessary", and requires
      participation from all parties involved in the credential exchange.
    
    
      - Ideally, verifiers would self-regulate their requests for
      credentials. However, from a user agent's perspective, verifiers are
      potential attackers, and might not consider the user's best interest
      in their designs. The Digital Credentials API needs to operate from
      an assumption that all verifiers might have incentives that motivate
      unnecessary requests and abuse, and protect users accordingly.
      
      - User agents are responsible for protecting their users against
      dangerous content and permission requests on the Web and could
      intervene on their behalf, proactively rejecting requests or
      requiring pre-authorization. To support this, the Digital Credentials
      API requires credential requests to not be encrypted.
      
      - Issuers and lawmakers might decide to restrict use of
      (particularly government-issued) credentials to specific verifiers
      with purpose attestations. Wallets might be expected to enforce these
      restrictions by law or policy.
      
      - The ultimate decision of whether or not to share their personal
      information lies with the user, which is why the API requires the
      user agent to present a credential picker to the user, and other
      parties might additionally require confirmation or consent.
      
    
    
      For a more detailed exploration of how to determine and address
      unnecessary usage, it makes sense to consider goverment-issued
      credentials and other credentials separately, as they potentially
      differ in the sensitivity of their data and the potential harms from
      misuse as well as legal & regulatory considerations.
    
    
      A key component of risk mitigation and ensuring user control that
      applies to both types of credentials is the user agent's ability to
      inspect the credential request metadata and make decisions or UI
      presentation based on it. The DC API ensures this user agent access
      to the exchange through requirements placed on protocols to transmit
      requests unencrypted and to include relevant information.
    

Government-issued credentials

      Government-issued
      digital credentials include travel documents, personal licenses,
      proof of welfare and public health programs, vehicle registrations,
      and other documents issued by government authorities, or other
      documents representing this information. These documents are highly
      sensitive, as they can contain permanent, irrevocable, unique
      identifiers that are central to a person's individual identity and
      ability to interact with vital public services.
    
Risk of theft and leakage of government credentials
      The high value of these credentials to users and attackers means
      there is a significant risk of theft, and significant potential harm
      from leakage to unauthorized third parties. This includes the request
      of government identity for the purpose of tracking and
      personalization.
    
Risk of proliferation of requests for government credentials
      A major concern with increased availability of government credentials
      online is Jevon's Paradox,
      i.e., the chance of increasing demand for credentials through lower
      friction of access. This effect is not inherently caused by the
      Digital Credentials API, and rather the overall increasing adoption
      of digital credentials across the ecosystem, which, however, would
      likely see additional momentum from user agent implementation of the
      Digital Credentials API. As such, the effect needs to be considered
      by user agents implementing the API, as it might result in harmful
      outcomes for users:
    
    
      - Increased risk of information leakage, and ultimately a less
      trusted user experience on the Web. When a large number of services
      access and store government-issued credentials in an insecure manner
      (i.e. not maintaining encryption or failing to safeguard private
      keys), the chance of data leaks and unauthorized access increases as
      well. Even seemingly non-identifying information like birthdates and
      postal codes, when combined, can statistically identify an
      individual.
      
      - Prompt fatigue and a loss in trust by users when they are
      prompted by a large number of websites to share personal information.
      
      - Increased potential for surveillance and restrictions on
      pseudonymous use of online services. Collusion between verifiers and
      issuers, or other parties, might result in the ability to closely
      monitor a user's activity on the Web and take adverse action against
      this individual. Even when no action is taken, the possibility of
      surveillance alone can cause anxiety, discomfort, and behavioral
      changes such as inhibition and self-censorship, impacting individual
      autonomy and freedom of expression.
      
      - 
        Exclusion
        and discrimination of individuals who cannot, or do not want
        to, provide these credentials, prohibiting them from participation
        in services that would previously not require government-issued
        credentials, such as forums and social media platforms on the Web.
      
    
Mitigating unnecessary requests for government credentials
      The outlined risks of government-issued digital credentials present a
      challenge that cannot be solved by a single participant in the
      ecosystem, and will require a broader policy discussion within
      individual soverign nations about the risks and benefits of accessing
      online services through real-world credentials.
    
    
      It is desirable that a government that issues digital credentials
      also enact laws and regulations that clearly define how and for what
      purposes those credentials are able to be used. All parties involved
      in the exchange, whether they are legally obliged to do so or not,
      are advised to support any government verifier authentication
      schemes, if they exist. The support for (and integration of) verifier
      authentication schemes such as 
      EUDI access and registration certificates can mitigate risks of
      proliferation of unnecessary credential requests. However, the
      presence of such schemes is not guaranteed, which significantly
      increases the risk in a credential exchange.
    
    
      There are other practical steps that user agents implementing the
      Digital Credentials API can take to reduce risk, increase user
      understanding, and prevent certain types of harm:
    
    
      - Only support protocols that support selective disclosure and
      other techniques of data minimization can reduce the impact and
      likelihood of information leakage, and provide better context to
      users in permission and consent flows.
      
      - Support for protocols that allow unlinkability mechanisms such as
      Zero-Knowledge Proofs can prevent verifier-based surveillance and
      potential discrimination, by hiding the issuer.
      
      - Offering useful context and a clearly understandable permission
      flow will help users make better decisions on whether or not to
      accept a credential exchange, which can reduce the viability of
      exchange requests that are made without a concrete user need.
      
    
    
      It is further critical that user agents design a permission
      experience that accounts for the lack of these mitigations, e.g., the
      exchange of personal information from government credentials without
      any verifier authentication scheme. It is recommended that a higher
      level of friction and clear user messaging that highlights the
      involved risk be applied to these types of exchanges.
    

Non-government-issued credentials

      Non-government-issued credentials include all other digital
      documents, certificates, and attestations that are not
      government-issued and don't represent government-issued documents.
      This could include proof of employment, (non-government) education
      credentials, or cinema tickets. Notably, their exchange is likely
      less restricted by laws and regulations. While these documents often
      don't exhibit the same risks as government-issued credentials, they
      could also contain identifiable or sensitive information.
    
Risk of theft and leakage of non-government credentials
      The impact and viability of credential theft and leakage of
      non-government credentials is largely based on the content of each
      individual credential type. In general, it could lead to loss of
      control and exposure of sensitive private information, as well as
      impersonation and data theft, which can increase the likelihood of
      further attacks on the affected individual.
    
Risk of proliferation of requests for government credentials
      The flexibility and lack of regulation of non-government credentials
      carries potential for abuse for the purpose of cross-site tracking
      and linking identities through long-lived identifiers, such as email
      address or phone number. Verifiers participating in a tracking scheme
      based on digital credentials could create user incentives to accept
      sharing identifier credentials across many sites ("loyalty cards" for
      the Web), without fully understanding the implications on their
      privacy.
    
    
      Even users unwilling to share their information in such a scheme
      could be affected by prompt fatigue and potentially risk exclusion
      from using these services.
    
Mitigating unnecessary requests for non-government credentials
      For non-government-issued credentials, it is recommended that the
      user agent understand the requested credential format and its privacy
      attributes, and build a risk framework that informs the context that
      is shown to the user, as well as the amount of friction that is
      appropriate for each credential type. Protocols and formats involved
      in the exchange of these credentials are generally expected to
      support features such as selective disclosure and unlinkability, but
      these features might not always be appropriate or necessary in the
      exchange of information, especially when it concerns low-risk
      credentials such as cinema tickets.
    
    
      A user agent that recognizes the type of credential being requested
      is encouraged to customize its permission experience to best suit the
      requested credential and help users understand the consequences of
      sharing it.
    
    
      User agents can not be expected to understand all credential
      requests. A user agent that does not recognize the type of credential
      being requested is advised to significantly increase user friction in
      their permission experience, and very clearly communicate the risks
      of sharing unknown credentials with websites to the user. Note that
      this could require integration between different user agents to apply
      appropriate levels of friction and transparency. For example, a
      browser might delegate knowledge about credential requests to the
      operating system, which might require wallets to register known
      credential types and reject an exchange request for an unknown
      credential type.
    
    
      The need to provide users with appropriate transparency conflicts
      with the desire to enable the ecosystem to develop new credential
      formats without explicit user agent buy-in.
    
    
      Is it a good idea for the group to maintain a registry of request
      types and/or credential
      types?
    
Reporting abuse
      Consider an interoperable abuse reporting system for verifiers making
      unnecessary and abusive requests.
    
  
  

Fingerprinting and Data Leakage

Browser fingerprinting

      While the API ensures that no user data is ever shared without a
      permission prompt, the longevity and uniqueness of real world
      identifiers that are likely to be returned by the Digital Credentials
      API make it a potential target for trackers and fingerprinters.
    
    
      Even with selective disclosure, attackers might combine data from a
      digital credential (such as the user's age, or the credential issuer,
      timestamps, see [[[#leaking-incidental-data]]]) to reidentify and/or
      fingerprint users.
    
    
      This attack might be harder for third-party attackers (such as
      scripts embedded on the verifier's pages, but not actively
      collaborating with them for the purpose of tracking) because response
      encryption is mandatory and responses should be decrypted on the
      verifier's server. The verifier could thus ensure not to reflect back
      decrypted information back to client-side JavaScript. Not all
      verifiers will choose to do so, however.
    

Leaking incidental data with credential presentations

      To ensure authenticity of a credential, its presentation to verifiers
      generally includes more information than the content the verifier is
      requesting access to. It will usually contain at least a signature of
      the issuer and the wallet, and potentially other metadata.
    
    
      This additional information could be used to reidentify and
      fingerprint users, which is especially relevant when an otherwise
      unlinkable presentation is made.
    
    
      While the Digital Credentials API does not control the content of a
      credential response, user agents can help protect users against this
      type of tracking through clearly highlighting which information
      likely gets shared with the verifier beyond what was requested, and,
      more broadly, by identifying and blocking fingerprinting through the
      API by verifiers.
    

Revealing device properties through protocol availability

      The Digital Credentials API exposes information about which
      credential exchange protocols are supported by the user agent through
      {{DigitalCredential/userAgentAllowsProtocol()}}. It mitigates browser
      fingerprinting and revealing information about the user's device
      configuration through not customizing its response based on e.g.
      which wallet applications are installed on a user's device. The
      returned information is thus, at best, equivalent to a user agent
      version.
    

Avoiding leaks of credential availability

      The Digital Credentials API does not enable sites to learn whether a
      credential is available without first going through a user permission flow.
      Revealing the presence of credentials would be a risk to user
      privacy, as the presence of a credential is personal information that
      the user might not have preferred to share with the site, and, in
      combination with other signals, could be used to identify the user
      without their permission. It is also a risk to free expression, as
      websites might increasingly start to demand the presentation of these
      credentials from the user in order to access services, excluding
      individuals who are unwilling to present credentials.
    
  
  

User Permission and Transparency

      The Digital Credentials API enables the sharing of highly personal,
      sensitive, and at-risk user information with websites via
      credentials, potentially granting the ability to track users online
      and offline, through permanent, unique, irrevocable, cross-context
      identifiers. It also reveals parts of the user's browsing activity as
      well as their intent to identify to specific websites and/or wallets.
      One crucial responsibility of the user agent in a credential request
      is to gather permission from the user to proceed with the exchange of
      information.
    
    
      Important context details that are needed for a user to make an
      informed decision about proceeding with a credential exchange include
      the following:
    
    
      - The origin of the verifier that requests the credential.
      
      - The information that is being requested, or that would be
      revealed by responding to the request.
      
      - Whether presenting this information will enable tracking.
      
      - Which wallet(s) can be used to fulfill the credential request.
      
      - Which credential would be used to share the requested
      information.
      
    
    
      It is advised that user agents in their implementation ensure that
      the details listed are fully disclosed to the user before an exchange
      of any user-related information occurs.
    
    
      Should these be normative in the spec?
    
    
      Should the API be designed so the site can provide in-context
      explanations?
    

Handling multiple credential requests

      We need to describe concerns, tradeoffs and possible mitigations of
      handling multiple requests and responses for credential presentation.
    

Integrating Multiple User Agents

      Depending on the technical architecture of a user's system, it is
      likely that the definition of a "user agent" will include multiple
      cooperating layers of the software stack, such as a browser and the
      operating system. The greatest priority for these layers has to be a
      safe and well-informed user permission experience. As such,
      integration can be vital for user safety. Some layers may hold
      information that is inaccessible by other layers, such as the
      availability of a user's credentials. Overprompting or prompting
      without sufficient context could lead to (exploitable) confusion and
      prompt blindness.
    
    
      For this reason, user agents prompting for permission are encouraged
      to integrate software layers for an ideal user experience, if they
      consider it safe to do so. This could happen, for example, if a
      browser trusts the API contract of an operating system to show an
      appropriate prompt, and thus does not show a prompt itself.
    

Permission Prior to Wallet Selection

      As part of the user permission flow, the user agent needs to ensure
      that users retain the power to choose whether to forward a credential
      request to a wallet, and which wallet to select. This is due to the
      information disclosure that happens as part of the request, and the
      ability of wallets to retain or share this information at the time of
      the request.
    

Permission vs. Consent

      The permission mediated by the user agent is not consent, which has
      specific legal definitions which can vary among different legal and
      regulatory environments and may need to be collected by the digital
      wallet before sharing information with the verifier, or by the
      verifier itself before initiating the request. With frameworks and
      regulations for obtaining consent still being developed, this API
      aims to enable the exchange of the necessary information, which could
      include the following:
    
    
      - The privacy policy of the verifier receiving the credential.
      
      - The purpose for which the verifier is requesting the information.
      
      - What the information will be used for.
      
      - How the information will be shared or retained.
      
      - Any evaluations and attestations of this information, if
      available.
      
      - Assertions of the verifier's legimitacy and registration for
      accessing the credential, such as 
        EUDI access and registration certificates.
      
    
    
      As more of this information becomes available in a structured format,
      we expect user agents and this specification to leverage it to
      improve the user permission experience as well.

Accessibility Considerations

    This section is a work in progress as this document evolves.
Install via CLI
npx skills add https://github.com/sourcelabbg/eudi-knowledge --skill w3c-dc-api-security
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator