Vai al contenutoHisnLabs
← Crittografia su cui puoi contare

Lezione 1 di 4 · 9 min

Cifratura simmetrica, cifratura asimmetrica, e hashing

Tre strumenti crittografici diversi garantiscono tre cose diverse. Confonderli è la fonte più comune di falsa sicurezza.

Spesso si dice “è cifrato” come se questo risolvesse una questione di sicurezza. Non è così, perché la cifratura non è una cosa sola. Questa lezione tratta i tre elementi costitutivi dietro quasi ogni affermazione di protezione digitale: la cifratura simmetrica, la cifratura asimmetrica, e l’hashing. Ciascuno garantisce qualcosa di diverso, e sapere quale sia in gioco ti dice cosa viene effettivamente protetto.

Cifratura simmetrica: una chiave condivisa

Il Centro di apprendimento di Cloudflare descrive la cifratura simmetrica in modo semplice: “c’è una sola chiave, e tutte le parti comunicanti usano la stessa chiave (segreta) sia per cifrare che per decifrare.” L’Advanced Encryption Standard (AES) è oggi l’esempio standard, avendo sostituito il più vecchio Data Encryption Standard (DES) dopo che la breve lunghezza della chiave di DES lo ha reso violabile per forza bruta. La cifratura simmetrica è veloce ed è ciò che rimescola effettivamente la maggior parte dei tuoi dati, che si tratti di un file su disco o del corpo di una pagina web caricata via HTTPS. Il suo problema centrale è la distribuzione: entrambe le parti hanno bisogno della stessa chiave segreta, e far arrivare quella chiave all’altra parte senza che nessun altro la veda è esattamente il problema che risolve la cifratura asimmetrica.

Cifratura asimmetrica: due chiavi che lavorano in coppia

Nella cifratura asimmetrica, o a chiave pubblica, ci sono due chiavi collegate matematicamente: “una chiave viene usata per cifrare, e una chiave diversa viene usata per decifrare,” secondo Cloudflare. La chiave di cifratura può essere pubblicata a chiunque — da qui “chiave pubblica” — mentre la corrispondente chiave di decifratura resta privata. I dati bloccati con la chiave pubblica possono essere sbloccati solo con la chiave privata. Questo è ciò che permette a due persone che non si sono mai incontrate di concordare un segreto condiviso su una rete aperta, che è esattamente ciò che accade all’inizio di ogni connessione HTTPS (la prossima lezione tratta questo handshake in dettaglio). RSA e la crittografia a curve ellittiche sono gli algoritmi comuni dietro a tutto ciò oggi.

L’hashing: un’impronta digitale, non un lucchetto

Una funzione hash non è nessuna delle due precedenti: non blocca nulla, e non c’è alcuna chiave per sbloccarla. Il NIST la definisce come una funzione che “mappa una stringa di bit di lunghezza arbitraria in una stringa di bit di lunghezza fissa” — in termini semplici, trasforma qualsiasi file o messaggio in un’impronta digitale breve e di dimensione fissa. Il NIST specifica le proprietà che una funzione hash approvata deve avere: deve essere computazionalmente infattibile trovare un input che produca un dato output (unidirezionalità), e infattibile trovare due input diversi che producano lo stesso output (resistenza alle collisioni). Ecco perché l’hashing verifica l’integrità — questo file è cambiato? — e protegge le password archiviate: un servizio può verificare una password rispetto al suo hash archiviato senza mai conservare la password vera e propria. Funzioni hash più vecchie come MD5 e SHA-1 non sono più considerate sicure contro un aggressore determinato, motivo per cui i sistemi moderni usano invece le famiglie SHA-2 o SHA-3.

Cosa garantisce davvero ciascuno

StrumentoCosa garantisceCosa non garantisce
Cifratura simmetricaRiservatezza, se la chiave condivisa resta segretaUn modo sicuro per scambiare quella chiave in primo luogo
Cifratura asimmetricaUn modo per scambiare un segreto, e per verificare l’identità (vedi la prossima lezione sulle firme)Velocità; è molto più lenta della cifratura simmetrica per grandi quantità di dati
HashingIntegrità: prova che i dati non sono stati alterati, e un modo per verificare segreti senza archiviarliRiservatezza; un hash non è progettato per essere invertito, ma non è nemmeno progettato per nascondere la dimensione o la presenza dei dati

