Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


SSL/TLS: Sicurezza delle Comunicazioni su Internet, Appunti di Sistemi di reti

Una panoramica completa del protocollo ssl/tls, spiegando nel dettaglio i suoi componenti principali: handshake protocol, ssl record protocol, change cipher spec protocol e alert protocol. vengono descritti i meccanismi di crittografia, autenticazione e integrità dei dati, con esempi concreti di messaggi scambiati tra client e server durante la fase di handshake. Utile per comprendere le basi della sicurezza informatica e le tecniche utilizzate per proteggere le comunicazioni online.

Tipologia: Appunti

2024/2025

In vendita dal 02/05/2025

letizia-dalloca
letizia-dalloca 🇮🇹

44 documenti

1 / 6

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
SSL / TLS
SSL (Secure Socket Layer) è un protocollo sviluppato inizialmente da Netscape Communications per
garantire la sicurezza delle comunicazioni su Internet. Successivamente, l'IETF ha revisionato le specifiche di
SSL, creando lo standard TLS (Transport Layer Security). Questo protocollo opera nel livello di sessione del
modello ISO/OSI, situandosi tra il livello di trasporto e il livello di applicazione (dove operano protocolli come
HTTP, FTP, SMTP).
Progettato per garantire una comunicazione bidirezionale sicura tra client e server, SSL/TLS utilizza crittografia
per proteggere i dati trasmessi e fornisce autenticazione del server tramite certificati digitali firmati
elettronicamente. Grazie a queste caratteristiche, viene impiegato nei principali servizi di rete per garantire
sicurezza e integrità delle informazioni.
Introduzione
Il protocollo SSL/TLS garantisce tre aspetti fondamentali della sicurezza nelle comunicazioni:
1. Riservatezza della comunicazione
Opera a livello di trasporto (livello 4 del modello OSI), posizionandosi sotto protocolli come HTTP, FTP e SMTP.
Il suo scopo è proteggere i dati da attacchi come il packet sniffing (intercettazione di pacchetti) e il spoofing
(furto d’identità), utilizzando algoritmi di crittografia a chiave simmetrica per garantire la privatezza del
collegamento.
2. Autenticazione
Verifica l’identità delle parti coinvolte attraverso certificati digitali e l’uso della crittografia a chiave pubblica.
L’autenticazione può riguardare sia il server che, in alcuni casi, anche il client.
3. Integrità
Assicura che i dati trasmessi non subiscano alterazioni durante la comunicazione. Il livello di trasporto utilizza un
Message Authentication Code (MAC), che si basa su funzioni hash come SHA e MD5 per generare impronte
digitali, garantendo così l’integrità delle informazioni.
Struttura del protocollo SSL/TLS
SSL/TLS è composto da due sotto-livelli principali
che si inseriscono nel livello sessione:
1. SSL Record Protocol (livello collegato al livello
di trasporto): gestisce i servizi di sicurezza di base,
tra cui crittografia e integrità dei dati.
2. Livello superiore (più vicino al livello di
applicazione): trasmette i dati ai protocolli più alti e
comprende tre protocolli fondamentali:
- Handshake Protocol: stabilisce una connessione sicura tra client e server.
- Change Cipher Spec Protocol: segnala il cambio dei parametri di crittografia.
- Alert Protocol: gestisce errori e notifiche di sicurezza.
SESSIONE
La sessione rappresenta l'associazione tra un client e un server e viene stabilita attraverso il Protocollo
Handshake. Durante questa fase:
- Client e server si accordano per creare un canale logico sicuro per lo scambio di informazioni.
- Vengono negoziati una serie di parametri di sicurezza, come algoritmi di crittografia e chiavi di sessione.
- L'obiettivo è evitare negoziazioni ripetute per ogni connessione, riducendo il tempo di attesa e migliorando
l'efficienza, un aspetto cruciale nelle transazioni online.
pf3
pf4
pf5

Anteprima parziale del testo

Scarica SSL/TLS: Sicurezza delle Comunicazioni su Internet e più Appunti in PDF di Sistemi di reti solo su Docsity!

SSL / TLS

