eCryptfs暗号化ホーム-説明


9

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

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

回答:


11

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

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

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

    • 自動マウント -存在する場合、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 が正しいキーを使用しているかどうかを判断するための安全なメカニズムを提供します。(Private.sigおよびPrivate.mntに関するQを参照してください)
    • wrapped- passphrase-ログインパスフレーズで暗号化(「ラップ」)された実際の(ランダムな)eCryptfsパスフレーズ

通常のホームディレクトリには、およびへのリンクと、ヘルプファイルへのリンクが2つ/home/user/だけ含まれ ています&(実行するだけ)。/home/.ecryptfs/user/.ecryptfs/home/.ecryptfs/user/.Private/usr/share/ecryptfs-utils/ecryptfs-mount-private.desktopecryptfs-mount-private

eCryptfsはPAM(のファイルを参照/etc/pam.d/)を設定して/home/.ecryptfs/auto-mountおよびauto-umountファイルが存在するかどうかに応じて、ログイン/ログアウト時に暗号化されたホームフォルダーを自動的に検索してマウントおよびアンマウントします。詳細については、eCryptfsのソースコードと.debパッケージのpreinstおよびpostrmスクリプト(上記にリンク)と、次のクリップを参照してくださいman ecryptfs-setup-private

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

  • このUbuntuのヘルプページには、方法についての指示がある「自動的に使用して...ブート時のeCryptfsに暗号化されたファイルシステムをマウント/root/.ecryptfsrcUSBキー上にあるパスフレーズのファイルと一緒に、マウントオプションを含むファイルを。

ラップが解除されると、キーはユーザーのカーネルキーリングに保存されます。keyctl showルートキーリング(sudo keyctl show)を使用した場合、管理者がパスフレーズを見つけることができるため、で確認できます。を使用ecryptfs-unwrap-passphraseして、実際のecryptfsパスフレーズを確認できます。eCryptfsは、ファイル内の一致するキー署名(ecryptfsオプションecryptfs_sig=(fekek_sig)ecryptfs_fnek_sig)を使用してファイルを復号化しますPrivate.sig


より詳しい情報

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

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

そして、参照man用ページecryptfs(オンラインがあったり、システム上の)すべてが、それは特に、ツールですecryptfs-setup-private

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


/ etc / crypttabには、cryptswapの行が1つしかありません。fstabにも特別なものはありません。私の家は暗号化されています。私の家が暗号化されており、ログオン時に特別な情報が必要であることをシステムがどのように知るのか、まだ分かりません
ardabro 2014

ホームが@loginを見たときに自動的に行われると思います。archlinuxのヘルプを読みましたか?どこにも役立つ情報はありませんでしたか?しかし、「sthスペシャル」を定義してください。私も「google教授」もそれに精通しています。「何か特別なもの」の略?どのような?
Xen2050 2014

sthスペシャルは、キーを取得し、ログインプロセスの追加パスである暗号化されたディレクトリをマウントすることです。Arch wikiはとても役に立ちました。さらに、ecryptfsのソースコードを調査しました。しかし、ログインプロセスの重要な「if」命令がどこにあり、それが正確に何をチェックするのかはまだわかりません。
ardabro 2014

Linuxがホームフォルダーを見つけて使用する方法に少し似ていますが、一部の情報は/etc/passwd(少なくともホームとシェル)に格納されていると思いますが、暗号化されたホームユーザーの場合は異なりますか?カーネルのキーリングに関する情報も少し回答に追加します
。ecryptfsは

1
すみません、更新を見逃しました。素晴らしい説明。どうもありがとう!
ardabro 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.