Tutorial sulla crittografia

โšก Riepilogo intelligente

La crittografia protegge le informazioni trasformandole in una forma illeggibile dall'uomo, che solo chi possiede la chiave corretta puรฒ decifrare. Questa pagina illustra le sue caratteristiche, applicazioni, algoritmi e propone un esercizio pratico con CrypTool.

  • ๐Ÿ” Idea centrale: La crittografia converte il testo in chiaro in un testo cifrato; la decrittazione lo inverte utilizzando una chiave segreta.
  • ๐Ÿงฉ Tre discipline: La crittografia nasconde il significato, la crittanalisi lo decifra e la crittologia si occupa di entrambi.
  • ๐Ÿ“ Famiglie di algoritmi: Le funzioni hash, i cifrari simmetrici e i sistemi a chiave pubblica risolvono problemi diversi.
  • โœ… Norme attuali: AES e SHA-2 rimangono approvati, mentre MD5, SHA-1 e RC4 sono considerati non piรน sicuri.
  • ๐Ÿงช Esercitazione pratica: CrypTool 1 dimostra la crittografia RC4 e l'analisi a forza bruta di una chiave a 24 bit.
  • ๐Ÿ”ฎ Guardando avanti: Il NIST ha pubblicato i suoi primi standard post-quantistici nell'agosto del 2024.

Tutorial sulla crittografia

Le informazioni svolgono un ruolo fondamentale nelle operazioni commerciali, governative e militari, e se finiscono nelle mani sbagliate possono causare perdite economiche o conseguenze ben piรน gravi. Per proteggere le comunicazioni, un'organizzazione utilizza la crittografia per cifrare le informazioni, trasformandole in un formato non leggibile dall'uomo e poi riconvertendole nel formato originale.

In questo articolo sulla crittografia e la sicurezza di rete, imparerai come funziona la crittografia e come proteggere le informazioni da accessi non autorizzati.

Cos'รจ la crittografia?

La crittografia รจ lo studio e l'applicazione di tecniche che nascondono il vero significato delle informazioni trasformandole in formati non leggibili dall'uomo e viceversa.

Consideriamo un esempio. Per inviare "I LOVE APPLES" (Amo le mele), si sostituisce ogni lettera con la terza lettera consecutiva dell'alfabeto, ottenendo "K NQXG CRRNGU". Per leggerlo, il destinatario deve indietreggiare di tre lettere, come mostrato di seguito.

Crittografia e decrittazione con cifratura che sposta ogni lettera di tre posizioni
Crittografia e decrittografia cifrata

La trasformazione delle informazioni in una forma non leggibile dall'uomo si chiama crittografiae invertirlo si chiama decrittazioneIl risultato crittografato รจ noto come cifra.

La decrittazione utilizza una chiave segreta nota solo ai destinatari legittimi. Poichรฉ la chiave รจ necessaria, la comunicazione rimane sicura anche se un malintenzionato intercetta il messaggio cifrato, che senza di essa non avrebbe senso.

Caratteristiche della crittografia

Un sistema crittografico viene valutato in base alle caratteristiche elencate di seguito.

Caratteristica Cosa significa
Algoritmo La procedura matematica pubblicata che esegue la trasformazione.
riservatezza Solo chi possiede la chiave puรฒ leggere i dati protetti.
Integrity Qualsiasi modifica ai dati รจ rilevabile.
Adattabilitร  Il sistema si adatta a diverse dimensioni delle chiavi e a diversi livelli di minaccia.
Interoperabilitร  Diversi sistemi e fornitori si scambiano dati protetti.
Autenticazione L'origine di un messaggio puรฒ essere dimostrata.
Scalabilitร  Le prestazioni rimangono costanti anche all'aumentare dei volumi di dati.
Gestione delle chiavi Le chiavi vengono generate, archiviate, ruotate e ritirate in modo sicuro.

Applicazioni della crittografia

Queste caratteristiche diventano servizi quotidiani su cui le persone fanno affidamento senza nemmeno accorgersene.

Applicazione Come viene utilizzata la crittografia
Crittografia TLS Protegge il traffico tra un browser e un sito web.
Memorizzazione password Memorizza hash con salt anzichรฉ password leggibili.
Banca online Protegge le transazioni e verifica la banca.
criptovaluta Firma le transazioni e collega i blocchi con gli hash.
e-mail criptata Garantisce la riservatezza del contenuto dei messaggi durante la trasmissione e l'archiviazione.
Digifirme tal Dimostra l'autenticitร  del documento e che quest'ultimo non ha subito modifiche.
Messaggistica sicura Applica la crittografia end-to-end tra i dispositivi.
E-Commerce Protegge i dati della carta durante il pagamento.

Cos'รจ la crittoanalisi?

