it-swarm-ja.com

tarファイルを非対称的に暗号化する

私は次のようなことを達成したい

tar -c directory | openssl foo > encrypted_tarfile.dat

公開鍵暗号化を使用するにはopensslツールが必要です。

対称 コマンドプロンプトでの暗号化 (原文のまま!)についての以前の質問を見つけましたが、これでは不十分です。 openssl(1)のマニュアルページを調べたところ、対称暗号化しか見つかりませんでした。 opensslは本当に非対称暗号化をサポートしていませんか?

基本的に、多くのユーザーが暗号化されたtarファイルを作成して中央の場所に保存することになっていますが、それらを読み取ることができるのはごくわずかです。

2
DerMike

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をそのまま使用することはできません。

3

gpg --encryptを使用します。

「-r」を使用すると、ユーザーIDを渡すことができます。

見る

man gpg
2
rems

Gpgインフラストラクチャを設定せず、公開鍵と秘密鍵のペアを使用してファイルを暗号化したい場合は、次のツールが役立ちます。 https://github.com/galets/AsymmetricCrypt =。 Linuxで実行するにはmonoが必要です。

免責事項:私はそれを書いた

1
galets

man opensslの2つの例を次に示します。

Send encrypted mail using triple DES:

 openssl smime -encrypt -in in.txt -from [email protected] \
        -to [email protected] -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 [email protected] -to [email protected] \
        -subject "Signed and Encrypted message" -des3 user.pem

s/mimedes3が言及されているという事実から混乱が生じています。しかし実際には、上記の例では次のことが起こります。

  • 新しいランダム対称鍵が生成されます
  • ファイルは対称鍵を使用して暗号化されます
  • 対称鍵は、user.pemに格納されている公開鍵を使用した非対称アルゴリズムを使用して暗号化されます。
  • 暗号化された対称鍵、暗号化されたファイル、およびメタデータは、標準のコンテナーに入れられます

その結果、in.txtファイルはmail.msgファイルに暗号化されるため、user.pem公開鍵と一致する秘密鍵を持つユーザーのみが復号化できます。

1
nponeccop