OpenHaystack: Teknologi pembuatan ‘AirTags’ untuk melacak perangkat Bluetooth melalui jaringan Apple
(github.com/seemoo-lab)- OpenHaystack adalah framework untuk melacak perangkat Bluetooth pribadi menggunakan jaringan Find My milik Apple, sehingga pengguna dapat membuat tag pelacak sendiri dengan Mac dan BBC micro:bit atau perangkat yang mendukung Bluetooth
- Saat iPhone di sekitar menemukan iklan BLE dari aksesori OpenHaystack, lokasi akan dienkripsi dan diunggah ke server Apple, lalu OpenHaystack mengunduh laporan lokasi tersebut, mendekripsinya, dan menampilkannya di peta
- Proyek ini merupakan hasil rekayasa balik dan analisis keamanan jaringan Find My oleh TU Darmstadt Secure Mobile Networking Lab, dan kerentanan akses data lokasi CVE-2020-9986 telah diperbaiki oleh Apple
- Aplikasi macOS menggunakan plugin Apple Mail untuk menerima laporan lokasi, dan selama instalasi pengguna harus menonaktifkan Gatekeeper sementara serta membiarkan Mail tetap terbuka saat digunakan
- Karena ini adalah perangkat lunak eksperimental, kodenya belum teruji dan belum lengkap, serta aksesori berbasis firmware yang disediakan menyiarkan kunci publik tetap sehingga mungkin juga bisa dilacak oleh perangkat lain di sekitar
Apa yang dilakukan OpenHaystack
- OpenHaystack adalah framework untuk melacak perangkat Bluetooth pribadi melalui jaringan Find My milik Apple
- Pengguna dapat membuat tag pelacak sendiri lalu menempelkannya pada benda seperti gantungan kunci atau ransel, atau mengintegrasikannya ke perangkat yang mendukung Bluetooth seperti laptop
- Yang dibutuhkan adalah Mac dan BBC micro:bit atau perangkat lain yang mendukung Bluetooth
- Bahkan tanpa koneksi seluler, iPhone di sekitar dapat menemukan aksesori tersebut dan mengunggah lokasinya ke server Apple saat terhubung ke jaringan
Dasar riset dan analisis keamanan
- OpenHaystack lahir dari hasil rekayasa balik dan analisis keamanan terhadap Find My network atau offline finding milik Apple
- Secure Mobile Networking Lab dari TU Darmstadt mulai melakukan analisis setelah Apple mengumumkan offline finding pada Juni 2019
- Sistem ini menggabungkan elemen berikut
-
Iklan Bluetooth
- kriptografi kunci publik
- basis data pusat untuk laporan lokasi terenkripsi
- Dua kerentanan ditemukan selama proses analisis
- Kerentanan paling serius memungkinkan aplikasi berbahaya mengakses data lokasi
- Kerentanan tersebut telah diperbaiki oleh Apple dan diidentifikasi sebagai CVE-2020-9986
- Analisis keamanan dan privasi terkait dibahas dalam makalah PoPETs 2021 Who Can Find My Devices? Security and Privacy of Apple's Crowd-Sourced Bluetooth Location Tracking System
-
Keterbatasan sebagai perangkat lunak eksperimental
- OpenHaystack adalah perangkat lunak eksperimental, dan kodenya belum teruji serta belum lengkap
- Aksesori OpenHaystack yang menggunakan firmware bawaan menyiarkan kunci publik tetap
- Karena itu, aksesori tersebut mungkin juga bisa dilacak oleh perangkat lain di sekitar
- Perilaku ini bisa berubah pada rilis mendatang
- OpenHaystack bukan proyek yang berafiliasi dengan Apple Inc. maupun mendapat dukungan resmi dari Apple
Komponen dan alur penggunaan
- OpenHaystack terdiri dari dua komponen
- Aplikasi macOS: menampilkan lokasi terakhir yang dilaporkan dari perangkat Bluetooth pribadi
- Image firmware: membuat perangkat Bluetooth menyiarkan beacon yang dapat ditemukan oleh iPhone
- Persyaratan sistemnya adalah macOS 11 Big Sur
- Saat membuat aksesori baru, pengguna memasukkan nama dan secara opsional memilih ikon serta warna
- Aplikasi akan membuat pasangan kunci baru untuk mengenkripsi dan mendekripsi laporan lokasi
- Kunci privat disimpan di keychain Mac
- Penerapan perangkat dilakukan dengan menghubungkan perangkat yang didukung ke Mac melalui USB lalu menggunakan tombol Deploy di aplikasi
- Selain penerapan terintegrasi, kunci publik yang digunakan untuk iklan juga bisa disalin untuk penerapan manual
- Dapat memerlukan waktu hingga 30 menit sampai laporan lokasi pertama muncul di peta
- Peta menampilkan lokasi terbaru dari semua item
- Dengan mengklik tiap item, pengguna bisa melihat kapan pembaruan terakhir diterima
- Laporan lokasi dapat diperbarui dengan tombol reload
Plugin Mail dan cara instalasi
- Aplikasi OpenHaystack memerlukan plugin kustom untuk Apple Mail agar dapat mengunduh laporan lokasi dari server Apple
- Plugin ini bekerja dengan mewarisi hak Apple Mail yang dibutuhkan untuk menggunakan API privat
- Selama proses instalasi, Gatekeeper harus dinonaktifkan sementara
- Matikan Gatekeeper dengan
sudo spctl --master-disable - Aktifkan
OpenHaystackMail.mailbundledi Preferences → General → Manage Plug-Ins pada Mail - Setelah itu, nyalakan kembali Gatekeeper dengan
sudo spctl --master-enable
- Matikan Gatekeeper dengan
- Disebutkan bahwa plugin ini tidak mengakses data pribadi lain seperti email
- Saat laporan lokasi sedang diunduh, aplikasi OpenHaystack berkomunikasi dengan plugin, jadi Mail harus tetap terbuka
Cara kerja jaringan Find My
- OpenHaystack menjelaskan sistem offline finding milik Apple dalam empat tahap
-
Pairing
- Untuk menggunakan jaringan Find My, dibuat pasangan kunci publik dan privat berbasis kurva eliptik P-224
- Kunci privat disimpan dengan aman di keychain Mac
- Kunci publik diterapkan ke aksesori seperti micro:bit
-
Kondisi hilang
- Aksesori menyiarkan kunci publik sebagai iklan Bluetooth Low Energy
- iPhone di sekitar tidak dapat membedakan aksesori OpenHaystack dari perangkat Apple asli atau aksesori tersertifikasi
-
Ditemukan
- Saat iPhone di sekitar menerima iklan BLE, perangkat mengambil lokasi saat ini melalui GPS
- iPhone mengenkripsi lokasi dengan kunci publik yang ada dalam iklan dan mengunggah laporan terenkripsi ke server Apple
- iPhone dengan iOS 13 atau lebih baru melakukan tindakan ini secara default
- OpenHaystack tidak terlibat pada tahap ini
-
Pengambilan
- Apple tidak mengetahui lokasi terenkripsi mana yang terkait dengan akun atau perangkat Apple tertentu
- Jika mengetahui kunci publik yang sesuai, pengguna Apple dapat mengunduh laporan lokasi apa pun
- Laporan tersebut dienkripsi secara end-to-end sehingga tidak bisa didekripsi tanpa kunci privat
- OpenHaystack mengunduh laporan untuk aksesori OpenHaystack dari Apple, mendekripsinya dengan kunci privat yang disimpan di keychain Mac, lalu menampilkan lokasi terbaru di peta
- Apple membatasi akses sembarang ke basis data dengan memastikan hanya pengguna Apple yang terautentikasi yang dapat mengunduh laporan lokasi
Perangkat yang didukung dan perluasan
- Pada prinsipnya, perangkat Bluetooth apa pun dapat dijadikan aksesori OpenHaystack yang bisa dilacak melalui jaringan Apple Find My
- Saat ini, cara penerapan firmware yang praktis hanya mendukung sebagian perangkat embedded
- Perangkat Linux didukung melalui skrip HCI biasa
- Contoh dukungan yang tersedia adalah sebagai berikut
- Nordic nRF51: diuji pada BBC micro:bit v1, mendukung deployment lewat aplikasi, saat ini hanya mendukung nRF51822
- Espressif ESP32: diuji pada ESP32-WROOM dan ESP32-WROVER, mendukung deployment lewat aplikasi, deployment bisa memakan waktu hingga 3 menit dan memerlukan Python 3
- Linux HCI: diuji pada Raspberry Pi 4 dan Raspbian, seharusnya mendukung semua mesin Linux
- Porting ke perangkat lain yang mendukung Bluetooth Low Energy dimungkinkan, dengan memanfaatkan source code firmware dan spesifikasi dalam makalah
OpenHaystack Mobile
- OpenHaystack Mobile adalah aplikasi yang sepenuhnya mengimplementasikan ulang aplikasi macOS OpenHaystack untuk smartphone
- Aplikasi ini menyediakan fitur pembuatan aksesori dan pelacakan, dengan tujuan khusus meningkatkan kemudahan penggunaan bagi pengguna baru
- Berbeda dari aplikasi macOS, smartphone tidak dapat langsung mengambil laporan lokasi
- Untuk mengakses jaringan Find My, dibutuhkan server proxy yang di-host di perangkat keras Mac
- Server proxy tersebut dapat diakses secara bersamaan oleh banyak pengguna melalui jaringan
- Untuk terhubung ke server proxy, URL yang benar harus diatur di
openhaystack-mobile/lib/findMy/reports_fetcher.dart - OpenHaystack Mobile dibuat dengan Flutter framework dan berjalan di Android serta iOS
Lisensi dan referensi
- OpenHaystack didistribusikan di bawah GNU Affero General Public License v3.0
- Referensi utama
1 komentar
Opini Hacker News
Semoga ada opsi yang bagus juga untuk orang yang bukan pengguna Apple. Dari yang saya dengar, versi Google, seperti yang diduga, cukup buruk
Ada batasan seberapa sering Anda bisa mencari tag sendiri, lokasinya tidak ditampilkan sampai terdeteksi oleh beberapa ponsel, dan cakupannya juga buruk
Dalam satu pengujian, jaringan Samsung disebut lebih baik, padahal ponsel Samsung seharusnya hanya merupakan sebagian dari semua ponsel Android di jaringan Google, jadi ini tidak masuk akal. Walau secara teori tampak bagus, ini terasa seperti produk Google yang eksekusinya buruk bahkan bertahun-tahun setelah Apple menunjukkan caranya
https://security.googleblog.com/2024/04/find-my-device-netwo...
https://9to5google.com/2024/08/01/find-my-device-stress-test...
https://9to5google.com/2024/08/03/google-android-find-my-dev...
https://www.androidcentral.com/accessories/testing-new-googl...
Dengan pilihan ini, Google memang mendapatkan beberapa artikel tentang peningkatan perlindungan privasi yang “inovatif” sebelum seberapa buruk kinerjanya benar-benar terverifikasi, tetapi mereka kehilangan peluang untuk bersaing dengan Apple di bidang ini dan juga berdampak buruk pada ekosistem Android/Pixel serta pangsa pasar. Tingkat inkompetensi seperti ini bahkan sulit dikarang
Dari sudut pandang pelancong nomaden, jaringan Apple tidak terlalu berguna. Soalnya, saya bepergian bukan ke kota-kota kaya dengan banyak ponsel Apple, melainkan ke “seluruh dunia lainnya” yang pangsa Android-nya mendekati 90%. Namun bahkan di tempat-tempat itu pun Apple tampaknya lebih baik daripada Google
Padahal sebenarnya ada di dalam tas tepat di sebelah saya
Bahkan di bandara atau desa di negara yang sangat terpencil, dua tag saya bisa ditemukan dengan baik, jadi saya merasa tenang. Video ini juga menyimpulkan bahwa meski Anda pengguna iPhone, Samsung SmartTag adalah yang terbaik
https://m.youtube.com/watch?v=9wefUV_bR0Y
Dari kodenya, tampaknya mereka memakai izin Apple Mail pribadi untuk mengambil lokasi yang dikumpulkan perangkat-perangkat di jaringan FindMy
https://github.com/seemoo-lab/openhaystack/blob/8d214aa5eb68...
Saya penasaran apakah ini juga bisa dilakukan jika membuat akun pengembang Apple
Yang dibutuhkan hanya akun Apple, dan tidak perlu menjalankan kode di perangkat keras Apple
https://github.com/biemster/FindMy
Saya ingin menemukan materi yang pernah saya lihat dulu. Apple memberi tahu pengguna tentang “tag yang bisa mengikuti Anda”, dan seingat saya ada seseorang yang membuat implementasi yang memutar alamat MAC atau sesuatu seperti kunci privat dengan fungsi derivasi kunci (KDF), tetapi nilai turunannya cukup dapat diprediksi untuk dilacak
Di tempat tinggal saya, masalah pencurian kecil-kecilan benar-benar parah, dan waktu yang terbuang untuk terus memperbaiki jendela pecah atau membersihkan bekas pembobolan paksa cukup besar. Saya sama sekali tidak berniat berhadapan langsung dengan siapa pun, tetapi suatu hari nanti saya ingin membuat jejak pergerakan yang bisa diberikan kepada penyelidik swasta atau aparat penegak hukum
Atau Anda bisa membawa satu krat air minum ke tempat berkumpul pecandu narkoba terdekat dan meminta mereka berhenti mencuri barang-barang Anda
Namun mungkin saja periode rotasinya lambat, dan saya tidak begitu tahu algoritma pastinya
Namun itu terjadi beberapa tahun lalu, jadi sekarang bisa saja sudah berbeda
Akan lebih baik jika ada cara untuk mengintegrasikannya dengan aplikasi Find My, alih-alih mengambil lokasi melalui prosedur sendiri yang tidak stabil
Replika buatan Tiongkok tampaknya jelas bisa melakukannya entah bagaimana, karena mereka bisa memakai merek mereka sendiri
Tanda tangan itu diverifikasi Apple, sehingga perangkat bisa ditambahkan ke akun Apple ID dan aplikasi tersebut. Sebaliknya, kunci yang disiarkan perangkat dalam mode hilang bersifat acak dan sepenuhnya buram, sehingga Apple pun tidak punya cara untuk mengaitkannya dengan ID, perangkat, atau developer. Proyek ini bisa berjalan juga karena kunci-kunci itu pada akhirnya masuk ke server Apple
Replika-replika itu tampaknya telah mencuri kunci valid untuk proses pairing. Jika Apple berniat dan berhasil menemukan kunci itu, sepertinya mereka bisa menghapus semua perangkat dari semua akun, tetapi perangkatnya sendiri akan tetap menyiarkan, dan lokasi masih bisa diakses dengan cara kasar seperti di atas. Saya juga penasaran apakah pemilik asli kunci itu nantinya akan mendapat tagihan besar berupa royalti per perangkat jika Apple menghitung “jumlah perangkat yang ditandatangani dengan kunci ini dan ditambahkan ke Apple ID” di basis datanya
OpenHaystack adalah hack yang memakai kunci berbeda, sehingga karena alasan kriptografis tidak bisa muncul di aplikasi
Benar-benar keren. Saya suka Apple AirTag, tapi terlalu tebal dan bentuknya juga agak nanggung
Saya ingin ada AirTag berbentuk kartu kredit yang bisa dimasukkan ke dompet, dan AirTag yang lebih kecil untuk dipasang di kalung kucing
Saya pernah mengeluarkan salah satu yang saya punya dari casing-nya untuk melihat apa yang bisa dibuat lebih tipis, dan ternyata sebagian besar ketebalannya berasal dari dudukan baterai CR2032, speaker, dan tombol. Speaker dan tombol sepertinya bisa dihilangkan setelah pengaturan awal, dan jika ingin form factor kartu tipis, dudukan baterai juga bisa dilepas lalu daya disuplai dari sisi samping, bukan dari atas
https://imgur.com/a/r9EGSOc
Foto ini baru saja saya ambil dengan kacamata Meta Stories
https://www.amazon.com/gp/product/B09DCVFNFF/
Namun, saya perlu melilitnya dengan selotip bening agar AirTag tidak terpuntir keluar dari holder
Saya belum menelitinya secara detail, tetapi penasaran apakah ini bisa dipakai untuk menyisipkan dan mengirim payload data kecil arbitrer
Bahkan jika komputer benar-benar terisolasi, data bisa kembali melalui iPhone orang yang sedang mengetik
Jika kuncinya berubah dan perangkat lain yang baru terlihat, itu berarti ada surat masuk; cukup cerdas
Saya penasaran berapa batas atas throughput yang bisa diunggah satu perangkat ke server Apple. Jika perangkat Apple tidak punya seluler atau Wi-Fi, berapa lama riwayat ping lokasi itu tersimpan di perangkat?
Saya juga penasaran apakah ada kemungkinan serangan denial-of-service di sini. Misalnya penyerang meniru lebih dari 1 juta perangkat Bluetooth, lalu ketika korban kebetulan lewat, ponselnya macet karena ada jumlah perangkat yang sangat besar di satu lokasi dan terus mengunggah ke server Apple
Ngomong-ngomong, apakah ini bisa dipakai untuk benar-benar mengatur AirTag tanpa perangkat Apple lain seperti iPhone atau Mac?
Artikel sebelumnya: https://news.ycombinator.com/item?id=26342504
Apakah perangkat-perangkat ini bisa dipairing dengan aplikasi Apple Find My yang sebenarnya, sehingga bisa ditemukan di dalam aplikasi?