Izjava o Varnosti
Moj AI je zasnovan z security and privacy by design principom. Ta dokument opisuje naše celovite varnostne ukrepe, prakse zaščite podatkov in skladnost z evropskimi predpisi, vključno z GDPR (General Data Protection Regulation) in industrijskimi varnostnimi standardi.
Verzija dokumenta: 2.0
Zadnja posodobitev: Januar 2026
Status: ✅ Compliant
Izjava o Skladnosti
Moj AI je zasnovan in upravljan v skladu z naslednjimi predpisi in standardi:
Predpis / Standard
Status
Opis
Splošna uredba o varstvu podatkov EU
Firebase Security Best Practices
Google Cloud varnostni standardi
Industrijski standard za avtentikacijo
Šifriranje transportne plasti
Zbiranje samo nujno potrebnih podatkov
Certificirani podatkovni centri
Pravna Podlaga za Procesiranje Podatkov
Soglasje uporabnika: Avtentikacija z Google OAuth pomeni soglasje s pogoji uporabe
Izpolnjevanje pogodbe: Procesiranje potrebno za izvajanje AI asistenčne storitve
Zakonite interese: Varnost sistema, preprečevanje zlorab
Revizija Varnosti
Moj AI redno izvaja varnostne revizije za zagotavljanje najvišjih standardov varnosti.
Revizija #2 – 21. januar 2026
Revizor: Neodvisni varnostni pregled
Obseg: Celovita druga varnostna revizija
Ugotovitve:
Firestore rules deployment drift
Cloud Functions avtentikacija
Client-side token handling
Sprejeti ukrepi:
Posodobljena Firestore security rules z zaščito pred privilege escalation
Preverjeno: vse Cloud Functions zahtevajo token-based authentication
Potrjeno: Stripe webhook uporablja strogo signature verification
Posodobljena varnostna dokumentacija za javno objavo
Revizija #1 – 15. januar 2026
Revizor: Interna varnostna ekipa
Obseg: Začetna celovita varnostna revizija
Ugotovitve:
Firestore privilege escalation ranljivost
Stripe webhook signature bypass
Nevarnovane Cloud Functions
Manjkajoča validacija vnosov
Sprejeti ukrepi:
Implementiran verifyAuth middleware za vse občutljive Cloud Functions
Odstranjen Stripe webhook fallback bypass blok
Dodana field-level protection v Firestore rules
Implementirana validacija velikosti in tipa datotek
Avtentikacija in Avtorizacija
Metoda Avtentikacije
Moj AI uporablja Firebase Authentication z Google OAuth 2.0 kot edino metodo avtentikacije.
Ključne značilnosti:
Single Sign-On (SSO): Uporabniki se avtenticirajo preko svojega Google računa
Token-Based Sessions: Firebase ID tokeni z avtomatičnim refresh-om
Brez shranjevanja gesel: Ne shranjujemo gesel; avtentikacijo izvaja Google
Multi-Factor Authentication: Podprto preko Google Account nastavitev
Potek Prijave (Login Flow)
Uporabnik začne prijavo
Uporabnik klikne "Continue with Google".
Preusmeritev na Google OAuth
Uporabnik je preusmerjen na Google za avtentikacijo.
Avtentikacija pri Google
Google preveri identiteto in vrne ID token (JWT).
Firebase preveri token
Firebase preveri podpis tokena in veljavnost.
Ustvarjanje/posodobitev seje
Ustvari ali posodobi uporabniško sejo v Firestore.
Nastavitev varnih cookies
Nastavi HTTP-only, Secure piškotke (SameSite=settings).
Preusmeritev na dashboard
Uporabnik je preusmerjen nazaj v aplikacijo.
Varnostne Značilnosti Avtentikacije
🔐 Industry-standard OAuth 2.0
🔒 JWT token-based sessions
Firebase ID tokens z digital signature
🛡️ Avtomatski token refresh
Transparentno podaljševanje seje
Če omogočeno v Google Account
Avtomatska odjava po preteku tokena
🚫 Brez shranjevanja gesel
Zero-knowledge password policy
Model Avtorizacije
Role-Based Access Control (RBAC):
Dostop do osebnih pogovorov, dokumentov in nastavitev
Dostop do system prompts, admin dokumentov in uporabniškega upravljanja
Kontrolni mehanizmi:
Vsi API klici zahtevajo veljaven Firebase ID token
User ID ekstrahiran iz preverjenega tokena, nikoli iz request body
Admin status preverjen preko Firebase Custom Claims in Firestore
Firestore Security Rules uveljavljajo izolacijo podatkov na nivoju baze
Token Verification Process
Zaščita Podatkov in Zasebnost
Principi GDPR - Data Minimization
Sledimo GDPR principu minimizacije podatkov - zbiramo samo podatke, ki so nujno potrebni za delovanje storitve:
Tip podatka
Namen
Retencija
Uporabniško kontrolirano brisanje
Uporabniško kontrolirano brisanje
Kaj NE zbiramo:
❌ Osebne identifikacijske številke
❌ Finančne podatke (procesira Stripe)
Procesiranje Podatkov
Purpose Limitation: Podatki se procesirajo izključno za zagotavljanje AI asistenčne storitve
Pravna podlaga: Uporabniško soglasje (avtentikacija pomeni soglasje s pogoji)
Third-Party Processing: Google Cloud (Firebase) kot procesor podatkov z Data Processing Agreement (DPA)
Transakcije: Stripe kot procesor plačil (PCI-DSS compliant)
Hramba Podatkov in Lokacija
Primarni podatkovni centri: EU region (europe-west1)
Backup lokacije: Multi-region EU
Brez prenosa izven EU za evropske uporabnike (GDPR člen 44)
Retencija:
Aktivni podatki: Nedoločeno (uporabniško kontrolirano)
Izbrisani računi: 30-dnevna grace period za obnovitev
Backupi: 30-dnevna retencija
System logi: 90-dnevna retencija
AI procesiranje: Gemini API ne hrani pogovorov
Šifriranje in Kriptografija
Šifriranje v Transportu (In Transit)
Plast
Šifriranje
Standard
Opis
Vsa komunikacija frontend-backend
Značilnosti TLS 1.3:
0-RTT resumption (performance)
Šifriranje v Mirovanju (At Rest)
Podatki
Šifriranje
Standard
Lokacija
Google-Managed Encryption:
Ključi upravljani s strani Google Cloud
Avtomatska rotacija ključev
Hardware Security Modules (HSM)
Šifriranje Gesel in Tokenov
Gesla: Nikoli ne shranjujemo (OAuth delegirana avtentikacija)
API Keys: Shranjeni v Cloud Functions environment (encrypted)
JWT Tokens: Digitalno podpisani s Firebase private key
Session Cookies: HTTP-only, Secure flag, SameSite=Strict
Zaščiteni Endpoint-i
Vse HTTP Cloud Functions implementirajo večplastno varnost:
Endpoint
Avtentikacija
Rate Limiting
Input Validation
/deleteDocumentFromFileSearch
Validacijski mehanizmi:
Validacijska pravila:
✅ Zahtevana polja ne smejo biti prazna
✅ MIME type mora biti na allowlist
✅ Velikost datoteke ne sme presegati limita
✅ Datotečna imena sanitizirana (path traversal preprečevanje)
✅ SQL injection preprečevanje (NoSQL Firestore)
✅ XSS preprečevanje (Content Security Policy)
CORS (Cross-Origin Resource Sharing)
AI zahteve: Omejene s kvoto vprašanj (plačniški model)
Upload zahteve: Max 10 datotek/minuto per uporabnik
Login poskusi: Firebase Auth rate limiting (Google-managed)
Google Search API: 100 zahtev/dan (API limit)
Infrastrukturna Varnost
Moj AI deluje na Google Cloud Platform (Firebase), ki zagotavlja:
Certificirani podatkovni centri:
✅ ISO 27001 - Information Security Management
✅ SOC 2 Type II - Service Organization Controls
✅ ISO 27017 - Cloud Security
✅ ISO 27018 - Cloud Privacy
✅ GDPR - Data Processing Agreement (DPA)
Fizična varnost:
24/7 varovanje podatkovnih centrov
Biometrična kontrola dostopa
Redundantno napajanje (UPS + generator)
Požarna zaščita in nadzor okolja
Omrežna Varnost
Cross-origin request protection
Cloud-native DDoS protection
Secret Management
Prakse:
✅ API ključi shranjeni v Cloud Functions environment variables
✅ Brez hardcoded secrets v source code
✅ Rotacija ključev brez prekinitve storitve
✅ .env izključen iz version control (.gitignore)
✅ Separate keys za development/staging/production
Stripe Payment Security
✅ Stripe procesira plačila (PCI-DSS Level 1)
✅ Ne shranjujemo kartic - Stripe Vault
✅ Webhook signature verification (HMAC-SHA256)
✅ Strict signature verification (brez fallback bypass)
Arhitektura Izolacije Podatkov
Per-User Data Segregation
Firestore uporablja hierarhično strukturo za popolno izolacijo uporabniških podatkov:
Firestore Security Rules
Varnostne značilnosti:
✅ Zero-trust: Vsako pravilo eksplicitno definirano
✅ Privilege escalation protection: Uporabniki ne morejo spremeniti isAdmin, questions, ali enterprise polj
✅ Per-user isolation: Uporabnik A ne more dostopati do podatkov uporabnika B
✅ Role-based access: Admin dostop verificiran na več nivojih
✅ Server-side enforcement: Pravila uveljavljena na Firebase serverjih
Cloud Storage Security Rules
Uporabniške Pravice (GDPR)
Moj AI podpira vse z GDPR zahtevane uporabniške pravice.
Pravica (GDPR Člen)
Implementacija
Dostop
Uporabniki lahko vidijo vse svoje podatke v aplikaciji
Right to Rectification (16)
Uporabniki lahko uredijo svoj profil in nastavitve
Brisanje računa odstrani vse uporabniške podatke
Right to Data Portability (20)
Zgodovina pogovorov dostopna za izvoz (JSON)
Right to Withdraw Consent (7)
Uporabniki lahko kadar koli izbrišejo račun
Brez avtomatiziranega profiliranja; uporabnik nadzoruje AI interakcije
Postopek Brisanja Podatkov
1. User Document Deletion
Vsi poddokumenti (conversations, settings)
2. Conversation History Deletion
Firestore: /users/{uid}/conversations/*
3. Uploaded Documents Deletion
Cloud Storage: /user-documents/{uid}/*
Gemini File API: deleteFile()
4. RAG Store Deletion
Firestore: /fileSearchStores/user-{uid}
Associated vectors/embeddings
5. Stripe Customer Deletion
Mark as deleted, retain for 30 days (regulatory)
6. Authentication Deletion
Firebase Auth: deleteUser()
Retencija po brisanju:
✅ Grace period: 30 dni za možnost obnovitve
✅ Backupi: Izbrisani iz backup-ov po 30 dneh
✅ Logi: Anonimizirani po 90 dneh
✅ Stripe: Označeno kot izbrisano, retain 7 let (zakonska zahteva)
Pravica do Prenosa Podatkov
Izvoz podatkov (JSON format):
Odziv na Incidente
Kontakt za Varnostne Zadeve
Za varnostne skrbi ali prijavo ranljivosti:
Čas odziva: Kritični problemi v 24 urah
Responsible Disclosure: Spoštujemo responsible disclosure policy
Klasifikacija Incidentov
Kršitev podatkov, authentication bypass
Privilege escalation, API exploit
Data validation issue, CORS misconfiguration
Minor policy violation, informacijski leak
Postopek ob Kršitvi Podatkov
V skladu z GDPR Členom 33 in 34:
1. Odkritje in Ocena (0-24h)
Identifikacija obsega kršitve
Ocena vplivanih uporabnikov
Določitev resnosti in tveganja
2. Notifikacija Nadzornega Organa (do 72h)
Prijava Information Commissioner (Slovenija: IP)
Opisani ukrepi za ublažitev
3. Notifikacija Uporabnikov (brez nepotrebne zamude)
Če visoko tveganje: Direktna notifikacija vplivanih uporabnikov
Jasna komunikacija o kršitvi
Navodila za zaščitne ukrepe
Kontaktne informacije za vprašanja
Popolna dokumentacija incidenta
Monitoring in Audit
Security Monitoring
Continuous monitoring:
✅ Failed authentication attempts
✅ Privilege escalation poskusi
✅ Nenavadni vzorci dostopa
✅ API rate limit preseganja
Alerting:
Email notifikacije za kritične dogodke
Dashboard za real-time monitoring
Logged Events primer:
Retention:
Audit logs: 1 leto (admin actions)
Compliance s Slovensko Zakonodajo
Zakon o Varstvu Osebnih Podatkov (ZVOP-2)
Moj AI je skladen z ZVOP-2, slovenskim implementacijskim zakonom GDPR:
✅ Evidenca dejavnosti obdelave (Register of Processing Activities)
✅ Pooblaščena oseba za varstvo podatkov (DPO contact available)
✅ Obveščanje posameznikov (Privacy policy)
✅ Varnostni ukrepi (Technical and organizational measures)
Kontakt nadzornega organa:
Naziv: Informacijski pooblaščenec
Naslov: Dunajska cesta 22, 1000 Ljubljana
Spletna stran: https://www.ip-rs.si
Best Practices in Priporočila
✅ Uporabljajte močno geslo za Google račun
✅ Omogočite 2FA (Two-Factor Authentication) na Google računu
✅ Ne delite dostopa do svojega računa
✅ Redno pregledujte zgodovino aktivnosti
✅ Takoj prijavite sumljivo aktivnost
Za Administratorje
✅ Uporabite ločen admin račun (ne personal)
✅ Redno pregledujte system logs
✅ Omejite admin dostop na najmanjši potrebni obseg
✅ Dokumentirajte vse spremembe system prompts
✅ Redno izvajajte varnostne revizije
Transparent Security
Kaj Lahko Vidijo Uporabniki
✅ Vsi lastni pogovori in dokumenti
✅ Zgodovina uporabe (število vprašanj)
✅ Account settings in preferences
✅ Admin dokumenti v RAG library (read-only)
Kaj NE morejo videti:
❌ Pogovore drugih uporabnikov
❌ Dokumente drugih uporabnikov
❌ System prompts (admin-only write)
❌ Backend logs in metrics
Security by Design
Vgrajeni varnostni principi:
Defense in Depth: Večplastna varnost (authentication, authorization, encryption)
Least Privilege: Minimalni potrebni dostop
Secure by Default: Varnostne nastavitve privzeto omogočene
Zero Trust: Preverjanje vsakega zahtevka
Data Minimization: Zbiranje samo nujnih podatkov
Za varnostne zadeve:
⏱️ Response Time: Kritične zadeve v 24h
Za vprašanja o zasebnosti:
📋 Privacy Policy: https://app.mojai.xyz/privacy
General Support
🌐 Website: https://app.mojai.xyz
📚 Documentation: https://docs.mojai.xyz
Upravljavec podatkov:
Naslov: [Vaš poslovni naslov]
Posodobitve Dokumenta
Ta dokument je redno posodobljen v skladu z varnostnimi revizijami in spremembami v varnostni praksi.
Zgodovina verzij:
v2.0 (21.01.2026) - Dodane varnostne revizije, GDPR sekcija, incident response
v1.0 (15.01.2026) - Začetna verzija
Izjava o zavezi:
Moj AI je zavezan varovanju vaših podatkov in zasebnosti. Varnost in zasebnost sta vgrajena v jedro naše aplikacije od začetka (security and privacy by design). Ta dokument je del naše zaveze transparentnosti in zaupanja uporabnikov.
Za dodatna vprašanja ali pomisleke glede varnosti kontaktirajte naš varnostni tim na [email protected]
Verzija dokumenta: 2.0
Datum: Januar 2026
Status: ✅ GDPR Compliant