Your SlideShare is downloading. ×
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Sistemas Distribuídos - Aspectos de Segurança em Sistemas Distribuídos e JAAS

3,268

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,268
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
175
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Aspectos de SegurançaProf. Adriano Teixeira de Souza
  • 2.  A maioria é causada pelo ser humano e intencional Inicialmente os hackers eram adolescentes ou estudantes que participavam de um jogo Atualmente as falhas de segurança podem representar grandes prejuízos para as empresas Os hackers tornaram-se prossionais Proteger os dados corporativos torna-se questão de sobrevivência para as empresas Prof. Adriano Teixeira de Souza
  • 3.  Transmissão/Armazenamento seguro de informação ◦ Uso de Criptografia Recentes ◦ Impedimento de acesso (denial of service attack)  Ataque massivo sobre servidores ◦ Segurança em Código Móvel  Como confiar em código vindo do exterior? Afetar consistência, desempenho, disponibilidade, etc. Prof. Adriano Teixeira de Souza
  • 4.  Os princípios básicos de segurança em sistemas de comunicação compreendem: ◦ Confidencialidade - tem por objetivo proteger a informação intercambiada prevenindo-a de acessos não autorizados; ◦ Integridade - deve garantir a veracidade da informação protegendo-a de modicações não autorizadas; ◦ Autenticidade - visa garantir a identidade dos parceiros do intercâmbio através da autenticação dos usuários; ◦ Disponibilidade - objetiva prevenir interrupções na operação da rede garantindo a disponibilidade do uso da informação. Prof. Adriano Teixeira de Souza
  • 5.  Os usuários estão interconectados com as suas aplicações distribuídas através de redes abertas não-conáveis que podem ser compartilhadas por outros usuários, os quais não estão autorizados a acessar determinados sistemas. Assim sendo é necessário identicar e autenticar o usuário que solicitar conexão ao sistema bem como vericar se ele possui autorização para acessar os recursos solicitados. A identicação é o processo inicial para vericar se esse usuário está cadastrado ao sistema; normalmente essa identificação é realizada através de um user-id. Prof. Adriano Teixeira de Souza
  • 6.  A autenticação é a etapa seguinte na qual o usuário deverá provar sua identidade. Antigamente este processo era sinônimo de password, porém atualmente podemos classificar os métodos de autenticação do usuário em três categorias: ◦ Algo que o usuário conheça - o sistema indaga por uma informação que o usuário tenha conhecimento, sendo o caso típico da password; ◦ Algo que o usuário possua - o sistema solicita a apresentação de algo físico que o usuário tenha, podendo ser desde um simples cartão magnético até sofisticados dispositivos eletrônicos; ◦ Algo que o usuário seja - esta categoria está relacionada como os sistemas biométricos que são métodos automatizados para vericar a identidade de uma pessoa, baseando-se em alguma característica fisiológica ou comportamental. Prof. Adriano Teixeira de Souza
  • 7.  Vulnerabilidade ◦ São erros no projeto ou configuração dos Sistemas Computacionais que podem ser exploradas para se produzir falhas intencionais ou não. Ataque ◦ São investidas contra os Sistemas Computacionais para explorar as suas vulnerabilidades e causar falhas intencionais. ◦ Podem assumir varias formas: destruição, modificação, roubo, revelação da informação ou interrupção de serviços. Prof. Adriano Teixeira de Souza
  • 8.  Ataque ◦ Personificação: uma entidade faz-se passar por outra. ◦ Replay: uma mensagem, ou parte dela, é capturada, armazenada e posteriormente retransmitida. ◦ Modificação: o conteúdo de uma mensagem é alterado. ◦ Recusa ou Impedimento de Serviço: interrupção de algum serviço (geração de mensagens em grande quantidade). ◦ Ataques Internos: um usuário executa uma operação não autorizada para o mesmo. ◦ Armadilhas (trapdoor): uma entidade legitima é substituída por outra alterada. Prof. Adriano Teixeira de Souza
  • 9.  Ataque (continuação) ◦ Cavalos de Tróia: entidade falsa produz o mesmo serviço que a legitima com o intuito de se camuar e executa uma operação adicional não autorizada. ◦ Spoofing: interceptação da comunicação entre dois hosts por um host não autorizado. Prof. Adriano Teixeira de Souza
  • 10.  Ataque (continuação) ◦ Snifing: usa o principio da propagação da mensagem através do meio físico para “ouvir" todos as mensagens que nele trafegar. Normalmente este tipo de ataque é usado na preparação de outros ataques. Prof. Adriano Teixeira de Souza
  • 11.  Regras e práticas para proteger informações e recursos. ◦ Nível de sensibilidade da informação (o quê?, quem?). ◦ Identidade do usuário. Política dos 4P ◦ Paranóica: tudo é negado. ◦ Prudente: tudo é proibido exceto o que for explicitamente permitido. ◦ Permissiva: tudo é permitido exceto o que for explicitamente proibido. ◦ Promiscua: tudo é permitido. Prof. Adriano Teixeira de Souza
  • 12.  Autenticidade: garantir-se que um usuário é realmente quem se diz ser e as ações a ele atribuídas tenham sido realmente de sua autoria. Confidencialidade: usuários autorizados tenham acesso as informações devidas e ninguém mais. Integridade: garante que um documento autentico não foi alterando acidentalmente ou intencionalmente ou que esteja sendo reutilizado sem que seja percebido. Disponibilidade: continuidade dos seus serviços acessíveis aos usuários autorizados. Prof. Adriano Teixeira de Souza
  • 13.  Autenticação Prof. Adriano Teixeira de Souza
  • 14.  Controle de Acesso ◦ Access Control List: lista com a identicação do usuário ou processo e suas permissões para cada objeto. ◦ Capabilities: lista para cada usuário ou processo com a identicação do objeto e suas permissões. ◦ Access Control Matriz: é uma matriz onde as linhas são compostas pelos usuários, as colunas por objetos e os elementos são listas de permissões (Capability X ACL). Prof. Adriano Teixeira de Souza
  • 15.  Criptografia: transformar um texto em claro em um texto criptografado através de um método de criptografia. O método de criptografia é confiável e seguro quando ele é dedomínio público ◦ Criptograa Simétrica: a chave utilizada para criptografar um texto é a mesma para descriptografa-lo.  DES (Data Encryption Standard) ◦ Criptografia Assimétrica: a chave para criptografar uma mensagem é diferente da chave para descriptografa-la.  RSA (Rivest, Shamir e Adleman) Outros métodos e padrões (Assinatura digital, Messages Digests - MD5, etc.) Prof. Adriano Teixeira de Souza
  • 16.  Ao desenvolver um aplicativo “seguro”, devemos considerar: ◦ Criação/Configuração de um repositório de usuários; ◦ Tela para capturar login/senha usuário; ◦ Funcionalidade que efetua a validação do login/senha no repositório; ◦ Funcionalidade que verifica se usuário tem permissão de acesso ao recurso solicitado; ◦ Em caso de falta de permissão ou login/senha inválido, exibe uma mensagem/exception ao usuário. Prof. Adriano Teixeira de Souza
  • 17.  Podemos utilizar os seguintes níveis de segurança: ◦ Sem segurança: sistema totalmente aberto, não requer um usuário válido; ◦ Nível básico: o usuário precisa informar login e senha, porém o sistema não tem criptografia; ◦ Nível intermediário: as informações login e senha são criptografadas, porém o restante não; ◦ Nível avançado: tudo é criptografado com chaves; ◦ Nível máximo: tudo é criptografado e o usuário “prova” sua identidade através de um certificado digital; Prof. Adriano Teixeira de Souza
  • 18.  JEE suportada todos os níveis e permite o desenvolvimento de aplicativos seguros através de: ◦ Segurança programada: o código é totalmente responsável por toda a segurança; ◦ Segurança declarada: delegamos o controle de segurança para o container; ◦ Segurança mista: declaramos o básico, programamos o avançado; Prof. Adriano Teixeira de Souza
  • 19.  Java Authentication and Authorization Service. Consiste no mecanismo de Autenticação e Autorização de Usuários, baseado em uma identidade e role(s) (perfil de acesso) associado(s). Utilizando JAAS podemos restringir 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. O mecanismo possibilita uma abordagem declarativa ou programática, dando a possibilidade de um desacoplamento entre segurança e regras de negócio. Prof. Adriano Teixeira de Souza
  • 20.  Totalmente compatível com o padrão JEE, ou seja, sua aplicação será portável em qualquer servidor Java EE. É baseado em módulos de autenticação, que implementam uma API padrão e disponibilizam soluções compatíveis com diferentes repositórios. Exemplo: Banco de Dados, Servidores LDAP, Arquivos XML, Domains Servers (Ex. NT), etc. Prof. Adriano Teixeira de Souza
  • 21.  Visualizando possibilidades … Prof. Adriano Teixeira de Souza
  • 22.  Passo 1 - Configurando o Módulo de Autenticação <!-- Exemplo: File Login Module Arquivo: %JBOSS_HOME%serverdefaultconflogin-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> Prof. Adriano Teixeira de Souza
  • 23.  Passo 2 – Protegendo Web Container <!— 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> Prof. Adriano Teixeira de Souza
  • 24.  Passo 2 – Protegendo Web Container <!— 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> <role-name>operador</role-name> </auth-constraint> </security-constraint> Prof. Adriano Teixeira de Souza
  • 25.  Passo 2 – Protegendo Web Container <!— Define os Roles do sistema. Arquivo: WEB-INFweb.xml --> <security-role> <description>Perfil Supervisor</description> <role-name>supervisor</role-name> </security-role> <security-role> <description>Perfil Gerente</description> <role-name>gerente</role-name> </security-role> <security-role> <description>Perfil Operador</description> <role-name>operador</role-name> </security-role> Prof. Adriano Teixeira de Souza
  • 26.  Passo 2 – Protegendo Web Container <!— Arquivo de Configuração do JBoss. Arquivo: WEB-INFjboss-web.xml --> <jboss-web> <security-domain>java:/jaas/exemplojaas</security-domain> <context-root>/ExemploJAASWeb</context-root> <use-session-cookies>true</use-session-cookies> </jboss-web> Prof. Adriano Teixeira de Souza
  • 27.  Passo 3 – Protegendo EJB Container <!— EJB 3.0 - Via annotation (Java5 ou superior) Definição da classe --> @Stateless @DeclareRoles({"supervisor","gerente","operador"}) public class FuncionarioServiceImpl implements FuncionarioService { @Resource private SessionContext context; ... } Prof. Adriano Teixeira de Souza
  • 28.  Passo 3 – Protegendo EJB Container <!— @PermitAll Todos os usuários válidos para o EJB tem acesso ao método. Exemplo: "supervisor","gerente” e "operador" --> @PermitAll public List<Funcionario> listAll() { ... } Prof. Adriano Teixeira de Souza
  • 29.  Passo 3 – Protegendo EJB Container <!— @RolesAllowed Somente usuários definidos na assinatura do método. --> @RolesAllowed({"supervisor","gerente"}) public void save(Funcionario funcionario) throws LimiteSalarioException { ... } @RolesAllowed("supervisor") public void delete(Integer idFuncionario) { ... } Prof. Adriano Teixeira de Souza
  • 30.  Passo 3 – Protegendo EJB Container <!— Segurança Programática. Exemplo: Somente o supervisor pode definir um salário acima de R$ 10.000,00 --> @RolesAllowed({"supervisor","gerente"}) public void save(Funcionario funcionario) throws LimiteSalarioException { if ((!context.isCallerInRole("supervisor") && (funcionario.getSalario() > 10000.0d))){ throw new LimiteSalarioException("limite.salario.exception"); } } Prof. Adriano Teixeira de Souza

×