科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道加密你的root文件系统(4)

加密你的root文件系统(4)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

当你不能依靠物理安全来保证你文件的安全时,是时候采取额外的步骤加密文件系统了,虽然本文涉及到的是基于PowerPC的系统,但原则上来说也适用于其他架构的系统。

来源:论坛整理 2008年9月17日

关键字: 安全防范 系统安全 加密

  • 评论
  • 分享微博
  • 分享邮件
就此,initrd必须被安装到闪存盘上,Fedora提供了一个叫做mkinitrd的工具来创建initrd,然而,在写本文的时候,mkinitrd还不支持加载一个加密的root文件系统,补丁在https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=124789,一旦应用了补丁,mkinitrd就可以读取/etc/crypttab并创建一个恰当的initrd了:

1.  mkinitrd --authtype=paranoid -f /media/usbdisk/initrd.gz
2.  umount /media/usbstick
文件/mnt/encroot/etc/fstab应该被更新反映出变化:
/dev/mapper/root /      ext3    defaults         1 1

有加密的swap或完全没有swap空间是一个加密文件系统的先决条件。原因可以在文章“实现加密的home目录”和BugTraq邮件列表中的一篇“Mac OS X在磁盘上存储登陆/密钥链/密码”中找到。当给启动脚本软件包应用了https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=127378的补丁后,Fedora允许用户使用一个随机生成的会话密钥加密他们的swap分区,因为swap空间在重新启动时通常不需要一致,当系统关闭时会话密钥也不保存,要启用加密的swap,完成下面的步骤:

1)添加下面的行到/mnt/encroot/etc/fstab,替换任何先前的swap记录:
/dev/mapper/swap swap   swap    defaults         0 0
2)添加下面的行到/mnt/encroot/etc/crypttab告诉系统如何完成加密:
swap    /dev/hda3       /dev/urandom    swap

至此我们应该可以重新启动系统并使用我们的加密文件系统,再说一次,我们需要暂停启动选项命令进入Open Firmware提示符。

正如上面说到的,闪存盘第二个分区路径是/pci@f2000000/usb@1b,1/disk@1:2。了解了这一点,我们可以建立路径/pci@f2000000/usb@1b,1/disk@1:2,\ofboot.b。在分区号和文件系统路径之间的分隔符是‘,’,\ofboot.b是文件系统路径,\与Unix的/类似。

> dir /pci@f2000000/usb@1b,1/disk@1:2,\
Untitled            GMT                   File/Dir
   Size/      date       time  TYPE       Name
   bytes   9/ 3/ 4   21:44:41  ???? ????  initrd.gz
 2212815   8/28/ 4   12:24:21  tbxi UNIX  ofboot.b
    3060   9/ 3/ 4    2:21:20  ???? ????  vmlinux
  141868   9/28/ 4   12:24:22  boot UNIX  yaboot
     914   9/28/ 4   12:24:22  conf UNIX  yaboot.conf

这就确定了Open Firmware可以读取启动系统需要的文件,设置boot-device变量的值为/pci@f2000000/usb@1b,1/disk@1:2,\ofboot.b使得系统可以从闪存盘启动:
setenv boot-device /pci@f2000000/usb@1b,1/disk@1:2,\ofboot.b

一旦系统从加密root文件系统成功启动,必须清除掉/dev/hda5上的所有数据,可以使用随机排列root文件系统分区同样的方法来实现:
dd if=/dev/urandom of=/dev/hda5

你可能想对hda5重写几次,要想了解处理干净一个磁盘,请查看美国安全部门编写的“National Industrial Security Program Operating Manual”第八章。

根据一个安全处理原则,/dev/hda5可能被挂载为/home,/home文件系统也应该被加密,幸运的是,这是一个简单的过程,因为系统不需要/home启动,象创建root文件系统一样创建/home文件系统
1)确认aes,dm-mod,dm-crypt模块已经载入内核
2)卸载/dev/hda5
#umount /dev/hda5
3)创建一个随机256位加密密钥,存储在/etc/home-key
#dd if=/dev/urandom of=/etc/home-key bs=1c count=32
4)创建一个dm-crypt设备,用刚刚生成的密钥加密
#cryptsetup -d /etc/home-key create home /dev/hda5
5)在/dev/mapper/home上创建一个ext3文件系统
#mkfs.ext3 /dev/mapper/home
6)挂载新文件系统
#mount /dev/mapper/home /home
7)在/etc/crypttab中创建一个条目,让各种实用程序都清楚文件系统是如何配置的
root    /dev/hda5       /etc/home-key   cipher=aes
8)最后,为/home更新/etc/fstab条目
/dev/mapper/home /home  ext3    defaults         1 2

至此,可以添加非root系统账号了,设置加密root文件系统的过程就结束了。

加密你所有数据可能很危险,如果加密密钥丢失,你的数据就丢失了,就因为这个原因,备份你的包含有你的密钥的闪存盘很重要,同样,备份加密数据对应的明文也很重要,如果你保存有一张可启动的紧急救援磁盘,重新考虑应该放哪些系统组件在上面或许很有意义,你的root和home文件系统、密钥、parted、hfsutils、加密技术有关的内核模块以及cryptsetup脚本的拷贝都应该放进去。

这个技术在保护你的数据方面究竟有什么实际好处?在《Secrets and Lies》这本书中,作者Bruce Schneier提出了一个有用的手段来评估这个技术,一个攻击树可以用于模型危险,图4呈现了一个攻击我们加密文件系统的树型图,值得注意的是这颗攻击树不是完整的,可能随时间推移会发生改变。

4攻击者如何读取加密文件系统的数据

通过使用本文讨论的技术和一点创新的想法,确保你磁盘上的数据对常见的偷窃行为更具抵抗性是可能的,跟踪攻击种类的发展比了解防御更重要,尽管还有其他的技术用于保护基于网络的或其他类型的攻击,但本文讨论的技术对整个系统安全的目标具有重要意义

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章