SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
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.

Más contenido relacionado

La actualidad más candente

API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)
Apigee | Google Cloud
 

La actualidad más candente (20)

DevSecOps - The big picture
DevSecOps - The big pictureDevSecOps - The big picture
DevSecOps - The big picture
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
DevOps Overview
DevOps OverviewDevOps Overview
DevOps Overview
 
API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)API Maturity Model (Webcast with Accenture)
API Maturity Model (Webcast with Accenture)
 
Segurança em Desenvolvimento de Software
Segurança em Desenvolvimento de SoftwareSegurança em Desenvolvimento de Software
Segurança em Desenvolvimento de Software
 
DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For Beginners
 
Devops On Cloud Powerpoint Template Slides Powerpoint Presentation Slides
Devops On Cloud Powerpoint Template Slides Powerpoint Presentation SlidesDevops On Cloud Powerpoint Template Slides Powerpoint Presentation Slides
Devops On Cloud Powerpoint Template Slides Powerpoint Presentation Slides
 
API Integration: Red Hat integration perspective
API Integration: Red Hat integration perspectiveAPI Integration: Red Hat integration perspective
API Integration: Red Hat integration perspective
 
Introduction to Azure DevOps
Introduction to Azure DevOpsIntroduction to Azure DevOps
Introduction to Azure DevOps
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
APIsecure 2023 - Learning from a decade of API breaches and why application-c...
APIsecure 2023 - Learning from a decade of API breaches and why application-c...APIsecure 2023 - Learning from a decade of API breaches and why application-c...
APIsecure 2023 - Learning from a decade of API breaches and why application-c...
 
Protecting Agile Transformation through Secure DevOps (DevSecOps)
Protecting Agile Transformation through Secure DevOps (DevSecOps)Protecting Agile Transformation through Secure DevOps (DevSecOps)
Protecting Agile Transformation through Secure DevOps (DevSecOps)
 
DevSecOps : an Introduction
DevSecOps : an IntroductionDevSecOps : an Introduction
DevSecOps : an Introduction
 
[DevSecOps Live] DevSecOps: Challenges and Opportunities
[DevSecOps Live] DevSecOps: Challenges and Opportunities[DevSecOps Live] DevSecOps: Challenges and Opportunities
[DevSecOps Live] DevSecOps: Challenges and Opportunities
 
Benefits of DevSecOps
Benefits of DevSecOpsBenefits of DevSecOps
Benefits of DevSecOps
 
Leveraging Azure DevOps across the Enterprise
Leveraging Azure DevOps across the EnterpriseLeveraging Azure DevOps across the Enterprise
Leveraging Azure DevOps across the Enterprise
 
Agile Integration with APIs and Containers Workshop
Agile Integration with APIs and Containers Workshop Agile Integration with APIs and Containers Workshop
Agile Integration with APIs and Containers Workshop
 
The State of DevSecOps
The State of DevSecOpsThe State of DevSecOps
The State of DevSecOps
 

Similar 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

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
Rodrigo Cândido da Silva
 
Implantação glpi empresa de advcacia
Implantação glpi empresa de advcaciaImplantação glpi empresa de advcacia
Implantação glpi empresa de advcacia
Tiago Figueiredo
 

Similar 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
 

Más de Joao Alves

Más 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
 

Último

Último (6)

Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

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.