「Fscrypt」の版間の差分
(一部翻訳) |
(翻訳) |
||
77行目: | 77行目: | ||
上記のコマンドで fscrypt のポリシーとプロテクターを保存するための {{ic|''mountpoint''/.fscrypt}} ディレクトリが作成されます。 |
上記のコマンドで fscrypt のポリシーとプロテクターを保存するための {{ic|''mountpoint''/.fscrypt}} ディレクトリが作成されます。 |
||
+ | {{Warning|{{ic|.fscrypt}} ディレクトリを削除してはいけません。そうすると暗号化されたファイルにアクセスできなくなります。}} |
||
− | {{Warning|Never delete the {{ic|.fscrypt}} directory; otherwise you will lose access to your encrypted files.}} |
||
=== ディレクトリの自動アンロック === |
=== ディレクトリの自動アンロック === |
||
+ | ログイン用のパスフレーズで暗号化ディレクトリを保護して、ログイン時に自動的にロックを解除したい場合、[[PAM]] の設定を編集して {{ic|pam_fscrypt}} を有効化してください: |
||
− | If you want any encrypted directories to be protected by your login passphrase and be automatically unlocked when you log in, edit your [[PAM]] configuration to enable {{ic|pam_fscrypt}}: |
||
− | + | {{ic|/etc/pam.d/system-login}} の "auth" セクションに以下の行を追加: |
|
auth optional pam_fscrypt.so |
auth optional pam_fscrypt.so |
||
− | + | また、{{ic|/etc/pam.d/system-login}} の "session" セクションに以下の行を追加: |
|
session optional pam_fscrypt.so drop_caches lock_policies |
session optional pam_fscrypt.so drop_caches lock_policies |
||
− | + | 最後に、{{ic|/etc/pam.d/passwd}} に以下の行を追加: |
|
password optional pam_fscrypt.so |
password optional pam_fscrypt.so |
||
97行目: | 97行目: | ||
== ディレクトリの暗号化 == |
== ディレクトリの暗号化 == |
||
+ | 空のディレクトリを暗号化したい場合、以下のコマンドを実行: |
||
− | To encrypt an empty directory, run: |
||
$ fscrypt encrypt ''dir'' |
$ fscrypt encrypt ''dir'' |
||
+ | プロンプトに従って「プロテクター」を作成あるいは選択してください。プロテクターはディレクトリの暗号鍵を保護する秘密鍵です。プロテクターの種類: |
||
− | Follow the prompts to create or choose a "protector". A protector is the secret or information that protects the directory's encryption key. The types of protectors include: |
||
− | * "custom_passphrase" |
+ | * "custom_passphrase" - 名前の通り、あなたが設定するパスフレーズです。 |
+ | * "pam_passphrase" - 特定のユーザーのログインパスフレーズです。このタイプのプロテクターを使用するディレクトリはユーザーのログイン時に自動的に {{ic|pam_fscrypt}} によって解錠されます (有効化されている場合)。 |
||
− | * "pam_passphrase". This is the login passphrase for a particular user. Directories using this type of protector will be automatically unlocked by {{ic|pam_fscrypt}} (if enabled) when that user logs in. |
||
+ | どちらの場合でも、パスフレーズは後から変更が可能で、他の方法でディレクトリを再保護することもできます。 |
||
− | In both cases, the passphrase can be changed later, or the directory can be re-protected with another method. |
||
+ | カスタムパスフレーズの例: |
||
− | Example for custom passphrase: |
||
{{hc|$ fscrypt encrypt private/| |
{{hc|$ fscrypt encrypt private/| |
||
123行目: | 123行目: | ||
}} |
}} |
||
+ | PAM パスフレーズの例: |
||
− | Example for PAM passphrase: |
||
{{hc|$ fscrypt encrypt private/| |
{{hc|$ fscrypt encrypt private/| |
||
136行目: | 136行目: | ||
}} |
}} |
||
+ | {{Note|1=暗号化は空のディレクトリでのみ有効化できます。既存のディレクトリを暗号化したい場合、ファイルをコピーしてから元のファイルを削除してください。例: |
||
− | {{Note|1=Encryption can only be enabled on an empty directory. If you want to encrypt an existing directory, you will need to copy and then delete the original files, e.g.: |
||
$ mkdir ''new_dir'' |
$ mkdir ''new_dir'' |
||
144行目: | 144行目: | ||
$ rm -rf ''old_dir'' |
$ rm -rf ''old_dir'' |
||
+ | 元のファイルを削除してもディスクからフォレンジックによって復元できる可能性があります (特に SSD を使用している場合)。データは最初から暗号化された状態にすることを推奨します。}} |
||
− | Beware that the original unencrypted files may still be forensically recoverable from disk even after being shredded and deleted, especially if you are using an SSD. It is much better to keep your data encrypted from the start. |
||
− | }} |
||
== ディレクトリの手動アンロック == |
== ディレクトリの手動アンロック == |
||
+ | 手動で暗号化ディレクトリを解錠するには、以下のコマンドを実行: |
||
− | To manually unlock an encrypted directory, run: |
||
$ fscrypt unlock ''dir'' |
$ fscrypt unlock ''dir'' |
||
− | {{ic|fscrypt}} |
+ | {{ic|fscrypt}} はパスフレーズの入力を要求します。 |
== ホームディレクトリの暗号化 == |
== ホームディレクトリの暗号化 == |
||
+ | {{Warning|ユーザーのホームディレクトリが暗号化されている場合、ホームディレクトリの暗号化が解除されるまでそのユーザーに ssh でログインできなくなります。}} |
||
− | {{Warning|If a user's home directory is encrypted, ssh'ing to that user will not work until their home directory has been unlocked.}} |
||
+ | ユーザーのホームディレクトリを暗号化するには、最初に {{ic|pam_fscrypt}} の有効化などの[[#準備|準備]]を行ってください。 |
||
− | To encrypt a user's home directory, first ensure you have completed all [[#Preparations|preparations]], including enabling {{ic|pam_fscrypt}}. |
||
+ | それから、新しい暗号化ディレクトリを作成: |
||
− | Then, create a new encrypted directory for the user: |
||
# mkdir /home/newhome |
# mkdir /home/newhome |
||
167行目: | 166行目: | ||
# fscrypt encrypt /home/newhome --user=''user'' |
# fscrypt encrypt /home/newhome --user=''user'' |
||
+ | ユーザーのログインパスフレーズを使ってディレクトリを保護するオプションを選択してください。 |
||
− | Select the option to protect the directory with the user's login passphrase. |
||
+ | それからユーザーのホームディレクトリの中身を暗号化ディレクトリにコピーしてください: |
||
− | Then copy the contents of the user's old home directory into the encrypted directory: |
||
# cp -a -T /home/''user'' /home/newhome |
# cp -a -T /home/''user'' /home/newhome |
||
+ | {{Tip|ホームディレクトリのコピーのための容量がディスクに存在しない場合、{{ic|mv -T /home/''user'' /home/newhome}} とすることもできます。ただし、これは危険です。先にバックアップを作成することを強く推奨します。}} |
||
− | {{Tip|If you do not have enough disk space for a second copy of the home directory, you can use {{ic|mv -T /home/''user'' /home/newhome}} instead. However, this is unsafe. If you do this, making a backup first is strongly recommended.}} |
||
+ | {{ic|cp}} を使用した場合、実用前にログインでディレクトリが自動的に解除されるか確認できます。一番簡単な方法は再起動してそのユーザーでログインすることです。その後、以下のコマンドを実行: |
||
− | If you used the {{ic|cp}} method, you can check whether the directory is being automatically unlocked on login before you actually switch to using it. The simplest way to do this is to reboot and log in as that user. Afterwards, run: |
||
{{hc|$ fscrypt status /home/newhome|2= |
{{hc|$ fscrypt status /home/newhome|2= |
||
189行目: | 188行目: | ||
}} |
}} |
||
+ | {{ic|Unlocked: No}} と表示される場合、PAM の設定に問題があるか、あるいは適切なタイプのプロテクターを選択していなかったことになります。 |
||
− | If it says {{ic|Unlocked: No}} instead, then something is wrong with your PAM configuration, or you did not choose the correct type of protector. |
||
+ | そうでない場合、ホームディレクトリを置き換えてください: |
||
− | Otherwise, replace the home directory: |
||
# mv /home/''user'' /home/oldhome |
# mv /home/''user'' /home/oldhome |
||
197行目: | 196行目: | ||
# reboot |
# reboot |
||
+ | 問題なく動いたら、古いホームディレクトリを削除できます: |
||
− | If everything is working as expected, you can delete the old home directory: |
||
# find /home/oldhome -type f -print0 | xargs -0 shred -n1 --remove=unlink |
# find /home/oldhome -type f -print0 | xargs -0 shred -n1 --remove=unlink |
||
# rm -rf /home/oldhome |
# rm -rf /home/oldhome |
||
− | {{Tip| |
+ | {{Tip|[[shred]] の実行は任意ですが、強く推奨します。}} |
== トラブルシューティング == |
== トラブルシューティング == |
||
− | + | 基本的な問題に対する解決方法は https://github.com/google/fscrypt/blob/master/README.md#troubleshooting や [https://github.com/google/fscrypt/issues open issues on Github] を見てください。 |
|
== 参照 == |
== 参照 == |
2019年12月19日 (木) 22:01時点における版
ext4, F2FS, UBIFS ファイルシステムは fscrypt (旧名 "ext4 encryption") と呼ばれる共通 API によるファイル暗号化にネイティブで対応しています。fscrypt ではディレクトリ単位で暗号化を適用できます。ディレクトリごとに別々の暗号鍵を使用することが可能です。ディレクトリを暗号化するとファイルの中身、ファイル名、シンボリックリンク全てが暗号化されます。サブディレクトリも全て暗号化されます。ファイル名以外のメタデータ、タイムスタンプや容量、ファイルの数、拡張属性などは暗号化されません。
fscrypt はカーネルの機能を使うための同名のユーザースペースツールの名前でもあります。この記事では fscrypt ツール を使ってホームディレクトリなどを暗号化する方法を説明します。
目次
他のディスク暗号化
ファイルシステム全体をひとつのパスワードで保護したい場合、dm-crypt でブロックデバイス暗号化するほうが良いでしょう。その場合、ファイルシステムのメタデータも全て暗号化されます。特定のディレクトリだけを暗号化したい場合や、それぞれのディレクトリのロックを別個に解除したい場合 (ユーザーごとにホームディレクトリを暗号化するなど) は fscrypt が相応しいと思われます。
eCryptfs とは異なり、fscrypt はスタックファイルシステムではありません。ファイルシステムによってネイティブでサポートされています。そのため fscrypt はメモリの使用量が低くなっています。また、fscrypt は最新の暗号技術を使用し、setuid バイナリを必要としません。さらに、eCryptfs は開発が止まっているため、主要なユーザーは dm-crypt (Ubuntu) や fscrypt (Android と Chrome OS) に移っています。
他の暗号化手段に関する詳細についてはディスク暗号化を参照してください。
準備
カーネル
公式サポートされているカーネルでは ext4, F2FS, UBIFS で fscrypt に対応しています。
カスタムカーネルのバージョン 5.1 以上を使っている場合、CONFIG_FS_ENCRYPTION=y
を設定してください。古いカーネルの場合は ドキュメント を見てください。
ファイルシステム
ext4
ext4 の場合、暗号化したいファイルシステムについて encrypt
フラグを有効にする必要があります。そのためにはまず、ファイルシステムがページサイズのブロックを使っていることを確認してください:
# tune2fs -l /dev/device | grep 'Block size'
Block size: 4096
# getconf PAGE_SIZE
4096
上記の値が異なっている場合、ファイルシステムを暗号化することはできません。
ファイルシステムの encrypt
機能を有効化するには、以下のコマンドを実行します:
# tune2fs -O encrypt /dev/device
F2FS
F2FS の場合、fsck.f2fs -O encrypt
または mkfs.f2fs -O encrypt
を使ってください。
ユーザースペースツール
fscrypt-gitAUR をインストールしてください。または、以前インストールしていた場合は最新版にアップグレードしてください。それから以下のコマンドを実行:
# fscrypt setup
上記のコマンドで /etc/fscrypt.conf
ファイルと /.fscrypt
ディレクトリが作成されます。
そして、暗号化したいファイルシステムがルートファイルシステムではない場合、以下のコマンドを実行してください:
# fscrypt setup mountpoint
mountpoint
はファイルシステムがマウントされているディレクトリに置き換えてください (例: /home
)。
上記のコマンドで fscrypt のポリシーとプロテクターを保存するための mountpoint/.fscrypt
ディレクトリが作成されます。
ディレクトリの自動アンロック
ログイン用のパスフレーズで暗号化ディレクトリを保護して、ログイン時に自動的にロックを解除したい場合、PAM の設定を編集して pam_fscrypt
を有効化してください:
/etc/pam.d/system-login
の "auth" セクションに以下の行を追加:
auth optional pam_fscrypt.so
また、/etc/pam.d/system-login
の "session" セクションに以下の行を追加:
session optional pam_fscrypt.so drop_caches lock_policies
最後に、/etc/pam.d/passwd
に以下の行を追加:
password optional pam_fscrypt.so
ディレクトリの暗号化
空のディレクトリを暗号化したい場合、以下のコマンドを実行:
$ fscrypt encrypt dir
プロンプトに従って「プロテクター」を作成あるいは選択してください。プロテクターはディレクトリの暗号鍵を保護する秘密鍵です。プロテクターの種類:
- "custom_passphrase" - 名前の通り、あなたが設定するパスフレーズです。
- "pam_passphrase" - 特定のユーザーのログインパスフレーズです。このタイプのプロテクターを使用するディレクトリはユーザーのログイン時に自動的に
pam_fscrypt
によって解錠されます (有効化されている場合)。
どちらの場合でも、パスフレーズは後から変更が可能で、他の方法でディレクトリを再保護することもできます。
カスタムパスフレーズの例:
$ fscrypt encrypt private/
Should we create a new protector? [y/N] y Your data can be protected with one of the following sources: 1 - Your login passphrase (pam_passphrase) 2 - A custom passphrase (custom_passphrase) 3 - A raw 256-bit key (raw_key) Enter the source number for the new protector [2 - custom_passphrase]: 2 Enter a name for the new protector: Super Secret Enter custom passphrase for protector "Super Secret": Confirm passphrase: "private/" is now encrypted, unlocked, and ready for use.
PAM パスフレーズの例:
$ fscrypt encrypt private/
Should we create a new protector? [y/N] y Your data can be protected with one of the following sources: 1 - Your login passphrase (pam_passphrase) 2 - A custom passphrase (custom_passphrase) 3 - A raw 256-bit key (raw_key) Enter the source number for the new protector [2 - custom_passphrase]: 1 Enter login passphrase for testuser: "private/" is now encrypted, unlocked, and ready for use.
ディレクトリの手動アンロック
手動で暗号化ディレクトリを解錠するには、以下のコマンドを実行:
$ fscrypt unlock dir
fscrypt
はパスフレーズの入力を要求します。
ホームディレクトリの暗号化
ユーザーのホームディレクトリを暗号化するには、最初に pam_fscrypt
の有効化などの準備を行ってください。
それから、新しい暗号化ディレクトリを作成:
# mkdir /home/newhome # chown user:user /home/newhome # fscrypt encrypt /home/newhome --user=user
ユーザーのログインパスフレーズを使ってディレクトリを保護するオプションを選択してください。
それからユーザーのホームディレクトリの中身を暗号化ディレクトリにコピーしてください:
# cp -a -T /home/user /home/newhome
cp
を使用した場合、実用前にログインでディレクトリが自動的に解除されるか確認できます。一番簡単な方法は再起動してそのユーザーでログインすることです。その後、以下のコマンドを実行:
$ fscrypt status /home/newhome
"/home/newhome" is encrypted with fscrypt. Policy: d80f252996aae181 Options: padding:32 contents:AES_256_XTS filenames:AES_256_CTS Unlocked: Yes Protected with 1 protector: PROTECTOR LINKED DESCRIPTION 5952c84ebaf0f98d No login protector for testuser
Unlocked: No
と表示される場合、PAM の設定に問題があるか、あるいは適切なタイプのプロテクターを選択していなかったことになります。
そうでない場合、ホームディレクトリを置き換えてください:
# mv /home/user /home/oldhome # mv /home/newhome /home/user # reboot
問題なく動いたら、古いホームディレクトリを削除できます:
# find /home/oldhome -type f -print0 | xargs -0 shred -n1 --remove=unlink # rm -rf /home/oldhome
トラブルシューティング
基本的な問題に対する解決方法は https://github.com/google/fscrypt/blob/master/README.md#troubleshooting や open issues on Github を見てください。