ParentLoop parentloop

Bezpieczeństwo i prywatność w ParentLoop

Ostatnia aktualizacja: 31 października 2026

ParentLoop powstał, żeby przechowywać jedne z najbardziej wrażliwych danych, jakie rodzina może komuś powierzyć: harmonogram opieki, zdrowie dziecka, dokumenty, pieniądze. Ta strona opisuje konkretnie, co z tym robimy — bez ogólników w rodzaju „bezpieczeństwo klasy bankowej". Aplikacja przygotowuje się do publicznego startu i nie jest jeszcze dostępna w sklepach.

  • Dokumenty dziecka szyfrujemy end-to-end. Nie mamy klucza i nie możemy ich otworzyć.
  • Dane zdrowotne dziecka szyfrujemy end-to-end automatycznie — osobno dla każdego dziecka, gdy klucz mają wszystkie osoby z dostępem do jego danych o zdrowiu. Jeśli korzystasz sam, od razu.
  • Kopię klucza możesz zapisać jako passkey. Wymaga iOS 18 albo Androida 9 lub nowszego.
  • Ekrany z kluczem, dokumentami i parowaniem aplikacji dziecka blokują zrzuty ekranu.
  • Spośród użytkowników dane dziecka widzą wyłącznie rodzice i opiekunowie powiązani z jego profilem. Egzekwuje to baza danych, nie tylko aplikacja.
  • Każde nowe logowanie na Twoje konto widzisz od razu (po pierwszej dobie od założenia konta). Obce urządzenie wylogujesz jednym dotknięciem.
  • Dane są w Unii Europejskiej. Frankfurt, nie „gdzieś w chmurze".
  • Strona nie ma żadnych ciasteczek ani skryptów śledzących. Nie pyta o zgodę, bo nie ma o co pytać.
  • Dziecko nie ma konta z e-mailem ani hasłem. To zasada produktowa, nie ustawienie do zmiany.
  • Wiadomości między rodzicami nie są szyfrowane end-to-end. Piszemy niżej dlaczego.
  • Powiadomienia nie pokazują adresów, treści wiadomości ani wpisów o zdrowiu.

Dokumenty: szyfrowanie end-to-end

Orzeczenia sądowe, wyniki badań, zaświadczenia ze szkoły — plik i jego tytuł trafiają do ParentLoop zaszyfrowane zanim opuszczą telefon. Na serwerze leży ciąg bajtów, którego nie umiemy odczytać, i to nie jest kwestia polityki wewnętrznej, tylko matematyki. Widzimy natomiast dane techniczne wpisu: rodzaj dokumentu (np. paszport albo orzeczenie o niepełnosprawności), typ i rozmiar pliku, kto i kiedy go dodał oraz datę ważności, jeśli ją podasz — na jej podstawie serwer wysyła przypomnienie.

Konkretnie używamy:

  • XChaCha20-Poly1305 — szyfrowanie treści pliku wraz z kontrolą integralności.
  • X25519 — uzgodnienie klucza między rodzicami.
  • HKDF-SHA256 — wyprowadzanie kluczy.
  • Biblioteki @noble — audytowane, bez zależności zewnętrznych.

Klucz prywatny nigdy nie trafia na nasz serwer. Leży w bezpiecznym magazynie systemowym telefonu (Keychain na iOS, Keystore na Androidzie). Publikujemy wyłącznie jego część publiczną, po to, by drugi rodzic mógł zaszyfrować plik tak, żebyś mógł go otworzyć.

Do losowości używamy generatora systemowego, celowo nie tego wbudowanego w bibliotekę — w środowisku React Native potrafi on po cichu nie zadziałać, a skutkiem słabej losowości nie jest błąd, tylko klucz możliwy do odgadnięcia, którego nikt nigdy nie zauważy.

Dane zdrowotne: szyfrowanie end-to-end

Alergie, leki, choroby przewlekłe, grupę krwi, notatki, wpisy medyczne (wizyty, szczepienia, diagnozy, wyniki badań, pobyty w szpitalu) oraz pomiary wzrostu i wagi szyfrujemy automatycznie, osobno dla każdego dziecka. Klucz powstaje sam na telefonie rodzica, który ma dostęp do danych o zdrowiu, wyraził zgodę na ich przetwarzanie i ma na telefonie klucz do dokumentów (szyfrowanie można też włączyć ręcznie w Ustawieniach); przekazanie klucza drugiemu rodzicowi albo opiekunowi wymaga potwierdzenia odcisku klucza. Szyfrowanie zaczyna obowiązywać, gdy klucz mają wszystkie osoby z dostępem do danych o zdrowiu tego dziecka — rodzice, a także opiekun, jeśli nadano mu to uprawnienie. Dopóki klucza nie mają wszyscy uprawnieni, dane są przechowywane jak dotąd (zabezpieczone, ale nie end-to-end), a aplikacja pokazuje, na kogo czeka. Gdy szyfrowanie działa, dane są szyfrowane na telefonie tymi samymi algorytmami co dokumenty; na serwerze widać tylko, że wpis istnieje, jego datę i autora.

