Aqbeż għall-kontenut ewlieni

WUA spjegata: kif wallet tipprova li hi ġenwina lil emittent

Wallet Unit Attestation, WUA, hija dak li EUDI Wallet turi lil PID Provider jew Attestation Provider waqt il-ħruġ biex tipprova li hija ġenwina. Mhijiex dokument wieħed iżda tnejn, it-tnejn iffirmati mill-Fornitur tal-Wallet: Wallet Instance Attestation (WIA) dwar l-applikazzjoni tal-wallet, u Key Attestation (KA) dwar il-ħażna sigura taċ-ċwievet li magħhom se jintrabat kredenzjal.

Il-problema li tissolva WUA

Emittent li jkun se jagħti PID jew kredenzjal ta' reġistrazzjoni ta' kumpanija lil wallet m'għandu l-ebda mod integrat biex jiddistingwi EUDI Wallet iċċertifikata minn applikazzjoni modifikata jew skript li jirrepeti fluss ta' awtorizzazzjoni. Lanqas ma jista' jara jekk iċ-ċavetta li magħha se jintrabat il-kredenzjal tinsabx f'hardware sigur iċċertifikat, jew f'ħażna ordinarja li minnha tista' tiġi kkupjata.

Il-WUA tagħlaq iż-żewġ lakuni. Il-Fornitur tal-Wallet jiggarantixxi għall-applikazzjoni permezz tal-WIA u għall-ħażna taċ-ċwievet permezz tal-Key Attestation. L-emittent jiċċekkja t-tnejn qabel il-ħruġ, u jibqa' jiċċekkja l-istatus ta' revoka tagħhom wara, sabiex ikun jista' jirrevoka dak li ħareġ jekk aktar tard jinstab li l-wallet jew il-ħażna taċ-ċwievet tagħha ġew kompromessi.

WUA tintuża biss waqt il-ħruġ. L-ARF tipprojbixxi lil Unità tal-Wallet milli tippreżenta WIA jew Key Attestation lil Relying Party, u b'hekk id-dettalji tal-wallet jinżammu barra minn kull preżentazzjoni.

L-atturi u min jafda lil min

Hemm ħames rwoli involuti, u erbgħa biss minnhom qatt jimmaniġġjaw WUA. Il-WSCD (Wallet Secure Cryptographic Device) jew maħżen taċ-ċwievet jiġġenera u jħares iċ-ċwievet, il-Fornitur tal-Wallet jiggarantixxi għall-applikazzjoni u ċ-ċwievet, u l-emittent joqgħod fuq dan minflok ma jivvaluta l-wallet huwa stess.

Fornitur tal-Wallet

Jiffirma WIAs u Key Attestations wara li jiċċekkja l-applikazzjoni u l-ħażna taċ-ċwievet, u jmexxi l-Status Lists għat-tnejn

Unità tal-Wallet

Tibgħat WIA u Key Attestation lill-emittent waqt il-ħruġ, u tuża kull waħda għal ħruġ wieħed biss

WSCD jew maħżen taċ-ċwievet

Jiġġenera u jżomm iċ-ċwievet privati li tiddeskrivi l-Key Attestation

PID Provider jew Attestation Provider

Jivverifika l-WIA u l-Key Attestation, jorbot il-kredenzjal ma' ċavetta attestata, u jibqa' jiċċekkja t-tnejn għar-revoka

Relying Party

Qatt ma tirċievi WUA. Minflok, tiċċekkja l-kredenzjal, ir-rabta tiegħu mal-apparat u l-istatus ta' revoka tiegħu

L-emittenti jafdaw WUA għax iċ-ċertifikat tal-iffirmar tal-Fornitur tal-Wallet, mibgħut fl-header x5c, jorbot f'katina ma' ankra ta' fiduċja fuq it-Trusted List għall-Fornituri tal-Wallet. Il-Wallet Solution innifisha hija ċċertifikata minn korp ta' valutazzjoni tal-konformità, u l-WIA ġġorr l-informazzjoni ta' dik iċ-ċertifikazzjoni.

Żewġ attestazzjonijiet taħt isem wieħed

TS3, l-ispeċifikazzjoni teknika tal-EUDI għall-WUAs, taqsam l-attestazzjoni fi tnejn għax l-applikazzjoni u l-ħażna taċ-ċwievet huma affarijiet differenti, iċċekkjati f'endpoints differenti u revokati għal raġunijiet differenti.

