当前位置: 代码网 > 服务器>网络安全>加密解密 > 教你加密Root文件系统(图)

教你加密Root文件系统(图)

2008年10月08日 加密解密 我要评论
教你加密Root文件系统(图) 当你不能依靠物理安全来保证你文件的安全时,是时候采取额外的步骤加密文件系统了,虽然本文涉及到的是基于PowerPC的系统,但原则上来说也适用于其他架构的系统。   在另一篇文章... 08-10-08
有加密的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攻击者如何读取加密文件系统的数据
  通过使用本文讨论的技术和一点创新的想法,确保你磁盘上的数据对常见的偷窃行为更具抵抗性是可能的,跟踪攻击种类的发展比了解防御更重要,尽管还有其他的技术用于保护基于网络的或其他类型的攻击,但本文讨论的技术对整个系统安全的目标具有重要意义。
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com