2011-04-21 115 views
4

我試圖向使用雙向身份驗證的第三方主機服務器發送信息(以mime文件的形式)。經過多次哄騙,我從非技術支持人員那裏獲得了足夠的信息,以確定它最有可能是一種TLS/SSL通信。他們使用客戶端和服務器握手。我發現以下示例: sslstream example。但是使用它有問題(TcpClient拒絕看到主機地址)。SSL通信的雙向身份驗證

在我過得太遠之前,我希望有人能指出我在這個過程中的一些好例子或更多信息的方向。我感覺很迷茫。

回答

3

通過雙向認證,可能它們意味着它們需要客戶端證書。這意味着在握手過程中,客戶端也必須向服務器提交證書。最常見的SSL行爲是隻有服務器部分提供證書,例如,當您轉到使用HTTPS的普通站點時。

至於SslStream,它的使用非常簡單。爲了能夠顯示客戶端證書,您需要在證書存儲區或pfx文件中擁有證書,您可以在運行時將其加載到內存中。

我發現this sample這似乎夠好。 Here is another one。第二個不使用客戶端證書,但可以將它們作爲參數添加到AuthenticateAsClient調用中。

如果TcpClient拒絕查看主機地址,那麼這很可能是某種連接問題,與實際的SSL實現無關。

+0

感謝您的迴應Can。這些例子幫助我更好地理解正在發生的事情。似乎沒有任何.Net工具處理TLS http://en.wikipedia.org/wiki/Transport_Layer_Security所需的不同「握手」。我可能可以但真的不想寫這個所需的代碼。任何人都可以建議.Net友好的第三方工具? – Belmiris 2011-04-21 19:56:21

+0

我認爲如果我沒有記錯,SslStream不支持AES。這可能是服務器需要它的問題。 – 2011-04-21 20:04:31