Windows Server 2016数据加密

2019-06-28 03:45河南郭建伟
网络安全和信息化 2019年6期
关键词:组策略驱动器解密

■ 河南 郭建伟

编者按:对于Windows Server 2016来说,如何保护数据的安全性,是管理员必须面对的问题。实际上,在Windows Server 2016中已经内置了完善的加密功能,包括EFS和BitLocker加密机制。要想灵活的使用这些加密功能,需要对其进行深入的了解。这样才可以在在实际使用过程中,有效的解决与之相关的各种问题。

EFS加密的运作机制

对于EFS加密来说,允许系统中的所有用户加密自己的文件。和一般的加密软件不同,EFS加密使用的是AES 256位加密算法,不需要用户输入密钥,对于用户来说,加密过程是完全透明的。

一旦加密完成,只有该用户才可以打开加密文件,即使是管理员,也无权访问这些文件。

实际上,EFS是使用证书中的私钥对文件进行加密的,在默认情况下,其会生成或者申请用于加密的证书。如果没有证书架构体系的话,其会帮助用户生成自签名证书。

当然,EFS加密必须依赖NTFS文件系统,当用户将加密文件移动到别的NTFS分区时,系统会自动对其解密,然后执行移动和加密处理,该过程对于用户是透明的,文件移动完成后依然处于加密状态。在默认情况下,只有该用户或者恢复代理可以打开加密文件。

例如以域用户身份登录某台主机,选择目标文件或文件夹,在其属性窗口中的“常规”面板中点击“高级”按钮,选择“加密内容以便保护数据”项,点击确定按钮,完成加密操作。

运行“mmc”程序,在控制台中点击菜单“文件”→“添加/删除管理单元”项,在左侧选择“证书”项,点击添加按钮,选择“我的用户账户”项,将其添加进来。在左侧选择“证书”→“个人”→“证书”项,在右侧显示颁发给用户的自签名证书。

EFS就是使用该证书的私钥对文件进行加密的。对于EFSL来说,其实际上使用了FEK(即File Encryption Key),来对用户的文件进行直接加密。

而FEK自身也会被用户证书中的公钥进行加密,用户需要使用证书中的私钥对FEK进行解密,并通过FEK对文件进行解密。

可以看出,真正加密和解密文件的是FEK。对于用户的私钥来说,是使用用户密码的哈希值对其进行加密的。

对EFS加密进行管控

在实际的网络环境中,需要部署证书颁发机构服务器,为用户颁发证书,来更好的完成EFS加密操作。选择上述自签名证书,点击工具栏上的删除按钮,将其删除。

为了便于操作,可以登录到Windows Server 2016域控服务器,在服务器管理器中点击“添加角色和功能”项,在向导界面中选择“Active Directory证书服务”项,完成该角色安装。在配置界面中选择“证书颁发机构”项,其余选项保持默认。这样,当在客户机上选择目标文件夹,在去属性窗口中选择“加密内容以便保护数据”项,点击确定按钮,可以发现其操作速度变得迟缓,其实在后台系统会向证书颁发机构服务器申请证书,

图1 EFS加密属性窗口

当申请完成后,才会使用FEK完成加密操作,然后使用证书对FEK进行加密。打开上述证书管理窗口,可以发现证书颁发机构为其发布的证书。对于这种基于证书架构体系的加密模式来说,域管理员可以需要来决定哪些用户可以EFS加密,哪些用户则不允许执行加密操作。在域控上打开组策略编辑器,在左侧选择“林”→“域”→“域名”项,在其中选择某个OU,在其右键菜单上点击“在这个域中创建GPO并在此处链接”项,输入GPO的名称(例如“EFSgpo”)。

在该GPO的右键菜单上点击“编辑”项,在编辑窗口左侧选择“计算机配置”→“Windos设置”→“安全设置”→“公钥策略”→“加密文件系统”项,在其右键菜单上点击“属性”项,在打开窗口选择“不允许”项,点击应用按钮保存配置。当以该OU中的域用户身份登录客户机后,执行“gpupdate /force”命令,来刷新组策略。这样,其会无法使用EFS对文件进行加密。对应地,在上述组策略设置窗口中选择“允许”项,允许执行EFS加密,并可以选择是否加密用户的文档文件夹内容,创建或更改用户密钥时显示密钥备份通知等项目。在“证书”面板(如图1)中的“自动证书申请的EFS模版”栏中显示“基本 EFS”,说明其使用的是基本的EFS证书模版。

