浅谈数据库数据安全防护措施

发表时间:2020/7/31   来源:《中国电业》2020年3月第7期   作者:师维 高强
[导读] 本文从数据库管理系统程序设计的技术角度定性讨论实现数据安全的一般方法,包括用户识别、访问权限控制和数据加密等。
        摘要:随着信息时代的来临,信息和数据需要利用数据库管理系统来管理。开发数据库管理系统面临一个重要问题,即数据安全。本文从数据库管理系统程序设计的技术角度定性讨论实现数据安全的一般方法,包括用户识别、访问权限控制和数据加密等。

关键词:数据库  安全  用户识别  权限控制  数据加密

        随着信息时代的来临,信息和数据需要利用数据库管理系统来管理。对一个数据库管理系统而言,最重要的莫过于它所管理的对象本身—数据。如何保证被管理的数据的安全是开发数据库管理系统时应该考虑的一个重要问题。
        数据安全的内容涉及多个方面。如:保护计算机、数据存贮设备、网络通信设备等不遭受物理破坏;系统软件、应用软件、数据等不遭受无意或恶意的破坏,不被非授权用户所使用;数据机密不被泄露等。保护数据的安全也应采取多种措施,如:把计算机放置在安全可靠的地方,指定专人警卫、管理和维护;制定必要的法律和规章制度;对系统设置软、硬件保护机构;对重要数据常做备份,以便数据遭受破坏时及时恢复等。本文仅从数据库管理系统程序设计的角度定性讨论实现数据安全的一般方法。
        用户识别:
        用户识别就是对用户的身份进行鉴别,合法的授权用户可以对数据进行访问,而将非法的非授权用户拒之门外是保证数据安全的重要措施。用户识别主要有三种方法:
        1.利用用户的物理特征,如:指纹、声音等,在理论上这种方法最可靠,但实现起来有一定的难度;
        2.利用用户的特有证件,如身份证、磁卡、条码卡等,这种方法容易被他人盗用;
        3.利用密码(口令)保护,这是目前数据库管理系统中进行用户识别的主要方法。
        ① 固定密码:软件开发者在设计应用程序时,将密码固定设计在应用程序中,程序运行时要求用户输入密码,并与固定密码相比较进行判别。这种密码的设计很简单,并且不能由用户自行改变,在各种工具软件尚不发达的时代,对不具备计算机软件知识的用户,固定密码尚有一定的作用,现阶段固定密码已很难起到应有的保护作用。
        ② 可变密码:其密码值可由用户根据需要自行设定,这种方式必须有一个保存密码的文件或位置来保存所设置的密码。对密码保护来说,密码的安全在一定程度上也就是数据的安全,因此可变密码一般都不是直读的,必须经过运算才能进行存取(也就是说对密码进行加密处理,加密的方法在后面再讨论),密码的存放位置也是有讲究的,例如:对Foxpro用户,可将密码保存在Foxuser.dbf或Foxuser.fpt[1]中的某个位置,甚至可将密码隐藏中Windows的注册表中。这种方法的密码设置灵活,在数据库管理系统中应用较多。
        ③ 随机访问密码:密码的出现是不定时的,而是以随机出现的方式来询问用户。也就是说,用户可能在执行完一个功能之后被要求输入密码。这种密码保护比较隐秘,效果也很好,但用户使用起来稍有不便。
        访问权限控制:
        我们知道,密级可分为绝密、机密、秘密,同样,数据也可根据其机密程度划分为绝密数据、机密数据、秘密数据、一般数据。假如我们规定普通用户只能访问一般数据,三级用户可以访问秘密数据和一般数据,二级用户可以访问机密数据、秘密数据和一般数据,一级用户可以访问绝密数据、机密数据、秘密数据、一般数据,也就是说只有用户的安全级别高于或等于某数据的安全级别时他才可以访问该数据。对不同用户所能访问的数据进行控制,就是权限控制。权限控制的目的就是限制用户不必要的访问权利,从而堵截许多破坏与泄露数据信息的途径。权限控制的依据是“需者方知策略”(只有一个人工作需要的才是他应该知道的)或“最少特权策略”(授予用户的权利,是用户能完成工作的最小权利集合)。如:一个简单的工资管理系统,对不同的用户采用不同的密码保护,知道一般口令的一般用户只能对工资系统进行查询、统计、打印等操作,而知道高级密码的高级用户则可以对工资系统进行添删、编辑、修改等操作,这就是权限控制的一个典型例子。
        进行权限控制的主要任务是将用户及其访问的数据分别进行分组归类,并明确限制各组用户访问的数据类别。
        在进行权限控制时,还应控制数据的流动,防止数据流动后被无权用户访问。例如:数据文件A对于用户乙是保密的,但合法用户甲可以移动数据文件A,如果甲将文件A移动到数据文件B中,那么乙访问了数据文件B也就获得了数据文件A的相关信息。
        另一个在权限控制时应该考虑的问题是推断控制。推断控制的含义是:用户虽不能直接获得禁止他访问的信息,但他可以利用多次允许访问的结果经过逻辑推理得到他无权访问的数据信息。
        数据加密:
        以上所介绍的数据安全措施只是限制用户对数据的非法访问,如果非法用户以某种手段获得了访问权或获取了数据文件,这时数据文件本身对他而言则是完全“透明”的。如果将数据文件加密保存,那么在没有解密前,非法获得的数据文件只不过是无序的、没有意义的数据集合(合法用户在使用前,根据加密规则对数据解密后再进行访问)。这就是我们要讨论的数据加密。数据加密有三种基本方法:信息编码、信息换位和信息替换。
        1.信息编码:数据文件一般是由西文字符、标点符号、汉字等排列而成,将西文字符、标点符号、汉字等用数码表示,就是编码。如:汉字区位码、电报码、ASCⅡ代码等,但这些编码都是公开的,不能用于保密场合,作为数据库管理系统的数据信息编码,要根据需要另行编制。
        2.信息换位[2]:就是将数据文件的信息符号另行排列。例如将“10月6日0时整执行1号方案”经过换位可变成“6号方案1月执行10时整0日”,令非法访问者不知所云。信息换位常用的方法有:
        ① 字符换位:将数据文件所包含的所有字符重新排列,如上例;
        ② 分组换位:将很长的数据源文件按固定长度分组,每组都按同一规则(关键码)排列。
        3.信息替换:在数据加密时,以某一个字符代替源文的另一个字符,再加以保存,解密时再用相同的字符替换回来。
        ① 固定替换:对源文中的每一个字符选择另一个字符替换它。如下表:用Q替换源文中的A,用P替换源文中的B,依此类推。

        ② 非固定替换:确定替换的规律而不固定替换的字符。常用的有位移法,最简单的位移法就是给源文每个字符的ASCⅡ代码加上(或减去)某一个密码键值再保存。如下表:给源文的每个ASCⅡ代码(十进制)加上键值10(十进制)。

        ③ 异或运算:在用计算机进行数据管理时,数据文件在计算机和存贮设备中都是以二进制形式出现的,把数据文件与加密关键码的二进制码进行异或运算就可以很容易的得到加密结果,解密时把密码文与关键码的二进制码再做异或运算就得到源文的二进制码。
        以上各种加密方法各有其优缺点。这些加密方法不仅可以用于对数据文件加密,也适用于密码(口令)的加密保护。为了增强保密性,增加破译难度,各种加密方法还可以组合使用。
        数据加密是保证数据安全的主要手段,世界上有许多制密标准和密码算法,用户可根据管理数据的机密等级及其它因素综合考虑所应采取的数据安全方法。
       
参考文献:
[1]杨竞. Foxpro 2.5 for Windows资源文件的使用与维护[J]. 计算机与通信, 1995.
[2]王广超. 换位变换及其在信息加密中的应用[J]. 科学技术与工程, 2006(15):124-125+129.

 
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: