数据库环境下的安全与加密

时间:2022-09-27 12:57:36

数据库环境下的安全与加密

随着各式各样数据库的广泛应用,其安全性越来越受到重视,对于个人隐私、敏感信息进行保护的呼声也越来越高。数据库安全的总体目标是保证数据库的任何部分都不允许受到恶意侵害或未经授权的存取与修改。数据加密是防止数据在存储和传输中失密的有效手段,是信息安全的基础和核心,是防范各种安全威胁的最重要的手段,信息安全的许多知识都与它相关。

一、数据库安全介绍

数据库是存储在计算机上的有组织的、统一管理的相关数据的集合。

数据库系统是指采用了数据库技术的计算机系统,一般由数据库集合、应用系统、数据库管理系统、数据库管理员和用户构成。数据库系统通常也称为数据库。

数据库的安全性是指保护数据库,以防止不合法的使用造成的数据泄密、更改或破坏。

为加强数据库的安全性可在以下几个级别上设置安全措施:环境级、职员级、操作系统级、网络级、数据库系统级。本文主要讨论其中的数据库系统级的安生性问题。

1、DBMS的安全性

数据库系统中安全控制通常使用用户身份标记和识别、存取控制以及审计等技术。对高度敏感数据,除了以上安全性措施外,还应该采用数据加密技术。

加密的基本思想是伪装信息,即根据一定的算法将原始数据(称为明文)变换为不可直接识别的格式(称为密文)。主要的两种加密方法:

(1)替换方法:该方法使用密钥将明文中的每一个字符转换为密文中的字符。

(2)置换方法:该方法仅将明文的字符按不同的顺序重新排列。

这两种方法单独使用都是有风险的,但是将它们结合起来就能达到相当高的安全程度。

加密算法定义了未经授权的用户无法轻易逆转的数据转换。数据库使用对称密钥、非对称密钥、数字签名、数字摘要、认证协议、密钥分发与协商协议,对数据进行非识别处理,为各种类型的数据加密提供了丰富的支持。

所谓对称密钥技术就是加密和解密使用相同的密钥,又称为私钥密钥技术。非对称密钥密码技术就是加密和解密使用不同的密钥的密码技术,又称为公钥密钥技术。

2、SQL的安全性

SQL适用于DBMS的访问控制和审计机制。除此之外,比较典型的SQL安全机制是视图安全机制。应际应用中,基于视图的安全机制往往与访问控制机制结合起来使用。

SQL Server允许管理员和开发人员从多种加密算法中进行选择,其中包括 DES、Triple DES、TRIPLE_DES_3KEY、RC2、RC4、128 位 RC4、DESX、128 位 AES、192 位 AES 和 256 位 AES。没有一种算法能够解决所有问题。

二、密码策略

为了数据的安全、可靠,不论是数据库管理人员还是用户对数据库的访问,都必须是合法的使用者,且能提供正确的密码,才能对数据库进行相应权限的操作。请务必在设置密码时保持高度谨慎。

1、安全性较佳的密码原则:

(1)长度越长越好,至少有 6 个字符;

(2)密码中组合使用字母、数字和符号字符;

(3)没有明显含义,字典里查不到,非用户名、非计算机名;

(4)要能记得住。

2、一个不易被破解的密码应至少有:

(1)长度至少为8个字符(最长可为 128 个字符);

