Standard SASL
Dopo aver assistito per anni all’introduzione di nuove soluzioni per l’autenticazione di sistemi e utenti, e aver subito il crescente proliferare di opzioni disponibili in ogni protocollo Internet di larga diffusione, gli addetti ai lavori hanno iniziato a pensare fosse arrivato il momento per mettere un po’ di ordine.
I membri dello IETF hanno pertanto ritenuto opportuno arrivare a definire un nuovo standard che permettesse di disaccoppiare i protocolli applicativi, definiti nelle varie RFC, dai meccanismi di autenticazione disponibili per ognuno di essi.
In questa maniera diviene più semplice descrivere un nuovo protocollo applicativo e al tempo stesso è possibile lasciare che esso evolva nel tempo, in seguito all’introduzione e successiva standardizzazione di nuovi meccanismi di autenticazione.
La soluzione è nota come Simple Authentication and Security Layer (SASL).
A oggi il meccanismo SASL prevede l’uso di numerosi schemi alternativi, basati su paradigma challenge/response.
La RFC 4422 definisce un solo meccanismo di autenticazione (EXTERNAL) e descrive le procedure da seguire per registrarne altri presso lo IANA.
Al momento i meccanismi registrati sono i seguenti:
- EXTERNAL: l’autenticazione non è richiesta in quanto implicita nell’uso del protocollo di comunicazione, esempio IPSec;
- ANONYMOUS: accesso consentito a utenti non autenticati;
- PLAIN: prevede l’uso di password in chiaro;
- OTP: prevede adozione di un generico schema one time password;
- CRAM-MD5: meccanismo challenge/response basato su HMAC-MD5;
- DIGEST-MD5: meccanismo challenge/response basato su digest MD5 compatibile con quanto previsto da protocollo HTTP;
- NTLM: NT LAN Manager Authentication;
- GSSAPI: meccanismo di Authentication basato su Kerberos.
Tra i protocolli applicativi connection-oriented che al momento supportano SASL, i più diffusi sono: IMAP, POP, IMSP (Internet Message Support Protocol), ACAP, utilizzati per la realizzazione di servizi di posta elettronica; LDAP per accesso ai servizi di directory; e XMPP utilizzato per lo sviluppo di applicazioni di tipo “near real time”, come quelle di Instant Messaging.