SMS e e-mail como segundo fator: o que a norma aceita

GuiaUNIFOKAL6 min de leituraProduto e integração
Ver em Markdown

A NIST SP 800-63B-4 trata o SMS como autenticador restrito e não aceita o e-mail como fator fora de banda. O que isso muda no login, os requisitos do código e quando usar cada canal.

Neste artigo, 6 seções

Código por SMS e código por e-mail são os segundos fatores mais usados no Brasil, porque todo mundo tem telefone e e-mail e ninguém precisa instalar nada. A resposta curta: pela NIST SP 800-63B-4, o SMS continua permitido como segundo fator, mas como autenticador restrito, com número cadastrado, alternativa mais forte oferecida e atenção a troca de chip; o e-mail não vale como fator fora de banda, e serve como reserva que não sobe o nível de garantia do login.

  • A NIST SP 800-63B-4 diz que "Email SHALL NOT be used for out-of-band authentication".
  • O telefone pela rede pública é o único autenticador restrito da norma, e quem o aceita assume o risco por escrito.
  • Com SMS, o verificador tem de oferecer outro tipo de autenticador a todos e deve olhar troca de chip e portabilidade antes de enviar.
  • O código fora de banda vale por até 10 minutos, uma vez só, com pelo menos seis dígitos.
  • Trocar o número cadastrado é ligar um autenticador novo, e segue o rito de ligação, não uma edição de cadastro.

O que a norma diz de cada canal

A seção 3.1.3 da NIST SP 800-63B-4 trata dos autenticadores fora de banda: o código que chega por um segundo canal, diferente daquele em que a pessoa está fazendo login. Sobre o e-mail, a frase é curta.

Email SHALL NOT be used for out-of-band authentication because it may be vulnerable to: Access using only a password; Interception in transit or at intermediate mail servers; Rerouting attacks, such as those caused by Domain Name System (DNS) spoofing.

NIST SP 800-63B-4, seção 3.1.3

O primeiro motivo é o que mais pesa no login. Se a caixa de e-mail abre só com senha, e a pessoa reutiliza senha, o código "de segundo fator" enviado por e-mail pode cair na mão de quem já tem a primeira senha. O segundo fator vira a mesma prova duas vezes.

O SMS tem outro tratamento. A seção 3.2.9 diz que, na publicação da norma, "there is one restricted authenticator: the use of the PSTN for out-of-band authentication". Restrito não é proibido: a norma exige que quem aceita esse autenticador avalie, entenda e aceite os riscos dele, e que use outro tipo quando o risco for inaceitável.

SMS e e-mail como segundo fator pela NIST SP 800-63B-4 (o uso indicado é leitura da casa)
CanalStatus na normaO que a norma exigeUso indicado no login
SMS para número cadastradoAutenticador restrito (3.1.3.3 e 3.2.9)Alternativa disponível a todos; considerar troca de aparelho, troca de chip e portabilidade antes de enviarSegundo fator permitido, com aplicativo autenticador oferecido
Código por e-mailNão é fator fora de banda (3.1.3)Não usar como autenticação fora de bandaReserva para quem não tem fator cadastrado, sem subir o nível
Aplicativo autenticadorAutenticador de posse, sem restriçãoOs requisitos de senha de uso único da normaO fator recomendado

Os requisitos do código

Quando o código fora de banda é usado, a seção 3.1.3 fixa as regras dele. A autenticação é inválida se não for concluída em até 10 minutos. O código é aceito uma vez só dentro desse prazo, para resistir a repetição. E ele é gerado aleatoriamente com pelo menos seis dígitos decimais. A limitação de tentativas da seção 3.2.2 também vale: o código não pode ser adivinhado por tentativa e erro dentro dos 10 minutos.

Para quem integra, as três regras viram três testes simples. O código expira; o código usado não volta a valer; o código errado muitas vezes morre antes de ser adivinhado. Os mesmos cuidados no envio do código de cadastro estão em OTP por e-mail e SMS, que trata do que o código prova sobre posse do contato.

O código de segundo fator tem um terceiro risco, o do envio sem pedido: quem dispara códigos em massa para números de terceiros usa o seu serviço para incomodar pessoas e gera custo para você. O envio precisa de limite por destino e por origem, com alarme quando um número recebe códigos que ninguém pediu.

O número cadastrado é um autenticador

Um detalhe da seção 3.1.3.3 muda o desenho de cadastro: "Setting or changing the pre-registered telephone number is considered to be the binding of a new authenticator". Trocar o número de celular de uma conta não é editar um campo de perfil; é trocar a credencial. Por isso a troca segue o rito de ligação de autenticador, o que na prática significa provar outro fator antes de aceitar o número novo e avisar a pessoa pelo canal antigo.

O ataque que esse cuidado fecha é a tomada de conta pela troca do número: quem conseguiu entrar uma vez, por senha vazada, troca o celular para o dele e passa a receber todo código dali em diante. O ataque na outra ponta, em que o fraudador transfere o número da vítima para um chip dele, está em SIM swap, e é por ele que a norma pede para considerar troca de chip e portabilidade antes de enviar o código.

Quando cada canal faz sentido

A leitura da casa, a partir da norma, é uma escada. O aplicativo autenticador é o padrão para quem aceita instalar. O SMS é o segundo fator de quem não aceita, com o número validado no cadastro e o aplicativo sempre oferecido como alternativa, porque a norma exige outro tipo disponível a todos; o OWASP ASVS 5.0 pede o mesmo no requisito 6.6.1, com número validado e alternativa mais forte oferecida. O e-mail fica como reserva: ele recupera o acesso de quem ainda não cadastrou fator nenhum, mas o token que sai desse login não deve dizer que dois fatores foram provados. Quando pedir o segundo fator, e não só qual pedir, está no artigo sobre MFA adaptativo.

Perguntas frequentes

SMS ainda é aceito como segundo fator?

Sim, como autenticador restrito. A NIST SP 800-63B-4 exige que outro tipo de autenticador esteja disponível a todos e recomenda considerar troca de aparelho, troca de chip e portabilidade antes de enviar o código.

Código por e-mail conta como autenticação de dois fatores?

Não pela NIST. A seção 3.1.3 da SP 800-63B-4 diz que e-mail "SHALL NOT be used for out-of-band authentication", porque a caixa pode abrir só com senha e a mensagem pode ser interceptada ou desviada.

Por quanto tempo o código de SMS deve valer?

No máximo 10 minutos, pela seção 3.1.3 da NIST SP 800-63B-4, aceito uma vez só e com pelo menos seis dígitos decimais.

Trocar o número de celular da conta exige cuidado especial?

Sim. A norma trata a troca do número cadastrado como a ligação de um autenticador novo, então ela pede prova de outro fator e não pode ser uma simples edição de perfil.

Fontes citadas

  • NIST SP 800-63B-4, Digital Identity Guidelines: Authentication and Authenticator Management, seções 3.1.3 (autenticadores fora de banda), 3.1.3.3 (rede telefônica pública), 3.2.2 (limitação de tentativas) e 3.2.9 (autenticadores restritos), em pages.nist.gov
  • OWASP, Application Security Verification Standard 5.0.0, capítulo V6, requisito 6.6.1, no repositório oficial