UNIXのいくつかのファイルを暗号化するための良い解決策は何ですか?[閉まっている]


44

Linuxの特定のディレクトリを暗号化するユーティリティを探しています。フルディスク暗号化サービスを探しているのではなく、クラウドにファイルを保存するためにいくつかのディレクトリを暗号化するだけです。それらを取得したら、アクセスする前に復号化する必要があります。いくつかのディレクトリ(サイズが数百GB)でこれを実行しようとしています。何か案は?CLIベースが望ましい。

回答:


51

このタスクにはGnuPGのみを使用します。フォルダは最初にTAR-GZアーカイブにパックされます:

tar czf files.tar.gz /path/to/my/files

まだ行っていない場合は、最初にGPG秘密/公開キーペアを作成する必要があります。

gpg --gen-key

指示に従ってください。最初のテストではデフォルトで十分です。次のようなものが表示されます。

gpg(GnuPG)2.0.18; Copyright(C)2011 Free Software Foundation、Inc.
これはフリーソフトウェアです。自由に変更して再配布できます。
法律で許可されている範囲での保証はありません。

必要なキーの種類を選択してください:
   (1)RSAおよびRSA(デフォルト)
   (2)DSAおよびElgamal
   (3)DSA(署名のみ)
   (4)RSA(署名のみ)
あなたの選択?1
RSAキーの長さは1024〜4096ビットです。
どのキーサイズが必要ですか?(2048)4096
要求されたキーサイズは4096ビットです
キーの有効期間を指定してください。
         0 =キーは期限切れになりません
        =キーはn日で期限切れになります
      w =キーはn週間で期限切れ
      m =キーはnか月で期限切れ
      y =キーはn年で期限切れ
キーは有効ですか?(0)
キーがまったく期限切れにならない
これは正しいです?(y / N)y

GnuPGは、キーを識別するためのユーザーIDを作成する必要があります。

本名:ファイル暗号化キー
メールアドレス:admin@company.org
コメント:ファイル暗号化キー
このUSER-IDを選択しました:
    「ファイル暗号化キー(ファイル暗号化キー)」

(N)ame、(C)omment、(E)mail、または(O)kay /(Q)uit?o

キーへのパスフレーズを要求されます。強力なものを使用することを強くお勧めします。とにかくファイルの暗号化には必要ないので、後でバッチを使用することを心配しないでください。

すべてが完了すると、次のような画面が画面に表示されます。

大量のランダムバイトを生成する必要があります。実行することをお勧めします
他のアクション(キーボードで入力、マウスを移動、
ディスク)素数生成中; これは乱数を与えます
十分なエントロピーを得るより良い機会を生成します。
大量のランダムバイトを生成する必要があります。実行することをお勧めします
他のアクション(キーボードで入力、マウスを移動、
ディスク)素数生成中; これは乱数を与えます
十分なエントロピーを得るより良い機会を生成します。
gpg:最終的に信頼できるとマークされたキーFE53C811
作成および署名された公開鍵と秘密鍵。

gpg:trustdbの確認
gpg:3つのマージナルが必要、1つのコンプリートが必要、PGP信頼モデル
gpg:深さ:0有効:1署名済み:0信頼:0-、0q、0n、0m、0f、1u
パブ***** / ******** 2013-03-19
      キーフィンガープリント= **** **** **** **** **** **** **** **** **** ****
uidファイル暗号化キー(ファイル暗号化キー) 
サブ***** / ******** 2013-03-19

今、あなたがしたいことがあり、他のマシン上でそれをインポートするためのパブリックキーファイルをエクスポートします。

gpg --armor --output file-enc-pubkey.txt --export 'File Encryption Key'

これFile Encryption Keyは、キー生成手順で入力した名前です。

今、私は新しく作成されたアーカイブでGnuPGを使用しています:

gpg --encrypt --recipient 'File Encryption Key' files.tar.gz

