ProteGO-Safe / specs

Opis, specyfikacja i zadania. Zacznij tutaj.
GNU General Public License v3.0
117 stars 29 forks source link

CloudFlare a bezpieczeństwo danych #165

Open cojack opened 4 years ago

cojack commented 4 years ago

Describe the bug Cześć, Napisałem maila do security@safesafe.app 5 maja w sprawie poważnego naruszenia zasad GDPR, gdyż nie jest dopuszczalne by dane członków UE by wychodziły poza obszar UE, do tej pory nie otrzymałem odpowiedzi. W mailu domagałem się zrezygnowania z usługi CloudFlare (CF) oraz upublicznienia maila do CF z podpisem elektronicznym Ministra Cyfryzacji o usunięcie wszelkich danych wraz z kopiami odnośnie obywateli Polski w ramach tego projektu, które CF jest w posiadaniu.

Jest to rządowy projekt do jakby nie patrzeć zbierania danych obywateli o tożsamości (zapisywanie adresu IP urządzenia) i przemieszczaniu się (odczytywanie po BT pobliskich urządzeń pozwala namierzyć kierunek przemieszczania się i położenie w konkretnych przypadkach).

Tym bardziej jest to niedorzeczne by dane obywateli były wysyłane do zewnętrznych usługodawców takich jak CF gdzie nic nie stoi na przeszkodzie by w formie jawnej były przechowywane po ich stronie i przetwarzane na potrzeby firm zewnętrznym.

W dodatku jak poczytamy o Terms and Service w na stronie CF https://www.cloudflare.com/terms/ to tam jest pkt 2.2 Restrictions a w nim czytamy: Unless otherwise expressly permitted in writing by Cloudflare, you will not and you have no right to: gdzie ostatni pkt wskazuje na (i) use the Cloud Services to store or transmit any “protected health information” as that term is defined in 45 C.F.R. 160.103 without Cloudflare’s written consent. Strona z regulacjami https://www.law.cornell.edu/cfr/text/45/160.103 jestem ciekaw czy aplikacja spełnia je. Nie posiadam wiedzy by to zweryfikować.

Z tym że to jest najmniej istotne w tej całej sprawie gdyż idąc krok dalej czytamy w pkt 2.5.1 następującą treść:

You and your End Users (as such term is defined in the Privacy Policy) will retain all right, title and interest in and to any data, content, code, video, images or other materials of any type that you or your End Users transmit to or through the Cloud Services (collectively, “Your Information”) in the form provided to Cloudflare. Subject to the terms of this Agreement, you hereby grant us a non-exclusive, fully sublicenseable, worldwide, royalty-free right to collect, use, copy, store, transmit, modify and create derivative works of your Your Information, in each case to the extent necessary to provide the Cloud Services to you.

Tłumaczenie via deepl.com:

Ty i Twoi Użytkownicy Końcowi (jako że termin ten jest zdefiniowany w Polityce Prywatności) zachowacie wszelkie prawa, tytuły i zainteresowania w odniesieniu do wszelkich danych, treści, kodu, filmów, obrazów lub innych materiałów dowolnego rodzaju, które Ty lub Twoi Użytkownicy Końcowi przekazują do lub za pośrednictwem Usług w chmurze (zwanych łącznie "Twoimi informacjami") w formie dostarczonej do Cloudflare. Z zastrzeżeniem warunków niniejszej Umowy, Użytkownik niniejszym udziela nam niewyłącznego, w pełni podlegającego sublicencjonowaniu, ogólnoświatowego, bezpłatnego prawa do gromadzenia, wykorzystywania, kopiowania, przechowywania, przesyłania, modyfikowania i tworzenia dzieł pochodnych Informacji Użytkownika, w każdym przypadku w zakresie niezbędnym do świadczenia Usług w chmurze na rzecz Użytkownika.

