Download - OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Transcript
Page 1: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

OAuth 1.0 vs OAuth 2.0 - Principaisdiferencas e as razoes para a criacao de umnovo protocolo de delegacao de credenciais.

Joao Alves

ISCTE-IUL

15 de Julho de 2011

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 2: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

1 IntroducaoSenhas

2 O protocolo OAuth 1.0PapeisTokens e CredenciaisConversacao OAuth 1.0Problemas com o OAuth 1.0

3 O protocolo OAuth 2.0Conversacao OAuth 2.0

4 Problemas potenciais

5 Conclusoes

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 3: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Sumario

1 IntroducaoSenhas

2 O protocolo OAuth 1.0PapeisTokens e CredenciaisConversacao OAuth 1.0Problemas com o OAuth 1.0

3 O protocolo OAuth 2.0Conversacao OAuth 2.0

4 Problemas potenciais

5 Conclusoes

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 4: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Desde que existem computadores que ha utilizadores e senhas.A gestao de senhas tem sido sempre uma questao complicada, poisna maioria das vezes elas representam o elo mais fraco na cadeiade seguranca. Como demonstrado empiricamente no estudorealizado por Hayashi, ”todos os participantes, excepto umreutiliza as suas senhas para multiplas contas/sistemas” e noutroestudo feito por Gaw onde ”os participantes relataram ter apenasalgumas senhas unicas”.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 5: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Senhas

Schneier escreveu ”a abordagem tradicional para autenticacao euma senha”. Stallings escreveu ”A linha de frente de defesa contraintrusos e o sistema de senhas”, Schneier destacou que”infelizmente, o sistema utilizador/senha funciona pior do aspessoas pensam”. Gollmann acredita que ”com as senhas, tem-seobservado um trade-off entre a complexidade das senhas e asfaculdades da memoria humana em decora-las”. Com base emestudos Gaw demonstra que ”[...] as taxas de reutilizacao desenhas aumentaram porque as pessoas dispoem de mais contas,mas nao criam mais senhas.”.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 6: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Senhas

Se acrescentarmos a necessidade de dar o nosso proprioutilizador/senha para uma entidade terceira executar uma accao nanossa informacao seria realmente uma ma ideia.O protocolo OAuth vem como solucao para este problema.Este protocolo foi criado como um metodo standard para permitirque os clientes acedam a recursos do servidor, em nome doproprietario de um recurso (o utilizador). Tem a capacidade defazer isso sem dar ao cliente as credenciais do proprietario dorecurso.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 7: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Sumario

1 IntroducaoSenhas

2 O protocolo OAuth 1.0PapeisTokens e CredenciaisConversacao OAuth 1.0Problemas com o OAuth 1.0

3 O protocolo OAuth 2.0Conversacao OAuth 2.0

4 Problemas potenciais

5 Conclusoes

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 8: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

No modelo tradicional de autenticacao cliente-servidor, o clienteusa as suas credenciais para aceder aos seus recursos armazenadospelo servidor. O OAuth introduz um terceiro papel com estemodelo: o proprietario do recurso. No modelo OAuth, o cliente(que nao e o proprietario do recurso, mas quem esta a actuar emseu nome) faz pedidos de acesso aos recursos controlados peloproprietario do recurso, mas armazenado pelo servidor (servidor derecursos protegidos).

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 9: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Para que o cliente possa aceder aos recursos, ele primeiro tem deobter permissao do proprietario do recurso. Essa permissao eexpressa na forma de um Token e o correspondente segredopartilhado (shared-secret). O objectivo do Token e tornardesnecessaria para o proprietario do recurso a partilha das suascredenciais (utilizador/senha) com o cliente. Ao contrario dascredenciais do proprietario do recurso, os Tokens podem seremitidos com um ambito restrito e vida util limitada, e revogadosde forma independente.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 10: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Principais Caracteristicas:

Desenhado para HTTP

Definido no RFC 5849

