[Debian] OpenSSL
Introduction
Openssl est une bibliothèque standard de chiffrement disponible sur les systèmes Unix.
Chiffrement de fichier
Vous pouvez chiffrer un fichier en AES-256-CBC avec un mot de passe grâce à la commande suivante :
openssl enc -aes-256-cbc -salt -pbkdf2 -in <INPUT_FILE> -out <OUTPUT_FILE> -base64 -k <PASSPHRASE>
Et pour déchiffrer :
openssl enc -d -aes-256-cbc -pbkdf2 -in <INPUT_FILE> -out <OUTPUT_FILE> -base64 -k <PASSPHRASE>
Pour créer une paire de clés publique/privée RSA puis chiffrer un fichier avec, on peut utiliser openssl.
Tout d'abord, générez la paire de clés :
- Clé privée :
openssl genpkey -algorithm RSA -out priv.pem -aes-256-cbc -pass pass:mypass
- Clé publique :
openssl rsa -pubout -in key.pem -out pub.pem -passin pass:mypass
Puis chiffrez un fichier avec la clé publique :
openssl pkeyutl -encrypt -inkey pub.pem -pubin -in plain.txt -out cypher.enc && openssl base64 -in cypher.enc -out cypher.enc.base64
Puis pour déchiffrer avec la clé privée :
openssl base64 -d -in cypher.enc.base64 -out cypher.enc && openssl pkeyutl -decrypt -inkey priv.pem -in cypher.enc -out plain_decrypted.txt
Échange de clé
On peut utiliser Diffie Hellman pour échanger des clés.
Pour cela, commencez par créer un paramètre DH :
openssl genpkey -genparam -algorithm DH -out dhp.prem
Puis on peut générer une première clé :
openssl genpkey -paramfile dhp.pem -out dhkey1.pem
On peut afficher les informations de cette clé :
openssl pkey -in dhkey1.pem -text -noout