Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a...
Transcript of Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a...
![Page 1: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/1.jpg)
Rodrigo Cândido da Silva
![Page 2: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/2.jpg)
Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.
![Page 3: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/3.jpg)
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
![Page 4: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/4.jpg)
“Um mecanismo de Segurança da Informação providencia meios para reduzir as vulnerabilidades existentes em um Sistema de Informação.”
![Page 5: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/5.jpg)
Autenticação Autorização Auditoria Confidencialidade Integridade Disponibilidade Não Repudiação
![Page 6: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/6.jpg)
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.
![Page 7: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/7.jpg)
F DFonte de
InformaçãoDestino daInformação
Fluxo Normal
F D
Interrupção
F D
InterceptaçãoI
F D
Modificação
M
F D
Fabricação
F
![Page 8: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/8.jpg)
IP Filtering Network Address Translation (NAT) IP Security (IPSec) SOCKS Secure Sockets Layer (SSL) Application Proxies Firewalls Secure Electronic Transactions (SET) …
![Page 9: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/9.jpg)
![Page 10: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/10.jpg)
![Page 11: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/11.jpg)
![Page 12: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/12.jpg)
Serviços oferecidos pelos containers:◦ Escalabilidade◦ Gestã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◦ Alta disponibilidade ◦ Confiabilidade◦ …
![Page 13: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/13.jpg)
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.
![Page 14: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/14.jpg)
Aplicação
Login Context
Login Modules – São “plugáveis” e não interferem nos algorítimos de negócio implementados...
LDAPLoginModule
DataBaseLoginModule
NTLoginModule
Active Directory MySQL NT Server
![Page 15: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/15.jpg)
![Page 16: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/16.jpg)
HTTP Basic Authentication
Form-Based Authentication
![Page 17: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/17.jpg)
HTTPS Client Authentication
Digest Authentication
![Page 18: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/18.jpg)
![Page 19: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/19.jpg)
Passo 1 - Configurando o LoginModule
<!-- Exemplo: File Login Module Arquivo: %JBOSS_HOME%\server\default\conf\login-config.xml--><application-policy name="exemplojaas">
<authentication> <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule" flag="required">
<module-option name="usersProperties">props/exemplo-jaas-users.properties</module-option> <module-option name="rolesProperties">props/exemplo-jaas-roles.properties</module-option>
</login-module> </authentication>
</application-policy>
![Page 20: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/20.jpg)
Passo 2 – Definindo o Tipo de Autenticação
<!— Define Formulário de login (login-config). Arquivo: WEB-INF\web.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>
![Page 21: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/21.jpg)
Passo 3 – Protegendo o Web Container
<!— Define a constraint de seguranca para as actions do sistema. Arquivo: WEB-INF\web.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>
![Page 22: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/22.jpg)
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");}}
}
![Page 23: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/23.jpg)
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).
![Page 24: Rodrigo Cândido da Silva. Comentar os principais conceitos sobre segurança e demonstrar a implementação de segurança da plataforma Java EE.](https://reader035.fdocument.pub/reader035/viewer/2022062700/552fc12c497959413d8d2007/html5/thumbnails/24.jpg)
?