GxzUBrBMEEakW66FSTGICNpZ9jjSH2aNOIf0tajj
Bookmark

Cara Cari iPhone hilang saat dimatikan

Keajaiban Prosesor yang Selalu Aktif: Cara Cari Milik Saya bekerja saat iPhone dimatikan

Tanbenews - iOS 15.0 memperkenalkan fitur baru: iPhone dapat ditemukan dengan Cari Milik Saya meskipun iPhone dalam keadaan "mati". Bagaimana cara kerjanya? Apakah ini masalah keamanan?

Saya melihat fitur ini lebih awal di salah satu iPhone saya dengan iOS 15 beta. Berikut screenshot yang saya ambil di bulan Juli. Antarmuka pengguna berubah sedikit sejak saat itu.



Butuh sedikit lebih lama sampai publik menyadari fitur ini ada. Seseorang perlu memperbarui ke iOS 15.0, menggunakan iPhone yang memiliki layanan lokasi yang diaktifkan, akun pengguna yang masuk, berpartisipasi dalam jaringan Temukan Saya, dll. Dan hal paling aneh yang tidak dilakukan siapa pun akhir-akhir ini: Seseorang harus mematikan iPhone. Tapi begitu Twitter tahu, ini lepas landas. Dan begitu juga rumor bagaimana ini diterapkan.




Prosesor Selalu Aktif (AOP) Apple

Hanya ada sedikit dokumentasi publik tentang AOP. Semua chip dan berbagai perangkat tertanam yang diproduksi Apple menjalankan sistem operasi waktu nyata, yang disebut RTKitOS. AOP pada iPhone tidak terkecuali. Namun, AOP memiliki peran khusus. Ini terhubung ke hampir setiap chip lain di iPhone. Untuk beberapa chip, ia hanya melakukan tugas-tugas dasar seperti manajemen daya, dan untuk chip lainnya, ia bertindak sebagai proxy transparan yang membangunkan iOS saat dibutuhkan.


Dengan cara ini, prosesor yang selalu menyala sebenarnya menghemat energi. iOS dapat tidur sementara AOP menunggu peristiwa perangkat keras. Contoh sederhananya adalah sensor gerak. Tanpa menyentuh tombol apa pun di iPhone, layar akan menyala.


Pencarian Internet cepat mengungkapkan bahwa bahkan Siri diimplementasikan di AOP . Jika Anda tidak terlalu mendalami detail teknis, Anda dapat melewati sisa bagian ini dan hanya perlu mengetahui bahwa AOP juga terhubung ke chip nirkabel dan antarmuka manajemen dayanya :)


Sebagian besar driver kernel iOS mengikuti struktur sederhana. Jika sebuah chip menjalankan RTKitOS, ini terlihat di output ioreg . Misalnya Rose, chip U1 Ultra-wideband, muncul dalam daftar ini.



Saat ini ada di kernel iOS, AOP mengimplementasikan salinan driver ini. Misalnya, rentang U1 memiliki implementasi duplikat yang berfungsi tanpa yang terdekat dan dapat berjalan mandiri di dalam AOP.



Bahkan jika sebuah chip tidak didasarkan pada RTKitOS, AOP dapat terhubung dengannya. Chip Bluetooth di iPhone 11, 12 dan 13 dibuat oleh Broadcom dan didasarkan pada sistem operasi ThreadX. Meskipun demikian, iPhone AOP memiliki beberapa kontrol atas Bluetooth. Meskipun tidak mengikuti skema berbasis RTKitOS yang sama, ia dapat memberi daya pada chip Bluetooth menggunakan  driver spmi-bluetooth .


Perhatikan bahwa ini sangat berbeda dari HomePod mini dan Watch. Mereka berdua menggunakan chip Bluetooth milik Apple, dengan nama sandi Marconi. AOP dapat mengontrol Marconi menggunakan driver marconi-bluetooth dan aop-marconi-bt-control .


Sunting setelah ini dibahas di Twitter: Fakta bahwa AOP dapat mengontrol daya Bluetooth tidak berarti bahwa AOP aktif saat iPhone "mati". Saya berasumsi bahwa ini masalahnya, tetapi ada juga cara lain untuk melakukan ini, seperti pengontrol daya menurut @marcan42 . Pengontrol daya terhubung ke Bluetooth, Wi-Fi, GPS, NFC, dan lainnya. Selain itu, NFC di iPhone mendukung berjalan tanpa iOS untuk fitur kartu ekspres .


Menjalankan aplikasi Bluetooth saat iPhone "mati"


Semua iPhone harus mengaktifkan Cari Milik Saya saat "mati" adalah beberapa kontrol daya dasar serta chip Bluetooth yang dapat mengirim iklan Bluetooth LE. Selain itu, iklan ini memerlukan materi kunci rahasia yang terikat pada ID Apple di iPhone.


