RMI (Remote Method Invocation)

 

Segurança

 

Em relação a segurança, o RMI fornece o "RMISecurityManager", sem o qual objetos locais se tornam incapazes de baixar código ou utilizar métodos remotos. O RMISecurityManager Segue o modelo de segurança do JDK 1.2, que está ilustrado na figura abaixo.

 

Figura 1
Figura 1 - modelo de segurança do JDK 1.2

 

Na figura acima, a seta mais a esquerda se refere ao domínio cujo código recebe acesso total aos recursos do sistema; a seta a direita representa o extremo oposto, ou seja, o domínio cujo código fica restrito exatamente a mesma "sandbox" original. Os domínios no meio tem mais acesso que a "sandbox", porém menos que acesso completo.

No modelo de segurança do JDK 1.2, o código, independentemente se é local ou remoto, é sempre executado sob uma política de segurança. A política de segurança define um conjunto de permissões disponíveis para o cógigo. Cada permissão define um acesso a um recurso em particular, como por exemplo, permissão de leitura ou escrita a um diretório específico ou permissão de conexão para um host e porta.

O sistema de execução organiza o código em domínios individuais, cada domínio possuiu seu conjunto de classes, sendo que as instâncias dessas classes redebem o mesmo conjunto de permissões. Um domínio pode ser configurado de forma que applets rodem em um ambiente restrito, de acordo com o administrador da rede. As aplicações "stand alone" rodam sem nenhuma restrição, porém elas podem ser submetidas a uma política de segurança. No caso do RMI, os objetos remotos são obrigados a implementar uma política de segurança.

SSL em RMI

A versão de RMI que acompanha o JDK 1.2 permite ao programador usar "sockets" customizados, ou seja, com RMI, é possível que cada objeto use um tipo diferente de "socket" para sua conexões RMI. Caso o programador queira adicionar mais segurança ao seu sistema, ele pode usar SSL para como protocolo de comunicação abaixo do RMI, ou caso não esteja interessado, pode usar simplesmente TCP com os mecanismos de segurança providos pelo próprio RMI.

 


[ Índice | Introdução | Modelo RPC | Funcionamento | Serialização ]
[ "Stubs" e "Skeletons" | Ativação | Segurança | Aplicações | Referências ]