SSL/TLS

SSL/TLS

Il protocollo Secure Socket Layer (SSL) e il suo successore Transport Layer Security (TLS) sono dei protocollo di cifratura che permettono di stabilire una connessione sicura e protetta tra due host nell’ambito delle reti basate sullo Stack TCP/IP. SSL e TLS offrono la cifratura dei dati, oltre a sistemi di autenticazione e controllo dell’integrità, e operano a livello Application. Oggi praticamente tutti i protocolli di livello Application e le relative applicazioni fanno uso dei sistemi di cifratura SSL/TLS, come ad esempio HTTPS.

Oggi il sistema standard di cifratura sulle reti TCP/IP è il TLS, tramite il quale, come abbiamo visto, le applicazioni che comunicano tramite il modello Client-Server possono scambiarsi dati in maniera confidenziale e sicura.

Nell’ambito di una comunicazione su TLS, il protocollo sovrintende alla fase di negoziazione tra le parti circa l’algoritmo di cifratura da utilizzare, quindi si procede allo scambio delle chiavi di cifratura, si passa quindi all’autenticazione e per finire allo cifratura che prelude allo scambio vero e proprio dei messaggi.

Durante una sessione di comunicazione su TLS si utilizzano diversi protocolli, ad esempio:

  • RSA, PSK e altri per lo scambio delle chiavi;
  • RSA, DSA, ECDSA per l’autenticazione;
  • RC4, DES, AES e altri per la cifratura simmetrica;
  • MD5, SHA e altri per la verifica dell’integrità dei dati;

Ulteriore evoluzione di TLS è STARTTLS, che aggiunge un’ulteriore caratteristica di sicurezza in quanto provvede a cifrare la connessione anche sulle porte standard, come la 110 o la 25, usate nella posta elettronica.

Tra i più utilizzati sistemi di cifratura possiamo citare quello a chiave asimmetrica – RSA.

In questo tipo di crittografia ad ogni attore coinvolto nella comunicazione è associata una coppia di chiavi:

la chiave pubblica, che deve essere distribuita. Attraverso questo algoritmo di cifratura si potranno proteggere i documenti destinati al titolare della chiave privata.

la chiave privata, personale e segreta. è l’unico algoritmo in grado di decifrare i documenti criptati con chiave pubblica.

il meccanismo di cifratura si basa quindi sul fatto che se con una delle due chiavi si cifra il messaggio, allora quest’ultimo potrà essere decifrato solo con l’altra.

Per questo motivo, la crittografia asimmetrica ha assunto anche la definizione di crittografia a coppia di chiavi o a chiave pubblica.

Gli algoritmi di cifratura di questo tipo di crittografia vengono impiegati, tra l’altro, nella firma digitale. In questo ambito, le due chiavi servono a verificare l’autenticità del mittente, così come l’integrità del documento sottoscritto.

La prima operazione per generare una firma digitale è l’estrazione dal documento della cosiddetta “impronta digitale”, cioè una stringa di dati, ottenuta grazie a un algoritmo di hash, irreversibile (non è possibile, a partire dall’ impronta, risalire al documento originario). Tale funzione matematica sintetizza il testo in modo univoco.

L’ impronta digitale o digest viene poi criptata con chiave privata ottenendo la firma digitale. Il digest potrà essere decodificato dai destinatari con la chiave pubblica e confrontato con il digest da essi prodotto sulla base del documento ricevuto, per la verifica di autenticità e integrità.

Volendo elencare i passi da compiere:

  • Il mittente crea una coppia chiave pubblica/chiave privata
  • Il mittente dà al destinatario la propria chiave pubblica
  • Il mittente scrive un messaggio che inserisce in una funzione hash; in uscita si ha un output di lunghezza fissa: il digest
  • Il mittente codifica il digest con la propria chiave privata ottenendo la propria firma digitale
  • Il mittente spedisce il documento e la firma digitale
  • Il ricevente separa il documento e la firma digitale
  • Il ricevente utilizza la chiave pubblica per decifrare la firma digitale e ottiene il digest
  • Il ricevente utilizza la stessa funzione hash del mittente sul messaggio e ottiene un nuovo digest
  • Verificando i due digest il ricevente si assicura che il messaggio non sia stato alterato e verifica l’autenticità del mittente

Rispetto alla cifratura con chiave simmetrica l’algoritmo RSA rappresenta un incremento nella sicurezza.

La differenza tra i due metodi è che mentre la cifratura simmetrica utilizza chiavi private, quella asimmetrica utilizza una chiave di cifratura pubblica e una di decifratura privata, che dev’essere mantenuta segreta dal proprietario.

Figura 42: SSL/TLS Handshake
Figura 42: SSL/TLS Handshake

Cap 5) Differenze tra ISO/OSI e TCP/IP >>