# Audit Fiskalne — 9.10.2026., verzija 0.1.3+4

Pregledani su Admin Auth/MFA i formulari, partner ovlasti, P12 import, Edge runtime, RLS/migracije, uređaj i brojači, matematika/potpisi, CIS request/response, storno, arhiva/A4/QR, izdavanje APK-a i javna objava. Zaključak: ispravljena i provjerena CIS DEMO beta; **nije odobrena za produkcijsku naplatu**. Audit nije neovisna zakonska certifikacija ili dokaz svih izvorno planiranih funkcija.

| Područje | Nalaz / ispravak | Dokaz i granica |
| --- | --- | --- |
| Reload prijave | Startup nije obnavljao server Admin grant; dodan resume uz provjerenog Auth korisnika. | Objavljeni browser: reload, nova kartica, očuvan odabrani partner/stranica; identičan rok sesije. |
| MFA i rok ovlasti | AAL2 bez svježeg MFA ne smije otvoriti novu sesiju; živa sesija se ne produžuje. | Server provjerava TOTP AMR do 5 minuta; SQL TTL fiksan 30 minuta. Istek traži MFA bez nove lozinke. |
| Novi partner | Nedostajao generator i ograničen partner Admin. | Crypto RNG, 20 znakova, maska/show/copy; Auth + atomski SQL upis, rollback novog Auth korisnika. Tenant Admin ne dobiva platform ovlasti. |
| FINA P12 | Raniji limit 300.000 odbijao je novi certifikat s 600.000 iteracija. | Stvarni javni FINA RSA3072 P12 import ~0,6 s; MAC, pogrešna lozinka/izmjene i limit rada testirani. Korisnikov certifikat nije testiran. |
| Supabase kriptografija | Node X509 checkIssued/raw nisu implementirani u Edge runtimeu. | Zamjena PKIjs/ASN.1 provjerom certifikata i lanca. Stvarni cloud upload i četiri stvarna CIS odgovora uspješno provjereni. |
| CIS odgovor | Zaštićeni ID, signer/lanac, XMLDSig i veličina odgovora. | Sintetički tamper/wrapping/error testovi te stvarni CIS JIR. Pozitivni produkcijski odgovor nije testiran. |
| Certifikat rotacija | Novi certifikat mogao je onemogućiti stare pending račune. | Immutable ID verzije, retired_at i ograničeno staro issuance razdoblje; DB testovi. OCSP/CRL ostaje produkcijska zapreka. |
| RLS i performanse | Tenant Admin osnovna autorizacija i nedostajući FK indeksi. | Scope/immutable testovi, 14 novih indeksa; 0 WARN/ERROR advisora. Privatne tablice namjerno nemaju klijentske policyje. |
| ZKI i XML | Aktualna specifikacija potvrđuje RSA-SHA256 pa MD5 za ZKI. | Neovisni Node/native potpisi, službeni EDUC 1.10 XSD, decimalni conformance testovi. |
| A4 i QR | Fiskalni PDF nije uvijek prikazivao ukupno; QR bio interni tekst. | Ukupno EUR, Europe/Zagreb IANA vrijeme, službeni URL s centima i JIR/ZKI, bijeli rub. Render A4 vizualno pregledan. |
| Produkcija | Runtime i root trust dopuštaju samo cis_demo. | Aktivna blokada produkcije. Nema produkcijskog certifikata/poziva; WorkManager/restore/printer/report scheduler nedovršeni. |
| Javne informacije | Privacy stranica još je opisivala podatke samo u memoriji. | Usklađen tehnički opis stvarnog Auth/Supabase/CIS/Android rada. Ugovorni pravni sadržaj ostaje nacrt. |

## Provedene provjere

- Node: 29 testova; PostgreSQL/PGlite: 26; Deno: 2 kriptografska testa i strict check Edge funkcija; Flutter: 20, analyze bez nalaza.
- Stvarni Supabase QA: Auth/MFA, fixed TTL, tenant scope, katalog/prostor/uređaj, transportni ključ, smjene, idempotentne cash radnje, nedostajući certifikat, opozivi i CIS Echo.
- Stvarni CIS: javni FINA demo certifikat; gotovina/kartica/tvrtka + gotovinski storno, svi sa stvarnim provjerenim JIR-om i idempotentnom dostavom. Pozitivni CIS scenariji koriste profil u sustavu PDV-a; profil izvan PDV-a provjerava skup matematičkih/DB testova, nije zasebno pozitivno testiran na CIS-u.
- Browser: trajna prijava/reload/nova kartica, fiksni expiry, MFA nakon isteka, odjava između kartica, novi partner formular/generator, javni P12 odabir/import i ispravna OIB provjera. Ovoga dana novi partner formular provjeren je na desktopu; nova provjera uskog mobilnog prikaza nije potvrđena. Mobilna navigacija/forme provjerene su 7.10.
- Puni `npm audit`: 0 ranjivosti nakon Wrangler 4.149.0 / workers-types 5.20261009.1 (uklonjeni sharp/miniflare/wrangler dev nalazi).
- Android native: jedan instrumentation test s više provjera prolazi na API36 emulatoru s PAGE_SIZE 16384. Obuhvaća šifrirani atomic store, idempotentni draft, oporavak, potpise, expiry/boot/monotoni clock gate, pogrešnog korisnika, tamper i disable. Početna Gradle instalacija nije pokrenula test zbog prethodnog release potpisa; nakon čišćenja vlastitog emulator QA paketa izgrađeni debug/test APK-i instalirani su i izravni AndroidJUnitRunner završio `OK (1 test)`, 2,475 s.
- Svježi native XML i retry XML: neovisni Node ZKI/XMLDSig testovi 2/2 te EDUC 1.10 XSD PASS za obje poruke. Prijelaz godine i fizički reboot nisu novi native pozitivni testovi.
- Završni potpis/hash/javna objava release APK-a: RELEASE.md.

QA računi/partneri su vlastiti sintetički podaci. Njihovi pristupi nakon provjere blokirani/opozvani; immutable audit/računi ostaju. Ljudska Admin lozinka, MFA, certifikati i podaci drugih projekata nisu mijenjani.

## Vanjski izvori

- [FINA: novi algoritmi i javni testni certifikati, 24.7.2026.](https://info.fina.hr/obavijesti/digitalni-certifikati/obavijest-o-prijelazu-na-nove-sigurnije-kriptografske-algoritme-temeljene-na-kriptografiji-eliptickih-krivulja2)
- [Porezna uprava: tehnički podaci i EDUC/PROD sheme](https://porezna.gov.hr/fiskalizacija/gotovinski-racuni/tehnicki-podaci/o/tehnicki-podaci)
- [Tehnička specifikacija 2.7, 21.7.2026.](https://porezna-uprava.gov.hr/UserDocsImages/Fiskalizacija/Tehni%C4%8Dke%20specifikacije/Fiskalizacija%20-%20Tehnicka%20specifikacija%20za%20korisnike_v2.7%20(21.07.2026.).pdf)
- [Supabase: RLS bez policyja](https://supabase.com/docs/guides/database/database-linter?lint=0008_rls_enabled_no_policy), [novi/neupotrijebljeni indeksi](https://supabase.com/docs/guides/database/database-linter?lint=0005_unused_index), [produkcijski Auth connection limits](https://supabase.com/docs/guides/deployment/going-into-prod).
