Closed potiuk closed 4 years ago
Super! Czy pozostałe jakoś uda się też ustalić? Czy pozostałe też uda się dodać jako opcje (praca w tle jako opcja - tj "wyciągamy telefony")?
Cieszę się bardzo @jakublipinski że to idzie w tę stronę i że MC dało się przekonać.
Będę na pewno uważnie obserwował to w którym kierunku idzie projekt.
Dodatkowo (tu informacja dla osób zainteresowanych tym wątkiem) będę też próbował zaangażować się w inicjatywę Szefa Eurpejskiego Urzędu Ochrony Danych osobowych - https://www.bbc.com/news/technology-52189551 i dam znać na pewno czy coś z tego wyniknie dla ProteGo. Było by bardzo dobrze sprawić żeby podobne rozwiązania były zrobione jednolicie w całej Europie z poszanowaniem prywatności i danych osobowych.
ProteGO jest na bardzo zaawansowanym etapie rozwoju - jeszcze lepiej by było gdyby udało się - ProteGo przedstawić jako referencyjną (a może nawet bazową) implementację dla innych państw. Bardzo chętnie o to powalczę i na pewno to że kwestie prywatności będą traktowane bardzo poważnie może w tym pomóc.
@jakublipinski -> najchętniej zrobiłbym to razem z Tobą.
Na DP-3T pojawiło się ciekawe FAQ - https://github.com/DP-3T/documents/blob/master/FAQ.md Myślę, że warto iść "w tę stronę" jaką nakreślili, nawet jeżeli się do końca nie zgadzamy z niektórymi decyzjami.
@jasisz -> zgadzam się . Kilka decyzji podjętych przez DP-3T jest bardzo ciekawych - na przykład Seed zamiast BT ids generowanych na serwerze. To jest bardzo ciekawe rozwiązanie, proste w implementacji i rozwiązujące bardzo dobrze kwestię skali/wydajności całego systemu na poziomie europejskim. Unika się konieczności częstego dystrybuowania unikalnych ephemeral IDs. Super rozwiązanie.
No i to jest bardzo ciekawe:
P7: Why do you call your design "decentralized" while having a backend?
We call our design decentralized because there is not central point of trust for security and privacy. All critical operations: creating EphIDs and matching observations are done locally in each phone. The backend server is only needed to ensure availability. However, it does not maintain any secrets. Attackers do not gain anything by compromising the backend. All privacy-sensitive information is decentralized, and stored on individual’s phones.
Zdecydowanie dobry kierunek
@potiuk Nikt tu chyba nigdy nie proponował generowania ich na serwerze! Od początku rozumiałem to jako generowanie ich na telefonach. Główna kwestia co jest publikowane dla wszystkich, bo do wyboru były: seed, idki zarażonych, idki zagrożonych, identyfikatory spotkań. Oni postawili na seed, co znacząco ułatwia skalowanie, natomiast jest pewnym kompromisem. Ale zgadzam się - trzeba isć w tym kierunku.
W obecnym rozwiązaniu ProteGo ID są generowane na serwerze @jasisz
@potiuk Wiem, zwracałem na to uwagę m.in. tutaj https://github.com/ProteGO-app/specs/issues/34#issuecomment-609627412
Zwróćcie uwagę, że jeśli ephemeral ids
chorych będą wysyłane na telefony, to ktoś może zrobić narzędzie do deanonimizacji zakażonych np. przy pomocy kamerki spiętej ze skanerem Bluetooth. Zbierze pary beacon_id
- zdjęcie osoby
i będzie sprawdzał czy któreś z tych id nie okazało się należeć do chorego.
@jakublipinski Tak będzie również, gdy będzie wysyłany seed, idki "potencjalnie" zarażonych (mogę co chwila go zmieniać w tym celu), albo klucze spotkań (to samo). To jest problem, który poruszyłem tam w https://github.com/DP-3T/documents/issues/13 a który w sumie jest już zasygnalizowany nawet w oryginalnej pracy. Ale ten problem występuje i w ProteGO (w obecnej postaci), chociaż w mniejszej skali: jeżeli wiem, że spotkałem jedną osobę, a dzwoni do mnia sanepid -> wiem że ta osoba była zarażona.
Ciekawy problem faktycznie. skometnowałem to - wydaje mi się że faktycznie w pełni zdecdentralizowany system może to rozwiązać przez kolizje jak pisałeś @jasisz ale jeśli jednak zdecydujemy się na centralizację (w pełni anonimowych i tylko dotyczących chorych) danych na serwerze, to jest to problem do rozwiązania przez odpytywanie tylko o swój Seed.
W świetle tego, że główny, tytułowy cel tego issue został osiągnięty (https://github.com/ProteGO-app/specs/issues/34#issuecomment-609993832) proponuję powyciągać z niego najciekawsze wątki do ew. twórczego rozwinięcia do osobnych issues, a ten zamknąć.
Myślę, że dopóki nie jest to zaimplementowane, to warto mieć ten wątek otwarty. Świetnie że MC się zgadza na opcjonalny numer, ale z zamkniędiem może warto by było poczekać aż będzie to zaimplementowane - wtedy można by nawet w PR-ze umieścić referencję do tego issue i napisać "Closes #..." wtedy issue samo się zamknie.
Ale faktycznie. Skoro już w założeniach aplikacji jest napisane b486959, 694cc66, 336a7bb że ma być anonimowość na początku, to dobrze i można zamknąć. Zawsze można otworzyć albo zrobić nowe issue w przyszłości jeśli by były wątpliwości.
Ale faktycznie. Skoro już w założeniach aplikacji jest napisane b486959, 694cc66, 336a7bb że ma być anonimowość na początku, to dobrze i można zamknąć. Zawsze można otworzyć albo zrobić nowe issue w przyszłości jeśli by były wątpliwości.
Dobra robota! Bo wielu wielu postach wreszcie dopiąłeś swego. Gratuluje i pozdrawiam
@Tarvald Jedyna zmiana, to że system nie wymaga teraz podania numeru telefonu. Poza tym nic się nie zmieniło, dalej jest scentralizowany.
Od początku (praktycznie) a w każdym razie od momentu w który poczytałem o obu systemach, decentralizacja nie była (dla mnie) warunkiem koniecznym. Natomiast anonimizacja tak. Z tego względu jak dla mnie (jeśli #83 będzie zrobione tak by informować użytkownika o utracie anonimowości - dla mnie jest to akceptowalne).
Ciekawostka - w DP-3T dodano alternatywne rozwiązanie, w którym publikowane są Cuckoo filters na EphIDs zarażonych, a nie klucze prywatne zarażonych - https://github.com/DP-3T/documents/blob/master/DP3T%20White%20Paper.pdf
@jasisz -> myślę że pomysł jest całkiem niezły i na pewno warty ekslporacji I być może wdrożenia w przyszłych wersjach aplikacji - najlepsze w tym rozwiązaniu jest to, że dane w systemie mogą być przechowywyane przez max. 2 tygodnie - więc przyszłe wersje aplikacji mogą dość swobodnie zmieniać zarówno algorytmy wysyłania danych, optymalizować etc.
Może warto żebyś założył issue w tym temacie? A może nawet warto by było spróbować to zaimplementować?
@potiuk Jako użytkownik aplikacji nie mam żadnej gwarancji jak długo te dane są przechowywane na serwerze. Jeżeli natomiast mogą być użyte do black boxowych algorytmów - zakładam że mogą być przechowywane już zawsze.
Zgadza się - nie ma. Ale to zupełnie inna kwestia kto i jak będzie o to dbał. Mam nadzieję, że będzie to kwestią publicznej debaty i ustanowienia jakiejś formy kontroli nad tym jak by to miało być docelowo. Po zmianie założeń że numer jest obowiązkowy i jasą na ten temat informacją - jak zaproponowałem w #83 (według mojej, osobistej opinii) system może startować (tak żeby był jak najszybciej przydatny) a dalsze zmiany można wprowadzać w trakcie działania.
To o czym napisałem to tylko informacja że jest możliwa zmianie działania aplikacji już po jej opublikowaniu. I wszelkie pomysły na to będą na pewno rozpatrzone przez zespół ją budujący.
Możesz mieć na ten temat oczywiście inną opinię. Podobnie jak ja mam swoja. Obawiam się że trudno tutaj o jakąś prawdę absolutną i jedynie słuszne rozwiązanie.
@potiuk Trudno mi zrozumieć co się zmieniło od czasu, kiedy pisałeś:
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ść,
Dalej pozostaje problem braku zaufania do oznaczania ludzi "na czerwono" (ta część backendu nie jest otwarta i nie ma też pewności, czy ktoś nie będzie sobie oznaczał ludzi ręcznie). W obecnej sytuacji nie ma możliwości zweryfikowania, czy użytkownik został oznaczony na podstawie "prawdziwego" spotkania.
@jasisz @Przytua -> Bardzo dużo się zmieniło. Jak dla mnie to jest mocno inny świat.
Zmieniła się anonimowość (pod warunkiem dobrego zaadresowania #83). I z tego wynika, że numer telefonu nie jest "kluczem" rozwiązania. Dzięki temu nie można argumentować "ale już nie możemy tego zmienić bo numer telefonu jest "kluczem głównym". W obecnym rozwiązaniu wiadomo że bez numeru wszystko będzie działać - i to jest super.
Im szybciej zacznie sie zbierać dane, tym lepsze wypracuje się rozwiązanie. To że możliwe jest anonimowe działenie i nie ma potrzeby używania numeru telefonu jako klucza identyfikującego instalację gwarantuje według mnie że rozwiązanie jest otwarte na przetwarzanie danych anonimowo.
Poza tym pierwsze dwa tygodnie od zainstalowania wszyscy mają status "pomaranńczowy" - niezależnie od tego co będzie na serwerze - i w międzyczasie można dyskutować nad potencjalnymi rozwiązaniami algorytmów.
"_Poza tym pierwsze dwa tygodnie od zainstalowania wszyscy mają status "pomaranńczowy" - niezależnie od tego co będzie na serwerze - i w międzyczasie można dyskutować nad potencjalnymi rozwiązaniami algorytmów." - błąd; przez pierwsze dwa tygodnie nie będzie nikogo zielonego. Czerwoni mogą być już następego dnia
Przeczytaj proszę uważnie @tomekziel : za https://github.com/ProteGO-app/specs/
Pomarańczowy - nie minęły jeszcze 2 tygodnie od zainstalowania aplikacji, nie mamy wystarczająco dużo danych aby określić status. Należy zachować ostrożność.
Ktoś może być zdiagnozowany dzień po instalacji i stanie się czerwony.
Ale to nie przychodzi z serwera tylko wynika z diagnozy konkretnej osoby zidentyfikowanej podczas diagnozy. To nie jest robione przez algorytm.
Wszystkie statusy przychodzą z serwera. W kodzie nie ma nigdzie oznaczania osoby jako czerwonej. Nie ma nawet walidacji czy dany przez nią proof jest poprawny, bo ta też jest rozumiem "ręczna". Kontakty tej osoby według specyfikacji też mają status zmieniony na czerwony, a to robi już niewidzialny algorytm. Sugerujesz że przez te pierwsze tygodnie aplikacja nie będzie robiła nic opróćz zbierania danych, nawet jeżeli ktos bedzie zarażony?
@potiuk Warto przeczytać również głos krytyczny nt. PEPP-PT napisany przez ITO i proponowany w zamian alternatywny protokół TCN (następca STRICT) bardziej dbający o prywatność. Koalicja TCN ma już 10 członków, może warto doń dołączyć?
Tak z ciekawości, bo nie znalazłem tych informacji nigdzie indziej - kto podejmuje decyzje projektowe i jaką rolę pełni MC? Z wypowiedzi ministra wynika model "my robimy z udziałem społeczności", ale już w GitHubie tak to nie wygląda.
@tomekziel Wygląda na to, że Polidea, w osobach @jakublipinski i @potiuk - trudno natomiast mieć pewność, bo członkowie ProteGO na GitHubie nie są publiczni.
Nie do końca. Ja nie jestem w projekcie, znam go dobrze, ale w większości jednak tylko komentuję i zwracam uwagę na pewne problemy - ale nie podejmuję decyzji w projekcie. Decyzje są podejmowane zgodnie z zapisem tu: https://github.com/ProteGO-app/specs/blob/master/CONTRIBUTING.md#kto-podejmuje-decyzje-w-tym-projekcie
Decyzje są podejmowane
"Są podejmowane" ale nie wiadomo, przez kogo. Łącznik słucha ministerstwa i podejmuje decyzje? Ministerstwo podejmuje i przekazuje ją łącznikowi? Decydują ojcowie założyciele i informują ministerstwo?
Myślę że bardzo ważne, rozsądnie podane i wyważone argumenty @cloudyfuel. Z wieloma się zgadzam. Tak jak pisałem w #83 - anonimowość jest faktycznie bardzo zależna od sposoby komunikacji (dark pattern o którym wspomniałeś) i mam nadzieję że będzie to rozwiązane dobrze. Faktycznie przekonanie do nie-obowiązkowości numeru to duża sprawa - tak jak to już wielokrotnie pisałem.
Co do social scoring mam trochę inną opinię. Social scoring to jednak co innego, ale gdyby system był faktycznie anonimowy to część "fizyczna" statusu umożliwiająca obecność w miejscach które wiążą się z dużymi ryzykami, to może być całkiem ważny element walki z pandemiią. Ja to porównuję bardziej z tym w jako sposób wchodzi się na stadiony - osoby z zakazem stadionowym nie wchodzą. Oczywiście to zupełnie co innego, ale wydaje mi się że bycie osobą zagrożoną (jeśli nie da się tym indywidualnie manipulować) powinno skutkować jakąś formą ograniczeń. Cała idea tej aplikacji polega na tym że te ograniczenia nie mają dotyczyć wszystkich (tak jak teraz) tylko najbardziej pawdopodobnej grupy osób.
Co do szybkości wypuszczenia - fakt, super szybko. Ale też w tym systemie jest wiele niewiadomych - i adopcja na pewno nie będzie szybka. Dane też "ważne" są 2 tygodnie więc to co będzie za 2 tygodnie może być czymś innym niż teraz. I jak opisano w . Dlatego uważam że (jeśli anonimowość jest zachowana) - im szybciej zacznie się analizować faktyczne działanie systemu - tym lepiej.
A co do decyzji @tomekziel -> :shrug: . Nic więcej niestety nie wiem.
https://www.apple.com/newsroom/2020/04/apple-and-google-partner-on-covid-19-contact-tracing-technology/ Na razie brak konkretów i na pewno z tego powodu bym nie wstrzymywał prac nad ProteGO ale na pewno warto mieć mocno na oku. Bo jeśli to ma być rozwiązanie na po etapie "lockdown" to musi być międzynarodowe (lub opart o wspólny standard).
Szczegóły są pod https://www.apple.com/covid19/contacttracing/ - wgłębiam się.
Nic odkrywczego - z grubsza to samo co DP-3T z tą różnicą, że są pośrednie klucze "dzienne".
Przeczytałem już. W pełni zdecentralizowany algorytm garściami czerpiący z wszystkich dyskusji (Seed Tracking Key + generowany Daily Tracking Key + generowane BT identifiers co 15 minut). Żadne dane zdrowych ludzi nie trzymane na serwerze. Daily Keys żeby zminimalizować wymianę danych. Faktycznie nic odkrywczego - ale za to zebranie wszystkiego co najlepsze w jednym miejscu. Dodatkowo - algorytm matchowania chorych ludzi na telefonie. API dla każdego kraju który chciałby zaimplementować swoje apki - API w pełni anonimowe - dla każdego kraju ale również dla Google'a i Apple'a.
Jedni drugim będą patrzeć na ręce i wszyscy im też będą patrzeć. Plus docelowo integracja na poziomie OS (na razie nie) która zapewni niskie zużycie baterii, brak usypiania etc.
Pozamiatane.
@potiuk Nie mogę znaleźć, ale jak widzę tutaj użytkownik sam oznacza się jako "chory" i decyduje się na udostępnienie danych? W sensie zastanawiam się czy system nie jest podatny na false positive bez weryfikacji zgłoszeń chorych (osoba zdrowa oznaczy się jako chora "dla żartu").
są klucze dostarczane przez "medical Authorities" - żeby wysłać takie dane trzeba te klucze dostarczyć. Standard w tego typu rozwiązaniach.
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.)
A może, jak przystało na aplikację, która ma zapewnić prywatność i spowodować zaufanie obywateli nic nie powinna wysyłać sama tylko poprosić użytkownika o odbycie dobrowolnej kwarantanny i poprosić o skontaktowanie się z GIS / sanepidem (wyświetlając potrzebny numer / dane kontaktowe)?
Zamordyzmem nic nie osiągniecie ponieważ ludzie mają jeszcze możliwość żyć bez smartfonów albo bez tej aplikacji. Sama będę nawływała do pozbycia się telefonów jeżeli będzie zamordyzm typu "mususz zainstalować jeżeli masz androida lub iOS" a w przypadku zamordyzmu typu "rejestracja na numer telefonu", "wyślemy twój numer instytucji X" będę odradzała używanie tego g...a. Tak g...a, bo tam można nazwać w tym PiSowskim kraju tego typu działania.
A może, jak przystało na aplikację, która ma zapewnić prywatność i spowodować zaufanie obywateli nic nie powinna wysyłać sama tylko poprosić użytkownika o odbycie dobrowolnej kwarantanny i poprosić o skontaktowanie się z GIS / sanepidem (wyświetlając potrzebny numer / dane kontaktowe)?
No właśnie tak to miało być dla osób które numeru nie podadzą (numer/dane kontaktowe). A nawet powiem więcej - zmiana statusu na "zagrożony" powinna stanowić przepustkę do natychmiastowych i darmowych testów (pisałem o tym w #54). Ale jeśli podanie numeru miałoby być jako opt-in, to myślę że ta opcja z wysyłaniem numeru jest bardzo ok - zwłaszcza w przypadku osób starszych. Wyobrażam sobie, że wielu osobom (na przykład mojej teściowej) wnuczek czy syn mógłby zainstalować aplikację i podać numer po instalacji, żeby w razie czego to GIS mógł zadzwonić i porozmawiać z taką osobą/przekonać ją do kontaktu. Powtarzam - jeśli tylko nie byłby to wspomniany "dark pattern" który nachalnie "wymuszałby" podawanie numeru.
Obecne API Google/Apple zostawia swobodę w tym jak kontakt "Health Authorities" z osobami instalującymi aplikację miałby wyglądać - i dobrze, bo w różnych krajach może być różnie. Jednocześnie uniemożliwia łączenie nawet podanego numeru z konkretnymi BT ID (do tego aplikacja nie ma dostępu przez API). Więc zaimplementowanie tego "opt-in" wygląda na całkiem sensowne rozwiązanie, a nie zamordyzm.
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