Anteprima
Vedrai una selezione di 10 pagine su 193
Sicurezza dei Sistemi e delle Reti (Appunti di Cybersecurity) Pag. 1 Sicurezza dei Sistemi e delle Reti (Appunti di Cybersecurity) Pag. 2
Anteprima di 10 pagg. su 193.
Scarica il documento per vederlo tutto.
Sicurezza dei Sistemi e delle Reti (Appunti di Cybersecurity) Pag. 6
Anteprima di 10 pagg. su 193.
Scarica il documento per vederlo tutto.
Sicurezza dei Sistemi e delle Reti (Appunti di Cybersecurity) Pag. 11
Anteprima di 10 pagg. su 193.
Scarica il documento per vederlo tutto.
Sicurezza dei Sistemi e delle Reti (Appunti di Cybersecurity) Pag. 16
Anteprima di 10 pagg. su 193.
Scarica il documento per vederlo tutto.
Sicurezza dei Sistemi e delle Reti (Appunti di Cybersecurity) Pag. 21
Anteprima di 10 pagg. su 193.
Scarica il documento per vederlo tutto.
Sicurezza dei Sistemi e delle Reti (Appunti di Cybersecurity) Pag. 26
Anteprima di 10 pagg. su 193.
Scarica il documento per vederlo tutto.
Sicurezza dei Sistemi e delle Reti (Appunti di Cybersecurity) Pag. 31
Anteprima di 10 pagg. su 193.
Scarica il documento per vederlo tutto.
Sicurezza dei Sistemi e delle Reti (Appunti di Cybersecurity) Pag. 36
Anteprima di 10 pagg. su 193.
Scarica il documento per vederlo tutto.
Sicurezza dei Sistemi e delle Reti (Appunti di Cybersecurity) Pag. 41
1 su 193
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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

Dettagli
Publisher
A.A. 2022-2023
193 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/04 Automatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher simone__g di informazioni apprese con la frequenza delle lezioni di System Identification e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Salerno o del prof Carletti Vincenzo.