mysql安全保密设计_数据库安全于保密随着计算机科学技术的发展与普及,
特别是计算机在国民经济各重要部门的⼴泛应⽤
计算机安全已是当前信息社会⾮常关注的突出问题
⽽数据库系统
担负着存储和管理上述数据信息的任务。因⽽
如何保证和加强其安全性和保密性
已成为⽬前迫切需要解决的热门课题。
⼀、 数据库安全与保密概述
数据库系统
⼀般可以理解成两部分⼀部分是数据库
按⼀定的⽅式存取数据另⼀部分是数据库管理系统(DBMS)
易语言vip教程为⽤户及应⽤程序提供数据访问
并具有对数据库进⾏管理、维护等多种功能。
数据库系统安全
包含两层含义
第⼀层是指系统运⾏安全
它包括
法律、政策的保护
如⽤户是否有合法权利
政策是否允许等
物理控制安全
如机房加锁等
硬件运⾏安全
操作系统安全
如数据⽂件是否保护等
灾害、故障恢复
route delete删除路由死锁的避免和解除
电磁信息泄漏防⽌。
第⼆层是指系统信息安全
它包括
⽤户⼝令字鉴别
⽤户存取权限控制
数据存取权限、⽅式控制mysql语句分类
审计跟踪
数据加密。
⼆、 数据库基本安全架构
数据库系统信息安全性依赖于两个层次⼀层是数据库管理系统本⾝提供的⽤户名/⼝令字识别、视图、使⽤权限控制、审计等管理措施⼤型数据库管理系统Oracle、Sybase、Ingress等均有此功能另⼀层就是靠应⽤程序设置的控制管理
如使⽤较普遍的Foxbase、Forpro等。作为数据库⽤户
最关⼼⾃⾝数据资料的安全
特别是⽤户的查询权限问题。对此
⽬前⼀些⼤型数据库管理系统(如Oracle、Sybase等产品)提供了以下⼏种主要⼿段。
⒈ ⽤户分类
不同类型的⽤户授予不同的数据管理权限。⼀般将权限分为三类数据库登录权限类、资源管理权限类
和数据库管理员权限类。
有了数据库登录权限的⽤户才能进⼊数据库管理系统
才能使⽤数据库管理系统所提供的各类⼯具和实⽤程序。同时
数据库客体的主⼈可以授予这类⽤户以数据查询、建⽴视图等权限。这类⽤户只能查阅部分数据库信息
不能改动数据库中的任何数据。
具有资源管理权限的⽤户
除了拥有上⼀类的⽤户权限外
还有创建数据库表、索引等数据库客体的权限
可以在权限允许的范围内修改、查询数据库
还能将⾃⼰拥有的权限授予其他⽤户
可以申请审计。
具有数据库管理员权限的⽤户将具有数据库管理的⼀切权限
包括访问任何⽤户的任何数据
授予(或回收)⽤户的各种权限
创建各种数据库客体
完成数据库的整库备份、装⼊重组以及进⾏全系统的审计等⼯作。这类⽤户的⼯作是谨慎⽽带全局性的⼯作
只有极少数⽤户属于这种类型。
⒉ 数据分类
同⼀类权限的⽤户
对数据库中数据管理和使⽤的范围⼜可能是不同的。为此
DBMS提供了将数据分类的功能
即建⽴视图。管理员把某⽤户可查询的数据逻辑上归并起来
简称⼀个或多个视图
并赋予名称
在把该视图的查询权限授予该⽤户(也可以授予多个⽤户)。这种数据分类可以进⾏得很细
其最⼩粒度是数据库⼆维表中⼀个交叉的元素。
⒊ 审计功能
⼤型DBMS提供的审计功能是⼀个⼗分重要的安全措施
它⽤来监视各⽤户对数据库施加的动作。有两种⽅式的审计
即⽤户审计和系统审计。⽤户审计时
DBMS的审计系统记下所有对⾃⼰表或视图进⾏访问的企图(包括成功的和不成功的)及每次操作的⽤户名、时间、操作代码等信息。这些信息⼀般都被记录在数据字典(系统表)之中
利⽤这些信息⽤户可以进⾏审计分析。系统审计由系统管理员进⾏
其审计内容主要是系统⼀级命令以及数据库客体的使⽤情况。
三、 数据库加密
⼀般⽽⾔
数据库系统提供的上述基本安全技术能够满⾜⼀般的数据库应⽤
但对于⼀些重要部门或敏感领域的应⽤
仅靠上述这些措施是难以完全保证数据的安全性
某些⽤户尤其是⼀些内部⽤户仍可能⾮法获取⽤户名、⼝令字
或利⽤其他⽅法越权使⽤数据库
甚⾄可以直接打开数据库⽂件来窃取或篡改信息。因此
有必要对数据库中存储的重要数据进⾏加密处理
以实现数据存储的安全保护。
⒈ 数据库密码系统的基本流程
数据加密
就是将明⽂数据经过⼀定的交换(⼀般为变序和代昀)变成密⽂数据。
数据脱密是加密的逆过程
即将密⽂数据转变成可见的明⽂数据。
⼀个密码系统包含明⽂集合、密⽂集合、密钥集合和算法
其中密钥和算法构成了密码系统的基本单元。算法是⼀些公式、法则或程序
规定明⽂与密⽂之间的变换⽅法
密钥可以看作算法中的参数。
数据库密码系统要求将明⽂数据加密成密⽂数据
数据库中存储密⽂数据
查询时将密⽂数据取出脱密得到明⽂信息。
⒉ 数据库加密的特点
较之传统的数据加密技术
数据库密码系统有其⾃⾝的要求和特点。传统的加密以报⽂为单位
加脱密都是从头⾄尾顺序进⾏。数据库数据的使⽤⽅法决定了它不可能以整个数据库⽂件为单位进⾏加密。当符合检索条件的记录被检索出来后
就必须对该记录迅速脱密。然⽽该记录是数据库⽂件中随机的⼀段
⽆法从中间开始脱密
除⾮从头到尾进⾏⼀次脱密
然后再去查相应的这个记录
显然这是不合适的。必须解决随机地从数据库⽂件中某⼀段数据开始脱密的问题。
⑴ 数据库密码系统应采⽤公开密钥
传统的密码系统中
密钥是秘密的
知道的⼈越少越好。⼀旦获取了密钥和密码体制就能攻破密码
解开密⽂。⽽数据库数据是共享的
汇编语言美元符号有权限的⽤户随时需要知道密钥来查询数据。因此
数据库密码系统宜采⽤公开密钥的加密⽅法。设想数据库密码系统的加密算法是保密的
⽽且具有相当的强度
dll编译exe易语言源码那么利⽤密钥
采⽤OS和DBMS层的⼯具
也⽆法得到数据明⽂。
⑵ 多级密钥结构
数据库关系运算中参与运算的最⼩单位是字段
查询路径依次是库名、表名、记录名和字段名。因此
字段是最⼩的加密单位。也就是说当查得⼀个数据后
该数据所在的库名、表名、记录名、字段名都应是知道的。对应的库名、表名、记录名、字段名都应该具有⾃⼰的⼦密钥
这些⼦密钥组成了⼀个能够随时加/脱密的公开密钥。
可以设计⼀个数据库
其中存放有关数据库名、表名、字段名的⼦密钥
系统启动后将这些⼦密钥读⼊内存供数据库⽤户使⽤。与记录相对应的⼦密钥
⼀般的⽅法应是在该记录中增加⼀条⼦密钥数据字段。
⑶ 加密机制
有些公开密钥体制的密码
如RSA密码
其加密密钥是公开的
算法也是公开的
但是其算法是个⼈⼀套
⽽作为数据库密码的加密算法不可能因⼈⽽异
因为寻这种算法有其⾃⾝的困难和局限性
机器中也不可能存放很多种算法
因此这类典型的公开密钥的加密体制也不适合于数据库加密。数据库加/脱密密钥应该是相同、公开的⽽加密算法应该是绝对保密的。
数据库公开密钥加密机制应是⼀个⼆元函数
密⽂=F(密钥
明⽂)
当加密算法F确定之后
只要给出密钥和待加密的明⽂
即可得到相应的密⽂。脱密过程即是加密过程的逆过程
明⽂=F-1(密钥
密⽂)
由此可知
数据库密码的加密机制应是既可加密⼜可脱密的可逆过程。
⑷ 加密算法
加密算法是数据加密的核⼼
⼀个好的加密算法产⽣的密⽂应该频率平衡
activex随机⽆重码规律
周期很长⽽⼜不可能产⽣重复现象。窃密者很难通过对密⽂频率、重码等特征的分析获得成功。同时算法必须适应数据库系统的特性
加/脱密响应迅速。
著名的MH背包算法就是⼀种适合数据库加密的算法。它的基本思想是有⼀个函数F
使X=F(K,Y)
在这⾥X相当于公开密钥向量
Y相当于明⽂。在算法F不公开的情况下
若已知K和X
要还原出Y来
穷尽次数为2n次。如果向量的分量n较⼤时
⽤穷尽的⽅法来还原将是⼗分困难的。
⒊ 数据库加密的范围
数据加密通过对明⽂进⾏复杂的加密操作
以达到⽆法发现明⽂和密⽂之间、密⽂和密钥之间的内在关系
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论