Ce garantăm,
și ce nu putem garanta.
Pagina asta e scrisă pentru cineva care vrea să verifice, nu pentru cineva care vrea doar să fie liniștit.
Pe scurt
Patru cifre care spun cel mai mult despre cum e construit seiful.
Cum se calculează cheile
parola → Argon2id(64 MiB, t=3) → cheia principală
├─ HKDF „auth" → dovada pentru server
└─ HKDF „kek" → deschide cheia seifuluiServerul primește doar prima ramură și o hash-uiește din nou, cu Argon2id, înainte să o stocheze. Din ea nu se poate obține parola. Din ea nu se poate obține a doua ramură. Deci o scurgere completă a bazei de date nu dă niciun secret refolosibil și nu deschide niciun seif.
Cheia seifului e generată aleatoriu în browser, la înregistrare, și e împachetată separat cu parola ta și cu codul tău de rezervă. Fiecare fișier are propria lui cheie, împachetată cu cheia seifului. De aceea schimbarea parolei rescrie 32 de octeți, nu terabytes.
Parametrii, ca să îi poți compara
| Ce | Cum | De ce așa |
|---|---|---|
| Derivarea cheii | Argon2id, 64 MiB, 3 treceri, salt de 16 octeți | Memoria mare face atacul cu plăci grafice scump. Argon2id, nu Argon2i, pentru rezistență la atacuri cu canal lateral. |
| Criptarea conținutului | AES-256-GCM, fragmente de 4 MiB | GCM autentifică, nu doar criptează. Un fragment modificat nu se decriptează, se respinge. |
| Nonce | 8 octeți aleatori plus contor pe 4 octeți | Nu se repetă niciodată sub aceeași cheie, iar fragmentele pot fi descărcate în orice ordine. |
| Ordinea fragmentelor | autentificată în eticheta fiecărui fragment | Rearanjarea sau trunchierea fișierului eșuează la decriptare, nu trece neobservată. |
| Integritatea | SHA-256, recalculat la fiecare descărcare | Nu MD5 și nu SHA-1: sparte din 2004 și 2017. |
| Transportul | TLS 1.3, HSTS cu preload | Fără variantă necriptată, nici măcar pentru redirect. |
Ștergerea distruge cheia, nu doar fișierele
Când ceri ștergerea contului, ștergem prima dată cheia împachetată. Din acel moment datele sunt matematic irecuperabile, inclusiv pentru tine. Primești un certificat de ștergere. Blocurile criptate se șterg fizic de pe disc în maximum 7 zile.
Ordinea contează. Dacă procesul se întrerupe după primul pas, ștergerea e deja efectivă.
Limita pe care nu o putem elimina
Criptarea rulează în codul JavaScript pe care ți-l livrăm noi, prin browser. Dacă am fi obligați legal sau am fi compromiși, am putea, teoretic, livra o versiune modificată care să transmită parola la următoarea ta conectare.
Nicio arhitectură web nu elimină complet acest risc. Orice serviciu care pretinde altfel te dezinformează, și merită să îl întrebi cum.
Ce facem în privința asta:
- publicăm amprentele criptografice ale pachetelor de cod, într-un fișier semnat;
- folosim verificare de integritate a resurselor, ca browserul să refuze un pachet modificat;
- build reproductibil, cu lockfile, ca oricine să poată reconstrui și compara;
- publicăm codul care face criptarea.
Și o recomandare sinceră: pentru lucrurile cele mai sensibile, criptează local cu un instrument independent, ca VeraCrypt sau age, și încarcă rezultatul. Un serviciu care îți spune să nu depinzi doar de el e un serviciu în care poți avea încredere.
Raportarea unei probleme
Dacă găsești o vulnerabilitate, scrie la security@amprentadigitala.ro. Răspundem în maximum 5 zile lucrătoare. Nu avem program de recompense, dar nu trimitem avocați după cercetători, iar contribuția ta apare la mulțumiri dacă vrei.
Detaliile pentru contact automat sunt în /.well-known/security.txt.