BitLocker对性能的影响

这两天换用新本本后,我对硬盘的所有分区都启用了BitLocker加密。在微博上谈及此事时,和人讨论到了这个功能对性能的影响。虽然之前看微软的文档,那里说这个功能对性能降低的百分率在个位数,不过也有人说影响挺大的,于是我打算仔细研究一下。

首先,在网上进行了一下搜索,找到了一篇文章,其中给出的数据比较触目惊心,开启BitLocker,并使用不同加密算法时,对性能的影响在30%左右。下列两个图片来自原文网页。

 

 

由于上述结果是在一台CPU为Atom N260的,应该是上网本的设备上测得的,这样的配置和现在主流笔记本的配置相差较远,于是我打算亲自测试一下。

但首先,如果你对这个功能感兴趣,想要使用,也可以先看看我之前写的一篇介绍性文章,介绍了使用该功能的前提条件,以及具体的开启方式:BitLocker使用揭秘。这篇文章是三年前写的,以Vista为例进行介绍。不过该功能的大致思路和用法在Windows 7中并没有太大变化。

 

BitLocker所支持的不同加密算法

还是根据微软文档的介绍,BitLocker支持128位与256位两种强度的AES加密算法。密钥越长,安全性越高,被攻破的难度也就越大,但是密钥越长,数据加密和解密所需的时间也就越长。除此之外,BitLocker还可以使用一种额外的Diffuser算法防范通过Ciphertext进行的攻击。

默认情况下, Windows中的BitLocker使用128位AES加密,同时使用Diffuser。不过具体使用哪种算法,以及是否使用Diffuser,都可以通过组策略进行调整。不过一般从性能的角度考虑,128位加密强度足矣,同时最好启用Diffuser,但如果是企业用户,由于合规性要求,必须遵守美国联邦信息处理标准(FIPS),则就不能使用Diffuser。

具体来说,这些策略位于 【管理模板-Windows组件-BitLocker驱动器加密】节点下,通过“选择驱动器加密方法和密钥长度”策略进行配置。另外在这个节点下还有更多可以对BitLocker进行配置的策略,具体用途和使用方法请参阅说明信息。

典型的BitLocker环境对数据的解密可通过三种途径进行:

  • TPM芯片:这是一种专用芯片,需要固话或额外安装在主板上,用于存储加解密过程中所需的全部密钥和其他信息。Windows的BitLocker功能必须使用1.2版以上TPM芯片。不过这种芯片通常只出现在针对商业用户的高端电脑中,而且貌似在中国大陆因为政策方面的原因,行货可能无法装备此类芯片。
  • PIN码:如果没有TPM芯片,则可以使用PIN码。简单来说这就是一个密码,需要用户手工输入,以解密数据。
  • 启动密钥:这实际上是一个文件,需要保存在可移动存储设备中,该密钥需要配合TPM芯片或者PIN码才能使用,不能单独使用。

因此取决于具体的硬件配置及安全需求,可以将上述三种解密途径进行排列组合(下图来自微软网站)

具体环境

我这台本子的硬盘是一块320GB容量,7200rpm的日立硬盘,具体型号为HTS723232A7A364,缓存16MB。CPU则为Intel Core I7-2620M,双核心四线程,4MB缓存,主频2.7GHz,通过睿频功能最多可自动超频到3.4GHz。CPU的规格中列出了支持AES New Instructions技术,简单来说,这个技术等于是给CPU中添置了专门负责AES相关操作的指令集,因此可以加速有关AES操作的运算速度。

根据Intel白皮书的介绍,在使用这个功能后,使用McAfee Endpoint Encryption for PC 6.0软件以及McAfee ePolicy Orchestrator 4.5对一块32GB X25E SSD硬盘进行全盘加密,分别使用3.33 GHz Intel Xeon X5680处理器(带有该功能)和2.93 GHz Intel Xeon X5570处理器(不带该功能),速度提升高达42%。

言归正传。因为之前我的硬盘已经被加密完成,因此打算使用D盘作为测试目标,分别测试加密状态以及解密后的速度。测试环境使用64位Windows 7旗舰版,内存8GB,系统和驱动都升级到官方最新版。测试软件使用了2.47版ATTO Disk Benchmark。

因为这是证明在实际使用环境中的测试结果,因此我没有使用干净的系统,而是使用我已经安装好所需软件,并且必要软件都运行起来后的测试结果。只不过这些软件都保存在C盘,可以保证在进行测试的过程中,不会有其他程序想要读写D盘内容。

结论

在开启BitLocker,并保持分区为加密状态下测试的参数和测试结果如下左图。随后用了将近三小时对D盘进行解密,解密完成后重启动系统,然后获得了下列右图的结果。

观察发现,无论是加密或是解密状态下,数据的读取速度影响并不是很大,但在写入数据时却有比较明显的差异。根据我平时的使用特点,以8MB、16MB、64MB,以及512MB这几个区块大小时的写入速度进行一个简单的对比。

