Praktik terbaik untuk pembaruan Over The Air yang aman [ditutup]

8

Apa praktik keamanan terbaik yang harus diikuti ketika mengeluarkan pembaruan OTA ke armada perangkat IoT? Apa penyebab penting yang perlu diperhatikan?

Sebagai contoh,

  • mencegah pembaruan agar tidak dicegat
  • mengikuti standar yang ditetapkan
  • platform untuk distribusi perangkat lunak
  • pembaruan otomatis vs pembaruan opsional
Noam Hacker
sumber
5
Pertanyaan ini terlalu luas untuk menjadi cocok untuk tanya jawab.
Sean Houlihane
1
@SeanHoulihane, saya telah mempersempit fokus ke keamanan OTA. Bagaimana tampilannya sekarang?
Noam Hacker
2
Ini masih cukup luas karena setiap poin bisa menjadi pertanyaan yang berdiri sendiri. Bahkan hanya untuk poin terakhir menguji keberhasilan, Anda dapat menulis seluruh buku tentangnya.
Dom
1
Saya setuju dengan Dom. Lebih baik mengambil satu aspek OTA (seperti memastikan hasil yang dapat diandalkan). Meski begitu, ada banyak jawaban. Idealnya, sebuah pertanyaan seharusnya hanya membutuhkan satu atau dua jawaban berkualitas tinggi agar Anda dapat menerima bahwa 'jawabannya'.
Sean Houlihane
1
edit judul juga?
Sean Houlihane

Jawaban:

10

Pertanyaan itu terlalu luas, tetapi mengingat bahwa Anda mengabaikan satu hal yang paling penting, saya merasa saya perlu untuk menyelesaikan.

Otentikasi pembaruan .

Jika Anda ingin memastikan bahwa perangkat Anda menjalankan kode Anda, maka Anda perlu otentikasi, bukan enkripsi. Enkripsi memastikan bahwa orang lain tidak dapat mengetahui apa yang ada dalam kode Anda, dan itu sulit dicapai dan jarang bermanfaat. (Anda dapat mengenkripsi, tetapi jika kunci dekripsi ada di perangkat, Anda tidak mendapatkan apa-apa kecuali Anda memiliki cara untuk melindungi kunci dekripsi yang tidak membiarkan Anda melindungi kode secara langsung.) Keaslian adalah properti yang dimiliki orang lain tidak dapat menghasilkan pembaruan palsu, dan properti itu biasanya diinginkan.

Perhatikan bahwa mengenkripsi tidak membantu keaslian. Ini adalah keyakinan keliru yang dimiliki orang-orang yang tidak benar-benar memahami keamanan, tetapi itu tidak benar.

Untuk beberapa perangkat, tidak masalah menjalankan firmware jika pemiliknya memilihnya. Dalam hal ini, Anda masih memerlukan beberapa mekanisme untuk memastikan bahwa hanya pemilik perangkat yang dapat menginstal firmware, dan bukan beberapa pelintas acak. Secara umum itu berarti bahwa perangkat harus mengautentikasi pembaruan yang berasal dari pemilik terdaftar.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Ini tidak sepenuhnya benar. Enkripsi tidak terlalu sulit untuk dicapai atau hanya "jarang bermanfaat". Lebih jauh, enkripsi itu "tidak membantu keaslian" hanya semi-benar. Kebanyakan mode enkripsi modern, seperti GCM, sebenarnya disebut skema "enkripsi terotentikasi", yang menggabungkan keaslian dan kerahasiaan.
mat
@ Ah, saya sudah mengubah kalimat itu menjadi benar secara formal. Enkripsi tidak sulit, tetapi saya merujuk pada kerahasiaan, yang sulit. Enkripsi tidak memberi Anda kerahasiaan jika Anda tidak dapat menjaga kerahasiaan kunci. Enkripsi tidak membantu sama sekali keaslian. Jika Anda menggunakan enkripsi yang diautentikasi, itu memberi Anda berdua, tetapi fakta bahwa itu termasuk enkripsi tidak membantu dalam mendapatkan keaslian.
Gilles 'SO- berhenti menjadi jahat'
Jika kunci Anda bocor, setiap crypto kehilangan kegunaannya, baik untuk kerahasiaan atau untuk otentikasi. Jika masuk akal untuk menggunakan enkripsi dengan kunci yang tidak terlindungi pada perangkat, tergantung pada model ancaman Anda (aksesibilitas perangkat, kemampuan lawan)
mat
@ ah. Tidak. Seharusnya saya bereaksi terhadap komentar GCM di komentar saya sebelumnya, sebenarnya. GCM bukan cara yang layak untuk menyiarkan pembaruan, karena itu berarti keaslian diperiksa dengan kunci kelas. Kecuali Anda membuat platform yang sangat keras (mis. Kartu pintar), kunci kelas sama bagusnya dengan publik. Pembaruan harus menggunakan kriptografi asimetris. Dengan cara itu, untuk menyebarkan pembaruan palsu ke perangkat, perangkat tertentu itu perlu dilanggar: untuk menghasilkan pembaruan palsu yang bekerja di mana-mana, penyerang perlu membobol server atau protokol dan ini biasanya terlindungi lebih baik daripada perangkat di bidang.
Gilles 'SANGAT berhenti menjadi jahat'