Java  »  Articoli  »  JSP e servlet 

SSL in Java

di: Pasquale Congiustì     18 Febbraio 2008

Lo sviluppo di applicazioni web based presenta, alla base, l'architettura client/server che consente, a molti utenti collegati in una rete, di richiedere dei servizi a un server. Lo scambio di informazioni è generalmente rappresentato da pagine HTML che dal server vengono scaricate e rappresentate sul browser del client. Il principio vale sia nel caso di applicazioni Intranet che Internet, dove la topologia di rete è (per sua natura) sconosciuta, quindi potenzialmente vulnerabile a qualsiasi intrusione non autorizzata.

I dati viaggiano "in chiaro", cioè così come noi le leggiamo. Nel primo caso, è evidente che il pericolo è circoscritto alla rete Intranet su cui ci troviamo, quindi la confidenzialità delle informazioni è difficile che oltrepassi il confine della rete privata (a meno di non lasciare buchi aperti in quest'ultima). Nel secondo, praticamente, ci si trova in mare aperto, dove chiunque può intromettersi e leggere i nostri dati. Si capisce, quindi, come sia importante, in alcuni contesti, evitare che ciò si verifichi proteggendo tali dati rendendoli leggibili solo al legittimo intestatario.

La tecnologia standard che si utilizza è quella delle comunicazioni SSL (Secure Socket Layer). Nell'articolo non entreremo nel dettaglio della tecnologia stessa, ci limiteremo, dove necessario a spiegare alcuni concetti base. Per approfondimenti rimando alla definizione di Wikipedia o all'articolo Apache ed SSL.

Secure Socket Layer

SSL è un protocollo che nell'architettura TCP/IP si pone tra il livello applicativo (http, nel nostro caso) e il protocollo di trasporto (TCP). Il suo compito è di cifrare (lato server) e decifrare (lato client) le informazioni, in maniera trasparente rispetto agli strati cui si interpone.

Prima di effettuare qualsiasi scambio di informazioni (cifrato), il client e il server si interconnettono, e in particolare il client verifica che il server sia sicuro verificando il certificato del server.

Il certificato è un oggetto che assicura che il sito, che si sta visitando, è stato autenticato da un'autorità superiore e fidata (dal client). Tale autorità e la CA (Certificate Authority) che è un autorità riconosciuta dal browser in maniera automatica (all'interno del browser trovate la lista delle autorità riconosciute come tali). Se il processo di autenticazione va a buon fine inizia lo scambio dati cifrato (le operazioni di cifratura e decifratura avvengono attraverso le chiavi contenute nel certificato).

Guide Java

Guida Apache Struts

Il primo e più utilizzato tra i framework MVC del mondo Java,...

Guida Java Spring

Scoprire il lightweight container più famoso del mondo Java....

Guida Java 6

Prendendo le mosse dalla guida Java, già presente su HTML.it,...

Altre guide

Newsletter @Programmazione

Ogni mese, direttamente nella tua e-mail: articoli, script e guide su Java, Visual Basic, VB.Net ed i più diffusi linguaggi di programmazione.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti