Tudo o que vale a pena saber, nada do que não vale.
Contra o que cada um deles realmente protege
Um código temporal gerado por uma aplicação autenticadora é criado no dispositivo a partir de um segredo partilhado e nunca trafega pela rede, sendo, portanto, imune a troca SIM, interceção SS7 e espionagem em nível de rede. Um código SMS, por outro lado, trafega pela rede da operadora, o que significa que pode ser redirecionado por uma troca SIM e, em rotas mal protegidas, intercetado na camada de sinalização. Ambos os métodos são eficazes contra a reutilização de palavras-passe e o preenchimento de credenciais — de longe o ataque mais comum.
Qual o custo de cada um em utilizadores?
As aplicações de autenticação têm uma etapa de registo complexa: o utilizador precisa instalar a aplicação, escanear um código e manter o dispositivo. Uma participação significativa não será suficiente para completar esse processo, e aqueles que perdem o dispositivo geram procura para o suporte. SMS não tem nenhuma etapa de registo — o utilizador já possui o número que você tem. Em mercados com menor penetração de smartphones ou onde os utilizadores trocam de aparelho com frequência, SMS não é a opção menos vantajosa, é a única que funciona.
Uma hierarquia sensata
Ofereça palavras-passe ou uma aplicação autenticadora como fator principal e torne o registo atraente. Mantenha SMS como alternativa para que ninguém fique sem acesso. Reserve os fluxos de segurança mais rigorosos — transferência de dinheiro, alteração de conta para receção de pagamentos, desativação de controlos de segurança — apenas para o fator forte e adicione uma verificação do status da linha para que uma troca recente SIM force uma atualização de segurança. Dessa forma, o fator fraco nunca protegerá o que seria mais prejudicial perder.
Se você só puder enviar um
Envie SMS OTP e faça isso bem: utilize rotas diretas da operadora para que o código chegue em segundos em vez de minutos, um tempo de vida curto para o código, um limite baixo de tentativas e uma opção de voz para os poucos casos em que as mensagens não chegam. Um código SMS bem entregue é melhor do que uma aplicação de autenticação na qual o utilizador nunca se registou — e você pode adicionar a autenticação mais robusta posteriormente sem precisar remover a opção de voz.