2012-04-07 29 views
0

我目前正在研究一個客戶端 - 服務器類型的聊天室。我會直接解決這個問題:我正在通過SecureString處理用戶密碼,並且無法將該信息發送到我的服務器應用程序(通過System.Net.Sockets)。我已經在使用「Marshal」類的SecureString方面取得了一些成功,但是根據它的處理方式,將它從一個客戶端發送到它的服務器似乎幾乎是不可能的。我一直在網上搜索了幾天,看看它是否可以通過電報發送SecureString而不用純文本「暴露」它。發送SecureString到遠程服務器 - 這可能嗎?

本質上,我所質疑的是,如果有一種方法可以從SecureString獲得某種類型的信息,可以將其轉換爲byte [],並且可以被理解爲足以檢索其中的密碼。

回答

0

只要客戶端有密鑰,您就有可能讓用戶自己獲得該密鑰。那麼,如果他們可以攔截另一個用戶的流量,那麼你就有問題,因爲他們可以使用這個密鑰來解密你發送給服務器的任何內容。

因此,您可以爲每個客戶端創建一個單獨的密鑰。但是現在你在查詢服務器上的解密密鑰時會產生一堆煩人的開銷。

爲什麼不只是使用https?

+0

感謝您的快速響應!我一直在考慮https - 只是相當不熟悉它。除非我完全理解加密錯誤,否則必須弄清楚密鑰是如何使用的(算法)。這將是一個更艱難的任務,而不是簡單地窺探純文本密碼。但我肯定會考慮https - 我的教授建議研究SecureString,這就是爲什麼我特意詢問了有關SecureString的原因。 https很容易實現? – 2012-04-08 01:22:21

+0

通常很容易,是的....它聽起來像一個網絡應用程序,在這種情況下,您只需在服務器(IIS?)中安裝一個安全證書並將其配置爲允許從https://訪問您的應用程序.com而不是http://whatever.com。這裏有一個Google搜索可以幫助您:http://www.google.com/search?client=safari&rls=zh-CN&q=install+secure+certificate+iis&ie=UTF-8&oe=UTF-8。這就是說,如果這是家庭作業,你可能無法使用它,如果他(她)特別希望你自己解決HTTPS的使用很容易規避的問題。 – 2012-04-09 11:43:47

+0

它是一個通過http與Web服務進行通信的WPF應用程序。我已經在使用Google,只是在詢問你的意見。這是大學畢業的最後一個項目。我已經完成了它 - 只是想添加一些額外的「功能」,如安全。我曾經問過我的教授的建議 - 他不在乎這種方式。感謝您的幫助!非常感激。 – 2012-04-10 07:25:27

相關問題