深蓝海域KMPRO

Web服务安全要求Top 10

2002-09-17 10:11

Web服务安全要求Top 10

不管你的公司规模有多大也不管它从事何种业务,在为所有的应用程序选择Web服务时安全都是需要考虑的头等大事。我们将在后续的3篇文章中专门讨论安全方面的问题。作为这一系列开篇的本文对实现Web服务时决定安全级别和要求最重要的10因素进行了阐述。第2文章将讨论在J2EE平台上如何实现以下目标:(a) 领先的J2EE应用服务器的安全需求, (b) J2EE平台达到目前领先的J2EE应用服务器的Web服务安全需求。第3篇文章专门讨论微软.Net平台上的同类措施。

安全要求

在我们深入讨论安全要求的10个最关键因素以前,首先让我们简短地概述下Web服务的安全要求问题。关键的Web服务安全要求不外乎以下几个方面:认证、授权、数据保护和认可。

认证

认证保证使用某种Web服务的每一实体——也就是所谓的请求者(requestor)、供应商(provider)和经纪人(broker,如果有的话)——正是实际上宣称其身份的实体。认证涉及到从实体接受凭证以及通过权威认证机构对其进行检查等。

授权

授权决定服务供应商是否同意向请求者授予访问Web服务的权限。从本质上说,授权证实了服务请求者的凭证。它还确定服务请求者是否有权执行操作,其范围从调用Web服务到执行其功能不等。

数据保护

数据保护的作用是保证Web服务请求和响应没有在它们的“旅途”中被截获乃至受到损害。它要求保护数据的完整性和私密性。值得注意的是数据保护并不保证消息发送者的身份。

认可

认可保证消息发送者与消息的创造者是一样的。到目前为止,既然我们已经了解了Web服务安全组成要素,接下来我们就看看影响Web服务实现最重要的10个安全因素到底有哪些。

最重要的10个决定性因素

确定Web服务安全要求的10个必要因素如下:

1. Web服务正被用于EAI或B2Bi吗?

Web服务可以用在以下两个领域:企业应用集成(EAI)和B2B集成(B2Bi)。EAI领域的安全要求是B2Bi安全要求的子集,因为在企业内联网中Web服务的控制、管理、发现和维护都比在穿越企业防火墙的Internet上应用要容易得多。用于EAI的Web服务只有一级认证,而且几乎不采用加密技术,而用于B2Bi的Web服务则会采用多级认证并且总是采用加密技术。此外,在B2Bi领域,对应Web服务请求和响应的消息都可能需要加密,采用的技术有密码系统、数字签名和SSL等。不过,只要可能的话都尽量不要针对企业网络内的EAI项目为Web服务采用SSL。最后,认可对B2Bi领域的Web服务是非常有用的,因为它防止了恶意的发送方否认自己创建和发送了特定的消息。

2. Web服务的目的是什么?

如果Web服务仅仅是暴露面向公共信息的业务进程或数据(例如某个城市内今天的天气或者某公司的股票信息),那么其安全要求比暴露私有业务信息的Web服务可就低多了。

3. Web服务的用户是谁?

知道Web服务的用户是谁对确定Web服务的授权和认证特性是非常重要的。

4. 服务能在因特网上调用吗?

Web服务只能供信任的贸易伙伴使用还是供因特网上的任何公司调用?这一问题对Web服务的授权和认证当然很要紧了。

5. 内部应用程序安全吗?

Web服务为其内部应用程序提供怎样的访问级别呢?访问权限的根据是建立在授权和权利基础上的吗?访问内部应用程序的权限越大,授权和认证安全要求就越高。

6. Web服务是面向交易的吗?

如果在多个实体之间分布交易则安全威胁将更高。

7. 采用什么协议?

哪些网络协议在处理服务请求者和供应商之间的认证和数据传输?因为任何人都能嗅探Web服务的请求和响应,而这些请求和响应都是作为XML文本在网络上传输的,所以是否需要采取数据安全保证措施就变得非常重要了。如果网络协议采用的是HTTPS,那么就不必再附加其他加密/解密算法了,因为HTTPS就提供了相应的功能。

8. 有必要检查发送者/接受者吗?

有必要保证Web服务请求和响应消息的发送者与消息的创造者的一致性吗?出于审计的目的或者为了保证发送者和创造者是同一实体就需要这一信息。如果Web服务用于B2Bi,则认可的安全要求通常都是必要的。

9. 服务涉及到谁?

在Web服务的使用中涉及到了多少实体?也就是说,Web服务具有实体链特性吗?如果实体的数量超过一个,那么就需要更高的安全性。

10. 采用了组件链吗?

Web服务的实现代码中具有应用程序和组件链的特性吗?如果应用程序链扩展大量企业防火墙之外,则安全要求就会变得更严格。

必须指出,在Web服务这个舞台上,有关安全问题的技术标准,比如对Web服务数字签名的所用的工业标准和支持仍然处于正在研究和讨论中。因此,我们将在后续的文章中继续讨论有关的标准开发问题。

为实现Web服务打基础

安全的互操作性从长远来说是Web服务成功的关键所在。一定要警惕Web服务可能的安全漏洞因为它们正是各种安全威胁(比如拒绝服务工具和假冒地址等)的攻击之地,Web服务技术的任何实现都应该首先回答上面的问题,同时考虑到公司内的现有安全策略和解决方案。

相关推荐