Comprendere TLS reciproco in Google Cloud

TLS comune (mTLS) è un protocollo standard di settore per l'autenticazione reciproca tra un client e un server. Il protocollo mTLS garantisce che, sia il client sia il server, a ogni estremità della connessione di rete, dichiarino di essere verificando che entrambi dispongano della chiave privata associata al certificato client.

Che cos'è un certificato client?

Un certificato client, anche noto come certificato TLS (Transport Layer Security), è un file che contiene informazioni importanti per la verifica dell'identità di un dispositivo. Queste informazioni includono la chiave pubblica, una dichiarazione dell'utente che ha emesso il certificato (i certificati possono essere emessi da autorità di certificazione o autofirmati) e la data di scadenza del certificato.

In che modo le API di Google convalidano l'identità del dispositivo

Il protocollo TLS utilizza una tecnica chiamata infrastruttura a chiave pubblica (PKI), che si basa su una coppia di chiavi asimmetriche: una chiave pubblica e una chiave privata. Tutto ciò che è criptato con la chiave privata può essere decriptato solo con la chiave pubblica. Le API Google Cloud utilizzano il protocollo TLS per verificare l'identità di un dispositivo decriptando il messaggio criptato dalla chiave privata tramite la chiave pubblica del certificato durante l'handshake mTLS. La decriptazione riuscita dimostra la proprietà della chiave privata, disponibile solo sui dispositivi attendibili.

Per abilitare il processo di convalida e handshake mTLS, il client deve:

  • Stabilisci una connessione mTLS con le API di Google utilizzando gli endpoint API specifici per mTLS. Gli endpoint specifici per mTLS hanno il seguente formato: [service].mtls.googleapis.com

  • Scopri e utilizza il certificato del dispositivo durante l'handshake mTLS. Se utilizzi la verifica degli endpoint per il deployment dei certificati, questo tipo di certificato viene rilevato e utilizzato automaticamente dai client supportati.

Il seguente diagramma illustra l'handshake mTLS tra un client e un server API di Google:

handshake mTLS tra un client e un server API di Google

Passaggi successivi