我正在編寫一個服務器 - 客戶端應用程序,通過互聯網進行通信,我有幾個關於安全性的問題和疑慮。我已經做了一些研究,發現一些有用的帖子,但我想了解更多信息。我讀了一些相關的問題是:編寫安全的RMI服務器 - 客戶端應用程序
Secure authentication of client over RMI
java rmi authentication & security. exportObject makes it public?
Is communication in java rmi secure?
我有3個部分來考慮:
- 信息在客戶端和服務器之間交換。
- 客戶端的身份驗證。
- 利用正在運行的RMI服務器(黑客等)。
我所知道的:
- 基於SSL的RMI。使用SSL套接字而不是默認套接字將加密在客戶端和服務器之間傳遞的所有信息。這包括對象交換和方法調用。
- 在建立RMI連接之前使用SSL上的用戶名/密碼組合進行身份驗證。根據我的理解,應該有一種在RMI連接內進行身份驗證的方法,但它被拒絕了。
- 不太確定這裏可以做什麼或需要做什麼。我知道你不能只編寫你自己的客戶端,並要求連接到服務器,因爲你需要一個ObjectID和遠程接口。但是,是否無法反編譯您所需的類\接口,因爲它們是以RMI方式發送的?我也在研究中看到了這個Youtube視頻[http://www.youtube.com/watch?v=otjllNaBxiw],它讓我擔心它的容易程度,儘管我不知道服務器是否安裝不正確。
總而言之,我還需要在RMI上通過互聯網考慮其他安全問題嗎?我是否缺少我需要看的解決方案?我已經知道錯了嗎?
您可以使用應用程序服務器和應用程序客戶端嗎?它們之間的連接使用RMI-IIOP,您可以利用服務器安全性。在服務器上,您可以訪問EJB以進行數據訪問。 – onesixtyfourth
@onesixtyfourth閱讀[文檔](http://docs.oracle.com/javase/7/docs/technotes/guides/rmi-iiop/rmiiiopUsing.html)在我看來,RMI-IIOP只需要部分的整體應用程序不是用Java寫的,事實並非如此。無論如何,這將如何解決擔憂? – user1803551