într-un post anterior, Zix | AppRiver a discutat despre modul în care cei responsabili pentru atacul SolarWinds au abuzat de jetoane și certificate ca parte a lanțului lor de infecție. Actorii malițioși au continuat să abuzeze de aceleași tipuri de active în campanii suplimentare care vizează alte entități. Acest lucru a dus la un incident de securitate certificat confirmat la un furnizor de securitate de e-mail.
recunoscând aceste activități rău intenționate, Zix | AppRiver a considerat necesar să ofere clienților săi o serie de articole care discută tipurile afectate de metode de autentificare și modul în care funcționează. Vom începe cu Autentificarea bazată pe token.
autentificare bazată pe Token: o prezentare generală
autentificare bazată pe Token abordează unele dintre limitările autentificării bazate pe sesiune. În acesta din urmă, un server creează o sesiune pentru un utilizator atunci când se conectează. Stochează ID-ul sesiunii într-un cookie, care însoțește toate solicitările ulterioare dacă utilizatorul rămâne conectat. Serverul verifică apoi identitatea unui utilizator prin compararea cookie-ului cu datele sesiunii stocate în memorie.
problema aici este că autentificarea bazată pe sesiune suferă de anumite dezavantaje. În primul rând, este necesar ca serverul stochează sesiuni în memoria sa. Există, de asemenea, problema cookie-urilor care funcționează pe mai multe dispozitive de diferite medii (cum ar fi web și mobil).
aici intervine autentificarea bazată pe token. Această formă de autentificare implică o aplicație care furnizează un jeton semnat clientului la validarea unui set de acreditări de utilizator. Clientul stochează acel token și îl trimite cu fiecare solicitare, moment în care serverul verifică tokenul și trimite informații.
în acest sens, autentificarea bazată pe token diferă de autentificarea bazată pe sesiune prin faptul că este apatridă. Nu implică stocarea informațiilor despre un utilizator pe un server sau într-o sesiune. Stochează aceste date în jetonul din partea clientului.
beneficiile și provocările autentificării bazate pe Token
autentificarea bazată pe Token vine cu multe beneficii. Chop-Chop notează că jetoanele funcționează și pe diferite site—uri web și medii, ceea ce creează o oportunitate pentru o mai mare diversitate de utilizatori-în special cei care folosesc dispozitive mobile. Pe lângă toate acestea, jetoanele reprezintă acreditările unui utilizator în procesul de acordare a accesului la date; cineva care a compromis un jeton nu ar obține automat acces la acreditările contului utilizatorului afectat.
acestea fiind spuse, autentificarea bazată pe token nu este lipsită de provocările sale. Devbridge Group observă că unele jetoane de sesiune nu sunt generate într-o manieră sigură, de exemplu. Acest lucru face posibil ca un atacator cu un eșantion suficient de mare de ID-uri de sesiune să descopere un model și să ghicească jetoanele pentru un grup mai mare de utilizatori. Există, de asemenea, problema atacatorilor care utilizează depozite de Jetoane nesigure, mai multe conectări și/sau timpi lungi de validare a jetoanelor pentru a fura secretele de autentificare.
cum să utilizați în siguranță Autentificarea bazată pe Token
recunoscând riscurile discutate mai sus, iată câteva bune practici pentru utilizarea în siguranță a autentificării bazate pe token:
- generați jetoane puternice. În special, Devbridge recomandă ca jetoanele să prezinte un set mare de valori posibile, să încorporeze un grad de pseudorandomitate și să conțină cel puțin 16 octeți în lungime.
- dă token-uri o expirare. Este important să setați Condiții pentru cât timp un jeton rămâne valabil, notează Auth0. Evident, dacă un utilizator este încă activ, tokenul se poate reînnoi automat. Dar există și înțelepciune în a permite expirarea unui jeton atunci când utilizatorul se deconectează și termină tokenul, indiferent de ce a trecut o anumită perioadă de timp.
- interzice mai multe conectări. După cum sa menționat de Devbridge, este posibil să se utilizeze atribute cheie pentru a preveni autentificări paralele în cazul în care mai mult de o persoană interacționează cu același cont de utilizator simultan.
- stocați în siguranță jetoanele. Depozitarea locală nu este calea de urmat aici. DEV Community recomandă utilizarea unei politici de cookie numită SameSite pentru specificarea condițiilor în care un cookie poate fi transmis într-o solicitare între domenii. O politică strictă SameSite, împreună cu cerința ca oamenii trebuie să o versiune de browser care acceptă această funcționalitate va ajuta la menținerea token-uri sesiune sigure.