2

Я хочу достичь чего-то вроде

tar -c directory | openssl foo > encrypted_tarfile.dat

Мне нужен инструмент openssl для использования шифрования с открытым ключом.

Я нашел более ранний вопрос о симметричном шифровании в командной строке (sic!), Которого недостаточно. Я заглянул в справочную страницу openssl (1) и нашел только симметричное шифрование. Действительно ли openssl не поддерживает асимметричное шифрование?

В основном, многие пользователи должны создавать свои зашифрованные tar-файлы и хранить их в центральном месте, но только немногим разрешено их читать.

4 ответа4

3

Процедуры асимметричного шифрования OpenSSL находятся под подкомандой rsautl . (В последних версиях OpenSSL это было заменено командой pkeyutl , но аргументы кажутся одинаковыми.)

Зашифруйте файл tar, используя чей-то открытый ключ:

openssl rsautl -encrypt -inkey Bob.pub -pubin -in foo.tar -out foo.tar.enc

Затем они могут расшифровать файл tar, используя свой закрытый ключ:

openssl rsautl -decrypt -inkey Bob -in foo.tar.enc -out foo.tar

Обратите внимание, что SSH и SSL используют разные форматы ключей, поэтому, если вы хотите использовать ключ SSH для шифрования / дешифрования, вы не можете просто использовать ~ / .ssh / id_rsa.pub как есть.

2

Используйте gpg --encrypt.

С "-r" вы можете передать идентификатор пользователя.

Увидеть

man gpg
1

Если вы не хотите устанавливать инфраструктуру gpg и просто хотите зашифровать файл с помощью пары открытого и закрытого ключей, вам может пригодиться следующий инструмент: https://github.com/galets/AsymmetricCrypt . Вам понадобится моно на Linux, чтобы запустить его.

отказ от ответственности: я написал это

1

Вот 2 примера из man openssl:

Send encrypted mail using triple DES:

 openssl smime -encrypt -in in.txt -from steve@openssl.org \
        -to someone@somewhere -subject "Encrypted message" \
        -des3 user.pem -out mail.msg
Sign and encrypt mail:

 openssl smime -sign -in ml.txt -signer my.pem -text \
        | openssl smime -encrypt -out mail.msg \
        -from steve@openssl.org -to someone@somewhere \
        -subject "Signed and Encrypted message" -des3 user.pem

Некоторая путаница связана с тем, что упоминаются s/mime и des3 . Но на самом деле в приведенных выше примерах происходит следующее:

  • Новый случайный симметричный ключ генерируется
  • Файл зашифрован с использованием симметричного ключа
  • Симметричный ключ шифруется с использованием асимметричного алгоритма с открытым ключом, хранящимся в user.pem
  • Зашифрованный симметричный ключ, зашифрованный файл и метаданные помещаются в стандартный контейнер

Конечным результатом является то, что файл in.txt зашифрован в файл mail.msg поэтому расшифровать его может только пользователь, имеющий закрытый ключ, соответствующий открытому ключу user.pem .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .