Pdf időbélyegzés + digitális aláírás technikai hogyan?

Sziasztok,

ebben a témakörben gugliztam szét a szabadidőmet a hétvégén, de bizonyos részletekben nem lettem okosabb, illetve ellentmondó infókra is bukkantam.

A helyzet a következő:
- saját fejlesztésű CRM rendszerünk van (php + mysql)
- a rendszer generál(hat) különféle kimenő pdf dokumentumokat, pl. ajánlat
- a rendszerbe e-számla kibocsátási lehetőséget kell fejleszteni
- egészséges paranoia miatt ezt saját magunk szeretnénk megoldani, 3. félnek
tehát semmiféle dokumentumot nem szeretnénk átadni aláírás vagy időbélyegzés céljából

Ezen a téren teljesen tapasztalatlan vagyok, még felhasználói, befogadó oldalról sem
volt dolgom e-számlával, vagy más hitelesített-aláírt pdf-fel.

Addig tiszta a dolog, hogy kell egy minősített tanúsítvány pl. a Netlocktól vagy az e-Szignótól.
Még az is tiszta, hogy ezzel alá kell írni a pdf-et, ami támogatja a dolgot, létezik is hozzá lib/tool/etc.

Ami nem tiszta nekem, azaz időbélyeg. A pdf formátum ugyanúgy támogatja az időbélyeg pdf-be
illesztését mint a digitális aláírást? (a kutakodásom alapján azt mondom igen, de már ebben sem látok tisztán... :( )
A digitális aláírás előtt kell időbélyeggel ellátni a pdf-et? Vagy aláírás után? Vagy esetleg ez egyidőben történik?
(sejtéseim szerint ez utóbbi lesz)

Hogy kell ezt technikailag elképzelni?
Megvan a minősített tanúsítványom, megvan egy megállapodás az időbélyeg szolgáltatóval, a rendszerünk
megkreálja a pdf dokumentumot, és utána hogy lépünk tovább? Csinálunk egy hash-t amit lebélyegeztetünk
a szolgáltatóval? Hogyan teszem bele az időbélyeget? Aláírom vmi pdftool-lal és belekerül az aláírás.
Ennyi így elegendő lesz?

Milyen php-vel használható toolok vannak erre a feladatra? Az se nagy baj ha fizetős, persze nem milliós tétel...
Találtam ilyet, hogy FPDF, iText. Használja-e valaki bármelyiket ilyen célra, van-e valami tapasztalat?

Azt tudom, hogy az Adobe Reader segítségével le lehet ellenőrizni az aláírást és az időbélyeget.
Milyen pdf megjelenítővel lehet ugyanezt megtenni linux desktopon (van ugyan legális win7-em,
de hónapokig be sem lépek, hiszen linuxon dolgozom)? Kerítettem egy aláírt e-számlát,
de az Evince magasról tojik az egészre, azt se mondja hiteles, és azt sem hogy nem.
Hogyan tudom a szerveren ellenőrizni, hogy egy ilyen aláírt, időbélyegzett pdf hiteles-e (fogunk kapni mástól is, nem csak
magunk fogunk előállítani)?
Online toolokat találtam, de a 3. fél kizárva, ezt magunk szeretnénk megoldani.

Előre köszönöm a segítő hozzászólásokat!
sipiatti

Hozzászólások

Az Adobe Acrobat Reader nem ismeri (hitelesnek) az eSzigno és/vagy a NetLock tanúsítvánait (az ismeretes Netscape probléma miatt) ettől még aláírhatod vele e számláidat, de az acroread azt foglya mondani, hogy nem hiteles. Más PDF olvasót, ami ezt a feature-t, támogatja nem nagyon tudok (foxit reader?).

Az időbélyegezés és az aláírás egy időben történik (ez biztosítja a számla eredetiségét és egyediségét)

----
올드보이
http://molnaristvan.eu/

"egészséges paranoia miatt ezt saját magunk szeretnénk megoldani, 3. félnek
tehát semmiféle dokumentumot nem szeretnénk átadni aláírás vagy időbélyegzés céljából"

Ez nem egészséges, ugyanis semmiféle dokumentumot nem kell kiadni a kezedből időbélyegzéshez vagy aláíráshoz, csak a dokumentum hash lenyomatát.

megvan erre a tokeletes, adobe altal kitalalt szabvany pdf eseteben.
A lenyeg az hogy csinalsz egy hash-t a pdf dokumentumbol, alairod, elkuldod az idobelyeget kiallito cegnek, o kiallitja az idobelyeget alairva majd visszaadja. Amit visszaadod, te hozzacsapod a PDF-hez.

A hash-t tarolja az idobelyeget kiallito ceg, igy barmikor ellenorizheto a dolog. Vagyis meg tudja mondani, hogy az adott idopillanatban az adott hash erteku pdf mar letezett.

Elég a fokozott biztonságú tanúsítvány az e-számlák kibocsátásához (aláírás). Ezt és az időbélyegzés szolgáltatást valamelyik hitelesítés szolgáltatótól kell venni.

A minősítetthez személyes közreműködés szükséges, amit értelemszerűen akkor nem lehet automatizálni (de lehet, hogy ez nem probléma), és biztonságos létrehozó eszközzel kell készíteni (smart kártya, token, hsm, minősített szoftver).

Az időbélyegzés szolgáltatás protokollját a 3161 RFC írja le, a konkrét szolgáltatás elérésének technikai paramétereit (url, azonosítás módja, feltételei) a szolgáltató honlapján általában meg lehet találni. De ez még közel sem pdf időbélyegzés, azzal nincsen tapasztalatom.

Ha nagyobb tételben (mondjuk 500 felett alkalmanként) akarsz e-számlát gyártani, akkor már érdemes lehet beruházni egy specializált aláíró hardver vagy szoftver eszközre, ami támogat pdf kezelést is, mert igen lassú lesz a dolog egyébként.

Az egésznek van egy nem túl bonyolult, de nem is egyszerű jogszabályi háttere, és az egész megvalósítása nem is biztos, hogy megéri saját megoldásban. Utána kell nézni alaposan, hogy mi hogy van előírva, az technikailag mit jelent, mivel lehet megoldani. Vannak nüanszok, amelyeknek komoly pénzügyi (apeh bírság) vonatkozása is lehet.

Van az országban kb. 8-10 elektronikus számla szolgáltató, akitől meg lehet venni a szolgáltatást. Hozzájuk csak kapcsolódni kell, archiválnak is (ami külön témakör)... szóval gatya felköt, ha saját utat akartok tényleg járni.

Szia!

A magyar szabályok (bármi is működteti) csak meghatározott aláírásokat fogadnak el. A lehetőségeid eléggé leszűkítetted. A neked megfelelő megoldás, ha írsz a Netlocknak vagy a Microsecnek és velük megtárgyalod. Segítőkészek.
A microsec havi díjas megoldásban leasingeli az aláíró motorját és elég sok platformra van kész megoldásuk. A netlock egy egyszeri fejlesztési díjat számol fel, ami jóval borsosabb...
A microsec-es verziót ismerem kicsit, de a netlock is biztosít hasonló megoldást. Ezeknél nem kell kiadnod a pdf-et a kezedből, hanem ők adnak egy aláíró motort (program/szkriptgyűjtemény), amihez hozzávágod a sima pdf-ed, az aláírókulcsod, jelszavad meg amit még szeretnél (leírás részletezi) és visszakapod az aláírt pdf-et. Az aláíró motor kb annyit csinál, hogy ellenőrzi az aláíró kulcsod, kér egy időbélyeget és rárakja a pdf-re.

Sok másodlagos szolgáltató is van, akiknek vagy az adatokat kell átadni és ők csinálnak belőle pdf-et, vagy a sima pdf-et adod át és aláírva kapod vissza. De ezeket el szeretnéd kerülni a fentiek alapján.

Remélem segítettem! Ha sikerült valamit összerakni kíváncsi lennék a megoldási elvekre :)

