Informazioni sull'autenticazione reciproca TLS per i bilanciatori di carico delle applicazioni

L'autenticazione reciproca Transport Layer Security ( mTLS ) garantisce una maggiore sicurezza per il bilanciatore di carico (ALB) dell'applicazione IBM Cloud®, consentendo l'autenticazione basata su certificati tra i client e il bilanciatore di carico, nonché tra il bilanciatore di carico e i server back-end.

Che cos’è l’ TLS e reciproco?

mTLS è un'estensione del protocollo standard TLS che richiede che entrambe le parti coinvolte in una connessione si autenticino reciprocamente utilizzando certificati digitali. Mentre l'autenticazione standard ( TLS ) richiede solo che il server presenti un certificato al client, l'autenticazione a due vie ( mTLS ) richiede che sia il client che il server presentino i propri certificati, creando così un meccanismo di autenticazione a due vie.

Grazie al supporto di mTLS per gli ALB, è possibile implementare l'autenticazione basata su certificati a due livelli:

Autenticazione front-end
Verificare l'identità dei client richiedendo loro di presentare certificati validi al momento della connessione al listener del bilanciatore di carico.
Autenticazione back-end
Autenticare il bilanciatore di carico presso i server back-end presentando un certificato client e, facoltativamente, verificare i certificati dei server back-end.

Funzionalità chiave

Il supporto ALB mTLS offre le seguenti funzionalità:

Verifica del certificato del client a livello di listener
Abilitare l'autenticazione client sul front-end del bilanciatore di carico configurando un certificato di autorità di certificazione (CA) per verificare i certificati client. La verifica garantisce che solo i client in possesso di certificati validi firmati dall'autorità di certificazione (CA) attendibile possano stabilire connessioni.
Supporto per l'elenco delle revoche dei certificati (CRL)
Caricare una CRL per verificare se i certificati client sono stati revocati, garantendo un ulteriore livello di sicurezza grazie al rifiuto dei certificati compromessi o scaduti.
Verifica del certificato del server back-end
Verificare i certificati dei server back-end durante le procedure di handshake TLS per garantire che il bilanciatore di carico si connetta solo a server back-end affidabili. La convalida aiuta a prevenire gli attacchi "man-in-the-middle".
Autenticazione client lato server
Presentare un certificato client proveniente dal bilanciatore di carico ai server back-end quando l'infrastruttura back-end richiede l'autenticazione a due fattori ( mTLS ), consentendo così un'autenticazione bidirezionale sicura.

Casi di utilizzo

mTLS L'autenticazione è utile in contesti in cui sono necessari livelli più elevati di sicurezza e verifica dell'identità:

Architetture di sicurezza zero-trust
Attuare i principi dello zero-trust richiedendo l'autenticazione basata su certificati per tutte le connessioni, assicurandosi che ogni client e ogni server siano verificati prima che venga stabilita la comunicazione.
Sicurezza API
Proteggi gli endpoint delle API richiedendo ai client di presentare certificati validi, impedendo l'accesso non autorizzato alle API sensibili e garantendo che solo le applicazioni autenticate possano utilizzare i tuoi servizi.
Comunicazione tra microservizi
Garantire la sicurezza delle comunicazioni tra i microservizi implementando l'autenticazione e la crittografia a livello di servizio ( mTLS ) sia sul front-end che sul back-end, assicurando che tutte le comunicazioni tra servizi siano autenticate e crittografate.
Requisiti di conformità
Soddisfare i requisiti di conformità normativa che impongono meccanismi di autenticazione forte, come quelli previsti nei settori dei servizi finanziari, sanitario o pubblico.
Convalida sul server back-end
Assicurati che il tuo bilanciatore di carico si connetta solo a server back-end legittimi verificandone i certificati, in modo da proteggerti da istanze back-end non autorizzate o compromesse.

Come funziona " mTLS " con i bilanciatori di carico delle applicazioni

Gli ALB supportano il protocollo " mTLS " sia per le connessioni dal client al bilanciatore di carico che da quest'ultimo al server. I flussi di lavoro riportati di seguito illustrano come avviene la convalida dei certificati durante ogni handshake TLS.

mTLS e front-end (a livello di listener)

Quando si abilita l'autenticazione client ( mTLS ) a livello di listener:

  1. Un client avvia una connessione di tipo “ HTTPS ” al bilanciatore di carico.
  2. Il bilanciatore di carico presenta il proprio certificato server al client.
  3. Il bilanciatore di carico richiede al client un certificato client.
  4. Il client presenta il proprio certificato al bilanciatore di carico.
  5. Il bilanciatore di carico verifica la corrispondenza tra il certificato del client e il certificato CA configurato.
  6. Se è configurata una CRL, il bilanciatore di carico verifica se il certificato è stato revocato.
  7. Se la verifica ha esito positivo, la connessione viene stabilita. In caso contrario, la connessione viene rifiutata.

