O OpenID é fácil de hackear ou estou faltando alguma coisa?

18

Para as partes confiáveis ​​(RP) que permitem ao usuário especificar o OpenID Provider (OP), parece-me que qualquer pessoa que conheça ou adivinhe que seu OpenID poderia

  1. Digite seu próprio endereço OP.
  2. Valide-os como proprietários do seu OpenID.
  3. Acesse sua conta no RP.

O RP "poderia" tomar medidas para evitar isso, permitindo apenas que o OpenID fosse validado pelo OP original, mas ...

  1. Como você sabe que eles fazem?
  2. Você nunca pode alterar seu OP sem alterar também seu OpenID.
David
fonte

Respostas:

7

O OpenID é um daqueles sistemas em que você precisa confiar nos pontos finais. Se o PR não é confiável, esse tipo de intoxicação por associação é totalmente possível. Se o RP é realmente confiável, esse tipo de ataque é MUITO mais difícil. A 'solução alternativa' para não ser vulnerável a esse ataque é a chave do princípio de segurança local (no ServerFault, essa seria a representação do seu nome de usuário no banco de dados back-end) com o terminal externo do OpenID (a URL do OpenID, o ServerFault permite associar múltiplos destes).

Você ainda pode atacar por meio de um ataque de envenenamento de DNS por parte do RP, de modo que, digamos * .livejournal.com seja redirecionado para um OP que você criou especialmente para o ataque. Mas isso é um ataque de envenenamento de DNS, não uma falha no próprio OpenID. O OpenID é apenas vulnerável ao envenenamento de DNS.

sysadmin1138
fonte
Nesse caso, um RP confiável pode se tornar não confiável, porque eles assumem que o OpenID é seguro por si só.
David
Depois de ler isso, me vi no openid.net, e a primeira coisa que vi foi a manchete "The Foundation of Internet Identity" no pano de fundo de uma fotografia de três mãos tocando Jenga - cada uma escolhendo uma peça de uma maneira muito instável. olhando a torre.
Andreas
2

Acho que você está confundindo o OpenID e as outras partes da Segurança do Usuário. Seu OP é o mecanismo de autenticação, não sua conta. Aqui no ServerFault, você tem uma conta. Essa conta não possui meios de autenticação por si só; exceto que você aponta para um ou mais OPs.

Quando você tenta fazer login na sua conta aqui como SF, ele solicita ao seu OP para lidar com a autenticação. Somente um OP (ou vários OPs, independentemente da configuração) pode Autenticar você para os fins da sua conta SF.

Há três partes em um sistema de logon típico (chamado triplo "A" ou apenas "AAA"):

  • Contabilidade - Mantém o controle de seu nome e informações específicas do site (como postagens, mensagens etc.)
  • Autenticação - acompanha como garantir que você é realmente você (geralmente uma senha)
  • Autorização - monitora suas permissões (acesso de leitura ou gravação a várias coisas)

Você pode ler mais sobre os sistemas AAA na Wikipedia.

Chris S
fonte
Se eu tiver permissão para especificar qualquer OP cada vez que efetuar login, o usuário mal-intencionado também poderá especificar qualquer OP ao tentar invadir minha conta. Assim, eles especificam seu próprio OP e obtêm acesso.
David
Não, você apenas permitiria que, uma vez logado, adicionassem pontos OpenID adicionais à conta deles. SO faz assim.
precisa
2
@ David, quando você entra você não está especificando uma conta e um OpenID você única especificar o OpenID . Esse OpenID já deve estar conectado a uma conta, caso contrário, você terá a opção de criar uma nova conta (pelo menos aqui no SF).
Chris S
1

David, sua suposição é falsa. O OpenID funciona assim: 1) Você deseja fazer login no site relyingparty.com 2) Você fornece ao relyingparty.com seu OpenID, por exemplo, david.com 3) relyingparty.com verifica o david.com (ei, é um URL) por um período chamado ponto de extremidade OpenID, que pode ser encontrado em david.com, mas também por meio de delegação em outro lugar, por exemplo, yahoo.com ou google.com. vamos chamá-lo de davidsopenidprovider.com 4) Agora você é redirecionado para davidsopenidprovider.com. O trabalho de davidsopenidprovider.com é autenticar você. Você deve fazer login no davidsopenidprovider.com. É davidsopenidprovider.com como esse login funciona. Pode ser nome de usuário / senha, pode ser cartões de informação, certificados de navegador, impressões digitais, cartões inteligentes, mecanismos fora da banda, como verificação de chamadas, ... Depende do fornecedor davidsopenid. com como ele lida com autenticação. Em seguida, pergunta se você realmente deseja fazer login no relyingparty.com. 5) Se você efetuou login com êxito no davidsopenidprovider.com, será redirecionado para o relyingparty.com e automaticamente acessado. 6) davidsopenidprovider.com apenas garante à relyingparty.com que você é quem afirma ser. Não envia nenhuma senha.