Dwie rzeczy piszemy wprost. Na serwerze nadal widzimy, że wpis istnieje, jego datę i to, kto go dodał — nieczytelna jest sama treść. A szyfrowanie zaczyna działać dopiero wtedy, gdy klucz dostaną wszyscy rodzice z dostępem do danych dziecka. Do tego czasu dane są przechowywane jak dotąd — zabezpieczone, ale nie end-to-end — a aplikacja pokazuje, na kogo czeka. Gdy szyfrowanie zacznie działać, telefon rodzica z kluczem przepisuje na postać zaszyfrowaną także wcześniejsze wpisy; ich jawna wersja może jeszcze do 7 dni zostać w kopiach zapasowych bazy.

Jeśli korzystasz z ParentLoop sam, klucz masz tylko Ty, więc szyfrowanie włącza się od razu, bez czekania na nikogo. Rodzic, który dołączy później, dostaje klucz dopiero wtedy, gdy na swoim telefonie potwierdzisz jego odcisk. Dlaczego w ogóle jest okres bez szyfrowania: gdy w rodzinie są już dwie osoby z dostępem do danych o zdrowiu, a jedna nie ma jeszcze klucza, nie szyfrujemy na siłę tylko dla drugiej. Osoba bez klucza przestałaby wtedy widzieć alergie i leki dziecka, dopóki ktoś nie potwierdzi jej klucza — a tego potwierdzenia nie da się zautomatyzować, bo wtedy serwer mógłby podsunąć własny klucz. Nad przyciskiem „Zapisz” w każdym formularzu zdrowia aplikacja pisze, czy to, co zapisujesz, zostanie zaszyfrowane.

Numer PESEL dziecka, jeśli go wpiszesz, jest szyfrowany end-to-end zawsze, bez włączania czegokolwiek.

Udostępnienie klucza nowej osobie zawsze wymaga potwierdzenia na telefonie, który już go ma — z imieniem tej osoby i odciskiem jej klucza na ekranie.

Kod odzyskiwania

Skoro klucza nie mamy, to przy zmianie telefonu nie możemy go odtworzyć. Dlatego przy pierwszym uruchomieniu dostajesz kod odzyskiwania — to z niego wyliczany jest klucz. Zapisz go poza telefonem. Bez niego (albo bez kopii w passkey, opisanej niżej) dokumenty i dane zdrowotne zaszyfrowane starym kluczem zostają nieczytelne również dla Ciebie. To jest cena tego, że nie mamy do nich dostępu, i wolimy powiedzieć o niej wprost, niż zostawić furtkę „na wszelki wypadek".

Kopia klucza w passkey (opcjonalnie)

Zamiast przepisywać kod na nowym telefonie, możesz zapisać kopię klucza jako klucz dostępu (passkey) w Hasłach Apple albo w Menedżerze haseł Google. Na nowym telefonie odblokujesz wtedy dokumenty i dane zdrowotne jednym dotknięciem.

Wymaga iOS 18 albo Androida 9 lub nowszego. Kopia działa w obrębie jednego systemu: zapisana na iPhonie odblokuje iPhone'a, zapisana na Androidzie — telefon z Androidem. Przy przejściu z jednego systemu na drugi nadal potrzebny jest kod odzyskiwania.

Jak to działa: na serwerze przechowujemy zaszyfrowaną kopię kodu odzyskiwania. Klucz do niej wylicza Twój passkey (rozszerzenie WebAuthn PRF) i nigdy do nas nie trafia — bez passkey ta kopia jest ciągiem bajtów, którego nie odczytamy również my. Passkey jest powiązany z osobną domeną klucz.parentloop.pl, na której nie ma nic poza dwoma plikami konfiguracyjnymi, więc żaden skrypt na stronie parentloop.pl nie może o niego poprosić.

Uczciwie o ryzyku: to wygoda za cenę jednego założenia. Kto zna hasło do Twojego konta Apple albo Google i kod do jednego z Twoich urządzeń, może użyć tego passkey. Dlatego kopia jest opcjonalna. Usuniesz ją w każdej chwili w ustawieniach klucza, a znika też sama, gdy zmienisz klucz albo usuniesz konto.

