O OpenID é tão fácil de hackear ou estou perdendo alguma coisa?

17

Para aquelas Partes Confiantes (RP) que permitem ao usuário especificar o OpenID Provider (OP), parece-me que qualquer um que saiba ou adivinhe que seu OpenID poderia

  1. Insira 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 que o OpenID seja validado pelo OP original, mas ...

  1. Como você sabe que eles fazem?
  2. Você nunca poderia alterar seu OP sem alterar seu OpenID.
por David 25.03.2010 / 15:27

6 respostas

6

O OpenID é um desses sistemas em que você precisa confiar nos pontos de extremidade. Se o RP não for confiável, então esse tipo de intoxicação por associação é inteiramente possível. Se o RP é realmente confiável, então esse tipo de ataque é MUITO mais difícil. O 'trabalho em volta' por não ser vulnerável a este ataque é a chave do princípio de segurança local (no ServerFault esta seria a representação do seu nome de usuário no banco de dados back-end) com o endpoint externo OpenID (a URL OpenID, 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 enfraçamento do DNS.

    
por 25.03.2010 / 16:43
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 tem 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 pede ao seu OP para lidar com a Autenticação. Apenas aquele OP (ou os múltiplos OPs, mas você tem configurado) pode autenticá-lo para os propósitos de sua conta SF.

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

  • Contabilidade - Acompanha seu nome e informações específicas do site (como postagens, mensagens etc.)
  • Autenticação - monitora como ter certeza de que é realmente você (geralmente uma senha)
  • Autorização - Keeeps controla suas permissões (leia ou escreva acesso a várias coisas)

Você pode ler mais sobre sistemas AAA na Wikipedia.

    
por 25.03.2010 / 16:57
1

David, sua suposição é falsa. OpenID funciona assim: 1) Você quer se logar no site relyingparty.com 2) Você dá a relyingparty.com seu OpenID, por exemplo david.com 3) relyingparty.com verifica david.com (ei, é uma URL) para um ponto de extremidade chamado OpenID que pode ser encontrado em david.com, mas através de delegação também em outro lugar, por exemplo yahoo.com ou google.com. vamos chamá-lo davidsopenidprovider.com 4) Você está redirecionado para davidsopenidprovider.com agora. O trabalho da davidsopenidprovider.com é autenticar você. Você precisa fazer o login no davidsopenidprovider.com. Cabe ao davidsopenidprovider.com como esse login funciona. Pode ser nome de usuário / senha, pode ser cartões de informações, certificados de navegador, impressões digitais, cartões inteligentes, mecanismos fora de banda, como verificação de chamadas, ... Cabe a davidsopenidprovider.com como ele lida com a autenticação. Em seguida, ele pergunta se você realmente deseja fazer login no relyingparty.com. 5) Se você logou com sucesso no davidsopenidprovider.com, você será redirecionado de volta ao relyingparty.com e automaticamente logado lá. 6) davidsopenidprovider.com só garante relyingparty.com que você é quem você diz ser. Não envia nenhuma senha.

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

Espero que isso ajude a entender o OpenID.

    
por 01.04.2010 / 08:02
0

How do you know they do?

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

You could never change your OP without also changing your OpenID.

Claro que você pode. Olhe para a delegação do OpenID.

Meu OpenID é o link , mas meu OP é o WordPress.com. Duas tags META na cabeça do link me permitem fazer isso, e posso alterá-lo sempre que quiser.

    
por 25.03.2010 / 18:39
0

Seu openID é o seu provedor. pwnguin.net é meu openID. Isso não está sujeito a adivinhações, é simplesmente um fato conhecido. O que protege o 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 a errar.

    
por 26.03.2010 / 06:36
0

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

O OpenID é tão seguro quanto as partes envolvidas e isso vale para qualquer método de autenticação. Eu percebi isso antes de começar esta discussão.

O problema com o OpenID, como parece para mim, é duplo ...

  1. Seu LoginID não é mais um segredo compartilhado apenas entre você e o site em que você o utiliza. É o seu OpenID e é conhecido por todos os sites em que você o utiliza, e é algo facilmente adivinhado como um endereço de e-mail ou algo derivado do seu endereço de e-mail ou algo similar.

  2. Os RPs podem implementar o OpenIP em seu site sem fazer a devida diligência desde que eles estejam usando um 'protocolo' amplamente aceito que é seguro. Concedido, a maioria dos desenvolvedores de sites da Web não tem um conceito verdadeiro de como proteger um site, mas, se eles implementarem sua própria segurança, pelo menos o número 1 não entra em ação.

Como consumidor, quando eu crio uma conta no site any-site.com, não tenho noção da inteligência dos desenvolvedores / gerentes do site. Eu uso uma ID que não acho que seja facilmente adivinhada. Eu não quero serverfault.com para saber o ID que eu uso para acessar o Etrade.com. Eu também uso uma senha diferente em cada site e gerencio essas senhas com meu próprio esquema. É altamente improvável que minha conta seja compreendida a menos que os operatores 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.

Eu adoro softwares de código aberto, mas no caso do OpenID eu acho que isso abre a possibilidade de que haverá implementações inferiores disponíveis para os adotantes insuspeitos.

Acho que tudo isso pode ser resolvido com algum selo de aprovação assinado que garante ao consumidor que o site passou por uma auditoria e não pode ser revertido para hacks.

Talvez eu seja apenas paranóico.

    
por 26.03.2010 / 15:06