SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler 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.

Mais conteúdo relacionado

Mais procurados

Par trançado e Fibra Optica
Par trançado e Fibra OpticaPar trançado e Fibra Optica
Par trançado e Fibra OpticaAnderson Zardo
 
Roteamento Intra-SA e Inter-SA
Roteamento Intra-SA e Inter-SARoteamento Intra-SA e Inter-SA
Roteamento Intra-SA e Inter-SAClaudio Eckert
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosGustavo Monteiro
 
Introduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjugIntroduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjugYuji Kubota
 
【2018年3月時点】Oracle BI ベストプラクティス
【2018年3月時点】Oracle BI ベストプラクティス【2018年3月時点】Oracle BI ベストプラクティス
【2018年3月時点】Oracle BI ベストプラクティスオラクルエンジニア通信
 
Gerência de Aplicações com ITIL v3 - Um breve sumário
Gerência de Aplicações com ITIL v3 - Um breve sumárioGerência de Aplicações com ITIL v3 - Um breve sumário
Gerência de Aplicações com ITIL v3 - Um breve sumárioAlexandre Leão
 
Instalação e configuração servidor dns - ubuntu server
Instalação e configuração servidor dns - ubuntu serverInstalação e configuração servidor dns - ubuntu server
Instalação e configuração servidor dns - ubuntu serverAparicio Junior
 
VMware NSX and Arista L2 Hardware VTEP Gateway Integration
VMware NSX and Arista L2 Hardware VTEP Gateway IntegrationVMware NSX and Arista L2 Hardware VTEP Gateway Integration
VMware NSX and Arista L2 Hardware VTEP Gateway IntegrationBayu Wibowo
 
Network Protocol Testing Using Robot Framework
Network Protocol Testing Using Robot FrameworkNetwork Protocol Testing Using Robot Framework
Network Protocol Testing Using Robot FrameworkPayal Jain
 
マルチテナント環境における WebLogic Server 管理
マルチテナント環境における WebLogic Server 管理マルチテナント環境における WebLogic Server 管理
マルチテナント環境における WebLogic Server 管理Masa Sasaki
 
20200812 Cbject Detection with OpenCV and CNN
20200812 Cbject Detection with OpenCV and CNN20200812 Cbject Detection with OpenCV and CNN
20200812 Cbject Detection with OpenCV and CNNKenichi Sonoda
 
Sistema de Gerenciamento de Locadora de Vídeo - Apresentação
Sistema de Gerenciamento de Locadora de Vídeo - ApresentaçãoSistema de Gerenciamento de Locadora de Vídeo - Apresentação
Sistema de Gerenciamento de Locadora de Vídeo - ApresentaçãoGleyciana Garrido
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5Takahiro YAMADA
 
Oracle Cloud Infrastructure:2021年10月度サービス・アップデート
Oracle Cloud Infrastructure:2021年10月度サービス・アップデートOracle Cloud Infrastructure:2021年10月度サービス・アップデート
Oracle Cloud Infrastructure:2021年10月度サービス・アップデートオラクルエンジニア通信
 

Mais procurados (20)

Par trançado e Fibra Optica
Par trançado e Fibra OpticaPar trançado e Fibra Optica
Par trançado e Fibra Optica
 
Roteamento Intra-SA e Inter-SA
Roteamento Intra-SA e Inter-SARoteamento Intra-SA e Inter-SA
Roteamento Intra-SA e Inter-SA
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas Distribuídos
 
Introduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjugIntroduction to Java 11: Support and JVM Features #jjug
Introduction to Java 11: Support and JVM Features #jjug
 
【2018年3月時点】Oracle BI ベストプラクティス
【2018年3月時点】Oracle BI ベストプラクティス【2018年3月時点】Oracle BI ベストプラクティス
【2018年3月時点】Oracle BI ベストプラクティス
 
Oracle GoldenGate R12.2 セットアップガイド
Oracle GoldenGate R12.2 セットアップガイドOracle GoldenGate R12.2 セットアップガイド
Oracle GoldenGate R12.2 セットアップガイド
 
Gerência de Aplicações com ITIL v3 - Um breve sumário
Gerência de Aplicações com ITIL v3 - Um breve sumárioGerência de Aplicações com ITIL v3 - Um breve sumário
Gerência de Aplicações com ITIL v3 - Um breve sumário
 
Oracle GoldenGate 概要 2020年11月版
Oracle GoldenGate 概要 2020年11月版Oracle GoldenGate 概要 2020年11月版
Oracle GoldenGate 概要 2020年11月版
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要
 
Instalação e configuração servidor dns - ubuntu server
Instalação e configuração servidor dns - ubuntu serverInstalação e configuração servidor dns - ubuntu server
Instalação e configuração servidor dns - ubuntu server
 
VMware NSX and Arista L2 Hardware VTEP Gateway Integration
VMware NSX and Arista L2 Hardware VTEP Gateway IntegrationVMware NSX and Arista L2 Hardware VTEP Gateway Integration
VMware NSX and Arista L2 Hardware VTEP Gateway Integration
 
Network Protocol Testing Using Robot Framework
Network Protocol Testing Using Robot FrameworkNetwork Protocol Testing Using Robot Framework
Network Protocol Testing Using Robot Framework
 
Oracle Management Cloud サービス概要説明資料
Oracle Management Cloud サービス概要説明資料Oracle Management Cloud サービス概要説明資料
Oracle Management Cloud サービス概要説明資料
 
マルチテナント環境における WebLogic Server 管理
マルチテナント環境における WebLogic Server 管理マルチテナント環境における WebLogic Server 管理
マルチテナント環境における WebLogic Server 管理
 
20200812 Cbject Detection with OpenCV and CNN
20200812 Cbject Detection with OpenCV and CNN20200812 Cbject Detection with OpenCV and CNN
20200812 Cbject Detection with OpenCV and CNN
 
Sistema de Gerenciamento de Locadora de Vídeo - Apresentação
Sistema de Gerenciamento de Locadora de Vídeo - ApresentaçãoSistema de Gerenciamento de Locadora de Vídeo - Apresentação
Sistema de Gerenciamento de Locadora de Vídeo - Apresentação
 
OCI Data Catalog Overview 2021年5月版
OCI Data Catalog Overview 2021年5月版OCI Data Catalog Overview 2021年5月版
OCI Data Catalog Overview 2021年5月版
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
 
Oracle Cloud Infrastructure:2021年10月度サービス・アップデート
Oracle Cloud Infrastructure:2021年10月度サービス・アップデートOracle Cloud Infrastructure:2021年10月度サービス・アップデート
Oracle Cloud Infrastructure:2021年10月度サービス・アップデート
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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.