Quando pedir confirmação de senha

Saiba quando repetir uma nova senha, pedir a senha atual ou usar MFA para confirmar ações sensíveis sem criar atrito desnecessário.

Campo de senha ligado a uma confirmação de segurança contextual.
Nível de impácto
Crítico
Status
Usar com atenção
Nível de evidênica
Forte evidência

Contexto

“Confirmar senha” pode significar duas coisas diferentes: repetir uma nova senha para detectar erro de digitação ou comprovar novamente a identidade antes de uma ação sensível. Esses usos não devem ser tratados como a mesma regra.

Na criação ou redefinição, um segundo campo acrescenta esforço e pode atrapalhar gerenciadores de senhas. Em muitos casos, permitir revelar a senha é suficiente para conferi-la. Em alterações críticas, porém, a sessão aberta pode não provar que a pessoa presente ainda é a titular; por isso, pode ser necessário pedir a senha atual, um fator adicional ou outra forma de reautenticação proporcional ao risco.

Defina primeiro o objetivo da confirmação. Se a intenção é evitar erro ao criar uma senha, prefira um único campo com opção de mostrar e ocultar, requisitos visíveis e validação clara. Adicione “Confirmar nova senha” somente quando o custo de cadastrar um valor diferente do pretendido superar o esforço adicional.

Se a intenção é autorizar uma ação sensível, solicite reautenticação no momento da ação. A senha atual pode ser adequada em contas baseadas em senha e sessões de menor risco; para alterar e-mail principal, senha, métodos de recuperação, MFA, dados financeiros ou permissões, avalie um fator adicional ou autenticação resistente a phishing.

Explique por que a confirmação é necessária antes do campo. Diferencie “Senha atual”, “Nova senha” e “Confirmar nova senha”; permita colar e preencher com gerenciadores; use os propósitos programáticos corretos: current-password para a senha existente e new-password para a nova senha e sua eventual confirmação.

Valide a correspondência sem apagar valores, informe o erro junto ao campo e não peça credenciais mais vezes do que o risco exige. Depois de uma alteração crítica, confirme o resultado e notifique a pessoa por um canal confiável.

Tela do GitHub solicitando a senha para confirmar o acesso antes de uma ação sensível.
Exemplo real: o GitHub solicita nova autenticação ao entrar no sudo mode antes de ações sensíveis e evita repeti-la por um período. Fonte da captura: Delasign — https://www.delasign.com/blog/github-block-commits-and-pushes/. Comportamento oficial: GitHub Docs — https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/sudo-mode.

Porque isso importa?

Campos repetidos não garantem que a pessoa escolheu uma boa senha: ela pode repetir o mesmo erro, colar o mesmo valor ou abandonar o fluxo. O GOV.UK conclui que o segundo campo não é necessário em especial quando a interface permite mostrar a senha.

Em contrapartida, uma sessão autenticada pode estar aberta em um dispositivo abandonado ou comprometido. A OWASP recomenda reautenticação após eventos de risco e antes de ações críticas, escolhendo o mecanismo de acordo com o contexto. O NIST também trata reautenticação como confirmação da presença contínua da pessoa em uma sessão.

Acessibilidade e segurança convergem quando o produto permite colar, usar preenchimento automático e gerenciadores. A WCAG 2.2 considera problemático obrigar memorização ou transcrição quando não há alternativa e reconhece o preenchimento programático como apoio importante.

  • Ao alterar senha, e-mail principal ou métodos de recuperação.
  • Ao desativar MFA ou adicionar dispositivo confiável.
  • Antes de visualizar ou modificar dados muito sensíveis.
  • Em transações ou permissões de alto impacto.
  • Após inatividade, recuperação de conta ou atividade suspeita.
  • Ao criar senha sem forma confiável de revisar o valor.
  • Quando testes mostrarem erros relevantes de digitação.
  • Como segundo campo obrigatório em todo cadastro.
  • Quando mostrar a senha já permite conferência suficiente.
  • Em ações rotineiras de baixo risco.
  • Logo após uma autenticação forte ainda válida.
  • Quando a senha não é o melhor fator disponível.
  • Para compensar rótulos, mensagens ou requisitos ruins.
  • Quando a repetição bloqueia gerenciadores de senhas.
Alerta da Apple em dispositivo confiável mostrando o contexto de uma tentativa de acesso e as opções permitir ou não permitir.
Exemplo real: a Apple confirma uma tentativa de acesso em um dispositivo confiável, apresenta o contexto e utiliza um fator adicional em vez de repetir campos de senha. Fonte: Apple Support — https://support.apple.com/en-us/102606.

Recomendações

Faça

Práticas recomendadas
  • Defina o risco da ação.
  • Explique o motivo.
  • Nomeie cada senha claramente.
  • Prefira mostrar e ocultar.
  • Permita colar.
  • Aceite gerenciadores.
  • Use autocomplete correto.
  • Valide sem apagar.
  • Notifique mudanças críticas.
Um único campo de senha conectado a uma etapa de segurança apenas antes de uma ação sensível.
Exemplo correto: use um único campo para revisar a nova senha. Solicite reautenticação somente quando uma ação sensível exigir nova comprovação de identidade.

Evite

