Skip to content

Commit ebc5847

Browse files
authored
Topic F paper updated (#377)
Topic F paper updated
1 parent 62a60b5 commit ebc5847

File tree

2 files changed

+99
-65
lines changed

2 files changed

+99
-65
lines changed

docs/discussion-topics/README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33
## Introduction
44

55
The Architecture and Reference Framework (ARF) is in development. To complete
6-
the ARF, the commission concluded 22 open items called topics need to be
6+
the ARF, the commission concluded 23 open items - called topics - need to be
77
addressed and discussed up to end of 2025. This ARF roadmap project provides and
88
overview on these topics, including a planning when they are addressed.
99

1010
## Focus of the ARF is to establishing high level requirements
1111

12-
The purpose of the ARF is to establish high level requirements for the EUDI Wallet ecosystem, to create uniform conditions for the implementation of the legislative act. The ARF also defines the technical specifications, standards and procedures that the Commission shall reference or develop for the purpose of implementing the eIDAS Regulation.
12+
The purpose of the ARF is to establish high level requirements for the EUDI
13+
Wallet ecosystem, to create uniform conditions for the implementation of
14+
the legislative act. The ARF also defines the technical specifications,
15+
standards and procedures that the Commission shall reference or develop
16+
for the purpose of implementing the eIDAS Regulation.
1317

1418
## Process
1519

docs/discussion-topics/f-digital-credential-api.md

Lines changed: 93 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# F - Digital Credentials API (former known as browser API)
1+
# F - Digital Credentials API
22

3-
Version 0.5, updated 16 January 2025
3+
Version 1.0, updated 27 January 2025
44

55
## 1. Introduction
66

@@ -96,8 +96,8 @@ fact.
9696
This document is structured as follows:
9797

9898
- Chapter 2 introduces the Digital Credentials API
99-
- Chapter 3 presents the functionality expected by the Digital Credentials API and discusses existing ARF
100-
requirements in the context of the Digital Credentials API.
99+
- Chapter 3 presents the functionality expected by the Digital Credentials API when used
100+
in the context of ARF.
101101
- Chapter 4 lists the additions and changes that will be made to the ARF
102102
as a result of discussing this topic with Member States.
103103

@@ -145,7 +145,7 @@ Web Platform Incubator Community Group (WICG) that builds upon Credential
145145
Management Level 1 API W3C Working Draft \[Cred_Man\]. The goal of the Digital
146146
Credentials API is to enable user agents (i.e., browsers) to mediate access to,
147147
and presentation of attestations. Currently, attestation issuance is not in the
148-
scope of this API, but future versions [may consider it](
148+
scope of this API, but future versions [will consider it](
149149
https://github.com/WICG/digital-credentials/issues/167). The Digital Credentials
150150
API can be used, for example, by a Relying Party website to request a PID or
151151
(Q)EEA stored in a Wallet Unit through the User's browser. The browser and the
@@ -211,8 +211,8 @@ informed choice about which attestation to proceed with.
211211
As of January 2025, the same-device flow is
212212
implemented using the following steps:
213213

214-
- The User visits the website of the Relying Party and indicates that they want to present some attributes from their Wallet Unit
215-
- The browser asks consent from the User to allow Digital Credentials API invocation from this particular website.
214+
- The User visits the website of the Relying Party and indicates that they want to present some attributes from installed Wallet Units
215+
- The browser asks permission from the User to allow Digital Credentials API invocation from this particular website.
216216
![Website authorization](img/same-auth.png)
217217
- The Relying Party indicates to the browser which attributes they want to request by creating a `presentation request`.
218218
- The operating system searches for attestations that satisfy the requested attributes.
@@ -226,8 +226,8 @@ attributes through the browser, provided that the Wallet Unit contains the attri
226226

227227
The cross-device flow is implemented using the following steps:
228228

229-
- The User visits the website of the Relying Party and indicates that they want to present some attributes from their Wallet Unit
230-
- The browser asks consent from the User to allow Digital Credentials API invocation from this particular website.
229+
- The User visits the website of the Relying Party and indicates that they want to present some attributes from installed Wallet Units
230+
- The browser asks permission from the User to allow Digital Credentials API invocation from this particular website.
231231
![Website authorization in cross device flow](img/cross-auth.png)
232232
- The Relying Party indicates to the browser which attributes they want to request by
233233
creating a `presentation request`.
@@ -249,131 +249,161 @@ establishing the secure tunnel. This advertisement is used as a proximity check,
249249

250250
## 3. Expectations from the Digital Credentials API
251251

252+
In this section expectations from the Digital Credentials API when used in the
253+
context of ARF.
254+
252255
### 3.1 Expected functionality
253256

254-
1. **Wallet Selection and Invocation**: The Digital Credentials API should
257+
1. **Wallet Selection and Invocation for attestation presentation**: The Digital Credentials API should
255258
enable a browser or OS to search for Wallet Units containing attestations
256259
that potentially match the request of the Relying Party, addressing user
257-
experience and scaling concerns caused by current Custom URI approaches.
260+
experience and scaling concerns caused custom URI-based or universal link
261+
(a.k.a. app link)-based approaches.​
262+
263+
2. **Wallet Selection and Invocation for attestation issuance**: The Digital Credentials API should
264+
enable a browser or OS to search for Wallet Units that can handle an attestation offer
265+
from a specific Attestation Provider, addressing user
266+
experience and scaling concerns caused custom URI-based or universal link
267+
(a.k.a. app link)-based approaches.​​
258268

259-
2. **Secure Cross-Device Flows**: The Digital Credentials API should enable
269+
3. **Secure Cross-Device Flows**: The Digital Credentials API should enable
260270
APIs and protocols (e.g., CTAP2) that ensure secure cross-device engagement, mitigating
261271
threats such as phishing and relay attacks.
262272

263-
3. **Protocol support**: The Digital Credentials API should support the protocols
264-
specified in the Implementing Acts as remote presentation protocols for attestations.
265-
273+
4. **Protocol support**: The Digital Credentials API should support the protocols
274+
specified in the Implementing Acts as remote presentation protocols for attestations
275+
and attestation issuance.
266276

267277

268278
### 3.2 Responsibilities
269279
The Digital Credentials API should operate as a secure transport layer, allowing all parties
270280
to fulfill their requirements as specified in Annex 2 of ARF. Browsers and operating systems
271-
facilitating remote transaction flows should not act on behalf of Relying Parties or Wallet
281+
facilitating remote transaction flows should not act on behalf of Attestation Providers,Relying Parties or Wallet
272282
Units. Particularly:
273283

274284
1. **Consent**: Wallet Units and Relying Parties should handle user consent for attribute requests
275285
and presentations. The Digital Credentials API should not add an additional consent layer to the
276286
workflow for presenting attributes stored in a Wallet Unit.
277287

278-
2. **Relying Party Authentication**: Wallets are responsible for authenticating verifiers before delivering
288+
2. **Relying Party Authentication**: Wallets Units are responsible for authenticating Relying Parties before delivering
279289
attribute payloads. The Digital Credentials API should provide sufficient information to Wallet Units about the
280290
presentation request origin and other necessary context information, allowing Wallet Units to
281-
identify and authenticate Relaying Parties, as well as to verify that the request from the Relying Party
291+
identify and authenticate Relying Parties, as well as to verify that the request from the Relying Party
282292
was not copied and replayed.
283293

284-
3. **Relaying Party Authorization**: Although browsers and operating systems implementing
285-
the Digital Credentials API should verify the web origin of Relying Parties, as well as that
286-
the presentation requests are transferred over TLS from the Relaying Party to the browser,
287-
they should not decide which verifiers are authorized to request attributes as this responsibility
288-
lies with national issuers and regulators.
294+
3. **Attestation Provider and Relying Party Authorization**: Although browsers and operating systems implementing
295+
the Digital Credentials API should verify the web origin of Attestation Providers and Relying Parties, as well as that
296+
the credential offers and presentation requests are transferred over TLS from the Attestation Provider or
297+
the Relying Party to the browser, they should not decide which Attestation Providers or Relying Parties are authorized to
298+
issue attestations or request attributes as this responsibility
299+
lies with national issuers and regulators, including Relying Parties registrars.
289300

290301
4. **Wallet Unit sovereignty**. When the Digital Credentials API is used, the operating
291302
system should not override or remove control from the Wallet Unit. The User's Wallet Unit
292303
should retain full authority over attestation management, including issuance, storage, and
293-
presentation. This ensures that the wallet remains the trusted component for safeguarding
294-
user data and interactions. The operating system and browser should not disrupt the wallet's
304+
presentation. This ensures that the Wallet Unit remains the trusted component for safeguarding
305+
user data and interactions. The operating system and browser should not disrupt the Wallet Unit's
295306
security functions.
296307

297308
### 3.3 Technological Neutrality and Cross-Platform Interoperability
298309

299310
The Digital Credentials API should preserve technological neutrality and avoid
300311
any reliance on vendor-specific extensions. Particularly:
301312

302-
1. **Attestation format neutrality**: The Digital Credentials API should be neutral and open with respect
303-
to the format of attestations to be used. For example, if a "Registry of Protocols for
304-
Requesting Digital Credentials" is utilized, adding or removing protocols to the registry should
305-
follow established criteria involving multiple stakeholders and should not be determined by a single entity.
313+
1. **Attestation format neutrality**: The Digital Credentials API should be neutral
314+
and open with respect to the format of attestations to be used. For example, if a
315+
"Registry of Protocols for Requesting Digital Credentials" is utilized, adding or
316+
removing protocols to the registry should follow established criteria and processes,
317+
and involve multiple stakeholders.
306318

307-
2. **Cross-platform interoperability**. The use of the Digital Credentials API should provide cross-platform
308-
interoperability, ensuring users are not locked into a specific vendor's browser or operating system.
319+
2. **Cross-platform interoperability**. The use of the Digital Credentials API
320+
should provide cross-platform interoperability, ensuring users are not locked into
321+
a specific vendor's browser or operating system.
309322

310-
3. **Wallet Solution neutrality**. Any approved EUDI Wallet Solutions should be able to use Digital Credentials API
311-
(e.g., without requiring additional vendor vetting process or imposing constraints on
312-
Wallet Providers other than those required by the EU).
323+
3. **Wallet Solution neutrality**. Any approved Wallet Solution should be able
324+
to use the Digital Credentials API. Usage of the API should not require additional
325+
vetting processes by vendors or impose constraints on Wallet Providers other than
326+
those required by the EU.
313327

314328

315329
### 3.4 Privacy preservation
316330

317331
The use of the Digital Credentials API should not compromise User privacy. In more details.
318332

319-
1. **Privacy preserving searching**: Wallet Units may have to "indicate" to the operating
320-
system the availability of attestations and attributes to facilitate their discovery and use.
333+
1. **Privacy preserving searching**: Wallet Units may have to "indicate" to the Digital Credentials
334+
API framework the availability of attestations, to facilitate their discovery and use.
321335
However, this process should be designed and implemented in a way that it does not introduce
322336
privacy threats, such as exposing attribute values to any other party, including the OS/browser
323337
vendor, other applications on the same device, other users of the same device, or Relying Parties.
324338

325339
2. **Privacy preserving attestation relay**: The use of a browser as an intermediary in the attestation
326-
exchange process should not create privacy risks, such as those arising from malicious add-ons
340+
issuance and presentation process should not create privacy risks, such as those arising from malicious add-ons
327341
or unauthorized tracking mechanisms. Browsers should maintain strict privacy controls to ensure
328342
that attestation-related data is neither exposed nor accessible to unauthorized third parties.
329343
This principle also extends to any tunneling services used to facilitate cross-device flow.
330344

331345
3. **Protection against data theft**: Browsers and operating systems providing support for
332346
the Digital Credentials API should minimize the threat of data theft and disclosure through
333-
eavesdropping the communication between the Wallet Unit and the RP's website
347+
eavesdropping the communication between the Wallet Unit and the Attestation Provider or
348+
Relaying Party's website
334349

335350
### 3.5 Availability preservation
336351

337-
The use of the Digital Credentials API should account for failures in the process
338-
of relaying request presentations and responses, and should not enable Denial-of-Service
352+
The use of the Digital Credentials API should not enable Denial-of-Service
339353
attacks against Wallet Units. Particularly:
340354

341-
1. **Service continuity** Within the API's architecture, the Wallet Unit and the Relying Party
342-
do not communicate directly; instead, attestation exchanges are relayed through intermediaries,
343-
such as the browser, operating system, or tunneling services. This indirect communication
344-
model introduces potential points of failure, and Wallet Solutions should account for these risks
345-
and take measures to maintain service continuity.
346355

347-
2. **DoS protection**. The use of the Digital Credentials API should not facilitate Relying
348-
Parties to perform Denial of Service attacks against Wallet Units, e.g., by enabling a Relying Party
356+
1. **DoS protection**. The use of the Digital Credentials API should not facilitate Attestation Provider or Relying
357+
Parties to perform Denial of Service attacks against Wallet Units, e.g., by enabling an Attestation Provider or Relying Party
349358
to send multiple invalid requests. Similarly, the use of the Digital Credentials API should not enable
350359
attackers to block transactions by Relying Parties and Wallet Units
351360

352361
## 4 Additions and changes to the ARF
353362
### 4.1 High-Level Requirements to be added to Annex 2
354363
The following High-Level Requirements will be added to Annex 2 of the ARF v1.9:
355364

356-
#### REQUIREMENT 1
357-
A Wallet Unit and a Relying Party receiving an attestation from the Wallet Unit
358-
SHOULD ensure that the attributes included in the presented attestation
359-
are accessible only to the Relying Party. For example, the presentation can
360-
be encrypted in such a way that only the Relying Party is able to decrypt it.
365+
#### 4.1.1 Requirements to be added (likely) to Topic 1
361366

362-
#### REQUIREMENT 2
363-
A Wallet Unit SHALL not disclose the values of the attributes of stored attestations
364-
to third parties, including the operating system, by any means other than the
365-
presentation protocols specified in the Implementing Acts. This restriction
366-
applies even if such disclosure enhances the usability of services provided
367-
by the operating system or browsers (for example, attestation selection in
368-
the context of the Credential API)
367+
##### REQUIREMENT 1
368+
A Wallet Unit and a Relying Party Instance receiving an attestation from the Wallet
369+
Unit SHALL ensure that the attributes included in the presented attestation are
370+
accessible only to the Relying Party, by encrypting the presentation response.
371+
This SHALL include preventing decryption of the presentation response or Man-in-the-Middle
372+
attacks by the browser, the operating system, or other components between the Wallet
373+
Unit and the Relying Party.
369374

370-
#### REQUIREMENT 3 (Conditional)
371-
Providing that the expectations set in chapter 3 are met, the following
372-
High-Level Requirement will be added to Annex 2 of the ARF v1.9:
375+
376+
##### Conditional Requirements
377+
Providing that the expectations set in chapter 3 with respect to
378+
attestation presentation are met, the following two
379+
High-Level Requirements will be added (likely) to Topic 1:
380+
381+
###### REQUIREMENT 2 (conditional)
373382

374383
Wallet Units and Relying Party Instances SHALL support the Digital Credentials API for remote
375384
presentation flows.
376385

386+
###### REQUIREMENT 3 (conditional)
387+
388+
A Wallet Unit SHALL disclose the presence of all stored attestations to the Digital
389+
Credential API framework, but SHALL NOT disclose the value of the attributes in
390+
these attestations. ​
391+
392+
​Note: This restriction applies even if such disclosure would enhance the services
393+
provided by the operating system to the Wallet Unit, for example, attestation selection
394+
in the context of the Digital Credential API.
395+
396+
#### 4.1.2 Requirements to be added (likely) to Topic 10/23
397+
398+
##### Conditional Requirements
399+
Providing that the expectations set in chapter 3 with respect to
400+
attestation issuance are met, the following
401+
High-Level Requirement will be added t(likely) to Topic 10/23:
402+
403+
###### REQUIREMENT 4 (conditional)
404+
Wallet Units and Relying Party Instances SHALL support the Digital Credentials API
405+
for attestation issuance.
406+
377407
### 4.2 High-Level Requirements to be changed
378408
#### RPA_01
379409
The following text will be appended to RPA\_01 "The Wallet Unit SHALL retain full authority over
@@ -390,7 +420,7 @@ browser and the operating system."
390420
| Reference | Description |
391421
| --- | --- |
392422
| [RiskRegister] | Annex 1 to the Commission Implementing Regulation laying down rules for the application of Regulation (EU) No 910/2014 of the European Parliament and of the Council as regards the certification of the European Digital Identity Wallets, European Commission, October 2024, draft |
393-
| [ARF_DevPlan] | Architecture and Reference Framework Development plan 2025, European Commission, v0.91, final draft |
423+
| [ARF_DevPlan] | Architecture and Reference Framework Development plan 2025, European Commission, v1.0, final |
394424
| [Cred_API] | Digital Credentials, Draft Community Group Report, 05 December 2024, available at [https://wicg.github.io/digital-credentials/](https://wicg.github.io/digital-credentials/)|
395425
| [Cred_Man] | Credential Management Level 1, 13 August 2024, available at [https://www.w3.org/TR/credential-management-1/](https://www.w3.org/TR/credential-management-1/)|
396426
| [Ctap] | Client to Authenticator Protocol (CTAP) Review Draft, March 21, 2023, available at [https://fidoalliance.org/specs/fido-v2.2-rd-20230321/fido-client-to-authenticator-protocol-v2.2-rd-20230321.html](https://fidoalliance.org/specs/fido-v2.2-rd-20230321/fido-client-to-authenticator-protocol-v2.2-rd-20230321.html)|

0 commit comments

Comments
 (0)