那麼這是相當複雜的問題。我會嘗試解釋一些部分,但儘可能避免更多細節(即使在這之後它會很長)。
認證證書如何工作?
如果私鑰持有者簽署了一些數據,其他參與者可以使用簽名者的公鑰來驗證簽名。這種機制可以用於認證。私鑰和公鑰存儲在證書中,私鑰在證書機器上保持安全,而帶公鑰的證書可以公開獲得。
它與HTTPS有什麼關係?
WCF提供傳輸和消息安全。它們之間的區別描述爲here。 HTTP中的傳輸安全性是HTTPS,其中只有服務器需要頒發證書,而客戶端必須信任此證書。此證書既用於向客戶端驗證服務器,又用於建立安全通道(使用對稱加密)。
HTTPS還提供了名爲Mutual HTTPS的變體,其中客戶端必須同時頒發證書並且客戶端使用證書向服務器進行身份驗證。
郵件安全性如何工作以及該場景中兩個證書的用途是什麼?
在消息安全的情況下,每個消息分別進行簽名,加密和驗證=所有這些安全信息都是消息的一部分。在SOAP的情況下,這是由許多規範描述的,但通常您對安全綁定和X.509令牌配置文件感興趣。
安全綁定是WS-SecurityPolicy斷言的一部分,它描述瞭如何保護消息。我們有三個綁定:
- 對稱安全綁定 - 對稱加密
- 非對稱安全綁定 - 非對稱加密
- 交通運輸安全綁定 - 斷言消息必須發送通過HTTPS或其他安全運輸
X.509令牌配置文件指定如何在消息中傳輸證書(公鑰)以及如何使用它們。
現在,如果你有對稱安全綁定,您只需要服務器證書因爲
- 當客戶要發送消息,它會首先生成隨機密鑰服務器。
- 它將使用此密鑰來加密和簽署請求
- 它將使用服務證書來加密派生密鑰並將其傳遞給請求。
- 當服務器收到該消息時,它將首先使用其私鑰解密該密鑰。
- 它將使用解密的密鑰來解密其餘的消息。
- 它也將使用密鑰來加密響應,因爲客戶端知道該密鑰。
- 客戶端將用於請求生成相同的密鑰來解密所述響應
這是對稱加密這是更快更然後非對稱加密,但密鑰推導不應該在的WS-Security 1.0可用。它在WS-Security 1.1中可用。 HTTPS在內部以類似的方式工作,但關鍵在整個連接壽命期間是相同的。
如果你有非對稱安全綁定,你需要兩個證書:
- 發起人必須有自己的證書用於簽名的請求和解密響應
- 收件人必須用於解密請求和簽署響應自己的證書
這意味着下面的算法
- 發起加密的請求與接收方的公鑰
- 發起跡象用自己的私鑰
- 收件人要求使用發起者的公鑰來驗證請求籤名
- 收件人使用其私鑰解密請求
- 收件人使用發起者的公鑰加密響應
- 收件人使用其私鑰簽名響應
- 啓動器使用接收方的公鑰來驗證簽名響應
- 發起方使用其私鑰來解密響應
簽名和加密的順序是可以改變的 - 還有另外一個WS-安全斷言它說什麼,應先進行。
這些都是基礎知識。它可以是複雜得多,因爲信息安全實際上是讓你儘可能多的證書,你想要的 - 例如,你可以使用認可標記與其他證書籤名初級簽名等
謝謝,這有助於!在閱讀你的解釋之後,我覺得我能夠更好地理解如何從安全的角度來配置wcf。您還提到了各種協議,如果需要,我可以查找更多信息,並且您在理論上做得很好。再次感謝! – Andrew