SlideShare a Scribd company logo
1 of 36
Download to read offline
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
OAuth 1.0 vs OAuth 2.0 - Principais
diferen¸cas e as raz˜oes para a cria¸c˜ao de um
novo protocolo de delega¸c˜ao de credenciais.
Jo˜ao Alves
ISCTE-IUL
15 de Julho de 2011
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
1 Introdu¸c˜ao
Senhas
2 O protocolo OAuth 1.0
Pap´eis
Tokens e Credenciais
Conversa¸c˜ao OAuth 1.0
Problemas com o OAuth 1.0
3 O protocolo OAuth 2.0
Conversa¸c˜ao OAuth 2.0
4 Problemas potenciais
5 Conclus˜oes
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Sum´ario
1 Introdu¸c˜ao
Senhas
2 O protocolo OAuth 1.0
Pap´eis
Tokens e Credenciais
Conversa¸c˜ao OAuth 1.0
Problemas com o OAuth 1.0
3 O protocolo OAuth 2.0
Conversa¸c˜ao OAuth 2.0
4 Problemas potenciais
5 Conclus˜oes
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Desde que existem computadores que h´a utilizadores e senhas.
A gest˜ao de senhas tem sido sempre uma quest˜ao complicada, pois
na maioria das vezes elas representam o elo mais fraco na cadeia
de seguran¸ca. Como demonstrado empiricamente no estudo
realizado por Hayashi, ”todos os participantes, excepto um
reutiliza as suas senhas para m´ultiplas contas/sistemas” e noutro
estudo feito por Gaw onde ”os participantes relataram ter apenas
algumas senhas ´unicas”.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Senhas
Schneier escreveu ”a abordagem tradicional para autentica¸c˜ao ´e
uma senha”. Stallings escreveu ”A linha de frente de defesa contra
intrusos ´e o sistema de senhas”, Schneier destacou que
”infelizmente, o sistema utilizador/senha funciona pior do as
pessoas pensam”. Gollmann acredita que ”com as senhas, tˆem-se
observado um trade-off entre a complexidade das senhas e as
faculdades da mem´oria humana em decor´a-las”. Com base em
estudos Gaw demonstra que ”[...] as taxas de reutiliza¸c˜ao de
senhas aumentaram porque as pessoas disp˜oem de mais contas,
mas n˜ao criam mais senhas.”.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Senhas
Se acrescentarmos a necessidade de dar o nosso pr´oprio
utilizador/senha para uma entidade terceira executar uma ac¸c˜ao na
nossa informa¸c˜ao seria realmente uma m´a ideia.
O protocolo OAuth vem como solu¸c˜ao para este problema.
Este protocolo foi criado como um m´etodo standard para permitir
que os clientes acedam a recursos do servidor, em nome do
propriet´ario de um recurso (o utilizador). Tem a capacidade de
fazer isso sem dar ao cliente as credenciais do propriet´ario do
recurso.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Sum´ario
1 Introdu¸c˜ao
Senhas
2 O protocolo OAuth 1.0
Pap´eis
Tokens e Credenciais
Conversa¸c˜ao OAuth 1.0
Problemas com o OAuth 1.0
3 O protocolo OAuth 2.0
Conversa¸c˜ao OAuth 2.0
4 Problemas potenciais
5 Conclus˜oes
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
No modelo tradicional de autentica¸c˜ao cliente-servidor, o cliente
usa as suas credenciais para aceder aos seus recursos armazenados
pelo servidor. O OAuth introduz um terceiro papel com este
modelo: o propriet´ario do recurso. No modelo OAuth, o cliente
(que n˜ao ´e o propriet´ario do recurso, mas quem est´a a actuar em
seu nome) faz pedidos de acesso aos recursos controlados pelo
propriet´ario do recurso, mas armazenado pelo servidor (servidor de
recursos protegidos).
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Para que o cliente possa aceder aos recursos, ele primeiro tem de
obter permiss˜ao do propriet´ario do recurso. Essa permiss˜ao ´e
expressa na forma de um Token e o correspondente segredo
partilhado (shared-secret). O objectivo do Token ´e tornar
desnecess´aria para o propriet´ario do recurso a partilha das suas
credenciais (utilizador/senha) com o cliente. Ao contr´ario das
credenciais do propriet´ario do recurso, os Tokens podem ser
emitidos com um ˆambito restrito e vida ´util limitada, e revogados
de forma independente.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Principais Caracteristicas:
Desenhado para HTTP
Definido no RFC 5849
Baseado em alguns protocolos propriet´arios (Google AuthSub,
API Flickr e Yahoo BBAuth)
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Ao fornecer um Token e o correspondente segredo partilhado
(shared-secret) ´e poss´ıvel para o propriet´ario do recurso dar acesso
a um recurso protegido sem revelar as suas credenciais
(utilizador/senha) ao servi¸co final que vai aceder aos dados
(cliente). Para tudo isto ´e necess´ario que o servidor de recursos
protegidos e o cliente suportem o protocolo OAuth.
O Token adiciona uma vantagem adicional para o acesso
pretendido, por ser capaz de definir o ˆambito do acesso e o per´ıodo
de tempo no qual ´e v´alido.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Pap´eis
H´a trˆes entidades principais envolvidas numa conversa¸c˜ao OAuth:
Propriet´ario do recurso - o utilizador final;
Cliente - aquele que vai aceder aos recursos, tipicamente um
servidor;
Servidor de recursos protegidos - o servidor que alberga os
recursos do propriet´ario.
Estes pap´eis s˜ao usados em qualquer transac¸c˜ao OAuth. Por vezes,
o propriet´ario do recurso e o cliente s˜ao o mesmo.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Tokens e Credenciais
O OAuth usa trˆes tipos de credenciais:
Credenciais do Cliente
As credenciais do cliente s˜ao usadas para autenticar o cliente.
Credenciais de Token
As credenciais de Token s˜ao usadas em vez do nome do
propriet´ario dos recursos e da senha.
Credenciais tempor´arias
O processo de autoriza¸c˜ao OAuth tamb´em usa um conjunto de
credenciais tempor´arias que s˜ao usadas para identificar o pedido de
autoriza¸c˜ao.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Conversa¸c˜ao OAuth 1.0
A autentica¸c˜ao OAuth ´e o processo no qual os utilizadores
concedem acesso aos seus recursos protegidos sem partilhar as suas
credenciais com o cliente. O OAuth usa Tokens gerados pelo
Servidor de recursos protegidos em vez de credenciais do utilizador
em pedidos de recursos protegidos. O processo utiliza dois tipos de
Token: Tokens de pedido e Tokens de acesso.
Token de pedido
Utilizado pelo cliente para pedir ao utilizador para autorizar o
acesso aos recursos protegidos.
Token de Acesso
Utilizado pelo cliente para aceder aos recursos protegidos em nome
do utilizador.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Conversa¸c˜ao OAuth 1.0
Processo de Autentica¸c˜ao
Todos os pedidos baseados em OAuth s˜ao muito parecidos. Est´a a
ser identificado um recurso para o qual se quer fazer um pedido, ´e
constru´ıda uma cadeia (string) que descreve o pedido e as suas
credenciais para fazˆe-lo, e ent˜ao a cadeia (string) ´e assinada
usando um conjunto de segredos.
´E como endere¸car uma carta onde o endere¸co e o carimbo n˜ao
descrevem apenas o destino, mas tamb´em o conte´udo.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Conversa¸c˜ao 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 ecr˜a de autoriza¸c˜ao (no
Servidor de recursos protegidos);
3 Poder´a neste momento receber uma chamada de retorno
numa URL que foi especificada em 1, ou o membro digita um
c´odigo PIN (autentica¸c˜ao out-of-band);
4 Pedir Token de acesso;
5 Fazer chamadas `a API do Servidor de recursos protegidos.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Conversa¸c˜ao OAuth 1.0
Figura: Fluxo de Autentica¸c˜ao OAUTH 1.0a
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Problemas com o OAuth 1.0
Conversa¸c˜ao criptogr´afica complexa
A forma como o OAuth 1.0 ´e implementado torna a cria¸c˜ao de
scripts complexa devido `a conversa¸c˜ao criptogr´afica envolvida na
negocia¸c˜ao do Token.
suporte de aplica¸c˜oes n˜ao-web
´E necess´ario encaminhar o utilizador para abrir o browser para o
servi¸co desejado, autenticar com o servi¸co, e copiar o Token do
servi¸co de volta para a aplica¸c˜ao.
Per´ıodo de vida longo dos Tokens
Os Tokens gerados por esta vers˜ao tˆem um per´ıodo de vida longo e
poder˜ao ser usados por um longo per´ıodo de tempo.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Problemas com o OAuth 1.0
Parsing complicado
Uma vez que esta vers˜ao do protocolo pode ser implementada
usando HTTP n˜ao criptografado, ´e necess´ario que a aplica¸c˜ao use
hashs Token HMAC e cadeias de pedidos. Para o protocolo
funcionar ´e igualmente necess´ario fazer um conjunto especial de
ac¸c˜oes (parsing) que apresentam uma complexidade elevada.
Problemas de Escalabilidade
A escalabilidade ´e complexa devido `a existˆencia de um processo de
gest˜ao do estado do protocolo nas diferentes etapas, com
credenciais tempor´arias e de acesso que possivelmente requerem a
emiss˜ao de credenciais de longa dura¸c˜ao, que s˜ao menos seguras e
mais dif´ıceis de gerir (e sincronizar em grandes ambientes).
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Problemas com o OAuth 1.0
Al´em disso, o OAuth 1.0 requer que os pontos terminais protegidos
dos recursos tenham acesso `as credenciais do cliente, a fim de
validar o pedido. Isto impossibilita a arquitectura t´ıpica da maioria
dos grandes fornecedores em que um servidor centralizado de
autoriza¸c˜ao ´e usado para a emiss˜ao de credenciais, e um servidor
separado ´e usado para chamadas de API. O OAuth 1.0 requer o
uso dos dois conjuntos de credenciais: as credenciais do cliente e
as credenciais Token o que faz com que essa separa¸c˜ao seja muito
complexa.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Sum´ario
1 Introdu¸c˜ao
Senhas
2 O protocolo OAuth 1.0
Pap´eis
Tokens e Credenciais
Conversa¸c˜ao OAuth 1.0
Problemas com o OAuth 1.0
3 O protocolo OAuth 2.0
Conversa¸c˜ao OAuth 2.0
4 Problemas potenciais
5 Conclus˜oes
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Principais caracteristicas:
Protocolo novo incompativel com o 1.0;
´E o resultado de um trabalho colaborativo de um grande
n´umero de empresas como Yahoo, Facebook, Salesforce,
Microsoft, Twitter, Deutsche Telekom, Intuit, Mozilla e
Google;
Adop¸c˜ao r´apida desta tecnologia por parte de Facebook,
Twitter e Google;
Ainda n˜ao se encontra na sua vers˜ao final.
No momento em que foi escrito este artigo, o protocolo ainda
estava em desenvolvimento sendo ainda um projecto IETF-draft.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Quatro ´areas gerais onde mudou:
O SSL passou a ser necess´ario em todas as comunica¸c˜oes
quando ´e necess´ario para gerar o Token;
As assinaturas n˜ao s˜ao necess´arias para as chamadas `a API a
partir do momento que o Token ´e gerado;
Apenas um Token de seguran¸ca, e a assinatura n˜ao ´e
necess´aria;
A separa¸c˜ao de propriet´ario de recursos e servidor de
autoriza¸c˜ao ´e clara.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Al´em de implementar todas as ”boas”caracter´ısticas de 1.0 s˜ao
criadas algumas novas:
Seis novos fluxos;
Tokens Bearer;
Assinaturas simplificadas;
Tokens de curta dura¸c˜ao com autoriza¸c˜oes de vida longa;
Separa¸c˜ao de Pap´eis
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Seis novos fluxos
User-Agent - para clientes que s˜ao executados dentro de um
agente de utilizador (geralmente um browser web).
Web Server - para clientes que fazem parte de uma aplica¸c˜ao
de servidor web, acess´ıvel atrav´es de solicita¸c˜oes HTTP.
Dispositivo - para clientes executados em dispositivos
limitados - requer acesso independente a um browser.
Utilizador e Senha - utilizado nos casos em que o utilizador
confia no cliente para lidar com as suas credenciais.
Credenciais clientes - o cliente usa suas credenciais para obter
um Token de acesso.
Afirma¸c˜ao (assertion) - o cliente apresenta uma afirma¸c˜ao
SAML para o servidor de autoriza¸c˜ao.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Tokens Bearer
Op¸c˜ao sem criptografia para autentica¸c˜ao, que se baseia na
arquitectura existente cookie de autentica¸c˜ao. Em vez de enviar os
pedidos assinados com segredos e HMAC Token, o Token ´e usado
como um segredo e enviado atrav´es de SSL.
Outros tipos de Tokens
MAC - ´e equivalente ao esquema de Token no OAuth 1.0
SAML - usa afirma¸c˜oes SAML 2.0 em cada pedido como uma
forma de estabelecer a identidade do cliente.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Assinaturas Simplificadas
O Suporte `a assinatura foi significativamente simplificado para
remover a necessidade de tratamento especial, codifica¸c˜ao e
classifica¸c˜ao dos parˆametros.
Tokens de curta dura¸c˜ao com autoriza¸c˜oes de vida longa
Em vez de emitir um Token de longa dura¸c˜ao (normalmente por
um ano ou eterno), o servidor pode emitir um Token de acesso de
curta dura¸c˜ao e uma vida longa do Token de actualiza¸c˜ao.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Separa¸c˜ao de pap´eis
O OAuth 2.0 separa o papel do servidor de autoriza¸c˜ao respons´avel
pela obten¸c˜ao da autoriza¸c˜ao do utilizador e a emiss˜ao de Tokens
do servidor de recursos que trata das chamadas `a API. Assim, e em
contraponto com o OAuth 1.0 existem claramente quatro pap´eis:
Propriet´ario do recurso - o utilizador final;
Cliente - aquele que precisa de aceder aos recursos,
tipicamente um servidor;
Servidor de recursos protegidos - o servidor que alberga os
recursos do propriet´ario;
Servidor de Autoriza¸c˜ao - o servidor que emite os Tokens para
o Cliente.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Conversa¸c˜ao OAuth 2.0
Figura: OAuth 2.0 Protocol FLOW
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Conversa¸c˜ao OAuth 2.0
O processo de conversa¸c˜ao do protocolo pode ser descrito em seis
passos:
(A) O cliente solicita autoriza¸c˜ao ao propriet´ario do recurso.
(B) O cliente recebe uma concess˜ao de autoriza¸c˜ao, que representa
a autoriza¸c˜ao fornecida pelo propriet´ario do recurso.
(C) O cliente solicita um Token de acesso autenticando-se junto
do servidor com a concess˜ao de autoriza¸c˜ao.
(D) O servidor de autoriza¸c˜ao autentica o cliente e valida a
concess˜ao de autoriza¸c˜ao, e se esta for v´alida emite o Token
de acesso.
(E) O cliente pede o recurso protegido ao servidor de recursos
protegidos e autentica-se com o Token de acesso.
(F) O servidor de recursos valida o Token de acesso, e se for
v´alido, serve o pedido.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Sum´ario
1 Introdu¸c˜ao
Senhas
2 O protocolo OAuth 1.0
Pap´eis
Tokens e Credenciais
Conversa¸c˜ao OAuth 1.0
Problemas com o OAuth 1.0
3 O protocolo OAuth 2.0
Conversa¸c˜ao OAuth 2.0
4 Problemas potenciais
5 Conclus˜oes
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Problemas potenciais:
Ataques de Phishing
CSRF, o Clickjacking
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Sum´ario
1 Introdu¸c˜ao
Senhas
2 O protocolo OAuth 1.0
Pap´eis
Tokens e Credenciais
Conversa¸c˜ao OAuth 1.0
Problemas com o OAuth 1.0
3 O protocolo OAuth 2.0
Conversa¸c˜ao OAuth 2.0
4 Problemas potenciais
5 Conclus˜oes
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Conclus˜oes
Neste momento, e atendendo a que o OAuth 2.0 ainda n˜ao ´e um
standard, as implementa¸c˜oes que estiverem a ser desenvolvidas
devem ficar preparadas para serem ajustadas `a medida que os
”servidores de recursos protegidos”e as APIs forem actualizando o
protocolo de acordo com a evolu¸c˜ao do draft.
Por outro lado, a necessidade de utilizar um ou outro protocolo
est´a sempre dependente do que os grandes ”players” da Internet
disponibilizam e se os servi¸cos que se pretende consumir suportam
um protocolo ou outro. A t´ıtulo de exemplo o Twitter, o Facebook
e o Google j´a disponibilizam servi¸cos suportados somente em 2.0.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Conclus˜oes
Caso seja necess´ario implementar as componentes de servidor de
recursos protegidos e servidor de autoriza¸c˜ao (caso seja um servi¸co
na rede) faz todo o sentido usar o OAuth 2.0 dada a esperada
longividade que este ir´a ter face ao 1.0.
O grau de maturidade do draft – analisado o draft-ietf-oauth-v2-18
– apresenta j´a um aspecto bastante proximo do que ser´a o
protocolo final publicado em RFC, ficando ainda por clarificar
alguns aspectos como o Registo dos Clientes, a defini¸c˜ao do URI
de redireccionamento ou a defini¸c˜ao de tipos de endpoints de
autoriza¸c˜ao.
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes
Obrigado. Quest˜oes?
Jo˜ao Alves ISCTE-IUL
OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.

