Marco Gomes

Geek, imigrante, nerd, crist√£o, biker. Founder da boo-box (vendida) e do Heartbit. Consigliere do JovemNerd

ūüĒź Uma proposta para eliminar as senhas de todos os servi√ßos online

Publicado em 2016-05-29

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

Textos relacionados:

Deixe sua opini√£o

20 coment√°rios

  1. Max comentou:

    Marco, a id√©ia √© boa mas o que voce prop√Ķe √© o 2FA travestido de 1FA.

    O conceito é exatamente igual ao 2FA, bastante difundido na internet.

  2. Rex comentou:

    Se a ID vai ser p√ļblica eu fico aqui imaginado se algu√©m quiser te sacanear o tanto de notifica√ß√£o que voc√™ vai ficar recebendo no celular. E outra pessoa pode estar tentando acessar um site com a sua ID ao mesmo tempo que voc√™. Isso nem √© t√£o fantasioso pensando em pessoas famosas que tem v√°rios seguidores.

  3. Marcus Freitas comentou:

    Trabalhei em uma empresa onde fizemos algo parecido. O usu√°rio entrava com o login e a√≠ aparecia um QRCode que ele deveria ler com o nosso aplicativo que validava e j√° liberava o login na p√°gina. Um ponto sens√≠vel dessa solu√ß√£o √© quando o usu√°rio deve registrar o seu dispositivo, se for em um site a√≠ vai no problema da senha j√° q o usu√°rio n√£o tem nada cadastrado pra 2f provavelmente ele ainda precisaria da senha. No nosso caso como era o banco, era obrigado a pessoa ir pessoalmente no banco pra registrar o dispositivo ou n√ļmero

  4. Reinaldo comentou:

    Gostei da sua proposta Marco e acredito que precisa de uma segurança bastante reforçada no servidor que concentra os dados do usuário para confirmar a autenticação. Um invasor poderia alterar esses dados para receber a confirmação da autenticação no dispositivo dele.

    E periodicamente o usu√°rio deve ser notificado para atualizar os dados, pois ele pode trocar o n√ļmero do celular e esquecer de atualizar no servi√ßo Cloud 2F Login.

  5. Rodrigo Fittipaldi comentou:

    Marco,
    Como eu tinha comentado antes, é perigoso se apoiar em apenas um dos três tipos de autenticação (nesse caso o que você possui) pois em um curto período de tempo, alguém pode possuir o seu celular, correto?
    Essa idéia poderia incluir algum outro fator (como o que você é, já que a intenção seria eliminar a senha) como a voz, digital, etc.

  6. CristianTM comentou:

    Marco, você entrou numa área que muito me interessa (segurança).

    Tem duas ideias que vão nessa linha que tem que ser consideradas, por já entrarem em alguns aspectos importantes das complexidades que existem no assunto quando você vai mais a fundo nele, e também por não serem restritas e fechadas a um sistema (ou nuvem) como parece ser a referência da iniciativa do google.

    SQRL: https://www.grc.com/sqrl/sqrl.htm (muito parecido com o que voc√™ prop√Ķe, mas baseado em QRCode… a principio poderia existir um servidor no meio pra submeter isso via push pra voc√™)
    Fido Alliance: https://fidoalliance.org/ (essa tem grandes players investindo e é bem mais amplo)

    Um problema grande a tratar é a questão de como associar seu ID a um telefone pela primeira vez, e como trocar de celular. E principalmente, penso ser fundamental, como o provedor do serviço ser impedido de roubar sua identidade.

  7. Leonardo RO comentou:

    Procura no Google por Bank ID, √© um servi√ßo de autentica√ß√£o utilizado na Su√©cia e que est√° ligado a sua “carteira de identidade”.
    Através dele é possível inclusive buscar o endereço do usuário e efetuar compras online sem registro prévio e com apenas 1 clique (de verdade). A Klarna (klarna.com) opera assim.

  8. J√° ouviu falar no OpenID?

    √Č um projeto que surgiu j√° faz um tempo e tem como objetivo n√£o s√≥ realizar a parte de login, mas tamb√©m se tornar uma especie de centralizador de informa√ß√Ķes.
    Por exemplo, digamos que a lojadecanetas.com precise que você informe além de seu login e senha. Seu endereço para realizar as entregas, com o OpenId não seria necessário informar o endereço novamente por que o site realizaria esta solicitação via Web Service e ele forneceria esta informação.
    O Google e o Facebook acabaram adotando alguns pontos deste projeto e criando o OAuth 2.0, que é ferramenta utilizada por eles para autenticação em sites de terceiros.
    Quando vi que a Mozila estava envolvida, at√© achei que o OpenId poderia ir para frente, mas o projeto acabou ficando meio de lado e outras empresas acabaram se destacando. Uma das discuss√Ķes que mais aconteceram era com rela√ß√£o a essa centraliza√ß√£o de dados, seria algo como colocar todos os ovos na mesma cesta.

    Links √ļteis: developers.google.com/identity/protocols/OAuth2
    developers.google.com/identity/protocols/OpenIDConnect
    openid.net/connect/