Unix criptare una stringa nel terminale

Autore:[Antonio Gallonetto]

Molto spesso è necessario usare delle password da terminale e se si vuole nasconderle un buon metodo è criptarle.

Per la cifratura usiamo il terminale e openssl, facciamo un piccolo script che può essere usato direttamente oppure nelle varie utilità da riga di comando

#!/bin/bash
echo "inserisci frase da criptare"
read frase
echo $frase | openssl enc -aes-256-cbc -a 

Per la decrittazione

#!/bin/bash
echo "inserisci frase da decriptare"
read frase
echo $frase | openssl enc -aes-256-cbc -d -a 

Un esempio di utilizzo di questa tecnica è il seguente:
supponiamo di avere creato una stringa di crittazione con il primo script ed è la seguente:
U2FsdGVkX18g7yJSzXjsewvUVe3bDMHn6Bm7LimoQz8=

Questa è la password criptata di un server ftp, e vorrei sincronizzare una cartella locale sul server ftp, lo script per farlo è il seguente:

#!/bin/bash
cartellaSorgente = <nome cartella sorgente>
cartellaDestinazione = <nome cartella destinazione>
ipdestinazione = <indirizzo ip destinazione>
nomeutente = <nome utente>
mypass = U2FsdGVkX18g7yJSzXjsewvUVe3bDMHn6Bm7LimoQz8=
clearpass = echo $mypass | openssl enc -aes-256-cbc -d -a 
open sftp://$nomeutente:$clearpass@$destinazione
mirror -c $cartellaSorgente $cartellaDestinazione
exit

Per tutti i dettagli su openssl si può travare un libro molto interessante fatto dallo stesso creatore di questo software, e si può trovare qui https://www.feistyduck.com/library/openssl-cookbook/.

Da questo libro abbiamo una lista dei possibili metodi di cifratura, la elenco di seguito:

aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb
aes-256-cbc aes-256-ecb aria-128-cbc aria-128-cfb
aria-128-cfb1 aria-128-cfb8 aria-128-ctr aria-128-ecb
aria-128-ofb aria-192-cbc aria-192-cfb aria-192-cfb1
aria-192-cfb8 aria-192-ctr aria-192-ecb aria-192-ofb
aria-256-cbc aria-256-cfb aria-256-cfb1 aria-256-cfb8
aria-256-ctr aria-256-ecb aria-256-ofb base64
bf bf-cbc bf-cfb bf-ecb
bf-ofb camellia-128-cbc camellia-128-ecb camellia-192-cbc
camellia-192-ecb camellia-256-cbc camellia-256-ecb cast
cast-cbc cast5-cbc cast5-cfb cast5-ecb
cast5-ofb des des-cbc des-cfb
des-ecb des-ede des-ede-cbc des-ede-cfb
des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb
des-ede3-ofb des-ofb des3 desx
rc2 rc2-40-cbc rc2-64-cbc rc2-cbc
rc2-cfb rc2-ecb rc2-ofb rc4
rc4-40 seed seed-cbc seed-cfb
seed-ecb seed-ofb sm4-cbc sm4-cfb
sm4-ctr sm4-ecb sm4-ofb

Se vogliamo ad esempio ripetere l’esempio precedente utilizzando la crittografia del camelia-256

#!/bin/bash
echo "inserisci frase da criptare"
read frase
echo $frase | openssl enc -camellia-256-cfb -a 

Il cifrario che andiamo ad usare è a blocchi, trovate una bella spiegazione sui cifrari a blocchi e sulle diciture ad esempio cfb in Modalità di funzionamento dei cifrari a blocchi