45
JOHNATHAN DOUGLAS DE SOUZA SANTOS LUIZ FELIPE NEITZKE ALVES PEDRO DE SOUZA NANDI ANÁLISE SOBRE A TECNOLOGIA OPENID SOB OS ASPECTOS DE ARQUITETURA, ABORDAGENS E SOLUÇÕES JOINVILLE - SC 2013

JOHNATHAN DOUGLAS DE SOUZA SANTOS LUIZ … · Caso um atacante tenha acesso a uma conta de um determinado ... aberta que provê ao usuário um login único e permite a autenticação

  • Upload
    lamthu

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

JOHNATHAN DOUGLAS DE SOUZA SANTOS

LUIZ FELIPE NEITZKE ALVES

PEDRO DE SOUZA NANDI

ANÁLISE SOBRE A TECNOLOGIA OPENID SOB OS ASPECTOS DE

ARQUITETURA, ABORDAGENS E SOLUÇÕES

JOINVILLE - SC

2013

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC

CENTRO DE CIÊNCIAS TECNOLÓGICAS - CCT

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO - DCC

JOHNATHAN DOUGLAS DE SOUZA SANTOS

LUIZ FELIPE NEITZKE ALVES

PEDRO DE SOUZA NANDI

ANÁLISE SOBRE A TECNOLOGIA OPENID SOB OS ASPECTOS DE

ARQUITETURA, ABORDAGENS E SOLUÇÕES

Trabalho extra classe apresentado a disciplina de Segurança em Redes de Computadores do curso de Ciência da Computação do Centro de Ciências Tecnológicas da Universidade do Estado de Santa Catarina.

Professor: Charles Christian Miers

JOINVILLE - SC

2013

LISTA DE ILUSTRAÇÕES

Figura 1: Modelo básico de um sistema SSO ............................................................................11

Figura 2: Arquitetura inicial utilizando SSO ................................................................................12

Figura 3: Arquitetura mais robusta e complexa utilizando SSO .................................................13

Figura 4: Funcionamento básico da tecnologia OpenID ............................................................15

Figura 5: Diagrama de sequência de um processo de autenticação via OpenID .......................19

Figura 6: Exemplo de utilização do selo de autenticação do Yahoo! .........................................28

Figura 7: Comparação entre os diagramas dos processos de autenticação do Kerberos e do

OpenID ......................................................................................................................................37

LISTA DE TABELAS

Tabela 1: Exemplo de um processo de autenticação via OpenID ..............................................18

Tabela 2: Comparação entre as abordagens usuais de OpenID, considerando segurança e

facilidade de implementação .....................................................................................................22

Tabela 3: Classificação de benefícios e limitações do OpenID vistos os critérios de análise

apresentados no capítulo 4 .......................................................................................................39

LISTA DE ABREVIATURAS

SSO Single Sign-On URL Uniform Resource Locator XRI Extensible Resource Identifier FAP Federated Authentication Provider

SUMÁRIO

1 INTRODUÇÃO .....................................................................................................................6

2 CONCEITOS ........................................................................................................................8

2.1 SISTEMA DE AUTENTICAÇÃO ....................................................................................8

2.2 AUTENTICAÇÃO SINGLE SIGN-ON ..........................................................................10

2.3 CONCEITO E HISTÓRICO DO OPENID .....................................................................13

2.4 CONSIDERAÇÕES PARCIAIS ...................................................................................16

3 OPENID .............................................................................................................................17

3.1 TERMINOLOGIA .........................................................................................................17

3.2 ARQUITETURA E FUNCIONAMENTO .......................................................................18

3.2.1 Processos de Autenticação ...............................................................................18

3.3 PRINCIPAIS ABORDAGENS ......................................................................................20

3.4 PROBLEMAS DE AUTENTICAÇÃO ...........................................................................24

3.5 SEGURANÇA..............................................................................................................25

3.5.1 Usuário Malicioso ...............................................................................................25

3.5.2 RP Malicioso .......................................................................................................27

3.6 PROJETOS RELACIONADOS ....................................................................................29

3.6.1 Shibboleth...........................................................................................................29

3.6.2 Windows Card Space .........................................................................................30

3.7 CONSIDERAÇÕES PARCIAIS ...................................................................................31

4 ANÁLISE ............................................................................................................................32

4.1 CASOS COMENTADOS .............................................................................................32

4.2 ANÁLISE DO OPENID ................................................................................................33

4.2.1 Arquitetura ..........................................................................................................33

4.2.2 Abordagens ........................................................................................................35

4.2.3 Soluções .............................................................................................................37

4.3 CONSIDERAÇÕES PARCIAIS ...................................................................................39

5 CONSIDERAÇÕES FINAIS................................................................................................40

6 REFERÊNCIAS ..................................................................................................................41

6

1 INTRODUÇÃO

No mercado atual, é possível encontrar várias soluções relacionadas a métodos

de autenticação. Autenticar é nada mais que garantir que uma pessoa realmente seja

quem ela diz ser, porém a verificação de identidades tem papel fundamental na

computação e na segurança da informação. A disciplina de Segurança em Redes de

Computadores tem como um de seus objetivos garantir que informações sejam

disponibilizadas apenas para quem as têm direito de acesso, o que inclui: técnicas de

criptografia, prevenção e combate contra ameaças de códigos maliciosos, proteção de

hosts em geral e mensagens oriundas de atacantes e, claro, controle de acesso dos

usuários. Caso um atacante tenha acesso a uma conta de um determinado serviço ou a

informações importantes de algum usuário, isto é considerado uma invasão de

privacidade e, automaticamente, torna-se uma violação dos pilares da segurança da

informação.

Este trabalho tem como objetivo analisar o OpenID, uma tecnologia de

autenticação de usuários em sistemas diversos. O protocolo OpenID é uma solução

aberta que provê ao usuário um login único e permite a autenticação em diferentes

websites e serviços, onde ambos compartilham da mesma OpenID. O funcionamento

do OpenID é baseado em um padrão para autenticar a identidade do usuário a partir de

uma URL (Uniform Resource Locator) ou XRI (Extensible Resource Identifier), que

pode ser verificada por qualquer servidor que suporte o protocolo. Este protocolo,

desenvolvido originalmente em 2005, vem sendo amplamente estudado e aprimorado

por representantes de grandes empresas que atuam na Internet (Google, PayPal,

Facebook, etc.), além de pesquisadores do âmbito acadêmico e diversos colaboradores

de comunidades open source. O objetivo da tecnologia OpenID reflete o crescente

número de aplicações que adentram ao mercado atualmente e que apresentam focos

específicos e necessidades de um serviço de autenticação. Com o crescente

desenvolvimento da Internet, torna-se importante o conhecimento desta tecnologia,

vistas as facilidades que esta pode proporcionar aos seus utilizadores.

Esta análise do OpenID tem como foco principal três aspectos do protocolo: sua

arquitetura, principais abordagens e as soluções em segurança oferecidas pelo mesmo.

7

Para tal fim, faz-se necessário descrever em detalhe o funcionamento do protocolo, e

também decorrer sobre sistemas de autenticação num geral. Assim, este trabalho

encontra-se dividido da seguinte maneira:

1. Levantamento bibliográfico e fundamentação teórica de conceitos

fundamentais em autenticação. Dentre esses conceitos, decorre-se sobre

os fatores de autenticação, a definição de Single Sign-On, e a origem e

histórico do OpenID enquanto sistema de autenticação.

2. Revisão bibliográfica aprofundada sobre o funcionamento do OpenID.

Inclui o processo de autenticação, arquitetura, abordagens, problemas de

autenticação, e questões de segurança.

3. Análise do OpenID, usando os fundamentos apresentados como base

para decorrer sobre os aspectos de arquitetura, abordagens e soluções,

além da apresentação de casos comentados de empresas que tiveram

resultados satisfatórios com a opção pelo OpenID.

Espera-se que este trabalho sirva como introdução à tecnologia do OpenID.

Também espera-se que com a análise realizada, torne-se mais fácil tomar um decisão

sobre a adoção ou não do OpenID, e que possam ser feitos comparativos sobre

tecnologias de autenticação similares usando este trabalho como base.

8

2 CONCEITOS

Este capítulo apresenta conceitos fundamentais para o desenvolvimento deste

trabalho. As seções do capítulo lidam, respectivamente, com os temas de sistemas de

autenticação, do conceito de autenticação Single Sign-On, e de uma breve introdução

ao OpenID e seu histórico. O entendimento destes conceitos é de grande utilidade

antes do aprofundamento sobre o funcionamento do OpenID no capítulo 3, uma vez

que uma introdução sobre a tecnologia permite uma melhor contextualização do tema.

No entanto, essa introdução não seria suficiente para um entendimento adequado do

conteúdo deste trabalho.

O OpenID é uma solução baseada no conceito de Single Sign-On, logo coloca-

se uma definição deste conceito e explica-se qual a finalidade de uma solução que se

encaixa neste conceito. Similarmente, apresenta-se o que são e para que serve os

sistemas de autenticação, visto que o OpenID é justamente uma tecnologia para

autenticação de usuários em sistemas. Uma vez colocados estes conceitos, o leitor

deve ser capaz de entender as características essenciais de um sistema de

autenticação Single Sign-On, e assim melhor visualizar a aplicação e o funcionamento

do OpenID no decorrer deste trabalho.

2.1 SISTEMA DE AUTENTICAÇÃO

Autenticação é a capacidade de garantir que um usuário é de fato quem ele diz

ser. Em um sistema computacional, a autenticação pode transcorrer em níveis distintos,

