Utilizare certificat in Adobe Reader cu Trans Sped

Ma gandeam sa imi fac cont pe SRL in SPV, am un certificat cloud pe care il pot exporta si importa cu o aplicatie proprietara, imi apare in certificatele din Windows si Adobe il recunoaste.

Totusi cand dau Sign in documentul de confirmare de la ANAF nu face nimic. In documentatie scrie ca trebuie sa apara o fereastra cu login si OTP din aplicatia de easySign, s-ar putea ca Adobe sa nu mai fie compatibil cu acest proces.

Am dezactivat “Use modern interface when signing” si atunci imi da eroarea:
image

La details in certificat am Algorithm Type SHA256 RSA, dar la Private key am

image

Aplicatia lor Easy Sign functioneaza, ma gandeam sa ii pun un Charles proxy si sa rescriu aplicatia cu ceva open source care functioneaza cu Adobe.

La un first try nu e asa simplu, posibil pot sa scot validarea din aplicatie, dar s-ar putea sa fie validat certificatul pe backend.

Cand incerci sa semnezi din aplicatie se deschide

image

Din Adobe nu se deschide.

E un puzzle interesant si obscur, nu cred ca cineva a mai facut reverse engineer la asa ceva. Probabil ca nu vor in mod intentionat sa folosesti o licenta cloud pentru asa ceva, dar teoretic e posibil daca se poate descarca.

cu Trans Sped am avut batai de cap mari.
Eu mi-am luat semnatura electronica paperless de la certsign si e mult mai simpla toata treaba: instalezi un programel de la ei, te autentifici, semnatura iti apare automat in adobe sau chrome (posibil si in alte browsere, n-am incercat) si cand semnezi confirmi cu un cod de pe Google Authenticator (cred ca suporta si solutia de la microsoft, nu stiu cum se numeste).

2 Likes

Am reusit sa ii fac reverse engineer,

image

Acum intrebarea e cum fac Adobe Reader sa ia o cheie pentru semnatura dupa ce obtin signature-ul (vine ca si base64) la certificat.

nu e un pic cam multa bataie de cap? is it really worth it? ar fi fun ca proiect dar daca as avea nevoie doar sa semnez niste documente as lua alt certificat sau as contacta suportul lor pentru o solutie mai rapida pe care (teoretic) ma pot baza

Le-am scris, mie mi se pare ceva foarte simplu…

CSC Remote Signature Protocols and API V1 (cloudsignatureconsortium.org) e API-ul lor.

:man_dancing:

Pentru mac nu ofera suport, dacă as putea scrie ceva script ca sa genereze o semnătura cu API-ul lor pe care sa o poți folosi în Adobe ar fi un proiect open source util.

Salut

Nu e așa complicat dacă urmezi ghidul de CSC, nu e nevoie de reverse engineer sau alte minuni. Nu vreau să-ți tai aripile, însă nu vei semna niciodată cu csc un document de la ANAF pentru că folosesc Dynamic XFA care nu e suportat nici măcar de adobe sign.

3 Likes

Așadar, cum punem semnătură electronică pe PDF-ul ăla de confirmare?

Merci pentru raspuns, sounds fun.

Am gasit ceva API cu Adobe LiveCycle, dar pentru asta trebuie Adobe Acrobat Pro.
Adobe LiveCycle * Quick Start (EJB mode): Digitally signing a PDF document using the Java API

Daca e vreun mod sa ii dau direct la Adobe Acrobat ce as trimite la

signClient.sign( 
         credDoc, 
         fieldName, 
         myCred, 
         HashAlgorithm.SHA1, 
         reason, 
         location, 
         contactInfo, 
         appear, 
         revCheck, 
        ocspSpec, 
             crlSpec, 
             tspSpec);

ar rezolva problema.

Cu LiveCycle e posibil sau poate ma induce in eroare documentatia:
Adobe LiveCycle * Digitally Signing Interactive Forms

Am mai gasit


