cClaude.rocks ☕ Le blog

[Nouvelles technologies du libre, sciences et coups de gueule…]

Menu

Ce billet nécessite OpenSSL 1.1.1 minimum



ඏ

Pour vĂ©rifier votre version d’OpenSSL utiliser la commande suivante :

openssl version

Vous devriez avoir quelque chose comme :

OpenSSL 1.1.1  11 Sep 2018

ඏ

Encrypter un fichier

openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -in FICHIER_D_ENTREE -out FICHIER_DE_SORTIE

Par exemple :

openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -in ~/chemin/README.md -out ~/chemin/README.md.crypt

OĂč les commutateurs ont la fonction suivante :

  • -aes-256-cbc est ce que vous devez utiliser pour une protection maximale ou la version 128 bits (avec aes-128-cbc). Notez que le 3DES (Triple DES) a Ă©tĂ© abandonnĂ© (dĂ©conseillĂ© depuis 2017).L’AES est maintenant accĂ©lĂ©rĂ© par tous beaucoup de processeurs modernes; vous pouvez simplement vĂ©rifier si votre CPU dispose du jeu d’instructions AES-NI, par exemple en utilisant grep aes /proc/cpuinfo.
  • -md sha512 est la variante la plus rapide de la famille de fonctions SHA-xxx et c’est de plus la mĂ©thode la plus sĂ©curisĂ©e.
  • -pbkdf2 utilise l’algorithme PBKDF2 (Password-Based Key Derivation Function 2)
  • -iter 100000 dĂ©fini le nombre d’itĂ©rations sur le mot de passe pour dĂ©river la clĂ© de chiffrement. Des valeurs Ă©levĂ©es augmentent le temps nĂ©cessaire pour forcer le fichier rĂ©sultant (« brut force »). Cette option permet d’utiliser l’algorithme PBKDF2 pour dĂ©river la clĂ©.

ඏ

DĂ©crypter un fichier

openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -d -in FICHIER_D_ENTREE -out FICHIER_DE_SORTIE

Par exemple :

openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -d -in ~/chemin/README.md.crypt -out ~/chemin/README.md.decrypt

Il suffit de mettre les mĂȘme paramĂštres et d'ajouter le commutateur -d.


ඏ

Pour les anciennes versions d’OpenSSL

Notez que pour les versions antérieures à OpenSSL 1.1.1 à commencer par la version 1.1.0, il faut utiliser la syntaxe suivante :

openssl aes-256-cbc -in FICHIER_D_ENTREE -out FICHIER_DE_SORTIE

puis ajouter le commutateur -d pour l’opĂ©ration rĂ©ciproque.


ඏ

Automatisation

Pour automatiser ces actions, vous aurez besoin de passer le mot de passe automatiquement, voici comment le faire:

openssl 
 -passin pass:LE_MOT_DE_PASS1 -passout pass:LE_MOT_DE_PASS2

Par exemple :

openssl enc -aes-256-cbc -md sha512 -pbkdf2 -iter 100000 -salt -in README.md -out README.md.crypt -pass pass:test1

Notez que la syntaxe de la ligne de commande est toujours -pass suivi d’un espace, puis du type de phrase secrĂšte que vous fournissez, c’est-Ă -dire pass: pour la phrase secrĂšte simple, puis la phrase secrĂšte rĂ©elle aprĂšs les deux points (un mot de passe sans espace du coup).

La documentation prĂ©cise que vous pouvez fournir d’autres sources de phrase secrĂšte en procĂ©dant comme suit :

  • env:somevar pour obtenir le mot de passe d’une variable d’environnement, ici la variable somevar,
  • file:somepathname pour obtenir le mot de passe de la premiĂšre ligne du fichier somepathname,
  • fd:number pour obtenir le mot de passe Ă  partir du numĂ©ro de descripteur de fichier,
  • stdin pour lire Ă  partir de l’entrĂ©e standard.

A notez que la documentation, fait rĂ©fĂ©rence aux options -passin et -passout pour « certaines commandes » en non Ă  -pass. Il me semble que c’est un des points de la documentation qui est assez peu clair. Il est notoirement reconnu que la documentation d’OpenSSL n’est pas lipide, toute prĂ©cision est bienvenue en commentaire, ce qui est assez logique si l’on considĂšre l’étendue des fonctionnalitĂ©s couverte pas cette commande.


ඏ

Références

  • [Man page d'OpenSSL] https://www.openssl.org/docs/man1.1.0/man1/openssl.html (lien cassĂ©),
  • Manuel d'OpenSSL en français.

኿


â„č 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog