La cosa è ormai nota: a una dichiarazione di un ricercatore di Cambridge di aver trovato una backdoor è seguita una dichiarazione di segno contrario da parte di un “esperto” (lo metto fra parentesi non perché penso che non lo sia, ma perché non sono riuscito a capire chi sia questo Robert David Graham, a parte un blogger, e perché al suo post sia stato dato tanto risalto). Per completezza, il chip di cui si parla è questo, mentre qui c’è il commento di Skorobogatov a tutta la vicenda. Devo premettere che concordo con quasi tutte le considerazioni di Graham sul chip in sé, compresa l’ambiguità del termine “militare”. Molti circuiti integrati vengono vengono prodotti da tempo in due versioni, una normale e una “per uso militare”, che vuole dire semplicemente che possono operare in condizioni ambientali più sfavorevoli, in particolare a temperature più alte o più basse. È solo una questione di standard più elevati tipicamente richiesti in quel contesto. Dire che sono “chip militari” è come dire che un circuito SN 5400, che comprende quattro porte logiche NAND e niente di più, è un “chip militare” solo perché sopporta temperature più elevate rispetto alla sua controparte “civile” SN7400. Come anche è facile che la backdoor non sia stata messa “apposta” per rubare informazioni ai militari americani…
Ma il mio accordo con lui finisce qui. Il primo punto importante è che, come Graham stesso dice, i chip in discussione sono oggetti complessi, e se devono essere utilizzati su un sistema critico (e alla fine, chip militari o no, se vengono utilizzati in ambito militare è facile che finiscano in contesti critici) dovrebbero essere sottoposti allo stesso livello di assurance a cui sono sottoposti certamente i componenti software. Questo è il senso delle dichiarazioni di Skorobogatov. Altrimenti si tratta del classico gigante con i piedi di argilla. Invece, c’è il rischio che oggetti così complessi vengano davvero utilizzati con la stessa (poca, suppongo) attenzione con cui viene utilizzato un circuito integrato più semplice.
È chiaro anche che si tratti effettivamente di una backdoor: storicamente le backdoor sono porte di accesso nascoste che lo sviluppatore lascia nei propri prodotti, non c’è necessariamente un’intenzione malevola. Anzi, le backdoor sono sempre state considerate pericolose soprattutto perché potevano essere scoperte da malintenzionati accidentalmente. Quindi che siano state messe intenzionalmente dai cinesi non cambia molto, anche perché non credo che per questo venga messo in discussione l’interesse della Cina ad accedere a informazioni riservate, né la pericolosità della backdoor in sé. Al più, si può dire che fortunatamente i cinesi non ci avevano pensato, ma sicuramente ci potranno pensare da adesso in poi.
Ma c’è anche un’altra lezione che è bene ricordare. In molti contesti dell’ingegneria e dell’informatica ci viene insegnato a pensare “per strati” (layer): in fase di progettazione o programmazione di uno strumento, uno strato sottostante mi fornisce delle funzionalità che, in base alle specifiche dichiarate, io utilizzo senza preoccuparmi di come sono realizzate, e a mia volta realizzo funzionalità che fornisco ad uno strato superiore, senza preoccuparmi di che uso ne farà, specifiche a parte. Nel campo della sicurezza questo non funziona, perché di fatto le specifiche non coprono quasi mai esplicitamente tutti i problemi di sicurezza. In questo caso, esiste un meccanismo di cifratura dei dati caricati sul chip: io non mi posso disinteressare di come è realizzato il chip e di come mi fornisce queste funzionalità, perché se la realizzazione è insicura, anche la sicurezza che io mi aspetto ad un livello più alto sparisce. Non mi stupirei quindi se oggetti come questi chip venissero utilizzati all’interno di oggetti soggetti a certificazione di sistema, minando magari tutto lo sforzo fatto per certificare il resto del sistema, software compreso. Nel caso specifico della backdoor scoperta naturalmente, il rischio è mitigato dalla necessità di accesso fisico al chip, ma la mancanza di assurance per un oggetto complesso rimane un problema.
Aggiornamento: il produttore del chip ha rilasciato un commento alla questione. Sarà un limite del mio inglese, ma la frase cruciale non mi è chiara, né nel documento ufficiale, né nel commento che ne fa The Register: “The internal test mode can only be entered in a customer-programmed device when the customer supplies their passcode, thus preventing unauthorized access by Microsemi or anyone else“. Per come la leggo io, questo vuole dire che per accedere all’internal test mode in un chip programmato, prima bisogna dare la password, ma questo naturalmente escluderebbe che si tratti di una backdoor anche potenziale. A questo punto non resta che aspettare ulteriori chiarimenti da Cambridge 😉
Ottimo articolo, complimenti!