web-dev-qa-db-ja.com

eCryptfs暗号化ホーム-説明

Ecryptfsが内部でどのように機能するかを理解しようとしていますが、ecryptfs.orgのドキュメントは役に立ちません。多分誰かがそれが実際にどのように機能するかを説明することができます。もちろん、私はこれらの隠された.Private /.ecryptfsディレクトリ構造を知っています。私の質問はより詳細です:

  • 私の家が暗号化されていることをシステムがどのように認識し、ログイン時にそれを復号化しますか?
  • キーディレクトリ(暗号化されたデータを含むディレクトリ、そのマウントポイント(ホームの場合もあれば、/ home/Privateの場合もある)、パスフレーズがラップされたディレクトリなど)をどのように検索しますか。これらのディレクトリは通常、/ home/.ecryptfs /に配置され、ホームにリンクされます。どの場所が鍵ですか? 「.ecryptfs」および「.Private」ディレクトリ名は予約され、ハードコードされているか、構成可能ですか?
  • キーリングについて:キーリングに複数のキーがあると仮定します-適切なキーを特定の暗号化されたディレクトリとどのように一致させますか?
8
ardabro

これは、標準の暗号化されたホームセットアップについて説明しています。異なるパスフレーズやフォルダ、暗号化アルゴリズム、キーサイズなどを使用する場合は、 _mount.ecryptfs_ を直接使用できます。

暗号化されたホームでユーザーを作成するか、既存のユーザーで_ecryptfs-migrate-home_を使用すると、eCryptfsが使用され、新しいユーザーの「実際のホーム」を含むフォルダーを含むディレクトリ_/home/.ecryptfs/_が設定されます_/home/.ecryptfs/user/_含む:

  • _/home/.ecryptfs/user/.Private/_内の実際の暗号化ファイル、およびeCryptfs構成ディレクトリ_/home/.ecryptfs/user/.ecryptfs/_以下を含む:

    • auto-mount-存在する場合は、ログイン時に実行するように_ecryptfs-mount-private_に指示し、プライベート(ホーム)フォルダーをマウントします。 _man ecryptfs-mount-private_ を参照してください

    • auto-umount-存在する場合は、_ecryptfs-umount-private_にログアウト時に実行し、プライベート(ホーム)フォルダーをアンマウントするように指示します。 _man ecryptfs-umount-private_ を参照してください

    • Private.mnt-ログイン時に_mount.ecryptfs_private_によって読み取られる構成ファイルで、暗号化されたディレクトリをマウントする場所を定義します。ホームディレクトリを暗号化した場合、これは_$HOME_になります。
    • Private.sig-マウントポイントパスフレーズの署名が含まれています。これは、eCryptfsが正しいキーを使用しているかどうかifを判別するための安全で安全なメカニズムを提供します。 ( Private.sigおよびPrivate.mntに関するQ を参照してください)
    • wrapped-passphrase-ログインパスフレーズで暗号化(「ラップ」)された実際の(ランダムな)eCryptfsパスフレーズ

_/home/user/_の通常のホームディレクトリには、_/home/.ecryptfs/user/.ecryptfs_と_/home/.ecryptfs/user/.Private_へのリンクと、ヘルプファイルと_/usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop_へのリンクが2つだけ含​​まれています(_ecryptfs-mount-private_を実行するだけです)。

eCryptfsは [〜#〜] pam [〜#〜] (_/etc/pam.d/_のファイルを参照)をセットアップして、_/home/.ecryptfs/_内の暗号化されたホームフォルダーを自動的に検索し、暗号化されたホームをマウントおよびアンマウントします_auto-mount_および_auto-umount_ファイルが存在するかどうかに応じて、ログイン/ログアウト時のフォルダー。詳細については、eCryptfsソースコードと.debパッケージのpreinstおよびpostrmスクリプト(上記のリンク)、および _man ecryptfs-setup-private_ からのこのクリップを参照してください。

[T] pam_ecryptfs.soモジュールをPAMスタックに追加します。このモジュールは、ログインパスフレーズを使用してマウントパスフレーズを自動的にアンラップし、ユーザーのカーネルキーリングにパスフレーズを追加して、マウントを自動的に実行します。 pam_ecryptfs(8)を参照してください。

  • このUbuntuヘルプページ起動時にecryptfs暗号化ファイルシステムを自動的にマウントする方法についての説明があります...マウントオプションを含む_/root/.ecryptfsrc_ファイルとUSBキーにあるパスフレーズファイル。 "

ラップが解除されると、キーはユーザーカーネルキーリングに保存されます。ルートキーリング(_keyctl show_)を使用した場合、管理者がパスフレーズを見つけることができるため、_Sudo keyctl show_で確認できます。 _ecryptfs-unwrap-passphrase_を使用して、実際のecryptfsパスフレーズを確認できます。 eCryptfsは、ファイル_ecryptfs_fnek_sig_内の一致する調号(ecryptfsオプションecryptfs_sig=(fekek_sig)および_Private.sig_)を使用してファイルを復号化します。


より詳しい情報

Ubuntuには、 ホーム内の暗号化ファイルbuntuサーバーガイドのeCryptfs などの優れたヘルプファイルがあります。

Arch Linuxには、一般的に優れたヘルプがいくつかあります。 https://wiki.archlinux.org/index.php/System_Encryption_with_eCryptfs を参照してください。

そして、 man (オンラインまたはシステム上)とそのすべてのツール、特に _ecryptfs-setup-private_ecryptfsページを参照してください。

_adduser --encrypt-home_を使用して、暗号化されたホームを持つ新しいユーザーを追加できます(詳細については、 _ecryptfs-setup-private_ の-bオプションを参照してください)。ファイルがどのように設定されているかを確認してください。そして、あなたがおそらく知りたくなかったすべての詳細で本当にあなたの足を濡らすためにソースコードを見てください:

9
Xen2050