Registro e autenticação sem email e sem senha

Os problemas de insegurança e usabilidade das senhas são bem conhecidos. Senhas são algo que você sabe, portanto são vulneráveis ao esquecimento, o que ocorre com frequência. Assim, o e-mail é amplamente utilizado como backup para redefinir senhas.

O e-mail também apresenta muitos problemas. De forma semelhante às senhas, as pessoas geralmente reutilizam o mesmo endereço de e-mail em diversos serviços, criando um risco de privacidade caso o e-mail seja descoberto a partir do serviço. Tornou-se cada vez mais difícil obter um endereço de e-mail sem fornecer informações de identificação pessoal ao servidor de e-mail. Como medida dissuasória contra spam (e provavelmente também porque facilita o direcionamento de anúncios aos usuários), serviços de e-mail gratuitos normalmente exigem o fornecimento de um número de telefone, que é fácil de associar a uma pessoa específica. Serviços de e-mail pagos podem não exigir um número de telefone, mas pagar por um serviço sem fornecer informações de identificação pessoal também é difícil, e depender de uma assinatura de serviço de e-mail pago é vulnerável a mudanças nas circunstâncias financeiras. Além disso, é difícil hospedar de forma confiável um servidor de e-mail próprio hoje em dia. Além das questões de privacidade, a centralização criada pela reutilização de uma conta de e-mail em muitos serviços também gera um risco de segurança, pois o comprometimento da conta de e-mail comprometeria muitas outras contas.

Hoje em dia, não precisamos de senhas nem de e-mails para registrar ou autenticar em um serviço. O Discourse já suporta FIDO e TOTP, mas ainda exige senha e endereço de e-mail para registro e autenticação. Seria ótimo se o Discourse tornasse senhas e e-mails opcionais em favor de FIDO e TOTP.

A autenticação de um único fator com FIDO pode ser realmente conveniente, mas é vulnerável à perda ou destruição do único token FIDO, semelhante ao problema de se registrar com uma senha mas sem endereço de e-mail. Para resolver isso, proponho que os usuários sejam obrigados a fornecer pelo menos dois fatores para registro, que poderiam ser qualquer combinação de FIDO, TOTP e/ou senha. Usuários que desejam autenticação sem e-mail e sem senha poderiam simplesmente registrar dois autenticadores FIDO portáteis, como YubiKeys. Os usuários poderiam ser orientados (ou potencialmente obrigados, especialmente administradores) a registrar mais do que o mínimo de dois fatores para evitar perder o acesso às suas contas.

Como os autenticadores de plataforma FIDO estão sendo incorporados em cada vez mais dispositivos atualmente, com Windows Hello, Apple Touch & Face ID e Android, esse sistema de registro sem e-mail poderia ser utilizável por usuários não técnicos que não possuem hardware especializado de autenticadores portáteis como um YubiKey. Os usuários poderiam se registrar com o autenticador de plataforma FIDO mais uma senha. A autenticação de um único fator com o autenticador de plataforma FIDO poderia funcionar perfeitamente com essa configuração. No entanto, isso criaria um problema de usabilidade para autenticação em novos dispositivos, pois os usuários não teriam o autenticador de plataforma FIDO disponível em um novo dispositivo, e confiar apenas na senha para configurar um novo dispositivo não seria seguro. Para resolver isso, proponho um fluxo de trabalho semelhante ao utilizado pelo Matrix para autenticar novos clientes. O usuário poderia tentar fazer login em um novo dispositivo com o autenticador de plataforma FIDO desse dispositivo (um novo fator) e sua senha (um fator já registrado). Isso não efetivamente faria o login, mas criaria uma solicitação para aprovar o novo autenticador FIDO na conta. A interface no novo dispositivo então orientaria o usuário a fazer login em um dispositivo que já possui registrado para aprovar o novo dispositivo. Com autenticadores de plataforma FIDO integrados em dispositivos móveis, isso poderia ser praticamente utilizável para autenticação segura sem hardware especializado de autenticadores portáteis ou sem sacrificar a capacidade de usar qualquer dispositivo improvisado, como um quiosque público.

Eu acabei de criar esse sistema de registro e autenticação anônimos ontem, após receber meus YubiKeys. Não tenho conhecimento de nenhum sistema que implemente isso. Gostaria muito de ver uma aplicação web madura e já amplamente implantada, como o Discourse, pioneira em um futuro sem a necessidade de e-mail ou outras informações de identificação pessoal para usar a Internet.

3 curtidas

