ÎN VIGOARE Legea nr. 195/2024 se aplică integral din 23 august 2026. Anul de aplicare graduală — 10% din amendă — expiră la 23 august 2027. Ce se schimbă
PrivacyBoxMD

PlatformăSecuritate

Securitate

Securitate și protecția datelor

Prelucrăm datele clienților dumneavoastră în numele dumneavoastră, și trebuie să putem dovedi cum le protejăm, nu doar să promitem. Pagina aceasta este dovada: măsurile, limitele lor și lista deschisă a ceea ce încă nu avem.

Date găzduite în SEE Izolare impusă în baza de date Orice modificare se vede

Izolarea datelor

Separarea este impusă în baza de date, nu în codul aplicației.

O eroare de programare într-un filtru se scrie într-o secundă. Dacă separarea companiilor depinde de acel filtru, o singură linie greșită expune portofoliul întreg. De aceea izolarea stă un nivel mai jos, unde aplicația nu o poate contrazice.

Nivelul 1

Platformă

Rândurile care aparțin platformei nu sunt vizibile niciunui partener, oricare ar fi interogarea trimisă de aplicație.

Nivelul 2

Partener

Fiecare birou vede numai companiile din portofoliul lui. Comutarea între companii schimbă contextul tranzacției, nu un filtru din interfață.

Nivelul 3

Companie

Dosarul, registrul și jurnalul unei companii sunt legate de identificatorul ei. Fără acel identificator nu există nicio cale de citire.

  • Securitatea la nivel de rând este activată în regim forțat pe fiecare tabel care conține date ale clienților.
  • Fără un context de tranzacție stabilit, orice interogare întoarce zero rânduri. Absența contextului nu deschide accesul: îl închide.
  • O resursă care aparține altei companii răspunde „nu există”, nu „nu aveți dreptul”. Existența unui dosar străin nu se poate deduce din răspunsul serverului.
  • Rolul de baza de date cu care rulează aplicația nu este proprietarul tabelelor și nu poate ocoli politicile.
  • O suită de teste de izolare rulează chiar cu acest rol la fiecare livrare și este condiție de fuziune: dacă un test cade, livrarea nu se publică.

Unde se află datele

Serverul aplicației rulează pe Render, în regiunea Frankfurt (Germania). Baza de date este la Neon, pe infrastructura Amazon Web Services din Frankfurt. Documentele generate stau într-un depozit Cloudflare R2 cu jurisdicție europeană, cifrate de platformă înainte să plece din ea. Toate datele platformei se află în Uniunea Europeană. Nu găzduim date în Republica Moldova: compania moldovenească este partea contractantă, iar serverele sunt în Uniunea Europeană. Furnizorii, cu rolul și locul fiecăruia, sunt în registrul subîmputerniciților; ce deținem și ce nu deținem este scris la Standarde.

Accesul de urgență al administratorului

Un administrator al platformei nu are acces obișnuit la datele unei companii. Poate ajunge la ele numai printr-o procedură de acces de urgență care cere un motiv scris obligatoriu, are o durată limitată, produce un eveniment în jurnalul de audit și declanșează notificarea partenerului. Acces fără urmă nu există.

Jurnalul de audit

Fiecare operațiune este legată criptografic de precedenta.

Un dosar de conformitate valorează exact cât valorează dovada că nu a fost rescris după fapt. Jurnalul este de aceea un registru care se adaugă, niciodată un tabel care se corectează.

Această pagină face acum ceea ce descrie

În subsolul acestei pagini se află amprenta ei SHA-256, calculată la publicare și recalculată de browserul dumneavoastră. Sigiliul se umple doar dacă cele două coincid; altfel rămâne deschis și spune de ce. Este același algoritm și aceeași regulă ca în jurnalul de audit al consolei: starea verificată nu există fără dovada care o produce.

Lanț de amprente · o companie recalculat automat

Fiecare bloc conține amprenta evenimentului împreună cu amprenta blocului precedent. Valorile afișate sunt ilustrative.

  • Amprentele sunt SHA-256, cu un lanț separat pentru fiecare companie; amprenta unui eveniment include amprenta celui anterior.
  • Rolul aplicației nu are drept de UPDATE sau DELETE pe jurnal, iar un declanșator din baza de date refuză orice modificare.
  • Lanțul fiecărei companii se recalculează automat o dată la 24 de ore, cât timp serviciul funcționează, iar rezultatul verificării se consemnează.
  • Capetele lanțurilor intră în exportul lunar al bazei de date, păstrat separat de producție.
  • Din versiunea 3, capul lanțului se ancorează și în afara platformei, așa că urma se poate verifica și fără noi.
