V teoriji zgleda to približno tako (sam sem v praksi bolj po površini praskal). Strežni naredi hash vsebine za podpis (recimo pri e-dokumentih, XML datoteka), in pošlje komponenti za podpis zahtevek za podpis. Uporabnik potem izbere certifikat in potrdi podpis, in "podpiše" se ta hash (digest), in potem komponenta pošlje strežniku ta podpisan hash. Potem pa ti ko preverjaš če je podpis veljaven, znova narediš hash originalne vsebine, podpišeš z javnim ključem, in potem primerjaš podpisa/hash-a. Če sta enaka je podpis veljaven, če ne pa ne. Tako da ni možno da bi ti uporabnik podvalil kaj drugega :).
Zdej recimo če želiš imet podpisane pogodbe, je varianta da si uporabnik prenese PDF, ga izpolne, in potem znotraj Acrobata digitalno podpiše PDF - tudi to je možno. In potem ti posreduje ta podpisan PDF.
Ampak druga zgodba je veljavnost takega dokumenta oz. hramba. Zadnje čase nisem na tekočem kako je z zakonodajo, ampak pred nekaj leti je veljalo da mora biti tak dokument shranjen v e-arhivu. Delali smo recimo za arhiviraj.si (http://www.mikrocop.com/sl/Online-hramba-dokumentov), ki ti omogoča hrambo dokumentov.
V glavnem, je zelo kompleksna zadeva če mene vprašaš, predvsem zaradi zakonodaje - seveda če se ni spremenilo.
Na tvojem mestu bi:
- preveril kaj pravi zakonadaja - ali je potrebno vrsto dokumenta, ki ga želiš dig. podpisati hraniti na poseben način.
- ali je možnost da pač uporabnik/stranka pač sama podpiše PDF in ga prenese na strežnik
Sam sem si kar nekaj časa belil glavo s to temo in kot vedno država vse zakomplicira :). Ampak še enkrat, nevem kakšno je trenutno stanje na tem področju. Recimo da želiš podpisovati neko pogodbo - in v primeru da pride do česarkoli ali se lahko pravno sklicuješ na takšno pogodbo (če je recimo to podpisani PDF). Veliko sreče!