seja separada ou em conjunto. Dentre os principais tipos de autenticação estão

(GALVÃO, 2005):

Autenticação do Usuário: Procura distinguir um indivíduo dos outros, seja por

características físicas, algo que ele possua ou saiba;

Autenticação do Parceiro de Comunicação: São utilizados outros mecanismos de

autenticação para assegurar a origem da comunicação;

9

Autenticação da Mensagem: Os dados transmitidos passam por um processo de

verificação para validar sua autenticidade.

A autenticação do usuário recebe um destaque dentre os demais itens e

costuma receber ênfase em relação à segurança nas infraestruturas web, visto a

disponibilidade de realizá-la remotamente (GUIMARÃES, 2006). A categoria de

autenticação do usuário é subdividida em três fatores (GALVÃO, 2005):

―O que o usuário sabe‖ – Prova por conhecimento: É um sistema caracterizado

por algo que somente o usuário conhece como, por exemplo, sua senha;

―O que o usuário possui‖ – Prova por posse: É um sistema que necessita de algo

físico como cartões magnéticos, smart-cards ou tokens;

―O que o usuário é‖ – Prova por biometria: É um sistema que procura autenticar

o usuário através de algo que o torne único como, por exemplo, sua impressão

digital.

Os aspectos levantados por Galvão (2005) permitem a autenticação de um

usuário a partir do conhecimento, posse ou biometria. Cada segmento está atrelado a

circunstância na qual é empregado. Por exemplo: a utilização de biometria ou posses

físicas para autenticação do usuário em sites cotidianos (e-mail, redes sociais, blogs,

etc.) é inviável, pois nem todos os dispositivos de acesso possuem tais recursos de

verificação. Neste contexto, a autenticação mais utilizada é via prova por conhecimento

(autenticação do usuário através de senhas). Apesar dos vários meios de autenticação

disponíveis, é preciso identificar se o aspecto desejado pode ser empregado na

identificação do usuário em relação a sua utilização.

Segundo Guimarães (2006), dentre os aspectos descritos acima, o mais

empregado e conhecido é o da autenticação de usuários via senhas. Visto que os

usuários podem especificar senhas fracas e até mesmo esquecê-las (o que faz com

que muitos as anotem em algum lugar), a autenticação via senhas não é das mais

10

seguras (GUIMARÃES, 2006). Analisando tais fatos, os sistemas de autenticação

apresentam alguns desafios (GALVÃO, 2005):

Coletar dados do usuário para autenticação;

Fazer a transmissão destes dados de forma segura;

Saber se o usuário que está se autenticando realmente é quem diz ser;

Provar que o usuário se autenticou no sistema.

Os desafios citados resultam no pilar da segurança da informação, descrito na

norma ISO/IEC 17799 de 2005. A norma recomenda a manutenção de requisitos como:

confidencialidade, disponibilidade, irretratabilidade e integridade. Os requisitos orientam

a análise, o planejamento e a implementação da segurança para um determinado grupo

de informações que se deseja proteger. O objetivo é reduzir os riscos ou mantê-los

dentro dos limites aceitáveis, economizar dinheiro através de ações preventivas e

definir rotas alternativas quando possíveis incidentes ocorrerem. Embora existam tais

desafios a serem superados, existem várias soluções para autenticação, que vão desde

as mais seguras até as mais utilizadas, e que irão depender de seus níveis de

usabilidade e necessidade para serem empregadas. Pode-se citar como solução de

autenticação, o Identity Metasystem (JONES, 2006), o Smart Card (CHIEN et. al, 2002)

e o Windows Card Space (CHAPPEL, 2006).

2.2 AUTENTICAÇÃO SINGLE SIGN-ON

Segundo Wang et al. (2011), o maior número de aplicações web que aparecem

na Internet implica em mais contas individuais para acesso do usuário a seus serviços.

Porém, é notório que autenticação do usuário via senha possui vulnerabilidades em

relação aos ataques de phishing1 (roubo de informação). Logo, para mitigar este

problema, cada página deveria ter uma conta distinta, tornando-se um desafio para o

1 Phishing: É um tipo de ataque virtual em que vítimas possuem suas informações pessoais ou

credenciais roubadas por páginas ou e-mails fraudulentos (KUMARAGURU et al, 2006). Phishers podem agir configurando sites falsos que pareçam confiáveis para induzir as vítimas a revelarem seus logins e senhas.

11

usuário ter que se lembrar de todas as suas senhas, caracterizando a chamada ―fadiga

de senhas‖ (BELLAMY-MCINTYRE et al., 2011).

Para You e Zhu (2012), mesmo múltiplos sistemas em um mesmo departamento

ou empresa normalmente utilizam serviços de autenticação de identidade distintos, o

que acarreta dificuldades, pois os usuários devem lembrar múltiplas contas e senhas. O

gerenciamento tende a se tornar tedioso, ter sua eficiência reduzida (pois cada login

acarreta um novo processo de autenticação) e ocupar muitos recursos do sistema,

além do risco de vazamento das credenciais de login do usuário. Segundo os autores, a

tecnologia de Single Sign-On2 (SSO) apresenta-se como forma efetiva para resolver

estes problemas, pois os usuários apenas tomam a iniciativa de autenticação por rede

uma única vez e os recursos autorizados serão então disponibilizados sem a

necessidade de mais um processo de autenticação. A figura 1 mostra um exemplo de

um sistema SSO simples.

Figura 1: Modelo básico de um sistema SSO.

Fonte: PEIXOTO, 2012.

A figura 1 mostra o exemplo de um usuário fazendo um único login que autentica

o mesmo e libera acesso a múltiplos aplicativos. Esta é exatamente a função do

método SSO. Assim, pode-se definir, segundo Peixoto (2012), o método de

autenticação Single Sign-On como o aproveitamento do acesso identificado de

2 Single Sign-On: (SSO) Significa literalmente ―único acesso‖. É o conceito de que uma única

autenticação provenha acesso a múltiplos serviços.

12

usuários. Isso vale para qualquer sistema que possua acesso controlado, seja ele

protegido por qualquer um dos fatores de segurança - ―O que o usuário é‖, ―O que o

usuário possui‖ e ―O que o usuário sabe‖.

Peixoto (2012) ressalta que o método SSO é bastante estudado na disciplina de

Gerenciamento de Acesso e Identidades, como sendo uma boa solução para

segurança segundo requisitos funcionais, operacionais e de negócio no que se diz

respeito aos elementos do ciclo de vida de um usuário (autenticação no sistema,

autorização de acesso e auditoria dos acessos). Outra utilidade inerente ao uso do

SSO é a flexibilidade do acesso do usuário quando se trata de um portal de serviços,

por exemplo, onde o usuário migra entre os serviços oferecidos em uma única sessão.

Neste trabalho, é adotada a definição de Peixoto (2012), pois o mesmo

determina claramente que o método SSO é um conceito sobre acesso aproveitado de

um usuário a serviços integrados e não uma tecnologia própria. Tal entendimento é

necessário, já que o OpenID possui fundamentação conceitual em SSO.

O método SSO é uma tecnologia que vem sendo recomendada e adotada por

vários especialistas em TI, porém, apesar do número de protocolos existentes, não é

uma solução perfeita. Segundo Zhao et al. (2004), uma abordagem ingênua na

implantação de um sistema SSO pode acarretar riscos significativos a segurança, como

ilustrados nas figuras 2 e 3.

Figura 2: Arquitetura inicial utilizando SSO.

Adaptado de: ZHAO et al., 2004.

13

Figura 3: Arquitetura mais robusta e complexa utilizando SSO.

Adaptado de: ZHAO et al., 2004.

A figura 2 apresenta um sistema simples que utiliza SSO. Enquanto isso, a figura

3 mostra uma arquitetura que resolve alguns dos problemas do modelo anterior (figura

2), porém é mais complexo que o anterior, o que evidencia a necessidade de certa

análise e projeto de uma arquitetura condizente com as necessidades do contexto.

Além da arquitetura, também é importante observar outros aspectos da implementação

como, por exemplo, a tecnologia empregada.

2.3 CONCEITO E HISTÓRICO DO OPENID

Segundo Recordon e Reed (2006), o OpenID 1.0 foi originalmente concebido por

Brad Fitzpatrick, arquiteto chefe da empresa Six Apart e atualmente, encontra-se em

sua versão 2.0 estável. O OpenID é uma tecnologia distribuída baseada no método de

autenticação Single Sign-On para a Internet que possibilita a autenticação

descentralizada de seus usuários (Jeng, 2012). A tecnologia OpenID é empregada por

uma grande quantidade de páginas e serviços na Internet atualmente, principalmente

por aqueles que possuem conteúdos exclusivos para usuários cadastrados.

Conforme Assis (2010), a popularização da Internet a partir da segunda metade

da década de 1990 fez com que um grande número de serviços comerciais migrasse

14

para a web. Grande parte dos serviços que começaram a ser oferecidos através da

Internet começou a requisitar algum nível de autenticação para seus usuários, e a

maneira encontrada para viabilizar tal autenticação foi através do uso de logins e

senhas.

Esta abordagem, além de autenticar a identidade do usuário, possibilita uma

estrutura de níveis de acesso, podendo ser aplicada com diversas finalidades como

acesso a conteúdos e serviços exclusivos, por exemplo. Porém, devido à rápida

evolução da Internet comercial, houve uma extrapolação na quantidade de páginas e

serviços requisitando autenticação de usuários via logins e senhas. Este fenômeno,

segundo Recordon e Reed (2006), foi o principal motivador para o desenvolvimento da

tecnologia OpenID.