Czyli CF zastrzega sobie prawo do przechowywania, kopiowania, transmisji danych według uznania CF by zapewnić usługę dla użytkownika.

Jest to niedopuszczalne by dane użytkowników Rzeczpospolitej Polski były w projekcie urzędowym gromadzone, przetwarzane na zewnętrznych usługach.

Domagam się natychmiastowego zaprzestania korzystania z zewnętrznych usługodawców do przetwarzania danych użytkowników aplikacji.

Powtórzę się z treści maila, który wysyłałem:

i wystosowania pisma do CloudFlare o usunięcie wszystkich danych łącznie z kopiami, które są w posiadaniu CF o obywatelach RP na rzecz danego projektu.

P.S. Pytanie do osób decyzyjnych w projekcie: Czy ktoś z osób w ogóle zadał sobie trud przeczytania regulaminu?

To Reproduce Steps to reproduce the behavior:

  1. Sprawdź ip na której wskazuje domena api.safesafe.app

Expected behavior Projekt nie może wykorzystywać zewnętrznych usługodawców spoza UE do przetwarzania requestów.

Screenshots Screenshot_20200511_084104

Desktop (please complete the following information):

Smartphone (please complete the following information):

Additional context Nie zamierzam oraz nie planuje popełnić samobójstwa i go nie popełnię.

miklobit commented 4 years ago

@cojack - bardzo trafne podusmowanie wszystkich zarzutów do CF, które były podnoszone wcześniej w wielu innych zgłoszeniach. Dla uzupełnienia dodajmy jeszcze, że:

@MateuszRomanow - czy coś zamierzacie z tym zrobić czy powinniśmy raczej składać skargę zbiorową do UODO na masowy zamierzony wyciek danych osobowych i inne naruszenie RODO w związku z użyciem CF ?

SeraMoon commented 4 years ago

czy coś zamierzacie z tym zrobić czy powinniśmy raczej składać skargę zbiorową do UODO na masowy zamierzony wyciek danych osobowych i inne naruszenie RODO w związku z użyciem CF ?

Proponuję też skargę do EIOD (Wiewiórski) oraz proponuję z zastanowieniem obejrzeć ten oto film https://www.youtube.com/watch?v=LQMzhA_1GPQ oraz aktywnie działać na rzecz obywateli i informować innych wszelkimi dostępnymi kanałami. Nie doczekaliśmy się zapewnienia #149 że aplikacja nigdy nie będzie obowiązkowa (nie planować to sobie można). Będzie jak z Kwarantanną Domową - obowiązkowa i będą branzoletki na rękę a potem będą szczepionki z identyfikatorem cyfrowym (Czipem / Quantum Dots itp.) i globalny system w którym bez identyfikatora nic nie zrobisz. Z resztą polecam obejrzeć film.

MateuszRomanow commented 4 years ago

