В понеделник на конференцията WWDC компанията Apple . В отличие от стандартната , която разчита на инфраструктурата на мобилната мрежа и GPS на загубеното устройство, функцията „Find My” е способна да открива дори устройства без без SIM-карти и GPS. Например, лаптопи, или дори , прикрепени към всякакви предмети (Apple намекна за това само в широк смисъл).
Идеята е да се превърне цялата съществуваща мрежа от iPhone в мащабна краудсорсингова система за проследяване на околните обекти. Всеки активен iPhone постоянно ще проследява съобщения от BLE маячници, които идват от други устройства. Когато открие един от тези сигнали, той маркира пакета със своите GPS координати и го изпраща на сървърите на Apple. Това е страхотно за разсеяни като мен, които постоянно губят вещи: ако оставя раницата си в туристически автобус в Китай, рано или късно някой ще открие сигнала й и веднага ще разбера къде да я намеря.
(Трябва да се отбележи, че идеята не е измислена от Apple. Всъщност компании като работят от доста време. И да, те трябва да се притесняват за бизнеса си).
Ако описанието по-горе не ви впечатли, позволете ми да зададете въпроса, който трябва да си зададете: как тази система ще защити от масови нарушения на конфиденциалността?
Нека изброим потенциалните проблеми:
- Ако устройството постоянно излъчва сигнал BLE, който недвусмислено го идентифицира, всички имат (още един) начин да ви проследяват. Маркетолозите вече използват за това MAC адреси на WiFi и Bluetooth, а функцията Find My създава още един канал за проследяване.
- Тя също така разкрива тези, които участват в процеса. Сега тези хора ще изпращат на Apple своето текущо местоположение (възможно е те вече да го правят). Но сега ще им се наложи да споделят тази информация също с непознати, които „губят“ своите устройства. Това може да завърши лошо.
- Мошениците също могат да започнат активни атаки, при които фалшифицират местоположението на вашето устройство. Въпреки че това изглежда малко вероятно, хората винаги успяват да изненадат.
Добрата новина е, че Apple твърдят, че системата наистина осигурява надеждна конфиденциалност чрез разумно прилагане на криптография. Но, както обикновено, те отказват да съобщят детайли за реализацията. Енди Грийнберг в Wired разказа частична с думи на Apple, която позволява много да се разбере. за съжаление, този разказ все още оставя огромни пропуски. Именно тях ще се опитам да запълня, като предложа най-вероятно описание на това, какво наистина прави Apple.
Голяма уговорка: много от нещата могат да се окажат напълно погрешни. Аз задължително ще актуализирам статията, когато Apple разкрие повече.
Някои основни проблеми
За да изложим сценариото, трябва да въведем в картината няколко устройства. За вдъхновение ще вземем телевизионния сериал от 50-те години „Леси“.
Първото устройство, което ще наречем Тими, „изгубено“. То Тими разполага с BLE радиопредавател, но няма GPS или интернет свързаност. За щастие, той вече е сдвоен с второ устройство, наречено Рут, която иска да го намери. Нашият главен герой е Леси: това е iPhone на случаен (и незнаещ за това) непознат, който (да предположим) има поне периодично интернет свързване и надежден GPS. А също така Леси е много добро момиче. Мрежовите устройства взаимодействат чрез сървърите на iCloud на Apple, както е показано по-долу:

