[英]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.