Isso provavelmente é verdade. Mas é difícil imaginar que alguém que faria login com o sistema que você propõe não saiba o que é um gerenciador de senhas. Uso um gerenciador de senhas há uma década ou mais, tenho várias chaves FIDO, uso o Google Authenticator e não entendo muito bem o que você está propondo.

Parece improvável que tal sistema seja adicionado, a menos que pelo menos alguns clientes corporativos o queiram. Acredito que isso demandaria pelo menos 50 horas de trabalho para alguém que conhece bem o sistema de autenticação, e provavelmente o dobro disso com especificações adequadas. Houve uma tentativa, há algum tempo, de integrar com o Keybase, que poderia fazer parte do que você deseja, mas não creio que tenha avançado muito.

É uma ideia interessante, no entanto. Talvez seja mais fácil do que eu penso.

1 curtida

Qualquer pessoa com um dispositivo recente que tenha um autenticador de plataforma FIDO integrado poderia usar isso com bastante facilidade. Daqui a alguns anos, isso poderá ser quase qualquer pessoa.

Eu disse no título: torne o e-mail opcional. Tornar as senhas opcionais também seria ótimo.

Tenho certeza de que exigiria um trabalho considerável para implementar. Acredito que a parte mais difícil seria deixar o design da UX realmente claro. O Discourse já tem os blocos de construção necessários, com 2FA suportando FIDO e TOTP.

1 curtida

Um pequeno primeiro passo para implementar isso poderia ser adicionar a interface de usuário para registrar FIDO e TOTP à tela de registro, para que não seja necessário um passo extra nas preferências após o primeiro login. Mais tarde, o design da interface pode ser aprimorado para tornar o e-mail e a senha opcionais.

1 curtida

Tenho curiosidade sobre o que @codinghorror pensa a respeito, considerando seus vários posts no blog sobre senhas.

3 curtidas

O e-mail deve ser opcional. Usar e-mail está se tornando cada vez mais não confiável, impossível devido ao grande oligopólio dos provedores de e-mail.

Agora, de repente, o Gmail está bloqueando meu nome de domínio.

  • Mesmo após configurar perfeitamente toda a segurança de e-mail (SPF, DKIM, DMARC, …) por anos
    • O que eu quero dizer com perfeito? Todas as ferramentas de teste e relatórios de segurança de e-mail estão mostrando “100% OK” e
    • o nome de domínio também não está em nenhuma lista de spam (spamhouse…) há anos.

Mas você pode contatar o Gmail? Claro…

Citação Sender Contact Form - Gmail Help

Usaremos as informações que você fornecer para investigar e melhorar nossos sistemas de detecção de spam e abuso. Infelizmente, não podemos fornecer detalhes sobre nossas descobertas durante ou após a investigação.

Portanto, a resposta provavelmente será algo como “sim, nós investigamos, não consertamos, o problema é seu, mas você não compartilha nenhum exemplo de spam e nós não dizemos qual é o problema”… Isso, se houver algum problema.

De qualquer forma, usei esse formulário de contato. Leva duas semanas para o e-mail responder, disse o formulário no final. Isso torna o e-mail praticamente não confiável e muito complicado para trabalhar.

Não é apenas a minha experiência.

Muitas outras pessoas escreveram sobre experiências semelhantes.

Essas artimanhas vêm em cima de todas as dificuldades técnicas de auto-hospedar seu servidor de e-mail.

Você poderia, por favor, tornar o e-mail opcional?

  • Ao se inscrever com endereço de e-mail: A recuperação de senha será possível.
  • Ao se inscrever sem endereço de e-mail: A recuperação de senha será impossível.
    • Se permitido pelo administrador do site (configuração opcional), avise o usuário, mas permita a inscrição sem endereço de e-mail.
    • Apenas nome de usuário + senha.

Tópicos semelhantes:

1 curtida

Uma solução rápida e fácil é usar outro sistema para autenticação usando o Discourse Connect.

Minha estimativa anterior de quão difícil seria criar um sistema sem e-mail está completamente errada. Usar outro identificador com um nome de host not-email.invalid para esses e-mails deve ser factível. Acho que o plugin Sign-In with Ethereum pode fazer o que você quer, se você estiver disposto a fazer as pessoas usarem Ethereum, mas algo semelhante também poderia funcionar. Você precisa de alguma forma de estabelecer identidade.

Você precisa de alguma forma de estabelecer identidade.

Apenas nome de usuário + senha.

Então qualquer pessoa (ou qualquer bot) em toda a internet pode vir ao seu fórum e criar um número infinito de contas inventando um nome de usuário e uma senha?