A tecnologia OpenID surgiu como uma ferramenta de integração para os

serviços de autenticação disponíveis. De acordo com OpenID Foundation (2007), a

autenticação via OpenID provê uma maneira de provar que um usuário final possui uma

identidade através de uma URL (Uniform Resource Locator), ou seja, a partir do

momento que o usuário realiza o seu cadastro em uma página que utiliza a tecnologia

OpenID (esta página é chamada de fornecedora), ao acessar outras páginas e serviços

na Internet que utilizem também OpenID e requeiram autenticação, posteriormente, ele

poderá autenticar-se informando apenas o endereço (URL) da página fornecedora,

onde realizou seu primeiro cadastro. A figura 4 exemplifica o funcionamento básico do

OpenID em um processo de autenticação via senhas.

15

Figura 4: Funcionamento básico da tecnologia OpenID.

Fonte: Elaboração dos autores. Adaptado de ASSIS, 2010.

Na figura 4, o usuário faz sua autenticação na página do serviço requisitado

utilizando seu login e senha OpenID – caso o usuário já tenha feito login utilizando

OpenID em outro serviço, utilizará apenas a URL fornecedora. O serviço deve então

consultar provedores OpenID para validar a identidade do usuário. Mais detalhes sobre

o funcionamento da arquitetura do OpenID serão apresentados nos capítulos 2 e 3.

De acordo com Assis (2010), o OpenID diferencia-se de outras tecnologias que

utilizam o método de autenticação Single Sign-On justamente por não especificar o

mecanismo de autenticação. Dessa maneira, o usuário não precisa informar seus

dados e demais informações que não deseja sempre que precisar se autenticar, ou se

cadastrar em algum novo serviço na Internet. Segundo a OpenID Foundation (2013),

empresas como Google, Yahoo, Live Journal, Flickr, Wordpress e AOL utilizam a

tecnologia OpenID em suas redes de serviços disponibilizados através da Internet.

Segundo Wang (2012), a praticidade provida pelo OpenID na autenticação Single Sign-

On via URL da página fornecedora (sem necessidade de informar dados de

autenticação mais de uma vez) é o ponto principal que o diferencia de seus

concorrentes.

16

2.4 CONSIDERAÇÕES PARCIAIS

No capítulo 1, são apresentados os conceitos fundamentais para o

desenvolvimento deste trabalho. Para possibilitar o conhecimento básico sobre o que é

o OpenID e qual é sua proposta, é necessária uma introdução sobre os problemas

relacionados a autenticação na Internet, atualmente. Este é o objetivo do capítulo 1,

abrangendo os conceitos de sistemas de autenticação e Single Sign-On, que são peças

fundamentais no conceito da tecnologia OpenID.

No capítulo 2, a tecnologia OpenID é abordada de forma profunda,

apresentando-se sua arquitetura, funcionamento e debatendo problemas de

autenticação e aspectos de segurança. O capítulo 2 será necessário para a

compreensão do funcionamento e dos conceitos que envolvem a tecnologia OpenID.

17

3 OPENID

Segundo Jeng (2012), o OpenID é um padrão aberto de tecnologia distribuída

que permite autenticação descentralizada aos seus usuários. O OpenID é considerado

uma das implementações pioneiras de Single Sign-On (SSO) para web e, conforme

Ionita (2012), em Dezembro de 2009 já contava com cerca de 1 bilhão de contas ativas

distribuídas em aproximadamente 9 milhões de sites em toda a Internet. Tais números,

tão expressivos, explicam-se devido as grandes corporações (Google, Yahoo, AOL,

etc), e seus usuários ativos, que adotaram o uso do OpenID a partir de sua criação, em

2005. Atualmente em sua versão 2.0, é gerenciado por um comitê que envolve a

participação de grandes empresas e entidades de pesquisa (Wang, 2012).

Neste capítulo, são apresentados os conceitos gerais do OpenID. Junto com

suas funcionalidades, é possível ter a noção sobre os objetivos desta tecnologia . Além

deste início conceitual, são apresentadas também algumas vulnerabilidades do OpenID

em segurança que, por consequência, são as causas dos problemas de autenticação

que também serão apresentados.

3.1 TERMINOLOGIA

De acordo com Assis (2010) e Sovis et al. (2010), para melhor compreensão da

arquitetura e do funcionamento do OpenID, são necessárias as identificações dos

seguintes agentes:

Usuário: Composto pelo usuário final e seu terminal, que executa um software

(navegador) com acesso a Internet. Através do navegador, o usuário final

consegue acessar páginas e serviços que requisitam autenticação e assim,

quando possível, ele pode utilizar sua identidade OpenID;

Provedor de Identidade OpenID (IdP): Servidor que armazena informações

necessárias relativas aos usuários e responsável por garantir a autenticação dos

mesmos em múltiplos serviços e aplicações. O IdP é o fornecedor da identidade

OpenID do usuário;

18

Relying Parties (RP): Página ou serviço online que provê, em sua própria

estrutura de autenticação, a opção de autenticação através de identidades

OpenID aos seus usuários.

Os agentes possuem um papel fundamental na arquitetura do sistema,

proporcionando identificar o papel e a responsabilidades de cada item. A relação entre

eles é direta, o que implica na necessidade dos serviços estarem disponíveis para que

o funcionamento do sistema transcorra de maneira consistente.

3.2 ARQUITETURA E FUNCIONAMENTO

Segundo Wang (2012), o ponto chave da arquitetura do OpenID, que o diferencia

das demais soluções baseadas em SSO para web, é o fato dos provedores de

identidade serem únicos e distribuídos. Isto faz com que os usuários sejam livres para

escolher o provedor que desejarem. O protocolo de funcionamento não prevê nenhum

tipo de relação prévia entre IdPs e RPs para realizar as autenticações. Esta seção

apresenta o funcionamento e os componentes que moldam o OpenID.

3.2.1 Processos de Autenticação

Conforme Assis (2010) e Wang (2012), é possível exemplificar um processo de

autenticação via OpenID através da cronologia apresentada na tabela 1 e na figura 5:

Tabela 1: Exemplo de um processo de autenticação via OpenID.

Cronologia Descrição do Ato

A O usuário escolhe um IdP e requisita uma identidade.

B

O IdP provê ao usuário uma identidade. Esta identidade é composta

por uma URL única. A partir desta etapa, o usuário poderá se

autenticar em múltiplos RPs utilizando esta identidade (conta).

C O usuário então deseja se autenticar em um RP utilizando sua conta

OpenID. Para isso, ele entrega sua identidade OpenID (URL) ao RP.

D

Com o URL, o RP extrai um documento XML chamado XRDS

(Extensible Resource Descriptor Sequence) que armazena

informações sobre a localização do IdP do usuário na Internet.

19

E

Após identificar o IdP do usuário, o RP estabelece uma conexão com

o mesmo para definir uma chave de segurança compartilhada. Esta

chave será utilizada na verificação de mensagens reebidas

diretamente do usuário. Segundo Ionita (2012), essas chaves são

distribuídas através de um mecanismo baseado método de

distribuição Diffie-Hellman.

F

Em seguida, o RP estabelece uma conexão entre o navegador do

usuário e a página de autenticação do seu IdP. Nesta etapa, o

usuário é notificado sobre a integridade do RP e, em seguida,

questionado pelo seu Idp sobre tal integridade.

G

Caso o usuário confirme a integridade do RP, o IdP irá enviar a

confirmação da autenticação para o RP e redirecionar a conexão

com o usuário para o RP.

H A partir disso, o usuário pode navegar normalmente sem necessitar

validar sua conta com seu IdP novamente.

Fonte: Elaborado pelos autores.

Figura 5: Diagrama de sequência de um processo de autenticação via OpenID.

Fonte: Elaborado pelos autores.

20

A tabela 1 e a figura 5 mostram como a autenticação ocorre, através de uma

interação entre o usuário, o IdP e o RP, para garantir a identidade do usuário. Este

método de autenticação faz com que os RPs necessitem apenas de informações

realmente necessárias sobre os usuários para realizar a autenticação dos mesmos em

seus sistemas. Segundo Wang (2012), isso faz com que o processo de autenticação

seja mais direto e eficiente para ambas as partes, além do que, o usuário ganha mais

privacidade perante o RP. Ionita (2012) faz lembrar que o processo de autenticação

através de identidades OpenID depende fundamentalmente da disponibilidade do IdP

do usuário.

O método utiliza um conjunto de dados mínimos para realizar a autenticação dos

usuários, além de proporcionar uma maior eficácia no processo de autenticação. Como

benefício, o grau de privacidade do usuário é elevado em relação ao RP permitindo que

este possa navegar livremente com apenas uma validação com o IdP, evitando a

repetição dos usuários no preenchimento de logins e senhas.

3.3 PRINCIPAIS ABORDAGENS

Enquanto tecnologia para a implementação de SSO e gerenciamento de

identidades, o OpenID pode ser descrito como uma solução focada no usuário e não

focada no site ou no serviço (BELLAMY-MCINTYRE et al., 2011). Uma característica

que separa o OpenID de outras implementações SSO é que o provedor de identidade

não precisa ter relação prévia com a página ou servidor para que está provendo

autenticação, sendo necessário apenas uma identidade OpenID (URL) por parte do

usuário (WANG, 2012).

Segundo Bellamy-McIntyre et al. (2011), o protocolo OpenID é complexo e

possui apenas uma especificação textual, o que aumenta a dificuldade de se garantir

que uma implementação qualquer não contenha falhas de segurança. Algumas

abordagens já foram propostas e tiveram bons resultados, sendo até aplicadas no meio

