SpokPass
Securitatea conturilor9 min de citit

Ce vede serverul într-un manager parole zero-knowledge și ce se întâmplă dacă baza de date este furată

Ce primește serverul unui manager de parole zero-knowledge, ce rămâne pe dispozitivul tău și ce poate face un atacator care fură baza de date. Explicat simplu.

Când spui unui manager parole toate secretele tale, o întrebare firească este: ce poate vedea cel care îl administrează? La SpokPass răspunsul este „nimic din conținutul seifului", iar în articolul acesta arătăm de ce nu este o simplă promisiune, ci o construcție tehnică pe care o poți verifica. Vom parcurge ce rămâne pe dispozitivul tău, ce ajunge pe server, ce ar obține cineva care fură baza de date și unde se oprește protecția. Pentru noțiunile de bază, vezi întâi Manager de parole: ce este și cum funcționează.

Ce rămâne pe dispozitivul tău

Totul pornește de la parola master, scrisă în browser. Din ea, tot în browser, se derivă cheile, cu Argon2id, un algoritm făcut să fie lent și mare consumator de memorie, tocmai ca ghicitul parolelor să coste mult. Parametrii folosiți de SpokPass sunt 64 MiB de memorie și 3 iterații. Rezultatul este cheia master, de 32 de octeți, care nu se stochează nicăieri: nici pe disc, nici pe server.

Din ea se obțin două lucruri distincte:

  • o cheie de înveliș, folosită doar în memoria filei de browser, care deschide cheia seifului;
  • o dovadă de autentificare, derivată separat, cu domeniu diferit, care este singurul lucru legat de parolă ce ajunge pe server.

Fiindcă dovada e derivată separat, din ea nu se poate calcula înapoi cheia care deschide seiful. Parola master propriu-zisă nu traversează niciodată rețeaua.

Ce ajunge pe server

Serverul primește și păstrează:

  1. Blocurile criptate ale intrărilor tale. Fiecare intrare are un singur câmp de conținut, criptat cu AES-256-GCM și un vector de inițializare aleatoriu de 12 octeți, generat la fiecare operațiune. Titlul, adresa site-ului, utilizatorul, parola și notițele intră toate în același bloc.
  2. Cheia seifului, învelită: 32 de octeți aleatorii, criptați cu cheia de înveliș. Serverul o stochează, dar nu o poate deschide. A doua copie e învelită cu cheia derivată din kitul de recuperare.
  3. Hash-ul dovezii de autentificare: serverul o trece încă o dată prin Argon2id înainte s-o scrie în baza de date, ca pe o parolă obișnuită.
  4. Metadate necesare funcționării: identificatorul intrării, datele de creare și modificare, tipul (parolă, card sau notiță), dacă e favorită sau ștearsă. Nu spun nimic despre conținut.

Un efect secundar asumat: căutarea nu se face pe server. Se face în browser, după decriptare. Un index de căutare pe server ar scurge exact ce am promis că nu vedem.

Scenariul: cineva fură baza de date

Să presupunem cel mai rău caz pentru furnizor: un atacator copiază întreaga bază de date. Ce are în mână?

Conținutul seifurilor

Blocuri criptate cu AES-256-GCM. Cheia lor există doar în browserul fiecărui om, derivată din parola lui master. Fără ea, atacatorul are un șir de octeți fără sens. Ar trebui să ghicească parola master a fiecărui om în parte, iar fiecare încercare costă 64 MiB de memorie și trei iterații Argon2id.

Parolele de autentificare

Baza conține hash-ul unei dovezi, nu parola master. Dovada nu poate fi refolosită ca să deschidă seiful, iar hash-ul ei nu poate fi prezentat serverului în locul dovezii.

Ce se vede totuși

Adresele de email ale conturilor, momentele de creare și modificare, numărul și tipul intrărilor, starea abonamentului. Sunt metadate, iar pentru ele nu pretindem că sunt invizibile; ele sunt motivul pentru care păstrăm numărul lor la minim.

Unde se oprește protecția

