2016-11-22 93 views
0

我们正在开发一个与在嵌入式设备上运行的WCF Web服务进行通信的Android应用程序。我想要做的就是安全地从android应用程序发送消息到Web服务。如何将Timestamp和SOAP消息从Android APP发送到WCF Web服务?

作为安全考虑的一部分,我们需要签署消息作为对设备的SOAP请求的一部分,以及时间戳,即消息被签名的时间,并将其作为一部分发送对设备的请求,以便设备知道消息何时被签名以及是否对该消息采取行动。

由于我们将从android应用程序(远程)访问Web服务,因此我们可能还需要使用双方都知道的密钥来加密有效负载。

我的问题在于如何对时间戳进行散列,并将其与有效负载中的签名消息一起安全地发送,以及如何将时间戳记值返回到WCF Web服务中?

如果帮助或资源被理解

回答

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读取它