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

  • Published on
    29-Aug-2014

  • View
    645

  • Download
    0

Embed Size (px)

DESCRIPTION

OAuth 1.0 vs OAuth 2.0 - Principais diferenas e as razes para a criao de um novo protocolo de delegao de Credenciais

Transcript

  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais. Joao Alves ISCTE-IUL 15 de Julho de 2011 Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes 1 Introducao Senhas 2 O protocolo OAuth 1.0 Papeis Tokens e Credenciais Conversacao OAuth 1.0 Problemas com o OAuth 1.0 3 O protocolo OAuth 2.0 Conversacao OAuth 2.0 4 Problemas potenciais 5 Conclusoes Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Sumario 1 Introducao Senhas 2 O protocolo OAuth 1.0 Papeis Tokens e Credenciais Conversacao OAuth 1.0 Problemas com o OAuth 1.0 3 O protocolo OAuth 2.0 Conversacao OAuth 2.0 4 Problemas potenciais 5 Conclusoes Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Desde que existem computadores que ha utilizadores e senhas. A gestao de senhas tem sido sempre uma questao complicada, pois na maioria das vezes elas representam o elo mais fraco na cadeia de seguranca. Como demonstrado empiricamente no estudo realizado por Hayashi, todos os participantes, excepto um reutiliza as suas senhas para multiplas contas/sistemas e noutro estudo feito por Gaw onde os participantes relataram ter apenas algumas senhas unicas. Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Senhas Schneier escreveu a abordagem tradicional para autenticacao 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, tem-se observado um trade-o entre a complexidade das senhas e as faculdades da memoria humana em decora-las. Com base em estudos Gaw demonstra que [...] as taxas de reutilizacao de senhas aumentaram porque as pessoas dispoem de mais contas, mas nao criam mais senhas.. Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Senhas Se acrescentarmos a necessidade de dar o nosso proprio utilizador/senha para uma entidade terceira executar uma accao na nossa informacao seria realmente uma ma ideia. O protocolo OAuth vem como solucao para este problema. Este protocolo foi criado como um metodo standard para permitir que os clientes acedam a recursos do servidor, em nome do proprietario de um recurso (o utilizador). Tem a capacidade de fazer isso sem dar ao cliente as credenciais do proprietario do recurso. Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Sumario 1 Introducao Senhas 2 O protocolo OAuth 1.0 Papeis Tokens e Credenciais Conversacao OAuth 1.0 Problemas com o OAuth 1.0 3 O protocolo OAuth 2.0 Conversacao OAuth 2.0 4 Problemas potenciais 5 Conclusoes Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes No modelo tradicional de autenticacao 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 proprietario do recurso. No modelo OAuth, o cliente (que nao e o proprietario do recurso, mas quem esta a actuar em seu nome) faz pedidos de acesso aos recursos controlados pelo proprietario do recurso, mas armazenado pelo servidor (servidor de recursos protegidos). Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Para que o cliente possa aceder aos recursos, ele primeiro tem de obter permissao do proprietario do recurso. Essa permissao e expressa na forma de um Token e o correspondente segredo partilhado (shared-secret). O objectivo do Token e tornar desnecessaria para o proprietario do recurso a partilha das suas credenciais (utilizador/senha) com o cliente. Ao contrario das credenciais do proprietario do recurso, os Tokens podem ser emitidos com um ambito restrito e vida util limitada, e revogados de forma independente. Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Principais Caracteristicas: Desenhado para HTTP Denido no RFC 5849 Baseado em alguns protocolos proprietarios (Google AuthSub, API Flickr e Yahoo BBAuth) Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Ao fornecer um Token e o correspondente segredo partilhado (shared-secret) e possvel para o proprietario do recurso dar acesso a um recurso protegido sem revelar as suas credenciais (utilizador/senha) ao servico nal que vai aceder aos dados (cliente). Para tudo isto e necessario 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 denir o ambito do acesso e o perodo de tempo no qual e valido. Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Papeis Ha tres entidades principais envolvidas numa conversacao OAuth: Proprietario do recurso - o utilizador nal; Cliente - aquele que vai aceder aos recursos, tipicamente um servidor; Servidor de recursos protegidos - o servidor que alberga os recursos do proprietario. Estes papeis sao usados em qualquer transaccao OAuth. Por vezes, o proprietario do recurso e o cliente sao o mesmo. Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Tokens e Credenciais O OAuth usa tres tipos de credenciais: Credenciais do Cliente As credenciais do cliente sao usadas para autenticar o cliente. Credenciais de Token As credenciais de Token sao usadas em vez do nome do proprietario dos recursos e da senha. Credenciais temporarias O processo de autorizacao OAuth tambem usa um conjunto de credenciais temporarias que sao usadas para identicar o pedido de autorizacao. Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Conversacao OAuth 1.0 A autenticacao OAuth e o processo no qual os 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. Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Conversacao OAuth 1.0 Processo de Autenticacao Todos os pedidos baseados em OAuth sao muito parecidos. Esta a ser identicado um recurso para o qual se quer fazer um pedido, e construda uma cadeia (string) que descreve o pedido e as suas credenciais para faze-lo, e entao a cadeia (string) e assinada usando um conjunto de segredos. E como enderecar uma carta onde o endereco e o carimbo nao descrevem apenas o destino, mas tambem o conteudo. Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Conversacao OAuth 1.0 Ciclo do pedido OAuth: 1 E pedido um Token de pedido e e especicado o seu retorno; 2 O utilizador e redireccionado para o ecra de autorizacao (no Servidor de recursos protegidos); 3 Podera neste momento receber uma chamada de retorno numa URL que foi especicada em 1, ou o membro digita um codigo PIN (autenticacao out-of-band); 4 Pedir Token de acesso; 5 Fazer chamadas `a API do Servidor de recursos protegidos. Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Conversacao OAuth 1.0 Figura: Fluxo de Autenticacao OAUTH 1.0a Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Problemas com o OAuth 1.0 Conversacao criptograca complexa A forma como o OAuth 1.0 e implementado torna a criacao de scripts complexa devido `a conversacao criptograca envolvida na negociacao do Token. suporte de aplicacoes nao-web E necessario encaminhar o utilizador para abrir o browser para o servico desejado, autenticar com o servico, e copiar o Token do servico de volta para a aplicacao. Perodo de vida longo dos Tokens Os Tokens gerados por esta versao tem um perodo de vida longo e poderao ser usados por um longo perodo de tempo. Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Problemas com o OAuth 1.0 Parsing complicado Uma vez que esta versao do protocolo pode ser implementada usando HTTP nao criptografado, e necessario que a aplicacao use hashs Token HMAC e cadeias de pedidos. Para o protocolo funcionar e igualmente necessario fazer um conjunto especial de accoes (parsing) que apresentam uma complexidade elevada. Problemas de Escalabilidade A escalabilidade e complexa devido `a existencia de um processo de gestao do estado do protocolo nas diferentes etapas, com credenciais temporarias e de acesso que possivelmente requerem a emissao de credenciais de longa duracao, que sao menos seguras e mais difceis de gerir (e sincronizar em grandes ambientes). Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Problemas com o OAuth 1.0 Alem disso, o OAuth 1.0 requer que os pontos terminais protegidos dos recursos tenham acesso `as credenciais do cliente, a m de validar o pedido. Isto impossibilita a arquitectura tpica da maioria dos grandes fornecedores em que um servidor centralizado de autorizacao e usado para a emissao 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 separacao seja muito complexa. Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Sumario 1 Introducao Senhas 2 O protocolo OAuth 1.0 Papeis Tokens e Credenciais Conversacao OAuth 1.0 Problemas com o OAuth 1.0 3 O protocolo OAuth 2.0 Conversacao OAuth 2.0 4 Problemas potenciais 5 Conclusoes Joao Alves ISCTE-IUL OAuth 1.0 vs OAuth 2.0 - Principais diferencas e as razoes para a criacao de um novo protocolo de delegacao de credenciais.
  • Sumario Introducao O protocolo OAuth 1.0 O protocolo OAuth 2.0 Problemas potenciais Conclusoes Principais caracteristicas: Protocolo novo incompativel com o 1.0; E o resultado de um trabalho colaborativo de um grande numero de empresas como Yahoo, Facebook, Salesforce, Microsoft, Twitter, Deutsche Telekom, Intuit, Mozilla e Google; Adopcao rapida desta...