Praleisti ir pereiti prie pagrindinio turinio

Vieno įrenginio ir kelių įrenginių srautai paaiškinti

Kiekvieną kartą, kai piniginė kažką įrodo svetainei, jos turi viena kitą surasti. Kartais jos jau yra tame pačiame telefone, ir perdavimas tėra vienas palietimas. Kartais svetainė atidaryta ant stalo, o piniginė yra kišenėje, ir vienintelis tiltas tarp jų yra kodas ekrane. Tai vieno įrenginio ir kelių įrenginių srautai, ir beveik kiekvienas praktinis klausimas apie skaitmeninius kredencialus galiausiai grįžta prie to, kuriame iš jų esate.

Dvi tų pačių mainų formos

Abu srautai turi bendra viską, kas svarbu verslui: užduodamas tas pats klausimas, jį patvirtina tas pats žmogus ir grįžta tas pats įrodymas. Nei tai, ko jums leidžiama prašyti, nei tai, kuo galite pasikliauti vėliau, nepriklauso nuo to, kuriame sraute esate.

Skiriasi maršrutas. Viename piniginė yra per vieną palietimą ir grąžina atsakymą tiesiai paklaususiam puslapiui. Kitame atsakymas keliauja iš antro įrenginio į jūsų serverius, o puslapiui, į kurį žiūri žmogus, reikia pranešti, kad atsakymas atėjo.

Vieno įrenginio ir kelių įrenginių srautai greta, žingsnis po žingsnio.

Tame pačiame įrenginyje

Vienas telefonas. Svetainė ir piniginė tame pačiame ekrane.

  1. Lankytojas naršo svetainėje telefono naršyklėje ir nori kažką įrodyti.
  2. Svetainė atidaro piniginę gilia nuoroda (deep link) arba peradresavimu.
  3. Piniginė parodo, kas prašo ir kam, o lankytojas patvirtina.
  4. Piniginė grąžina lankytoją į svetainę su atsakymu, toje pačioje naršyklės sesijoje, kurioje viskas prasidėjo.

Skirtinguose įrenginiuose

Du įrenginiai. Svetainė kompiuteryje, piniginė telefone.

  1. Lankytojas naršo svetainėje kompiuterio naršyklėje ir nori kažką įrodyti.
  2. Svetainė parodo QR kodą, kuriame yra užklausa.
  3. Telefone esanti piniginė jį nuskaito, parodo, kas prašo, o lankytojas patvirtina.
  4. Piniginė siunčia atsakymą į svetainės serverinę sistemą, o ši praneša kompiuterio puslapiui, kad mainai baigti.

Kada įvyksta kiekvienas iš jų

Pasirinkti negalite. Klientas, kuris kelionėje į darbą telefonu atsidaro jūsų registracijos puslapį, yra vieno įrenginio sraute. Tas pats klientas, kitą rytą prie stalo užbaigiantis tą pačią formą, yra kelių įrenginių sraute. Piniginė gyvena telefone, todėl srautas seka ten, kur vyksta likęs darbas.

Todėl abu Europos ekosistemos protokolai aprašo abu srautus. Pateikimas, kai prašote kažko įrodyti, abu srautus įvardija aiškiai. Išdavimas, kai perduodate kam nors kredencialą, daro tą patį skirtumą pasiūlymui, nuo kurio viskas prasideda: jis gali pasirodyti įrenginyje, kuriame yra piniginė, arba atkeliauti bet kuriuo kitu keliu, net laišku su atspausdintu kodu.

Paslauga, naudojama tik jūsų organizacijos viduje valdomuose kompiuteriuose, pagrįstai gali startuoti su vienu srautu. Viskam, ką pilietis ar klientas pasiekia savo sąlygomis, reikia abiejų, o paslauga, veikianti tik vienu būdu, bus laikoma sugedusia, o ne nepalaikoma.

Ką kiekvienas iš jų kainuoja naudotojui

Vieno įrenginio srautas yra trumpesnis kelias. Nėra antro ekrano, kameros ar žvilgsnio nuo vieno įrenginio prie kito, o žmogus grįžta ten, kur pradėjo. Kai jis sutrinka, dažniausiai tai įvyksta anksti ir matomai: neįdiegta piniginė arba nuoroda atidaro kažką, kas visai nėra piniginė.

Kelių įrenginių srautas kainuoja vieną nuskaitymą, bet už tai duoda realią naudą. Žmogus lieka dideliame ekrane, kuriame pildė ilgą formą, skaitė sutartį ar lygino pasirinkimus, o į telefoną persikelia tik pats įrodymas. Viskam, kas reikalauja daugiau nei minutės rašymo, tai geresnė vieta.

Jo gedimai tylesni, ir juos verta numatyti. Kodas, kurio galiojimas baigėsi, kol žmogus ieškojo telefono, telefonas be ryšio, kamera, kuri nesufokusuoja. Kodą rodantis puslapis turėtų nurodyti, kiek laiko kodas galioja, pasiūlyti naują neprarandant po juo esančios formos ir niekada nepalikti žmogaus spėlioti, ar kas nors įvyko.

Kur jie iš tiesų skiriasi: saugumas

Vieno įrenginio sraute atsakymas grįžta tuo pačiu keliu, kuriuo nuėjo žmogus: peradresavimu, tame įrenginyje, kuriame veikia piniginė, į naršyklės sesiją, kuri pradėjo mainus. Kas nukopijuoja užklausą iš savo ekrano, negali gauti rezultato, nes jis pristatomas į įrenginį, kuriame buvo patvirtinta.

