数字签名
数字签名是另一种消息级的安全性形式,它是证书、密钥和加密等安全性方法的变体。数字签名就是附加给SOAP消息的证明真实性的数学语句。数字签名是一个基于密钥的数(同样是一个非常大的数),它对您的身份和消息内容进行惟一的处理,具体方法是对两组数据(密钥和消息)运行一个特殊的算法。举一个简单的例子,如果您的消息是“hello”而密钥是12345,算法将处理这两种输入——单词“hello”的数值和密钥数12345——并生成第三个数,这第三个数就是数字签名。当接收系统获得消息和附加的数字签名时,它可以使用密钥来验证以下内容:
- 您是消息的真正创建者(身份验证),
- SOAP消息在传输过程中没有改变。
如果消息被改变了,那么惟一的数字签名将不再与密钥和用于创建密钥的原始消息相匹配。数字签名和先前描述的完整加密过程之间的区别在于,如果使用数字签名,不必对整条消息进行加密。因此,系统的性能得到了提升。只要您不介意别人可以看到您的纯文本格式的消息,那么数字签名就可以为SOA提供高度的数据安全性和完整性。
签名可以是一个不可否认性(nonrepudiation)组成部分,该特性是一个需要在SOA环境中解决的安全性重要方面。不可否认性是指一个组织的一种能力:验证发生了特定的处理,并从而不给发送方提供否定进行了处理的机会。例如,如果您针对某种商品下了一份电子订单,而该订单并没有以某种方式(比如使用数字签名)进行验证,那么对方就有可能否认收到该订单。如果批发商的系统提供不可否认性,那么批发商就可以肯定该订单已经送达。
重放攻击保护和审计
最后,SOA安全性解决方案应该提供一种用于跟踪SOAP请求的工具,从而降低DoS攻击带来损害的可能性。通常,跟踪特性将监控SOAP消息的发送方及其创建时间。在某些情况下,SOA安全性解决方案将使用一个惟一的识别码给SOAP消息打上印记。如果解决方案被设置为阻塞复制消息,那么同一条消息是不可能被发送两次的。消除这种可能性有助于降低黑客使用复制请求淹没SOA的可能性,这是DoS攻击中常用的一种手法。
审计是SOAP消息跟踪功能的进一步发展。如果SOA安全性解决方案被配置为跟踪消息,那么它应该能够生成特定时期中SOA消息流量的使用日志和审计报告。审计有很多用途,但是在安全性领域中,它用于记录所发生的事情,以便研究安全性问题并诊断潜在的安全漏洞。这类日志已经成为实现管理目标(比如对Sarbanes-Oxley法案的服从)所必不可少的。
明智的管理人员所给出的忠告:不要让安全性吓倒了您
SOA安全性是一个很大的主题。我可以就这个主题写一本书。(事实上,这是一个不错的主意…)在本章中,我的目的是提供一个概述,好让您可以评估自己对这个主题所掌握的信息。如果您是一位企业主管,我的建议是,要避免被安全性问题吓倒。人们很容易被安全性吓倒,安全人员也不例外,这阻止了他们做些实际工作以消除对于安全性问题的恐惧。实际上,我本来可以提出一个您正在考虑的IT解决方案,并让您了解到围绕该解决方案的大量安全性噩梦,这些噩梦足以使您远离该解决方案。
相反,我建议您寻求安全性方面的高质量建议,并探讨企业中已经实施了哪些。如果您这样做,那么您的企业就很可能会拥有一个(或一些)相当健壮的安全性系统。实施SOA的难点在于如何把现有的安全措施扩展成为由SOA构成的web服务。许多SOA安全性解决方案的设计目的就是为了与现有的安全功能有效互连。如果实现的话,安全性风险可能稍微易于管理一些,而您也可以继续实施您的计划了。
网友评论