/proc/crypto
を見ると、Linuxカーネルがどのような暗号化アルゴリズム(cryptographic cipher)を使用しているかがわかる、という話
/proc/crypto の例
CentOS-6.0 で /proc/crypto
を見てみた。
# cat /proc/crypto name : xts(aes) driver : xts(aes-asm) module : kernel priority : 200 refcnt : 1 selftest : passed type : givcipher async : no blocksize : 16 min keysize : 32 max keysize : 64 ivsize : 16 geniv : eseqiv (略)
name
だけ grep してみた。
# grep '^name' /proc/crypto name : xts(aes) name : xts(aes) name : sha256 name : sha224 name : cbc(aes) name : cbc(aes) name : aes name : aes name : stdrng name : crc32c name : sha1 name : md5
暗号化モジュールをロードしてみる
カーネルが使用できる暗号を追加したい場合は、該当するモジュールをロードしてやればいい(modprobe
等のコマンドを使う)。
例:blowfish暗号を追加
# modprobe blowfish
lsmod, modinfo
で、ロードされたモジュールを確認。
# lsmod |grep blowfish blowfish 7850 0 # modinfo blowfish filename: /lib/modules/2.6.32-71.29.1.el6.x86_64/kernel/crypto/blowfish.ko description: Blowfish Cipher Algorithm license: GPL srcversion: 3D0BFB5C93D66CBA1C92FA2 depends: vermagic: 2.6.32-71.29.1.el6.x86_64 SMP mod_unload modversions
/proc/crypto
も確認。
cat /proc/crypto name : blowfish driver : blowfish-generic module : blowfish priority : 0 refcnt : 1 selftest : passed type : cipher blocksize : 8 min keysize : 4 max keysize : 56 (略)
dm-crypt での例
dm-crypt は、ディスク暗号化のための仕組み(a device-mapper crypto target)。dm-crypt を使用すると、/proc/crypto
の内容が変化する。つまり、 dm-crypt が Linuxカーネルの暗号化モジュールを利用している、ということが分かる。
テキトーにdm-cryptを使って暗号化してみる
/dev/sdc1
を blowfish の CTRモード で暗号化して mapping01 にマップ。
# cryptsetup create -y -c blowfish-ctr-plain mapping01 /dev/sdc1
/proc/crypto
を見てみる。
# cat /proc/crypto name : ctr(blowfish) driver : ctr(blowfish-generic) module : kernel priority : 0 refcnt : 2 selftest : passed type : givcipher async : yes blocksize : 1 min keysize : 4 max keysize : 56 ivsize : 8 geniv : chainiv name : ctr(blowfish) driver : ctr(blowfish-generic) module : ctr priority : 0 refcnt : 2 selftest : passed type : blkcipher blocksize : 1 min keysize : 4 max keysize : 56 ivsize : 8 geniv : chainiv name : blowfish driver : blowfish-generic module : blowfish priority : 0 refcnt : 2 selftest : passed type : cipher blocksize : 8 min keysize : 4 max keysize : 56 (略)
…というように、CTR とか blowfish のモジュールがロードされたのが分かる。
なお、 dm-crypt に関しては、なるべくデフォルトの暗号化アルゴリズムとモードを使ったほうがよいようだ。というのは、2011-06-28頃のメーリングリストでそのように主張されていたから(AES + CBCモード + ESSIV を使いましょう、とのこと)。
0 件のコメント:
コメントを投稿