W odpowiedzi na poszczególne wątpliwości:

  1. Następstwa wynikające z częściowej centralizacji w modelu OpenTrace związane z odczytywaniem przez bluetooth bliskich urządzeń, nie występują w rozwiązaniu Google i Apple (dalej G+A), które jest obecnie integrowane w ProteGO Safe. Funkcjonalność opartą o G+A będzie można włączyć w wersji 4.0 (opt-in). Diagnosis Key w nowym modelu G+A bazują na anonimowości i nie są danymi medycznymi. Natomiast dane bluetooth z OpenTrace nie są i nie będą nigdzie przekazywane (wersje od 3.0.0 wzwyż). Są cały czas tylko lokalnie na urządzeniach bez możliwości ich uploadu. Aktualizacja do wersji 4.0 z protokołem G+A je usunie. Niezależnie, ani dane z obecnego modułu opentrace (które nigdzie nie są przekazywane) ani te pochodzące z rozwiązania G+A (w praktyce Diagnosis Key, które może zostać przekazane tylko przez użytkownika) nie będą przechodziły przez system Cloudflare a ich docelowym miejscem jest terytorium Unii Europejskiej.

  2. Dane z modułu triażu tj. samooceny ryzyka zarażenia COVID-10, wprowadzane przez Użytkownika przez stronę www lub moduł zawierający interfejs użytkownika aplikacji mobilnej, nie umożliwiają nawet pośredniej identyfikacji osoby fizycznej, a więc nie stanowią danych osobowych w rozumieniu RODO. Dane nie są zapisywane (przechowywane) poza urządzeniem użytkownika. API dostawcy usługi samooceny stanu zdrowia (Infermedica) jest interaktywne. Do analizy nie jest wymagany zapis tych informacji. To API reaguje wyłącznie na odpowiedzi, zadając kolejne pytania lub udzielając końcowej oceny ryzyka. Dodatkowo informacje te nie opuszczają terenu UE. Wtedy gdy użytkownik aplikacji znajduje się poza terytorium UE i łączy się z innego kraju lub kontynentu - nawet wtedy dane przekazywane są do Unii, a nie poza nią. Wyłączone jest buforowanie (cache) dla takiej komunikacji po stronie Cloudflare, tj. Claudflare nie przechowuje tych informacji. Nie jest odbierana też informacja na temat IP użytkownika aplikacji. Nwszystkich użytkownicy aplikacji web i mobile są grupowani w jedną pulę, która jest widoczna po stronie API Infermedica jako adresy platformy (zbiorcze adresy ProteGO Safe) a nie użytkownika aplikacji.

  3. W procesie jest kontakt z CF w zakresie: https://www.cloudflare.com/governmentagency/ celem pogłębienia konfiguracji pod potrzeby PS.

  4. Równolegle prowadzona jest dyskusja w obszarze korzystania z zewnętrznego API online oraz rozwiązania offline, integrując funkcję triażu (sammooceny ryzyka zarażenia COVID-19) wewnątrz aplikacji (dzieje się to zarówno na linii GIS/MC/MZ oraz u nas na GH np w #163) - dyskusja trwa.

  5. Wszystkie kwestie ochrony prywatności są stale konsultowane na poziomach: prawnym u nas wewnętrznie, prawnym w Ministerstwie Cyfryzacji, prawnym przy GIS, prawnym międzynarodowym przy eHealth Network. To co jest natomiast bardzo wyraźne już dzisiaj to duża uwaga skierowana na kwestie interoperacyjności lokalnych (krajowych) rozwiązań na terenie przynajmniej UE. Cykl kształtowania się regulacji i wytycznych w tym zakresie zajmuje niestety sporo czasu.

  6. W kolejnej wersji dokumentacji, regulaminie oraz polityce prywatności pojawi się informacja na temat CF. Chociaż nie ma to bezpośredniego wpływu na przetwarzane dane a jedynie na ich poprawne dostarczanie i ochronę transmisji. Korzystanie z CF w ramach aplikacji ProteGO Safe nie jest transferem danych osobowych poza terytorium EOG w rozumieniu rozdziału V RODO.

  7. Firma CF została wybrana jako partner ze względu na zaawansowanie technologiczne swoich rozwiązań obronnych, duży wpływ na rozwój nowych standardów bezpieczeństwa w sieci oraz duże zaufanie społeczne w kwestii obrony praw konsumentów do prywatności. Jest dobrym partnerem dla słynącej z walki o dobro użytkowników Internetu fundacji Mozilla.

We wszystkich opisanych wkestiach są wyznaczone osoby, które trzymają rękę na pulsie a dyskusja na GH dodatkowo zwiększa siłę tego "trzymania" :) .

Temat jest ważny, dlatego zachęcam do wnikliwej analizy detali i szczegółów - detale mają znaczenie.

Niezależnie:

potiuk commented 4 years ago

