back to top

Criptare (e decriptare) file su Linux con OpenSSL

OpenSSL è un’implementazione rilasciata sotto licenza Open Source dei protocolli di sicurezza SSL e TLS; questo protocollo integra delle librerie di scritte in linguaggio C che hanno il compito di eseguite funzioni per la crittografia e vengono quindi utilizzate per la protezione di dati rendendoli inaccessibili ad occhi indiscreti.

OpenSSL è disponibile in tutte le più importanti piattaforme operative basate sul Kernel Linux e le sue funzionalità potranno essere richiamate ogni volta che si desidera crittografare una risorsa.

In questo post, appunto, vedremo come criptare e decriptare un file al fine di poterlo archiviare e/o condividere in tutta sicurezza, senza correre il rischio che possa cadere vittima di occhi indiscreti.

Criptare un file

Immaginiamo quindi di aver digitato delle informazioni importanti, dei dati personali o delle password, all’interno di un semplice file di testo denominato "secret.txt", per applicare la crittografia su di esso tramite il protocollo OpenSSL potremmo utilizzare un’istruzione sul modello della seguente:

openssl des3 -salt -in secret.txt -out mio_file.des3

A questo punto il sistema ci richiederà una password che dovremo scegliere, digitare e confermare tramite [Invio]; questa password ci servirà in seguito, se e quando dovremo decriptare la risorsa appena messa in sicurezza.

A questo punto il nostro file potrà essere archiviato oppure condiviso senza il timore che le informazioni in esso contenute possano essere trafugate da soggetti non autorizzati.

Algoritmi di cifratura

Nell’esempio proposto abbiamo utilizzato des3 (Triple DES), un cifrario a blocchi basato sulla ripetizione del Data Encryption Standard (DES) per tre volte.

Ovviamente des3 non è l’unico cifrario supportato. Di seguito un elenco dei ciphers supportati:

base64             Base 64

bf-cbc             Blowfish in CBC mode
bf                 Alias for bf-cbc
bf-cfb             Blowfish in CFB mode
bf-ecb             Blowfish in ECB mode
bf-ofb             Blowfish in OFB mode
cast-cbc           CAST in CBC mode
cast               Alias for cast-cbc
cast5-cbc          CAST5 in CBC mode
cast5-cfb          CAST5 in CFB mode
cast5-ecb          CAST5 in ECB mode
cast5-ofb          CAST5 in OFB mode

des-cbc            DES in CBC mode
des                Alias for des-cbc
des-cfb            DES in CBC mode
des-ofb            DES in OFB mode
des-ecb            DES in ECB mode

des-ede-cbc        Two key triple DES EDE in CBC mode
des-ede            Two key triple DES EDE in ECB mode
des-ede-cfb        Two key triple DES EDE in CFB mode
des-ede-ofb        Two key triple DES EDE in OFB mode

des-ede3-cbc       Three key triple DES EDE in CBC mode
des-ede3           Three key triple DES EDE in ECB mode
des3               Alias for des-ede3-cbc
des-ede3-cfb       Three key triple DES EDE CFB mode
des-ede3-ofb       Three key triple DES EDE in OFB mode

desx               DESX algorithm.

gost89             GOST 28147-89 in CFB mode (provided by ccgost engine)
gost89-cnt         GOST 28147-89 in CNT mode (provided by ccgost engine)

idea-cbc           IDEA algorithm in CBC mode
idea               same as idea-cbc
idea-cfb           IDEA in CFB mode
idea-ecb           IDEA in ECB mode
idea-ofb           IDEA in OFB mode

rc2-cbc            128 bit RC2 in CBC mode
rc2                Alias for rc2-cbc
rc2-cfb            128 bit RC2 in CFB mode
rc2-ecb            128 bit RC2 in ECB mode
rc2-ofb            128 bit RC2 in OFB mode
rc2-64-cbc         64 bit RC2 in CBC mode
rc2-40-cbc         40 bit RC2 in CBC mode

rc4                128 bit RC4
rc4-64             64 bit RC4
rc4-40             40 bit RC4

rc5-cbc            RC5 cipher in CBC mode
rc5                Alias for rc5-cbc
rc5-cfb            RC5 cipher in CFB mode
rc5-ecb            RC5 cipher in ECB mode
rc5-ofb            RC5 cipher in OFB mode

aes-[128|192|256]-cbc  128/192/256 bit AES in CBC mode
aes[128|192|256]       Alias for aes-[128|192|256]-cbc
aes-[128|192|256]-cfb  128/192/256 bit AES in 128 bit CFB mode
aes-[128|192|256]-cfb1 128/192/256 bit AES in 1 bit CFB mode
aes-[128|192|256]-cfb8 128/192/256 bit AES in 8 bit CFB mode
aes-[128|192|256]-ecb  128/192/256 bit AES in ECB mode
aes-[128|192|256]-ofb  128/192/256 bit AES in OFB mode

Decriptare un file

Se volessimo condividere il file con una persona di fiducia, ad esempio, potremo inviare il file per posta elettronica e, successivamente, comunicare al destinatario la password per decriptarlo. Per maggior sicurezza la password non viaggerà mai insieme al file (abbiate cura di non scriverla nella mail alla quale avete allegato il file) ma seguirà altre vie (ad esempio potremo comunicarla a voce o tramite un SMS).

Per decriptare il file, il destinatario dovrà eseguire questa istruzione:

openssl des3 -d -salt -in mio_file.des3 -out secret.txt -k scrivere_password

Nell’istruzione vista sopra la dicitura "scrivere_password" dovrà, naturalmente, essere sostituita con la password scelta nel momento in cui si è effettuata la criptazione del file.

Pubblicitร 
Claudio Garau
Claudio Garau
Web developer, programmatore, Database Administrator, Linux Admin, docente e copywriter specializzato in contenuti sulle tecnologie orientate a Web, mobile, Cybersecurity e Digital Marketing per sviluppatori, PA e imprese.

Leggi anche...

Autenticazione a due fattori (2FA): cos’è e come funziona

L'autenticazione a due fattori (in inglese Two Factor Authentication...

Authcode: cos’è e come funziona

Con il termine Authcode (o Auth-code) si fa riferimento...

HTTP Security Headers: aumentare la sicurezza del sito con .htaccess

Esistono diverse tecniche per innalzare il livello di sicurezza...

Cos’è una Botnet?

Con il termine botnet si fa riferimento ad una...

DDoS: cos’è, come funziona e come difendersi

Un DDoS (acronimo di Distribuited Denial of Service) รจ...

OTP (One-Time Password): cos’è e come funziona

OTP รจ acronimo di One-Time Password, cioรจ password utilizzabile...
Pubblicitร