arrow_back Înapoi la toate articolele

Cum îți protejăm datele personale

Ilustrație reprezentând confidențialitatea datelor și criptarea

Dacă întreaga noastră bază de date ar fi copiată mâine (de un atacator, de un angajat rău intenționat sau printr-un ordin judecătoresc din altă țară), datele comunităților ar fi complet indescifrabile.

Nu „greu de descifrat”. Nu „criptate cu o cheie stocată pe același server”. Pur și simplu indescifrabile.

Acesta este obiectivul nostru tehnic. Iată cum ne asigurăm că este respectat.

Plecăm de la premisa că breșa va exista

Majoritatea platformelor își măsoară securitatea prin grosimea zidurilor. Vorbesc despre firewall-uri, controlul accesului și audituri de perimetru. Sunt lucruri utile, dar se bazează pe speranța că zidul va rezista. Noi presupunem că va ceda.

Arhitectura Pinitto pornește de la o cu totul altă întrebare. Ce se întâmplă după o breșă de securitate reușită?

Răspunsul trebuie să fie absolut nimic util pentru atacator.

O comunitate, un seif

Fiecare comunitate de pe Pinitto primește propria sa cheie de criptare, complet distinctă. Nu folosim o cheie universală („master key”) care să descuie ușile tuturor.

Fiecare cheie este păstrată într-un seif digital separat, auditat la fiecare accesare. Asta înseamnă că fiecare comunitate este o insulă izolată. Decriptarea datelor comunității A nu-i oferă unui atacator absolut niciun indiciu despre comunitatea B.

Criptăm datele, nu doar discul

Criptarea la nivel de disc este standardul industriei. Protejează datele când serverul este scos din priză. Dar în secunda în care baza de date rulează și comunică cu aplicația, informațiile stau acolo descifrate.

Pinitto folosește criptare la nivel de câmp. Numele tău, emailul, numărul de telefon, postările de pe forum, paginile de wiki și descrierile resurselor sunt stocate individual, sub formă de date criptate. Pentru a citi o singură postare, aplicația trebuie să ceară în mod activ cheia acelei comunități din seif.

Dacă cineva face un export al bazei noastre de date, tot ce obține este un morman uriaș de date opace.

Cum cauți pe întuneric

Dacă totul este criptat, cum poți căuta după bormașina unui vecin? Nu poți face o căutare directă pe un text criptat. Asta ar anula întregul scop al criptării.

În schimb, folosim indecși bazați pe trigrame și funcții hash. Când scrii o postare, sistemul transformă grupuri de câte trei litere din text în hash-uri. Când faci o căutare, aplică aceeași funcție pe termenul căutat. Baza de date caută potriviri între aceste hash-uri, în timp ce textul original rămâne complet criptat. Aplicația decriptează exclusiv rezultatele exacte, doar pentru a ți le afișa pe ecran.

Căutarea după email funcționează la fel. Folosim o singură cheie secretă la nivelul întregii platforme strict pentru a genera hash-uri din emailuri. Asta permite sistemului de login să verifice că ești tu, fără să-ți vadă vreodată adresa reală. Acel secret partajat știe doar să compare hash-uri, dar nu le poate inversa pentru a afla adresa ta de email și nici nu poate decripta conținutul comunității. Nu este o cheie de criptare.

Granițele fizice contează

Toate datele Pinitto sunt procesate și stocate pe servere din Germania.

Nu este doar o bifă legală; este o constrângere operațională pe care ne-am asumat-o voluntar. Infrastructura se supune strict regulilor GDPR și legilor federale germane pentru protecția datelor. Aplicăm acest standard fiecărui utilizator Pinitto, indiferent de locul din lume în care se află.

Nu transferăm datele comunităților peste granițe și nu le trimitem către sisteme externe de analiză (third-party analytics) din alte țări.

Ștergerea datelor înseamnă ștergerea cheii

Când o comunitate este ștearsă sau când îți închizi contul, distrugem și cheia de criptare. Nu stăm să scotocim prin baza de date după fiecare rând de text criptat.

În secunda în care cheia dispare, datele rămase devin indescifrabile, pentru un atacator și pentru noi deopotrivă. Redevin mormanul de blocuri opace de la care am plecat. Așa funcționează tehnic „dreptul de a fi uitat” (right to erasure) la noi. Platforma își pierde pur și simplu capacitatea de a-ți citi conținutul în momentul în care cheia este ștearsă.

Nici noi nu-ți putem citi datele

Criptarea la nivel de câmp nu este doar un scut împotriva hackerilor. Este o limită pe care ne-am impus-o singuri.

Noi, care construim Pinitto, nu putem răsfoi pur și simplu conținutul comunității tale. Pentru a citi wiki-ul unui bloc sau a vedea uneltele dintr-un spațiu comun, sistemul are nevoie de cheia specifică acelei comunități, obținută doar prin cereri strict auditate.

Dacă administrezi o comunitate și gestionezi informații sensibile (nume, adrese, programul zilnic al vecinilor, situații de familie), nu te baza pe promisiuni de marketing. Bazează-te pe constrângeri tehnice.

Acestea sunt ale noastre.