歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 關於開發 Linux系統下的磁盤加密方法

關於開發 Linux系統下的磁盤加密方法

日期:2017/2/28 17:46:10   编辑:Linux教程

隨著智能手機的計算能力和存儲能力的提高,手機中將會存放越來越多的私有數據,這些數據的洩密可能造成嚴重後果。手機信息安全一直是我們的重點之一,對於一些重要的功能我們要求鑒權後才能使用,但這只能擋住初級的黑客,只能防君子不能防小人,所以我們希望把重要的數據進行加密後再保存。為此,今天花了一點時間去了解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

  (以及加密模塊)

  創建loop設備

  dd if=/dev/zero of=~/cryptoloop.image bs=1M count=10

  losetup -e aes-256 /dev/loop0 ~/cryptoloop.image

  (提示輸入密碼)

  創建文件系統並加載

  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的實現比較簡單,可以看看drivers/block/cryptoloop.c中的代碼。loop設備在讀寫之前會調用lo_do_transfer函數,該函數再調用所安裝的transfer插件。cryptoloop就是一種transfer的實現。至於使用哪種transfer及transfer的參數(如密碼),這可以通過LOOP_SET_STATUS64的ioctrl系統調用來完成(mount命令就是這樣實現的)。

  cryptoloop的缺點是只能針對loop設備,而且對日志型文件系統無效。

Copyright © Linux教程網 All Rights Reserved