数据库的安全性
掌握:(1)TCSEC和CC的标准的主要内容
(2)DBMS的安全措施(用户身份鉴别、自主存取控制、强制存取控制技术、视图技术和审计技术、数据加密和加密传输)
难点: 强制存取控制机制中确定主体能否存取客体的存取规则
1.试述信息安全标准的发展史,CC评估保证级划分的基本内容
发展史:TCSEC(Tursted Computer System Evaluation Criteria)是指1985美国国防部(Department of Defense,DoD)正式颁布的可信计算机系统评估准则(Tursted Computer System Evaluation Criteria,TCSEC或DoD85),为了满足全球IT市场互认标准化安全评估结果的需要,CTCPE、ITSEC、FC、TSCES于1993年发起联合行动解决原标准中概念和技术上的差异,将各自独立的准则集合成一组单一的、能被广泛使用的IT安全准则,这一行动被称为通用准则项目(Common Criteria,CC)。进过多次的讨论和修订,CC V2.1 版本于1999年被IOS采用为国际标准,2001年被我国采用为国家标准。
【注:CTCPE(CanadianTrusted Computer Product Evaluation Criteria)加拿大可信计算机产品评估准则、ITSEC(Information Technology Security Evaluuation Criteria)欧洲信息技术安全评估准则、FC(Federal Criterial ,FC)】
图1. 信息安全标准发展史图
1991年4月,美国国家计算机安全中心(National Computer Security Center,NCSC)颁布了《可信计算机系统评估准则关于可信数据库系统的解释TCSEC/TDI(Trusted Database Interpretation),即紫皮书》(TCSEC又称桔皮书),将TCSEC扩展到数据库管理系系统中。从四个方面进行了评估:安全策略、责任和保证文档。
图2.TCSEC/TDI安全级别划分
D级:该级是最低级别。保留D级的目的是为了将一切不符合更高标准的系统统统归于D组。如 DOS就是操作系统中安全标准为D级的典型例子,它具有操作系统的基本功
C1级:该级只提供了非常初级的自主安全保护,能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。现有的商业系统往往稍作改进即可满足要求。
C2级:该级实际上是安全产品的最低档,提供受控的存取保护,即将C1级的 DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。达到C2级的产品在其名称中往往不突出“安全”(security)这一特色,如操作系统中的 Windows 2000、数据库产品中的 Oracle 7等。
B1级:标记安全保护。对系统的数据加以标记,并对标记的主体和客体实施强制存取控制(MAC) 以及审计等安全机制。Bl 级别的产品才被认为是真正意义上的安全产品,满足此级别的产品前一般多冠以“安全”( security)或“可信的”( trusted)字样,作为区别于普通产品的安全产品出售。
B2级:结构化保护。建立形式化的安全策略模型,并对系统内的所有主体和客体实施DAC 和 MAC。
B3级:安全域。该级的TCB (Trusted Computing Base)必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。
A1级:验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证,以确信各安全保护真正实现。
CC是在上述各评估准则及具体实践的基础上通过相互总结和互补发展而来的。和早期的评估准则相比,CC具有结构开放、表达方式通用等特点。CC提出了目前国际上公认的表述信息技术安全性的结构,即把对信息产品的安全要求分为安全功能要求和安全保证要求。安全功能要求用以规范产品和系统的安全行为,安全保证要求解决如何正确有效地实施这些功能。安全功能要求和安全保证要求都以“类-子类-组件”的结构表述,组件是安全要求的最小构件块。
CC的文本由三部分组成,三个部分相互依存,缺一不可。
(1)第一部分是简介和一般模型,介绍CC中的有关术语、基本概念和一般模型以及与评估有关的一些框架。
(2)第二部分是安全功能要求,列出了一系列类、子类和组件。由11大类、66个子类和135个组件构成。
(3)第三部分是安全保证要求,列出了一系列保证类、子类和组件,包括7大类、26个子类和74个组件。
图3.CC评估等级
TCSEC的C1和C2级分别相当于EAL2和 EAL3;B1、B2和B3分别相当于 EAL4、EAL5和 EAL6;A1对应于EAL7。
2.数据库安全性控制常用的方法和技术
(1)用户身份鉴别:提供多种方式让用户标识自己的名字或身份,用户要使用数据库系统时由数据库系统进行校对,通过鉴定后方可使用数据库。
(2)多层存取控制:系统提供用户权限定义和合法权限查询功能,用户只能获得某种权限才能访问数据库。
(3)视图机制:为不同的用户提供不同的视图,通过视图机制把要保密的对无权存取的用户隐藏起来,从而对数据提供一定的安全保护。
(4)审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志当中,审计员可以利用审计信息重现找出非法村求数据库的人、时间和内容。
数据库的审计功能指:数据库的审计模块在用户对数据库执行操作的同时,把所有操作都自动记录到系统的审计日志中。
(5)数据加密:对存和传输的数据进行加密处理,从而使不知道解密算法的人无法获知数据的内容。
3.什么是数据库中自助存取控制方法和强制存取方法?
自助存取控制方法:定义个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查其权限,防止不合法用户对数据库的存取。自助存取控制中的“自主”的含义是:用户可以将自己拥有的存取权限“自主”地授予别人
强制存取控制方法:每个数据对象强制地标以一定的密级,每个用户被强制地授予某一个级别的许可证。系统规定只有具有某一许可证的用户才能存取某一个密级的数据对象。
数据库的完整性
掌握:DBMS完整性控制机制的三个方面,完整性约束条件的定义、完整性约束条件的检查和违约处理,使用触发器实现数据库完整性的方法
难点:RDBMS如何实现参照完整性的策略。当操作违反实体完整性、参照完整性和用户定义的完整性约束条时,RDBMS应该如何处理以确保数据的正确与有效。
1.数据库的完整性是指数据库的正确性和相容性。
(1).数据的正确性:是指数据是符合现实世界语义,反映了当前实际就状况
(2).数据的相容性:数据库的同一对象在不同关系表中的数据是符合逻辑的
2.数据库的完整性和安全性概念有什么区别和联系?
(1)数据完整性:防止数据库中存在不符合语义的数据,也就是防止数据库存在不正确的数据
防范对象:不合法的语义、不正确的数据
也就是说无效操作和错误结果(垃圾进垃圾出)
(2)数据的安全性:保护数据库防止恶意的破坏和非法的存取
防范对象:非法用户和非法操作
完整性是阻止合法用户通过合法操作向数据库中加入不正确的数据
安全性防范的是非法用户和非法操作存取数据库中的正确数据
3.什么是数据库的完整性约束
完整性约束条件是指数据库中的数据应该满足的语义约束条件
4.DBMS的完整性控制机制应具有哪三个方面的功能?
(1)定义功能:提供定义完整性约束条件的机制,完整性约束条件也称为完整性规则,是数据库中必须满足的予以约束条件
(2)检查功能:检查用户发出的操作(Insert、Update 、delete)请求是否违背了完整性约束条件
(3)违约处理功能:用户操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性(NO ACTION),拒绝或者级联执行其他操作(CASCADE)
DBMS进行检查的好处
用DBMS管理的好处:不必由应用程序来完成,从而减轻了应用程序员的负担。
实体的完整性:关系的主属性不能取空值