Semnatura electronica

IceCub

Membru Senior
Salutare,

Am cateva nelamuriri legate de semnatura electronica si poate e careva pe aici care s-a mai lovit de problema.
Pe scurt, vreau sa implementez in companie, la nivel intern (pentru documente interne), folosirea semnaturii electronice avansate.
Ideea mea:
- creez un Root CA pe care sa-l instalez pe masinile din companie
- in baza acelui Root CA emit certificate digitale pentru utilizatori (fiecare utilizator isi alege parola pentru acel certificat si o stie numai el).
- utilizatorii folosesc certificatele in Adobe/Nitro/whatever pentru a semna documente.
- acel Root CA fiind instalat pe fiecare masina, semnaturile vor putea fi validate.

Intrebare: se califica ideea mea ca "semnatura electronica avansata" conform legii/Regulamentului eIDAS?

Multumesc.
 
Nu aborda chestia asta tehnic, că nu e tehnică, în absolut PRIMUL rând treci prin legal-ul firmei și avocați, că e treabă serioasă. Când o să te aducă martor la proces că s-au semnat naiba știe ce tâmpenii cu certificatele tale, ce-o să zici, "ah, păi am vorbit io cu unu' de pe net, a zis că e ok"? Numa' din faptul că încurci Root CA cu Root (public) Certificate aș zice că n-o să iasă bine.

Există niște limitări ale chestiei interpretate din OUG-ul ăla, care e o prostie scrisă la repezeală și nu are un regulament clar de aplicare:
- semnătura este valabilă doar în România
- nu specifică cine poate emite certificate pentru semnături avansate și în ce mod; documentația pentru semnături calificate e groasă și clară, cu liste de emitenți auditați, dar p-asta cu semnătura avansată nu prea a apucat-o nimeni de coarne; eu n-aș interpreta asta cu avansatul prin "stai că-mi fac Root CA", doar că pentru semnătură calificată îți trebuie hardware device iar pentru avansată nu (așa că se poate pierde cheia privată mai ușor, de-aia nici nu are aceeași valoare)
- semnătura avansată este legal valabilă prin OUG doar în raport cu Statul; în rest probabil va trebui să faci acorduri cu restul de firme ca să folosești așa ceva; sau poate decideți voi că doar intern se folosește și cam atât (caz în care poate să nu fie cine știe ce); din punctul meu de vedere, dacă vii cu un PDF semnat cu certficat emis de CA-ul tău, o să-l ignor; ar trebui să am încredere completă în structura de IT a unuia în care by definition nu am încredere (pentru că dacă aveam încredere nu mai era nevoie de hârtii semnate :biggrin:), că persoana pentru care s-a emis certificatul chiar există și nu își emite fiecare câte certificate vrea... adică nu ești o autoritate de certificare, fie ea și avansată
- e greu de folosit și verificat; dacă tu îmi trimiți un document semnat cu așa ceva, în primul rând eu n-am root ca-ul tău în keystore, deci toate aplicațiile vor zice "cine naiba mai e și ăsta", apoi ar trebui să publici certificatul root undeva de încredere ca să pot să-l iau și să nu fie Ivan între noi, ar trebui să expui un serviciu OCSP sau cel puțin o listă de revocări, ca să pot verifica dacă semnătura mai era valabilă la acel moment (poate ăla a pierdut-o si eu mă conversez cu Ivan de fapt); poate și un server de timestamp, ca să fii sigur că documentul a fost semnat la ora care trebuie și nu a dat cineva ora înapoi pe PC-ul lui și a semnat cum a avut chef (înaintea datei de revocare a certificatului)
- devine treaba ta (din punct de vedere al securității) să ai grijă de un Root CA cu valoare kindof legală, neauditat și la care mai are acces și Gigel de la poartă, că nu-i mergea Quake-ul și s-a logat cineva cu contul de admin de domeniu pe calculatorul lui ca să-l facă să meargă (true story, au curățat vreo săptămână rețeaua de viruși)

BTW, Nitro PDF e un jeg la semnare, reîmpachetează PDF-ul complet diferit de Adobe și restul. Dar pe-asta o să o vezi când implementezi și verificări mai serioase de semnături...
 
Exista lege (atasament). Asta e varianta pe care o am eu de acu' 15 ani. Nu stiu daca a mai fost modificat de atunci.
Pe scurt, sunt niste firme care iti dau certificate digitale valabile dpdv. legal. Intreaba la banci spre exemplu. Nu ti le poti face singur, ca nu-s valabile. Cine ti le semneaza trebuie sa fie independente de tine ca organizatie, ca sa nu-ti falsifici propriile documente. Teoretic, RO fiind in EU, ar trebui sa fie valabile si certificatele cumparate de la firme din EU, nu doar romanesti, dar nu se specifica clar in lege. Te trimite la niste Acorduri ale EU care nu-s specificate clar.
 

Attachments

  • Legea 2001-455 Semnatura electronica.txt
    47.2 KB · Views: 11
Ei, legea aia nu zice nimic de semnături avansate. Singura lege care zice de semnături avansate e Regulamentul UE 910/2014 (spre deosebire de directive UE, unde fiecare țară trebuie să implementeze legi interne în spiritul directivei, altfel își ia amenzi, cum face RO de obicei, regulamentele se aplică direct - adică aia e noua lege). Iar dacă pentru semnătură certificată e clar cum funcționează firmele alea care-ți dau certificatele, pentru semnătură avansată nu e clar.
 
Mulțumesc de răspunsuri.
Am constatat și eu ca nu exista prea multe informații în ceea ce privește semnătura electronica avansata. Toată lumea pare sa o ignore și sare direct la cea calificata. Culmea este ca OUG 38/2020 promovează tocmai semnătura avansata.
Ideea mea era sa semnez strict documente de uz intern - pentru ca imi dau seama ca altcineva nu are cum sa o valideze. In caz de se ajungea în instanta le puneam la dispoziție CA-ul.
Pentru restul documentelor o sa am semnături calificate.
 
Io nu înțeleg o treabă. Citesc tot bla-bla-ul cerinței legislative, înțeleg că aia avansată se poate genera software pe când aia calificată necesită un token hardware + niște constrângeri în plus. Dar când vine vorba de implementarea tehnică, cel puțin pe partea de infrastructură a unei organizații, cam tot acolo ajung. Dacă e vorba de uz intern, atunci da, un CA privat e ok, cu tot lanțul de acțiuni pentru generat perechea de chei publică-privată, deploy pe stații, activat semnarea electronică etc. Dar textul cerinței specifică relația cu Statul, care va primi astfel un document sau e-mail cu semnătură electronică, bazată pe un certificat semnat de o entitate cu care nu există vreo relație de încredere. Deci ce am făcut?

Singura variantă care îmi vine în minte este de folosire a unui software care generează perechea de chei publică și privată, și apoi clientul de mail semnează cu cheia privată și întotdeauna atașează și cheia publică, cu asta făcând bypass la nevoia de a avea o autoritate de certificare pe post de terț care să confirme identitatea și să ofere la cerere cheia publică.

Dar da, bagi avocații la înaintare, chemi vreo firmă mare de consultanță să îți dea ei instrucțiunile explicite de implementare tehnică 100% conforme cu cerința legală (și, în caz de ceva, ei își asumă responsabilitatea pentru ce au definit), iar tu faci implementarea fără să ieși un punctuleț în afara documentului.
 
semnătură electronică, bazată pe un certificat semnat de o entitate cu care nu există vreo relație de încredere
Păi ceea ce e interesant e că nu scrie nicăieri că acel certificat NU e creat de un trust provider. Asta a decis "lumea" prin interpretarea acelei ordonanțe prost scrise și fără regulament de aplicare (ex: legea aia din 2001 avea un regulament de aplicare atașat, care mai lămurea chestii; asta nu are). Dar trust providerii care oferă certificate calificate oferă și certificate ne-calificate, care pot fi folosite ca semnătură avansată; sunt mai ieftine și se obțin mai ușor (nefiind nevoie de verificări face to face), dar probabil nu le scot providerii la înaintare tocmai pentru că-s ieftine :smile:.
clientul de mail semnează cu cheia privată și întotdeauna atașează și cheia publică
Nu e ca la PGP, unde poți să ai doar un fingerprint al cheii și trebuie să o cauți în altă parte. Semnătura conține certificatul tău cu tot cu cheie publică și tot chain-ul, dar dacă emitentul nu e trusted pe mașina locală (sau în keystore-ul aplicației/keystore-ul utilizatorului, acum sunt multe locuri) tot o să ai erori la validare. Singura problemă e dacă ai încredere în emitent, adică dacă o să îl pui sau nu ca trusted. La certificate calificate e simplu, iei lista de la https://comunicatii.gov.ro/trustedlist.xml

IceCub: pentru documente de uz intern OUG-ul nu contează absolut deloc; intern se dă o decizie de management că se va folosi scula X și aia e. Dar asta nu înseamnă că trebuie să acorzi importanță mai scăzută securității și corectitudinii cu care implementezi.
 
