2.10、与TDE相比较
单元级加密与数据库级加密相比多了一些优势。它提供一个更细粒度级别的加密。此外,数据直到使用的时候才解密(调用一个解密内置函数),以便即使是一个页面加载到内存,敏感数据也不是清晰的文本。单元级加密还允许显示密钥管理。密钥可以指派给用户并用密码来保护,以防止自动解密。这提供了另一个控制级别(用户扫描,例如,对他们各自的数据具有各自的密钥);然而,管理员要维护这些密钥所有加重了负担(尽管外部密钥管理——在本篇文章的后面回进行描述——还可以用来帮助管理)。因为单元级加密是高度可配置的,对于具有明确安全要求的应用程序来说它可能是很适合。
单元级加密的主要缺点是应用程序要使用它就需要进行改动、以及性能影响和管理成本。正如前面说过的,加密和解密要求你使用内置函数。这完全是一个手动处理过程,它要求varbinary数据类型;这意味着字段必须从它们的原始数据类型改为varbinary。在安全方面,加密总是会加入些东西,所以相同的数据加密后会得到不同的值。结果,参考一致性例如外键和候选键例如主键对这些加密的字段不能产生任何作用。这也影响了查询优化——加密字段上的索引没有了作用,所以范围和相等检索变成了全表扫描。TDE使得可以使用索引和其它传统的查询优化工具,以及批量执行加密。
一个大略的比较,使用单元级加密执行一个相当基本的查询(选择和解密一个单独的加密字段)大概会差20%。这反过来扩大了工作负载的规模,导致性能比加密整个数据库时下降了几个数量级。一个具有10,000行的样例应用程序比一个加密字段差了四倍,比九个加密字段差了20倍。因为单元级加密是为每一个应用程序定制的,所以性能下降将很大程度上取决于应用程序和工作负载的特性。正如在对数据库的影响中提到的,平均下来它是TDE的3-5%,最坏情况下是28%(假设没有运行加密扫描)。
尽管这些对于单元级加密的性能考量可以通过清晰的应用程序设计来减轻,但是要更加注意防止数据的意外泄漏。例如,假设有一个快速的scheme 可以使用敏感数据的哈希数据来进行快速相等检索。如果这些哈希数据是存储在和加密数据一起的一个字段中,那么如果两行具有同样的值它就会变得很清楚,因为哈希是一样的。必须进行额外的安全审查,以确保不会发生无意识的数据泄漏,所以数据库和应用程序都必须确认是安全的。TDE通过最大范围的加密从而防止这些数据泄漏的发生。在单元级加密和数据库级加密中,信息都是在服务器上解密的;解密数据是以文本形式发送到客户端的。推荐使用SSL来保护这个链路。
2.11、TDE的推荐用法
单元级加密可以用于深度保护使用TDE加密的数据库和通过使用密码来限制访问控制。通过这个方式,即使TDE或验证被破坏了,如果数据用一个密码从根部进行了加密以便它不容易被访问到,那么数据也可能是安全的。如果使用单元级加密的所有缺点都发生了,那么使用单元级加密和TDE可能对高敏感数据的子集是很有用的。
一般情况下,TDE和单元级加密完成两个不同的目标。如果要加密的数据数量非常小或者应用程序可以定制设计来使用它(或如果应用程序具有定制设计要求)并且不用考虑性能影响,那么推荐使用单元级加密而不是TDE。否则,推荐使用TDE进行加密现有的应用程序或对性能要求严格的应用程序。此外,单元级加密可用于SQL Server的所有版本,而TDE只能用于SQL Server 2008企业版和SQL Server 2008开发者版本。
2.12、外部密钥管理
外部密钥管理((EKM)是SQL Server 2008的另一个新特性。它使得密码密钥层级的各个部分可以用外部源来管理——例如硬件安全模块(HSM)——作为一个加密提供商。使用这些密钥的加密和解密操作通过加密提供商来进行处理。这提供了在加密提供商中的灵活性和选择,以及公钥管理。TDE支持EKM所提供的非对称密钥。TDE不支持其它形式的非对称密钥,并且数据库证书目前不能通过EKM提供。EKM通过对称密钥和非对称密钥提供对单元级加密的支持。极力推荐你使用EKM和数据库级加密与单元级加密以获得更全面的密钥管理和基于硬件的加密(如果可能的话通过HSM)。
| 共5页: 上一页 [1] [2] [3] 4 [5] 下一页 | |||||||
|