Por que você não deve usar SMS para autenticação de dois fatores e quais são as alternativas?

Especialistas em segurança sempre sugerem usar autenticação de dois fatores para proteger as contas online dos usuários. Muitos serviços usam autenticação por SMS como padrão, mas essa é realmente uma opção segura?