Comment chiffrer un fichier?

11

Je voudrais télécharger des fichiers de mon serveur sur mon ordinateur portable, et le fait est que je veux que cette communication soit aussi furtive et sécurisée que possible. Donc, loin, je suis arrivé en utilisant un VPN, de cette façon, je redirige tout le trafic Internet de mon ordinateur portable via mon serveur. De plus, j'ai essayé d'envoyer un fichier en utilisant ftp et en observant Wireshark en même temps. La communication semble être cryptée, mais je voudrais également crypter le fichier lui-même (comme sécurité de 2e étape ou quelque chose comme ça).

Mon serveur est un RasPi exécutant Raspbian. Mon ordinateur portable est Macbook Air.

Je veux d'abord chiffrer un fichier dans mon Ras Pi et ensuite le télécharger. Comment puis je faire ça?

drpaneas
la source
1
gpgpeut crypter des fichiers, soit asymétriquement (en utilisant une clé publique pour le cryptage et une clé privée pour le décryptage) ou symétriquement (en utilisant la même clé / mot de passe pour le cryptage et le décryptage: dewinter.com/gnupg_howto/english/GPGMiniHowto.html
Martin von Wittich
Pourquoi ne pas utiliser un protocole tel que HTTPS, SFTP ou FTPS? Si la communication est cryptée, l'ajout d'une deuxième couche de cryptage ne vous rapportera rien.
Gilles 'SO- arrête d'être méchant'

Réponses:

22

Vous pouvez utiliser opensslpour chiffrer et déchiffrer à l'aide de chiffrements symétriques basés sur des clés. Par exemple:

openssl enc -in foo.bar \
    -aes-256-cbc \
    -pass stdin > foo.bar.enc

Cette crypte foo.barà foo.bar.enc(vous pouvez utiliser le -outcommutateur pour spécifier le fichier de sortie, au lieu de rediriger stdout comme ci - dessus) en utilisant un 256 bit AES chiffrement dans CBC le mode. Il existe différents autres chiffres disponibles (voir man enc). La commande attendra ensuite que vous entriez un mot de passe et que vous l'utilisiez pour générer une clé appropriée. Vous pouvez voir la clé avec -pou utiliser la vôtre à la place d'un mot de passe avec -K(en fait, c'est un peu plus compliqué que cela, car un vecteur d'initialisation ou une source est nécessaire, voir à man encnouveau). Si vous utilisez un mot de passe, vous pouvez utiliser le même mot de passe pour déchiffrer, vous n'avez pas besoin de regarder ou de conserver la clé générée.

Pour déchiffrer ceci:

openssl enc -in foo.bar.enc \
    -d -aes-256-cbc \
    -pass stdin > foo.bar

Remarquez le -d. Voir aussi man openssl.

boucle d'or
la source
En outre, vous pouvez exporter le résultat dans un fichier en utilisant l'option -out FILENAMEplutôt que de canaliser dans la sortie.
crazyGuy
4

Pour les cas uniques, vous pouvez crypter en utilisant zip et un mot de passe. Bien qu'il ne soit pas aussi solide que les techniques basées sur les clés (car il est difficile d'avoir un bon mot de passe), ce sont probablement de bonnes situations ad hoc.

La ligne de commande ressemble à ceci:

zip -r -0 -e encrypted_file.zip /path/to/files

-r to recurse directories.
-e to encrypt
Hogan
la source