Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.
Segurança
Objetivos da Segurança
Princípios de Segurança
Algumas Soluções de Segurança
Plataforma Java EE
JAAS
Autenticação
Autorização
Utilização
Conclusões
“ Um mecanismo de Segurança da Informação providencia meios para reduzir as vulnerabilidades existentes em um Sistema de Informação.”
Autenticação
Autorização
Auditoria
Confidencialidade
Integridade
Disponibilidade
Não Repudiação
Proteger os ativos;
Garantir os princípios da segurança durante todo o ciclo de vida da informação;
Evitar que ameaças explorem as vulnerabilidades;
Evitar ou conter os ataques;
Gerenciar e reduzir os riscos;
Garantir a segurança da informação em qualquer meio.
F D Fonte de Informação Destino da Informação Fluxo Normal F D Interrupção F D Interceptação I F D Modificação M F D Fabricação F
IP Filtering
Network Address Translation (NAT)
IP Security (IPSec)
SOCKS
Secure Sockets Layer (SSL)
Application Proxies
Firewalls
Secure Electronic Transactions (SET)
…
Serviços oferecidos pelos containers:
Escalabilidade
G estão de memória, ciclo de vida de objetos e estado de objetos
Conexões, Transações, Serviço de nomes
Segurança
Tolerância a falhas
Integração
WebServices
Clustering
A lta disponibilidade
C onfiabilidade
…
Java Authentication and Authorization Service (JAAS);
Mecanismo de Autenticação e Autorização de Usuários, baseado em uma identidade e role(s) (perfil de acesso) associado(s);
Totalmente compatível com o padrão Java EE;
Restringe o acesso a uma aplicação Java, limitando acesso a uma url , método de um componente EJB ou Conteúdo de uma tela do usuário;
Possibilita uma abordagem declarativa ou programática, dando a possibilidade de um desacoplamento entre segurança e regras de negócio.
Aplicação Login Context Login Modules – São “plugáveis” e não interferem nos algorítimos de negócio implementados... LDAP LoginModule DataBase LoginModule NT LoginModule Active Directory MySQL NT Server
<!— Define a constraint de seguranca para as actions do sistema. Arquivo: WEB-INFweb.xml <security-constraint> <web-resource-collection> <web-resource-name> ExemploJAAS </web-resource-name> <description> Mapeamento da acoes do sistema </description> <url-pattern> /homepage.do </url-pattern> <url-pattern> /funcionario.do </url-pattern> </web-resource-collection> <auth-constraint> <role-name> supervisor </role-name> <role-name> gerente </role-name> </auth-constraint> </security-constraint>
Passo 4 – Protegendo o EJB Container
<!— EJB 3.0 - Via annotation (Java5 ou superior) Definição da classe --> @Stateless @DeclareRoles({ "supervisor" , "gerente" , "operador" }) public class FuncionarioServiceImpl implements FuncionarioService { @RolesAllowed( "supervisor" ) public void delete(Integer idFuncionario) {} @RolesAllowed({ "supervisor" , "gerente" }) public void save(Funcionario funcionario) throws LimiteSalarioException { if ((!context.isCallerInRole( "supervisor" ) && (funcionario.getSalario() > 10000.0d))){ throw new LimiteSalarioException( "limite.salario.exception" );} } }
JAAS fornece uma estrutura simples, produtiva e integrada com a plataforma Java;
JAAS não implementa toda estrutura de segurança necessária à uma aplicação. Portanto, ele deve ser combinado com outros mecanismos (SSL, Firewalls, Proxies, etc).
0 comments
Post a comment