




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Web服务安全的语义表达研究摘要:本文在分析了Web服务安全风险和安全需求的基础上,指出了国外同类研究成果的局限性,研究了各种Web服务安全规范中的概念的语义和它们之间的内在联系,使用OWL-DL语言设计开发了Web服务安全本体SecOWS,用于表达Web服务的安全需求和安全能力。关键词:Web服务 服务安全 安全规范 安全本体 1 引言Web服务提供了因特网上的应用软件相互调用的一种标准机制,这些应用软件可以运行在不同的平台上,也可以是采用不同的软件技术开发的应用。Web服务极大地促进了应用软件之间的松散耦合,实现了应用软件的动态组合。要实现Web服务之间以及与其它种类形式的软件之间的自动发
2、现与自动调用,必须对自描述信息的格式、交换信息的格式和传输方式等方面标准化,表1列出了Web服务协议栈。表1 Web服务协议栈服务管理服务安全服务发现 ServiceProfile 服务组合 ServiceModel 接口语义描述 ServiceGrounding 服务消息 SOAP基础技术 XML、XML模式服务传输 HTTP、SMTP、Web服务协议栈在因特网协议栈的基础上,增加了5层。这就意味着Web服务受到安全攻击的风险要比传统分布式应用大很多,同时也表明因特网中的现有安全机制仍然能够发挥它们应有的作用,但光靠它们是远远不够的。例如,当Web服务消息经过中间节点中转时,消息的完整性和机
3、密性就可能遭到破坏。同时,Web服务在因特网上暴露了单位内部的业务处理过程及使用方法,因特网固有的开放性加剧了Web服务的安全风险。下面列出了Web服务容易遭受的一些典型的攻击类型1-5。(1)非授权访问: HTTP协议的周知端口号是TCP端口80,大部分防火墙软件不过滤该端口的通信数据,因此,Web服务消息很容易穿过防火墙。Web服务由不同的服务者提供,分布在因特网上,访问控制规则的制订和实施也很困难。这些因素都很容易导致非授权访问。(2)中间节点查看或篡改非授权的消息内容:传统的网络安全传输协议只能保证点到点的传输消息的完整性和保密性,不能保证端到端的传输消息的完整性和保密性,因此,也就无
4、法防范中间节点针对所中继的消息的攻击。(3)恶意的参数输入:攻击者发送给Web服务非正常的调用参数,导致运行Web服务的系统出错,试图利用系统出错后的状态来达到控制系统的目的。(4)拒绝服务攻击:攻击者在短时间内发出大量的服务请求,力图使运行Web服务的系统无暇处理正常的服务请求。拒绝服务攻击会产生涟漪波动效果,影响到与被攻击系统存在联系的其它系统。(5)中间人攻击:攻击者位于服务请求者和服务提供者之间,充当两者的消息中介,从而达到监听或篡改消息内容的目的。(6)消息重放攻击:攻击者将监听到的消息的全部或部分在将来某个时刻发给服务提供者,试图获得非授权的访问。2 Web服务安全Web服务在不安
5、全的万维网上公开了自己的调用接口和访问方法,本身的安全防范范围又比传统的分布式应用扩大了许多,受到安全攻击的风险大大增加。那么,Web服务的安全需求主要有哪些呢?列举如下:(1)机密性:数据内容对非授权实体不可用,保护数据免遭被动攻击。这里,有两层含义,一是指在传输过程中服务消息保密;二是服务消息内容对非授权查看节点保密。(2)完整性:服务消息在到达服务接收者后,该接收者能够检测出消息自最初服务请求者发出后,是否发生变化。因为完整性需求与主动攻击相关,所以只关注检测而不是防范。(3)不可否认性:服务消息的发送者或接收者不能否认曾发出或接收过某消息。当发送一个消息时,接收方能够证实该消息确实是所
6、宣称的发送方发送的;当接收一个消息时,发送方能够证实该消息确实是所宣称的接收方接收的。(4)身份鉴别:识别并确认Web服务提供者和Web服务请求者的身份。传统的网络安全协议能够确认直接通信站点的身份,无法确认通过中间站点通信的两个站点的身份。因特网上身份表示的多样性,也给本需求的实现增加了难度。(5)访问控制:服务对非授权的实体不可用。Web服务提供者对服务所涉及的资源拥有绝对的控制权,但面对因特网上陌生的服务请求者如何授权,又如何实施访问控制?这两个方面是访问控制需求的主要内容。(6)消息唯一性:确认所收到的消息不是以前所收到过的消息,防范消息重放攻击。消息发送者必须在消息中加入随机数、创建
7、时间和过期时间及有关应用数据,如交易号码等数据,便于消息接收者检测消息重放攻击。为了有效防范针对Web服务的安全攻击,实现Web服务的安全需求,IBM和Microsoft公司于2002年联合提出了Web服务安全路线图6,包含了7种安全规范。在这些规范中,有的已成为OASIS组织推荐的标准,有的提交给W3C组织,成为标准草案,还有一些迄今为止还未公开规范的具体内容。除了文献6中提出的安全规范外,W3C和OASIS也制订了许多Web服务安全标准。在这些安全标准或草案中,每个都是针对Web服务安全需求的某个方面,不能防范所有的安全攻击类型,必须将它们组合起来,形成一个较完整的Web服务安全解决方案,
8、才能提供有效的安全攻击防范。表2是结合现有的网络安全协议,加上各个组织提出的Web服务安全标准或草案,按照安全实施的层次形成的Web服务安全协议栈。表2 Web服务安全协议栈高级主题层信任隐私访问控制安全会话WS-TrustXKMSSAMLWS-FedrationWS-PrivacyP3PWS-AuthorizationXACMLWS-SecureConversation策略框架层WS-SecurityPolicy WS-PolicyWS-PolicyAttachement消息层WS-SecurityXML基础层XML-SignatureXML-Encryption传输层IPSec SSL/T
9、LS HTTP-Authentication3 Web服务安全本体从Web服务安全协议栈可以看出,Web服务安全标准是非常多的,很有可能将来还会增加新的安全标准。在这些安全规范或草案中,不同组织制订的标准相互之间有交叉的重复范围,同一组织制订的标准划分过细,导致标准和概念太多,增加了开发者的学习难度,也违背了安全的简单性原则。同时,这些规范或草案无一例外地都没有明确表达各种安全元素的语义信息、各种安全元素之间的内在联系和各个元素的特性,使得规范之间的互操作变得非常困难。为了促进Web服务安全协议之间的互操作性,有必要使用本体语言,建立表达各种安全标准涉及到的概念之间语义联系的Web服务安全本体
10、,这是解决各种安全标准互操作性问题的一条重要途径。3.1 相关工作目前,在与Web服务安全相关的本体开发方面,主要有SRI(Stanford Research Institute USA)的Grit Denker等人和NRL(Naval Research Lab USA)的Anya Kim等人开发出了一些安全本体7-8,最早开始这方面研究工作的是Grit Denker等人。Grit Denker等人最早采用DAML+OIL开发出了7个与Web服务安全相关的本体,后来采用OWL改写了这些本体7,下文统称这些本体为SRI本体。在SRI本体中,Credential本体用来描述身份鉴别所需的安全凭证。
11、Security本体是安全机制描述本体,提供了安全标准或安全协议的抽象表达。ServiceSecurity本体将安全本体与语义Web服务关联起来,定义了ServiceParameter的子类SecurityMechanism,再进一步声明了Web服务的两个新特性SecurityRequirement和SecurityCapability来表达Web服务的安全需求和安全能力。AgentSecurity本体与serviceSecurity本体类似,它是用来定义智能体(Agent)的安全需求和安全能力的。Privacy本体用来定义Web服务提供者和访问者的隐私策略及策略匹配机制。InfObj本体用来
12、表达Web服务输入输出参数的加密及签名相关信息。Context本体提供了表达上下文相关信息的能力,可用于表达上下文相关的信任信息。Anya Kim等人采用OWL设计开发出了7个与安全相关的本体8,用于表达一般Web资源的安全需求和安全能力,而不仅仅局限于Web服务,这些本体在下文中统称NRL本体。SecurityMain本体是NRL本体中的核心本体,它定义了安全目标等抽象概念,并且将其与NRL本体中的其它本体关联起来。Credentials本体对SRI本体中的credential本体进行了改进,加入了更多的概念和特性,并对这些概念重新进行了组织,分为物理凭证、电子凭证和生物凭证三大类。Secu
13、rityAlgorithm本体描述了各种算法的分类关系及算法标识。SecurityAssurance本体描述了各种安全协议、机制和算法的安全等级划分。ServiceSecurity、agentSecurity和infObj本体是对SRI本体中的同名本体进行了少许改进与扩展,内容基本相同。SRI安全本体与NRL安全本体在描述Web服务安全需求和安全能力方面,还存在着一些局限,主要表现在以下三点:(1)SRI本体中部分概念的组织关系比较费解8。例如,在Security本体中,顶层概念为“SecurityMechanism”,其子概念分别为:“SecurityNotation”、“Signature
14、”、“Protocol”、“KeyFormat”、“Encryption”和“Syntax”。这些子概念之间相互联系很少,却一起成为同一概念的子概念,令人难以理解。(2)SRI本体与NRL本体中都存在大量与Web服务安全无关的概念和特性,同时却缺少大量与Web服务安全相关的概念和特性。例如,SRI本体中的SecurityMechanism子概念Syntax表达语法表示类型,有ASCII、OWL、DER、XML、ASN.1和MIME等类型。这些语法表示类型与安全标记并不直接相关。相反,SAML断言和安全令牌服务等与Web服务直接相关的概念却均未在这两种本体中表达出来。(3)SRI本体与NRL本体
15、中的概念名称极少直接取自各种Web服务安全标准中定义的元素名称。这就直接导致了语义层与具体的语法层脱节,不能将Web服务安全标准的语法与语义完美统一起来。下面介绍采用OWL-DL语言建立的Web服务安全本体SecOWS,它包括5个本体,分别是安全令牌本体、安全算法本体、安全令牌服务本体、安全对象本体和安全综合本体。由于隐私保护与其它安全规范之间相对独立,目前只有W3C的P3P规范,因此,和NRL本体一样,SecOWS不涉及隐私保护的相关语义表达。表3列出了SecOWS中的名称空间及前缀名。表3 SecOWS中的名称空间及前缀名前缀名名 称 空 间规范名称ds/2
16、000/09/xmldsig#XMLDSIGxenc/2001/04/xmlenc#XMLENCwsse/wss/2004/01/oasis200401-wss-wssecurity-secext-1.0.xsdWS-Securitywsu/wss/2004/01/oasis200401-wss-wssecurity-utility-1.0.xsdWS-Securitywsp/ws/2004/09/policyWS
17、-Policysp/ws/2005/07/securitypolicyWS-SecurityPolicywst/ws/2005/02/trustWS-Trustwsc/ws/2005/02/scWS-SecureConversationsamlurn:oasis:names:tc:SAML:2.0:assertionSAMLxkms/schema/xkms-2001-01-20XKMSxsdhttp:/www.
18、/2001/XMLSchemaXML-Schemas/soap/envelopeSOAPowls/services/owl-s/1.0DL/Process.owlOWL-Ssechttp:/scut/owl/secowsSecOWS3.2 安全令牌本体安全令牌是指关于某个实体的一些声明集合,这里的实体主要是指第三方可信机构,如安全令牌服务或CA等。例如:X.509证书可以看成是CA关于证书持有者的身份信息和密钥的绑定声明。安全令牌可用于身份鉴别、加密解密、数字签名及验证和访问控制等场合。sec:S
19、ecurityTokenwsse:BinarySecurityTokenwsse:UsernameTokensec:XMLTokenwsu:Timestampsaml:Assertion wsse:Username wsse: EncodingType wsse:Password saml:Issuer wsu:Createdsec:KerberosTicketsec:X509Certificate saml:Subject wsu:Expires saml:IssueInstantds:X509Data ds: X509Certificate sec:hasStatementsUnion o
20、f three kinds of the statements#X509V3 ds:X509IssuerName ds:X509SerialNumbersaml:AttributeStatementsaml:AuthnStatement#X509V1 ds:X509SKI#X509PKIPathV ds:X509SubjectNamesaml:AuthzDecisionStatement ds:X509CRL#PKCS7 saml:AuthnInstant saml:AttributeName#Kerberosv5_AP_RE saml: AuthenticatingAuthority sam
21、l:AttributeValuesec:STS#GSSKerberosv5_AP_REQ saml:Resource saml:Action saml:Decision owl: ObjectProperty owl: DatatypeProperty rdfs: subClassOf Class InstanceWeb服务安全本体SecOWS中的安全令牌本体名称为SecurityToken,图形表示如图1 所示。图1 安全令牌本体的图形表示安全令牌本体SecurityToken主要涉及WS-Security、XMLDSIG和SAML三个规范。在第一层,遵照WS-Security规范,将安全令
22、牌sec:SecurityToken划分为互不相交的3种类型,分别是用户名令牌wsse:UserNameToken、二进制令牌wsse: BinarySecurityToken和XML令牌sec:XMLToken。用户名令牌有2个数据属性:wsse:UserName和wsse:Password,表示用户名和口令,基数限制分别是1和小于等于1。在语义层,Password类型是明文还是摘要,作用是一样的,通信双方都必须知道Password的内容,所以,对此不再细分。二进制令牌有数据属性wsse:EncodingType,表示传输编码类型,基数限制为1,细分为X509证书sec:X509Certif
23、icate和 Kerberos票据sec:KerberosTicket2种类型。X509证书有4个实例,其完全URI标识与WS-Security规范一致,以后所有实例的完全标识均同相应规范中定义的一致,不再重复。ds:X509Data与X509证书通过对象属性ds:X509Certificate发生关联,有5个数据属性,分别表示证书发行机构名称、序列号、持有者名称、密钥标识和取消列表。Kerberos票据有2个实例,其完全URI标识与WS-Security规范一致。XML令牌分为时间戳wsu:TimeStamp和SAML断言saml:assertion2种类型。时间戳令牌有2个数据属性,分别表
24、示创建时间和废止时间。SAML断言有3个数据属性,分别表示断言主体、发布机构名称和发布时间。SAML断言与SAML声明通过对象属性sec:hasStatements发生关联。SAML声明分为身份鉴别声明saml:AuthnStatement、属性声明saml:AttributeStatement和授权决定声明saml:AuthzDecisionStatement三种类型。身份鉴别声明数据属性saml:AuthInstant表示身份鉴别时间,对象属性saml:authenticatingAuthority将其与安全令牌服务sec:STS关联起来,表示身份鉴别机构。属性声明有2个数据属性,分别表示
25、属性名称和属性值。授权决定声明有3个数据属性,分别表示资源名称、动作和授权决定。3.3 安全算法本体安全算法本体SecurityAlgorithm主要描述了在XDSIG和XENC规范中涉及到的各种算法类型及具体算法,图形表示如图2所示。sec:SecurityAlgorithmds:SignatureMethodds:DigestMethodxenc:EncryptionMethodxenc:AgreementMethod#dh#dsa-sha1#sha-1 xenc:KeySize#rsa-sha1sec:AsymmetricAlgorithmsec:SymmetricAlgorithm#t
26、ripledes-cbc#rsa-sha1ds:Transforms#aes128-cbc#rsa-sha1ds:Transformds:CanonicalizationMethod# aes192-cbc# aes256-cbc# REC-xpath-19991116REC-xml-c14n-20010315#enveloped-signatureREC-xml-c14n-20010315#WithComments# REC-xslt-19991116图2 安全算法本体的图形表示SecurityAlgorithm本体将XDSIG和XENC规范中涉及到的算法划分为5类,分别是:密钥协商算法xe
27、nc:AgreementMethod、加密算法xenc:EncryptionMethod、摘要算法ds:DigestMethod、数字签名算法ds:SignatureMethod和转换算法ds:Transforms。密钥协商算法只有1个实例:Diffe-Hellman算法#dh。摘要算法也只有1个实例:安全哈希算法#sha1。数字签名算法有2个实例,分别是DSA和RSA算法。加密算法划分为对称加密算法sec:SymmetricAlgorithm和非对称加密算法sec:AsymmetricAlgorithm两种类型,具有数据属性xenc:KeySize,表示密钥长度。对称加密算法有4个实例,分别
28、是三重DES、AES128、AES192和AES256。非对称加密算法有2个实例,分别是RSA和ECC算法。在对XML文档或元素计算数字签名或摘要值时,都必须要对待计算的数据进行转换,确保签名验证或摘要值的一致性。转换算法分为标准化算法ds:CanonicalizationMethod和实际转换算法ds:Transform两种。标准化算法有2个实例,实际转换算法有3个实例。这些算法实例标识均取自XDSIG规范。3.4 安全对象本体sec:informationObj为了描述Web服务输入输出参数的保密性和完整性需求,在NRL本体informationObject基础上,添加了概念EBSObj和
29、概念SBEObj,修改了对象属性baseObject的值域,得到了安全对象本体SecInfObj,图形表示如图3所示。owl:Thingsec:SecurityAlgorithm sec:baseObject sec:algUsedsec:informationObjsec:SBEObjsec:EncInfObjsec:EBSObjsec:SigInfObj图3安全对象本体的图形表示概念sec:informationObj表示加密或签名后的数据对象。对象属性sec:baseObject表示加密或签名前的数据,基数限制大于等于1。该对象属性的值域为最一般概念owl:Thing,保证可以表达对任何
30、数据加密或签名的需求或能力,无论是Web服务参数,还是安全令牌,或者是已经加密或签名的数据。对象属性sec:algUsed表示用到的加密或签名算法,基数限制大于等于1。这个对象属性将安全算法本体和安全对象本体关联起来了。sec:informationObj又细分为4个概念:sec:EncInfObj表示加密后的数据;sec:SigInfObj表示签名后的服务数据;sec:EBSObj表示先加密后签名的数据;sec:SBEObj表示先签名后加密的数据。3.5 安全令牌服务本体在安全令牌本体中,没有描述安全令牌的发布、验证、更新和删除服务。在信任主题层Web服务安全规范中,WS-Trust提供了一
31、个请求、发布安全令牌及信任代理的框架,在这个框架中,与安全令牌相关的服务被抽象为安全令牌服务。SAML定义了请求断言和响应的协议,包括协议消息格式。XKMS定义了密钥信息服务规范和密钥注册服务规范,包括服务的WSDL描述文件。WS-Federation定义了请求、交换及颁发安全性令牌的元素和模型。这些安全规范中的协议或服务都可以实现为安全令牌服务。安全令牌服务本体STS描述了安全令牌服务的划分及具有的属性,图形表示如图4 所示。sec:STS sec:endPointsec:CancleServicesec: ValidateServicesec:RenewServicesec:IssueSe
32、rvice sec:renews sec:renewBy sec:validateBy sec:issues sec:validates sec:cancledBysec:SecurityToken sec:issuedBy sec:cancles图4安全令牌服务本体的图形表示在STS本体中,sec:STS表示安全令牌服务,划分为sec:IssueService、sec:RenewService、sec:ValidateService和sec:CancleService,分别表示安全令牌的发布服务、更新服务、验证服务和取消服务。安全令牌服务的数据属性sec:endPoint的值表示提供安全令牌
33、服务的端点地址。每个子类型的服务与安全令牌概念sec:SecurityToken存在一对互逆的对象属性,如图4所示,分别表示发布与被发布、更新与被更新、验证与被验证和取消与被取消的关系。3.6 安全综合本体安全综合本体SecuritySynthesis将前面的4个本体与OWL-S本体联系起来,使得可以用来表达Web服务的安全需求和安全能力,成为一个相互联系的Web服务安全本体SecOWS。安全综合本体SecuritySynthesis的图形表示如图5所示。owls:ServiceParameterowls:Profile owls:serviceparameter sec:securityRe
34、quirementsec: SecuritySynthesis sec:securityCapability owl:unionOfsec:Authenticationsec:Authorizationsec:TransportSecuritysec: MessageSecuritysec:IPSecsec:SSL sec:providedBy sec:requires sec:supportssec:SecurityTokensec:TLSsec:informationObjsec:AccessRuleSetsec:HTTPAuthentication图5安全综合本体的图形表示概念sec:S
35、ecuritySynthesis用来表达Web服务安全的主要方面,它是概念Sec: MessageSecurity 、sec:TransportSecurity、 sec:Authentication 和sec:Authorization的并,这些概念依次用来表达web服务的消息安全、传输安全、身份鉴别和授权。Sec: MessageSecurity的对象属性sec:providedBy,表示Web服务的消息安全由安全对象提供。传输安全概念sec:TransportSecurity有4个实例,分别表示IPSec协议、TLS协议、SSL协议和HTTP验证。sec:Authentication的对
36、象属性sec:requires表示身份鉴别需要安全令牌。sec:AccessRuleSet表示访问控制规则集合,对象属性sec:supports表示它支持Web服务授权。OWL-S规范定义了Web服务功能、过程和访问描述本体。如果要描述Web服务的其他方面,怎么办?OWL-S规范中的概念Profile的对象属性serviceParameter是Web服务语义表达的扩展点,其值域为ServiceParameter。将概念sec:SecuritySynthesis作为ServiceParameter的子类,同时增加对象属性serviceParameter的两个子属性:sec:securityRequirement和sec:securityCapability,分别表示Web服务的安全需求和安全能力。这样,就将OWL-S本体与SecOWS本体联系起来了,就能够使用SecOWS本体来表达Web服务的安全需求和安全能力,同时,也将Web服务安全协议栈中的规范统一起来了。4 结论Web服务安全本体SecOWS中的绝大部分概念和属性名称均直接取自各种Web服务安全规范,涵盖了Web服务安全协议栈中的大部分协议规范(除隐私和安全会
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广州合同范本模板
- 租赁合同纠纷律师函范本
- 移动厕所租赁协议
- 艺人签约合同模板
- 大豆油购销合同范本
- 《2025广告设计制作安装合同》
- 贷款利息减免协议书
- 广东省汕头市下蓬中学2025届高三下学期第四次周考生物试题试卷含解析
- 河南医学高等专科学校《室内设计2-居室空间设计》2023-2024学年第二学期期末试卷
- 太原幼儿师范高等专科学校《商业与技术双语》2023-2024学年第一学期期末试卷
- 【八下英语外研版】专题08 完形填空(15空)20篇
- 2024年贵阳市贵安新区招聘中小学雇员教师笔试真题
- 计算机一级选择题真题(含答案)
- 土地用途管制政策考核试卷
- (DB45T 2228.1-2020)《公路养护预算编制办法及定额 第1部分:公路养护工程预算编制办法及定额》
- 材料的性能与规划 课件-2024-2025学年高中技术苏教版(2019)必修《技术与设计1》
- 国家安全教育高教-第六章坚持以经济安全为基础
- 韦莱韬悦-东方明珠新媒体集团一体化职位职级体系方案-2018
- 施工图设计文件常见问题分析
- 常见职业病危害和预防基础知识
- DB64-T 1973-2024 钢渣沥青路面应用技术规范
评论
0/150
提交评论