Sistema de Identificação OpenID
description
Transcript of Sistema de Identificação OpenID
Sistema de Identificação OpenID
Vanessa Marques de Assis
Page 2
Muitas senhas para lembrar
Muitos sites onde preciso inserir meus dados
O Problema
Page 3
Anotar minhas senhas?
Usar o mesmo username e senha para todos os sites?
O que fazer?
Page 4
A solução: OpenID
Autenticação Única
O usuário escolhe seu provedor
Poucos locais com seus dados
Page 5
Protocolo
Agentes
Page 6
Protocolo
Processo de autenticação
1. URL ou XRI único
2. Descoberta, redirecionamento e pedido de autenticação
3. Entrada de username e senha
Page 7
Protocolo
Processo de autenticação
1. URL ou XRI único
2. Descoberta, redirecionamento e pedido de autenticação
3. Entrada de username e senha e confirmação de informações.
4. Autenticação realizada com sucesso
Page 8
Protocolo
Autenticação Única
5. URL ou XRI único
6. Pedido de autenticação. Verificação do ID da sessão.
7. Permitir autenticação: dessa vez, sempre ou negar
8. Verificação realizada com sucesso
Page 9
Protocolo
Processo de Descoberta
• Protocolo XRI para a descoberta do documento XRDS
• Protocolo Yadis para a descoberta do documento XRDS
• Análise do documento HTML apontado pela URLEx.: <link rel="openid2.provider" href="http://www.exemplo.org/openid"/>
Page 10
Protocolo
Protocolo Yadis
• Identificador único: ID Yadis
• Pedido HTTP
• Resposta contém uma referência para documento XRDS
Page 11
Segurança
Três Cenários
• Usuário Malicioso
• RP Malicioso
• Provedor Malicioso
Page 12
Segurança
Usuário Malicioso
• Acessar host internoEx.: localhost/admin.php?action=sql&query=DROP TABLE user
• Forçar acesso a host externoEx.: www.exemplo.com/falhadeseguranca.php?attack=true
• Inundação e negação de serviçoEx.: Muitos pedidos de autenticação em pouco tempo
Page 13
Segurança
Como evitar?
• FiltrosNão deixe o usuário inserir a URL que quiser
• Banir excesso de pedidos de autenticação que não passam pelo processo de descoberta
• Banir muitos pedidos de autenticação em pouco tempo
Page 14
Segurança
RP Malicioso
Page 15
Segurança
Como usuário evita?
Page 16
Segurança
Como provedor evita?
Page 17
Segurança
Provedor Malicioso
• Privilégios únicos
• Pode passar-se por usuário
• Possui informações sobre o usuário
Page 18
Segurança
Como evitar?
• Provedor de confiança
• Utilização de domínio próprioEx.: O domínio http://vanessa.exemplo.net possui em seu HTML o trecho:<link rel="openid2.provider" href="http://www.exemplo.org/openid"/><link rel="openid2.local_id" href="http://vanessa.exemplo.org"/>
Page 19
Conclusão
Solução barata e simples de implementar
Principais falhas de segurança
Popularização é um ponto positivo
Não é ideal para alguns tipos de tarefa
Page 20
Perguntas
1. Quais são os principais problemas que o protocolo OpenID visa solucionar?
Page 21
Perguntas
1. Quais são os principais problemas que o protocolo OpenID visa solucionar?Com o aumento do número de serviços online, um mesmo usuário acaba tendo diversas contas, precisando decorar muitas senhas diferentes. E como há a necessidade da criação de uma conta para a utilização de cada serviço, acabamos inserindo informações pessoais em websites que por vezes não confiamos ou conhecemos a fim de conseguir uma autenticação para acessá-lo, o que permite que diversos locais tenham acesso a essas informações.
Page 22
Perguntas
2. Por que a prática de utilizar um mesmo username e senha para diversos sites não é segura?
Page 23
Perguntas
2. Por que a prática de utilizar um mesmo username e senha para diversos sites não é segura?Essa é uma prática pouquíssimo segura pois basta que um dos websites em que o usuário se inscreveu seja malicioso ou tenha sua segurança violada para que obtenham a autenticação do usuário e, através dela, tenham acesso a outros websites onde o usuário é cadastrado. Sendo assim, a segurança de todos os websites utilizados pelo usuário estará sujeita àquele com menor segurança.
Page 24
Perguntas
3. Quais são os principais agente envolvidos no protocolo OpenID?
Page 25
Perguntas
3. Quais são os principais agente envolvidos no protocolo OpenID?
Usuário: Pode ser representado pelo navegador utilizado pelo usuário final para acessar um website (relying party) e autenticar-se utilizando uma identidade OpenID obtida de um provedor OpenID de sua escolha
Provedor OpenID (OP): Um servidor de autenticação que fornece uma ou mais identidades para o usuário final e valida as credenciais do usuário para autenticação. O usuário tem liberdade para escolher um provedor OpenID no qual confie
Relying Party (RP): O website onde o usuário deseja conectar-se, utilizando um identificador OpenID. Esse identificador será validado pelo provedor OpenID do usuário.
Page 26
Perguntas
4. O que é phishing e qual agente do protocolo OpenID pode realizar esse tipo de ataque?
Page 27
Perguntas
4. O que é phishing e qual agente do protocolo OpenID pode realizar esse tipo de ataque?Phishing é uma forma de fraude virtual, onde o atacante faz uma cópia de um website a fim de fazer com que o usuário acredite que se encontra no website verdadeiro para então obter a identidade do usuário e os dados pessoais que ele fornece ao local que ele acredita que seja de sua confiança. No protocolo OpenID, o agente que pode realizar esse tipo de ataque é o RP, falsificando o site do provedor OpenID utilizado pelo usuário com o objetivo de obter seu username e senha.
Page 28
Perguntas
5. Que medidas o usuário e o provedor podem tomar para se prevenir de fraudes como phishing?
Page 29
Perguntas
5. Que medidas o usuário e o provedor podem tomar para se prevenir de fraudes como phishing?Para o usuário, uma das maneiras mais rápidas e eficazes de se identificar o phishing é através da análise da URL. Ou seja, é fortemente recomendado que o usuário verifique com atenção a URL do provedor OpenID e confirme que ela de fato está de acordo com a URL original antes de inserir os dados para sua autenticação. Se a URL parecer suspeita, é possível que o RP esteja tentando executar um ataque de phishing. O usuário pode também utilizar complementos em seu navegador que realizem esse tipo de verificação.Já o provedor deve criar uma página de autenticação que seja fácil para que os usuários reconheçam mas que ao mesmo tempo seja difícil para que terceiros falsifiquem. Um exemplo apresentado é o selo de autenticação utilizado pelo Yahoo!.
Page 30
Fim
Obrigada.