0

我正在尝试使用 SSL 保护基于 java 的 RMI 服务。

我对使用 SSL 的功能有一些基本问题。具体来说,据我了解,通过 SSL 连接的客户端和服务器需要在客户端和服务器中都有适当的凭据证书,以便客户端被授予对服务器的访问权限。我的理解正确吗?

另外,我想知道的是,已经在使用我的 RMI 服务并可以访问客户端机器的人是否可以将客户端机器中的证书复制到其他客户端机器 - 然后调用我的 RMI 服务其他机器也一样?

如何防止这种情况发生?我的意思是,在 REST API 中您可以使用 OAuth 身份验证,我们可以在 RMI 服务中进行某种身份验证吗?

另外,我可以限制 RMI 服务的使用吗?例如,一个特定的客户可能被允许每天只对我的 RMI 服务进行 5000 次调用,如果他进行更多调用,那么在 5000 次调用限制之后发生的调用都会被拒绝?如何对我的 RMI 服务进行此类速率限制和/或身份验证?

4

1 回答 1

2

具体来说,据我了解,通过 SSL 连接的客户端和服务器需要在客户端和服务器中都具有适当的凭据证书,以便客户端被授予对服务器的访问权限。我的理解正确吗?

不,只有服务器需要证书。客户端证书是可选的。

另外,我想知道的是,一个已经在使用我的 RMI 服务并可以访问客户端机器的人,是否可以将客户端机器中的证书复制到其他客户端机器——然后调用我的 RMI 服务其他机器也一样?

当然。证书和应用程序的物理安全是您的问题。SSL 无法为您解决。

另外,我可以限制 RMI 服务的使用吗?例如,一个特定的客户可能被允许每天只对我的 RMI 服务进行 5000 次调用,如果他进行更多调用,那么在 5000 次调用限制之后发生的调用都会被拒绝?如何对我的 RMI 服务进行此类速率限制和/或身份验证?

自己编码。在数据库中粘贴一个每日计数器。

于 2012-12-18T23:02:20.067 回答