Dzięki. Konkretnie i rzeczowo.

  • notatka z analizy w sprawie IP: "Mimo, że w wyroku Breyer (sygn. C‑582/14) Trybunał Sprawiedliwości Unii Europejskiej uznał dynamiczny adres IP za dane osobowe, to należy mieć na względzie, że wyrok ten zapadł w określonych okolicznościach faktycznych. Podkreślić należy, że adres IP będzie uznawany za dane osobowe jedynie wówczas, gdy podmiot przetwarzający adres IP ma jednocześnie dostęp do danych łączących adres IP z innymi danymi identyfikującymi osobę. W przypadku ProteGO Safe brak jest takich innych danych, które tą identyfikację by umożliwiały."

Tu tylko jedna uwaga. Piszesz o opiniach prawnych na poziomach "prawnym u nas wewnętrznie, prawnym w Ministerstwie Cyfryzacji, prawnym przy GIS, prawnym międzynarodowym przy eHealth Network" . Wszystkie te podmioty nie są niezależne/bezstronne. Wyjaśniam - eHealth Network składa się bezpośrednio z przedstawicieli Ministerstw Zdrowia poszczególnych rządów, więc również jest to instytucja zalażna od rządów.

Myślę że temat IP a dana osobowa warto by rozstrzygnąć jednoznacznie, bo zgodnie z wcześniejszą wiedzą - potencjalnie ze względu na Ustawa z 15 stycznia 2016 r. o zmianie ustawy o Policji oraz niektórych innych ustaw (Dz. U. 2016, poz. 147) jednak mozliwe że zachodzi tu sytuacja o której pisałeś " podmiot przetwarzający adres IP ma jednocześnie dostęp do danych łączących adres IP z innymi danymi identyfikującymi osobę"

Myśle że wątpliwości rozwiała by opinia niezależnych expertów od RODO. Konstruktywna propozycja: może poproście Panoptykon o znalezienie niezależnych prawników i zamówcie u nich taką ekspertyze ?

potiuk commented 4 years ago

Uzupełniając - @MateuszRomanow, Jeśli jest taka potrzeba to mogę polecić dobrą prawniczkę specjalizującą się w RODO

miklobit commented 4 years ago
* notatka z analizy w sprawie IP:
  "Mimo, że w wyroku Breyer (sygn. C‑582/14) Trybunał Sprawiedliwości Unii Europejskiej uznał dynamiczny adres IP za dane osobowe, to należy mieć na względzie, że wyrok ten zapadł w określonych okolicznościach faktycznych. Podkreślić należy, że adres IP będzie uznawany za dane osobowe jedynie wówczas, gdy podmiot przetwarzający adres IP ma jednocześnie dostęp do danych łączących adres IP z innymi danymi identyfikującymi osobę. W przypadku ProteGO Safe brak jest takich innych danych, które tą identyfikację by umożliwiały."

Rozłóżmy na czynniki pierwsze określenie "inne dane identyfikujące osobę". Czy imię + nazwisko identyfikuje jednoznacznie osobę ? Zazwyczaj nie bo osób z takim samym imieniem i nazwiskiem może być w Polsce setki. Ale już w połaczeniu z numerem IP prawdopodobnienstwo że dzielą go dwie osoby o tym samym imieniu nazwisko jest minimalne.

Wg definicji z art. 4 pkt 1 rozporządzenia Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. do tych "innych danych" przez ktore osobę fizyczną można zidentyfikować zalicza się w szczególności jeden bądź kilka czynników określających fizyczną, fizjologiczną, genetyczną tożsamość osoby fizycznej.