Chip Broadcom sangat mirip dengan chip Cypress. Cypress SDK mendukung aplikasi IoT mandiri, yang hanya memerlukan chip Bluetooth dan tanpa host tambahan. Aplikasi ini berjalan di thread ThreadX yang disebut mpaf . Mari kita periksa apakah ada utas mpaf di suatu tempat di firmware Bluetooth. Untuk ini, unduh iOS 15.0 IPSW , pasang file .dmg terbesar , dan jelajahi /usr/share/firmware/bluetooth . File .bin adalah tambalan yang dimuat melalui driver Bluetooth PCIe. Sejak iPhone 11, ini berisi beberapa string debug. Menjalankan grep mpaf * menampilkan daftar kompatibilitas perangkat berikut.

  • Seri iPhone 11, BCM4378B1 (Hei, Moana, Tala)
  • iPhone 12 series, BCM4387C2 (Almond, Mete, Hazelnut, Pistachio)
  • Seri iPhone 13, BCM4387C2 (Akasia, Camellia, Lilac, Mimosa)
  • Seri iPad Air 2020, BCM4387C2 (Delima)
  • Beberapa seri iPad lainnya, BCM4387C2 (Baobab, Boab, Rambutan)

Menariknya, iPhone SE 2020 yang juga memiliki chip BCM4378B1 dan diberi kode nama Fiti ini tidak memiliki patch mpaf . Saya memperbarui iPad Air 2020 ke iOS 15.0, dan meskipun ada tambalan untuk Delima, dialog Temukan Saya tidak ditampilkan. Juga tidak ada pembaruan lokasi untuk iPad di iPhone lain yang masuk ke akun yang sama. Jadi mungkin ada perbedaan pada perangkat dan chip yang saat ini didukung yang secara teori dapat mendukung fitur ini. Apple dapat menambahkan perangkat lebih lanjut di masa mendatang.


The mpaf Patch alat yang lpm aplikasi, yang mungkin singkatan dari mode daya rendah, yang menerapkan Bluetooth LE  GATT layanan. Ini semua dapat ditemukan di string, dan plonk benar-benar melihat ini sebelum saya melihatnya.


  • 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


Tambalan ini diperkenalkan di iOS 15 dan tidak ada sebelumnya. Penamaan sesuai dengan fungsionalitas yang diharapkan. Agar posting blog ini singkat dan menjawab pertanyaan Anda lebih awal, posting blog ini tidak berisi instruksi tentang cara menganalisis patch ini, membuang ROM chip, dll. String cukup untuk mengonfirmasi bahwa fitur ini diimplementasikan dalam chip Bluetooth.

Apakah materi kunci rahasia terkait dengan chip U1?



Di AirTag, materi kunci ini disimpan melalui chip U1. Apple menyebut nRF di AirTag "Durian" karena suatu alasan. Mereka tidak menyukainya, mereka tidak mempercayainya, tetapi murah dan berdaya rendah. Sebagian besar waktu, U1 sedang tidur, dan dari waktu ke waktu mereka membangunkannya.


Ini bukan desain pada iPhone. Di iPhone, kunci disimpan di Secure Enclave (SE). Beberapa build U1 awal bahkan memiliki string debug untuk U1 dan materi kunci pertukaran SE, tetapi ini hilang di build terbaru. Jadi, burung kecil itu benar dalam hal AirTag, tetapi tidak untuk iPhone.

Transfer materi kunci rahasia

Setelah menginstal profil debug Bluetooth ke iPhone 12 di iOS 15.1b2, output idevicesyslog terlihat seperti berikut sebelum shutdown:


30 Sep 22:02:58 BlueTool[126] <Pemberitahuan>: Menyelesaikan penanganan acara dictionary-xpc


30 Sep 22:02:58 bluetoothd[89] <Pemberitahuan>: BlueTool selesai menjalankan perintah "hci reset" - outputnya adalah "0x0e 0x04 0x01 0x03 0x0c 0x00"


...


30 Sep 22:02:58 BlueTool[126] <Pemberitahuan>: Menyelesaikan penanganan acara dictionary-xpc



30 Sep 22:02:58 bluetoothd[89] <Pemberitahuan>: BlueTool selesai menjalankan perintah "hci cmd 0xFE62 0x06 ..." - outputnya adalah "<decode: missing data>"


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: BlueTool selesai menjalankan perintah "hci cmd 0xFE62 0x06 ..." - outputnya adalah "<decode: missing data>"


30 Sep 22:02:59 BlueTool[126] <Pemberitahuan>: Menyelesaikan penanganan event dictionary-xpc


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: BlueTool selesai menjalankan perintah "hci cmd 0xFE62 0x06 ..." - outputnya adalah "<decode: missing data>"


30 Sep 22:02:59 BlueTool[126] <Pemberitahuan>: Menyelesaikan penanganan event dictionary-xpc


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: BlueTool selesai menjalankan  perintah "hci cmd 0xFE62 0x06 ..."  - outputnya adalah "<decode: missing data>"


30 Sep 22:02:59 BlueTool[126] <Pemberitahuan>: Menyelesaikan penanganan event dictionary-xpc


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: BlueTool selesai menjalankan  perintah "hci cmd 0xFE62 0x06 ..."  - outputnya adalah "<decode: missing data>"


