0

我想创建一个具有自定义身份验证的服务。我希望对用户进行身份验证的方式如下:

  1. 客户端连接到服务。

  2. 服务生成一个随机数让我们说 1234 并将该数字发送给客户端

  3. 然后客户端应该添加数字(稍后我将使用更好的哈希)所以客户端发送 10

  4. 服务器执行相同的哈希算法并期望收到 10

  5. 服务器收到 10 然后它验证用户并且用户能够开始使用该服务。

不过,我有一些基本问题。如果我使用 security = "none" 那么消息会被加密吗?换句话说,如果我使用 security = "none" 我知道用户不必经过身份验证,但消息是否以纯文本形式发送到服务?如何强制加密连接而无需对用户进行身份验证?我想限制用户嗅探包。我不介意他们连接到服务。如果他们连接到该服务,我只想让他们看到他们发送的消息,而不是其他人的消息。

4

1 回答 1

1

对于与服务器的加密通信,无需验证用户身份,您可以使用传输或消息级别的安全性。

有关详细信息,请参阅以下文章:

  1. 模式和实践改进 Web 服务安全指南
  2. 传输级安全
  3. 配置 HTTP 和 HTTPS
  4. 绑定和安全

一般建议:不要发明自己的授权/身份验证/加密协议,除非您是世界上最伟大的信息安全/密码学专家之一。使用市场上已有的协议。

您所描述的根本不是握手,因为它受这样一个事实的保护,即攻击者现在没有您的哈希函数。这种假设对于加密/身份验证协议来说是非常糟糕的基础。

于 2012-11-27T14:53:13.883 回答