增强asio客户端身份验证

boost asio client authentication

本文关键字:身份验证 客户端 asio 增强      更新时间:2023-10-16

我有一个基于客户端-服务器的c++应用程序,它通过网络进行通信(使用boost asio),我计划将此客户端应用程序分发给我的客户。我的问题是,我不知道如何阻止来自其他应用程序的连接请求,也就是说,我如何确保只有我的客户端应用程序能够连接到我的服务器。我认为如果不建立连接,就没有办法做到这一点,除了验证请求来自我的客户的最佳方法是什么?

您可以使用asio内置的SSL功能。因此,您为每台服务器和客户端生成插入。因此,您可以在SSL握手时检查服务器上的客户端插入情况。作为奖励,您的流量将得到加密和SSL安全。客户端可以检查服务器是否是假的;服务器可以检查客户端是否已授权。

是的,您必须接受连接才能知道它是否来自您的应用程序。您可以在连接步骤使用三方握手:

  1. 客户端连接到服务器服务器正在发送特定值(整数、字符串或其他)
  2. 客户端处理这个值,用它计算一个新值并发送将新值发送到服务器
  3. 服务器会检查返回的值是否正确

客户端将具有与服务器相同的计算方法。如果其他应用程序返回的值不正确,它们将无法使用您的服务。