【梳理】数据库系统概论 第4章 数据库安全性 4.4 审计 4.5 数据加密 4.6 其它安全性保护

教材:王珊 萨师煊 编著 数据库系统概论(第5版) 高等教育出版社
注:文档高清截图在后

4.4 审计

1、前面提到的用户身份鉴别、存取控制,都是数据库安全保护的重要技术,但这是安全策略方面的,并不是全部。为了使DBMS达到更高的安全级别,还需要提供其它的支持。审计(audit)是达到TDI/TCSEC标准中C2以上安全级别的必不可少的一项指标。该功能把用户对数据库的全部操作都记录下来放入专门的审计日志。审计员通过审计日志监控、追查数据库中发生的行为,重现导致数据库出现状况的一系列事件,找出非法存取的主体、时间和内容等。审计通常是很浪费空间和时间的。所以DBMS往往将审计设为可选特征,允许DBA根据具体应用对安全性的要求灵活地部分打开或部分关闭审计功能。审计主要用于安全性要求较高的部门。可审计的事件有服务器、权限、语句及模式对象相关的事件,还包括用户鉴别、DAC和MAC相关的事件。也就是说用户从登录到退出之间的一系列过程(包括登入登出)都可以被记录下来。审计包括成功操作也包括失败操作。

2、审计事件一般有多个类别,比如:
·服务器事件:对数据库服务器发生的事件的审计,启动、停止,软件的安装、修改、删除等。
·系统权限:对系统拥有的结构或模式操作的审计。
·语句事件:对SQL语句(DDL、DML、DCL)的审计。
·模式对象事件:对模式对象上的SELECT或DML操作(查增删改)的审计。模式对象有:表、视图、存储过程、函数等。模式对象不包括依附于表的索引、约束、触发器、分区表等。

3、审计功能主要包括以下几方面:
·基本功能,提供多种审计查阅方式:基本的、可选的、有限的,等等。
·提供多套审计规则,审计规则一般在数据库初始化时设定,方便管理。例如:只审计对关键部分的操作、审计全部操作等若干套规则都内置在数据库中,初次运行时默认选择某种。
·审计分析和审计报表功能。
·审计日志管理功能,包括防止误删(强制先转储后删除);对转储的审计记录提供完整性和保密性保护;只允许审计员查阅和转储;不允许审计员以外的任何用户读写系统审计;等等。
·系统提供查询审计设置及审计记录信息的专门视图。对系统权限、语句、模式对象的审计记录也可通过相关的系统表直接查看。

4、AUDIT和NOAUDIT分别用来设置和取消审计。
审计一般分为用户级和系统级两个级别。用户级审计是任何用户都可设置的,主要是用户针对自己创建的表或视图审计,记录所有用户对这些表的访问和SQL操作(无论成功失败)。系统级审计只有DBA可以设置,用于检测登录成功或失败、授权和收回授权及其它数据库级权限的操作。

5、数据库安全审计提供了一种事后检查的安全机制。安全审计机制将特定用户或特定对象的相关操作都记录下来,作为日后查询分析和追踪的依据。审计机制可以约束可能的恶意操作。

4.5 数据加密

1、数据加密是防止数据库数据在存储和传输过程失密的有效手段。加密的基本思想是根据一定的算法将原始数据(明文,plain text)变换为不能直接识别的格式(密文,cipher text),从而使未掌握解密算法的人无法获知数据的内容。数据加密主要包括存储加密和传输加密。

2、存储加密一般提供透明和非透明两种加密方式。透明存储加密是内核级加密,对用户完全透明(不可见)。非透明存储加密则通过多个加密函数实现。透明存储加密在数据写入磁盘时对数据加密,授权用户读取时解密。由于对用户透明,在创建类语句中只需说明需加密的字段即可令DBMS在写入时自动加密数据。数据库内核已经提供了良好的加解密方法。

3、传输加密是为了防止明文传输的数据被恶意用户截获或篡改的加密功能。常用的加密方式有链路加密和端到端加密。链路加密对传输数据在链路层加密,其传输信息由报头和报文两部分组成,前者是路由选择信息,后者是传送的数据信息。报文和报头均被加密。端到端加密则是在发送端加密、接收端解密,只加密报文而不加密报头。该方法仅在收发端需要密码设备,中间节点都不需要,成本较低。但由于不加密报头,易被非法监听者发现并在窃取信息后尝试解密。

