Biztonság és adatvédelem a ParentLoopban
A ParentLoop azért jött létre, hogy a legérzékenyebb adatokat tárolja, amelyeket egy család valakire rábízhat: a gondozási rendet, a gyermek egészségét, a dokumentumokat, a pénzügyeket. Ez az oldal konkrétan leírja, mit teszünk velük — olyan általánosítások nélkül, mint a „banki szintű biztonság”. Az alkalmazás a nyilvános indulásra készül, és még nem érhető el az áruházakban.
- A gyerek dokumentumait végpontok közötti titkosítás védi. Nincs nálunk kulcs, ezért nem tudjuk megnyitni őket.
- A gyermek egészségügyi adatait is végpontok között titkosítjuk — automatikusan, gyermekenként külön, amint minden olyan személynek megvan a dokumentumkulcsa, aki hozzáfér az adott gyermek egészségügyi adataihoz. Ha egyedül használja az alkalmazást, attól a pillanattól kezdve, hogy létrehozza a kulcsát.
- A kulcsa másolatát jelkulcsként (passkey) is elmentheti. iOS 18 vagy Android 9, illetve újabb rendszer szükséges hozzá.
- A kulcsot, a dokumentumokat és a gyermekalkalmazás párosítását mutató képernyők letiltják a képernyőfotót.
- A felhasználók közül a gyermek adatait kizárólag a profiljához kapcsolt szülők és gondviselők látják. Ezt az adatbázis kényszeríti ki, nem csak az alkalmazás.
- Minden új bejelentkezést azonnal lát a fiókjában (a fiók létrehozását követő első 24 óra után). Az ismeretlen eszközt egy koppintással kijelentkeztetheti.
- Az adatokat az Európai Unióban tároljuk. Frankfurtban, nem „valahol a felhőben”.
- Ez a weboldal nem használ sütiket és követőszkripteket. Hozzájárulást sem kér soha, mert nincs mihez.
- A gyermeknek nincs e-mail-címmel vagy jelszóval védett fiókja. Ez termékelv, nem megváltoztatható beállítás.
- A szülők közötti üzenetek nincsenek végpontok között titkosítva. Lejjebb elmagyarázzuk, miért.
- Az értesítések nem mutatnak címeket, üzenetszöveget és egészségügyi bejegyzéseket.
Dokumentumok: végpontok közötti titkosítás
Bírósági határozatok, vizsgálati eredmények, iskolai igazolások — a fájl és a címe még azelőtt titkosítódik, hogy elhagyná a telefont, és így kerül a ParentLoopba. A szerveren egy számunkra olvashatatlan bájtsorozat van, és ez nem belső szabályzat, hanem matematika kérdése. Látjuk viszont a bejegyzés technikai adatait: a dokumentum típusát (például útlevél vagy fogyatékossági határozat), a fájl típusát és méretét, hogy ki és mikor adta hozzá, valamint az érvényességi dátumot, ha Ön megadja — ez alapján küld emlékeztetőt a szerver.
Konkrétan ezeket használjuk:
XChaCha20-Poly1305– titkosítja a fájlt, és észleli, ha valaki módosította.X25519– kulcsegyeztetés a szülők között.HKDF-SHA256– kulcsszármaztatás.- A
@noblekönyvtárak – auditáltak, külső függőségek nélkül.
A privát kulcs soha nem kerül a szervereinkre. A telefon biztonságos tárolójában van (iOS-en a kulcskarikában, azaz a Keychainben, Androidon a Keystore-ban). Csak a nyilvános felét tesszük közzé, hogy a másik szülő úgy titkosíthasson egy fájlt, hogy Ön meg tudja nyitni.
A véletlenszámokat az operációs rendszer adja, nem a könyvtár saját alapértelmezése: React Native alatt ez az alapértelmezés csendben felmondhatja a szolgálatot, a gyenge véletlenszerűség következménye pedig nem hibaüzenet, hanem egy kitalálható kulcs, amelyet soha senki nem vesz észre.
Egészségügyi adatok: végpontok közötti titkosítás
Az allergiákat, a gyógyszereket, a krónikus betegségeket, a vércsoportot, a feljegyzéseket, az orvosi bejegyzéseket (vizitek, védőoltások, diagnózisok, vizsgálati eredmények, kórházi tartózkodások), valamint a magasság- és testsúlyméréseket automatikusan, gyermekenként külön titkosítjuk. A kulcs magától létrejön annak a szülőnek a telefonján, aki hozzáfér az egészségügyi adatokhoz, hozzájárult a kezelésükhöz, és van a telefonján dokumentumkulcs (a titkosítás a Beállításokban kézzel is bekapcsolható); a kulcs átadása a másik szülőnek vagy gondviselőnek a kulcs ujjlenyomatának megerősítését igényli. A dokumentumkulcsot az alkalmazás nem hozza létre magától: Ön hozza létre egyszer, a Beállításokban vagy a Dokumentumok képernyőn (a jelkulcsot támogató telefonokon az alkalmazás a kezdeti beállítás végén is felajánlja). Amíg nincs kulcsa, a gyermek egészségügyi adatai nincsenek végpontok között titkosítva. A titkosítás akkor lép életbe, amikor minden olyan személy rendelkezik a kulccsal, aki hozzáfér az adott gyermek egészségügyi adataihoz — a szülők, valamint a gondviselő is, ha megkapta ezt a jogosultságot. Amíg nem rendelkezik minden jogosult a kulccsal, az adatokat a korábbiak szerint tároljuk (védetten, de nem végpontok között titkosítva), az alkalmazás pedig megmutatja, kire vár. Amikor a titkosítás él, az adatok a telefonon titkosítódnak, ugyanazokkal az algoritmusokkal, mint a dokumentumok; a szerveren csak az látszik, hogy a bejegyzés létezik, a dátuma és az, hogy ki adta hozzá.
Két dolgot nyíltan leírunk. A szerveren továbbra is látjuk, hogy a bejegyzés létezik, látjuk a dátumát és azt, hogy ki adta hozzá — maga a tartalom olvashatatlan. A titkosítás pedig csak akkor kezd működni, amikor a gyermek adataihoz hozzáférő összes szülő megkapta a kulcsot. Addig az adatokat a korábbiak szerint tároljuk — védetten, de nem végpontok között titkosítva —, az alkalmazás pedig mutatja, kire vár. Amikor a titkosítás működni kezd, a kulccsal rendelkező szülő telefonja a korábbi bejegyzéseket is titkosított formára írja át; ezek nyílt szövegű változata még legfeljebb 7 napig megmaradhat az adatbázis biztonsági mentéseiben.
Ha egyedül használja a ParentLoopot, a titkosítás bekapcsol, amint létrehozza a dokumentumkulcsát, anélkül, hogy bárkire várnia kellene. A később csatlakozó szülő csak azután kapja meg a kulcsot, hogy Ön a saját telefonján megerősítette a kulcsa ujjlenyomatát. Miért van egyáltalán titkosítás nélküli időszak: ha a családban már két személy fér hozzá az egészségügyi adatokhoz, és egyiküknek még nincs kulcsa, nem titkosítunk erőszakkal csak a másik számára. A kulcs nélküli személy ugyanis nem látná többé a gyermek allergiáit és gyógyszereit, amíg valaki meg nem erősíti a kulcsát — ezt a megerősítést pedig nem lehet automatizálni, mert akkor a szerver a saját kulcsát csempészhetné be. Minden egészségügyi űrlap „Mentés” gombja fölött az alkalmazás jelzi, hogy amit ment, titkosítva lesz-e.
A gyermek PESEL-száma, ha Ön beírja, mindig végpontok között titkosított: dokumentumkulcs nélkül az alkalmazás nem menti el.
Ha a kulcsot új személlyel osztja meg, azt mindig meg kell erősíteni egy olyan telefonon, amelyen a kulcs már megvan – úgy, hogy a képernyőn látszik az illető neve és a kulcs ujjlenyomata.
A helyreállítási kód
Mivel a kulcsa nincs nálunk, telefoncserekor nem tudjuk visszaállítani. Ezért a kulccsal együtt létrejön egy helyreállítási kód – ebből származik a kulcs. Bármikor megtalálja a kulcs beállításai között. Ne a telefonon tárolja, hanem máshol. Nélküle (vagy az alább leírt jelkulcsos másolat nélkül) a régi kulccsal titkosított dokumentumok és egészségügyi adatok Ön számára is olvashatatlanok maradnak. Ez az ára annak, hogy mi nem férünk hozzá, és inkább nyíltan kimondjuk, mint hogy „biztos, ami biztos” alapon hátsó kaput tartsunk fenn.
A kulcs másolata jelkulcsban (nem kötelező)
Ahelyett, hogy új telefonon újra begépelné a kódot, a kulcsa másolatát jelkulcsként (passkey) elmentheti az Apple Jelszavak appjába vagy a Google Jelszókezelőbe (a Google azonosítókulcsnak hívja). Új telefonon ezután egyetlen koppintás feloldja a dokumentumait és az egészségügyi adatait.
iOS 18 vagy Android 9, illetve újabb rendszer szükséges. A másolat egy platformon belül működik: iPhone-on mentve iPhone-t old fel, Androidon mentve androidos telefont. Ha egyik platformról a másikra vált, ahhoz továbbra is a helyreállítási kód kell.
Így működik: a szerveren a helyreállítási kódja titkosított másolata van. Az ehhez tartozó kulcsot a
jelkulcsa állítja elő (a WebAuthn PRF-bővítménnyel), és ez a kulcs soha nem jut el hozzánk – jelkulcs
nélkül ez a másolat számunkra is csak egy olvashatatlan bájtsor. A jelkulcs egy külön domainhez, a
klucz.parentloop.pl címhez kötődik, amely két konfigurációs fájlon kívül semmit sem szolgál
ki, így a parentloop.pl egyetlen szkriptje sem kérheti el.
Az őszinte mérleg: ez kényelem, egyetlen feltételezésért cserébe. Aki ismeri az Apple- vagy Google-fiókja jelszavát és valamelyik eszközének jelkódját, használhatja ezt a jelkulcsot. Ezért nem kötelező a másolat. A kulcsbeállításokban bármikor törölheti, és akkor is eltűnik, ha kulcsot cserél vagy törli a fiókját.
Bizalom a másik szülő kulcsában
A végpontok közötti titkosítás csak annyit ér, amennyire biztos abban, hogy kinek titkosít. Az alkalmazás az első alkalommal megjegyzi a másik szülő kulcsát. Ha ez a kulcs később megváltozik, a feltöltés nem folytatódik csendben – megáll, és egy embert kérdez meg.
A kulcs ujjlenyomatát össze is vethetik, és megerősíthetik egymásnak. A megerősítés egy adott személypárhoz és egy konkrét kulcshoz tartozik: ha a kulcs megváltozik, a megerősítés érvényét veszti, és újra el kell végezni. Különben olyan pecsét lenne, amely túléli azt, amit lepecsételt.
A titkosítás tervezésekor abból indulunk ki, hogy a saját szerverünk is hazudhat — mert ha valaki egyszer átveszi az irányítást felette, éppen ezzel próbálkozik majd. Ezért a másik szülő kulcsának ujjlenyomatát az Ön telefonja számolja ki, nem a szerver, és a saját kulcsát a telefon minden olvasáskor összeveti azzal, amelyik nála van. Az a telefon, amely egyszer már titkosítva látta a gyerek egészségügyi adatait, többé nem írja őket titkosítatlanul, akkor sem, ha a szerver azt állítja, hogy a titkosítás ki van kapcsolva. A helyreállítási kód megjelenítéséhez és a kulcs cseréjéhez Face ID, Touch ID vagy a képernyőzár kódja kell. A fájlok visszafejtett másolatait (dokumentumok, adatexport, beolvasások) az alkalmazás minden indításkor és kijelentkezéskor törli a telefon tárhelyéről.
Biometrikus zár
A dokumentum megnyitásához Face ID, Touch ID vagy a képernyőzár kódja szükséges — minden alkalommal, nem munkamenetenként egyszer. Beállított képernyőzár nélkül a dokumentum nem nyitható meg. Az asztalon hagyott, feloldott telefon nem ugyanaz, mint a hozzájárulás egy bírósági határozat elolvasásához. Ugyanez vonatkozik az adatexportra is: a ZIP-fájl a dokumentumokat már visszafejtve tartalmazza, ezért az alkalmazás minden letöltés előtt Face ID-t, Touch ID-t vagy a képernyőzár kódját kéri.
Képernyőfotók
A kulcsot és a helyreállítási kódot, a dokumentumokat és a gyermekalkalmazás párosítását mutató képernyők blokkolják a képernyőfotók készítését és a képernyőfelvételt. Androidon a képernyőfotó és a felvétel fekete lesz, a legutóbbi alkalmazások közötti előnézet pedig üres; iPhone-on a képernyőfotó és a felvétel szintén fekete lesz, az alkalmazásváltóban lévő előnézet pedig elmosódott. Az alkalmazás többi részében a képernyőfotók a szokásos módon működnek. Ez akadály, nem garancia: azt semmi nem blokkolja, ha a képernyőt egy másik telefonnal lefényképezik.
Bejelentkezések és bejelentkezett eszközök
Ha a fiók létrehozását követő első 24 óra után valaki bejelentkezik a szülői fiókjába, értesítést kap az alkalmazásban és — ha engedélyezte az értesítéseket — a telefonján is, az eszköz típusával (iPhone vagy iPad, Android telefon vagy táblagép, webböngésző vagy egyéb eszköz). Ezt az értesítést az alkalmazás értesítési beállításaiban nem lehet kikapcsolni (csendes órákban azok végén érkezik). A Beállítások → Adatvédelem és adatok → Bejelentkezett eszközök menüben minden olyan eszközt lát, amelyen a fióknak aktív munkamenete van, és bármelyiket egy koppintással kijelentkeztetheti. A kijelentkeztetett eszköz legkésőbb egy órán belül elveszíti a hozzáférést.
Miért fontos: a ParentLoopba e-mailben kapott linkkel vagy jelszóval jelentkezik be. Ha valaki megtudja a jelszavát, vagy hozzáfér az e-mail-fiókjához, az új bejelentkezésről azonnal tudomást szerez. Ilyenkor jelentkeztesse ki az ismeretlen eszközt, és változtassa meg az e-mail-jelszavát, valamint a ParentLoop-jelszavát is.
Ki mit lát
A felhasználók közül a gyermek adataihoz kizárólag a hozzá kapcsolt szülők és gondviselők férnek hozzá. Ezt maga az adatbázis felügyeli — a hozzáférési szabályok minden egyes sor szintjén működnek, így nem lehet őket megkerülni az alkalmazást kihagyó, „ügyesebb” lekérdezéssel. Ez azonban nem a teljes adatbázis végpontok közötti titkosítása: azok az adatok, amelyek nincsenek a telefonon titkosítva (például a naptár, a kiadások, az üzenetek), technikailag hozzáférhetők az értesítéseket küldő és az adatokat takarító szerveroldali funkcióink, valamint a csapat azon tagjai számára, akik hozzáférnek az adatbázis kezelőfelületéhez. Rutinszerűen nem nézzük át őket. Az üzeneteket csak akkor olvassuk el, ha valaki bejelenti őket, a többi adathoz pedig csak bejelentés vagy hibajavítás miatt nyúlunk. A kezelőfelület, amelyben nap mint nap dolgozunk, csak összesített adatokat mutat, és második bejelentkezési tényezőt kér.
Az alkalmazásban és az adminfelületen használt nyilvános kulcs semmihez sem ad hozzáférést. Ezt az éles rendszeren ellenőriztük: sorra lekérdeztük a fiókokat, a gyerekeket, a naptárakat, az üzeneteket és a dokumentumokat tároló táblákat. Mindegyik elutasította a kérést.
Értesítések
Az értesítés látszik a lezárási képernyőn, és az Expo, az Apple és a Google szerverein halad át, ezért csak a legszükségesebbet tartalmazza. Nincs benne üzenetszöveg, egészségügyi bejegyzés vagy cím: az emlékeztető megmondja, mi és mikor lesz, a helyszín pedig az alkalmazásban látható. Ugyanígy a gyermek átadási helyének változásakor: az értesítés jelzi, hogy a hely megváltozott, az új pedig a naptárban található.
Mi nincs végpontok között titkosítva
A szülők közötti üzenetek. Ez tudatos döntés, nem elmaradás. A ParentLoopban folytatott beszélgetés közös feljegyzés arról, miben állapodtak meg a gyermekkel kapcsolatban: az elküldött üzenetet nem lehet szerkeszteni vagy törölni. Ha valaki visszaélést jelent be, ellenőriznünk kell tudni, mi hangzott el valójában — végpontok közötti titkosítás mellett a bejelentés egy képernyőfotó lenne, amelyet könnyű meghamisítani. Ugyanezért fut a trágárságszűrő a szerveren: a sértő szavakat még az üzenet mentése előtt kitakarjuk, így a lemezre sem kerülnek. Az üzenetek továbbítás közben és a lemezen is titkosítva vannak, és csak bejelentés után olvassuk el őket. Inkább leírjuk ezt, mint hogy a „titkosított” szót úgy használjuk, hogy erősebbnek hangozzék annál, ami.
Hol vannak az adatok
Az adatbázis és a fájlok az Európai Unióban (Frankfurtban) vannak. Az EGT-n kívülre a push-értesítésekhez és az alkalmazásfrissítésekhez (Expo, Apple, Google), valamint e weboldal globális Cloudflare-hálózatban történő működéséhez szükséges adatok kerülhetnek — általános adatvédelmi kikötések alapján. A címjavaslatokat a telefon közvetlenül a Google Maps Platformtól tölti le, amely önálló adatkezelőként, a saját szabályai szerint jár el. A szolgáltatók teljes listája az adatvédelmi szabályzatban található.
Androidon a blokk vagy az órarend fotójáról a szöveget a telefonon a Google ML Kit könyvtár olvassa be — de csak akkor, ha ehhez hozzájárul. Sem a fotó, sem a beolvasott szöveg nem jut el a Google-hoz; a könyvtár csak diagnosztikai adatokat küld. A hozzájárulást az alkalmazás beállításaiban vonhatja vissza (Beállítások → Hozzájárulások).
Ez a weboldal
Nulla süti, nulla analitika, nulla követőszkript, nulla lekérdezés külső szerverek felé — beleértve a betűtípusokat is, amelyeket szándékosan nem a Google-tól töltünk be. Ezért nem lát itt sütikre vonatkozó hozzájárulási ablakot: nincs mire rákérdeznünk. Az egyetlen dolog, amit az oldal a böngészőben elment, az ÁSZF kiválasztott nyelve (localStorage), hogy a következő látogatáskor ugyanazon a nyelven nyissa meg.
A gyermeknek nincs e-mail-címmel vagy jelszóval védett fiókja
A ParentLoopban a gyermek nem hoz létre bejelentkezési névvel ellátott fiókot, és nem ad meg e-mail-címet. A ParentLoop kids alkalmazás egyszer használatos QR-kóddal kapcsolódik a családhoz — e-mail-cím, jelszó, csevegés és bárkinek történő üzenetküldés lehetősége nélkül. A gyermek kipipálhatja a házimunkákat, és saját eseményeket vehet fel a naptárba (linkek és telefonszámok nélkül); a szülők ezeket akkor látják, ha a gyermek bekapcsolja a „Megmutatom a szüleimnek” lehetőséget.
Amikor az egyik szülő párosítja a gyermek készülékét, a másik értesítést kap erről. A párosított készülék a szülő alkalmazásában bármikor leválasztható — ettől a pillanattól kezdve a gyermek telefonja nem tölt le több adatot a szerverről.
Ki csatlakozhat a családhoz
A gyermek profiljához csak az csatlakozhat, akit egy, a családban már bent lévő szülő meghív, és a meghívó 7 napig érvényes. A fiók létrehozásán kívül a meghívókód és a gyermek telefonjának párosításához szükséges kód csak Face ID, Touch ID vagy a telefon feloldókódja után jelenik meg (ha a telefonon be van állítva képernyőzár). Ha valaki új hozzáférést kap a gyermek adataihoz, a másik szülő értesítést kap.
Egyik szülő sem veheti el egyedül a másik hozzáférését, és nem törölheti a gyermek profilját az ő beleegyezése nélkül. Ez szándékos: a szülői felügyeletről a bíróság dönt, nem egy alkalmazás. A szülők dokumentumait nem ellenőrizzük, mert ehhez bírósági határozatokat és személyazonosító okmányokat kellene gyűjtenünk. Ha valaki jogosultság nélkül vagy bírósági tilalom ellenére kezeli a gyermeke adatait, írjon nekünk: a bejelentést azonnal visszaigazoljuk, 7 napon belül tájékoztatjuk, hogyan bíráljuk el, és ha hivatalos dokumentum valószínűsíti a gyermek vagy egy szülő biztonságának veszélyeztetését, a vizsgálat idejére felfüggeszthetjük az illető hozzáférését (ÁSZF, 6. § (7) bekezdés).
Mindenki csak a saját bejegyzéseit törölheti. Dokumentumot csak az a szülő törölhet, aki felvette (ha ő elveszíti a hozzáférést a gyerek adataihoz, akkor a másik szülő). A naptári eseményt a felvevője törli, a feladatot a létrehozója vagy az, akinek átadta. Ha egy bejegyzést nem törölhet, az alkalmazás megmutatja, ki vette fel. Ezt is az adatbázis biztosítja, nem csak az alkalmazás.
Ha veszélyben van
A ParentLoop nem helyettesíti a segítséget, de néhány dolog megkönnyítheti a helyzetet:
- A másik szülővel folytatott beszélgetést szüneteltetheti. Ilyenkor senki sem küldhet új üzenetet, és csak Ön folytathatja. Az előzmények megmaradnak.
- Bármely üzenetet bejelentheti. A másik fél erről nem értesül.
- Az alkalmazás nem gyűjti a telefon helyadatait, az értesítések pedig nem mutatnak címeket.
- A gyermek alkalmazása nem mutatja az átvételi tervet, és bármelyik szülő bármikor leválaszthatja a gyermek telefonját.
Közvetlen veszély esetén hívja a 112-t. Lengyelországban: a családon belüli erőszak áldozatainak segélyvonala, a „Niebieska Linia”, 800 120 002 (ingyenes).
Az Ön adatai, az Ön döntése
A teljes adatexport és a fiók törlése egyaránt egy-egy gomb az alkalmazásban. Nem kell e-mailt írnia nekünk, várnia vagy megindokolnia.
Amikor a gyerek betölti a 18. életévét
Amikor a gyerek betölti a 18. életévét, töröljük az egészségügyi adatait — az egészségügyi információkat, az orvosi bejegyzéseket és az orvosi dokumentumokat —, valamint a PESEL-számát. A magasság- és testsúlymérések megmaradnak. Körülbelül 30 nappal előtte mindenki, aki látja ezeket az adatokat, értesítést kap, amely az adatexporthoz vezet, hogy időben letölthesse őket.
Hogyan ellenőrizzük
Az alkalmazás és az adatbázis biztonságát minden áruházi kiadás előtt és nagyobb változtatások után átnézzük. Van adatvédelmi hatásvizsgálatunk (DPIA), amely leírja a szülőket és a gyermekeket érintő kockázatokat, a konfliktusban álló családokat is beleértve, valamint eljárásrendünk adatvédelmi incidens esetére. Egy automatikus teszt minden adatbázis-módosításnál ellenőrzi, hogy a fiók törlése az összes adatát törli, egy napi ellenőrzés pedig arra ügyel, hogy a fájlok is törlődjenek.
Az alkalmazást és az adatbázist külső biztonsági szakértők is átnézik, akik abból indulnak ki, hogy a szerver vagy egy másik felhasználó Ön ellen dolgozik; a talált hibákat a következő kiadás előtt kijavítjuk. Minden adatbázis-módosításnál egy automatikus ellenőrzés megnézi, hogy a hozzáférési szabályokban nincs-e az ismert hibatípusok közül egy sem.
Problémát talált?
Írjon a kontakt@parentloop.pl címre. A biztonsági bejelentéseket kiemelten kezeljük, és nem rójuk fel annak, aki jelzi a hibát.