fbpx
9.3 C
София

Специализираният AOP чип дава възможност за намирането дори и на изключения iPhone

Оригиналът е на naehrdine от blogspot.com

Най-четени

Даниел Десподовhttps://www.kaldata.com/
Ежедневен автор на новини. Увличам се от съвременни технологии, оръжие, информационна безопасност, спорт, наука и концепцията Internet of Things.

В iOS 15.0 се появи новата функция Find My. Мобилните телефони на Apple вече могат да бъдат намирани дори и когато iPhone е изключен. Нека да се задълбочим върху работата на тази нова технология и да разберем дали тази функция може да създаде проблеми за безопасността.

Преди доста време забелязах тази функция на един от моите iPhone, на който бе инсталирана бетата версия на операционната система iOS 15. Ето го и скрийншота, който направих през месец юли тази година. Оттогава интерфейсът съвсем леко бе променен.

Обикновените потребители не можаха веднага да забележат този нова функция. Причината може би е в това, че е необходимо да се извърши обновяване до iPhone 15.0, да се включи геолокацията на iPhone, да се осъществи логване в акаунта на потребителя, след това е необходимо той да се присъедини към мрежата Find My и т.н. А накрая трябва да се извърши едно от най-странните действия – нещо, което днес никой не прави. Трябва да се изключи iPhone. След първото съобщение за тази интересна функция в социалната мрежа Twitter, популярността на тази тема мигновено нарасна. Нараснаха и слуховете относно това, как би могла да бъде реализирана и как всъщност е реализирана тази функция в iPhone.

При iOS 15.0 смартфонът може да бъде намерен, дори и когато е изключен.

Изобщо не мога да разбера какво означава, че iPhone може да бъде намерен след като бъде изключен. По всичко личи, че „изключен“ вече изобщо не означава, че е изключено захранването. Мобилното устройство явно продължава да работи и да извършва някакъв обмен на данни на късо разстояние с много ниска консумация на енергия.

Always-on Processor (AOP)

За AOP няма почти никаква информация. Но е добре известно, че във всички чипове и вградени компютърни устройства, произвеждани от Apple, работи операционната система в реално време RTKitOS. в iPhone също се използва AOP, само че там той има специална роля. Той е свързан с почти всички останали чипове на смартфона на Apple. За някои чипове той изпълнява съвсем опростени задачи, като например, управление на захранването, но за други той се използва като прозрачен прокси, който при необходимост събужда операционната система iOS.

В крайна сметка непрекъснато работещият процесор с действията си наистина води до икономия на електрическа енергия. И още, iOS може да да бъде събуден, докато AOP очаква хардуерни събития. Пример за подобно събитие е информацията от сензора за движение. Телефонът може да бъде отключен без да се докосва екрана и нито един негов бутон.

Налична е информация, че AOP управлява и Siri. Известно е още, че AOP взаимодейства с модулите за безжична връзка и с техните интерфейси за управление на захранването.

Повечето от драйверите на ядрото на iOS имат доста опростена структура. Ако в чипа работи RTKitOS, то това се вижда в лога ioreg. Така например, в показания по-долу листинг се вижда Rose – чипът U1 на базата на Ultra-wideband.

Въпреки, че това не става в самото ядро на операционната система, AOP използва копия на тези драйвери. Така например, регулирането на честотния диапазон на U1 има дублираща реализация, работеща без nearbyd и която може изолирано да се изпълнява в самия AOP чип.

Дори и в даден чип да не работи RTKitOS, то AOP има възможност да се включи към него. Така например Bluetooth чипа в iPhone 11, 12 и 13 се произвежда от Broadcom и в него се използва операционната система ThreadX. Въпреки това AOP на iPhone има частичен контрол върху Bluetooth. Въпреки че той не използва същата схема на RTKitOS, той може да подава захранване на Bluetooth чипа с помощта на драйвера spmi-bluetooth.