如果取消“允许EFS的证书颁发机构不可用时生成自签名证书”项,那么就会禁止客户端使用自签名证书。打开证书颁发机构控制台,在左侧选择“证书模版”项,在右侧的右键菜单上点击“管理”项,双击“基本EFS”项,在其属性窗口中打开“安全”面板,可以看到只要是“Authenticated Users”(身份验证的用户)或者“Doamin Users”(域用户)组的成员,都是可以注册该证书的。利用这一特性,可以控制哪些用户可以使用该证书模版。

例 如 选 择“Domain Users”组,点击删除按钮,将其从列表中清除。点击“添加”按钮,导入所需的组(例如“Domain Admins”等),之后选中这些组,在权限列表中的的“允许”列中选择“注册”项,这样只有指定的组中的用户才可以申请证书,来执行EFS加密操作。对于其他的用户来说,是无法进行文件加密操作的。

使用EFS保护共享存储

在一般情况下,EFS加密文件都是存储在本地的。在网络环境中,常常需要将加密文件存储到共享文件夹或者文件服务器中,作为备份之用。为此管理员需要对文件服务器启用委派功能,并为用户创建对应的配置文件,在文件服务器中来生成所需的证书。当然,无论加密文件,创建配置文件的证书,对于用户来说完全是透明的。

例如,当用户在本地复制了加密文件夹后,在地址栏中的访问“\filesrv.xxx.com”地址,来访问目标文件服务器。当在其中粘贴时,系统会出现“确实要在不加密的情况下复制此文件夹?”的提示,点击“是”按钮,执行粘贴操作,系统先在本地对加密文件进行解密,之后将其上传到文件服务器中。

图2 启用委派功能

在共享路径中选择该文件夹,在其属性窗口中的“常规”面板中点击“高级”按钮,选择“加密内容以便保护数据”项,试图对其进行加密时,系统会出现“文件应用属性时出错”的提示,导致加密失败。

为了解决该问题,需要在域控上打开Active Directory用户和计算机窗口,在左侧选择“Computers”容器,在右侧选择目标文件服务器,在其属性窗口中的“委派”面板(如图2)中选择“信任此计算机来委派任何服务( 仅限Kerberos)”项,点击应用按钮保存配置。

使用域管理员登录文件服务器,在CMD窗口中执行“sysdm.cpl”命令,在系统属性窗口中的“高级”面板中的“用户配置文件”栏中点击“设置”按钮,在打开窗口中可以看到客户端用户的配置文件。虽然该客户端用户没有登录过本服务器,但是当其将文件上传之后试图执行加密操作时,系统就会自动创建该配置文件。

选择该配置文件项目,点击删除按钮将其清除。之后在客户端上重新登录,再次访问共享文件夹。对上传的文件进行加密,可以看到加密成功了。

当客户端复制了个加密文件,将其转帖到共享文件夹后,系统会先对其进行解密,之后将其上传到共享路径,然后对其进行加密。注意,在解密和加密的过程中,使用的是不同的证书。

使用恢复代理,找回加密数据

如果用户误操作(例如格式化C盘等),就会导致无法访问其他磁盘上的加密文件。因为这会造成用户证书异常的问题,没有办法使用证书来解开FEK密钥,自然无法解密EFS加密文件。使用数据恢复代理功能,可以应对这一情况。

对于数据恢复代理来说,存在两种不同的选项,其一是与EFS相关的,即允许设置另外一个用户(一般为管理员),可以作为数据恢复代理的用户,对于用户加密的文件来说,数据恢复代理的用户也是可以访问的。

另外一种是和证书相关的,当用户丢失了证书的私钥,自然无法访问加密文件。因为证书是由证书颁发机构颁发的,如果在证书颁发机构服务器存储了用户的私钥,就可以很轻松的帮助用户回复私钥。用户得到私钥后,将其导入当前的系统中,就可以顺利访问EFS加密文件了。

这里以前者为例进行说明,当证书信息丢失后,在域控上打开组策略管理器,在左侧选择“l”→“域”→“域名” →“Default Doamin Policy”项,在 其 编 辑窗口中左侧选择“计算机配置”→“Windows设置”→“安全设置”→“公钥策略”→“加密文件系统”项,在右侧可以看到其已经配置好了文件恢复的代理项目。

