Esiste un metodo sicuro per distribuire le chiavi ai nodi diskless avviati dalla rete?

1

Ho un po 'di un problema di "fiducia iniziale". Stiamo utilizzando CoreOS per eseguire Kubernetes e proteggere sia l'API etcd che i server API di Kubernetes utilizzando i certificati client. Stiamo usando iPXE per avviare tutto tranne i server etcd.

Il problema che sto cercando di superare è come distribuire le chiavi dei clienti in modo sicuro e automatizzato? Esistono metodi efficaci per convalidare in modo univoco e sicuro una macchina senza archiviare nulla sul disco?

I nostri requisiti impongono che la soluzione possa essere utilizzata su entrambi i nodi fisici e virtuali e consentano scalabilità dinamica e on-demand, il che significa che i dispositivi fisici non sono un'opzione.

I miei colleghi hanno suggerito di utilizzare i firewall per proteggere un nodo che ospita le chiavi (ad esempio un server Web), ma sono convinto che ci sia un'opzione più sicura. Sospetto che possa avere qualcosa a che fare con il TPM, ma la mia attuale ricerca non ha ancora fornito esempi pratici.

Grazie in anticipo per eventuali risposte / commenti / modifiche!

    
posta Jason Murray 01.05.2016 - 16:47
fonte

1 risposta

1

Fondamentalmente, per avere fiducia in un computer, è necessario verificare che sappia qualcosa che solo il computer che si aspetta sappia. Questo è il modo in cui funzionano tutti i certificati: si presuppone che, poiché hanno firmato qualcosa con una chiave che solo loro potrebbero eventualmente sapere, in realtà è la persona con cui si desidera parlare.

Lo stesso vale per i computer: il computer deve avere qualcosa solo se sa di sapere che sa di autenticarlo. Usando le persone come esempio, ci sono tre fattori di autenticazione (due dei quali sono usati per "autenticazione a due fattori"): qualcosa che conosci, qualcosa che hai e qualcosa che sei.

  • Qualcosa che sai: questa sarebbe una chiave [privata] memorizzata sul disco. Hai dichiarato che non vuoi questo, quindi questo è un no-go. (Per gli umani, questa è una sfida di autenticazione nome utente / password).

  • Qualcosa che hai: un token / chiave USB PKI potrebbe essere usato per l'autenticazione con l'idea che tu abbia fisicamente inserito questa chiave nel computer di cui ti vuoi fidare. La chiave in sé non può essere copiata, ma è vulnerabile al malware che esegue iPXE in una macchina virtuale, dandogli accesso al token, ma poi intercettando tutti gli accessi alla memoria e simili (ma, di nuovo, questa è sempre una minaccia? ).

  • Qualcosa che sei: ad es. Un indirizzo MAC o altro ID univoco. Questo, tuttavia, è facile da falsificare perché se lo sai che può essere copiato. Negli umani, questo è come il DNA, una retina o un'impronta digitale - qualcosa che sei e non puoi [ragionevolmente] copiare. Anche i computer ce l'hanno, ma è molto più difficile provarlo su una rete senza degradare a qualcosa che conosci rapidamente.

Per fare questo, devi davvero mettere una chiave sul computer ( qualcosa che conosci ) o inserire un token PKI nel computer ( qualcosa che hai ) .

    
risposta data 01.05.2016 - 17:10
fonte