Sim.

Na minha experiência com vários aplicativos web, os bots de spam não têm muitos problemas para criar endereços de e-mail do Gmail e outros. No meu site, também não estamos excluindo endereços de e-mail temporários e descartáveis. Existem também outros softwares de fórum / fóruns que permitem o cadastro sem um endereço de e-mail (ou sem um endereço de e-mail válido) e isso também não causou nenhum problema que eu pudesse ver. Portanto, não vejo os endereços de e-mail como uma grande barreira para evitar uma enxurrada de contas de bots / ataques de DoS.

Mas eu entendo de onde você pode estar vindo. Permitir que os usuários se cadastrem sem endereço de e-mail pode se expandir para muitos problemas de acompanhamento. E se houver uma enorme enxurrada de ataques de bots e/ou ataques de DoS, onde um número insano de contas de fórum é criado?

Nesse caso, seriam necessárias medidas de prevenção contra spam. Mas estas não seriam específicas para as instâncias de fórum onde o e-mail é opcional versus aquelas onde o e-mail é obrigatório.

Isso porque os spammers também hoje em dia têm acesso a muitos endereços de e-mail criados ou hackeados. Eles também poderiam usar provedores de e-mail temporários. Ou comprar/roubar um nome de domínio e configurar seu próprio servidor de e-mail apenas para fins de configurações de fórum spam.

As mesmas perguntas surgiriam de ambos os usuários, que usam ou não usam e-mail. Para fins desta discussão, perguntas teóricas.

  • Como visualizar todas as contas que foram criadas desde X dias, que fizeram login menos de X minutos, que têm 0 posts? Provavelmente contas de bot. Quero encontrar e excluir todas elas.
  • Como adicionar uma pergunta personalizada / quebra-cabeça / captcha / o que for antes de aceitar um cadastro?
  • O painel de administração poderia ter um botão fácil onde os administradores podem facilmente aprovar/desaprovar novos cadastros capazes de lidar com spam de registro em massa?

Parece que o Google apresentou uma solução interessante para isso usando códigos QR e Bluetooth:

1 curtida

Relacionado: Users logging with SSO, without email address

1 curtida

Agora que as passkeys são tão prevalentes, muitos serviços oferecem cadastro sem senha, onde você nunca precisa criar uma. Ter uma senha, na verdade, anula os benefícios de segurança das passkeys. Da mesma forma, usar o e-mail como método de recuperação significa que a segurança de todas as suas contas depende da segurança da sua conta de e-mail. Exigir senhas/e-mail é ruim para a segurança e privacidade do usuário, sem mencionar o quão fácil é criar novas contas de e-mail. Posso dizer por experiência que o requisito de e-mail não impede bots de enviarem spam para o seu fórum. Uma das principais razões pelas quais os serviços historicamente exigiram um e-mail é para que você possa recuperar sua conta caso esqueça sua senha, mas com as passkeys elas são armazenadas no seu gerenciador de senhas e sincronizadas entre dispositivos. Você pode até adicionar várias passkeys a uma conta, eliminando a maior parte do problema de as pessoas esquecerem suas senhas. Aqui estão alguns exemplos de sites que implementam cadastro sem senha:

https://app.uninbox.com/ Este, na minha opinião, é especialmente bom, pois não exige um e-mail
https://www.kayak.com/

1 curtida

Por favor, explique isso como se eu tivesse 80 anos.

O Target oferece registro usando apenas passkey (com opção de e-mail/senha), e o Discourse força o uso de e-mail ou e-mail via SSO. O Kayak (eu realmente não gosto desse nome de domínio, aliás :smirking_face:) usa apenas o Google SSO, e o Discourse já oferece isso.

Então, a pergunta em aberto aqui é se há uma opção semelhante à que o Target usa, porque a opção Kayak já existe (eu não limitaria o registro apenas a usuários do Google, mas isso sou só eu).

O que acontece quando um usuário do Target muda, por exemplo, do iPhone para o Android?

O Kayak na verdade permite que você se inscreva com uma chave de acesso (passkey) se você inserir seu e-mail. Infelizmente, o e-mail ainda é necessário.

Suas chaves de acesso (passkeys) devem ser sincronizadas com seu gerenciador de senhas para que estejam disponíveis. Você também pode adicionar várias chaves de acesso a uma conta para que possa simplesmente criar uma nova com o novo telefone também. Atualmente, eles estão trabalhando para torná-las exportáveis para que você possa migrar entre gerenciadores de senhas com mais facilidade.

1 curtida