More Related Content

What's hot

88194121 puc-ihc-aula11-teorias-de-ihc-eng-cognitiva
88194121 puc-ihc-aula11-teorias-de-ihc-eng-cognitiva88194121 puc-ihc-aula11-teorias-de-ihc-eng-cognitiva
88194121 puc-ihc-aula11-teorias-de-ihc-eng-cognitivaJosimar Lima
 
Blockchain Technology
Blockchain TechnologyBlockchain Technology
Blockchain TechnologyNimmy Solomon
 
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇAAULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇAMaraLuizaGonalvesFre
 
Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de DadosIorgama Porcely
 
Palestra - A reconstrução do agronegócio do Brasil - Roberto Rodrigues
Palestra - A reconstrução do agronegócio do Brasil - Roberto RodriguesPalestra - A reconstrução do agronegócio do Brasil - Roberto Rodrigues
Palestra - A reconstrução do agronegócio do Brasil - Roberto Rodrigues24x7 COMUNICAÇÃO
 
Blockchain Scalability - Architectures and Algorithms
Blockchain Scalability - Architectures and AlgorithmsBlockchain Scalability - Architectures and Algorithms
Blockchain Scalability - Architectures and AlgorithmsGokul Alex
 
Conceitos inteligencia artificial
Conceitos inteligencia artificialConceitos inteligencia artificial
Conceitos inteligencia artificiallucasgodines
 
