KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

cryptsetupと、ecrptfs-setup-privateをそれぞれ使う場面がよくわかりません。教えてください。

登録日 :2025/05/29 05:00
カテゴリ :Linux

cryptsetup(dm-crypt/LUKS) と ecryptfs-setup-private(eCryptfs) は、用途・暗号化の範囲・パフォーマンスが異なります。以下に使い分けのポイントを整理します。

  1. 暗号化対象と用途
    特徴 cryptsetup(dm-crypt) ecryptfs-setup-private(eCryptfs)
    暗号化対象 ブロックデバイス全体(ディスク/パーティション) ファイル/ディレクトリ(例:ホームディレクトリ)
    主な用途 OS全体、スワップ領域、外部ストレージ ユーザーごとのファイルや特定ディレクトリ
    自動マウント システム起動時(パスフレーズ入力) ユーザーログイン時(PAM連携で自動化可能)
  2. 暗号化の特徴
    cryptsetup(dm-crypt/LUKS)
    ブロックレベル暗号化:ディスク全体を暗号化するため、ファイルシステムやメタデータ(ファイル名・サイズ含む)が完全に保護されます。

固定サイズ:事前に暗号化領域のサイズを決定する必要があります。

スワップ領域の暗号化:システム全体のセキュリティに適しています。

例:

# パーティション暗号化
cryptsetup luksFormat /dev/sdb1
cryptsetup open /dev/sdb1 my_encrypted_volume
mkfs.ext4 /dev/mapper/my_encrypted_volume
ecryptfs-setup-private(eCryptfs)

ファイルレベル暗号化:既存のファイルシステム上で特定のディレクトリ(例:~/.Private)を暗号化します。

柔軟なサイズ:暗号化対象のディレクトリは動的に拡張可能です。

ユーザーごとの管理:ホームディレクトリを暗号化する場合、ログイン時に自動マウントされます。

例:

# ホームディレクトリ暗号化
ecryptfs-setup-private
  1. パフォーマンス比較
    cryptsetup:ブロックレベルの暗号化は高速ですが、暗号化対象が大きい場合、リソースを消費します。

eCryptfs:ファイル単位の暗号化はオーバーヘッドが大きく、特に小ファイルが多い場合は遅くなる傾向があります。

  1. 推奨する使用場面
    cryptsetupを使う場合
    システム全体や外部ディスクを暗号化したいとき。

スワップ領域やLVMを含む複雑なストレージ構成を保護したいとき。

メタデータ(ファイル名やサイズ)も含めて完全に秘匿したいとき。

ecryptfs-setup-privateを使う場合
ユーザーごとにホームディレクトリ内のファイルを手軽に暗号化したいとき。

既存のファイルシステムを変更せずに特定のディレクトリだけ暗号化したいとき。

自動マウント機能で利便性を優先したいとき。

  1. 設定の違い
    項目 cryptsetup ecryptfs-setup-private
    依存パッケージ cryptsetup ecryptfs-utils
    自動マウント /etc/crypttabで設定 PAMモジュール(pam_ecryptfs.so)で自動化
    パスワード管理 LUKSヘッダーに鍵を保存 ログインパスワードと連携
    まとめ

cryptsetup:OS全体や大容量ストレージの完全暗号化に最適。

ecryptfs-setup-private:ユーザー単位で手軽にファイルを保護したい場合に便利。

用途に応じて適切なツールを選択してください。