[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 -out -base64 -k Et pour déchiffrer : openssl enc -d -aes-256-cbc -pbkdf2 -in -out -base64 -k 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 Et on peut créer une deuxième clé : openssl pkey -in dhkey1.pem -pubout -out dhpub1.pem On peut afficher les informations de cette clé : openssl pkey -pubin -in dhpub1.pem -text On peut ensuite créer une dérivation de ces clés : openssl pkeyutil -derive -inkey dhkey1.pem -peerkey dhpub1.pem -out secret1.bin openssl pkeyutil -derive -inkey dhkey2.pem -peerkey dhpub2.pem -out secret2.bin On peut ensuite comparer les deux secrets et s'apercevoir qu'ils sont identiques : cmp secret1.bin secret2.bin Génération de clés ECC Les clés ECC suivent les courbes elliptiques ce qui permet une taille de clé réduite en conservant un bon niveau de sécurité. Création d'une clé ECC openssl ecparam -genkey -name prime256v1 -out ecc.key Demande de certificat openssl req -new -sha256 -key ecc.key -nodes -out ecc.csr Signer le certificat Ici nous allons auto-signer le certificat, si vous utilisez une autorité de certification (CA), utilisez la clé privée du CA : openssl req -x509 -sha256 -days 365 -key ecc.key -in ecc.csr -out ecc.crt Extraire la clé publique openssl ec -in net-sec.key -pubout