Analista de Segurança em Redes.pdf
Analista de Segurança em Redes.pdfAnalista de Segurança em Redes.pdf
Analista de Segurança em Redes.pdfOs Fantasmas !
 
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rochaFundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rochaDanielAmaral70
 
Future of AI: Blockchain & Deep Learning
Future of AI: Blockchain & Deep LearningFuture of AI: Blockchain & Deep Learning
Future of AI: Blockchain & Deep LearningMelanie Swan
 
Segurança da Informação - Aula 4 - Malwares
Segurança da Informação - Aula 4 - MalwaresSegurança da Informação - Aula 4 - Malwares
Segurança da Informação - Aula 4 - MalwaresCleber Fonseca
 
Princípios de Design de Interação
Princípios de Design de InteraçãoPrincípios de Design de Interação
Princípios de Design de InteraçãoFelipe Dal Molin
 
Estudo de usuário: Biblioteca de São Paulo
Estudo de usuário: Biblioteca de São PauloEstudo de usuário: Biblioteca de São Paulo
Estudo de usuário: Biblioteca de São PauloMonitor Científico FaBCI
 
LGPD e a Gestão de Recuesos Humanos.pptx
LGPD e a Gestão de Recuesos Humanos.pptxLGPD e a Gestão de Recuesos Humanos.pptx
LGPD e a Gestão de Recuesos Humanos.pptxJacsonSouza10
 
