Bánffy e o hash criptográfico
Entre os primeiros usuários do Brasil Online em 1996 havia uns tantos “VIPs”: executivos de mídia, publicitários, políticos, celebridades, pessoas que a Abril queria agradar. Um desses VIPs esqueceu a senha e pediu para sua assistente ligar para a Abril para recuperá-la. O recado chegou até o meu chefe, Antonio Machado—diretor do Grupo Exame—que pediu para eu resolver.
O usuário VIP estava irritado porque nosso suporte técnico disse que era impossível recuperar a senha, e ele achava que era má vontade: como podíamos autenticar um login sem saber a senha? Na verdade, a gente armazenava um hash criptográfico da senha, por isso era inviável reconstruí-la.1
Passei o pepino para meu amigo, o engenheiro de software Ricardo Bánffy. O desafio era apaziguar com educação.
E o Bánffy educou com essa analogia:
Imagine que quando o usuário cria a conta, a gente anota a senha num pedaço de papel, queima o papel, e guarda as cinzas numa caixa de fósforos. Depois, quando o usuário digita o login e a senha, a gente anota essa senha, queima o papel, e compara as cinzas com as que temos na caixa de fósforos. Assim a gente consegue dizer se as senhas eram iguais, mas não temos como reconstruir a senha a partir das cinzas.2
Assim o Bánffy convenceu a assistente que o patrão irritado teria mesmo que seguir o procedimento normal e criar uma nova senha.3
Na época usávamos um hash MD5 com sal. Hoje MD5 não é mais recomendado. Existem funções de derivação de senha especializadas para este caso de uso. ↩︎
Essa não é uma citação literal, mas é assim que eu lembro. ↩︎
Mistérios que Bánffy e eu nunca resolvemos: Porque a pessoa estava tão apegada a uma senha que ela nem lembrava qual era? Qual a utilidade de resgatar a senha esquecida em vez de criar uma nova? Minha hipótese: gente poderosa gosta de exercitar poder, e não aceita situações onde seu desejo não pode ser atendido. ↩︎