Wallet Instance Attestation (WIA)

Tattesta
L-integrità tal-Wallet Instance, jiġifieri l-applikazzjoni
Mibgħuta lil
L-Authorization Server, fil-Pushed Authorization Request u fit-Token Request
Validità
Inqas minn 24 siegħa
Revoka
client_status: l-istat ta' revoka ta' din il-Wallet Instance
Meħtieġa għal
Kull ħruġ, kemm jekk il-kredenzjal ikun marbut mal-apparat kif ukoll jekk le

Key Attestation (KA)

Tattesta
Li ċavetta waħda jew aktar ġew iġġenerati u jinżammu f'WSCD jew maħżen taċ-ċwievet speċifikat, u kemm dik il-ħażna tirreżisti l-attakki
Mibgħuta lil
Il-Credential Issuer, fil-proofs tal-Credential Request
Validità
Magħżula mill-Fornitur tal-Wallet, u tista' tkun itwal minn dik ta' WIA
Revoka
key_storage_status: l-istat ta' revoka tal-WSCD jew tal-maħżen taċ-ċwievet
Meħtieġa għal
Kredenzjali marbuta mal-apparat biss, inkluż kull PID

It-tnejn huma JWTs iffirmati mill-Fornitur tal-Wallet b'ES256, ES384 jew ES512. Key Attestation tintuża għal ħruġ wieħed biss, u WIA qatt ma terġa' tintuża ma' emittent differenti, għalhekk l-emittenti ma jistgħux jorbtu flimkien talbiet mill-istess wallet.

Kif Unità tal-Wallet tikseb il-WIAs u l-Key Attestations tagħha

TS3 tħalli dan il-pass f'idejn kull Fornitur tal-Wallet, peress li jseħħ ġewwa prodott wieħed tal-wallet. L-ARF titlob biss li l-Fornitur tal-Wallet jivverifika l-integrità tal-applikazzjoni qabel jiffirma WIA, u jivverifika li ċ-ċwievet privati attestati verament jinsabu fil-WSCD jew fil-maħżen taċ-ċwievet speċifikat qabel jiffirma Key Attestation. Fluss tipiku, li juża attestazzjonijiet tal-pjattaforma bħal Google Play Integrity jew Apple DeviceCheck bħala evidenza, jidher hekk.

1. Unità tal-Wallet

Titlob lill-WSCD jew lill-maħżen taċ-ċwievet jiġġenera pari ta' ċwievet

iġġenera ċ-ċwievet

2. WSCD jew maħżen taċ-ċwievet

Jagħti lura ċ-ċwievet pubbliċi, flimkien ma' evidenza tal-pjattaforma dwar fejn ġew iġġenerati

ċwievet pubbliċi + evidenza

3. Fornitur tal-Wallet

Jiċċekkja l-integrità tal-applikazzjoni u l-evidenza taċ-ċwievet, imbagħad jiffirma WIAs u Key Attestations

WIA + KA

4. Unità tal-Wallet

Iżżomm provvista ta' WIAs u Key Attestations friski, u tuża waħda ġdida għal kull ħruġ

X'fihom WIA u Key Attestation

L-ebda waħda minnhom ma ġġorr claim iss: l-emittent jidentifika l-Fornitur tal-Wallet miċ-ċertifikat tal-iffirmar fl-header x5c. L-eżempji hawn taħt huma dekodifikati, bl-header u l-payload separati b'tikka.

Wallet Instance Attestation