empresarial. Estas abordagens propõem modelos funcionais e melhorias na segurança,

servindo como ponto de partida para uma implementação que atenda às necessidades

da empresa sem prejudicar as atividades da mesma:

21

Abordagem Padrão: Zhao et al. (2004) elaboram sobre design de sistemas SSO

usando uma implementação padrão em OpenID como exemplo, contendo um

provedor de autenticação, clientes e RPs que requerem acesso autenticado. Os

usuários tentam acessar um serviço em um RP que redireciona o usuário para

se autenticar no provedor. Após inserir seu nome de usuário e senha para fazer

login no provedor, o mesmo redireciona o usuário de volta ao RP com acesso

liberado ao que lhe compete. Um servidor de certificados garante uma operação

mais segura por meio de assinaturas nas requisições, porém esta arquitetura

não é suficiente para garantir uma autenticação segura;

Autenticação via One-Time Password (OTP): Segundo Wang et al. (2011), OTP

são senhas geradas por fatores estáticos e dinâmicos, computadas por um

determinado algoritmo e somente podem ser usadas uma vez. Após o login, o

provedor requer a OTP do cliente e somente conclui a autenticação caso a

senha esteja correta. Esta abordagem é destacada como a mais segura, pois

apenas o provedor e o cliente conhecem o algoritmo exato para geração da

senha única;

Autenticação usando OpenID e OAuth3: De acordo com Chu et al. (2010),

embora ambas tecnologias de Single Sign-On distintas, tanto OpenID quanto

OAuth são abertas e não-excludentes. Chu et al. (2010), afirmam que a

autenticação do OAuth se dá pela concessão de um token de autorização ao

cliente e o processo ocorre sem que o RP receba as credenciais do cliente em

momento algum, algo que aumenta a confidencialidade da transação. Para a

implementação desta abordagem, o provedor OpenID e o provedor OAuth

devem ser o mesmo, e o RP também assume o papel de consumidor do token

de autorização toda vez que uma requisição a um serviço for feita. A Google

especificou uma abordagem semelhante que também combina OpenID e OAuth

(BALFANZ et al., 2007);

3 OAuth é um padrão aberto para autorização que fornece um meio de clientes acessarem os recursos

do servidor em nome do proprietário de um recurso (como um cliente diferente ou um usuário final). O OAuth encontra-se atualmente em sua versão 2.0. (RFC 6749, 2012)

22

Solução Federada: Embora seja uma tecnologia mais focada no usuário do que

nos serviços (BELLAMY-MCINTYRE et al., 2011), o OpenID é bastante flexível e

também pode ser utilizado para gerenciar federações de parceiros em ambientes

colaborativos. Watanabe e Tanaka (2009) sugerem, por exemplo, um protocolo

que faz uso de um FAP4, e que utiliza autenticação normal via OpenID e a

garantia de uma ID única enviada via celular para liberação de recursos

compartilhados.

Para melhor efeito de comparação envolvendo as principais características de

cada abordagem, a tabela 2 fornece mais informações. A tabela 2 apresenta uma

comparação envolvendo critérios como: versatilidade, facilidade de implementação e

capacidade de autenticação multi-fator.

Tabela 2: Comparação entre as abordagens usuais de OpenID, considerando

segurança e facilidade de implementação.

Abordagem Autenticação

Multi-Fator Facilidade de

Implementação Versatilidade

Abordagem Padrão

Não Simples Bastante versátil. Em

especial para sistemas menores

Autenticação via OTP

Sim. O que o usuário sabe (senha) e o que

possui (OTP)

Simples, exceto pela criação de um bom

algoritmo para geração de OTP

O uso de OTP é mais indicado em

sistemas com maiores riscos de

segurança

Autenticação via OpenID e OAuth

Sim. O que o usuário sabe (senha) e o que possui (token OAuth)

Razoável. São tecnologias

compatíveis, porém distintas

O uso de tokens de acesso limitado é mais comum em

sistemas web (Chu et al., 2010)

Solução Federada

Sim. No caso do protocolo que usa o

FAP, ocorre com o uso da senha e da ID do

celular do usuário

Depende do que se deseja. O uso do

celular como no FAP é mais complexo

Somente para entidades federadas

Fonte: Elaborada pelos autores.

4 Federated Authentication Provider (FAP): É um provedor específico para autenticação em entidades

federadas.

23

Como é possível analisar na tabela 2, uma abordagem padrão, por ser mais

simples que as demais, apresenta-se mais versátil. Porém, as demais abordagens (via

OTP, via OpenID e OAuth, e federada), devido a suas maiores complexidades, são

voltadas para cenários mais específicos, com aplicações mais direcionadas.

A grande flexibilidade e facilidade de implementação do OpenID foram razões

que contribuíram para sua grande aceitação no mercado e é possível combinar

autenticação por OpenID com outras técnicas de gestão de identidades ou segurança.

Bellamy-McIntyre et al. (2011), sugerem uma cuidadosa modelagem do processo de

Single Sign-On a ser implementado. Para isso, dividem o campo de modelagem em:

―Modelagem sob a perspectiva do usuário‖ e ―Modelagem sob a perspectiva do

sistema‖. Segundo os autores, a perspectiva do usuário tornam claros os diagramas de

uso do sistema e como ocorre a comunicação. Porém é uma visão mais abstrata e que

omite detalhes mais específicos da implementação.

Com o uso de uma modelagem apropriada do Single Sign-On antes da

implementação, é possível identificar facilmente vulnerabilidades em relação a

possíveis ataques como o phishing (roubo de informação), no caso da perspectiva do

usuário, ou ataques como man-in-the-middle5 (ataques de interceptação de

informação), no caso da perspectiva do sistema.

Conhecendo o funcionamento do protocolo OpenID e sendo capaz de modelar e

estudar a abordagem de implementação mais adequada para determinada finalidade, é

possível obter-se uma noção da arquitetura funcional de Single Sign-On. No entanto,

não são somente questões de implementação que caracterizam as vulnerabilidades no

uso de OpenID, mas sim até os arquivos de configuração do provedor podem trazer

falhas exploráveis por um atacante. Uma abordagem consistente e uma modelagem do

processo de autenticação resultam em menos preocupações, porém todo cuidado é

pouco quando a questão é a segurança da informação.

5 Man-in-the-middle (Homem-no-meio) é um ataque que intercepta a comunicação entre duas partes

para a manipulação e/ou captura de dados.

24

3.4 PROBLEMAS DE AUTENTICAÇÃO

Segundo Oh e Jin (2008), o OpenID é um framework livre, aberto e

descentralizado para gestão de identidades digitais com foco no usuário. O SSO provê

a autenticação conveniente, caso o usuário deseje receber um serviço de outro RP que

tenha suporte ao OpenID. Tal conveniência ocorre pelo canal entre o RP e o provedor,

sem necessidade de nova autenticação pelo usuário, que deve apenas informar sua

OpenID. Porém, existem algumas características na autenticação do OpenID que

podem influenciar negativamente a segurança da aplicação final. De forma a descrever

algumas dessas características, cita-se o experimento realizado por Oh e Jin (2008),

sobre as regras de provedores OpenID e como um atacante pode se valer delas para

acessar recursos de sistema que não cabem a ele.

Uma vulnerabilidade de autenticação que pode ocorrer se dá pelo fato do

OpenID ser uma solução baseada em cookies que utiliza criptografia simétrica, menos

segura que a assimétrica (OH e JIN, 2008). Segundo a OpenID Foundation (2006), os

provedores OpenID em geral fazem uso do algoritmo AES-128 ou AES-256 para cifrar

as mensagens. Além disso, o OpenID faz uso do protocolo HTTPS durante a

autenticação e, durante este processo, usa duas chaves de sessão para promover uma

transação mais segura (OpenID FOUNDATION, 2006). Porém, mesmo com o uso do

HTTPS, existe uma diferença entre o estado de autenticação do usuário no provedor,

que dura uma sessão, e o estado no RP, que pode durar um tempo mais longo antes

de expirar, fato que permite o ataque documentado por Oh e Jin (2008).

Segundo os autores, mesmo que a autenticação no provedor expire, o estado de

autenticação ainda é válido nos RPs que receberam o token de confirmação de

autenticação. Além disso, todo URL de OpenID possui um nonce, cuja função é ser

uma chave criptográfica que funciona apenas uma vez (ROGAWAY, 2004). O nonce

deveria contribuir para a segurança da autenticação, mas segundo a especificação

padrão do OpenID, o nonce não precisa ser assinado, apenas válido segundo a

verificação de integridade do RP (OpenID FOUNDATION, 2006). Desta forma, fazendo

uso de dois browsers ao mesmo tempo, foi possível obter um nonce válido em um

25

browser e usá-lo no lugar do nonce original no outro browser, obtendo assim acesso

não autorizado aos recursos do serviço, mesmo após o encerramento da sessão.

De acordo com Oh e Jin (2008), existem mais vulnerabilidades de autenticação

no OpenID por se tratar de uma solução ampla, genérica e, sobretudo, distribuída. Isto

torna ainda mais difícil a garantia de requisitos de segurança. Apesar das

vulnerabilidades do OpenID, a OpenID Foundation vem buscando meios de impedir que

um atacante possa se valer das mesmas para acessar recursos do sistema dos quais

ele não tem permissão de acesso. Partindo disso, uma análise da segurança do

sistema é apresentada na seção 3.5.

3.5 SEGURANÇA

Esta seção analisa os problemas de segurança que podem ser encontrados no

OpenID. Considerando três cenários diferentes no qual cada cenário um agente tenta

