Una soluzione è richiedere che tutti i firmware siano firmati e che il dispositivo verifichi la firma prima di scrivere quell'immagine del firmware nella sua memoria; il mio laptop attuale ha un'opzione per abilitarlo nel suo BIOS (l'opzione è permanente - se lo abilito ora non posso più disabilitarlo, ecco perché non l'ho abilitato).
Tuttavia ci sono molti svantaggi:
-
induce un falso senso di sicurezza, in quanto non sappiamo in che modo il produttore protegge la chiave privata utilizzata per la firma e non mi aspetto che ammettano il loro fallimento e invii un bel "Scusa se il codice firmware è trapelato "email a ciascun cliente; anche se la chiave non ha perso, l'NSA e altre agenzie malvagie potrebbero averlo rubato e nessuno lo saprebbe.
-
rendere impossibile il firmware personalizzato - mentre io sto bene con il fatto che sono aziende a scopo di lucro e il loro firmware è chiuso, non sto certo bene che mi impediscano di installare quello che voglio su i miei dispositivi personali per cui ho pagato del denaro, per alcuni cosiddetti "security" anche se la NSA ha già rubato la chiave da loro (ricordo di aver installato un BIOS personalizzato sul mio vecchio Thinkpad perché quello originale aveva una whitelist PCI ID scheda wireless che mi impediva dalla modifica del loro obsoleto 802.11g per un modello 11n, qualcosa di impossibile con i controlli della firma del firmware in atto).
Un'altra soluzione migliore consiste nel richiedere un intervento fisico (premendo un pulsante hardware sul dispositivo stesso) per consentire l'installazione del firmware, che non presenta gli inconvenienti sopra riportati; il controllo di autenticità del firmware deve essere eseguito dall'utente ed è libero di installare ciò che desidera. Se l'utente desidera installare il firmware, preme il pulsante e il dispositivo consente l'installazione di un firmware prima di bloccarsi di nuovo (o il timeout dopo un minuto se non è stato installato nulla).
L'unico inconveniente di questa opzione è che ogni dispositivo avrebbe il proprio pulsante hardware, su un tipico computer desktop c'è il BIOS / EFI (che aggiornerà spesso tutto il resto incorporato nella scheda: NIC, controller RAID "falso", ecc. ), possibilmente l'opzione ROM della scheda video di terze parti (chiamata anche video BIOS), controller RAID di terze parti o NIC, unità di archiviazione, ecc.
Mentre tutto sulla scheda poteva essere collegato a un singolo pulsante, tutto l'hardware di terze parti avrebbe il proprio pulsante, a volte difficile da premere a causa dell'hardware che si trova all'interno del case del computer. Questo non è troppo problematico in quanto gli utenti incapaci di aprire un case del computer di solito non aggiornano il firmware comunque a causa del "rischio" (è minimo ma creare dischi DOS avviabili fa paura) e complessità.
Una soluzione teorica consisterebbe nel richiedere che tutte le porte comunemente utilizzate (SATA, PCIe, ecc.) includano una linea dedicata "firmware flash" che sia collegata al pulsante flash firmware principale della scheda.