Crittografia e Sicurezza Informatica: Fondamenti, Algoritmi e Applicazioni

Classificato in Informatica

Scritto il in con una dimensione di 15,12 KB

Crittografia: Nozioni di base

La crittografia (dal greco kryptós "nascosto" e graphía "scrittura"), letteralmente "scrittura nascosta", è l'arte di cifrare e decifrare le informazioni utilizzando tecniche particolari. Viene spesso utilizzata per consentire uno scambio di messaggi che possano essere letti solo dai destinatari che possiedono i mezzi per decifrarli.

Di seguito vengono definiti i termini principali utilizzati in ambito crittografico:

  • Testo in chiaro (Plaintext): l'informazione originale che, dopo l'applicazione di tecniche crittografiche, diventa un testo cifrato.
  • Testo cifrato (Ciphertext): l'informazione risultante dopo la crittografia di un testo normale. Questa informazione è inintelligibile per chi non possiede la chiave.
  • Cifrare (Encrypt): l'operazione di trasformare un testo in chiaro in un codice.
  • Decifrare (Decrypt): l'operazione inversa della cifratura, ovvero convertire un testo cifrato o crittogramma in testo normale.
  • Password o Chiave: l'informazione segreta utilizzata per codificare e decodificare il testo. È lo strumento che "apre la porta" all'informazione.

Tecniche di crittografia

Le tecniche fondamentali si dividono in:

  • Sostituzione: consiste nel cambiare il significato di base del messaggio sostituendo lettere, cifre o simboli.
  • Trasposizione: consiste in un riarrangiamento degli elementi originali (lettere, numeri o simboli) senza cambiarne l'identità.

La stragrande maggioranza dei cifrari moderni è una combinazione di queste due tecniche.

Crittografia simmetrica (Algoritmi a chiave segreta)

Si tratta di un algoritmo di crittografia che utilizza la stessa chiave sia per cifrare che per decifrare. Questi algoritmi sono caratterizzati da una grande velocità di esecuzione, non aumentano il volume delle informazioni ed è quasi impossibile ottenere il testo in chiaro senza conoscere la chiave. Esempi di algoritmi a chiave simmetrica includono:

  • DES: utilizza chiavi a 56 bit, il che significa che esistono 2^56 possibili combinazioni. Un computer moderno può decifrarlo in pochi giorni, mentre macchine specializzate possono farlo in poche ore.
  • 3DES: utilizza chiavi a 128 bit (2^128 combinazioni). La maggior parte delle carte di credito e dei sistemi di pagamento elettronico utilizza lo standard 3DES.
  • Altri: AES (Advanced Encryption Standard), LOKI o GnuPG su sistemi GNU.

L'inventore di questo approccio fu Horst Feistel, che utilizzò questo metodo per l'algoritmo LUCIFER nel 1970. Nel 1974, su proposta della NSA, nacque il DES. Non tutti gli algoritmi simmetrici moderni si basano sulla rete di Feistel, ma ne seguono i principi. Ad esempio, l'AES (l'attuale standard mondiale) si basa su una rete di sostituzione e permutazione (S-box).

Attacchi crittografici

Un attacco crittografico è un metodo per aggirare la sicurezza di un sistema crittografico trovando punti deboli in un codice, un protocollo o un sistema di gestione delle chiavi. Questo processo è chiamato anche crittanalisi.

Brute Force (Forza Bruta)

In crittografia, l'attacco a forza bruta consiste nel testare sistematicamente tutte le combinazioni possibili di chiavi fino a trovare quella corretta. Lo sforzo richiesto dipende dalla lunghezza della chiave (n); lo spazio delle chiavi è pari a 2^n.

Attacco del dizionario

Un attacco del dizionario è un metodo di cracking che consiste nel provare password utilizzando un elenco predefinito di parole (dizionario). È spesso più efficiente della forza bruta poiché molti utenti utilizzano parole comuni o facili da ricordare. Strumenti come KeePass mostrano automaticamente la robustezza della password scelta.

Consigli per la sicurezza

Una pratica comune per creare password sicure ma facili da ricordare è utilizzare le iniziali di una frase significativa. Ad esempio, dalla frase "La mia prima moto fu un BH210 datomi dal mio nonno Francisco", si ottiene la password: MpbfuBH210qmrmaF. Questa password, mescolando lettere e numeri con 16 caratteri, è estremamente difficile da violare con un attacco brute force.

Protezione contro gli attacchi

Un modo semplice per proteggersi è stabilire un numero massimo di tentativi. Il sistema si blocca automaticamente dopo una serie di fallimenti. Un esempio classico è il codice PIN delle carte SIM, che si blocca dopo tre tentativi errati. Per una sicurezza superiore, si utilizzano sistemi di crittografia ibrida o asimmetrica.

Crittografia a chiave asimmetrica (Algoritmi a chiave pubblica)

