Segurança J2EE

1.733 visualizações

Publicada em

Segurança J2EE

Publicada em: Tecnologia, Educação
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.733
No SlideShare
0
A partir de incorporações
0
Número de incorporações
26
Ações
Compartilhamentos
0
Downloads
53
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Segurança J2EE

  1. 1. Rodrigo Cândido da Silva
  2. 2. <ul><li>Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE. </li></ul>
  3. 3. <ul><li>Segurança </li></ul><ul><ul><li>Objetivos da Segurança </li></ul></ul><ul><ul><li>Princípios de Segurança </li></ul></ul><ul><ul><li>Algumas Soluções de Segurança </li></ul></ul><ul><li>Plataforma Java EE </li></ul><ul><li>JAAS </li></ul><ul><ul><li>Autenticação </li></ul></ul><ul><ul><li>Autorização </li></ul></ul><ul><ul><li>Utilização </li></ul></ul><ul><li>Conclusões </li></ul>
  4. 4. <ul><li>“ Um mecanismo de Segurança da Informação providencia meios para reduzir as vulnerabilidades existentes em um Sistema de Informação.” </li></ul>
  5. 5. <ul><li>Autenticação </li></ul><ul><li>Autorização </li></ul><ul><li>Auditoria </li></ul><ul><li>Confidencialidade </li></ul><ul><li>Integridade </li></ul><ul><li>Disponibilidade </li></ul><ul><li>Não Repudiação </li></ul>
  6. 6. <ul><li>Proteger os ativos; </li></ul><ul><li>Garantir os princípios da segurança durante todo o ciclo de vida da informação; </li></ul><ul><li>Evitar que ameaças explorem as vulnerabilidades; </li></ul><ul><li>Evitar ou conter os ataques; </li></ul><ul><li>Gerenciar e reduzir os riscos; </li></ul><ul><li>Garantir a segurança da informação em qualquer meio. </li></ul>
  7. 7. 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
  8. 8. <ul><li>IP Filtering </li></ul><ul><li>Network Address Translation (NAT) </li></ul><ul><li>IP Security (IPSec) </li></ul><ul><li>SOCKS </li></ul><ul><li>Secure Sockets Layer (SSL) </li></ul><ul><li>Application Proxies </li></ul><ul><li>Firewalls </li></ul><ul><li>Secure Electronic Transactions (SET) </li></ul><ul><li>… </li></ul>
  9. 12. <ul><li>Serviços oferecidos pelos containers: </li></ul><ul><ul><li>Escalabilidade </li></ul></ul><ul><ul><li>G estão de memória, ciclo de vida de objetos e estado de objetos </li></ul></ul><ul><ul><li>Conexões, Transações, Serviço de nomes </li></ul></ul><ul><ul><li>Segurança </li></ul></ul><ul><ul><li>Tolerância a falhas </li></ul></ul><ul><ul><li>Integração </li></ul></ul><ul><ul><li>WebServices </li></ul></ul><ul><ul><li>Clustering </li></ul></ul><ul><ul><li>A lta disponibilidade </li></ul></ul><ul><ul><li>C onfiabilidade </li></ul></ul><ul><ul><li>… </li></ul></ul>
  10. 13. <ul><li>Java Authentication and Authorization Service (JAAS); </li></ul><ul><li>Mecanismo de Autenticação e Autorização de Usuários, baseado em uma identidade e role(s) (perfil de acesso) associado(s); </li></ul><ul><li>Totalmente compatível com o padrão Java EE; </li></ul><ul><li>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; </li></ul><ul><li>Possibilita uma abordagem declarativa ou programática, dando a possibilidade de um desacoplamento entre segurança e regras de negócio. </li></ul>
  11. 14. 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
  12. 16. HTTP Basic Authentication Form-Based Authentication
  13. 17. HTTPS Client Authentication Digest Authentication
  14. 19. <ul><li>Passo 1 - Configurando o LoginModule </li></ul><!-- Exemplo: File Login Module Arquivo: %JBOSS_HOME%serverdefaultconflogin-config.xml --> <application-policy name= &quot;exemplojaas&quot; > <authentication> <login-module code= &quot;org.jboss.security.auth.spi.UsersRolesLoginModule&quot; flag= &quot;required&quot; > <module-option name= &quot;usersProperties&quot; > props/exemplo-jaas-users.properties </module-option> <module-option name= &quot;rolesProperties&quot; > props/exemplo-jaas-roles.properties </module-option> </login-module> </authentication> </application-policy>
  15. 20. <ul><li>Passo 2 – Definindo o Tipo de Autenticação </li></ul><!— Define Formul ário de login (login-config) . Arquivo: WEB-INFweb.xml --> <login-config> <auth-method> FORM </auth-method> <realm-name> ExemploJAAS </realm-name> <form-login-config> <form-login-page> /loginpage.do </form-login-page> <form-error-page> /loginfail.do </form-error-page> </form-login-config> </login-config>
  16. 21. <ul><li>Passo 3 – Protegendo o Web Container </li></ul><!— 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>
  17. 22. <ul><li>Passo 4 – Protegendo o EJB Container </li></ul><!— EJB 3.0 - Via annotation (Java5 ou superior) Definição da classe --> @Stateless @DeclareRoles({ &quot;supervisor&quot; , &quot;gerente&quot; , &quot;operador&quot; }) public class FuncionarioServiceImpl implements FuncionarioService { @RolesAllowed( &quot;supervisor&quot; ) public void delete(Integer idFuncionario) {} @RolesAllowed({ &quot;supervisor&quot; , &quot;gerente&quot; }) public void save(Funcionario funcionario) throws LimiteSalarioException { if ((!context.isCallerInRole( &quot;supervisor&quot; ) && (funcionario.getSalario() > 10000.0d))){ throw new LimiteSalarioException( &quot;limite.salario.exception&quot; );} } }
  18. 23. <ul><li>JAAS fornece uma estrutura simples, produtiva e integrada com a plataforma Java; </li></ul><ul><li>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). </li></ul>
  19. 24. <ul><li>? </li></ul>

×