Floating FB popout byReview Results

Certifikati i fiskalizacija

by Nino17. October 2012 09:07

 

Ovo što dalje pišem u ovom postu jesu stvari proizašle iz našeg iskustva i prakse, te iz pitanja/problema koje ostale kolege imaju, a koja dolaze do nas. Kako ne znamo koja je generalna ideja FINA-e, APIS IT-a i Porezne uprave, unaprijed se ograđujem ukoliko napišemo nešto netočno - u svakom slučaju, neka nas netko ispravi :)

 

Prema dostupnim informacijama, nekoliko je certifikata u "igri":

  1. FISKAL (DEMO) certifikat, informatičke tvrtke odnosno, kasnije, obveznika
  2. Aplikacijski certifikat CIS-a, fiskalcistest
  3. Verifikacijski/root (samopotpisani) certifikat za Demo CA, democacert
  4. Poslužiteljski certifikat CIS-a, cistest.apis-it.hr
 
Certifikat pod brojem 4.) je certifikat koji se ne koristi za digitalno potpisivanje XML poruka - on se koristi kod uspostavljanja SSL (HTTPS) između vašeg računala (klijenta) i CIS servera.
 
Certifikat pod brojem 1.) je ključan u cijeloj ovoj priči - naime - on služi kako bi obveznik mogao digitalno potpisati svaku XML poruku (RacunZahtjev, PoslovniProstorZahtjev) prilikom slanja u Poreznu upravu. Svaki račun potpisan ovim certifikatom Poreznoj upravi, zakonski, znači da ste upravo vi poslali tu poruku. Drugim riječima, ako netko dođe u posjed ovog certifikata, on može u vaše ime u Poreznu slati bilo kakve podatke, tako da treba skrenuti pažnju da je sigurnost ovog certifikata vrlo važna. Pripremamo članak na ovom blogu na tu temu.
 
Certifikat pod rednim brojem 2.) se koristi (trebao bi se koristiti ?) za potpisivanje XML dokumenata koje Porezna uprava vraća obvezniku. Na taj način PU jamči da je odgovor koji ste zaprimili zaista došao od njih.
 
Certifikat pod rednim brojem 3.) je prilično važan - radi se o certifikatu koji je ROOT certifikat za sve ostale DEMO FISKAL certifikate. Ovo "ROOT", pojednostavljeno, znači da je taj certifikat "iznad" (certification path) svakog drugog FISKAL DEMO certifikata. Kako je FINA taj certifikat sama sebi izdala (certifikat je "samopotpisan"), tako znači da iznad njega nema nekog drugog ROOT certifikata. 
 
E, sad, ako iz vaše aplikacije pokušate poslati ECHO XML poruku usklađenu sa XSD-om, dakle XML poruku koja nije digitalno potpisana certifikatom pod 1.), prilikom spajanja na CIS vrlo vjerojatno ćete dobiti greške "The remote certificate is invalid according to the validation procedure." i "The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.". Tehnička specifikacija definira da se prilikom spajanja na CIS mora koristiti SSL (HTTPS) i ove se greške javljaju upravo iz razloga što se ne može osigurati sigurna veza od vašeg klijentskog računala do CIS servera. Razlog za to je certifikat pod brojem 4.), odnosno, činjenica da ne postoji ispravan "certificate chain" do "trusted authority" (odnosno, certifikat pod brojem 3.) je samopotpisan). Obratite pažnju da u ovom slučaju certifikat pod brojem 1.) ne igra nikakvu ulogu - ECHO možete slati bez svog FISKAL certifikata, s obzirom da se on koristi samo za digitalno potpisivanje RacunZahtjev i PoslovniProstorZahtjev poruka. Treba, dakle, razlikovati certifikate koji se koriste za digitalno potpisivanje od onih koji su potrebni za uspostavu SSL (HTTPS) veze.
 
U trenutku kada i certifikat pod brojem 3.) uključite u cijelu priču (Kako preuzeti i instalirati democacert - Verifikacijski/root (samopotpisani) certifikat za Demo CA), sve sjeda na svoje mjesto.

 

Tags: ,

DEMO certifikat | Tehničke specifikacije | Testno okruženje

Izmjena ZKI algoritma

by Nino16. October 2012 16:52

Na stranicama Porezne uprave je upravo objavljena obavijest:

