我们正在开发一个与嵌入式设备上运行的WCF Web服务进行通信的Android应用程序。我想要做的是安全地从Android应用程序向Web服务发送消息。
作为安全考虑的一部分,我们需要签署作为SOAP请求的一部分的消息,以及时间戳,即消息签名的时间,并将其作为一部分发送对设备的请求,以便设备知道消息何时被签名以及是否对该消息采取行动。
由于我们将从Android应用程序(远程)访问Web服务,我们可能还需要使用双方都知道的密钥来加密有效负载。
我的问题是如何散列时间戳并将其与有效负载中的签名消息一起安全地发送,以及如何在WCF Web服务中获取时间戳值?
任何形式,如果感谢帮助或资源
答案 0 :(得分:1)
WS-Security specification提供<wsu:Timestamp>
元素,以包含消息的创建时间和到期时间。
<S11:Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu="...">
<S11:Header>
<wsse:Security>
<wsu:Timestamp wsu:Id="timestamp">
<wsu:Created>2001-09-13T08:42:00Z</wsu:Created>
<wsu:Expires>2001-10-13T09:00:00Z</wsu:Expires>
</wsu:Timestamp>
...
</wsse:Security>
...
</S11:Header>
您可以在发送之前为SOAP消息添加时间戳。服务器可以从SOAP-header
中读取它