Protocollo Kerberos: il guardiano alle porte di internet

Che protocollo di sicurezza usano i sistemi operativi dei nostri computer durante le connessioni?

Quando ci connettiamo a un servizio online e facciamo il login, inseriamo un nome utente e una password e li inviamo a un server. Così facendo ci esponiamo ogni volta a internet che sicuramente è uno strumento che ha rivoluzionato il mondo ma comporta anche dei rischi, alle volte davvero grossi. A prescindere, quando navighiamo su internet il primo problema che il nostro sistema affronta è quello della sicurezza del canale di comunicazione ovvero se la rete attraverso la quale inviamo i dati è sicura o meno e quali rischi presenta.

Uno degli strumenti principali con cui i nostri dati vengono protetti è la crittografia. In parole povere le informazioni che inviamo non vengono trasmesse in maniera “cruda” così come le ha scritte l’utente ma vengono rese indecifrabili attraverso complessi algoritmi matematici. Perchè un algoritmo riesca nel suo intento prende il messaggio dell’utente (in questo caso nome utente e password) e ci applica sopra una chiave. Facciamo un esempio pratico: A vuole inviare un messaggio a B, l’algoritmo di crittografia genera la chiave 7. Il messaggio di A era “ciao” e applicandoci la chiave ogni lettera verrà spostata di 7 posizioni nell’alfabeto diventando così “jphv” (c + 7 → j, a + 7 → p e così via). A questo punto il sistema B per decifrare quel messaggio applicherà la sua di chiave che gli è stata comunicata in precedenza in un canale sicuro da A e che equivale a -7. Quindi ogni lettera di “jphv” verrà retrocessa di 7 posizioni nell’alfabeto ottenendo così il messaggio di partenza. La chiave di A in questo caso si chiama chiave pubblica perché è quella utilizzata per crittografare il messaggio in uscita mentre quella di B che decifra il messaggio in entrata si chiama chiave privata. Ovviamente questo era solo un esempio semplificato per far capire i concetti base della crittografia, gli algoritmi effettuano operazioni molto più complesse rispetto a quelle descritte e chiave pubblica e privata sono sempre differenti. Altra cosa importante è che un messaggio crittografato con la chiave pubblica può essere decifrato solo ed esclusivamente con quella privata che solo il sistema conosce e non passa attraverso alcun canale pubblico, solo quello sicuro, in modo che se la chiave pubblica dovesse cadere nelle mani sbagliate questo non comporti alcun rischio.

Qui la domanda: come fa il sistema a capire se il canale attraverso cui comunicare le chiavi è sicuro o meno? E soprattutto, chi e cosa assicura il sistema che chi c’è dall’altra parte del canale di comunicazione è realmente il server corretto a cui inviare le informazioni? Che non si sia verificata nessuna intrusione?

Il protocollo Kerberos risolve questo problema. Quando noi ci connettiamo ed eseguiamo il login per avere accesso a qualche servizio, i nostri nome utente e password non vengono inviati direttamente al fornitore del servizio ma bensì a un terzo server e assieme a loro vengono inviati l’indirizzo (praticamente un codice identificativo) della macchina inviante e il tempo di partenza del pacchetto di informazioni. Questo terzo server è un Authentication Server (AS), che ricevute le informazioni inviate dall’utente le verifica: controlla che l’indirizzo sia quello effettivamente appartenente al client (chi richiede il servizio) e che il tempo di durata di trasmissione del pacchetto non equivalga a valori anomali (significherebbe che la trasmissione è durata più del dovuto e questo potrebbe significare che si è verificata un’intrusione o che qualcosa è andato storto quindi il pacchetto di informazioni va scartato). Se il pacchetto risulta valido l’AS comunicherà a un quarto server, un TGS (Ticket Granter Server, un erogatore di ticket), il via libera.

Il TGS invierà all’utente un’informazione (ticket) con la quale quest’ultimo potrà autenticarsi al Service Server (SS, il fornitore del servizio) dimostrando di essere effettivamente il richiedente.

Quando il Service Server avrà ricevuto le informazioni risponderà al client con lo stesso sistema per dimostrare anch’egli di essere effettivamente chi dice di essere.

Inoltre i canali di comunicazione tra l’utente e l’AS, tra l’AS e il TGS e tra quest’ultimo e il SS sono tutti sicuri perché di proprietà di Kerberos, detta in maniera semplicistica.
Per rafforzare ulteriormente la sicurezza di questi passaggi tutti i pacchetti vengono trasmessi crittografati. I server intermedi (AS e TGS) applicano a loro volta una chiave aumentando così il livello di cifratura del messaggio e rendendolo indecifrabile ad elementi non autorizzati. Le chiavi inoltre non sono mai le stesse tra una sessione l’altra e contengono riferimenti al giorno e all’ora in cui viene richiesto il servizio in modo da non essere mai uguali tra loro ne tra una sessione a un’altra.

Così come Kerberos, la bestia mitica a tre teste, stava di guardia alle porte dell’inferno, anche il protocollo sta di guardia alle porte di internet, che può rivelarsi un inferno virtuale se solo una nostra password finisse nelle mani di un malintenzionato.

Donazioni

Mantenere un sito ha i suoi costi. Dona un importo a tuo piacimento a partire da 1€ per aiutare lo staff di richMatics ad offrirti contenuti sempre migliori

€1,00

Annunci

Scritto da Richard Sulollari

Studente di informatica, 20 anni, fondatore e amministratore di richMatics. Sul sito tratto vari argomenti sulla tecnologia cercando di essere il più chiaro possibile per renderli alla portata di tutti.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.