从结果中可以看出,对于写入速度,BitLocker的影响还是很大的,除了8MB大小区块的结果异常,估计可能是误差或其他因素影响,毕竟我不是在干净环境中进行的测试,而且取的关键点也太少。不过应该能够说明问题了,BitLocker对写入速度确实有不容忽视的影响,并且绝不像微软所宣称的那样“个位数的百分率”,不过对读取速度的影响基本可以忽略不计。考虑到一般应用,都以读操作为多,写操作相对较少,因此可以认为,BitLocker对性能的整体影响基本不那么纠结了。尤其是需要考虑到以牺牲性能为代价所获得的其他好处。

当然,也许我的上述测试过程本身存在一些尚未发现的缺陷或不足,因此如果有筒子对此有更好意见,也欢迎留言告诉我。

最后,其实这次测试的起源是一位朋友说对U盘启用BitLocker To Go加密后,性能下降严重,无法接受。其实我一直觉得,虽然名字中都带有BitLocker字样,但这两个功能从工作原理上看截然不同,进而并不适合直接将一个功能的感受套用到另一个功能中。本还想对U盘进行一下类似的测试,但我突然发现自己手边连一块U盘都没有,因为我现在已经很少使用U盘了,大部分文件交换工作都是通过网络进行。因此暂时没法测试。不过感兴趣的筒子也可以自己试试看。

花了三个多小时解密,两分钟测试完毕,又得重新加密起来了。幸亏加密和解密过程中正常操作不太受影响,要不然真要命了。

分享:

WeChatPocketInstapaperPrintFriendlySina WeiboQzoneEvernoteTwitterGoogle+Facebook分享

发布于2011 年 7 月 18 日作者刘晖分类IT标签加密、安全、BitLocker、Windows

《BitLocker对性能的影响》上有14条评论

  1. 大笨说道:

    2011 年 7 月 19 日 上午 10:06

    没用过,电脑上用户设置密码就可以了。我的电脑没啥特别的隐私,呵呵

    回复

  2. 许溜溜说道:

    2011 年 8 月 13 日 下午 3:20

    博主是位爱折腾的人。。

    回复

  3. null说道:

    2011 年 8 月 15 日 下午 10:13

    原來那篇怎樣啟用 BitLocker 文章中, 其實完全可以直接用 diskpart 格式化硬盤.

    回复

    1. 刘晖说道:

      2011 年 8 月 15 日 下午 10:15

      嗯,主要是当时微软专门针对这个推出过一个程序,考虑到目标读者,就没有介绍命令行下的操作

      回复

  4. georgefan说道:

    2012 年 6 月 11 日 下午 10:24

    对读数据无影响,是不是因为读过一次后在内存中有缓存内容了?

    回复

    1. 刘晖说道:

      2012 年 6 月 11 日 下午 10:51

      应该不是,否则读取速度应该更高才对,毕竟内存的访问速度更快。估计应该是由于加密和解密的机制不同导致的,具体细节就不清楚了

      回复

  5. viva说道:

    2012 年 9 月 21 日 上午 2:01

    测试只考虑了硬盘读写,整机性能影响没有考虑。加密解密对cpu也是负担,所以应该用整机性能测试软件pc mark等来进行测试。

    回复

  6. lrk说道:

    2014 年 4 月 27 日 下午 2:44

    中国人的节操真是。。。楼主,我发现了有个网站抄袭了你的博文:http://www.xzbu.com/8/view-44781.htm

    回复

    1. 刘晖说道:

      2014 年 4 月 29 日 下午 8:30

      早都习惯了,反正也不是第一次遇到。最开始愤怒,到现在,早都无所谓了。

      回复

  7. 大猫说道:

    2014 年 10 月 31 日 下午 5:49

    我刚尝试使用Bitlocker,加密状态下肯定是写入略慢于非加密状态。
    感谢站长的研究精神!

    回复

  8. 陈假假说道:

    2015 年 4 月 20 日 下午 12:11

    连C盘都加密了么。。

    我只加密了E盘,然后在E盘运行一个单机小游戏,可以明显的感觉到硬盘温度上升不少。

    回复

    1. 刘晖说道:

      2015 年 4 月 20 日 下午 12:58

      其实这个功能最大的用处就是用来保护系统盘。从 Vista 开始提供这个功能以来,我都是全部本地硬盘都加密的,倒是没觉得会对硬盘产生什么负担。假设有 1MB 的数据,从硬盘中读取 1MB 的明文数据,或者读取 1MB 的加密后数据,对硬盘来说,工作量几乎可以认为没有区别的。

      回复

      1. ppip说道:

        2016 年 1 月 16 日 上午 7:03

        是不是需要商业版本的 Windows 才能提供 bitlocker?

        回复

        1. 刘晖说道:

          2016 年 1 月 16 日 下午 3:03

          是的,家庭版无法使用,仅限专业版、企业版、旗舰版。

          不过 BitLocker To Go 可以用于家庭版。

          回复

你可能感兴趣的:(数据中心)