默认是管理员颁发给自己的自签名证书,这不适用于实际的生产环境,所以将其删除掉。

在左侧的“加密文件系统”项的右键菜单上点击“创建数据恢复代理程序”项,其就会自动寻找证书颁发机构服务器,来申请新的证书,作为文件恢复代理之用。

之后选择该证书,在其右键菜单上点击“所有任务”→“导出”项,在向导界面中选择“是,导出私钥”项,输入管理员密码,将其导出为独立的文件,例如“gly.pfx”。在客户端上执行“gpedit /force”命令。来刷新组策略。

注意,这必须在系统处于正常状态,即用户没有加密文件之前进行。

当用户选择目标文件或文件夹,在其属性窗口中的“常规”面板中点击“高级”按钮,选择“加密内容以便保护数据”项,点击“详细信息”按钮,在“此文件由恢复策略定义的恢复证书”栏中可以看到恢复证书信息。

当用户证书丢失后,可以将上述“gly.pfx”文件复制过来,双击该文件,输入密码后将其导入进来。这样,就可以访问加密文件了。

BitLocker加密的特点

EFS加密技术虽然简单易用,但是却存在一些不足,例如其无法对整个驱动器进行加密等。相比之下。BitLocker可以实现更加高级的加密操作。使用BitLocker不仅可以加密普通的磁盘,对于诸如Azure等云平台中的虚拟机来说,同样可以对VHD/VHDX等虚拟磁盘进行加密,从而有效保护其安全。

对于Windows 10等客户机来说,可以打开控制面板,在系统和安全窗口中点击“BitLocker驱动器加密”项,在对应的磁盘右侧点击“启动BitLocker”项,来激活BitLocker加密功能。

图3 使用BitLocker加密磁盘

对 于Windows Server 2016服务器来说,需要在服务器管理器中点击“添加角色和功能”项,在向导界面中选择“BitLocker驱动器加密”项,来安装该角色。在目标驱动器的右键菜单上点击“启用BitLocker”项,在打开窗口(如图3)中可以使用密码的方式,对其进行加密操作。根据需要,可以将恢复密钥备份到优盘,文件或者将其打印出来。例如将其备份到指定的文件,之后选择新加密模式或者兼容模式(适用于加密移动存储),执行加密的过程。

和EFS加 密 不 同,BitLocker仅仅是针对磁盘进行的,对于用户则没有限制。

BitLocker加密机制部署方式

在实际的生产环境中,如果每次访问BitLocker加密盘,都需要输入密码的话,操作起来是比较繁琐的。

其 实,BitLocker支 持多种解密方法,例如可以将Startup Key(可以理解为密钥)保存到优盘中,利用该优盘直接解密。

对于公有云中的虚拟机来说,可以启用虚拟TPM功能,来执行解密操作。

如果主机配置了TPM芯片,可以采用TPM+ Startup Key的方式,进行解密操作。

如果主机配置了TPM芯片和Smart Card设备,可以采用PM+PIN的方式,来实现解密操作。

当 然,如 果 采 用TPM+PIN+Startup Key的方式进行解密,无疑是安全性的。可以看出,Bitlocker提供了多种灵活的部署方式。

使用BitLocker保护虚拟机安全

例如对于Windows Server 2016的Hyper-V虚拟机中,增加了虚拟的TPM芯片的功能,可以有效保护虚拟机的安全。如果没有启用该功能,在默认情况下,虽然可以对虚拟机中的数据盘进行BitLocker加密,但是对系统盘进行加密时,系统会提示出错信息。

运 行“gpedit.msc”程序,在组策略窗口左侧选择“计 算 机 配 置”→“管理 模 版”→“Windows组件”→“Bitlocker”→“操作系统驱动器”项,在右侧双击“启动时需要附加身份验证”项,在打开窗口(如图4)中选择“已启用”项,那么允许在没有兼容的TPM时允许BitLocker加密系统盘。之后才可以对系统盘进行加密处理,可以使用密码或者包含Startup Key的优盘进行解密。

图4 启用附加身份验证功能