La crittanalisi รจ l'arte di decifrare i messaggi senza la chiave utilizzata per crittografarli. Applica analisi matematiche e algoritmi per decifrare i cifrari e viene utilizzata sia per violare i sistemi sia, a scopo difensivo, per valutare il livello di protezione offerto da un algoritmo.

Il successo di un attacco di crittanalisi dipende da:

  • Quantitร  di tempo disponibile
  • Potenza di calcolo disponibile
  • Capacitร  di archiviazione disponibile

Di seguito sono elencati gli attacchi di crittanalisi piรน comunemente discussi:

  • Attacco di forza bruta โ€” prova ogni possibile combinazione del testo in chiaro o della chiave, cifrando ciascuna e confrontandola con il cifrario originale.
  • Dizionario Attack โ€” utilizza un elenco di parole per trovare una corrispondenza con il testo in chiaro o con la chiave. Viene utilizzato principalmente quando si tenta di decifrare password crittografate.
  • Attacco tavolo arcobaleno โ€” confronta il testo cifrato con hash precalcolati per trovare corrispondenze. L'aggiunta di un sale a ciascuna password memorizzata ne compromette il funzionamento.

Cos'รจ la crittologia?

La crittologia รจ il campo di studio che unisce crittografia e crittanalisi. Entrambe le componenti sono fondamentali: un algoritmo รจ considerato affidabile solo dopo che i crittanalisti hanno tentato, senza successo, di decifrarlo.

crittografia Algorithms

Gli algoritmi riportati di seguito ricorrono frequentemente nel lavoro sulla sicurezza. Si noti quali sono ancora approvati e quali sopravvivono solo nei sistemi legacy.

  • MD5 โ€” abbreviazione di Message-Digest 5, produce valori hash a 128 bit. MD5 รจ una funzione hash piuttosto che crittografiaPertanto, per sua stessa natura, non รจ reversibile. Non รจ resistente alle collisioni (due input diversi possono produrre lo stesso hash) e non รจ adatto per password o firme digitali.
  • SHA โ€” abbreviazione di Secure Hash Algorithm, questa famiglia genera rappresentazioni condensate di un messaggio, chiamate digest del messaggio:
    • SHA-0Produce valori hash a 160 bit. รˆ stato ritirato a causa di un grave difetto ed รจ stato sostituito da SHA-1.
    • SHA-1Produce valori hash a 160 bit. Nel 2017 รจ stata dimostrata una collisione pratica e il NIST ne ha vietato l'uso nelle firme digitali, quindi รจ meglio evitarlo.
    • SHA-2: una famiglia di sei funzioni, tra cui SHA-256 e SHA-512, che operano rispettivamente su parole a 32 e 64 bit. Entrambe rimangono approvate.
    • SHA-3Standardizzato nel 2015 e precedentemente noto come Keccak, utilizza un design interno diverso come backup di SHA-2.
  • AES โ€” L'Advanced Encryption Standard (AES) รจ l'algoritmo di crittografia a blocchi simmetrico che protegge la maggior parte dei dati, sia a riposo che in transito, con chiavi a 128, 192 e 256 bit. Ha sostituito il DES ed รจ lo standard predefinito per i nuovi sistemi.
  • RC4 โ€” un cifrario a flusso un tempo comune in Secure Sockets Layer (SSL) e Wired Equivalent Privacy (WEP). Entrambi i protocolli sono obsoleti e la RFC 7465 ha vietato RC4 in ogni versione di TLS nel 2015. Sopravvive qui come esempio didattico.
  • Blowfish โ€” un cifrario a blocchi simmetrico con chiave, storicamente utilizzato per password e file. La sua dimensione del blocco a 64 bit rende AES la scelta migliore al giorno d'oggi.

Guardando al futuro, il NIST ha pubblicato i suoi primi standard post-quantistici nell'agosto del 2024: ML-KEM per lo scambio di chiavi, ML-DSA e SLH-DSA per le firme digitali, che sostituiranno gradualmente gli attuali algoritmi a chiave pubblica.

Attivitร  di hacking: come creare un cifrario usando CrypTool

In questo esercizio pratico di CrypTool, creerete un semplice cifrario con RC4 e lo recupererete tramite un'analisi a forza bruta, supponendo che la chiave sia nota e abbia 24 bit. L'obiettivo รจ dimostrare perchรฉ una chiave corta e un cifrario non crittografato non offrono una protezione reale.

Creazione del cifrario a flusso RC4

Passaggio 1) Scarica e installa CrypTool

CrypTool 1 รจ uno strumento didattico open-source per la crittografia. Lo sviluppo attivo si รจ poi spostato su CrypTool 2, ma la versione 1.4.42 รจ ancora in esecuzione su Windows e corrisponde alle schermate sottostanti. Scaricalo da cryptool.org.