Onestitatea face parte din securitate, deci iată limitele:

  • Parola master slabă poate fi atacată offline de cineva care a furat blocurile. Argon2id încetinește ghicitul, dar nu-l oprește pentru o parolă ușoară. Cum alegi una bună, vezi în Cum alegi parola master.
  • Phishing-ul ocolește orice criptare: dacă dai parola master pe un site fals, atacatorul o are. Vezi Phishing: cum recunoști un mesaj fals.
  • Un dispozitiv compromis cât timp seiful e deschis expune ce vezi pe ecran. Din acest motiv, cheia seifului trăiește doar într-un Web Worker, în memoria filei, și dispare la închidere, la blocare manuală și după 15 minute de inactivitate (configurabil).
  • Pierderea parolei și a kitului înseamnă pierderea datelor. Nu există „resetare de parolă", pentru că nimeni nu poate deschide seiful în locul tău. Mai mult în Ai uitat parola master?

Ce mai face serverul, dacă tot nu vede datele

Zero-knowledge nu înseamnă că serverul nu are treabă. El răspunde de lucrurile pe care le poate face fără să deschidă nimic:

  • Izolarea între conturi: fiecare cerere verifică dacă rândul cerut aparține omului din sesiune. O intrare cerută cu identificatorul altcuiva este refuzată, chiar dacă ar fi de nedescifrat oricum.
  • Sesiunea: cookie httpOnly, Secure, SameSite=Lax, de 15 zile, revocabil prin baza de date.
  • Blocarea contului: 5 încercări greșite duc la blocare pentru 5 ore, cu contorul în baza de date, plus limitare pe adresa IP.
  • Jurnalul de autentificări: metadate despre accesări, niciodată conținut.
  • Integritatea: versionarea fiecărei intrări, ca două dispozitive care sincronizează în același timp să nu se suprascrie.

Ce înseamnă asta pentru o firmă

În organizațiile SpokPass, rolurile sunt proprietar, administrator și membru, iar fiecare om are seiful lui. Administratorul organizației nu poate citi seiful nimănui, exact pentru că nu are cheile; poate suspenda un membru, ceea ce închide sesiunile și eliberează locul. Planul Echipă costă 16 lei pe utilizator pe lună sau 160 pe an, fără TVA, cu minim 3 utilizatori. Cum se predau conturile când se schimbă oamenii, vezi în Predarea parolelor la schimbarea administratorului.

Ca să fie clar ce nu există încă: autentificarea în doi pași pe contul SpokPass, extensia de browser cu completare automată, partajarea parolelor între membri, verificarea parolelor compromise și auditul extern de securitate sunt planificate, nu disponibile. Garanția de azi este de arhitectură, nu de certificare: ce serverul nu poate citi, nu poate nici pierde, nici preda, nici scurge.

Dacă firma ta pune în funcțiune și alte sisteme care ating datele clienților, ghidul date și accese în siguranță când implementezi AI în firmă de pe blogul SpokApp ridică aceleași întrebări despre cine are acces la ce.

Întrebări frecvente

Ce înseamnă zero-knowledge la un manager de parole?

Înseamnă că furnizorul nu poate citi conținutul seifului tău. Criptarea se face pe dispozitivul tău, cu o cheie derivată din parola master, iar serverul primește și stochează doar blocuri criptate. Parola master nu pleacă niciodată de pe dispozitiv.

Ce obține un atacator care fură baza de date SpokPass?

Blocuri criptate cu AES-256-GCM și un hash dublu al dovezii de autentificare. Fără parola master a fiecărui om, blocurile nu se pot deschide, iar dovada de autentificare nu este refolosibilă. Rămân vizibile doar câteva metadate, precum tipul intrării și datele de creare.

Poate SpokPass să-mi reseteze parola master dacă o uit?

Nu, tocmai pentru că nu o are și nu poate deschide seiful. Seiful se poate deschide și cu kitul de recuperare primit la înregistrare, afișat o singură dată. Dacă pierzi și parola master, și kitul, datele sunt pierdute definitiv.

Mai pot fi în pericol parolele dacă cineva știe parola mea master?

Da. Zero-knowledge protejează împotriva furnizorului și a furtului bazei de date, nu împotriva parolei master ghicite sau furate prin phishing. De aceea parola master trebuie să fie o frază lungă, folosită numai pentru seif.

Citește și

Aceeași parolă pe mai multe conturi: de ce e riscul numărul unu și cum scapi cu un manager parole

2FA: ce este autentificarea în doi pași, ce metode există și pe ce conturi s-o activezi mai întâi

Ai uitat parola master? Cum funcționează kitul de recuperare al unui seif de parole criptat