标题：访问控制技术
访问控制的概念及原理
访问控制的概念及要素访问控制（Access Control）指系统对用户身份及其所属的预先定义的策略组限制其使用数据资源能力的手段。通常用于系统管理员控制用户对服务器、目录、文件等网络资源的访问。访问控制是系统保密性、完整性、可用性和合法使用性的重要基础，是网络安全防范和资源保护的关键策略之一，也是主体依据某些控制策略或权限对客体本身或其资源进行的不同授权访问。[1]
访问控制的主要目的是限制访问主体对客体的访问，从而保障数据资源在合法范围内得以有效使用和管理。为了达到上述目的，访问控制需要完成两个任务：识别和确认访问系统的用户、决定该用户可以对某一系统资源进行何种类型的访问。
访问控制包括三个要素：主体、客体和控制策略。
（1）主体S（Subject）。是指提出访问资源具体请求。是某一操作动作的发起者，但不一定是动作的执行者，可能是某一用户，也可以是用户启动的进程、服务和设备等。
（2）客体O（Object）。是指被访问资源的实体。所有可以被操作的信息、资源、对象都可以是客体。客体可以是信息、文件、记录等集合体，也可以是网络上硬件设施、无限通信中的终端，甚至可以包含另外一个客体。
（3）控制策略A（Attribution）。是主体对客体的相关访问规则集合，即属性集合。访问策略体现了一种授权行为，也是客体对主体某些操作行为的默认。 访问控制的功能及原理访问控制的主要功能包括：保证合法用户访问受权保护的网络资源，防止非法的主体进入受保护的网络资源，或防止合法用户对受保护的网络资源进行非授权的访问。访问控制首先需要对用户身份的合法性进行验证，同时利用控制策略进行选用和管理工作。当用户身份和访问权限验证之后，还需要对越权操作进行监控。因此，访问控制的内容包括认证、控制策略实现和安全审计，其功能及原理如图1所示。  图1 访问控制功能及原理
（1）认证。包括主体对客体的识别及客体对主体的检验确认。
（2）控制策略。通过合理地设定控制规则集合，确保用户对信息资源在授权范围内的合法使用。既要确保授权用户的合理使用，又要防止非法用户侵权进入系统，使重要信息资源泄露。同时对合法用户，也不能越权行使权限以外的功能及访问范围。
（3）安全审计。系统可以自动根据用户的访问权限，对计算机网络环境下的有关活动或行为进行系统的、独立的检查验证，并做出相应评价与审计。 图1 访问控制功能及原理
访问控制的类型及机制
访问控制可以分为两个层次：物理访问控制和逻辑访问控制。物理访问控制如符合标准规定的用户、设备、门、锁和安全环境等方面的要求，而逻辑访问控制则是在数据、应用、系统、网络和权限等层面进行实现的。对银行、证券等重要金融机构的网站，信息安全重点关注的是二者兼顾，物理访问控制则主要由其他类型的安全部门负责。[2]访问控制的类型主要的访问控制类型有3种模式：自主访问控制（DAC）、强制访问控制（MAC）和基于角色访问控制（RBAC）。
1）自主访问控制
自主访问控制（Discretionary Access Control，DAC）是一种接入控制服务，通过执行基于系统实体身份及其到系统资源的接入授权。包括在文件，文件夹和共享资源中设置许可。用户有权对自身所创建的文件、数据表等访问对象进行访问，并可将其访问权授予其他用户或收回其访问权限。允许访问对象的属主制定针对该对象访问的控制策略，通常，可通过访问控制列表来限定针对客体可执行的操作。
①每个客体有一个所有者，可按照各自意愿将客体访问控制权限授予其他主体。
②各客体都拥有一个限定主体对其访问权限的访问控制列表（ACL）。
③每次访问时都以基于访问控制列表检查用户标志，实现对其访问权限控制。
④DAC的有效性依赖于资源的所有者对安全政策的正确理解和有效落实。
DAC提供了适合多种系统环境的灵活方便的数据访问方式，是应用最广泛的访问控制策略。然而，它所提供的安全性可被非法用户绕过，授权用户在获得访问某资源的权限后，可能传送给其他用户。主要是在自由访问策略中，用户获得文件访问后，若不限制对该文件信息的操作，即没有限制数据信息的分发。所以DAC提供的安全性相对较低，无法对系统资源提供严格保护。
2）强制访问控制
强制访问控制（MAC）是系统强制主体服从访问控制策略。是由系统对用户所创建的对象，按照规定的规则控制用户权限及操作对象的访问。主要特征是对所有主体及其所控制的进程、文件、段、设备等客体实施强制访问控制。在MAC中，每个用户及文件都被赋予一定的安全级别，只有系统管理员才可确定用户和组的访问权限，用户不能改变自身或任何客体的安全级别。系统通过比较用户和访问文件的安全级别，决定用户是否可以访问该文件。此外，MAC不允许通过进程生成共享文件，以通过共享文件将信息在进程中传递。MAC可通过使用敏感标签对所有用户和资源强制执行安全策略，一般采用3种方法：限制访问控制、过程控制和系统限制。MAC常用于多级安全军事系统，对专用或简单系统较有效，但对通用或大型系统并不太有效。
MAC的安全级别有多种定义方式，常用的分为4级：绝密级（Top Secret）、秘密级（Secret）、机密级（Confidential）和无级别级（Unclas sified），其中T>S>C>U。所有系统中的主体（用户，进程）和客体（文件，数据）都分配安全标签，以标识安全等级。
通常MAC与DAC结合使用，并实施一些附加的、更强的访问限制。一个主体只有通过自主与强制性访问限制检查后，才能访问其客体。用户可利用DAC来防范其他用户对自己客体的攻击，由于用户不能直接改变强制访问控制属性，所以强制访问控制提供了一个不可逾越的、更强的安全保护层，以防范偶然或故意地滥用DAC。
3）基于角色的访问控制
角色（Role）是一定数量的权限的集合。指完成一项任务必须访问的资源及相应操作权限的集合。角色作为一个用户与权限的代理层，表示为权限和用户的关系，所有的授权应该给予角色而不是直接给用户或用户组。
基于角色的访问控制（Role-Based Access Control，RBAC）是通过对角色的访问所进行的控制。使权限与角色相关联，用户通过成为适当角色的成员而得到其角色的权限。可极大地简化权限管理。为了完成某项工作创建角色，用户可依其责任和资格分派相应的角色，角色可依新需求和系统合并赋予新权限，而权限也可根据需要从某角色中收回。减小了授权管理的复杂性，降低管理开销，提高企业安全策略的灵活性。
RBAC模型的授权管理方法，主要有3种：
①根据任务需要定义具体不同的角色。
②为不同角色分配资源和操作权限。
③给一个用户组（Group，权限分配的单位与载体）指定一个角色。
RBAC支持三个著名的安全原则：最小权限原则、责任分离原则和数据抽象原则。前者可将其角色配置成完成任务所需要的最小权限集。第二个原则可通过调用相互独立互斥的角色共同完成特殊任务，如核对账目等。后者可通过权限的抽象控制一些操作，如财务操作可用借款、存款等抽象权限，而不用操作系统提供的典型的读、写和执行权限。这些原则需要通过RBAC各部件的具体配置才可实现。访问控制机制访问控制机制是检测和防止系统未授权访问，并对保护资源所采取的各种措施。是在文件系统中广泛应用的安全防护方法，一般在操作系统的控制下，按照事先确定的规则决定是否允许主体访问客体，贯穿于系统全过程。
访问控制矩阵（Access Contro1 Matrix）是最初实现访问控制机制的概念模型，以二维矩阵规定主体和客体间的访问权限。其行表示主体的访问权限属性，列表示客体的访问权限属性，矩阵格表示所在行的主体对所在列的客体的访问授权，空格为未授权，Y为有操作授权。以确保系统操作按此矩阵授权进行访问。通过引用监控器协调客体对主体访问，实现认证与访问控制的分离。在实际应用中，对于较大系统，由于访问控制矩阵将变得非常大，其中许多空格，造成较大的存储空间浪费，因此，较少利用矩阵方式，主要采用以下2种方法。
1）访问控制列表
访问控制列表（Access Control List，ACL）是应用在路由器接口的指令列表，用于路由器利用源地址、目的地址、端口号等的特定指示条件对数据包的抉择。是以文件为中心建立访问权限表，表中记载了该文件的访问用户名和权隶属关系。利用ACL，容易判断出对特定客体的授权访问，可访问的主体和访问权限等。当将该客体的ACL置为空，可撤消特定客体的授权访问。
基于ACL的访问控制策略简单实用。在查询特定主体访问客体时，虽然需要遍历查询所有客体的ACL，耗费较多资源，但仍是一种成熟且有效的访问控制方法。许多通用的操作系统都使用ACL来提供该项服务。如Unix和VMS系统利用ACL的简略方式，以少量工作组的形式，而不许单个个体出现，可极大地缩减列表大小，增加系统效率。
2）能力关系表
能力关系表（Capabilities List）是以用户为中心建立访问权限表。与ACL相反，表中规定了该用户可访问的文件名及权限，利用此表可方便地查询一个主体的所有授权。相反，检索具有授权访问特定客体的所有主体，则需查遍所有主体的能力关系表。单点登入的访问管理通过介绍单点登入SSO的基本概念和优势，主要优点是，可集中存储用户身份信息，用户只需一次向服务器验证身份，即可使用多个系统的资源，无需再向各客户机验证身份，可提高网络用户的效率，减少网络操作的成本，增强网络安全性。根据登入的应用类型不同，可将SSO分为3种类型。
1）对桌面资源的统一访问管理
对桌面资源的访问管理，包括两个方面：
①登入Windows后统一访问Microsoft应用资源。Windows本身就是一个“SSO”系统。随着.NET技术的发展，“Microsoft SSO”将成为现实。通过Active Directory的用户组策略并结合SMS工具，可实现桌面策略的统一制定和统一管理。
②登入Windows后访问其他应用资源。根据Microsoft的软件策略，Windows并不主动提供与其他系统的直接连接。现在，已经有第三方产品提供上述功能，利用Active Directory存储其他应用的用户信息，间接实现对这些应用的SSO服务。
2）Web单点登入
由于Web技术体系架构便捷，对Web资源的统一访问管理易于实现。在目前的访问管理产品中，Web访问管理产品最为成熟。Web访问管理系统一般与企业信息门户结合使用，提供完整的Web SSO解决方案。
3）传统C/S 结构应用的统一访问管理
在传统C/S 结构应用上，实现管理前台的统一或统一入口是关键。采用Web客户端作为前台是企业最为常见的一种解决方案。
在后台集成方面，可以利用基于集成平台的安全服务组件或不基于集成平台的安全服务API，通过调用信息安全基础设施提供的访问管理服务，实现统一访问管理。
在不同的应用系统之间，同时传递身份认证和授权信息是传统C/S结构的统一访问管理系统面临的另一项任务。采用集成平台进行认证和授权信息的传递是当前发展的一种趋势。可对C/S结构应用的统一访问管理结合信息总线（EAI）平台建设一同进行。
访问控制的安全策略
访问控制的安全策略是指在某个自治区域内（属于某个组织的一系列处理和通信资源范畴），用于所有与安全相关活动的一套访问控制规则。由此安全区域中的安全权力机构建立，并由此安全控制机构来描述和实现。访问控制的安全策略有三种类型：基于身份的安全策略、基于规则的安全策略和综合访问控制方式。安全策略实施原则访问控制安全策略原则集中在主体、客体和安全控制规则集三者之间的关系。
（1）最小特权原则。在主体执行操作时，按照主体所需权利的最小化原则分配给主体权力。优点是最大限度地限制了主体实施授权行为，可避免来自突发事件、操作错误和未授权主体等意外情况的危险。为了达到一定目的，主体必须执行一定操作，但只能做被允许的操作，其他操作除外。这是抑制特洛伊木马和实现可靠程序的基本措施。
（2）最小泄露原则。主体执行任务时，按其所需最小信息分配权限，以防泄密。
（3）多级安全策略。主体和客体之间的数据流向和权限控制，按照安全级别的绝密（TS）、秘密（S）、机密（C）、限制（RS）和无级别（U）5级来划分。其优点是避免敏感信息扩散。具有安全级别的信息资源，只有高于安全级别的主体才可访问。
在访问控制实现方面，实现的安全策略包括8个方面：入网访问控制、网络权限限制、目录级安全控制、属性安全控制、网络服务器安全控制、网络监测和锁定控制、网络端口和节点的安全控制和防火墙控制。基于身份和规则的安全策略授权行为是建立身份安全策略和规则安全策略的基础，两种安全策略为：
1）基于身份的安全策略
主要是过滤主体对数据或资源的访问。只有通过认证的主体才可以正常使用客体的资源。这种安全策略包括基于个人的安全策略和基于组的安全策略。
（1）基于个人的安全策略。是以用户个人为中心建立的策略，主要由一些控制列表组成。这些列表针对特定的客体，限定了不同用户所能实现的不同安全策略的操作行为。
（2）基于组的安全策略。基于个人策略的发展与扩充，主要指系统对一些用户使用同样的访问控制规则，访问同样的客体。
2）基于规则的安全策略
在基于规则的安全策略系统中，所有数据和资源都标注了安全标记，用户的活动进程与其原发者具有相同的安全标记。系统通过比较用户的安全级别和客体资源的安全级别，判断是否允许用户进行访问。这种安全策略一般具有依赖性与敏感性。综合访问控制策略综合访问控制策略（HAC）继承和吸取了多种主流访问控制技术的优点，有效地解决了信息安全领域的访问控制问题，保护了数据的保密性和完整性，保证授权主体能访问客体和拒绝非授权访问。HAC具有良好的灵活性、可维护性、可管理性、更细粒度的访问控制性和更高的安全性，为信息系统设计人员和开发人员提供了访问控制安全功能的解决方案。综合访问控制策略主要包括：
1）入网访问控制
入网访问控制是网络访问的第一层访问控制。对用户可规定所能登入到的服务器及获取的网络资源，控制准许用户入网的时间和登入入网的工作站点。用户的入网访问控制分为用户名和口令的识别与验证、用户账号的默认限制检查。该用户若有任何一个环节检查未通过，就无法登入网络进行访问。
2）网络的权限控制
网络的权限控制是防止网络非法操作而采取的一种安全保护措施。用户对网络资源的访问权限通常用一个访问控制列表来描述。
从用户的角度，网络的权限控制可分为以下3类用户：
（1）特殊用户。具有系统管理权限的系统管理员等。
（2）一般用户。系统管理员根据实际需要而分配到一定操作权限的用户。
（3）审计用户。专门负责审计网络的安全控制与资源使用情况的人员。
3）目录级安全控制
目录级安全控制主要是为了控制用户对目录、文件和设备的访问，或指定对目录下的子目录和文件的使用权限。用户在目录一级制定的权限对所有目录下的文件仍然有效，还可进一步指定子目录的权限。在网络和操作系统中，常见的目录和文件访问权限有：系统管理员权限（Supervisor）、读权限（Read）、写权限（Write）、创建权限（Create）、删除权限（Erase）、修改权限（Modify）、文件查找权限（File Scan）、控制权限（Access Control）等。一个网络系统管理员应为用户分配适当的访问权限，以控制用户对服务器资源的访问，进一步强化网络和服务器的安全。
4）属性安全控制
属性安全控制可将特定的属性与网络服务器的文件及目录网络设备相关联。在权限安全的基础上，对属性安全提供更进一步的安全控制。网络上的资源都应先标示其安全属性，将用户对应网络资源的访问权限存入访问控制列表中，记录用户对网络资源的访问能力，以便进行访问控制。
属性配置的权限包括：向某个文件写数据、复制一个文件、删除目录或文件、查看目录和文件、执行文件、隐含文件、共享、系统属性等。安全属性可以保护重要的目录和文件，防止用户越权对目录和文件的查看、删除和修改等。
5）网络服务器安全控制
网络服务器安全控制允许通过服务器控制台执行的安全控制操作包括：用户利用控制台装载和卸载操作模块、安装和删除软件等。操作网络服务器的安全控制还包括设置口令锁定服务器控制台，主要防止非法用户修改、删除重要信息。另外，系统管理员还可通过设定服务器的登入时间限制、非法访问者检测，以及关闭的时间间隔等措施，对网络服务器进行多方位地安全控制。
6）网络监控和锁定控制
在网络系统中，通常服务器自动记录用户对网络资源的访问，如有非法的网络访问，服务器将以图形、文字或声音等形式向网络管理员报警，以便引起警觉进行审查。对试图登入网络者，网络服务器将自动记录企图登入网络的次数，当非法访问的次数达到设定值时，就会将该用户的账户自动锁定并进行记载。
7）网络端口和结点的安全控制
网络中服务器的端口常用自动回复器、静默调制解调器等安全设施进行保护，并以加密的形式来识别结点的身份。自动回复器主要用于防范假冒合法用户，静默调制解调器用于防范黑客利用自动拨号程序进行网络攻击。还应经常对服务器端和用户端进行安全控制，如通过验证器检测用户真实身份，然后，用户端和服务器再进行相互验证。
认证服务与访问控制系
AAA技术概述在信息化社会新的网络应用环境下，虚拟专用网（VPN）、远程拨号、移动办公室等网络移动接入应用非常广泛，传统用户身份认证和访问控制机制已经无法满足广大用户需求，由此产生了AAA认证授权机制。
AAA认证系统的功能，主要包括以下3个部分：
（1）认证：经过对网络用户身份进行识别后，才允许远程登入访问网络资源。
（2）鉴权：为远程访问控制提供方法，如一次性授权或给予特定命令或服务的鉴权。
（3）审计：主要用于网络计费、审计和制作报表。
AAA一般运行于网络接入服务器，提供一个有力的认证、鉴权、审计信息采集和配置系统。网络管理者可根据需要选用适合需要的具体网络协议及认证系统。远程鉴权拨入用户服务远程鉴权拨入用户服务（Remote Authentication Dial In User Service，RADIUS）主要用于管理远程用户的网络登入。主要基于C/S架构，客户端最初是NAS（Net Access Server）服务器，现在任何运行RADIUS客户端软件的计算机都可成为其客户端。RADIUS协议认证机制灵活，可采用PAP、CHAP或Unix登入认证等多种方式。此协议规定了网络接入服务器与RADIUS服务器之间的消息格式。此服务器接受用户的连接请求，根据其账户和密码完成验证后，将用户所需的配置信息返回网络接入服务器。该服务器同时根据用户的动作进行审计并记录其计费信息。
1）RADIUS协议主要工作过程
（1）远程用户通过PSTN网络连接到接入服务器，并将登入信息发送到其服务器；
（2）RADIUS服务器根据用户输入的账户和密码对用户进行身份认证，并判断是否允许用户接入。请求批准后，其服务器还要对用户进行相应的鉴权；
（3）鉴权完成后，服务器将响应信息传递给网络接入服务器和计费服务器，网络接入服务器根据当前配置来决定针对用户的相应策略。
RADIUS协议的认证端口号为1812或1645，计费端口号为1813或1646。RADIUS通过统一的用户数据库存储用户信息进行验证与授权工作。
2）RADIUS的加密方法
对于重要的数据包和用户口令，RADIUS协议可使用MD5算法对其进行加密，在其客户端（NAS）和服务器端（RADIUS Server）分别存储一个密钥，利用此密钥对数据进行算法加密处理，密钥不宜在网络上传送。
3）RADIUS的重传机制
RADIUS协议规定了重传机制。如果NAS向某个RADIUS服务器提交请求没有收到返回信息，则可要求备份服务器重传。由于有多个备份服务器，因此NAS进行重传时，可采用轮询方法。如果备份服务器的密钥与以前密钥不同，则需重新进行认证。终端访问控制系统终端访问控制（Terminal Access Controller Access Control System，TACACS）的功能是通过一个或几个中心服务器为网络设备提供访问控制服务。与上述RADIUS区别是，TACACS是Cisco专用的协议，具有独立的身份认证、鉴权和审计等功能。
准入控制与身份认证管理
准入控制技术企事业机构网络系统，在安装防火墙、漏洞扫描系统、入侵检测系统和病毒检测软件等安全设施后，仍可能遭受恶意攻击。其主要原因是一些用户不能及时安装系统漏洞补丁和升级病毒库等，为网络系统带来安全隐患。
思科（Cisco）公司在2003年11月，为了应对网络安全中出现的这种情况，率先提出了网络准入控制（Network Admission Control，NAC）和自防御网络（SDN）的概念，并联合Network Associates、Symantec、 Trend Micro及IBM等厂商共同开发和推广NAC。微软公司也迅速做出反应，提供了具有同样功能的网络准许接入保护方案（Network Access Protection，NAP）。思科公司的NAC和微软的NAP其原理和本质是一致的，不仅对用户身份进行认证，还对用户的接入设备进行安全状态评估（包括防病毒软件、系统补丁等），使每个接入点都具有较高的可信度和健壮性，从而保护网络基础设施。
随后，国内外厂商在准入控制技术产品开发方面进行一场激烈的竞争。思科公司于2004年推出准入控制产品解决方案之后，华为公司也紧随其后，于2005年上半年推出了端点准入防御（Endpoint Admission Defense，EAD）产品，SYGATE也于2005年6月公布了SNAC通用解决方案。准入控制技术方案比较思科公司的NAC或微软公司的NAP，还是华为公司的EAD，都是专用的准入控制系统。不同厂商的准入控制方案虽然在原理上基本类似，但是，具体实现方式各不相同。主要区别体现在以下4个方面。
1）选取协议
思科公司及华为公司选择的是EAP协议、RADIUS协议和802.1x协议实现准入控制。微软则选择DHCP和RADIUS协议来实现。
2）身份认证管理方式
思科公司、华为公司和微软公司在后台都选择使用RADIUS服务器作为认证管理平台；华为公司主要以用户名和密码方式进行身份认证，思科公司选择了采用证书方式管理用户身份方式；微软暂时还没有推出具体的产品。
3）策略管理
各厂家都选择了集中式控制管理方式。策略控制和应用策略服务器（通常是RADIUS服务器）和第三方的软件产品（病毒库管理及系统补丁等）协作进行；用户资料和准入策略由统一的管理平台负责。
4）准入控制
思科和华为的准入控制原理大同小异，利用本公司特定的网络设备来实现；微软由于没有控制网络基础设施的产品，选择了通过DHCP服务器来控制准入流程。3．准入控制技术中的身份认证身份认证技术的发展过程，从软件到软硬件结合，从单一因子认证到双因素认证，从静态认证到动态认证。目前常用的身份认证方式包括：用户名/密码方式、公钥证书方式、动态口令方式等。无论单独采用哪种方式，都有其优劣。如采用用户名/密码方式，用户名及弱密码容易被窃取或攻击；而采用公钥证书，又涉及到证书生成、发放、撤销等复杂的管理问题；私钥的安全性也取决于个人对私钥的保管。
身份认证技术的安全性，关键在于组织采取的安全策略。身份认证技术必须满足组织机构的对网络安全的具体实际需求，并能够认真完整地执行安全管理策略。
身份认证是网络准入控制的基础。在各种准入控制方案中，都采用了身份认证技术。目前，身份认证管理技术和准入控制进一步融合，向综合管理和集中控制方向发展。准入控制技术的现状与发展准入控制技术发展很快，并出现各种方案整合的趋势。各主要厂商在突出发展本身准入控制方案的同时也加大了厂商之间的合作力度。思科和微软都承诺支持对方的准入控制计划，并开放自己的API。准入控制标准化工作也在加快进行。在2004年5月，可信计算组织（Trusted Computing Group，TCG）成立了可信网络连接（Trusted Network Connect，TNC）分组，TNC计划为端点准入强制策略开发一个对所有开发商开放的架构规范，从而保证各个开发商端点准入产品的可互操作性。这些规范将利用现存的工业标准，并在需要的时候开发新的标准和协议。
TNC的成立促进了标准化的快速发展，许多重要的网络和安全公司如Foundry、Sygate、Juniper、Trend Micro、Symantec和Zone Labs等都加入了TNC组织。TNC希望通过构建框架和规范保证互操作性，这些规范将包括端点的安全构建之间、端点主机和网络设备之间，以及网络设备之间的软件接口和通信协议。现在，准入控制正在向标准化、软硬件相结合的方向发展。