Java(RMI)服务器到服务器的身份验证方法?

标签 java authentication keystore

我正在通过 RMI 进行服务器到服务器的身份验证。有一个应用程序服务器(服务器部分)和几个通过 RMI 进行通信的 Web 服务器(客户端部分)。 Web 服务器必须在应用程序服务器上进行身份验证。最简单的方法是使用存储在网络服务器的配置文件(明文)中的密码,但这显然是非常糟糕的做法。

我的想法是使用在网络服务器(客户端)上生成的公钥/私钥。私钥存储在 keystore 中,公钥发布到应用程序服务器。为了验证客户端的身份,使用私钥对生成的随机字符串进行签名(创建签名),并将签名和字符串发送到服务器。服务器使用签名及其公钥验证字符串。
好主意吗?
我知道这不是很安全,但比存储明文密码更好。

对此有什么建议吗?
无需使其 100% 安全,只是密码保护的一个不错的选择。

谢谢,祝你有美好的一天。

最佳答案

公钥/私钥加密应该足够好。 其他替代方案是将密码存储在 LDAP 服务器中,并授予对服务器和 LDAP 客户端的访问权限。然而,这会增加一台服务器和更多网络使用的负担。 最终的安全性将是使用安全 RMI,这将保护您的 RMI 消息并保护与服务器的连接。

关于Java(RMI)服务器到服务器的身份验证方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9868358/

相关文章:

javascript - Passport 认证唯一 session ID概念

java - 用于调用使用不同证书集调用其他服务的服务的 keystore 配置

java - @DataJpaTest 在测试之外需要一个类

java - 当部分访问器元素通过 namespace 限定时,JAX WS Web 服务接收 null 参数

Facebook 身份验证无需重定向?

c# - 以编程方式注销 ASP.NET 用户

java - 我无法使用 keytool 获取 SHA1 证书

Java - PKCS11 和 MSKeyStore

java - 需要有关 java.io.UnixFileSystem.rename0 的信息

java - 访问静态字段的静态同步方法