Introduzione
Ciao e benvenuto in questo nuovo post, oggi parleremo della crittografia, nel successivo post parleremo della firma digitale e del perché è importantissima specialmente ai giorni nostri.
Prima di concentrarci sulla crittografia dobbiamo conoscere le fondamenta della sicurezza e del perché quest'ultima è importante.
I pilastri della sicurezza
Le informazioni sicure devono rispettare 3 pilastri fondamentali, (Devono essere sicuri e al sicuro).
Le informazioni devono essere :
- Disponibili : garantire sempre l'accesso ai dati
- Riservate : proteggere i dati da accessi non autorizzati
- Integre : non vanno manomessi o modificati, inoltre ciò garantisce che i dati siano riconducibili ad una determinata origine (principio di non ripudiabilità)
Prima abbiamo detto che i dati devono essere sicuri e al sicuro. Con l'ultima affermazione capiamo che non basta avere dati ben costruiti ma devono anche essere ben al sicuro non solo da attacchi informatici ma anche da eventi naturali e fisici, come terremoti, incendi, allagamenti ecc...
Un modo per prevenire tali rischi sono i backup, quindi fare delle copie dei nostri file in modo che in qualsiasi evenienza tutto ciò che abbiamo non viene perso completamente, è anche sicuramente importante prevenire attacchi informatici, come virus o malware in generale, è bene usare antivirus o firewall per filtrare la connessione insieme a meccanismi di autenticazione per controllare gli accessi.
La crittografia
La crittografia ha lo scopo di proteggere le informazioni online. Con il boom di internet e con la sua espansione ad oggi la crittografia è un tassello fondamentale della comunicazione online.
Crittografia proviene dal greco e letteralmente significa scrittura nascostaKryptos : nascosto
graphia : scrittura
La crittografia ha lo scopo di rendere sicuro lo scambio di dati, criptando il messaggio (cambiandolo in modo da renderlo incomprensibile). Solo gli utenti che avranno la relativa chiave segreta potranno decifrare il messaggio. Per decifrare o cifrare un messaggio abbiamo bisogno di algoritmi speciali chiamati algoritmi di cifratura, questi ultimi ci permetteranno di creare una corrispondenza tra il messaggio cifrato e il messaggio in chiaro.
Gli algoritmi di cifratura insieme alle chiavi che vedremo tra un attimo sono i due strumenti fondamentali per poter cifrare e decifrare un messaggio.
La crittografia si fonda su tre principi fondamentali :
- Principio di Riservatezza : le informazioni devono essere riservate e capibili solo da chi ne ha il diritto.
- Autenticazione : il destinatario deve poter verificare l'identità del mittente
- Affidabilità : Consente di poter identificare univocamente e in modo certo il mittente del messaggio, a questo principio sono collegati altri due principi.
- Principio di non Ripudiabilità : il mittente non può rinnegare di aver creato e inviato il messaggio
- Principio di integrità : garantisce che il messaggio non sia stato manomesso o letto durante la trasmissione del messaggio, evitando attacchi Man in the Middle.
Le chiavi sono quei parametri necessari all'algoritmo per cifrare e decifrare il messaggio.
Le chiavi possono essere di 2 tipi :
- Chiave SIMMETRICA : la chiave è comune sia al mittente, sia al destinatario. Entrambi quindi possiedono la stessa chiave SEGRETA.
- Chiave ASIMMETRICA : è l'unione tra 2 tipologie di chiavi, la chiave pubblica che tutti conoscono più la chiave segreta.
Algoritmi a chiave segreta (Chiave SIMMETRICA)
La codifica e la decodifica del messaggio avvengono con la stessa chiave. Noi scriviamo un messaggio, lo crittografiamo con la chiave segreta. Il destinatario per capire il messaggio deve possedere la stessa chiave simmetrica del destinatario. Entrambi quindi devono avere la stessa chiave.
Noi scriviamo M, criptiamo in C con una chiave segreta K. Il destinatario avrà C e con la stessa chiave segreta K decifra il messaggio e legge il messaggio M.
Pro : Molto veloce
Contro : Il problema della scambio di chiavi. Come fanno ad avere la stessa chiave segreta ?
Algoritmi a chiave pubblica e privata (Chiave ASIMETRICA)
Ogni utente ha una coppia di chiavi
- Una chiave pubblica può essere conosciuta da tutti
- Una chiave privata la possiede solo il proprietario
Quindi se ognuno ha una coppia di chiavi in totale ci sono 4 chiavi.
Facciamo finta che Luca deve parlare con Maurizio.
Maurizio ha una propria chiave private e una propria chiave pubblica.
Luca ha una propria chiave privata e una propria chiave pubblica.
Se Luca cifra con la chiave pubblica di Maurizio (che tutti conoscono) soltanto Maurizio potrà decifrarla con la sua chiave privata.
NON POSSO cifrarla con la MIA chiave pubblica e lui la decifra con la SUA chiave privata.
Luca cifra con la chiave pubblica di Maurizio e Maurizio decifrare con la sua chiave privata, in pratica usano entrambi la stessa coppia di chiavi non possono fare metà di Luca e metà di Maurizio ma entrambi le chiavi sia pubblica che privata devono appartenere alla stessa persona, devono appartenere allo stesso destinatario in questo caso Maurizio.
TUTTO ciò che viene cifrato con la chiave pubblica di MAURIZIO può essere decifrata SOLO con la chiave privata di MAURIZIO.
Pro : bypassiamo il problema della distribuzione delle chiavi, perché sarà un ente di cui sia il mittente che il destinatario si fidano a distribuire le chiavi
Contro : è molto lento.
Con la chiave asimmetrica possiamo avere due modalità di comunicazione :
- Modalità di Autenticazione : quando il Maurizio riceve un messaggio vuole essere sicuro che a mandarlo sia stato proprio Luca e non Franco. Per fare ciò, il mittente cripta il messaggio utilizzando la propria chiave privata, se il destinatario riesce a decriptarlo con la chiave pubblica del mittente allora siamo sicuri matematicamente che il mittente è proprio colui che conosciamo. Luca deve comunicare con Maurizio, ma Maurizio vuole capire se è davvero Luca a parlare, allora chiede a Luca di criptare il messaggio con la sua chiave privata. Luca cripta il messaggio con la sua chiave privata, Maurizio per decriptarlo utilizza la chiave pubblica di Luca, se ciò avviene allora Maurizio è sicuro che sta comunicando con Luca.
- Modalità di confidenzialità : Luca vuole essere sicuro che solo Maurizio possa leggere il suo messaggio, allora decifra il messaggio con la chiave pubblica di Maurizio, in modo che solo Maurizio possa decifrare il messaggio con la sua chiave privata. Luca invia il messaggio criptandolo con la chiave pubblica di Maurizio, solo Maurizio potrà leggere il messaggio perché solo lui dispone della corrispondente chiave privata.
Per creare la comunicazione criptata definitiva, si fa un uso combinato delle chiavi, quindi usiamo sia la chiave ASSIMETRICA sia la chiave SIMMETRICA.
Inizialmente utilizziamo la chiave asimmetrica in modalità di confidenzialità, fatto ciò il primo messaggio che invieremo sarà la chiave comune ad entrambi ovvero la chiave simmetrica. Ciò ci permetterà di essere più veloci poiché dalle successive comunicazione utilizzeremo la chiave simmetrica ed risolviamo il problema dello scambio della chiave presente nella simmetrica.
Quindi nella prima comunicazione utilizziamo la chiave asimmetrica in modalità confidenzialità in modo che solo il destinatario potrà leggere il messaggio che in questa caso è la chiave simmetrica, ovvero una chiave di cifratura e decifratura che entrambi possediamo. Così facendo comunichiamo in modo più veloce e risolviamo il problema di come metterci d'accordo e di come avere la stessa chiave simmetrica.
Autenticazione
L'autenticazione ha lo scopo di sapere con sicurezza e quindi di accertare la persona che sta dialogando con noi.
Esistono 3 modalità per autenticare un utente, ovvero :
- Che cosa sei : le caratteristiche fisiche dell'individuo, volto, impronte digitale, iride ecc...
- Che cosa hai : oggetti che ti permettono di autenticarti, quindi un bancomat, una card di riconoscimento ecc...
- Che cosa sai : tutto ciò che solo tu puoi sapere, quindi password, pin, risposta a domande sicure e molto altro.
Queste modalità di autenticazione possono essere combinate tra di loro.
Se utilizzassimo solo una delle 3 modalità avremo un'autenticazione debole, facile da bypassare, se combinassimo invece 2 o ancora meglio 3 modalità di autenticazione avremo una autenticazione forte. Un esempio potrebbe essere il bancomat: per prelevare del denaro devi avere una smartcard (che cosa hai ) e devi conoscere un PIN di sicurezza (che cosa sai), il risultato sarà un'autenticazione forte.
Nota : La crittografia si basa su algoritmi matematici molto complessi che utilizzano solitamente un'aritmetica modulare, insieme all'utilizzo di numeri primi molto grandi. Solitamente viene usato il 1 e il 2 secondo teorema di Euclide insieme al principio di Kerckoffs sulla segretezza della chiave.
Conclusione
Spero che questo post vi sia stato d'aiuto, nei prossimi post vedremo un'applicazione della crittografia, la firma digitale.
Commenti
Posta un commento