支持消息级别的安全
为保证Soap消息的安全性,WSE提供了三种利器:
-
安全证书
和只保证点对点安全的SSL不同,安全证书能确保Soap消息在整个路由中的安全。 -
数字签名
数字签名能确保Soap消息在签名后的传输的过程中没有被修改。下面的图示说明了使用数字签名的发送方和接收方需要的密钥。为了数字签名,发送方需要私钥,而接收方为了验证签名,需要公钥
-
加密
加密能确保指定的接收者能读取消息的内容,加密报文是创建了一个与接收者共享的秘密。
下面的图示说明了使用加密的发送方和接收方所需要的密钥,为了加密报文,发送者需要接收方的公钥,接收方需要用私钥来进行解密。
下面这幅图阐述了因为只有拥有私钥的接收者才能读取消息报文的内容
WSE能够帮助我们创建分布式应用程序的原因之一就是为网络服务提供了一套有效的安全机制,使用这套基于网络安全规范的安全机制,WSE将安全证书用于Soap消息自身。安全证书来源于发送和接收双方都信任的一个颁发机构。当发送方发送Soap消息时,这些安全证书被当成安全票据放置在Soap消息中,当接收方接收到报文的时候就不需要再向发送方或者其他第三方发送请求以验证安全票据了,客户端能通过数字签名等加密算法来证明自己的票据,而接收端能通过验证数字签名来确定Soap消息的来源,同时并不需要向颁发安全证书的机构做咨询。首先节省了一次网络请求,另外增加了网络服务的灵活性。
WSE是通过WS-Trust,WS-SecureConversation, and WS-Security Profile for XML-based Token等一系列规范来实现对Soap消息添加安全证书扩展的,
通过实现规范,WSE实现了一套名为安全上下文票据的轻量级的安全机制,并且开发者能够为其他类型的票据开发出自己的安全服务,这些服务能与受信任的票据安全服务做交互。
对Soap消息的数字签名能进一步加强网络服务的安全性。它能够使Soap消息接收方确保消息在签名之后没有被修改,也能确保只有指定的接收者才能读取到Soap消息的内容