In golang TLS, se un intruso ottiene il certificato e il codice cliente, il MITM è possibile?

1

Sto ancora imparando come funziona TLS.

Ho creato un'app per client-server golang di esempio, quindi ho utilizzato cfssl per generare certificati.

Ora quello che ho fatto è creare una CA, quindi creare il certificato client e server firmato da tale CA.

La configurazione del server e del client è quasi la stessa eccetto l'organizzazione e l'unità organizzativa.

Ora il server riceverà il certificato pubblico del server, la sua chiave e il certificato CA, e il client riceverà anche il certificato pubblico del cliente e la sua chiave e il certificato CA.

La mia domanda è se un intruso è in grado di copiare il certificato pubblico del cliente e la sua chiave e anche il certificato CA fornito, potrebbe eseguire un attacco MITM tra il server e il client?

Modifica: lo scenario a cui stavo pensando è sia il client che il server all'interno della rete locale, ma il loro computer client ha una connessione Internet.

    
posta zer09 13.05.2017 - 06:56
fonte

1 risposta

1

Il certificato in TLS viene utilizzato per l'autenticazione, ad esempio per verificare che si stia parlando con il peer previsto. Questo vale sia per i certificati server che client. Ma nella maggior parte dei casi viene utilizzato solo un certificato del server per essere sicuro di scoraggiare gli attacchi man in the middle. Pertanto, la maggior parte degli scenari MITM si preoccupa solo di falsificare in qualche modo il certificato del server o di rubare la chiave privata del server per impersonarlo perfettamente.

Nel caso in cui solo la chiave privata dei certificati client sia compromessa, ma non la chiave privata dei certificati server, un attacco man in the middle non è possibile, a condizione che il client convalidi correttamente il certificato dei server. E non importa se entrambi i certificati sono firmati dalla stessa CA o meno.

Tuttavia, se il certificato client viene utilizzato dal server per autenticare il client e in base all'autenticazione corretta per consentire attività specifiche, è possibile un altro attacco. Poiché l'utente malintenzionato ha compromesso la chiave privata del certificato client, ora può impersonare perfettamente il client e compiere tutte le azioni sul server consentite per questo certificato.

La situazione è diversa se il client si basa erroneamente solo sulla catena di fiducia per la convalida dei certificati e non controlla che l'oggetto del certificato dei server corrisponda al nome del server. Questo errore di non controllare il soggetto o di non controllarlo in modo corretto potrebbe effettivamente essere trovato spesso in passato. In questo caso, l'utente malintenzionato potrebbe utilizzare il certificato client compromesso per falsificare il certificato del server originale all'interno di un uomo nell'attacco centrale poiché questo certificato è firmato da una CA attendibile e il soggetto sbagliato non viene rilevato dal client.

    
risposta data 13.05.2017 - 09:21
fonte

Leggi altre domande sui tag