Ce garantează și ce nu garantează lanțul

Un lanț intern face modificările evidente, nu imposibile. Cine ar controla în același timp baza de date și procesul de verificare ar putea, teoretic, recalcula lanțul întreg. Aceasta este limita reală a oricărui jurnal ținut în casă. Ancorarea în exterior este exact ceea ce închide diferența: capul lanțului pleacă din producție cu exportul lunar, iar din versiunea 3 se ancorează și în afara platformei. Preferăm să o spunem noi, înainte să o întrebe auditorul dumneavoastră.

Documentele generate

Artefactele ies în PDF/A-2b, cu fonturile încorporate — acoperind atât diacriticele românești, cât și alfabetul chirilic. Fiecare artefact poartă o amprentă SHA-256 consemnată în lanț, iar răspunsurile din care a fost generat se fotografiază împreună cu documentul. Un document livrat acum trei ani poate fi așadar reprodus identic, cu datele de atunci, nu cu cele de astăzi.

Aplicația pentru Windows

Aplicația pentru Windows este aceeași consolă: vorbește numai cu serverul platformei, prin HTTPS. Sesiunea rămâne doar în memorie și se închide odată cu aplicația; pe calculator rămân numai preferințele (limba, tema, dimensiunea textului) și documentele pe care le salvați dumneavoastră, unde alegeți. Serverul îi spune versiunea minimă: o aplicație prea veche vă trimite la versiunea nouă, în loc să lucreze greșit. Aplicația se va putea descărca de pe acest site în curând.

Criptare, chei și identitate

Fiecare document are cheia lui, iar cheia platformei nu stă în cod.

Cifrarea contează numai împreună cu răspunsul la întrebarea „cine ține cheia”. Aici fiecare document se cifrează cu o cheie proprie, împachetată cu cheia platformei, iar furnizorul stocării nu primește niciuna dintre ele.

În tranzit și în repaus

Cifrare

TLS 1.2 și 1.3 pentru tot traficul public, cu HSTS; conexiunea aplicației către baza de date este de asemenea cifrată.

Documentele generate, secretele celui de-al doilea factor și legăturile din e-mailuri se cifrează în plic, AES-256-GCM: o cheie proprie fiecărui document, împachetată cu cheia platformei.

Cheia platformei stă numai în configurația serviciului, niciodată în cod, și are o procedură scrisă de rotație.

Exporturile bazei de date se cifrează înainte să atingă discul.

Cine intră și cu ce

Identitate și sesiuni

Parolele se stochează cu Argon2id și au minimum douăsprezece caractere.

Sesiunile sunt păstrate pe server și revocabile, legate de un dispozitiv; utilizatorul își vede lista dispozitivelor conectate.

Al doilea factor TOTP, cu coduri de rezervă, este la dispoziția fiecărui cont și se cere, ca ridicare de nivel, înaintea acțiunilor ireversibile: eliminarea unui membru și revocarea unei licențe.

Pentru contactele ocazionale din IMM-uri există legături magice de unică folosință, valabile cincisprezece minute.

Autentificarea, legăturile de acces, schimbarea parolei și verificarea celui de-al doilea factor au un număr limitat de încercări, pe adresă și pe cont.

Din versiunea 2, portofelul EVO devine opțiune de identitate de stat, alături de parolă și TOTP.

Copii de rezervă și continuitate

O copie de rezervă care nu a fost restaurată niciodată nu este o copie de rezervă.

Schema și exercițiul care o verifică sunt scrise, cu scripturile lor, iar exercițiul se face lunar, pe o bază de date separată de producție.

Schema de continuitate · valori de proiectare
ParametruValoareCe se verifică
Schema de copiiRestaurare la orice moment din ultimele 6 ore (Neon), și un export complet al bazei de date în fiecare lunăFiecare export are amprenta lui SHA-256 și capetele lanțurilor de audit din momentul copiei
DestinațieExportul, cifrat, păstrat separat de producțieAmprenta exportului, la fiecare exercițiu de restaurare
RPO — pierdere maximă de dateCâteva secunde, pentru o eroare observată în 6 ore; altfel, ultimul export lunarFereastra de restaurare a bazei de date și data ultimului export
RTO — timp maxim de restabilireSe fixează înainte de lansarea comercialăDurata reală, măsurată la exercițiul de restaurare
Exercițiu de restaurareLunar, cu un script scrisCopia se reface pe o bază de date separată: schema, rolurile, izolarea și lanțurile de audit
CifrareExporturile sunt cifrate înainte să atingă disculFraza de acces și cheia platformei sunt păstrate separat de exporturi