Passaggio 2) Apri CrypTool e sostituisci il testo

La frase da crittografare รจ Non sottovalutare mai la determinazione di un ragazzo ricco di tempo e povero di soldiLa chiave รจ 00 00 00.

  • Apri CrypTool 1.

Finestra principale di CrypTool 1 prima che il testo di esempio venga sostituito

  • Sostituisci il testo con la frase sopra.

Documento CrypTool contenente la frase di sostituzione

Passaggio 3) Crittografare il testo

  • Fai clic sul menu Crittografa/Decrittografa.

Menu CrypTool Encrypt slash Decrypt con selezione simmetrica moderna

  • Posiziona il puntatore su Simmetrico (moderno), quindi seleziona RC4.

Finestra di dialogo per l'inserimento della chiave in CrypTool RC4

Passaggio 4) Selezionare la chiave di crittografia

  • Selezionare 24 bit come lunghezza della chiave.
  • Imposta il valore su 00 00 00.
  • Fai clic su Crittografa per generare il cifrario a flusso riportato di seguito.

Il cifrario a flusso RC4 risultante รจ mostrato in CrypTool

Attaccare il cifrario a flusso

Passaggio 5) Avviare l'analisi

  • Fai clic sul menu Analisi.

Menu di analisi di CrypTool con crittografia simmetrica moderna evidenziata

  • Seleziona Crittografia simmetrica (moderna), quindi scegli RC4.

Finestra di dialogo per l'analisi a forza bruta di CrypTool per RC4

  • Si presume una chiave segreta a 24 bit, quindi si seleziona 24 bit come lunghezza della chiave.
  • Fare clic su Start.

Finestra di avanzamento dell'analisi a forza bruta di CrypTool

  • Nota: Il tempo necessario dipende dalla capacitร  di elaborazione della macchina utilizzata e dalla lunghezza della chiave. Una chiave piรน lunga richiede piรน tempo, motivo per cui le chiavi moderne sono a 128 bit o piรน.

Fase 6) Analizzare i risultati

  • Al termine dell'analisi, le chiavi candidate vengono visualizzate classificate come segue.

Risultati dell'attacco a forza bruta di CrypTool classificati in base all'entropia

  • Nota: Un valore di entropia inferiore di solito indica il risultato corretto, sebbene anche un valore superiore possa essere corretto.
  • Seleziona la riga che appare come testo sensato, quindi fai clic su Accetta selezione.

DOMANDE FREQUENTI

La crittografia simmetrica utilizza una chiave condivisa ed รจ veloce, quindi protegge grandi quantitร  di dati. La crittografia asimmetrica utilizza una coppia di chiavi, pubblica e privata, che risolve il problema della distribuzione delle chiavi e consente le firme digitali.

No. La crittografia รจ reversibile con una chiave; l'hashing รจ una trasformazione unidirezionale in un digest di lunghezza fissa. I sistemi di password memorizzano hash con salt proprio perchรฉ il valore originale non puรฒ essere recuperato.

Il salt รจ un valore casuale univoco memorizzato accanto a ogni hash di password. Fa sรฌ che password identiche vengano generate con hash diversi, vanificando le tabelle rainbow precalcolate e costringendo un attaccante a lavorare su ogni account separatamente.

Un certificato digitale associa una chiave pubblica a un'identitร  verificata ed รจ firmato da un'autoritร  di certificazione. I browser verificano tale firma prima di considerare attendibile la connessione crittografata a un sito web.

Un computer quantistico di grandi dimensioni sarebbe in grado di decifrare gli algoritmi RSA e le chiavi a curva ellittica, mentre i cifrari simmetrici necessitano solo di chiavi piรน grandi. Il NIST ha risposto pubblicando gli standard post-quantistici nel 2024, in modo che la transizione possa iniziare in anticipo.

L'apprendimento automatico non รจ in grado di violare i moderni e robusti algoritmi di crittografia. Viene invece utilizzato per l'analisi dei canali laterali, per individuare su larga scala chiavi deboli o riutilizzate e per segnalare traffico crittografato anomalo durante il rilevamento delle minacce.

Copilot velocizza la creazione di codice standard, ma spesso suggerisce algoritmi obsoleti o tasti codificati in modo rigido. Considera ogni suggerimento come una bozza, preferisci una libreria collaudata al codice scritto a mano e fai controllare la gestione dei tasti da un revisore.

Gli ingegneri della sicurezza, i penetration tester e gli analisti forensi lo applicano quotidianamente e costituisce un dominio completo del Certificazione CISSPLa maggior parte dei ruoli prevede la configurazione di librerie collaudate, piuttosto che la progettazione di algoritmi.

Riassumi questo post con: