一种基于WS系列规范的自动信任协商模型
2016-04-22平震宇李培峰
平震宇, 李培峰
(1.江苏信息职业技术学院, 江苏 无锡 214101; 2.苏州大学 计算机科学与技术学院, 江苏 苏州 215006)
一种基于WS系列规范的自动信任协商模型
平震宇1, 李培峰2
(1.江苏信息职业技术学院, 江苏 无锡214101; 2.苏州大学 计算机科学与技术学院, 江苏 苏州215006)
摘要:自动信任协商技术可以应用于Web服务中作为其认证授权模式.讨论了根据WS-Policy规范基于令牌的模式描述信任协商策略,扩展WS-Trust的质询/响应框架,构建符合WS系列规范的信任协商会话,提出了自动信任协商的软件系统实现框架.
关键词:自动信任协商;认证;授权;Web服务
0引言
在基于服务为中心的Web服务环境,例如现在流行的SaaS模式与SOA模式等,资源的提供者和请求者往往隶属于不同的安全域,交互主体间的生疏性以及共享资源的敏感性成为跨安全域信任建立的屏障,特别是陌生方之间很难协定出彼此信任的第三方,来协助它们建立信任关系.Winsborough等[1]提出了自动信任协商(Automated Trust Negotiation,ATN)概念,提出通过逐步向对方披露数字证书以在陌生者之间建立信任关系的一种访问控制方法,并且定义了ATN的抽象模型,将双方实体间的信任建立抽象为构造一条信任证披露序列.Yu等[2-3]提出了披露树模型表述ATN的状态,并证明了信任协商的目标是构造一棵信任证书完全披露树.这些关键理论研究工作奠定了ATN应用基础.ATN提供了在陌生者之间建立信任关系的一种访问控制方法,可以为合法用户访问资源提供安全保障,防止非法用户的非授权访问.
当前比较成熟的ATN项目有:Seamons和Winslett等[3]联合承担的ATN研究项目——TrustBuilder系统,其对ATN理论的各个部分都提供了比较完善的实现;Bertino等[4]提出的Trust-X模型,其为网络环境下互不相识的实体之间建立信任提供一种有效模型,从而使得互不认识的实体通过逐步建立起来的信任获取敏感性资源;IBM Haifa研究院的Trust Establishment项目[5]与德国Hannover大学的PeerTrust项目[6],都在积极从事相关的研究和应用工作.
本研究的重点是基于WS系列安全规范和安全技术来构造适用于SaaS等Web服务的自动信任协商系统模型,主要内容为:基于WS-SecurityPolicy规范扩展声明元素(Claim)用于描述信任协商策略;扩展WS-Trust的请求/响应框架,从而构建符合WS系列规范的信任协商会话;提出了ATN模型的软件系统实现构架.
1扩展Web服务安全相关规范
IBM、Microsoft和VeriSign于2002年4月联合发布了一个关于Web服务安全性(Web Services Security,WS-Security)的规范,规定如何将现有的XML安全机制应用于SOAP消息环境,并开发了一系列的Web服务安全规范,包括WS-Policy、WS-Trust、WS-Privacy、WS-SecureConversation、WS-Federation和WS-Authorization.
Web服务安全模型以WS-Security为基础,包括了安全策略、信任关系、隐密性、声明、安全会话、WS联合和WS授权等几个方面.WS-Security规范[7]为Web服务提供了一种保障服务安全性的语言,保证SOAP消息的隐密性、完整性.通过使用数字签名,将访问限制为经过授权的实体,并验证信息没有在传输过程中被更改;通过加密机制,防止数据泄密;通过添加时间戳,可以防止消息被捕获和重发.WS-Policy指定Web服务使用者必须遵循的策略信息,描述了服务提供者如何定义用户的安全要求,以及用户如何说明他的声明,例如,所需的安全性令牌、所支持的加密算法和隐私权规则.WS-Trust描述使Web服务能够安全地进行互操作的信任模型的框架,构建于WS-Security基础上,提供了一种交换安全令牌的方式,其核心是一组用来发出、更换、取消以及验证安全令牌的消息.
1.1信任协商策略描述
在信任协商过程中,以参与决策的相关实体的属性策略为基础进行授权决策,实体使用凭证来满足相关的属性策略.WS-Policy描述[8]发送者和接收者如何指定其要求和能力,是完全可扩展的.不限制可以描述的要求和能力的类型,规范识别几个基本的服务属性,包括隐私权属性、编码格式、安全性令牌要求和支持的算法.WS-SecurityPolicy是WS-Policy的子集,定义了基于令牌来安全地交换消息的基本机制,对哪些实体被允许访问某个服务以及访问方式做出规定,并对认证方式的类型或所需要的加密等级做出限制,为通用的方式对服务的能力和限制进行描述.安全令牌(Security Token)用于表示与安全性相关的信息,例如,X.509证书、Kerberos票据、用户名等,在消息处理的参与者实体之间实现直接或间接披露.WS-SecurityPolicy使用策略断言来表示要求或能力,例如,
此策略断言表示Web服务对于与其进行事务处理的实体有一个要求:采用X509类型的安全令牌,证书颁发者是Soochow University.
WS-Policy定义了wsp:Policy、wsp:All和wsp:ExactlyOne策略运算符,通过3个构造彼此进行嵌套,可以编写适用于信任协商的复杂策略.
例如,苏州大学的在校学生需要访问学校的Web服务为其校园卡充值,则必须提供学生的数字证书以及交通银行的数字证书.如果严格按照规范现有的信息来描述信任协商策略显然是不能满足要求的,信任协商策略包含丰富的属性约束,例如对于学生,还有入学时间、院系及班级等信息,如果仅使用数字证书,只能够证明他是合法的在校学生,无法表示其他需要的属性约束.
WS-SecurityPolicy与WS-Trust规范设计了Claim(声明)元素,用来区别一个主体和其他主体的陈述信息.陈述信息可以是对消息进行签名或加密的密钥,表明发送者的身份或者一个被授权角色等.声明要么是一条关于主题的陈述,要么是由主题或者把主题与声明关联起来的依赖方做出的陈述.规范不限制可以做出的声明的类型,也不试图限制如何表达这些声明.因此可以通过定义声明的子元素来表述信任协商中所需要的属性约束,如表1所示.
表1 声明扩展属性、运算符、值、所有权子元素
例如,学生校园卡在线充值时,属性约束条件为(Student Type,EQ,Registered Student)以及(Web bank Status,EQ,Registered User).Ownership元素用来指示访问者是否对安全令牌的所有权证明.
C=CN/O=Soochow University/CN=suda.edu.cn
C=CN/O=Bank of Commuications/CN=pbank.95559.com.cn
1.2扩展WS-Trust规范
WS-Security 规范定义了通过使用安全令牌来安全地交换消息的基本机制.WS-Trust规范[9]规定了服务请求者和服务提供者之间的信任,是通过双方以一种预期且可理解的方式交换信息来建立的,信任关系以安全令牌的形式呈现.例如Alice拥有一个Web服务,Bob的朋友需要访问其服务,Alice设置的访问策略为需要Bob颁发的安全令牌,这个安全令牌用来证明其是Bob朋友这个事实,信任关系以安全令牌的交换为基础,并存在于已经确定的支持信任策略中.WS-Trust定义了用来发出、更换、取消以及验证安全令牌的消息,这些消息可以由访问者通过调用安全令牌服务(STS,例如KDC或CA)的特点类型的SOAP Web服务进行交换.
图1给出了Bob的朋友Charlice如何访问Alice的Web服务.Charlice向Alice的Web服务发送访问
图1Charlice访问Alice的Web服务
请求,Alice告诉Charlice需要Bob's Friend安全令牌.Charlice向Bob的安全令牌服务发出 SOAP请求〈RequestSecurityToken〉.Bob收到请求后发送〈RequestSecurityTokenResponse〉消息给Charlice,即将包装在〈BinarySecurityToken〉内部的凭证发布给Charlice,Charlice向Alice提交Bob's Friend安全令牌.这种交互依赖于2个元素:〈RequestSecurityToken〉和〈RequestSecurityTokenResponse〉,发送包含〈RequestSecurityToken〉作为其正文的SOAP消息,然后获得包含〈RequestSecurityTokenResponse〉的SOAP消息以及新的安全令牌.WS-Security标头包含了一个〈UsernameToken〉,以便对这个请求进行身份验证.以明文形式发送这个请求,可能要求同时包含数字签名和时间戳的更健壮的安全令牌.消息正文包含请求颁发凭证的〈RequestSecurityToken〉元素.请求的证书被返回,它包装在由WS-Security定义的〈BinarySecurityToken〉元素中.
WS-Trust定义向安全令牌服务请求安全令牌时,可以选择使用的质询/响应机制,尽管直接的身份验证机制可能很好,但是安全令牌服务可能会需要更多证据,需要多次请求和响应.当请求者发布〈RequestSecurityToken〉消息后,规范允许请求者与STS之间交互多次〈RequestSecurityTokenResponse〉消息,直至安全令牌成功发布或者失败.但是已有的扩展功能只能支持基本的质询/响应机制和传统的密钥交换机制,还不能满足信任协商的要求,如表2所示,扩展其协议内容从而实现信任协商协议.
表2 协商协议内容的扩展
使用TNInit与 TNExchange元素用于封装信任协商会话的信息.TNInit元素用于信任协商第一轮会话时,用来确定后续协商的相关参数.TNExchange元素用于后续协商会话,描述信任协商中的策略信息(PolicyCollection)以及安全令牌(TokenCollection).协商策略编码后,安全令牌包含在一个Token元素中,包括令牌类型描述、令牌本身(编码按照WS- Trust规范)和一个可选的所有权证明.
由于参与协商实体使用TNInit对象交换信息,从而选择相应的协商策略和安全性令牌格式,后续协商过程中所需的安全令牌和策略交互可以在初始化时协商一致.另外扩展定义的TNInit和TNExchange元素本身可以很容易被扩展用于支持交换所需的数据项,例如策略信息、安全令牌.上述2个元素可以在WS-Trust框架下实现信任协商协议.
如图2所示,Alice试图访问将使用信任协商授
图2Alice访问苏州大学Web服务协商流程
权控制苏州大学Web服务.当请求访问的服务,Web服务告知必须出示由苏州大学的STS发布的安全令牌.Alice向STS发送SOAP消息,其中包含〈RequestSecurityToken〉元素,表示需要一个安全令牌用于访问受保护的网络服务.STS返回一个包含〈RequestSecurityTokenResponse〉元素SOAP消息发起信任协商,该元素包含一个TNInit元素(包含初始化信息的信任协商策略),以及TNExchange元素(包含PolicyCollection元素).该策略要求Alice是在校学生以及是交通银行的网上银行签约客户.收到此消息,Alice创建一个新的SOAP消息发送到STS,RequestSecurityTokenResponse包含一个TNInit元素来确定协商参数,以及一个TNExchange元素,其中包含TokenCollection元素,该客户的交通银行网银签约客户的安全令牌副本(及其相应的所有权证明)和PolicyCollection元素包含一个策略,要求该STS证明其为苏州大学的认证服务.STS收到该消息后返回一个SOAP消息,Alice接收到一个〈RequestSecurityTokenResponse〉包含STS提供的安全令牌(包含在TokenCollection元素中),及其相应的所有权证明,此消息满足Alice披露其学生证明的安全策略.Alice向STS透露其学生凭证,STS收到学生凭证后返回一个SOAP消息,包含最后RequestSecurityTokenResp-onse元素,将Alice所需要的安全令牌发送给他.最后,Alice向Web服务提供的安全令牌,Web将授予其访问权限.
2自动信任协商系统框架
ATN-Framework是一个设置自动信任协商的框架,该框架为中间件信任代理,能够管理密钥、信任凭证和访问策略,并能决定在协商过程中向对方显示哪个信任凭证和访问策略.ATN-Framework不仅实现特定的信任协商协议,还使得各种信任协商技术可以在此构建下实施.
2.1通讯协议与数据结构
由于自动信任协商理论还在不断的完善中,因此在设计ATN-Framework的体系结构时考虑到其可扩展性,定义其与协商协议无关的通讯协议,提供通过扩展而后可以解析各种协商协议的框架.例如,在协商会话中,不止需要交换凭证和策略,还需要在框架中支持Trust-X的信任票.为此,ATN-Framework使用一个非常简单的通信协议以及具有可扩展的数据类型层次结构,便于适应广泛的信任协商协议.
ATN-Framework通信协议由TrustMessage实现,管理协商实体包含一个或多个TrustModel对象.第一条消息的信任协商会议的发起者发送InitModel对象,描述信任协商配置信息(即策略类型,凭证格式和策略语言等),可以扩展配置信息.如果响应者支持的系统配置与发起者建议的系统配置之一兼容,即返回一个包含另一个 TrustMessage,同样使用InitModel描述即将进行的信任协商的配置信息.发起者收到确认的配置信息后,回应一个包含TrustMessage,其中包含 NegotiationTarget指明希望访问的资源,最后开始凭证的交换与策略的检查直至协商成功或者宣布失败.
信任协商会话是协商双方交换消息的过程,包含凭证、策略、声明和其他信息.为了支持尽可能广泛的信任协商协议,ATN-Framework框架的核心组件很大程度上依赖于一个可扩展的数据类型层次结构.所有信任协商会话中协商方之间交换的信息使用TrustModel类表示,作为信任协商进程的基本模块.用户可以无需修改每个组件的数据进行扩展.TrustMessage实体对象包含一个或多个TrustModel.InitTrustModel,NegotiationTarget和StatusModel类用于提供信任协商高层次的信息.InitTrustModel用于设置信任协商的参数,NegotiationTarget是用于表示特定信任协商发起者希望访问的资源,StatusModel用于存放协商过程中的状态信息,例如协商是否成功.在信任协商会话中所有的数据交换都需要协商策略的保护,由ResourceModel子类实现,可以确保ATN-Framework正确执行披露需求而不必了解数据项本身的含义.
AbstractCredentialClass和AbstractPolicyClass类用于表示抽象的属性证书和策略,使TrustModel处理凭证和各种格式的策略时无需了解各种格式的细节.细节的处理由X509CredentialClass、RTCredentialClass类完成,或者根据需要扩展成相应的处理类.X509CredentialClass用于解析有关X.509证书的信息,RTCredentialClass类解析RT凭据的详细信息、PolicyClass类用于策略检查.
2.2软件系统框架
图3为ATN-Framework软件系统框架图.ATN-Framework类提供外部访问接口,系统在信任协商会话期间通过调用这个类提供方法来完成信任协商,当一个新的信任协商会话开始后,ATNFramework类创建和管理一个Session对象,即保持协商实体之间谈判过程中所有必要的状态.例如,在完成协商系统配置信息的交换(InitModel)后,Session对象将包含本次协商将使用的配置信息.任何组件系统可以将自己的私有状态存放在Session对象中.
图3ATN-Framework软件系统框架图
在信任协商过程中,所有TrustMessages消息都由ATNFramework接口处理,接口处理后产生一个响应TrustMessage消息返回给远程参与者.在处理远程TrustMessage消息或提交消息给StrategyModuleMediator对象前,ATNFramework接口首先将消息传递到IOManipulationModule对象.IOManipulationModule是处理所有输入和输出TrustMessage消息的地方.组件允许用户加载自定义的系统插件,用于检查和修改所有输入或者发出的TrustMessage消息,使得用户应用系统的数据格式可以与ATNFramework相兼容.
ATNFramework系统有4个核心组件:策略协商模块(StrategyModuleMediator)、策略一致性验证模块(ComplianceCheckerMediator)与信任与策略库(CredentialPolicyStore)、信任凭证检查模块(CredentialCheckerMediator).每个模块收发、协调、处理各模块间的数据.StrategyModuleMediator描述当前信任协商的状态(本地信任凭证和策略、前几轮协商披露的信任凭证和访问策略),并且产生应答消息传送给对方.CredentialCheckerMediator用于检查收到的凭证的有效性、验证凭证的签名及发现信任凭证链等任务.ComplianceCheckerMediator保证资源在其安全策略满足时才能显示给对方,并且决定当对方显示信任凭证后,满足哪个本地策略,负责检查哪一个远方信任凭证满足本地策略,决定哪个本地信任凭证满足远方的策略.另外,由QueryEngineMediator负责访问本地信任协商证据或调用外部系统查询服务,最后生成一个响应TrustMessage消息,由ATNFramework接口将其发送给对方.由于在设计之初考虑了系统组件框架允许用户插入定义的插件,其他业务系统接入时无需修改系统组件框架本身的功能,只需要在运行时插入与业务系统相关的自定义插件即可.业务系统只需编写和编译符合ATNFramework接口标准的插件,以动态库的形式提供,并且在相应的模块中注册,而无需修改底层框架.
2.3实验测试
本研究以在校大学生校园卡在线充值服务为实验场景,对基于ATN的访问控制机制进行性能测试.为了说明信任协商到底能对一个典型系统增加多少负荷,本研究测试了在线充值的Web 服务的性能.系统输入2个参数,一个是学号字符串,另一个是交易额的整数,调用Web服务后,返回一个表明交易是否成功的文本字符串,实验结果主要记录信任协商过程中花费的时间.为了说明客户端、服务器的策略复杂性对协商时间的影响,在实验中改变了协商的轮数并进行比较.第一个实验结果表明,进行上述信任协商会话花费平均时间434 ms.第一次信任协商会话大约1 300 ms.由于系统最初加载ATNFramework框架的成本,这个初始成本被协商会话分摊,因此一次信任协商会话花费的实际时间会小于400 ms.在第二个实验中,发现系统耗用时间主要花费3个任务:策略一致性检查(≈49%),数据I/O操作(≈15%)及数据的加密签名操作(≈14%),而其他开销(如需要支持插件加载、处理时间)没有统计在以上结果中.
3结论
自动信任协商代表着一种新型的安全技术,为实现跨域资源共享与互访提供安全保障,目前已引起了业界的足够重视.Web服务请求者与提供者之间可以采用基于安全令牌的方法来建立信任关系,但这种方法通常是静态的,因为安全令牌是事先确定的.如果需要建立动态信任关系,则可以采用自动信任协商机制.本研究主要讨论自动信任协商系统框架的实现过程,并在WS系列规范的基础上扩展了WS-Policy用于描述自信信任协商的策略,扩展了WS-Trust规范用于实现自动信任协商协议,提出了一种自动信任协商框架,充分考虑了其可扩展性以适应研究的不断发展.
参考文献:
[1]Winsborough W H,Seamons K E,Jones V E.Automatedtrustnegotiation[C]//DARPAInformationSurvivabilityConferenceandExposition2000.New York:IEEE Press,2000.
[2]Yu T,Winslett M,Seamons K E.Supportingstructuredcredentialsandsensitivepoliciesthroughinteroperablestrategiesforautomatedtrustnegotiation[J].ACM Trans Inf Syst Sec,2003,6(1):1-42.
[3]Yu T,Winslett M.Policymigrationforsensitivecredentialsintrustnegotiation[C]//Proceedingsofthe2003ACMworkshoponprivacyintheelectronicsociety.New York:USA:ACM Press,2003:9-20.
[4]Bertino E,Ferrari E,Squicciarini A C.Trust-X:apeertopeerframeworkfortrustnegotiations[J].IEEE Trans Knowl Data Eng,2004,16(1):827-842.
[5]Herzberg A,Mass Y,Mihaeli J,et al.Accesscontrolmeetspublickeyinfrastructure,or:assigningrolestostrangers[C]//SecurityandPrivacy,2000.Berkeley,CA:IEEE Press,2000:2-14.
[6]Xiong L,Liu L.PeerTrust:supportingreputation-basedtrustforpeer-to-peerelectroniccommunities[J].IEEE Knowl Data Eng,2004,16(7):843-857.
[7]Bob A,Giovanni D.WebServicesSecurity(WS-Security)version1.0[EB/OL].[2002-04-01].http://msdn.microsoft.com/ws/2002/04/Security/.
[8]Bajaj S,Box D,Chappell D,et al.WebServicesPolicyFramework(WS-Policy),Version1.2[EB/OL].[2006-04-01].http://www.w3.org/Submission/WS-Policy/.
[9]Anderson S,Bohren J,Boubez T,et al.WebServicesTrustlanguage(WS-Trust),Version1.1[EB/OL].[2004-05-01].http://msdn.microsoft.com/ws/2004/04/ws-trust/.
Automated Trust Negotiation Model Based on Web Services Standards
PINGZhenyu1,LIPeifeng2
(1.Jiangsu Vocational College of Information Technology, Wuxi 214101, China;2.School of Computer Science and Technology, Soochow University, Suzhou 215006, China)
Abstract:Automated Trust Negotiation(ATN) has previously been proposed as an appropriate authorization model for use in a web services context.In this paper,we show how the existing token based security model described by the WS-Policy standard can be used to specify ATN policies;we also propose extensions to WS-Trust’s challenge/response framework that can be used to facilitate ATN sessions in a fully standards-compliant manner;we present an ATN Framework for prototyping and evaluating trust negotiation systems.
Key words:Automated Trust Negotiation;authentication;authorization;web service
中图分类号:TP393.08
文献标志码:A
作者简介:平震宇(1975 — ), 男, 硕士, 副教授, 从事计算机信息处理与信息安全研究.
收稿日期:2016-01-13.
文章编号:1004-5422(2016)01-0058-06