《NetBSD指南-14.5.1.为swap设置一个随机密码的cgd》
发表于 : 2010-03-02 22:25
你可能想在swap空间上使用一个专门的随机key cgd , 每次启动时重新生成这个key。 这样做的优点是一旦计算机重新启动, 任何敏感程序的内存内容被永远地不可恢复地页出, 因为这个解密key你永远不会知道。
在上面的例子中当我们彻底清空磁盘时用一个随机key创建了一个临时的 cgd, 使用了一个缩写 cgdconfig -s 的调用来避免产生一个特征文件.
这个 cgdconfig 特征文件 包含了一个 “随机key” key生成方法。 这更适合 配置"永久性"的随机key, 以及启动时使这些卷的自动配置更简单。
例如, 你想要将现存的 /dev/wd0b 分区转换为专用的随机key cgd1, 使用下列命令来生成 /etc/cgd/wd0b:
当你使用随机key生成方法时, 你只能使用 "none" 作为验证方式, 因为新的 cgd 的内容实际上每次都是随机的 (以前的数据解密使用一个随机key)。 同样, 这个新盘并没有一个有效的label和分区, 而且 swapctl 将抱怨配置swap设备没有标记为一个在一个disklabel上.
为了自动label这个磁盘, 准备一个适当的disklabel并将其存为一个文件, 例如 /etc/cgd/wd0b.disklabel. 请参阅 disklabel(8) 以获取更多有关怎样使用 disklabel 来建立swap分区的信息.
每次重新启动, 将这个保存的label恢复到新的 cgd上, 创建 /etc/rc.conf.d/cgd 文件,参下:
在上面的例子中当我们彻底清空磁盘时用一个随机key创建了一个临时的 cgd, 使用了一个缩写 cgdconfig -s 的调用来避免产生一个特征文件.
这个 cgdconfig 特征文件 包含了一个 “随机key” key生成方法。 这更适合 配置"永久性"的随机key, 以及启动时使这些卷的自动配置更简单。
例如, 你想要将现存的 /dev/wd0b 分区转换为专用的随机key cgd1, 使用下列命令来生成 /etc/cgd/wd0b:
代码: 全选
# cgdconfig -g -o /etc/cgd/wd0b -V none -k randomkey blowfish-cbc
为了自动label这个磁盘, 准备一个适当的disklabel并将其存为一个文件, 例如 /etc/cgd/wd0b.disklabel. 请参阅 disklabel(8) 以获取更多有关怎样使用 disklabel 来建立swap分区的信息.
每次重新启动, 将这个保存的label恢复到新的 cgd上, 创建 /etc/rc.conf.d/cgd 文件,参下:
同样的思路还有:如果你不想使用 mfs可以用 newfs 来为 /tmp重建一个 ffs 文件系统。swap_device="cgd1"
swap_disklabel="/etc/cgd/wd0b.disklabel"
start_postcmd="cgd_swap"
cgd_swap()
{
if [ -f $swap_disklabel ]; then
disklabel -R -r $swap_device $swap_disklabel
fi
}