Guida di IBM HTTP Server: Avvio rapido con connessioni sicure

SSL

SSL è un sistema di codifica utilizzato sui server per assicurare la privacy quando si trasmettono le informazioni attraverso il World Wide Web. I server abilitati all'SSL codificano i dati sensibili in testo di codifica prima di inviarli ai client, impedendo a terzi di leggere i dati anche nel caso in cui venissero intercettati durante il percorso. I client che ricevono i dati dal server decodificano quindi il testo di codificaper poter leggere i dati. L'utilizzo dell'SSL su un server web assicura che le informazioni trasmesse tra un client, come ad esempio un browser web, e un server, come un server web, rimangano private e consente ai client di autenticare l'identità del server.

Affinché un server e un client utilizzino l'SSL per le comunicazioni protette, il server deve disporre di una coppia di chiavi pubblica e privata e un certificato. Il server utilizza la chiave privata per firmare i messaggi per i client. Il server invia la chiave pubblica ai client in modo che questi possano verificare che i messaggi firmati provengano veramente dal server e che possano codificare i messaggi al server, che il server codifica con la chiave privata.

Per inviare la chiave pubblica ai client, il server necessita di un certificato emesso da una CA (certification authority, autorità di certificazione). Il certificato contiene la chiave pubblica del server, il Distinguished Name associato al certificato del server, il numero seriale o la data di emissione del certificato e la data di scadenza del certificato.

