To pytanie jest zbyt ogólne, ale biorąc pod uwagę, że pominąłeś jedną najważniejszą rzecz, wydaje mi się, że muszę to wyjaśnić.
Uwierzytelnij aktualizację .
Jeśli chcesz się upewnić, że Twój kod obsługuje kod, potrzebujesz uwierzytelnienia, a nie szyfrowania. Szyfrowanie sprawia, że inni ludzie nie mogą wiedzieć, co znajduje się w twoim kodzie, co jest trudne do osiągnięcia i rzadko przydatne. (Możesz szyfrować, ale jeśli klucz odszyfrowujący znajduje się na urządzeniu, nic nie zyskałeś, chyba że masz sposób na ochronę klucza odszyfrowującego, który nie pozwala na bezpośrednią ochronę kodu.) Autentyczność jest własnością innych osób nie może wygenerować fałszywej aktualizacji, a ta właściwość jest zwykle pożądana.
Pamiętaj, że szyfrowanie nie pomaga w autentyczności. Jest to fałszywe przekonanie, że ludzie, którzy tak naprawdę nie rozumieją bezpieczeństwa, mają czasami, ale to po prostu nieprawda.
W przypadku niektórych urządzeń można uruchomić dowolne oprogramowanie układowe, jeśli właściciel tak zdecyduje. W takim przypadku nadal potrzebujesz mechanizmu, aby upewnić się, że tylko właściciel urządzenia może zainstalować oprogramowanie wewnętrzne, a nie losowy przechodzień. Zasadniczo oznacza to, że urządzenie musi uwierzytelnić aktualizację pochodzącą od zarejestrowanego właściciela.