violar a segurança de diferentes formas. No decorrer da seção são propostas possíveis

soluções ou prevenções para evitar os ataques referentes a cada cenário.

3.5.1 Usuário Malicioso

No processo de autenticação, o usuário envia para o RP um identificador

OpenID, uma URL. Este identificador requer um campo de texto onde o usuário pode

digitar qualquer URL e, assim, forçar o RP a acessar uma página especificada por ele.

Diante deste aspecto, um usuário malicioso pode, segundo Charas (2009):

Acessar um host interno no RP: Caso um usuário insira a uma URL como, por

exemplo, ―localhost/admin.php?action=sql&query=DROP TABLE user‖, o

servidor do RP acessaria a si próprio através de uma requisição HTTP. Esta é

uma falha grave, considerando que a maioria dos servidores investe pouco em

medidas de segurança contra conexões locais;

Forçar acesso a hosts externos: Um usuário malicioso pode forçar o RP a

acessar outros hosts. Ao inserir um endereço como, por exemplo,

“www.exemplo.com/falhadeseguranca.php?attack=true‖, o usuário pode

26

responsabilizar o RP por um determinado ataque através de uma falha de

segurança descoberta por ele;

Causar inundação (overflow): O usuário malicioso pode causar inundação,

enviando para o RP uma grande quantidade de dados. Ao inserir uma URL

como, por exemplo, "www.exemplo.com/arquivo.bin”, onde ―arquivo.bin” é um

arquivo muito grande, o usuário causará uma situação que poderá ser

interpretada como ataque.

Causar negação de serviço: Este tipo de ataque é caracterizado por inundar o

servidor com mais pedidos do que ele pode processar, deixando-o indisponível.

Uma maneira de realizar este tipo de ataque é enviando um grande número de

pedidos de autenticação ao RP. Neste caso, o usuário insere uma URL para

autenticação, o que faz com que o RP entre em contato com o provedor OpenID

para que o mesmo inicie o processo de verificação da identidade. Porém, o

usuário prossegue, enviando pedidos de autenticação antes que o provedor

OpenID possa retornar a resposta para o RP quanto o sucesso da autenticação.

Este processo acaba inundando o servidor do RP, fazendo com que em

determinado momento ele comece a descartar os pedidos, o que caracteriza a

negação de serviço.

Os ataques citados relatam uma série de ataques que, por sua vez, são

relativamente simples de serem executados. Os usuários maliciosos podem cometer

tais tipos de ataques quando o sistema não apresentar mecanismos para evitar ou

mesmo dificultar a ação destes indivíduos.

Segundo Feld e Pohlmann (2010), o RP pode utilizar-se de filtros para conter

usuários maliciosos, limitando o que pode ser inserido no campo de identificação. O

filtro deve banir hosts que entrem repetidamente com identificadores que não passam

pelo processo de descoberta e deve também desabilitar endereços que levem o RP a

conectar-se a hosts internos. Além disso, o RP deve também banir hosts que façam

muitos pedidos de autenticação em um curto período de tempo, evitando assim

inundações e falhas por negação de serviços (CHARAS, 2009).

27

A utilização de filtros, o ato de banir os hosts com ações indevidas dentre outras

medidas, amplifica a dificuldade ou até mesmo inibe a ação de um usuário malicioso.

Isso dificulta a prática dos ataques, o nível de segurança do sistema é elevado e ele se

torna mais confiável.

3.5.2 RP Malicioso

Uma grave ameaça de segurança está relacionada ao RP malicioso. Neste caso,

ao invés de redirecionar o usuário para seu provedor OpenID, como ocorre no processo

de autenticação, o RP redireciona o usuário para uma outra página (CHARAS, 2009).

A identificação do provedor do usuário no RP ocorre através da URL inserida por

ele, que redireciona o RP para uma página semelhante à página do provedor na qual o

usuário está acostumado a autenticar-se. Se o provedor OpenID do usuário

utiliza nome de usuário e senha como método de autenticação, e o usuário não

percebe que está em uma outra página, ele pode acabar inserindo suas informações de

autenticação no falso provedor e, assim, disponibilizando suas credenciais para o RP

malicioso (FELD; POHLMANN, 2010).

O ataque é conhecido como phishing, um método de roubo de identidade online

que pode ser bastante difícil para um usuário final identificar. A maneira mais eficaz de

detectar o phishing é analisando a URL para qual o usuário é redirecionado, pois esta

costuma ser a característica mais difícil de falsificar (FELD; POHLMANN, 2010). O

phishing é um problema de segurança que pode atingir tanto o usuário quanto o

provedor OpenID comprometendo a confiança do consumidor (CHARAS, 2009).

Como se pode identificar o phishing através da URL, é 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 (CHARAS, 2009). Uma prevenção é utilizar complementos do navegador que

auxiliam na detecção deste tipo de ataque como, por exemplo, o Netcraft (extensão

disponível para Firefox e Chrome). Outra medida possível é utilizar a versão mais

recente dos navegadores, pois já possuem de forma integrada as proteções contra anti-

28

phishing. Em geral, estes complementos utilizam a mesma técnica de forma a

aconselhar o usuário a verificar a URL (FELD; POHLMANN, 2010).

Uma solução para o provedor é a criação de uma página de autenticação de fácil

reconhecimento para os usuários, mas que, ao mesmo tempo, seja difícil de ser

copiada em um ataque de phishing. Um exemplo interessante, e eficaz no mercado

atualmente, é o selo de autenticação da Yahoo!. O selo de autenticação, mostrado na

figura 6, consiste em uma pequena imagem ou texto. O usuário deve criar um selo para

cada computador que use (não esta vinculado a ID da Yahoo!, mas sim ao computador

do usuário), evitando criá-los em computadores compartilhados (YAHOO! INC., 2013).

Este selo será apresentado na tela do usuário antes que ele insira seus dados de

autenticação (FELD e POHLMANN, 2010). Se seu selo de autenticidade não for

exibido, trata-se, provavelmente, de uma página falsa.

Figura 6: Exemplo de utilização do selo de autenticação do Yahoo!.

Fonte: CHARAS, 2009.

Em geral, este tipo de selo é armazenado através de um cookie, e uma

característica importante dos cookies é que eles só podem ser acessados pelo domínio

que os criou (YAHOO! INC., 2013). Desta forma, um RP malicioso não pode ter acesso

ao selo utilizado pelo usuário e, consequentemente, não pode mostrá-lo na tela. Se o

usuário não ver seu selo ao acessar a página de autenticação, ele poderá atentar a

29

possibilidade de estar em uma página falsa, evitando, assim, inserir seus dados até que

se confirme a razão para que seu selo não tenha sido apresentado.

3.6 PROJETOS RELACIONADOS

Com o avanço da Internet, o aumento de provedores de serviços e a crescente

necessidade de compartilhar recursos para usuários de diferentes organizações que

possuam algum tipo de relação são fatores que motivam a constituição de federações.

Uma federação é uma forma de associação de parceiros de uma rede colaborativa que

usa um conjunto comum de atributos, práticas e políticas para trocar informações e

compartilhar serviços, possibilitando a cooperação e transações entre os membros da

federação (CARMODY et al. 2005).

O gerenciamento de identidades federadas, baseado nestes acordos comerciais,

técnicos e políticos, permite que as organizações de uma federação interajam entre si

com base na gestão da identidade compartilhada (IBM, 2005). Existem várias soluções

que fornecem o gerenciamento de identidades federadas como, por exemplo, o

Shibboleth (seção 3.6.1), OpenID e o Microsoft CardSpace (seção 3.6.2).

3.6.1 Shibboleth

O projeto Shibboleth (SHIBBOLETH CONSORTIUM, 2013) foi uma iniciativa do

consórcio americano Internet2 que teve como principal objetivo lançar uma

implementação de código aberto baseada em padrões abertos para tratar de desafios

relacionados ao gerenciamento de identidades e controle de acesso em instituições

acadêmicas. O Shibboleth é uma solução genérica para o gerenciamento de

identidades federadas, podendo ser adotada por qualquer tipo de organização.

O pacote de software desenvolvido está fundamentado sobre padrões abertos

como o XML e Security Assertion Markup Language (SAML) e provê uma forma fácil

para que aplicações web utilizem das facilidades providas pelo modelo de identidades

federadas como o conceito de autenticação única (SSO) e a troca segura de atributos

dos usuários por todos provedores de serviços que compõem a federação (WANGHAM

et al., 2010). O Shibboleth tem como ênfase a privacidade dos atributos dos usuários

sendo que, a liberação desses atributos para os provedores de serviços está

30

condicionada a política de privacidade da instituição de origem do usuário e também as

preferências pessoais deste usuário (SHIBBOLETH CONSORTIUM, 2013).

No Shibboleth, há dois papéis em destaque: o provedor de identidades (IdP) e o

provedor de serviços (SP). O primeiro é responsável por autenticar seus usuários,

antes que estes possam usufruir dos serviços oferecidos pelo segundo. O ponto

comum entre estes papéis é que ambos devem implementar toda a pilha de software

fornecida pelo projeto Shibboleth, permitindo assim o transporte das credenciais dos

usuários do provedor de identidades até o provedor de serviços (SHIBBOLETH

CONSORTIUM, 2013). No Shibboleth, o processo de autenticação sempre é executado

na instituição de origem do usuário, através de seu provedor de identidades, fazendo

uso dos mecanismos de autenticação presentes nessa instituição. A autenticação de

usuários pode ser feita através de nome de usuário e senha (CHADWICK, 2009). De

forma geral, o Shibboleth permite que sites possam tomar decisões de autorização para

