Kerberos V5 è un sistema ad autenticazione singola. Questo significa che è sufficiente inserire la propria password una sola volta perché i programmi Kerberos V5 effettuino automaticamente le operazioni di autenticazione (ed eventualmente di cifratura); Kerberos è infatti integrato in tutti i programmi di rete più diffusi. Le applicazioni Kerberos V5 sono versioni di programmi di rete UNIX preesistenti a cui sono state aggiunte le funzioni di Kerberos.
Ad esempio, quando un utente utilizza un programma basato su Kerberos per connettersi a un host remoto, il programma, il KDC e l'host remoto eseguono una serie di negoziazioni rapide. Se queste negoziazioni vengono completate, significa che il programma ha dimostrato l'identità dell'utente all'host remoto, e quest'ultimo gli ha concesso l'accesso.
Si noti che i comandi basati su Kerberos provano prima ad eseguire l'autenticazione con Kerberos. Se l'autenticazione Kerberos non riesce, viene generato un errore o viene provata l'autenticazione UNIX, a seconda delle opzioni specificate con il comando. Per informazioni più dettagliate, vedere la sezione Kerberos Security nelle pagine man per i comandi Kerberos.
I servizi di rete basati su Kerberos sono i programmi che si collegano ad altri sistemi su Internet. Questi programmi si trovano in /usr/krb5/bin; impostare la variabile PATH in modo che questi programmi precedano le versioni non basate su Kerberos:
ftp
rcp
rlogin
rsh
telnet
Questi programmi offrono tutte le funzioni originali delle versioni corrispondenti non basate su Kerberos. Dispongono anche di funzioni aggiuntive che utilizzano in modo trasparente i ticket Kerberos degli utenti per negoziare l'autenticazione (ed eventualmente la cifratura) con l'host remoto. Nella maggior parte dei casi, l'utente noterà solo che non dovrà più digitare la password per utilizzarli, poiché Kerberos dimostrerà per suo conto la sua identità.
I programmi di rete Kerberos V5 offrono la possibilità di:
Inoltrare i propri ticket a un altro host (se i ticket acquisiti inizialmente erano inoltrabili)
Cifrare i dati trasmessi tra il proprio sistema e l'host remoto
In questa sezione, si presume che l'utente abbia già una buona conoscenza delle versioni non basate su Kerberos di questi programmi, e verranno descritte solo le funzionalità aggiunte dal package Kerberos V5. Per informazioni dettagliate dei comandi qui descritti, vedere le relative pagine man.
Qui di seguito sono elencate le opzioni Kerberos aggiunte a ftp, rcp, rlogin, rsh e telnet:
Prova ad eseguire un login automatico usando i ticket esistenti dell'utente. Utilizza il nome utente restituito da getlogin(), a meno che questo sia differente dall'ID utente corrente. (Per maggiori dettagli, vedere la pagina man telnet(1).)
Inoltra un ticket non-reinoltrabile a un host remoto. Questa opzione non può essere usata insieme all'opzione -F (vedere sotto) nello stesso comando.
L'inoltro di un ticket può essere utile se si ritiene di doversi autenticare per altri servizi basati su Kerberos su un terzo host; ad esempio, se si desidera eseguire un rlogin su un altro sistema e quindi un altro rlogin da qui su un terzo sistema.
L'uso dei ticket inoltrabili è necessario quando la propria directory iniziale sull'host remoto è attivata via NFS mediante Kerberos V5; diversamente, non sarà possibile accedere alla propria directory iniziale. (Ad esempio, si supponga che un utente esegua il login inizialmente su Sistema 1. Da Sistema 1, egli esegue rlogin nel proprio sistema iniziale, Sistema 2, che attiva la sua directory iniziale da Sistema 3. Senza utilizzare l'opzione -f o -F con rlogin, l'utente non potrà accedere alla sua directory iniziale, perché il suo ticket non potrà essere inoltrato a Sistema 3.)
Nella configurazione predefinita, kinit ottiene TGT inoltrabili; è possibile però che la propria configurazione SEAM sia impostata diversamente.
Per maggiori informazioni sull'inoltro dei ticket, vedere "Inoltro dei ticket con -f e -F".
Inoltra una copia reinoltrabile del TGT dell'utente a un sistema remoto. Questa opzione è simile a -f (vedere sopra), ma permette di accedere a un ulteriore (quarto o quinto) sistema. L'opzione -F può perciò essere considerata un sovrainsieme dell'opzione -f. L'opzione -F non può essere usata insieme all'opzione -f nello stesso comando.
Per maggiori informazioni sull'inoltro dei ticket, vedere "Inoltro dei ticket con -f e -F".
Richiede i ticket per l'host remoto nel settore specificato, anziché determinare il settore direttamente usando il file krb5.conf.
Usa i ticket dell'utente per autenticarlo presso l'host remoto, ma non esegue automaticamente il login.
Specifica il meccanismo di sicurezza GSS-API da utilizzare, in base al contenuto del file /etc/gss/mech. Il meccanismo predefinito è kerberos_v5.
Cifra la sessione corrente.
Disabilita il tipo di autenticazione specificato con tipo_autenticazione.
La Tabella 6-1 indica quali comandi hanno le opzioni specificate (una "X" indica che il comando dispone dell'opzione).
Tabella 6-1 Opzioni Kerberos per i comandi di rete
|
ftp |
rcp |
rlogin |
rsh |
telnet |
---|---|---|---|---|---|
-a |
|
|
|
|
X |
-f |
X |
|
X |
X |
X |
-F |
|
|
X |
X |
X |
-k |
|
X |
X |
X |
X |
-K |
|
|
|
|
X |
-m |
X |
|
|
|
|
-x |
|
X |
X |
X |
X |
-X |
|
|
|
|
X |
Oltre a questo, ftp permette di impostare il livello di protezione per le sessioni:
Imposta il livello di protezione "clear" (nessuna protezione). È l'impostazione predefinita.
Imposta il livello di protezione "private". La trasmissione dei dati viene protetta a livello di riservatezza e integrità mediante la cifratura. È possibile, tuttavia, che il servizio di riservatezza non sia disponibile per tutti gli utenti di SEAM.
Imposta il livello di protezione "safe". La trasmissione dei dati viene protetta a livello di integrità mediante un checksum crittografico.
È anche possibile impostare il livello di protezione dal prompt ftp specificando protect seguito da uno dei livelli di protezione sopra descritti (clear, private o safe).
Come descritto in "Introduzione ai comandi basati su Kerberos", alcuni comandi permettono di inoltrare i ticket con l'opzione -f o -F. L'inoltro dei ticket permette di "concatenare" le transazioni di rete; è possibile, ad esempio, eseguire rlogin in un sistema e quindi un altro rlogin da questo sistema ad un terzo. L'opzione -f permette di inoltrare un ticket, mentre l'opzione -F permette di reinoltrare un ticket inoltrato.
Nella Figura 6-2, l'utente davide ottiene un TGT non inoltrabile con kinit. (Il ticket non è inoltrabile perché non è stata specificata l'opzione -f.) Nello scenario 1, egli può eseguire rlogin sul sistema B, ma non può andare oltre. Nello scenario 2, il comando rlogin -f non riesce perché egli cerca di inoltrare un ticket non-inoltrabile.
(In realtà, nella configurazione predefinita, i file di configurazione di SEAM sono impostati in modo che kinit ottenga ticket inoltrabili. È però possibile che la configurazione utilizzata sia differente. Per ragioni di chiarezza, in questo esempio si presume che kinit non ottenga TGT inoltrabili a meno che non venga utilizzato il comando kinit -f. Si noti, a questo riguardo, che kinit non dispone di un'opzione -F; i TGT possono essere inoltrabili o non-inoltrabili.)
Nella Figura 6-3, davide ottiene TGT inoltrabili con kinit -f. Nello scenario 3, egli può raggiungere il sistema C poiché utilizza un ticket inoltrabile con rlogin. Nello scenario 4, il secondo rlogin non riesce perché il ticket non è reinoltrabile. Usando invece l'opzione -F, come nello scenario 5, il secondo rlogin riesce e il ticket può essere reinoltrato al sistema D.
L'esempio seguente illustra il funzionamento delle opzioni dei comandi basati su Kerberos.
In questo esempio, l'utente davide ha già eseguito il login, e vuole eseguire telnet sul sistema milano.spa.it. Egli utilizza l'opzione -f per inoltrare i ticket esistenti, l'opzione -x per cifrare la sessione e l'opzione -a per eseguire il login automaticamente. Poiché non prevede di dover utilizzare i servizi di un terzo host, egli può usare -f invece di -F.
% telnet -a -f -x milano.spa.it Connessione con 128.0.0.5... Connesso a milano.spa.it. Il carattere di escape è '^]'. [ Kerberos V5 accetta l'utente come "davide@euro.spa.it" ] [ Kerberos V5 ha accettato le credenziali inoltrate ] SunOS 5.7: mar 21 mag 21 00:31:42 MET 1999 Welcome to SunOS % |
Si noti che il sistema di davide ha usato Kerberos per autenticare l'utente su milano.spa.it, ed ha eseguito il login automaticamente con la sua identità. davide aveva così aperto una sessione cifrata, disponeva di una copia dei suoi ticket già in attesa e non ha mai dovuto inserire la sua password. Se avesse utilizzato una versione non-Kerberos di telnet, avrebbe dovuto inserire la sua password, e questa sarebbe stata inviata attraverso la rete in forma non cifrata -- rischiando di essere carpita da un altro utente.
Se si decide di inoltrare i propri ticket Kerberos, si ricordi che telnet (e gli altri comandi qui descritti) li distruggono all'uscita dal comando.
In questo esempio, l'utente giovanna esegue il login sul proprio sistema, torino.spa.it. Essa inoltra i suoi ticket esistenti con -F, e cifra la sessione con -x. giovanna sceglie di usare -F invece di -f perché, dopo il login in torino, essa prevede di dover eseguire altre transazioni di rete che richiedano il reinoltro dei ticket. Inoltre, poiché i ticket inoltrati erano già esistenti, giovanna non dovrà inserire la sua password.
% rlogin torino.spa.it -F -x Questa sessione rlogin utilizza la cifratura DES per tutte le trasmissioni di dati. Ultimo login: lun 19 mag 19 15:19:49 da plutone SunOS Release 5.7 (GENERIC) #2 Tue Nov 14 18:09:3 EST 1998 % |
Si supponga ora che mario voglia usare ftp per richiamare la sua mail dalla directory ~mario/MAIL del sistema milano.spa.it, cifrando la sessione. Lo scambio avverrà in questo modo:
% ftp -f milano.spa.it Connesso a milano.spa.it 220 milano.spa.org FTP server (Version 6.0) ready. 334 Using authentication type GSSAPI; ADAT must follow GSSAPI accettato come tipo di autenticazione Autenticazione GSSAPI eseguita Nome (plutone.spa.org:mario) 232 GSSAPI user mario@MELPOMENE.SPA.IT is authorized as mario 230 User mario logged in. Il sistema remoto è di tipo UNIX. Verrà usata la modalità BINARY per il trasferimento dei file. ftp> protect private 200 Protection level set to Private ftp> cd ~mario/MAIL 250 CWD command successful. ftp> get RMAIL 227 Entering Passive Mode (128,0,0,5,16,49) 150 Opening BINARY mode data connection for RMAIL (158336 bytes). 226 Transfer complete. 158336 bytes received in 1.9 seconds (1.4e+02 Kbytes/s) ftp> quit % |
Per cifrare la sessione, mario imposta il livello di protezione su private.