30 Sep 22:02:59 BlueTool[126] <Pemberitahuan>: Menyelesaikan penanganan event dictionary-xpc


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: BlueTool selesai menjalankan perintah "hci cmd 0xFE62 0x07 0x00 0x01" - outputnya adalah "0x0e 0x05 ..."


30 Sep 22:02:59 BlueTool[126] <Pemberitahuan>: Menyelesaikan penanganan event dictionary-xpc


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: BlueTool selesai menjalankan perintah "bcm -s 0x0f,0x00,0x02,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00" - outputnya adalah ""


30 Sep 22:02:59 BlueTool[126] <Pemberitahuan>: Menyelesaikan penanganan event dictionary-xpc


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: BlueTool selesai menjalankan perintah "hci cmd 0xFE62 0x04" - outputnya adalah "0x0e 0x05 0x01 0x62 0xfe 0x00 0x04"


30 Sep 22:02:59 backboardd(libEDR)[66] <Pemberitahuan>: ScheduleSetBrightnessIn_block_invoke: masukkan Tunggu Sampai akhir 0,126834 milidetik (333 / 333)


30 Sep 22:02:59 backboardd[66] <Pemberitahuan>: perubahan kecerahan:0.67814 alasan:BrightnessSystemDidChange options:<private>


30 Sep 22:02:59 SpringBoard(FrontBoard)[62] <Notice>: Tugas mematikan "NotifyBluetooth" selesai setelah 1,59 detik


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


30 Sep 22:02:59 SpringBoard(FrontBoard)[62] <Pemberitahuan>: Tugas mematikan selesai.


30 Sep 22:02:59 SpringBoard(CoreUtils)[62] <Pemberitahuan>: Tidak Divalidasi


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: Bendera BT_FW_OK disetel. Masuk LPM...


30 Sep 22:02:59 bluetoothd(CoreUtils)[89] <Pemberitahuan>: Entri LPM membutuhkan waktu 1578 md


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: Mengirim Statistik BT ke CoreAnalytics untuk com.apple.BTLpmManagerStats


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: Status daya PowerManager adalah 0


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: Status daya PowerManager adalah 0


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: Status daya PowerManager adalah 0


30 Sep 22:02:59 bluetoothd[89] <Pemberitahuan>: Status daya PowerManager adalah 0

[terputus]


Langkah terakhir diulang beberapa kali dan dengan banyak angka yang tampak acak. Ini adalah beacon yang dikonfigurasi pada chip Bluetooth. Jadi, saya menyuntingnya dari posting ini. Kemudian, akhirnya, chip Bluetooth memberi tahu bahwa ia masuk ke mode daya rendah (LPM). Segera setelah iPhone mati.


Setiap iklan Temukan Saya  dimulai dengan 0x4c 0x00 0x12 0x19 , dan urutan byte ini juga terdapat dalam output BlueTool . Secara keseluruhan, ada 80 iklan yang ditulis ke chip Bluetooth. Saya tidak menganalisis berapa lama interval waktu untuk setiap iklan, tetapi kemungkinan bukan default 15 menit dan interval yang lebih besar sebagai gantinya.


Jika Anda ingin men-debug ini sendiri, reset HCI adalah informasi terakhir yang terlihat di PacketLogger Apple, sedangkan idevicesyslog masih menampilkan output dan perintah BlueTool .


Dampak keamanan dan privasi

Fitur Find My yang baru adalah pertama kalinya publik besar mengetahui AOP serta kemungkinan chip Bluetooth berjalan secara mandiri.


Dengan asumsi bahwa seseorang meretas iPhone Anda dan memata-matai Anda, mereka mungkin juga menunjukkan layar "matikan" yang benar dan kemudian tidak mematikan iPhone. Jangan pernah percaya perangkat mati, sampai Anda melepas baterainya atau bahkan lebih baik memasukkannya ke dalam Blender. Misalnya, TV Samsung diretas oleh NSA termasuk mode Fake-Off untuk memata-matai orang.


Protokol Temukan Saya memiliki beberapa mekanisme menarik untuk melindungi privasi Anda. Ini telah sepenuhnya direkayasa ulang dan ada implementasi sumber terbuka . Selain itu, aplikasi AirGuard memungkinkan Anda mengidentifikasi suar Find My BLE di Android. Jika Anda takut lokasi bocor melalui Find My, Anda cukup menonaktifkannya di iPhone Anda.


Ketahuilah bahwa chip nirkabel lain juga membocorkan informasi lokasi. Baseband seluler memungkinkan untuk menemukan Anda dan penyedia seluler Anda dapat menyimpan riwayat lokasi, Wi-Fi membocorkan lokasi Anda juga meskipun pengacakan alamat MAC membantu, dan banyak lagi. Ponsel cerdas adalah alat pelacak manusia, apa pun yang terjadi. Perlindungan privasi di Find My hanya menghilangkan satu kemungkinan aspek pelacakan dari banyak aspek.


Bagian yang paling menakutkan mungkin bahwa AOP dan pasti NFC dan Bluetooth LPM memungkinkan vektor baru kegigihan perangkat keras.

Posting Komentar

Posting Komentar