Práticas a evitar
  • Não repita por padrão.
  • Não bloqueie a colagem.
  • Não peça a senha em excesso.
  • Não confunda senha atual e nova.
  • Não dependa só da sessão.
  • Não use senha onde MFA é necessário.
  • Não apague valores após erro.
  • Não revele credenciais em mensagens.
Três campos de senha idênticos empilhados, acompanhados por um símbolo de erro.
Exemplo incorreto: repetir campos de senha ou solicitar a credencial em ações de baixo risco aumenta o esforço sem garantir mais segurança.
Campo de senha do Adobe Spectrum com orientação de no mínimo oito caracteres.
Exemplo real: o Adobe Spectrum apresenta os requisitos junto ao campo de senha, reduzindo dúvidas antes do envio e a necessidade de repetir o valor. Fonte: Adobe Spectrum — https://spectrum.adobe.com/page/text-field/.

Acessibilidade

Mantenha rótulos visíveis e específicos: “Senha atual”, “Nova senha” e, se indispensável, “Confirmar nova senha”. Não dependa apenas da posição dos campos. Associe requisitos e erros aos respectivos controles e anuncie mudanças de estado sem interromper a digitação.

Não bloqueie copiar, colar, preenchimento automático ou gerenciadores de senhas. Use autocomplete="current-password" para confirmar a senha existente e autocomplete="new-password" tanto na nova senha quanto em sua confirmação. A WCAG 2.2 permite autenticação baseada em senha quando mecanismos como preenchimento automático e colagem reduzem a exigência de memória e transcrição.

Se houver opção de mostrar senha, cada botão deve ter nome acessível específico para o campo e comunicar seu estado. Preserve o foco, não apague valores válidos após erro e teste teclado, leitor de tela, zoom, contraste, mobile, gerenciadores e preenchimento automático.

Checklist

  • Está claro se a confirmação serve para revisar ou reautenticar?
  • O risco da ação justifica uma nova confirmação?
  • Mostrar a senha evitaria o segundo campo?
  • Os campos distinguem senha atual e nova?
  • A pessoa entende por que precisa confirmar?
  • A confirmação ocorre perto da ação sensível?
  • O mecanismo escolhido é proporcional ao risco?
  • MFA é usado quando a senha isolada não basta?
  • É possível colar e usar gerenciador?
  • Os valores de autocomplete estão corretos?
  • O erro identifica a divergência e como corrigir?
  • Os valores são preservados após erro?
  • A mudança crítica gera confirmação e notificação?
  • O fluxo evita solicitações repetidas sem necessidade?
  • A solução foi testada com teclado, leitor de tela, zoom e mobile?

Referências

  • GOV.UK Design System — Password input. Recomenda evitar o campo “Confirmar senha”, especialmente quando a pessoa pode mostrar e ocultar o valor. Se houver mais de um campo, orienta diferenciar os rótulos e os controles de visibilidade. Consultar o componente.
  • OWASP — Authentication Cheat Sheet. Recomenda reautenticação após eventos de risco e antes de ações críticas, com decisões baseadas em contexto e uso de MFA quando apropriado, reduzindo solicitações desnecessárias. Consultar a orientação.
  • OWASP — Multifactor Authentication Cheat Sheet. Indica MFA para ações sensíveis como alterar senha, e-mail associado, perguntas de segurança, fatores cadastrados ou privilégios, e recomenda autenticar com um fator já vinculado antes de mudanças. Consultar a orientação.
  • NIST — SP 800-63B-4, Reauthentication. Define reautenticação como a confirmação de que a sessão continua sob controle da pessoa e relaciona sua frequência e força ao nível de garantia, tempo e risco do contexto. Consultar a norma.
  • W3C WAI — Accessible Authentication (Minimum). Explica que autenticação não deve obrigar memorização ou transcrição sem alternativa e que colagem, preenchimento automático e gerenciadores podem reduzir essa barreira. Consultar o critério.
  • W3C WAI — Identify Input Purpose. Diferencia programaticamente current-password de new-password; o segundo também se aplica ao campo de confirmação de uma nova senha, quando ele existir. Consultar o critério.
  • GitHub Docs — Sudo mode. Exemplo de produto real que solicita nova autenticação apenas antes de ações potencialmente sensíveis, como alterar e-mail, autorizar aplicativos, adicionar chave SSH ou criar tokens. Após a confirmação, o GitHub mantém temporariamente uma sessão de maior confiança para evitar pedidos repetidos. Consultar o fluxo real.
  • Google Account Help — Verify it’s you for sensitive actions. Exemplo de produto real que escolhe uma verificação adicional para ações como alterar senha, consultar senhas salvas, ativar verificação em duas etapas ou baixar dados. O método varia conforme o risco e os fatores confiáveis disponíveis. Consultar o fluxo real.
  • Adobe Spectrum — Text field. Mostra um campo de senha acompanhado por instruções de formato e estados de validação. O exemplo sustenta a recomendação de apresentar requisitos antes do envio para reduzir erros e evitar duplicações desnecessárias. Consultar o componente.
  • Apple Support — Two-factor authentication. Demonstra a confirmação de uma tentativa de acesso em dispositivo confiável, com contexto da solicitação e código de verificação. É um exemplo de fator adicional proporcional ao risco, sem depender da repetição de campos de senha. Consultar o fluxo.
Veja também

Esta recomendação foi útil para você?