{
  "typ": "oauth-client-attestation+jwt",
  "alg": "ES256",
  "x5c": ["MIIC..."]
}.{
  "sub": "https://wallet.example.eu",
  "wallet_name": "ExampleWallet-mobile",
  "wallet_version": "2.3.0",
  "wallet_link": "https://wallet.example.eu/about",
  "wallet_solution_certification_information": "https://wallet.example.eu/certification/2-3-0",
  "exp": 1789329600,
  "client_status": {
    "status": {
      "status_list": { "idx": 48213, "uri": "https://wallet.example.eu/status/wia/17" }
    },
    "exp": 1791936000
  },
  "cnf": {
    "jwk": { "kty": "EC", "crv": "P-256", "x": "...", "y": "..." }
  }
}
QasamX'tgħid lill-emittent
typ / x5cLi din hija attestazzjoni tal-klijent, u l-katina taċ-ċertifikati tal-Fornitur tal-Wallet biex tiġi ċċekkjata mat-Trusted List
subIt-tip ta' wallet, l-istess għal kull installazzjoni, għalhekk ma jistax jintuża biex jintraċċa utent
wallet_name / wallet_versionIl-Wallet Solution kif elenkata fit-Trusted List, u l-verżjoni tagħha
wallet_solution_certification_informationMin iċċertifika l-Wallet Solution; il-kontenut eżatt għad irid jiġi definit
expSkadenza teknika, inqas minn 24 siegħa wara l-kontroll tal-integrità
client_statusEntrata fl-Status List għal din il-Wallet Instance, u d-data sa meta l-Fornitur tal-Wallet iżommha aġġornata
cnfIċ-ċavetta li tiffirma l-prova tal-pussess mibgħuta flimkien mal-WIA

Key Attestation

{
  "typ": "key-attestation+jwt",
  "alg": "ES256",
  "x5c": ["MIIC..."]
}.{
  "iat": 1789257600,
  "exp": 1791936000,
  "certification": "https://wallet.example.eu/certification/wscd/secure-element",
  "key_storage": ["iso_18045_high"],
  "user_authentication": ["iso_18045_high"],
  "attested_keys": [
    { "kty": "EC", "crv": "P-256", "x": "...", "y": "..." },
    { "kty": "EC", "crv": "P-256", "x": "...", "y": "..." }
  ],
  "key_storage_status": {
    "status": {
      "status_list": { "idx": 3, "uri": "https://wallet.example.eu/status/ka/1" }
    },
    "exp": 1794614400
  }
}
QasamX'tgħid lill-emittent
typ / x5cLi din hija attestazzjoni taċ-ċavetta, u l-katina taċ-ċertifikati tal-Fornitur tal-Wallet biex tiġi ċċekkjata mat-Trusted List
iat / expMeta nħarġet u meta tiskadi teknikament
attested_keysĊwievet pubbliċi li ċ-ċwievet privati tagħhom ġew iġġenerati u jinżammu mill-WSCD jew mill-maħżen taċ-ċwievet; diversi ċwievet jippermettu ħruġ f'lottijiet
key_storage / user_authenticationKemm il-ħażna, u l-awtentikazzjoni tal-utent li tiftaħ iċ-ċwievet, jirreżistu l-attakki; WSCD huwa dejjem iso_18045_high għat-tnejn
certificationIċ-ċertifikazzjoni tal-WSCD jew tal-maħżen taċ-ċwievet, li minnha l-emittent jista' jgħid jekk huwiex WSCD
key_storage_statusEntrata fl-Status List għall-WSCD jew għall-maħżen taċ-ċwievet, u d-data sa meta l-Fornitur tal-Wallet iżommha aġġornata
nonceIl-c_nonce tal-emittent, preżenti biss meta l-Key Attestation tintbagħat bħala prova attestation

Fejn tivvjaġġa WUA waqt il-ħruġ b'OpenID4VCI

Iż-żewġ attestazzjonijiet imorru f'postijiet differenti. Il-WIA tawtentika l-wallet bħala klijent OAuth fl-Authorization Server. Il-Key Attestation tmur għand il-Credential Issuer flimkien mat-talba għall-kredenzjal innifsu.

L-Authorization Server jirċievi l-WIA

OAuth-Client-AttestationOAuth-Client-Attestation-PoP
  • Il-firma tal-WIA torbot f'katina mat-Trusted List għall-Fornituri tal-Wallet
  • Il-WIA ma skaditx u l-Wallet Instance mhijiex revokata
  • Il-prova tal-pussess hija ffirmata biċ-ċavetta fil-claim cnf tal-WIA

Il-Credential Issuer jirċievi l-Key Attestation

proofs.jwt[].key_attestationproofs.attestation
  • Il-firma tal-Key Attestation torbot f'katina mat-Trusted List għall-Fornituri tal-Wallet
  • Il-c_nonce frisk tal-emittent jinsab fil-prova jwt jew fil-Key Attestation innifisha
  • Il-WSCD jew il-maħżen taċ-ċwievet mhuwiex revokat, u l-kredenzjal huwa marbut ma' waħda mill-attested_keys

Pushed Authorization Request bil-WIA