Baseado em alguns protocolos proprietarios (Google AuthSub,API Flickr e Yahoo BBAuth)

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 11: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Ao fornecer um Token e o correspondente segredo partilhado(shared-secret) e possıvel para o proprietario do recurso dar acessoa um recurso protegido sem revelar as suas credenciais(utilizador/senha) ao servico final que vai aceder aos dados(cliente). Para tudo isto e necessario que o servidor de recursosprotegidos e o cliente suportem o protocolo OAuth.O Token adiciona uma vantagem adicional para o acessopretendido, por ser capaz de definir o ambito do acesso e o perıodode tempo no qual e valido.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 12: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Papeis

Ha tres entidades principais envolvidas numa conversacao OAuth:

Proprietario do recurso - o utilizador final;

Cliente - aquele que vai aceder aos recursos, tipicamente umservidor;

Servidor de recursos protegidos - o servidor que alberga osrecursos do proprietario.

Estes papeis sao usados em qualquer transaccao OAuth. Por vezes,o proprietario do recurso e o cliente sao o mesmo.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 13: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Tokens e Credenciais

O OAuth usa tres tipos de credenciais:

Credenciais do Cliente

As credenciais do cliente sao usadas para autenticar o cliente.

Credenciais de Token

As credenciais de Token sao usadas em vez do nome doproprietario dos recursos e da senha.

Credenciais temporarias

O processo de autorizacao OAuth tambem usa um conjunto decredenciais temporarias que sao usadas para identificar o pedido deautorizacao.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 14: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Conversacao OAuth 1.0

A autenticacao OAuth e o processo no qual os utilizadoresconcedem acesso aos seus recursos protegidos sem partilhar as suascredenciais com o cliente. O OAuth usa Tokens gerados peloServidor de recursos protegidos em vez de credenciais do utilizadorem pedidos de recursos protegidos. O processo utiliza dois tipos deToken: Tokens de pedido e Tokens de acesso.

Token de pedido

Utilizado pelo cliente para pedir ao utilizador para autorizar oacesso aos recursos protegidos.

Token de Acesso

Utilizado pelo cliente para aceder aos recursos protegidos em nomedo utilizador.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 15: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Conversacao OAuth 1.0

Processo de Autenticacao

Todos os pedidos baseados em OAuth sao muito parecidos. Esta aser identificado um recurso para o qual se quer fazer um pedido, econstruıda uma cadeia (string) que descreve o pedido e as suascredenciais para faze-lo, e entao a cadeia (string) e assinadausando um conjunto de segredos.

E como enderecar uma carta onde o endereco e o carimbo naodescrevem apenas o destino, mas tambem o conteudo.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 16: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Conversacao OAuth 1.0

Ciclo do pedido OAuth:

1 E pedido um Token de pedido e e especificado o seu retorno;

2 O utilizador e redireccionado para o ecra de autorizacao (noServidor de recursos protegidos);

3 Podera neste momento receber uma chamada de retornonuma URL que foi especificada em 1, ou o membro digita umcodigo PIN (autenticacao out-of-band);

4 Pedir Token de acesso;

5 Fazer chamadas a API do Servidor de recursos protegidos.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 17: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Conversacao OAuth 1.0

Figura: Fluxo de Autenticacao OAUTH 1.0a

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 18: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Problemas com o OAuth 1.0

Conversacao criptografica complexa

A forma como o OAuth 1.0 e implementado torna a criacao descripts complexa devido a conversacao criptografica envolvida nanegociacao do Token.

suporte de aplicacoes nao-web

E necessario encaminhar o utilizador para abrir o browser para oservico desejado, autenticar com o servico, e copiar o Token doservico de volta para a aplicacao.

Perıodo de vida longo dos Tokens

Os Tokens gerados por esta versao tem um perıodo de vida longo epoderao ser usados por um longo perıodo de tempo.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 19: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Problemas com o OAuth 1.0

Parsing complicado

