Contact-tracing appka ZostanZdravy, ktora je odporucana aj na webe korona.gov.sk a bezi momentalne pod NCZI, ma extremne slabu ochranu sukromia a velmi naivny protokol.
Kazde zariadenie ma jeden staticky identifikator ktory broadcastuje na BLE.
Kazde zariadenie pravidelne odosle vsetky identifikatory ktore videlo (a kedy ich videlo, aj ked toto sa uz s novou verziou zmenilo) na centralny server.
Toto teda poskytuje centralnej autorite kompletny graf kontaktov vsetkych osob ktore to pouzivaju, este aj s dlzkou kontaktu. Uplne nepotrebne mnozstvo dat ktore sa tam niekde hromadi.
Zdrojaky su nastastie verejne:
Autori nevyzeraju ze by toto narusanie sukromia brali dostatocne vazne:
Uz momentalne existuju mature protokoly na contact-tracing ktore zachovavaju sukromie: DP-3T ktore maju aj open-source Android + iOS SDK s otvorenym backendom. Je za tym silny background ludi ktory su v security & privacy uz dlho.
Chcel by som tento protokol potlacit do tejto appky a do toho co bezi u NCZI (autori sa zaroven stazuju, ze nasadenie niecoho takehoto na NCZI bude zase trvat mesiace). Ako na to? Nemam cas na to implementovat to cele sam, zaroven nevidim do poziadavok NCZI a nemam sajnu co kto, kedy, kde mergne alebo nie.
Podla tej diskusie na githube vyzera, ze na tom naopak pracuju.
Kedze Sygic na tom zacal makat a vlastne to spravil skor ako boli nejake prve zmienky o decentralizovanom contact tracingu, tak je tato geneza pochopitelna.
Oprav ma ak sa mýlim, ale Apple/Google má prístup k private APIs a funkcionalite, ktorú žiaden iný framework nemôže “extendovat”, či? Proste buď to vyriešiš cez app + Apple/Google API, alebo vlastné riešenie (a la Francúzsko), ktoré je ale funkcionalitou a ochranou súkromia úplne v praveku.
Jediný problém ktorý private APIs riešia lepšie ako môže riešiť appka je broadcastovanie BLE správ v iOS keď je appka v backgrounde, kde prísne iOS nastavenia nedovoľujú takú aktivitu a môže to byť len pasívne. Toto obmedzienie Apple API dovolí obísť tým že sa bude používať práve to exposure-notification API. Možno ešte môžu robiť zopár vecí ohľadom BLE broadcastovania lepšie voči batérii, anonymite tých broadcastov na nižšej vrstve atď. ale sú to detaily.
Ako “extension” som to myslel na úrovni protokolu (teda dokumenty BLE-spec a crypto-spec), ktorý je definovaný ako nejaké zariadenia ktoré si vymieňajú BLE správy, ktoré majú nejaký obsah a potom je tam nejaký server ktorý funguje ako sprostredkovateľ a tie zariadenia komunikujú aj s ním. Na tejto úrovni je DP-3T extension Google/Apple protokolu, respektíve Google/Apple protokol je veľmi podobný jednej skoršej verzii DP-3T, a teda má podobné vlastnosti až na vlastnosti ktoré DP-3T pridalo odvtedy.
Články z DSL som videl, ale neoveroval som claimy ktoré majú (bug s počítaním profileID z BLE správy v prvom článku a bug s vymazávaním dĺžky a času kontaktu v druhom článku), kritika z pohľadu súkromia je však určite na mieste.
Zmluva pravdepodobne neexistuje, Sygic systém vyvinul dobrovoľne a potom ho pod NCZI/ÚVZ posunul.
K dátam od ľudí sa dostanú tak, že si ľudia ich aplikáciu nainštalujú, to je celé, je to Bluetooth-based contact-tracing appka.
Stáť to nebude asi nič? Sygic vyvíja (zatiaľ) dobrovoľne.
Prílohy sú super a poskytujú zaujímavé info o plánovanej spolupráci s operátormi, toto ale nesúvisí priamo s contact-tracing aplikáciou. Ide o systém, ktorý bude fungovať paralelne na výpomoc manuálnemu contact-tracingu, kedy si po súhlase infikovanej osoby NCZI vyžiada od operátorov 14 denný log lokácii danej osoby (s periodicitou 6h) a využijú ho aby osobe pripomenuli kde a s kým bola. Zabezpečené to vyzerá docela fajn, exchange dát cez SFTP nieje žiadne terno, ale je to asi najrýchlejšie čo vedeli vymyslieť, je tam šfrovanie aj autentizácia cez pubkeys, ktoré si vymenia offline, tak snáď fajn, až na pár preklepov o tom kto čo robí s ktorým kľúčom (s verejným kľúčom sa ťažko podpisuje ).