コマンドラインまたはスクリプトを使用してディレクトリを暗号化および復号化する最良の方法は何ですか?

コマンドラインまたはスクリプトを使用してディレクトリを暗号化および復号化する最良の方法は何ですか?

私はBazaarによってバージョン管理されたテキストファイルディレクトリを持ち、各コンピュータにコピー(実際には分岐)を保持します。コマンドラインでディレクトリを暗号化して復号化したいと思います。

理想的には、ログアウト時にスクリプトを実行してディレクトリが暗号化されていることを確認し、そうでない場合はユーザーの介入なしに暗号化することもできます。ただし、ログイン時にディレクトリのパスワードを復号化したくありません。 (このスクリプトで手動で暗号化することを忘れてはいけません。これはネットブックで特に重要です。)

私は2つのバージョンのcrunchbang Linuxを実行しています。 1つは、Debian Squeezeリポジトリの6月末のスナップショットからubuntu 10.04.1派生したものです。ubuntu 9.04

これを行う最良の方法は何ですか?

(次を使用してタグ付けしようとしましたが、タグを生成するデリゲートはありません。encryptiondirectories

答え1

マシンへの管理アクセス権はありますか?暗号化されたループバックデバイスを使用できます。例:

暗号化されたファイルシステム用のコンテナファイルを作成します。

dd if=/dev/urandom of=container bs=1024k count=100 

コンテナファイルをループバックデバイス0にバインドします。

losetup container /dev/loop0

暗号化されたデバイスを作成します(-yにはパスワードが2回必要で、行はで区切ります\)。

cryptsetup -c serpent-xts-essiv:sha256 -b 512 \
   -y create container /dev/loop0 

暗号化されたデバイスにext2ファイルシステムを作成します(実際には何でも使用できます):

mkfs.ext2 /dev/mapper/container

暗号化されたファイルシステムをcryptディレクトリにマウントします。

mount /dev/mapper/container crypt

参考までに:

man cryptsetup && man losetup

また、使用するパスワード、キーの長さなどを選択する方法については、パスワード動物学のベストプラクティスをお読みください。

答え2

あなたが求めているのは、ディレクトリを暗号化して復号化する方法ではなく、暗号化されたストレージを透過的に使用する方法のようです。あなたが提案したソリューション(実際の大規模な復号化と暗号化を含む)はあまり安全ではありません。異常にログアウトすると(停電、システムクラッシュ、ノートブック盗難など)、コンテンツは暗号化されたままになります。 ;そして、決定的な攻撃者が見つけることができる機密データの痕跡を残します(削除されたファイルのデータはまだディスクにあるため、見つけるのは難しいです)。

現在、Linuxシステムは透明な暗号化を達成するためのさまざまな方法を提供しています。以下を使用してボリューム全体を暗号化できます。DMパスワードまたはその代替手段の1つです。次のような特定のディレクトリツリーを暗号化するために使用できるさまざまなツールがあります。暗号化されたファイルシステム(カーネルレベルで動作)環境ファイルシステム(ヒューズを介してユーザーエリアでのみ機能します)。 (私が言及した3つはすべてDebian lennyで利用可能であり、すべてのディストリビューションで利用可能でなければなりません。)

libpam-mountPAM(パッケージ、ecryptfsに推奨されるオプション)またはプロファイルスクリプト(encfsに推奨されるオプション)を介してインストールする暗号化ディレクトリを設定できます。暗号化されていないディスクには何も記録されないため、「手動暗号化を忘れてしまう」という問題はありません。

最適な保護のためには、機密ファイルだけでなく、プログラムが機密データを保存できる他の場所も暗号化する必要があります。少なくともスワップパーティションを暗号化する必要があります。注意が必要な他の領域には、機密文書を印刷する場合/tmp(操作することで最もよく解決されますtmpfs/var/spool/cups、ネットワークキャッシュ/記録などの~/.mozillaホームディレクトリにあるすべてのアプリケーションファイルがあります。

答え3

使い方GPGディレクトリ?これにより、ログインおよびログアウトスクリプトが可能になります。また、暗号化するサブディレクトリを選択することもできます(.bash_rcたとえば、そのようなファイルを復号化したままにしたい場合があります)。

別のオプションは次のとおりです。実際のパスワード。あなたは作ることができますコンテナデータをインポートしてシェルスクリプトで暗号化/復号化します。

答え4

Ubuntuおよび派生ディストリビューションの標準であるecryptfsを使用することもできます。これは、インストール中にホームディレクトリを暗号化するかどうかを尋ねる質問に使用されます(http://www.linuxjournal.com/article/9400)。 ecryptfsの利点は、別々のパーティションを必要とせず、それを使用するためにインストールされたファイルをループバックする必要もないことです。

関連情報