トップ «前の日記(2017-01-28(Sat)) 最新 次の日記(2017-02-03(Fri))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2017-02-02(Thu) 凍ってなかったのでさほど寒冷でもないのかも

ファイルベースの暗号化

仮想マシンのstretch で、lvmで試す。
基本的に Archのドキュメント通りだけど。
まずファイルシステムとディレクトリの用意。

$ sudo lvcreate -L 512M vg_1 -n lv_512
  Logical volume "lv_512" created.
 
$ sudo mkfs -t ext4 /dev/vg_1/lv_512
mke2fs 1.43.3 (04-Sep-2016)
Discarding device blocks: done         
Creating filesystem with 131072 4k blocks and 32768 inodes
Filesystem UUID: 6dd482c5-4fdb-4009-8523-2720e72bd92d
Superblock backups stored on blocks:
        32768, 98304
 
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
 
$ sudo mount /dev/vg_1/lv_512 /media/temp/
 
$ sudo mkdir /media/temp/encrypted

デバイスの情報確認と、暗号化対応フラグを設定。

$ sudo tune2fs -l /dev/vg_1/lv_512 | grep "Block size"
Block size:               4096
 
$ sudo getconf PAGE_SIZE
4096
 
$ sudo tune2fs -l /dev/vg_1/lv_512 >before.txt
 
$ sudo tune2fs -O encrypt /dev/vg_1/lv_512
tune2fs 1.43.3 (04-Sep-2016)
 
$ sudo tune2fs -l /dev/vg_1/lv_512 >after.txt
 
$ diff before.txt after.txt
7c7
< Filesystem features:      has_journal ext_attr \
resize_inode dir_index filetype needs_recovery extent \
64bit flex_bg sparse_super large_file \
huge_file dir_nlink extra_isize metadata_csum
---
> Filesystem features:      has_journal ext_attr \
resize_inode dir_index filetype needs_recovery extent \
64bit flex_bg encrypt sparse_super large_file \
huge_file dir_nlink extra_isize metadata_csum
30c30
< Last write time:          Thu Feb  2 16:54:28 2017
---
> Last write time:          Thu Feb  2 16:56:10 2017
47c47
< Checksum:                 0xa7ec2b8e
---
> Checksum:                 0xde4bcda8

で、暗号化ポリシー設定。

/media/temp/encrypted$ sudo e4crypt add_key
Enter passphrase (echo disabled):(パスワード入力)
Added key with descriptor [93f036a7e7758ac2] 
 
$ sudo e4crypt set_policy 93f036a7e7758ac2 encrypted
Key with descriptor [93f036a7e7758ac2] applied to encrypted.

適当なファイルを作ってみて確認。

/media/temp/encrypted$ cat i_cat.txt
吾輩は猫である。名前はまだ無い。
 どこで生れたかとんと見当がつかぬ。
何でも薄暗いじめじめした所でニャー...
 
/media/temp/encrypted$ sudo cp i_cat.txt ../

この段階ではアクセス権のあるユーザはすべて見える。
が、再起動してマウントしただけ、では、

$ ls -l i_cat.txt 
-rw-r--r-- 1 root root 159  2月  2 17:06 i_cat.txt
 
$ ls -l encrypted/
合計 4
-rw-r--r-- 1 root root 159  2月  2 17:06 Hc502tbZw4TI5BrXCqAFaB
 
$ sudo cat encrypted/Hc502tbZw4TI5BrXCqAFaB 
cat: encrypted/Hc502tbZw4TI5BrXCqAFaB: 要求されたキーが利用できません

と、暗号化した部分はスーパーユーザでもアクセスできないし、 ファイル名も分からない。
ファイルサイズや作成時刻などは隠せないようだけど。
パスワードを再度入力してやると、

$ sudo e4crypt add_key encrypted
Enter passphrase (echo disabled): 
Added key with descriptor [93f036a7e7758ac2]
Key with descriptor [93f036a7e7758ac2] applied to encrypted.
$ ls -l encrypted/
合計 4
-rw-r--r-- 1 root root 159  2月  2 17:06 i_cat.txt
 
$ cat encrypted/i_cat.txt 
吾輩は猫である。名前はまだ無い。
 どこで生れたかとんと見当がつかぬ。
何でも薄暗いじめじめした所でニャー...

リムーバブルメディアに役立ちそうだ。
ext4にするだけでも、若干の効果はありそうだけど。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。