Le parole scritte in rosso devono essere sostituite dai vostri parametri.
×
Beta!
Sto lavorando al sito e commetterò tanti errori: potete segnalarmeli all'indirizzo indicato in fondo pagina. Segnalatemi anche eventuali vostre richieste. Grazie. !!!
Crittografia TLS.
Come abbiamo visto, la rete non è un posto frequentato da sole brave persone.
x
TLS (Transport Layer Security), versione aggiornata e più sicura di SSL (Secure Sockets Layer), è un protocollo di sicurezza che garantisce la privacy e l'integrità dei dati trasmessi su Internet.
crea un canale di comunicazione crittografato tra due applicazioni (ad esempio, client - server oppure server - server). Questo significa che i dati scambiati vengono cifrati, rendendo difficile per malintenzionati intercettare e leggere i messaggi o alterare le informazioni.
Questa procedura è chiamata anche crittografia a chiave pubblica, perchè utilizza due chiavi : una pubblica ed una privata.
Come funziona?
Facciamo l'esempio di elia@ava.it che spedisce una mail verso il server @ava.it, affinchè questo possa recapitarla a destinazione.
Il server ed il client si accordono su quale tipo di cifratura e formattazione usare. È il cosiddetto Handshake, stretta di mano; rende l'idea dell'accordo negoziato.
Il server @ava.it condivide il suo certificato TLS e la sua chiave pubblica al client elia@ava.it
Il client di elia@ava.it (outlook, apple mail, thunderbird, etc, il programma con cui scrive la mail)riconosce il certificato, perchè emesso da una autorità conosciuta, inserita nella lista delle Autorità di Certificazione ("CA").
Il client si accerta anche che il certificato non sia scaduto o addirittura revocato.
Il client invia al server una chiave unica, generata al momento, con la quale criptare la sessione di scambio.
Il server @ava.it, usando la sua chiave privata, decritta la chiave unica del client e crea una chiave di sessione.
A questo punto, tutti i dati passanti tra client e server sono criptati con la chiave di sessione.
Questo porta anche un altro vantaggio: se andasse "smarrita" la chiave privata , chi "trova" la chiave privata non riuscirebbe a decrittare le intercettazioni avvenute precedentemente, essendo diversa dalla chiave unica di sessione.
Precisazione: con la crittografia TLS sono solo le trasmissioni ad essere crittografate.
Se un malintenzionato riesce a prendere possesso del server o anche del client (ad esempio il vostro laptop) e fruga tra le mail, queste saranno leggibili e non crittografate.
Per crittografare la mail, bisogna utilizzare applicazioni apposite, ad esempio
x
Pretty Good Privacy; utilizza RSA.
La chiave pubblica viene utilizzata per criptare il messaggio e soltanto la chiave privata corrispondente può decriptarlo.
La crittografia PGP rende la mail praticamente illeggibile per chiunque non abbia la chiave privata corretta. Questo garantisce la riservatezza delle comunicazioni.
Se siete interessati a conoscere le CA, autorità di certificazione, digitate nel terminale:
less /etc/ca-certificates.conf
Per listare l'elenco delle CA, abbiamo usato l'utilità less: permette di scorrere il file una pagina alla volta premendo la barra spaziatrice, il tasto B per andare indietro di una pagina ed il tasto Q per uscire da less.
La lista delle CA si aggiornerà automaticamente con l'aggiornamento del sistema:
sudo apt update && sudo apt upgrade
Tipi di Certificati.
Ci sono 3 categorie di certificati:
Certificati Domain Validated (DV).
La validazione si limita all'accertamento del possesso e del controllo del dominio di chi chiede il certificato. Infatti, viene utilizzato per la verifica solo il nome del dominio.
La richiesta di validazione può essere richiesta tramite mail, tramite record DNS, tramite Token disposto dal client ACME.
Certificati Organization Validated (OV).
La validazione riguarda, oltre il controllo del dominio, anche l'effettiva esistenza dell'organizzazione (azienda, ong, governo, etc.) che richiede di ottenere il certificato e del luogo dove opera, lo stato, il numero di telefono.
In questo caso, oltre al dominio, viene inserita anche l'entità nel certificato, così da diffondere più informazioni per chi va a "spulciare" sul famoso lucchettino nel browser per controllare il certificato.
Certificati Extended Validation (EV).
Le stesse verifiche dei certificati OV , ma molto più rigorose con la richiesta di documentazione; prevedono la verifica del numero di telefono dell'organizzazione, la verifica della sua esistenza ed identità legale, il controllo del nome, dello stato, dell'indirizzo fisico, cioè controlli più profondi.
Procurarsi certificati TLS .
Possiamo noi stessi emettere un certificato TLS. Se non siete interessati allla procedura di creazione di certificati autonomi, potete passare al paragrafo su Certbot.
Usiamo openssl, applicazione già installata nel nostro sistema. Per creare la chiave privata, digitiamo:
openssl genrsa -out server.key 4096
Abbiamo chiesto di generare la chiave con algoritmo ,
x
Algoritmo di crittografia asimmetrica, inventato nel 1977 da Rivest, Shamir e Adleman utilizzabile per cifrare o firmare informazioni. L'algoritmo crea un numero molto grande dal quale ricava la chiave pubblica e la chiave privata.
di chiamare il file server.key, creato nella home del richiedente, e che la chiave abbia una dimensione di 4096 bit. Di default è 2048; con una dimensione inferiore la chiave non è ritenuta sicura.
La chiave privata server.key. è creata con permessi u=rw ,g=, o=, perciò divieto di lettura al di fuori del creatore del file.
Adesso possiamo creare la richiesta di certificato. Sarebbe il file da inviare all'Autorità Certificante.
Digitiamo:
openssl req -key server.key -new -out server.csr
Ci verranno chieste delle informazioni. La più importante è "Common Name": inseriamo l'hostname nella forma
x
Il Fully Qualified Domain Name è composto da due parti: l'host e il nome di dominio, separati da un punto. Ad esempio, mail.sitoprovaprimo.it è un FQDN dove mail è l'host e sitoprovaprimo.it è il nome di dominio
nel mio caso, mail.sitoprovaprimo.it
In questo caso, abbiamo detto ad openssl di utilizzare nella richiesta il file server.key, creato precedentemente, e di fornire un nuovo file col nome server.csr .
Invece di mandare il file server.crs (certificate signing request) ad una CA, affinchè firmi la richiesta e ci consegni il certificato validato, creiamo il nostro certificato autofirmato, diventando noi stessi emanatori di certificati, sempre con openssl, usando i due file creati, server.key e server.csr; digitiamo:
L'opzione x509 è uno standard usato per definire il formato dei certificati a chiave pubblica e delle Autorità di Certificazione; mentre l'opzione -days riguarda la durata del certificato. In questo caso abbiamo un certificato valido 10 anni.
Viene creato il file server.crt: il nostro certificato.
Se listiamo la nostra Home, troveremo i file creati, con i relativi permessi. Digitiamo:
ls -l
Pecularietà negativa dei certificati autoprodotti è di non essere riconosciuti dalle CA, pertanto inutilizzabili, se non all'interno della propria rete domestica per uso privato.