增强asio客户端身份验证
boost asio client authentication
我有一个基于客户端-服务器的c++应用程序,它通过网络进行通信(使用boost asio),我计划将此客户端应用程序分发给我的客户。我的问题是,我不知道如何阻止来自其他应用程序的连接请求,也就是说,我如何确保只有我的客户端应用程序能够连接到我的服务器。我认为如果不建立连接,就没有办法做到这一点,除了验证请求来自我的客户的最佳方法是什么?
您可以使用asio内置的SSL功能。因此,您为每台服务器和客户端生成插入。因此,您可以在SSL握手时检查服务器上的客户端插入情况。作为奖励,您的流量将得到加密和SSL安全。客户端可以检查服务器是否是假的;服务器可以检查客户端是否已授权。
是的,您必须接受连接才能知道它是否来自您的应用程序。您可以在连接步骤使用三方握手:
- 客户端连接到服务器服务器正在发送特定值(整数、字符串或其他)
- 客户端处理这个值,用它计算一个新值并发送将新值发送到服务器
- 服务器会检查返回的值是否正确
客户端将具有与服务器相同的计算方法。如果其他应用程序返回的值不正确,它们将无法使用您的服务。
相关文章:
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 使用 WinInet 的客户端身份验证(证书 + 私钥)
- QT REST客户端为Microsoft认知服务翻译器API获得身份验证令牌
- 证书验证在客户端服务器通信中使用boost :: asio和openssl失败
- 客户端验证的算法
- 使用套接字的C++中的客户端到服务器身份验证
- 客户端身份验证或与Mongoose Web服务器的相互身份验证
- 由于SSL3_GET_CLIENT_CERTIFICATE:未返回证书,验证 SSL 客户端真实性失败
- 验证进程外的COM服务器客户端是否受信任
- 是否使用LDAP+kerberos作为身份验证程序启用SASL(带有GSSAPI)的客户端和服务器?(单点登录SSO系统
- 客户端和身份验证服务器
- OpenSSL客户端验证-需要客户端验证要求
- 增强asio客户端身份验证
- OpenSSL:服务器无法验证客户端证书
- 如何使用boost::asio SSL验证客户端证书
- 如何向外部客户端提供私有验证服务
- 验证SSL_get_peer_certificate返回的服务器证书的客户端程序
- 客户端/服务器应用程序的身份验证策略
- 对服务器/客户端应用程序使用Kerberos身份验证
- C++ 通过游戏客户端进行 Steam ID 身份验证