You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/discussion-topics/README.md
+6-2Lines changed: 6 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,13 +3,17 @@
3
3
## Introduction
4
4
5
5
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
7
7
addressed and discussed up to end of 2025. This ARF roadmap project provides and
8
8
overview on these topics, including a planning when they are addressed.
9
9
10
10
## Focus of the ARF is to establishing high level requirements
11
11
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.
Copy file name to clipboardExpand all lines: docs/discussion-topics/f-digital-credential-api.md
+93-63Lines changed: 93 additions & 63 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
-
# F - Digital Credentials API (former known as browser API)
1
+
# F - Digital Credentials API
2
2
3
-
Version 0.5, updated 16 January 2025
3
+
Version 1.0, updated 27 January 2025
4
4
5
5
## 1. Introduction
6
6
@@ -96,8 +96,8 @@ fact.
96
96
This document is structured as follows:
97
97
98
98
- 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.
101
101
- Chapter 4 lists the additions and changes that will be made to the ARF
102
102
as a result of discussing this topic with Member States.
103
103
@@ -145,7 +145,7 @@ Web Platform Incubator Community Group (WICG) that builds upon Credential
145
145
Management Level 1 API W3C Working Draft \[Cred_Man\]. The goal of the Digital
146
146
Credentials API is to enable user agents (i.e., browsers) to mediate access to,
147
147
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](
149
149
https://github.com/WICG/digital-credentials/issues/167). The Digital Credentials
150
150
API can be used, for example, by a Relying Party website to request a PID or
151
151
(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.
211
211
As of January 2025, the same-device flow is
212
212
implemented using the following steps:
213
213
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.
216
216

217
217
- The Relying Party indicates to the browser which attributes they want to request by creating a `presentation request`.
218
218
- 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
226
226
227
227
The cross-device flow is implemented using the following steps:
228
228
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.
231
231

232
232
- The Relying Party indicates to the browser which attributes they want to request by
233
233
creating a `presentation request`.
@@ -249,131 +249,161 @@ establishing the secure tunnel. This advertisement is used as a proximity check,
249
249
250
250
## 3. Expectations from the Digital Credentials API
251
251
252
+
In this section expectations from the Digital Credentials API when used in the
253
+
context of ARF.
254
+
252
255
### 3.1 Expected functionality
253
256
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
255
258
enable a browser or OS to search for Wallet Units containing attestations
256
259
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.
258
268
259
-
2.**Secure Cross-Device Flows**: The Digital Credentials API should enable
269
+
3.**Secure Cross-Device Flows**: The Digital Credentials API should enable
260
270
APIs and protocols (e.g., CTAP2) that ensure secure cross-device engagement, mitigating
261
271
threats such as phishing and relay attacks.
262
272
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.
266
276
267
277
268
278
### 3.2 Responsibilities
269
279
The Digital Credentials API should operate as a secure transport layer, allowing all parties
270
280
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
272
282
Units. Particularly:
273
283
274
284
1.**Consent**: Wallet Units and Relying Parties should handle user consent for attribute requests
275
285
and presentations. The Digital Credentials API should not add an additional consent layer to the
276
286
workflow for presenting attributes stored in a Wallet Unit.
277
287
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
279
289
attribute payloads. The Digital Credentials API should provide sufficient information to Wallet Units about the
280
290
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
282
292
was not copied and replayed.
283
293
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.
289
300
290
301
4.**Wallet Unit sovereignty**. When the Digital Credentials API is used, the operating
291
302
system should not override or remove control from the Wallet Unit. The User's Wallet Unit
292
303
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
295
306
security functions.
296
307
297
308
### 3.3 Technological Neutrality and Cross-Platform Interoperability
298
309
299
310
The Digital Credentials API should preserve technological neutrality and avoid
300
311
any reliance on vendor-specific extensions. Particularly:
301
312
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.
306
318
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.
309
322
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.
313
327
314
328
315
329
### 3.4 Privacy preservation
316
330
317
331
The use of the Digital Credentials API should not compromise User privacy. In more details.
318
332
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.
321
335
However, this process should be designed and implemented in a way that it does not introduce
322
336
privacy threats, such as exposing attribute values to any other party, including the OS/browser
323
337
vendor, other applications on the same device, other users of the same device, or Relying Parties.
324
338
325
339
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
327
341
or unauthorized tracking mechanisms. Browsers should maintain strict privacy controls to ensure
328
342
that attestation-related data is neither exposed nor accessible to unauthorized third parties.
329
343
This principle also extends to any tunneling services used to facilitate cross-device flow.
330
344
331
345
3.**Protection against data theft**: Browsers and operating systems providing support for
332
346
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
334
349
335
350
### 3.5 Availability preservation
336
351
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
339
353
attacks against Wallet Units. Particularly:
340
354
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.
346
355
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
349
358
to send multiple invalid requests. Similarly, the use of the Digital Credentials API should not enable
350
359
attackers to block transactions by Relying Parties and Wallet Units
351
360
352
361
## 4 Additions and changes to the ARF
353
362
### 4.1 High-Level Requirements to be added to Annex 2
354
363
The following High-Level Requirements will be added to Annex 2 of the ARF v1.9:
355
364
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
361
366
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.
369
374
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)
373
382
374
383
Wallet Units and Relying Party Instances SHALL support the Digital Credentials API for remote
375
384
presentation flows.
376
385
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
+
377
407
### 4.2 High-Level Requirements to be changed
378
408
#### RPA_01
379
409
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."
390
420
| Reference | Description |
391
421
| --- | --- |
392
422
|[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 |
394
424
|[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/)|
395
425
|[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/)|
396
426
|[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