/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 件のコメント:
コメントを投稿