Konta je namenjena slovenskim računovodjem, ki obdelujejo zaupne finančne podatke svojih strank. Na tej strani opisujemo natančno — brez marketinških olepšav — kaj imamo vzpostavljeno in kaj ne. Kjer nekaj še ni implementirano, to jasno označimo kot »načrtovano«.
1. Infrastruktura in gostovanje
Konta teče izključno na evropskih strežnikih. Ne uporabljamo lastne infrastrukture — gradimo na uveljavljenih EU ponudnikih s preverjenimi certifikati.
- Aplikacija in spletne strani gostujejo na Vercel (regija Frankfurt,
fra1). Vercel ima SOC 2 Type 2 in ISO 27001 certifikat. - Baza podatkov, avtentikacija in shramba dokumentov tečejo na Supabase, ki gostuje na AWS Frankfurt (eu-central-1). Supabase ima SOC 2 Type 2; AWS ima ISO 27001, SOC 1/2/3, ISO 27017 in ISO 27018.
- Vsi vaši podatki (dokumenti, transakcije, stranke) ostajajo v EU.
- Edini prenosi izven EU, ki se zgodijo: klici na Google Gemini API (ZDA) in Stripe (ZDA) — oba pokrita s standardnimi pogodbenimi določili (SCC) in DPA. Mistral OCR (Francija) in vse ostalo ostaja v EU.
2. Šifriranje podatkov
Podatki v mirovanju
- Vsa baza podatkov in shramba dokumentov sta šifrirana z AES-256 (podedovano iz AWS / Supabase storage).
- Gesla so shranjena izključno kot bcrypt hash prek Supabase Auth (GoTrue). Konta nikoli ne vidi in ne hrani vašega gesla.
- Plačilnih kartic Konta nikoli ne obdeluje niti ne hrani — vse plačilne podatke direktno zajema Stripe (PCI DSS Level 1).
Podatki med prenosom
- Ves promet šifriran z TLS 1.3 (podedovano iz Vercel).
- HSTS vklopljen z
includeSubDomainsinpreload(max-age 2 leti) — brskalnik nikoli ne dovoli nešifriranega dostopa. - Strogi HTTP varnostni headerji:
X-Frame-Options: DENY,X-Content-Type-Options: nosniff,Referrer-Policy: strict-origin-when-cross-origin,Permissions-Policy.
3. Nadzor dostopa in avtorizacija
Row-Level Security (RLS)
Osrčje naše varnosti je Row-Level Security na ravni PostgreSQL. Vsaka tabela z uporabniškimi podatki (stranke, dokumenti, transakcije, organizacije, revizijski dnevnik) ima vklopljene RLS politike, ki na ravni baze preverjajo, kdo sme videti katere vrstice. To pomeni:
- Nobena zahteva — ne glede na to, iz katerega dela aplikacije izvira — ne more vrniti podatkov, do katerih uporabnik nima pravice.
- Večorganizacijska ločitev se izvaja v bazi, ne v aplikacijski kodi. Tudi če bi se v aplikaciji pojavila napaka, baza zavrne dostop.
- Revizijski dnevnik je nespremenljiv — RLS ne dovoli UPDATE ali DELETE na privilegiranih zapisih.
Prijava
- Prijava z e-pošto in geslom ali prek Google OAuth, oboje prek Supabase Auth.
- Avtentikacija na API klicih poteka prek JWT žetonov (Bearer) — ne prek piškotkov, zato CSRF napadi strukturno niso možni.
- Večfaktorska avtentikacija (MFA) trenutno ni na voljo, a je načrtovana pred javnim izdajom. Do takrat priporočamo močno, edinstveno geslo in Google OAuth, ki podpira 2FA prek vašega Google računa.
- Ob spremembi gesla ali sumljivi prijavi dobite e-poštno obvestilo.
Omejevanje hitrosti
- Vsi zapisovalni API-ji (nalaganje dokumentov, obdelava, ustvarjanje strank, generiranje ZIP, VIES preverbe, upload povezave) imajo per-uporabniško omejevanje hitrosti (rate limiting).
- Supabase Auth ima vgrajeno omejevanje prijav in zaznavanje nenavadnih vzorcev.
4. Omrežna in aplikacijska varnost
- Vercel Firewall in DDoS zaščita pred vsemi javnimi končnimi točkami (podedovano — brez dodatne konfiguracije ne gre).
- Content-Security-Policy:
default-src 'self',object-src 'none',base-uri 'self'. Omejuje, kateri viri smejo teči na strani in zmanjšuje napadi XSS. - Parametrizirane poizvedbe prek Supabase / PostgREST — brez ročno sestavljenih SQL nizov, torej brez tveganja SQL injection.
- SECURITY DEFINER funkcije v bazi imajo eksplicitne preverbe vlog (
service_role),REVOKE PUBLICin nastavljensearch_path— standard za obrambo v globino. - Omejitve plana (največje število strank) se uveljavljajo z BEFORE INSERT sprožilcem v bazi, ne samo v frontendu.
5. Varnostne kopije in obnovljivost
- Dnevne avtomatske varnostne kopije celotne baze podatkov (podedovano iz Supabase Pro). Kopije se hranijo v isti regiji kot produkcija (AWS eu-central-1 Frankfurt).
- Point-in-Time Recovery (PITR) — načrtovano za vklop pred javnim izdajom, omogoča obnovitev na poljubno minuto.
- Dokumenti v shrambi (Supabase Storage) so replicirani v isti AWS regiji, skladno s privzetimi garancijami AWS S3.
- Objavljenega uradnega SLA zaenkrat ne ponujamo. Odvisni smo od dostopnosti Vercel in Supabase, ki imata oba objavljene SLA-je (99,9 % oziroma 99,9 % za Pro plan).
6. Razvojni proces in spremembe kode
- Vse spremembe gredo v git verzijski sistem (GitHub), ki ima SOC 2 Type 2 in ISO 27001.
- Dependabot tedensko preveri vse odvisnosti za znane ranljivosti in odpre popravne PR-je.
- Vsak PR gre skozi CI cevovod: TypeScript tipski preveri, ESLint in produkcijska gradnja — vse pred objavo v produkcijo.
- Napake v produkciji beleži Sentry (EU regija) — napake, ki bi lahko imele varnostni pomen, se opazijo takoj.
- Načrtovano: CodeQL SAST v CI,
gitleakssecret scanning, branch protection z obveznim PR pregledom namain.
Revizijski dnevnik
- Privilegirane akcije (spremembe članstev organizacij, brisanja, dostopni žetoni) se beležijo v nespremenljivem
audit_logv bazi. - RLS politike ne dovolijo UPDATE ali DELETE nad
audit_log— zapisi so trajni. - Dnevnik se hrani v bazi dokler obstaja račun; brisanje računa kaskadno izbriše tudi pripadajoče zapise.
7. AI obdelava in zasebnost
Za ekstrakcijo podatkov iz računov in dokumentov uporabljamo dva AI ponudnika:
- Google Gemini API (2.5 Flash) — za enostranske račune. Google Cloud ima ISO 27001, SOC 2 Type 2, ISO 27017, ISO 27018 in standardni DPA. Na plačljivem tieru (ki ga uporabljamo) Google ne uporablja vaših vhodnih ali izhodnih podatkov za urjenje modelov.
- Mistral OCR — za večstranske dokumente in PDF-je. Mistral je francoska družba s sedežem v EU, ima SOC 2 Type 2 in GDPR-native obdelavo. Mistral privzeto ne uri modelov na API vhodih.
Kar to pomeni v praksi:
- Dokumenti se pošljejo zgolj za namen ekstrakcije: prepoznavanje dobavitelja, zneska, DDV-ja, datuma in razvrstitev.
- Vsebina dokumentov se ne uporablja za urjenje AI modelov niti pri Google niti pri Mistralu.
- Klic na Gemini API je edini podatkovni tok, ki zapusti EU. Za vse klice velja Googlov standardni DPA in standardne pogodbene določila.
- V nastavitvah organizacije lahko za posamezno stranko izklopite avtomatsko ekstrakcijo in izvajate ročni vnos.
8. Odziv na varnostne incidente
Konta je mlada platforma, ki jo razvijamo v manjši ekipi. Naš postopek odziva na incidente je zato preprost, vendar doslej:
- Zaznavanje — Sentry alarmiranje 24/7 in ročni pregled dnevnikov Vercel/Supabase.
- Ocena — resnost incidenta ocenimo v najkrajšem možnem času.
- Obveščanje — če bi prišlo do kršitve varnosti osebnih podatkov, vas obvestimo v roku 72 ur, skladno s členom 33 GDPR.
- Zadrževanje in obnovitev — izolacija prizadetih sistemov in, če je potrebno, obnovitev iz zadnje dobre varnostne kopije.
- Analiza po incidentu — po vsakem večjem incidentu zabeležimo, kaj se je zgodilo, in kaj bomo spremenili, da se ne ponovi.
Pomembno: do javnega izdaja nismo imeli varnostnih incidentov, ki bi vplivali na uporabniške podatke.
9. Skladnost in podedovani certifikati
Gradimo na ponudnikih infrastrukture, ki imajo vodilne varnostne certifikate — njihove kontrole so del naše varnostne osnove.
GDPR — direktno
Konta je upravljavec (ali obdelovalec) osebnih podatkov v skladu z Uredbo (EU) 2016/679. DPA je na voljo na /dpa.html.
SOC 2 Type 2 — podedovano
Prek Vercel, Supabase, GitHub, Sentry, Stripe, Google Cloud in Mistral AI.
ISO 27001 — podedovano
Prek Vercel, AWS (pod Supabase), GitHub, Google Cloud. Revidirano poročila ponudnikov na voljo po NDA.
PCI DSS Level 1 — plačila
Plačila obdeluje Stripe, certificiran po PCI DSS Level 1. Konta nikoli ne vidi in ne hrani podatkov o plačilnih karticah.
Pregledati revizijska poročila posameznih ponudnikov lahko po podpisu NDA prek njihovih uradnih varnostnih portalov (Supabase Trust Center, Vercel Trust Center, Google Cloud Compliance Reports Manager, Stripe Security portal).
10. Vaša odgovornost
Varnost je skupna naloga. Prosimo, da tudi na vaši strani upoštevate naslednje:
- Uporabite močno, edinstveno geslo za vaš Konta račun — idealno prek upravitelja gesel.
- Ne delite dostopnih poverilnic — za vsakega sodelavca ustvarite ločen uporabniški račun znotraj svoje organizacije.
- Ob prenehanju zaposlitve kolega takoj odstranite iz organizacije v nastavitvah.
- Sumljivo aktivnost takoj sporočite na security@konta.si.
- Poskrbite, da računalnik, s katerega dostopate do Konte, ima posodobljen operacijski sistem in brskalnik.
11. Varnostni kontakt in razkritje ranljivosti
Cenimo odgovorno razkritje varnostnih ranljivosti. Če odkrijete varnostno težavo na Konti, nas prosimo kontaktirajte preden jo javno razkrijete.
- Varnostne ranljivosti: security@konta.si
- GDPR in DPA vprašanja: dpa@konta.si
- Splošna vprašanja: hello@konta.si
Na varnostna poročila odgovorimo v roku 48 ur. Za resne ranljivosti zagotavljamo koordinirano razkritje in vas bomo obvestili pred objavo popravka.
Zaupamo vam naše stranke. Zahvaljujemo se vsem, ki pomagajo ohranjati Konto varno.