(Тъй като Тими и Рут трябва да бъдат сдвоени предварително, вероятно и двете принадлежат на един и същ човек. Споменах ли, че трябва да купите два устройства на Apple, за да работи системата? Това напълно удовлетворява Apple).
Разглеждаме система за сигурност, така че първият въпрос е: кой е лошият герой?? В этой ситуации ответ неприятный: потенциалният злодей може да бъде всеки. Ето защо проблемът е толкова интересен.
Запазването на анонимността на Тими
Най-важният аспект на системата е, че не трябва да се позволява на непознати да проследяват Тими, особено когато не е изгубено. Това изключва някои доста очевидни решения, например, когато устройството Тими просто извиква: „Здравей, казвам се Тими, моля, обадете се на майка ми Рут и кажете, че съм изгубен“. Това също така изключва практически всеки неизменен статичен идентификатор, дори ако е непрозрачен и изглежда случайным.
Последното изискване е съставено от тъжен опит с услуги, които злоупотребяват със статични идентификатори (например, ) за проследяване на движенията на устройствата. Apple се бори с това проследяване посредством рандомизация на идентификаторите, като MAC адреси. Ако Apple добави статичен идентификатор за проследяване за „Find My“, всички проблеми само ще се задълбочат.
Това изискване означава, че всички съобщения, които се предават Тими, трябва да бъдат непрозрачни. По-специално, съдържанието на тези съобщения трябва относително често да се променя на нови стойности, които не могат да бъдат свързани със старите. Един от очевидните начини запареното устройство да разпознае такива съобщения е да накара Тими и Рут да се съгласи на дълъг списък от произволни „“ за Тими, и нека Тими всеки път да избира различен.
Това наистина помага. Всеки път, когато Леси види някое (неизвестно) устройство, предаващо идентификатор, тя няма да знае дали то принадлежи на Тими: но може да го изпрати на сървърите на Apple заедно със собственото си GPS местоположение. В случай, че Тими се загуби, Рут може да помоли Apple да намери всички възможни псевдоними Тими. В тази ситуация никой извън Apple няма да узнае този списък, а дори и самата Apple ще го научи само след като някой се загуби, така че този подход предотвратява повечето решения за проследяване.
Малко по-ефективен начин да реализирате тази идея е да използвате криптографска функция (например MAC или хеш функция), за да генерирате списък от псевдоними от едно кратко „семе“, копие от което е записано Тими и Рут. Това е добре, защото намалява обема на съхраняваните данни. Но за да намери Тими, Рут , все пак трябва да изпрати всички псевдоними — или семе — на компанията Apple, която трябва да търси всеки псевдоним в своята база данни.
Скриване на местоположението на Леси
Описаният подход с псевдонимите трябва добре да скрива идентичността Тими от Леси и дори от Apple (до момента, когато Рут започне да го търси). Но има голям недостатък: той не скрива GPS координатите Леси.
Това е лошо, поне по няколко причини. Всеки път, когато Леси ако открие устройство със сигнал BLE, тя трябва да предаде на сървъри на Apple своето актуално местоположение (заедно с псевдонима, който вижда). Това означава, че Леси постоянно информира Apple къде се намира. И освен това, дори ако Apple обещава да не съхранява самоличността Леси, резултатът от всички тези съобщения е огромна централизирана база данни, която показва всички GPS местоположения, където е открито някое устройство на Apple.
Обърнете внимание, че масивът от тези данни сам по себе си предоставя много информация. Да, идентификаторите на устройствата могат да бъдат псевдоними — но това не прави информацията безполезна. Например, ако някое устройство на Apple предава едни и същи координати вечер, това разкрива вероятния адрес на пребиваване на човека.
Очевидният начин да се предотврати разкриването на тези данни от Apple е да се шифроват, за да видят информацията само тези, на които действително им е необходимо да знаят местоположението на устройството. Ако Леси получи съобщение от Тими, то единственият човек, който наистина трябва да знае местоположението Леситова е Рут. За да запази тази информация в тайна, Леси трябва да шифрова своите координати с публичен ключ. Рут.
Разбира се, възниква въпросът: как Леси ще получи ключа Рут? Очевидное решение для Тими — да извиква публичния ключ Рут във всяка своя транслация. Но това ще създаде статичен идентификатор, който отново ще позволи проследяване. Тими.
За да се реши този проблем, трябва да има Рут е било много несвързани публични ключове,за да може Тими да предоставя различни ключове при всяка транслация. Един от вариантите е да накара Рут и Тими да генерира много различни публични ключови двойки (или да генерира много такива двойки от обща семена). Но това е досадно, а Рут ще се наложи да се съхраняват много секретни ключове. И идентификаторите, споменати в предишния параграф, могат да бъдат получени чрез хеширане на всеки публичен ключ.
Леко по-добрият подход (който Apple може да използва или не) предвижда рандомизация на ключовете. Това е характеристика на някои криптосистеми, като : тя така че той по никакъв начин да не бъде свързан с оригинала. Най-добрата част от тази функция е, че Рут може да използва един секретен ключ независимо от съществуващата рандомизирана версия на нейния публичен ключ, използван за криптиране.

Всичко това води към окончателната идея за протокола. Във всяка транслация Тими передава нов псевдоним и рандомизирана копия на публичния ключ Рут. Когато Леси получава транслация, тя криптира своите GPS-координати с публичния ключ и изпраща криптирано съобщение до Apple. Рут може да изпрати псевдонимите Тими на сървърите на Apple, и ако Apple намери съвпадение, ще може да получи и декриптира GPS координатите.
Решава ли това всички проблеми?
Неприятната истина е, че няма идеално решение за много странни гранични ситуации. Например, какво, ако Тими има зли намерения и иска да накара Леси да разкрие местоположението си на Apple? Какво, ако Старият Смитърс се опита да отвлече Леси?
В крайна сметка отговорът на този въпрос е, че сме направили всичко възможно: всички останали проблеми трябва да бъдат изключени от модела на заплаха. Понякога дори Леси знае кога да спре.
Източник: habr.com
