openid / openid/dchp

Requirements on storage of mDL data and mDL private keys

Open
#40 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
19
Forks
3
PR merge metrics
No merged PRs in 30d

Description

The scope of 18013-5 states:

The following items are out of scope for this document:
—  requirements on storage of mDL data and mDL private keys.

Clause E.13 mDL holder (user) authentication from 18013-5 mentions:

Unlocking and use of the mDL should only be permitted with appropriate mDL holder authentication proving 
that the user is the intended mDL holder.

Although necessary, this is insufficient, in particular when an mDL holder is accepting to collude with another individual to perform all the cryptographic computations the other individual needs to access to a verifier, without disclosing a set of attributes that allows to identify the holder and when unlikable mdocs are used (see #38).

In OID4VP, the nine sub-clauses from Clause 14 (Security Considerations) do not address this issue.

Preventing the export of mDL private keys to insecure environments is a necessary but insufficient condition. Providing an interface to a physical component (e.g. a TPM) that allows to perform digital signatures using mDL private keys stored in that physical component does not guarantee
that the calling application is a 'legitimate' application. The same applies, if mDL private keys are stored in the Cloud.

A verifier needs to be convinced that the mdoc app used by a holder is "secure".

It means that the mDL private keys must only be used by one or more mdoc apps that has been certified by a trusted laboratory (TTP)
which can testify that they support a specific set of features.

This can be done using mdoc app attestations.

Supporting a protocol between an mdoc app and a verifier to demonstrate that the mdoc app supports a specific set of features would not permit
to support the unlinkability property between verifiers. This is why such a protocol is not desirable.

Transitive trust should be used instead.

The mdoc app first demonstrates to the issuer that it supports a specific set of features, by using an mdoc app attestation.

Then after, the issuer includes into each mdoc the identity of the trusted laboratory that has delivered the mdoc app attestation according to some security profile, as well as the specific set of features supported by the mdoc, making sure that any information that might uniquely identify an mdoc app is not copied into the mdoc.

Can the current documents (i.e. 18013-5 and OID4VP) supports this requirement ? Unfortunately, the answer is no.

  1. Regardless of the format used for the mdoc, a field capable of containing the aforementioned information must be present.
    It has not yet been defined.
  2. Security profiles to certify mdoc apps are not yet available. Some security profiles are in preparation by ENISA
    (European Network Information Security Agency).

ENISA has a mandate from the EC to define and launch a security certification scheme for EUDI wallets, according to
the Implementing Act 2024/2981 which states:

  • providers of wallet solutions (…) should define and implement processes to evaluate the severity and potential impact of vulnerabilities.
  • the security requirements necessary to address the cybersecurity risks and threats listed in the risk register set out in Annex I of this Regulation,
    up to the required assurance level, and to meet, where applicable, the objectives defined in Article 51 of Regulation (EU) 2019/881.

Unfortunately, Regulation (EU) 2019/881 of 8 September 2015 only sets out minimum technical specifications and procedures for assurance levels for electronic identification. The risk register from Regulation (EU) 2024/2981 does NOT identify user collusion attacks since they do not occur in the context of electronic identification when the identification of the user is required.

A large majority of smart-phones supports a TEE (Trusted Execution Environment). Such TEEs can host one or more Trusted Applications (TAs).
These TAs are running under a TrustedOS and can be called by one or more Untrusted Applications (UAs) running under a RichOS.

When a TA receives a call from a UA, it shall be able to make sure that this UA is a 'legitimate' UA and that it has not latter been modified in case the mobile device has been jailbroken (iOS) or rooted (Android).

A clause identifying threats arising from collaborative attacks or collusion between users, as well as mitigation measures should be added into the draft.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing ISO/IEC 18013-5, especially Clause E.13, with the nine security sub-clauses in OID4VP Clause 14. Review issue #38 and the cited ENISA and Implementing Act 2024/2981 material to define the collusion threat and required mitigation. Done means a decided draft clause covering the threat and mitigation measures, including the role of mdoc app attestations.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, ios
Domain
authentication, cryptography, mobile-dev, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.