ProteGO-Safe / specs

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

Zmiana modelu działania aplikacji na anonimowy i (być może) zdecentralizowany #34

Closed potiuk closed 4 years ago

potiuk commented 4 years ago

Aplikacja ProteGO w obecnym kształcie zbytnio narusza prywatność osób zdrowych. Umożliwia to deanonimizację informacji wysyłąnych na serwer. Jest to niezgodne na przykład z zaproponowaną specyfikacją https://www.pepp-pt.org/ (pod warunkiem że ta specyfikacja pozostanie wierna temu żeby była zachowana pełna anonimowość).

Nie ma żadnej potrzeby, żeby aplikacja wymagała podania i potwierdzenia numeru telefonu przy instalacji. Komunikacja z zagrożonymi osobami zdrowymi może być zrobiona na poziomie aplikacji - niepotrzebny jest numer telefonu (i żaden inny identyfikator pozwalający zidentyfikować zarówno osobę zdrową jak i zdiagnozowaną).

Właśnie pojawił się protokół który opisuje jak to samo zrobić w wersji zdecentralizowanej i anonimowej: https://github.com/DP-3T/documents

Zamiast identyfikacji, osoba zdiagnozowoana powinna otrzymać kod (nazwany TAN_ID w specyfikacji https://www.pepp-pt.org/) który powinien zostać wpisany w celu wysłania (dalej anonimowej) swojej historii spotkań jeśli było by to potrzebne do analizy. Ten numer również nie powinien identyfikować osoby - również po diagnozie, powinien służyć jedynie do autoryzacji danych i obrony przed spamem.


Uwaga! Zaktualizowałem pierwotny opis -> odwołałem się początkowo do specyfikacji, która nie była bardzo precyzyjna, a w międzyczasie pojawił sie opis protokołu który doskonale opisuje założenia jak zrobić to dobrze - prywatnie i w sposób zdecentralizowany.

Aktualizacja 06.04.2020 - > Wydaje się że model anonimowy można utrzymać zachowując jednocześnie konieczność obowiązkowej rejestracji za pomocą numeru telefonu. Apel o to w #56 .

https://github.com/ProteGO-app/specs/issues/34#issuecomment-609676552

jasisz commented 4 years ago

Centralny rejestr wszystkich identyfikatorów użytkowników, dodatkowo powiązanych z ich numerami telefonów to badzo nietrafiony pomysł.

Nie znam specyfikacji Pepp-Pt, ale po ogólnym opisie aplikacji spodziewałem się tego, że będą zwyczajnie "rozgłaszane" identyfikatory użytkowników, którzy mają mieć się na baczności z powodu bliskiego kontaktu, a urządzenia (mając historię również własnych identyfikatorów) będą w stanie łatwo to zweryfikować.

Natomiast to co opisano w data_sharing.md (przeklejam tutaj dla widoczności) to jakaś katastrofa pod względem prywatności:

Po przesłaniu danych chorego, na serwerze dochodzi do zamiany anonimowych identyfikatorów urządzeń na numery telefonów użytkowników aplikacji. Pracownik GIS/CRZ ma dostęp do 2-tygodniowej historii wszystkich użytkowników, którzy byli w pobliżu zakażonej osoby. Dla każdego użytkownika, który był w pobliżu, może zobaczyć jego numer telefonu oraz daty, częstotliwość kontaktów i siłę sygnału (bliskość). Na tej podstawie pracownik decyduje z którymi użytkownikami się skontaktować.

mateuszjablonski commented 4 years ago

Aplikacja podczas pierwszego uruchomienia mogłaby generować losowy identyfikator (UUID) i zapisywać go w magazynie sekretów, a następnie posługiwać się nim w celu jednoznacznej identyfikacji danego użytkownika. Prawdopodobieństwo kolizji jest marginalne, ale podczas rejestracji można zrobić detekcję.

jasisz commented 4 years ago

@mateuszjablonski Ale... nie ma potrzeby rejestracji, ani identyfikacji użytkowników innej niż "lokalna". Ba! nie ma potrzeby przypisywania "tymczasowych" identyfikatorów do konkretnego użytkownika. Zarys idei jest bardzo prosty (nie wchodząc w detale).

  1. Mój telefon generuje swój losowy identyfikator na daną godzinę i nim prezentuję się innym.
  2. Mój telefon zbiera takie same identyfikatory od innych i zapisuje je przy tym wygenerowanym dla siebie.

W tych scenariuszach nie jest potrzebna żadna komunikacja z serwerem.

Jedynym momentem, w którym trzeba wysyłać cokolwiek na serwer jest moment w którym dany użytkownik zostaje zbadany i ma pozytywny wynik testu. Wówczas używa jakiegoś specjalnego, jednorazowego kodu, który służy do wgrania historii jego spotkań (zebranej w scenariuszu 2) na serwer.

Ta historia jest analizowana i wybierane są zagrożone jednorazowe identyfikatory innych użytkowników.

Aplikacje mogą natomiast odczytywać z serwera ogłoszone "zagrożone" identyfikatory i porównywać je ze swoimi, zapisanymi lokalnie.

mateuszjablonski commented 4 years ago

@jasisz dzięki za wyjaśnienie. Czy ten mechanizm jest gdzieś opisany dokładniej? Przewertowałem dokumentację i nie udało mi się tego znaleźć.

potiuk commented 4 years ago

@jasisz - dokładnie tak. i aplikacja może odpytać o swoje unikalne identyfikatory

jasisz commented 4 years ago

@potiuk Odpytanie o dany identyfikator sugerowałoby, że to mój identyfikator i pozwalało mnie (przynajmniej w teorii) z nim powiązać. Dlatego piszę o oficjalnym "streamie" identyfiaktorów, odczytywanych przez wszystkich jednakowo.

rtpm commented 4 years ago

W ramach ciekawostki. https://lucumr.pocoo.org/2020/4/3/contact-tracing/

Unikalny identyfikator zaszyfrowany jakimś kluczem urzędowym. Pozostaje kwestia kontaktu (push) albo ręczne pobranie danych I notyfikacji przy okazji kontroli lub znalezienia się w okolicy jakiegoś huba.

jasisz commented 4 years ago

@rtpm Armin pominął bardzo ważny aspekt. Jego klucz jest unikalny ale też niezmienny. Pozwala więc na śledzenie użytkownika przez innych użytkowników oraz na ostracyzm w postaci "hej, ale twój klucz jest ogłoszony jako że jesteś potencjalnie zagrożony". I tak jak zauważyłeś - prześliznął się zupełnie nad tematem notyfikowania zagrożonych.

AlexF0rtune commented 4 years ago

@rtpm @jasisz @potiuk Jak rozumiem z przeczytania kodu, po rejestracji generowany jest unikalny 32 bajtowy token, który jak rozumiem pozostaje sekretny.i nieodgadywalny ( generowany przez CSPRNG ), kwestią jest natomiast to, że faktycznie numer telefonu nie jest potrzebny, ALE podejrzewam, że mogą być ku temu dodatkowe przesłanki.- np to, że z tego co wiem, aplikacja kwarantanna domowa działa w oparciu o numery telefonów i można by wtedy korelować informacje.

@jasisz podnosi ważny problem - modułu spotykania się z innymi i logowania tychże interakcji nie widziałem ( z tego co wiem to jest część w budowie i jest PR przynajmniej na appce androidowej ) , ale chciałbym tutaj od razu zaznaczyć, że na pewno jest imo potrzeba, aby oprócz swojego prywatnego unikalnego identyfikatora był identyfikator publiczny, który wymieniamy tylko na potrzeby "spotykania się". W sensie - dostając czyjś publiczny identyfikator powinniśmy być tylko w stanie zidentyfikować dwie osoby, które się widziały, natomiast mając czyjś identyfikator publiczny nie jesteśmy w stanie sprawdzić żadnych informacji, bo te są sprawdzane naszym identyfikatorem prywatnym.

potiuk commented 4 years ago

Zmieniłem opis - pozostawiając "clue" w międzyczasie kilkoro naukowców opublikowało whitepaper, kto który opisuje jak to zrobić dobrze - w sposób kompletnie anonimowy i zdecentralizowany https://github.com/DP-3T/documents

potiuk commented 4 years ago

@potiuk Odpytanie o dany identyfikator sugerowałoby, że to mój identyfikator i pozwalało mnie (przynajmniej w teorii) z nim powiązać. Dlatego piszę o oficjalnym "streamie" identyfiaktorów, odczytywanych przez wszystkich jednakowo.

Zgadza się. W ogóle nie powinno być możliwości zidentyfikowania osoby "zdrowej". Osoba chora i zdiagnozowana powinna jedynie dostać kod który "autoryzowałby" fakt że faktycznie osoba była potencjalnym zarażającym ale również nie powinien unikalnie identyfikować tej osoby.

jasisz commented 4 years ago

@potiuk Całkiem sensowny dokument! Do rozważenia jest kwestia co jest wypychane na serwer i co jest rozgłaszane - czy powinny to być identyfikatory "zarażonych" (jak w tym rozwiązaniu) czy też "potencjalnie zagrożonych" (jak pisałem). Wydaje mi się, że moje rozwiązanie w ogromnym stopniu utrudnia to co opisują jako Location traceability.

Przyszło mi do głowy jedno zagrożenie prywatności... niestety istnieje w obu tych rozwiązaniach. Gdyby atakujący był w stanie ustalić że w danym epoch "widział" (i był widziany przez) tylko jedną osobę, a potem identyfikator tej osoby (jak w publikacji) albo identyfikator atakującego (tak jak u mnie) byłby rozgłoszony... to oznaczałoby, że ta konkretna spotkana osoba została pozytywnie zdiagnozowana. Można to rozwiązać na trzy, ale dalece niedoskonałe sposoby:

potiuk commented 4 years ago

Chciał bym przestrzec wszystkich - wczoraj zostałem celem bardzo sprytnego ataku phishingowego który próbował wyłudzić moje credentiale na githuba. Uratował mnie mój klucz hardwarowy który używam jako 2FA. Jeśli dostaliście ostatnio jakiegoś maila z githuba mówiącego o podejrzanej aktywności - sprawdźcie uważnie skąd jest "sender" i w jaki link klikacie (u mnie było to githubs.com).

jakublipinski commented 4 years ago

Dziękuję za wszystkie głosy w tym wątku. Przeczytałem je wszystkie.

Z ciekawością patrzę na inicjatywę PEPP-PT. Zabiegam o to abyśmy jako Polska/ProteGO przystąpili do niej. Kłopot z PEPP-PT jest taki, że na dzień dzisiejszy jest to tylko specyfikacja. My za kilka dni będziemy mieli aplikacje w sklepach i całość naszego kodu już jest otwarta.

Nie wiem czy któryś kraj ogłosił już, że będzie używał tego co powstanie na bazie PEPP-PT. Wiem, że w Polsce Ministerstwo Cyfryzacji chce opublikować i promować ProteGO.

Nie da się aplikacji typu contact-tracing wykonać bez państwa. To ono koordynuje walkę z CoV. To ono ma (dziś) monopol na testy CoV, prowadzi rejestr chorych i osób w kwarantannie. Może w innych krajach jest inaczej, ale w Polsce ta walka polega m. in. na tym, że próbuje się skutecznie poddawać kwarantannie osoby chore lub zagrożone. Do tego trzeba mieć skuteczny sposób dotarcia do osoby zagrożonej. Chat w aplikacji lub notyfikacja w telefonie, takimi sposobami nie są. Stąd potrzeba przetwarzania numeru telefonu.

Przyglądajmy się wspólnie temu co powstanie na bazie PEPP-PT i doświadczeniom krajów, które to wdrożą. Jeśli macie czas, zaangażujcie się i pomóżcie im przerobić specyfikacje w działające rozwiązanie. Mam nadzieję, że nie będzie z nią tak jak z wieloma innymi rozwiązaniami, które technicznie lepsze i bezpieczniejsze, nie są powszechnie używane (GPG vs. clear text email, Monero vs. fiat money, etc).

Myślę, że ważną metryką na podstawie której powinniśmy podjąć decyzję o ew. przejściu na PEPP-PT będzie to ile osób zgłosi się samodzielnie do GIS po otrzymaniu informacji o zagrożeniu, a do ilu z nich będzie trzeba dzwonić.

Jeszcze raz dziękuję za wasze głosy. Przepraszam jeśli nie jestem w stanie odpowiedzieć na wszystko, ale mój główny wysiłek jest teraz skupiony na dostarczeniu wersji 1.0. Czytam wszystko.

PS. Też dziś miałem próbę resetu hasła do GitHub. Uważajcie na siebie.

potiuk commented 4 years ago

Nie chodzi o technicznie lepsze rozwiązania, ale o zachowanie prywatności. Tak naprawdę ta aplikacja w Polsce będzie potrzebna za 5-10 tygodni bo tyle potrwa wypłaszczanie wzrostu. Według mnie lepiej to zrobić dobrze niż szybko i naruszając prywatność,

potiuk commented 4 years ago

Otwarcie kodu nie znaczy że dane są prywatne. Poza tym nie są rozstrzygnięte podstawowe kwestie które tak naprawdę definiują co to znaczy otwarty kod. To o czym piszesz @jakublipinski jest "wydmuszką" open source - nie spełnia to podstawowych kryteriów

~1) Kto jest właścicielem kodu (#50 )~ 2) Jaki jest model podejmowania decyzji (#46)

Dopóki te rzeczy nie są rozstrzygnięte - to nie jest projekt który nazwałbym w jakikolwiek sposób "open source".

~Osoby kontrybuujące do projektu powinny wiedzieć, że nie wiadomo komu i nie wiadomo w jakim trybie przekazują swój kod.~


Aktualizacja: zgodnie z wyjaśnieniami @jakublipinski - wiadomo kto jest właścicielem kodu - każda osoba która kontrybuuje jest właścicielem ale na mocy licencji oraz oświadczenia (https://github.com/ProteGO-app/specs/blob/master/files/oswiadczenie_licencja_GPL_AGPL.pdf) które pojawiło się po tej dyskusji - rezygnuje z wykonywania własnych, osobistych praw autorskich na okres minimum 10 lat (i te 10 lat tylko w przypadku, gdyby zobowiązanie do niewykonywania tych praw miało by być bezwględnie sprzeczne z obowiązującymi przepisami prawa).

bkij commented 4 years ago

@jakublipinski IMO jeśli ambicja projektu ("Chcielibyśmy, aby docelowo z aplikacji korzystali wszyscy użytkownicy smartfonów w Polsce", z linku ze strony MC) ma zostać zrealizowana choćby częściowo, trzeba wziąć pod uwagę wątpliwości zgłoszone w tym wątku.

Piszesz o ważnej kwestii pragmatycznej - łatwy kontakt GISu z zarażonymi użytkownikami - ale żeby ten projekt działał dobrze, musi być przede wszystkim bardzo szeroko rozpowszechniony. W sytuacji w której są wątpliwości co do możliwości nadużycia zbieranych danych, zarówno mainstreamowe media, jak i duża ilość osób "znających się" i niezależnych serwisów mogą wręcz bić na alarm i stanowczo odradzać używania tej aplikacji.

Zwłaszcza w kraju, w którym zaufanie do instytucji publicznych jest dość niskie, ta kwestia jest fundamentalna dla sukcesu projektu.

kfigaj commented 4 years ago

Myślę, że ważną metryką na podstawie której powinniśmy podjąć decyzję o ew. przejściu na PEPP-PT będzie to ile osób zgłosi się samodzielnie do GIS po otrzymaniu informacji o zagrożeniu, a do ilu z nich będzie trzeba dzwonić.

Z tego co wiem, to obecnie każda karta sim jest rejestrowana imiennie. Jeśli GIS wie kto jest zarażony, to może da się skorzystać z tego rejestru, aby znaleźć telefon danej osoby? Czy taka integracja byłaby możliwa?

AdvenamTacet commented 4 years ago

Wydaje mi się, że jednym z rozwiązań zapewniających jednocześnie prywatność, jak i zachowujące pragmatyzm, jest wysyłanie numeru telefonu do GIS w momencie, gdy właściciel staje się osobą potencjalnie zarażoną. (Z możliwością opt-out w ustawieniach aplikacji.)

Osoby zdrowe nie wysyłają na serwer nic (poza zapytaniami). Osoby potencjalnie zarażone dzielą się swoimi informacjami, jeśli nie zaznaczyły ręcznie iż chcą inaczej. Osoby które wypisały się z automatycznego informowania serwera, dalej otrzymają informację o potencjalnym zarażeniu i mogą we własnym zakresie podjąć odpowiednie kroki.

Już teraz pojawiają się głosy o tym, iż celem tego typu aplikacji jest jedynie śledzenie obywateli. Jeśli pierwsza wersja aplikacji spotka się z dużą krytyką, może się później nie udać przekonać społeczeństwa do używania tej poprawionej. A jeśli pojawi się obowiązek posiadania takowej, to ludzie zaczną go omijać (np. aplikacja symulująca tą, ale rozsyłająca niepoprawne identyfikatory).

Takie rozwiązanie będzie podobne do bycia dawcą, z możliwością opt-out. Jednocześnie nie da to podstaw do krytyki aplikacji.

Jeśli ktoś widzi problem z takim rozwiązaniem, to proszę o zgłoszenie go.

Ze względu na zrozumiały opór społeczny przed permanentną inwigilacją obywateli, kładziemy duży nacisk na zadbanie o ochronę prywatności. Kod aplikacji jest upubliczniony (open source) i może być zaudytowany przez ekspertów.

source

Czy aby na pewno? Jaki jest cel tych audytów?

potiuk commented 4 years ago

Absolutnie się zgadzam. Numer telefonu jest kompletnie niepotrzebny - a na pewno w pierwszej wersji aplikacji kiedy lokalnie będą zbierane dane i kiedy będzie można rzetelnie przeprowadzić debatę publiczną na ten temat.

Powiem więcej - polecam dyskusję w #37 #46 #48 #54 #55 #56 . Zwłaszcza to ostatnie podsumowujące - apel o publiukację aplikacji z wyłączeniem podawania numeru telefonu.

rtpm commented 4 years ago

Jeśli zakładane jest całkowite oddanie decyzyjności (od instalacji aplikacji, podjęcia odpowiednich działań w przypadku uzyskania z apki informacji o byciu potencjalnie zarażonym, a co za tym idzie kontakt z sanepidem czy też dobrowolna izolacja / większa ostrożność, to rozwiązanie bez numeru telefonu jest dobre. Jedynym weryfikatorem i motywatorem, czy użytkownik ze statusem potencjalnie zarażonego "słusznie" postępuje byłyby bramki/ograniczenia w dostępie do usług, ale o tym w ogólnie ma ma mowy i nie wiadomo czy będzie (patrzę na przykład innych krajów, gdzie obywatela się bardziej "kontroluje"...). Na pewno takie bazujące na zaufaniu do obywatela podejście przełoży się na większą ilość instalacji. Pytanie jaki byłby całościowy wynik w obu przypadkach. Pomijając tutaj na prawdę wiele czynników wpływających na kształt tej "samo decyzyjności", nie wiemy jakie będą procedury sanepidu w stosunku do takich osób i pewnie to przełoży się na ostateczny schemat działania apki.

potiuk commented 4 years ago

Instalacja aplikacji (w teorii) ma być dobrowolna. Już samo to powoduje że pozostałe działania również takie być muszą, bo jeśli ktoś będzie miał wątpliwości, albo nie będzie chciał wziąć w tym udziału, to po prostu nie zainstaluje aplikacji.

Chyba że założenie projektu jest inne - i ukryte przed opinią publiczną. Obecny schemat jest bardzo sprytnie pomyślany żeby wywrzeć presję społeczną na ludzi "nie masz aplikacji????". Ktoś kto chciałby manipulować tym i wywrzeć "presję społeczną" na wszystkich innych - może to z pewnością zrobić i naciskać ludzi na instalacje i podawanie numerów. A potem jeszcze bardziej - na przykład bez aplikacji nie będzie można wsiąść do komuniacji publicznej ... Bardzo łatwo ten schemat "presji społecznej" wykorzystać do manipulacji.

turbaszek commented 4 years ago

Chyba że założenie projektu jest inne - i ukryte przed opinią publiczną. Obecny schemat jest bardzo sprytnie pomyślany żeby wywrzeć presję społeczną na ludzi "nie masz aplikacji????". Ktoś kto chciałby manipulować tym i wywrzeć "presję społeczną" na wszystkich innych - może to z pewnością zrobić i naciskać ludzi na instalacje i podawanie numerów. A potem jeszcze bardziej - na przykład bez aplikacji nie będzie można wsiąść do komuniacji publicznej ... Bardzo łatwo ten schemat "presji społecznej" wykorzystać do manipulacji.

Dokładnie ta kwestia mnie najbardziej zniechęca. Zbyt wiele razy widzieliśmy podział "my i tamci".

rtpm commented 4 years ago

Nie zakładałbym jakiejś złej woli i wykorzystywania sytuacji do wprowadzenia inwigilacji. Myślę, że po tym co było widać w parkach itd. władza nie do końca ufa w zdrowy rozsądek obywatela, nie oceniam tutaj powodów zdrowego lub mniej rozsądku podyktowanego wieloma czynnikami (strach, uprzedzenia itd). Masz jednak całkowitą rację, dobrowolność instalacji ma kolosalne znaczenie i chyba na tym póki co trzeba się koncentrować tj. Namówić do jak największej ilości DOBROWOLNYCH instalacji. Mam jednak wrażenie, że ta ogólna zasada działania mogła już zostać nakreślona i zatwierdzona, o czym wkrótce się dowiemy i o czym jest mowa /zapytania/ w innych zgłoszeniach w tym repo.

potiuk commented 4 years ago

Mam jednak wrażenie, że ta ogólna zasada działania mogła już zostać nakreślona i zatwierdzona, o czym wkrótce się dowiemy i o czym jest mowa /zapytania/ w innych zgłoszeniach w tym repo.

W komunikacji Ministerstwa i w tym repozytorium jest wyraźnie mowa o projekcie rozwijanym "przez społeczność". Czyli zakładam że społeczność ma na niego wpływ i nie ma mowy o "zatwierdzaniu" czy też "nakreślaniu". To społeczność powinna zdecydować - według mnie - jak aplikacja powinna działać. Jeśli intencją ministerstwa jest "niech społeczność to rozwija ale tylko w sposób w jaki my uważamy za słuszny" to jest to bardzo duża manipulacja i nadużycie.

Myślę że odpowiedź na to powinna być przedstawiona w #46 - sposób podejmowania decyzji w projekcie.

jakublipinski commented 4 years ago

Drodzy, dziękuję za wszystkie wiadomości. Zmuszają mnie one do intensywnego myślenia i zastanowienia dlaczego poświęcam swój czas i energię na ten projekt. Mam wrażenie, że nasz spór sprowadza się do odpowiedzi na te trzy pytania:

  1. Czy zachorowanie i potencjalne zachorowanie na CoV jest prywatną sprawą każdego obywatela?
  2. Czy w czasie pandemii można coś robić dla nielubianego przez siebie rządu?
  3. Jaki jest właściwie pomysł na wyjście z pandemii?

Pozwólcie, że udzielę wam moich odpowiedzi:

Ad 1.

Podejście PPTP zakłada, że informacja o tym, że ktoś z nas był w pobliżu osoby chorej trafia tylko na nasze urządzenie i to my jesteśmy odpowiedzialni za poddanie się kwarantannie. Doniesienia z ostatnich tygodni pokazują, że w Polsce takie podejście po prostu nie działa. Wiele osób rygorystycznie przestrzega zaleceń, ale jest wielu freerider’ów, których przekonują dopiero mandaty.

Jeśli na pytanie czy zachorowanie lub potencjalne zachorowanie na CoV jest prywatną sprawą odpowiadasz TAK jesteś przeciwny ProteGO.

Moje odpowiedź brzmi NIE. Będąc chorym lub potencjalnie chorym stanowisz śmiertelna zagrożenie dla innych osób. Uważam, że Główny Inspektorat Sanitarny powinien mieć możliwość skontrolowania czy przestrzegasz kwarantanny. Tak, jest to ingerencja w prywatność obywateli, wg. mnie uzasadniona stanem pandemii ponieważ to że możesz zarażać innych nie jest twoją prywatną sprawą.

PPTP najpewniej jest możliwe technicznie, ale wg. mnie jest oderwana od rzeczywistości pandemii z którą się mierzymy.

Ad. 2.

Tu niestety wchodzimy w sprawy polityczne, ale nie da się tego uniknąć. Mamy taki a nie inny rząd. Mamy toczącą się w Polsce wojnę polsko-polską. Czy powinniśmy mu pomagać?

Moja odpowiedź brzmi TAK. To rząd koordynuje walkę z pandemią. Jego wygrana lub przegrana, będzie wygraną lub przegraną nas wszystkich. Kuszące jest aby wrócić na kanapę i z tej pozycji krytykować wszystkie działania rządzących, ich wpadki, nieudolności, papierowe państwo. Przeczytałem jednak wywiad z min. Szumowskim i utwierdziłem, się że w czasie pandemii powinienem wykorzystać swoje umiejętności do tego aby pomóc tak jak umiem najlepiej. Nie mam z tego pieniędzy, ryzykuję reputację, ale po prostu uważam, że trzeba spróbować. Jeśli ProteGO ocali jedną osobę od choroby lub śmierci, to uznam, że było warto.

Nie wierzę w ogóle w używanie ProteGO do inwigilacji. Państwo już ma, a za chwilę będzie miało wszystkie narzędzia aby robić to bez pytania o zgodę lub instalowanie żadnych appek.

Mając bardzo ograniczone zaufanie do rządu, zdecydowałem się robić ten projekt pro-bono, transparentnie, na GPLu z otwartym kodem źródłowym. Jeśli ta inicjatywa zostanie zablokowana, rząd po prostu wynajmie jakiś software house, zapłaci i dostanie to co chce. Będziemy dekompilować aplikację aby dowiedzieć się co się w niej dzieje. Nie będzie żadnego forum gdzie będzie można sobie krytykować wdrożone rozwiązanie. Pewnie nigdy już nie uda się zrobić niczego open-source dla administracji.

Ad 3.

I najważniejsze pytanie, nad którym jest najmniej dyskusji. Kraje którym udało się zahamować rozwój CoV i zatrzymać umieranie chorych, zrobiły to przy pomocy skutecznego odizolowanie osób chorych i potencjalnie chorych. W tym kierunku zmierza ProteGO. Ma pozwolić na powrót do jako takiej normalności poddając kwarantannie tylko osoby chore i zagrożone chorobą.

Jeśli nie ProteGO to co? Jaki jest pomysł na walkę z pandemią? Bojkot prac rządu i liczenie na to, że każdy sam podda się kwarantannie? Narodowa kwarantanna przez najbliższe 6 miesięcy?

Też chciałbym abyśmy wszyscy obudzili się z tego koszmarnego snu i żeby wszystko było tak jak było. Niestety wiele wskazuje na to, że tak nie będzie. Staram się mierzyć z tą nową normalnością, choć wcale mi się ona nie podoba.

jasisz commented 4 years ago

@jakublipinski Jak to widzę, już bez żadnych złośliwości:

Ad 1. Pytanie nie jest właściwie postawione. W dodatku są to dwa pytania w jednym. Czy to że jest się zakażonym jest prywatną sprawą obywatela? Kwestia co rozumiemy przez "prywatną sprawę". Ale na pewno trzeba zachować prywatnośc takiej osoby. Nikt o zdrowych zmysłach nie proponuje publikowania danych osób zarażonych, które by pozwalały na ich identyfikację. Czym innym jest natomiast (nawet przymusowe) leczenie i odseparowywanie takich osób. Natomiast drugie pytanie to "czy potencjalne zachorowanie na CoV jest prywatną sprawą każdego obywatela?" i tutaj odpowiedź jest bardziej złożona. Będąc potencjalnie chorym stanowisz... POTENCJALNE zagrożonie dla innych. Mogę po prostu nie instalować ProteGO i nigdy się o tym nawet nie dowiedzieć i nie mieć z tego powodu "problemów" (bo tak to zapewne widzą osoby łamiące kwarantannę). Jeżeli ktoś zainstalował aplikację, to już zrobił jakiś obywatelski krok. Jak taka osoba zareaguje na wiadomość że jest potencjalnie zarażona? Ktoś pewnie zadzwoni do GIS, a ktoś będzie przez dwa tygodnie siedział sam w domu i obserwował objawy na własną rękę, może ktoś nic sobie z tego nie zrobi i oleje ryzyko, a telefon zresetuje. Dalej jest to jednak ogromna zmiana na plus w walce z pandemią. Brakuje też trzeciego pytania: "czy szanujemy prywatność osób zdrowych?" - ProteGO tego nie robi w obecnej formie. Zbiera historię ich identyfikatorów i danych telefonu. Historia identyfikatorów jest natomiast w tym scenariuszu bardzo wrażliwą informacją.

Ad 2. Niestety Twoja odpowiedź to rozbudowany emocjonalny szantaż. Oczywiście, że można coś robić dla rządu (i nie ma znaczenia czy się go lubi czy nie), ale na miarę technologicznych możliwości trzeba zadbać o to, żeby rząd mógł to wykorzystywać tylko w dobrej wierze. W istniejącym podejściu ktoś arbitralnie (bo nie znamy algorytmu) decyduje o tym, kto jaki ma status. Można sobie oznaczyć dowolną osobę jako potencjalnie zagrożoną.

Ad 3. Tego akurat nikt nie wie. Natomiast jeżeli jedyną propozycją na wyjście z pandemii jest inwigilacja na poziomie chińskim ze skanowaniem twarzy, to coś poszło nie tak.

potiuk commented 4 years ago

Ad 1.

Jeśli na pytanie czy zachorowanie lub potencjalne zachorowanie na CoV jest prywatną sprawą odpowiadasz TAK jesteś przeciwny ProteGO.

Pozwolę się z tym nie zgodzić. Osoby które nie chcą reagować na informacje wysłane z aplikacji, po prostu jej nie zainstalują. Chyba że masz zamiar zmusić wszystkie osoby w Polsce do zainstalowania aplikacji i podania numeru telefonu.

Moje odpowiedź brzmi NIE. Będąc chorym lub potencjalnie chorym stanowisz śmiertelna zagrożenie dla innych osób. Uważam, że Główny Inspektorat Sanitarny powinien mieć możliwość skontrolowania czy przestrzegasz kwarantanny. Tak, jest to ingerencja w prywatność obywateli, wg. mnie uzasadniona stanem pandemii ponieważ to że możesz zarażać innych nie jest twoją prywatną sprawą.

Jeśli chodzi o kwarantannę - zgadza się. Jest to uzasdnione naruszenie prywatności - osoby zdiagnozowane i chore (zwłaszcze te które są bez lub mało objawowe) będące na kwarantannie domowej powinny być monitorowane czy jej nie opuszczają. Można to zrobić na wiele sposóbów - aplikacja "kwarantanna domowa" jest jednym z przykładów. Tak jak opisałem w #54 - aplikacja ProteGO powinna pomagać wszystkim w społeczeństwie wiedzieć kiedy powinny się przetestować i umożliwić szybkie i darmowe testy - które powinny natychmiast określić status osoby - czy jest jednak zdrowa (zielone), czy chora (i musi poddać sie kwarantannie).

PPTP najpewniej jest możliwe technicznie, ale wg. mnie jest oderwana od rzeczywistości pandemii z którą się mierzymy.

Ponad 130 naukowców i technologów z całej Europy uważa inaczej: https://www.pepp-pt.org/

Ad. 2.

Tu niestety wchodzimy w sprawy polityczne, ale nie da się tego uniknąć. Mamy taki a nie inny rząd. Mamy toczącą się w Polsce wojnę polsko-polską. Czy powinniśmy mu pomagać?

Moja odpowiedź brzmi TAK.

Moja odpowiedż brzmi również TAK. Chciałbym pomóc - a nawet pomagałem w projekcie ProteGO kiedy jeszcze standardy dotyczące prywatności były zachowane. I nie pomagam od momentu w którym te standardy przestały być zachowywane i wprowadzono rejestrację numeru. Bardzo, bardzo bym chciał pomóc i robiłem to wcześniej w czasie wolnym.

To rząd koordynuje walkę z pandemią. Jego wygrana lub przegrana, będzie wygraną lub przegraną nas wszystkich. Kuszące jest aby wrócić na kanapę i z tej pozycji krytykować wszystkie działania rządzących, ich wpadki, nieudolności, papierowe państwo. Przeczytałem jednak wywiad z min. Szumowskim i utwierdziłem, się że w czasie pandemii powinienem wykorzystać swoje umiejętności do tego aby pomóc tak jak umiem najlepiej. Nie mam z tego pieniędzy, ryzykuję reputację, ale po prostu uważam, że trzeba spróbować. Jeśli ProteGO ocali jedną osobę od choroby lub śmierci, to uznam, że było warto.

Tu się zgadzamy. Też absolutnie uważam, że trzeba spróbować. Aplikacja ProteGO bez rejestracji numeru również może pomagać ratować życie (i twierdzi tak ponad 130 naukowców i technologów z całej Europy - https://www.pepp-pt.org/ - nie jest to wyłącznie moje zdanie)

Nie wierzę w ogóle w używanie ProteGO do inwigilacji. Państwo już ma, a za chwilę będzie miało wszystkie narzędzia aby robić to bez pytania o zgodę lub instalowanie żadnych appek.

Chciałbym sprecyzować - to nie jest fakt. To spekulacja, przy okazji spłycająca temat. Po pierwsze nie wiemy czy i w jakiej formie to się stanie, po drugie nie wiemy jakie (i czy) będą mechanizmy demokratycznego nadzoru i po trzecie nie wiemy czy i w jakiej formie wszelkie tego rodzaju mechanizmy będą ograniczone czasowo (na przykład tylko do momentu zakończenia izolacji). Aplikacja ProteGO ma działać długo po zakończeniu izolacji i nie ma mechanizmów kontrolujących (na zasadzie nadzoru sądowego) nad używaniem tych danych.

Mając bardzo ograniczone zaufanie do rządu, zdecydowałem się robić ten projekt pro-bono, transparentnie, na GPLu z otwartym kodem źródłowym.

Zasadnicza część aplikacji (model - jak opisałem w #54) oraz mechanizm podejmowania decyzji (#46 ) nie są otwarte. Z doświadczeń w pracy przy projektach Open Source (jestem członkiem PMC w projekcie Apache Airflow - https://www.linkedin.com/in/jarekpotiuk/ wiem że o otwartości projektu świadczy otwarcie wszystkich (zwłaszcza istotnych) komponentówm jak również model zarządzania projektem (ang. governance) o którym nic nie wiadomo.

Jeśli ta inicjatywa zostanie zablokowana, rząd po prostu wynajmie jakiś software house, zapłaci i dostanie to co chce. Będziemy dekompilować aplikację aby dowiedzieć się co się w niej dzieje. Nie będzie żadnego forum gdzie będzie można sobie krytykować wdrożone rozwiązanie. Pewnie nigdy już nie uda się zrobić niczego open-source dla administracji.

Mój apel (który mam nadzieję już wkrótce ukaże się pod egidą znanych organizacji NGO - mam dziś rozmowy na ten temat) nie jest o zablokowanie aplikacji tylko dostosowanie jej do standardów prywatności przez usunięcie rejestracji za pomocą numeru telefonu. Uważam że to świetnie, że udało Ci się doprowadzić do tego żeby kod był otwarty i że możemy na ten temat prowadzić otwartą dyskusję. Właśnie po to ten projekt jest otwarty żeby można go było krytykować i proponować lepsze rozwiązania. Właśnie to robię. I mam nadzieję że z pomocą organizacji NGO i opinii publicznych uda się to doprowadzić do działającego rozwiązania, dobrego dla wszystkich, skutecznego i szanującego prywatność (znowu - nie ja tak twierdzę tylko ponad 130 naukowców i technologów z całego świata).

Ad 3.

I najważniejsze pytanie, nad którym jest najmniej dyskusji. Kraje którym udało się zahamować rozwój CoV i zatrzymać umieranie chorych, zrobiły to przy pomocy skutecznego odizolowanie osób chorych i potencjalnie chorych. W tym kierunku zmierza ProteGO. Ma pozwolić na powrót do jako takiej normalności poddając kwarantannie tylko osoby chore i zagrożone chorobą.

Te kraje przede wszystkim wprowadziły bardzo dużo testów - w którym osoby zagrożone chorobą mogą szybko sprawdzić swój status (chory/zdrowy).

Jeśli nie ProteGO to co? Jaki jest pomysł na walkę z pandemią? Bojkot prac rządu i liczenie na to, że każdy sam podda się kwarantannie? Narodowa kwarantanna przez najbliższe 6 miesięcy?

ProteGO - tylko bez rejestracji. Jestem, od początku, kiedy ten projekt się pojawił - absolutnym fanem tego rozwiązania. I uważam że bez rejestracji jest to o wiele lepsze rozwiązanie niż z rejestracją.

Też chciałbym abyśmy wszyscy obudzili się z tego koszmarnego snu i żeby wszystko było tak jak było. Niestety wiele wskazuje na to, że tak nie będzie. Staram się mierzyć z tą nową normalnością, choć wcale mi się ona nie podoba.

Dokładnie o tym wiem że nie będzie - jak było. Ale nowa normalność to nie znaczy inwigilacja i naruszanie prywatności przez demokratycznie wybrane władze bez kontroli i nadzoru.

kierepka commented 4 years ago

Dodałbym za #63 , #59 i innymi, że najgorsze w tym jest to, że są małe szanse, że aplikacja będzie skuteczna i poprawnie działająca (czyli działająca np. w 70-80% przypadków poprawnie - optymistycznie). Nawet jak przymusi się w taki czy inny sposób wszystkich do jej używania to i tak będzie miała szereg wad techniczno/technologicznych i po prostu będzie stwarzać problemy (wyłączanie się, brak poprawnego działania na innych telefonach niż referencyjne, itd). Trochę oprócz prostych problemów ze zmianą kolejności (i konieczności) podawania nr telefonu - (bo i tak jak będziesz zarażony to powinieneś podać..), braku jawności algorytmu oceny, to dochodzi właśnie szereg problemów związanych z technologią. Jak miałoby działać to wszyscy musieliby używać określonych telefonów - reszta złomowana powinna być...

elmozgo commented 4 years ago

Czy jest możliwość pogodzenia ze sobą dwóch modeli czyli opcjonalna rejestracje numerem telefonu (nagradzana np. ikonka na glownym ekranie: zarejestrowany ✔️)?

jasisz commented 4 years ago

@elmozgo Tak, ale sama rejestracja telefonem to nie jest główny defekt tego systemu, to tylko początek problemu. Głównym defektem jest to, że identyfikatory generowane są i przypiswane użytkownikowi po stronie serwera, a nie po stronie telefonu. Tam też dzieje się orzekanie kto jest zagrożony. Dałoby się natomiast tak to przerobić, że telefon po samodzielnym sprawdzeniu że jest potencjalnie zarażony z automatu przesyła tę informację (o ile podano numer telefonu) i zapisywany jest w specjalnej bazie podejrzanych.

tajchert commented 4 years ago

Przeczytałem dyskusję i nadal nie wiem dlaczego krytyczne jest by ProteGo bazował na numerze telefonu.

Z readme "Numer telefonu wymagany jest po to aby GIS mógł się skontaktować z użytkownikiem, który był narażony na kontakt z osobami chorymi." - jeśli to jest jedyne uzasadnienie (a innego nie widzę) to powinno być to opcjonalne. Jeśli będzie wymagane to wiem po sobie że na pewno jej nie zainstaluję ani nie będę rekomendował innym - więc sam sens aplikacji straci na znaczeniu bo będzie ją miało mniej osób, a to powinien być nadrzędny cel.

Z komentarzu Kuby Lipińskiego: "Do tego trzeba mieć skuteczny sposób dotarcia do osoby zagrożonej. Chat w aplikacji lub notyfikacja w telefonie, takimi sposobami nie są." - są, i powinny być jedynymi, lub fallbackiem jak nie ma numeru telefonu. "Nie wierzę w ogóle w używanie ProteGO do inwigilacji. Państwo już ma, a za chwilę będzie miało wszystkie narzędzia aby robić to bez pytania o zgodę lub instalowanie żadnych appek." - tak, ale te zbiory danych (przynajmniej liczę że) podlegają surowym wytycznym kto i na jakiej zasadzie może mieć dostęp. Czy ProteGo spełnia takie wytyczne i czy będzie publicznie komunikować każde użycie danych przez dowolne służby? Wątpię.

elmozgo commented 4 years ago

Wydaje mi się ze najgorsze co możne się przytrafić temu projektowi to przypięcie latki "WŁADZE INWIGILUJĄ". Zgadzam się z tym, ze wtedy absolutnie nikt nie zainstaluje aplikacji.

Mam parę pytań, staram się poznać zalety generowania identyfikatorów na serwerze:

Czy w modelu w którym identyfikatory są generowane po stronie telefonu, jest możliwość by GIS na podstawie wywiadu z zarażonym sam decydował które ze spotkanych identyfikatorów maja być skierowane na kwarantanne (długość spotkania, zawężenie 14 dniowego okna itp)?

Czy jest możliwość techniczna by cześć użytkowników aplikacji miała generowany identyfikator po stronie serwera (była bardziej inwigilowana, np ze względu na branże zawodowa), a cześć (większa) po stronie aplikacji? Czy nie naruszało by to prywatności "niezarejestrowanych" użytkowników?

potiuk commented 4 years ago

@elmozgo Tak, ale sama rejestracja telefonem to nie jest główny defekt tego systemu, to tylko początek problemu. Głównym defektem jest to, że identyfikatory generowane są i przypiswane użytkownikowi po stronie serwera, a nie po stronie telefonu. Tam też dzieje się orzekanie kto jest zagrożony. Dałoby się natomiast tak to przerobić, że telefon po samodzielnym sprawdzeniu że jest potencjalnie zarażony z automatu przesyła tę informację (o ile podano numer telefonu) i zapisywany jest w specjalnej bazie podejrzanych.

Tak - to prawda dało by się tak zrobić. Nawet wykorzystując obecny mechanizm rejestracji można by anonimowo potwierdzać numer telefonu (w sensie - nie przypisywać numeru telefonu do unikalnego identyfikatora aplikacji) i użyć go dopiero wtedy kiedy osoba będzie zagrożona - aplikacja mogła by wykryć taką sytuację i zapisać numer telefonu do kontaku z GIS i bez wysyłania unikalnych identyfikatorów. @jakublipinski -> zdaje się że to rozwiąże zarówno problem z prywatnością o którym piszę, jak i da dokładnie taką samą możliwość kontaktowania się z GIS-em

Przytua commented 4 years ago

Podejście PPTP zakłada, że informacja o tym, że ktoś z nas był w pobliżu osoby chorej trafia tylko na nasze urządzenie i to my jesteśmy odpowiedzialni za poddanie się kwarantannie. Doniesienia z ostatnich tygodni pokazują, że w Polsce takie podejście po prostu nie działa. Wiele osób rygorystycznie przestrzega zaleceń, ale jest wielu freerider’ów, których przekonują dopiero mandaty.

Cieszę się @jakublipinski że wprost przyznajesz, że aplikacja nie ma anonimowo informować użytkownika o tym, że potencjalnie miał styczność z zarażoną osobą, a ma być narzędziem służącym do wymuszania kwarantanny na osobach potencjalnie (ale nie wiadomo czy na 100%) zarażonych

Nie wierzę w ogóle w używanie ProteGO do inwigilacji. Państwo już ma, a za chwilę będzie miało wszystkie narzędzia aby robić to bez pytania o zgodę lub instalowanie żadnych appek.

Skoro rząd ma wszystkie narzędzia, żeby robić to czego ludzie najbardziej się obawiają bez użycia aplikacji, to tym bardziej ta aplikacja powinna służyć przede wszystkim użytkownikom. A żeby służyła użytkownikom, musi być w pełni bezpieczna i nie dawać możliwości nadużycia. Tutaj niestety są ogromne możliwości nadużycia. Ja z kolei mogę nie wierzyć, że na serwerze rządowym jest zdeployowany kod z repozytorium https://github.com/ProteGO-app/backend i nie jestem w stanie tego w żaden sposób zweryfikować. Kod źródłowy aplikacji niestety pozostawia wiele wątpliwości co do anonimowości i daje pole popisu do nadużyć, a proponowane tutaj, dużo bezpieczniejsze rozwiązania są odrzucane - to już daje wiele do myślenia i raczej zniechęca do używania tej aplikacji.

Mając bardzo ograniczone zaufanie do rządu, zdecydowałem się robić ten projekt pro-bono, transparentnie, na GPLu z otwartym kodem źródłowym. Jeśli ta inicjatywa zostanie zablokowana, rząd po prostu wynajmie jakiś software house, zapłaci i dostanie to co chce. Będziemy dekompilować aplikację aby dowiedzieć się co się w niej dzieje. Nie będzie żadnego forum gdzie będzie można sobie krytykować wdrożone rozwiązanie. Pewnie nigdy już nie uda się zrobić niczego open-source dla administracji.

Skoro masz ograniczone zaufanie do rządu, to poprowadź ten projekt tak, aby rząd nie miał żadnej możliwości nadużycia, czy deanonimizacji użytkowników. Narazie osobą, która blokuje tą inicjatywę jesteś Ty - przez upieranie się przy złych rozwiązaniach i odrzucanie lepszych (a nawet prostszych w implementacji) i bezpieczniejszych. W ten sposób działasz na korzyść rządu a nie obywateli, a obywatele są niestety oszukiwani.

Z kilku źródeł dostałem już informację o fajnej społecznej, bezpiecznej aplikacji wraz z tym linkiem: https://www.gov.pl/web/cyfryzacja/zycie-po-kwarantannie--przetestuj-protego Dziwię się, że ludzie tak ufają informacjom rządowym, kiedy w innych tematach mocno je kwestionują. Tak czy inaczej chwytliwe słowa kluczowe (anonimowa - "Aplikacja uniemożliwia „śledzenie” użytkownika", open source - "Kod źródłowy aplikacji ProteGO dostępny jest pod adresem...") zadziałały, a niestety są oderwane od rzeczywistości.

@potiuk @jasisz w ostateczności można stworzyć własną wersję aplikacji, opartą o bezpieczne rozwiązania (to nie jest skomplikowana appka) i rozpromować ją bez pomocy rządu.

elmozgo commented 4 years ago

Jak najszybciej trzeba rozwiązać #46. Potrzebna jest lista funkcjonalności od Ministerstwo Cyfryzacji, które są przez nich wymagane by aplikacja była promowana przez rząd. MC ma kanały promocji, a powszechność aplikacji jest kluczowa w jej sukcesie.

Na podstawie listy będzie można określić czy jest możliwość implementacji z zachowaniem prywatności użytkowników i każdy będzie mógł podjąć decyzje czy chce ten projekt wspierać. Bez tej wiedzy nie ma sensu się teraz spierać i oskarżać o chęć inwigilacji.

potiuk commented 4 years ago

@potiuk @jasisz w ostateczności można stworzyć własną wersję aplikacji, opartą o bezpieczne rozwiązania (to nie jest skomplikowana appka) i rozpromować ją bez pomocy rządu.

Bez pomocy rządu będzie ją trudno rozpropagować, ale może faktycznie jest to niezły pomysł. Chociaż jeśli spojrzysz wyżej to zdaje się da się to zrobić bezpiecznie i bez możliwości de-anonimizacji danych - wszystko zgodnie z założeniami projektu, bez generowania ID na serwerze, z rejestracją numeru telefonu (wszystko chronione otwartym kodem i licencją GPL). Pozostanie tylko kwestia otwartości algorytmu do decyzji - ale wydaje się że kwestię rejestracji można rozwiązać bezpiecznie (@jakublipinski -> co ty na to?)

blipinsk commented 4 years ago

Jak dla mnie problem anonimowości i prywatności można rozwiązać szczyptą kryptografii.

Luźny pomysł: rozwiązanie oparte na w protokole Diffiego-Hellmana i zapisywaniu kluczy spotkań, a nie użytkowników. Konkretne algorytmy do ustalenia.

  1. Aplikacja przy instalacji generuje klucz prywatny.
  2. Przy pomocy klucza prywatnego aplikacja generuje klucz publiczny (ponownie generowany w jakichś tam odstępach czasowych).
  3. Po BT rozgłaszany jest klucz publiczny.
  4. Na urządzeniach nie zapisujemy kluczy publicznych innych użytkowników, a jedynie obliczone identyfikatory spotkań (własny klucz prywatny „zmieszany” z kluczem publicznym spotkanej osoby)
  5. Zakładając dwustronną „wymianę” kluczy publicznych, takie same identyfikatory spotkań trafiają na oba urządzenia.
  6. Osoba zarażona, która dobrowolnie udostępnia swoje dane ProteGO, wysyła na serwer unikalne identyfikatory spotkań, które dalej rozsyłane są na urządzenia innych użytkowników.
  7. Urządzenia użytkowników porównują „niebezpieczne” spotkania z własną bazą i jest odpowiedź czy użytkownik był wystawiony na osobę zarażoną.

Sygnalizowane problemy z konwersacji:

  1. Śledzenie użytkowników
    • Klucze publiczne re-generowane.
    • Trzymanie identyfikatorów spotkań, a nie użytkowników
    • Kryptograficznie utrudnione odzyskanie danych spotkanego użytkownika z przechowywanego identyfikatora spotkania
  2. Decentralizacja
    • Nic nie musi być trzymane globalnie.
    • Klucze mogą być generowane lokalnie
    • Weryfikacja spotkania odbywa się na indywidualnym urządzeniu użytkownika końcowego.

Teoretyczne problemy:

AlexF0rtune commented 4 years ago

@blipinsk Ja mam pytanie - załóżmy, że ktoś się zarazi, czy to oznaczałoby, że musielibyśmy wszystkie "potencjalne zarażone spotkania" dostarczyć do wszystkich użytkowników aplikacji, bo nie widzę chyba innej opcji? Jeśli tak, to może ja się mylę ale złożoność dla N zarażonych i M osób w systemi ( gdzie M to celowo 100% populacji a N może być też pesymistycznie zakładając nawet parę dobrych procent populacji ), to zbliżamy się do złożoności kwadratowej dla N rzędu 40 milionów osób. Nawet zakładając zarazonych na poziomie 1% populacji, to jest 0.0001 40 000 000 40 000 000 czyli 40 milionow razy 4 tysiace paczek informacji, jeśli dobrze liczę :) i to może być problem ze zeskalowaniem, a wraz ze wzrostem procenta zarażonych problem pogłębia się dalej kwadratowo. ;)

blipinsk commented 4 years ago

@blipinsk Ja mam pytanie - załóżmy, że ktoś się zarazi, czy to oznaczałoby, że musielibyśmy wszystkie "potencjalne zarażone spotkania" dostarczyć do wszystkich użytkowników aplikacji, bo nie widzę chyba innej opcji? Jeśli tak, to może ja się mylę ale złożoność dla N zarażonych i M osób w systemi ( gdzie M to celowo 100% populacji a N może być też pesymistycznie zakładając nawet parę dobrych procent populacji ), to zbliżamy się do złożoności kwadratowej dla N rzędu 40 milionów osób. Nawet zakładając zarazonych na poziomie 1% populacji, to jest 0.0001 40 000 000 40 000 000 czyli 40 milionow razy 4 tysiace paczek informacji, jeśli dobrze liczę :) i to może być problem ze zeskalowaniem, a wraz ze wzrostem procenta zarażonych problem pogłębia się dalej kwadratowo. ;)

Tak. Tak jak sygnalizowałem, to jest luźny pomysł (który kminiłem przed chwilą przez kilkanaście minut 😊 ) i na pewno wymagałby doszlifowania (szczególnie w kwestii optymalizacji wysyłanych danych).

Potencjalnych rozwiązań jest kilka, np.:

  1. Rozsyłanie kluczy publicznych z ostatnich 14 dni zamiast identyfikatorów spotkań i ich lokalna rekalkulacja i porównanie z db (w zależności od algorytmu rotacji k.publicznego, to może być kilka-kilkanaście kluczy). To już optymalizacyjnie jest w sumie takie samo zagadnienie jakby rozsyłać identyfikator zarażonego użytkownika (a nie spotkania).
  2. 🤔 Rozesłanie (jednego) klucza prywatnego i "łamanie" identyfikatorów spotkań? (to już wymagałoby potwierdzenia ze strony kogoś kto jest "świeższy" z krypto ode mnie 😉 )
  3. ...
jasisz commented 4 years ago

@blipinsk Publikowanie czegoś w rodzaju filtrów Blooma, zamiast identyfikatorów.

blipinsk commented 4 years ago

@blipinsk Publikowanie czegoś w rodzaju filtrów Blooma, zamiast identyfikatorów.

@jasisz Wątpie czy w tym przypadku można pozwolić sobie na porównanie z marginesem błędu (wyniki fałszywie pozytywne lub fałszywie negatywne)

jasisz commented 4 years ago

@blipinsk Kwestia do dyskusji, użycie takiej formy pozwoliłoby z kolei obejść część zastrzeżeń dotyczących prywatności przy publikowaniu gołych identyfikatorów. Ciągle istnieje problem, o którym pisałem tutaj: https://github.com/ProteGO-app/specs/issues/34#issuecomment-608983845

AlexF0rtune commented 4 years ago

@jasisz w momencie kiedy ogłaszanoby identyfikatory spotkań osoby zarażonej, nikt oprócz danej osoby zarażonej i danej osoby spotkanej które się spotkały nie wiedziałyby, że to dokładnie spotkanie to źródło potencjalnego zarażenia, bo identyfikatory są tajne , ustalane za pomocą diffiego-hellmana, czy coś pominąłem?

Przytua commented 4 years ago

Jeżeli spotkałeś np danego dnia tylko jedną osobę, to teoretycznie możesz się dowiedzieć kto cię zaraził - wiesz to bo masz id spotkania i możesz je sobie jakoś lokalnie np zapisać z datą itd

AlexF0rtune commented 4 years ago

Ale czy tego nie wiesz zawsze? W sensie, jak ja rozumiem, atakujący zawsze będzie mógł - teoretycznie - przy spotkaniu wiedzieć kogo spotyka i jaki ten człowiek ma identyfikator spotkania? Czy liczymy na to, że jeśli będzie w grupie osób więcej niż jedna, to ludzie nie będą wiedzieć kogo spotykają?

jasisz commented 4 years ago

Nie, że tutaj jest złe miejsce, ale podobne dyskusje się odbywają pod zaproponowanym protokołem, różne ciekawe rzeczy ludzie piszą i przestawiają różne ciekawe pomysły https://github.com/DP-3T/documents/issues

tajchert commented 4 years ago

Publikacja dzienna paczek spotkań od osób "zarażonych" - aplikacja pobiera paczki aż trafi na taką którą już pobrała wcześniej (taki diff ale o rozdzielczości dziennej), paczki na jakimś S3 czy podobnym rozwiązaniu (pewnie darmowe kredyty nie będą problemem) a adresy paczek i ich SHA1 z API. Podoba mi się rozwiązania z kluczami i generowaniem kluczy spotkań :)

jakublipinski commented 4 years ago

Drodzy, jeszcze raz dziękuję za wszystkie głosy. Dostałem właśnie informację z Ministerstwa Cyfryzacji, że podanie numeru telefonu może być opcjonalne. Ewentualne kontrowersje wokół prywatności mogą spowodować więcej szkody, niż korzyści z możliwości skontaktowania się z każdym. Dodam zaraz issues do tego.

Chętnie przyjmę PRy poprawiające nasze opisy.

Mam nadzieję, że ta niesamowita energia, która wyzwoliła się w tym wątku zostanie teraz spożytkowana na rozwój projektu.

Czy ten i pozostałe wątki mówiące o podobnych sprawach można już zamknąć?

jasisz commented 4 years ago

@jakublipinski Super to słyszeć! Biorę się chyba za podpisywanie tego papióra ;)