但是,对于公有云中的虚拟机来说,这样的解密操作是难以实施的。在Hyper-V管理器中选择目标虚拟机,在右侧点击“设置”按钮,在打开窗口左侧选择“硬件”→“安全”项,在右侧选择“启用受信任的平台模块”项,可以启用虚拟的TPM芯片功能。进入虚拟机环境,打开组策略窗口,在上述配置窗口中选择“未配置”项。默认情况下,Bitlocker就会识别到本机已经配置好了TPM芯片,之后就可以对系统盘进行加密处理,并将解密密钥保存在TPM芯片中。当然,恢复密钥是可以保存在指定的文件中,或者可以将其打印出来。这样,当启动该虚拟机时,系统就会自动从虚拟的TPM芯片中读取密钥,对系统盘进行解密操作。

利用活动目录管理恢复密钥

当用户不慎将密钥丢失后,可以使用恢复密钥进行解密,可以将恢复密钥保存优盘。文件中或者打印出来,但是如果用户将恢复密钥也丢失的话,是无法进行恢复的。为了解决这一问题,可以将恢复信息保存在活动目录中,这样就会使其变得更可靠更稳定,管理员可以据此来恢复用户的加密数据。

图5 使用BitLocker加密磁盘

以域管理员身份登录启用了Bitlocker加密功能的服务器,打开Active Directory用户和计算机窗口,在左侧选择域名,在其右键菜单上点击“委派控制”项,在向导界面中点击下一步按钮,在用户或组窗口中点击“添加”按钮,在打开窗口中的额“输入对象名称来选择”栏中输入“self”,将其导入进来,即允许每台主机在启用BitLocker供后,可以向活动目录写入恢复密钥信息。点击下一步按钮,选择“创建自定义任务去委派”项,在下一步窗口中选择“只是在这个文件夹中的下列对象”项,在列表中选择“计算机 对象”项.

点击下一步按钮,在权限窗口(如图5)中选择“特定属性”和“特定子对象的创建/删除”项,在“权限”列表中选择“写入 msTPMTpminfomationForComputer”项,可以如果用户拥有向活动目录写入恢复密钥的权限。点击完成按钮,完成配置操作。

打开组策略编辑器,在左侧选择“计算机配置”→“管理 模 版”→“Windows组件”→“Bitl ocker驱动器加密”项,可以选择不同类别的驱动器(包括操作系统驱动器,固定数据驱动器,可移动数据驱动器等),例如选择操作系统驱动器,在右侧双击“选择如何才能恢复受BitLocker保护的操作系统驱动器”项,在其属性窗口中选择“已启用”项,确保选择“为操作系统驱动器将BitLocker恢复信息保存在AD DS中”项。

完成了以上配置后,当在指定的Windows Server 2016服务器执行了BitLocker加密操作后,恢复密钥就会写入到活动目录中。以域管理员身份登录服务器,打开Active Directory用户和计算机窗口,在左侧选择“Computers”容器,在右侧选择目标主机,在其属性窗口中打开“BitLocker恢复”面板,可看到写入到活动目录中的恢复密钥项目。在“详细信息”栏中显详细的密钥信息。当用户丢失了密钥后,就可以利用这里提供的密钥,来恢复加密磁盘。但是,对于Windows 10等客户端主机来说,虽然之前启用了BitLocker加密功能,但是在Active Directory用户和计算机窗口打开这些主机时,却没发现恢复密钥的信息。

为此可以使用Managebde工具,来允许其将恢复密钥写入到活动目录中。在这些客户机上中打开CMD窗口,执 行“manage-bd e-protectors -get d:”命令,来获取指定驱动器(这里为D盘)的恢复密钥信息,复制其中的数字密码。执行“manage-bde -protectors-adbackup d: -id {xxx} ”命令,即可将指定磁盘的恢复密钥写入到活动目录中。其中的“xxx”表示数字密码。当然,在客户机上也需要在组策略窗口中针对特定的驱动器,来允许其将恢复密钥写入到AD DS中。实际上,这里仅仅在本机上进行了配置,在实际的网络环境中,需要在活动目录的组策略中进行统一的配置,这样操作起来就更加快捷。

猜你喜欢
组策略驱动器解密
气动网络多腔室弯曲软体驱动器结构优化
炫词解密
解密“一包三改”
藏起驱动器号确保数据安全
补齐设置短板 用好Microsoft Edge
炫词解密
炫词解密
通过PowerShell获取组策略安全报告
如何完全卸载OneDrive
空间大载荷石蜡驱动器研制