(https://www.adobe.com/devnet-docs/etk_deprecated/tools/DigSig/Acrobat_DigitalSignatures_in_PDF.pdf)

Totusi fiindca nu merge by default, oarecum imi da senzatia ca nu o sa imi semneze nici ei documentul cand il trimit prim email deci s-ar putea sa ma chinui degeaba.

Fun stuff, deci am descoperit ca de fapt Adobe e problema…

Ca sa folosesti CSC trebuie sa obtii un hash de la documentul PDF, acest lucru e simplu daca ai un PDF cu o singura semnatura, dar daca vrei sa ai mai multe semnaturi se complica lucrurile.

Dupa ca sa semnezi trebuie sa obtii hash-ul documentului, sa il trimiti la server impreuna cu certificatul, alias-ul, respectiv parola la certificat si sa primesti semnatura pe care o scrii pe pdf (asta e partea simpla, tot API-ul CSC e deschis - ai inclusiv OpenAPI/postman)
In cazul formularului de ANAF trebuie cumva luat un hash, facut tot procesul cu CSC pana avem semnatura si dupa scrisa semnatura pe document pe primul field de semnatura si prima parte din document…

La momentul actual nu cred ca as putea face asta cumva fara LiveCycle… Deci un certificat cu CSC e inutil pentru ANAF nu fiindca nu e bun, ci fiindca Adobe nu suporta CSC nativ si nu poti semna dracovenia de formular de confirmare/declaratie cu Dynamic XFA.

Singurul mod in care probabil pot sa il fac sa mearga e sa injectez un certificat self-signed ca si placeholder in Adobe DC, sa semnez documentul si sa inregistrez din memorie tot ce se schimba in document, sa trimit hash-ul folosit pentru self-signed de Adobe la Transsped ca sa generez semnatura si dupa sa caut in memorie certificatul self-signed din document si sa il inlocuiesc cu certificatul si semnatura de la CSC. Daca planetele se alinieaza dupa ce deschizi documentul va fi valid cu semnatura CSC. E si mai complicat ca documentul XAF poate fi modificat doar cand e randat, adica ar fi prea fain sa semnez cu un placeholder si dupa sa rulez un replace pe pdf cu certificatul de la transsped.

Back in business,
Deci nu stiu cum l-au facut sa mearga in spate, dar mi-au raspuns cei de la suport.

Mi-au dat o versiune de Adobe Reader pe 32 de biti cu care am reusit sa semnez, se deschide modalul de autorizare din easySign.

Installed Acrobat: C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe
    Version: 22.1.20117.0
    Creation Date: 2022/04/07

Inca o mica mentiune:
Am gasit cum functioneaza, exista un Key Storage Provider care se deschide la semnare, dar ruleaza doar pe 32 de biti.
01_Dumitru_Togan-min.pdf (mta.ro)

Daca vreti sa va autentificati pe ANAF dupa ce s-a aprobat certificatul descarcati Chrome pe 32 de biti, pe 64 de biti nu o sa va deschida Key Storage Provider-ul pentru semnare.


certutil -csplist si certutil -csp "Trans Sped Cloud Key Storage Provider" -key -user
image
arata foarte clar problema cu Trans Sped si KSP-ul.

Pe mac os/linux nu are cum sa mearga fiindca nu exista implementare pentru certificate cu private key in cloud.

1 Like

Mda, am incercat si eu cu Adobe DC pe 64 de biti si nu mergea deloc. L-am dezinstalat si am instalat versiunea pe 32 de biti si a mers.

Urmeaza sa primesc confirmarea de la Transsped si apoi sa-mi fac contul la ANAF. Voi vedea pe urma ce alte probleme vor aparea.

Am reusit sa depun Declaratia Unica si mi-a fost acceptata. Tot de ce e nevoie e ca tot ecosistemul sa fie pe 32 de biti (Windows, Adobe Acrobat Reader, browser-ul de Internet). Nu vad cum poti face asta pe Linux si nici atat pe MacOS.

Problema e ca peste tot trebuie sa te autentifici cu certificatul digital si de fiecare data apare un prompt pentru parola si cod SMS, iar aplicatia care instantiaza aceasta e doar X86 (vorbesc aici de Certificat Cloud - nu stiu de alea care vin cu token USB).

Mi-am facut o masina virtuala care ruleaza Windows 10 - X86.

Chestia tare e ca nu poti depune Declaratia in Spatiul Virtual Privat, trebuie sa mergi pe alt site: e-guvernare.ro - acolo ai o optiune in meniu: Depunere Declaratii ANAF. Noaptea mintii. A doua zi, dar de data asta in SPV, apar “creantele” (impozit, CAS si CASS). Au bife in dreptul fiecareia ca apoi sa poti schimba suma de plata - daca vrei sa platesti sume mai mici.

O alta chestie e ca certificatul asta digital expira la un an. Eu am doar o singura declaratie + plata de facut intr-un an intreg. Deci cred ca la anul va trebui sa-mi reinnoiesc certificatul digital, sa fac o reautentificare la ANAF ca apoi sa depun Declaratia in 2023.

Nu stiu, imi lua mai putin timp sa ma duc la ghiseu.

Pentru persoana fizica nu iti trebuie certificat, poti folosi user si parola. La mine a date eroare daca nu l-am semnat, dar l-am semnat cu self-signed digital id din Adobe si asa l-a luat.
Iti trebuie certificat pentru SRL/PFA, dar iti apare in cont si persoana fizica. (pentru SRL iti depune oricum totul contabilul, la mine accesul e de fapt o curiozitate sa vad ce pot cere si depune la ANAF online pe SRL)

TransSped categoric nu e cea mai buna solutie, dar daca iti faci un VM cu Windows pe 32 de biti pe windows/mac/linux se poate utiliza la fel de bine.
Avantajul major e ca nu iti trebuie un stick si e mai ieftin sau chiar gratuit la Unicredit si cu discount la alte banci precum BCR. Il mai poti si cere de la banca, nu trebuie sa faci procedura de confirmare a identitatii.

Pai sunt PFA si am inteles ca pentru PFA ai nevoie de Certificat Digital. Ca PF simpla poti si cu user si parola.

Acuma am inteles ca unii au doar cont de PF si isi fac treaba pentru PFA ca, vorba aia, CIF-ul e de fapt CNP-ul. Eu am vrut sa fiu corect.

La mine merge autentificarea ANAF pe Windows 11 x64 si Chrome x86. :slight_smile:

Iar pentru semnat documente, merge fara probleme cu Windows 11 x64 si Acrobat Reader x64.

PS: evident, tot Transsped.

1 Like

Chrome si Acrobat Reader pe 32 biti (x86) e tot ce e necesar cu clientul EasySign, va functiona inclusiv pe Windows 11 pe ARM64 daca ai o masina virtuala pe mac cu UTM.

Daca poti semna cu Adobe Acrobat pe 64 de biti e posibil sa se fi actualizat aplicatia EasySign cu client KSP pe 64 de biti si nu mai are relevanta subiectul.

EasySign-ul e v2.6.4 si nu stiu daca a primit vreodata actualizare, asa ca am retestat acum de curiozitate.

Nu mai merge semnat document cu Acrobat Reader-ul, doar autentificarea ANAF merge la fel ca inainte. Ultima oara am semnat un document acum aproximativ o luna. Wtf? :confused:

Ti-a fost poate actualizat Acrobat Reader-ul la x64.

La browser ziceai ca e pe x86.

Pare ca ai dreptate. M-am uitat acum la documentele semnate in ultimele 6 luni, toate-s semnate cu versiunea x86 a Acrobat Reader, iar acum am instalata versiunea x64 (fapt ce m-a indus in eroare). Actualizarea probabil ca s-a produs dupa ce-am semnat ultimul document.

Putem conclude ca problema persista.

Later edit: ma intreb daca alti provideri sunt mai ok, pt ca oricum trebuie sa fac renew peste cateva luni.

Aplicatia merge OK in orice browser si in adobe, cu conditia ca arhitectura instalata sa fie aceeasi la toate aplicatiile.
ex.
daca ai chrome si adobe pe x86, instalezi neaparat easysign x86,
daca ai chrome si adobe pe x64, instalezi neaparat easysign x64.

nu o sa mearga practic pentru aplicatiile care au alta arhitectura

1 Like

Da, au facut update la aplicatia EasySign de ceva timp si functioneaza bine si pe 64 de biti.

In schimb am auzit ca nu functioneaza pe Windows 11 x64 pe ARM (in masina virtuala pe mac), dar nu am testat. Poate exista ceva setare/workaround.