讯雷在线资源影视合作伙伴
 
站内留言 会员登陆 会员注册 最新动态>>本站由于版面真在大面积改动中,对信息资源,影视资源,资源下载有很大的影响,给您带来的不便请谅解!
您的位置海淀信息港 > 文章中心 > 技术联盟 > 网站技术 > 文章内容

让加密技术为Xen保驾护航

2008-6-21 17:45:53  来源:本站整理  作者:佚名 【 查看评论

【51CTO.com独家稿件】虚拟化正在以惊人的速度迅速融入IT基础设施,他给我们带来众多优势的同时,也在安全方面提出了许多新的挑战。目前专门针对虚拟化的安全技术尚待成熟,而本文的目的就是向读者介绍如何利用加密这种成熟的技术来提高Xen的安全性。

一、Xen背景知识

为了帮助计算机更加合理地分配资源,Xen会把一个物理的计算机虚拟成若干个独立的逻辑计算机,使用户可以在这些看起来相互独立的虚拟计算机上运行不同的操作系统和应用程序,这时,我们将这些独立的虚拟计算机称为分区(domain),将运行在虚拟计算机上的操作系统称为客户操作系统(guest OS),将把一个物理的计算机虚拟成若干个独立的逻辑计算机的软件称为虚拟机监控器(VMM)。

很明显,Xen这里所担任的角色正是管理虚拟机的软件层:虚拟机监控器。另外,Xen在其上运行的操作系统称为虚拟平台。

因此,我们既可以对存放虚拟平台(即宿主机)的根文件系统的磁盘分区进行加密,也可以在虚拟机中对分区所使用的文件系统进行加密。加密能有效地防止信息泄露,即使硬盘被偷走,只要加密算法足够强壮,对于没有密钥的人来说,其中的文件和数据不过是一堆乱码罢了,没有任何的实际意义。

在本文中,我们将使用两种基于Device mapper的加密方案对文件系统进行加密,所以我们先来介绍一下Device mapper。

二、关于Device mapper

Device mapper 是 Linux 2.6 内核中提供的一种从逻辑设备到物理设备的映射框架机制,整个 device mapper 机制由两部分组成:内核空间的 device mapper 驱动、用户空间的device mapper 库以及提供的 dmsetup 工具。见下图:

图1  Device mapper体系结构示意图

在内核中,可以为device mapper添加许多模块化插件,通常称它们为 target driver 。利用这些插件,我们可以实现对 IO 请求的过滤或者重新定向之类的工作,当前已经实现的 target driver 插件包括软 raid、软加密、快照等,图中 linear、mirror等插件就是这些 target driver。Device mapper 用户空间部分主要负责逻辑设备和哪些物理设备建立映射,怎么建立这些映射关系等等配置工作,而 IO 请求的具体过滤和重定向工作由内核中相关代码完成。

对于Device mapper,还有三个重要的对象概念需要说明,它们是mapped device、映射表和target device。Mapped device 是一个逻辑抽象,它是Device mapper向外提供的逻辑设备。映射表用以描述 Mapped device和target device 之间的对应关系。

Target device 表示的是 mapped device 所映射的物理空间段,对 mapped device 所表示的逻辑设备来说,就是该逻辑设备映射到的一个物理设备。Mapped device通过映射表描述的映射关系和 target device 建立映射。Device mapper 中这三个对象和 target driver 插件的关系如下图所示:

图2  Device mapper体系结构示意图

上图说明,对于逻辑设备Mapped device 6的 IO 请求最终被重定向到物理设备Target device a、Target device b和Target device c上。当 IO 请求流经 target driver 插件时,我们可以对它们进行某些处理,比如进行加密等。需要注意的是,这些处理是在内核中进行的,所以对于顶层的使用逻辑设备Mapped device 6的应用程序来说,这些处理是透明的。

三、使用Dm-crypt进行硬盘加密

本文所用的Dm-crypt这个程序包,正是通过Device mapper机制实现了块设备的透明式的加密。现在我们开始详细介绍如何使用dm-crypt程序包对文件系统实施基于Device mapper的加密。需要注意的是,Dm-crypt用Linux 2.6系列内核提供的cryptoAPI进行加密,所以对低于Linux 2.6内核的发行版本是不支持的。

在进行加密之前,必须先为内核提供相应的模块和选项,并建立用于存放虚拟机和客户操作系统的文件。具体步骤,如下所示:

⒈ 在内核配置画面中,选择“Device Drivers ”项,如下图所示:

图3  配置设备驱动

⒉ 在“Device Drivers”画面中,选择“the Multi-device support (RAID and LVM )”项,如下图所示:

图5 选择Device mapper支持和target加密

⒋ 上面对设备驱动模块进行了相应的配置。下面配置加密模块。在内核配置对话框中选择“Cryptographic options”,如图所示:

图6 配置加密选项

⒌ 在加密选项画面中,选择dm-crypt所用的加密算法,比如我们想使用AES算法的话,在此选择“AES cipher algorithms ”选项即可,如图

图7 选择加密算法

⒍ 保存对配置所做的修改,然后编译并安装内核,具体命令如下所示:

make linux-2.6-xen0-build
make linux-2.6-xen0-install

⒎ 为使改变生效,重新引导系统。

⒏ 现在验证一下是否已经支持AES,具体命令如下所示:

# cat /proc/crypto

图8 验证AES

从上图可以看到,内核已经支持AES算法了。

⒐ 安装dm-crypt所需的用户空间的工具软件dmsetup,命令如下所示:

# apt-get install cryptsetup dmsetup

⒑ 利用dmsetup ,我们能显示当前可用的前面称为 target driver 的模块化插件,具体如下所示:

# dmsetup targets

图9 显示所支持的插件模块

呵呵,支持的模块还真不少,如镜像、原始快照、加密等。

⒒ 我们将使用回送文件来存放加密文件系统。创建一个文件,用它存放将要安装的Ubuntu的根文件系统,具体命令如下所示:

# dd if=/dev/urandom of=/home/pchaganti/xen-images/ ubuntu_feisty_domU.img bs=1G count=6

⒓ 将上面建立的回送文件设置为环路设备,具体命令如下所示:

# losetup –f /home/pchaganti/xen-images/ubuntu_feisty_domU.img

⒔ 利用环路设备创建一个逻辑卷。这要求你输入口令。 这里需要注意,每次安装这个加密的文件时,都要用到该口令。为此,键入下列命令:

# cryptsetup -y create encrypted_feisty /dev/loop0

[1] [2] [3]  下一页

站点推荐
  • 翟志刚在太空中挥动...
  • 48名少女拍裸照时被...
  • 液态奶促销“...
  • 北京艺人涉毒裹挟少...
  • 一13岁少女遭八男子...
  • 16岁少女与继父产子...
  • 网民发帖骂人,网站...
  • 英国3岁男孩拨打99...
相关文章列表
(评论内容只代表网友观点,与本站立场无关!)[ 全部评论 ]

网友评论:

    用户名:

    评   分:100分 85分 70分 55分 40分 25分 10分 0分

    

                 (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

关于本站 - 网站导航 - 广告服务 - 网站地图 - 下载声明 - 友情链接 - 免责申明