2014-12-22 56 views
1

我是WCF新手,我有一個相對簡單的問題,我似乎無法找到一個簡單的答案。我正在嘗試查看是否必須明確使用證書來驗證綁定的兩端是否真實。我寧願使用TcpClientCredentialType.Windows安全性來爲ProtectionLevel.EncryptAndSign這樣做。這足以讓客戶端和服務器互相信任他們沒有被篡改嗎?我的客戶端DLL和服務器進程都使用相同的證書進行簽名,但是有人可能會創建一個使用我的合同的虛假服務,而我的客戶端不會意識到這一點?使用NetTCPBinding與TcpClientCredentialType.Windows WCF安全

回答

0

MSDN包含使用Windows Communication Foundation(WCF)創建安全應用程序時要考慮的最佳做法的列表。

WCF提供了兩種對等身份驗證機制:X509證書(由對等通道使用)和Windows身份驗證,其中SSPI協商從Kerberos降級到NTLM。使用1024位以上的密鑰大小基於證書的驗證最好NTLM有以下幾個原因:

  • 相互認證的可用性,
  • 使用強加密算法,並
  • 難度越大利用轉發的X509憑證。

對於什麼是值得的,您可能需要考慮證書,甚至是自簽名證書,以確保最佳的端點安全性。

+0

感謝您的快速回復,請原諒我的無知,但您是否認爲Windows身份驗證已足夠(爲服務進程提供相同的證書),以便我的客戶端滿意其正在連接的WCF服務是真正的期待,而不是假的? – Akuma

+0

糟糕的錯字大聲笑,應該讀'不足',這當然完全顛倒的意思。 因此,爲了驗證我試圖確保兩端都是真正的你說我必須使用證書? – Akuma

+0

我不認爲你「必須」使用證書,而是證書恕我直言(和根據MSDN)代表安全Web服務和驗證端點身份的最佳做法 – Seymour