Rezultatul ultimului exercițiu de restaurare se pune la dispoziția partenerilor la cerere. Baza de date nu are încă redundanță la pornire — este scris fără ocolișuri la Standarde, împreună cu restul lipsurilor.

Subîmputerniciții

Patru furnizori, fiecare cu rolul și locul lui declarate.

Registrul este public pentru că un partener trebuie să îl poată citi înainte de a semna, nu după. Toate datele platformei se află în Uniunea Europeană; portalul și consola, care sunt fișiere statice, sunt servite de Cloudflare.

Registrul subîmputerniciților · anexa III a acordului de prelucrare
FurnizorRolLocațieDate atinse
RenderServerul aplicației și generatorul de PDFFrankfurt, GermaniaToate datele platformei, în timpul prelucrării cererilor
NeonBaza de dateFrankfurt, Germania (Amazon Web Services)Toate datele platformei, în repaus
CloudflareDepozitul documentelor generate (R2); găzduirea portalului și a consolei (Pages); DNS; redirecționarea mesajelor trimise la contact@privacybox.md (Email Routing)R2: Uniunea Europeană; Pages, DNS și Email Routing: rețea globalăDocumentele, cifrate de platformă, fără cheile lor; adresa IP și cererile vizitatorilor portalului și ai consolei; mesajele trimise la contact@privacybox.md, pe care le transmite mai departe
BrevoPoștă electronică tranzacționalăUniunea EuropeanăAdresa destinatarului și conținutul mesajului trimis
Cum se schimbă lista

Registrul are versiuni și constituie anexa III a acordului de prelucrare. Orice adăugare sau înlocuire de furnizor cere o actualizare a acordului și o notificare prealabilă către parteneri, înainte de intrarea în vigoare. Nu adăugăm un subîmputernicit între două livrări, în tăcere.

Standarde, teste și ceea ce nu avem

Verificăm după standarde publice, iar lipsurile le scriem singuri.

  • OWASP ASVS 5.0, nivelul 1 este verificat astăzi; nivelul 2 este obiectivul versiunii 4, verificat la fiecare livrare.
  • Harta de risc urmează OWASP Top 10:2025, iar igiena organizațională urmează CIS Controls v8.1, grupul IG1.
  • După versiunea 4, din venituri, un test de penetrare extern de tip grey-box, de trei până la cinci zile, concentrat pe multi-tenanță, control de acces și separarea rolurilor, cu retestare inclusă. Până atunci testele noastre rulează la fiecare livrare, și nu le prezentăm ca un test independent.
  • Raportul testului, în variantă curățată, se pune la dispoziția partenerilor la cerere.

Practici de securitate a aplicației

  • Set complet de anteturi de securitate OWASP, inclusiv o politică de securitate a conținutului.
  • Listă explicită de origini permise pentru CORS, nu o regulă deschisă.
  • Șabloane fără logică: conținutul editabil de partener nu poate executa cod.
  • Validarea intrărilor cu o schemă comună clientului și serverului, ca să nu existe două adevăruri.
  • Secretele nu stau niciodată în depozitul de cod, iar scanarea automată de secrete rulează la fiecare livrare.
  • Vulnerabilitățile cunoscute ale dependențelor se caută la fiecare livrare, iar o vulnerabilitate găsită oprește livrarea.
  • Imaginile de container se scanează în fiecare săptămână.
  • Scanare dinamică de bază a portalului și a consolei, automatizată, în fiecare săptămână.

Ceea ce nu avem

Lista lipsurilor, scrisă de noi

Pe 4 octombrie 2026 registrul a fost adus la infrastructura reală: Hetzner, Scaleway, Sentry, Grafana Labs, Google și Codemagic nu sunt folosiți, iar Render și Neon nu erau trecuți. Niciun acord de prelucrare nu fusese semnat pe lista de dinainte.

