Contact tracing
czyli aplikacją w wirusa
Trzy słowa o mnie
disclaimer: nie jestem specjalistą od BLE
Po
Co
To
Ale czy na pewno?
Metody w aplikacjach
- Lokalizacja (np. GPS, dane operatorów)
- Bluetooth
- Kody QR
- Dane z płatności
- Bilety
Jak
To
Działa
Scentralizowane protokoły
Zdecentralizowany* protokół
Dlaczego *?
Problem pojedynczego spotkania
prywatność vs skuteczność
Exposure Notification
Google i Apple
Klucze w GAEN
d6be898e46222af5531a3f5d03036ffd17166ffd7c2ed741a85180d623b04107ed1abf6633150f29ab2ea9
d6be898e - access address
4622 - header BLE (m.in. flaga random MAC)
2af5531a3f5d - MAC (5d:3f:1a:53:f5:2a)
ab2ea9 - CRC
ProteGo Safe
krótka historia
Wszystko w Twoich rękach
Publikowanie kluczy
Ataki
Głównie z https://eprint.iacr.org/2020/399.pdf
Backend impersonation
Deanonymizing infected person
-
paparazzi
- militia
- konkurencja
- heatmapa
Device tracking
def link_devices(devices: List[Device]) -> None:
device_to_delete = None
for old_device in devices:
if datetime.now() - old_device.last_time < INACTIVE_DEVICE:
continue
for device in devices:
if device.first_time < old_device.last_time:
continue
if device.first_time - old_device.last_time > TOO_LONG_GAP:
continue
if abs(old_device.last_rssi - device.first_rssi) > RSSI_THRESHOLD:
continue
device_to_delete = old_device
print(f"{old_device.service_data}) is now {device.service_data}")
break
if device_to_delete:
devices.remove(device_to_delete)
Linking devices
Relay/Replay
Czy używać?
Oby świadomie!
Contact Tracing
By Szymon Teżewski
Contact Tracing
- 1,566