Una CA (certification authority, autorità di certificazione) rappresenta i terzi fiduciari (o un'autorità interna designata) che emette i certificati. La CA verifica l'identità del server e firma in modo digitale il certificato con la chiave privata; la chiave pubblica può essere utilizzata per assicurare che il certificato sia valido. Il certificato firmato collega l'identità del server ad una coppia di chiavi elettroniche che possono essere utilizzate per codificare e firmare le informazioni digitali. Il certificato stesso viene firmato con la chiave privata dell'autorità di certificazione per verificare che il server sia proprio chi afferma di essere.

Per eseguire un server web in modalità SSL sicura, è necessario innanzitutto ottenere un certificato firmato per il proprio sistema dall'autorità di certificazione. VeriSign, Inc. è una delle numerose compagnie che operano come autorità di certificazione. Tuttavia, è possibile utilizzare un certificato firmato del formato appropriato da ogni autorità di certificazione.

Durante l'impostazione delle connessioni sicure, è necessario che la chiave pubblica dell'utente sia associata ad un certificato con firma digitale emesso da un'autorità di certificazione (CA) indicata sul server come CA sicura.

Informazioni correlate

Introduzione alle connessioni protette

Per saperne di più sui certificati - http://digitalid.verisign.com/

Concetti di sicurezza

Questa sezione fornisce una panoramica dei concetti sulla sicurezza.

Cosa sono le connessioni protette?

La rapida crescita del commercio elettronico via Internet ha di conseguenza provocato l'aumento della domanda di comunicazioni di rete protette. Inoltre, le comunicazioni all'interno di una società tramite reti privati spesso contengono informazioni confidenziali che devono essere protette.

Una comunicazione di rete protetta ha le seguenti caratteristiche:

Controllo accesso

Solo le parti autorizzate possono accedere e proteggere le risorse. Limitare l'accesso in base alle password, all'indirizzo IP, ai nomi host o all'autenticazione client SSL assicura il controllo dell'accesso.

Autenticità

Si conosce la persona con cui si sta parlando e si crede a tale persona. L'autenticazione, utilizzando la firma digitale e i certificati digitali, assicura l'autenticità.

Integrità delle informazioni

I messaggi non vengono alterati durante la trasmissione. Senza l'integrità delle informazioni, non si ha alcuna garanzia che il messaggio inviato corrisponda al messaggio ricevuto. La firma digitale assicura l'integrità.

Privacy e riservatezza

Le informazioni trasportate da parte a parte durante una transazione rimangono private e non posso essere lette anche se cadono in mani sbagliate. La codifica assicura la privacy e la riservatezza.

Che cos'è la codifica?

La codifica, nella sua modalità più semplice, consiste nel confondere un messaggio in modo che non possa essere letto fino a quando non viene riordinato in seguito dal ricevente. Il mittente utilizza un modello algoritmico (o chiave) per confondere (o codificare) il messaggio. Il ricevente dispone della chiave di codifica. La codifica assicura la privacy e la riservatezza nelle trasmissioni tramite Internet.

Esistono due tipi di chiavi per la codifica:

Chiavi asimmetriche

Con le chiavi asimmetriche, si crea una coppia di chiavi. La coppia di chiavi è composta da una chiave pubblica e da una privata, che sono diverse l'una dall'altra. La chiave privata trattiene una parte maggiore del modello di codifica segreto rispetto alla chiave pubblica. La chiave privata non deve essere condivisa con nessuno.

Il server utilizza la chiave privata per firmare i messaggi per i client. Il server invia la chiave pubblica ai client in modo che possano codificare i messaggi al server, il quale li decodifica con la chiave privata. Solo l'utente può decodificare un messaggio che è stato codificato con la sua chiave pubblica, in quanto solo l'utente dispone della chiave privata. Le coppie di chiavi vengono memorizzate in un database delle chiavi protetto da una password.

Chiavi simmetriche

Le chiavi simmetriche seguono il vecchio modello del mittente e del ricevente che condividono alcune parti del modello. Questo stesso modello viene quindi utilizzato dal mittente per codificare il messaggio e dal ricevente per decodificare il messaggio.

Il rischio che si corre con le chiavi simmetriche è quello di dover trovare un metodo di trasmissione sicuro da utilizzare quando si condivide la chiave segreta con le persone con le quali si desidera comunicare.

Il protocollo SSL (Secure Sockets Layer) utilizza lo scambio della chiave simmetrica e asimmetrica. Le chiavi asimmetriche vengono utilizzate per la sincronizzazione consensuale SSL. Durante la sincronizzazione consensuale la chiave principale, codificata con la chiave pubblica del ricevente, viene inoltrata dal client al server. Il client e il server creano le loro chiavi di sessione utilizzando la chiave principale. Le chiavi della sessione vengono utilizzate per codificare e decodificare i dati per il resto della sessione. Lo scambio della chiave simmetrica viene utilizzato durante lo scambio della specifica di codifica(o livello di codifica) utilizzata.

Per inviare la chiave pubblica ai client, il server necessita di un certificato digitale. Questo certificato viene emesso da una CA (certificate authority, autorità di certificazione) che verifica l'identità del server.

Informazioni correlate:

Che cos'è l'autenticazione?

L'autenticazione è il processo utilizzato per verificare l'identità, in tal modo l'utente può essere sicuro che gli altri sono veramente chi dicono di essere. Il server può utilizzare l'autenticazione in due modi:

Firma digitale

Una firma digitale è una firma unica calcolata in modo matematico che assicura la responsabilità. Una firma digitale è simile ad una carta di credito con la propria foto sopra. Per verificare l'identità della persona che invia un messaggio, si controlla il certificato digitale del mittente.

Certificato digitale

Un certificato digitale (o ID digitale), è come una carta di credito con una foto del presidente della banca abbracciato all'utente. Un commerciante crede all'utente non solo perché corrisponde alla foto sulla carta di credito, ma perché anche il presidente della banca crede nell'utente.

L'utente basa la propria fiducia, sull'autenticità del mittente se l'utente ha fiducia nella terza parte (una persona o un'agenzia) che ha certificato il mittente. La terza parte che emette i certificati digitali viene definita CA (certificate authority) o firmatario del certificato.

Un certificato digitale contiene:

Si immette il Distinguished Name come parte della richiesta del certificato. Il certificato firmato digitalmente comprende non solo il Distinguished Name ma anche il Distinguished Name della CA.

E' possibile richiedere uno dei seguenti certificati:

Le CA diffondono la loro chiave pubblica e il Distinguished Name insieme, in tal modo le persone li aggiungeranno ai propri browser e server web come certificati CA affidabili. Quando si stabilisce che la chiave pubblica e il certificato provenienti da una CA debbano essere un certificato CA affidabile, ciò indica che il server crede a tutti coloro che hanno un certificato emesso da quella CA. E' possibile disporre di molte CA affidabili come parte del proprio server. L'HTTP Server comprende diversi certificati CA affidabili di default. E' possibile aggiungere o eliminare le CA affidabili a seconda delle necessità utilizzando l'IBM Key Management Utility inserito nel server.

Per poter comunicare in modo sicuro, il ricevente in una trasmissione deve credere alla CA che emette il certificato del mittente. Ciò è vero se il ricevente è un browser o un server web. Quando un mittente firma un messaggio, il ricevente deve avere il certificato firmato dalla CA corrispondente e la chiave pubblica stabilita come certificato CA affidabile.

Informazioni correlate:

Che cos'è una PKI (Public Key Infrastructure)?

Una PKI (Public Key Infrastructure) è un sistema di certificati digitali, di CA, di autorità di registrazione, di servizi di gestione dei certificati e di directory X.500 che verifica l'identità e l'autorità di ogni parte coinvolta in ogni transazione su Internet. Queste transazioni possono essere finanziarie oppure comprendere ogni operazione in cui è richiesta la verifica dell'identità, come ad esempio la conferma dell'origine delle offerte o della certificazione dell'autore dei messaggi e-mail.

Un PKI supporta l'utilizzo dei CRL (certificate revocation lists). Un CRL (certificate revocation list) è un elenco di certificati che sono stati revocati. I CRL forniscono una metodologia più globale per autenticare l'identità del client tramite il certificato e possono inoltre essere utilizzati per verificare la validità dei certificati CA affidabili.

I CRL e i certificati CA affidabili sono memorizzati e richiamati da un server delle directory X.500. I protocolli utilizzati per memorizzare e richiamare le informazioni da un server delle directory X.500 sono DAP (Directory Access Protocol) e LDAP (Lightweight Directory Access Protocol). L'HTTP Server supporta LDAP.

Le informazioni possono essere distribuite su diversi server delle directory su Internet e sulle intranet, consentendo così ad una organizzazione di gestire i certificati, la politica di affidabilità e i CRL da una posizione centrale o in modo distribuito. Ciò rende la politica di affidabilità più dinamica in quanto le CA affidabili possono essere aggiunte o cancellate da una rete di server protetti senza dover riconfigurare ogni server.

Informazioni correlate:

Che cos'è il protocollo SSL (Secure Sockets Layer)?

Il protocollo SSL (Secure Sockets Layer) è stato sviluppato dalla Netscape Communications Corporation. Il protocollo SSL fa sì che i dati trasferiti tra client e server rimangano privati. Consente al client di autenticare l'identità del server. E' necessario SSL versione 3 per autenticare l'identità di un client.

Una volta che il server dispone del certificato digitale, i browser abilitati all'SSL come Netscape Navigator e Microsoft Internet Explorer possono comunicare in modo sicuro con il server utilizzando l'SSL. Con l'SSL, è possibile stabilire in modo semplice un sito web abilitato alla sicurezza su Internet o sulla propria intranet privata. Un browser che non supporta HTTP su SSL non sarà in grado di richiedere gli URL utilizzando l'HTTPS. I browser non abilitati all'SSL non consentiranno l'inserimento di moduli che devono essere inoltrati in modo sicuro.

L'SSL utilizza una sincronizzazione consensuale di sicurezza per avviare una connessione sicura tra il client e il server. Durante la sincronizzazione consensuale, il client e server stabiliscono le chiavi di sicurezza che utilizzeranno per la sessione e gli algoritmi per la codifica. Il client autentica il server; facoltativamente, il server può richiedere il certificato del client. Dopo la sincronizzazione consensuale, l'SSL viene utilizzato per codificare e decodificare tutte le informazioni nella richiesta https e nella risposta del server, compresi:

HTTPS è un protocollo unico che unisce l'SSL e l'HTTP. E' necessario specificare https:// come sostegno nei documenti HTML che collegano ai documenti protetti dall'SSL. Inoltre un utente client può aprire un URL specificando https:// per richiedere un documento protetto da SSL.

Poiché HTTPS (HTTP + SSL) e HTTP sono protocolli diversi e utilizzano porte diverse (rispettivamente 443 e 80), l'utente può eseguire le richieste SSL e non SSL contemporaneamente. Di conseguenza, è possibile scegliere di fornire le informazioni a tutti gli utenti non utilizzando alcuna sicurezza e informazioni specifiche solo ai browser che creano richieste sicure. Questo avviene ad esempio alle società di vendita al minuto su Internet che consentono agli utenti di controllare la merce senza sicurezza, ma utilizzano la sicurezza nel momento in cui riempiono i moduli per le ordinazioni e inviano i numeri della propria carta di credito.

Informazioni correlate: