Как я могу зашифровать файл?

11

Я хотел бы загрузить некоторые файлы со своего сервера на свой ноутбук, и дело в том, что я хочу, чтобы это общение было как можно более скрытным и безопасным. Итак, пока я подошел к использованию VPN, таким образом я перенаправляю весь интернет-трафик моего ноутбука через мой сервер. Кроме того, я попытался отправить файл, используя ftp и одновременно наблюдая за Wireshark. Связь кажется зашифрованной, однако я хотел бы также зашифровать сам файл (как второй шаг безопасности или что-то в этом роде).

Мой сервер - RasPi, на котором работает Raspbian. Мой ноутбук - Macbook Air.

Я хочу, во-первых, зашифровать файл в моем Ras Pi, а во-вторых, загрузить его. Как я могу это сделать?

drpaneas
источник
1
gpgможет шифровать файлы асимметрично (используя открытый ключ для шифрования и закрытый ключ для дешифрования) или симметрично (используя один и тот же ключ / пароль для шифрования и дешифрования: dewinter.com/gnupg_howto/english/GPGMiniHowto.html
Martin von Wittich
Почему бы не использовать протокол, такой как HTTPS, SFTP или FTPS? Если связь зашифрована, добавление второго уровня шифрования ничего вам не даст.
Жиль "ТАК - перестань быть злым"

Ответы:

22

Вы можете использовать opensslдля шифрования и дешифрования с использованием ключей на основе симметричных шифров. Например:

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

Это шифрует foo.barк foo.bar.enc(вы можете использовать -outпереключатель , чтобы указать выходной файл, вместо того , чтобы перенаправлять стандартный вывод , как указано выше) с использованием 256 битного AES шифра в CBC режиме. Существуют различные другие доступные шифры (см. man enc). Затем команда будет ждать ввода пароля и использовать его для генерации соответствующего ключа. Вы можете увидеть ключ с помощью -pили использовать свой собственный вместо пароля с помощью -K(на самом деле он немного сложнее, чем тот, поскольку необходим вектор инициализации или источник, см. man encСнова). Если вы используете пароль, вы можете использовать тот же пароль для расшифровки, вам не нужно просматривать или сохранять сгенерированный ключ.

Чтобы расшифровать это:

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

Обратите внимание -d. Смотрите также man openssl.

лютик золотистый
источник
Кроме того, вы можете вывести результат в файл, используя опцию, -out FILENAMEа не пипетку в выводе.
crazyGuy
4

Для разовых случаев вы можете зашифровать с помощью почтового индекса и пароля. Хотя он не так силен, как методы, основанные на ключах (поскольку трудно иметь хороший пароль), это, вероятно, хорошие ситуации ad-hoc.

Командная строка выглядит так:

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

-r to recurse directories.
-e to encrypt
Hogan
источник