2016-11-22 92 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讀取它