Come si combinano nella pratica

Quasi nulla usa uno solo di questi strumenti. Una connessione sicura tipica usa la cifratura asimmetrica brevemente, per concordare un segreto condiviso, poi passa alla veloce cifratura simmetrica per i dati veri e propri, mentre l’hashing gira per tutto il tempo per assicurarsi che nulla di ciò che è stato inviato sia stato alterato lungo il percorso. Riconoscere questi tre ruoli è ciò che rende il resto di questo corso — firme, certificati, TLS, e cifratura end-to-end — comprensibile come combinazioni dello stesso piccolo insieme di strumenti invece che magia separata.

Da ricordare

  • La cifratura simmetrica usa una chiave condivisa sia per cifrare che per decifrare; è veloce ma richiede un modo per condividere la chiave in sicurezza.
  • La cifratura asimmetrica usa una chiave pubblica e una chiave privata come coppia, risolvendo il problema di distribuzione delle chiavi che ha la cifratura simmetrica.
  • L’hashing produce un’impronta digitale di dimensione fissa dei dati; protegge l’integrità e i segreti archiviati, non la riservatezza — non c’è chiave per sbloccare un hash.
  • I sistemi reali combinano tutti e tre: cifratura asimmetrica per concordare un segreto, cifratura simmetrica per la velocità, hashing per rilevare manomissioni.
  • Gli algoritmi più vecchi (DES, MD5, SHA-1) hanno debolezze note; AES e le famiglie SHA-2/SHA-3 sono gli standard attuali.

Mettiti alla prova

  1. 1. Qual è la caratteristica distintiva della cifratura simmetrica?

    • Usa una chiave pubblica e una chiave privata
    • Usa una sola chiave segreta condivisa sia per cifrare che per decifrare — Esatto.
    • Non può essere usata per grandi quantità di dati
    • Non richiede mai alcuna chiave

    La cifratura simmetrica si basa su un’unica chiave condivisa che entrambe le parti possiedono già; la sfida è distribuire quella chiave in sicurezza.

  2. 2. Quale problema risolve la cifratura asimmetrica che la cifratura simmetrica non può risolvere da sola?

    • Rendere la cifratura più veloce
    • Permettere a due parti di concordare un segreto condiviso senza incontrarsi prima — Esatto.
    • Rendere le password più facili da ricordare
    • Impedire che i dati vengano mai eliminati

    La crittografia a chiave pubblica permette di condividere apertamente una chiave pubblica mentre solo la corrispondente chiave privata può decifrare, consentendo uno scambio di chiavi sicuro su una rete aperta.

  3. 3. Perché una funzione hash non può essere usata per mantenere segreto un messaggio?

    • Gli hash sono sempre troppo corti per contenere un messaggio
    • Un hash è unidirezionale per progettazione; non c’è chiave per riportarlo ai dati originali — Esatto.
    • Le funzioni hash sono illegali da usare per la cifratura
    • Gli hash funzionano solo su immagini, non su testo

    Le funzioni hash sono costruite in modo che recuperare l’input originale dall’output sia computazionalmente infattibile — questa proprietà (unidirezionalità) le rende utili per i controlli di integrità e l’archiviazione delle password, non per la riservatezza.

  4. 4. Quale coppia di algoritmi è considerata obsoleta a causa di debolezze note?

    • AES e RSA
    • DES e MD5 — Esatto.
    • SHA-2 e la crittografia a curve ellittiche
    • TLS e HTTPS

    La breve lunghezza della chiave di DES e le debolezze da collisione di MD5 significano che i sistemi moderni usano invece AES e le famiglie SHA-2/SHA-3.

Mettilo in pratica con FireAI

Metti in pratica questa lezione sul tuo Mac.

Fonti

Mettilo in pratica sul tuo Mac

Prova tutte le funzioni gratis per 17 giorni, senza carta.

Scarica per Mac Guide