Questi algoritmi utilizzano due chiavi diverse: una chiave pubblica per cifrare e una chiave privata per decifrare. Sono più lenti dei sistemi simmetrici, aumentano il volume dei dati e richiedono chiavi più lunghe e maggiore potenza di calcolo.

Si basano su funzioni matematiche unidirezionali: operazioni facili da eseguire in un senso ma quasi impossibili da invertire senza una chiave. Ad esempio, è molto più facile calcolare il quadrato di un numero che estrarne la radice quadrata in contesti complessi.

Funzionamento della comunicazione asimmetrica:

  • L'utente B genera una coppia di chiavi e condivide la sua chiave pubblica.
  • L'utente A codifica il messaggio utilizzando la chiave pubblica di B.
  • L'utente B riceve il messaggio e lo decifra con la propria chiave privata.

Il vantaggio principale è la risoluzione del problema della distribuzione delle chiavi. Tuttavia, essendo lenti, vengono spesso utilizzati in sistemi ibridi.

Sicurezza e dimensioni delle chiavi

In un sistema robusto, la sicurezza risiede nella chiave, non nell'algoritmo. Mentre 128 bit sono sufficienti per i cifrari simmetrici, per la crittografia a chiave pubblica (come RSA) si raccomanda l'uso di chiavi a 1024 bit o superiori a causa delle diverse tecniche di attacco (come la fattorizzazione dei numeri primi).

Vantaggi e svantaggi della crittografia asimmetrica

Il sistema presenta alcune sfide operative:

* Richiede più tempo di elaborazione per lo stesso messaggio.

* Le chiavi devono essere significativamente più grandi rispetto a quelle simmetriche.

* Il messaggio cifrato occupa più spazio dell'originale.

* La crittografia a curva ellittica rappresenta un'alternativa più efficiente per risolvere questi problemi.

Strumenti come PGP, SSH o SSL utilizzano un formato ibrido: crittografia asimmetrica per lo scambio delle chiavi e crittografia simmetrica per la trasmissione dei dati.

Algoritmi e Protocolli

Algoritmi principali:

* Diffie-Hellman

* RSA

* DSA

* ElGamal

* Elliptic Curve Cryptography (ECC)

Algoritmi storici o meno sicuri:

* Merkle-Hellman (algoritmo dello "zaino").

Protocolli comuni:

* DSS (Digital Signature Standard) con algoritmo DSA

* PGP (Pretty Good Privacy)

* GPG (GNU Privacy Guard)

* SSH (Secure Shell)

* SSL (Secure Sockets Layer)

* TLS (Transport Layer Security)

Processi e Servizi di Sicurezza

  • Privacy (Riservatezza): garantisce che l'accesso alle informazioni sia limitato ai soli autorizzati.
  • Integrità: assicura che l'informazione non sia stata alterata durante il trasporto.
  • Autenticazione: permette di verificare l'identità del mittente.
  • Firma: prova che l'informazione è stata generata da un utente specifico.
  • Non ripudio: impedisce a mittente o destinatario di negare la propria partecipazione alla comunicazione.
  • Controllo degli accessi: regola chi può accedere a determinate risorse.
  • Disponibilità: garantisce che l'informazione sia accessibile agli utenti autorizzati quando richiesto.

Certificato digitale

Un certificato digitale è un documento elettronico rilasciato da una Certification Authority (CA) che garantisce il legame tra l'identità di un soggetto e la sua chiave pubblica. Lo standard più comune è l'ITU-T X.509. Un certificato contiene solitamente:

* Nome del soggetto certificato

* Numero di serie

* Data di scadenza

* Copia della chiave pubblica del titolare

Firma Elettronica

La firma elettronica è una firma digitale memorizzata su un supporto hardware (come un chip ROM), mentre la firma digitale generica può risiedere anche su software. Ha lo stesso valore legale della firma autografa. La sua caratteristica distintiva è l'immutabilità all'interno del dispositivo fisico.

Identità elettronica (DNIe)

In Spagna, dal marzo 2006, è stato introdotto il DNIe (Documento Nacional de Identidad electrónico). È l'evoluzione del documento d'identità tradizionale, adattato alla società dell'informazione.

Requisiti Hardware e Software

a) Elementi Hardware:

  • Un personal computer (minimo Pentium III o equivalente).
  • Un lettore di smart card conforme allo standard ISO-7816 (USB, integrato o PCMCIA).

b) Elementi Software:

  • Sistemi Operativi: Microsoft Windows (2000, XP, Vista e successivi).
  • Browser: Internet Explorer 6.0 o superiore, e altri browser moderni.
  • Moduli crittografici: In Windows è necessario il Cryptographic Service Provider (CSP). In ambienti UNIX/Linux o Mac si utilizza il modulo PKCS #11.

I driver specifici sono disponibili sul sito ufficiale www.dnielectronico.es. È fondamentale seguire le istruzioni del produttore per la corretta configurazione del lettore.

Voci correlate: