Secure Socket Layer (SSL) Transport Layer Security (TLS)

Transcript

Secure Socket Layer (SSL) Transport Layer Security (TLS)
Secure Socket Layer
(SSL)
Transport Layer Security
(TLS)
1
•SSL è un protocollo progettato per fornire la cifratura e
l’autenticazione tra un client web ed un server web
• SSL è concepito per essere collocato tra il protocollo HTTP
ed il sottostante strato di trasporto TCP. Realizzato da
Netscape.
•Dal lato che spedisce, SSL riceve i dati (come un messaggio
HTTP da una applicazione) li cifra e li indirizza ad un socket
TCP. Dal lato di chi riceve, SSL legge dal socket TCP, decifra
i dati e li indirizza all’applicazione.
•Può essere utilizzato anche con altre applicazioni Internet,
non solo con il web.
• Lo standard Internet che discende da SSL è detto TLS.
2
•La sigla HTTPS indica un’applicazione HTTP che si
avvale dei servizi di sicurezza di TLS
HTTP
TCP
HTTP
SSL/TTLS
TCP
HTTPS
TCP
3
Commercio in Internet
• Bob sta navigando sul web e arriva al sito di Alice Incorporated,
che vende alcuni beni.Il sito contiene una scheda (form) in cui Bob
indicherà la quantità desiderata di ciascun prodotto, il suo
indirizzo ed il numero della carta di credito.
•Problemi:
- Un intruso potrebbe intercettare l’ordine ed ottenere informazioni
relative alla carta di credito di Bob.
- Il sito potrebbe fornire il logo di Alice Incorporated, ma essere in
realtà un sito gestito da Trudy, che si spaccia per la Alice
Incorporated
4
• SSL was originated by Netscape. It has been designed to
provide encryption and authentication among web clients
and servers.
• Widely used in the electronic commerce being implemented
in the majority of web browsers and servers. It provides the
following functions:
-Server authentication. It allows a user to confirm the
server identity.
-Client authentication. It allows a server to confirm
the user identity.
- SSl session encrypted. All the informations sent
from the client and the server are encrypted by the
sending software (browser or server )and decrypted
by the receiving software (browser or server)
5
Autenticazione del server
• Un browser SSL compatibile mantiene un elenco di fidate autorità
di certificazione (CA) assieme alle chiavi pubbliche delle CA.
• Quando il browser vuole contattare un web server SSL-compatibile,
ottiene un certificato del server contenente la sua chiave pubblica. Il
certificato è rilasciato (firmato digitalmente) sa un’autorità di
certificazione (CA).
• L’autenticazione del server consente a Bob di verificare che egli sta
davvero spedendo il suo numero di carta di credito alla Alice
Incorporated e non a qualcun altro che si spaccia per essa.
6
Autenticazione del client
• Fa uso di certificati del client rilasciati da una CA. Questa
autenticazione è importante se il server, per esempio, è una
banca che sta inviando informazioni finanziarie confidenziali ad
un client e vuole controllare l’identità del destinatario.
•L’autenticazione del client, sebbene supportata da SSL, è
opzionale
7
Handsake protocol
• The protocol allows the server and the client to authenticate
each other and to negotiate an encryption and hash algorithm
and criyptographic keys to be used to protect data sent in a SSL
record.
• The handsake protocol is used before any application data is
transmitted.
8
1.The client sends the highest SSL version and its preference for the
kind of symmetric key algorithm to be used.
2.The server sends to the client the number of its SSL version, its
preferences for the kind of symmetric key algorithm and its digital
certificate.
The certificate contains the RSA public key of the server and it is
signed with the private key of a CA.
3.The client knows the public key of some CA. It controls if the
server CA is present in its list. In the positive case the client uses
the CA public key in order to decrypt the certificate and obtain the
server public key. (server authentication)
9
4. The client creates a session symmetric key, encrypts it with the
server public key and sends it to the server.
5. The client sends a message to the server to comunicate that the
following messages will be encrypted with the session key. Then,
sends an encrypted message to indicate the conclusion of the client
handsake.
6. The server sends a message to the browser to comunicate that
the following messages will be encrypted with the session key.
Then, sends an encrypted message to indicate the conclusion of
the server handsake.
7. Client and server utilize the session key to encrypt and decrypt
the sent messages and to validate their integrity.
10
Limitazioni di SSL nel commercio su Internet
• SSL è stato pensato per la comunicazione sicura tra un client
ed un server.
• Manca di molte caratteristiche per il pagamento con carte di
credito.
• Il certificato che Bob riceve da Alice gli assicura che sta
realmente trattando con Alice Incorporated e che questa è una
compagnia attendibile. Comunque il certificato non indica se
Alice Incorporated è autorizzata ad accettare il pagamento con
carta di credito né se la società è un venditore affidabile.
• Lo stesso vale per l’autorizzazione del client. Il certificato non
dice se Bob ha una specifica carta di pagamento autorizzata.
11