Je souhaite chiffrer un fichier avec AES-256. Comment puis-je le faire rapidement et facilement, et comment puis-je - ou quelqu'un d'autre - le déchiffrer à nouveau?
Je souhaite chiffrer un fichier avec AES-256. Comment puis-je le faire rapidement et facilement, et comment puis-je - ou quelqu'un d'autre - le déchiffrer à nouveau?
Réponses:
Malheureusement, il n’existe pas de solution simple pour sécuriser vos documents. Pensez à votre cas d'utilisation, peut-être que quelque chose d'autre que AES est mieux adapté.
Si vous souhaitez un cryptage très simple, indépendant de la plate-forme, vous pouvez utiliser openssl .
Si vous voulez toujours utiliser openssl:
Chiffrement:
openssl aes-256-cbc -in attack-plan.txt -out message.enc
Décryptage:
openssl aes-256-cbc -d -in message.enc -out plain-text.txt
Vous pouvez obtenir openssl pour base64
coder le message en utilisant le -a
commutateur pour le chiffrement et le déchiffrement. De cette façon, vous pouvez coller le texte chiffré dans un courrier électronique, par exemple. Ça va ressembler à ça:
stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=
Notez que vous avez le choix entre des chiffrements et des modes de fonctionnement. Pour une utilisation normale, je recommande aes 256 en mode CBC. Voici les modes de chiffrement dont vous disposez (uniquement en comptant AES):
aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb
Voir également:
Notez s'il vous plaît:
OpenSSL vous demandera un mot de passe. Ce n'est pas une clé de cryptage, elle n'est pas limitée à 32 octets! Si vous voulez transférer des fichiers avec quelqu'un d'autre, votre secret partagé devrait être très fort. Vous pouvez utiliser ce site pour avoir une idée de la qualité de votre mot de passe:
Avertissement: j'ai vérifié que ces sites n'envoient pas votre mot de passe au serveur, mais cela peut changer à tout moment. Utilisez ces sites avec dev tools / inspector et vérifiez s’ils envoient quoi que ce soit avant de saisir votre mot de passe fort.
/usr/bin/openssl enc -aes-256-cbc -a -salt -in $1 -out ${1}.enc
avec l'inverse comme on peut s'y attendre.
openssl
outil de ligne de commande est principalement une preuve de concept pour tester la bibliothèque OpenSSL. La bonne réponse à cette question est soit GPG, soit un archiveur tel que 7z .
openssl enc
n’est vraiment pas sûr si vous avez un mot de passe faible. J'ai déjà recommandé une certaine utilisation de openssl enc
, mais suggère maintenant d'utiliser à la gpg
place car il utilise un KDF d'une meilleure façon. Voir cette réponse .
J'aime utiliser la gpg
commande:
Crypter:
gpg --cipher-algo AES256 --symmetric filename.tar.gz
Sténographie:
gpg --cipher-algo AES256 -c filename.tar.gz
Cela vous demandera un mot de passe.
Décrypter:
gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg
Sténographie:
gpg -o filename.tar.gz -d filename.tar.gz.gpg
Vous pouvez également ajouter cipher-algo AES256
à ~/.gnupg/gpg.conf
pour faire de AES256 la valeur par défaut. (Selon la page de manuel, il s’agit de CAST5 )
AES
(signifiant AES-128). AES-128 est légèrement plus rapide et n'est pas moins sécurisé.
gpg
de mettre en cache le mot de passe?
7z (lorsque l' option de mot de passe est utilisée) utilise un cryptage AES 256 bits (avec étirement de clé SHA256 ).
Installez-le ( p7zip-full
), cliquez avec le bouton droit sur un fichier ou un répertoire que vous souhaitez chiffrer, puis choisissez Compresser , .7z et Autres options / Mot de passe .
Pour le déchiffrement, cliquez avec le bouton droit sur le fichier .7z et choisissez Extraire ici .
Le site Web lié contient un outil de chiffrement / déchiffrement aes 256 bits open source et est multiplateforme - MacOs, Windows, Linux et autres par le biais de Java.
Crypter: aescrypt -e <file>
Décrypter: aescrypt -d <file>
Vous pouvez sauvegarder et chiffrer votre dossier personnel en utilisant la syntaxe suivante:
tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes
Téléchargez et extrayez le source
make
sudo make install
Téléchargez les fichiers binaires ou le code source à partir du site Web.
Beaucoup de suggestions que j'aurais faites ont déjà été avancées dans ce fil. En fait, openssl est le moyen le plus simple de chiffrer un fichier ou un script. Cependant, je vous déconseille d'utiliser AES-256 simplement parce qu'il n'est pas disponible dans toutes les versions d'OpenSL sur certaines plates-formes. La plupart des nouveaux systèmes d'exploitation ... c'est-à-dire que Linux en sont dotés. Mais d'autres, comme AIX 5.3, ne le font pas (je pense également à HP-UX). Si vous souhaitez utiliser votre fichier ou votre script sur différentes plates-formes, je vous recommande vivement d'utiliser AES-128 car celui-ci est disponible partout.
Comment pouvez-vous "rapidement et facilement" chiffrer un fichier avec AES-128?
Un site comme www.ShellScrypt.com utilise openssl AES-128 de manière assez intensive pour chiffrer les scripts shell, puis rend les copies chiffrées des scripts exécutables. Tout ce que vous avez à faire est de coller le script sur le site et un fichier zip sera généré pour vous. Ce fichier zip contiendra la version cryptée (et exécutable s'il s'agit d'un script) de votre fichier. Cela vous permet de chiffrer " facilement " et " commodément " un fichier / script sans satisfaire à aucune exigence de paquet ou de module sur chaque système pour lequel vous souhaitez utiliser le script ni exécuter plusieurs incantations complexes et déroutantes de commandes openssl.
Ci-dessous, une commande de base cryptage / décryptage openssl utilisant AES-128:
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
test@test-VirtualBox:~$
test@test-VirtualBox:~$
En ajoutant à la réponse de Stefano Palazzo, j'ai créé une petite fonction bash qui fonctionne de manière similaire à la commande base64.
Il va aes256 chiffrer un fichier, puis base64 le coder. En effectuant l'inverse, il va décoder, décrypter, puis cracher le texte en clair d'origine en base64.
aes256() {
decodeMe=""
isPipe="$([ ! -t 0 ] && echo "true" || echo "false")"
if [ "$1" = '-d' ] || [ "$1" = '--decode' ]; then
decodeMe="-d"
shift
fi
if [ "$isPipe" = "true" ]; then
read input
printf '%s\n' "$input" | openssl aes-256-cbc -a $decodeMe
exitCode="$?"
else
openssl aes-256-cbc -a $decodeMe -in "$*"
exitCode="$?"
fi
unset isPipe decodeMe input
return "$exitCode"
}
Usage:
echo "my string" | aes256
# enter aes-256-cbc encryption password
# Returns: U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=
echo "U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=" | aes256 -d
# enter aes-256-cbc decryption password
# Returns: my string
aes256 file.plain > file.crypt
# enter aes-256-cbc encryption password
aes256 -d file.crypt
# enter aes-256-cbc decryption password
# Spits out original unencrypted file.
openssl aes-256-cbc
est plus court queopenssl enc -aes-256-cbc
et fonctionne aussi. La page de manuel pour cela est disponible en cours d'exécutionman enc
. Ne jamais utiliserecb
pour des données qui ne doivent pas être tempérées, utilisez toujourscbc
.-salt
est redondant puisqu'il est par défaut. Si vous omettez,-out filename
la sortie sera écrite sur la sortie standard, ce qui est utile si vous avez juste besoin d'analyser des données, mais pas de les écrire sur le disque. La commande suivante montre la cound de ligne pour le texte brut:openssl aes-256-cbc -d -in filename | wc -l
. ( une autre utilisation, la lecture d' un fichier:openssl aes-256-cbc -d -in filename | less
)