Enquanto compartilho algumas das preocupações de outros correspondentes, também observo um argumento de pragmatismo.
Eu tenho que emitir muitas senhas para pessoas em outros países. Eu não os conheço; Não tenho como entrar em contato com eles cara a cara; Eu não posso contratar um mensageiro para entregar uma senha a cada vez; e os atrasos do correio (que também não é de forma alguma um serviço de pessoa para pessoa garantida) são considerados inaceitáveis.
Então, o que é um sysadmin para fazer? Eu tenho que obter senhas para as pessoas de alguma forma , ou ninguém nunca será capaz de fazer o login.
Então, por algum tempo eu fiz como você faz. Eu preciso de um número de telefone GSM para cada nova solicitação de senha (ou alteração) validada, e eu envio a senha por SMS para esse número; nome de usuário, endereços de sistema, etc., todos passam por e-mail do sistema de tíquetes que eles usaram para registrar a solicitação. A única ruga que eu adicionei é a pré-expiração da senha, que exige que ela seja alterada no primeiro login. No Linux, faço isso com chage -d 0 username
após definir a senha e no Solaris com passwd -f username
.
Isso significa que o token não é infinitamente reutilizável se for divulgado; um chapéu preto que vem através da mensagem de texto descartada só saberá o que a senha costumava ser. Isso também significa que, se alguém conseguir primeiro, eu vou descobrir, porque o usuário legítimo não conseguirá fazer o login depois que o black hat chegar lá e modificá-lo primeiro.
Ainda não é perfeito, e ainda há maneiras de falhar, mas ainda não encontrei nada melhor. Alguém?