Data encryption standard DES & 3DES
Data encryption standard DES & 3DESData encryption standard DES & 3DES
Data encryption standard DES & 3DESLaís Berlatto
 
O Que E Interacao Cap1 Ihc
O Que E Interacao Cap1 IhcO Que E Interacao Cap1 Ihc
O Que E Interacao Cap1 IhcFabiano Damiati
 

What's hot (20)

88194121 puc-ihc-aula11-teorias-de-ihc-eng-cognitiva
88194121 puc-ihc-aula11-teorias-de-ihc-eng-cognitiva88194121 puc-ihc-aula11-teorias-de-ihc-eng-cognitiva
88194121 puc-ihc-aula11-teorias-de-ihc-eng-cognitiva
 
Blockchain Technology
Blockchain TechnologyBlockchain Technology
Blockchain Technology
 
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇAAULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
 
Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de Dados
 
Palestra - A reconstrução do agronegócio do Brasil - Roberto Rodrigues
Palestra - A reconstrução do agronegócio do Brasil - Roberto RodriguesPalestra - A reconstrução do agronegócio do Brasil - Roberto Rodrigues
Palestra - A reconstrução do agronegócio do Brasil - Roberto Rodrigues
 
Blockchain Scalability - Architectures and Algorithms
Blockchain Scalability - Architectures and AlgorithmsBlockchain Scalability - Architectures and Algorithms
Blockchain Scalability - Architectures and Algorithms
 
Conceitos inteligencia artificial
Conceitos inteligencia artificialConceitos inteligencia artificial
Conceitos inteligencia artificial
 
Analista de Segurança em Redes.pdf
Analista de Segurança em Redes.pdfAnalista de Segurança em Redes.pdf
Analista de Segurança em Redes.pdf
 
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rochaFundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
Fundamentos do desenvolvimento mobile - Daniel da cruz do amaral rocha
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 
Future of AI: Blockchain & Deep Learning
Future of AI: Blockchain & Deep LearningFuture of AI: Blockchain & Deep Learning
Future of AI: Blockchain & Deep Learning
 
Segurança da Informação - Aula 4 - Malwares
Segurança da Informação - Aula 4 - MalwaresSegurança da Informação - Aula 4 - Malwares
Segurança da Informação - Aula 4 - Malwares
 
Princípios de Design de Interação
Princípios de Design de InteraçãoPrincípios de Design de Interação
Princípios de Design de Interação
 
Como funciona a internet
Como funciona a internetComo funciona a internet
Como funciona a internet
 
Estudo de usuário: Biblioteca de São Paulo
Estudo de usuário: Biblioteca de São PauloEstudo de usuário: Biblioteca de São Paulo
Estudo de usuário: Biblioteca de São Paulo
 
LGPD e a Gestão de Recuesos Humanos.pptx
LGPD e a Gestão de Recuesos Humanos.pptxLGPD e a Gestão de Recuesos Humanos.pptx
LGPD e a Gestão de Recuesos Humanos.pptx
 
Block chain technology
Block chain technologyBlock chain technology
Block chain technology
 
Data encryption standard DES & 3DES
Data encryption standard DES & 3DESData encryption standard DES & 3DES
Data encryption standard DES & 3DES
 
O Que E Interacao Cap1 Ihc
O Que E Interacao Cap1 IhcO Que E Interacao Cap1 Ihc
O Que E Interacao Cap1 Ihc
 
Aes
AesAes
Aes
 

Similar to 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

Explorando mecanismos autenticacao na web
Explorando mecanismos autenticacao na webExplorando mecanismos autenticacao na web
Explorando mecanismos autenticacao na webEduardo Cesar
 
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2Rodrigo Cândido da Silva
 
TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2Rodrigo Cândido da Silva
 
Manipulando JWT em apis Laravel
Manipulando JWT em apis LaravelManipulando JWT em apis Laravel
Manipulando JWT em apis LaravelEduardo Cesar
 
Curso de Desenvolvimento Web - Módulo I - HTML.pdf
Curso de Desenvolvimento Web - Módulo I - HTML.pdfCurso de Desenvolvimento Web - Módulo I - HTML.pdf
Curso de Desenvolvimento Web - Módulo I - HTML.pdfailton bsj
 
