Biztonság és adatkezelés
A titkos adatok védelme
- Az API-kulcsok, a titkos további beállítások, a levelezőszerver jelszava, az AI-kliensek adatai és a kétlépcsős azonosítás kulcsa AES-256-GCM titkosítással kerülnek az adatbázisba.
- A mesterkulcs az adatbázistól külön mappában van, amelyet a program csak olvasni tud.
- A mentett kulcs a felületen soha nem jelenik meg; hosszú kulcsnál csak az utolsó négy karaktere, emlékeztetőként.
- A kulcs nem kerül a ChatGPT-hez vagy a Claude-hoz: a hívást a szerver hajtja végre, és ha egy szolgáltatás a válaszában visszaküldené a kulcsot, a program kitakarja.
- A naplóba nem kerül kulcs, token, hitelesítési fejléc és kéréstartalom.
- Az AI-kliensek hozzáférési és frissítő tokenjei csak hash formában tárolódnak. A hozzáférési token egy óráig érvényes, a frissítő token minden használatkor cserélődik.
Hozzáférés
- A kezelőfelület jelszóval (Argon2) és választható kétlépcsős azonosítással védett. Öt sikertelen belépés után 15 percig nem lehet próbálkozni.
- Minden űrlap CSRF-tokennel védett.
- A munkamenet 8 óra után lejár.
- Az AI-kliensek OAuth 2.1 szerint, PKCE-vel csatlakoznak. Minden kliens külön azonosítót kap, és az adminisztrátor jóváhagyása nélkül nem kap hozzáférést.
Kétlépcsős azonosítás e-mailben
Ez a hitelesítő alkalmazás vakbarát alternatívája. Beállítása a Beállítások oldalon történik.
- Adja meg az e-mail-küldés adatait (levelezőszerver, port, titkosítás, felhasználónév, jelszó, feladó és címzett), majd küldjön próbalevelet. Gmail esetén a szerver smtp.gmail.com, a port 465, a titkosítás SSL/TLS, jelszóként pedig egy alkalmazásjelszót kell megadni a Google-fiók Biztonság menüjéből.
- Nyomja meg az „E-mailes kétlépcsős azonosítás bekapcsolása” gombot. A bekapcsolás csak akkor lép életbe, ha a kapott levélben lévő hivatkozással megnyíló oldalon a „Bekapcsolás jóváhagyása” gombot megnyomja. Így nem zárhatja ki magát működésképtelen e-mail-beállítás miatt.
Belépéskor a jelszó után a program levelet küld. A levélben lévő hivatkozás 10 percig érvényes, és csak egyszer használható. A hivatkozás megnyitása önmagában nem hagy jóvá semmit (a levelezőrendszerek biztonsági szkennerei is megnyitják a hivatkozásokat): a megnyíló oldalon a „Belépés jóváhagyása” gombot kell megnyomni. Ez telefonról is megtehető. Az eredeti böngészőablak figyeli a jóváhagyást, bejelenti a képernyőolvasónak, és magától továbblép; szkript nélkül a „Tovább” gomb használható.
Ha nem Ön próbált belépni, a megnyíló oldalon az „Elutasítás” gombot nyomja meg, és változtassa meg a jelszavát.
Ha nem érkeznek meg a levelek
Ha kizárta magát, a szerveren a program mappájában futtassa ezt a parancsot: python -m app.helyreallitas (Dockeres szerveren: docker compose exec apikapu python -m app.helyreallitas). Ez kikapcsolja a kétlépcsős azonosítást, utána jelszóval beléphet.
Jogosultság-kikényszerítés
A szerver minden egyes hívás előtt az adatbázis aktuális állapota alapján ellenőrzi:
- a kliens jóvá van-e hagyva, és nincs-e visszavonva;
- a kapcsolat engedélyezett és teljes-e;
- a művelet jóvá van-e hagyva;
- a művelet típusa engedélyezett-e a kapcsolatnál;
- a művelet típusa engedélyezett-e ennek a kliensnek, ezen a kapcsolaton.
Nincs olyan eszköz, amely tetszőleges címre küldene kérést. A cím mindig a kapcsolat alapcíméből és a jóváhagyott művelet rögzített útvonalából áll. Az AI csak a leírásban szereplő paramétereket adhatja meg, és a hitelesítési paramétert nem írhatja felül.
Hálózati védelem
- Kimenő kérés csak https címre mehet.
- Belső hálózati, helyi és felhős metaadat-címre nem mehet kérés. Ezt a program a névfeloldás után is ellenőrzi, és a kérést a már ellenőrzött IP-címre küldi.
- Átirányítást csak ugyanarra a szerverre követ, legfeljebb háromszor.
- A válasz mérete korlátozott.
Adatvédelmi szempontok
- A szerver EU-s adatközpontban fut.
- Amit egy API visszaad, az a beszélgetésbe kerül, vagyis az OpenAI, illetve az Anthropic is feldolgozza. Személyes adatot vagy ügyvédi titoknak minősülő adatot kezelő rendszert (például ügyfél-nyilvántartást vagy társasházi rendszert) csak ennek mérlegelésével, szükség esetén az érintettek tájékoztatásával, adatkezelési alap és adatfeldolgozói szerződés mellett kössön be.
- A napló a sikertelen belépési kísérleteknél az IP-címet is rögzíti.
- Ha később más látássérült felhasználók is regisztrálhatnak, a szolgáltatás jellegéből következően a regisztráció ténye egészségügyi adatra utalhat (GDPR 9. cikk). Ez külön adatvédelmi tervezést igényel.
Promptinjekció elleni védelem
A külső API-k válaszai adatnak számítanak, nem utasításnak. A szerver ezt a válaszok elején jelzi a modell felé. A nem engedélyezett műveleteket pedig akkor is elutasítja, ha egy válaszba rejtett utasítás hatására a modell megpróbálná meghívni őket.