Evita autentificarea 2FA bazata pe SMS. Exista alternative mai sigure

Autentificarea bazata pe doi factori de identitate (2FA) sau pe mai multi asemenea factori (MFA) a iesit de cativa ani buni din zona de nisa a solutiilor de securitate si a trecut in mainstream. Aproape orice serviciu, cont sau resursa poate fi protejat printr-un factor suplimentar in afara de credentialele utilizatorului. Marile brese de securitate care au loc constant si aproapte in fiecare zi au facut ca metodele de autentificare bazate pe 2FA/MFA sa devina critice atat pentru organizatii, cat si pentru uz personal. Una dintre cele mai folosite forme de 2FA este folosirea SMS-ului pentru a primi o parola de tip OTP (One Time Password). Din pacate nu este nici pe departe cea mai de incredere optiune:

  • mesajele SMS pot fi interceptate de catre un virus troian instalat pe telefon printr-o aplicatie malitioasa din App Store, Google Play sau dintr-o sursa terta.
  • mesajele SMS pot fi interceptate prin exploatarea unei vulnerabilitati din protocolul SS7 folosit in transmiterea SMS-urilor. Aceste SMS-usi care contin OTP-ul pot fi apoi redirectionate catre alte numere de telefon. Aceasta situatie este foarte problematica pentru serviciile de home banking. Bancile sunt cunoscute ca fiind extrem de conservatoare cand vine vorba de securitate si rareori ofera alta metoda de 2FA in afara de SMS. Din aceasta cauza, nu putine au fost situatiile in care clientii acestora au fost victimele atacatorilor care au reusit sa deturneze accesul la conturi si transferurile bancare.
  • atacatorii pot folosi tehnici de inginerie sociala (tehnici de persuasiuni sau chiar mituire) pentru a obtine o cartela SIM noua cu numarul de telefon al victimei de la magazinul unui operator de telefonie. SMS-urile vor veni pe noua cartela, cea veche dezactivandu-se. Poate trece un interval de timp considerabil pana cand victima sa isi dea seama de ce s-a intamplat si sa blocheze accesul la conturi si aplicatii, inclusiv la banca.
  • codul primit pe SMS poate fi vazut de catre cineva care se afla in apropierea telefonului, daca acesta are activa functia de vizualizarea a notificarilor atunci cand ecranul este blocat. Din fericire, atat iOS, cat si Android permite ascunderea continutului notificarii atunci cand telefonul este blocat.
  • chiar daca notificarile sunt oprite din sistemul telefonului, acesta poate fi pierdut sau furat si SIM-ul poate fi inserat intr-un alt telefon ce va acorda acces la notificarile primite prin SMS.

Se pare ca sunt destule motive pentru a ne indeparta de SMS ca metoda de 2FA. Toate tehnicile de compromitere de mai sus au fost si sunt des folosite de atacatori, chiar si cea mai complexa din punct de vedere tehnic (exploatarea protocolului SS7). Trebuie sa ne orientam spre alte variante de autentificare 2FA/MFA.

Conform zicalei “There’s an app for that” 😊, exista deja optiunea de a folosi ca metoda de autentificare o aplicatie simpla si lightweight care sa genereze codurile OTP primite prin SMS.

Mecanismul de functionare a unei aplicatii de 2FA/MFA este urmatorul:

  • se instaleaza aplicatia din magazinul corespunzator (Google Play sau App Store)
  • se merge in setarile de securitate ale aplicatiei care se doreste a se proteja prin MFA
  • aceasta va afisa un cod QR care va fi scanat direct de catre aplicatia MFA
  • se scaneaza codul QR cu aplicatia MFA – care va incepe sa genereze coduri OTP, cate unul nou la fiecare 30 de secunde

Codurile sunt create pe baza unei chei pe care doar serverul si aplicatia o cunosc si pe baza orei curente, rotunjit la 30 de secunde. Avand aceleasi componente atat pentru serviciu, cat si pentru aplicatia MFA inseamna ca aceste coduri sunt generate in mod sincronizat. Metoda aceasta de generare poarta numele de OATH TOTP (Open Authentication Time-based One Time Password) si este cea mai des utilizata. Mai exista o varianta numita OATH HOTP (HMAC-based OTP). In loc de a se folosi ora curenta, se foloseste un contor care se incrementeaza cu 1 pentru fiecare cod nou creat. Este mai putin folosita in productie din cauza complexitatii in a sincroniza codurile intre aplicatie si serviciul ce trebuie protejat.

Cisco Duo este o aplicatie extrem de usor de folosit, este user-friendly si minimalista, fara setari complexe. Fata de alte aplicatii similare, Duo are avantajul de a pastra codurile ascunse in mod implicit. Pentru a le vedea, utilizatorul trebuie sa selecteze tokenul pentru serviciul care se vrea accesat. Este o metoda mai sigura de a pastra codurile, fara ca acestea sa fie expuse ori de cate ori aplicatia este deschisa. Pe langa OTP-uri, Duo suporta si MFA prin:

  • notificare de tip Push cea mai populara si mai folosita metoda de factor aditional datorita simplitatii sale
  • token-uri hardware de tip U2F (Universal 2nd Factor) – mai ales in medii bancare sau guvernamentale sau in cele cu cerinte foarte stricte de securitate
  • parametrii de bioemtrie ca amprenta sau recunoastere faciala prin standardul WebAuthn

Cisco Duo poate ajuta organizatiile si in procesul de adoptie a conceptului de Zero Trust Access (ZTA). Inainte de a acorda accesul unui individ la o anumita resursa, identitatea acestuia trebuie validata si parametrii acestuia trebuie sa fie in concordanta cu politica de acces a organizatiei.

Inginerii Dendrio va pot ajuta sa securizati fiecare acces la aplicatiile si serviciile dumneavoastra, cloud-based sau on premises, indiferent de dispozitivul folosit sau de locatia utilizatorului.

Mihai Dumitrascu, Sr Systems Engineer