Üdv

Elektronikus számla kibocsátásához a hatályos törvények szerint:

1. Minősített szolgáltató által kibocsátott tanúsítványra van szükséged.
2. Minősített szolgáltatótól származó időpecséttel kell ellátnod az e-számlát.

Ez utóbbihoz szerződést kell kötnöd a szolgáltatóval, minden egyes aláíráshoz időpecsétet kell kérned a szervereitől. Az időpecsétet darabáron adják, de havonta pár ezer időpecsétet mindenképp vásárolnod kell.

A dokumentum aláírása és időpecsételése egyszerű szakmai feladat, illetve azt hiszem annyira nem is egyszerű. De az interneten keresgélve minden információ összeszedhető hozzá.

Viszont mindezek tető alá hozása jobb esetben is milliós kiadást jelent, persze lehet, hogy ti ügyesek vagytok, és sokkal költséghatékonyabban összekalapáljátok.

Ugyanakkor például a Számlázz.hu áraival összevetve (https://www.szamlazz.hu/szamla/?page=szolg_csomag , 6 Ft/db) nagyon sokba kerül majd a bizalomhiány ("Online toolokat találtam, de a 3. fél kizárva, ezt magunk szeretnénk megoldani.").

"nagyon sokba kerül majd a bizalomhiány" ez a lényeg, valóban.

Venni vagy bérelni, ezeket kínálják Netlock és Microsec. Egyik változat sem kerül kevésbe. Időbélyeg pedig csak nagy mennyiség esetén lesz olcsó vö. sok ezer számla. Fejleszteni is többet fog kelleni mintha 3. fél által nyújtott API-hoz csatlakoznál.

Sziasztok!

Tudtommal a netlock -nak van aláíró szervere. Ez harwar-esen tartalmazza a kulcsot, és időbélyeggel is ellátja a pdf-eket.

Lényegében egy saját webszerver ahová feltolod a pdf-et és aláírva lebélyegezve visszakapod.

Jajj, de rég röhögtem ilyen jót. Szerintem te kevered azt a weboldalt a NCA weboldalával. (de hogy ne írjak hülyeséget, majd megkérdezek valami kereskedőt hogy tud-e ilyenről)
Biztosan állíthatom, hogy nem akarsz hardveres kulcs tárolást venni a netlock-tól/microsec-től. Egy egyszerű PCI-os HSM is két millánál kezdődik.

Továbbá, a hatályos jogszabályok értelmében PDF aláíráshoz NEM kell BALE (más néven chipkártya, a token NEM bale) eszközön tárolni a privát kulcsot.

reklám on: a netlock pdf aláírója pdfsigno néven fut
reklám off

reklam on:
A linuxos e-szigno szintén tud PDF-et aláírni időbélyeggel.
Érdemes a tesztverziót letölteni, kísérletezni. Aztán meg kell venni egy aláíró tanúsítványt a Msectől vagy megvenni az e-szignót és akkor bármilyen tanúsítvánnyal alá lehet írni. És persze fizetni kell az időbélyegért is.
reklam off:

Előfizettem a microsec-es digitális aláírásra és időbélyegre (webes aláírós verzió - https://srv.e-szigno.hu/index.php?lap=pdf_alairas).

Linux+Firefox kombóval nem működik (bár amikor az ajánlatot kértem, ez külön meg volt említve feltételként), de azt mondják, dolgoznak rajta. Most Windows + IE -vel írok alá, úgy működik.

Eddig alapvetően (~10 számla után) okés.

Lehet, hogy béna voltam, de a számlázz.hu -n nem találtam digitális aláírást és időbélyegzés szolgáltatást.
Ráadásul nekem fontos volt, hogy mindenféle extra eszköz (kártya, kártyaolvasó, token, akármi) nélkül tudjon működni.
Ennek az volt az oka, hogy linux alatt ez elég macerás tud lenni, meg ha jól emlékszem, még drága is.
Most meg egy webes formon feltöltöm a pdf-et és visszakapom aláírva.
Nekem ennyi bőven elég.

A témához annyit tennék hozzá, hogy aki belevág, gondolja tovább a dolgokat. Előállít egy hiteles dokumentumot és örül neki. De mi lesz ha ezt a doksit évek múlva kell 3. félnek bemutatni. Pff. lejárt a tanúsítvány, lejárt az időbélyeg szolgáltató tanúsítványa stb.
Szóval az archiválásról is gondoskodni kell.

Archiválás (szerintem triviális):
1. eredeti formában (pl. az adatbázis) archiválod a számlákat (ezer és egy módja van)
2. elteszed nyomtatva is (bár úgy tudtommal nem érvényes, vagy legalábbis nem szükséges)
3. elteszed a certificate-et

Ha jól tudom, az aláírt dokumentum attól még hiteles, hogy lejárt a tanúsítvány, ugyanis az aláírás pillanatában az aláíró hitelt érdemlően azonosította magát (vö. közjegyző).