我正在尋找WCF &安全。 有幾種安全模式,但大圖是有兩個主要的「層」,你可以保護:運輸或消息。WCF中的傳輸安全和郵件安全有什麼區別
有人可以更深入地解釋這個嗎? 當我保護運輸時,我有什麼想象,運輸方式如何,等等。
我正在尋找WCF &安全。 有幾種安全模式,但大圖是有兩個主要的「層」,你可以保護:運輸或消息。WCF中的傳輸安全和郵件安全有什麼區別
有人可以更深入地解釋這個嗎? 當我保護運輸時,我有什麼想象,運輸方式如何,等等。
它與您所期望的幾乎一樣,運輸安全保證運輸安全 - 例如,基於HTTP的SSL,而消息安全保護消息。下面是一個MSDN概述理由使用信息安全: http://msdn.microsoft.com/en-us/library/ms733137.aspx
和運輸的概述: http://msdn.microsoft.com/en-us/library/ms729700.aspx
(從信息安全鏈接): Windows通訊基礎(WCF)具有提供兩種主要模式安全性(傳輸和消息)和第三種模式(TransportWithMessageCredential)結合在一起。本主題討論消息安全性以及使用它的原因。
什麼是信息安全?
消息安全性使用WS-Security規範來保護消息。 WS-Securityspecification描述了SOAP消息的增強,以確保SOAP消息級別(而不是傳輸級別)的機密性,完整性和身份驗證。
簡而言之,通過將安全證書和聲明與任何消息一起封裝以及任何消息保護(簽名或加密),消息安全性與傳輸安全性不同。通過修改其內容直接將安全性應用於消息,可以使安全消息在安全方面自成一體。這使得一些使用傳輸安全性時不可能實現的方案成爲可能。
理由使用郵件安全
在消息級安全性,所有的安全信息封裝在消息中。使用消息級安全性而不是傳輸級安全性保護消息具有以下優點: •端到端安全性。傳輸安全性(如安全套接字層(SSL))僅在點對點通信時保護消息。如果消息在到達最終接收者之前被路由到一個或多個SOAP中介(例如路由器),則一旦中介從線路讀取消息,消息本身就不受保護。此外,客戶認證信息僅供第一中介使用,必要時必須以帶外方式重新傳輸給最終接收方。即使整個路由在各跳之間使用SSL安全,也是如此。由於消息安全性直接與消息一起工作,並將XML內置於其中,所以安全性與消息保持一致,無論在涉及到最終接收方之前涉及多少中介。這實現了真正的端到端安全方案。
•增加靈活性。部分消息,而不是整個消息,可以進行簽名或加密。這意味着中介機構可以查看消息中針對他們的部分。如果發件人需要使消息中的信息的一部分對中間人可見,但希望確保消息中沒有被篡改,則可以對其進行簽名但不加密。由於簽名是消息的一部分,因此最終接收方可以驗證消息中的信息是否完整接收。一種情況可能有一個SOAP中介服務,它根據Action頭的值路由消息。默認情況下,WCF不會對Action值進行加密,但會在使用郵件安全性時對其進行簽名。因此,這些信息可供所有中介使用,但沒有人能改變它。
•支持多個傳輸。您可以通過許多不同的傳輸(例如命名管道和TCP)發送安全消息,而無需依賴協議來實現安全性。使用傳輸級別的安全性,所有安全信息都被限定爲單個特定的傳輸連接,並且不能從消息內容本身獲得。無論您使用什麼傳輸消息來傳遞消息,消息安全性都會使消息保持安全,並且安全上下文直接嵌入消息中。
•支持多種證書和聲明。消息安全基於WS-Security規範,它提供了一個可擴展的框架,能夠在SOAP消息內傳輸任何類型的聲明。與傳輸安全性不同,您可以使用的一組身份驗證機制或聲明不受傳輸能力的限制。 WCF消息安全性包括多種身份驗證和聲明傳輸,並可根據需要進行擴展以支持其他類型。例如,出於這些原因,如果沒有消息安全性,聯合身份驗證方案是不可能的。有關WCF支持的聯合方案的更多信息,請參閱聯合身份驗證和頒發令牌。
使用運輸工具保護您正在使用的渠道並收到您正在發送的郵件(內容)。
傳輸安全性,例如安全套接字層(SSL),當通信是點對點時,僅保留 消息。如果消息是 在到達最終接收方之前路由到一個或多個SOAP中介(例如路由器) ,則該消息本身不是 ,一旦中介從線路讀取該消息就會受到保護。
誤導性。由於需要服務端SSL證書來解密消息,因此如果使用傳輸層安全性(服務器端SSL證書)加密,則網絡路由器或交換機(OSI第2層和第3層)將無法訪問消息內容。傳輸層安全性保護客戶端和預期目標IP地址之間的消息,因爲只有目標服務提供者被假定具有解密消息所需的SSL專用證書。如果SOAP中介(即ESB)實際上是預期的消息目的地,它實際上與客戶建立加密的傳輸信道,則SOAP中介只能夠讀取內容,從而確保從客戶到服務器的安全信道,而不管網絡中繼,路由器和交換機等(OSI第2層和第3層)。
消息級別的安全性將增加消息的安全性,並且如果中間件ESB(預期的SOAP中介體)需要讀取消息的一部分以作出路由決定(基於內容的路由)但是不應該能夠讀取應該只能被下游系統訪問的消息的其他部分。
因此,如果你想通過HTTP使用SSL,你至少需要傳輸安全性,如果我沒有錯的話?根據定義, – 2013-02-20 08:10:01
,http上的ssl確保傳輸 - 而不是消息。這裏有一個很好的使用指南:http://wcfsecurityguide.codeplex.com/ – NDJ 2013-02-20 08:14:05
感謝您的時間和幫助! – 2013-02-20 08:17:28