SSH -priv-keyを使用してファイルを暗号化しますか?

SSH -priv-keyを使用してファイルを暗号化しますか?

私が読めるようにSSH秘密鍵のパスワードを知り、ファイルを暗号化したいとしましょう。機密情報を暗号化または難読化したいストレージを共有しています。リポジトリには情報が含まれていますが、特別な場合にのみ開きます。

  1. SSHエージェントを使用していると仮定すると、後で自分で開くことができるようにファイルを暗号化する簡単な方法はありますか?

  2. なぜGPGを使うのかわかりません。質問ここ;基本的に私はパスワードを知っており、SSHキーと同じパスワードを使用してファイルを復号化したいと思います。可能ですか?

ベストアンサー1

あなたの要件は妥当だと思いますが、対称暗号化と非対称暗号化を混在しているため、難しいこともあります。間違っていたら訂正してください。

推理:

  1. 秘密鍵のパスワードは秘密鍵を保護するためのものであり、他のものではありません。
  2. これにより、次のような状況が発生します。秘密鍵を使って自分だけが復号できるものを暗号化しようとしています。これには秘密鍵は使用されず、公開鍵が使用されます。秘密鍵で暗号化したものは何でも公開鍵(署名)で復号化できますが、これはもちろん望むものではありません。 (公開鍵で暗号化された内容は秘密鍵でのみ復号できます。)
  3. したがって、データを暗号化するには公開鍵を使用する必要がありますが、これには秘密鍵のパスワードは必要ありません。復号化には秘密鍵とパスワードのみが必要です。

結論として:デフォルトでは、対称暗号化のためにパスワードを再利用しようとしています。パスワードを提供する唯一のプログラムはssh-agentであり、そのプログラムは暗号化/復号化にパスワードのみを使用しません。このパスワードは秘密鍵のロック解除にのみ使用され、その後は忘れてしまいます。

おすすめ:パスワードで保護されたキーファイルをopenssl enc使用して暗号化します。gpg -e --symmetric情報を共有する必要がある場合は、両方のプログラムの公開鍵インフラストラクチャを使用してPKI /信頼ネットワークを作成できます。

opensslを使用すると、次のようになります。

$ openssl enc -aes-256-ctr -in my.pdf -out mydata.enc 

そして次のようなものを解読します

$ openssl enc -aes-256-ctr -d -in mydata.enc -out mydecrypted.pdf

更新:上記のopensslコマンドはデータの改ざんを防ぐことができないことに注意してください。 encファイルの単純なビットフリップによって、復号化されたデータが破損する可能性があります。上記のコマンドはこれを検出できないため、SHA-256などの正しいチェックサムを使用してそれを確認する必要があります。これを統合された方法で実行するいくつかの暗号化方法があり、これをHMAC(ハッシュベースのメッセージ認証コード)と呼びます。

おすすめ記事