Arhictetura Suverană Digital


Sistem de Operare Suveran pentru Administrația Publică
Un desktop Linux imutabil pentru administrația publică, construit integral pe componente open-source și pe o arhitectură security-first. Înlocuiește stratul de sistem de operare, office și comunicații — fără să atingă nicio aplicație sau bază de date existentă. Funcționarul lucrează la fel; dedesubt rulează Linux, nu Windows.
Documentul de mai jos descrie arhitectura tehnică completă: sistemul de operare, rețeaua și securitatea, autentificarea, stratul AI cu guardrails, modelul de acces și disaster recovery.
1. Prezentare generală
Un sistem de operare Linux customizat pentru administrația publică românească. Înlocuiește stratul desktop (OS, office, email, chat, video, antivirus, endpoint management). Nu înlocuiește nicio aplicație existentă, nicio bază de date, niciun backend.
Funcționarul deschide browserul, accesează Avansis Taxe / SEAP / SPV / registrul agricol la aceeași adresă ca înainte. Singura diferență: browserul rulează pe Linux, nu pe Windows.
2. Sistem de operare
Bază: Fedora Silverblue (imutabil, bazat pe OSTree)
De ce Silverblue, nu Ubuntu/Debian:
Sistemul de fișiere root este read-only. Funcționarul nu poate instala nimic, nu poate modifica nimic, nu poate strica nimic.
Actualizări atomice cu rollback automat — dacă un update strică ceva, reboot-ul revine la versiunea anterioară în 30 de secunde.
OSTree permite actualizări diferențiale (doar delta-ul se descarcă, nu imaginea completă).
rpm-ostree composegenerează imaginea dintr-un treefile YAML — reproducibil, versionat, auditat.
Componente imagine:
Kernel Linux (din Fedora, cu patch-uri de securitate)
GNOME Desktop (lockdown mode — fără terminal, fără setări avansate, fără instalare de software)
Firefox ESR (singurul browser, configurat cu politici enterprise)
ONLYOFFICE Desktop Editors (Flatpak, handler default pt .docx/.xlsx/.pptx)
Element Desktop (Flatpak, chat securizat)
WireGuard (integrat în kernel, always-on)
Configurări de securitate: SELinux enforcing, USB storage disabled, LUKS2 pe disc complet
Customizare vizuală: Temă GNOME cu branding propriu. Dock cu aplicațiile esențiale: Fișiere, Email, Chat, Video, Office, Browser. Fără clutter, fără confuzie.
Locale și limbă: Keyboard layout românesc (standard + programator). Dicționar spell-check românesc și maghiar în ONLYOFFICE și Firefox. Interfața GNOME, ONLYOFFICE, Element — disponibile în română și maghiară (relevant Harghita/Covasna/Mureș). Selectare la instalare, modificabil din setări.
Printare și scanare: CUPS gestionează imprimantele. Driver-e: HPLIP pentru HP (nativ), Gutenprint pentru majoritatea celorlalte mărci. Scanere prin SANE. Imprimantele de rețea (cele mai comune în primării) funcționează prin IPP fără driver-e specifice.
Politica de actualizări:
Patch-uri de securitate: push automat de la hub, fără opțiune de amânare. OSTree aplică la reboot, rollback automat dacă boot-ul eșuează.
Update-uri de funcționalitate: push cu 72h preview. Instituția primește notificare. Se aplică la următorul reboot programat.
Update-uri majore (OS): staged rollout — 5% din flotă primele, monitorizare 48h, apoi restul.
Orice update poate fi reverted prin
rpm-ostree rollback— funcționarul vede „Versiunea anterioară" în meniul de boot.
Debugging în producție: Silverblue include toolbox nativ — container Fedora mutabil pornit în 5 secunde, cu acces la unelte de diagnostic (strace, tcpdump, gdb). Zero impact pe sistem, fără reboot. Imutabilitatea nu blochează debugging-ul real.
Instalare: USB bootabil. 5 ecrane (limbă, disc, parolă, nume instituție, confirmare). 20 minute.
3. Suită office — ONLYOFFICE
Alegere: ONLYOFFICE, nu LibreOffice, nu Collabora Online.
De ce:
Compatibilitate .docx/.xlsx/.pptx superioară LibreOffice
Colaborare în timp real nativă
AI integration nativă cu modele locale via Ollama
MCP server — agenți AI pot automatiza operațiuni cu documente
Adoptată de guvernul francez
Integrare: Desktop (Flatpak, handler MIME default) și browser (integrat în Nextcloud prin connector oficial). Utilizatorul editează offline sau colaborativ; Nextcloud montat ca folder WebDAV.
Template-uri documente: Guvernul folosește sute de template-uri standardizate — dispoziții de primar, hotărâri de consiliu, certificate urbanism, autorizații construire, procese verbale. Fiecare template se deschide în ONLYOFFICE, se verifică vizual, se corectează unde e necesar, apoi se distribuie prin Nextcloud (read-only pentru funcționari). Funcționarul creează o copie locală când are nevoie de un document nou.
4. Stiva de comunicații
Construită pe protocoale deschise. Interoperabilitate pe protocoale, nu pe implementări identice (Matrix federează cu Matrix, Nextcloud share-uiește cu Nextcloud, Jitsi se conectează la Jitsi).
Funcție | Componentă | Protocol | Înlocuiește |
|---|---|---|---|
Chat / mesagerie | Element + Synapse | Matrix | WhatsApp personal |
Videoconferințe | Jitsi Meet | WebRTC / SIP | Zoom / Teams |
Stalwart Mail Server | SMTP / IMAP | Gmail personal / Exchange | |
Fișiere | Nextcloud | WebDAV | USB sticks / atașamente email |
Calendar | Nextcloud Calendar | CalDAV | Calendar pe hârtie / Google Calendar |
Identitate | FreeIPA | LDAP / Kerberos | Parole Windows locale |
Calendar: modul Nextcloud nativ (CalDAV). Termenele legale (30 zile răspuns la petiții, termene urbanism) se sincronizează pe mobil fără app suplimentar. Integrabil cu bot Matrix care trimite remindere în canalul instituției.
De ce Stalwart: un singur binar Rust. SMTP + IMAP + JMAP + antispam + DKIM, configurare într-un fișier TOML — potrivit pentru o primărie de 30 de oameni, nu un stack enterprise supradimensionat.
5. Rețea și securitate — WireGuard
5.1 Principiul de bază
Fiecare stație are WireGuard always-on, configurat la instalare. Tot traficul de la fiecare mașină trece printr-un tunel criptat către hub-ul instituției / hub-ul național. Utilizatorul nu știe că există. Nu trebuie să-l pornească.
Ce înseamnă practic:
Un router compromis vede doar pachete WireGuard criptate. Nu vede emailuri, nu vede parole, nu vede conținut.
Emailul instituțional nu e accesibil din internet public — stă pe server on-premises, în rețeaua WireGuard.
Compromiterea unei stații nu dă acces la altele — fiecare mașină are tunel separat cu cheie unică, iar izolarea est-vest e impusă la hub, nu presupusă (§5.6).
De ce WireGuard (nu OpenVPN, nu IPsec):
~4.000 linii de cod (vs ~600.000 OpenVPN) — verificabil formal
În kernel-ul Linux din 5.6 — nu rulează în userspace
~3% overhead (vs ~20% OpenVPN)
Reconectare instantanee la schimbarea rețelei (roaming)
Criptografie fixă (Curve25519 + ChaCha20 + Poly1305) — fără negociere de cipher suite, fără downgrade attacks
5.2 Topologie — infrastructură distribuită
Serviciile de control — WireGuard endpoint, replică FreeIPA, mirror OSTree, homeserver Matrix, monitoring agregat — rulează pe mai multe noduri cloud independente, cu redundanță geografică și failover automat. Nu există un datacenter fizic dedicat și nu există un singur punct de eșec.
De ce distribuit pe mai multe noduri: redundanță geografică și independență față de un singur furnizor cloud. FreeIPA multi-master replică între noduri — un funcționar se autentifică identic indiferent de care nod e accesibil.
Server local per instituție (autonomie offline): Prima mașină dintr-o instituție rulează și o replică FreeIPA locală, plus Nextcloud/Element/Stalwart locale. Consecință: instituția continuă să autentifice și să funcționeze chiar dacă toate nodurile naționale sunt inaccesibile.
Ce face fiecare nod:
FreeIPA multi-master replication: conturi, politici, revocări — replicate pe toate nodurile.
OSTree repo mirror: instituția trage update-ul de la cel mai apropiat nod.
Matrix federation: mesajele se replică pe toate nodurile.
WireGuard multi-endpoint: fiecare mașină are mai multe endpoint-uri configurate. Failover automat în secunde.
Enrollment: O instituție instalează sistemul de pe USB, introduce un cod de enrollment și se conectează automat la nodul cel mai apropiat. Zero vizită fizică.
5.3 Securitate endpoint
LUKS2 + parolă la boot: discul complet criptat. Fără parolă, discul e zgomot.
SELinux enforcing: Mandatory Access Control. Procesele au acces doar la ce e definit explicit.
USB storage disabled: reguli udev care blochează mass storage. Tastatura/mouse-ul funcționează.
Sistem imutabil: root filesystem read-only. Malware-ul nu poate modifica sistemul.
ANSSI BP-028: profil de securitate verificat cu OpenSCAP la fiecare build.
Fără antivirus: nu din neglijență, ci structural. Sistem imutabil + SELinux + sandbox Flatpak + lipsa ecosistemului de malware Linux elimină vectorii de atac. Monitorizarea se face prin audit logging centralizat.
Stratul de endpoint închide structural vectorul de execuție on-host mult mai bine decât o flotă Windows tipică: root imutabil, SELinux, fără USB, sandbox Flatpak, fără ecosistem de malware.
5.4 DNS și PKI intern
DNS: CoreDNS pe fiecare hub. Domeniul intern .gov.intern — fiecare instituție primește subdomeniu automat la enrollment (ex: floresti.gov.intern). Rezoluția trece prin WireGuard — serviciile interne nu sunt vizibile din internet public.
PKI: step-ca emite certificate TLS automat pentru fiecare serviciu intern, cu expirare scurtă (24h) și reînnoire automată (ACME). Eliminare totală a certificatelor self-signed. Fiecare stație are root CA-ul pre-instalat în trust store. Cheia root nu stă pe un nod expus (§5.8).
5.5 Cerințe de bandwidth
Chat + email + fișiere mici: 2 Mbps — suficient pentru o comună cu 15 funcționari
Videoconferințe (720p): 1.5 Mbps per participant activ
OS updates (OSTree delta): ~50-200 MB, descărcat în background, nu blochează rețeaua
AI inference: neglijabil — câțiva KB per request
QoS pe tunelul WireGuard prioritizează chat/email (latency-sensitive), apoi fișiere/backup, apoi video (degradabil). Chat-ul nu e afectat niciodată. Majoritatea comunelor au 50-100 Mbps de fibră — bandwidth-ul nu e un blocker real în România.
5.6 Segmentare est-vest (impusă, nu doar criptată)
Tunel separat cu cheie unică per stație previne reutilizarea cheilor și permite revocare individuală — dar nu izolează stațiile între ele. O rețea criptată dar plată e tot plată: criptarea protejează conținutul pe fir, nu previne mișcarea laterală. De aceea izolarea e impusă la hub:
AllowedIPsscoped: fiecare stație rutează DOAR către serviciile instituției sale, niciodată către alte stații.nftablesdefault-deny est-vest: forward între peer-ii-stație blocat; permis doar stație → servicii-instituție.Izolare inter-instituție: stațiile instituției A nu pot ruta către subrețeaua instituției B.
Rezultat: o stație compromisă vede doar serviciile propriei instituții. Zero mișcare laterală.
5.7 Întărirea nodurilor expuse la internet
Hub-ul este singura suprafață publică a întregului sistem — singurul lucru pe care un atacator îl poate atinge neautentificat:
Un singur port public: WireGuard (UDP). FreeIPA, Matrix, Nextcloud, OSTree, dashboard-uri — toate ascultă doar pe interfața WireGuard, invizibile din internet.
Fără SSH public. Administrarea se face prin WireGuard; portul 22 nu răspunde pe IP-ul public. Zero fallback.
nftablesdefault-deny inbound, allow doar portul WireGuard + established + egress.Suprafață minimă: fără pachete inutile, listeneri auditați la fiecare build.
5.8 Managementul secretelor de infrastructură
Cea mai frecventă cauză de escaladare masivă într-o breșă de administrație nu e un exploit sofisticat — e un fișier centralizat cu credențiale în plaintext (login-uri de echipamente, parole, community strings SNMP). Sistemul nu ține niciodată un asemenea inventar.
Fără fișier de inventar de credențiale. Secretele (chei WireGuard, parola Directory Manager FreeIPA, cheia root step-ca, cheia de semnare OSTree, credențiale backup) se injectează la runtime dintr-un secret manager self-hosted în perimetrul WireGuard. Nu se stochează în repo, nu în inventarul de automatizare.
SNMP: v3 cu auth+priv, sau deloc. Niciodată community strings default.
Chei critice offline: cheia root step-ca și cheia de semnare OSTree — offline / HSM, niciodată pe un nod expus.
Conturi de serviciu scoped + rotite: identitățile non-umane care leagă serviciile de backend-urile lor au privilegii minime, credențiale unice și rotație automată.
6. Autentificare — model pe trepte
Principiu fundamental: Mașina enrolled este primul factor de autentificare, la zero cost hardware suplimentar. Fiecare stație are o cheie privată WireGuard unică, generată la instalare, stocată pe disc criptat LUKS2. Fără acea mașină fizică, atacatorul nu e în rețea — indiferent de ce parole fură.
Nivel | Ce include | Cine |
|---|---|---|
Standard | Mașină enrolled (factor 1) + parolă FreeIPA (factor 2) | Toate comunele |
Avansat | + Cheie USB FIDO2 (YubiKey / SoloKeys) | CJ, primării mari, Finanțe |
Maxim | + Smartcard cu certificat PKI | Militar, clasificat, NATO |
Nivelul standard (zero cost) previne structural atacurile remote — atacatorul nu poate face nimic fără acces fizic la o mașină enrolled. Nivelurile superioare se adaugă pe măsură ce instituția necesită.
Autonomie offline a instituției. Autentificarea nu depinde de conectivitatea la nodurile naționale: replica FreeIPA locală plus cache-ul SSSD asigură că funcționarii se autentifică și lucrează chiar dacă nodurile naționale sunt inaccesibile.
7. Aplicații guvernamentale — Flatpak webview sandboxat
Problema: Funcționarul accesează Avansis Taxe, SEAP, SPV printr-un browser general-purpose unde poate naviga oriunde, instala extensii, cădea în phishing.
Soluția: Fiecare aplicație guvernamentală devine un Flatpak care conține un webview WebKitGTK blocat:
Fără address bar — funcționarul nu poate tasta URL-uri. Zero phishing.
Un singur endpoint — aplicația se conectează la exact un URL.
Certificate pinning — acceptă doar CA-ul intern. MITM imposibil.
Sandbox Flatpak — rețeaua limitată la hostname-ul backend-ului. Compromiterea unei aplicații nu dă acces la altele.
Autentificare automată — sesiunea FreeIPA injectată în webview. Fără login screen.
Distribuție: Repo Flatpak curat, gestionat de echipa de operare. Vendorii submit manifest, echipa verifică, semnează, publică. Update la nivel național: push la repo, toate mașinile primesc.
Firefox rămâne pe sistem ca browser secundar pentru navigare generală, blocabil la domenii *.gov.intern pentru utilizatorii care nu au nevoie de navigare liberă.
8. Aplicații legacy Windows — Apache Guacamole
Unele aplicații guvernamentale sunt .exe care rulează doar pe Windows. Soluția: gateway de remote desktop în browser. Zero software instalat pe stație.
Setup: 1-3 mașini Windows (fizice sau VM) în server room, cu aplicațiile legacy instalate. Guacamole intermediază — funcționarul face click pe icon, se deschide un tab de browser cu aplicația Windows, o folosește normal, închide tab-ul. Stația Linux nu a avut niciodată Windows. Bazele de date din spatele aplicațiilor: complet neatinse.
Planul Windows este izolat agresiv — este singura reintroducere a unei suprafețe pe care restul designului o elimină:
Segment de rețea propriu, izolat prin
nftables. VM-urile nu pot ruta către serviciile instituției, către alte stații sau către alte instituții. Reachable doar dinspre gateway-ul Guacamole, pe RDP.Fără domain join, fără credențiale partajate. Compromiterea unei VM nu oferă identități reutilizabile.
Efemere / snapshot-restore. VM-urile pornesc dintr-o imagine curată și se resetează periodic. Un ransomware aterizat pe VM e șters la următorul restore.
Fără acces la internet general. Egress permis doar către endpoint-urile strict necesare.
Restricție absolută: Niciodată Guacamole pe mobil.
Semnătura electronică se gestionează pe trepte, în ordinea priorității: (1) token PKCS#11 nativ pe Linux (OpenSC + Firefox), (2) semnătură cloud calificată (independent de OS), (3) Guacamole ca fallback pe VM-ul Windows.
9. AI — server-side, ierarhizat, cu guardrails
9.1 Principiu
Modelele AI nu rulează pe PC-ul funcționarului. Rulează pe servere, în perimetrul securizat, accesate prin API OpenAI-compatible.
9.2 Niveluri de inferență
Nivel | Model | Servește | Capabilități |
|---|---|---|---|
Central (server de inferență dedicat) | Mistral Small 24B / Qwen3 30B | Toate instituțiile | Documente legale complexe, analiză legislativă, rapoarte |
Instituție mare (opțional, fără GPU) | Qwen3 4B (CPU) | Utilizatori locali | Gramatică, diacritice, rezumate, template fill |
Routing: cererea merge la modelul local dacă există; dacă depășește capabilitatea, se rutează la nodul central prin WireGuard. Transparent pentru utilizator.
Offline: dacă legătura pică, modelul local continuă să funcționeze. Calitate redusă dar funcțional. Indicator pe ecran: „Mod local".
9.3 Regula critică: retrieval vs generation
AI nu produce niciodată text final. AI produce sugestii structurate pe care omul le asamblează.
Clasificare pe culori, enforced în proxy layer (nu în aplicație):
Clasificare | Ce face AI-ul | Exemple |
|---|---|---|
VERDE | Acționează liber | Gramatică, diacritice, formatare, traducere RO↔HU |
GALBEN | Sugerează, omul selectează | Paragrafe din template, câmpuri pre-fill |
ROȘU | Retrieval only, zero generare | Referințe legale, date cetățean, sume, termene |
Pentru referințe legale: AI-ul caută în baza de legislație (PostgreSQL + pgvector) și returnează textul exact cu sursă. Nu generează, nu parafrazează. Funcționarul bifează articolele relevante; se inserează verbatim.
Validare: fiecare referință din textul generat e verificată automat contra bazei de legislație. Articol existent → ✓. Articol inexistent (halucinație) → ⚠, semnalat înainte ca textul să intre în document.
Retrieval-ul ROȘU nu devine canal de exfiltrare: rate-limiting per utilizator pe interogările de date cetățean, anomaly detection (volum atipic → alertă + throttling), audit per interogare. Un singur cont nu poate extrage la scală prin asistent.
Audit trail complet: fiecare request AI logat. Fiecare document final păstrează diff-ul între sugestia AI și versiunea semnată de om.
9.4 Integrare în aplicații
ONLYOFFICE: plugin AI nativ către endpoint-ul intern Ollama.
Element/Matrix: bot AI (
@asistent:institutie.gov.intern) răspunde la/ai caută legislația privind...Flatpak webviews: sidebar AI contextual per aplicație (asistentul de la Taxe nu vede dosarele DGASPC).
9.5 Nodul de inferență ca nod de mare valoare
Nodul de inferență e tratat ca resursă critică: acces API doar prin WireGuard (niciun endpoint public); fără stocare persistentă a conținutului interogărilor dincolo de logul de audit necesar; izolat de rețea (rutează doar către baza de legislație și proxy-ul de audit); enforcement server-side al clasificării VERDE/GALBEN/ROȘU, imposibil de ocolit din client; rate-limiting global + per-instituție.
10. Mobil
Tier | Ce primește | Cine | MDM |
|---|---|---|---|
1 — Chat only | Element pe telefon personal. E2E encrypted. Revocabil remote. | Toți | Nu |
2 — Work profile | Container izolat (Android Enterprise). Element + Nextcloud read-only + browser managed pe VPN. | Opt-in | Da |
3 — Gov device | Telefon instituțional, full lockdown, app whitelist, auto-wipe. | Primar, secretar, legal | Da |
Default: Tier 1 pentru toți. Înlocuiește WhatsApp cu zero friction. Niciodată Guacamole pe mobil.
11. Self-serve install
Flow: Boot USB → limbă → selectare disc (LUKS2 auto-criptare) → parolă admin + parolă boot → nume instituție → confirmare → instalare 15-20 minute. Prima mașină dintr-o instituție devine și server local.
Enrollment mașini noi — pe trepte:
Aceeași rețea LAN (99% din cazuri): auto-discovery prin mDNS. Mașina nouă găsește serverul, generează keypair WireGuard, serverul o adaugă ca peer cu
AllowedIPsscoped pe instituție (§5.6). Zero input.Rețele separate: serverul afișează pe dashboard un cod de enrollment valabil 15 minute. Ca pairing-ul Bluetooth.
Fără rețea la setup: serverul generează fișier de enrollment pe USB (cheie WireGuard, certificat CA, config FreeIPA). Refolosibil.
Conectare la hub-ul național: adminul introduce un cod de pe portalul hub-ului. Tunel WireGuard stabilit, federare Matrix activă, OSTree trage de la hub.
12. Monitoring și fleet management
Dashboard centralizat. Fiecare mașină enrolled raportează: versiune OS și ultimul update, stare WireGuard, spațiu disc, uptime, status backup, compliance ANSSI (ultimul scan OpenSCAP).
Acțiuni remote: push update, reboot, revocare cont, lock stație. Datele de monitoring trec prin WireGuard — nu sunt accesibile din internet. Credențialele de automatizare sunt injectate la runtime (§5.8), nu stocate în inventar.
Logging centralizat / SIEM (conform NIS2): auditd pe fiecare stație → forwarding prin WireGuard → agregare pe hub. Evenimente critice logate: login-uri eșuate repetate, tentative USB, procese neautorizate, acces refuzat SELinux, tentative de trafic est-vest blocate (§5.6), interogări ROȘU atipice (§9.3), activitate anormală pe planul Windows (§8). Alerting automat pe Matrix bot. Retenție minim 1 an. La nivel de hub, logurile tuturor instituțiilor sunt corelabile — un atac care vizează mai multe instituții simultan e vizibil din dashboard-ul central.
Help desk: canal Matrix #suport per instituție. Bot-ul creează automat ticket (număr, timestamp, descriere, mașina afectată). Adminul răspunde în chat sau face intervenție remote. Zero software suplimentar.
13. Model de acces — nivele
Același distro, aceeași imagine OSTree pe toate mașinile. Diferența e cine se loghează. FreeIPA gestionează grupuri de acces. Un singur web dashboard, un singur codebase — RBAC prin FreeIPA decide ce vede fiecare utilizator.
Tier 0 — Echipă core. FIDO2 obligatoriu + parolă FreeIPA. Acces la toate hub-urile, push OS național, politici globale de securitate, administrare repo Flatpak, deploy modele AI, revocare orice enrollment, monitoring național, audit logs globale. Administrarea hub-urilor se face prin WireGuard (§5.7).
Control cu cuorum pentru acțiuni naționale distructive. Autentificarea de sesiune autentifică sesiunea; nu oprește o sesiune deturnată sau malware pe mașina admin-ului. De aceea acțiunile cu rază națională (push imagine OSTree la flotă, revocare în masă, modificare politici globale, semnare repo Flatpak) necesită: semnare per-acțiune hardware-backed pe payload-ul exact al acțiunii; control cu două persoane (M-din-N); confirmare out-of-band pe un al doilea dispozitiv. Cheia de semnare OSTree e protejată offline / HSM, cu semnare de cuorum.
Tier 1 — Administrator hub regional. FIDO2 + parolă. Monitoring și enrollment instituții din zonă, forțare update, gestionare conturi în zonă, politici regionale. Nu poate: modifica imaginea OS, accesa alte hub-uri, modifica politici globale, administra repo Flatpak.
Tier 2 — Admin instituție. Mașină enrolled + parolă (tier standard). Adaugă/elimină utilizatori locali, monitoring mașini proprii, gestionare Nextcloud și Element/Matrix, verificare backup local. Nu poate: modifica politici de securitate, push update-uri OS, accesa alte instituții, instala software.
Tier 3 — Funcționar. Mașină enrolled + parolă. Folosește aplicațiile din dock, AI asistent, editare/comunicare/video. Nu poate: nicio funcție administrativă, terminal, instalare software, USB storage, modificare setări sistem. Desktop blocat complet.
14. Backup și disaster recovery
Nivel instituție: fișierele (Nextcloud) sync automat către hub prin WireGuard; email (Stalwart) backup zilnic pe hub (retenție 90 zile); FreeIPA replicat multi-master + replică locală per instituție; Matrix federat pe hub-uri. Restore: reinstalarea sistemului (20 min) + re-sync de la hub.
Nivel infrastructură: cross-backup zilnic între noduri (Nextcloud, FreeIPA, Matrix, configurări). Dacă un nod pică sau e compromis, celelalte preiau automat instituțiile din zona afectată (WireGuard failover); instituțiile nu simt întreruperea. Backup off-site pe storage S3-compatibil în altă jurisdicție, retenție 90 zile. Restore test lunar automatizat — backup-ul care nu e testat nu e backup.
Strat de arhivare imutabil (WORM) pentru retenție legală: documentele cu obligații de arhivare 10-50 ani (stare civilă, cadastru, autorizații) se scriu într-un strat imutabil (object lock). Odată scris, un document de arhivă nu poate fi modificat sau șters până la expirarea perioadei legale. Un eveniment de ransomware nu atinge arhiva legală.
15. Migrare — cum muți o primărie
Inventar (1 zi): PC-uri, imprimante/scanere, aplicații (web vs .exe), semnătura electronică, template-uri critice.
Faza 1 — Chat mai întâi (săpt. 1-2): Element pe telefoane. Nimeni nu atinge PC-urile. Canale #general, #suport, #juridic, #contabilitate. Migrare de pe WhatsApp, complet voluntară — nu forțezi, arăți.
Faza 2 — Server + fișiere (săpt. 2-3): prima mașină ca server (Nextcloud, Stalwart, ONLYOFFICE server-side, replică FreeIPA locală). Migrare fișiere → Nextcloud. Testare template-uri și imprimante.
Faza 3 — Desktop-uri, pe rând (săpt. 3-6): 3-5 „early adopters" mai întâi; Windows-ul vechi rămâne pe alt disc ca fallback. 1-2 zile suport intensiv. Dacă merge 5 zile → extindere. Dacă blochează → se rezolvă, nu se forțează.
Faza 4 — Ultimele mașini + decommission Windows (săpt. 6-8): funcționarii rămași; aplicații legacy → Guacamole; semnătura → soluția aleasă; discurile vechi șterse sau păstrate 30 zile.
Ce NU migrezi: emailul vechi din Gmail personal, fișierele personale de pe desktop-uri (funcționarul decide), nicio aplicație backend.
Reducerea fricțiunii — moduri de afișare
Cea mai mare barieră nu e tehnică, e psihologică. Sistemul livrează 3 moduri vizuale, schimbabile printr-o comandă, fără reinstalare, fără reboot:
Familiar Mode (default la migrare): GTK theme inspirat din Windows 10 (taskbar jos, buton Start stânga, file manager Windows-like). Tehnic e tot GNOME pe Silverblue.
Modern Mode: GNOME standard.
Mod propriu: branding propriu, design distinct.
De ce contează: reduce training-ul de la zile la ore; schimbă conversația din „migrăm la Linux" în „actualizăm sistemul". Deployment-urile europene reușite (Schleswig-Holstein, Vienna, LiMux) au raportat familiaritatea vizuală ca factor critic de acceptare. Familiar Mode folosește teme inspirate open-source, nu elemente protejate de trademark.
16. Roadmap
Accesibilitate: GNOME are suport nativ (Orca screen reader, contrast ridicat, fonturi mari) — obligatoriu legal (Directiva EU 2016/2102). Doar configurare.
Director instituțional: frontend simplu peste datele FreeIPA (nume, email, funcție, instituție).
Multi-monitor: nativ GNOME.
Periferice speciale: cititoare coduri de bare (HID nativ), imprimante termice, cititoare card cetățean — pe bază de cerere.
Grupuri de lucru inter-instituționale: Nextcloud rooms + Matrix spaces tematice pentru proiecte cross-instituție.
17. Ce NU face sistemul
Nu înlocuiește Avansis Taxe, registrul agricol, SEAP, SPV, ForexeBug, e-Factura
Nu înlocuiește bazele de date existente
Nu necesită hardware nou (rulează pe tot ce a rulat Windows 10)
Nu necesită internet permanent (funcționează complet offline la nivel de instituție)
Semnătura electronică se gestionează prin stratul de tranziție (token PKCS#11 nativ / semnătură cloud / Guacamole)
18. Componente și licențe
Componentă | Licență |
|---|---|
Fedora Silverblue | MIT + diverse OSS |
GNOME Desktop | GPL |
ONLYOFFICE Community | AGPL v3 |
Element / Synapse | Apache 2.0 |
Jitsi Meet | Apache 2.0 |
Nextcloud | AGPL v3 |
Stalwart Mail | AGPL v3 |
FreeIPA | GPL v3 |
WireGuard | GPL v2 (în kernel) |
Apache Guacamole | Apache 2.0 |
step-ca | Apache 2.0 |
Ollama | MIT |
Qwen3 / Mistral | Apache 2.0 |
Componentele sunt gratuite ca licență. Valoarea sistemului pentru instituție este serviciul de operare: instalare, suport, operare infrastructură, actualizări, certificare, garanții SLA.
19. Referințe și precedente
Jandarmeria Franceză: ~103.000 stații Linux din 2008. Economie cumulată semnificativă, echipă mică de menținere.
Schleswig-Holstein (Germania): ~30.000 stații, 80% migrate. Amortizare raportată sub 1 an.
openDesk / ZenDiS (Germania): suită de colaborare open-source susținută de stat. Sistemul e complementar (OS layer).
DINUM (Franța, aprilie 2026): directivă de migrare de pe Windows pe Linux în administrația publică.
Kogaion Linux (Cluj, 2015): prima încercare românească — a eșuat prin bază tehnică greșită și lipsa unui model de operare. Acest proiect învață din acele greșeli.
Interoperable Europe Act (2024/903): obligație legală de a prioritiza open-source în achiziții publice.
Atacul asupra Forțelor Aeriene Române (aprilie 2026): conturi email compromise prin routere și furt de credențiale — exact vulnerabilitatea pe care WireGuard + mașina enrolled o elimină structural.
Sistem de Operare Suveran pentru Administrația Publică
Un desktop Linux imutabil pentru administrația publică, construit integral pe componente open-source și pe o arhitectură security-first. Înlocuiește stratul de sistem de operare, office și comunicații — fără să atingă nicio aplicație sau bază de date existentă. Funcționarul lucrează la fel; dedesubt rulează Linux, nu Windows.
Documentul de mai jos descrie arhitectura tehnică completă: sistemul de operare, rețeaua și securitatea, autentificarea, stratul AI cu guardrails, modelul de acces și disaster recovery.
1. Prezentare generală
Un sistem de operare Linux customizat pentru administrația publică românească. Înlocuiește stratul desktop (OS, office, email, chat, video, antivirus, endpoint management). Nu înlocuiește nicio aplicație existentă, nicio bază de date, niciun backend.
Funcționarul deschide browserul, accesează Avansis Taxe / SEAP / SPV / registrul agricol la aceeași adresă ca înainte. Singura diferență: browserul rulează pe Linux, nu pe Windows.
2. Sistem de operare
Bază: Fedora Silverblue (imutabil, bazat pe OSTree)
De ce Silverblue, nu Ubuntu/Debian:
Sistemul de fișiere root este read-only. Funcționarul nu poate instala nimic, nu poate modifica nimic, nu poate strica nimic.
Actualizări atomice cu rollback automat — dacă un update strică ceva, reboot-ul revine la versiunea anterioară în 30 de secunde.
OSTree permite actualizări diferențiale (doar delta-ul se descarcă, nu imaginea completă).
rpm-ostree composegenerează imaginea dintr-un treefile YAML — reproducibil, versionat, auditat.
Componente imagine:
Kernel Linux (din Fedora, cu patch-uri de securitate)
GNOME Desktop (lockdown mode — fără terminal, fără setări avansate, fără instalare de software)
Firefox ESR (singurul browser, configurat cu politici enterprise)
ONLYOFFICE Desktop Editors (Flatpak, handler default pt .docx/.xlsx/.pptx)
Element Desktop (Flatpak, chat securizat)
WireGuard (integrat în kernel, always-on)
Configurări de securitate: SELinux enforcing, USB storage disabled, LUKS2 pe disc complet
Customizare vizuală: Temă GNOME cu branding propriu. Dock cu aplicațiile esențiale: Fișiere, Email, Chat, Video, Office, Browser. Fără clutter, fără confuzie.
Locale și limbă: Keyboard layout românesc (standard + programator). Dicționar spell-check românesc și maghiar în ONLYOFFICE și Firefox. Interfața GNOME, ONLYOFFICE, Element — disponibile în română și maghiară (relevant Harghita/Covasna/Mureș). Selectare la instalare, modificabil din setări.
Printare și scanare: CUPS gestionează imprimantele. Driver-e: HPLIP pentru HP (nativ), Gutenprint pentru majoritatea celorlalte mărci. Scanere prin SANE. Imprimantele de rețea (cele mai comune în primării) funcționează prin IPP fără driver-e specifice.
Politica de actualizări:
Patch-uri de securitate: push automat de la hub, fără opțiune de amânare. OSTree aplică la reboot, rollback automat dacă boot-ul eșuează.
Update-uri de funcționalitate: push cu 72h preview. Instituția primește notificare. Se aplică la următorul reboot programat.
Update-uri majore (OS): staged rollout — 5% din flotă primele, monitorizare 48h, apoi restul.
Orice update poate fi reverted prin
rpm-ostree rollback— funcționarul vede „Versiunea anterioară" în meniul de boot.
Debugging în producție: Silverblue include toolbox nativ — container Fedora mutabil pornit în 5 secunde, cu acces la unelte de diagnostic (strace, tcpdump, gdb). Zero impact pe sistem, fără reboot. Imutabilitatea nu blochează debugging-ul real.
Instalare: USB bootabil. 5 ecrane (limbă, disc, parolă, nume instituție, confirmare). 20 minute.
3. Suită office — ONLYOFFICE
Alegere: ONLYOFFICE, nu LibreOffice, nu Collabora Online.
De ce:
Compatibilitate .docx/.xlsx/.pptx superioară LibreOffice
Colaborare în timp real nativă
AI integration nativă cu modele locale via Ollama
MCP server — agenți AI pot automatiza operațiuni cu documente
Adoptată de guvernul francez
Integrare: Desktop (Flatpak, handler MIME default) și browser (integrat în Nextcloud prin connector oficial). Utilizatorul editează offline sau colaborativ; Nextcloud montat ca folder WebDAV.
Template-uri documente: Guvernul folosește sute de template-uri standardizate — dispoziții de primar, hotărâri de consiliu, certificate urbanism, autorizații construire, procese verbale. Fiecare template se deschide în ONLYOFFICE, se verifică vizual, se corectează unde e necesar, apoi se distribuie prin Nextcloud (read-only pentru funcționari). Funcționarul creează o copie locală când are nevoie de un document nou.
4. Stiva de comunicații
Construită pe protocoale deschise. Interoperabilitate pe protocoale, nu pe implementări identice (Matrix federează cu Matrix, Nextcloud share-uiește cu Nextcloud, Jitsi se conectează la Jitsi).
Funcție | Componentă | Protocol | Înlocuiește |
|---|---|---|---|
Chat / mesagerie | Element + Synapse | Matrix | WhatsApp personal |
Videoconferințe | Jitsi Meet | WebRTC / SIP | Zoom / Teams |
Stalwart Mail Server | SMTP / IMAP | Gmail personal / Exchange | |
Fișiere | Nextcloud | WebDAV | USB sticks / atașamente email |
Calendar | Nextcloud Calendar | CalDAV | Calendar pe hârtie / Google Calendar |
Identitate | FreeIPA | LDAP / Kerberos | Parole Windows locale |
Calendar: modul Nextcloud nativ (CalDAV). Termenele legale (30 zile răspuns la petiții, termene urbanism) se sincronizează pe mobil fără app suplimentar. Integrabil cu bot Matrix care trimite remindere în canalul instituției.
De ce Stalwart: un singur binar Rust. SMTP + IMAP + JMAP + antispam + DKIM, configurare într-un fișier TOML — potrivit pentru o primărie de 30 de oameni, nu un stack enterprise supradimensionat.
5. Rețea și securitate — WireGuard
5.1 Principiul de bază
Fiecare stație are WireGuard always-on, configurat la instalare. Tot traficul de la fiecare mașină trece printr-un tunel criptat către hub-ul instituției / hub-ul național. Utilizatorul nu știe că există. Nu trebuie să-l pornească.
Ce înseamnă practic:
Un router compromis vede doar pachete WireGuard criptate. Nu vede emailuri, nu vede parole, nu vede conținut.
Emailul instituțional nu e accesibil din internet public — stă pe server on-premises, în rețeaua WireGuard.
Compromiterea unei stații nu dă acces la altele — fiecare mașină are tunel separat cu cheie unică, iar izolarea est-vest e impusă la hub, nu presupusă (§5.6).
De ce WireGuard (nu OpenVPN, nu IPsec):
~4.000 linii de cod (vs ~600.000 OpenVPN) — verificabil formal
În kernel-ul Linux din 5.6 — nu rulează în userspace
~3% overhead (vs ~20% OpenVPN)
Reconectare instantanee la schimbarea rețelei (roaming)
Criptografie fixă (Curve25519 + ChaCha20 + Poly1305) — fără negociere de cipher suite, fără downgrade attacks
5.2 Topologie — infrastructură distribuită
Serviciile de control — WireGuard endpoint, replică FreeIPA, mirror OSTree, homeserver Matrix, monitoring agregat — rulează pe mai multe noduri cloud independente, cu redundanță geografică și failover automat. Nu există un datacenter fizic dedicat și nu există un singur punct de eșec.
De ce distribuit pe mai multe noduri: redundanță geografică și independență față de un singur furnizor cloud. FreeIPA multi-master replică între noduri — un funcționar se autentifică identic indiferent de care nod e accesibil.
Server local per instituție (autonomie offline): Prima mașină dintr-o instituție rulează și o replică FreeIPA locală, plus Nextcloud/Element/Stalwart locale. Consecință: instituția continuă să autentifice și să funcționeze chiar dacă toate nodurile naționale sunt inaccesibile.
Ce face fiecare nod:
FreeIPA multi-master replication: conturi, politici, revocări — replicate pe toate nodurile.
OSTree repo mirror: instituția trage update-ul de la cel mai apropiat nod.
Matrix federation: mesajele se replică pe toate nodurile.
WireGuard multi-endpoint: fiecare mașină are mai multe endpoint-uri configurate. Failover automat în secunde.
Enrollment: O instituție instalează sistemul de pe USB, introduce un cod de enrollment și se conectează automat la nodul cel mai apropiat. Zero vizită fizică.
5.3 Securitate endpoint
LUKS2 + parolă la boot: discul complet criptat. Fără parolă, discul e zgomot.
SELinux enforcing: Mandatory Access Control. Procesele au acces doar la ce e definit explicit.
USB storage disabled: reguli udev care blochează mass storage. Tastatura/mouse-ul funcționează.
Sistem imutabil: root filesystem read-only. Malware-ul nu poate modifica sistemul.
ANSSI BP-028: profil de securitate verificat cu OpenSCAP la fiecare build.
Fără antivirus: nu din neglijență, ci structural. Sistem imutabil + SELinux + sandbox Flatpak + lipsa ecosistemului de malware Linux elimină vectorii de atac. Monitorizarea se face prin audit logging centralizat.
Stratul de endpoint închide structural vectorul de execuție on-host mult mai bine decât o flotă Windows tipică: root imutabil, SELinux, fără USB, sandbox Flatpak, fără ecosistem de malware.
5.4 DNS și PKI intern
DNS: CoreDNS pe fiecare hub. Domeniul intern .gov.intern — fiecare instituție primește subdomeniu automat la enrollment (ex: floresti.gov.intern). Rezoluția trece prin WireGuard — serviciile interne nu sunt vizibile din internet public.
PKI: step-ca emite certificate TLS automat pentru fiecare serviciu intern, cu expirare scurtă (24h) și reînnoire automată (ACME). Eliminare totală a certificatelor self-signed. Fiecare stație are root CA-ul pre-instalat în trust store. Cheia root nu stă pe un nod expus (§5.8).
5.5 Cerințe de bandwidth
Chat + email + fișiere mici: 2 Mbps — suficient pentru o comună cu 15 funcționari
Videoconferințe (720p): 1.5 Mbps per participant activ
OS updates (OSTree delta): ~50-200 MB, descărcat în background, nu blochează rețeaua
AI inference: neglijabil — câțiva KB per request
QoS pe tunelul WireGuard prioritizează chat/email (latency-sensitive), apoi fișiere/backup, apoi video (degradabil). Chat-ul nu e afectat niciodată. Majoritatea comunelor au 50-100 Mbps de fibră — bandwidth-ul nu e un blocker real în România.
5.6 Segmentare est-vest (impusă, nu doar criptată)
Tunel separat cu cheie unică per stație previne reutilizarea cheilor și permite revocare individuală — dar nu izolează stațiile între ele. O rețea criptată dar plată e tot plată: criptarea protejează conținutul pe fir, nu previne mișcarea laterală. De aceea izolarea e impusă la hub:
AllowedIPsscoped: fiecare stație rutează DOAR către serviciile instituției sale, niciodată către alte stații.nftablesdefault-deny est-vest: forward între peer-ii-stație blocat; permis doar stație → servicii-instituție.Izolare inter-instituție: stațiile instituției A nu pot ruta către subrețeaua instituției B.
Rezultat: o stație compromisă vede doar serviciile propriei instituții. Zero mișcare laterală.
5.7 Întărirea nodurilor expuse la internet
Hub-ul este singura suprafață publică a întregului sistem — singurul lucru pe care un atacator îl poate atinge neautentificat:
Un singur port public: WireGuard (UDP). FreeIPA, Matrix, Nextcloud, OSTree, dashboard-uri — toate ascultă doar pe interfața WireGuard, invizibile din internet.
Fără SSH public. Administrarea se face prin WireGuard; portul 22 nu răspunde pe IP-ul public. Zero fallback.
nftablesdefault-deny inbound, allow doar portul WireGuard + established + egress.Suprafață minimă: fără pachete inutile, listeneri auditați la fiecare build.
5.8 Managementul secretelor de infrastructură
Cea mai frecventă cauză de escaladare masivă într-o breșă de administrație nu e un exploit sofisticat — e un fișier centralizat cu credențiale în plaintext (login-uri de echipamente, parole, community strings SNMP). Sistemul nu ține niciodată un asemenea inventar.
Fără fișier de inventar de credențiale. Secretele (chei WireGuard, parola Directory Manager FreeIPA, cheia root step-ca, cheia de semnare OSTree, credențiale backup) se injectează la runtime dintr-un secret manager self-hosted în perimetrul WireGuard. Nu se stochează în repo, nu în inventarul de automatizare.
SNMP: v3 cu auth+priv, sau deloc. Niciodată community strings default.
Chei critice offline: cheia root step-ca și cheia de semnare OSTree — offline / HSM, niciodată pe un nod expus.
Conturi de serviciu scoped + rotite: identitățile non-umane care leagă serviciile de backend-urile lor au privilegii minime, credențiale unice și rotație automată.
6. Autentificare — model pe trepte
Principiu fundamental: Mașina enrolled este primul factor de autentificare, la zero cost hardware suplimentar. Fiecare stație are o cheie privată WireGuard unică, generată la instalare, stocată pe disc criptat LUKS2. Fără acea mașină fizică, atacatorul nu e în rețea — indiferent de ce parole fură.
Nivel | Ce include | Cine |
|---|---|---|
Standard | Mașină enrolled (factor 1) + parolă FreeIPA (factor 2) | Toate comunele |
Avansat | + Cheie USB FIDO2 (YubiKey / SoloKeys) | CJ, primării mari, Finanțe |
Maxim | + Smartcard cu certificat PKI | Militar, clasificat, NATO |
Nivelul standard (zero cost) previne structural atacurile remote — atacatorul nu poate face nimic fără acces fizic la o mașină enrolled. Nivelurile superioare se adaugă pe măsură ce instituția necesită.
Autonomie offline a instituției. Autentificarea nu depinde de conectivitatea la nodurile naționale: replica FreeIPA locală plus cache-ul SSSD asigură că funcționarii se autentifică și lucrează chiar dacă nodurile naționale sunt inaccesibile.
7. Aplicații guvernamentale — Flatpak webview sandboxat
Problema: Funcționarul accesează Avansis Taxe, SEAP, SPV printr-un browser general-purpose unde poate naviga oriunde, instala extensii, cădea în phishing.
Soluția: Fiecare aplicație guvernamentală devine un Flatpak care conține un webview WebKitGTK blocat:
Fără address bar — funcționarul nu poate tasta URL-uri. Zero phishing.
Un singur endpoint — aplicația se conectează la exact un URL.
Certificate pinning — acceptă doar CA-ul intern. MITM imposibil.
Sandbox Flatpak — rețeaua limitată la hostname-ul backend-ului. Compromiterea unei aplicații nu dă acces la altele.
Autentificare automată — sesiunea FreeIPA injectată în webview. Fără login screen.
Distribuție: Repo Flatpak curat, gestionat de echipa de operare. Vendorii submit manifest, echipa verifică, semnează, publică. Update la nivel național: push la repo, toate mașinile primesc.
Firefox rămâne pe sistem ca browser secundar pentru navigare generală, blocabil la domenii *.gov.intern pentru utilizatorii care nu au nevoie de navigare liberă.
8. Aplicații legacy Windows — Apache Guacamole
Unele aplicații guvernamentale sunt .exe care rulează doar pe Windows. Soluția: gateway de remote desktop în browser. Zero software instalat pe stație.
Setup: 1-3 mașini Windows (fizice sau VM) în server room, cu aplicațiile legacy instalate. Guacamole intermediază — funcționarul face click pe icon, se deschide un tab de browser cu aplicația Windows, o folosește normal, închide tab-ul. Stația Linux nu a avut niciodată Windows. Bazele de date din spatele aplicațiilor: complet neatinse.
Planul Windows este izolat agresiv — este singura reintroducere a unei suprafețe pe care restul designului o elimină:
Segment de rețea propriu, izolat prin
nftables. VM-urile nu pot ruta către serviciile instituției, către alte stații sau către alte instituții. Reachable doar dinspre gateway-ul Guacamole, pe RDP.Fără domain join, fără credențiale partajate. Compromiterea unei VM nu oferă identități reutilizabile.
Efemere / snapshot-restore. VM-urile pornesc dintr-o imagine curată și se resetează periodic. Un ransomware aterizat pe VM e șters la următorul restore.
Fără acces la internet general. Egress permis doar către endpoint-urile strict necesare.
Restricție absolută: Niciodată Guacamole pe mobil.
Semnătura electronică se gestionează pe trepte, în ordinea priorității: (1) token PKCS#11 nativ pe Linux (OpenSC + Firefox), (2) semnătură cloud calificată (independent de OS), (3) Guacamole ca fallback pe VM-ul Windows.
9. AI — server-side, ierarhizat, cu guardrails
9.1 Principiu
Modelele AI nu rulează pe PC-ul funcționarului. Rulează pe servere, în perimetrul securizat, accesate prin API OpenAI-compatible.
9.2 Niveluri de inferență
Nivel | Model | Servește | Capabilități |
|---|---|---|---|
Central (server de inferență dedicat) | Mistral Small 24B / Qwen3 30B | Toate instituțiile | Documente legale complexe, analiză legislativă, rapoarte |
Instituție mare (opțional, fără GPU) | Qwen3 4B (CPU) | Utilizatori locali | Gramatică, diacritice, rezumate, template fill |
Routing: cererea merge la modelul local dacă există; dacă depășește capabilitatea, se rutează la nodul central prin WireGuard. Transparent pentru utilizator.
Offline: dacă legătura pică, modelul local continuă să funcționeze. Calitate redusă dar funcțional. Indicator pe ecran: „Mod local".
9.3 Regula critică: retrieval vs generation
AI nu produce niciodată text final. AI produce sugestii structurate pe care omul le asamblează.
Clasificare pe culori, enforced în proxy layer (nu în aplicație):
Clasificare | Ce face AI-ul | Exemple |
|---|---|---|
VERDE | Acționează liber | Gramatică, diacritice, formatare, traducere RO↔HU |
GALBEN | Sugerează, omul selectează | Paragrafe din template, câmpuri pre-fill |
ROȘU | Retrieval only, zero generare | Referințe legale, date cetățean, sume, termene |
Pentru referințe legale: AI-ul caută în baza de legislație (PostgreSQL + pgvector) și returnează textul exact cu sursă. Nu generează, nu parafrazează. Funcționarul bifează articolele relevante; se inserează verbatim.
Validare: fiecare referință din textul generat e verificată automat contra bazei de legislație. Articol existent → ✓. Articol inexistent (halucinație) → ⚠, semnalat înainte ca textul să intre în document.
Retrieval-ul ROȘU nu devine canal de exfiltrare: rate-limiting per utilizator pe interogările de date cetățean, anomaly detection (volum atipic → alertă + throttling), audit per interogare. Un singur cont nu poate extrage la scală prin asistent.
Audit trail complet: fiecare request AI logat. Fiecare document final păstrează diff-ul între sugestia AI și versiunea semnată de om.
9.4 Integrare în aplicații
ONLYOFFICE: plugin AI nativ către endpoint-ul intern Ollama.
Element/Matrix: bot AI (
@asistent:institutie.gov.intern) răspunde la/ai caută legislația privind...Flatpak webviews: sidebar AI contextual per aplicație (asistentul de la Taxe nu vede dosarele DGASPC).
9.5 Nodul de inferență ca nod de mare valoare
Nodul de inferență e tratat ca resursă critică: acces API doar prin WireGuard (niciun endpoint public); fără stocare persistentă a conținutului interogărilor dincolo de logul de audit necesar; izolat de rețea (rutează doar către baza de legislație și proxy-ul de audit); enforcement server-side al clasificării VERDE/GALBEN/ROȘU, imposibil de ocolit din client; rate-limiting global + per-instituție.
10. Mobil
Tier | Ce primește | Cine | MDM |
|---|---|---|---|
1 — Chat only | Element pe telefon personal. E2E encrypted. Revocabil remote. | Toți | Nu |
2 — Work profile | Container izolat (Android Enterprise). Element + Nextcloud read-only + browser managed pe VPN. | Opt-in | Da |
3 — Gov device | Telefon instituțional, full lockdown, app whitelist, auto-wipe. | Primar, secretar, legal | Da |
Default: Tier 1 pentru toți. Înlocuiește WhatsApp cu zero friction. Niciodată Guacamole pe mobil.
11. Self-serve install
Flow: Boot USB → limbă → selectare disc (LUKS2 auto-criptare) → parolă admin + parolă boot → nume instituție → confirmare → instalare 15-20 minute. Prima mașină dintr-o instituție devine și server local.
Enrollment mașini noi — pe trepte:
Aceeași rețea LAN (99% din cazuri): auto-discovery prin mDNS. Mașina nouă găsește serverul, generează keypair WireGuard, serverul o adaugă ca peer cu
AllowedIPsscoped pe instituție (§5.6). Zero input.Rețele separate: serverul afișează pe dashboard un cod de enrollment valabil 15 minute. Ca pairing-ul Bluetooth.
Fără rețea la setup: serverul generează fișier de enrollment pe USB (cheie WireGuard, certificat CA, config FreeIPA). Refolosibil.
Conectare la hub-ul național: adminul introduce un cod de pe portalul hub-ului. Tunel WireGuard stabilit, federare Matrix activă, OSTree trage de la hub.
12. Monitoring și fleet management
Dashboard centralizat. Fiecare mașină enrolled raportează: versiune OS și ultimul update, stare WireGuard, spațiu disc, uptime, status backup, compliance ANSSI (ultimul scan OpenSCAP).
Acțiuni remote: push update, reboot, revocare cont, lock stație. Datele de monitoring trec prin WireGuard — nu sunt accesibile din internet. Credențialele de automatizare sunt injectate la runtime (§5.8), nu stocate în inventar.
Logging centralizat / SIEM (conform NIS2): auditd pe fiecare stație → forwarding prin WireGuard → agregare pe hub. Evenimente critice logate: login-uri eșuate repetate, tentative USB, procese neautorizate, acces refuzat SELinux, tentative de trafic est-vest blocate (§5.6), interogări ROȘU atipice (§9.3), activitate anormală pe planul Windows (§8). Alerting automat pe Matrix bot. Retenție minim 1 an. La nivel de hub, logurile tuturor instituțiilor sunt corelabile — un atac care vizează mai multe instituții simultan e vizibil din dashboard-ul central.
Help desk: canal Matrix #suport per instituție. Bot-ul creează automat ticket (număr, timestamp, descriere, mașina afectată). Adminul răspunde în chat sau face intervenție remote. Zero software suplimentar.
13. Model de acces — nivele
Același distro, aceeași imagine OSTree pe toate mașinile. Diferența e cine se loghează. FreeIPA gestionează grupuri de acces. Un singur web dashboard, un singur codebase — RBAC prin FreeIPA decide ce vede fiecare utilizator.
Tier 0 — Echipă core. FIDO2 obligatoriu + parolă FreeIPA. Acces la toate hub-urile, push OS național, politici globale de securitate, administrare repo Flatpak, deploy modele AI, revocare orice enrollment, monitoring național, audit logs globale. Administrarea hub-urilor se face prin WireGuard (§5.7).
Control cu cuorum pentru acțiuni naționale distructive. Autentificarea de sesiune autentifică sesiunea; nu oprește o sesiune deturnată sau malware pe mașina admin-ului. De aceea acțiunile cu rază națională (push imagine OSTree la flotă, revocare în masă, modificare politici globale, semnare repo Flatpak) necesită: semnare per-acțiune hardware-backed pe payload-ul exact al acțiunii; control cu două persoane (M-din-N); confirmare out-of-band pe un al doilea dispozitiv. Cheia de semnare OSTree e protejată offline / HSM, cu semnare de cuorum.
Tier 1 — Administrator hub regional. FIDO2 + parolă. Monitoring și enrollment instituții din zonă, forțare update, gestionare conturi în zonă, politici regionale. Nu poate: modifica imaginea OS, accesa alte hub-uri, modifica politici globale, administra repo Flatpak.
Tier 2 — Admin instituție. Mașină enrolled + parolă (tier standard). Adaugă/elimină utilizatori locali, monitoring mașini proprii, gestionare Nextcloud și Element/Matrix, verificare backup local. Nu poate: modifica politici de securitate, push update-uri OS, accesa alte instituții, instala software.
Tier 3 — Funcționar. Mașină enrolled + parolă. Folosește aplicațiile din dock, AI asistent, editare/comunicare/video. Nu poate: nicio funcție administrativă, terminal, instalare software, USB storage, modificare setări sistem. Desktop blocat complet.
14. Backup și disaster recovery
Nivel instituție: fișierele (Nextcloud) sync automat către hub prin WireGuard; email (Stalwart) backup zilnic pe hub (retenție 90 zile); FreeIPA replicat multi-master + replică locală per instituție; Matrix federat pe hub-uri. Restore: reinstalarea sistemului (20 min) + re-sync de la hub.
Nivel infrastructură: cross-backup zilnic între noduri (Nextcloud, FreeIPA, Matrix, configurări). Dacă un nod pică sau e compromis, celelalte preiau automat instituțiile din zona afectată (WireGuard failover); instituțiile nu simt întreruperea. Backup off-site pe storage S3-compatibil în altă jurisdicție, retenție 90 zile. Restore test lunar automatizat — backup-ul care nu e testat nu e backup.
Strat de arhivare imutabil (WORM) pentru retenție legală: documentele cu obligații de arhivare 10-50 ani (stare civilă, cadastru, autorizații) se scriu într-un strat imutabil (object lock). Odată scris, un document de arhivă nu poate fi modificat sau șters până la expirarea perioadei legale. Un eveniment de ransomware nu atinge arhiva legală.
15. Migrare — cum muți o primărie
Inventar (1 zi): PC-uri, imprimante/scanere, aplicații (web vs .exe), semnătura electronică, template-uri critice.
Faza 1 — Chat mai întâi (săpt. 1-2): Element pe telefoane. Nimeni nu atinge PC-urile. Canale #general, #suport, #juridic, #contabilitate. Migrare de pe WhatsApp, complet voluntară — nu forțezi, arăți.
Faza 2 — Server + fișiere (săpt. 2-3): prima mașină ca server (Nextcloud, Stalwart, ONLYOFFICE server-side, replică FreeIPA locală). Migrare fișiere → Nextcloud. Testare template-uri și imprimante.
Faza 3 — Desktop-uri, pe rând (săpt. 3-6): 3-5 „early adopters" mai întâi; Windows-ul vechi rămâne pe alt disc ca fallback. 1-2 zile suport intensiv. Dacă merge 5 zile → extindere. Dacă blochează → se rezolvă, nu se forțează.
Faza 4 — Ultimele mașini + decommission Windows (săpt. 6-8): funcționarii rămași; aplicații legacy → Guacamole; semnătura → soluția aleasă; discurile vechi șterse sau păstrate 30 zile.
Ce NU migrezi: emailul vechi din Gmail personal, fișierele personale de pe desktop-uri (funcționarul decide), nicio aplicație backend.
Reducerea fricțiunii — moduri de afișare
Cea mai mare barieră nu e tehnică, e psihologică. Sistemul livrează 3 moduri vizuale, schimbabile printr-o comandă, fără reinstalare, fără reboot:
Familiar Mode (default la migrare): GTK theme inspirat din Windows 10 (taskbar jos, buton Start stânga, file manager Windows-like). Tehnic e tot GNOME pe Silverblue.
Modern Mode: GNOME standard.
Mod propriu: branding propriu, design distinct.
De ce contează: reduce training-ul de la zile la ore; schimbă conversația din „migrăm la Linux" în „actualizăm sistemul". Deployment-urile europene reușite (Schleswig-Holstein, Vienna, LiMux) au raportat familiaritatea vizuală ca factor critic de acceptare. Familiar Mode folosește teme inspirate open-source, nu elemente protejate de trademark.
16. Roadmap
Accesibilitate: GNOME are suport nativ (Orca screen reader, contrast ridicat, fonturi mari) — obligatoriu legal (Directiva EU 2016/2102). Doar configurare.
Director instituțional: frontend simplu peste datele FreeIPA (nume, email, funcție, instituție).
Multi-monitor: nativ GNOME.
Periferice speciale: cititoare coduri de bare (HID nativ), imprimante termice, cititoare card cetățean — pe bază de cerere.
Grupuri de lucru inter-instituționale: Nextcloud rooms + Matrix spaces tematice pentru proiecte cross-instituție.
17. Ce NU face sistemul
Nu înlocuiește Avansis Taxe, registrul agricol, SEAP, SPV, ForexeBug, e-Factura
Nu înlocuiește bazele de date existente
Nu necesită hardware nou (rulează pe tot ce a rulat Windows 10)
Nu necesită internet permanent (funcționează complet offline la nivel de instituție)
Semnătura electronică se gestionează prin stratul de tranziție (token PKCS#11 nativ / semnătură cloud / Guacamole)
18. Componente și licențe
Componentă | Licență |
|---|---|
Fedora Silverblue | MIT + diverse OSS |
GNOME Desktop | GPL |
ONLYOFFICE Community | AGPL v3 |
Element / Synapse | Apache 2.0 |
Jitsi Meet | Apache 2.0 |
Nextcloud | AGPL v3 |
Stalwart Mail | AGPL v3 |
FreeIPA | GPL v3 |
WireGuard | GPL v2 (în kernel) |
Apache Guacamole | Apache 2.0 |
step-ca | Apache 2.0 |
Ollama | MIT |
Qwen3 / Mistral | Apache 2.0 |
Componentele sunt gratuite ca licență. Valoarea sistemului pentru instituție este serviciul de operare: instalare, suport, operare infrastructură, actualizări, certificare, garanții SLA.
19. Referințe și precedente
Jandarmeria Franceză: ~103.000 stații Linux din 2008. Economie cumulată semnificativă, echipă mică de menținere.
Schleswig-Holstein (Germania): ~30.000 stații, 80% migrate. Amortizare raportată sub 1 an.
openDesk / ZenDiS (Germania): suită de colaborare open-source susținută de stat. Sistemul e complementar (OS layer).
DINUM (Franța, aprilie 2026): directivă de migrare de pe Windows pe Linux în administrația publică.
Kogaion Linux (Cluj, 2015): prima încercare românească — a eșuat prin bază tehnică greșită și lipsa unui model de operare. Acest proiect învață din acele greșeli.
Interoperable Europe Act (2024/903): obligație legală de a prioritiza open-source în achiziții publice.
Atacul asupra Forțelor Aeriene Române (aprilie 2026): conturi email compromise prin routere și furt de credențiale — exact vulnerabilitatea pe care WireGuard + mașina enrolled o elimină structural.