Devi controllare tutti i modi per accedere al dispositivo. Ad esempio:
- Esiste una sorta di interfaccia seriale che ha già una console su di essa
- c'è qualche interfaccia seriale che può essere utilizzata per accedere al boot loader
- c'è qualche interfaccia seriale che può essere modificata per avere una console su di essa
- è possibile accedere al chip flash e modificarlo direttamente (solitamente sì, è possibile renderlo solo più difficile)
- ci sono servizi di ascolto sull'interfaccia di rete che possono essere usati per cambiare il filesystem
- ci sono servizi in ascolto sull'interfaccia di rete che hanno bug che possono essere usati per cambiare il filesystem
oltre a tutto ciò, è sempre possibile modificare direttamente il contenuto della memoria (flash), se non sono crittografati.
Puoi renderlo più difficile, ad es. annegando le schegge di flash in molta resina (assicurati che non si surriscaldino) ma questo rende solo più difficile.
Il modo più sicuro è utilizzare l'hardware che supporta la crittografia nella CPU / MCU e l'archiviazione sicura per la chiave di crittografia. In questo modo, la memoria flash è sempre crittografata e non può essere modificata. Per una sicurezza ancora maggiore, anche i contenuti della RAM devono essere crittografati.
Questo probabilmente scoraggia la maggior parte degli attaccanti. Tuttavia, le moderne console di gioco utilizzano misure di sicurezza abbastanza simili e tutte sono state compromesse alla fine (a causa di bug nell'implementazione / hardware).
L'unica cosa che puoi fare è diminuire la superficie d'attacco fino a quando non è economicamente fattibile rompere la sicurezza. Se lo sviluppo del dispositivo da zero è più economico che attaccare il tuo, non è molto importante proteggere maggiormente il tuo dispositivo.