Mendesain dengan Bluetooth Mesh:Privasi dan keamanan
Di Bagian 1 dan Bagian 2 dari seri artikel ini, kami membahas arsitektur Bluetooth Mesh dan bagaimana pesan dikomunikasikan melalui jaringan Bluetooth Mesh. Di dunia yang terhubung saat ini, keamanan adalah elemen kunci dalam setiap desain. Oleh karena itu, penting bagi aplikasi IoT yang didukung oleh Bluetooth Mesh agar benar-benar aman dan menyediakan fungsionalitas yang andal.
Implementasi Keamanan pada perangkat Bluetooth Mesh adalah persyaratan wajib dari Bluetooth SIG dan tidak dapat dinonaktifkan. Perhatikan bahwa dalam implementasi keamanan koneksi point-to-point BLE non-mesh adalah opsional. Proses penyediaan di mana perangkat ditambahkan ke jaringan Bluetooth Mesh dan pertukaran data dalam jaringan Bluetooth Mesh dirancang dengan cermat dengan keamanan sebagai prioritas utama. Protokol Bluetooth Mesh melindungi jaringan dari berbagai kemungkinan ancaman di beberapa lapisan seperti:
Serangan Man-in-the-Middle (MITM) dicegah menggunakan protokol pertukaran kunci Elliptic Curve Diffie-Hellman (ECDH) selama penyediaan.
Serangan pemutaran ulang dicegah dengan penggunaan nomor urut.
Serangan tempat sampah dari perangkat yang dibuang dicegah dengan prosedur penyegaran kunci (daftar hitam).
Topologi Bluetooth Mesh dibangun dengan persyaratan kunci keamanan wajib yang mengamankan jaringan di beberapa lapisan tumpukan. Mari kita bahas setiap fitur keamanan dan privasi satu per satu.
Penyediaan:Menambahkan perangkat yang tidak disediakan ke jaringan Bluetooth Mesh
Perangkat Bluetooth Mesh ditambahkan ke jaringan mesh menggunakan proses penyediaan. Perangkat mesh yang disediakan disebut node, dan perangkat yang melakukan provisioning disebut dengan provisioner. Biasanya, ponsel bertindak sebagai penyedia. Ini menciptakan jaringan mesh, memberikan kunci jaringan dan kunci lain yang diperlukan. Perangkat mesh yang tidak disediakan ditambahkan ke jaringan Bluetooth Mesh menggunakan proses penyediaan. Penyedia juga mengonfigurasi node mesh yang disediakan dan mengontrol fungsionalitas node Bluetooth Mesh di jaringan mesh.
Protokol penyediaan dapat menggunakan dua pembawa penyediaan yang berbeda:PB-ADV (pembawa ADV) atau PB-GATT (pembawa GATT). Perangkat seluler saat ini belum mendukung pembawa PB-ADV. Untuk itu, proses pembekalan dilakukan melalui pembawa PB-GATT.
Perangkat mesh yang tidak disediakan mulai beriklan setelah dinyalakan. Penyedia memindai perangkat yang tidak disediakan dan membuat koneksi BLE standar (dengan asumsi PB-GATT) dengan perangkat yang tidak disediakan. Kemudian berbagi kunci menggunakan protokol Elliptical Curve Diffie-Hellman (ECDH). Jadi pertukaran kunci menggunakan ECDH sangat aman.
Kedua perangkat kemudian membuat kunci sesi menggunakan kunci yang dipertukarkan. Kunci sesi digunakan untuk mengenkripsi kunci jaringan, kunci perangkat (jenis kunci dibahas di bagian berikut artikel ini), indeks IV, dan alamat unicast, yang semuanya dikirim ke node Bluetooth Mesh yang disediakan. Setelah penyediaan berhasil, node mesh menjalani proses konfigurasi di mana kemampuan node mesh dibagikan dengan penyedia. Penyedia memberikan kunci Aplikasi ke node yang dikonfigurasi. Setiap node mesh dapat memiliki beberapa kunci Aplikasi, sehingga setiap kunci Aplikasi harus diikat dengan model mesh tertentu menggunakan proses yang disebut pengikatan kunci. Dengan cara ini mesh stack mengetahui kunci Aplikasi mana yang digunakan untuk model mesh tertentu.
Gambar 1 menunjukkan urutan penyediaan saat ponsel cerdas dengan aplikasi pembantu mesh iOS mencoba menyediakan bola lampu Dimmable yang diimplementasikan menggunakan kit Evaluasi CYBT-213043-MESH.
klik untuk gambar lebih besar
Gambar 1:Proses Penyediaan Bola Lampu yang Dapat Diredupkan. (Sumber:Cypress)
Seperti yang dapat dilihat pada gambar, bohlam Lampu yang Dapat Diredupkan mentransmisikan Suar Perangkat yang Tidak Disediakan. Saat penyedia mencoba menambahkan perangkat, Bohlam yang Dapat Diredupkan muncul di daftar Perangkat yang Tidak Disediakan. Saat pengguna mengklik perangkat Dimmable Light di aplikasi mesh iOS, proses penyediaan dimulai.
Telepon mengirimkan undangan Penyediaan, dan bola Lampu yang Dapat Diredupkan merespons dengan kemampuan seperti jumlah elemen yang didukung, algoritme keamanan yang didukung, ketersediaan kunci publik menggunakan out-of-band (OOB), dan kemampuan input/output untuk masuk/ menampilkan nilai pengguna. Berdasarkan kemampuan bohlam Dimmable Light, kunci publik ECDH dipertukarkan baik menggunakan metode OOB atau menggunakan tautan Bluetooth. Kemudian otentikasi dilakukan.
Setelah bola Lampu Dimmable diautentikasi, Penyedia mengirimkan data Penyediaan melalui tautan terenkripsi AES-CCM. Setelah data Penyediaan (Kunci Jaringan, Kunci Perangkat, Indeks IV, Alamat Unicast, dll.) dikirim ke bohlam Lampu Dimmable, proses penyediaan selesai. Penyedia sekarang dapat mengonfigurasi bohlam Lampu yang Dapat Diredupkan (tidak ditampilkan dalam diagram urutan ini).
Kunci jaringan, Kunci aplikasi, dan Kunci perangkat
Kepemilikan kunci Jaringan memungkinkan sebuah node untuk mendekripsi dan mengotentikasi hingga lapisan Jaringan yang memungkinkan untuk Menyampaikan pesan dalam Jaringan. Kunci enkripsi jaringan dan kunci pribadi berasal dari kunci Jaringan. Penting untuk dicatat bahwa meskipun semua node dalam jaringan menerima dan meneruskan pesan relai mesh, data aplikasi yang sebenarnya tidak dapat didekripsi menggunakan kunci Jaringan. Data aplikasi hanya dapat didekripsi hanya jika perangkat memiliki kunci Aplikasi yang sesuai.
Kunci jaringan :Sebuah node dapat memiliki satu atau lebih kunci Jaringan. Ini memungkinkan pembuatan beberapa subnet dalam satu jaringan Bluetooth Mesh. Misalnya, pertimbangkan sistem parkir bertingkat. Mungkin bermanfaat untuk membagi setiap level menjadi subnetnya sendiri. Partisi ini menghindari penyampaian pesan di semua level dan membatasi pesan yang direlai ke level yang diinginkan.
Kunci aplikasi :Kunci aplikasi dibagikan di antara subset perangkat dalam jaringan mesh. Umumnya perangkat ini memiliki fungsi yang serupa. Misalnya, semua bola lampu di ruang tamu dapat berbagi kunci Aplikasi yang sama sedangkan sensor gerak atau kunci akan memiliki kunci Aplikasi terpisah. Pesan mesh untuk mengubah status bola lampu hanya dapat didekripsi oleh bola lampu di ruang tamu (yaitu, ini adalah satu-satunya perangkat yang berisi kunci Aplikasi yang diperlukan).
Kunci perangkat: Kunci perangkat ditetapkan ke setiap node mesh yang disediakan oleh Penyedia. Hal ini memungkinkan untuk identifikasi unik dari node mesh. Kunci Perangkat hanya digunakan selama proses konfigurasi simpul oleh penyedia.
Penghapusan node (Key Refresh, Daftar Hitam)
Penting untuk mencegah peretas memasang serangan pada jaringan mesh tertentu menggunakan kunci keamanan yang diperoleh dari node mesh yang salah atau dibuang yang merupakan bagian dari jaringan mesh yang ditargetkan. Serangan semacam ini umumnya dikenal sebagai serangan Trashcan. Untuk menghindari serangan semacam ini, Bluetooth SIG telah menetapkan prosedur penyegaran kunci. Prosedur ini dapat dimulai oleh Penyedia untuk menempatkan node tertentu dalam Daftar Hitam. Prosedur penyegaran kunci mengeluarkan kunci Jaringan baru, kunci Aplikasi, dan semua informasi yang diperlukan untuk semua perangkat di jaringan mesh kecuali untuk perangkat di Daftar Hitam. Semua kunci yang dimiliki perangkat Daftar Hitam tidak dapat lagi digunakan untuk mengakses jaringan mesh.
Privasi (Kebingungan pesan):
Privasi merupakan aspek penting bagi setiap orang. Privasi di Bluetooth Mesh ditangani menggunakan kunci privasi. Seperti yang dibahas sebelumnya, kunci privasi berasal dari kunci Jaringan. Bluetooth Mesh menggunakan kunci privasi ini untuk mengaburkan nilai header pesan seperti alamat sumber. Jika alamat sumber dikaburkan, ini akan mencegah penyerang melacak pesan berdasarkan alamat sumbernya.
Serangan ulang
Penyerang dapat memilih untuk mengganggu jaringan mesh dengan menangkap pesan melalui udara dan mengirim ulang paket yang sama beberapa kali. Bayangkan seorang penyerang menangkap pesan untuk membuka kunci pintu. Jika penyerang berhasil menangkap pesan over-the-air untuk membuka kunci pintu, ini akan memberikan akses ke pintu. Jelas, ini akan menjadi ancaman besar bagi orang-orang dan properti mereka. Untuk mengatasi masalah ini, Bluetooth SIG menyediakan dua bidang sebagai bagian dari setiap pesan jaringan:indeks vektor Inisialisasi (indeks IV) dan nomor urut (SEQ).
Nomor urut bertambah setiap kali node menerbitkan pesan. node mesh akan membuang pesan mesh dengan nomor urut sama atau lebih kecil dari pesan mesh valid yang terakhir diproses. Untuk mengubah nomor urut, penyerang harus memiliki semua kunci yang diperlukan untuk memecahkan kode dan kemudian mengenkripsi pesan. Kunci ini hanya tersedia untuk perangkat yang dimaksud. Jadi, bahkan jika penyerang mencoba untuk membalas pesan, itu akan dibuang oleh node target. Indeks IV adalah bidang terpisah dalam pesan jaringan mesh. Nilai indeks IV dalam pesan harus sama dengan atau lebih besar dari pesan mesh valid yang terakhir diproses, jika tidak, pesan akan dibuang.
Singkatnya, proses Penyediaan di Bluetooth Mesh memungkinkan hanya perangkat tepercaya yang ditambahkan ke jaringan dan menghindari serangan man-in-the-middle. Kunci keamanan seperti kunci Jaringan memungkinkan pembuatan subnet sementara kunci Aplikasi memungkinkan pesan mesh didekodekan hanya oleh aplikasi tertentu. Prosedur penyegaran utama menerapkan penghapusan node yang aman dan melindungi dari serangan Trashcan. Serangan replay dihindari dengan menambahkan nomor urut ke setiap pesan. Kebingungan pesan melindungi identitas pengirim. Semua fitur ini membuat Bluetooth Mesh sangat aman dan pribadi.
Di bagian selanjutnya dari seri artikel ini, kita akan membicarakan tentang poin yang harus dipertimbangkan saat memilih perangkat Bluetooth Mesh untuk aplikasi Anda.