我正在编写一个服务器-客户端应用程序,通信是通过互联网进行的,我有几个关于安全性的问题和顾虑。我已经做了一些研究,并发现这里的一些帖子很有用,但我想要更多信息。我读到了一些相关的问题:
Java RMI身份验证和安全性。exportObject会使其公开吗?
我有三个部分需要考虑:
- 客户端和服务器之间交换的信息。
- 客户端的身份验证。
- 利用正在运行的RMI服务器(黑客等)。
我所知道的是:
- RMI通过SSL。使用SSL套接字而不是默认套接字将加密客户端和服务器之间传递的所有信息。这包括对象交换和方法调用。
- 在建立RMI连接之前,使用用户名/密码组合通过SSL进行身份验证。据我了解,本应有一种方法在RMI连接内部进行身份验证,但被否决了。
- 不太确定需要做什么或可以做什么。我知道您不能编写自己的客户端并请求连接到服务器,因为您需要ObjectID和远程接口。但是,既然它们已经在RMI中发送,那么不可能反编译您需要的类\接口吗?我在研究时还看到了这个Youtube视频[http://www.youtube.com/watch?v=otjllNaBxiw],让我感到担忧,因为它非常容易,尽管我不知道服务器是否设置正确。
总的来说,在互联网上使用RMI还有其他安全问题需要考虑吗?我是否缺少需要考虑的解决方案?我已经了解的是否错误?