2010-05-25 17 views
1

我正在向我的web服務添加安全性,並選擇簽署TimestampToken使用ws-security簽名郵件時簽名什麼

在閱讀文檔時,我發現了很多例子,他們在SOAP消息的Body上簽名。

我的問題是:什麼是最好的簽名?

從我所瞭解的簽署Body可能會導致性能問題,如果Body是相當大的。

謝謝。

回答

2

你應該簽署整個郵件正文。

XMLDSIG在< SignedInfo>中定義的引用部分的摘要上執行。與PKI操作相比,通過大型主體運行SHA1等哈希算法花費的時間很少。你不應該擔心表現。

+0

什麼問題只簽署時間戳? – 2010-05-26 13:39:36

+0

簽名時間戳僅限制重放攻擊窗口。消息的其他部分仍然可以在未檢測到的情況下進行更改此外,簽名只是部分信息實際上很難。 – 2010-05-26 14:57:30

+0

這也是圖書館的一個不幸的限制,如果您選擇並選擇了簽名涵蓋的內容,則沒有可用的查詢機制來僅檢索文檔的該部分。櫻桃採摘是一個非常非常深的兔子洞,在這裏黑暗和寒冷。 – Jason 2010-05-26 19:08:04

0

如果客戶端通過HTTPS向服務器發送WS-Secure SOAP請求,我的理解是,即使有人嗅探了流量,他們也無法解密它來查看SOAP消息,因此無法修補它。所以我沒有看到需要雙向SSL。

當通過HTTPS使用WS-Secure時,我們不能讓HTTPS負責加密並簡單地使用WS-Secure進行身份驗證(即簽署SOAP消息的某些部分(時間戳或身體或其他內容))?

+0

您假定攻擊者處於中間,但大多數SOAP消息並非如此。任何人都可以通過HTTPS向您發送被篡改的消息。如果沒有雙向SSL,則無法證明該消息來自可信方。 – 2010-05-27 19:37:53

+0

@ZZ編碼器,但我用我的私鑰簽名消息,然後服務器用我的公鑰解密,所以它會知道它來自我(如果我簽署全身不只是時間戳),是不是正確? – 2010-05-27 20:02:04