POST /par HTTP/1.1
Host: issuer.example.eu
Content-Type: application/x-www-form-urlencoded
OAuth-Client-Attestation: <WIA JWT>
OAuth-Client-Attestation-PoP: <PoP JWT signed with the WIA cnf key>

response_type=code
&client_id=https%3A%2F%2Fwallet.example.eu
&scope=company_registration
&code_challenge=<S256 challenge>
&code_challenge_method=S256
&redirect_uri=<wallet redirect URI>

Il-client_id jaqbel mas-sub tal-WIA. It-Token Request iġorr l-istess żewġ headers. Peress li l-Credential Issuer qatt ma jara l-WIA, l-Authorization Server irid jgħaddi l-client_status tagħha, pereżempju ġewwa l-access token.

Credential Request bil-Key Attestation

POST /credential HTTP/1.1
Host: issuer.example.eu
Authorization: DPoP <access_token>
DPoP: <DPoP proof JWT>
Content-Type: application/json

{
  "credential_configuration_id": "company_registration",
  "proofs": {
    "jwt": ["<proof JWT: Key Attestation in its key_attestation header, signed with attested_keys[0]>"]
  }
}

Bit-tip ta' prova attestation, it-talba ġġorr minflok "proofs": { "attestation": ["<Key Attestation JWT>"] }. F'dak il-każ ma hemm l-ebda prova tal-pussess: l-Unità tal-Wallet tgħaddi l-c_nonce tal-emittent lill-Fornitur tal-Wallet, li jpoġġih f'Key Attestation iffirmata mill-ġdid.

Iċ-ċiklu tal-ħajja tal-WUA

WUA hija apposta ta' żmien qasir u għal użu wieħed, iżda l-informazzjoni tar-revoka warajha tibqa' teżisti wara t-token innifsu. L-ewwel tliet stadji huma ta' rutina; ir-raba' jseħħ biss meta xi ħaġa tmur ħażin.

1. Ħruġ

Il-Fornitur tal-Wallet jiffirma WIAs u Key Attestations wara l-kontrolli tiegħu tal-integrità u tal-ħażna taċ-ċwievet

2. Użu wieħed

Kull waħda sservi għal ħruġ wieħed, għalhekk l-Unità tal-Wallet tibqa' tikseb oħrajn friski

3. Revoka f'katina

PID Provider jerġa' jiċċekkja l-istatus tal-WIA u tal-Key Attestation mill-inqas kull 24 siegħa, u jirrevoka l-PID jekk xi waħda minnhom tkun revokata

4. Revoka

Il-Fornitur tal-Wallet jirrevoka Wallet Instance, pereżempju wara telf jew serq, jew WSCD jew maħżen taċ-ċwievet b'vulnerabbiltà tas-sigurtà

Barra mill-ekosistema tal-EUDI Wallet, xi Fornituri tal-Wallet joħorġu attestazzjonijiet tal-wallet b'validità qasira ħafna u mingħajr ebda referenza ta' status, u joqogħdu fuq l-iskadenza minflok ir-revoka; OpenID4VCI tagħmel il-claim tal-istatus fakultattiv. TS3 ma tippermettix dan għall-EUDI Wallets. Il-WIA diġà ddum inqas minn 24 siegħa, iżda kemm il-WIA kif ukoll il-Key Attestation iridu jġorru referenza ta' status li l-Fornitur tal-Wallet iżomm għal mill-inqas 31 jum, għax il-PID Providers jużawha biex jirrevokaw PIDs żmien twil wara l-ħruġ.

WUA, WIA u KA: xi jfisser kull terminu

It-terminoloġija nbidlet hekk kif l-ispeċifikazzjonijiet immaturaw. TS3 sejħet lill-WIA Wallet App Attestation sal-verżjoni 1.1, u użat WUA għal dak li llum hija l-Key Attestation sal-verżjoni 1.5. Għalhekk artikli eqdem u abbozzi tal-ARF jużaw it-termini b'mod differenti.

TerminuX'tkopriMin jirċeviha
WUATerminu ġenerali għaż-żewġ attestazzjonijiet hawn taħtPID Providers u Attestation Providers, waqt il-ħruġ biss
WIAIl-Wallet Instance, jiġifieri l-applikazzjoniL-Authorization Server, fil-Pushed Authorization Request u fit-Token Request
KAWSCD jew maħżen taċ-ċwievet u ċ-ċwievet li jżommIl-Credential Issuer, fil-proofs tal-Credential Request

