
BLE di bawah mikroskop. Bagian 4
Beberapa kata tentang daftar putih.
Kebetulan saya sudah lama pindah dari topik BLE. Tapi dia kembali :-) Hari ini saya ingin menyentuh pada topik daftar putih. Untuk apa ini? Jika kami hanya ingin ponsel tertentu bekerja dengan gadget kami, sementara yang lain tidak, maka daftar putih adalah yang kami butuhkan.
Untuk mulai membahas topik ini harus kembali sedikit. Agar perangkat dapat memulai pertukaran data, perlu melalui prosedur koneksi. Saya menulis tentang itu di artikel sebelumnya. Dan di sini sangat penting untuk tidak membingungkan konsep attachment dan pairing. Dalam hal bergabung, setelah memutuskan koneksi, kami lupa dengan siapa kami berbicara. Dalam hal kawin, kita ingat pasangannya. Jadi, misalnya, kami menghubungkan ponsel kami dengan headphone bluetooth. Perangkat seperti itu sekarang disebut terikat. Sekarang, ketika memindai eter, koneksi ke perangkat yang terhubung akan terjadi tanpa campur tangan manusia.
Mengapa saya berbicara tentang semua ini. Faktanya adalah bahwa daftar putih terbentuk dari daftar perangkat terkait. Ini adalah hal pertama yang harus diingat. Kedua, Anda perlu memahami bagaimana pasangan perangkat terbentuk. Ada dua cara. Yang pertama adalah dengan alamat MAC, yang kedua menggunakan kunci. Mengapa semuanya begitu rumit? Faktanya adalah bahwa pada awalnya itu seharusnya mengikat hanya dengan alamat MAC. Tetapi, ketika mengirimkan paket melalui udara, itu terlihat oleh semua orang. Karena itu, dengan memindai udara dan menggunakan program khusus, penyerang dapat dengan mudah mengubah alamat MAC di teleponnya. Akibatnya, bahkan saat menggunakan daftar putih, ia dapat mengakses perangkat Anda. Untuk mencegah hal ini terjadi, metode lain dari perangkat pasangan digunakan - menggunakan kunci irk (Identity Resolving Key). Tidak seperti alamat MAC, panjang kuncinya adalah 16 byte, dan dengan pertukaran data standar, mereka tidak terlihat di udara. Pertukaran mereka berlangsung di tempat yang aman, tidak termasuk mendengarkan. Selain itu, spesifikasi BLE4.2 menjelaskan fitur lain. Ini dia kata demi kata:
6.1 INTERVAL GENERASI ALAMAT SWASTA
Alamat pribadi harus dibuat menggunakan Generasi Alamat Pribadi yang Dapat Diatasi (lihat Bagian 1.3.2.2) .Tautan Lapisan harus menetapkan penghitung waktu yang ditentukan oleh Host. Alamat pribadi baru harus dibuat ketika timer kedaluwarsa. Jika Lapisan Tautan diatur ulang, alamat pribadi baru akan dibuat dan penghitung waktu dimulai dengan nilai apa pun dalam rentang yang diizinkan.
Catatan: Jika alamat pribadi sering dibuat, waktu koneksi mungkin akan terpengaruh. Disarankan untuk mengatur timer ke 15 menit.
Singkatnya, perangkat BLE dapat menyiarkan bukan alamat publiknya sendiri, tetapi alamat pribadi pribadi, yang direkomendasikan untuk diubah setiap 15 menit. Karena itu, mengingatnya tidak masuk akal. Ingat, Anda hanya perlu alamat statis publik dan acak. Di debugger, terlihat seperti ini:

Di sini perlu dicatat bahwa nilai penghitung addr_count pada gambar di sebelah kiri adalah 0x01, dan penghitung irk_count pada gambar di sebelah kanan adalah 0x02. Faktanya adalah saya memasang dua ponsel ke perangkat dengan android 4.4 (bluetooth 4.0) dan android 8.1 (bluetooth 4.1). Yaitu yang pertama berkomunikasi dengan alamat MAC, dan yang kedua sudah menggunakan kunci irk. Apalagi saya ikat ponsel dengan android 8.1 dua kali. Perangkat saya tidak mengenalinya dan melihatnya sebagai dua ponsel yang berbeda.
Ada
artikel bagus di situs yang mendekripsi singkatan dan memberikan gambaran umum tentang teknologi BLE. Selain itu, saya ingin mencatat bahwa mungkin ada ketidakakuratan dalam teks, karena Saya tidak berurusan dengan topik ini sebanyak yang saya inginkan. Oleh karena itu, komentar yang membangun disambut dan disambut.
Pecherskikh Vladimir