[:it]
Il protocollo SSL (Secure sockets Layer) gestisce la crittografia dei messaggi in Internet e delle comunicazioni WEB.
Comunicazione cifrata con SSL
L’amministratore genera le chiavi private degli utenti:
openssl genrsa -out marcello.pem 2048
openssl genrsa -out francesco.pem 2048
i file con estensione .pem contengono una chiave provata secondo l’algoritmo RSA di lunghezza 2048 bit.
PEM sta per Privacy Enhanced Mail che è lo standard per i certificati di cifratura e non solo per i messaggi di posta elettronica.
Dalle chiavi private genero le chiavi pubbliche
openssl rsa -in marcello.pem -out marcello.pub -outform PEM -pubout
openssl rsa -in francesco.pem -out francesco.pub -outform PEM -pubout
A marcello e francesco vengono consegnate le chiavi la chiave privata e la chiave pubblica invece viene distribuita agli utenti.
Adesso marcello crea un semplice messaggio:
echo “ciao francesco come stai?” >messaggioM
Adesso marcello cifra il messaggio con la chiave pubblica di francesco e produce in output il file cifrato B che viene inviato a Bob.
openssl rsautl -encrypt -inkey francesco.pub -pubin -in messaggioM -out cifratoF
Adesso francesco decifra il messaggio ricevuto con la sua chiave privata e produce il documento in chiaro chiaroF
openssl rsautl -decrypt -inkey francesco.pem -in cifratoF -out chiaroM
Si osservi che questa operazione garantisce solo la segretezza del messaggio (solo francesco può leggere il messaggio), ma non fornisce alcuna certezza sull’identità del mittente, perchè la chiave pubblica di francesco può essere usata da chiunque.
Per garantire l’autenticità del documento si possono usare i comandi SSL per firmare i documenti:
marcello firma il documento usando la sua chiave privata e produce il documento firmatoM che viene inviato a francesco
openssl rsautl -sign -inkey marcello.pem -in messaggioM -out firmatoM
adesso francesco verifica utilizzando la chiave pubblica di marcello per verificare il documento e visualizzarlo in chiaro.
francesco@francesco-Extensa-5620:/home/programmatori$ openssl rsautl -verify -inkey marcello.pub -pubin -in firmatoM
ciao francesco come stai?[:]