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
2. WSCD jew maħżen taċ-ċwievet
Jagħti lura ċ-ċwievet pubbliċi, flimkien ma' evidenza tal-pjattaforma dwar fejn ġew iġġenerati
3. Fornitur tal-Wallet
Jiċċekkja l-integrità tal-applikazzjoni u l-evidenza taċ-ċwievet, imbagħad jiffirma WIAs u Key Attestations
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": "..." }
}
}| Qasam | X'tgħid lill-emittent |
|---|---|
| typ / x5c | Li din hija attestazzjoni tal-klijent, u l-katina taċ-ċertifikati tal-Fornitur tal-Wallet biex tiġi ċċekkjata mat-Trusted List |
| sub | It-tip ta' wallet, l-istess għal kull installazzjoni, għalhekk ma jistax jintuża biex jintraċċa utent |
| wallet_name / wallet_version | Il-Wallet Solution kif elenkata fit-Trusted List, u l-verżjoni tagħha |
| wallet_solution_certification_information | Min iċċertifika l-Wallet Solution; il-kontenut eżatt għad irid jiġi definit |
| exp | Skadenza teknika, inqas minn 24 siegħa wara l-kontroll tal-integrità |
| client_status | Entrata fl-Status List għal din il-Wallet Instance, u d-data sa meta l-Fornitur tal-Wallet iżommha aġġornata |
| cnf | Iċ-ċ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
}
}| Qasam | X'tgħid lill-emittent |
|---|---|
| typ / x5c | Li din hija attestazzjoni taċ-ċavetta, u l-katina taċ-ċertifikati tal-Fornitur tal-Wallet biex tiġi ċċekkjata mat-Trusted List |
| iat / exp | Meta 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_authentication | Kemm 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 |
| certification | Iċ-ċertifikazzjoni tal-WSCD jew tal-maħżen taċ-ċwievet, li minnha l-emittent jista' jgħid jekk huwiex WSCD |
| key_storage_status | Entrata 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 |
| nonce | Il-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
- 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
- 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.
| Terminu | X'tkopri | Min jirċeviha |
|---|---|---|
| WUA | Terminu ġenerali għaż-żewġ attestazzjonijiet hawn taħt | PID Providers u Attestation Providers, waqt il-ħruġ biss |
| WIA | Il-Wallet Instance, jiġifieri l-applikazzjoni | L-Authorization Server, fil-Pushed Authorization Request u fit-Token Request |
| KA | WSCD jew maħżen taċ-ċwievet u ċ-ċwievet li jżomm | Il-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
Din il-paġna hi informattiva u ma tikkostitwixxix parir legali. Għal gwida awtorevoli ikkonsulta direttament lill-Kummissjoni Ewropea u l-OpenID Foundation.