保护数据安全的措施可包括密码策略、审核策略、数据库服务器隔离以及应用程序验证和授权控制。但是,保护敏感数据的最后一道安全屏障通常是数据加密。 SQL Server 2005一个令人激动的特性是内置了加密的功能。在这个新版的SQL Server中,加入了加密、证书创建和密钥管理的功能。

加密是一种有助于保护数据的机制。加密过程可将数据打乱,以仅允许经过授权的人员访问和读取数据,从而帮助确保数据的保密性。当原始数据(称为“明文”)与称为密钥的值一起经过一个或多个数学公式处理后,数据就完成了加密。此过程使原始数据转为不可读形式。加密过的数据称为“密文”。为使此数据重新可读,数据接收方需要使用相反的数学过程以及正确的密钥将数据解密。但是,加密这种数据保护方法会增加计算机处理器时间和存储需求方面的成本。较长的加密密钥比较短的加密密钥更有助于提高密文的安全性。不过,较长的加密密钥的加密/解密运算更加复杂,占用的处理器时间也比较短的加密密钥长。另外,加密还会增加目标(加密)数据的大小。

加密类型主要有以下两种:

对称加密 :此种加密类型又称为共享密钥加密。
非对称加密:此种加密类型又称为两部分加密或公共密钥加密。

在SQL Server 2005中具体实现加密的方法有四种:使用口令加密(EncryptByPassPhrase)对称加密非对称加密使用证书加密;其中使用口令加密,对称加密这两种同属对称加密类型,非对称加密及使用证书加密同属于非对称加密类型。

1.对称加密

对称加密使用相同的密钥加密和解密数据。对称加密使用的算法比非对称加密使用的算法简单。由于这些算法更简单以及数据的加密和解密都使用同一个密钥,所以对称加密比非对称加密的速度要快得多。因此,对称加密适合大量数据的加密和解密。图1显示了对称加密流程。

对称加密的主要缺点之一是使用相同的密钥加密和解密数据。因此,所有的数据发送方和接收方都必须知道或可以访问加密密钥。这使得加密者必须在其环境中考虑安全管理问题和密钥管理问题。存在安全管理问题的原因是由于加密者必须将此加密密钥发送给所有要求访问加密数据的一方。加密者必须考虑的密钥管理问题包括密钥生成、分发、备份、重新生成和生命周期。对称加密使用的加密算法包括:DES、TRIPLE_DES 、TRIPLE_DES_3KEY、RC2、RC4、RC4_128、DESX、AES_128、 AES_192、AES_256。

2.非对称加密

非对称加密使用两个具有数学关系的不同密钥加密和解密数据。这两个密钥分别称为私钥和公钥。它们合称为密钥对。非对称加密被认为比对称加密更安全,因为数据的加密密钥与解密密钥不同。但是,由于非对称加密使用的算法比对称加密更复杂,并且还使用了密钥对,因此当使用非对称加密时,其加密过程比使用对称加密慢很多。图2显示了非对称加密流程。

在非对称加密中,只有一方持有私钥。此方称为主体。所有其他各方都可以访问公钥。通过公钥加密的数据只能通过私钥解密。反之,通过私钥加密的数据只能通过公钥解密。因此,此种加密提供了保密和身份确认两种功能。可以利用此种加密方法通过使用公钥加密数据来提供授权。此密钥是公开的。因此,任何人都可以将数据加密。但是,由于只有主体持有私钥,因此该可以合理地认为,只有预期的接收方才能解密和查看加密的数据。也可以利用此种加密方法,通过使用私钥将数据加密来提供验证。只有主体持有此密钥。不过,任何人都可以将该数据解密,因为将此数据解密的公钥是公开的。因此,如果接收方可以使用公钥将此数据解密,就可以合理地认为只有主体才是将数据加密的一方。非对称加密算法包括:Diffie-Hellman密钥协议、Rivest-Shamir-Adleman (RSA)、数字签名算法 (DSA)。

加密注意事项

在决定是否要将数据加密时,必须考虑执行加密和解密可能增加的处理器负荷。此外,还必须考虑加密后的数据所占用的存储空间。数据占用的存储空间的大小取决于使用的算法、密钥的大小以及加密的明文大小。 虽然实施加密时必须考虑性能问题和存储问题,但最重要的还是密钥管理问题。用于将数据加密和解密的加密密钥是其数据安全框架中至关重要的部分。为确保只有经过授权的用户才能查看加密的数据,必须采取措施对加密密钥进行管理、存储、保护和备份。