Un furnizor care nu are nimic de declarat aici de obicei nu a căutat. Acestea sunt limitele reale ale platformei la data de astăzi.

  • Nu deținem certificat ISO 27001. Structura documentației este construită „pregătită pentru ISO 27001”, iar certificarea este o decizie de anul doi sau trei, luată numai dacă un client de canal o cere. Până atunci nu o invocăm în nicio formă.
  • Nu urmărim SOC 2. Nu este un obiectiv al platformei și nu figurează în plan.
  • Baza de date nu are redundanță la pornire. Continuitatea se sprijină pe copiile de rezervă și pe obiectivele RPO și RTO de mai sus, nu pe o pereche activă.
  • Fișierele încărcate nu sunt scanate antivirus înainte de anul doi. Riscul este limitat prin tipuri permise și dimensiuni, dar scanarea propriu-zisă nu există încă.
  • Nu avem o cheie separată pe companie, păstrată într-un serviciu european de gestiune a cheilor. Cheile sunt pe document, iar distrugerea cheii unei companii la încetarea contractului nu există încă.
  • Capetele lanțurilor nu pleacă încă zilnic într-o a doua locație. Pleacă cu exportul lunar al bazei de date.
  • Primul export al bazei de date de producție și primul exercițiu de restaurare pe el se fac înainte de pilot. Scripturile au fost probate pe baza de date a demonstrației.

Rolul nostru contractual și raportarea

Suntem împuternicit, iar contractul spune exact asta.

PrivacyBox MD acționează ca împuternicit în sensul art. 28, atât pentru partener, cât și pentru compania-client. Operatorul rămâne cel care decide scopurile prelucrării; noi executăm instrucțiunile lui și trebuie să putem dovedi cum.

  • Acordul de prelucrare este derivat din clauzele standard ale Comisiei Europene de la operator la împuternicit (Decizia 2021/915), adaptate la Legea nr. 195/2024.
  • Este redactat în română, cu o versiune în rusă, sub jurisdicția Republicii Moldova, cu CNPDCP drept autoritate de supraveghere.
  • Anexa II cuprinde măsurile tehnice și organizatorice descrise în pagina aceasta; anexa III este registrul subîmputerniciților.

Incidentele

Procedura internă prevede notificarea operatorului în 24–48 de ore de la constatare, tocmai pentru a-i lăsa spațiu în propriul termen de 72 de ore către CNPDCP. Notificarea către autoritate se depune pe formularul Ordinului 40/2026 și este valabilă numai semnată cu semnătură electronică calificată: potrivit Legii 124/2022, doar semnătura calificată este echivalentă celei olografe, iar semnătura avansată produce efecte prin acordul părților sau printr-o normă explicită. Semnătura rămâne întotdeauna actul operatorului, nu al nostru.

Cât păstrăm jurnalele

Termene de păstrare · jurnale tehnice și jurnal de audit
Tip de jurnalPăstrareConținut
Autentificare și acces12 luniIdentificator de cerere și identificator pseudonim de utilizator
Jurnale de aplicație6 luniStructurate, fără date personale în clar
Alerte de securitate12–24 luniEvenimente de securitate și rezultatul analizei lor
Jurnalul de audit al aplicațieiDurata contractului plus termenul de prescripțieUrma de conformitate; la final se exportă operatorului, apoi se șterge

Dosarul de dovezi, la cerere

  • Un rezumat de securitate de patru până la șase pagini.
  • Chestionarul de verificare prealabilă, completat în avans.
  • Raportul testului de penetrare extern, în variantă curățată, după ce testul se face.
  • Rezultatul ultimului exercițiu de restaurare.

Raportarea vulnerabilităților

securitate@privacybox.md

Dacă ați găsit o problemă, scrieți-ne la securitate@privacybox.md. Confirmăm primirea în cel mult două zile lucrătoare și vă comunicăm ce am înțeles din raport și ce urmează. Nu întreprindem acțiuni juridice împotriva cercetătorilor de bună-credință care ne raportează o problemă și ne lasă timp să o remediem înainte de a o publica.

Pentru orice altă întrebare: contact@privacybox.md Chișinău.

Citiți dosarul de dovezi înainte de a semna acordul.

Rezumatul de securitate, chestionarul de verificare prealabilă și rezultatul ultimului exercițiu de restaurare, trimise la cerere. Demonstrația arată apoi cum se vede totul din consolă.