Stabilire la fiducia tra un dispositivo e uno sviluppatore, segnale TLS vs X.509, GnuPG (o entrambi)

4

Supponiamo che volessi implementare un meccanismo di "sideload sicuro" per il tuo dispositivo incorporato in modo che il dispositivo possa stabilire la fiducia con gli sviluppatori di terze parti autorizzati. Gli sviluppatori avrebbero accesso locale al dispositivo, il firmware non è aggiornabile e contiene il sistema operativo (Linux), la funzione sideloading gli fornirebbe un modo per caricare le applicazioni che girano in cima

Questi erano i miei pensieri iniziali:

1.) Abilita / Disabilita il sideload sul dispositivo tramite un segnale remoto (TLS), il client avvierebbe la richiesta in base ad alcune azioni avviate dall'utente (il codice del client TLS è stato inserito nel firmware)

2.) Utilizzare un sistema come X.509 o GPG, pre-generare e incorporare un certificato nel firmware del dispositivo prima di spedirlo. Gli sviluppatori potrebbero quindi ricevere le chiavi dal fornitore del dispositivo che a sua volta potrebbero essere verificate dalla chiave pubblica / cert incorporata sul dispositivo. Ci sono ulteriori vantaggi come le date di scadenza e i metodi di revoca che funzionerebbero offline / OOB

3.) Usa entrambi 1 + 2

Non sono un esperto di sicurezza quindi non ho familiarità con i possibili modi di sfruttare il n. 1, tuttavia penso che il n. 2 sia intrinsecamente più sicuro del n. 1 in quanto l'instaurazione della fiducia è fuori dalla banda (doesn ' t usare la rete). A tale proposito, suppongo che il # 3 sia ancora migliore.

Qualche commento? Grazie

    
posta Zugdud 18.07.2016 - 17:23
fonte

1 risposta

2

Hai davvero bisogno di entrambi perché i due realizzano cose diverse.

  1. Ottenete comunicazioni sicure, che proteggono dall'intercettazione / iniezione di dati durante le comunicazioni.

  2. Ottieni confidenza con la terza parte sia una terza parte affidabile che la terza parte che ritieni che sia. (o in questo caso, una terza parte che è attendibile / autorizzata dal venditore).

Il primo è abbastanza diretto. Il 2 ° è un po 'più complicato e in cui molti venditori hanno commesso errori. Ad esempio, i molti dispositivi IoT in cui hanno utilizzato un approccio GPG, ma hanno commesso l'errore di utilizzare la stessa chiave privata gpg su tutti i dispositivi.

Quale tipo di soluzione utilizzi per # 2 dipenderà dai tuoi esatti bisogni e rischi. È necessario bilanciare la quantità di protezione richiesta con il livello intrinseco di complessità che introduce: non ha senso avere una soluzione veramente complessa e altamente sicura se la gestione di tale soluzione diventa così complessa da rendere più probabile un errore operativo.

Considera quali sono i tuoi requisiti e quali sono i rischi associati per determinare la protezione minima necessaria e poi guarda come gestirai la soluzione e assicurati che ciò possa essere fatto senza oneri eccessivi.

Non esiste una soluzione giusta. Dipenderà dal profilo di rischio che stai affrontando e da come strutturi le cose. Ad esempio, se vuoi che gli sviluppatori di terze parti gestiscano cose, ovvero che il software sia reso disponibile sui siti web gestiti dagli sviluppatori, probabilmente vorrai un approccio certificato firmato in cui fornisci a un terzo firmato un certificato firmato e il tuo dispositivo consentirà solo il caricamento di app di terze parti che hanno un certificato firmato in modo appropriato. Questo ti dà la possibilità di revocare l'approvazione revocando il certificato.

In alternativa, puoi utilizzare un approccio in cui autorizzi terze parti a inviare applicazioni a un sito che controlli. Valuterai e approveresti le app di terze parti e ne creerai solo quelle che approvi siano disponibili sul sito. In questo caso, probabilmente puoi semplicemente utilizzare un approccio basato su GPG, che potrebbe essere più facile da gestire.

Il primo approccio darebbe maggiore fiducia alle terze parti, ma probabilmente ridurrebbe il carico amministrativo per te. Il secondo richiederebbe meno fiducia, ma creerebbe più alti costi di amministrazione per voi perché avete assunto un ruolo di controllo. È anche probabile che ci sarebbe un aumento dei tempi di risposta, cioè dal rilascio di nuove versioni / patch. Tuttavia, avrebbe anche il vantaggio di un maggiore controllo e di una maggiore qualità, che potrebbe essere importante in quanto la qualità complessiva del dispositivo potrebbe essere giudicata facilmente dalla qualità delle app in esecuzione.

I due non si escludono a vicenda - puoi fare entrambe le cose, il che può essere giustificato in alcune circostanze - di nuovo, dipende dal tuo profilo di rischio e da quali livelli di rischio ti trovi a tuo agio.

    
risposta data 22.07.2016 - 00:56
fonte

Leggi altre domande sui tag