当前,随着计算机网络的飞速发展,数据库技术的应用也变得越来越广泛,数据库的安全问题也日益受到关注。要确保SQL Server数据库的安全,最核心的问题就是给SQL Server的数据库文件加密。
SQL Server数据库加密技术就是保证SQL Server数据库中数据的保密性、正确性。即保护SQL Server数据库中的数据不被非法用户获取,不因为操作员失误或者软硬件故障而导致数据错误。
一、对于SQL Server的数据库加密技术的要求
SQL Server的数据库加密技术是保障信息系统安全的重要技术之一。它的目标是保证系统中的数据只能被合法用户所访问。SQL Server的数据库加密技术不仅要考虑保证数据库的合法操作用户对于数据库的正常使用,同时,还要考虑防止外来入侵者的非法访问。所以,这就需要建立一个灵活而全面的SQL Server的数据库加密系统,以保证SQL Server数据库的安全。随着面向服务架构的发展以及网络结构复杂化发展,对于SQL Server数据库的访问具有较高的动态特性,因此SQL Server的数据库加密技术必须满足应用系统的动态性和开放性的要求。
二、SQL Server数据库的加密算法
如何才能满足上述的对于SQL Server的数据库加密技术的要求呢?必须合理选择SQL Server数据库的加密算法。
加密算法在SQL Server数据库加密技术中起着非常关键的作用,一个合适的加密算法应该产生频率平衡的密文,并且密文的周期必须是足够长的,保证不可能出现密文中码的重复的问题。这样,非法入侵者通过对密文的频率、密文中码的重复等特征的分析是不可能得到数据库的原始的明文数据的。数据库的加密算法应该和数据库系统的特点相符合,例如,加密算法必须满足强度高、具有非常快速的加密解密速度、对于明文数据长度的变化范围比较适应、在使用加密算法对数据进行加密之后的存储空间不会增加太多等等。
当前主要包括下面三种比较常见SQL Server数据库的加密算法:序列密码加密算法、公开密钥密码加密算法和分组密码加密算法。
1、序列密码加密算法
序列密码加密算法进行明文与随机序列的直接运算,得到的每一位密文与明文其它位的数据都是没有任何的关系的。这种加密算法具有比较高的运算速度,同时,通常情况下,计算得到的密文的长度与明文的长度是相等的。但是,如果能够产生的密文对是非常大量的,那么,将密文进行破解是非常容易的。通常情况下,这种加密算法在一次一密的传输加密中使用。
2、公开密钥加密算法
这种加密算法也就是非对称密钥算法,具有非常慢的运算速度,对于数据量非常大的情况下的加密和解密是非常不符合的。
3、分组密码加密算法
这种加密算法首先将明文根据固定的长度进行分组,然后选择不同的密钥对得到的分组进行加密。密文中的每一位数据一方面是和密钥有密切关系的,另一方面也和得到的分组中的其它明文数据有密切关系。对于采用这种加密算法得到的密文,进行破译是非常困难的,该算法具有很好的保密性,但是,这种加密算法同时也具备一些相应的缺点,那就是进行密钥的分发和管理是非常不容易的。
通过上述对于三种加密算法的对比分析和比较,采用分组加密算法作为SQL Server数据库的加密算法是更加符合的,但是,值得引起注意的是,对于这种加密算法必须解决密钥管理的问题。
SQL Server数据库由于其具有存储数据容量大的优点,被越来越广泛的应用于企业管理信息系统的开发中。SQL Server数据库能够最大限度地给用户提供信息的同时,必须能够有效地防止非法用户对于数据库中的数据的窃取和篡改,而且可以保证合法用户对于数据库进行方便的管理与维护。
小知识之SQL Server数据库
SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。Microsoft SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,目前最新版本是2012年3月份推出的SQL SERVER 2012。