"
Primijenit će se potpisivanje elemenata računa privatnim ključem umjesto direktnog korištenja privatnog ključa. Izlazni rezultat imati će istu strukturu kao i kod postojećeg algoritma. Stari: HashMD5 (privatni ključ+OIB+datum i vrijeme izdavanja+brojčana oznaka računa+oznaka poslovnog prostora+oznaka naplatnog uređaja+ukupni iznos računa) Novi HashMD5 (Elektronički potpis privatnim ključem (OIB+datum i vrijeme izdavanja+brojčana oznaka računa+oznaka poslovnog prostora+oznaka naplatnog uređaja+ukupni iznos računa)) Novi algoritam biti će objavljen u verziji 1.1 Tehničke specifikacije za korisnike.
"

 

Čekamo dakle verziju 1.1. Tehničke specifikacije prije nego se ozbiljnije pozabavimo izradom algoritma za ZKI.

Više informacija http://fiskalizacija.micro-process.hr/forum/index.php?topic=112.0 i

 http://fiskalizacija.micro-process.hr/forum/index.php?topic=115.0

Tags:

Tehničke specifikacije

LinkedIn grupa

by Nino16. October 2012 10:52

Otvorili smo grupu na LinkedIn-u i pozivamo sve zainteresirane da se priključe: http://www.linkedin.com/groups?home=&gid=4673586&trk=anet_ug_hm

Tags:

Među prvih smo 6 koji su uspješno testirali slanje podataka u službeni testni web servis

by Nino15. October 2012 17:01

Na današnjem predstavljanju pravnog dijela Prijedloga Zakona u prostorijama HGK je spomenuto da se do sada ukupno 6 korisnika uspješno povezalo na službeni testni servis Porezne uprave (https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest). Sa ponosom ističemo da smo među prvima Smile

 

Ako još niste, preuzmite DLL i implementirajte podršku u svoju blagajnu: http://fiskalizacija.codeplex.com/

Tags:

Testno okruženje

Kako se certifikat može snimiti u datoteku ?

by Nino15. October 2012 12:14

Na temu dileme da li certifikat držati u Certficate store-u ili u pfx datoteci se ovih dana spremamo napisati neki mali članak - u svakom slučaju, i jedna i druga varijanta imaju za i protiv.

Ako FISKAL DEMO certifikat želite snimiti u datoteku, ovo je postupak:

1. otvorite Certificates snap in:

  • Start -> Run -> mmc

 

  • Kliknite OK i potvrdite da Managament Consolu otvarate kao Administrator

 

  • Kliknite File -> Add/Remove Snap in i iz liste odaberite Certificates
  • Kliknite Add i odaberite My User Account

 

  • Kliknite Finish i OK
2. Otvorite Personal -> Certificates i u listi sa desne strane pronađite FISKAL (npr. "FISKAL 1") certifikat
3. Kliknite sa desnom tipkom miša na certifikat -> All Tasks -> Export

 

 

4. Kliknite na Finish.

 

Nakon što ste certifikat izvezli u datoteku, možete ga koristiti za potpisivanje XML dokumenata. Ako koristite Fiskalizacija-DEV.dll, tada je postupak ovakav:

X509Certificate2 cert = Raverus.FiskalizacijaDEV.PopratneFunkcije.Potpisivanje.
DohvatiCertifikat(@"D:\Users\Nino\Desktop\MojCert.pfx""PASSWORD");
if (cert != null)
{
    Schema.RacunZahtjev zahtjev = PopratneFunkcije.XmlDokumenti.KreirajRacunZahtjev(racun);
    XmlDocument zahtjevXml = PopratneFunkcije.XmlDokumenti.SerijalizirajRacunZahtjev(zahtjev);
PopratneFunkcije.Potpisivanje.PotpisiXmlDokument(zahtjevXml, cert);
    PopratneFunkcije.XmlDokumenti.DodajSoapEnvelope(ref zahtjevXml);
XmlDocument doc = cis.PosaljiSoapPoruku(zahtjevXml); }

Tags:

Testno okruženje

Verzija 1.0 je javno dostupna

by Nino14. October 2012 13:49

Objavljujemo da je javno dostupna verzija 1.0 FiskalizacijaDEV projekta.

DLL preuzmite ovdje, dok je izvorni kod ovdje.

Tags:

Testno okruženje

Kako preuzeti i instalirati democacert - Verifikacijski/root (samopotpisani) certifikat za Demo CA ?

by Nino14. October 2012 12:22

 

Kako DEMO FISKAL certifikati nemaju validan certification path, jer je DEMO certifikat samopotpisan ("democacert"), tako je, za uspostavu SSL veze prema testnom web servisu, potrebno u Trusted Root Certification Authorities dodati FINA-in DEMO certifikat - NE onaj koji ste, kao developer, izvadili, već ovaj preuzet sa http://demo-pki.fina.hr/ (Verifikacijski/root (samopotpisani) certifikat za Demo CA ).

Postupak je slijedeći:

1. otvorite web stranicu http://demo-pki.fina.hr/  

2. kliknite na link "Verifikacijski/root (samopotpisani) certifikat"

3. snimite democacert.cer na svoj PC, može i na Desktop  

4. otvorite Certificates snap in:

  • Start -> Run -> mmc

 

  • Kliknite OK i potvrdite da Managament Consolu otvarate kao Administrator

 

  • Kliknite File -> Add/Remove Snap in i iz liste odaberite Certificates
  • Kliknite Add i odaberite My User Account

 

  • Kliknite Finish i OK
5. Otvorite Trusted Root Certification Authorities -> Certificates; kliknite sa desnom tipkom miša na Certificates -> All Tasks -> Import

6. Odaberite democacert.cer file i dodajte ga kao Trusted Root Certificate.

 

Nakon ovoga ste spremni za testiranje Smile

Primijetite da je ovime i pristup do https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest označen kao siguran - tj., ne javlja se više poruka da je pristup stranici nesiguran.

Tags:

Testno okruženje

Što znači poruka sa https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest ?

by Nino13. October 2012 12:43

Otvorite li u web browser-u adresu službenog testnog web servisa, https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest, odmah su primjetne dvije stvari:

1. poruka da certifikat nije ispravan - o ovome smo već pisali (http://blog.fiskalizacija-dev.com.hr/post/2012/10/13/Sluzbeno-testno-okruzenje-prvi-dojmovi.aspx)

2. poruku:

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<env:Fault>
<faultcode>env:Client</faultcode>
<faultstring>Internal Error</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>

Koje je značenje ove poruke? Iz samog se odgovora može razaznati nekoliko stvari:

  • testni web servis koristi SOAP v1.1. a ne SOAP v1.2. 
  • faultcode env:Client - ukazuje da je problem sa klijentom (vašim web browser-om) za razliku od problema sa serverom
  • faultstring: Internal Error - ukazuje da se problem javlja zato što parametri proslijeđeni web servisu nisu ono što se očekuje
 
Znači - sa testnim je web servisom sve OK Smile
 
 

Tags:

Testno okruženje

Službeno testno okruženje - prvi dojmovi

by Nino13. October 2012 11:42

Prema najavi, APIS-IT je jučer objavio službeno testno okruženje - kako je dokument sa tehničkom specifikacijom već dostupan od ranije, nije bilo nikakvih prepreka da se pozabavimo završetkom naše komponente za komunikaciju sa CIS-om i završnim testiranjem.

Evo nekoliko opaski vezanih uz testiranje, barem što se tiče .NET okruženja:

1. kako DEMO FISKAL certifikati nemaju validan certification path, jer je DEMO certifikat samopotpisan ("democacert"), tako je, za uspostavu SSL veze prema testnom web servisu, potrebno u Trusted Root Certification Authorities dodati FINA-in DEMO certifikat - NE onaj koji ste, kao developer, izvadili, već ovaj preuzet sa http://demo-pki.fina.hr/ (Verifikacijski/root (samopotpisani) certifikat za Demo CA ). Detaljne upute ćemo uskoro objaviti na http://fiskalizacija.codeplex.com/documentation

2. kod spajanja na https://cistest.apis-it.hr:8449/FiskalizacijaServiceTest putem klasičnog .NET spajanja na web service, koristeći WSDL, nikako nismo, barem za sada, uspjeli dobiti neki rezultat pozivajući ECHO web metodu. Ovo je naš kod

CisWebService.FiskalizacijaService service = new CisWebService.FiskalizacijaService();
string sPoruka = @"<soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"" 
xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" 
xmlns:xsi=""http://www.w3.org/2001/XMLSchemainstance""><soap:Body><tns:EchoRequest 
xmlns:tns=""http://www.apis-it.hr/fin/2012/types/f73"" 
xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" 
xsi:schemaLocation=""http://www.apisit.hr/fin/2012/types/f73/FiskalizacijaSchema.xsd"">
poruka</tns:EchoRequest></soap:Body></soap:Envelope>"
;
string s = service.echo(sPoruka);
 

a rezultat koji dobijemo "Possible SOAP version mismatch: Envelope namespace http://www.apis-it.hr/fin/2012/types/f73 was unexpected. Expecting http://schemas.xmlsoap.org/soap/envelope/." exception...  Radimo na tome da ovo nekako riješimo, svaka je sugestija dobrodošla :)