Kelių įrenginių sraute atsakymas per naršyklę visai negrįžta. Jis keliauja iš telefono į jūsų serverius, nematomai kodą parodžiusiam puslapiui. Čia ir yra spraga: jei nesusiesite kodo su jį parodžiusia sesija, jūsų paslauga negalės atskirti priešais ją esančio žmogaus nuo to, kas tą patį kodą pakišo aukai ir laukė.

Ši ataka turi pavadinimą ir priemonę. Kodas turi priklausyti vienai ir tik vienai sesijai, o rezultatas, gautas bet kuriai kitai sesijai, turi būti atmestas. Projektavimo metu tai tik kelios mąstymo eilutės, o praleidus tai tampa žinoma spraga. Būtent todėl IETF parašė geriausios dabartinės praktikos dokumentą kelių įrenginių srautams, užuot palikęs tai kiekvienam diegimui.

Antroji rizika yra sukčiavimas (phishing), ir ji susijusi su pačiu kodu. Juodai baltas kvadratas žmogui nieko nepasako apie tai, kas yra kitoje pusėje, todėl ant tikrojo užklijuotas lipdukas su kitu kodu yra reali ataka. Apsauga yra ta, kad prašančią organizaciją įvardija ir tiksliai išvardija, ko ji nori, piniginė, o ne kodas, ir tai daroma prieš bet kuo dalijantis. Išdavimas prideda dar vieną užraktą: pasiūlymui gali reikėti trumpo kodo, pristatyto kanalu, kuris jau nustatė žmogaus tapatybę, todėl pakeliui perimto pasiūlymo niekas kitas negali panaudoti.

Ką tai reiškia jums

Pasitikinti šalis

Planuokite abu srautus nuo pat pradžių. Papildomas darbas yra jūsų vartotojo sąsajoje ir kodo susiejime su sesija, o ne antroje integracijoje, o vėliau pridedamas susiejimas yra būtent ta dalis, kuri nepavyksta.

Išdavėjas

Nuspręskite, kaip jūsų pasiūlymas pasieks žmones. Ekrane šalia prisijungimo, el. laiške ar popieriuje: kiekvienas būdas patenka į kitą srautą, o tiems, kurie palieka jūsų kanalą, panaudoti reikia atskiro kodo.

Piniginės turėtojas

Skaitykite tai, ką rodo piniginė, o ne tai, ką teigia puslapis ar kodas. Piniginė yra vienintelė vieta, kuri įvardija, kas prašo ir ko nori, ir tai paskutinis taškas, kuriame galite atsisakyti.

Susiję terminai

Dažnai užduodami klausimai

Kas nusprendžia, kuris srautas naudojamas?

Nusprendžia situacija, o ne nustatymas. Jei žmogus jau naudoja įrenginį, kuriame yra jo piniginė, svetainė perduoda jį tiesiogiai. Jei jis sėdi prie kompiuterio, o piniginė yra kišenėje, vienintelis kelias tarp jų yra nuskaitomas kodas. Viešai prieinama paslauga su abiem atvejais susidurs jau per pirmąją savaitę.

Ar palaikyti abu srautus reiškia viską kurti du kartus?

Ne. Jūsų siunčiama užklausa ir tikrinamas atsakymas abiem atvejais yra tie patys. Skiriasi tik tai, kaip užklausa pasiekia piniginę ir kaip atsakymas grįžta į jūsų puslapį: peradresavimu, kurį vykdo naršyklė, arba kodu ekrane ir būdu, kuriuo tas puslapis sužino, kad mainai baigti. Praktiškai tai vienas papildomas kelias jūsų vartotojo sąsajoje, o ne antra integracija.

Ar QR kodą saugu tam naudoti?

Saugu, jei mainai aplink jį sukurti tinkamai. Pats kodas žmogui nieko nepasako apie tai, kas prašo, todėl turi būti įvykdytos dvi sąlygos: piniginė turi parodyti prašančios organizacijos tapatybę prieš bet kuo dalijantis, o jūsų paslauga turi atmesti atsakymą, gautą kitai sesijai nei ta, kuri parodė kodą. Abi yra įprasta praktika ir abi aprašytos specifikacijose.

Ar patikrinimas prie aptarnavimo langelio yra kelių įrenginių srautas?

Ne, tai trečias atvejis. Vieno įrenginio ir kelių įrenginių srautai abu apibūdina mainus internetu. Patikrinimas akis į akį, kai du įrenginiai laikomi vienas šalia kito, vietoj to naudoja artimojo ryšio standartą per Bluetooth arba NFC. Telefoną laikančiam žmogui tai atrodo panašiai, tačiau niekas nekeliauja per jūsų svetainę.

Šaltiniai

  1. OpenID for Verifiable Presentations, Same Device Flow ir Cross Device Flow
  2. OpenID for Verifiable Credential Issuance, Credential Offer tame pačiame ir skirtinguose įrenginiuose
  3. IETF Cross-Device Flows: Security Best Current Practice

Šis puslapis yra informacinio pobūdžio ir nėra teisinė konsultacija. Dėl autoritetingų gairių kreipkitės tiesiogiai į OpenID ir IETF specifikacijas.

Pasikalbėkime apie EUDI Wallet integraciją