Fluxurile pe același dispozitiv și între dispozitive explicate
De fiecare dată când un portofel dovedește ceva unui site, cele două trebuie să se găsească. Uneori sunt deja pe același telefon, iar predarea înseamnă o singură atingere. Alteori site-ul e pe un birou și portofelul într-un buzunar, iar singura punte dintre ele este un cod pe ecran. Acestea sunt fluxurile pe același dispozitiv și între dispozitive, iar aproape orice întrebare practică despre credențialele digitale revine la care dintre cele două vă aflați.
Două forme ale aceluiași schimb
Cele două fluxuri au în comun tot ce contează pentru afacere: se pune aceeași întrebare, aceeași persoană aprobă și se întoarce aceeași dovadă. Nimic din ceea ce aveți voie să cereți sau din ceea ce vă puteți baza ulterior nu depinde de fluxul în care vă aflați.
Diferă traseul. Într-unul, portofelul este la o atingere distanță și dă răspunsul direct înapoi paginii care a întrebat. În celălalt, răspunsul călătorește de pe un al doilea dispozitiv către serverele dvs., iar pagina la care se uită persoana trebuie anunțată că a sosit.
Același dispozitiv
Un singur telefon. Site-ul și portofelul pe același ecran.
- Vizitatorul este pe site, în browserul telefonului, și cere să dovedească ceva.
- Site-ul deschide portofelul printr-un deep link sau o redirecționare.
- Portofelul arată cine cere și în ce scop, iar vizitatorul aprobă.
- Portofelul redirecționează înapoi către site cu răspunsul, în aceeași sesiune de browser în care a început totul.
Între dispozitive
Două dispozitive. Site-ul pe un computer, portofelul pe un telefon.
- Vizitatorul este pe site, într-un browser pe computer, și cere să dovedească ceva.
- Site-ul afișează un cod QR care conține cererea.
- Portofelul de pe telefon scanează codul, arată cine cere, iar vizitatorul aprobă.
- Portofelul trimite răspunsul către backendul site-ului, care anunță pagina de pe computer că schimbul s-a încheiat.
Când apare fiecare
Nu dvs. alegeți. Un client care deschide pagina de onboarding pe telefon în drum spre serviciu se află într-un flux pe același dispozitiv. Același client, terminând același formular la birou a doua zi dimineață, se află într-unul între dispozitive. Portofelul stă pe telefon, așa că fluxul urmează locul în care se desfășoară restul activității.
De aceea ambele protocoale din ecosistemul european le descriu pe amândouă. Prezentarea, în care cereți cuiva să dovedească ceva, numește explicit cele două fluxuri. Emiterea, în care îi oferiți cuiva un credențial, face aceeași distincție pentru oferta care o declanșează: aceasta poate apărea pe dispozitivul pe care se află portofelul sau poate sosi pe orice altă cale, până la o scrisoare cu un cod tipărit.
Un serviciu folosit doar în interiorul organizației dvs., pe computere gestionate, poate porni în mod rezonabil cu un singur flux. Orice serviciu la care un cetățean sau un client ajunge în propriii termeni are nevoie de ambele, iar un serviciu care funcționează doar într-un fel va fi raportat ca defect, nu ca nesuportat.
Ce îl costă pe utilizator fiecare
Fluxul pe același dispozitiv este calea mai scurtă. Nu există un al doilea ecran, nicio cameră, niciun moment în care privești de la un dispozitiv la altul, iar persoana ajunge înapoi de unde a pornit. Când eșuează, de obicei eșuează devreme și vizibil: nu este instalat niciun portofel sau linkul deschide ceva care nu este deloc un portofel.
Fluxul între dispozitive costă o scanare, dar oferă ceva real în schimb. Persoana rămâne pe ecranul mare unde completa un formular lung, citea un contract sau compara opțiuni, și doar dovada propriu-zisă trece pe telefon. Pentru orice necesită mai mult de un minut de tastat, acesta este locul mai bun.
Eșecurile lui sunt mai discrete și merită luate în calcul la proiectare. Un cod care a expirat cât cineva își căuta telefonul, un telefon fără semnal, o cameră care nu focalizează. Pagina care afișează codul ar trebui să spună cât timp este valabil, să ofere unul nou fără a pierde formularul de dedesubt și să nu lase niciodată persoana să se întrebe dacă s-a întâmplat ceva.
Unde diferă cu adevărat: securitatea
Într-un flux pe același dispozitiv, răspunsul se întoarce pe drumul pe care a mers persoana: o redirecționare, pe dispozitivul pe care rulează portofelul, în sesiunea de browser care a început schimbul. Cine copiază cererea de pe propriul ecran nu are cum să primească rezultatul, pentru că acesta este livrat dispozitivului care a aprobat.
Într-un flux între dispozitive, răspunsul nu se mai întoarce deloc prin browser. Pleacă de pe telefon către serverele dvs., departe de pagina care a afișat codul. Aici este breșa: dacă nu legați codul de sesiunea care l-a afișat, serviciul dvs. nu poate deosebi persoana din fața lui de cineva care a pus același cod în fața unei victime și a așteptat.
Acest atac are un nume și un remediu. Codul trebuie să aparțină unei singure sesiuni, iar un rezultat care sosește pentru orice altă sesiune trebuie refuzat. Înseamnă puțină gândire în faza de proiectare și o breșă cunoscută dacă este omisă, motiv pentru care IETF a scris o best current practice pentru fluxurile între dispozitive, în loc să lase problema în seama fiecărei implementări.
Al doilea risc este phishingul, iar acesta ține de codul însuși. Un pătrat alb-negru nu îi spune persoanei nimic despre cine se află la celălalt capăt, așa că un cod tipărit pe un autocolant și lipit peste unul autentic este un atac credibil. Apărarea constă în faptul că portofelul, nu codul, numește organizația care cere și enumeră exact ce dorește înainte de a partaja ceva. Emiterea adaugă încă o încuietoare: o ofertă poate cere un cod scurt livrat pe canalul care a identificat deja persoana, astfel încât o ofertă interceptată pe drum să nu poată fi revendicată de altcineva.
Ce înseamnă asta pentru dumneavoastră
Parte care se bazează
Planificați ambele de la început. Munca suplimentară este în front end și în legarea codului de o sesiune, nu într-o a doua integrare, iar adăugarea ulterioară a acestei legături este exact partea care iese prost.
Emitent
Decideți cum ajunge oferta dvs. la oameni. Pe ecran lângă o autentificare, într-un e-mail sau pe hârtie, fiecare cale ajunge într-un alt flux, iar cele care ies din canalul dvs. sunt cele care au nevoie de un cod separat pentru revendicare.
Deținător de portofel
Citiți ce vă arată portofelul, nu ce susține pagina sau codul. Portofelul este singurul loc care numește cine cere și ce vrea, și este ultimul moment în care puteți spune nu.
Termeni conecși
Întrebări frecvente
Cine decide ce flux este folosit?
Situația decide, nu o setare. Dacă persoana este deja pe dispozitivul pe care se află portofelul, site-ul predă direct. Dacă stă la un computer și are portofelul în buzunar, singura punte este un cod de scanat. Un serviciu deschis publicului le va întâlni pe amândouă chiar din prima săptămână.
Suportarea ambelor înseamnă să construim totul de două ori?
Nu. Cererea pe care o faceți și răspunsul pe care îl verificați sunt aceleași în ambele cazuri. Diferă doar modul în care cererea ajunge la portofel și modul în care răspunsul revine în pagina dvs.: o redirecționare urmată de browser, sau un cod pe ecran plus o modalitate prin care pagina află că schimbul s-a încheiat. În practică, este o cale suplimentară în front end, nu o a doua integrare.
Este sigur să folosim un cod QR pentru asta?
Este sigur atunci când schimbul din jurul lui este construit corect. Un cod, singur, nu îi spune persoanei nimic despre cine cere, așa că trebuie îndeplinite două condiții: portofelul trebuie să afișeze identitatea organizației care cere înainte de a partaja ceva, iar propriul serviciu trebuie să refuze un răspuns care sosește pentru altă sesiune decât cea care a afișat codul. Ambele sunt practică standard și ambele sunt descrise în specificații.
O verificare la ghișeu este un flux între dispozitive?
Nu, acesta este un al treilea caz. Fluxurile pe același dispozitiv și între dispozitive descriu amândouă un schimb prin internet. O verificare față în față, cu cele două dispozitive ținute unul lângă altul, folosește în schimb un standard de proximitate prin Bluetooth sau NFC. Pentru cel care ține telefonul pare similar, dar nimic nu trece prin site-ul dvs.
Surse
Această pagină are caracter informativ și nu constituie consultanță juridică. Pentru îndrumări oficiale, consultați direct specificațiile OpenID și IETF.