Configurazione del Protocollo di Autenticazione Kerberos
L’autenticazione Kerberos è un metodo sicuro e ampiamente adottato per verificare l’identità degli utenti attraverso reti distribuite. Fornisce una verifica reciproca, garantendo che sia l’utente che il servizio confermino la legittimità dell’altro, senza trasmettere le password in chiaro.
Che cos’è l’autenticazione Kerberos?
Questo protocollo, sviluppato al MIT, si basa su ticket criptati per autenticare gli utenti in modo sicuro e scalabile. È particolarmente diffuso nei sistemi IT aziendali, inclusi Windows Active Directory, Single Sign-On (SSO) e ambienti cloud ibridi.
A differenza dei protocolli di autenticazione di base, Kerberos non espone le credenziali sulla rete. Invece, si avvale di una terza parte fidata, chiamata Key Distribution Center (KDC), per emettere token basati su sessione.
Tutta la comunicazione è criptata utilizzando la crittografia a chiave simmetrica, proteggendo contro intercettazioni e attacchi di replay. Questo sistema elimina la trasmissione in chiaro delle password, rendendolo molto più resiliente contro il furto delle credenziali.
Perché è importante
L’autenticazione Kerberos costituisce l’ossatura della sicurezza di molti sistemi di controllo accessi aziendali. Semplifica la gestione degli utenti, riduce il rischio e consente flussi di lavoro di vero single sign-on, particolarmente preziosi in architetture grandi e multi-livello.
Oggi Kerberos supporta modelli di sicurezza moderni attraverso Active Directory, piattaforme containerizzate, applicazioni cloud-native e pipeline CI/CD. Strumenti come DataSunrise applicano il controllo degli accessi tramite servizi proxy che si integrano direttamente con Kerberos e le politiche di Active Directory.
Limitazioni comuni dell’autenticazione Kerberos
Pur migliorando significativamente la sicurezza dell’autenticazione, Kerberos presenta alcune limitazioni operative e architetturali:
| Limitazione | Impatto |
|---|---|
| Disponibilità del KDC | Se il Key Distribution Center (KDC) non è online o non è raggiungibile, tutti i tentativi di accesso falliranno a meno che non sia presente un metodo di autenticazione di backup. |
| Dipendenza dalla sincronizzazione del tempo | I ticket Kerberos si basano su orari sincronizzati. Se si verifica uno slittamento temporale tra i sistemi, l’autenticazione può fallire a causa di ticket scaduti o non validi. |
| Limitato a client affidabili | Kerberos non supporta accessi da dispositivi non affidabili o da sistemi al di fuori del dominio di rete fidato. |
| Punto unico di fallimento (KDC) | In modalità simmetrica, se il KDC viene compromesso, tutti i ticket di servizio e le chiavi di sessione possono essere esposti, rendendolo un obiettivo ad alto valore. |
| Proliferazione dei Service Principal | Ogni endpoint di servizio (hostname) richiede la propria voce nel keytab, aumentando la complessità in ambienti con molti servizi distribuiti. |
Come funziona l’autenticazione Kerberos
Ecco un flusso semplificato:
- L’utente effettua il login e richiede un ticket al Server di Autenticazione (AS).
- L’AS valida la richiesta ed emette un Ticket Granting Ticket (TGT).
- Il TGT viene inviato al Ticket Granting Server (TGS) per richiedere l’accesso a un servizio specifico.
- Il TGS emette un ticket di servizio, che l’utente invia al servizio di destinazione.
- Il servizio decifra il ticket, verifica la sessione e concede l’accesso.
Durante questo processo, vengono utilizzate chiavi condivise e token di sessione invece di trasmettere le password. Questo previene l’intercettazione dei pacchetti, mitiga il rischio di spoofing e consente l’autenticazione reciproca.
Casi d’uso moderni
L’autenticazione Kerberos continua ad evolversi. Essa alimenta:
- Single sign-on aziendale per applicazioni web, mobile e VPN
- Accesso sicuro ai database tramite proxy di autenticazione come DataSunrise
- Federazione tra domini e intermediazione di identità
- Modelli di rete Zero Trust in ambienti cloud ibridi
- Flussi di lavoro DevOps automatizzati con delega delle credenziali
Configurazione e Integrazione
La configurazione di Kerberos richiede l’integrazione con un servizio di directory (ad es. Active Directory), strumenti client (come generatori di keytab) e una corretta configurazione tra i sistemi. Di seguito, un breve schema:
1. Configurazione utente in Active Directory
- Creare o individuare un utente AD con una password permanente e senza scadenza.
- Assegnare gli SPN (Service Principal Names) rilevanti utilizzando
ktpassosetspn.
2. Generazione dei file Keytab
Utilizzare lo strumento ktpass per generare le voci keytab. Questi file vengono memorizzati in forma crittografata e utilizzati dai servizi per l’autenticazione basata su ticket. Esempio:
ktpass /princ [email protected] /mapuser user1_backend /pass P@ssword123 \ /crypto all /ptype KRB5_NT_PRINCIPAL /out datasunrise.keytab -setupn
3. Configurazione dei client Linux
Installare i pacchetti necessari ed editare il file /etc/krb5.conf per riflettere il dominio, il KDC e le impostazioni del realm. Assicurarsi che non esistano righe commentate utilizzando il simbolo #.
4. Integrazione del Proxy Kerberos
DataSunrise può operare come proxy di autenticazione. Supporta implementazioni sia su Windows che su Linux utilizzando Kerberos, abilitando l’applicazione sicura degli accessi attraverso vari servizi e database.
5. Configurazione su base Windows
Utilizzare setspn per registrare gli SPN MSSQL:
setspn -A MSSQLSvc/proxy-host:proxy-port proxy-host setspn -L proxy-host
Utilizzare select auth_scheme from sys.dm_exec_connections where session_id=@@spid per verificare l’autenticazione MSSQL. Se necessario, procedere alla risoluzione dei problemi tramite la guida SSPI di Microsoft, disponibile qui.
Vantaggi in termini di sicurezza
Kerberos protegge contro:
- Intercettazioni delle password sulla rete
- Attacchi di replay mediante token di sessione
- Accessi non autorizzati da endpoint non affidabili
Consente inoltre sessioni di autenticazione limitate nel tempo, delega della fiducia e tracciabilità, elementi critici per la conformità a normative come GDPR, HIPAA e SOX.
Verifica dell’autenticazione Kerberos con PostgreSQL
Una volta configurato Kerberos e registrato il service principal, è possibile verificare il corretto funzionamento dell’autenticazione utilizzando psql su un client Linux. Il seguente esempio mostra un accesso sicuro senza richiedere una password:
# Innanzitutto, ottenere un TGT (Ticket Granting Ticket) valido kinit [email protected] # Confermare che il ticket è stato emesso klist # Connettersi a PostgreSQL utilizzando Kerberos psql "host=db.domain.com port=5432 dbname=exampledb user=user1_backend sslmode=prefer gssencmode=prefer"
Se l’operazione va a buon fine, la connessione verrà stabilita senza richiedere una password, confermando che l’autenticazione Kerberos è attiva e il ticket di sessione è valido.
Assicurarsi che PostgreSQL sia compilato con il supporto GSSAPI e configurato in pg_hba.conf con una voce adeguata, ad esempio:
# Abilitazione dell'autenticazione basata su GSSAPI host all all 0.0.0.0/0 gss include_realm=1 krb_realm=DOMAIN.COM
Questa configurazione garantisce che il vostro database PostgreSQL rispetti l’autenticazione Kerberos e imponga accessi sicuri senza credenziali, ideale per la sicurezza a livello aziendale e il controllo centralizzato degli accessi.
Conclusione
L’autenticazione Kerberos è una soluzione affidabile e basata su standard per la gestione sicura delle identità in ambienti aziendali. Quando implementata correttamente, rafforza il controllo degli accessi, semplifica la conformità normativa e riduce il rischio legato alle credenziali.
DataSunrise supporta funzionalità di proxy di autenticazione sicura e si integra perfettamente con ambienti Kerberos, sia on-premises che nel cloud. Richiedi una demo per scoprire come estendere l’autenticazione basata su Kerberos ai vostri asset critici del database.
