6. Security Considerations (Considerazioni sulla sicurezza)
6. Security Considerations (Considerazioni sulla sicurezza)
La trasmissione di chiavi pubbliche grezze, come descritto in questo documento, offre vantaggi riducendo il sovraccarico di trasmissione via etere poiché le chiavi pubbliche grezze sono naturalmente più piccole di un intero certificato. Ci sono anche vantaggi dal punto di vista della dimensione del codice per l'analisi e l'elaborazione di queste chiavi. Le procedure crittografiche per associare la chiave pubblica al possesso di una chiave privata seguono anche le procedure standard.
Tuttavia, la principale sfida di sicurezza è come associare la chiave pubblica a un'entità specifica. Senza un'associazione sicura tra identificatore e chiave, il protocollo sarà vulnerabile agli attacchi man-in-the-middle. Questo documento presuppone che tale associazione possa essere effettuata fuori banda ed elenchiamo alcuni esempi nella Section 1. DANE [RFC6698] offre un tale approccio. Per affrontare queste vulnerabilità, le specifiche che fanno uso dell'estensione devono specificare come sono associati l'identificatore e la chiave pubblica. Oltre a garantire che l'associazione venga eseguita fuori banda, un'implementazione deve anche verificare lo stato di tale associazione.
Se le chiavi pubbliche sono ottenute utilizzando DANE, queste chiavi pubbliche sono autenticate tramite DNSSEC. L'uso di chiavi preconfigurate è un altro metodo fuori banda per l'autenticazione di chiavi pubbliche grezze. Mentre le chiavi preconfigurate non sono adatte per un ambiente e-commerce generico basato sul Web, tali chiavi sono un approccio ragionevole per molte implementazioni di oggetti intelligenti in cui esiste una stretta relazione tra il software in esecuzione sul dispositivo e l'endpoint di comunicazione lato server. Indipendentemente dal meccanismo scelto per la convalida della chiave pubblica fuori banda, deve essere effettuata una valutazione dell'approccio più adatto prima dell'inizio di una distribuzione per garantire la sicurezza del sistema.
Un attaccante potrebbe cercare di influenzare lo scambio di handshake per far selezionare alle parti tipi di certificato diversi da quelli che sceglierebbero normalmente.
Per questo attacco, un attaccante deve modificare attivamente uno o più messaggi di handshake. Se ciò accade, il client e il server calcoleranno valori diversi per gli hash dei messaggi di handshake. Di conseguenza, le parti non accetteranno i messaggi Finished dell'altro. Senza il master_secret, l'attaccante non può riparare i messaggi Finished, quindi l'attacco sarà scoperto.