Topic E - Pseudonyms, including User authentication mechanism #375
Replies: 7 comments 14 replies
-
Some feedback on the WebAuthn-related text:
The short name for the Web Authentication API is "WebAuthn" (not "WebAuthN").
A passkey is a type of credential, not a general technology or protocol. Alternate text: "Passkeys are a widely used type of credential which are created and asserted using the [WebAuthn] API."
s/"random number"/"random value" (not always a number)
"If the signature verifies and the origin matches as expected..."
"WebAuthn defines an API for the creation and use of passkeys (among other WebAuthn credentials)."
"The client that the user uses to interact with the Relying Party's server and their authenticator."
Why is this collapsed together vs "WebAuthn API"?
This is specified in the FIDO Client to Authenticator Protocol, which is a sister specification to WebAuthn.
The user ID (aka user handle) is not provided by an RP during authentication ceremonies. It is provided in the assertion from the authenticator for the RP to link to a user account.
Display name is not used by most clients and is likely to be deprecated in a future version of the spec.
"...with the caller's origin..."
"... the User Name can be ..."
There is nothing stopping the authenticator from also validating the RP's origin. |
Beta Was this translation helpful? Give feedback.
-
The context of Question 4.4 is a user presenting a wallet generated pseudonym together with (parts of) the Personal identification data (PID) and/or attestations. Question 4.4 asks whether:
I think that the answer to Question 4.4 should be a firm ‘Yes’ as I consider this combination of security and unlinkability fundamental for public trust in the wallet. However, Topic E does not provide a technique meeting both properties, i.e. security and unlinkability. However, the Self Generated Verifiable Pseudonyms (SGVP) from the Proof of Association paper (https://eprint.iacr.org/2024/1444) do meet both properties. I therefore suggest that the SGVP concept is included in Topic E as a possible solution. My full reaction is in the attached PDF Kind regards, Eric Verheul |
Beta Was this translation helpful? Give feedback.
-
On behalf of the Spanish Data Protection Authority (AEPD) The attached document contains our comments on this topic. Thank you very much for this opportunity to contribute to this important discussion. |
Beta Was this translation helpful? Give feedback.
-
Discussion paper mentions WebAuthn as the only solution for the problem. If I'm not wrong SOIPv2 https://openid.github.io/SIOPv2/openid-connect-self-issued-v2-wg-draft.html could serve well for the same purpose. Would it be possible to mention in this document which alternatives to WebAuthn were evaluated and why these alternatives were refused? |
Beta Was this translation helpful? Give feedback.
-
Pseudonyms in eIDAS 2.0 and the ARF: A (lengthy) CritiqueHigh level summary: The proposal to use WebAuthn and Passkey credentials as pseudonyms is highly questionable. Treating a pseudonym as an authentication mechanism rather than an attribute transmitted during authentication needlessly increases complexity and is a flawed design choice. This critique considers both Regulation 910/2014 and Regulation 2021/1183 as well as CIR 2024/2979 (for a full analysis of the requirements as detailed in the legal text see here). It argues that several key questions remain unresolved, including the definition of a pseudonym itself:
Currently, both the legal text and the ARF can be interpreted to support treating pseudonyms either as attributes or as authentication mechanisms, which prevents clear answers to these questions. This text argues that pseudonyms should be treated as an attribute transmitted during authentication. Critical examinationThis section presents a critique of how pseudonyms are treated in CIR 2024/2979 and ARF Discussion Topic E, with particular attention to the proposal to use passkeys. CIR 2024/2979 Annex VCIR 2024/2979 Annex V designates WebAuthn Level 2 as the technical specification for pseudonym generation. This is a curious choice. WebAuthn defines four distinct values that play a role during user identification.
Importantly, This maps poorly to the legal texts as highlighted in the table below on how the legal texts treat pseudonyms:
Aligning this with WebAuthn is challenging:
WebAuthn is technically appealing for implementing device-managed, pairwise identifiers. However, it is poorly aligned with the concept of user-chosen and user-managed pseudonyms, as mandated by the legal framework. A more suitable approach is to replace name attributes in the (Q)EAA or PID with a clearly designated pseudonym attribute. This aligns with the flexibility provided in Annexes I, IV, and VII and directly supports user control and clarity in pseudonym representation. It also accommodates both pseudonyms that can be mapped to real identities under specific conditions (e.g., fraud, dispute resolution, AML compliance) and fully unobservable pseudonyms, where the PID or (Q)EAA provider cannot trace or link the pseudonym to an identity. ARF discussion topic EDiscussion Topic E aims to provide high-level details and clarify use cases where pseudonyms should be used. While the text accurately references applicable sections of the legal framework, it fails to address the significant misalignment introduced by CIR 2024/2979. Rather than critically examining this gap or proposing viable alternatives, Section 3 describes two use cases that both highlight and deepen the disconnect between the legal intent and technical implementation. Use case 1: Pseudonymous authenticationThe first use case, pseudonymous authentication, is described as:
This assumes that pseudonyms are user-chosen and that the RP does not need to identify the user. There are two main issues with this use case: Firstly, in WebAuthn, the user cannot select their pseudonym. The identifier is RP-assigned and not under user control, which directly conflicts with this model. Secondly, it is an unsuitable use case for the EUDIW, whose main benefit is that the relying party can be assured that the pseudonym is backed by a real person. Use case 2: Pseudonyms with additional attributesIn the second use case, pseudonyms are supplemented with person identification data:
This combination risks undermining the privacy benefit of pseudonyms. If the relying party receives identifying attributes alongside a pseudonym, it defeats the purpose of pseudonymity. Moreover, the user still has no meaningful control over the pseudonym. Perhaps the bigger issue is why a WebAuthn credential should be used jointly with a PID or (Q)EAA at all. If the pseudonym must be a public key, the user can rely on pairwise PoP keys for the verifier and use this key for authentication. If instead the pseudonym is treated as an attribute transmitted during authentication, the PID or (Q)EAA can simply include this attribute.
As described, this use case appears more relevant to WebAuthn flows where the verifier wants to identify the user during the user's first registration where the user registers for their account and their first passkey at the same time. Or where a user wants to add attested attributes (e.g., I am above 18) to an already registered account. Its benefit for the EUDIW remains unclear. PasskeysSection 4 introduces the use of passkeys for user authentication. This approach conflates several concepts and introduces significant design issues:
Proposing passkeys as the pseudonym mechnism also raises the question of what exactly the pseudonym is. Section 4.2.2. suggests using the public key as the pseudonym (or using a CA to link a pseudonym to a derived public key). This introduces several problems:
Large parts of the document lack critical self-review and offer limited analytical value, and will therefore be omitted from this critique. While the authors propose using extensions that may address some of the core issues outlined above (e.g., using However, the requirements listed in Section 6. are of particular interest. Several are problematic (many others are bothersome but not listed, e.g., R8-R10, R16):
Overall, proposing to use WebAuthn and passkey credentials to fulfill the legal requirement for pseudonyms represents a serious lapse in judgement. It is critical not to conflate authenticating with a pseudonym (thus strongly binding it to the authentication mechanism) with passing a pseudonym during authentication as an attribute. The discussion in this discussion thread suggests limited engagement with the above outlined concerns. Either my analysis is flawed, or the community has largely viewed pseudonyms through the lens of WebAuthn and CIR 2024/2979, rather than reevaluating whether this direction makes sense in light of the legal and functional requirements. Different interpretations of pseudonyms and final remarksThere exist fundamentally different interpretations and intended uses of pseudonyms, which are in conflict with each other. These tensions have not been surfaced and addressed. A pseudonym used as a user-chosen replacement for an attribute (e.g., a legal name) is conceptually and functionally different from a pairwise pseudonym used for credential management across multiple user-controlled devices (e.g., a passkey). Both are distinct again from derived identifiers in anonymous systems like Bitcoin, where pseudonyms based on public keys are viable and where transaction authorization cannot rely on known identities or attribute attestations. Treating these models as interchangeable leads to architectural confusion and misalignment with legal, usability, and privacy requirements. Arguably, the most appropriate interpretation of pseudonyms in the context of EUDIW is as a disclosable unique attribute value (passed during authentication) which replaces another attribute (e.g., name). This model aligns with Annexes I, IV, and VII, and requires no reliance on WebAuthn, passkeys, or other device-bound cryptographic mechanisms. All that is needed is a standard (Q)EAA / PID issuance and presentation. Pseudonyms as attribute values also enable re-identification when required (e.g., fraud or AML), and can be made entirely privacy preserving if necessary. With the above in mind, I suggest:
|
Beta Was this translation helpful? Give feedback.
-
There are the "uniqueness" pseudoynms that first appeared in Bryan Ford's proof-of-personhood parties papers. In brief, the users has some secret VRF key sk not known by anyone else, not even an issuing authority, and changing sk incurs some delay for certifying their new pk, so then the user identifies themself in a particular context c by producing an anonymized VRF signature ((c,id),aux,sigma). This anonymized VRF signature proves that id = VRF.Eval(c,sk) and that pk is authorized, aka a person, citizen, etc. and acts like a signature on aux. Among other things the VRF ensures that if id1 = id2 for two then both c1=c2 and sk1=sk2, aka id is an anonymous identity in the constext c. As always, an identity system should never under any circumstances prove the user's identity without having first verified the verfiier. I therefore suggest that c take the form vpk++.. and that vpk provide a certificate for the web_head_pk that actually makes the identity request. As an example, vpk could be the site's internal root public TLS key certified by some CA, with which the site certifies its web heads. The cool part here is: If vpk changes, then id changes. Also the user agent checked a certificate for the requester that was signed by vpk . This means the user cannot provide an id they use elsewhere for a different vpk. This is in stark contract to a credential that provides real PII, as those must always verify some certificate chain rooted at the governmental DPA for the user. A user changing sk would be too heavy a way to handle the right to be forgotten. I therefore suggest proving two identities id[old] and id[current] for the same user where c[j] takes the form vpk[j]++year[j]++week[j] for j in {old,current}. The site first proves its own identity and then asks for a pseudonym, with which it looks up the values (vpk[old],year[old],week[old]) as well as the user's last login ((c[old],id[old]),aux[old],sigma[old]). After verifying their last login, the user agent provides ((c[old],id[old]),(c[current],id[current]),aux[current],sigma) which links id[old] to id[current]. If the user wishes a new identity, then they first sign the right to be forgotten request to delete their old pseudonym, and then they wait a week and start using a new pseudonym, so the new account is unlinkable to the old account, even if the site retains their old data. Aside from Bryan Ford's paper, we have https://eprint.iacr.org/2023/002 which provides extremely efficent constructions, and a UC model. |
Beta Was this translation helpful? Give feedback.
-
In the attached PDF, we are proposing a potential definition for pseudonyms in this context, a set of requirements, and a first cryptographic sketch on how to achieve them in a fairly simple manner that integrates with existing components and standards. Please note that this is still a draft version, and we intend to incorporate changes based on feedback in this forum and other discussions before publishing it more formally and with a more stable archival service. Any comments are highly welcome :) |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Welcome to the discussion on the Topic E - Pseudonyms, including User authentication mechanism, part of the ongoing development of the Architecture and Reference Framework (ARF) for the European Digital Identity (EUDI) Wallet.
This discussion is based on the Topic E - Pseudonyms, including User authentication mechanism paper.
There are two main requirements in [eIDAS 2.0] about Pseudonyms in relation to Wallet Units:
In the referenced discussion paper we elaborate on the use cases inferred from the above legal requirements. The distinction between the two use cases follows from Article 14 2. [CIR.2014.2979]. Both use cases are described in an online non-proximity-based setting where the pseudonyms are presented towards services over the internet.
This discussion is part of a structured process to refine and complete the ARF, with your input playing a vital role. We invite you to share your comments, insights, and suggestions here. Your contributions will be carefully reviewed and considered as we work towards the next version of the ARF, which will incorporate updates on this topic.
Thank you for participating in this important conversation.
Beta Was this translation helpful? Give feedback.
All reactions