Letteralmente significa "scrittura segreta" e infatti crittografare significa rendere un testo o una comunicazione incomprensibile a chiunque non sia il diretto destinatario.
La sue origine sono radicate nella storia antica, ne abbiamo esempi già nell'antica Grecia (600 a.C) e in epoca babilonese.
Inizialmente veniva usata per scopi bellici e diplomatici, dato che i messaggi e la maggior parte delle comunicazioni avvenivano in forma scritta era l'unico modo per difendersi da eventuali intercettazioni del messaggio.
Successivamente l'ampliamento dei metodi di comunicazione con la radio e i moderni calcolatori hanno ampliato notevolmente i campi d'applicazione di queste tecniche e le hanno rese disponibili a chiunque.
Ma tentiamo di capire come funziona la crittografia. Due entità per poter comunicare tra loro hanno bisogno essenzialmente di un mezzo (voce, reti, ecc) e di un linguaggio comune (una lingua, l'alfabeto) che sia conosciuto da entrambi. Quello che a noi interessa è il linguaggio dato che è li che interviene la crittografia. Infatti quando rendiamo un testo cifrato essenzialmente non facciamo altro che cambiare "il linguaggio" con cui è comunicato in modo che solo il destinatario sappia decodificarlo. Ad esempio in un contesto ipotetico in cui tutti parlassero solo una lingua a due ipotetici stranieri sarebbe possibile comunicare in maniera criptata semplicemente utilizzando la loro lingua.
Tuttavia un esempio di questo tipo non ci metterebbe al riparo da delatori interni.... All'ora bisogna intervenire sul linguaggio stesso, modificando l'alfabeto o il testo in base ad una chiave che solo i diretti interessati conoscono, ad esempio il cifrario di Giulio Cesare consisteva esattamente in questo, ovvero trasporre l'alfabeto di n caratteri a seconda del numero scelto dai destinatari, quindi mettiamo ad esempio che il numero scelto fosse 3 a = d, c = f, auguri = dxjxul.
Questo sistema tuttavia è molto semplice da forzare, infatti le possibilità che abbiamo vanno da 1 a 21 (quante sono le lettere dell'alfabeto, quindi con un attacco di tipo “bruto” cioè anche solo provando tutti i numeri riusciremmo ad avere la soluzione in poco tempo. Nel corso del tempo la crittologia ha elaborato algoritmi sempre più complessi e oggigiorno non si tratta più di semplici trasposizioni ma di vere e proprie operazioni sui bit dei dati che seguono complesse funzioni matematiche. Nel quadro attuale possiamo suddividere i sistemi di criptazione in due categorie principali, quelli a chiave simmetrica e quelli a chiave asimmetrica:
Nella prima categoria i più conosciuti e utilizzati sono il DES (Data Encrytion Standard), il Triple-DES (cifratura eseguita 3 volte di seguito in DES) e l'IDEA (International Data Encryption Algorithm) e ora si sta affermando lo standard AES voluto dal governo federale statunitense. Il primo non è più considerato sicuro dato che è stato violato in un tempo di circa 22 ore durante l' RSA Data Security's DES Challenge III nel 1999.
La cifratura a chiave simmetrica si basa su una chiave singola che deve essere conosciuta sia dal mittente che dal destinatario, il che la rende scomoda per quanto riguarda le comunicazioni via rete, vista l'impossibilita di mandare la chiave in maniera sicura al destinatario.
La cifratura a chiave asimmetrica è stata creata proprio per ovviare a questo problema, gli esempi più comuni sono l'RSA, il DSS e la Diffie-Hellman, basata sempre su equazioni matematiche questo tipo di cifrature richiede due chiavi che sono generate una tantum al primo utilizzo, che vengono chiamate rispettivamente chiave pubblica e chiave privata, come si intuisce dal nome la chiave pubblica viene resa disponibile a chiunque voglia comunicare con noi in maniera sicura, per criptare il messaggio e la chiave segreta serve per decriptarlo.
Questo meccanismo è bivalente, la chiave pubblica decripta messaggi criptati con la chiave privata, tuttavia anche questo sistema seppure sia il più pratico e funzionale mostra delle pecche, infatti per essere sicure questo tipo di chiavi devono essere almeno di 1024k di lunghezza, contro i 128 - 156 degli algoritmi simmetrici. Il che richiede un notevole sforzo a livello macchina per sostenere uno scambio notevole di informazioni irrisorio se si pensa ad un pc di ultima generazione ma gravoso per quanto riguarda le transizioni online, i bancomat, la telefonia, e tante altre applicazioni.
La migliore soluzione consiste in un modello ibrido simmetrico / asimmetrico nel quale si utilizzi la cifratura asimmetrica per inviare la chiave simmetrica al destinatario, e poi cominciare a comunicare utilizzando quest'ultima.
SSL (Secure Layer Protocol) è un protocollo che garantisce la privacy delle comunicazioni in internet in un contesto client/server. Per fare ciò utilizza il sistema ibrido sopra descritto che gli consente di identificare il destinatario e di criptare la comunicazione in modo rapido e sicuro, e un ulteriore verifica tramite hash sicure (MD5,SHA, etc..) che garantiscono che il messaggio non è stato modificato durante il tragitto.
La maggior parte dei client di posta ormai supportano SSL, purtroppo non si può dire lo stesso per i provider, infatti la maggior parte dei fornitori di servizi italiani non supporta questo tipo di protocollo per la sicurezza della posta.
- configurazione xchat con ssl
- https
- che è pgp
- che è gpg
approfonfimenti