🔐 Uma proposta para eliminar as senhas de todos os serviços online

Proposta teórica para eliminação da senha e uso do celular, aliado a um serviço na nuvem, como alternativa para identificação de usuários em serviços online.

A senha normalmente é a parte mais frágil de um sistema de segurança. Por praticidade, pessoas tendem a escolher senhas fáceis de lembrar e repeti-las em múltiplos sites, o que reduz drasticamente a segurança de qualquer serviço online.

Tecla com um cadeado sobre uma nuvem

Por enquanto estou chamando este serviço de Cloud 2F Login. É um nome bobo e descritivo demais, mas serve para o propósito deste artigo. O Cloud 2F Login é uma proposta de serviço na nuvem, que usa o padrão oAuth para autorizar o acesso à sites e serviços online.

Diagrama mostrando o funcionamento do Cloud 2F Login em desktop
Proposta de login usando serviço na nuvem para autenticação

Para exemplificar o processo de autenticação sem senha, vamos supor que Alice queira fazer login em lojadecanetas.com:

  1. Alice abre lojadecanetas.com;
  2. Alice preenche seu ID pessoal em lojadecanetas.com, este ID precisa ser único, como um endereço de e-mail, mas não precisa ser secreto;
  3. lojadecanetas.com pergunta para o Cloud 2F Login: “posso autorizar a entrada deste ID?” e aguarda a resposta;
  4. Cloud 2F Login pergunta para Alice “é você tentando entrar na lojadecanetas.com?” através de um canal de comunicação independente (notificação push, SMS, ligação telefônica, e-mail);
  5. Alice responde o Cloud 2F Login: sim, sou eu;
  6. Cloud 2F Login responde à lojadecanetas.com “sim, pode autorizar a entrada deste ID”;
  7. lojadecanetas.com autoriza a entrada de Alice.

Alice entrou em lojadecanetas.com sem precisar digitar um password e a lojadecanetas.com não precisa se preocupar em armazenar com segurança as senhas de cada cliente.

O mesmo processo pode ser usado também em autenticação em dispositivos móveis, conforme diagrama abaixo.

Diagrama mostrando o funcionamento do Cloud 2F Login em mobile
No login de mobile para mobile, o processo é similar, com a autorização aparecendo em um segundo app. Como já faz hoje o Banco Original com seus dois apps independentes (banco e token).

Algumas características importantes da tecnologia que proponho:

  • No ponto 4, o Cloud 2F Login precisa entrar em contato com Alice para perguntar se é ela mesma tentando acessar a lojadecanetas.com, por velocidade e praticidade, esta verificação idealmente deve ser feita por notificação push no celular, mas caso tal recurso não esteja disponível, a verificação também pode ser feita por SMS, ligação telefônica, e-mail, painel de controle na web ou qualquer outro meio disponível no momento da autenticação;
  • O ID de Alice em Cloud 2F Login pode ser um username, endereço de e-mail, número de telefone, número de usuário (como tínhamos no ICQ) ou qualquer outro identificador único, mas não precisa ser secreto, já que a entrada só será autorizada quando Alice confirmar sua identidade para o Cloud 2f Login.
  • O processo de comunicação entre a lojadecanetas.com e o Cloud 2F Login é feito com o protocolo de autorização oAuth, uma tecnologia já bem estabelecida e com segurança robusta, usada por Facebook, Google e outros gigantes;
  • Caso Alice não esteja em posse de seu celular, é possível que o pedido de autenticação seja apresentado em um painel de controle na Web;
  • Ainda há o risco de comprometimento do dispositivo de autenticação (celular), comprometimento do serviço Cloud 2F Login e outros riscos inerentes à centralização de sistemas; o objetivo desta proposta não é eliminar todos os riscos de uma autenticação digital, apenas propor uma solução melhor que a dupla usuário/senha usada atualmente.

Esta ainda é uma proposta embrionária, que pode ser implementada por qualquer desenvolvedor ou time de desenvolvedores interessados em abraçar a ideia. Também estou aberto a sugestões, desafios e considerações, por favor colabore abaixo nos comentários!

* a solução que proponho foi apresentada de maneira muito parecida também pelo Google em 22 de dezembro de 2015. O diferencial que proponho é o aplicação de uma plataforma aberta, independente e possivelmente pulverizada. Teste agora mesmo o login sem senha do Google.

[ATUALIZAÇÃO] O CristianTM comentou sobre a iniciativa a FIDO Alliance, que tem uma proposta muito parecida para login sem password, e já está bastante desenvolvida. Veja o diagrama abaixo.

Diagrama mostrando a experiência sem password da FIDO Alliance