Да подчертаем, че това е много по-различно от ситуацията с HomePod mini и Watch. В тях се използва Bluetooth чип, който се произвежда от самата Apple и има кодово име Marconi. Процесорът AOP може да управлява Marconi с помощта на драйверите marconi-bluetooth и aop-marconi-bt-control.

Стартиране на Bluetooth приложения, когато iPhone е „изключен“

Всичко, което е необходимо на iPhone за включването на функцията Find My, докато телефона уж е изключен, е съвсем опростеното управление на захранването, както и на Bluetooth чипа, който може да изпраща advertisements Bluetooth LE. Нещо повече, тези advertisements изискват частния криптиращ ключ, който е част от Apple ID в iPhone.

Чиповете на Broadcom много приличат на чиповете Cypress. SDK на Cypress поддържа работата с външни IoT приложения, на които е необходим само Bluetooth чипа без каквито и да било допълнителни хостове. Тези приложения се изпълняват в потока ThreadX и носят името mpaf. Нека да проверим, дали някъде във вградения софтуер на Bluetooth се използва потока mpaf. За тази цел можем да изтеглим IPSW iOS 15.0, да монтираме най-големия .dmg файл и да се прехвърлим в папката /usr/share/firmware/bluetooth. Файловете bin са пачове, зареждани чрез драйвера Bluetooth PCIe. Започвайки от iPhone 11 те съдържат няколко реда за дебъгери. След като стартираме grep mpaf * получаваме следния списък със съвместими устройства:

  • Фамилия iPhone 11, BCM4378B1 (Hei, Moana, Tala)
  • Фамилия iPhone 12, BCM4387C2 (Almond, Cashew, Hazelnut, Pistachio)
  • Фамилия iPhone 13, BCM4387C2 (Acacia, Camellia, Lilac, Mimosa)
  • Фамилия iPad Air 2020, BCM4387C2 (Pomegranate)
  • Някои други серии iPad, BCM4387C2 (Baobab, Boab, Rambutan)

Интересно е, че в iPhone SE 2020 с кодово име Fiti, в който също се използва чипа BCM4378B1, липсва пачът mpaf. Аз обнових iPad Air 2020 до iOS 15.0, но въпреки наличието на съответните пачове за Pomegranate, програмният прозорец на Find My не се показва. Освен това, на друг iPhone, логнат в същия акаунт, няма обновяване на местоположението. Тоест, има разлика между поддържащите тази функция устройства и чиповете, които биха могли да поддържат тази функционалност. Напълно е възможно е в близко бъдеще Apple да започне да добавя нови устройства с поддръжката на Find My, когато те са уж изключени.

Пачът mpaf реализира приложението lpm, Навярно неговите букви означават low-power mode (режим на ниска консумация) и именно то реализира онлайн услугата gatt Bluetooth LE. Всичко това може да се види в редовете по-долу, които преди мен бяха открити от моя колега plonk:

tier2/Olympic/PCIE/Pistachio_CLPC_OS/USI/bld/A_4387C2_ROM/tier2/patch/bcs/mpaf_layer_patch.o.patch2.c
tier2/Olympic/PCIE/Pistachio_CLPC_OS/USI/bld/A_4387C2_ROM/tier2/patch/mpaf/apps/lpm/lpm_app.o.patch2.c
tier2/Olympic/PCIE/Pistachio_CLPC_OS/USI/bld/A_4387C2_ROM/tier2/patch/mpaf/apps/lpm/lpm_app_gatt.o.patch2.c
tier2/Olympic/PCIE/Pistachio_CLPC_OS/USI/bld/A_4387C2_ROM/tier2/patch/mpaf/apps/lpm/lpm_app_fsm.o.patch2.c

Тези пачове бяха добавени в iOS 15 и преди това ги нямаше. Тук няма да описвам да се извършва анализа на тези обновявания, как да се сваля двоичната информация от ROM и т.н. Тези редове са съвсем достатъчни, за да се убедим, че функционалността Find My е реализирана в Bluetooth чипа.

Има ли връзка между частния криптиращ ключ и чипа U1?