o acesso individual dos recursos on-line de forma a preservar a privacidade dos

usuários.

3.6.2 Windows Card Space

Segundo Chappel (2006), nos diferentes tipos de redes colaborativas que

utilizam a Internet, diferentes tipos de identidades digitais são necessários e a realidade

é que estas identidades são providas por diferentes fontes (IdPs). Isto significa que a

solução para o gerenciamento destas identidades é utilizar sistemas que suportem

múltiplas identidades, ou seja, um ―sistema de sistemas‖ (meta sistema) focado na

identidade.

Os desafios são: criar, usar, e gerenciar esta diversidade de identidades de uma

forma efetiva. O Windows Card Space, originalmente chamado de InfoCard, é um

componente da plataforma .Net da Microsoft projetado para oferecer aos usuários uma

experiência consistente do uso de múltiplas identidades digitais, a partir do uso de um

agente especializado (MALER; REED, 2008). A tecnologia Card Space está disponível

por padrão nas versões sucessoras do MS-Windows Vista e pode ser incorporado em

versões anteriores do sistema operacional MS-Windows. Além disso, a mesma também

é suportada no navegador Internet Explorer, a partir da versão 7.0 (CHAPPEL, 2006).

31

O Card Space concentra-se nas coleções de dados do usuário chamados

cartões de informação (InfoCards), apresentados em uma interface de software

chamada ―seletor de identidade‖ (semelhante a uma carteira que contém os cartões

que identificam o usuário). No seletor de identidade, cada InfoCard representa uma

identidade diferente. Quando uma parte confiante (SP) solicita as credenciais do

usuário, este escolhe, a partir do seletor, uma de suas identidades (MALER; REED,

2008).

O Windows Card Space é uma solução SSO e sua abordagem está centrada na

identidade, no gerenciamento de identidades. A ideia consiste em um software cliente

responsável por fazer com que o usuário forneça sua identidade digital através da

escolha de cartões de um modo simples e seguro. Esta abordagem é conhecida como

―Seletor de Identidade‖. Desta forma, a Microsoft apresenta uma proposta de

autenticação para sites e serviços web.

3.7 CONSIDERAÇÕES PARCIAIS

Para possibilitar a compreensão geral do OpenID, é necessário o conhecimento

das terminologias envolvidas, da arquitetura e do funcionamento do mesmo. A partir do

estudo realizado, é possível identificar alguns benefícios, como: na arquitetura, quando

os usuários têm a liberdade de escolher o provedor que desejarem, no acolhimento

desta abordagem por parte das instituições, vista a flexibilidade de implementação, etc.

No entanto, a solução SSO pioneira apresenta alguns problemas de autenticação

como, por exemplo, ser uma solução baseada em cookies que utiliza criptografia

simétrica, possibilitando vulnerabilidades no sistema que comprometem a segurança,

seja através de usuário malicioso (negação de serviço) ou RP malicioso (phishing). De

forma geral, o OpenID é uma solução SSO que vem ganhando espaço e sofrendo

melhorias já que um grande número de empresas estão envolvidas na utilização desta

abordagem.

32

4 ANÁLISE

Com base no referencial teórico apresentado sobre os fundamentos da

autenticação Single Sign-On e na pesquisa bibliográfica sobre o funcionamento do

OpenID (sua arquitetura, abordagens e vulnerabilidades), foram elucidados vários

conceitos necessários para o entendimento geral necessário. Agora, utilizando estes

conceitos, este capítulo apresenta uma análise do OpenID segundo os aspectos de

arquitetura, abordagens e soluções.

São apresentados, neste capítulo, casos comentados sobre implementações do

OpenID em alguns RPs, provendo uma visão um pouco mais prática dos resultados

obtidos na adoção do OpenID como uma solução em autenticação. Também é

apresentada uma análise sobre a tecnologia OpenID em si.

4.1 CASOS COMENTADOS

Esta seção utiliza como exemplo soluções baseadas em OpenID da empresa

Janrain Inc. A Janrain foi fundada em 2005 (mesmo ano do lançamento da primeira

versão do OpenID) e tornou-se bastante ativa dentro da comunidade OpenID, estando

envolvida, também, na criação da OpenID Foundation. A Janrain fundou, também, em

2006 o MyOpenID.com que até hoje é um dos maiores provedores OpenID

independentes em atividade. Em 2008, a Janrain lançou o Janrain Engage

(anteriormente chamado de RPX), que é uma solução OpenID de Software as a Service

(SaaS), ou seja, uma solução que permite a websites o registro e a autenticação de

seus usuários através de contas de provedores como: Facebook, Google, Yahoo, AOL,

MySpace, Windows Live ID e Twitter.

Um dos clientes de maior destaque da Janrain é a Samsung, que incorporou a

plataforma JUMP (Janrain User Management Platform) ao seu website para facilitar o

cadastro de clientes em sua página, aumentar a participação no website e coletar

dados dos perfis dos usuários registrados para um melhor relacionamento com os

mesmos. De acordo com o departamento de marketing digital da Samsung, os

resultados foram melhores que o esperado. Inclusive, o mesmo departamento informou

que, os clientes que optaram por autenticação via redes sociais, possuem perfis

33

engajados ao website e, portanto, são mais valiosos para a empresa (JANRAIN INC.,

2012).

Outro cliente de destaque da Janrain é a Sulit, uma empresa de classificados e

e-commerce das Filipinas. A necessidade de implementação de um serviço SSO para

esta empresa surgiu visando facilitar o processo de registro de usuários em seu portal,

além de evitar a chamada ―fadiga de senhas‖ de seus clientes. Segundo a equipe

técnica responsável pelo website da Sulit, houve tentativas de desenvolvimento próprio

de uma solução OpenID por certo tempo, porém devido às diferentes implementações

dos IdPs (além das diferentes versões dos padrões, uma vez que nem todos os

provedores se atualizam quando os padrões são atualizados), os projetos não lograram

êxito. Por fim, a empresa optou por contratar a solução RPX da Janrain e os resultados

obtidos foram substanciais. Uma taxa de 15% dos cadastros no portal passaram a ser

realizados pelo RPX e houve uma redução de 50% no número de requisições de

recuperação de credenciais de acesso por parte de clientes já cadastrados (JANRAIN

INC., 2012).

4.2 ANÁLISE DO OPENID

A análise do OpenID nesta seção é dividida em três subseções, cada uma

focada em um critério específico. A primeira análise será voltada a arquitetura do

sistema de autenticação do OpenID, um aspecto primário que impacta diretamente na

complexidade e robustez do protocolo. Em seguida, serão analisados critérios

relacionados às abordagens conhecidas, citando as apresentadas na seção 2.3 e

também, outras tecnologias com escopos e soluções similares, onde são analisadas as

implementações em OpenID enquanto soluções para a autenticação em sistemas

diversificados.

4.2.1 Arquitetura

A arquitetura do OpenID é bastante simples. Esse é, talvez, o ponto mais forte

desta tecnologia. Seus elementos essenciais são os três agentes já mencionados: o

usuário, que faz acesso a um serviço através de um navegador web em um dispositivo

computacional qualquer; o IdP, responsável por armazenar dados dos usuários e

34

garantir a autenticação dos mesmos; e o RP, serviço que permite a autenticação de

usuários via OpenID. A autenticação ocorre mesmo sem qualquer relação prévia entre

estes três agentes citados, o que reforça o conceito de independência mútua. É uma

arquitetura extremamente simples e funcional que visa permitir uma gerência de

identidades descentralizada e focada nos usuários.

Segundo Recordon e Reed (2006), o foco principal da plataforma do OpenID é a

escolha do usuário. São, então, colocados três pontos fundamentais de liberdade de

escolha:

Escolha de endereços digitais: o OpenID, em sua última versão, não apenas

possibilita que usuários escolham entre múltiplos formatos de endereços digitais,

mas também que possam controlá-los e gerenciá-los, utilizando interfaces

simples via web;

Escolha dos provedores de identidade: Conforme já mencionado, o usuário é

livre para escolher o provedor de sua preferência para ser responsável pela

autenticação. Isto ocorre devido ao framework OpenID, desenvolvido de forma

em que o endereço digital e os dados para identificação de um usuário sejam

portáveis entre IdPs distintos;

Escolha dos provedores de serviços: De acordo com o modelo original do

OpenID, segundo Recordon e Reed (2006), o usuário não é limitado ao uso de

serviços suportados pelo seu IdP. Desta forma, o usuário tem a liberdade de

acessar novos serviços assim que os mesmos estiverem disponíveis, além de

migrar entre provedores concorrentes de um mesmo serviço com o mínimo

possível de interrupções no uso deste serviço.

Considerando tal aspecto de liberdade de escolha dada ao usuário, é possível

analisar que o OpenID é corretamente projetado para este fim, graças ao seu modelo

descentralizado que permite, inclusive, que um usuário opere seu próprio IdP.

Entretanto, esta análise da arquitetura do OpenID não se limita à visão da tecnologia

segundo seus desenvolvedores, mas também à visão do OpenID como uma solução

confiável para a segurança da identidade de seus usuários. Logo, esta análise é focada

35

na robustez da arquitetura, a fim de garantir a disponibilidade da comunicação entre o

usuário, o RP e o IdP.

Quanto a robustez, a arquitetura do OpenID está bem consolidada. As razões

para isso são explicáveis: o acoplamento entre os agentes (RP e IdP) é muito baixo e,

sem necessidade de estabelecimento de relações prévias no momento em que um RP

for considerado ineficaz, malicioso ou, simplesmente, obsoleto, o usuário pode passar a