Termini relatati

Mistoqsijiet frekwenti

Il-WUA hi l-istess ħaġa bħal Wallet Instance Attestation?

Le. Mill-verżjoni 1.5 ta' TS3, WUA huwa t-terminu ġenerali għal żewġ attestazzjonijiet: il-Wallet Instance Attestation (WIA), li tkopri l-applikazzjoni, u l-Key Attestation (KA), li tkopri l-WSCD jew il-maħżen taċ-ċwievet li jżomm iċ-ċwievet. Dokumenti eqdem jużaw WUA għal dak li llum jissejjaħ Key Attestation, u għalhekk it-termini spiss jitħawdu.

Verifikatur qatt jara l-WUA?

Le. Ir-rekwiżiti tal-ARF WUA_07 u WUA_24 jippermettu lil Unità tal-Wallet tippreżenta WIA jew Key Attestation biss lil PID Provider jew Attestation Provider waqt il-ħruġ, qatt lil Relying Party. Minflok, il-verifikatur jiċċekkja l-kredenzjal: il-firma tiegħu, ir-rabta tiegħu mal-apparat u l-istatus ta' revoka tiegħu. Jekk il-wallet wara PID tiġi revokata, il-PID Provider jirrevoka l-PID fiċ-ċiklu ta' kontroll tiegħu ta' 24 siegħa, u l-verifikatur jara dan permezz tal-istatus tal-PID innifsu.

Kemm iddum valida WUA?

WIA tiskadi inqas minn 24 siegħa wara li l-Fornitur tal-Wallet ikun iċċekkja l-integrità tal-applikazzjoni. Key Attestation tista' tkun valida għal aktar żmien, skont id-diskrezzjoni tal-Fornitur tal-Wallet. Barra minn hekk, kull waħda ġġorr data ta' manutenzjoni tal-istatus, client_status.exp jew key_storage_status.exp, sa meta l-Fornitur tal-Wallet iżomm l-istatus ta' revoka aġġornat. L-Unità tal-Wallet trid dejjem tkun tista' tippreżenta waħda li d-data tagħha tkun mill-inqas 31 jum 'il quddiem, u PID irid jiskadi qabel dik id-data.

X'jiġri jekk unità tal-wallet tiġi kompromessa qabel ma tiskadi l-WUA tagħha?

Il-Fornitur tal-Wallet jirrevoka l-Wallet Instance fuq il-WIA Status List tiegħu, jew, f'każ ta' vulnerabbiltà f'tip ta' WSCD jew maħżen taċ-ċwievet, l-entrata fl-Status List għal dik il-ħażna. PID Provider jiċċekkja l-istatus tal-WIA u tal-Key Attestation wara kull PID li jkun ħareġ mill-inqas darba kull 24 siegħa, u jirrevoka l-PID meta xi waħda minnhom tkun revokata. Attestation Providers jistgħu jagħmlu l-istess. Mhijiex l-iskadenza tal-WUA nnifisha li tneħħi l-wallet, iżda r-revoka tal-kredenzjali li nħarġulha.

Key Attestation waħda tista' tkopri aktar minn ċavetta waħda?

Iva. attested_keys jista' jelenka diversi ċwievet pubbliċi mill-istess WSCD jew maħżen taċ-ċwievet, u hekk jaħdem il-ħruġ f'lottijiet: l-emittent jorbot kull kredenzjal fil-lott ma' ċavetta differenti, u firma waħda tal-Fornitur tal-Wallet tkopri lil kollha. Meta l-Key Attestation tintbagħat fi prova jwt, l-Unità tal-Wallet tiffirma dik il-prova bl-ewwel ċavetta fil-lista biss.

Sorsi

  1. TS3: Wallet Unit Attestations used in issuance of PID and Attestations
  2. EUDI Wallet Architecture and Reference Framework
  3. OpenID for Verifiable Credential Issuance 1.0
  4. OpenID4VC High Assurance Interoperability Profile 1.0
  5. OAuth 2.0 Attestation-Based Client Authentication
  6. Token Status List

Din il-paġna hi informattiva u ma tikkostitwixxix parir legali. Għal gwida awtorevoli ikkonsulta direttament lill-Kummissjoni Ewropea u l-OpenID Foundation.

Kellimna dwar l-integrazzjoni tal-EUDI Wallet