01Ukratko
Novo u verziji 1.1.1
- Lozinka je u iOS Keychainu — samo na ovom uređaju, bez sigurnosnih kopija i prijenosa na novi iPhone. Ako je starija verzija lozinku spremila drugdje, aplikacija je pri prvom pokretanju sama premjesti i obriše staru kopiju.
- Odjava briše baš sve što je aplikacija spremila na uređaju: prijavu, X-icu, raspored, ugovore, rasporede prijatelja, ocjene obroka, arhivu Semester Wrapped, postavke, predmemoriju, kolačiće i zakazane obavijesti.
Ako još imaš verziju 1.1, ažuriraj aplikaciju u App Storeu. Što još nije savršeno, piše u odjeljku Poznata ograničenja.
02Kako je ovo provjereno
Sve na ovoj stranici napisano je iz pregleda izvornog koda aplikacije (stanje 2. listopada 2026.), a ne iz marketinških obećanja. Pregledano je:
- svako mjesto gdje aplikacija čita, sprema ili briše podatke (postavke, datoteke, kolačići);
- svaki mrežni zahtjev i svaka adresa na koju aplikacija može poslati zahtjev;
- kod koji upisuje korisničku oznaku i lozinku u obrasce za prijavu;
- dopuštenja, ovlasti (entitlements), postavke mrežne sigurnosti i manifest privatnosti (
PrivacyInfo.xcprivacy); - popis ovisnosti projekta (vanjskih paketa i biblioteka).
Izvorni kod trenutačno nije javan, pa ovu stranicu ne moraš uzeti „na riječ”: u odjeljku Provjeri sam su koraci kojima najvažnije tvrdnje možeš provjeriti na svom iPhoneu, bez ikakvog tehničkog znanja. Ako nešto ovdje ne odgovara onome što vidiš, javi nam.
03Kamo idu podaci
UniFesb radi kao preglednik koji umjesto tebe otvara službene stranice i iz njih čita ono što ti treba. Podaci putuju samo između tvog iPhonea i sustava koji ih ionako već imaju:
Statistika potrošnje, Semester Wrapped, optimizator rasporeda i usporedba rasporeda s prijateljima računaju se na uređaju, iz već spremljenih podataka. Obavijesti su lokalne: sastavlja ih aplikacija na tvom iPhoneu, bez push poslužitelja.
04Kako radi prijava
UniFesb nema vlastite račune. Kad upišeš AAI@EduHr korisničku oznaku i lozinku, aplikacija ih koristi točno onako kako bi ih ti koristio u pregledniku:
- Otvori službenu stranicu za prijavu (
korisnik.fesb.unist.hrza raspored,issp.srce.hr→ AAI@EduHr za X-icu,websc.scst.hr→ AAI@EduHr za ugovore), uvijek preko HTTPS-a. - Upiše oznaku i lozinku u polja tog obrasca i pošalje ga. Lozinka tako odlazi samo sustavu kojem i pripada.
- Službeni sustav vrati kolačić sesije, a aplikacija s njim učita tvoje podatke i pročita ih iz stranice.
Nekoliko zaštita ugrađenih u taj postupak:
- Prijava za ugovore upisuje lozinku samo na
aaiedu.hr. Skripta prvo provjeri adresu stranice; vlastiti obrazac Studentskog servisa (za druge vrste računa) nikad ne dobije tvoju AAI lozinku. - Nema beskonačnog ponavljanja. Ako sustav odbije prijavu, aplikacija ne pokušava ponovno u petlji (što bi moglo zaključati račun), nego te vrati na obrazac za prijavu.
- Lozinka se ne kopira drugi put. Da bi zapamtila da je FESB odbio određenu kombinaciju, aplikacija sprema samo njezin SHA-256 otisak, a ne lozinku.
- Nema zapisnika s lozinkom. Aplikacija lozinku ne upisuje ni u kakve zapise, a datoteka s dijagnostičkim zapisima postoji samo u razvojnim verzijama na simulatoru.
Prijavni podaci spremaju se na uređaju kako bi se aplikacija mogla sama ponovno prijaviti kad sesija istekne i osvježiti raspored u pozadini. Gdje točno, piše u sljedećem odjeljku.
05Gdje se što sprema
Lozinka je u iOS Keychainu, a sve ostalo u spremniku (sandboxu) aplikacije na tvom iPhoneu. Druge aplikacije ne mogu čitati taj spremnik; dijeli ga samo s vlastitim widgetima, preko App Group spremnika group.com.ivanb.unicrack. Datoteke u njemu iOS šifrira ključem vezanim uz šifru uređaja (Data Protection), pa nakon ponovnog pokretanja iPhonea nisu čitljive dok ga prvi put ne otključaš.
| Podatak | Gdje se sprema | Briše se |
|---|---|---|
| AAI@EduHr lozinka | iOS Keychain, samo ovaj uređaj, dostupna nakon prvog otključavanja (AfterFirstUnlockThisDeviceOnly) Keychain | Odjavom ili pogrešnom lozinkom; nakon brisanja aplikacije pri sljedećoj instalaciji (vidi ograničenja) |
| AAI@EduHr korisnička oznaka | Postavke App Group spremnika | Odjavom, pogrešnom lozinkom ili brisanjem aplikacije |
| X-ica: ime, JMBAG, broj kartice, saldo, limit, transakcije | Postavke App Group spremnika (čita ih widget X-ice) | Odjavom ili brisanjem aplikacije |
| Raspored, prisutnost, prijavljeni ispiti | Datoteka schedule_cache.json u spremniku aplikacije i sažetak za widget u App Group spremniku | Odjavom ili brisanjem aplikacije |
| Kolačići sesije službenih sustava | Pohrana preglednika (WebKit) unutar aplikacije | Odjavom (brišu se svi web podaci aplikacije) ili brisanjem aplikacije |
| Studentski ugovori | Postavke App Group spremnika | Odjavom ili brisanjem aplikacije |
| Rasporedi prijatelja | Postavke aplikacije | Pojedinačno („Ukloni”), odjavom ili brisanjem aplikacije |
| Ocjene obroka, arhiva Semester Wrapped, postavke, predmemorija vijesti, oglasa i kolegija | Postavke aplikacije i App Group spremnika | Odjavom ili brisanjem aplikacije |
Ništa od navedenog ne sinkronizira se preko iClouda niti se šalje autoru. Lozinka nikad ne ulazi u sigurnosnu kopiju; ostali podaci aplikacije mogu biti dio sigurnosne kopije cijelog uređaja (iCloud ili računalo), ovisno o tvojim postavkama.
Odjava u Novčaniku od verzije 1.1.1 briše sve iz tablice. Ostaje samo oznaka da si već prošao uvodne zaslone, kako ti se ne bi ponovno prikazali. U verziji 1.1 ugovori, rasporedi prijatelja, ocjene obroka, arhiva Wrapped i postavke ostajali su do brisanja aplikacije.
06Mreža i šifriranje
- Samo HTTPS. Aplikacija nema nijednu iznimku od Appleove zaštite App Transport Security, pa iOS sam odbija svaku nešifriranu (
http://) vezu ili vezu sa zastarjelim TLS-om. - Provjera certifikata nije isključena. U kodu ne postoji nijedno mjesto koje zaobilazi iOS provjeru certifikata poslužitelja, pa lažni poslužitelj na javnoj Wi-Fi mreži ne može se predstaviti kao FESB ili AAI@EduHr.
- Zatvoren popis adresa. Osim službenih sustava za prijavu, aplikacija se spaja samo na javne izvore bez tvojih podataka:
nastava.fesb.unist.hr(kolegiji i nastavnici),www.scst.unist.hr(vijesti i poslovi),studentposao.hristudentski-poslovi.hr(zamjenski izvori poslova),sc.dbtouch.comicameras.dbtouch.com(jelovnici i kamere menzi). Potpun popis je u Pravilima privatnosti, odjeljak 5.
07Dijeljenje rasporeda bez poslužitelja
Kod, QR kod, poveznica unifesb:// ili datoteka za usporedbu rasporeda sami sadrže podatke: ime koje odabereš i termine za dva tjedna (kolegij, dan, sat, dvorana, vrsta nastave), sažete (zlib) i zapisane kao tekst (base64url). Ne postoji poslužitelj na kojem bi raspored „živio”, pa ga nitko ne može dohvatiti bez samog koda.
To znači i suprotno: kod nije šifriran. Tko god dobije kod, može pročitati raspored u njemu, pa ga dijeli samo s ljudima s kojima želiš. Kodovi ne sadrže lozinku, JMBAG, X-icu ni ocjene.
08Što aplikacija ne radi
- ne koristi nijedan vanjski paket ili SDK — samo Appleove sistemske okvire (SwiftUI, WebKit, WidgetKit, ActivityKit…);
- nema analitike, praćenja, oglasa, identifikatora za oglašavanje ni izvješća o rušenju trećih strana;
- nema push obavijesti i ne registrira uređaj ni na kakvom poslužitelju;
- ne pristupa lokaciji, kontaktima, mikrofonu ni zdravstvenim podacima i ne čita tvoje fotografije ni postojeće događaje u kalendaru;
- ne preuzima ocjene i ne sprema OIB;
- ne sinkronizira ništa preko iClouda.
Manifest privatnosti ugrađen u aplikaciju to i službeno izjavljuje Appleu:
Prazni popisi znače: nema praćenja, nema domena za praćenje i nema vrsta podataka koje autor prikuplja.
09Provjeri sam
Ne moraš nam vjerovati na riječ. Ovo možeš provjeriti na svom iPhoneu za nekoliko minuta:
Ako znaš raditi s alatima poput Charlesa ili Proxymana, možeš i sam pratiti promet aplikacije; zbog provjere certifikata za to moraš na uređaj namjerno instalirati vlastiti korijenski certifikat.
10Poznata ograničenja
Sigurnost nije „da ili ne”. Ovo je popis onoga što je riješeno i onoga što još može biti bolje, objašnjeno bez uljepšavanja:
Lozinka je u Keychainu riješeno u 1.1.1
Do verzije 1.1 lozinka je bila u postavkama spremnika aplikacije, zaštićena sandboxom i šifriranjem iOS-a. Od verzije 1.1.1 čuva se u iOS Keychainu, koji je namijenjen upravo lozinkama: može je pročitati samo UniFesb, ostaje samo na ovom uređaju i ne ulazi u sigurnosne kopije. Pri prvom pokretanju nove verzije aplikacija lozinku sama premjesti u Keychain i obriše staru kopiju.
Odjava briše sve riješeno u 1.1.1
Od verzije 1.1.1 odjava s uređaja briše sve što je aplikacija spremila, uključujući ugovore, rasporede prijatelja, ocjene obroka, arhivu Semester Wrapped, postavke i zakazane obavijesti. Ostaje samo ono što je izvan aplikacije: događaji koje si dodao u Kalendar, slike spremljene u Fotografije i ono što si podijelio s drugima.
Brisanje aplikacije ne briše Keychain odjavi se prije
iOS stavke iz Keychaina ne briše zajedno s aplikacijom. Ako izbrišeš UniFesb bez odjave, šifrirana lozinka ostaje u Keychainu, nedostupna drugim aplikacijama, dok aplikaciju ponovno ne instaliraš — tada je UniFesb pri prvom pokretanju odmah obriše. Ako aplikaciju brišeš zauvijek, prvo se odjavi.
Nešifrirana sigurnosna kopija na računalu ovisi o tebi
Lozinka od verzije 1.1.1 nikad ne ulazi u sigurnosnu kopiju. Ostali podaci aplikacije (npr. X-ica i raspored) ulaze, pa ako iPhone kopiraš na računalo bez uključenog „Šifriraj lokalnu sigurnosnu kopiju”, oni su u kopiji čitljivi. Sigurnosne kopije na iCloudu Apple šifrira (s Naprednom zaštitom podataka i end-to-end).
Widgeti i obavijesti na zaključanom zaslonu ovisi o tebi
Widget X-ice prikazuje saldo, a widgeti rasporeda, obavijesti i Live Activity prikazuju kolegije i dvorane. Ako ih dodaš na zaključani zaslon ili dopustiš prikaz obavijesti bez otključavanja, vidi ih svatko tko pogleda tvoj mobitel.
Aplikacija ovisi o službenim sustavima po prirodi
UniFesb je neslužbena aplikacija koja čita službene stranice. Tvoji podaci na FESB-u, ISSP-u i Studentskom centru zaštićeni su onako kako ih ti sustavi štite. Aplikacija nema dodatno zaključavanje (npr. Face ID pri otvaranju), pa se oslanja na zaključavanje samog iPhonea.
Kad se nešto od ovoga promijeni, ažurirat ćemo ovu stranicu, Pravila privatnosti i bilješke nove verzije na App Storeu.
11Savjeti za tvoju sigurnost
- Ažuriraj UniFesb na verziju 1.1.1 ili noviju, da lozinka bude u Keychainu.
- Zaključaj iPhone šifrom i Face ID-om ili Touch ID-om — to je glavna zaštita svih podataka na njemu.
- Ako mobitel kopiraš na računalo, uključi „Šifriraj lokalnu sigurnosnu kopiju” u Finderu ili iTunesu.
- Ako si mijenjao AAI@EduHr lozinku ili sumnjaš da ju je netko saznao, promijeni je na aaiedu.hr, pa se u aplikaciji odjavi i prijavi novom.
- Prije brisanja aplikacije, ili prije nego mobitel daš ili prodaš, odjavi se u Novčaniku (a mobitel koji daješ izbriši u cijelosti).
- Kodove i QR kodove rasporeda dijeli samo s ljudima kojima želiš pokazati gdje si i kada.
12Prijavi sigurnosni problem
Ako pronađeš ranjivost ili nešto što ne odgovara ovom opisu, javi nam prije nego to objaviš. Napiši što si pronašao i kako se može ponoviti; odgovor dobiješ u roku od nekoliko dana, a ozbiljne probleme rješavamo prioritetno i s tobom dogovaramo objavu. Molimo da pri testiranju ne pristupaš tuđim računima i ne opterećuješ sustave FESB-a, Srca ni Studentskog centra.
Isti kontakt nalazi se i u standardnoj datoteci /.well-known/security.txt.