Hacker News

Nu utilizați cheile de acces pentru a cripta datele utilizatorului

Comentarii

16 min read Via blog.timcappalli.me

Mewayz Team

Editorial Team

Hacker News

Parolele sunt cea mai interesantă dezvoltare de autentificare din ultimii ani. Ele elimină phishingul, elimină povara parolelor și oferă o experiență de conectare fără probleme, susținută de criptografie cu cheie publică. Dar o concepție greșită periculoasă se răspândește în comunitățile de dezvoltatori: dacă cheile de acces sunt criptografice, cu siguranță pot cripta și datele utilizatorilor. Ei nu pot - și încercarea de a le folosi în acest fel va crea sisteme fragile, nesigure, care ar putea bloca utilizatorii dvs. de la propriile lor informații în mod permanent. Înțelegerea de ce necesită o privire clară la ce sunt de fapt cheile de acces, ce necesită criptare și unde cele două diferă în moduri care contează enorm pentru orice platformă care gestionează date sensibile de afaceri.

Autentificarea și criptarea sunt activități fundamental diferite

Autentificarea răspunde la o întrebare: „Sunteți cine pretindeți că sunteți?” Criptarea răspunde la una complet diferită: „Pot aceste date să rămână ilizibile pentru toată lumea, cu excepția părților autorizate?” Aceste două probleme împărtășesc primitive criptografice, dar cerințele de inginerie diferă brusc. Autentificarea trebuie să aibă loc o dată pe sesiune, poate tolera eșecurile ocazionale cu alternative grațioase și nu trebuie să producă aceeași ieșire de fiecare dată. Criptarea necesită acces la chei determinist, reproductibil pe toată durata de viață a datelor, care poate fi de ani sau decenii.

Când vă autentificați cu o cheie de acces, dispozitivul dvs. generează o semnătură criptografică care dovedește că dețineți cheia privată asociată contului dvs. Serverul verifică această semnătură și acordă acces. În niciun moment serverul – sau chiar aplicația dumneavoastră – nu obține acces la materialul cheii private în sine. Aceasta este o caracteristică, nu o limitare. Întregul model de securitate al cheilor de acces depinde de faptul că cheia privată nu părăsește niciodată enclava securizată a dispozitivului dvs. Dar criptarea necesită să utilizați o cheie pentru a transforma datele și, ulterior, să utilizați aceeași cheie (sau omologul său) pentru a inversa transformarea. Dacă nu puteți accesa în mod fiabil cheia, nu puteți decripta în mod fiabil.

Platforme precum Mewayz care gestionează informații sensibile de afaceri — facturi, înregistrări de salarii, contacte CRM, documente HR în 207 module — au nevoie de strategii de criptare bazate pe chei durabile, recuperabile și accesibile în mod constant. Construirea acesteia pe o fundație concepută special pentru a preveni accesul cu chei este o contradicție arhitecturală.

De ce cheile de acces rezistă la utilizarea ca chei de criptare

Specificația WebAuthn, care stă la baza cheilor de acces, a fost concepută în mod deliberat cu constrângeri care fac utilizarea criptării nepractică. Înțelegerea acestor constrângeri dezvăluie de ce acesta nu este un decalaj pe care ingineria inteligentă o poate acoperi - este o limită fundamentală de proiectare.

  • Fără export de chei: cheile private generate în timpul înregistrării cheilor de acces sunt stocate în enclave securizate susținute de hardware (TPM, Secure Enclave sau echivalent). Sistemul de operare și API-urile browserului nu oferă niciun mecanism de extragere a materiei prime cheie. Puteți cere cheii să semneze ceva, dar nu puteți citi cheia în sine.
  • Generarea cheilor nedeterministă: crearea unei chei de acces pentru același utilizator pe un dispozitiv diferit produce o pereche de chei complet diferită. Nu există nicio frază de bază, nici o cale de derivare, nicio modalitate de a reconstrui aceeași cheie pe alt dispozitiv. Fiecare înregistrare este independentă criptografic.
  • Disponibilitate legată de dispozitiv: chiar și cu sincronizarea cheii de acces (iCloud Keychain, Google Password Manager), disponibilitatea depinde de participarea ecosistemului. Un utilizator care se înregistrează pe un iPhone și trece ulterior la Android poate pierde accesul. Un utilizator al cărui dispozitiv este pierdut, furat sau resetat din fabrică se confruntă cu aceeași problemă.
  • Numai răspuns la provocare: API-ul WebAuthn expune navigator.credentials.get() care returnează o afirmație semnată, nu material cheie brut. Primiți o semnătură în urma unei provocări furnizate de server - utilă pentru dovedirea identității, inutilă pentru obținerea unei chei de criptare.
  • Fără flexibilitate a algoritmului: cheile de acces utilizează de obicei ECDSA cu curba P-256. Chiar dacă ai putea accesa cheia, ECDSA este un algoritm de semnare, nu un algoritm de criptare. Aveți nevoie de transformări suplimentare (acord cheie ECDH, derivare KDF) pe care API-ul nu le acceptă în acest context.