Uma vez que esta versao do protocolo pode ser implementadausando HTTP nao criptografado, e necessario que a aplicacao usehashs Token HMAC e cadeias de pedidos. Para o protocolofuncionar e igualmente necessario fazer um conjunto especial deaccoes (parsing) que apresentam uma complexidade elevada.

Problemas de Escalabilidade

A escalabilidade e complexa devido a existencia de um processo degestao do estado do protocolo nas diferentes etapas, comcredenciais temporarias e de acesso que possivelmente requerem aemissao de credenciais de longa duracao, que sao menos seguras emais difıceis de gerir (e sincronizar em grandes ambientes).

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 20: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Problemas com o OAuth 1.0

Alem disso, o OAuth 1.0 requer que os pontos terminais protegidosdos recursos tenham acesso as credenciais do cliente, a fim devalidar o pedido. Isto impossibilita a arquitectura tıpica da maioriados grandes fornecedores em que um servidor centralizado deautorizacao e usado para a emissao de credenciais, e um servidorseparado e usado para chamadas de API. O OAuth 1.0 requer ouso dos dois conjuntos de credenciais: as credenciais do cliente eas credenciais Token o que faz com que essa separacao seja muitocomplexa.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 21: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Sumario

1 IntroducaoSenhas

2 O protocolo OAuth 1.0PapeisTokens e CredenciaisConversacao OAuth 1.0Problemas com o OAuth 1.0

3 O protocolo OAuth 2.0Conversacao OAuth 2.0

4 Problemas potenciais

5 Conclusoes

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 22: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Principais caracteristicas:

Protocolo novo incompativel com o 1.0;

E o resultado de um trabalho colaborativo de um grandenumero de empresas como Yahoo, Facebook, Salesforce,Microsoft, Twitter, Deutsche Telekom, Intuit, Mozilla eGoogle;

Adopcao rapida desta tecnologia por parte de Facebook,Twitter e Google;

Ainda nao se encontra na sua versao final.

No momento em que foi escrito este artigo, o protocolo aindaestava em desenvolvimento sendo ainda um projecto IETF-draft.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 23: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Quatro areas gerais onde mudou:

O SSL passou a ser necessario em todas as comunicacoesquando e necessario para gerar o Token;

As assinaturas nao sao necessarias para as chamadas a API apartir do momento que o Token e gerado;

Apenas um Token de seguranca, e a assinatura nao enecessaria;

A separacao de proprietario de recursos e servidor deautorizacao e clara.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 24: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Alem de implementar todas as ”boas”caracterısticas de 1.0 saocriadas algumas novas:

Seis novos fluxos;

Tokens Bearer;

Assinaturas simplificadas;

Tokens de curta duracao com autorizacoes de vida longa;

Separacao de Papeis

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 25: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Seis novos fluxos

User-Agent - para clientes que sao executados dentro de umagente de utilizador (geralmente um browser web).

Web Server - para clientes que fazem parte de uma aplicacaode servidor web, acessıvel atraves de solicitacoes HTTP.

Dispositivo - para clientes executados em dispositivoslimitados - requer acesso independente a um browser.

Utilizador e Senha - utilizado nos casos em que o utilizadorconfia no cliente para lidar com as suas credenciais.

Credenciais clientes - o cliente usa suas credenciais para obterum Token de acesso.

Afirmacao (assertion) - o cliente apresenta uma afirmacaoSAML para o servidor de autorizacao.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 26: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Tokens Bearer

Opcao sem criptografia para autenticacao, que se baseia naarquitectura existente cookie de autenticacao. Em vez de enviar ospedidos assinados com segredos e HMAC Token, o Token e usadocomo um segredo e enviado atraves de SSL.

Outros tipos de Tokens

MAC - e equivalente ao esquema de Token no OAuth 1.0

SAML - usa afirmacoes SAML 2.0 em cada pedido como umaforma de estabelecer a identidade do cliente.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 27: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Assinaturas Simplificadas

O Suporte a assinatura foi significativamente simplificado pararemover a necessidade de tratamento especial, codificacao eclassificacao dos parametros.