Portanto, sua suposição "Como consumidor, quando crio uma conta em any-site.com, não tenho noção da inteligência dos desenvolvedores / gerentes de site". é falso em relação ao OpenID. Se houver um ponto fraco, é o provedor, mas não o site-site.com. Esse é o problema com os logins de nome de usuário / senha tradicionais agora. Você precisa confiar em cada site que oferece logins dessa maneira e não apenas em um, seu provedor OpenID.

Espero que isso ajude a entender o OpenID.


fonte
0

Como você sabe que eles fazem?

Da mesma forma que você sabe que qualquer site antigo está passando sua senha para outra pessoa - você não. É por isso que você usa o que provavelmente será uma empresa respeitável.

Você nunca pode alterar seu OP sem alterar também seu OpenID.

Certamente você pode. Olhe para a delegação OpenID.

Meu OpenID é http://ceejayoz.com/ , mas meu OP é WordPress.com. Duas METAtags no cabeçalho de http://ceejayoz.com/ permitem fazer isso, e eu posso alterá-lo a qualquer momento.

ceejayoz
fonte
0

Seu openID é seu provedor. pwnguin.neté o meu openID. Isso não está sujeito a suposições, é simplesmente um fato conhecido. O que protege meu openID é o software em execução no pwnguin.net, que só responde afirmativamente se o visitante em questão tiver um cookie de autenticação.

Não direi que o openID é seguro; existem todos os tipos de scripts entre sites que podem continuar, ou alguns detalhes mundanos que tendem a ignorar ou errar.

jldugger
fonte
0

Isso é o que eu recebi das respostas aqui ...

O OpenID é tão seguro quanto as partes envolvidas e isso vale para qualquer método de autenticação. Percebi isso antes de iniciar essa discussão.

O problema com o OpenID, como me parece, é duplo ...

  1. Seu LoginID não é mais um segredo compartilhado apenas entre você e o site em que o utiliza. É o seu OpenID e é conhecido por todos os sites em que você o usa, e é algo fácil de adivinhar, como um endereço de email ou algo derivado do seu endereço de email ou algo semelhante.

  2. Os RPs podem implementar o OpenIP em seu site sem fazer a devida diligência, assumindo que, por estarem usando um 'protocolo' amplamente aceito, ele é seguro. É verdade que a maioria dos desenvolvedores de sites comuns não tem um conceito verdadeiro de como proteger um site, mas, se eles implementam sua própria segurança, pelo menos o problema nº 1 não entra em jogo.

Como consumidor, quando crio uma conta em any-site.com, não tenho noção da inteligência dos desenvolvedores / gerentes de site. Uso um ID que acho que não será fácil de adivinhar. Não quero que serverfault.com saiba o ID que eu uso para fazer login no Etrade.com. Também uso uma senha diferente em todos os sites e gerencio essas senhas com meu próprio esquema. É altamente improvável que minha conta seja composta, a menos que os operadores do site sejam idiotas totais.

Com o OpenID, todos na WEB sabem como funciona e como atacá-lo, caso o RP não tenha medidas adequadas.

Adoro software de código aberto, mas, no caso do OpenID, acho que abre a possibilidade de haver implementações inferiores disponíveis para adotantes desavisados.

Eu acho que tudo isso poderia ser resolvido por algum selo de aprovação assinado que garanta ao consumidor que o site passou por uma auditoria e não é passível de hackers.

Talvez eu seja apenas paranóico.


fonte
Eu sei que isso é antigo, mas, sabendo que o "id" openid é inútil ... o Google, por exemplo, usa exatamente o mesmo URL para exery usuário único. Como o conhecimento disso ajuda você a acessar o stackoverflow como eu (além de saber que, se você pode invadir minha conta do google, pode ser autenticado como eu, mas isso não é diferente de "esqueci o nome de usuário / senha").
jmoreno