Unii dezvoltatori au propus soluții — folosind extensia PRF (funcție pseudo-aleatorie) pentru WebAuthn, de exemplu, pentru a obține chei simetrice în timpul autentificării. Deși această extensie există în specificații, suportul pentru browser rămâne inconsecvent, nu este disponibil pe multe platforme mobile și moștenește în continuare problema legată de dispozitiv. O cheie derivată prin PRF pe un dispozitiv nu poate fi reprodusă pe alt dispozitiv cu o altă cheie de acces, chiar și pentru același cont de utilizator.

Scenariul de pierdere de date pe care nimeni nu dorește să fie expediat

Luați în considerare ce se întâmplă când criptați datele unui utilizator cu o cheie derivată din cheia de acces. Totul funcționează frumos în prima zi. Utilizatorul se conectează, cheia este derivată, datele sunt criptate și decriptate fără probleme. Apoi, trei luni mai târziu, telefonul lor cade într-un lac.

Cu autentificarea tradițională, pierderea unui dispozitiv este un inconvenient. Utilizatorul își recuperează contul prin e-mail, stabilește noi acreditări și continuă să lucreze. Dar dacă datele lor au fost criptate cu o cheie legată de enclava securizată a dispozitivului acum scufundat, acele date au dispărut. Nu a dispărut „greu de recuperat” — a dispărut ireversibil criptografic. Niciun bilet de asistență pentru clienți, niciun flux de recuperare a contului, nicio escaladare executivă nu poate inversa calculul. Datele ar fi putut la fel de bine să fi fost șterse.

Regula cardinală a proiectării sistemului de criptare: dacă strategia dvs. de gestionare a cheilor are un singur punct de eșec care distruge permanent accesul la datele utilizatorului, nu ați creat o caracteristică de securitate - ați creat un mecanism de pierdere a datelor cu pași suplimentari.

Pentru o afacere care desfășoară operațiuni printr-o platformă - gestionarea a 50 de relații cu clienții într-un CRM, procesarea salariilor lunare pentru 30 de angajați, urmărirea unei flote de vehicule - pierderea permanentă de date de la un telefon scăpat nu este o problemă minoră de UX. Este o catastrofă a continuității afacerii. Acesta este tocmai motivul pentru care arhitectura Mewayz separă mecanismele de autentificare de straturile de protecție a datelor, asigurându-se că nicio defecțiune a dispozitivului nu poate compromite accesul la informațiile de afaceri critice prin oricare dintre modulele sale integrate.

Ce ar trebui să utilizați în schimb

Vestea bună este că există modele bine stabilite pentru criptarea datelor utilizatorilor fără a cădea în capcana cheii de acces. Aceste abordări sunt testate în luptă, acceptate pe scară largă și concepute special pentru cazul de utilizare a criptării.

Criptarea pe server cu chei gestionate rămâne cea mai practică alegere pentru marea majoritate a aplicațiilor. Platforma dvs. criptează datele în repaus utilizând chei gestionate printr-un serviciu de gestionare a cheilor (KMS) adecvat — AWS KMS, Google Cloud KMS, HashiCorp Vault sau echivalent. Utilizatorul se autentifică (cu chei de acces, dacă doriți!), iar serverul gestionează criptarea și decriptarea în mod transparent. Acesta este modul în care majoritatea platformelor SaaS protejează datele și funcționează, deoarece cheile sunt durabile, sunt susținute de copii de siguranță, sunt rotative și independente de dispozitivul oricărui utilizator.

