Această pagină poate fi doar citită. Poți vedea sursa, dar nu poți modifica pagina. Consultă administratorul dacă ești de părere că ceva este în neregulă. ====== Semnătura digitală românească pe Linux ====== <note important> **Notă importantă:** Informațiile din acest articol sunt bazate pe documentație publică și experiențe raportate de utilizatori. Nu au fost testate recent pe un sistem Linux actual cu un certificat românesc real. Dacă ai testat acest proces și vrei să contribui cu experiența ta, te rugăm să ne contactezi sau să lași un comentariu. Orice corecție sau completare este binevenită. </note> ===== Ce este semnătura digitală calificată? ===== Semnătura digitală calificată este echivalentul electronic al semnăturii olografe, recunoscută legal în România și în Uniunea Europeană conform Regulamentului **eIDAS** (EU 910/2014). Ea garantează identitatea semnatarului și integritatea documentului semnat. În România, certificatele de semnătură digitală calificată sunt emise de furnizori acreditați de MCID (Ministerul Cercetării, Inovării și Digitalizării): * **certSIGN** - cel mai răspândit furnizor * **DigiSign** * **Trans Sped** * **DIGISIGN** (pentru servicii ANAF) Certificatul vine de obicei pe un **token USB criptografic** - un dispozitiv care arată ca un stick USB obișnuit, dar conține un cip securizat pe care este stocată cheia privată. Există și variante pe **smart card** fizic, care necesită un cititor de card separat. ===== Este compatibil cu Linux? ===== **Răspuns scurt: tehnic da, practic cu rezerve.** Certificatele românești sunt bazate pe standarde internaționale deschise - **PKCS#11**, **X.509** și **eIDAS** - deci nu există o incompatibilitate fundamentală cu Linux. Problema principală nu este standardul, ci **software-ul furnizorului**, care este gândit aproape exclusiv pentru Windows. Furnizorii români nu testează și nu susțin oficial Linux. Asta înseamnă că: * Driverele există, dar sunt adesea versiuni mai vechi față de cele pentru Windows * Documentația pentru Linux este inexistentă sau depășită * Dacă ceva nu funcționează, suportul tehnic al furnizorului va recomanda Windows * Unele aplicații desktop ale ANAF sunt exclusiv pentru Windows Cu toate acestea, comunitatea internațională de utilizatori Linux a rezolvat multe dintre aceste probleme prin proiectul **OpenSC**, o implementare open-source a standardului PKCS#11. ===== Ce ai nevoie ===== ==== Software de bază ==== <code bash> # Instalare pachete esențiale sudo apt install opensc opensc-pkcs11 pcscd pcsc-tools libccid # Pornire și activare serviciu card reader sudo systemctl enable --now pcscd </code> * **pcscd** - daemonul PC/SC care gestionează comunicarea cu tokenul * **opensc** - librărie open-source pentru tokenuri PKCS#11 * **pcsc-tools** - utilitare de diagnosticare (include ''pcsc_scan'') ==== Driver specific furnizorului ==== Pe lângă OpenSC, unii furnizori oferă propriul driver. **certSIGN folosește SafeNet Authentication Client:** <code bash> # Pachetul .deb se descarcă de pe site-ul certSIGN (secțiunea Suport/Download) sudo dpkg -i SafenetAuthenticationClient-*.deb </code> <note> Verifică dacă există o versiune Linux a driverului pentru tokenul tău specific, înainte de a achiziționa certificatul. </note> ===== Verificarea tokenului ===== După conectarea tokenului USB și instalarea driverelor: <code bash> # Verifici dacă tokenul este detectat de sistem pcsc_scan # Listează sloturile disponibile pkcs11-tool --list-slots # Listează obiectele de pe token (certificate, chei) pkcs11-tool --list-objects # Cu biblioteca SafeNet (dacă e instalată) pkcs11-tool --module /usr/lib/libeToken.so --list-slots </code> ===== Utilizare în browser - ANAF / SPV ===== Spațiul Privat Virtual (SPV) al ANAF permite autentificarea cu certificat digital calificat. Pe Linux, **Firefox** este browserul recomandat, deoarece permite adăugarea manuală a modulelor PKCS#11. ==== Configurare Firefox ==== - Deschide ''Preferințe'' → ''Confidențialitate și securitate'' - Derulează în jos până la secțiunea **Dispozitive de securitate** - Click pe ''Încarcă'' și navighează la librăria ''.so'' a driverului - Repornește Firefox după adăugarea modulului - Accesează portalul ANAF/SPV și selectează autentificarea cu certificat digital Locații uzuale pentru librăria PKCS#11: <code> /usr/lib/libeToken.so # SafeNet / certSIGN /usr/lib/opensc-pkcs11.so # OpenSC (varianta veche) /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so # OpenSC (Ubuntu/Debian) /usr/lib64/opensc-pkcs11.so # Fedora / RHEL </code> <note> Chromium și Google Chrome nu au o interfață grafică pentru PKCS#11. Configurarea este mai complexă și nu este recomandată pentru utilizatori începători. </note> ===== Semnarea documentelor PDF ===== ==== JSignPdf (recomandat) ==== JSignPdf este o aplicație Java open-source dedicată semnării digitale a fișierelor PDF. Funcționează pe orice sistem care are Java instalat. <code bash> # Instalare Java (dacă nu este deja instalat) sudo apt install default-jre # Descarcă JSignPdf de pe https://jsignpdf.sourceforge.net # Rulează aplicația java -jar JSignPdf.jar </code> În interfața grafică a JSignPdf: * **Keystore type:** selectează ''PKCS11'' * **Keystore source:** calea către fișierul ''.so'' al driverului * Selectează documentul PDF de semnat și locul unde va fi salvat ==== LibreOffice (integrat) ==== LibreOffice Writer și Calc au suport nativ pentru semnătura digitală, dacă tokenul este recunoscut de sistem: ''Fișier'' → ''Semnături digitale'' → ''Semnează documentul'' ==== Linie de comandă cu OpenSSL ==== <code bash> openssl smime -sign \ -engine pkcs11 \ -keyform engine \ -inkey "pkcs11:token=NUME_TOKEN;object=CHEIE_PRIVATA" \ -signer certificat.pem \ -in document.pdf \ -out document.pdf.sig </code> ===== Ce funcționează și ce nu ===== ^ Funcționalitate ^ Status ^ | Detectarea tokenului USB | ✅ Funcționează cu OpenSC | | Autentificare SPV/ANAF în Firefox | ✅ Funcționează cu configurare | | Semnare PDF cu JSignPdf | ✅ Funcționează | | Semnare în LibreOffice | ✅ Funcționează | | Aplicații desktop ANAF (.exe) | ❌ Exclusiv Windows (posibil prin Wine) | | Suport tehnic oficial de la furnizor | ❌ Indisponibil pentru Linux | | Tokenuri mai noi (firmware recent) | ⚠️ Incert - depinde de driver | ===== Depanare ===== ^ Problemă ^ Soluție posibilă ^ | Tokenul nu este detectat | ''sudo systemctl restart pcscd'' | | Firefox nu vede modulul | Repornire Firefox după adăugarea librăriei PKCS#11 | | Eroare la autentificare | Verifică PIN-ul; după 3 greșeli tokenul se blochează | | PIN blocat | ''pkcs11-tool --unblock-pin'' sau SafeNet AC pe Windows | | Librăria ''.so'' nu există | ''find /usr -name "*pkcs11*"'' | | ''pcsc_scan'' nu găsește niciun cititor | ''systemctl status pcscd'' | ===== Resurse suplimentare ===== * [[https://github.com/OpenSC/OpenSC/wiki|OpenSC Wiki]] * [[https://www.certsign.ro/suport|certSIGN Suport]] * [[https://www.anaf.ro/anaf/internet/RO/sez_spv|ANAF Spațiul Privat Virtual]] * [[https://eur-lex.europa.eu/legal-content/RO/TXT/?uri=CELEX:32014R0910|Regulamentul eIDAS (RO)]] ===== Contribuie la acest articol ===== Dacă ai testat cu succes (sau fără succes) utilizarea unui certificat românesc pe Linux, informațiile tale sunt valoroase pentru întreaga comunitate. Distribuția folosită, versiunea driverului, tipul tokenului și furnizorul certificatului ne ajută să îmbunătățim acest articol. Alătură-te discuției pe [[https://linuxromania.ro/|forum]] sau [[https://chat.linuxromania.ro/|Matrix]] {{tag>semnatura semnatura-digitala linux}}