(2)包含以下四类字符中的三类:1个英文大写 (A—Z)、1个英文小写(a—z)、1个基本数字 (0—9)、1个特殊符号(如!、$、# 或%)、1个空白。

(3)没有任何意义的组成,尽可能复杂。

三、安全攻击与密码破解

对数据库的攻击一般可分为直接攻击和间接攻击。直接攻击是指通过查询已得到的几个记录来直接搜索,并确定敏感字段的值。间接攻击依据一种或多种统计值推断出结果。例如,使用求和、计数或中值等统计数据来得到某些数据。

密码破解是描述在使用或不使用工具的情况下渗透网络、系统或资源以解锁用密码保护的资源的一个术语。这里介绍一些在密码破解中使用的常见技术。

1、字典攻击:字典文件被装入破解应用程序,它是根据由应用程序定位的用户帐户运行的。

2、混合攻击:混合攻击将数字和符号添加到文件名以成功破解密码。

3、暴力攻击:暴力攻击是最全面的攻击形式,根据密码的复杂程度,它通常需要很长的时间工作。L0phtcrack(一种破解应用程序)和网络嗅探器是常用的两种攻击工具。

四、数据库恢复

尽管有多种安全机制可以避免数据库不被破坏,但由于计算机系统或数据库系统的各种故障,仍然可能导致数据库中的数据丢失、丧失正确性,或完全不可用。这时候,需要重建一个完整的数据库,这个过程称为数据库恢复,数据库恢复是数据库安全的一部分。

数据库恢复技术是一种主要用于保证事务处理安全性的技术。所谓事务是用户定义的一系列数据库操作序列,这些操作要么全部完成,要么全部不完成,是一个不可分割的操作单位。SQL语言中,定义事务的语句主要有以下3条:

BEGIN TRANSACTION:表示事务的开始;

COMMIT:表示事务的正常提交,此时该事务已结束;

ROLLBACK:表示事务的回滚,即当事务异常终止时,事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。

数据库故障主要可分为事务故障、系统故障和介质故障3类,相应的操作办法:

1、事务故障的恢复相当于强制撤销的UNDO操作,先是反向扫描日志文件,查找该事务的更新操作,再对该事务的更新操作执行反操作。

2、系统故障时,首先应正向扫描日志文件,查找未完成的事务(其特征是只有BEGIN TRANSACTION标记,而无 COMMIT标记),将其事务标识记入撤销队列(UNDO),同时查找已经提交的事务(其特征是既有BEGIN TRANSACTION标记,也有 COMMIT标记),将其事务标记记入重做队列(REDO)。

3、介质故障发生的可能性较前两类故障的可能性小,但破坏性大得多,它的恢复方法是:

(1)装入最新的数据库副本,使数据库恢复到最近一次转储时的可用状态。

(2)装入最新的日志文件副本,根据日志文件中的内容重做已完成的事务,将结果重新记入数据库。

五、问题与一般安全性建议

安全是相对的,不安全是绝对的。人类对信息安全的追求过程是一个漫长的深化过程,所以数据库安全新技术总是在不断地涌现。笔者就面向用户的数据库中存在的一些问题与建议提出来,供开发人员和广大用户参考。

1、大多数开发人员对密码学知之甚少,常见的错误是,该用密码算法的时候没有用,或者误用密码算法。这些错误增加了数据库的脆弱性,导致了各种各样的攻击。

2、使用密码时,一定不要使用自己发明的密码算法和自己设计的密码协议。在流密码(或类似的分组密码)中不要多次使用同一个密钥。

3、采用非对称密钥对数据进行加密和解密,系统开销比采用对称密钥要高得多。建议加密大型数据集不要用非对称密钥,例如表中的用户数据,而应该用强对称密钥加密数据,然后再用非对称密钥加密对称密钥。

4、一些密码设定小技巧:

(1)以英文的一句谚语或一段歌词,取每个英文字前缀当成密码;

(2)以两个英文字或数字穿插,例如:bcd+345=b3c4d5;

(3)以中文输入法按键来当成密码,例如:“密码”的五笔输入为pntdcg;

(4)把数据与一个固定数值相加,例如:

13607871505+111=13607871616。

六、结语

数据加密是保护数据的重要手段。本文阐述了计算机网络时代下数据库安全的方法和手段,分析了一些常见的密码破解攻击技术,对传统的加密技术作了概述,提出了一般安全性建议,希望能对开发人员及用户有所帮助。

参考文献:

[1]石文昌,梁朝辉编著.信息系统安全概论,电子工业出版社,2009.

[2]谢健全编著.信息系统安全防护技术.中国宇航出版社,2006.

[3]李剑编著.信息安全导论.北京邮电大学出版社,2007.

[4]John Viega,Gary McGraw著.钟向群,王鹏译.构建安全的软件:避免产生软件安全问题的正确方法.清华大学出版社,2003.

[5]Alan G.Konheim著.唐明,王后珍,韩海清,李春雷,童言,杨启译.计算机安全与密码学.电子工业出版社,2010.

上一篇:让志愿精神真正走进中职生群体 下一篇:通胀压力下的人民币理财产品开发与创新