4、以下是一种基于SSL(Security Socket Layer,安全套接层协议)的DBMS可信传输方案:用户和数据库服务器通过可信通信模块完成传输。传输分5步:(1)创建可信连接;(2)确认通信双方端点的可靠性;(3)协商加密算法和密钥;(4)可信传输数据;(5)关闭可信连接。
该方案的通信加密对应用程序透明。它的主要思路有如下三点:
【1】确认通信双方端点的可靠性。
DBMS采用基于数字证书的服务器和客户端认证方式实现可靠性确认。用户和服务器各自拥有知名数字证书认证(CA)中心或企业内建的CA颁发的数字证书。通信时双方均首先向对方提供己方证书,然后根据本地的CA信任列表和证书撤销列表(Certificate Revocation List,CRL)对对方证书验证,确保证书合法有效,进而保证对方确系通信的目的端。
【2】协商加密算法和密钥。
确认可靠性后,协商本次会话采用的加密算法和密钥。此过程通信双方利用公钥基础设施(Public Key Infrastructure,PKI)保证服务器和客户端的协商过程的通信本身是安全可靠的。每次会话时,都会指定新的密钥。
【3】可信数据传输。
加密算法和密钥协商完成后,开始数据交换。数据发送前,会用某一组特定的密钥进行加密和摘要(哈希)计算,密文传输。数据接收时,采用相同的密钥进行解密和摘要计算。密钥的选定是在协商加密算法和密钥期间决定的,且仅为双方所共享。第三方即使窃取密文,也会因为无会话密钥而无法破解信息。如果第三方篡改信息,则哈希结果会改变。哈希不匹配时,这部分数据需要重新传送。
数据库加密后,数据安全性会进一步提高。但数据库加密增加了查询与修改的复杂性,运行速率会被影响。加密数据的密钥管理和加密对应用程序的影响也是需要考虑的问题。

4.6 其它安全性保护

1、推理控制(inference control)处理的是MAC未解决的问题。例如不同的列之间的信息具有一定的约束关系,用户有时能够仅通过低密级信息和相关的背景知识推导出无权访问的高密级信息,从而间接泄密。数据库推理控制机制避免用户推知更高密级的数据。推理控制的常用实现方法有基于函数依赖的推理控制和基于敏感关联的推理控制等。

2、隐蔽信道(covert channel)处理的也是MAC未解决的问题。下面是一个利用未被MAC拦截的SQL执行后反馈的信息进行间接信息传递的例子:
已知某表的某属性具有UNIQUE修饰。大量尝试插入元组,当插入的元组与已有元组的该属性的值重复时,就会报错,操作失败;否则操作成功。在经过长时间的碰撞后,至少能够根据插入何值时操作被拒绝来确定该列属性中已经存在的内容。这也造成了信息流从高安全等级向低安全等级流动,造成高密级信息泄露。
通常的加密并没有加密“某端向另一端正在传输数据”这个事实本身。通过隐蔽信道通信,就是通过不可被检测到的传输网络通信。既然连网络中哪个端和哪个端正传输想要的数据都无法确切得知,自然也就无法截获和篡改传输的涉密数据了。

【梳理】数据库系统概论 第4章 数据库安全性 4.4 审计 4.5 数据加密 4.6 其它安全性保护_第1张图片
【梳理】数据库系统概论 第4章 数据库安全性 4.4 审计 4.5 数据加密 4.6 其它安全性保护_第2张图片
【梳理】数据库系统概论 第4章 数据库安全性 4.4 审计 4.5 数据加密 4.6 其它安全性保护_第3张图片
【梳理】数据库系统概论 第4章 数据库安全性 4.4 审计 4.5 数据加密 4.6 其它安全性保护_第4张图片
【梳理】数据库系统概论 第4章 数据库安全性 4.4 审计 4.5 数据加密 4.6 其它安全性保护_第5张图片

你可能感兴趣的:(基础课,#,数据库系统原理)