usar outro RP que disponibilize o mesmo serviço ou um serviço semelhante. De forma

análoga, caso o IdP apresente problemas ao usuário como lentidão ou incapacidade de

autenticação, o usuário pode migrar para outro provedor de identidade de sua escolha

que não apresente tais problemas.

Uma vez que o OpenID foi desenvolvido desta maneira, com um grande foco no

usuário, a migração entre provedores de entidades e serviços distintos é rápida. Isto

torna a arquitetura simples do OpenID o seu ponto forte, pois quanto mais eficiente esta

migração ocorrer, maior será a disponibilidade do sistema. Uma arquitetura que facilite

a disponibilidade, conceitualmente, é uma arquitetura mais segura.

4.2.2 Abordagens

O OpenID, por definição, é uma solução genérica. Logo, pode ser utilizada de

formas diferentes e implementada conforme as necessidades dos usuários como, por

exemplo, as indicadas na seção 2.3 e, com isso, torna-se muito versátil. Entretanto, faz-

se necessária uma análise crítica do OpenID em relação às suas abordagens de

implementação, uma vez que os benefícios do uso dessa tecnologia somente são

relevantes se for viável a sua implementação.

As abordagens mais comuns encontradas na literatura e citadas na seção 2.3 –

abordagem padrão, autenticação via OTP, autenticação usando OpenID e OAuth e

solução federada – possuem um grande número de aplicações e de possíveis

extensões, embora não sirvam para todo tipo de sistema e não sejam soluções únicas

para estes problemas. Por exemplo, o Shibboleth é uma alternativa mais robusta,

tratando-se de entidades federadas, devido ao fato de ser um software aberto ao invés

de ser apenas uma especificação para autenticação. Além disso, o Shibboleth possui

36

foco na privacidade acima das escolhas dos usuários, o que pode ser preferível em

determinados casos.

Outro exemplo é o protocolo Kerberos, desenvolvido pelo MIT e que opera

através de tickets, ou seja, tokens especiais que também permitem a autenticação

multi-fator (NEUMAN; TS’O, 94). O Kerberos tem evoluído através da Microsoft, que o

adotou como método de autenticação padrão no MS Windows na forma chamada de

Microsoft Kerberos (MSDN LIBRARY, 2013). Efetivamente, o Kerberos serve ao

mesmo propósito do OpenID com OAuth, embora seja um projeto mais maduro

(publicado originalmente na RFC 1510, em 1993, e já se encontra em sua quinta

versão) e extensivamente utilizado. Trata-se de uma solução aberta disponível online,

além de ser oferecido comercialmente por empresas que ofereçam suporte

personalizado. Com tais características, o Kerberos torna-se uma alternativa para

algumas empresas devido à ampla documentação e ao suporte disponível. A figura 7

ilustra a diferença entre o funcionamento padrão de ambos os protocolos (Kerberos e

OpenID).

Figura 7: Comparação entre os diagramas dos processos de autenticação do Kerberos

e do OpenID.

Adaptado de: Ahmad et al., 2010.

37

Como ilustrado na figura 7, mesmo com uma extensão utilizando o OAuth para

gerar tokens para as autenticações, a abordagem do Kerberos já foi construída com

essa finalidade e, por isso, se mostra mais simples e funcional, uma vez que o OpenID

é inteiramente genérico e o Kerberos não. Assim, torna-se claro que há uma

compensação entre uma implementação genérica, embora sendo mais complexa, e

uma implementação específica para uma finalidade, realizada com eficiência.

A análise das abordagens do OpenID deve considerar a questão da

documentação. Este é um ponto em que o OpenID peca. Segundo Bellamy-McIntyre et

al. (2011), a implementação do OpenID é considerada não-trivial e passível de

ambiguidades, o que pode resultar em implementações existentes contendo falhas de

segurança. Embora sua arquitetura seja simples e fácil de entender, o protocolo

OpenID é complexo, e sua melhor referência é apenas uma especificação textual em

um documento mantido por uma comunidade (OPENID FOUNDATION, 2006).

4.2.3 Soluções

O OpenID está em constante evolução e aprimoramento. Este é um fator

positivo, pois significa que quanto mais esta tecnologia é estudada, falhas são

encontradas e, por consequência, provedores são notificados e aplicam as correções

necessárias, o que aumenta a segurança de toda a estrutura de autenticação. Porém, a

questão principal é: falhas de segurança ainda são falhas e falhas não devem ser

toleradas quando se trata de segurança da informação. Empresas como a Google e o

Facebook possuem milhões de acessos diários e vários serviços utilizam seus

provedores OpenID para autenticação, logo, uma falha de segurança pode significar um

número exorbitante de usuários em risco.

Esta análise do OpenID é baseada nos bons resultados que as grandes

empresas associadas aos comitês da OpenID Foundation (entre elas: Microsoft,

Google, Yahoo!, Facebook, PayPal e Symantec) têm obtido em seus serviços

prestados na web. Embora o OpenID seja, atualmente, considerado seguro e, devido

isso, tenha recebido tanta atenção na forma de pesquisas aplicação, ainda existe um

longo caminho a ser percorrido em relação a soluções altamente seguras. Wang et al.

38

(2012), exploram de maneira bastante interessante as vulnerabilidades existentes no

OpenID.

Duas vulnerabilidades principais são relatadas por Wang et al. (2012). Na

primeira, um atacante consegue forjar um requisição OpenID que não peça o e-mail do

usuário, e depois insere um e-mail não assinado na resposta do IdP. Caso o RP que

recebe a resposta não verifique que o e-mail não está assinado, essa página pode

acabar autenticando o atacante em qualquer conta local, como no caso de algumas

páginas como, por exemplo, Yahoo! Mail e Smartsheet.com. Segundo Wang et al.

(2012), todas as partes foram devidamente notificadas e corrigiram as vulnerabilidades

apresentadas. A segunda vulnerabilidade ocorre devido ao código vulnerável que

acaba por confundir tipos de dados nos campos da requisição e autenticar um atacante

nas contas no RP das vítimas. As empresas Google e PayPal confirmaram esta

vulnerabilidade em seus sistemas e, em seguida, corrigiram suas implementações.

Um aspecto de maturidade do OpenID que pode ser observado em Wang et al.

(2012) é: mesmo grandes empresas com vários profissionais responsáveis por

implementar o OpenID não estão imunes a vulnerabilidades triviais. Existem vários

fatores a serem considerados quando uma empresa estiver interessada em utilizar uma

solução OpenID. Um dos fatores diz respeito a vulnerabilidade do OpenID quanto ao

phishing devido a RPs maliciosos (SUN et al., 2011; OH; JIN, 2008). A única real

solução existente para este caso é recomendar fortemente aos usuários que prestem

atenção aos endereços de acesso dos serviços aos quais utilizam. Para uma tecnologia

bastante utilizada atualmente, este é um ponto fraco expressivo.

É possível notar que novas melhorias no OpenID, naturalmente, ainda surgirão

para torná-lo mais seguro e eficaz. Esta evolução tende a beneficiar os usuários de

maneira geral, seja no ramo comercial ou acadêmico. Porém, ao passo que novas

melhorias são desenvolvidas, mais ameaças surgem e, possivelmente, novas

vulnerabilidades são expostas e tornam-se alvo de tais ameaças. Como ciclo natural de

desenvolvimento e evolução da tecnologia, cabe aos desenvolvedores do OpenID

manter um nivelamento saudável entre estes dois extremos.

39

4.3 CONSIDERAÇÕES PARCIAIS

Conforme a seção 4.2, que apresenta a análise da tecnologia OpenID em vista

de sua arquitetura, de possíveis abordagens e soluções, é possível elaborar um resumo

dos principais pontos consolidados. A tabela 3 apresenta considerações sobre estes

principais pontos referentes à tecnologia OpenID, classificando-os como benefícios e

limitações.

Tabela 3: Classificação de benefícios e limitações do OpenID vistos os critérios de

análise apresentados no capítulo 4.

Benefícios Limitações

Arquitetura simples, versátil e robusta. Implementação passível de ambiguidades

que não é trivial.

Solução genérica, vistas as várias

possíveis abordagens de implementação

diferentes.

Documentação limitada.

Independência mútua entre componentes

arquiteturais.

Não é altamente seguro caso a

implementação não for cuidadosa ou o

provedor confiável.

Tecnologia em constante evolução. Ainda possui certas vulnerabilidades

exploráveis.

Gerenciamento fácil e prático por parte

dos usuários e administradores.

Fonte: Elaboração dos autores.

40

5 CONSIDERAÇÕES FINAIS

A arquitetura do OpenID, simples como é demonstrada, traz consigo significativa

robustez se tratando da disponibilidade do sistema. As abordagens padrão do OpenID

mostram-se bastante diversificadas e eficazes, apesar de sofrerem forte competição

vinda de tecnologias mais maduras e de propósitos específicos, como esperado para

uma solução genérica. A falta de uma documentação além da especificação padrão do

protocolo torna sua implementação mais difícil. Falhas de segurança existem, embora

raras, e evidenciam como algumas questões triviais podem gerar grandes

consequências caso a implementação não transcorra de maneira cuidadosa.

Com base nesta análise, pode-se concluir que o OpenID possui prognósticos

positivos para futuras melhorias e otimizações. Sua arquitetura simples e a

versatilidade na escolha do provedor para realizar autenticação justificam sua

considerável popularidade e grande adesão como protocolo de autenticação, mesmo

com menos de 10 anos de atuação no mercado. É importante frisar que o OpenID está

longe de ser considerado uma tecnologia consolidada. Sua última versão oficial foi

