Умната криптография зад Find My функцията на Apple

Apple вече показаха iOS 13 на по-нетърпеливите бета тестери. Въпреки многото нововъдения, най-значимата нова функция (поне за нас), остава новата Find My функцията, която на теория би направила откраднатите macOS и iOS устройства неизползваеми. Вече писахме за нея на този линк.

Ето как работи

В следващите iOS и macOS, Find My приложението ще излъчва Bluetooth сигнали от устройствата на Apple, дори когато са офлайн (нямат интернет свързаност или са в режим “sleep”). Съответно, близките до тях, други iOS и macOS устройства – ще докладват за местоположението им. Както се досещате, това ще улесни откриването на откраднатия Ви лаптоп или смартфон.

Цялата тази работа със споделянето на локацията на всички i-устройства обаче, би могла да се обърне срещу Apple. За да се предпази от евентуално обвинения, че следи локацията на всеки i-потребител, а вероятно и за да не се налага да “докладва” за местоположението на клиентите си пред различните агенции в САЩ, Apple създават сложна система за криптиране за i-устройствата, която не им дава достъп до местоположението на различните устройства.

Според официалното изявление от Apple на WWDC 2019, “има end-to-end криптиране, като се използват малки частици данни, които не влияят на живота на батерията, преноса на данни и поверителността на потребителите”.

Пред Wired обаче (чрез Arstechnica), компанията разкрива и как всъщност работи “криптираната и анонимна” система.

Ключът е в това, че се изисква притежанието на поне две устройства на Apple. Всяко от тях, излъчва постоянно променящ се ключ, който се улавя от близките Apple устройства и се ъплоудва към облака на компанията.

Това беше частта със сигурността. Следва анонимността.

Само второто Apple устройство на въпросния собственик, притежава ключа за декриптиране и съответно само то, може да декриптира информацията и да покаже местоположението на първото устройство. Това е всичко.

Тази система, на теория би трябвало силно да ограничи кражбите на Apple устройства от една страна и да премахне възможността на други потребители, да създават “история за местоположението на всеки следен потребител”.

Криптографията на Find My обаче е още по-сложна. Ето още детайли:

  • Когато настройвате Find My за първи път, се генерира така нареченият “частен ключ”, който се споделя към всичките Apple устройства на потребителя (end-to-end криптирана и само те могат да притежават този ключ)
  • Всяко от устройствата, генерира публичен ключ. Както и при други системи за криптиране с “публичен ключ”, той може да се използва за криптиране на данни, така че никой да не може да ги декриптира без съответния “частен ключ” (в този случай, наличен само и единствено в Apple устройствата на собственика). Именно този “публичен ключ” ще се предава към всички iOS и macOS устройства през Bluetooth и използвайки техния интернет, ще се изпраща към облака на Apple
  • Този “публичен ключ” често се сменя с нов по математически метод, така че да няма нищо общо с предишния публичен ключ, но така все още да може да се декриптира с “частния ключ”. Apple не коментират на какви интервали от време се променя “публичния ключ”, но при всяка смяна, става все по-трудно за хакерите следящи Bluetooth сигналите.
  • Ако крадец отмъкне MacBook-а Ви например, последният дори затворен (sleep) и не-свързан към интернет, ще излъчва своя “публичен ключ” през Bluetooth. Ако в близост има iPhone потребител или друг MacBook, без никаква активност от собственика му, той ще приеме сигналите на откраднатия MacBook (публичния ключ) и ще шифрира данните за местоположението с помощта на взетия “публичен ключ”
  • iPhone или MacBook на собственика в близост до открадния лаптоп, качва две неща на сървърите на Apple – криптираното местоположение на откраднатия MacBook и hash на публичния ключ, който ще послужи като идентификатор. Apple нямат “частния ключ” на собственика на откраднатия лаптоп и не могат да декриптират информацията. Същото се отнася и всички останали “видове хакери”.
  • Пострадалият собственик, решава да открие откраднатия си MacBook. За целта, той използва второто си Apple устройство, което на практика притежава същия “частен ключ” и генерира същата серия от постоянно сменящи се “публични ключове”. Процесът по откриване на местоположението на открадният MacBook се състои в ъплпудването на същия hash на публичния ключ, като идентификатор който трябва да съвпадне с ъплоуднатия вече в облака на Apple hash на откраднатия лаптоп.
  • След като открие съвпадение, облакът на Apple връща криптираното местоположение към второто устройства на собственика. То, имайки частния ключ, декриптира данните и получава местоположението на откраднатия MacBook.

В случай, че Ви изглежда сложно, имайте предвид, че това е опростената версия на Find My протокола. Apple коментират, че тепърва ще го доусъвършенстват и подобряват, преди да го пуснат в macOS Catalina и iOS 13 по-късно тази година.