Version: 0.2.0-SNAPSHOT
Editor: Sander Dijkhuis (Cleverbase)
License: CC BY 4.0
Discussion: eu-digital-identity-wallet/eudi-doc-architecture-and-reference-framework#282
For a general introduction, see Hierarchical Deterministic Keys for the European Digital Identity Wallet. In the current document, the authors develop and share structured feedback on one part of the Wallet Toolbox: the Architecture and Reference Framework (ARF). The purpose of this feedback is to enable implementation of Hierarchical Deterministc Keys (HDKs).
By enabling Hierarchical Deterministic Keys, we aim for interoperability with a concrete and desirable cryptographic architecture in the context of person identification data and some (qualified) electronic attestations of attributes. We do not suggest to mandate the application of this cryptographic architecture for all digital identity documents. Instead, we aim to address two risks to the ARF and subsequently the implementing acts: the risk of accidentally disabling desirable technical solutions, and the risk of accidentally requiring undesirable technical solutions.
Note
This feedback document is a first version, and requires detailed exchanges to understand each other’s detailed points of view. This information is shared by participants of the Digital Credentials for Europe (DC4EU) Consortium, the EU Digital Identity Wallet Consortium (EWC), and the Potential Consortium. Views and opinions expressed are those of the authors only and do not necessarily reflect those of all consortium members.
The original requirement texts are copied from ARF 1.4.0.
This topic currently specifies a very specific technical solution. To be applicable to HDKs, the requirements need to be either at a higher level, or more open to different technical solutions. The feedback below proposes more open requirements in Topic 9.
Index | Proposed change | Rationale |
---|---|---|
WTE_* | Split WTE requirements into WTE requirements and Issuer Trust Evidence (ITE) requirements. Limit the WTE audience to authorised Person Identification Data (PID) Providers. Make requesting ITE optional to other providers. | Splitting requirements makes explicit the associated security and privacy conditions. HDK splits the WTE and ITE solutions as well. Splitting the requirements does not preclude solutions other than HDK from applying a single solution to create both WTE and ITE. |
WTE_01–09 | None. | N/A |
WTE_10 | Modify: “A WSCA SHALL generate a new key pair for a new WTE on request of the Wallet Provider via the Wallet Instance. The Add: “A Wallet Instance SHALL generate a new key pair for a new ITE on request of the Wallet Provider, with the same WSCA-enforced access controls (see WTE_02) as a valid WTE key. The Wallet Instance SHALL register the new key in an internal registry. The Wallet Instance SHALL register the ITE key as associated with the WTE in an internal registry.” |
This change is essential to the HDK architecture, where the WSCA is responsible only for device key pairs, and the other keys are managed as HDKs within the Wallet Instance. This change does not preclude solutions other than HDK from having the Wallet Instance delegate this functionality to a WSCA. |
WTE_10–11 | None. | N/A |
WTE_13 | Modify: “During PID or attestation issuance, a The |
In HDK, the Wallet Provider, PID Provider, or Attestation Provider may asynchronously, remotely generate batches of single-use keys. These keys are under sole control of the User by association to a WTE key. Other proposed modifications are required to remove non-essential implementation details and thereby to enable HDK as in WTE_10. |
WTE_14 | Modify: “During PID or attestation issuance, a |
In HDK, a single proof of possession to the PID or (Q)EAA Provider is sufficient to enable multiple unique one-time-use keys. |
WTE_15–16 | None. | N/A |
WTE_17 | Modify: “During PID |
With HDK, there is no need for roles other than PID Providers to learn wallet metadata. Therefore, disclosing an ITE is no requirement for issuance. Users may choose to disclose ITE data as part of releasing attributes, which is sufficiently covered by other requirements. |
WTE_18 | Modify: “During PID or attestation issuance, a |
In HDK, typically only one public key is provided for issuance. In such cases, a proof of association is not applicable. |
WTE_19 | Modify: “During PID or attestation issuance, the PID Provider or Attestation Provider SHALL verify that: • The •The In addition, the PID Provider or Attestation Provider SHOULD verify that: • The WSCA |
In HDK, the PID Provider or Attestation Provider can apply HDK instead of a proof of association to verify equivalent WSCA protection between two keys. |
WTE_20 | Modify: “During PID |
In HDK, only PID Providers require WTE, and Attestation Providers do not require WTE or ITE. This modification does not preclude other technical solutions from still providing ITE to Attestation Providers over the same interface. |
WTE_21–22 | None. | N/A |
WTE_23 | Modify: “The common OpenID4VCI protocol defined in requirement ISSU_01 SHALL enable a Wallet Instance to transfer a WTE to a PID Provider |
See WTE_20. |
WTE_24 | Modify: “A Wallet Instance SHALL release a WTE only to a PID Provider Add: “A Wallet Instance SHALL release a ITE only to an Attestation Provider, and not to a Relying Party or any other party.” |
See WTE_20. |
WTE_25–26 | None. | N/A |
WTE_27 | Add: “The common OpenID4VCI protocol SHALL enable a PID Provider or Attestation Provider to indicate in the Token Response: • in the case of delegated key generation, data enabling the Wallet Instance to prove possession of the private key associated with the new PID or attestation key” |
This is essential to enable application of HDK to batch issuance. |
WTE_28–30 | None. | N/A |
WTE_31 | A |
See WTE_10. |
WTE_32 | None. | N/A |
WTE_33 | Modify: “A |
In HDK, the Wallet Instance maintains the associations. |
WTE_34 | Drop. | This is an implementation detail only to some technical solutions. |
WTE_35 | A |
See WTE_10. |
WTE_36 | Modify: “A |
In HDK, the Wallet Instance manages such associations. This does not preclude solutions other than HDK to delegate this to the WSCA. |
With HDK, document readers do not need the proof of association, as they may instead rely on attributes attested by issuers. Since the issuers apply HDK, they can for example ensure binding to PID.
To enable HDK, the following changes to Topic 18 are needed.
Index | Proposed change | Rationale |
---|---|---|
ACP_01–03 | None. | N/A |
ACP_04 | Drop or modify: “If (as a result of ACP_03) a Wallet Instance determines it must release multiple attestations to a Relying Party in a combined presentation of attributes, it |
Proof of association is not necessary in the case of attribute-based binding. It could introduce disproportional complications. For example, depending on the proof mechanism, this could produce a potentially non-repudiable proof that a certain combination of documents was revealed. Also, by disclosing public keys related to blinding scalars, it will be more difficult for solutions to guarantee unconditional privacy. |
ACP_05 | Drop. | It is up to the User whether to authorise sharing a proof of association with another party. |
ACP_06–08 | None. | N/A |
ACP_09 | Drop. | With HDK, proof of association is not essential. |