De ce avem nevoie de jetoane
Când dezvoltăm aplicații care comunică cu serverul, în general apar următorii pași:
De ce aveți nevoie de primul simbol
Există multe jetoane diferite. Convențional, criptografic, "cheie de acces", "jeton de sesiune", diferite scheme de obținere, utilizare și revocare. În același timp, una dintre ideile cheie este că, dacă cineva rău primește un jeton străin, cel mai neplăcut lucru care se întâmplă este accesul răpitorului la serviciul de la care furtul este furat. Parola, cea pe care una pentru toate serviciile, răpitorul nu o va primi. Și utilizatorul, dacă înțelege că, în plus față de el, altcineva are acces la serviciu, el se poate retrage. Apoi, obțineți unul nou cu login și parola.De ce am nevoie de un al doilea simbol
Schema de utilizare a jetoanelor este următoarea:
- Utilizatorul se conectează la aplicație, trecând numele de utilizator și parola pe server. Ele nu sunt stocate pe dispozitiv, iar serverul returnează două jetoane și durata lor de viață
- Aplicația stochează jetoanele și utilizează simbolul de acces pentru solicitările ulterioare
- Când durata de viață a tokenului de acces se încheie (aplicația o poate verifica singură sau poate aștepta până când serverul răspunde "oops, totul" în timpul utilizării ulterioare), aplicația folosește tokenul de reîmprospătare. pentru a actualiza atât jetoanele, cât și pentru a continua să utilizați jetonul de acces
De ce avem cu adevărat nevoie de un al doilea simbol
Totul sa dovedit a fi mai simplu și mai complicat decât credeam. Păstrați un ochi pe mâini:Cazul 1: Bob a recunoscut ambele jetoane ale lui Alice și nu a folosit reîmprospătarea
În acest caz, Bob va avea acces la serviciu pentru durata de viață a simbolului de acces. Odată ce aceasta expiră și aplicația pe care o folosește Alice, va folosi jetonul de refresh. serverul va returna o nouă pereche de jetoane, iar cele pe care Bob le-a învățat se va transforma într-un dovleac.
Cazul 2: Bob a recunoscut atât jetoanele lui Alice, cât și refresh-ul folosit
Astfel, schema de refresh + token restricționează timpul în care atacatorul poate accesa serviciul. Comparat cu un singur simbol, pe care un atacator îl poate folosi de câteva săptămâni și nimeni nu va ști despre el.