O padrão “o e-mail é a autenticação”
(rubenerd.com)- Alguns usuários, em vez de lembrar ou gerenciar senhas, usam o processo de “esqueci minha senha” toda vez, como se fosse a forma de login
- Na prática, o fluxo consiste em receber um link de recuperação por e-mail na página de login, inserir uma senha temporária e repetir o mesmo processo na visita seguinte
- Esse hábito está mais próximo de um comportamento aprendido que se consolidou com o tempo do que de uma estratégia de segurança consciente
- Melhorias como gerenciadores de senhas e autenticação em duas etapas ou multifator também podem ser percebidas pelos usuários mais como aumento de atrito do que como reforço de segurança
- O design do sistema precisa partir do comportamento repetido do usuário e guiá-lo naturalmente para formas melhores de uso
Recuperação de senha usada como login
- Alguns usuários não digitam a senha ao entrar em contas online e, em vez disso, repetem o processo de recuperação toda vez
- Chegam à página de login
- Clicam em “I forgot my password”
- Vão até o e-mail
- Clicam no link de recuperação
- Digitam uma senha temporária que não vão lembrar
- Depois repetem o mesmo processo
- Quando se pergunta por que fazem isso, eles não conseguem responder ou dizem que nunca pensaram no motivo
- Esse comportamento não é uma estratégia de login definida pela manhã, mas algo mais próximo de um procedimento repetitivo que se fixou com o tempo
O atrito que melhorias de segurança criam para o usuário
- Esse método funciona como uma solução de baixo esforço, já que o usuário não precisa lembrar uma passphrase
- Gerenciadores de senhas, roubo de identidade, autenticação em duas etapas e multifator, e o envelhecimento do modelo de nome de usuário/senha já são temas amplamente discutidos
- Procedimentos de segurança melhores muitas vezes aumentam barreiras e atrito, o que pode dificultar sua adoção natural pelos usuários
- Os designers precisam considerar o comportamento aprendido dos usuários e criar fluxos que permitam migrar, ao longo do tempo, para formas melhores de uso
1 comentários
Opiniões no Hacker News
Contas de e-mail são o denominador comum mais universal na autenticação online. Celulares também são competitivos, mas podem ser perdidos; números de telefone são mais comuns e duradouros, mas têm um nível de segurança muito inferior ao de contas dos principais provedores de e-mail.
Para projetar um “sistema de autenticação imaginário para a internet”, é preciso olhar primeiro para a recuperação de conta. Se, quando você perde seu autenticador sofisticado, a resposta é “simplesmente perdeu o acesso” ou “um painel de colegas atesta sua identidade”, então esse sistema só funciona se tiver como usuários não seres humanos, mas formas de vida inteligentes imaginárias.
Humanos precisam conseguir se recuperar de erros.
Dá para fazer funcionar para pessoas comuns? Acho que há criatividade suficiente para projetar algo assim.
Nosso serviço é um negócio bem leve, então os usuários usam a conta apenas por conveniência. O modelo em que nos estabelecemos é este: o usuário informa o e-mail, enviamos um código de verificação por e-mail e, quando o usuário digita o código, emitimos um cookie de duração muito longa que o mantém logado praticamente por tempo indeterminado.
Não importa se a conta já existe; se for um e-mail novo, basta criar uma conta nova. Às vezes usuários com vários e-mails criam uma conta nova por engano, mas a conversão de cadastro e login melhorou bastante, então vale a pena aceitar isso. O tempo de validade do código e o número de tentativas exigem análise de risco e, se possível, é melhor usar um mecanismo de bloqueio. Se o serviço não for tão crítico, recomendo essa estratégia. O iOS Mail agora também oferece suporte a esse fluxo, como o recurso de códigos de uso único do Messages, então para alguns usuários ele é bem conveniente.
Não force o comprador a criar uma conta; peça apenas os detalhes necessários. O navegador vai preencher automaticamente de qualquer forma. Depois envie por e-mail um link para consultar o status do pedido e, no próximo pedido, peça o e-mail novamente. O atrito adicional causa uma perda de receita maior do que o benefício de obter um “usuário cadastrado”.
Só quando precisa entrar por outro dispositivo é que ele pode solicitar uma nova senha. Isso reduz o atrito no cadastro e as senhas fracas. A maioria das pessoas quase nunca precisa fazer login em outro dispositivo mesmo.
Se não for uma área em que a anonimidade precise ser preservada, dá para fazer assim e integrar passkeys depois. A desvantagem é que o compartilhamento de senhas se torna impossível, então é preciso pensar mais cedo no problema de gerenciar vários usuários em uma única conta. Mas, se isso for tratado conscientemente, o funil ou a experiência do usuário acabam melhorando. Além disso, a segurança fica vinculada ao nível médio de segurança dos provedores de e-mail dos usuários, mas em geral isso é melhor do que o necessário. Senhas podem ser usadas depois como um segundo fator, quando se tornarem necessárias, ou outro fator pode ser adicionado; em B2B, dá para ir direto para SAML ou OIDC. Em B2B ou D2C isso sempre funcionou bem, e os casos excepcionais valeram a pena resolver por causa do ganho de aquisição.
Copiar o código, encontrar a aba em que a página de login ficou aberta e colar é um processo trabalhoso.
A essa altura, não bastaria enviar para o endereço de e-mail um link de URL descartável e permitir login com um clique? Ele poderia expirar em 10 minutos e ser invalidado após um único uso.
Claro que qualquer pessoa que tiver o link primeiro pode entrar na conta, mas, de qualquer forma, o acesso só vem pelo e-mail. Qualquer sensação de segurança além da conta de e-mail desaparece, mas a realidade já chegou a esse ponto. Se você usar por mensagem no celular um padrão como “clique para confirmar o login: www.someurl.com?p=134234535”, isso vira uma autenticação de dois fatores sem precisar digitar um código idiota.
O e-mail pode cair no spam, o usuário pode ficar horas sem conseguir entrar por causa de greylisting, ou pode levar 1 minuto para chegar — e às vezes até isso parece tempo demais. Não sei se eu recomendaria.
No caso de “clique para confirmar o login” enviado ao celular, é preciso fornecer tanto o código quanto o link. O dispositivo em que você está tentando entrar nem sempre é o celular, então deve ser “digite 1234 ou clique”.
Mas é mais lento do que um gerenciador de senhas preencher automaticamente a combinação de nome de usuário/senha, porque é preciso esperar o e-mail e clicar no link.
Eu não quero fazer login no navegador embutido do Gmail, e sim no navegador normal, o que é bem irritante.
Um botão “Entrar com o Google” é melhor do que “enviar link por e-mail”, e o rastreamento é possível de qualquer maneira.
A ideia de que uma pessoa vai criar e lembrar uma senha para cada serviço insignificante não é realista. Criar mais um sistema de autenticação baseado em senha é quase uma encenação de faz de conta
Senhas geralmente são usadas de uma de duas formas: um gerenciador de senhas protegido por uma senha real, ou a mesma senha repetida em cada serviço. Como quase todos os serviços oferecem recuperação por e-mail, na prática o e-mail é o meio de autenticação. O e-mail pessoal não costuma ser trocado, não é compartilhado e também não é reutilizado. Provavelmente você usa seu e-mail pessoal há mais tempo do que seu número de telefone. Enquanto uso meu endereço de e-mail atual, meu número de telefone mudou pelo menos cinco vezes, e esses números agora estão sendo usados por outras pessoas
E a função de recuperação de senha pelo menos informa ao dono do endereço sobre todas as tentativas. O login baseado em senha nem sempre envia um e-mail a cada login feito de um novo local
A resposta é simples. Normalmente tem a ver com incômodos que o provedor do serviço criou para o usuário. Neste caso parece claro: a sessão do provedor de e-mail geralmente praticamente nunca termina e continua logada a menos que você limpe o cache do navegador
Basta fazer com que o token de autenticação do próprio serviço tenha a mesma duração do Gmail e, como alternativa, permitir login sempre com senha de uso único. Mas é preciso parar com práticas blasfemas como tokens de autenticação de 12 horas. Assim, o usuário nunca mais vai entrar por recuperação de senha
Já tive problemas com contas da Epic e do Spotify. Você cria uma conta, usa por uma semana, a sessão expira e o Spotify te expulsa da conta. Quando tenta entrar, diz que a senha está errada, o que é impossível porque ela está salva no gerenciador de senhas. No fim, não há alternativa senão redefinir por e-mail. Nas primeiras vezes, mesmo recebendo o e-mail e redefinindo, o mesmo padrão se repetia; depois de 3 ou 4 vezes, nem o e-mail chegava mais e era preciso criar uma conta nova. Hoje entro no Spotify com a conta Google e ainda não tive problema. Mas, usando e-mail comum, o sistema de autenticação deles simplesmente não funciona
O problema é que falta uma linguagem consistente para medir risco e julgar “este site realmente precisa de autenticação de dois fatores?” ou “uma sessão de 30 minutos faz sentido?”. Se houver um antivírus atualizado, a maioria vai querer continuar logada. Você já recebeu um pedido para limpar todos os cookies para corrigir algum problema em um site? Minha resposta é sempre não. Já ouvi alguém dizer: “A conta é sua; se você quer permanecer logado e assumir o risco de ser hackeado, esse risco é seu, não do operador do serviço”, e concordo cada vez mais. Se alguém apagou todas as suas instâncias EC2 enquanto seu notebook estava logado, a culpa não é da AWS por não ter te deslogado antes; é sua. A AWS poderia fazer isso, mas por que deveria? Não há motivo para irritar 1 milhão de pessoas para proteger 1 pessoa descuidada
Já vi sites que eliminaram a etapa de recuperação de senha ou eliminaram a própria senha. O e-mail é a autenticação
Você informa o endereço de e-mail, recebe um e-mail com um código e digita o código para entrar. Entendo por que fazem isso, mas, como uso vários e-mails, detesto bastante. Precisei colocar o e-mail e uma anotação no gerenciador de senhas para lembrar qual e-mail usar, e isso fica como um item sem senha
Se não conseguem nem criar um sistema de login decente, é bem provável que também não tenham competência para entregar a funcionalidade prometida. Magic links deixaram de ser apenas um incômodo e viraram um filtro
Não há o peso de lembrar a senha de um serviço usado raramente, e o onboarding da empresa também fica fácil. A empresa envia um CSV de usuários, e eles podem começar a trabalhar imediatamente, sem criar e confirmar senha nem cumprir regras. Não preferimos links por e-mail, porque pré-visualizações em apps de celular ou scanners antivírus corporativos acabam “clicando” nos links
Mesmo oferecendo ambos, se exigir senha e ainda confirmação por e-mail, acho que mais gente vai abandonar o fluxo de cadastro. Além disso, o código fica muito mais simples por não precisar lidar com senha e vários fluxos de login por e-mail
Como o voucher precisava ser associado ao e-mail, era necessário confirmar a posse clicando no link, para o caso de problemas de suporte no futuro por perda do voucher. Se a pessoa criasse uma conta depois, também poderia ver os vouchers recebidos anteriormente
Só depois de ler este texto percebi que estou usando exatamente esse método na Best Buy
Não foi intencional. Sei que a senha está correta porque ela está salva no 1Password, mas toda vez que tento comprar algo no bestbuy.com, algum mecanismo de proteção contra sequestro de conta é acionado e diz falsamente que a senha está errada. Acredito perfeitamente que possa ser um problema do meu lado. Pode ser algo como um bloqueador de anúncios ou bloqueio de DNS local. Mas, depois de algumas repetições, a vontade de depurar desaparece e você simplesmente segue o caminho de menor resistência
maxlengthdiferentesPor exemplo, se você definiu uma senha de 60 caracteres ao alterá-la, mas o comprimento máximo da página de login é 40 caracteres, ao fazer login aparece “senha incorreta”. Por isso agora adoto a política de salvar o comprimento máximo nas configurações da aplicação para que ele seja propagado a todos os campos de senha. Verificando, há de fato uma incompatibilidade de comprimento. O formulário de definição de senha tem
maxlengthde 54, mas a página de login não temmaxlength. Portanto, se a senha tiver mais de 54 caracteres e o 1Password não cortar automaticamente a senha salva para 54 caracteres ou menos, não será possível fazer loginPara a maioria das pessoas, usar computador é tentar na força bruta, repetidamente, até mais ou menos funcionar. Software é criado por pessoas que entendem em detalhes os sistemas subjacentes, mas é feito para pessoas que não têm esse entendimento
Quando usuários encontram um padrão que funciona uma vez, ficam nele. Agora que muitas escolas usam tablets na educação, essa tendência está ficando ainda maior. As pessoas não pegam muito bem a intuição de como computadores funcionam. A maioria não pensa profundamente nisso. Está simplesmente ali e, como já estão acostumadas com coisas quebradas por padrão, qual é o grande problema de clicar mais algumas vezes?
Exagerando um pouco, os fluxos de login são iguais
A) você vai ao site, copia e cola uma string aleatória pelo gerenciador de senhas e recebe por e-mail uma solicitação de TOTP para verificar sua identidade. Ou B) você vai ao site, clica em “esqueci minha senha”, recebe um link de login e então digita uma string aleatória. Em muitos casos, B é na prática mais rápido, e quase nunca muito mais lento. A caixa “lembrar” não tem efeito nenhum
Acho meu fluxo melhor que os dois. Vou ao site, o Safari sugere o preenchimento automático, uso TouchID/FaceID e recebo a solicitação do código de segunda etapa. Se vier por SMS ou e-mail, o Safari sugere o preenchimento automático. Mesmo se for TOTP, o Safari preenche automaticamente. É muito fácil. Passkeys são ainda mais fáceis porque não há a segunda etapa nem a espera por SMS/e-mail
A motivação dá para entender na hora. Se você usa “esqueci minha senha”, não precisa lembrar a senha. E isso também não torna a segurança da conta mais fraca. Afinal, esse caminho já estava aberto também para atacantes
Alguns sites adotam isso como fluxo padrão e afirmam implicitamente que, se podem enviar um botão de login por e-mail para alguém, a senha em si é irrelevante. Pessoalmente, não gosto. Não confio em e-mail e também não gosto de ele virar um ponto único de falha para dezenas de contas. Se é possível fazer login só com o segundo fator, então isso não é autenticação de dois fatores. Eu gostaria de fazer login com senha, sem opção de redefinição, mas a realidade não é assim