files.tar.gz.gpgこれで、暗号化されたファイルが作成されました。

次のコマンドで暗号化を解除できます(パスフレーズの入力を求められます):

gpg --output files.tar.gz --decrypt files.tar.gz.gpg

それが全体の魔法です。

必ずキーをバックアップしてください!そして、パスフレーズを決して忘れないでください!バックアップまたは忘れていない場合、ギガバイトのデータジャンクがあります!

次のコマンドで秘密鍵をバックアップします。

gpg --armor --output file-enc-privkey.asc --export-secret-keys 'File Encryption Key'

長所

  • 暗号化者は誰も暗号化に関する機密情報を知る必要はありません-暗号化は公開鍵で行われます。(ローカルワークステーションでキーペアを作成し、公開キーのみをサーバーに転送できます)
  • スクリプトファイルまたはジョブにパスワードは表示されません
  • 必要なシステムで暗号化機能を使用できます
  • 秘密鍵とパスフレーズを秘密にしておけば、すべてがうまくいき、非常に危険にさらされます
  • 特定のPGP / GPG実装を使用して、Unix、Windows、およびLinuxプラットフォームの秘密鍵で復号化できます。
  • システムの暗号化および復号化に特別な権限、マウント、コンテナ、特別なファイルシステムは必要ありません

1
データによっては、圧縮tarせずにzスイッチなしで実行する方が高速になる場合があります。
l0b0

28

私の場合、主に2つの方法を使用します。

最初の方法:tarおよびopenssl

ディレクトリをtar

tar cvf backup.tar /path/to/folder

[v]スイッチをtarコマンドから削除して、冗長モードをオフにすることができます。

暗号化

openssl aes-128-cbc -salt -in backup.tar -out backup.tar.aes -k yourpassword

aes-128-cbcは、opensslがサポートする他の暗号方式(openssl --help)に変更できます。

復号化

openssl aes-128-cbc -d -salt -in backup.tar.aes -out backup.restored.tar

パスワードを求められます。

2番目の方法:暗号化されたzip

zip -r -0 -e backup.zip /path/to/folder

パスワードを求められます。

  • -rは再帰的に意味します(フォルダツリー全体)
  • -0は保存のみを意味します(圧縮せず、高速です)
  • -eはアーカイブの暗号化を意味します

この利点の1つは、Windowsベースのシステムでより適切に動作することです。


3
コマンドラインでパスワードを与えることは良い考えではありません。パスワードはシェル履歴に残ります。
pbies

1
zip暗号化はクラック可能と噂されていることに注意してください。
Acumenus 14年

22

公開/秘密キーペアでファイルを暗号化せず、代わりにパスフレーズで対称暗号化を使用する場合は、次のコマンドを使用します。

gpg --symmetric --cipher-algo aes256 files.tar.gz

パスフレーズを求められます。その後、暗号化されたファイルfiles.tar.gz.gpgが作成されます。

解読するには、次のコマンドを使用します

gpg --decrypt files.tar.gz.gpg > files.tar.gz


2

そのような目的のために、FUSE暗号化(encfsなど)をお勧めします-より小さなデータにはgpgを使用します。

ユーザー空間に実装されたfsなので、特別な特権は必要ありません。


1

データの暗号化を目的としたLinuxファイルシステムがいくつかあります。あなたはすでにLUXを考えましたか?


1

1つのファイルを暗号化する非常に簡単な方法は次のとおりです。

gpg -c filename.ext

パスフレーズを2回要求されると、gpgはを作成しますfilename.ext.gpg。暗号化されたファイルをクラウドサービスにアップロードします。ファイルを回復するには:

gpg filename.ext.gpg

再作成されfilename.extます。ことを注意暗号化されていないファイルはセキュリティで保護されていない、との関連データも削除した後、あなたの記憶媒体上に残ります。gpgコンテナのみが安全です。 EncFSは、ファイルレベルでのクラウドベースの暗号化のより実用的な代替手段です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.