企业数据库安全与加密设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
企业数据库安全与加密设计
企业需要保证计算机数据库信息网络安全,以确保重要信息不被侵害,数据库信息的安全尤为重要,那么我们今天就来看一下企业数据库是如何加密的?
一、数据库系统安全策略
1、安全管理策略
安全管理策略分为集中式控制和分布式控制。对于集中式控制,一个授权管理员或组,控制着系统的所有安全;对有分布式控制,不同的授权管理员或组,控制着数据库安全的不同部分。
2、存取控制策略
在数据库系统中,存取控制是实施安全策略常用的手段,为了保证用户只能存取有权存取的数据,系统要求对每个用户定义存取权限(即授权)。存取权限包括两个方面的内容,即要存取的数据对象和对此数据对象进行哪些类型的操作(读、写、删、改等)。在非关系数据库中,用户只能对数据进行操作,存取控制的数据对象也只限于数据本身。而关系数据库系统中,数据库管理员可以把建立和修改基本表的权限授予用户,用户可利用权限建立和修改基本表、索引、视图。因此,关系系统中存取控制的数据对象不仅有数据本身,还有存储模式、概念模式、子模式等内容。
存取控制对系统中的对象进行了两种划分:一个是主体,一个是客体。主体是系统中的活动实体,包括DBMS所管理的实际用户、代表用户的各进程。客体是系统中受主体操纵的被动实体,包括文件、基本表、索引、视图等。存取控制就是在主体欲对客体进行存取时,检
查主体的合法性(即权限),确保数据不被非法查询和修改。存取控制模型分为自主存取控制、强制存取控制和基于角色的存取控制。无论哪种控制都是有关不同权限的用户对不同数据进行不同操作权限的控制问题。
3、审计日志
日志记录十分重要,管理员可以通过对日志的维护了解用户所进行的操作,另外日志记录也是进行安全入侵检测的必须数据。审计主要是跟踪记录某些保密数据的访问活动。为了使日志记录的消息不丢失,可将存放日志的数据库置于与主机分离的机器上,允许添加和读取数据库,但不允许修改。
二、数据库加密技术
数据库系统提供的上述措施难以完全保证数据安全性,某些用户仍可能非法获取用户名、口令字,或利用其他方法越权使用数据库,甚至直接窃取或篡改数据库信息。因此,有必要对数据库中存储的重要数据进行加密处理,安全保护存储数据。
1、数据加密
数据加密就是将明文数据M经过一定的交换变成密文数据C,解密是加密的逆过程。数据库密码系统要求将M加密成C,C存储到数据库中,查询时将C取出解密得到NI。数据库数据加/解密处理过程如图1所示。
2、加密算法
基于密钥的算法通常有两类:对称加密算法和公开密钥算法(又称非对称加密算法)。
大多数对称加密算法的加密密钥和解密密钥相同,安全性依赖于密钥k,要求发送者和接受者在安全通信之前商定一个k,算法为:加密E k(M)=C和解密Dk(C)=M。根据对明文信息的加密方式,对称算法又可分为序列密码和分组密码两大类:序列密码直接对当前的字符进行变换,每次加密一位或者一个字节的明文,每一字符数据的加密与明文的其他部分无关;分组密码将明文按一定的位长分组(通常是64或128位),对各组数据用不同的密钥加密或解密。公开密钥算法,加密密钥(是公开的,简称公钥)与解密密钥(简称私钥)不相同,且私钥不能从公钥计算出来(至少在合理假定的时间内)。用公钥ka加密既Eka (M)=C,只有用相应的私钥ka’才能解密Dka’(C)=M。
公钥钥算法的速度很慢,不能满足数据库文件加密对密码的要求;而对称密码中的序列密码适用于通信领域,对数据库加密来说也不适合;分组密码的速度快,对密文攻击不敏感,保密强度高,可以用于数据库加密。因此,在数据库加密中,一般都采用分组密码算法,如DES、三重DES、IDEA、AES等。
3、数据库加密方式
(1)库外加密
整个数据库作为普通文件看待,把数据分块先在库外进行加密,然后把每次加密后的数据块写入到数据库文件中(而不是按数据关系写入)。读出时逆向解密即可。
(2)库内加密
经典的数据库系统将内部结构划分为三层(存储模式、概念模式和子模式),可以在三层结构的各层映射之间增加一个加密映射层次(即加密模式)。对数据进行加密的粒度可以是表、记录、字段或数据元素。所选择的加密粒度越精细,需要掌管的加密密钥的数量就愈大,密钥管理的难度和复杂性就越高。由于是在数据库管理系统内部实现,所以与数据存取访问控制等数据库安全机制的结合比较自然有效。
1)基于表的加密
使用传统的单密钥密码体制,不适合分布式数据库系统。
2)基于记录的加密
记录在各自密钥的作用下,加密成密文并存放于相关数据库文件中;记录的查找是将欲查找值加密成密文后进行的。加密后的记录不能实现索引、连接、统计、排序等操作。
3)基于字段的加密
将记录中的一部分字段进行加密。对于用于索引项、比较、表间连接的关键字等字段不进行加密,否则大大影响查询速度,甚至无法使用恻。
三、企业数据库安全及加密设计
下面针对一个小型企业的购销系统的安全与保密问题,提出安全系统设计方案,使其具有身份认证、存取权限控制、信息加、解密和密钥管理等功能。购销系统安全结构如图2所示。
1、用户权限控制
系统首先对用户发出的访问请求进行身份和授权认证,具有合法权限的用户才能进入系统操作环境,对数据库进行权限范围内的访问;同时,将认证及访问情况记录在日志中,便于日志审计。安全认证管理流程如图3所示。
对用户Uc的权限a管理采用一个三元授权函数f:U× D×A→(True,False)完成。授权模型为三元组(uc,dc,a),uc,dc,a分别为:按数据库中密文数据不同的安全等级将数据划分为不同的数据类畋,记数据类集合为D,dc∈D;按用户的访问权限将用户划分为不同的用户类Uc,记用户类集合为U,Uc∈U;定义A为授权类型集合(读,写,修改等),权限a∈A。当f(uc,dc,a)=True时表明用户类Uc对数据类Dc有a权限;为False 则无权限。
2、信息存取控制