Manuale di Sun Enterprise Authentication Mechanism

Accesso a un servizio con SEAM

Per poter accedere a un determinato servizio su un determinato server, l'utente deve ottenere due cose. La prima è la credenziale per il TGT. Quando il servizio che deve emettere il ticket (TGS) decifra la credenziale, esso crea una seconda credenziale per il server a cui l'utente ha richiesto l'accesso. Questa seconda credenziale può quindi essere usata per richiedere l'accesso al servizio sul server. Se il server decifra correttamente la seconda credenziale, esso concede l'accesso all'utente. Questo processo è descritto in maggiore dettaglio qui di seguito.

Acquisizione di una credenziale per un TGS

  1. Per iniziare il processo di autenticazione, il client invia una richiesta al server di autenticazione per un nome principale di un utente. Questa richiesta viene inviata non cifrata, poiché non contiene informazioni che richiedono protezione.

  2. Quando il servizio di autenticazione riceve la richiesta, esso ricerca il nome principale dell'utente nel database del KDC e, se lo trova, ottiene la chiave privata per quel nome principale. Il servizio di autenticazione genera quindi una chiave di sessione che verrà usata dal client e dal servizio che ha emesso il ticket (TGS) (chiave di sessione 1) e un ticket per il TGS (ticket 1). Questo ticket è detto TGT. Sia la chiave di sessione che il ticket vengono cifrati usando la chiave privata dell'utente e le informazioni vengono rinviate al client.

  3. Il client utilizza queste informazioni per decifrare la chiave di sessione 1 e il ticket 1 usando la chiave privata per il nome principale dell'utente. Poiché la chiave privata dovrebbe essere nota solo all'utente e al database del KDC, le informazioni contenute nel pacchetto dovrebbero essere sicure. Il client memorizza le informazioni nella cache delle credenziali.

Normalmente, durante questa procedura il sistema richiede all'utente di inserire la sua password. Se la password inserita è uguale a quella utilizzata per la creazione della chiave privata memorizzata nel database del KDC, il client può decifrare correttamente le informazioni inviate dal servizio di autenticazione. A questo punto il client dispone di una credenziale da usare con il TGS ed è pronto per richiedere una credenziale per un server.

Figura 7-2 Acquisizione di una credenziale per il TGS

Graphic

Acquisizione di una credenziale per un server

  1. Per richiedere l'accesso a un server specifico, un client deve prima aver ottenuto una credenziale per quel server dal servizio di autenticazione (vedere "Acquisizione di una credenziale per un TGS"). Il client invia quindi al TGS una richiesta che include il nome principale del servizio, il ticket 1 e i dati di autenticazione cifrati con la chiave di sessione 1. Il ticket 1 era stato originariamente cifrato dal servizio di autenticazione usando la chiave di servizio del TGS.

  2. Poiché il TGS conosce la sua chiave di servizio, esso può decifrare il ticket 1. Le informazioni incluse nel ticket 1 includono la chiave di sessione 1, per permettere al TGS di decifrare i dati di autenticazione. A questo punto, il nome principale dell'utente viene autenticato presso il TGS.

  3. Una volta effettuata l'autenticazione, il TGS genera una chiave di sessione per il nome principale dell'utente e per il server (chiave di sessione 2) e un ticket per il server (ticket 2). La chiave di sessione 2 e il ticket 2 vengono quindi cifrati usando la chiave di sessione 1. Poiché la chiave di sessione 1 è nota solo al client e al TGS, queste informazioni sono sicure e possono essere trasmesse con sicurezza attraverso la rete.

  4. Quando il client riceve questo pacchetto di informazioni, esso lo decifra usando la chiave di sessione 1, che aveva memorizzato nella cache delle credenziali. Il client ha così ottenuto una credenziale da utilizzare con il server, ed è pronto per richiedere l'accesso a un determinato servizio su quel server.

Figura 7-3 Acquisizione di una credenziale per un server

Graphic

Accesso a un server specifico

  1. Per richiedere l'accesso a un servizio specifico, il client deve prima ottenere una credenziale per il TGS dal server di autenticazione, e una credenziale per il server dal TGS (vedere "Acquisizione di una credenziale per un TGS" e "Acquisizione di una credenziale per un server"). Il client può inviare una richiesta al server includendovi il ticket 2 e altri dati di autenticazione. I dati di autenticazione vengono cifrati usando la chiave di sessione 2.

  2. Il ticket 2 era stato cifrato dal TGS con la chiave di servizio associata al servizio richiesto. Poiché la chiave di servizio è nota al nome principale del servizio, il servizio può decifrare il ticket 2 e acquisire la chiave di sessione 2. La chiave di sessione 2 può quindi essere usata per decifrare i dati di autenticazione. Se i dati di autenticazione vengono decifrati correttamente, il client ottiene l'accesso al servizio.

Figura 7-4 Accesso a un servizio specifico

Graphic