Aplikacja w module triażu operuje na takich danych i część z nich wysyła na serwer. Jak się przyjrzymy to wysłane dane zawierają całkiem sporo informacji: (tabelka na podstawie analizy działania https://safesafe.app/ ale rozumiem że apka mobilna robi dokładanie to samo) BIty Informacja Wysyłane do API
1 płeć X
7 wiek X
3 grupa krwi
15 choroby przewlekłe (tak/nie)
13 choroby przewlekłe (dane szczegółowe, czas trwania)
3 palenie papierosów + liczba
7 Choroby, pobyt w DPS (triaż) X

Dla każdej (nawet zdrowej) osoby jest wysyłane co najmniej 8bitów danych, które są niezmienne w czasie (wiek w okresie 1 roku) oraz OK 7 bitów danych, które też są albo moga być słabo zmienne w czasie. Mamy więc ok 15 bitów danych które identyfikują konkretne cechy wymienione w RODO jako dane wrażliwe po których można zidentyfikować konkretną osobę fizyczną.

W połączeniu z numerem IP to jest zestaw który bez żadnych wątpliwości pozwala zidentyfikować konkretną osobę fizyczną, tym dokladniej im więcej różnych przewlekłych chorób posiada. A zestaw tych danych (odszyfrowany) + IP użytkownika jest dostępny dla operatora CloudFlare. Która to firma może analizowac te dane w połaczeniu z wieloma innymi danymi tych samych osob fizycznych bo te osoby korzystają z setek innych stron/API które również "chroni" CF. Tzn chroni te strony/API ale na pewno nie prywatność ich użytkownikow.
Dla adresu api.safesafe.app DNS zwraca IP 104.26.10.148, dla ktorego wszystkie usługi lokalizujące (IP-> ISP) zgodnie pokazują na USA i CloudFlare jako właściciela IP.

Nie jest więc prawdą co pisze @MateuszRomanow , że:

I przy okazji - jeżeli te pozostałe ~31bitów danych "metryczki zdrowia" wymienionych w tabeli nie jest wysylanych do API w celu oceny ryzyka tylko trzymanych lokalnie to po co w ogóle te dane są zbierane od użytkownika ?

MateuszRomanow commented 4 years ago

@potiuk ostatnie tygodnie przebijał w tle pomysł powołania niezależnej komórki do konsultacji rozwoju aplikacji - w planie jest powołanie takiego zespołu składającego się z niezależnych organizacji, NGOsów. Ukaże się - nie wiem kiedy - podcast Ministra Cyfryzacji i Panoptykonu gdzie to oficjalnie wybrzmiało. Takie analizy będą na pewno robione.

@miklobit w #147 są opisane założenia po stronie medycznej, które o d początku przyświecały aplikacji (lekarze na pierwszej linii frontu, epidemiolodzy, Instytut Roberta Kocha).

potiuk commented 4 years ago

@potiuk ostatnie tygodnie przebijał w tle pomysł powołania niezależnej komórki do konsultacji rozwoju aplikacji - w planie jest powołanie takiego zespołu składającego się z niezależnych organizacji, NGOsów. Ukaże się - nie wiem kiedy - podcast Ministra Cyfryzacji i Panoptykonu gdzie to oficjalnie wybrzmiało. Takie analizy będą na pewno robione.

Super. Ale powtórzę tu raz jeszcze. Tylko pod warunkiem że będzie to ciało niezależne, z finansowaniem i bez przewagi strony rządowej w głosach. Czekam na szczegóły i propozycje statutuów etc. żeby to można było zweryfkować.

A w miedzyczasie chyba dojrzałem do podjęcia konkretnych działań do stworzenia niezależnej fundacji, która mogła by patrzeć na te i przyszłe aspekty technologii - tak jak zaproponował @Dr-Kownacki w #168

SeraMoon commented 4 years ago

A w miedzyczasie chyba dojrzałem do podjęcia konkretnych działań do stworzenia niezależnej fundacji, która mogła by patrzeć na te i przyszłe aspekty technologii - tak jak zaproponował

@potiuk Czyli będzie Kontrolujemy Kontrolujących 2.0? Przydałoby się, bo napływają do mnie sygnały, że Panoptykon nie radzi sobie z ilością zgłaszanych im problemów związanych z prywatnością i mają zbyt mały zespół, aby to ogarnąć w całości.

potiuk commented 4 years ago

@potiuk Czyli będzie Kontrolujemy Kontrolujących 2.0? Przydałoby się, bo napływają do mnie sygnały, że Panoptykon nie radzi sobie z ilością zgłaszanych im problemów związanych z prywatnością i mają zbyt mały zespół, aby to ogarnąć w całości.

Myślę że bardziej zastanowienie się nad tym jak zwiększyć możliwości działania Panoptykonu, Po kilku rozmowach i wywiadach - mi osobiście bardzo się podoba to jak działa fundacja Panoptykon, i chętnie się raczej dołączę - żeby zwiększyć siłę, niż miałbym stwarzać nowe byty, Tak jak wspominali w #168 @jasisz i @tomekziel - może lepiej wzmocnić obecne organizacje a nie budować nowe. Mały zespół można rozbudować. I ja jestem jak najbardziej na tak.

cojack commented 4 years ago

To API reaguje wyłącznie na odpowiedzi, zadając kolejne pytania lub udzielając końcowej oceny ryzyka. Dodatkowo informacje te nie opuszczają terenu UE. Wtedy gdy użytkownik aplikacji znajduje się poza terytorium UE i łączy się z innego kraju lub kontynentu - nawet wtedy dane przekazywane są do Unii, a nie poza nią. Wyłączone jest buforowanie (cache) dla takiej komunikacji po stronie Cloudflare, tj. Claudflare nie przechowuje tych informacji. Nie jest odbierana też informacja na temat IP użytkownika aplikacji.

Claudflare nie przechowuje tych informacji

@MateuszRomanow przepraszam ale to jest bzdura, przytoczyłem pkt z regulaminu, w którym jest napisane że CF zbiera dane przesyłane pomiędzy użytkownikiem a odbiorcą, także proszę nie pisać rzeczy niezgodnych z stanem faktycznym.

Dodatkowo informacje te nie opuszczają terenu UE

@MateuszRomanow dane użytkownika są wysyłane poza UE, gdyż idą przez proxy w USA. W jaki sposób mam unaocznić? Tracem? Czy taki sposób pokazania hoopów przez które przechodzi połączenie z pkt A do pkt B będzie zaakceptowane jako dowód w sprawie? Przecież to jest oczywiste jeżeli komunikacja z serwerem jest poprzez adres IP, który jest poza UE to dane wychodzą poza UE.

Ponawiam swoje żądanie, domagam się natychmiastowego zrezygnowania z usługi CF i wystosowania oraz upublicznienia maila z podpisem cyfrowym Ministra Cyfryzacji w sprawie usunięcia wszystkich danych oraz kopii po stronie CF odnośnie tego projektu.

kamilzzz commented 2 years ago

dane użytkownika są wysyłane poza UE, gdyż idą przez proxy w USA. W jaki sposób mam unaocznić? Tracem? Czy taki sposób pokazania hoopów przez które przechodzi połączenie z pkt A do pkt B będzie zaakceptowane jako dowód w sprawie? Przecież to jest oczywiste jeżeli komunikacja z serwerem jest poprzez adres IP, który jest poza UE to dane wychodzą poza UE.

@cojack, przypadkiem tu trafiłem, ale na podstawie czego twierdzisz, że dane idą przez proxy w USA (to w ogóle byłoby kuriozum, gdyby Cloudflare cały globalny ruch proxował przez USA)?

Cloudflare jak i inni globalni dostawcy usług CDN używają anycast DNS, gdzie wiele lokalizacji w USA, Europie, Azji itd. rozgłasza ten sam adres IP, a użytkownik najczęściej trafia do lokalizacji dla niego najbliższej. To, że traceroute czy nslookup pokaże jakiś końcowy adres IP i po jego geolokalizacji wynika, że to USA to nie znaczy, że każdy request przechodzi przez USA.