新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> XML与数字内容安全(DRM,XrML,RDD, MPEG-21, XACML), XML传输的安全, 基于XML的签名,基于XML的加密
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - 高级XML应用『 XML安全 』 → XML网络服务安全(转) 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 12153 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: XML网络服务安全(转) 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     frank_mary 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:1
      积分:101
      门派:XML.ORG.CN
      注册:2006/4/18

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给frank_mary发送一个短消息 把frank_mary加入好友 查看frank_mary的个人资料 搜索frank_mary在『 XML安全 』的所有贴子 引用回复这个贴子 回复这个贴子 查看frank_mary的博客楼主
    发贴心情 XML网络服务安全(转)

    XML网络服务是Microsoft .NET 框架的基础之一,通过按照标准国际互联网协议很好定义的计划性的接口来为网络应用程序提供信息和服务。
    但是,商业所创建的XML网络服务也许不希望这些服务队所有人都是可自由得到的。对XML网络服务的访问可以通过与网络站点对一个用户访问授权的限制采用相同的方法限制。除了限制访问,一个XML网络服务也许会需要确定用户数据传输的保密,也保护实现服务的内部商业逻辑和数据存储。
    这个篇文章提供了一个对你可以安全访问你的XML网络服务的高水平的总统看法。
    什么是XML网络服务?
    一个XML网络服务就是使用标准国际互联网协议可访问的可编程的应用程序逻辑。XML网络服务综合了基于部件开发和World Wide Web 的最好方面。就像部件,XML网络服务表现出黑箱功能性,它可以被重复使用而不用担心服务是怎样实现的。XML网络服务提供了一个定义得很好的接口,或约定,它描述提供的服务。
    不像现在地部件技术,XML网络服务不会使用对象模型特定协议来访问,例如Distributed Component Object Model (DCOM)、Remote Method Invocation (RMI)、Remote Method Invocation (RMI)或Internet Inter-ORB Protocol (IIOP)。作为替代,XML网络服务使用普遍存在的网络协议和数据格式访问,例如Hypertext Transfer Protocol (HTTP)和Extensible Markup Language (XML)。
    一个XML网络服务约定用XML网络服务接受和生成的术语来描述单独提供的服务。在约定中,不需要XML网络服务是怎样实现的信息。XML网络服务的消费者不需要知道关于平台、对象模型或用来完成服务的编程语言的任何信息。他们只需要理解如何像XML网络服务约定所指定地发送和接收消息。
    在创建或者使用XML网络服务时,你很可能会遇到一些关键规范和技术。这些规范和技术为基于服务的开发确定了五中需要:
    表现数据的标准方法
    一个通用,可扩展的信息形式
    一个通用,可扩展的约定语言
    一种在特定网络站点发现服务位置的方法
    一种发现服务管理的方法
    XML 对于一个表现数据的标准方法是明显的选择。大多数XML网络服务相关的规范使用XML来表现数据,同时也用XML程序来描述数据类型。
    SOAP 为信息交换定义了一种轻量级协议。SOAP规范的一部分定义理关于如何使用XML来表现数据的一组规则。SOAP规范的其他部分定义了一个可扩展的消息形式,用于表现远程过程调用(RPC)的协议使用SOAP消息格式,并且绑定到HTTP。(SOAP消息可以通过其他协议来交换,但是现在的规范定义只为HTTP绑定。)Microsoft .NET 产品将使用SOAP作为与XML网络服务通信的主要消息格式。
    注意,现在地SOAP规范没有定义开发人员也许会在一个传统分布式对象协议中可以见到的特性,例如对象生命周期管理、分布式处理或安全。所有这些特性可以作为对SOAP的扩充来定义,但是他们没有作为基本规范的一部件来定义。
    大多数基于国际互联网的情况不需要状态对象或分布式处理,因为所有都把服务器资源放到远端用户的控制之下(例如,数据库锁定)。特别是,这意味着被XML网络服务公布的服务:
    无缝: 实现服务所需的所有信息或者安照请求消息送入,或者是从一个数据库根据请求所提供的信息找回。
    单元组合: 每个服务代表了所有工作的完成,它吧数据按照一种一致的状态存储。例如,如果用户需要可以在银行帐户间移动钱,服务将接受MoveMoney 请求消息,不只是Debit和Credit请求。
    给出一个XML网络服务,有一种标准的方法来说明XML网络服务接受和产生什么样的消息是很不错的,就是去说明XML网络服务约定。一种标准的机制使得这件事情对于开发人员和开发工具创建和解释约定变得更容易。许多约定语言在以前被公布了:Service Description Language (SDL)、 SOAP Contract Language (SCL)和Network Accessible Services Specification Language (NASSL)。所有这些都已经被由Microsoft和IBM联合开发的新语言所代替:Web Services Description Language (WSDL)。WSDL是一种基于XML的语言。Microsoft的帮助创建和使用XML网络服务的开发工具现在已经被升级来支持WSDL。
    开发人员也需要一些方法来发现XML网络服务。DISCO (用于发现网络协议)规范定义了一个探索文档格式(基于XML)和一个用于找到探索文档的协议,使得开发人员可以在一个已知的Uniform Resource Locator (URL)发现服务。
    但是,在许多情况下,开发人员将不会知道可以发现服务的URL。 Universal Description, Discovery, and Integration (UDDI)为XML网络服务管理指定了一种机制来为他们的XML网络服务地存在做广告,并且使XML网络服务用户确定的感兴趣的XML网络服务的位置UDDI规范有三个部分:
    白页: 提供商业约定信息
    黄页: 把XML网络服务组织到目录中(例如,Credit Card Authorization Services )
    绿页: 提供个人服务的具体技术信息(这些信息可以用相关搜索文档或约定提供)
    UDDI Business Registry是UDDI规范的一个实现,并且它自己就是一个使用HTTP上的SOAP作为自己的通信协议的XML网络服务。
    对XML网络服务的访问限制
    XML网络服务可以被实现,因此只有被授权的客户可以访问它们。为了限制对你的XML网络服务的访问,你需要一种鉴别客户的方法。那么,根据客户给出的信任状,你可以确定是否批准对服务的访问。
    从根本上讲,保证一个XML网络服务的安全与保证网络站点的安全没有什么不同。但是代替批准终端用户访问你的站点,你将会批准计算机和商务来访问XML网络服务。
    如果你确切指定哪个计算机需要访问你的XML网络服务,你就可以使用Internet Protocol Security (IPSec)或者防火墙来限制已知IP地址的计算机的访问。这项技术当你希望限制对一个私有网络中的计算机的访问时是很有用的。
    但是,在大多数国际互联网情况下,你将不会知道你所有客户的IP地址。在这个情况下,最直接的实现鉴定方法就是增加用来交换消息的协议地鉴定特性。例如,如果你通过HTTP发送和接收SOAP消息,你就将添加HTTP可用的鉴别特性。Microsoft Internet Information Services 5.0版支持许多HTTP的鉴定机制www.microsoft.com/technet/iis/authmeth.asp 可以得到更详细资料):
    Basic
    用于无安全或半安全的客户鉴定。因为用户名称和密码用纯文本传送。如果证书与有效的用户记录匹配,Internet Information Services将允许对XML网络服务的访问。
    Basic over SSL
    与Basic认证相同,除了用户名称和密码用Secure Sockets Layer (SSL)通过网络传送而不是用纯文本。虽然使用SSL在性能上有重大影响,但是还是一个用于国际互联网情况的很好选择。
    Digest
    使用散列法,以一种安全的方式传送客户认证书。但是并不被除Microsoft Windows外的其他平台所广泛支持。如果证书与有效的用户记录匹配,Internet Information Services将允许对XML网络服务的访问。
    Integrated Windows authentication
    只在局域网的情况有用。使用NTLM或Kerberos。不能用在代理服务器或其他防火墙的情况。如果证书与有效的用户记录匹配,Internet Information Services将允许对XML网络服务的访问。
    Client certificates
    需要每个客户获得一个认证。认证被映射到用户帐户中,它可以被Internet Information Services 使用来授权访问XML网络服务。虽然现在使用数字认证还不广泛,但是一个用于国际互联网情况的可行选择。
    另外一种选项是实现一种定制机制。例如,如果你发送SOAP消息,你可以定义你的XML网络服务约定,这样客户认证就可以在SOAP消息中自己传送了。使用这种方法,你需要从消息中找回认证并且实现你自己的授权逻辑,但是你可以使用你想用的任何种类的客户帐户数据库。你可以把客户认证当作SOAP头或SOAP中的元素来传送。
    因为SOAP消息是XML,如果你使用像HTTP这样的协议来传送消息,客户认证将被按照纯文本传送。如果这是不可接受的,你应该使用SSL来代替HTTP。
    注意使用SSL要比单独使用HTTP要慢很多,因此开发人员应该小心地在安全和性能间进行权衡。为一些XML网络服务发布的操作使用SSL是可能的,而在安全不是很紧要的情况下为操作使用轻量级的技术。
    如果为所有安全操作使用SSL的超高的性能负载是不能接受的,其他授权选择就被用到SOAP RPC协定中,并且在你的XML网络服务上定义特殊的登陆操作,它把认证作为SOAP主体的元素接收,并且返回一个通话钥匙。只有登陆方法将会需要通过SSL发送。其他消息可以通过HTTP发送,包括或者在SOAP头或者在SOAP主体中的通话钥匙。这种方法冒着通话钥匙被劫持的危险性,但是减小了客户的代码被偷的危险性。
    你也许会怀疑是否Microsoft Passport会被使用来限制对XML网络服务的访问。从理论上来说,Passport应该被使用来为一个XML网络服务的客户授权。但是,Passport现在把注意力集中于对终端用户授权,而不是应用程序、计算机或商业。所以,实际上,你会发现潜在的客户没有并且也不希望去获得一个Passport。
    一些XML网络服务将需要为终端用户授权。在这种情况下,你会希望Microsoft Passport可以使用。但是在Passport的现在的执行情况来看,如果网站在终端用户的利益上调用你的服务,这里就没有安全的方法使用户输入他的Passport用户ID和密码,而让XML网络服务去验证用户是否已经登陆(并且获得用户的面貌特征,如果需要)。通常,如果XML网络服务想要对一个今天的终端用户授权,它必须依靠客户网站来通过用户的认证。
    保护数据
    除了授权,SSL协议把数据完整性和数据保密添加到HTTP。当SOAP消息被送到SSL,他们不能在传输时被读取或修改。如果你的XML网络服务接受包含敏感信息的消息,你就会希望让客户通过SSL发送消息。
    如果SSL的超重不能被接受,另外一种SOAP主体的选项可以用来进行个体元素加密。数字签名可以被用来确保SOAP主体的元素在传输中没有被窜改。在这个时候,对于XML加密和数字签名没有标准,因此你需要定义一个你的用户愿意支持的自定义机制。
    为了进一步保护被XML网络服务使用的数据,数据仓库会被保存在共同的防火墙内。公共防火墙外面的数据仓库将尽可能被锁定-例如,通过限制对XML网络服务合管理员程序的访问。
    Microsoft Press® 的David Chappell的 Understanding Windows 2000 Distributed Services 包含了关于SSL如何工作的优秀的概念上的总统看法。对于提供数据完整性和保密,保护内部数据存储,审核和防范未授权用户的攻击的信息,查看Microsoft Press 的Michael Howard的 Designing Secure Web-based Applications for Microsoft Windows 2000。
    ASP安全特性
    被应用程序服务管理(ASPs)运行的XML网络服务使用本篇文章中描述的相同的审查和授权机制来保护从未授权用户引入的信息。
    运行在基于Windows平台的XML网络服务的商业逻辑通常使用COM部件或.NET平台的被管理的类目标。ASP可以更深入确保这个网络服务逻辑不能直接通过用一个特殊用户帐户运行你的XML网络服务来调用, 而对那个用户帐户进行了COM部件或被管理类的访问限制。
    工具支持
    ASP.NET 网络服务支持通过SSL发送和接收消息,也支持所有被.NET框架网络类支持的HTTP认证和授权机制。包括Basic、 Digest和NTLM 认证。另外,ASP.NET 网络服务支持Microsoft Passport 认证和为使用主认证帐户数据库的自定义的基于cookie的认证。
    .NET架构基于角色的授权和代码访问安全可以被实现使用ASP.NET的XML网络服务使用。
    2000年7月版的Microsoft Visual Studio®6.0 SOAP工具箱不支持任何HTTP认证机制。Microsoft希望马上发布一个升级的SOAP工具箱,它支持:
    通过SSL发送和接收消息
    匿名,Basic和NTLM 认证
    为HTTP代理鉴别客户

       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/6/22 16:29:00
     
     doukun 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(猛啃高等数学)
      文章:6
      积分:70
      门派:XML.ORG.CN
      注册:2005/11/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给doukun发送一个短消息 把doukun加入好友 查看doukun的个人资料 搜索doukun在『 XML安全 』的所有贴子 引用回复这个贴子 回复这个贴子 查看doukun的博客2
    发贴心情 
    关注
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/9/27 9:46:00
     
     talentjia 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:1
      积分:60
      门派:XML.ORG.CN
      注册:2007/4/17

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给talentjia发送一个短消息 把talentjia加入好友 查看talentjia的个人资料 搜索talentjia在『 XML安全 』的所有贴子 引用回复这个贴子 回复这个贴子 查看talentjia的博客3
    发贴心情 
    正在学习中。.支持一下 ...
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2007/4/17 14:36:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML安全 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/30 2:36:16

    本主题贴数3,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    1,952.148ms