您当前的位置是:  首页 > 新闻 > 国内 >
 首页 > 新闻 > 国内 >

vSphere 6.5 新功能(3)-虚拟机加密 

2016-11-16 15:02:30   作者:   来源:CTI论坛   评论:0  点击:


  面对越来越猖獗的黑客攻击,企业数据安全已经成为 CIO 们日程表中头等重要的大事。数据安全是一个系统性的工程,从用户终端到后台数据中心有着几十个环节,防火墙、身份认证、应用数据加密每一种技术都只能解决某些环节的安全问题,只要有一个环节没有做好安全防护,还是会留下安全隐患。
  就像电影《碟中谍》中汤姆·克鲁斯潜入中情局兰利总部复制情报一样,如果有人潜入企业数据中心把虚拟机文件拷走怎么办?别担心,vSphere 6.5 推出了虚拟机加密功能,来满足数据中心不断提高的安全需求。
\
  虚机加密工作原理
  vSphere 采用对称加密算法 XTS-AES-256 来对虚机进行加密,对虚机文件和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密数据。高级加密标准 AES (Advanced Encryption Standard) 是美国联邦政府采用的一种区块加密标准。XTS-AES 算法是 2008 年发布的,是目前数据存储领域广泛使用的一种加密算法。AES 加密密钥长度可以是128比特、192比特、256比特中的任意一个,密钥长度越长越难破解,XTS-AES-256 采用的是256比特长度密钥。
  虚机加密是通过 ESXi 内核完成的,为了优化性能,ESXi 会调用 CPU 的 AES-NI (Advanced Encryption Standard - New Instruction) 指令集,通过硬件来加速加密算法,Intel 的 CPU 从 Westmere 开始就全面支持 ASE-NI 指令集。
  对一个虚机进行加密是通过修改存储策略来完成的,虚机本身不需要做任何修改和配置。管理员可以很方便地把一个现有的虚机进行加密,或者是把已经加密的虚机改成不加密的。
\
  指定虚机的存储策略
  密钥管理
  对称加密算法 XTS-AES-256 需要两个密钥:
  • 数据密钥 DEK (Data Encryption Key):用于加密虚机数据文件,每个虚机都有一个唯一的数据密钥,存放在虚机数据文件中,为了不让别人看到这个密钥,所以我们需要另一个密钥 KEK 来对数据密钥进行加密。
  • 加密密钥的密钥 KEK (Key Encryption Key):用于对上面的数据密钥 DEK 进行加密,这个密钥是从第三方的密钥管理服务器 KMS (Key Management Server) 上获得的。因为 KMS 也支持多租户架构,我们通常把这个密钥称为租户密钥(Tenant Key)。注意:租户密钥只保存在 KMS 服务器上。
  vSphere 在虚拟机加密和解密过程中对于密钥的管理流程是这样的:
  未加密虚机(必须是处于关机状态)
  • 在对应的服务器上随机生成一个数据密钥 DEK;
  • 通过 vCenter 从 KMS 上获得租户密钥 KEK;
  • 使用租户密钥 KEK 对数据密钥 DEK 进行加密,并写入虚机的 vmx 文件;
  • 使用数据密钥 DEK 来加密整个虚机数据文件。
  已经加密的虚机
  • 从虚机的 vmx 文件中获得 KEK ID 和加密的数据密钥
  • 通过 vCenter 从第三方密钥服务器上根据 KEK ID 获得租户密钥 KEK
  • 利用 KEK 解密获得数据密钥 DEK
  • 利用数据密钥 DEK 来解密虚机数据文件。
\
  下面就是一个存放在 vmx 文件中的数据密钥例子,其中 encryption.keySafe 那一行是 KEY ID,下一行 encryption.data 是被加密的数据密钥的数据部分。