Tokens de curta duracao com autorizacoes de vida longa

Em vez de emitir um Token de longa duracao (normalmente porum ano ou eterno), o servidor pode emitir um Token de acesso decurta duracao e uma vida longa do Token de actualizacao.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 28: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Separacao de papeis

O OAuth 2.0 separa o papel do servidor de autorizacao responsavelpela obtencao da autorizacao do utilizador e a emissao de Tokensdo servidor de recursos que trata das chamadas a API. Assim, e emcontraponto com o OAuth 1.0 existem claramente quatro papeis:

Proprietario do recurso - o utilizador final;

Cliente - aquele que precisa de aceder aos recursos,tipicamente um servidor;

Servidor de recursos protegidos - o servidor que alberga osrecursos do proprietario;

Servidor de Autorizacao - o servidor que emite os Tokens parao Cliente.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 29: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Conversacao OAuth 2.0

Figura: OAuth 2.0 Protocol FLOW

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 30: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Conversacao OAuth 2.0

O processo de conversacao do protocolo pode ser descrito em seispassos:

(A) O cliente solicita autorizacao ao proprietario do recurso.

(B) O cliente recebe uma concessao de autorizacao, que representaa autorizacao fornecida pelo proprietario do recurso.

(C) O cliente solicita um Token de acesso autenticando-se juntodo servidor com a concessao de autorizacao.

(D) O servidor de autorizacao autentica o cliente e valida aconcessao de autorizacao, e se esta for valida emite o Tokende acesso.

(E) O cliente pede o recurso protegido ao servidor de recursosprotegidos e autentica-se com o Token de acesso.

(F) O servidor de recursos valida o Token de acesso, e se forvalido, serve o pedido.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 31: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Sumario

1 IntroducaoSenhas

2 O protocolo OAuth 1.0PapeisTokens e CredenciaisConversacao OAuth 1.0Problemas com o OAuth 1.0

3 O protocolo OAuth 2.0Conversacao OAuth 2.0

4 Problemas potenciais

5 Conclusoes

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 32: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Problemas potenciais:

Ataques de Phishing

CSRF, o Clickjacking

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 33: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Sumario

1 IntroducaoSenhas

2 O protocolo OAuth 1.0PapeisTokens e CredenciaisConversacao OAuth 1.0Problemas com o OAuth 1.0

3 O protocolo OAuth 2.0Conversacao OAuth 2.0

4 Problemas potenciais

5 Conclusoes

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 34: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Conclusoes

Neste momento, e atendendo a que o OAuth 2.0 ainda nao e umstandard, as implementacoes que estiverem a ser desenvolvidasdevem ficar preparadas para serem ajustadas a medida que os”servidores de recursos protegidos”e as APIs forem actualizando oprotocolo de acordo com a evolucao do draft.Por outro lado, a necessidade de utilizar um ou outro protocoloesta sempre dependente do que os grandes ”players” da Internetdisponibilizam e se os servicos que se pretende consumir suportamum protocolo ou outro. A tıtulo de exemplo o Twitter, o Facebooke o Google ja disponibilizam servicos suportados somente em 2.0.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 35: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Conclusoes

Caso seja necessario implementar as componentes de servidor derecursos protegidos e servidor de autorizacao (caso seja um servicona rede) faz todo o sentido usar o OAuth 2.0 dada a esperadalongividade que este ira ter face ao 1.0.O grau de maturidade do draft – analisado o draft-ietf-oauth-v2-18– apresenta ja um aspecto bastante proximo do que sera oprotocolo final publicado em RFC, ficando ainda por clarificaralguns aspectos como o Registo dos Clientes, a definicao do URIde redireccionamento ou a definicao de tipos de endpoints deautorizacao.

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.

Page 36: OAuth 1.0 vs OAuth 2.0 - Principais diferenças e as razões para a criação de um novo protocolo de delegação de Credenciais

Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes

Obrigado. Questoes?

Joao Alves ISCTE-IUL

OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.