J'ai environ 20000 fichiers (environ 9 Go) dont chacun est chiffré à l'aide de openssl enc -aes-256-cbc -in infile -out outfile -k mypassword
commande. Chaque fichier utilise le même mot de passe. Ma version openssl est 1.1.0e
.
Serai-je vulnérable à des attaques connues si je sauvegarde ces fichiers sur un emplacement hors site? Sinon, quelles sont mes alternatives?
Vous ne devez jamais utiliser l'utilitaire de ligne de commande d'OpenSSL pour le chiffrement à usage général. Il est en fait conçu uniquement comme un test des routines de chiffrement internes de la bibliothèque. Pour cette raison, il y a quelques problèmes inhérents à son utilisation quand une réelle confidentialité et intégrité sont nécessaires:
-md sha512
, Mais il n'utilisera toujours pas d'étirement des touches.-md md5
Explicite pour fonctionner à nouveau.enc
utilisant le chiffrement en mode GCM a fonctionné, mais pas le déchiffrement. Cela pourrait même encore être le cas.Ce n'est pas unique à la commande enc
. L'utilitaire de ligne de commande OpenSSL a d'autres pièges lorsque l'on tente de l'utiliser pour autre chose que de tester la bibliothèque. Un autre exemple est la commande s_client
, Utilisée pour se connecter à un serveur via SSL ou TLS, qui ne valide pas le certificat de la cible. Dans l'ensemble, vous ne devez pas utiliser l'utilitaire OpenSSL . Utilisez simplement GnuPG:
La seule fois où j'utiliserais OpenSSL directement, c'est si j'avais besoin de chiffrer quelque chose avec une clé complètement aléatoire ou une clé brute spécifique et IV et que je ne me souciais pas de l'intégrité des messages. Par exemple, l'écriture d'un flux pseudo-aléatoire amorcé par le noyau sur stdout peut se faire avec:
openssl aes-128-ctr -nosalt -k $(xxd -l16 -c16 -ps /dev/urandom) -in /dev/zero
De même, le décryptage d'un blob de données chiffrées simples lorsque vous connaissez à la fois la clé brute et le IV brut en hexadécimal (en évitant le besoin de -md
Pour la dérivation de clé) pourrait être fait avec:
openssl aes-128-cbc -d -nosalt -K $hex_key -iv $hex_iv -in infile -out outfile
Mais pour le chiffrement de fichiers à usage général? Utilisez simplement GnuPG.