第3章 暗号化されたファイルシステム

Red Hat Enterprise Linux 6 では eCryptfs のテクノロジープレビューを提供します。これは「擬似ファイルシステム」とも呼ばれ、ファイルごとにデータやファイル名の暗号化を提供します。eCryptfs にはオンディスク形式がないことから「擬似ファイルシステム」と呼ばれていますが、eCryptfs は実際のファイルシステムの上部に置かれるファイルシステム層です。eCryptfs 層により暗号化機能が提供されます。
eCryptfs は Bind マウントのように機能し、基礎となる (暗合化された) ファイルシステムに書き込みを行うファイル動作をインターセプトします。eCryptfs 層は基礎となるファイルシステム内のファイルのメタデータにヘッダーを追加します。このメタデータはファイルの暗号を表し、eCryptfs はファイルデータが暗号化されたファイルシステムに渡される前にそのデータを暗号化します。eCryptfs はオプションでファイル名を暗号化することもできます。
eCryptfs はオンディスクのファイルシステムではないため、mkfs などのツールで作成する必要がありません。代わりに eCryptfs は特殊なマウントコマンドを発行すると開始されます。eCryptfs で保護されるファイルシステムを管理するには、ecryptfs-utils パッケージを最初にインストールしておく必要があります。

3.1. 暗号化されたファイルシステムとしてマウントする

eCryptfs でファイルシステムを暗号化するには、次のコマンドを実行します。
# mount -t ecryptfs /source /destination
eCryptfs でディレクトリー階層 (上記の例では /source) を暗号化するとは、eCryptfs で暗号化されたマウントポイント (上記の例では /destination) にそのディレクトリー階層をマウントすることを意味します。/destination に対するすべてのファイル操作は暗合化されて基礎となる /source ファイルシステムに渡されます。ただし、ファイル操作により、eCryptfs 層を経由せず /source が直接変更される可能性があり、これにより不整合が生じる恐れがあります。
このため、Red Hat ではほとんどの環境で /source/destination の両方に同じ名前を使用することを推奨しています。たとえば、以下のようになります。
# mount -t ecryptfs /home /home
上記の例では、ファイルシステムを暗号化してから それ自体 にマウントしています。これを行うことで /home に対して行われる すべての ファイル操作が eCryptfs 層を通過することになります。
マウントおよび暗号化の処理時に、mount により次の設定を行うことができます。
暗号化キーのタイプ
openssltspi、または passphrase のいずれかになります。passphrase を選択すると、mount によりパスフレーズの入力が求められます。
暗号
aesblowfishdes3_edecast6、または cast5 のいずれかになります。
キーのバイトサイズ
1632、または 24 のいずれかになります。
plaintext passthrough
有効化または無効化の設定。
filename encryption
有効化または無効化の設定。
インタラクティブなマウントの最後のステップを終了後、mount は選択されたすべての内容を表示してからマウントを実行します。出力は選択した各設定を示すコマンドラインのオプションで構成されます。たとえば、/home をマウントする際にキータイプに passphrase、暗号に aes、キーのバイトサイズに 16 を設定し、plaintext passthroughfilename encryption はいずれも無効に設定した場合、出力は次のようになります。
Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=c7fed37c0a341e19
Mounted eCryptfs
上記の出力と同じ設定でファイルシステムの暗号化とマウントを行う場合、表示されているオプションは直接コマンドラインに渡されます。mount-o オプションに対する引数として各オプションを以下のように使用します。
# mount -t ecryptfs /home /home -o ecryptfs_unlink_sigs \
 ecryptfs_key_bytes=16 ecryptfs_cipher=aes ecryptfs_sig=c7fed37c0a341e19[2]


[2] このコマンドは改行なしの 1 行のコマンドになります。印刷版または PDF 版で表示する制限上、複数行で表されることがあります。複数行を連結している場合には (バックスラッシュ「\」が前に付く)、バックスラッシュを除いた 1 つのコマンドとして扱ってください。