HISTÓRIA DO OAUTH: DAS SENHAS AOS PADRÕES GLOBAIS

Você vê isso todos os dias. Você clica em "Login com Google" ou "Login com GitHub". Você não digita uma senha. Você entra no site instantaneamente.

Isso funciona por causa do OAuth. É o padrão global de segurança. Mas não começou assim. Ele evoluiu para resolver problemas massivos.

O Problema com as Senhas

Nos primórdios, você criava uma nova senha para cada site. Isso causava três grandes problemas:

  • As pessoas usavam a mesma senha em todos os lugares. Se um site vazasse, todas as contas estariam em risco.
  • As pessoas esqueciam as senhas. Elas passavam mais tempo clicando em "esqueci minha senha" do que usando a web.
  • Os sites viam sua senha em texto puro. Se um site fosse hackeado, sua senha estaria exposta.

A Evolução da Segurança

  1. Basic Auth: Você enviava seu nome de usuário e senha em cada requisição. Se você não usasse HTTPS, hackers poderiam ver tudo.

  2. Session Cookies: Você fazia o login uma vez e recebia um ID de sessão. Era melhor, mas cookies podem ser roubados através de ataques como XSS ou CSRF. Além disso, um site não conseguia usar seu login para conversar com outro site.

  3. API Keys: Você dava a um site uma chave especial. Isso era melhor porque você não enviava sua senha. No entanto, as chaves de API geralmente têm poder excessivo. Se você der uma chave de API a um aplicativo, esse aplicativo pode ter poder para ler seus e-mails, enviar mensagens e excluir sua conta. É como dar a chave do seu carro para um manobrista de hotel, mas essa chave também abre a sua casa.

A Solução OAuth: A Chave do Manobrista

O OAuth mudou o jogo. Em vez de dar sua senha, você dá um "token". Pense nisso como uma chave de manobrista. Uma chave de manobrista permite que um motorista estacione seu carro, mas não permite que ele abra o porta-malas ou acesse sua casa.

Como o OAuth Funciona na Prática:

  • Você quer usar o Canva e puxar fotos do Google.
  • O Canva pede permissão ao Google.
  • O Google pergunta a você: "O Canva pode visualizar suas fotos?"
  • Você diz: "Sim, mas apenas para visualizar. Não permita que eles excluam nada."
  • O Google dá ao Canva um token específico.

O Canva nunca vê sua senha do Google. Mesmo que um hacker roube esse token, ele só poderá visualizar as fotos por um curto período. Ele não pode alterar sua senha ou movimentar seu dinheiro.

Segurança Moderna: PKCE

Aplicativos móveis e web têm uma fraqueza. Eles não conseguem esconder segredos muito bem. Para corrigir isso, usamos o PKCE (Proof Key for Code Exchange).

Funciona como um sistema de reserva:

  • O aplicativo cria um código secreto (o verifier).
  • O aplicativo envia uma versão com hash desse código (o challenge) para o Google.
  • Quando o aplicativo solicita o token, ele envia o código secreto original.
  • O Google verifica se o código corresponde ao challenge.

Se eles coincidirem, o Google sabe que é o mesmo aplicativo. Se não coincidirem, o Google bloqueia a requisição. Isso impede que hackers roubem seu código de autorização.

O Roadmap do OAuth

  • 2007 (OAuth 1.0): Muito complexo e utilizava matemática pesada.
  • 2012 (OAuth 2.0): Mais rápido e fácil. Utilizava tokens e exigia HTTPS.
  • 2016 (OAuth 2.0 + PKCE): Adicionou segurança para aplicativos móveis e web modernos.
  • 2023 (OAuth 2.1): O novo padrão ouro. Remove métodos antigos e inseguros.

A Lição Principal: Nunca dê sua senha a outro aplicativo. Dê a eles um ingresso limitado que expira. Você mantém o controle.

Fonte: https://dev.to/gophernment/oauth-elaaaebbprawatisaastr-cchaakrhasphaan-suumaatrthaanolk-16b4