簡體   English   中英

WCF安全性:TransportWithMessageCredential和消息安全模式之間的區別

[英]WCF Security: Difference between TransportWithMessageCredential and Message Security Mode

我想知道TransportWithMessageCredential Vs Message在WCF安全性方面的區別。

我所知道的是:

傳輸安全性:用於在兩個端點之間提供點對點安全性。

消息安全性:它提供端到端的安全性。 因為消息安全性直接加密和簽署消息,所以擁有中介不會破壞安全性。

如果我們使用TransportWithMessageCredential模式,SOAP消息(Header和Body)是否加密?

我擔心的是我希望在WCF服務器和我的WinForms客戶端之間加密應用程序數據。

如果我們使用TransportWithMessageCredentials模式,是否加密了SOAP消息(Header和Body)?

是的,因為對於TransportWithMessageCredential安全模式,它是傳輸安全性,它為通過線路傳輸的消息提供機密性和完整性保護。 在這種情況下,傳輸安全性還提供服務認證。 例如,使用HTTP,安全套接字層(SSL)用於加密和簽名通過安全HTTP(HTTPS)發送的數據包的內容。

使用TransportWithMessageCredential安全模式,客戶端身份驗證通過SOAP消息安全性提供,其中客戶端憑據直接放在消息中。

當SOAP消息離開客戶端進行服務時,它會被加密。 但是,與傳輸安全性一樣,它在兩個端點(服務和客戶端)之間提供點對點( 而非端到端)安全性。 因此,如果客戶端和服務之間存在中間系統,則每個中間點必須通過新的安全連接轉發消息。

每條評論更新

你說“當SOAP消息離開客戶端進行服務時,它就被加密了”然后它應該是end -end security。為什么它只是點到點。

傳輸安全性是點對點的,因為消息在離開一個端點時會被加密並保持不變,直到它到達安全傳輸的另一個端點,然后消息被解密。 在客戶端和服務器直接相互通信的部署中,這會在整個過程中提供加密。 但是,如果您的服務端點要將該郵件轉發到目標收件人,則不再保證您的郵件從該點開始加密。

消息安全性直接對消息進行加密和簽名,以便只有預期的接收者才能解密和讀取消息的實際內容。 因此,發件人和收件人之間保證安全,而不僅僅是端點之間。 因此,消息安全性提供了端到端的安全性。

我能否得出結論:TransportWithMessageCredential提供安全點到點,消息級安全性提供端到端安全性。 那么為什么WCF安全指南建議使用帶有UserName的TransportWithMessageCredential當我們在Internet中使用WCF和Windows窗體客戶端時。

對,那是正確的。 TransportWithMessageCredential安全性提供點對點, Message安全性提供端到端安全性。 WCF安全指南建議將客戶端憑據設置為UserName因為這將用於對客戶端進行身份驗證。 UserName案例中,我們將用戶名和密碼對直接放在SOAP消息中。 除非客戶端提供某種憑證(例如UserNameCertificate來對服務進行身份驗證,否則您將擁有匿名客戶端。 匿名客戶端意味着任何人都可以訪問您的服務,因為客戶端未經過身份驗證。

如果郵件正文未使用TransportWithMessageCredential加密,那么為什么Microsoft稱TransportWithMessageCredential是傳輸和郵件安全性的組合

與我原來的答案一樣:SOAP消息由傳輸層加密和簽名(例如HTTPS)。 TransportWithMessageCredential是傳輸和消息安全性的組合,因為傳輸安全性對消息進行加密和簽名以及向客戶端驗證服務,並且消息安全性用於向服務驗證客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM