2014-01-16 37 views
1

我需要使用帶有加密的HTTP協議來實現WCF服務。消息或傳輸安全性都可以。我是否需要使用x509證書來達到加密的安全要求?還是有另一種方式?使用帶有加密的HTTP協議實現WCF服務

+0

你只需要一個共享密鑰來實現加密。你如何計劃在客戶端和服務器上同意/取得祕密?您確定該服務的用戶會信任它,因爲它使用的是HTTP而不是HTTPS。大多數(非技術人員)都認爲HTTP不安全,HTTPS安全。 – StevieB

+0

某種共享密鑰就足夠了。我正在做一個試點項目,由於時間的限制,我不確定我能否正確實施證書+ SSL安全。我正在尋找一種使用HTTP協議來滿足加密要求的最快方法。 – Cortlendt

回答

1

你會想要使用傳輸安全性,而不是消息安全性。傳輸安全就像普通的https加密一樣工作 - 事實上,主機的URL將是https。設置並正確配置證書和程序有點複雜,但Transport在消息安全方面具有很大的優勢。

使用消息安全性,您必須在每臺客戶端計算機上手動安裝x509證書的公鑰文件,並在主機上手動安裝公鑰和私鑰,以保證郵件安全性。這意味着很多額外的工作 - 即所有的客戶端證書文件安裝。另外,由於Message安全性是基於SOAP的,因此您必須沿SOAP線編寫所有代碼,從而使REST編程變得困難或不可能。

使用傳輸,您不需要在每臺客戶機上安裝證書公鑰的副本;就像使用普通的https web服務器一樣,主機將公鑰發送給它首先建立連接的客戶端。

這裏是在WCF體面如何對文章的鏈接上的https:http://www.codeproject.com/Articles/36705/Seven-simple-steps-to-enable-HTTPS-on-WCF-WsHttp-b

+0

當我沒有證書時使用密鑰文件會更好嗎? – Cortlendt

+0

密鑰文件是證書...證書有兩部分,公鑰和私鑰。當您登錄到https站點時,您將獲得主機服務器發送到瀏覽器的公鑰副本。您的瀏覽器將使用公鑰(駐留在瀏覽器內存中)在其本身和主機之間創建加密的「隧道」。只有主機有私鑰。 – Brian

+0

現在,如果您通過WCF使用HTTPS,則過程相同 - 主持人會在握手過程中自動將證書的公鑰部分發送給客戶端。但是,如果您使用Message安全性,公鑰作爲文字文件必須加載到客戶端並進行註冊。這就是消息安全的問題;客戶端需要的所有管理。 – Brian

相關問題