Една птичка ми каза, че телефонът записва поредицата от предварително пресметнати криптографски значения в UWB чипа, но птичката не може да замени документацията.

В AirTag криптиращият ключ е записан в чипа U1. Apple не току така нарича nRF в AirTag с името Durian (Дуриан). Компанията не го харесва и не му вярва особено, но за сметка на това той е евтин и консумира малко електрическа енергия. Най-често U1 е в режим на хибернация, като само от време на време се пробужда.

Но в iPhone системата е съвсем друга. В iPhone криптиращите ключове са записани в Secure Enclave (SE). В една от по-ранните компилации на U1 дори могат да се видят няколко реда, предназначени за дебъгери, използвани за обмяна на криптиращите ключове между U1 и SE, но в следващите компилации тях вече ги няма. Тоест, птичката е била права относно AirTag, но не и за iPhone.

Прехвърлянето на частните криптиращи ключове

След инсталирането на Bluetooth профила за откриване и отстраняване на грешки при iPhone 12 с iOS 15.1b2, логът idevicesyslog преди приключване на работа изглежда по следния начин:

Sep 30 22:02:58 BlueTool[126] <Notice>: Completed handling of dictionary-xpc event

Sep 30 22:02:58 bluetoothd[89] <Notice>: BlueTool finished running «hci reset» command — output was «0x0e 0x04 0x01 0x03 0x0c 0x00»

Sep 30 22:02:58 BlueTool[126] <Notice>: Completed handling of dictionary-xpc event

Sep 30 22:02:58 bluetoothd[89] <Notice>: BlueTool finished running «hci cmd 0xFE62 0x06 …» command — output was „<decode: missing data>“

Sep 30 22:02:59 bluetoothd[89] <Notice>: BlueTool finished running «hci cmd 0xFE62 0x06 …» command — output was „<decode: missing data>“

Sep 30 22:02:59 BlueTool[126] <Notice>: Completed handling of dictionary-xpc event

Sep 30 22:02:59 bluetoothd[89] <Notice>: BlueTool finished running «hci cmd 0xFE62 0x06 …» command — output was „<decode: missing data>“

Sep 30 22:02:59 BlueTool[126] <Notice>: Completed handling of dictionary-xpc event

Sep 30 22:02:59 bluetoothd[89] <Notice>: BlueTool finished running «hci cmd 0xFE62 0x06 …» command — output was „<decode: missing data>“

Sep 30 22:02:59 BlueTool[126] <Notice>: Completed handling of dictionary-xpc event

Sep 30 22:02:59 bluetoothd[89] <Notice>: BlueTool finished running «hci cmd 0xFE62 0x06 …» command — output was „<decode: missing data>“

Sep 30 22:02:59 BlueTool[126] <Notice>: Completed handling of dictionary-xpc event

Sep 30 22:02:59 bluetoothd[89] <Notice>: BlueTool finished running «hci cmd 0xFE62 0x07 0x00 0x01» command — output was «0x0e 0x05 …»

Sep 30 22:02:59 BlueTool[126] <Notice>: Completed handling of dictionary-xpc event

Sep 30 22:02:59 bluetoothd[89] <Notice>: BlueTool finished running «bcm -s 0x0f,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00» command — output was „“

Sep 30 22:02:59 BlueTool[126] <Notice>: Completed handling of dictionary-xpc event

Sep 30 22:02:59 bluetoothd[89] <Notice>: BlueTool finished running «hci cmd 0xFE62 0x04» command — output was «0x0e 0x05 0x01 0x62 0xfe 0x00 0x04»

Sep 30 22:02:59 backboardd(libEDR)[66] <Notice>: ScheduleSetBrightnessIn_block_invoke: enter WaitUntil late 0.126834 millisecond (333 / 333)

Sep 30 22:02:59 backboardd[66] <Notice>: brightness change:0.67814 reason:BrightnessSystemDidChange options:<private>

Sep 30 22:02:59 SpringBoard(FrontBoard)[62] <Notice>: Shutdown task «NotifyBluetooth» complete after 1.59s