lançada da em 2007 e, desde então, foram várias as alterações na especificação

padrão (melhorias e correções) do projeto para tentar sanar as vulnerabilidades

encontradas e tentar proteger o mesmo contra as ameaças detectadas. Ou seja, esta

solução de código aberto tem potencial de melhora.

Do ponto de vista empreendedor, o OpenID é nada menos que uma revolução,

pois caracteriza-se solução open source que compete contra outras tecnologias já

existentes no mercado há muito mais tempo e seu potencial para expansão e robustez

são bastante palpáveis. A OpenID Foundation e seus colaboradores têm, para esta

tecnologia, o objetivo de tentar torná-la o padrão definitivo para autenticação SSO.

41

6 REFERÊNCIAS

AHMAD, Z.; MANAN, J. A.; SULAIMAN, S. Trusted Computing based open environment user authentication model. Anais...: 2010 3RD INTERNATIONAL

CONFERENCE ON ADVANCED COMPUTER THEORY AND ENGINEERING (ICACTE). 2010.

ASSIS, V. M. DE. Sistema de Identificação OpenID. Trabalho de Conclusão de

Curso. Rio de Janeiro: Universidade Federal do Rio de Janeiro, 2010.

BALFANZ, D. et al. OpenID OAuth Extension. Disponível em: <http://step2.googlecod

e.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html>. Acesso em: 7 mai. 2013.

BELLAMY-MCINTYRE, J.; LUTERROTH, C.; WEBER, G. OpenID and the Enterprise: A Model-Based Analysis of Single Sign-On Authentication. Enterprise Distributed Object Computing Conference (EDOC), 2011 15th IEEE International. Anais...: ENTERPRISE DISTRIBUTED OBJECT COMPUTING CONFERENCE (EDOC), 2011 15TH IEEE

INTERNATIONAL. 29 set. 2011.

BERNAL, V. B. 2006. Análise comparativa de “sistemas de autenticação” utilizados em Internetbanking. Disponível em:

<http://www.lsi.usp.br/~volnys/academic/trabalhos-orientados/Analise-comparativade-sistemas-de-autenticacao-utilizados-em-internetbanking.pdf>. Acesso em: 22 abr. 2013.

BUCKER, A. et al. Federated Identity Management And Web Services Security With IBM Tivoli Security Solutions. Vervante, 2005.

CARMODY, S. et al. InCommon technical requirements and information. Vol. 2005.

CHADWICK, D. W. Foundations of Security Analysis and Design V. In: ALDINI, A.; BARTHE, G.; GORRIERI, R. (Eds.). Berlin, Heidelberg: Springer-Verlag, 2009. p. 96–120.

CHAPPEL, D. Introducing Windows CardSpace. Msdn technical articles. Disponível

em: <http://msdn.microsoft.com/en-us/library/aa480189.aspx>. Acesso em: 16 maio. 2013.

CHARAS, M. Security in OpenID. Tese de Mestrado—Suécia: Royal Institute of Technology, 2009.

CHU, D.; LIAO, Q.; ZHAO, J. Open identity management framework for mashup. Anais... In: IEEE 2ND SYMPOSIUM ON WEB SOCIETY (SWS). 2010.

42

FELD, S.; POHLMANN, N. Security analysis of OpenID, followed by a reference implementation of an nPA-based OpenID provider. Gelsenkirchen University of Applied Sciences, 2010. Disponível em:

<https://www.internet-sicherheit.de/fileadmin/images/team/Security-analysis-of-OpenID-ISSE-2010-paper.pdf>. Acesso em: 13 maio. 2013.

GALVÃO, A. S. P. Análise dos aspectos de segurança dos protocolos de

compartilhamento NFS e CIFS. Trabalho de Conclusão de Curso. São Paulo:

Faculdade SENAC de Ciências Exatas e Tecnologia, 2005.

GUIMARÃES, R. S. Análise comparativa de sistemas de autenticação utilizados

em Internet Banking. Trabalho de Conclusão de Curso. São Paulo: Faculdade

SENAC de Ciências Exatas e Tecnologia, 2006.

IONITA, M. G. Secure Single Sign-On using CAS and OpenID. Journal of Mobile, Embedded and Distributed Systems, v. 4, n. 3, p. 159–167, 30 set. 2012.

ISO/IEC 17799:2005. Information technology – Security technical – Code of pratice for information security management.

KUMARAGURU, P. et al. Protecting People from Phishing: The Design and Evaluation of an Embedded Training Email System. Relatório Técnico CMU-CyLab-

06-017, CyLab, Carnegie Mellon University. Novembro, 2006.

LODHA, A; SARMA, R. A Single Sign-On Approach. Avenue A | Razorfish Slant. Mar.

2006.

MALER, E.; REED, D. The Venn of Identity: Options and Issues in Federated Identity Management. IEEE Security Privacy, v. 6, n. 2, p. 16–23, 2008.

MSDN LIBRARY. Microsoft Kerberos (Windows). Especificação. Disponível em:

<http://msdn.microsoft.com/en-us/library/aa378747(VS.85).aspx>. Acesso em: 14 jun. 2013.

NEUMAN, B. C.; TS’O, T. Kerberos: An Authentication Service for Computer Networks: USC/ISI. IEEE Communications, Sep 94. Disponível em:

<http://gost.isi.edu/publications/kerberos-neuman-tso.html>. Acesso em: 14 jun. 2013.

OH, H.-K.; JIN, S.-H. The Security Limitations of SSO in OpenID. 10th International Conference on Advanced Communication Technology, 2008. ICACT 2008. Anais...:

43

10TH INTERNATIONAL CONFERENCE ON ADVANCED COMMUNICATION TECHNOLOGY (ICACT), 2008.

OpenID FOUNDATION. OpenID Authentication 1.1. Disponível em:

<http://OpenID.net/specs/OpenID-authentication-1_1.html>. 2006. Acesso em: 22 abr. 2013.

PEIXOTO, M. Uma análise geral sobre Single Sign On. Webinsider. 9 Jan 2012.

RECORDON, D.; REED, D. OpenID 2.0. ACM Press, 2006. Disponível em:

<http://portal.acm.org/citation.cfm?doid=1179529.1179532>. Acesso em: 21 abr.

2013

ROGAWAY, P. Nonce-based symmetric encryption. Anais...: Fast Software Encryption, 2004. Disponível em: <http://link.springer.com/chapter/10.1007/978-3-540-25937-4_22>. Acesso em: 17 maio. 2013

SABINO, A. 2005. Análise dos aspectos de segurança dos protocolos de compartilhamento NFS e CIFS. Disponível em:

<http://www.lsi.usp.br/~volnys/academic/trabalhos-orientados/Analise-dos-aspectosde-seguranca-dos-protocolos-de-compartilhamento-NFS-e-CIFS.pdf>.

Acesso em: 22 abr. 2013.

SHIBBOLETH CONSORTIUM. What’s Shibboleth?. Disponível em:

<http://shibboleth.net/about/index.html>. Acesso em: 10 maio. 2013.

SOVIS, P.; KOHLAR, F.; SCHWENK, J. Security Analysis of OpenID. Anais...:

Information Security Solutions Europe (ISSE’10) Conference. Disponível em: <http://subs.emis.de/LNI/Proceedings/Proceedings170/329.pdf>. Acesso em: 13 maio. 2013

SUN, S.-T. et al. OpenID-enabled browser: towards usable and secure web single sign-on. CHI ’11 Extended Abstracts on Human Factors in Computing Systems. Anais...: CHI EA ’11.New York, NY, USA: ACM, 2011. Disponível em:

<http://doi.acm.org/10.1145/1979742.1979763>. Acesso em: 13 mar. 2013;

WANG, H. et al. A New Secure OpenID Authentication Mechanism Using OneTime Password (OTP). 2011 7th International Conference on Wireless

Communications, Networking and Mobile Computing (WiCOM). Anais... In: 2011 7TH

INTERNATIONAL CONFERENCE ON WIRELESS COMMUNICATIONS,

NETWORKING AND MOBILE COMPUTING (WICOM). Set 2011.

44

WANG, R.; CHEN, S.; WANG, X. Signing Me onto Your Accounts through Facebook and Google: A Traffic-Guided Security Study of Commercially Deployed Single-Sign-On Web Services. 2012 IEEE Symposium on Security and Privacy (SP). Anais...: 2012 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP). 2012

WANGHAM, M. S. et al. Gerenciamento de identidades federadas. Minicurso SBSeg 2010 Fortaleza-CE, 2010.

WATANABE, R.; TANAKA, T. Federated Authentication Mechanism using Cellular Phone - Collaboration with OpenID. Anais... In: SIXTH INTERNATIONAL

CONFERENCE ON INFORMATION TECHNOLOGY: NEW GENERATIONS, 2009. ITNG ’09. 2009.

YAHOO!. Selo de autenticidade personalizado do Yahoo! Disponível em: <https://protect.login.yahoo.com>. Acesso em: 3 jun. 2013.

YOU, X. e ZHU, Y. Research and Design of Web Single Sign-On Scheme. 2012

IEEE Symposium on Robotics and Applications (ISRA). Anais... In: 2012 IEEE

SYMPOSIUM ON ROBOTICS AND APPLICATIONS (ISRA). Jun 2012.

ZHAO, G.; ZHENG, D.; CHEN, K. Design of single sign-on. IEEE International

Conference on E-Commerce Technology for Dynamic E-Business, 2004. Anais... In:

IEEE INTERNATIONAL CONFERENCE ON E-COMMERCE TECHNOLOGY FOR

DYNAMIC E-BUSINESS, 2004