OpenID
OpenID é um padrão aberto patrocinado pelo Facebook, Microsoft, Google, PayPal, Ping Identity, Symantec, e Yahoo. OpenID permite ao utilizador ser autenticado usando um serviço de terceiros chamado fornecedores de identidade. Os utilizadores podem optar por utilizar os seus fornecedores de OpenID preferidos para entrar em websites que aceitem o esquema de autenticação OpenID.
A especificação OpenID define três funções:
- O utilizador final ou a entidade que procura verificar a sua identidade
- A parte confiante (RP), que é a entidade que procura verificar a identidade do utilizador final
- O fornecedor de OpenID (OP), que é a entidade que regista a URL de OpenID e pode verificar a identidade do utilizador final
O diagrama seguinte explica um caso de utilização para um cenário OpenID:
p>
Considerações de segurança
OpenID teve algumas vulnerabilidades interessantes no passado, por exemplo:
- Phishing Attacks: Uma vez que a parte confiante controla o processo de autenticação (se necessário) ao fornecedor de OpenID, é possível que uma parte confiante desonesta encaminhe o utilizador para um fornecedor falso de OpenID e recolha as credenciais do utilizador para o fornecedor legal de OpenID.
- Falhas de Autenticação: Em Março de 2012, três investigadores apresentaram um trabalho que destacou duas vulnerabilidades em OpenID. Ambas as vulnerabilidades permitem que um atacante se faça passar por qualquer utilizador de um website se o website não verificar devidamente se a resposta do fornecedor de OpenID contém um endereço de correio electrónico devidamente assinado.
SAML
Security Assertion Markup Language (SAML) é um produto do Comité Técnico dos Serviços de Segurança da OASIS. Datado de 2001, SAML é um padrão aberto baseado em XML para o intercâmbio de dados de autenticação e autorização entre as partes.
A especificação SAML define três papéis:
- O principal, que é tipicamente o utilizador que procura verificar a sua identidade
- O fornecedor de identidade (idP), que é a entidade capaz de verificar a identidade do utilizador final
- O fornecedor de serviços (SP), que é a entidade que procura utilizar o fornecedor de identidade para verificar a identidade do utilizador final
O diagrama seguinte explica um caso de utilização para um cenário SAML:
Considerações de segurança
- li>Um grupo de investigadores apresentou um trabalho em 2011 onde utilizou uma vulnerabilidade de embrulho de assinatura XML para se fazer passar por qualquer utilizador.
- O utilizador final ou a entidade que possui o recurso em questão
- O servidor de recursos (OAuth Provider), que é a entidade que hospeda o recurso
- O cliente (OAuth Consumer), que é a entidade que procura consumir o recurso após obter autorização do cliente
- Uma falha de vulnerabilidade de fixação de sessão foi encontrada no OAuth 1.0. Um agressor pode corrigir um sinal para a vítima que é autorizado. O atacante utiliza então o token fixado.
- OAuth 2.0 foi descrito como um protocolo inerentemente inseguro, uma vez que não suporta assinatura, encriptação, ligação de canal, ou verificação de cliente. O protocolo baseia-se inteiramente na segurança da camada de transporte subjacente (por exemplo, SSL/TLS) para proporcionar confidencialidade e integridade.
OAuth
OAuth é outro padrão aberto. Datando de 2006, OAuth é diferente de OpenID e SAML por ser exclusivamente para fins de autorização e não para fins de autenticação.
As especificações do OAuth definem os seguintes papéis:
O diagrama seguinte explica um caso de utilizador para um cenário OAuth:
Considerações de segurança
Esta tabela explica as principais diferenças entre os três protocolos:
OpenID |
OAuth |
SAML |
|
Datas De | |||
Versão actual |
OpenID 2.0 |
OAuth 2.0 |
SAML 2.0 |
Main Purpose |
Sinal Único…On for Consumers |
AutorizaçãoAPI Entre Aplicações |
Sinal Único…On for Enterprise Users |
Protocolos Utilizados |
XRDS, HTTP |
JSON, HTTP |
SAM, XML, HTTP, SOAP |
No. de CVEs relacionados |
Outros Protocolos
Existe um número crescente de outras opções de identidade federada. Aqui estão alguns exemplos.
Higgins: Higgins é um novo protocolo de código aberto que permite aos utilizadores controlar que informação de identidade é divulgada a uma empresa.
Windows CardSpace: CardSpace é o novo sistema de metas de identidade da Microsoft que fornece interoperabilidade entre os fornecedores de identidade e as partes que confiam no controlo do utilizador. Este protocolo está reformado e a Microsoft está a trabalhar num substituto chamado U-Prove.
MicroID: MicroID é uma nova camada de identidade para a web e microformatos que permite a qualquer pessoa reclamar simplesmente a propriedade verificável sobre as suas próprias páginas e conteúdos alojados em qualquer lugar.
Liberty Alliance: Liberty Alliance é um grande protocolo de orientação comercial que proporciona confiança de identidade inter-empresarial. É o maior protocolo de confiança de identidade existente em todo o mundo.