Blockchain como serviço no azure
Blockchain como serviço no azureBlockchain como serviço no azure
Blockchain como serviço no azureVagner Oliveira
 
#TheDevConf 2018 - spring boot ionic oauth2
#TheDevConf 2018 - spring boot ionic oauth2#TheDevConf 2018 - spring boot ionic oauth2
#TheDevConf 2018 - spring boot ionic oauth2Luiz Avila
 
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2tdc-globalcode
 
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...tdc-globalcode
 
Implementação de Servidor OAuth
Implementação de Servidor OAuthImplementação de Servidor OAuth
Implementação de Servidor OAuthLuiz Duarte
 
TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we h...
TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we h...TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we h...
TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we h...tdc-globalcode
 
Implantação glpi empresa de advcacia
Implantação glpi empresa de advcaciaImplantação glpi empresa de advcacia
Implantação glpi empresa de advcaciaTiago Figueiredo
 
Documento de Requisitos v.2 - SCCI - Grupo ACCER
Documento de Requisitos v.2  - SCCI - Grupo ACCERDocumento de Requisitos v.2  - SCCI - Grupo ACCER
Documento de Requisitos v.2 - SCCI - Grupo ACCERaccer-scci
 
Overview - Bot Framework
Overview - Bot FrameworkOverview - Bot Framework
Overview - Bot FrameworkRenato Romão
 
Open Source Bootcamp Mogi das Cruzes - Bot Framework
Open Source Bootcamp Mogi das Cruzes - Bot FrameworkOpen Source Bootcamp Mogi das Cruzes - Bot Framework
Open Source Bootcamp Mogi das Cruzes - Bot FrameworkDouglas Romão
 

Similar to 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 (20)

Explorando mecanismos autenticacao na web
Explorando mecanismos autenticacao na webExplorando mecanismos autenticacao na web
Explorando mecanismos autenticacao na web
 
O auth2 e open id connect
O auth2 e open id connectO auth2 e open id connect
O auth2 e open id connect
 
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
JavaOne LATAM 2015 - Segurança em Recursos RESTful com OAuth2
 
TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2TDC 2015 - Segurança em Recursos RESTful com OAuth2
TDC 2015 - Segurança em Recursos RESTful com OAuth2
 
Protocolo Http
Protocolo HttpProtocolo Http
Protocolo Http
 
Manipulando JWT em apis Laravel
Manipulando JWT em apis LaravelManipulando JWT em apis Laravel
Manipulando JWT em apis Laravel
 
Curso de Desenvolvimento Web - Módulo I - HTML.pdf
Curso de Desenvolvimento Web - Módulo I - HTML.pdfCurso de Desenvolvimento Web - Módulo I - HTML.pdf
Curso de Desenvolvimento Web - Módulo I - HTML.pdf
 
Blockchain como serviço no azure
Blockchain como serviço no azureBlockchain como serviço no azure
Blockchain como serviço no azure
 
#TheDevConf 2018 - spring boot ionic oauth2
#TheDevConf 2018 - spring boot ionic oauth2#TheDevConf 2018 - spring boot ionic oauth2
#TheDevConf 2018 - spring boot ionic oauth2
 
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
TDC2018SP | Trilha Java Enterprise - Protegendo sua API Spring Boot com OAuth2
 
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
TDC2017 | São Paulo - Trilha Microservices Coaching I How we figured out we h...
 
Implementação de Servidor OAuth
Implementação de Servidor OAuthImplementação de Servidor OAuth
Implementação de Servidor OAuth
 
TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we h...
TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we h...TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we h...
TDC2017 | São Paulo - Trilha Segurança e Criptografia How we figured out we h...
 
Web service
Web serviceWeb service
Web service
 
JWT - Json Web Token
JWT - Json Web TokenJWT - Json Web Token
JWT - Json Web Token
 
Implantação glpi empresa de advcacia
Implantação glpi empresa de advcaciaImplantação glpi empresa de advcacia
Implantação glpi empresa de advcacia
 
Documento de Requisitos v.2 - SCCI - Grupo ACCER
Documento de Requisitos v.2  - SCCI - Grupo ACCERDocumento de Requisitos v.2  - SCCI - Grupo ACCER
Documento de Requisitos v.2 - SCCI - Grupo ACCER
 
Overview - Bot Framework
Overview - Bot FrameworkOverview - Bot Framework
Overview - Bot Framework
 
Open Source Bootcamp Mogi das Cruzes - Bot Framework
Open Source Bootcamp Mogi das Cruzes - Bot FrameworkOpen Source Bootcamp Mogi das Cruzes - Bot Framework
Open Source Bootcamp Mogi das Cruzes - Bot Framework
 
PHP SSO no Zentyal
PHP SSO no ZentyalPHP SSO no Zentyal
PHP SSO no Zentyal
 

More from Joao Alves

CSEduino @ european maker week
CSEduino @  european maker weekCSEduino @  european maker week
CSEduino @ european maker weekJoao Alves
 
CSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker FaireCSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker FaireJoao Alves
 
Stuff harvesting - Gather your electronic components for hobbyist
Stuff harvesting - Gather your electronic components for hobbyistStuff harvesting - Gather your electronic components for hobbyist
Stuff harvesting - Gather your electronic components for hobbyistJoao Alves
 
CSEduino - Build your Arduino from scratch
CSEduino - Build your Arduino from scratchCSEduino - Build your Arduino from scratch
CSEduino - Build your Arduino from scratchJoao Alves
 
Jogo em Javascript com HTML5
Jogo em Javascript com HTML5Jogo em Javascript com HTML5
Jogo em Javascript com HTML5Joao Alves
 
Robot Lego programado em Java
Robot Lego programado em JavaRobot Lego programado em Java
Robot Lego programado em JavaJoao Alves
 
NXTTour: An Open Source Robotic System Operated over the Internet
NXTTour: An Open Source Robotic System Operated over the InternetNXTTour: An Open Source Robotic System Operated over the Internet
NXTTour: An Open Source Robotic System Operated over the InternetJoao Alves
 

More from Joao Alves (7)

CSEduino @ european maker week
CSEduino @  european maker weekCSEduino @  european maker week
CSEduino @ european maker week
 
CSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker FaireCSEduino presentation at Lisbon Mini Maker Faire
CSEduino presentation at Lisbon Mini Maker Faire
 
Stuff harvesting - Gather your electronic components for hobbyist
Stuff harvesting - Gather your electronic components for hobbyistStuff harvesting - Gather your electronic components for hobbyist
Stuff harvesting - Gather your electronic components for hobbyist
 
CSEduino - Build your Arduino from scratch
CSEduino - Build your Arduino from scratchCSEduino - Build your Arduino from scratch
CSEduino - Build your Arduino from scratch
 
Jogo em Javascript com HTML5
Jogo em Javascript com HTML5Jogo em Javascript com HTML5
Jogo em Javascript com HTML5
 
Robot Lego programado em Java
Robot Lego programado em JavaRobot Lego programado em Java
Robot Lego programado em Java
 
NXTTour: An Open Source Robotic System Operated over the Internet
NXTTour: An Open Source Robotic System Operated over the InternetNXTTour: An Open Source Robotic System Operated over the Internet
NXTTour: An Open Source Robotic System Operated over the Internet
 

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

  • 1. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais. Jo˜ao Alves ISCTE-IUL 15 de Julho de 2011 Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 2. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes 1 Introdu¸c˜ao Senhas 2 O protocolo OAuth 1.0 Pap´eis Tokens e Credenciais Conversa¸c˜ao OAuth 1.0 Problemas com o OAuth 1.0 3 O protocolo OAuth 2.0 Conversa¸c˜ao OAuth 2.0 4 Problemas potenciais 5 Conclus˜oes Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 3. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Sum´ario 1 Introdu¸c˜ao Senhas 2 O protocolo OAuth 1.0 Pap´eis Tokens e Credenciais Conversa¸c˜ao OAuth 1.0 Problemas com o OAuth 1.0 3 O protocolo OAuth 2.0 Conversa¸c˜ao OAuth 2.0 4 Problemas potenciais 5 Conclus˜oes Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 4. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Desde que existem computadores que h´a utilizadores e senhas. A gest˜ao de senhas tem sido sempre uma quest˜ao complicada, pois na maioria das vezes elas representam o elo mais fraco na cadeia de seguran¸ca. Como demonstrado empiricamente no estudo realizado por Hayashi, ”todos os participantes, excepto um reutiliza as suas senhas para m´ultiplas contas/sistemas” e noutro estudo feito por Gaw onde ”os participantes relataram ter apenas algumas senhas ´unicas”. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 5. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Senhas Schneier escreveu ”a abordagem tradicional para autentica¸c˜ao ´e uma senha”. Stallings escreveu ”A linha de frente de defesa contra intrusos ´e o sistema de senhas”, Schneier destacou que ”infelizmente, o sistema utilizador/senha funciona pior do as pessoas pensam”. Gollmann acredita que ”com as senhas, tˆem-se observado um trade-off entre a complexidade das senhas e as faculdades da mem´oria humana em decor´a-las”. Com base em estudos Gaw demonstra que ”[...] as taxas de reutiliza¸c˜ao de senhas aumentaram porque as pessoas disp˜oem de mais contas, mas n˜ao criam mais senhas.”. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 6. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Senhas Se acrescentarmos a necessidade de dar o nosso pr´oprio utilizador/senha para uma entidade terceira executar uma ac¸c˜ao na nossa informa¸c˜ao seria realmente uma m´a ideia. O protocolo OAuth vem como solu¸c˜ao para este problema. Este protocolo foi criado como um m´etodo standard para permitir que os clientes acedam a recursos do servidor, em nome do propriet´ario de um recurso (o utilizador). Tem a capacidade de fazer isso sem dar ao cliente as credenciais do propriet´ario do recurso. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 7. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Sum´ario 1 Introdu¸c˜ao Senhas 2 O protocolo OAuth 1.0 Pap´eis Tokens e Credenciais Conversa¸c˜ao OAuth 1.0 Problemas com o OAuth 1.0 3 O protocolo OAuth 2.0 Conversa¸c˜ao OAuth 2.0 4 Problemas potenciais 5 Conclus˜oes Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 8. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes No modelo tradicional de autentica¸c˜ao cliente-servidor, o cliente usa as suas credenciais para aceder aos seus recursos armazenados pelo servidor. O OAuth introduz um terceiro papel com este modelo: o propriet´ario do recurso. No modelo OAuth, o cliente (que n˜ao ´e o propriet´ario do recurso, mas quem est´a a actuar em seu nome) faz pedidos de acesso aos recursos controlados pelo propriet´ario do recurso, mas armazenado pelo servidor (servidor de recursos protegidos). Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 9. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Para que o cliente possa aceder aos recursos, ele primeiro tem de obter permiss˜ao do propriet´ario do recurso. Essa permiss˜ao ´e expressa na forma de um Token e o correspondente segredo partilhado (shared-secret). O objectivo do Token ´e tornar desnecess´aria para o propriet´ario do recurso a partilha das suas credenciais (utilizador/senha) com o cliente. Ao contr´ario das credenciais do propriet´ario do recurso, os Tokens podem ser emitidos com um ˆambito restrito e vida ´util limitada, e revogados de forma independente. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 10. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Principais Caracteristicas: Desenhado para HTTP Definido no RFC 5849 Baseado em alguns protocolos propriet´arios (Google AuthSub, API Flickr e Yahoo BBAuth) Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 11. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Ao fornecer um Token e o correspondente segredo partilhado (shared-secret) ´e poss´ıvel para o propriet´ario do recurso dar acesso a um recurso protegido sem revelar as suas credenciais (utilizador/senha) ao servi¸co final que vai aceder aos dados (cliente). Para tudo isto ´e necess´ario que o servidor de recursos protegidos e o cliente suportem o protocolo OAuth. O Token adiciona uma vantagem adicional para o acesso pretendido, por ser capaz de definir o ˆambito do acesso e o per´ıodo de tempo no qual ´e v´alido. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 12. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Pap´eis H´a trˆes entidades principais envolvidas numa conversa¸c˜ao OAuth: Propriet´ario do recurso - o utilizador final; Cliente - aquele que vai aceder aos recursos, tipicamente um servidor; Servidor de recursos protegidos - o servidor que alberga os recursos do propriet´ario. Estes pap´eis s˜ao usados em qualquer transac¸c˜ao OAuth. Por vezes, o propriet´ario do recurso e o cliente s˜ao o mesmo. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 13. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Tokens e Credenciais O OAuth usa trˆes tipos de credenciais: Credenciais do Cliente As credenciais do cliente s˜ao usadas para autenticar o cliente. Credenciais de Token As credenciais de Token s˜ao usadas em vez do nome do propriet´ario dos recursos e da senha. Credenciais tempor´arias O processo de autoriza¸c˜ao OAuth tamb´em usa um conjunto de credenciais tempor´arias que s˜ao usadas para identificar o pedido de autoriza¸c˜ao. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 14. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Conversa¸c˜ao OAuth 1.0 A autentica¸c˜ao OAuth ´e o processo no qual os utilizadores concedem acesso aos seus recursos protegidos sem partilhar as suas credenciais com o cliente. O OAuth usa Tokens gerados pelo Servidor de recursos protegidos em vez de credenciais do utilizador em pedidos de recursos protegidos. O processo utiliza dois tipos de Token: Tokens de pedido e Tokens de acesso. Token de pedido Utilizado pelo cliente para pedir ao utilizador para autorizar o acesso aos recursos protegidos. Token de Acesso Utilizado pelo cliente para aceder aos recursos protegidos em nome do utilizador. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 15. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Conversa¸c˜ao OAuth 1.0 Processo de Autentica¸c˜ao Todos os pedidos baseados em OAuth s˜ao muito parecidos. Est´a a ser identificado um recurso para o qual se quer fazer um pedido, ´e constru´ıda uma cadeia (string) que descreve o pedido e as suas credenciais para fazˆe-lo, e ent˜ao a cadeia (string) ´e assinada usando um conjunto de segredos. ´E como endere¸car uma carta onde o endere¸co e o carimbo n˜ao descrevem apenas o destino, mas tamb´em o conte´udo. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 16. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Conversa¸c˜ao 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 ecr˜a de autoriza¸c˜ao (no Servidor de recursos protegidos); 3 Poder´a neste momento receber uma chamada de retorno numa URL que foi especificada em 1, ou o membro digita um c´odigo PIN (autentica¸c˜ao out-of-band); 4 Pedir Token de acesso; 5 Fazer chamadas `a API do Servidor de recursos protegidos. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 17. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Conversa¸c˜ao OAuth 1.0 Figura: Fluxo de Autentica¸c˜ao OAUTH 1.0a Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 18. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Problemas com o OAuth 1.0 Conversa¸c˜ao criptogr´afica complexa A forma como o OAuth 1.0 ´e implementado torna a cria¸c˜ao de scripts complexa devido `a conversa¸c˜ao criptogr´afica envolvida na negocia¸c˜ao do Token. suporte de aplica¸c˜oes n˜ao-web ´E necess´ario encaminhar o utilizador para abrir o browser para o servi¸co desejado, autenticar com o servi¸co, e copiar o Token do servi¸co de volta para a aplica¸c˜ao. Per´ıodo de vida longo dos Tokens Os Tokens gerados por esta vers˜ao tˆem um per´ıodo de vida longo e poder˜ao ser usados por um longo per´ıodo de tempo. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 19. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Problemas com o OAuth 1.0 Parsing complicado Uma vez que esta vers˜ao do protocolo pode ser implementada usando HTTP n˜ao criptografado, ´e necess´ario que a aplica¸c˜ao use hashs Token HMAC e cadeias de pedidos. Para o protocolo funcionar ´e igualmente necess´ario fazer um conjunto especial de ac¸c˜oes (parsing) que apresentam uma complexidade elevada. Problemas de Escalabilidade A escalabilidade ´e complexa devido `a existˆencia de um processo de gest˜ao do estado do protocolo nas diferentes etapas, com credenciais tempor´arias e de acesso que possivelmente requerem a emiss˜ao de credenciais de longa dura¸c˜ao, que s˜ao menos seguras e mais dif´ıceis de gerir (e sincronizar em grandes ambientes). Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 20. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Problemas com o OAuth 1.0 Al´em disso, o OAuth 1.0 requer que os pontos terminais protegidos dos recursos tenham acesso `as credenciais do cliente, a fim de validar o pedido. Isto impossibilita a arquitectura t´ıpica da maioria dos grandes fornecedores em que um servidor centralizado de autoriza¸c˜ao ´e usado para a emiss˜ao de credenciais, e um servidor separado ´e usado para chamadas de API. O OAuth 1.0 requer o uso dos dois conjuntos de credenciais: as credenciais do cliente e as credenciais Token o que faz com que essa separa¸c˜ao seja muito complexa. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 21. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Sum´ario 1 Introdu¸c˜ao Senhas 2 O protocolo OAuth 1.0 Pap´eis Tokens e Credenciais Conversa¸c˜ao OAuth 1.0 Problemas com o OAuth 1.0 3 O protocolo OAuth 2.0 Conversa¸c˜ao OAuth 2.0 4 Problemas potenciais 5 Conclus˜oes Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 22. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Principais caracteristicas: Protocolo novo incompativel com o 1.0; ´E o resultado de um trabalho colaborativo de um grande n´umero de empresas como Yahoo, Facebook, Salesforce, Microsoft, Twitter, Deutsche Telekom, Intuit, Mozilla e Google; Adop¸c˜ao r´apida desta tecnologia por parte de Facebook, Twitter e Google; Ainda n˜ao se encontra na sua vers˜ao final. No momento em que foi escrito este artigo, o protocolo ainda estava em desenvolvimento sendo ainda um projecto IETF-draft. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 23. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Quatro ´areas gerais onde mudou: O SSL passou a ser necess´ario em todas as comunica¸c˜oes quando ´e necess´ario para gerar o Token; As assinaturas n˜ao s˜ao necess´arias para as chamadas `a API a partir do momento que o Token ´e gerado; Apenas um Token de seguran¸ca, e a assinatura n˜ao ´e necess´aria; A separa¸c˜ao de propriet´ario de recursos e servidor de autoriza¸c˜ao ´e clara. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 24. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Al´em de implementar todas as ”boas”caracter´ısticas de 1.0 s˜ao criadas algumas novas: Seis novos fluxos; Tokens Bearer; Assinaturas simplificadas; Tokens de curta dura¸c˜ao com autoriza¸c˜oes de vida longa; Separa¸c˜ao de Pap´eis Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 25. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Seis novos fluxos User-Agent - para clientes que s˜ao executados dentro de um agente de utilizador (geralmente um browser web). Web Server - para clientes que fazem parte de uma aplica¸c˜ao de servidor web, acess´ıvel atrav´es de solicita¸c˜oes HTTP. Dispositivo - para clientes executados em dispositivos limitados - requer acesso independente a um browser. Utilizador e Senha - utilizado nos casos em que o utilizador confia no cliente para lidar com as suas credenciais. Credenciais clientes - o cliente usa suas credenciais para obter um Token de acesso. Afirma¸c˜ao (assertion) - o cliente apresenta uma afirma¸c˜ao SAML para o servidor de autoriza¸c˜ao. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 26. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Tokens Bearer Op¸c˜ao sem criptografia para autentica¸c˜ao, que se baseia na arquitectura existente cookie de autentica¸c˜ao. Em vez de enviar os pedidos assinados com segredos e HMAC Token, o Token ´e usado como um segredo e enviado atrav´es de SSL. Outros tipos de Tokens MAC - ´e equivalente ao esquema de Token no OAuth 1.0 SAML - usa afirma¸c˜oes SAML 2.0 em cada pedido como uma forma de estabelecer a identidade do cliente. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 27. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Assinaturas Simplificadas O Suporte `a assinatura foi significativamente simplificado para remover a necessidade de tratamento especial, codifica¸c˜ao e classifica¸c˜ao dos parˆametros. Tokens de curta dura¸c˜ao com autoriza¸c˜oes de vida longa Em vez de emitir um Token de longa dura¸c˜ao (normalmente por um ano ou eterno), o servidor pode emitir um Token de acesso de curta dura¸c˜ao e uma vida longa do Token de actualiza¸c˜ao. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 28. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Separa¸c˜ao de pap´eis O OAuth 2.0 separa o papel do servidor de autoriza¸c˜ao respons´avel pela obten¸c˜ao da autoriza¸c˜ao do utilizador e a emiss˜ao de Tokens do servidor de recursos que trata das chamadas `a API. Assim, e em contraponto com o OAuth 1.0 existem claramente quatro pap´eis: Propriet´ario do recurso - o utilizador final; Cliente - aquele que precisa de aceder aos recursos, tipicamente um servidor; Servidor de recursos protegidos - o servidor que alberga os recursos do propriet´ario; Servidor de Autoriza¸c˜ao - o servidor que emite os Tokens para o Cliente. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 29. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Conversa¸c˜ao OAuth 2.0 Figura: OAuth 2.0 Protocol FLOW Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 30. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Conversa¸c˜ao OAuth 2.0 O processo de conversa¸c˜ao do protocolo pode ser descrito em seis passos: (A) O cliente solicita autoriza¸c˜ao ao propriet´ario do recurso. (B) O cliente recebe uma concess˜ao de autoriza¸c˜ao, que representa a autoriza¸c˜ao fornecida pelo propriet´ario do recurso. (C) O cliente solicita um Token de acesso autenticando-se junto do servidor com a concess˜ao de autoriza¸c˜ao. (D) O servidor de autoriza¸c˜ao autentica o cliente e valida a concess˜ao de autoriza¸c˜ao, e se esta for v´alida emite o Token de acesso. (E) O cliente pede o recurso protegido ao servidor de recursos protegidos e autentica-se com o Token de acesso. (F) O servidor de recursos valida o Token de acesso, e se for v´alido, serve o pedido. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 31. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Sum´ario 1 Introdu¸c˜ao Senhas 2 O protocolo OAuth 1.0 Pap´eis Tokens e Credenciais Conversa¸c˜ao OAuth 1.0 Problemas com o OAuth 1.0 3 O protocolo OAuth 2.0 Conversa¸c˜ao OAuth 2.0 4 Problemas potenciais 5 Conclus˜oes Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 32. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Problemas potenciais: Ataques de Phishing CSRF, o Clickjacking Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 33. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Sum´ario 1 Introdu¸c˜ao Senhas 2 O protocolo OAuth 1.0 Pap´eis Tokens e Credenciais Conversa¸c˜ao OAuth 1.0 Problemas com o OAuth 1.0 3 O protocolo OAuth 2.0 Conversa¸c˜ao OAuth 2.0 4 Problemas potenciais 5 Conclus˜oes Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 34. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Conclus˜oes Neste momento, e atendendo a que o OAuth 2.0 ainda n˜ao ´e um standard, as implementa¸c˜oes que estiverem a ser desenvolvidas devem ficar preparadas para serem ajustadas `a medida que os ”servidores de recursos protegidos”e as APIs forem actualizando o protocolo de acordo com a evolu¸c˜ao do draft. Por outro lado, a necessidade de utilizar um ou outro protocolo est´a sempre dependente do que os grandes ”players” da Internet disponibilizam e se os servi¸cos que se pretende consumir suportam um protocolo ou outro. A t´ıtulo de exemplo o Twitter, o Facebook e o Google j´a disponibilizam servi¸cos suportados somente em 2.0. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 35. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Conclus˜oes Caso seja necess´ario implementar as componentes de servidor de recursos protegidos e servidor de autoriza¸c˜ao (caso seja um servi¸co na rede) faz todo o sentido usar o OAuth 2.0 dada a esperada longividade que este ir´a ter face ao 1.0. O grau de maturidade do draft – analisado o draft-ietf-oauth-v2-18 – apresenta j´a um aspecto bastante proximo do que ser´a o protocolo final publicado em RFC, ficando ainda por clarificar alguns aspectos como o Registo dos Clientes, a defini¸c˜ao do URI de redireccionamento ou a defini¸c˜ao de tipos de endpoints de autoriza¸c˜ao. Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.
  • 36. Sum´ario Introdu¸c˜ao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclus˜oes Obrigado. Quest˜oes? Jo˜ao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferen¸cas e as raz˜oes para a cria¸c˜ao de um novo protocolo de delega¸c˜ao de credenciais.