基金项目:国家重点基础研究发展规划项目(973计划)(No.2007CB310704)
进入21世纪,信息化的浪潮席卷了整个世界。可以说,现在的任何一项生产活动都离不开计算机、网络和信息系统,越来越多的组织机构和企业建立了各种计算机信息系统以满足日益激烈的市场竞争的需要。在信息系统中,有两个安全需求是非常重要的:如何保证人员的安全登录和登出?如何控制不同层次的人员使用不同的功能?解决这两个问题的办法是采用认证技术和授权技术[1-4]。目前常见的方法是分别构建不同的认证授权平台和系统,认证授权属于分散管理模式,其造成的结果是重复建设、无法高效互联互通、管理成本高以及系统总体安全性降低。因此,如何能够设计和建设一个通用架构和基础平台,承载不同组织和机构的信息系统,避免重复建设,实现跨域跨机构、可移植、可信任和可扩展的认证授权与审计,是一个亟待研究解决的问题。本文作者是中国下一代互联网(CNGI)跨域认证授权审计示范工程的主要承担者和参与者,本文将给出上述问题的答案,希望能够给同行一些参考和借鉴,更希望推动这一相关技术能够获得更大的应用和市场。
1 认证与授权的标准综述
认证和授权是任何信息化的系统都应当包含的功能,因此工业界也讨论和设立了很多关于这方面的标准。其中,认证的需求目标比较独立和明确,关于认证的标准比较多比较全,大众的认知度也比较高。授权管理的需求相对比较分散和模糊,标准不多,应用的实际效果也一般。下面,我们就对这两种标准的应用和发展分别做一个综述。
1.1 身份认证的标准
这里把认证分为3大类:认证方案类、单点登陆(SSO)协议类和认证实现类。
认证方案是指认证的方式、手段、涉及的设备和协议,最常见例子就是用户名/口令方式,其他的还有一次性口令方案、X.509数字证书方案、生物认证方案、智能卡认证方案、Kerberos认证方案等。这些方案描述的是认证的实体,包括流程、序列、实现,甚至包括数学证明和安全性分析。随着时间的推移,这些方案在不断发明、使用、被攻破的过程中也在不断地优化和改进。
SSO协议指的是集成各种认证方案以实现单点登录目的的协议规范,主要的有安全性断言标记语言(SAML) V1.0/V1.1/V2协议、网络身份统一架构(ID-FF) 1.2协议、WS-Federation协议和.Net Passport协议。其中SAML[5-6]协议由结构化信息标准促进组织(OASIS)制定,规定了SSO在客户端(Browser)和工件(Artifact)实现的流程,定义了认证断言和属性断言,它们都遵循万维网联盟(W3C)的XMLSchema规范和XMLSig规范,以可扩展标记语言(XML)的格式描述。ID-FF 1.2协议由Liberty Alliance组织制定,Liberty规范要求建立联盟关系的系统的账号之间要建立映射,通过映射关系间接地实现账号的全局性,目前,该规范有和SAML融合的趋势。SAML的标准化程度比较高,将认证的功能和流程做了统一的规划和定义,各大软件厂商对其支持力度也在逐渐加强;ID-FF使用的技术与SAML越来越趋同;而WS-Federation协议和.Net Passport协议比较封闭,被提及的次数越来越少,有被边缘化的趋势。
认证实现是指工业界形成的实际技术框架标准和开源社区基于标准构建的认证系统,他们虽然在建立之初并没有经过标准化委员会的认证和支持,但是,他们在实际的软件开发人员中有着先入为主的重要印象和深远的范例意义。Java认证授权服务(JAAS)就是一项JAVA领域的实际标准,它规定了一系列的调用接口和规范,提供了灵活和可伸缩的机制来规范客户端或服务器端的JAVA程序。许多基于JAVA技术构建的大型应用和服务,无论是软件巨头推出的产品还是极具影响力的开源社区推出的系统,都已经声称支持这项规范,商用系统有Webshpere和Weblogic等,开源社区有JBoss和Tomcat等。开源社区基于标准构建的认证系统影响力也不小,比如Internet2的Shibboleth,致力于校园网教育系统的认证联盟建立,实现Web资源的共享;又比如Acegi Security为Spring Framework提供一个兼容的安全认证服务;还有耶鲁大学开发的单点登录系统(CAS),在互联网上被讨论的热度也很高。
1.2 授权管理的标准
授权管理有着悠久的历史,但是发展比较缓慢,基本还是在早期的理论上修补,没有具有突破性质和广泛应用价值的新成果出现。目前比较热门的研究有基于任务的授权、基于工作流的授权等,但离标准的形成和大规模应用还有相当长的距离。
授权管理基础设施(PMI)授权管理基础设施是一种被寄予厚望的授权架构标准,它推荐使用属性证书(由Asn.1格式描述)来定义出现在各种系统中的权限,使用签名技术保护授权。但是由于Asn.1语义艰涩、开放性不够等诸多原因,这项标准发展到现在,应用的状况并不是特别理想。
可扩展的访问控制标记语言(XACML)是目前新兴的授权描述标准,和SAML一样,也是由OASIS定义,它扩展了传统的访问控制列表(ACLs)技术,提供了表达复杂逻辑策略的能力,使得应用程序更加灵活地使用访问控制策略。
Java容器授权合同(JACC)是一种被工业界实际采用却未标准化的技术标准,基于JAVA构建的大型企业应用都在不经意间使用了该项技术,比如在Portal、App Server领域,占据较大市场份额的商用系统都内置了对该技术的支持。
2 CNGI环境中构建跨域认证授权审计系统
在CNGI的2006年度专项计划中,对CNGI跨机构的统一认证和授权中间件技术项目的产业化予以大力扶植和支持,反映出该项目对中国下一代互联网的发展具有重要的推进作用。我们在组织和参与该项目的研发和实施过程当中,积累了一些经验和体会,下面进行详细的介绍。
2.1 跨域统一认证授权审计平台的目标与方案
CNGI跨机构的统一认证和授权中间件技术项目的主要目标是采用当前最成熟的技术和标准,在CNGI上建立一个跨域跨机构统一认证授权示范平台,同时建立跨域跨机构的示范应用,以期推广这项技术的产业化和大规模应用。网络拓扑如图1所示,具体内容如下:
总体思路和方案如下:
下面将通过流程图详细描述联盟用户的跨域认证授权审计的流程。
2.2 联盟用户统一身份认证
联盟用户进行跨域的身份认证流程如图2所示:
(1) Browser请求一个SP上的目标资源:http://sp.ncs-cyber.com.cn,SP进行安全检查,判断是否有安全Cookie,如果以前登录过,则跳转第12步;
(2)SP将客户端重定向到位置服务(LP);
(3)Browser请求LP:http://lp.ncs-cyber.com.cn;
(4)LP返回页面让用户选择自身所在的位置;
(5) 用户进行选择并提交到LP;
(6)LP根据用户的选择将用户重定向所属的IdP;
(7)用户请求http://idp.ncs-cyber.com.cn,单点登陆服务(SS)对用户进行认证,如果认证通过,认证服务(AA)将发放给用户一个身份断言,如图3所示;
(8)IdP将用户重定向回SP;
(9)AC将检查用户的SAML Assertion,如果检查通过将创建一个安全Cookie,表示用户被接受;
(10)用户又被重新重定向到目标资源(TR);
(11)用户访问TR,TR检查到安全Cookie,允许用户通过,同时检查用户的权限,这个检查流程将在下一部分解析;
(12) 用户被允许浏览TR资源。
2.3 联盟用户授权与鉴权
联盟用户通过身份认证之后,还需要经过权限的检查才可以访问到所需的资源。这个检查是基于XACML来实现,鉴权流程如图4所示。
(1)客户端已经被身份认证通过,被允许访问TR;
(2)授权请求将到达权限实施点(PEP)。PEP 创建一个XACML请求并发送到权限判断点(PDP);
(3)权限控制点(PAP)在信任存储者(DT Storage)上定义策略和策略集,策略包含主体(Subject)、资源(Resource)和环境(Environment)的对应关系,供PDP使用,如图5所示;
(4)PDP调用权限信息点(PIP)服务检索与主体、资源或者环境有关的属性值;
(5)PIP访问DT Storage以获取相关属性值;
(6)PIP应答PDP的属性请求;
(7)PDP评估请求中的相关策略和规则后会作出决策,并返回给PEP一个响应,该响应可以是允许访问的,也可以是拒绝访问的;
(8)PEP根据 PDP 发送的授权决策允许或拒绝访问。
2.4 联盟用户日志审计
联盟用户的审计将通过高可用的日志服务器来完成,该服务器通过支持syslog-ng支持各种类型联盟中系统的日志。该服务器使得日志的传输能够支持过滤功能、TCP 传输和SSH安全传输,如图6所示。
(1)各组件,包括SP、LP、IdP和DTP将日志收集;
(1a)Syslogd收集日志,将日志通过localhost的UDP发送;
(2b)日志读取器收集日志,将日志通过命名管道发送;
(2a)Syslog-ng接收由UDP端口发送来的日志;
(3b)Syslog-ng接收由命名管道发送来的日志;
(4)Syslog-ng将日志通过TCP、UDP或者SSH发送到高可用服务器。
3 平台创新点分析
本平台从CNGI业务系统现状出发,提出了基于DT的改进产品结合SAML服务器建设跨域的实现跨机构统一身份认证和授权解决方案。将涉及的域内所有应用集成起来,给不同层次的使用者提供信息服务,采用统一的用户管理和身份认证,实现用户单点登录,用户一次登录后就可以访问域内的各个应用;通过统一的访问控制管理,使得系统展现用户有权访问的应用,新增的应用也能够自动加入到系统中。
当用户访问联盟域的SP上的目标资源的时候,通过每个域不同的SAML IdP完成身份交换,从而完成跨域的身份认证。
同时,DT基于XACML给用户配置联盟角色和策略,当用户访问联盟域的资源的时候,使用联盟角色,联盟域根据联盟用户的联盟角色,给用户相应的权限,完成最后的跨域授权与鉴权。
本项目的创新点可以总结如下:
4 结束语
将来我们还准备积极跟进和研讨国内外先进的认证与授权领域的标准和技术,让跨域跨机构的认证和授权更加安全、易用和灵活,并计划将CNGI示范平台产业化和商用化,使之能够获得更大规模的应用,实现更大的应用价值。
5 参考文献
[1] KAUFMAN C, PERLMAN R, SPECINER M. Network security: Private communication in a public world[M].Second Edition. Upper Saddle River, NJ, USA: Prentice Hall, 2002.
[2] MAO W. An identity-based non-interactive authentication framework for computational grids[R]. HPL-2004-096, Hewlett-Packard Laboratories, 2004.
[3] 王育民, 刘建伟. 通信网的安全——理论与技术[M]. 西安: 西安电子科技大学出版社, 2002.
[4] FOSTER I, KESSELMAN C, TSUDIK G, et al. A security architecture for computational GR ID[C]//Proceedings of the 5th ACM Conference on Computer and Communications Security, Nov 2-5, 1998, San Francisco, CA, USA. New York, NY, USA: ACM, 1998: 83-92.
[5] GROB T. Security analysis of the SAML single sign-on browser/artifact profile[C]// Proceedings of the 19th Annual Computer Security Applications Conference, Dec 8-12, 2003, Las Vegas, NV, USA. Los Alamitos, CA, USA: IEEE Computer Society, 2003: 298-307.
[6] CANTOR S, HIRSCH F. BINDINGS for the OASIS security assertion markup language (SAML) V2.0[S].OASIS Standard. 2005: 5-35.
[7] 黄琛, 李忠献, 杨义先,等. 一种新的兼容多种身份认证的Web SSO方案[J]. 北京邮电大学学报, 2006, 29 (5): 130-134.
收稿日期:2007-07-10
[摘要] 国际上的认证与授权方面的标准主要有安全性断言标记语言(SAML)、可扩展访问控制标记语言(XACML)等,中国下一代互联网示范工程(CNGI)跨机构的统一认证和授权中间件技术项目基于国际规范,提出了结合现有成熟产品DT (DigitalTrust)、身份提供者(IdP)和服务提供者(SP)而建立跨域跨机构统一身份认证、授权和审计(AAA)系统的完整方案。该系统提供一种独立于协议和平台的身份验证和资源访问授权交换机制,对于CNGI环境下跨域跨机构统一认证和授权技术的发展和应用具有很好的示范意义。
[关键词] 跨域认证授权审计;安全断言;单点登录;中国下一代互联网;可扩展的访问控制
[Abstract] By studying and discussing the international and relevant standards and norms, e.g.: Security Assertion Markup Language (SAML), Extensible Access Control Markup Language (XACML), a new scheme about unified authentication and authorization originated by China Next Generation Internet (CNGI) cross-domain middleware technology program was suggested based on those international standards. It was built up combining with improved DigitalTrust(DT) product, Identity Provider (IdP) and Service Provider (SP). The scheme presents one kind of verification and privilege agreement mechanism independent with protocol and platform, which is a good example for the development and application of unified cross-domain cross-organization authentication and authorization technology under CNGI environment.
[Keywords] cross-domain authentication and authorization; security assertion; single sign-on; CNGI; extensible