Pentru uz intern, nici nu știu dacă merită bătaia de cap să generezi certificate valabile doar intern. Poți decreta frumos că toate sistemele se bazează pe single sign-on, deci autentificarea cu contul și parola de domeniu pe stația de lucru este cheia accesului în toate sistemele informatice. De acolo, orice e-mail trimis, orice fișier încărcat pe un SharePoint, orice click făcut în vreo altă aplicație se bazează pe autentificarea făcută pe stația de lucru. Deci dacă tu ca angajat nu vrei să fii pus vreodată în situația de a da seamă pentru ceva ce a făcut altcineva folosind contul tău, vei ține de el și de parolă ca la ochii din cap. Ți-ai lăsat stația deblocată să te piși și cineva a trimis un mail din contul tău la toată firma cu „SUGEȚI ARICIU ÎMI DAU DEMISIA ADIO FRAIERILOR”, ești în întregime responsabil.
 
puterfixer, soluțiile bazate pe SSO nu cred ca se califica ca "semnătura electronica avansata" - am acces la Nitro Sign cu single sign-on si inclusiv ei spun ca nu e "avansata".

Din cate am înțeles din legislație, o semnătura electronica avansata:
- trebuie sa fie bazata pe un certificat digital (nu spune nicăieri ca trebuie sa fie calificat / emis de un Trust Provider")
- face trimitere exclusiv la semnatar
- permite identificarea semnatarului
- este creată folosind date de creare a semnăturilor electronice pe care semnatarul le poate folosi, cu un nivel ridicat de încredere, exclusiv sub controlul său - de aici deduc ca ma pot face propriul Trust Provider
-
este legată de datele folosite la semnare, astfel încât orice modificare ulterioară a datelor poate fi detectată.

In RO sunt 5 Trust Service Providers și doar unul zice ca are în oferta "certificate avansate", dar și alea la modul "contactați-ne" (probabil voi incerca sa ontin un preț de curiozitate).

Pana la urma am sa abandonez ideea de a emite propriile certificate din cauza lipsei unui regulament de aplicare a legislației.

Vă mulțumesc încă o data.
 
Păi aia zic, că pentru uz intern în firmă nu găsesc nevoia unui sistem de semnătură electronică avansată. Doar în relația cu autoritățile devine necesară ca standardizare a autenticității etc. În rest, firmele pot defini fiecare ce și cum vrea pentru uz exclusiv intern.

Am citit textul care explică ce e semnătura aia, ba chiar și alăturat în română și engleză în caz că au mucificat traducerea. Înțeleg conceptul și ideea, dar tot nu mi-e clar cum ar trebui implementarea făcută, cât timp standardele tehnice merg în direcția unor autorități de certificare pe post de trusted 3rd party, iar cheia privată putând fi în hardware sau software. Principiile PKI se bat cap în cap cu ideea ăstora că semnătura avansată 1) poate fi emisă de oricine (deci tehnic orice self-signed certificate, fără lanț de încredere sre un CA public), și 2) ar trebui să poată fi validată de oricine accesează documentul respectiv (care va da instant eroare pentru orice certificat nesemnat de vreo CA legată ierarhic la arborele de trusted CA).

Îmi pare a fi un document scremut de niște birocrați care n-au avut vreodată tangență cu tehnologia care ar trebui să înfăptuiască ideile lor crețe.
 
Chiar și în cazul uzului intern, devine totul discutabil când ajungi în instanta. Teoretic ii poți înmâna CA-ul unui expert tehnic numit de instanta sa valideze certificatul, te poți acoperi cu proceduri interne, dar vorbim totuși de România.
 
Heh, să vezi la uz intern când începi să faci verificări mai serioase și trebuie să implementezi/interfațezi toată organigrama firmei, pentru că unii mai au concediu și responsabilitățile lor trec unui înlocuitor (simplu de făcut pe hârtie, dar acum sistemul de validare trebuie să știe că între data X și data Y documentul care era în responsabilitatea lui A nu va fi semnat de persoana A ci de persoana B).
 
Am văzut implementată chestia asta - sistemul de identity&access management (IAM) avea și rol de delegate authority, și de matrice de permisiuni în funcție de job code. Pe scurt, sistemul seta în funcție de job toate permisiunile pentru toți angajații în toate sistemele, inclusiv rolurile suplimentare moștenite prin delegare. Exista și un sistem de management al excepțiilor, dar regula era că nu se dau permisiuni manuale și individuale nimănui nicăieri. Chiar și dacă încercai să dai cuiva permisiuni suplimentare în vreun sistem, venea scheduled task-ul din IAM peste tine și făcea setările la loc. Practic HR-ul era cel care determina permisiunile tuturor prin schimbarea codului de job sau al statusului angajării, și IAM făcea tot, nu ca-n alte părți unde tima zi la job era pentru a umbla pe la toți application owners să-ți confirme în scris că ți-au scos permisiunile din sistem. Doar la aplicațiile cu workflow de aprobare era un pic mai tricky, dar s-a implementat o dată chestia asta de delegare și aia a fost.
 
Da, există scule pentru așa ceva, dar presupun un alt nivel de maturitate al unei companii față de ce descrie IceCub mai sus.
 
Back
Top