《数据库加密与安全.ppt》由会员分享,可在线阅读,更多相关《数据库加密与安全.ppt(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第七章第七章 数据库加密与安全数据库加密与安全1数据库数据库概念概念概念概念数据模型数据模型数据模型数据模型2数据库安全的要求数据库安全的要求数据库加密技术数据库加密技术数据库安全策略数据库安全策略3一一 数据库安全的要求数据库安全的要求数据加密是否足够?数据加密是否足够?若若S中中9501被删除被删除即使是合法用户也会无意破坏数据即使是合法用户也会无意破坏数据建立完整性规则建立完整性规则数据完整性:数据完整性:保证用户对数据进行操作时,不仅要保保证用户对数据进行操作时,不仅要保证数据是正确的,还要保证证数据是正确的,还要保证数据之间的关系数据之间的关系是正确的。是正确的。snosname95
2、01alice9502bobSnoCnoGrade95011929502388SSC4一一 数据库安全的要求数据库安全的要求数据库多用户共享,如何跟踪对数据库的操作?数据库多用户共享,如何跟踪对数据库的操作?审计能力审计能力能对数据库中的访问操作进行跟踪,保存记录下谁、何时、能对数据库中的访问操作进行跟踪,保存记录下谁、何时、何地的访问被拒绝,因何拒绝,记录下数据库查询、密码利何地的访问被拒绝,因何拒绝,记录下数据库查询、密码利用率、终端动作、系统利用率、错误情况及重新启动和恢复用率、终端动作、系统利用率、错误情况及重新启动和恢复等;等;如何保证用户只访问它所能访问的数据?如何保证用户只访问它
3、所能访问的数据?访问控制访问控制保保证证用用户户仅仅访访问问那那些些允允许许他他访访问问的的数数据据,同同时时保保证证对对不不同同的的用户限制使用不同的访问模式,如只读、读写等;用户限制使用不同的访问模式,如只读、读写等;是否和普通的是否和普通的OS访问控制一样?访问控制一样?限制推理限制推理 5一一 数据库安全的要求数据库安全的要求用户认证用户认证不允许一个未经授权的用户对数据库进行操作不允许一个未经授权的用户对数据库进行操作有效性有效性授授权权用用户户能能够够最最大大限限度度地地访访问问允允许许他他访访问问的的数数据据,同时避免访问被保护的数据。同时避免访问被保护的数据。实时响应实时响应重
4、重要要的的系系统统应应采采取取安安全全控控制制实实时时终终端端,专专门门处处理理各各类报警信息。类报警信息。6一一 数据库安全的要求数据库安全的要求完整性完整性安全性安全性可恢复性可恢复性7数据库安全数据库安全系统实体安全系统实体安全系统实体安全系统实体安全 环境安全、设备安全、媒体安全环境安全、设备安全、媒体安全环境安全、设备安全、媒体安全环境安全、设备安全、媒体安全系统运行安全系统运行安全系统运行安全系统运行安全 审计跟踪、分险分析、备份与恢复、灾难应急审计跟踪、分险分析、备份与恢复、灾难应急审计跟踪、分险分析、备份与恢复、灾难应急审计跟踪、分险分析、备份与恢复、灾难应急系统信息安全系统信
5、息安全系统信息安全系统信息安全 身份鉴别、访问控制、病毒防护、数据库加密身份鉴别、访问控制、病毒防护、数据库加密身份鉴别、访问控制、病毒防护、数据库加密身份鉴别、访问控制、病毒防护、数据库加密8一一 数据库安全的要求数据库安全的要求数据库安全标准数据库安全标准1985年美国国防部正式颁布的年美国国防部正式颁布的DoD可信计算可信计算机系统评估标准机系统评估标准TCSEC1991年年4月美国国家计算机安全中心颁布了可月美国国家计算机安全中心颁布了可信计算机系统评估标准关于可信数据库系统的信计算机系统评估标准关于可信数据库系统的解释简记为解释简记为TDI。将。将TCSEC扩展到数据库管扩展到数据库
6、管理系统。理系统。TDI中定义了数据库管理系统的设计与实现中需中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。满足和用以进行安全性级别评估的标准。9一一 数据库安全的要求数据库安全的要求安全级别安全级别定义定义A1验证设计(验证设计(Verified Design)B3安全域(安全域(Security Domains)B2结构化保护(结构化保护(Structural Protection)B1标记安全保护(标记安全保护(Labeled Security Protection)C2受控的存取保护(受控的存取保护(Controlled Access Protection)
7、C1自自 主主 安安 全全 保保 护护(Discretionary Security Protection)D最小保护(最小保护(Minimal Protection10二二 数据库加密技术数据库加密技术1 数据库加密的必要性数据库加密的必要性2 数据库加密的特点数据库加密的特点(技术要求技术要求)字段加密字段加密密钥动态管理密钥动态管理合理处理数据合理处理数据不影响合法用户的操作不影响合法用户的操作11二二 数据库加密技术数据库加密技术3 数据库加密方法数据库加密方法数据库的数据组织方式可以有很多种类数据库的数据组织方式可以有很多种类一个数据库表对应一个操作系统管理的文件一个数据库表对应一个
8、操作系统管理的文件整个数据库组织为一个大的文件,甚至可以是跨硬整个数据库组织为一个大的文件,甚至可以是跨硬件设备文件卷的大文件。件设备文件卷的大文件。一些数据库管理系统将操作系统的功能接管过来,一些数据库管理系统将操作系统的功能接管过来,整个数据库管理系统包括了操作系统的文件系统功整个数据库管理系统包括了操作系统的文件系统功能,形成专用的数据库系统。能,形成专用的数据库系统。123 数据库加密方法数据库加密方法库外加密库外加密由文件系统内对数据进行加由文件系统内对数据进行加/解密解密 库外加密方式的优点库外加密方式的优点对对数数据据库库管管理理系系统统DBMS的的特特殊殊要要求求比比较较少少,
9、实实现现上上只只要要增增加加一一个个中中间间层层次次负负责责加加解解密密数数据据即即可可。相相对对于于其其它它方方法法,密密钥钥的的管管理理也也简简单单得得多多,与与操操作作系系统统内内部部文文件件加加密密的密钥管理基本相同。的密钥管理基本相同。库外加密方式的缺点库外加密方式的缺点但但是是由由于于数数据据在在查查找找是是必必须须全全部部进进行行解解密密操操作作,因因此此往往往需要往需要付出较大的时空代价付出较大的时空代价。133 数据库加密方法数据库加密方法库内加密库内加密经典的数据库三层模式经典的数据库三层模式数数据据库库数数据据加加密密问问题题的的核核心心就就是是在在数数据据的的各各个个层
10、层次次的的映映射射过过程程中中增增加加一一个个加加密密映映射射层层次次,或或者者称称之之为为加密模式。加密模式。加密映射层次位于内模式和存储模式之间为好。加密映射层次位于内模式和存储模式之间为好。加密单位或者加密单位或者粒度粒度可以是表、记录、域或数据元素。可以是表、记录、域或数据元素。显显然然所所选选择择的的加加密密粒粒度度越越精精细细,需需要要掌掌管管的的加加密密密密钥钥的的数数量就愈大,量就愈大,密钥管理的难度和复杂性就越高密钥管理的难度和复杂性就越高。粒粒度度细细化化,加加密密、解解密密的的针针对对性性比比库库外外加加密密方方式式更更强强,所所以原则上讲以原则上讲时空效率时空效率应当说
11、是比较应当说是比较好好的。的。有有利利于于和和数数据据存存取取访访问问控控制制机机制制、授授权权机机制制等等数数据据库库安安全全机制的结合机制的结合143 数据库加密方法数据库加密方法硬件加密硬件加密硬件加密主要解决静态数据加密问题。硬件加密主要解决静态数据加密问题。154 数据库加密算法数据库加密算法数据长时间保存,运行中又要对数据进行反复操作,数据长时间保存,运行中又要对数据进行反复操作,操作时机又是随机的。操作时机又是随机的。适用于数据库环境的特殊的数据库加密技术。适用于数据库环境的特殊的数据库加密技术。(1)子密钥数据库加密算法)子密钥数据库加密算法(2)秘密同态算法)秘密同态算法16
12、经过加密的数据经得起来自经过加密的数据经得起来自OS和和DBMS的攻击;的攻击;另另一一方方面面,DBMS要要完完成成对对数数据据库库文文件件的的管管理理和和使使用,用,必须具有能够识别部分数据的条件必须具有能够识别部分数据的条件。因此,只能对数据库中数据进行部分加密。因此,只能对数据库中数据进行部分加密。下面列出一些不能加密的数据:下面列出一些不能加密的数据:索引字段不能加密索引字段不能加密 关系运算的比较字段不能加密关系运算的比较字段不能加密表间的连接码字段不能加密表间的连接码字段不能加密 17二二 数据库加密技术数据库加密技术5 数据库加密的不同层次数据库加密的不同层次1操作系统(操作系
13、统(OS)层加密层加密这这种种方方式式由由于于很很难难确确认认数数据据库库文文件件中中的的数数据据关关系系,从从而而无无法法产产生生合合理理的的密密钥钥,也也无无法法进进行行合合理理的的密密钥钥管管理理和和使使用用。所所以以,在在OS层层对对数数据据库库文文件件进进行行加加密密,对于大型数据库来说,目前实现比较难。对于大型数据库来说,目前实现比较难。185 数据库加密的不同层次数据库加密的不同层次2DBMS内核层加密内核层加密指数据在物理存取之前完成加指数据在物理存取之前完成加/解密工作。解密工作。优点优点加加密密功功能能强强,并并且且加加密密功功能能几几乎乎不不会会影影响响DBMS 的的功能
14、。功能。缺缺点点是是在在服服务务器器端端进进行行加加重重了了数数据据库库服服务务器器的的负负载载,同同时时需需要要有有DBMS和和加加密密器器(硬硬件件或或软软件件)之之间间的的接接口。口。195 数据库加密的不同层次数据库加密的不同层次3 3DBMSDBMS外层加密外层加密常常用用的的方方法法是是将将数数据据库库加加密密系系统统做做成成DBMS的的一一个个外层工具。外层工具。运运算算可可以以放放在在客客户户端端进进行行,不不会会加加重重数数据据库库服服务务器器的的负负载载并并可可实实现现网网上上传传输输加加密密,缺缺点点是是加加密密功功能能会会受一些限制。受一些限制。20三三 数据库安全策略
15、数据库安全策略1 异构数据库的安全分析异构数据库的安全分析异异构构环环境境的的系系统统具具有有可可扩扩展展性性,能能管管理理分分布布或或联邦数据库环境联邦数据库环境数据库在三个层次上异构数据库在三个层次上异构平台层平台层的异构性包括不同的计算机、操作系统或通的异构性包括不同的计算机、操作系统或通信协议。同时各系统也会采用不同的编程语言和编信协议。同时各系统也会采用不同的编程语言和编译环境。译环境。系统层系统层的异构性是指不同的数据库管理系统或文件的异构性是指不同的数据库管理系统或文件系统它们基于不同的数据模型、提供不同的语言。系统它们基于不同的数据模型、提供不同的语言。数据语义层数据语义层的异
16、构是由于不同的数据库是独立设计的异构是由于不同的数据库是独立设计的。不同的系统采用不同的方式去描述他们的数据的。不同的系统采用不同的方式去描述他们的数据即使相同的信息也可能采用不同的数据模式来表示即使相同的信息也可能采用不同的数据模式来表示因此不同的数据语义之间存在很大的差异。因此不同的数据语义之间存在很大的差异。21windowsUnix各种硬件平台各种硬件平台Sql serverDB2Oracle中间层中间层应用层应用层22三三 数据库安全策略数据库安全策略1 异构数据库的安全分析异构数据库的安全分析每每个个结结点点服服务务器器还还能能自自治治实实行行集集中中式式安安全全管管理理和和访访问
17、问控控制制,对对自自己己创创建建的的用用户户、规规则则、客客体体进进行行安安全全管管理理。如如由由DBADBA或或安安全全管管理理员员执执行行本本部部门门、本本地地区区、或或整整体体的的安安全全策策略略,授授权权特特定定的的管管理理员员管管理理各各组组应应用用程程序序、用用户户、规规则则和和数数据据库。因此库。因此访问控制和安全管理尤为重要访问控制和安全管理尤为重要。数据库安全问题在异构环境下变得更加复杂。数据库安全问题在异构环境下变得更加复杂。231 异构数据库的安全分析异构数据库的安全分析异构环境的数据库安全策略有:异构环境的数据库安全策略有:(1 1)全局范围的身份验证。)全局范围的身份
18、验证。(2 2)全局的访问控制,以支持各类局部访问控制。)全局的访问控制,以支持各类局部访问控制。(3 3)全局完整性控制。)全局完整性控制。(4 4)网网络络安安全全管管理理,包包括括网网络络信信息息加加密密、网网络络入入侵侵防防护和检测等。护和检测等。(5 5)审计技术。)审计技术。(6 6)数数据据库库及及应应用用系系统统安安全全,如如自自动动的的应应用用系系统统集集成成、对象管理等。对象管理等。(7 7)复复杂杂的的口口令令管管理理技技术术。包包括括数数据据库库中中多多个个事事务务的的口口令令同同步步;异异构构数数据据库库间间的的口口令令同同步步,如如Oracle Oracle 和和U
19、nixUnix口口令令;用用户户初初始始的的口口令令更更新新;强强制制口口令令 更更新新;口口令令可可用用性性、口口令令的的时时间间限限制制、口口令令的的历历史史管管理理、口口令令等级设置等。等级设置等。(248 8)口口令令安安全全漏漏洞洞检检查查和和系系统统终终止止。包包括括检检查查系系统统终终止止前前登登录录失失败败的的次次数数,系系统统终终止止前前登登录录成成功功与与登登录录失失败败间间的的时时间间间间隔隔,跟跟踪踪企企图图登登录录的的站点地址。站点地址。(9 9)口口令令加加密密、审审计计技技术术。包包括括发发现现口口令令漏漏洞洞,记记录录口口令令历历史史,记记录录对对表表、行行、列
20、列的的访访问问,记记录录应用系统的访问等。应用系统的访问等。252 2 三权分立的安全机制三权分立的安全机制传统数据库管理机制使得传统数据库管理机制使得DBA 权力过于集中权力过于集中,存在安全隐患。存在安全隐患。多级安全代理模型在安全管理方面采用三权分多级安全代理模型在安全管理方面采用三权分立的安全管理体制立的安全管理体制,把系统管理员分为把系统管理员分为数据库管理员数据库管理员DBA,负责负责自主存取控制自主存取控制及系统维护及系统维护与管理方面的工作与管理方面的工作数据库安全管理员数据库安全管理员SSO负责负责强制存取控制强制存取控制数据库审计员数据库审计员Auditor Auditor
21、 负责系统的负责系统的审计审计。各行其责各行其责,相互制约相互制约,可靠地保证数据库的安全性。可靠地保证数据库的安全性。264 4自主访问与强制访问控制自主访问与强制访问控制自主访问控制就是对主体自主访问控制就是对主体(用户用户)访问客体访问客体(数据数据库对象库对象)的操作权限实施控制,目的就是要保证的操作权限实施控制,目的就是要保证用户只能存取他有权存取的数据,当用户拥有用户只能存取他有权存取的数据,当用户拥有数据库对象上的某些操作权限及相应的转授权数据库对象上的某些操作权限及相应的转授权时,可以自由地把这些操作权限部分或全部转时,可以自由地把这些操作权限部分或全部转授给其他用户,从而使得
22、其他用户也获得在这授给其他用户,从而使得其他用户也获得在这些数据库对象上的使用权限些数据库对象上的使用权限。强制访问控制是通过给主体强制访问控制是通过给主体(用户用户)和客体和客体(数据数据对象对象)指定安全级,并根据安全级匹配规则来确指定安全级,并根据安全级匹配规则来确定某主体是否被准许访问某客体定某主体是否被准许访问某客体 275 5 隐通道分析技术隐通道分析技术 自主和强制访问控制限制了系统中的信息只能自主和强制访问控制限制了系统中的信息只能由低安全级主体向高安全级主体流动。由低安全级主体向高安全级主体流动。低安全级主体仍然可以通过其他方式获得高安低安全级主体仍然可以通过其他方式获得高安
23、全级主体的信息,隐通道就是其中的一种。全级主体的信息,隐通道就是其中的一种。隐通道是系统的一个用户以违反系统安全策略隐通道是系统的一个用户以违反系统安全策略的方式传送信息给另一用户的机制。的方式传送信息给另一用户的机制。它往往通过系统原本不用于数据传送的系统资它往往通过系统原本不用于数据传送的系统资源来传送信息源来传送信息,并且这种通信方式往往不被系,并且这种通信方式往往不被系统的访问控制机制所检测和控制。统的访问控制机制所检测和控制。285 5 隐通道分析技术隐通道分析技术U1是普通级别、是普通级别、U2是绝密级是绝密级信息流从信息流从U1流向流向U2设设U1建有关系员工基本表(姓名,身份证
24、号,性别,建有关系员工基本表(姓名,身份证号,性别,年龄,学历)其最低安全级别是普通,最高是绝密。年龄,学历)其最低安全级别是普通,最高是绝密。U1将查询表的权限授权给将查询表的权限授权给U2。若若U2在表上建立视图在表上建立视图V1,假设假设U1删除表时,会有删除表时,会有“关关系上视图不为空的系上视图不为空的”出错信息。出错信息。U1可推断出有一高级用户在员工基本表上建有视图。可推断出有一高级用户在员工基本表上建有视图。U2可以通过调节员工基本表上是否建立视图向可以通过调节员工基本表上是否建立视图向U1发送发送机密信息,形成存储隐通道。机密信息,形成存储隐通道。由于由于U2可以查询可以查询
25、U1看不到的信息,这时通过隐通道看不到的信息,这时通过隐通道U1就看到了。就看到了。295 5 隐通道分析技术隐通道分析技术 隐通道包括隐通道包括存储隐通道存储隐通道与与定时隐通道定时隐通道。隐隐通通道道的的发发送送者者和和接接收收者者之之间间事事先先约约定定好好某某种种编编码码方式方式,并使用系统正常操作。,并使用系统正常操作。如如果果隐隐通通道道的的发发送送者者直直接接或或间间接接地地修修改改资资源源属属性性,另另一一主主体体(接接收收者者)直直接接或或间间接接地地读读取取这这个个属属性性的的变化时,这个隐通道就是存储隐通道。变化时,这个隐通道就是存储隐通道。如如果果一一个个隐隐通通道道是
26、是一一个个主主体体,通通过过调调整整系系统统资资源源(如如CPU)CPU)的的使使用用时时间间影影响响了了另另一一个个主主体体实实际际的的响响应应时时间间,从从而而发发送送信信息息给给另另一一主主体体时时,这这个个隐隐通通道道是是定定时时隐隐通道。通道。尽尽管管高高安安全全级级的的用用户户有有可可能能利利用用隐隐通通道道传传送送信信息息给给低低安安全全级级的的用用户户,但但隐隐通通道道的的主主要要潜潜在在威威胁胁是是它它有有可能被特洛伊木马所利用。可能被特洛伊木马所利用。30附加:附加:web数据库安全数据库安全SQL注入攻击:注入攻击:攻击者把攻击者把SQL命令插入到命令插入到web表单的输
27、入域或页表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的面请求的查询字符串,欺骗服务器执行恶意的SQL命令。命令。Sql=“select*from user where name=”+userName+”;”正常情况下在输入框中输入正常情况下在输入框中输入alice,则,则userName为为alice这样该语句为这样该语句为Select*from user where name=alice;31Sql=“select*from user where name=”+userName+”;”正常情况下在输入框中输入正常情况下在输入框中输入alice,则,则userName为为alice这
28、样该语句为这样该语句为Select*from user where name=alice;32Sql=select*from user where name=+userName+;攻击:在输入框中输入攻击:在输入框中输入alice or 1=1 select*from user where name=alice or 1=1;这个查询的效果是什么?这个查询的效果是什么?User表的全部数据表的全部数据称为称为1=1攻击攻击33Select*from book Where bookname=入入门门;若若输输入框中入框中输输入入 入入门门;drop book-Select*from book W
29、here bookname=入入门门;drop book-;34防治防治:1、普通用户与系统管理员用户的权普通用户与系统管理员用户的权限要有严格的区分。限要有严格的区分。终端用户,即应用软件的使用者,没终端用户,即应用软件的使用者,没有必要给他们数据库对象的建立、删有必要给他们数据库对象的建立、删除等权限。除等权限。352、强迫使用参数化语句。强迫使用参数化语句。String username;String sql=select*from user where name=?;Preparedstatement prep=conn.prepareStatemnet(sql);Prep.setString(1,username)若若username写成写成 alice or 1=1,则被拒绝或强,则被拒绝或强制转换成字符串制转换成字符串363、加强对用户输入的验证。加强对用户输入的验证。测试字符串变量的内容,只接受所需的值。测试字符串变量的内容,只接受所需的值。拒绝包含二进制数据、转义序列和注释字拒绝包含二进制数据、转义序列和注释字符的输入内容。符的输入内容。37