Zaufanie do klucza drugiego rodzica

Szyfrowanie end-to-end jest warte tyle, ile pewność, że szyfrujesz do właściwej osoby. Aplikacja zapamiętuje klucz drugiego rodzica przy pierwszym kontakcie. Jeśli ten klucz się później zmieni, wysyłka nie przechodzi automatycznie — zatrzymujemy ją i prosimy człowieka o decyzję.

Możecie też porównać „odcisk palca" klucza i potwierdzić go sobie nawzajem. Potwierdzenie dotyczy konkretnej pary osób i konkretnego klucza: po zmianie klucza wygasa i trzeba je zrobić od nowa. Inaczej byłaby to pieczątka, która przeżywa to, co miała potwierdzać.

Projektując szyfrowanie, zakładamy, że nasz serwer może kłamać — bo jeśli kiedyś ktoś go przejmie, będzie próbował właśnie tego. Dlatego odcisk klucza drugiego rodzica liczy Twój telefon, a nie serwer, a Twój własny klucz telefon porównuje z tym, który ma u siebie, przy każdym odczycie. Telefon, który raz widział zaszyfrowane dane o zdrowiu dziecka, nie zapisze ich już jawnie, nawet gdy serwer twierdzi, że szyfrowanie jest wyłączone. Pokazanie kodu odzyskiwania i wymiana klucza wymagają Face ID, Touch ID albo kodu blokady. Odszyfrowane kopie plików (dokumenty, eksport danych, skany) aplikacja usuwa z pamięci telefonu przy każdym uruchomieniu i przy wylogowaniu.

Blokada biometryczna

Otwarcie dokumentu wymaga Face ID, Touch ID albo kodu blokady — za każdym razem, nie raz na sesję. Bez ustawionej blokady ekranu dokumentu nie da się otworzyć. Odblokowany telefon leżący na stole to nie to samo co zgoda na czytanie orzeczenia sądowego. Tak samo przed eksportem danych: plik ZIP zawiera dokumenty już odszyfrowane, więc aplikacja pyta o Face ID, Touch ID albo kod blokady przed każdym pobraniem.

Zrzuty ekranu

Ekrany z kluczem i kodem odzyskiwania, dokumentami oraz parowaniem aplikacji dziecka blokują zrzuty i nagrywanie ekranu. Na Androidzie zrzut i nagranie wychodzą czarne, a podgląd w ostatnich aplikacjach jest pusty; na iPhonie zrzut i nagranie też wychodzą czarne, a podgląd w przełączniku aplikacji jest rozmyty. W pozostałych częściach aplikacji zrzuty działają normalnie. To utrudnienie, nie gwarancja: zdjęcia ekranu drugim telefonem nic nie zablokuje.

Logowanie i zalogowane urządzenia

Gdy po pierwszej dobie od założenia konta ktoś zaloguje się na Twoje konto rodzica, dostajesz powiadomienie w aplikacji oraz — jeśli masz włączone powiadomienia — na telefon, z rodzajem urządzenia (iPhone lub iPad, telefon lub tablet z Androidem, przeglądarka internetowa albo inne urządzenie). Tego powiadomienia nie wyłączysz w ustawieniach powiadomień aplikacji (w godzinach ciszy przyjdzie, gdy się skończą). W Ustawieniach → Prywatność i dane → Zalogowane urządzenia widzisz każde urządzenie, na którym konto ma aktywną sesję, i każde wylogujesz jednym dotknięciem. Wylogowane urządzenie traci dostęp najpóźniej po godzinie.

Dlaczego to ważne: do ParentLoop logujesz się linkiem z e-maila albo hasłem. Jeśli ktoś pozna Twoje hasło albo uzyska dostęp do Twojej poczty, dowiesz się o nowym logowaniu od razu. Wyloguj wtedy obce urządzenie i zmień hasło do poczty e-mail oraz hasło w ParentLoop.

Kto widzi dane

Spośród użytkowników dostęp do danych dziecka mają wyłącznie powiązani z nim rodzice i opiekunowie. Pilnuje tego sama baza danych — reguły dostępu działają na poziomie każdego wiersza, więc nie da się ich ominąć, wysyłając „sprytniejsze" zapytanie z pominięciem aplikacji. To jednak nie jest szyfrowanie end-to-end całej bazy: dane, które nie są zaszyfrowane na telefonie (np. kalendarz, wydatki, wiadomości), są technicznie dostępne dla naszych funkcji serwerowych, które wysyłają powiadomienia i sprzątają dane, oraz dla osób z zespołu z dostępem do panelu bazy. Nie przeglądamy ich rutynowo. Wiadomości czytamy wyłącznie wtedy, gdy ktoś je zgłosi, a po pozostałe dane sięgamy tylko przy zgłoszeniu albo naprawie błędu. Panel, w którym pracujemy na co dzień, pokazuje wyłącznie dane zbiorcze i wymaga drugiego składnika logowania.

Klucz publiczny, który aplikacja i panel noszą w kodzie, nie daje dostępu do niczego: sprawdziliśmy to na produkcji, odpytując nim kolejno tabele z kontami, dziećmi, kalendarzem, wiadomościami i dokumentami. Każda odpowiedziała odmową.

Powiadomienia

Powiadomienie widać na ekranie blokady i przechodzi przez serwery Expo, Apple i Google, więc trzymamy w nim tylko to, co niezbędne. Nie ma w nim treści wiadomości, wpisów o zdrowiu ani adresów: przypomnienie mówi, co i kiedy, a gdzie — zobaczysz po otwarciu aplikacji. Tak samo przy zmianie miejsca przekazania dziecka: powiadomienie mówi, że miejsce się zmieniło, a nowe jest w kalendarzu.

Czego nie szyfrujemy end-to-end

Wiadomości między rodzicami. To świadoma decyzja, nie zaległość. Rozmowa w ParentLoop jest wspólnym zapisem ustaleń w sprawach dziecka: wysłanej wiadomości nie da się edytować ani usunąć. Gdy ktoś zgłasza nadużycie, musimy móc sprawdzić, co naprawdę zostało napisane — przy szyfrowaniu end-to-end zgłoszenie byłoby zrzutem ekranu, który łatwo podrobić. Z tego samego powodu filtr wulgaryzmów działa na serwerze: obraźliwe słowa są maskowane, zanim wiadomość zostanie zapisana, więc w ogóle nie trafiają na dysk. Wiadomości są szyfrowane w transporcie i na dysku, a czytamy je wyłącznie po zgłoszeniu. Wolimy to napisać, niż użyć słowa „szyfrowane" tak, żeby brzmiało mocniej, niż jest.

Gdzie są dane

Baza danych i pliki są w Unii Europejskiej (Frankfurt). Poza EOG mogą trafiać dane potrzebne do powiadomień push i aktualizacji aplikacji (Expo, Apple, Google) oraz do działania tej strony w globalnej sieci Cloudflare — na podstawie standardowych klauzul umownych. Podpowiedzi adresów telefon pobiera bezpośrednio z Google Maps Platform, która działa jako odrębny administrator, na własnych zasadach. Pełna lista dostawców jest w polityce prywatności.

Na Androidzie tekst ze zdjęcia paragonu albo planu lekcji odczytuje na telefonie biblioteka Google ML Kit — dopiero wtedy, gdy się na to zgodzisz. Zdjęcie ani odczytany tekst nie trafiają do Google; biblioteka wysyła tylko dane diagnostyczne. Zgodę wycofasz w Ustawieniach → Zgody.

Ta strona internetowa

Zero ciasteczek, zero analityki, zero skryptów śledzących, zero zapytań do zewnętrznych serwerów — łącznie z fontami, które celowo nie są ładowane z Google. Dlatego nie zobaczysz tu okienka o zgodę na ciasteczka: nie mamy o co pytać. Jedyne, co strona zapisuje w przeglądarce, to wybrany język regulaminu (localStorage), żeby przy kolejnej wizycie otworzyć go w tym samym języku.

Dziecko nie ma konta z e-mailem ani hasłem

W ParentLoop dziecko nie zakłada konta z loginem i nie podaje adresu e-mail. Aplikacja ParentLoop kids łączy się z rodziną przez jednorazowy kod QR — bez adresu e-mail, bez hasła, bez czatu i bez możliwości pisania wiadomości do kogokolwiek. Dziecko może odhaczać obowiązki i dodawać własne wydarzenia do kalendarza (bez linków i numerów telefonu); rodzice widzą je, jeśli dziecko włączy „Pokaż rodzicom”.

Gdy jedno z rodziców sparuje urządzenie dziecka, drugie dostaje o tym powiadomienie. Sparowane urządzenie można w każdej chwili odłączyć w aplikacji rodzica — od tej chwili telefon dziecka nie pobiera już danych z serwera.

Kto może dołączyć do rodziny

Do profilu dziecka dołącza tylko osoba zaproszona przez rodzica, który już jest w rodzinie, a zaproszenie jest ważne 7 dni. Poza zakładaniem konta kod zaproszenia i kod do sparowania telefonu dziecka pokazują się dopiero po Face ID, Touch ID albo kodzie blokady telefonu (jeśli telefon ma ustawioną blokadę). Gdy ktoś nowy dostaje dostęp do danych dziecka, drugi rodzic dostaje powiadomienie.

