数据作为信息的重要载体,其安全问题在信息安全中占有非常重要的地位。数据的保密性、可用性、可控性和完整性是数据安全技术的主要研究内容。数据保密性的理论基础是密码学,而可用性、可控性和完整性是数据安全的重要保障,没有后者提供技术保障,再强的加密算法也难以保证数据的安全。与数据安全密切相关的技术主要有以下几种,每种相关但又有所不同。
1)访问控制: 该技术主要用于控制用户可否进入系统以及进入系统的用户能够读写的数据集;
2)数据流控制:该技术和用户可访问数据集的分发有关,用于防止数据从授权范围扩散到非授权范围;
3)推理控制:该技术用于保护可统计的数据库,以防止查询者通过精心设计的查询序列推理出机密信息;
4)数据加密:该技术用于保护机密信息在传输或存储时被非授权暴露;
5)数据保护:该技术主要用于防止数据遭到意外或恶意的破坏,保证数据的可用性和完整性。
在上述技术中,访问控制技术占有重要的地位,其中1)、2)、3)均属于访问控制范畴。访问控制技术主要涉及安全模型、控制策略、控制策略的实现、授权与审计等。其中安全模型是访问控制的理论基础,其它技术是则实现安全模型的技术保障。本文侧重论述访问控制技术,有关数据保护技术的其它方面,将逐渐在其它文章中进行探讨。
1.访问控制
信息系统的安全目标是通过一组规则来控制和管理主体对客体的访问,这些访问控制规则称为安全策略,安全策略反应信息系统对安全的需求。安全模型是制定安全策略的依据,安全模型是指用形式化的方法来准确地描述安全的重要方面(机密性、完整性和可用性)及其与系统行为的关系。建立安全模型的主要目的是提高对成功实现关键安全需求的理解层次,以及为机密性和完整性寻找安全策略,安全模型是构建系统保护的重要依据,同时也是建立和评估安全操作系统的重要依据。
自20世纪70年代起,Denning、Bell、Lapadula等人对信息安全进行了大量的理论研究,特别是1985年美国国防部颁布可信计算机评估标准《TCSEC》以来,系统安全模型得到了广泛的研究,并在各种系统中实现了多种安全模型。这些模型可以分为两大类:一种是信息流模型;另一种是访问控制模型。
信息流模型主要着眼于对客体之间信息传输过程的控制,它是访问控制模型的一种变形。它不校验主体对客体的访问模式,而是试图控制从一个客体到另一个客体的信息流,强迫其根据两个客体的安全属性决定访问操作是否进行。信息流模型和访问控制模型之间差别很小,但访问控制模型不能帮助系统发现隐蔽通道,而信息流模型通过对信息流向的分析可以发现系统中存在的隐蔽通道并找到相应的防范对策。信息流模型是一种基于事件或踪迹的模型,其焦点是系统用户可见的行为。虽然信息流模型在信息安全的理论分析方面有着优势,但是迄今为止,信息流模型对具体的实现只能提供较少的帮助和指导。
访问控制模型是从访问控制的角度描述安全系统,主要针对系统中主体对客体的访问及其安全控制。访问控制安全模型中一般包括主体、客体,以及为识别和验证这些实体的子系统和控制实体间访问的参考监视器。通常访问控制可以分自主访问控制(DAC)和强制访问控制(MAC)。自主访问控制机制允许对象的属主来制定针对该对象的保护策略。通常DAC通过授权列表(或访问控制列表ACL)来限定哪些主体针对哪些客体可以执行什么操作。如此可以非常灵活地对策略进行调整。由于其易用性与可扩展性,自主访问控制机制经常被用于商业系统。
目前的主流操作系统,如UNIX、Linux和Windows等操作系统都提供自主访问控制功能。自主访问控制的一个最大问题是主体的权限太大,无意间就可能泄露信息,而且不能防备特洛伊木马的攻击。强制访问控制系统给主体和客体分配不同的安全属性,而且这些安全属性不像ACL那样轻易被修改,系统通过比较主体和客体的安全属性决定主体是否能够访问客体。强制访问控制可以防范特洛伊木马和用户滥用权限,具有更高的安全性,但其实现的代价也更大,一般用在安全级别要求比较高的军事上。
随着安全需求的不断发展和变化,自主访问控制和强制访问控制已经不能完全满足需求,研究者提出许多自主访问控制和强制访问控制的替代模型,如基于栅格的访问控制、基于规则的访问控制、基于角色的访问控制模型和基于任务的访问控制等。其中最引人瞩目的是基于角色的访问控制 (RBAC)。其基本思想是:有一组用户集和角色集,在特定的环境里,某一用户被指定为一个合适的角色来访问系统资源;在另外一种环境里,这个用户又可以被指定为另一个的角色来访问另外的网络资源,每一个角色都具有其对应的权限,角色是安全控制策略的核心,可以分层,存在偏序、自反、传递、反对称等关系。与自主访问控制和强制访问控制相比,基于角色的访问控制具有显著优点:首先,它实际上是一种策略无关的访问控制技术。其次,基于角色的访问控制具有自管理的能力。
此外,基于角色的访问控制还便于实施整个组织或单位的网络信息系统的安全策略。目前,基于角色的访问控制已在许多安全系统中实现。例如,在亿赛通文档安全管理系统SmartSec(见“文档安全加密系统的实现方式”一文)中,服务器端的用户管理就采用了基于角色的访问控制方式,从而为用户管理、安全策略管理等提供了很大的方便。
随着网络的深入发展,基于Host-Terminal环境的静态安全模型和标准已无法完全反应分布式、动态变化、发展迅速的Internet的安全问题。针对日益严重的网络安全问题和越来突出的安全需求,“可适应网络安全模型”和“动态安全模型”应运而生。基于闭环控制的动态网络安全理论模型在90年代开始逐渐形成并得到了迅速发展,1995年12月美国国防部提出了信息安全的动态模型,即保护(Protection)—检测(Detection)—响应(Response)多环节保障体系,后来被通称为PDR模型。随着人们对PDR模型应用和研究的深入,PDR模型中又融入了策略(Policy)和恢复(Restore)两个组件,逐渐形成了以安全策略为中心,集防护、检测、响应和恢复于一体的动态安全模型,PDR模型是一种基于闭环控制、主动防御的动态安全模型,在整体的安全策略控制和指导下,在综合运用防护工具(如防火墙、系统身份认证和加密等手段)的同时,利用检测工具(如漏洞评估、入侵检测等系统)了解和评估系统的安全状态,将系统调整到“最安全”和“风险最低”的状态。保护、检测、响应和恢复组成了一个完整的、动态的安全循环,在安全策略的指导下保证信息的安全。
2.访问控制策略
访问控制策略也称安全策略,是用来控制和管理主体对客体访问的一系列规则,它反映信息系统对安全的需求。安全策略的制定和实施是围绕主体、客体和安全控制规则集三者之间的关系展开的,在安全策略的制定和实施中,要遵循下列原则:
1)最小特权原则:最小特权原则是指主体执行操作时,按照主体所需权利的最小化原则分配给主体权力。最小特权原则的优点是最大程度地限制了主体实施授权行为,可以避免来自突发事件、错误和未授权使用主体的危险。
2)最小泄漏原则:最小泄漏原则是指主体执行任务时,按照主体所需要知道的信息最小化的原则分配给主体权力。
3)多级安全策略:多级安全策略是指主体和客体间的数据流向和权限控制按照安全级别的绝密、秘密、机密、限制和无级别五级来划分。多级安全策略的优点是避免敏感信息的扩散。具有安全级别的信息资源,只有安全级别比他高的主体才能够访问。
访问控制的安全策略有以下两种实现方式:基于身份的安全策略和基于规则的安全策略。目前使用的两种安全策略,他们建立的基础都是授权行为。就其形式而言,基于身份的安全策略等同于DAC安全策略,基于规则的安全策略等同于MAC安全策略。
2.1.基于身份的安全策略
基于身份的安全策略(IDBACP:Identification-based Access Control Policies)的目的是过滤主体对数据或资源的访问,只有能通过认证的那些主体才有可能正常使用客体资源。基于身份的策略包括基于个人的策略和基于组的策略。基于身份的安全策略一般采用能力表或访问控制列表进行实现。
2.1.1基于个人的策略
基于个人的策略(INBACP:Individual-based Access Control Policies)是指以用户为中心建立的一种策略,这种策略由一组列表组成,这些列表限定了针对特定的客体,哪些用户可以实现何种操作行为。
2.1.2基于组的策略:
基于组的策略(GBACP:Group-based Access Control Policies)是基于个人的策略的扩充,指一些用户(构成安全组)被允许使用同样的访问控制规则访问同样的客体。
2.2.基于规则的安全策略
基于规则的安全策略中的授权通常依赖于敏感性。在一个安全系统中,数据或资源被标注安全标记(Token)。代表用户进行活动的进程可以得到与其原发者相应的安全标记。基于规则的安全策略在实现上,由系统通过比较用户的安全级别和客体资源的安全级别来判断是否允许用户可以进行访问。
3.访问控制的实现
由于安全策略是由一系列规则组成的,因此如何表达和使用这些规则是实现访问控制的关键。由于规则的表达和使用有多种方式可供选择,因此访问控制的实现也有多种方式,每种方式均有其优点和缺点,在具体实施中,可根据实际情况进行选择和处理。常用的访问控制有以下几种形式。
3.1.访问控制表
访问控制表(ACL:Access Control List)是以文件为中心建立的访问权限表,一般称作ACL。其主要优点在于实现简单,对系统性能影响小。
它是目前大多数操作系统(如Windows、Linux等)采用的访问控制方式。同时,它也是信息安全管理系统中经常采用的访问控制方式。例如,在亿赛通文档安全管理系统SmartSec中,客户端提供的“文件访问控制”模块就是通过ACL方式进行实现的。
3.2.访问控制矩阵
访问控制矩阵(ACM:Access Control Matrix)是通过矩阵形式表示访问控制规则和授权用户权限的方法;也就是说,对每个主体而言,都拥有对哪些客体的哪些访问权限;而对客体而言,有哪些主体可对它实施访问;将这种关联关系加以描述,就形成了控制矩阵。访问控制矩阵的实现很易于理解,但是查找和实现起来有一定的难度,特别是当用户和文件系统要管理的文件很多时,控制矩阵将会呈几何级数增长,会占用大量的系统资源,引起系统性能的下降。
3.3.访问控制能力列表
能力是访问控制中的一个重要概念,它是指请求访问的发起者所拥有的一个有效标签(Ticket),它授权标签表明的持有者可以按照何种访问方式访问特定的客体。与ACL以文件为中心不同,访问控制能力表(ACCL:Access Control Capabilities List)是以用户为中心建立访问权限表。
3.4.访问控制安全标签列表
安全标签是限制和附属在主体或客体上的一组安全属性信息。安全标签的含义比能力更为广泛和严格,因为它实际上还建立了一个严格的安全等级集合。访问控制标签列表(ACSLL:Access Control Security Labels List)是限定用户对客体目标访问的安全属性集合。
4.访问控制与授权
授权是资源的所有者或控制者准许他人访问这些资源,是实现访问控制的前提。对于简单的个体和不太复杂的群体,我们可以考虑基于个人和组的授权,即便是这种实现,管理起来也有可能是困难的。当我们面临的对象是一个大型跨地区、甚至跨国集团时,如何通过正确的授权以便保证合法的用户使用公司公布的资源,而不合法的用户不能得到访问控制的权限,这是一个复杂的问题。授权是指客体授予主体一定的权力,通过这种权力,主体可以对客体执行某种行为,例如登陆,查看文件、修改数据、管理帐户等。
授权行为是指主体履行被客体授予权力的那些活动。因此,访问控制与授权密不可分。授权表示的是一种信任关系,一般需要建立一种模型对这种关系进行描述,才能保证授权的正确性,特别是在大型系统的授权中,没有信任关系模型做指导,要保证合理的授权行为几乎是不可想象的。例如,在亿赛通文档安全管理系统SmartSec中,服务器端的用户管理、文档流转等模块的研发,就是建立在信任模型的基础上研发成功的,从而能够保证在复杂的系统中,文档能够被正确地流转和使用。
5.访问控制与审计
审计是对访问控制的必要补充,是访问控制的一个重要内容。审计会对用户使用何种信息资源、使用的时间、以及如何使用(执行何种操作)进行记录与监控。审计和监控是实现系统安全的最后一道防线,处于系统的最高层。审计与监控能够再现原有的进程和问题,这对于责任追查和数据恢复非常有必要。
审计跟踪是系统活动的流水记录。该记录按事件从始至终的途径,顺序检查、审查和检验每个事件的环境及活动。审计跟踪记录系统活动和用户活动。系统活动包括操作系统和应用程序进程的活动;用户活动包括用户在操作系统中和应用程序中的活动。通过借助适当的工具和规程,审计跟踪可以发现违反安全策略的活动、影响运行效率的问题以及程序中的错误。
审计跟踪不但有助于帮助系统管理员确保系统及其资源免遭非法授权用户的侵害,同时还能提供对数据恢复的帮助。例如,在亿赛通文档安全管理系统SmartSec中,客户端的“文件访问审核日志”模块能够跟踪用户的多种日常活动,特别是能够跟踪记录用户与工作相关的各种活动情况,如什么时间编辑什么文档等。