Sep 30 22:02:59 SpringBoard(CoreUtils)[62] <Notice>: Invalidate CID 0x2B760001

Sep 30 22:02:59 SpringBoard(FrontBoard)[62] <Notice>: Shutdown tasks complete.

Sep 30 22:02:59 SpringBoard(CoreUtils)[62] <Notice>: Invalidated

Sep 30 22:02:59 bluetoothd[89] <Notice>: BT_FW_OK flag is set. Entering LPM…

Sep 30 22:02:59 bluetoothd(CoreUtils)[89] <Notice>: LPM entry took 1578ms

Sep 30 22:02:59 bluetoothd[89] <Notice>: Sending BT Stats to CoreAnalytics for com.apple.BTLpmManagerStats

Sep 30 22:02:59 bluetoothd[89] <Notice>: PowerManager power state is 0

Sep 30 22:02:59 bluetoothd[89] <Notice>: PowerManager power state is 0

Sep 30 22:02:59 bluetoothd[89] <Notice>: PowerManager power state is 0

Sep 30 22:02:59 bluetoothd[89] <Notice>: PowerManager power state is 0

[disconnected]

Вижда се, че в самия край Bluetooth чипа съобщава, че преминава в режим с ниска консумация на енергия (LPM). Веднага след това iPhone уж се изключва.

Безопасност и конфиденциалност

Новата функция Find My за първи път даде възможност на широката публика да разбере за AOP чипа, както и за възможността на автономна работа на Bluetooth чипа.

Ако чисто теоретично предположим, че някой е хакнал вашия iPhone и ви шпионира, новата функция му дава възможност той да покаже екрана „Изключено захранване“, но без iPhone да е изключен. Никога не считайте, че това устройство е изключено, докато не са му извадени акумулаторните батерии или още по-добре, ако не е минало през блендер. Да си припомним, че АНС преди време хакна телевизор на Samsung и му добави фалшив режим за изключване, за да може да шпионира хората.

Find My протоколът има мощни механизми за защита на вашата конфиденциалност. Той бе изцяло анализиран и стана ясно, че може да осигури висока информационна безопасност. Но ако се опасявате от изтичане на лична информация, можете просто да изключите Find My в своя iPhone.

Абонирай се
Извести ме за
guest
5 Коментара
стари
нови
Отзиви
Всички коментари
TGR
TGR
2 месеца

Хахахахаах
Тези с ябълките, хептен ще вземат да ги следят и таргетират.
Ако си мислите, че тази алчна компания са направили това, само във ваш интерес – много се лъжете.
Ако помислите, огризките имат повече изгода да си купите нов телефон, ако изгубите старият, а не да си го намерите обратно. Плюс факта , че трябва да са дали определени средства за R&D първоначално.
Айде сега помислете, докато телефона ви е изключен, дали няма да събира данни, за това кои BT устройства са в близост и също кои Wi-Fi мрежи са видими и т.н.

Purko
Purko
Отговор на  TGR
2 месеца

Една комшийка ми каза, че с този чип могат и да те ваксинират срещу C0WIT19, и да не разбереш….

Wnkr
Wnkr
Отговор на  TGR
2 месеца

Пак ще ти го повторя не екпй колко к какво събира а кой колко и на кого продава.

дам
дам
2 месеца

За най-големите параноици Apple ще пусне на пазара специално аксесоар торбичка от изолационно фолио от наноалуминий – iShield. Ще е серифицирано от NASA и ще гарантира максимална EMI изолация, т.е. няма да минават никакви радиовълни. Ще е на специална цена, само 49.99 $.

На който ми е скъпо, може да ползва заместител – алуминиево кухненоско фолио от най-близкия магазин. Ще трябва да направи поне 3 врътки около апарата. Не е толкова фешън, но гарантирано работи. 😉

Ай Рян
Ай Рян
2 месеца

Те Свидетелите на Жопс нямат какво да крият, даже и с паднала батерия пак ще могат да се тагват къде са били. Ово е стандарт…

Нови ревюта

Подобни новини