Żaden rodzic nie odbierze drugiemu dostępu sam i nie usunie profilu dziecka bez jego zgody. To celowe: o władzy rodzicielskiej rozstrzyga sąd, nie aplikacja. Nie sprawdzamy dokumentów rodziców, bo wymagałoby to zbierania wyroków i dowodów tożsamości. Jeśli ktoś przetwarza dane Twojego dziecka bez prawa do tego albo wbrew zakazowi sądu, napisz do nas: potwierdzimy zgłoszenie od razu, w ciągu 7 dni napiszemy, jak je rozpatrzymy, a gdy dokument urzędowy uprawdopodobnia zagrożenie bezpieczeństwa dziecka lub rodzica, możemy na czas rozpatrzenia zawiesić tej osobie dostęp (regulamin, § 6 ust. 7).

Każdy usuwa tylko swoje wpisy. Dokument może usunąć tylko rodzic, który go dodał (a gdy ten rodzic straci dostęp do danych dziecka — drugi rodzic). Wydarzenie w kalendarzu usuwa jego autor, a zadanie — autor albo osoba, której je przekazał. Przy wpisie, którego nie możesz usunąć, aplikacja pokazuje, kto go dodał. Tego też pilnuje baza danych, nie tylko aplikacja.

Jeśli jesteś w niebezpieczeństwie

ParentLoop nie zastąpi pomocy, ale kilka rzeczy może ułatwić sytuację:

  • Rozmowę z drugim rodzicem możesz wstrzymać. Nikt nie wyśle wtedy nowej wiadomości, a wznowić rozmowę możesz tylko Ty. Historia zostaje.
  • Każdą wiadomość możesz zgłosić. Druga osoba się o tym nie dowie.
  • Aplikacja nie zbiera lokalizacji telefonu, a powiadomienia nie pokazują adresów.
  • Aplikacja dziecka nie pokazuje planu odbiorów, a każde z rodziców może w każdej chwili odłączyć telefon dziecka.

W sytuacji zagrożenia dzwoń pod 112. Ogólnopolskie Pogotowie dla Ofiar Przemocy w Rodzinie „Niebieska Linia”: 800 120 002 (bezpłatnie).

Twoje dane, Twoja decyzja

Eksport wszystkich danych i usunięcie konta są w aplikacji, do samodzielnego kliknięcia. Nie trzeba do nas pisać, czekać ani tłumaczyć się z powodu.

Gdy dziecko kończy 18 lat

Gdy dziecko kończy 18 lat, usuwamy jego dane o zdrowiu — informacje o zdrowiu, wpisy medyczne i dokumenty medyczne — oraz numer PESEL. Pomiary wzrostu i wagi zostają. Około 30 dni wcześniej każdy, kto widzi te dane, dostaje powiadomienie z przejściem do eksportu, żeby mógł je wcześniej pobrać.

Jak to sprawdzamy

Bezpieczeństwo aplikacji i bazy danych przeglądamy przed każdym wydaniem w sklepach i po większych zmianach. Mamy ocenę skutków dla ochrony danych (DPIA), która opisuje ryzyka dla rodziców i dzieci, także w rodzinach w konflikcie, oraz procedurę postępowania w razie naruszenia danych. Automatyczny test przy każdej zmianie w bazie sprawdza, że usunięcie konta usuwa wszystkie dane, a codzienna kontrola pilnuje, że usuwane są też pliki.

Aplikację i bazę danych czytają też zewnętrzni recenzenci bezpieczeństwa, którzy zakładają, że serwer albo inny użytkownik działa przeciwko Tobie; znalezione błędy poprawiamy przed kolejnym wydaniem. Przy każdej zmianie bazy automat sprawdza, czy reguły dostępu nie mają znanych rodzajów błędów.

Znalazłeś problem?

Napisz na kontakt@parentloop.pl. Zgłoszenia dotyczące bezpieczeństwa traktujemy priorytetowo i nie mamy pretensji do osób, które je zgłaszają.

ParentLoop sp. z o.o., ul. Grójecka 210, 02-390 Warszawa, kapitał zakładowy 5 000,00 zł — polityka prywatności · kontakt@parentloop.pl
Sąd Rejonowy dla m.st. Warszawy w Warszawie, XII Wydział Gospodarczy Krajowego Rejestru Sądowego · KRS 0001272931 · NIP 7011335937 · REGON 545952514