Vai al contenuto
Reti di Telecomunicazione

Sicurezza delle reti: Diffie-Hellman, certificati e TLS

Obiettivi della sicurezza, crittografia simmetrica, scambio di Diffie-Hellman con dimostrazione ed esempio, uomo in mezzo, hash, firme e certificati, TLS 1.3 e segretezza in avanti, firewall, VPN e DDoS.

Internet è stata progettata da ricercatori che si fidavano gli uni degli altri: nessun protocollo originale cifrava i dati o verificava chi li mandava. Oggi la sicurezza è parte di ogni livello. In questa lezione vediamo gli obiettivi della sicurezza, la crittografia simmetrica e a chiave pubblica, lo scambio di chiavi di Diffie-Hellman con la dimostrazione e un esempio numerico, l’attacco dell’uomo in mezzo e i certificati, le funzioni di hash e le firme, il protocollo TLS, e le difese della rete: firewall, VPN e protezione dagli attacchi di negazione del servizio.

Gli obiettivi

  • Riservatezza: solo il destinatario può leggere il messaggio.
  • Integrità: il messaggio non è stato modificato.
  • Autenticazione: si sa chi l’ha mandato.
  • Disponibilità: il servizio resta raggiungibile anche sotto attacco.

L’attaccante tipico può leggere, modificare, cancellare e inserire pacchetti sul percorso: chiunque controlli una rete Wi-Fi pubblica, un router o un collegamento può farlo.

La crittografia simmetrica

Mittente e destinatario condividono una chiave segreta k, usata sia per cifrare sia per decifrare. L’algoritmo standard è l’AES, con chiavi di 128 o 256 bit: provare tutte le 2^{128} chiavi richiederebbe a tutti i calcolatori del mondo un tempo enormemente più lungo dell’età dell’universo. È veloce (i processori hanno istruzioni dedicate e cifrano decine di gigabit al secondo) ma ha un problema di fondo: come si mettono d’accordo sulla chiave due parti che non si sono mai incontrate, comunicando su una rete che l’attaccante ascolta?

Lo scambio di chiavi di Diffie-Hellman

Nel 1976 Whitfield Diffie e Martin Hellman mostrarono che è possibile. Si scelgono pubblicamente un numero primo grande p e un numero g. A sceglie un segreto a e invia A = g^a \bmod p; B sceglie un segreto b e invia B = g^b \bmod p.

Scambio di chiavi di Diffie-Hellman
A e B scelgono ciascuno un numero segreto, a e b, e si scambiano in chiaro g elevato al proprio segreto, modulo p. Ciascuno eleva il valore ricevuto al proprio segreto: entrambi ottengono g elevato ad a per b, modulo p, senza che questo valore sia mai passato sulla rete.

Teorema. A e B ottengono la stessa chiave: B^a \bmod p = A^b \bmod p = g^{ab} \bmod p.

Dimostrazione. L’aritmetica modulo p conserva prodotti e potenze: se x \equiv y \pmod p allora x^n \equiv y^n \pmod p. Quindi B^a \equiv (g^b)^a = g^{ab} e A^b \equiv (g^a)^b = g^{ab}, e le due quantità coincidono. ∎

Esempio con numeri piccoli. Con p = 23, g = 5, a = 6, b = 15: A invia 5^6 \bmod 23 = 8, B invia 5^{15} \bmod 23 = 19. A calcola 19^6 \bmod 23 = 2, B calcola 8^{15} \bmod 23 = 2: la chiave comune è 2. L’attaccante vede p, g, 8 e 19, ma per ricavare la chiave dovrebbe trovare a da g^a \bmod p: il logaritmo discreto, che per primi di 2048 bit (o con le curve ellittiche, a 256 bit) non si sa risolvere in tempi ragionevoli.

L’uomo in mezzo e i certificati

Diffie-Hellman da solo non dice con chi si sta parlando. Un attaccante sul percorso può fare uno scambio con A fingendosi B e un altro con B fingendosi A, e poi leggere e ritrasmettere tutto: è l’attacco dell’uomo in mezzo. Serve l’autenticazione.

La crittografia a chiave pubblica (RSA, curve ellittiche) usa coppie di chiavi: quella pubblica è nota a tutti, quella privata solo al proprietario. Ciò che si firma con la chiave privata si verifica con quella pubblica. Una firma digitale si calcola sul riassunto del messaggio prodotto da una funzione di hash crittografica (SHA-256): una funzione che produce 256 bit da un messaggio qualsiasi, tale che sia impraticabile trovare due messaggi con lo stesso riassunto. Cambiare un solo bit del messaggio cambia completamente il riassunto, e la firma non torna più.

Ma come si sa che una chiave pubblica appartiene davvero al sito della banca? La garantisce un certificato: un documento che lega il nome del sito alla sua chiave pubblica, firmato da un’autorità di certificazione, la cui chiave pubblica è già installata nel browser e nel sistema operativo. È la catena di fiducia della PKI (infrastruttura a chiave pubblica).

TLS

Il protocollo TLS (la “S” di HTTPS) mette insieme tutti i pezzi. Nella versione 1.3, in un solo scambio di andata e ritorno: client e server fanno uno scambio Diffie-Hellman su curve ellittiche, il server invia il proprio certificato e firma lo scambio con la propria chiave privata (così il client sa di parlare con il sito giusto e non con un uomo in mezzo), e dalla chiave comune si ricavano le chiavi simmetriche AES con cui si cifrano e si autenticano tutti i dati successivi. Poiché le chiavi di sessione vengono dallo scambio effimero, anche chi rubasse in futuro la chiave privata del server non potrebbe decifrare il traffico registrato oggi: è la segretezza in avanti (forward secrecy).

Le difese della rete

  • Firewall: filtrano il traffico in base a indirizzi, porte e stato delle connessioni, per esempio permettendo dall’esterno solo le risposte a connessioni aperte dall’interno. Quelli di nuova generazione esaminano anche i contenuti delle applicazioni.
  • VPN: creano un tunnel cifrato (IPsec, WireGuard) tra due reti o tra un dipendente e l’azienda, attraverso Internet.
  • Rilevamento delle intrusioni (IDS): cercano nel traffico le firme di attacchi noti o comportamenti anomali.
  • Negazione del servizio distribuita (DDoS): milioni di dispositivi compromessi, spesso telecamere e router domestici, inondano un bersaglio di traffico, fino a terabit al secondo. Ci si difende con reti di distribuzione molto grandi che assorbono il traffico, con filtri presso gli operatori, e limitando il traffico per sorgente con i secchi di gettoni della lezione sulla qualità del servizio.
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
0
Would love your thoughts, please comment.x
()
x