In una grossa azienza le operazioni legate alla sicurezza sono
impegnative. Infatti molte volte dipendenti e clienti hanno il bisogno di accedere
alle informazioni e si collegano ai computer dell'azienda pressochè dovunque.
Occorre un considerevole sforzo amministrativo per gestire i collegamenti seriali
diretti e i modem condivisi. Da non dimenticare che tutte queste fonti devono
essere effettuate in accordo con le politiche di sicurezza aziendali, e qui
però sergono delle domande precise: Come puo avvenire questo? Occorre un server
di autenticazione per ognuno dei siti dell'azienda stessa? e, in questo caso
chi gestisce questi server e come vengono coordinate le loro attività? Oppure
l'organizzazione deve utilizzare un solo server centrale per ridurre il lavoro
di coordinamento? Bene per venire incontro alle necessità delle organizzazioni
di realizzare un sistema integrato per la gestione della sicurezza aziendale,
Internet Network Working Group ha pubblicato la RFC 2138, Remote Authentification
Dial-In Iser Service (RADIUS), la specifica spiega le procedure per la realizzazione
di un server di autentificaficazione, contenente un database centrale per l'indentificazione
degli account e per le informazioni necessarie all'autenticazione degli stessi.
Una cosa molto importante del RADIUS è di permettere al sever di comunicare
con altri server basati sullo stesso protocollo o no. In questo modo il server
RADIUS funge da client proxy per gli altri server. La specifica definisce anche
come supportare le operazioni specifiche di un utente, quali PPP, rlogin, TELNET
eccetera.
Configurazione di RADIUS
Nella modalità client server, l'utente comunica con il server
NAS (Network Access Server) e, a sua volta il server NAS funge da client per
il server RADIUS. I server NAS è RADIUS comunicano fra loro attravrso una rete
o un protocollo punto a punto. Come detto in precedenza una delle caratteristiche
del RADIUS è quella di poter comunicare con gli altri server, basati o no sullo
stesso protocollo. L'idea di base è quella di poter disporre di un magazzino
centrale delle informazioni per l'autenticazione. All'utente viene chiesto di
fornire al server NAS le informazioni per l'autenticazione, quali username,
password o un pacchetto PPP per l'autenticazione. A questo punto il client (NAS)
può accedere a RADIUS, creando un messaggio di richiesta di accesso (Request
Access) e inviandolo al nodo RADIUS (server). Questo messaggio contiene informazioni
sull'utente chiamate attributi. Gli attributi sono definiti da system manager
di RADIUS e possono pertanto variare. Per esempio a password dell'utente, la
ID, la porta i destinazione, la client ID eccetera. Se il campo attributi contiene
informazioni di rilievo, deve essere protetto dall'algoritmo MD5. Inoltre tutte
le transazioni fra client e server RADIUS devono essere autenticate usando un
segreto condiviso e tutte le passowrd scambiate fra le due periferiche devono
essere crittografate.
[pagebreak]
Il formato del pacchetto RADIUS

La figura di cui sopra, illustra il formato del pacchettto
RADIUS.
Il pacchetto è incapsulato in UDP ed è formato dai seguenti
campo:
- Code = Identifica il tipo di pacchetto RADIUS come segue:
1 = Richiesta di accesso
2 = Consenso all'accesso
3 = Rifiuto dell'accesso
4 = Richiesta di account
5 = Risposta all'account
11 = Risposta al'accesso
12 = Stato del server
13 = Stato del client
255 = Riservato
- Identifier: verifica la corrispondenza fra richieste e risposte
- Lenght: indica la lunghezza del pacchetto compreso tutti
i campi
- Autenticator: è usato per autenticare la risposta dal server
RADIUS.
Nel pacchetto di richiesta di accesso il suo valore è un numero
a caso di 16 ottetti, chiamato autenticatore di richiesta. Questo numero, insieme
a un valore segreto, viene elaborato con l'algoritmo MD5 per creare un valore
digest di 16 ottetti, che viene in seguito sottoposto a XOR con la password
immessa dall'utente. Il risultato ottenuto è posizionato nell'attributo User-password
all'interno del pacchetto di richiesta di accesso. Nei pacchetti ""concenso
all'accesso"", ""rifiuto dell'accesso"", ""risposta all'accesso"" questo valore
viene invece chiamato autenticatore della richiesta e corrisponde a una funzione
con l'algoritmo MD5 calcolata sui seguenti campi del pacchetto richiesta di
accesso: Code, Indentificator, lenght e Autenticator
Un esempio di scambi di messaggi RADIUS

La richiesta al server RADIUS da parte del client deve essere
un segreto condiviso con il server, in caso contrario la richiesta viene scartata.
Una volta superato il controllo iniziale, il server consulta un database che
contiene informazioni necessarie per autenticare l'utente.
[pagebreak]
Se anche l'autenticazione è conforme a tutte le richieste,
il server a quel punto invia una risposta all'utente sotto forma di messaggio
di risposta all'accesso. Il client a sua volta può ritrasmettere la risposta
all'utente sotto forma di un prompt e, in ogni caso deve inviare di nuovo il
messaggio di richiesta di accesso, con alcuni campi differenti, il principale
dei quale è una risposta crittografata alla risposta del server. In seguito
all'utente viene presentato un numero a caso e gli viene chiesto di richiesto
di crittografarlo e di ritrasmettere il risultato della crittografia. Il server
riceve ed esamina questo messaggio e, se tutto quadra, invia un messaggio di
accesso al client. Il protocollo RADIUS va comunque molto al di là delle operazioni
di supporto all'autenticazione, in quanto il messaggio di accesso concesso contiene
informazioni di configurazione, quali PPP, lo user login eccetera. Con il nodo
RADIUS si vogliono fornire tutte le informazioni necessarie per supportare la
sessione in rete, per esempio un indirizzo IP per la sessione, servizi di compressione,
unità di trasmissione massima (MTU ) eccetera. Il client NAS può supportare
i protocolli PAP e CHAP . In questo caso il client NAS invia ID e password PAP
nel messaggio di richiesta di accesso (precisamente nei campi user-name e password
del messaggio). Se si usa il protocollo CHAP, il client NAS genera una risposta
e la invia all'utente. Secondo le regole del protocollo CHAP, l'utente risponde
con IP CHAP e user name CHAP. A questo punto il clinet NAS trasmette al server
RADIUS il messaggio di richiesta di accesso, contenente le due informazioni
CHAP.
Quale protocollo usa il RADIUS?
I server RADIUS utilizzano il protocollo UDP, poichè se l'autentecazione
ad un primo server fallisce, questa deve essere effettuata su di un server secondario.
Infatti il TCP non è pensato per deviare questo tipo di transazioni e pertanto
le operazione di timing e ritrasmissione sono effettuate da RADIUS, dove UDP
è utilizzato per i seguenti motivi (la porta radius è di solito la 1812): -
Per via dei differenti requisiti richiesti tra TCP e UDP, difatti un utente
non vuole aspettare a lungo per essere autenticato ad un'altro server. - Il
fatto che i server RADIUS risiedano su di server appositi, e di conseguenza
quando i server vengono spenti, accesi o riavviati, le connessioni TCP diventano
più difficili da gestire. - UDP semplifica l'uso del multi-threading (dove la
richiesta dell'utente genera diversi processi per ridurre il ritardo nel'ottenere
l'autenticazione).
Quali limiti ha il RADIUS?
Anche il RADIUS che sembra cosi perfetto e privi di difetti
ha i suoi limiti e questi risiedono nella struttura dei comandi e dello spazio
degli indirizzo degli attributi, con conseguente scarsa possibilità di introdurre
nuovi servizi. RADIUS operando su UDP non ha meccanismi di timing o di ritrasmissione.
Per questi motivi i produttori hanno implementato diverse versioni per queste
procedure. RADIUS inoltre ritiene possibile che ci siano messaggi unsolicitied
dal server al clinet, cosa ch riduce la sua flessibilità.
[pagebreak]
Per terminare ecco un elenco di prodotti di sicuro
interesse:
NTX Access (Internet Transaction Services) | NT | RADIUS, XTACACS |
DTC Radius ver. 2.03 (Digital Technologies Corporation) | UNIX, NT | RADIUS |
RADIATOR Radius server (Open System Consultans Pty. Lts.) | UNIX, WIN95/98, NT | RADIUS, TACACS+ |
Freeware Radius server (Lucent Technologies) | UNIX, NT | RADIUS |
PortAuthority (Lucent Technologies) | JAVA | RADIUS |
NavisRadius (Lucent Technologies) | UNIX, NT | RADIUS |
Authentication, Authorization and Accounting Server (Merit)
| UNIX | RADIUS |
Cistron Radius Server (Cistron) | UNIX | RADIUS |
Proxy & Roaming Radius Server (PRRS) (Vircom) | NT | RADIUS |
RadiusNT (IEA Software, Inc) | NT | RADIUS |
Total Control Managment Software (3COM) | --- | RADIUS |
Radtac Manager Server 4.2.1 (Media Online Italia s.r.l.) | WIN98, NT | RADIUS, TACACS |
Steel-belted radius (Funk software) | UNIX, NT | RADIUS |
Shiva Access Manager (Shiva) | UNIX, WIN95/98, NT | RADIUS, TACACS, XTACACS, TACACS+ |
TrustMe Authentication Server (RACAL) | NT | RADIUS, TACACS+ |
RADIUS-VMS (DLS Internet services, Inc.) | OpenVMS | RADIUS |
DRAS (Digital Equipment Corporation) | OpenVMS, UNIX, NT | RADIUS |
Extent (Extent technologies) | UNIX, NT | RADIUS |
NTTacplus release 2.0 (NTTacplus) | WIN95/98, NT | RADIUS, TACACS+ |
Internet Authentication Service (Microsoft) | WIN2000, NT | RADIUS |
Jam-Radius (Dynamic Network Technologies) |
JAVA | RADIUS |
RaDial (Dotstar) | NT | RADIUS |
MacRadius (Cyno) | MacOs | RADIUS |
PerlRadius | Perl | RADIUS |
FreeRadius | UNIX, OS/2 | RADIUS |
IcRadius | UNIX | RADIUS |
ESVA and N2H2 Radius | UNIX | RADIUS |
IMS 3.1 (Bellesystems) | UNIX |
RADIUS |
Bibliografia:
[RFC2138] [1]
Rigney, C., Rubens, A., Simpson, W, and Willens, S.; Remote Authentication
Dial In User Service (RADIUS), RFC 2138, january 1997
[RFC2139] [2] Rigney, C.;
RADIUS Accounting, RFC 2139, January 1997
[RFC1321] [3] R. Rivest;
The MD5 Message-Digest Algorithm, RFC 1321, April 1992