簡體   English   中英

通過RMI對客戶端進行安全身份驗證

[英]Secure authentication of client over RMI

我正在考慮像這樣對我的RMI服務的用戶進行身份驗證

interface RemoteService extends Remote { ... }
interface RemoteServiceProvider extends Remote { ... }
class RemoteServiceProviderImpl implements RemoteServiceProvider {
   RemoteService getService(String authCode) throws RemoteException {
     if (check(authCode)) return (RemoteService) UnicastRemoteObject.export(theRemoteService, 0);
     else throw ...;
   }

}

但是,這可能並不是很安全。 我懷疑當export真實服務時,任何猜對了正確端口的人都可以獲取它。

我該如何正確地做呢?

看起來當真實服務被導出時,任何猜測正確端口的人都可以獲取它。

否。它們還必須猜測一個遠程對象ID,並且有一個系統屬性可以使它們通過安全的RNG生成。 他們還必須具有遠程接口類,並且還必須能夠使用正確的IP:端口,遠程接口和遠程UID為對象構造一個遠程存根。 不容易。 但是,如果您有嚴重的安全問題,那么您當然應該考慮使用具有相互身份驗證的SSL,如果您對安全RMI完全或完全地認真的話,也許應該考慮使用Jini / Secure JERI的全部內容。 另請參閱本白皮書

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM