https://www.apple.com/covid19/contacttracing
- Bluetooth specification
- Будет изменяться, предупреждают в заголовке
- Используется BLE (Bluetooth low energy) для детектирования ближайших смартфонов
- Каждому устройству присваивается ID “Tracing ID”
- С помощью этого Tracing ID каждый день создается “Daily Tracing ID” (детерминированным образом)
- Proximity ID - создается каждые ~15мин ч помощью “Daily Tracing ID”
- Каждое устройство шлёт свой “Proximity ID” всем окружающим (200ms)
- Приватность обеспечивается:
- Не включается location service, все используют только Bluetooth
для определения ближайших устройств
- Proximity ID меняется каждые 15 минут, и без Daily Tracing ID нельзя его привязать к человеку
- Чужие Proximity ID обрабатываются локально на устройстве, и никуда не передаются.
- Пользователь определяет, хочет ли он участвовать в отслеживании контактов
- Если человек болен - он сам решает, посылать ли на сервер свои ключи.
- Cryptography specification
- Определения, как генерировать ключи
- Если человек заболел - он может послать набор своих Daily Tracing ID ключей (“Diagnosis Keys”).
- Сервер рассылает этот набор всем
- Каждое устройство генерирует набор “Proximity IDs” из “Diagnosis Keys”
и проверяет, не было ли этих ключей замечено рядом
- Все результаты не посылаются никуда, остаются локально.
- Из твиттера:
- Теоретически, каждое устройство может сохранять не только Proximity ID, но и MAC адрес отправителя
Потом у тебя будет полный набор устройств (MAC-адресов) людей, которые больны. PROFIT.
- Ещё проблема - сохранять кучу данных.
- Ещё проблема - эти данные будут идти на каждый телефон во всём мире, DoS + prank