EncFSのMLで見かけたのですが,EncFSに似た暗号化FSのCryFSというものがあるようです.
EncFSは平文のファイルと暗号化ファイルが一対一で対応づいているしタイムスタンプやパーミッションも引き継いでいるので推測されやすいという問題があります.CryFSはその辺りも隠蔽できるようです.
面白そうなので少し試してみました.
初めDebian stretchに導入しようと思ったのですが,jessieのapt-lineは用意されているのですが,これをstretchに導入しようとするとバージョンチェックで対応してないと言われ,sourceから導入しようと思ったらbii
という恐らくstretchのpkgに存在しないコマンドを要求されるので手っ取り早くUbuntu 14.04 LTSで試しました.
$ linuxlogo -L ubuntu$ linuxlogo -L ubuntu.-..-'``(|||),`\ \ `-`. 88 88/ \ '``-. ` 88 88.-. , `___: 88 88 88,888, 88 88 ,88888, 88888 88 88(:::) : ___ 88 88 88 88 88 88 88 88 88 88 88`-` ` , : 88 88 88 88 88 88 88 88 88 88 88\ / ,..-` , 88 88 88 88 88 88 88 88 88 88 88`./ / .-.` '88888' '88888' '88888' 88 88 '8888 '88888'`-..-( )`-`Linux Version 3.13.0-77-generic, Compiled #121-Ubuntu SMP Wed Jan 20 10:50:42 UTC 2016Two 800MHz AMD Athlon Processors, 7.9GB RAM, 5191.48 Bogomips Totalmicro
#screenfetchがpkgに無いな
導入
このscriptで鍵やapt-lineの設定とCryFSの導入が行われます.
$ wget -O - https://www.cryfs.org/install.sh | sudo bash
$ cryfs -hCryFS Version 0.8.5WARNING! This version is not considered stable. Please backup your data frequently!Usage: cryfs [options] rootDir mountPoint [-- [FUSE Mount Options]]Allowed options:-h [ --help ] show help message-c [ --config ] arg Configuration file-f [ --foreground ] Run CryFS in foreground.--cipher arg Cipher to use for encryption. See possible values bycalling cryfs with --show-ciphers--show-ciphers Show list of supported ciphers.--unmount-idle arg Automatically unmount after specified number of idleminutes.--extpass arg External program to use for password input--logfile arg Specify the file to write log messages to. If this isnot specified, log messages will go to stdout, orsyslog if CryFS is running in the background.
利用例
基本的な使い方はEncFSと同じ感じです.初回起動時は簡単な設定が必要.
$ mkdir encdir$ mkdir mnt$ cryfs encdir mntCryFS Version 0.8.5WARNING! This version is not considered stable. Please backup your data frequently!Use default settings?Your choice [y/n]: yGenerating secure encryption key...donePassword:Confirm Password:Creating config file...doneMounting filesystem. To unmount, call:
アンマウントはfuseなのでfusermount -uで
$ fusermount -u "/tmp/mnt"$ ls -lA encdir mntencdir:合計 40-rw-rw-r-- 1 mk mk 32816 2月 7 04:08 0C2B03AEBC6D01C0AAB861907CE361A6-rw-rw-r-- 1 mk mk 1134 2月 7 04:08 cryfs.configmnt:合計 0
cryfs.config
という設定ファイルが作成されます
$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307\b$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307001$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 3070000040 0000 0001 0000 0020 0000 0000 0000 a86f$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307001$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307o 250$ file encdir/cryfs.configencdir/cryfs.config: data$ od -xc encdir/cryfs.config|head0000000 7263 6679 2e73 6f63 666e 6769 303b 733bc r y f s . c o n f i g ; 0 ; s0000020 7263 7079 0074 0000 0008 0000 0000 0001c r y p t \0 \0 \0 \b \0 \0 \0 \0 \0 001 \00000040 0000 0001 0000 0020 0000 0000 0000 a86f\0 \0 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 o 2500000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 3070000060 eac9 f71c a592 8034 2f04 a2cb c19e 78db311 352 034 367 222 245 4 200 004 / 313 242 236 301 333 x0000100 e526 e951 1548 6c59 8a1e beaf db19 c7ff& 345 Q 351 H 025 Y l 036 212 257 276 031 333 377 307
タイムスタンプは残らないようです.これはちょっと困る.
$ cryfs encdir mnt$ cd mnt$ touch a b c d e ftouch: `a' のタイムスタンプを設定中です: サポートされていない操作ですtouch: `b' のタイムスタンプを設定中です: サポートされていない操作ですtouch: `c' のタイムスタンプを設定中です: サポートされていない操作ですtouch: `d' のタイムスタンプを設定中です: サポートされていない操作ですtouch: `e' のタイムスタンプを設定中です: サポートされていない操作ですtouch: `f' のタイムスタンプを設定中です: サポートされていない操作です$ ls -lA合計 0-rw-rw-r-- 1 mk mk 0 1月 1 1970 a-rw-rw-r-- 1 mk mk 0 1月 1 1970 b-rw-rw-r-- 1 mk mk 0 1月 1 1970 c-rw-rw-r-- 1 mk mk 0 1月 1 1970 d-rw-rw-r-- 1 mk mk 0 1月 1 1970 e-rw-rw-r-- 1 mk mk 0 1月 1 1970 f
10MBのファイルを作ってみると32kくらいで分割されたファイル群になっているようです.
$ dd if=/dev/zero of=mnt/10M.dd bs=1M count=10$ ls -lA encdir mntencdir:合計 11848-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 0015B9E50D707A660AC59BF6ABA4588B-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 00AB6551CD86FE4A5129ED330C86B7ED-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 00BBCEFD0A4150AD15842F356E184F94-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 00F8B1CCE5770E2D3DC4C47FA0583B80-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 048860D118BFD0F43A86B8F858456965-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 049D06A30EF07D80988B6D948E72250A-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 04FF722DB4ADFBD7F567966EC1244BD1-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 0599D02B12B1C9EAB554525482531D5F-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 05D56C792B76894E7194FB28A02F0FAB-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 06048941FF5F7E185BE3372400580A2C-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 077FE2E17E29826C6AB407578C5312CB〜中略〜-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 FE5879AFA516A816008C9ED4AEB847B5-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 FE6BB5A582CF60F7329645CF3FAB365B-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 FFD97AF585CD8DEE23C722076FF8CB94-rw-rw-r-- 1 mk mk 32816 2月 7 04:12 FFFA9CCA10C0F7A455DA18B109024AA7-rw-rw-r-- 1 mk mk 1134 2月 7 04:08 cryfs.configmnt:合計 10240-rw-rw-r-- 1 mk mk 10485760 1月 1 1970 10M.dd-rw-rw-r-- 1 mk mk 0 1月 1 1970 a-rw-rw-r-- 1 mk mk 0 1月 1 1970 b-rw-rw-r-- 1 mk mk 0 1月 1 1970 c-rw-rw-r-- 1 mk mk 0 1月 1 1970 d-rw-rw-r-- 1 mk mk 0 1月 1 1970 e-rw-rw-r-- 1 mk mk 0 1月 1 1970 f$ rm mnt/10M.dd
ディレクトリを掘ってもファイルとして保存されるので覗かれてもわかりません.
$ mkdir mnt/dir$ echo hoge > mnt/dir/hoge$ ls -lA encdir/合計 328-rw-rw-r-- 1 mk mk 32816 2月 7 04:11 0A332D1A5E0B5C36C9FBCEAB81E6320A-rw-rw-r-- 1 mk mk 32816 2月 7 04:38 0C2B03AEBC6D01C0AAB861907CE361A6-rw-rw-r-- 1 mk mk 32816 2月 7 04:11 40C765A5F1D681FFAEC781502836F444-rw-rw-r-- 1 mk mk 32816 2月 7 04:11 64CF16B73827485463657F2A6928346D-rw-rw-r-- 1 mk mk 32816 2月 7 04:11 78AA36DEE59FE330861A6D9B1218B16E-rw-rw-r-- 1 mk mk 32816 2月 7 04:40 A9A48DEB85E2619C2ECBF7490BF3F8C9-rw-rw-r-- 1 mk mk 32816 2月 7 04:11 DB99D4AAAAA21302B400DA1F9E370EA4-rw-rw-r-- 1 mk mk 32816 2月 7 04:40 E5FA0435A166231035B54AC0E4723D83-rw-rw-r-- 1 mk mk 32816 2月 7 04:11 F9589623B409B2142141F79614A865BF-rw-rw-r-- 1 mk mk 1134 2月 7 04:08 cryfs.config$ rm mnt/*rm: `mnt/dir' を削除できません: ディレクトリです$ ls -lA encdir合計 112-rw-rw-r-- 1 mk mk 32816 2月 7 04:41 0C2B03AEBC6D01C0AAB861907CE361A6-rw-rw-r-- 1 mk mk 32816 2月 7 04:40 A9A48DEB85E2619C2ECBF7490BF3F8C9-rw-rw-r-- 1 mk mk 32816 2月 7 04:40 E5FA0435A166231035B54AC0E4723D83-rw-rw-r-- 1 mk mk 1134 2月 7 04:08 cryfs.config
EncFSはファイル名自体にファイル名のメタデータを含むので利用できるファイル名長が短くなりますが,CryFSだとファイル中にメタデータを含むので元ファイルシステムの最大長のファイル名が利用できるようです.
$ touch mnt/012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456789012$ ls -lA encdir合計 40-rw-rw-r-- 1 mk mk 32816 2月 7 04:51 0C2B03AEBC6D01C0AAB861907CE361A6-rw-rw-r-- 1 mk mk 1134 2月 7 04:08 cryfs.config
パーミッションの変更やオーナーやグループを変更してもメタデータ内に吸収されるようです.
$ chmod 777 mnt/012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456789012$ sudo chown www-data.www-data mnt/012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456789012$ ls -lA encdir mntencdir:合計 40-rw-rw-r-- 1 mk mk 32816 2月 7 04:51 0C2B03AEBC6D01C0AAB861907CE361A6-rw-rw-r-- 1 mk mk 1134 2月 7 04:08 cryfs.configmnt:合計 0-rwxrwxrwx 1 www-data www-data 0 2月 7 04:53 012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456788901234567889012345678890123456789012
オプションを少し見てみます.
--show-ciphers
で利用できる暗号が確認できます.規定値ではaes-256-gcm
のようです.
$ fusermount -u mnt$ ls -lA mnt合計 0$ cryfs --show-ciphersCryFS Version 0.8.5WARNING! This version is not considered stable. Please backup your data frequently!aes-256-gcmaes-256-cfbaes-128-gcmaes-128-cfbtwofish-256-gcmtwofish-256-cfbtwofish-128-gcmtwofish-128-cfbserpent-256-gcmserpent-256-cfbserpent-128-gcmserpent-128-cfbcast-256-gcmcast-256-cfbmars-448-gcmmars-448-cfbmars-256-gcmmars-256-cfbmars-128-gcmmars-128-cfb
--extpass
オプションで外部のプログラムからパスワードが受け取れます.
$ cat << __EOF__ > pass#!/bin/bashecho 'passwd'__EOF__$ chmod +x pass$ ./passpasswd$ cryfs --extpass ./pass encdir mntCryFS Version 0.8.5WARNING! This version is not considered stable. Please backup your data frequently!Loading config file...doneMounting filesystem. To unmount, call:$ fusermount -u "/tmp/mnt"
--unmount-idle
で一定時間利用されていない時に自動アンマウントされます.
$ cryfs --extpass ./pass --unmount-idle 1 encdir mnt
1分後
$ ls -l mnt合計 0
今のところベータで未実装の昨日もありますし,こういう怖いメッセージも出力される状態です.
WARNING! This version is not considered stable. Please backup your data frequently!
#そういえば数年前nilfs2もmount時に似たような警告出してましたね
mount.nilfs2: WARNING! - The NILFS on-disk format may change at any time.mount.nilfs2: WARNING! - Do not place critical data on a NILFS filesystem.
今はもう何も言われない :)
[1109102.058384] NILFS version 2 loaded[1109102.077659] segctord starting. Construction interval = 5 seconds, CP frequency < 30 seconds
実装が済んで安定すればEncFSの競合として便利に使えそうな感じです.
興味のある方はCryFSのページのフォームでメールアドレスを登録しておくといいかもしれません.
Let us notify you when CryFS is stable!