Skip to main content

EUDI Wallet Security Requirements v0.5

85
Total Requirements
19
Compliant
38
Partially Compliant
28
Non-Compliant
0
Not Applicable

Requirements

RefStatusControlsOwnerNotes
GEN-5-01SID-ORG-03operatorNo formal ISMS or risk management framework documented.
GEN-5-02SID-ORG-03operatorNo formal mapping to CIR risk register. Country-specific.
GEN-6.1-01SID-ORG-06operatorNo formal practice statement published.
GEN-6.2-01SID-ORG-07operatorNo formal T&C for EUDI wallet use.
GEN-6.2-02SID-ORG-07operatorNo privacy policy published.
GEN-6.3-01SID-ORG-01operatorNo formal information security policy.
GEN-7.1.1-01SID-ORG-02operatorNo formal organizational structure for wallet provider.
GEN-7.1.1-02SID-ORG-03operatorNo ISMS in place. ISO 27001 certification recommended.
GEN-7.3.2-02⚠️SID-CRYPTO-02, SID-CRYPTO-03sharedKeys classified as sensitive. No formal asset classification document.
GEN-7.5-02⚠️SID-CRYPTO-01, SID-CRYPTO-04, SID-CRYPTO-05platformUses ES256, EdDSA, AES-KW, PBKDF2-SHA256. Need explicit ECCG mapping.
GEN-7.5-03⚠️SID-CRYPTO-01sharedPKCS#11 HSM for issuer keys. JWT signing secret must also be HSM-protected in production.
GEN-7.9.1-01⚠️SID-AUDIT-01, SID-OPS-06sharedStructured logging present. No centralized SIEM or audit trail.
GEN-7.9.2-01SID-OPS-01operatorNo formal incident response plan.
GEN-7.9.6-01SID-OPS-07operatorNo fraud management process.
WPS-8.1.1-Sec-01⚠️SID-AUTH-01, SID-AUTH-02, SID-AUTH-03platformJWT-based session tokens issued. WebAuthn binds wallet to device. No formal WUA per EUDI spec.
WPS-8.1.1-Sec-02platformNo wallet instance integrity verification (no app attestation).
WPS-8.1.2-Fun-01⚠️SID-CRYPTO-02, SID-KEY-01platformWebAuthn PRF provides hardware-backed key derivation. No formal WSCA provisioning flow.
WUG-8.2.1-Fun-01SID-CRYPTO-03platformKey generation in browser via WebCrypto API. Keys wrapped with AES-KW.
WUG-8.2.1-Sec-02⚠️SID-CRYPTO-02, SID-CRYPTO-03, SID-KEY-01, SID-KEY-03platformFIDO sign extension (previewSign) planned as WSCD — signing keys in authenticator hardware, never in browser memory.
WUM-8.2.2-Fun-01⚠️SID-TRANS-02platformSingle credential issuance works. Limited batch methods.
WUM-8.2.2-Fun-04platformNo explicit re-issuance UI.
WUM-8.2.2-Fun-06platformNo attribute comparison on re-issuance.
WUM-8.2.2-Sec-07platformNo mechanism to prove same wallet unit for re-issuance.
WUM-8.2.2-Fun-09⚠️platformIndividual deletion available. No batch deletion of same-type credentials.
WUM-8.2.2-Fun-10SID-PRIV-01platformCredential deletion is local operation, no outbound calls. Privacy-preserving by design.
WUM-8.2.2-Sec-11⚠️SID-CRYPTO-03, SID-KEY-03platformFIDO sign extension keys reside in authenticator hardware — secure destruction guaranteed by device lifecycle.
WUP-8.2.3-Fun-01SID-TRUST-01, SID-TRUST-02, SID-TRUST-03platformV2 transport: evaluateVerifierTrust() calls go-trust AuthZEN PDP. RP cert chain validated.
WUP-8.2.3-Fun-02SID-TRUST-03, SID-HARD-01platformV2 transport: ErrCodeUntrustedVerifier returned, frontend displays error. Flow blocked.
WUP-8.2.3-Fun-03SID-TRUST-03platformV2 transport: hard-blocks untrusted RPs. No config bypass.
WUP-8.2.3-Fun-04SID-ACCESS-03platformPresentation consent screen shows RP identity and requested attributes.
WUP-8.2.3-Fun-09⚠️SID-AUTH-01, SID-KEY-01, SID-KEY-03platformFIDO previewSign requires user gesture per signing operation — satisfies per-transaction WSCA auth.
WUP-8.2.3-Fun-11SID-DATA-01, SID-DATA-02, SID-PRIV-01platformSD-JWT selective disclosure only reveals requested claims. DCQL query specifies exact attributes.
WUP-8.2.3-Sec-14SID-DATA-01, SID-DATA-02, SID-PRIV-02, SID-CRYPTO-04platformCryptographically enforced integrity. Issuer signature + KB-JWT nonce binding.
WUH-8.3.1-Sec-01⚠️SID-AUTH-01, SID-KEY-01platformApp auth unlocks keystore. PRF keys require authenticator. Need architectural separation.
WUH-8.3.1-Sec-02SID-AUTH-01, SID-AUTH-02, SID-ACCESS-02platformLogin required before any operations. JWT on all endpoints. Rate limiting.
WUH-8.3.1-Sec-06⚠️SID-AUTH-02platformJWT expiry (default 24h). No explicit idle timeout or user-configurable session timeout.
WUH-8.3.1-Sec-07⚠️SID-AUTH-01, SID-CRYPTO-02platformWebAuthn provides possession+inherence. Password login is single-factor. Must enforce WebAuthn for WSCA.
WUH-8.3.1-Sec-08⚠️SID-KEY-03platformFIDO sign extension planned as WSCD. Certified security keys (e.g. YubiKey 5 FIPS) can satisfy AVA_VAN.5.
WUH-8.3.1-Sec-10⚠️SID-KEY-03platformFIDO previewSign requires user gesture per operation — provides per-operation WSCA/WSCD auth.
WUH-8.3.2-Sec-01⚠️SID-HARD-02, SID-ACCESS-02, SID-TRANS-04platformInput validation in middleware. WebSocket limits. SSRF protection. Need comprehensive audit.
WUH-8.3.2-Sec-02⚠️SID-HARD-01, SID-HARD-02platformError handling present but some paths may leak implementation details.
WUH-8.3.2-Sec-03SID-TRUST-03, SID-HARD-02platformRP certificate validated before display. SVG sanitization.
WUH-8.3.3-Sec-01⚠️SID-TRUST-02, SID-TRUST-04platformTrust lists loaded at startup with refresh. No guaranteed max-24h freshness check.
WUH-8.3.3-Sec-02SID-TRUST-01, SID-TRUST-03platformAuthZEN trust evaluation checks provider before signature verification.
WUH-8.3.3-Sec-03SID-TRUST-01, SID-TRUST-02, SID-KEY-02platformX.509 chain validated against trust anchor from LoTE/TSL.
WUH-8.3.3-Sec-04SID-DATA-04platformCredential parsing and validation after signature verification. Expiry check included.
WUH-8.3.3-Sec-05⚠️SID-DATA-03platformStatus list support implemented. No explicit freshness check on status list.
WUH-8.3.3-Sec-06SID-DATA-03platformRevocation checking via OAuth Status List.
WIN-8.4.1-Sec-01⚠️SID-CRYPTO-03sharedEncrypted keystore. Sensitivity-based storage differentiation limited.
WIN-8.4.1-Sec-03⚠️SID-HARD-05, SID-HARD-01platformKeys wrapped. CSP headers. Need comprehensive data leakage review.
WIN-8.4.1-Sec-04SID-CRYPTO-05platformWebCrypto API and Go crypto/rand used consistently.
WIN-8.4.1-Sec-06⚠️SID-TRANS-01, SID-AUTH-04sharedTLS between frontend/backend. WebSocket JWT auth. No mutual TLS.
WIN-8.4.2-Sec-01SID-HARD-05platformReact SPA with standard browser security mechanisms.
WIN-8.4.2-Sec-02⚠️SID-HARD-05, SID-TRUST-03platformRP identity from certificate. SVG sanitization. No formal anti-phishing measures.
WIN-8.4.3-Sec-01platformNo platform version check.
WIN-8.4.3-Sec-02platformWeb app always latest (inherent). Mobile wrapper needs update enforcement.
WIN-8.4.3-Sec-03⚠️SID-OPS-04sharednpm/go modules dependency management. No automated vuln scanning in CI/CD.
WIN-8.4.3-Sec-05platformNo platform integrity validation.
WIN-8.4.3-Sec-06SID-HARD-05platformWeb: SRI + CSP. No runtime integrity checks. Mobile wrapper needs code signing.
WIN-8.4.3-Sec-07platformNo code obfuscation. Web wallet inherently source-visible.
WIN-8.4.3-Sec-08platformNo anti-debugging or anti-dynamic-analysis measures.
WIN-8.4.3-Sec-09SID-HARD-04platformRegistration flow starts immediately on first open.
WIN-8.4.3-Sec-10SID-HARD-04, SID-AUTH-01platformRegistration via WebAuthn requires backend. Admin token auth.
WIN-8.4.4-01⚠️SID-HARD-01, SID-HARD-02, SID-HARD-05, SID-AUTH-01, SID-CRYPTO-03platformMany ASVS controls present. No formal ASVS L3 assessment.
WIN-8.4.4-02⚠️SID-CRYPTO-01, SID-CRYPTO-04, SID-CRYPTO-05platformWebCrypto API algorithms. Need explicit ECCG mapping.
WSA-8.5-01⚠️SID-KEY-01, SID-KEY-03, SID-AUTH-04platformFIDO authenticator provides formal WSCA trust model — hardware-backed with attestation.
WSA-8.5-02⚠️SID-KEY-01, SID-KEY-03, SID-AUTH-01platformFIDO authenticator provides separate WSCA-level instance auth via user gesture.
WSA-8.5-06⚠️SID-AUTH-01, SID-CRYPTO-02, SID-KEY-03platformFIDO sign extension enforces hardware-backed auth per operation — eliminates password-only WSCA bypass.
WSA-8.5-07SID-KEY-01, SID-CRYPTO-03platformClient keystore: key generation, wrapping, signing, public key export.
WSA-8.5-08⚠️SID-KEY-01, SID-KEY-03, SID-AUTH-01platformFIDO previewSign requires user gesture per signing operation — provides per-operation auth.
CS-I.2-ICTSID-OPS-02operatorNo documented ICT system architecture for production deployment.
CS-I.2-Dev⚠️SID-OPS-08sharedGit repos, PR workflow, some testing. No formal SDLC documentation.
CS-I.2-Change⚠️SID-OPS-05sharedGit-based change tracking. No formal change management policy.
CS-I.2-Vuln⚠️SID-OPS-04sharedSBOM monitoring plan exists. No formal vuln management with SLAs.
CS-I.2-IncidentSID-OPS-01operatorNo formal incident management process.
CS-I.2-FraudSID-OPS-07operatorNo fraud detection or management process.
CS-I.3-WIplatformNo CC evaluation or FiTCEM PP compliance. Major effort.
CS-I.3-WSCA⚠️SID-KEY-01, SID-KEY-03platformFIDO authenticator with sign extension serves as WSCA. Certified security keys available; formal WSCA certification p...
CS-I.3-WUS⚠️SID-AUTH-01, SID-AUTH-02, SID-TRANS-02, SID-TRANS-03sharedBackend with security controls exists. No formal security evaluation.
CS-I.3-LoadSID-OPS-05operatorNo formal loading and update process documented.
CS-I.3-Prov⚠️SID-AUTH-01, SID-HARD-04sharedWallet registration/management APIs exist. Need formal lifecycle documentation.
CS-I.5-PIDoperatorPID provider must be certified separately. Usually national identity authority.
CS-I.6-Valid⚠️SID-TRUST-01, SID-TRUST-02sharedgo-trust provides trust evaluation. Must be operated by/for Member State.
CS-II.1-SurvoperatorNo surveillance evaluation process or evidence collection.
CS-III-PublicoperatorNo public security documentation. security.txt exists as starting point.
FindingSeverityStatusOwnerControls
EN-P-1 — Wallet instance integrity verification missing🟠 highopenplatform
EN-P-2 — WSCD/WSCA via FIDO sign extension🔴 criticalin progressplatformSID-KEY-01, SID-KEY-03
EN-P-3 — Credential re-issuance functionality missing🟡 mediumopenplatform
EN-P-4 — Anti-tampering and obfuscation controls missing🟢 lowopenplatform
EN-S-1 — Partial audit logging and SIEM🟡 mediumin progressplatformSID-AUDIT-01, SID-OPS-06
EN-S-2 — Partial asset classification and cryptographic documentation🟡 mediumin progressplatformSID-CRYPTO-01, SID-CRYPTO-02, SID-CRYPTO-03, SID-CRYPTO-04, SID-CRYPTO-05
EN-S-3 — Partial SDLC, change management and vulnerability scanning🟡 mediumin progressplatformSID-OPS-04, SID-OPS-05, SID-OPS-08
EN-S-4 — Partial wallet unit security and lifecycle🟡 mediumin progressplatformSID-AUTH-01, SID-AUTH-02, SID-TRANS-02, SID-TRANS-03, SID-HARD-04
EN-S-5 — Partial transport and instance protection🟡 mediumin progressplatformSID-TRANS-01, SID-AUTH-04, SID-CRYPTO-03
EN-P-5 — Partial user authentication and session controls🟠 highin progressplatformSID-AUTH-01, SID-AUTH-02, SID-AUTH-03, SID-KEY-01, SID-KEY-03, SID-CRYPTO-02
EN-P-6 — Partial key management and credential operations🟡 mediumin progressplatformSID-CRYPTO-02, SID-CRYPTO-03, SID-KEY-01, SID-KEY-03
EN-P-7 — Partial hardening and error handling🟡 mediumresolvedplatformSID-HARD-01, SID-HARD-02, SID-HARD-05, SID-ACCESS-02, SID-TRANS-04
EN-P-8 — Partial trust list freshness and status checking🟡 mediumin progressplatformSID-TRUST-02, SID-TRUST-04, SID-DATA-03