2012-04-07 59 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

相关问题