Si consideri l'esempio di un'unità di controllo elettronico (ECU) che utilizza un software statico integrato tradizionale. Il bootloader è un componente software utilizzato sia per avviare l'avvio del software principale della centralina, inclusa la copia del software nella RAM, sia per eseguire eventuali controlli sul software prima dell'avvio. Il bootloader è anche responsabile dell'aggiornamento del software, ricevendo, controllando e scrivendo il software aggiornato in memoria, di solito memoria Flash. Quindi, anche il termine Flash Bootloader è comunemente usato.
Vengono utilizzati gli stessi bootloader nello sviluppo e nella produzione?
Comunemente lo stesso bootloader può essere utilizzato nello sviluppo dei veicoli e delle centraline associate e nella normale produzione, con protezioni per garantire che le centraline di produzione abbiano molte capacità di sviluppo o bootloader di ingegneria disattivati. Durante lo sviluppo del veicolo, è spesso auspicabile rimuovere i meccanismi di sicurezza dei bootloader di produzione per consentire una rapida implementazione del software di sviluppo.
Bootloader sicuro
Sempre più spesso tutti i bootloader devono essere sicuri. Tuttavia, tradizionalmente questa è stata una distinzione, di solito implementata per proteggere le funzionalità relative alla sicurezza, alla protezione e talvolta alle prestazioni.
I bootloader di solito controllano la memoria software della centralina all'avvio e il software ricevuto prima di un aggiornamento software e in memoria dopo.
I meccanismi comunemente includono:
- Autenticazione del software ricevuto e/o presente in memoria al momento dell'avvio, spesso utilizzando un hash del binario del software per verificare la correttezza generata da un processo di compilazione sicuro delle versioni del software rilasciate ufficialmente.
- Autenticazione del mittente tramite seme e chiave, protezione dei dati sicuri all'interno della centralina utilizzando memoria protetta e mappe di memoria per definire aree accessibili/riscrivibili.
Doppio bootloader
Alcune implementazioni di bootloader sono in due parti, da cui il termine dual bootloader. In questo caso, il bootloader primario non è aggiornabile, come parte della protezione del bootloader. Questo riguarda l'avvio del modulo e l'aggiornamento del bootloader secondario. Il bootloader secondario può essere aggiornato, tramite un processo protetto, consentendo modifiche al processo di aggiornamento del software, ad esempio la mappa della memoria, consentendo di bloccarla normalmente. Questo tipo di bootloader è ora meno comune a causa dei nuovi metodi di protezione del processo di aggiornamento utilizzando hardware sicuro integrato, ad esempio HSM (Hardware Secure Module).
Si noti che questo termine è simile al dual boot, in cui sono disponibili blocchi a due avvii o memorie complete, che consentono di eseguire un aggiornamento sulla versione inutilizzata mentre una versione è attiva. Ciò richiede memoria aggiuntiva in ogni ECU che supporta questo metodo di aggiornamento.
Capital Embedded Bootloader
Capital Embedded Bootloader supporta aggiornamenti ECU affidabili durante lo sviluppo, nella produzione del veicolo e durante la vita del veicolo, tramite strumenti diagnostici connessi o metodologie over-the-air. Il protocollo standardizzato ISO 14229 UDS viene utilizzato su una serie di comuni bus di rete del veicolo, Ethernet, CAN/CAN-FD, LIN, FlexRay ed è anche possibile utilizzare altri metodi come i protocolli di calibrazione ASAM. La sicurezza informatica è un aspetto chiave del flusso di aggiornamento del software e le funzionalità che consentono l'autenticazione del software e le opzioni di avvio sicuro fanno parte della soluzione. Per soddisfare i requisiti specifici degli OEM (Original Equipment Manufacturer) e degli MCU, è disponibile un ampio supporto per un'ampia gamma di progetti di centraline.
Qual è la differenza tra OTA e FOTA?
L'aggiornamento OTA (over the air), o FOTA (firmware over the air), è un metodo per ottenere la ricezione di un nuovo software per un dispositivo embedded, ad esempio una centralina elettronica automobilistica, in modo remoto, non tramite uno strumento di assistenza collegato direttamente in un'officina. Ciò potrebbe richiedere alcune capacità di tester diagnostico integrato in una ECU di coordinamento e/o capacità di ripristino e autotest nel bootloader stesso.