mTLS e back-end (a livello di pool)

Quando si abilita l'autenticazione del server o la presentazione del certificato client a livello di pool:

  1. Il bilanciatore di carico avvia una connessione con un server back-end.
  2. Il server back-end presenta il proprio certificato al bilanciatore di carico.
  3. Se la verifica del server è abilitata, il bilanciatore di carico verifica la validità del certificato del server back-end rispetto al certificato CA configurato.
  4. Se il server back-end richiede l'autenticazione del client, il bilanciatore di carico presenta il proprio certificato client.
  5. Il server back-end verifica il certificato del client.
  6. Se la verifica ha esito positivo, la connessione viene stabilita e il traffico viene instradato verso il server back-end.

Supporto per l'elenco delle revoche dei certificati (CRL)

Una CRL è un elenco di certificati che sono stati revocati dall'autorità di certificazione prima della loro data di scadenza. I certificati possono essere revocati per vari motivi, tra cui:

  • La chiave privata è stata compromessa
  • Il certificato è stato rilasciato in modo errato
  • I diritti del titolare del certificato sono cambiati
  • Il certificato non è più necessario

Quando si configura una CRL per il listener, il bilanciatore di carico verifica ogni certificato client confrontandolo con l'elenco delle revoche durante la fase di handshake " TLS ". Se un certificato compare nella CRL, la connessione viene rifiutata, anche se il certificato è per il resto valido e correttamente firmato.

Il supporto CRL offre un ulteriore livello di sicurezza, garantendo che i certificati compromessi o invalidati non possano essere utilizzati per accedere ai tuoi servizi, anche se non sono ancora scaduti.

Prerequisiti

Prima di configurare " mTLS " per il proprio ALB, assicurarsi di soddisfare i seguenti requisiti:

  • Si dispone di un ALB con un profilo che supporta l' mTLS. Verificare la proprietà " mtls_supported " nel profilo del bilanciatore di carico.
  • Il tuo listener utilizza il protocollo HTTPS. mTLS è disponibile solo per i listener HTTPS.
  • Hai dei certificati validi in formato PEM memorizzati in Secrets Manager.
  • Disponi delle autorizzazioni IAM necessarie per gestire i bilanciatori di carico e i certificati di accesso in Secrets Manager.

Requisiti del certificato

Tutti i certificati utilizzati per mTLS devono soddisfare i seguenti requisiti:

  • I certificati devono essere in formato PEM.
  • I certificati devono essere archiviati in Secrets Manager e identificati tramite il proprio CRN.
  • I certificati CA utilizzati per la verifica devono includere la catena completa dei certificati (certificati radice e intermedi).
  • I certificati client presentati dal bilanciatore di carico ai server back-end devono includere la chiave privata.
  • I certificati devono essere validi (non scaduti) e debitamente firmati da un'autorità di certificazione (CA) affidabile.

Considerazioni importanti

Nell'implementazione, tenere presenti le seguenti considerazioni mTLS:

Responsabilità nella gestione dei certificati
L'utente è responsabile della gestione di tutti i certificati, comprese le operazioni di acquisizione, caricamento, rinnovo e revoca degli stessi. IBM Cloud non gestisce né rinnova automaticamente i certificati.
Convalida del certificato
È necessario verificare che i certificati siano correttamente firmati dalle autorità di certificazione previste e che i rapporti di fiducia siano correttamente stabiliti. Certificati non validi o non corrispondenti causano errori nell'handshake di TLS e l'indisponibilità del servizio.
Verifica del server back-end
La verifica del server back-end è disabilitata per impostazione predefinita per garantire la retrocompatibilità. Una volta abilitata questa opzione, è necessario assicurarsi che esista una relazione di fiducia valida tra il bilanciatore di carico e i server back-end caricando il certificato CA appropriato.
Configurazione a livello di pool
Sia la verifica del server back-end che l'autenticazione del client vengono configurate a livello di pool. Tutti i server back-end all'interno di un pool utilizzano la stessa configurazione. Se sono necessarie politiche di certificazione diverse per i vari server back-end, creare pool separati.
Aggiornamenti dei certificati
Affinché gli aggiornamenti o le revoche dei certificati abbiano effetto, potrebbe essere necessario riavviare il servizio di bilanciamento del carico. Pianificare gli aggiornamenti dei certificati durante le finestre di manutenzione per ridurre al minimo le interruzioni del servizio.
Più autorità di certificazione
Quando i server back-end appartenenti allo stesso pool sono firmati da autorità di certificazione (CA) diverse, è possibile fornire un file CA raggruppato contenente tutti i certificati radice e intermedi pertinenti. Tutti i server back-end sono considerati affidabili se la loro catena di certificati è collegata a una qualsiasi CA presente nel pacchetto.

Passi successivi