【发布时间】:2012-11-14 18:57:15
【问题描述】:
将客户端和服务器配对并确保发出的请求来自客户端的安全方法是什么?我的想法是为每个请求发送一个密码,但网络上的其他人可以嗅探该数据,即使它是加密的。然后他们可以重新发送该数据包,服务器会认为正确的 PC 已经发送了它。即使发送哈希也行不通,因为攻击者只能重新发送哈希。
用户将在一台 PC 上运行服务器,而客户端将是另一台 PC,但其他人可能在同一个 Wifi 网络上。尝试保护这种连接的好方法是什么,或者这甚至是不可能的?
【问题讨论】:
-
和所有东西一样,只要使用 SSL 就可以解决大部分问题。
-
不要发明自己的方法,使用 SSL。
-
@MarcB 要使用 SSL,我是否必须为证书付费,然后在每个用户的机器上安装该证书?用户不能只拿该证书并将其用于自己的产品吗?
-
没有。您在服务器上安装证书。 ssl 负责其余的工作。例如您不必购买 amazon.com 证书即可与 amazon.com 网站交谈。而且您不必购买证书。您可以轻松地生成自己的,但代价是在客户端中获得“自签名证书”警告。
-
@MarcB - 每个用户有两台机器。一个是服务器,一个是客户端。所以我想这意味着我将它安装在所有用户的服务器上。当用户安装程序时,他们是否需要管理员权限或者证书是否可以只在安装文件夹中的目录中?该程序是 WPF 表单,而不是网站(我已经更新了标签)。
标签: c# .net security networking encryption