Do rezultata smo došli direktnim pozivanjem web servisa, uskoro objavljujemo izvorni kod na http://fiskalizacija.codeplex.com/releases  Laughing

 

3. Nakon uspješnog testiranja ECHO-a, krenuli smo sa testiranjem računa (RacunZahtjev) - uz malo problema, uspjeli smo dobiti odgovori od test servisa. Evo nekoliko napomena:

  • prije slanja XML-a, provjerite da li je u skladu sa XSD-om - nema smisla slati poruku koja već na vašoj strani nije ispravno formatirana
  • obratite pažnju da je OIB koji šaljete ispravan OIB, odnosno da se radi o ISTOM OIB-u koji je unutar vašeg DEMO FISKAL certifikata; nešto poput "12345678901" NE prolazi - mi smo dobivali "The remote server returned an error: (500) Internal Server Error." - bilo bi dobro da CIS vraća malo više informacija o ovome Smile; OIB operatera može biti bilo kakav, čini se da nema neke validacije po ovom pitanju
  • zaštitni kod isto može biti bilo što, unutar definicije XSD-a - čini se da niti po tom pitanju nema neke validacije na serverskoj strani
  • moguće je poslati račun prije nego se pošalje podatak o poslovnom prostoru (PoslovniProstorZahtjev)
  • bez ikakvih je problema moguće poslati dvije različite poruke sa istim UUID-om - koje su stvarne posljedice toga, i da li ih uopće ima, tek ostaje za vidjeti
  • čini se da ne postoji nikakva validacija na serverskoj strani po pitanju broja računa (BrRac) - možete uvijek slati istu stvar unutar testiranja
  • ako nemate nikakvih podataka u tns:Pnp, tns:OstaliPor i tns:Naknade, nemojte u XML dokumentu slati prazne elemente - iako validacija prema XSD-u prolazi, testni web servis nije sretan u vezi sa time Smile - opet se javlja "The remote server returned an error: (500) Internal Server Error." - opet savjet - bilo bi dobro vratiti malo detaljniju poruku greške...
4. Čini se da je XML poruka koju vraća CIS potpisana sa njihove strane, što je svakako jako dobro - bilo je nekih dilema oko toga na http://fiskalizacija.micro-process.hr/forum/index.php?topic=92.0, nadajmo se da će tako i ostati u finalnoj verziji. Nismo detaljnije provjeravali, za sada, da li je to sve kako treba biti
5. Brzina odaziva testnog servisa je, za sada, super - pripremamo jedan opsežniji load test da vidimo kako to sve radi pod većim opterećenjem, više uskoro na našem blogu Wink

 

Tags:

Testno okruženje

Fiskalizacija - Tehnička specifikacija za korisnike

by Nino9. October 2012 09:20

Porezna uprava je, prema ranijoj najavi, u petak 05.10.2012. godine objavila dokument "Fiskalizacija - Tehnička specifikacija za korisnike", u kojem su prilično detaljno opisane tehničke specifikacije vezane uz fiskalizaciju u Hrvatskoj. 

Detaljno smo analizirali ovaj dokument i prvi su dojmovi prilično pozitivni - čini se da su kolege dobro odradili svoj posao Smile.

Ubrzano radimo na ažuriranju prve BETA verzije .NET komponente koju će svi zainteresirani moći slobodno (FREE) preuzeti sa CodePlex stranica.

 

Sa nestrpljenjem očekujemo testnu verziju servisa za razmjenu podataka - prema najavama, trebao bi biti dostupan 12.10.2012. godine

Tags: ,

Tehničke specifikacije

Month List