【问题标题】:How can I securely authenticate to a server socket with java?如何使用 java 安全地对服务器套接字进行身份验证?
【发布时间】:2020-03-20 18:26:19
【问题描述】:

我编写了一个 java 程序,其中客户端通过套接字(不是 SSLSocket!)连接到服务器。 首先,客户端创建一个 RSA 密钥对,然后将公钥发送到服务器。然后服务器以公钥响应,客户端使用该公钥创建 RSA 编码的登录密码以进行身份​​验证。

这是一种安全的方式吗?如果不是,我如何确保密码的安全性?

【问题讨论】:

标签: java sockets security serversocket


【解决方案1】:

除非您是密码学专家,否则您几乎永远不会自己实现握手协议。

相反,由于我可以假设您使用的是 TCP、UDP 或 HTTP 之类的协议,因此您可以使用 Netty 之类的库或仅使用内置的 TLS/SSL 支持。

Netty SSL Example

SSLSocket(我知道你说过你没有使用它)类不用于第 3 方。

【讨论】:

  • 但是如果我使用 SSL 或 SSLSocket,我想它是 neccessary 有一个证书?那里有免费的可能性还是都需要花钱?老实说,我很难理解它是如何工作的,而且我无法让 SSLSocket 在我的测试中工作。如何获得证书以及如何获得密钥库?
  • 不,伙计,你准备好了!使用 LetsEncrypt!它是免费的,并且持续 90 天!获得证书很容易,但密钥库(或信任库)可能很困难。
  • 好的。现在有两个问题:如何获取密钥库以及如何使用用户名和密码创建身份验证系统?我今天搜索了很多,但找不到很好的概述。
  • 这是堆栈溢出的更多问题,不是我,对不起。
猜你喜欢
  • 2011-06-22
  • 2018-02-25
  • 1970-01-01
  • 2016-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-26
  • 2011-07-08
相关资源
最近更新 更多