最近,在马萨诸塞州,通过了一项法律 (相当安静),包含个人身份信息的数据必须encryption。 PII由国家定义为包含居民的姓氏和名字,
A. SSN
B.驾驶执照或身份证#
C.借记卡或CC#
由于我们制作的软件的性质,我们所有的客户都使用SQL作为后端。 通常服务器将运行SQl2005 Standard或更高版本,有时SQL 2008.几乎所有的客户端机器都使用SQL2005 Express。 我们使用客户端和服务器之间的复制 不幸的是,要得到TDE,你需要在每台机器上安装SQL Enterprise,这绝对不是一个选项。 我正在寻找将encryption数据库的产品的build议。 现在,我对整个磁盘encryption根本不感兴趣。
使用信用卡信息时,这也是PCI的要求。 您可能正在查看encryption表中的实际数据。 当我经历了这个,我不得不在表中创build新的列,生成各自源列的encryption数据,然后删除源(未encryption)列。 问题是你的应用程序必须改变才能使用encryption的数据。
您还需要在服务器上打开强制协议encryption 。
关于规定,有两个条款暗示何时使用encryption:
因此,除非数据库在笔记本电脑或便携式设备上,否则不要求您自己encryption数据库(尽pipe还有其他适用于该州数据的规定)。 此外,在该州encryption数据将不会覆盖你的目的; 当数据在传输中时。 我build议您考虑一下传输级别的安全性(例如:HTTPS)。
但是,如果问题的本质确实是在数据库级别获得数据encryption,那么我肯定会推荐使用像TrueCrypt这样的产品,它可以让您在标准文件系统中encryption以文件forms表示的虚拟磁盘。 然而,从实用性的angular度来看,我build议您考虑现场级encryption。 即,在应用程序/服务级别对字段进行encryption/解密,并将encryption值存储在数据字段中。
TDE只对静止的数据进行encryption。 这是重要的一点。 因此,如果有人在启动并运行时闯入SQL Server,那么数据是未encryption的。 因此,Squillman的方法是确保数据实际上是encryption的唯一方法,除非您知道要解密的密钥。 如果这是足够的(静止数据),则由OS提供的encryption文件系统(EFS)是可选的。 这可以设置在单个文件或文件夹级别(最好在文件夹级别)。 一个区别是EFS不会encryption备份。 启用TDE的数据库的备份已encryption。 您需要使用SQL LiteSpeed或Red Gate SQL Backup等第三方产品来确保备份安全。
而对于部队协议encryption,我不会走这条路。 我宁愿使用Kerberos在操作系统级别的IPSEC策略来生成安全隧道。 这样就不需要安装SQL Server使用的SSL证书。
如果TDE不可接受,那么您唯一的select是BitLocker音量级encryption。 要以高性能的方式使用SQL Server,encryption必须能够encryption/解密文件中的页面,这意味着必须能够将encryption密钥设置为相应的状态以访问页面中的偏移量文件。 这就排除了所有文件级别的encryption解决scheme,因为它们不能解密/encryption文件的第一个块,然后首先对块X-1进行解密/encryption(将密钥设置为适当的状态)。