以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XML安全 』 (http://bbs.xml.org.cn/list.asp?boardid=27) ---- XML网络服务安全(转) (http://bbs.xml.org.cn/dispbbs.asp?boardid=27&rootid=&id=20359) |
-- 作者:菜籽 -- 发布时间:7/13/2005 1:05:00 PM -- XML网络服务安全(转) XML网络服务安全 XML网络服务是Microsoft .NET 框架的基础之一,通过按照标准国际互联网协议很好定义的计划性的接口来为网络应用程序提供信息和服务。 但是,商业所创建的XML网络服务也许不希望这些服务队所有人都是可自由得到的。对XML网络服务的访问可以通过与网络站点对一个用户访问授权的限制采用相同的方法限制。除了限制访问,一个XML网络服务也许会需要确定用户数据传输的保密,也保护实现服务的内部商业逻辑和数据存储。 这个篇文章提供了一个对你可以安全访问你的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网络服务时,你很可能会遇到一些关键规范和技术。这些规范和技术为基于服务的开发确定了五中需要: 表现数据的标准方法 SOAP 为信息交换定义了一种轻量级协议。SOAP规范的一部分定义理关于如何使用XML来表现数据的一组规则。SOAP规范的其他部分定义了一个可扩展的消息形式,用于表现远程过程调用(RPC)的协议使用SOAP消息格式,并且绑定到HTTP。(SOAP消息可以通过其他协议来交换,但是现在的规范定义只为HTTP绑定。)Microsoft .NET 产品将使用SOAP作为与XML网络服务通信的主要消息格式。 注意,现在地SOAP规范没有定义开发人员也许会在一个传统分布式对象协议中可以见到的特性,例如对象生命周期管理、分布式处理或安全。所有这些特性可以作为对SOAP的扩充来定义,但是他们没有作为基本规范的一部件来定义。 大多数基于国际互联网的情况不需要状态对象或分布式处理,因为所有都把服务器资源放到远端用户的控制之下(例如,数据库锁定)。特别是,这意味着被XML网络服务公布的服务: 无缝: 实现服务所需的所有信息或者安照请求消息送入,或者是从一个数据库根据请求所提供的信息找回。 开发人员也需要一些方法来发现XML网络服务。DISCO (用于发现网络协议)规范定义了一个探索文档格式(基于XML)和一个用于找到探索文档的协议,使得开发人员可以在一个已知的Uniform Resource Locator (URL)发现服务。 但是,在许多情况下,开发人员将不会知道可以发现服务的URL。 Universal Description, Discovery, and Integration (UDDI)为XML网络服务管理指定了一种机制来为他们的XML网络服务地存在做广告,并且使XML网络服务用户确定的感兴趣的XML网络服务的位置UDDI规范有三个部分: 白页: 提供商业约定信息 对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 因为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的超重不能被接受,另外一种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安全特性 运行在基于Windows平台的XML网络服务的商业逻辑通常使用COM部件或.NET平台的被管理的类目标。ASP可以更深入确保这个网络服务逻辑不能直接通过用一个特殊用户帐户运行你的XML网络服务来调用, 而对那个用户帐户进行了COM部件或被管理类的访问限制。 工具支持 .NET架构基于角色的授权和代码访问安全可以被实现使用ASP.NET的XML网络服务使用。 2000年7月版的Microsoft Visual Studio®6.0 SOAP工具箱不支持任何HTTP认证机制。Microsoft希望马上发布一个升级的SOAP工具箱,它支持: 通过SSL发送和接收消息 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
4,679.688ms |