隨著智能手機(jī)的計算能力和存儲能力的提高,手機(jī)中將會存放越來越多的私有數(shù)據(jù),這些數(shù)據(jù)的泄密可能造成嚴(yán)重后果。手機(jī)信息安全一直是我們的重點(diǎn)之一,對于一些重要的功能我們要求鑒權(quán)后才能使用,但這只能擋住初級的黑客,只能防君子不能防小人,所以我們希望把重要的數(shù)據(jù)進(jìn)行加密后再保存。為此,今天花了一點(diǎn)時間去了解Linux 磁盤加密的方法。
方法一:cryptoloop
下載并編譯util-linux
http://www.paranoiacs.org/~sluskyb/hacks/util-linux/losetup-combined.patch
http://ftp.cwi.nl/aeb/util-linux/util-linux-2.12.tar.gz
http://hydra.azilian.net/util-linux-2.12-kernel-2.6.patch
tar zxvf util-linux-2.12.tar.gz
cd util-linux-2.12
patch -p1 Block Devices>Loopback device support
BLK_DEV_CRYPTOLOOP
加載模塊
modprobe cryptoloop
(以及加密模塊)
創(chuàng)建loop設(shè)備
dd if=/dev/zero of=~/cryptoloop.image bs=1M count=10
losetup -e aes-256 /dev/loop0 ~/cryptoloop.image
(提示輸入密碼)
創(chuàng)建文件系統(tǒng)并加載
mkfs.ext3 /dev/loop0
mkdir /mnt/crypto
mount -t ext3 ~/cryptoloop.image /mnt/crypto/ -oencryption=aes-256
(提示輸入密碼)
卸載
umount /mnt/crypto
losetup -d /dev/loop0
重新加載
losetup -e aes-256 /dev/loop0 ~/cryptoloop.image
mount -t ext3 ~/cryptoloop.image /mnt/crypto/ -oencryption=aes-256
cryptoloop的實(shí)現(xiàn)比較簡單,可以看看drivers/block/cryptoloop.c中的代碼。loop設(shè)備在讀寫之前會調(diào)用lo_do_transfer函數(shù),該函數(shù)再調(diào)用所安裝的transfer插件。cryptoloop就是一種transfer的實(shí)現(xiàn)。至于使用哪種transfer及transfer的參數(shù)(如密碼),這可以通過LOOP_SET_STATUS64的ioctrl系統(tǒng)調(diào)用來完成(mount命令就是這樣實(shí)現(xiàn)的)。
cryptoloop的缺點(diǎn)是只能針對loop設(shè)備,而且對日志型文件系統(tǒng)無效。
新聞熱點(diǎn)
疑難解答
圖片精選