SSL (Secure Socket Layer) è un protocollo sviluppato inizialmente da Netscape Communications per garantire la sicurezza delle comunicazioni su Internet. Successivamente, l' IETF ha revisionato le specifiche di SSL, creando lo standard TLS (Transport Layer Security). Questo protocollo opera nel livello di sessione del modello ISO/OSI , situandosi tra il livello di trasporto e il livello di applicazione (dove operano protocolli come HTTP, FTP, SMTP ). Progettato per garantire una comunicazione bidirezionale sicura tra client e server, SSL/TLS utilizza crittografia per proteggere i dati trasmessi e fornisce autenticazione del server tramite certificati digitali firmati elettronicamente. Grazie a queste caratteristiche, viene impiegato nei principali servizi di rete per garantire sicurezza e integrità delle informazioni.

Introduzione Il protocollo SSL/TLS garantisce tre aspetti fondamentali della sicurezza nelle comunicazioni:

1. Riservatezza della comunicazione Opera a livello di trasporto (livello 4 del modello OSI), posizionandosi sotto protocolli come HTTP, FTP e SMTP. Il suo scopo è proteggere i dati da attacchi come il packet sniffing (intercettazione di pacchetti) e il spoofing (furto d’identità), utilizzando algoritmi di crittografia a chiave simmetrica per garantire la privatezza del collegamento. 2. Autenticazione Verifica l’identità delle parti coinvolte attraverso certificati digitali e l’uso della crittografia a chiave pubblica. L’autenticazione può riguardare sia il server che, in alcuni casi, anche il client. 3. Integrità Assicura che i dati trasmessi non subiscano alterazioni durante la comunicazione. Il livello di trasporto utilizza un Message Authentication Code (MAC) , che si basa su funzioni hash come SHA e MD5 per generare impronte digitali, garantendo così l’integrità delle informazioni.

Struttura del protocollo SSL/TLS SSL/TLS è composto da due sotto-livelli principali che si inseriscono nel livello sessione:

  1. SSL Record Protocol (livello collegato al livello di trasporto): gestisce i servizi di sicurezza di base, tra cui crittografia e integrità dei dati.
  2. Livello superiore (più vicino al livello di applicazione): trasmette i dati ai protocolli più alti e comprende tre protocolli fondamentali:
  • Handshake Protocol : stabilisce una connessione sicura tra client e server.
  • Change Cipher Spec Protocol : segnala il cambio dei parametri di crittografia.
  • Alert Protocol : gestisce errori e notifiche di sicurezza.

SESSIONE La sessione rappresenta l'associazione tra un client e un server e viene stabilita attraverso il Protocollo Handshake. Durante questa fase:

  • Client e server si accordano per creare un canale logico sicuro per lo scambio di informazioni.
  • Vengono negoziati una serie di parametri di sicurezza , come algoritmi di crittografia e chiavi di sessione.
  • L'obiettivo è evitare negoziazioni ripetute per ogni connessione, riducendo il tempo di attesa e migliorando l'efficienza, un aspetto cruciale nelle transazioni online.

SSL RECORD PROTOCOL

Il SSL Record Protocol opera vicino al livello di trasporto e ha il compito di prendere i dati dai livelli superiori ( Handshake, Alert e Change Cipher Spec ) e sottoporli a trattamenti di sicurezza prima di trasmetterli al livello inferiore. Fornisce due principali servizi per la connessione SSL:

1. Confidenzialità Utilizza una chiave segreta e algoritmi di crittografia simmetrica , già negoziati durante la creazione della sessione tramite l' Handshake Protocol. 2. Integrità del messaggio Il Handshake Protocol definisce una chiave segreta condivisa , che SSL Record utilizza per calcolare un Message Authentication Code (MAC). Questo codice garantisce che i dati ricevuti non siano stati alterati durante la trasmissione.

  1. Application Data → i dati dell'applicazione (ad esempio, dati HTTP o FTP) vengono forniti al protocollo SSL Record.
  2. Fragment → i dati vengono suddivisi in frammenti di dimensioni gestibili per essere elaborati e trasmessi più facilmente.
  3. Compress (Opzionale, a seconda della configurazione) → i frammenti possono essere compressi per ridurre la dimensione dei dati trasmessi e ottimizzare le prestazioni.
  4. Add MAC (Message Authentication Code) → viene calcolato e aggiunto un codice di autenticazione del messaggio (MAC) utilizzando una funzione hash (come SHA o MD5). Questo passaggio assicura l'integrità dei dati, ovvero che non siano stati alterati durante la trasmissione.
  5. Encrypt → il frammento, ora compresso e con MAC aggiunto, viene crittografato utilizzando algoritmi di crittografia simmetrica (come AES o 3DES). Questo passaggio garantisce la confidenzialità , impedendo a terze parti di leggere i dati trasmessi.
  6. Append SSL Record Header → alla fine viene aggiunto un intestazione SSL Record , che contiene informazioni sul tipo di contenuto, la versione di SSL/TLS e la lunghezza dei dati.