Cheile de criptare derivate din parolă (folosind Argon2id sau scrypt pentru derivarea cheilor) sunt adecvate atunci când aveți nevoie de o criptare adevărată fără cunoștințe, unde nici măcar serverul nu poate citi datele utilizatorului. Schimbul este că pierderea parolei înseamnă pierderea datelor, dar parolele pot fi memorate, notate și stocate în managerii de parole - nu sunt blocate într-o enclavă hardware. Servicii precum 1Password și Standard Notes folosesc această abordare în mod eficient.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →
  1. Utilizați cheile de acces (sau orice metodă puternică) pentru autentificare — verificarea identității utilizatorului.
  2. După autentificare, obțineți sau preluați cheile de criptare printr-un sistem de gestionare a cheilor separat, creat special.
  3. Implementați mecanisme de păstrare a cheilor sau de recuperare — chei de recuperare, sincronizare a cheilor pe mai multe dispozitive sau custodie de chei organizaționale pentru conturile de afaceri.
  4. Criptați datele în repaus și în tranzit folosind AES-256-GCM sau XChaCha20-Poly1305 cu cheile de la KMS.
  5. Rotiți cheile periodic și mențineți copii de siguranță criptate care supraviețuiesc oricărui punct de defecțiune.

Această separare a preocupărilor nu este doar o bună practică – este singura arhitectură care vă permite să actualizați metodele de autentificare independent de strategia dvs. de criptare. Când cheile de acces în cele din urmă evoluează sau sunt înlocuite cu ceva mai bun, datele dvs. criptate rămân perfect accesibile.

Extensia PRF: Promisiune și capcane

Dezvoltatorii care urmăresc îndeaproape specificația WebAuthn pot indica extensia prf ca o punte potențială între cheile de acces și criptare. Această extensie permite unei părți de încredere să solicite o valoare pseudo-aleatorie derivată din materialul secret al cheii de acces în timpul unei ceremonii de autentificare. În teorie, această valoare ar putea servi drept cheie de criptare sau semințe.

În practică, extinderea PRF se confruntă cu bariere semnificative de adoptare. De la începutul lui 2026, suportul variază dramatic în funcție de browser și platformă. Implementarea Safari diferă de cea a Chrome. Multe dispozitive Android nu o acceptă deloc. Cheile de securitate hardware au suport inconsecvent. Pentru orice platformă care deservește o bază diversă de utilizatori – iar Mewayz deservește peste 138.000 de utilizatori pe fiecare sistem de operare major și tip de dispozitiv – construirea criptării pe o funcție cu o disponibilitate neregulată este insuportabilă din punct de vedere operațional.

Mai fundamental, PRF nu rezolvă problema cu mai multe dispozitive. Ieșirea pseudo-aleatoare este derivată din cheia de acces specifică pe dispozitivul specific. Un utilizator care înregistrează chei de acces atât pe laptop, cât și pe telefon primește două ieșiri PRF diferite pentru același cont. Ar trebui să criptați datele cu cheia derivată a unui dispozitiv și apoi să recriptați sau să partajați cheia cu celălalt dispozitiv, ceea ce vă readuce oricum înapoi la construirea unui sistem adecvat de gestionare a cheilor. În acel moment, cheia derivată din cheia de acces adaugă complexitate fără a adăuga securitate.

Lecții pentru constructori: utilizați instrumentul potrivit pentru stratul potrivit

Tentația de a folosi cheile de acces pentru criptare vine dintr-un instinct bun – dezvoltatorii vor să folosească criptografia puternică și să reducă numărul de secrete pe care utilizatorii trebuie să le gestioneze. Dar ingineria de securitate se referă în mod fundamental la utilizarea primitivei potrivite la nivelul potrivit. Un lacăt și un seif protejează ambele obiectele de valoare, dar nu ați instala un șurub în interiorul unei seifuri și nu ați încerca să purtați un seif în buzunar.

Cheile de acces excelează în scopul propus. Au redus preluările de conturi legate de phishing cu până la 99,9% în implementarea internă a Google. Ele elimină complet atacurile de umplere a acreditărilor. Ele oferă o experiență de conectare care este în același timp mai sigură și mai convenabilă decât parolele. Este o realizare remarcabilă și este suficient. A cere cheilor de acces să rezolve și criptarea este ca și cum ai cere firewall-ului tău să servească și ca sistem de rezervă — înțelege greșit arhitectura.

Când construiți platforme care gestionează operațiuni sensibile de afaceri, arhitectura ar trebui să reflecte limite clare. Autentificarea verifică identitatea. Autorizarea determină accesul. Criptarea protejează datele în repaus și în tranzit. Gestionarea cheilor asigură că cheile de criptare supraviețuiesc pierderii dispozitivelor, rotației angajaților și schimbărilor de infrastructură. Fiecare strat are instrumente special create, iar amestecarea lor creează fragilitate care apare în cele mai proaste momente posibile, când un utilizator are cel mai mult nevoie să-și acceseze datele și nu poate.

Obținerea corectă a securității fără a o complica prea mult

Pentru majoritatea aplicațiilor SaaS și a platformelor de afaceri, recomandarea practică este simplă: adoptați cheile de acces cu entuziasm pentru autentificare și gestionați criptarea în întregime pe partea serverului cu un KMS gestionat. Acest lucru oferă utilizatorilor dvs. cea mai bună experiență de conectare disponibilă astăzi, protejându-le în același timp datele cu o infrastructură concepută special pentru durabilitate și recuperare.

Dacă modelul dvs. de amenințare necesită cu adevărat criptare end-to-end în cazul în care serverul nu poate accesa datele text simplu, investiți într-o arhitectură de criptare adecvată la nivelul clientului, cu chei derivate din parole, coduri de recuperare și escrow chei organizaționale - nu comenzi rapide derivate din chei de acces. Investiția în inginerie este mai mare, dar alternativa este livrarea unui sistem care va distruge în cele din urmă datele cuiva în mod irecuperabil.

Deciziile de securitate se agravează în timp. O comandă rapidă luată astăzi devine un coșmar de migrare în trei ani, când primitivul subiacent se schimbă, un ecosistem de dispozitiv își schimbă politica de sincronizare sau un browser depreciază o extensie. Construirea de la început pe abstracțiile potrivite - autentificarea ca autentificare, criptarea ca criptare, fiecare cu propriul ciclu de viață al cheii - este fundația care permite platformelor să se extindă la sute de mii de utilizatori fără o bombă cu ceas îngropată în instalațiile criptografice.

Întrebări frecvente

De ce nu pot fi folosite cheile de acces pentru a cripta datele utilizatorului?

Parolele sunt concepute exclusiv pentru autentificare, nu pentru criptare. Ei se bazează pe criptografia cu cheie publică pentru a vă verifica identitatea în timpul conectării, dar cheia privată nu părăsește niciodată dispozitivul și nu este accesibilă aplicațiilor. Criptarea necesită chei stabile, reproductibile, care pot decripta în mod constant datele în timp. Cheile de acces nu au această capacitate prin design, ceea ce le face în mod fundamental inadecvate pentru protejarea informațiilor stocate de utilizator.

Ce se întâmplă dacă oricum încercați să criptați datele cu chei de acces?

Riști să construiești un sistem fragil în care utilizatorii să fie blocați definitiv de propriile lor date. Cheile de acces pot fi revocate, rotite sau înlocuite pe dispozitive fără avertisment. Dacă datele criptate sunt legate de o anumită cheie de acces care este ștearsă sau actualizată, nu există o cale de recuperare. Acest lucru creează un scenariu catastrofal de pierdere de date pe care nicio soluție de inginerie nu îl poate preveni în mod fiabil.

Ce ar trebui să folosească dezvoltatorii în loc de cheile de acces pentru criptarea datelor?

Dezvoltatorii ar trebui să utilizeze soluții de criptare concepute special, cum ar fi AES-256, cu management adecvat al cheilor, criptare plic sau biblioteci consacrate precum libsodium. Păstrați autentificarea și criptarea ca preocupări separate. Folosiți chei de acces pentru ceea ce excelează — conectare fără parolă — și chei de criptare dedicate gestionate prin derivarea cheilor și sisteme de stocare securizate pentru protejarea datelor sensibile ale utilizatorilor.

Cum gestionează Mewayz autentificarea și securitatea datelor pentru companii?

Mewayz oferă un sistem de operare de afaceri cu 207 module, începând de la 19 USD/lună, care separă autentificarea de protecția datelor folosind cele mai bune practici din industrie. În loc să utilizeze greșit cheile de acces, platforma de la app.mewayz.com implementează straturi de criptare adecvate alături de fluxurile de conectare securizate, asigurându-se că companiile pot proteja datele clienților în mod fiabil, fără a risca scenariile de blocare care provin din combinarea autentificarea cu criptarea.

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime