web-dev-qa-db-ja.com

暗号化と圧縮

tarに続けてopensslまたはgpg以外のファイルを圧縮してから暗号化するためのより良い方法はありますか?

28
user75027

tarは、ファイルをバンドルするための通常のツールです。プレーンtar自体は圧縮されません。 gzipbzip2 、および xz (一般的なファイルの圧縮率の昇順)など、1つのファイルを圧縮する個別のツールがあります。 GNU tar(Linuxの通常の実装)を含む)の多くのtar実装は、オプション(-z gzipの場合、-j bzip2の場合、-J for xz):

tar -cJf myarchive.tar.xz file1 file2 file3

ファイルを暗号化するには、 gpg を使用します。鍵を作成し、それをメールアドレスに関連付けます(GPG/PGP鍵の識別子には通常、メールアドレスが含まれていますが、必須ではありません)。メールを受信者として指定して、ファイルを暗号化します。ファイルを復号化するには、パスフレーズを入力して秘密鍵のロックを解除する必要があります。

GPGでは、パスワードでファイルを暗号化することもできます。これは安全性と柔軟性に欠けます。暗号化時にパスワードを指定する必要があるため、柔軟性が低くなります(たとえば、無人バックアップを作成することはできません)。唯一のセキュリティはパスワードであるため、安全性は低くなりますが、キーベースの暗号化では、パスワードとキーの間でセキュリティが分割されます。

opensslコマンドラインツールは使用しないでください。これは、OpenSSLライブラリのショーケースであり、本番用には設計されていません。これを使用していくつかのことを実行できます(特に、基本的な証明機関に必要なすべてのプリミティブを備えています)が、正しく使用することが難しく、正しく実行するために必要なすべてがありません。 GPGが自転車を提供する場合、OpenSSLはさまざまなサイズのいくつかの金属棒と2つのゴム製チャンバー(ねじとポンプは含まれません)を提供します。 GPGを使用します。

7Zipを使用できます。

7z a -p -mhe=on stuff.7z MyStuff
   ^  ^     ^      ^        ^
   |  |     |      |        `--- Files/directories to compress & encrypt.
   |  |     |      `--- Output filename
   |  |      `--- Encrypt filenames
   |  `---- Use a password
   `---- Add files to archive

パスワードの入力を求められます。どうやら、暗号化にはAES-256を使用し、鍵の導出には パスワードのSHA-256と512K回繰り返されるカウンター を使用しています。

Edit:これはファイル名を暗号化しないので、とにかく最初にすべてをtarしたいと思うかもしれません。

編集2-mhe=onを追加しました。

12
Timmmm

したがって、7Zip暗号化ファイル名も使用できます。

7z a -p -mhe=on stuff.7z MyStuff
3
Victor