Dopo questi passaggi, il pacchetto è pronto per essere inviato attraverso il livello di trasporto (TCP).

Length (3 byte) : Indica la lunghezza del messaggio in byte. → Content (≥ 0 byte) : Contiene i parametri associati a ciascun tipo di messaggio.

Esempi di messaggi di Handshake Durante la fase di Handshake Protocol , il client e il server si scambiano una serie di messaggi per negoziare la connessione sicura. Ecco alcuni esempi di messaggi e il loro ruolo:

hello_request (inviato dal server)

  • Il server richiede l'inizio dell'handshake.
  • Questo messaggio viene inviato solo se il server vuole avviare una nuova sessione.

client_hello (inviato dal client)

  • Il client avvia l'handshake.
  • Invia una serie di informazioni, tra cui: ● Versione del protocollo supportata ● Suite di crittografia supportate ● Numero casuale per la generazione delle chiavi

server_hello (inviato dal server)

  • Il server risponde al Client Hello.
  • Conferma la versione del protocollo, seleziona una suite di crittografia compatibile e invia il proprio numero casuale.

certificate (inviato dal server)

  • Il server invia il proprio certificato digitale (es. un certificato X.509).
  • Serve a dimostrare l'identità del server e autenticarsi presso il client.

server_key_exchange (opzionale, inviato dal server)

  • Necessario se il certificato non include le informazioni per la creazione della chiave.
  • Il server invia i dettagli per la generazione della chiave segreta condivisa.

certificate_request (opzionale, inviato dal server)

  • Il server può richiedere al client un certificato per autenticare anche lui (autenticazione reciproca).

client_certificate (opzionale, inviato dal client)

  • Se richiesto dal server, il client invia il proprio certificato per autenticarsi.

client_key_exchange (inviato dal client)

  • Il client invia i dati necessari per la generazione della chiave segreta condivisa.

certificate_verify (opzionale, inviato dal client)

  • Il client prova che il certificato inviato è valido e che possiede la chiave privata corrispondente.

change_cipher_spec (inviato da client e server)

  • Indica che tutti i messaggi successivi saranno crittografati con gli algoritmi e le chiavi negoziate.

finished (inviato da client e server)

  • Indica la fine della fase di handshake.

Dopo questi scambi, la connessione è considerata sicura , e client e server possono iniziare a trasmettere dati a livello applicativo (es. richieste HTTPS).

PRIMA FASE Questa fase viene utilizzata per avviare una connessione logica e stabilire le specifiche di sicurezza che verranno applicate.

  1. Lo scambio inizia con il client , che invia un messaggio Client Hello al server.
  2. In questo messaggio, il client comunica:
  • gli algoritmi di crittografia e di compressione supportati;
  • un identificatore di sessione.
  1. Il server risponde con un messaggio Server Hello , che contiene informazioni simili a quelle del client e conferma la ricezione corretta dei dati inviati.

SECONDA FASE Questa fase è dedicata all' autenticazione del server e allo scambio delle chiavi. In questa fase, solo il server invia messaggi al client. Il server può inviare:

  • un certificato per autenticarsi;
  • un messaggio di scambio delle chiavi se necessario;
  • una richiesta di certificato al client (se è richiesta l'autenticazione reciproca). Il server conclude questa fase segnalando la fine della fase di Hello.

TERZA FASE Questa fase riguarda l' autenticazione del client (se richiesta dal server) e lo scambio delle chiavi. Il server invia sempre il proprio certificato , ma può anche richiedere il certificato del client per autenticarsi reciprocamente. Il client verifica la validità del certificato del server e i parametri del messaggio Server Hello. Se il certificato del server è valido e tutto è corretto, il client:

  • invia un Certificate (solo se richiesto dal server);
  • invia un Client Key Exchange , che contiene i parametri necessari allo scambio della chiave.

Metodi per lo scambio delle chiavi → Crittografia a chiave pubblica : il client cifra un valore segreto con la chiave pubblica del server. → Algoritmo di Diffie-Hellman : non si scambiano chiavi direttamente, ma parametri necessari per calcolarle in modo sicuro su entrambi i lati.