La sicurezza è un argomento importante e preoccupazione quando si accede a reti private e le informazioni riservate su Internet. Autenticazione (in genere tramite username e password) fornisce un modo per utenti e computer di identificarsi in un server Web prima il Web server che permette di raggiungere informazioni riservate. Tuttavia, anche se un nome utente e una password forniscono qualche sicurezza, i metodi utilizzati dai computer per eseguire l'autenticazione potrebbero non essere sicuri. Acquisire familiarità con i tipi più comuni di autenticazione Internet affinché si può discernere quando ogni tipo è appropriato.
Autenticazione di base HTTP
HTTP (Hyper Text Transfer Protocol) specifica descrive l'autenticazione di base come un processo che inizia quando il server Web a cui si connette un client Web (ad esempio un browser Web) risponde con una richiesta per l'autenticazione. Il client Web riceve un nome utente e una password dal browser Web o utente dell'applicazione Web e quindi spedisce il nome utente e la password per il server Web e server Web quindi verifica il nome utente e la password per l'autenticazione. L'autenticazione di base consente di codificare la password utilizzando l'algoritmo base64, che non è sicuro. Inoltre, solo il client Web viene autenticato e non il server Web (in modo che il client Web non ha nessuna verifica che si è connesso al server Web corretto).
Autenticazione HTTP Digest
L'autenticazione HTTP Digest impiega la stessa username e algoritmo di scambio della password come autenticazione di base HTTP. Tuttavia, in questo caso, quando il server Web risponde che richiede l'autenticazione, il server Web fornisce anche un "nonce", che è una stringa di caratteri generata allo scopo di crittografare la password. Il client web richiede quindi un nome utente e una password da parte dell'utente. Dopo che l'utente immette le credenziali richieste, il client Web utilizza il "nonce" e il MD5 (Message Digest 5) algoritmo di hash per crittografare la password. Il nome utente e la password crittografata vengono quindi inviati al server Web per l'autenticazione.
Autenticazione HTTPS
HTTPS (Hyper Text Transfer Protocol over SSL) fornisce un metodo molto sicuro per l'autenticazione basata su Web Internet. HTTPS utilizza un certificato di chiave pubblica digitale fornito da un terzo partito CA (autorità di certificazione) per identificare e autenticare il client Web e server Web (anche se nella maggior parte dei casi solo il server è autenticato con un certificato di chiave pubblica e il client viene autenticato con username e password). Quando avviene l'autenticazione, il client Web invia una richiesta al server Web, che specifica la versione di SSL e crittografia algoritmi che sta utilizzando. Il server Web risponde con la versione di SSL utilizza e il certificato di chiave pubblica del server. Il client Web conferma con la CA di terze parti (tramite un elenco memorizzato sul client Web) che il certificato del server è valido e quindi Invia un acknowledgment accettando di utilizzare la chiave pubblica del server Web per la crittografia. Il server Web riconosce la risposta del client Web, e quindi tutto il traffico inviato o ricevuto è crittografato. Il client Web può quindi autenticare in modo sicuro utilizzando l'autenticazione di base attraverso la sessione crittografata. HTTPS fornisce servizi di integrità di riservatezza, non ripudio e messaggio.
Autenticazione a due fattori
Autenticazione a due fattori, chiamato anche "strong authentication," richiede due forme di identificazione per l'autenticazione. Le due forme includono tipicamente un nome utente e password e anche una periferica "token" che genera una seconda password una tantum. Autenticazione a due fattori è più sicuro perché si basa su qualcosa che conosci e su qualcosa che hai per l'autenticazione. Così, se si conosce il nome utente e la password ma non si dispone di un token per generare la seconda password, non possono autenticare con un server di autenticazione a due fattori. Autenticazione a due fattori di solito inizia con lo scambio HTTPS descritto sopra. Tuttavia, quando viene richiesta l'autenticazione utente, l'utente fornisce un nome utente, una password e una password generata dal dispositivo token.