Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
RSA
OpenSSL è un toolkit crittografico open source che supporta una vasta gamma di algoritmi di
crittografia, tra cui l'algoritmo di crittografia RSA. RSA è un algoritmo di crittografia a chiave
pubblica utilizzato per la crittografia e la decrittografia dei messaggi.
Nell'esempio fornito, Alice e Bob devono scambiarsi un messaggio crittografato utilizzando
l'algoritmo RSA. Per fare ciò, entrambi devono generare una coppia di chiavi RSA, una privata e
una pubblica. La chiave privata viene utilizzata per decrittografare i messaggi crittografati inviati a
un utente, mentre la chiave pubblica viene utilizzata per crittografare i messaggi inviati dall'utente.
Per generare una coppia di chiavi RSA, Alice e Bob devono creare ciascuno una directory per sé
stessi utilizzando i comandi "mkdir A" e "mkdir B". Quindi, devono generare una coppia di chiavi
RSA specificando la dimensione della chiave, utilizzando il comando "openssl genrsa -out
keypairA.pem 1048" per Alice e "openssl genrsa -out keypairB.pem 1048" per Bob. È importante
notare che la dimensione della chiave influisce sulla sicurezza della crittografia, poiché una chiave
più grande richiede più tempo per decifrare il messaggio.
Successivamente, Alice e Bob devono estrarre la chiave pubblica dalla loro coppia di chiavi RSA
utilizzando l'opzione "-pubout" con il comando "openssl rsa -in keypairA.pem -pubout -out
publicA.pem" per Alice e "openssl rsa -in keypairB.pem -pubout -out publicB.pem" per Bob. La
chiave pubblica verrà quindi salvata nei file "publicA.pem" e "publicB.pem" rispettivamente.
Per criptare un messaggio con RSA utilizzando la chiave pubblica di Bob, Alice può utilizzare il
comando "openssl rsautl -encrypt -in msg -out enc -inkey publicB.pem –pubin". Il messaggio verrà
quindi crittografato e salvato nel file "enc". Bob può decrittografare il messaggio utilizzando la sua
chiave privata, utilizzando il comando "openssl rsautl -decrypt -in enc -out dec -inkey
keypairB.pem" per salvare il messaggio decrittografato nel file "dec".
È importante notare che la sicurezza dell'algoritmo RSA dipende dalla sicurezza delle chiavi
utilizzate. Pertanto, è essenziale proteggere la propria chiave privata e assicurarsi che la chiave
pubblica dell'utente con cui si desidera scambiare i messaggi sia autentica.
RSA – Sending the message
Alice può inviare il messaggio crittografato a Bob, che può decifrarlo utilizzando la sua chiave
privata con il comando:
openssl rsautl -decrypt -in enc -out msg -inkey keypairB.pem
Il messaggio decrittografato verrà quindi salvato in un file di testo chiamato "msg". In questo
modo, Alice può inviare un messaggio a Bob in modo sicuro utilizzando la crittografia RSA.
RSA sign and verify
Per firmare un messaggio con RSA, è necessario disporre di una coppia di chiavi RSA, una privata e
una pubblica. La chiave privata viene utilizzata per firmare il messaggio, mentre la chiave pubblica
viene utilizzata per verificare la firma.
Per prima cosa, è necessario generare una coppia di chiavi RSA come descritto in precedenza.
Quindi, per firmare un messaggio, si deve prima cifrare il messaggio con la chiave privata
utilizzando il comando seguente:
openssl rsautl -sign -in msg -out signed -inkey privateA.pem
Il messaggio firmato viene quindi inviato al destinatario, in questo caso Bob, che può verificare la
firma utilizzando la chiave pubblica di Alice:
openssl rsautl -verify -in signed -out verified -inkey publicA.pem
-pubin
Se la firma è stata verificata correttamente, il file verified conterrà il messaggio originale non
modificato.
È importante notare che la firma RSA non crittografa il messaggio in modo che possa essere letto
solo dal destinatario designato. La firma RSA fornisce solo l'autenticazione del mittente e
l'integrità del messaggio. Se si vuole crittografare un messaggio con RSA, è necessario utilizzare
una combinazione di crittografia simmetrica e asimmetrica, come descritto in precedenza.
RSA sign
Quando si firma un messaggio, si genera un hash del messaggio stesso e si crittografa l'hash con la
chiave privata del mittente. Il destinatario può quindi verificare la firma decrittografando l'hash
con la chiave pubblica del mittente e confrontandolo con l'hash del messaggio ricevuto.
In questo caso, Bob invia un messaggio ad Alice e lo firma digitalmente. Prima di tutto, Bob genera
la coppia di chiavi RSA con openssl genrsa come visto in precedenza. Quindi, Bob genera l'hash
SHA-1 del messaggio con il comando openssl dgst -sha1 -out signedmsg -sign keypairB.pem msg,
che utilizza la chiave privata di Bob per firmare il messaggio e generare il file firmato signedmsg.
Bob invia sia il messaggio originale che il file firmato ad Alice. Per verificare la firma, Alice utilizza il
comando openssl dgst -sha1 -verify publicB.pem -signature signedmsg msg, dove publicB.pem è
la chiave pubblica di Bob. Il comando decrittografa l'hash firmato con la chiave pubblica di Bob e
confronta il risultato con l'hash del messaggio ricevuto msg. Se l'hash decrittografato corrisponde
all'hash del messaggio, la firma è valida e viene stampato "VERIFIED OK".
GNU Privacy Guard
GNU Privacy Guard, comunemente conosciuto come GPG, è un software di crittografia open
source che può essere utilizzato per crittografare o firmare criptograficamente file o messaggi.
Una delle caratteristiche principali di GPG è l'utilizzo di algoritmi di crittografia robusti e difficili da
decifrare.
GPG utilizza il sistema di chiave pubblica/privata, il che significa che non è necessario trasferire
una password in modo sicuro al destinatario del messaggio o del file. Invece, è sufficiente inviare
la propria chiave pubblica, che è inutile per chiunque diverso dal destinatario previsto.
Puoi utilizzare GPG per crittografare i tuoi file personali, proprio come faresti con qualsiasi altro
programma di crittografia. Inoltre, GPG può essere utilizzato per crittografare i messaggi di posta
elettronica, consentendo una vera e propria crittografia end-to-end per le e-mail sensibili.
Per rendere più facile l'uso di GPG, esistono alcune interfacce grafiche disponibili. In generale, GPG
è un software di crittografia affidabile e potente che può essere utilizzato per proteggere i tuoi file
e messaggi da accessi non autorizzati.
Cons
Nonostante le numerose qualità di GNU Privacy Guard, ci sono anche alcuni svantaggi da
considerare.
In primo luogo, l'utilizzo di chiavi pubbliche al posto delle password è una grande idea solo quando
si lavora direttamente con persone di cui ci si fida implicitamente. Per qualsiasi cosa al di là di
questo, come la distribuzione di una chiave pubblica alla popolazione generale in modo che tutti
possano verificare i tuoi messaggi firmati, si è dipendenti da un modello di web-of-trust che può
essere molto difficile da configurare.
In secondo luogo, per la crittografia end-to-end della posta elettronica, i destinatari delle tue email
devono anche avere GPG configurato sui loro sistemi e saperlo utilizzare. Ciò potrebbe funzionare
in un ambiente aziendale, ma sarà molto difficile convincere i tuoi amici ad installare il software e
configurarlo correttamente.
Inoltre, se si utilizza un client di posta elettronica standalone, come Mozilla Thunderbird, è
possibile installare un plugin che crittografa e decrittografa automaticamente i messaggi. Tuttavia,
ogni volta che viene rilasciato un nuovo aggiornamento di Thunderbird, il plugin smette di
funzionare e ci vuole un po' di tempo prima che una nuova versione funzionante venga rilasciata.
In generale, questi svantaggi non rendono GPG inutilizzabile, ma richiedono un certo grado di
impegno e di pazienza da parte dell'utente per configurare correttamente il software e farlo
funzionare con successo.
Creating your GPG keys
Per creare una chiave con GPG, non è necessario avere i privilegi di sudo in quanto si sta
configurando tutto per se stessi. Il primo passo è eseguire il comando:
$ gpg --gen-key
Questo comando creerà una cartella .gnupg popolata nella tua home directory. Successivamente,
ti verrà chiesto di selezionare il tipo di chiavi che desideri. Per avere un'adeguata cifratura, è
consigliabile scegliere una chiave di almeno 2048 bit, poiché tutto ciò che è più piccolo viene
considerato vulnerabile (questa è anche la scelta predefinita).
Inoltre, devi selezionare quanto tempo desideri che le tue chiavi rimangano valide prima che
scadano automaticamente. Inserisci le tue informazioni personali quando richiesto e crea una
passphrase per la tua chiave privata.
Ricorda di tenere al sicuro la tua passphrase, poiché se la perdi, non sarai in grado di accedere ai
tuoi dati cifrati. Una volta completata la procedura di creazione della chiave, sarai pronto per
iniziare a utilizzare GPG per cifrare e firmare i tuoi file e messaggi.
Symmetrically encrypting your own files
La cifratura simmetrica è ideale se vuoi solo cifrare i tuoi file per uso personale. Tuttavia, se devi
condividere un file cifrato con qualcun altro, dovrai trovare un modo sicuro per fornire a quella
persona la password.
Ecco come cifrare un file super-segreto che non vogliamo assolutamente far cadere nelle mani
sbagliate: $ gpg –c my_super_secret_file.txt
L'opzione -c indica che abbiamo scelto di utilizzare la cifratura simmetrica con una passphrase per
il file.
Per leggere il file cifrato, puoi usare il comando less:
$ less my_super_secret_file.txt.gpg
Se hai bisogno di distruggere il file, puoi usare il comando shred con l'opzione -u per eliminare il
file e l'opzione -z per sovrascrivere il file eliminato con zeri.
Per decifrare il file, usa l'opzione -d:
$ gpg –d my_super_secret_file.txt.gpg
Il messaggio di avviso sulla mancanza di protezione dell'integrità significa che abbiamo cifrato il file
ma non l'abbiamo firmato digitalmente. Senza una firma digitale, qualcuno potrebbe modificare il
file senza che noi ne siamo a conoscenza, e non saremmo in grado di dimostrare di essere l'autore
del file.
Asymmetric Encryption and Signing
GPG (GNU Privacy Guard) è uno strumento molto utile per crittografare e firmare file in modo
sicuro. Quando si utilizza la crittografia asimmetrica, viene utilizzata una chiave per crittografare il
file e un'altra per decrittografarlo. La chiave privata viene mantenuta in segreto, mentre la chiave
pubblica può essere condivisa con chiunque. In questo modo, solo chi ha la chiave privata può
decrittografare il file.
Per utilizzare la crittografia asimmet