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.