Por Marcelo Tavares de Santana[1]
Algumas práticas fazem de incidentes desagradáveis boas provas de conceito. Faz um mês que minha esposa teve o celular furtado numa loja de roupas e até o momento não tivemos dinheiro sumindo, nem pedidos de empréstimos feitos aos amigos, nem redes sociais ou contas de e-mail invadidas, e dificilmente teremos outros inconvenientes que não sejam a perda do equipamento e o gasto com um novo; assim como o furto de meu notebook em 2017 num shopping. Senhas fortes, criptografia, autenticação multifatorial (MFA[2]) e gerenciadores de senha são práticas e tecnologias imprescindíveis no nosso dia a dia, e mais interessantes quando os algoritmos destas são públicos, padronizados e ficam nas mãos da sociedade. No artigo anterior tratamos da importância das redes públicas federadas e ao entrar numa delas tive a agradável surpresa de descobrir que o software usa um segundo fator de autenticação padronizado, público e para o qual temos softwares livres que podem ser usados junto à rede, ou seja, a técnica matemática e os programas do método de autenticação são totalmente auditáveis pela sociedade e qualquer um pode usar. Trata-se da Time-based one-time password (TOTP[3]), uma forma de senha de uso único baseada no tempo.
Senhas de uso único também costumam ser chamadas de senhas descartáveis, senhas efêmeras, tokens ou número do token. Basicamente são senhas que perdem a função assim que são usadas, mas em algumas técnicas exigem a anotação de diversos códigos que precisam ser protegidos de terceiros. Como a cultura de criptografia ainda é ínfima, muitos criticam as senhas efêmeras por pensarem que serão anotadas em papel quando deveriam orientar usuários a usarem arquivos criptografados para guardá-las. Assim alguns podem ser desestimulados a usar a TOTP ou similares sem saber que esses algoritmos associados a gerenciadores de senhas, com senhas fortes, proporcionam segurança extremamente elevada, a ponto de inviabilizar até mesmo ataques de força bruta com computadores quânticos.
Um ataque de força bruta consiste em testar todas as senhas possíveis até conseguir acesso, que demandaria muito tempo mesmo para computadores com alto poder de processamento. Um computador quântico em teoria reduziria muito esse tempo de tentativas de acesso, mas, se a senha se altera num tempo inferior à metade do tempo necessário para acertar a senha, fica inviável tentar usar força bruta com computadores quânticos. Desmistificando um pouquinho mais a ameaça sensacionalista desses computadores, podemos encontrar matérias afirmando que computadores quânticos fazem tarefas de 10 mil anos em minutos, mas o algoritmo da TOTP troca o código a cada 30 segundos, e se formos uma sociedade de milhões com boas práticas de segurança fica financeiramente impossível qualquer entidade tentar quebrar senhas em massa, pois já não vale o custo de descobrir a senha de uma única pessoa. Particularmente, acredito que a prioridade de uso da computação quântica deva ser a resolução do aquecimento global e da degradação do planeta, ou a exploração espacial para encontrar um novo lar para a humanidade, pois isso está mais urgente no momento. Por um outro ponto de vista, boas práticas de segurança são fundamentais para a manutenção de sistemas democráticos ao inviabilizarem controle sobre a sociedade, o que fortalece o senso de que o direito à criptografia deva compor o conjunto de direitos humanos universais.
Para exemplificar o uso da TOTP consideraremos a rede social Mastodon e o aplicativo KeepassXC. Assim, usaremos um método de autenticação padronizado, numa rede federada pública com um aplicativo de código livre, todas soluções livres ou em domínio público; só vai faltar a popularização de um hardware tão auditável quanto a urna eletrônica, e não vai demorar a termos soluções na arquitetura aberta RISC-V para computadores de mesa e notebooks. Mesmo que não tenha uma conta em algum nó da Mastodon, vale a pena criar para praticar o uso da TOTP. Se não quiser criar a conta, pesquise na Web por imagens com o texto ‘TOTP QR Code’ que poderá encontrar códigos para testar com o KeepassXC (também vale para o Keepass2Android no smartphone).
No nó Mastodon que tiver conta, vá em Preferências, Conta, Autenticação de dois fatores e clique em Configurar. Será apresentado um código QR Code e um código texto. No KeepassXC selecione a entrada correspondente à rede social (crie uma de teste se necessário) e no menu de contexto (normalmente acessível com o botão direito do mouse) vá em TOTP, Configurar TOTP, copie o código texto no campo Chave secreta e mantenha a opção RFC 6238, que é o padrão público do algoritmo de autenticação. Clique em OK e novamente em TOTP no menu de contexto e finalmente Mostrar TOTP. Nesse ponto será possível ver o código mudar a cada 30 segundos, sendo que somente dois aplicativos podem reproduzir esses códigos: o nó Mastodon e tua instalação do KeepassXC. Como a TOTP usa o tempo como variável, é preciso que os dois programas tenham o mesmo horário, ou seja, estejam com o hora certa e é por isso que é preciso colocar o código temporário de volta no nó Mastodon como forma de verificação indireta de que estão com tempo sincronizados; faça isso e habilite a autenticação de dois fatores. Ainda serão oferecidos códigos a serem usados caso a TOTP falhe, mas com a recomendação ruim de imprimir em papel (na versão 4.0.2 do Mastodon). Ao invés disso, recomendo que copiem esses códigos nas notas da entrada no KeepassXC, fechem o programa e façam cópia em mídia externa e nuvem do arquivo de chaveiro digital.
Aliás, deve-se fazer cópia do chaveiro a cada nova entrada, e agora com a TOTP ele ganha mais importância no nosso dia a dia. Na minha prática tenho dois chaveiros digitais, um com todas as minhas entradas e que fica no computador criptografado, e outro no smartphone com um subconjunto dessas entradas; somente com o que é importante em caso de eventualidades fora de casa, por exemplo, acesso a minha carteirinha digital do plano de saúde. Sempre faço dois backups dos dois chaveiros, e por ter essa facilidade dos aplicativos todas as senhas são fortes e nunca são repetidas; só memorizo as senha dos chaveiros, que são diferentes entre si; essa prática se mostrou satisfatória em casos reais de furto e configura um pequeno esforço de organização se comparado com a dor de cabeça que poderíamos ter sem ela. Para mais explicações sobre senhas fortes e chaveiro digital, vejam Mapa de Segurança Digital (1)[4].
Considero importante revisarmos nossas contas de serviços digitais para verificarmos se estão com autenticação de dois fatores ou mais. A Mastodon por exemplo, aceita senhas longas, tem TOTP e ainda podemos saber quantos dispositivos estão autenticados. Abaixo um sugestão de revisão de contas:
- Semana 1: revise se tuas contas de e-mail usam autenticação multifatorial em algum padrão público; segundo fator por SMS é prático, mas devemos pôr PIN/senha no cartão SIM e ocultar a exibição das notificações enquanto o smartphone estiver bloqueado, senão poderão ver códigos de acesso enviados por SMS;
- Semana 2: revise tua prática de backups de chaveiros digitais e procure manter no smartphone um subconjunto de entradas de acesso;
- Semana 3: revise se tuas contas de redes sociais usam autenticação multifatorial; recomendável usar algoritmos públicos como o TOTP;
- Semana 4: estimule família e amigos a configurarem autenticação multifatorial, porem PIN no cartão SIM e ocultarem notificações quando bloqueado o smartphone.
As sugestões da terceira e quarta semanas vêm porque minha irmã e uma amiga recentemente passaram por furto de perfil numa rede social privada de fotos, num espaço de duas semanas de diferença. Parece-me que a empresa não tem como meta estimular práticas mais seguras de autenticação nos usuários, apesar de ter as opções. Então é melhor nos apropriarmos das boas práticas e talvez até usarmos a adoção de padrões públicos de segurança como critérios para entrar numa rede social.
[1] Professor de Ensino Básico, Técnico e Tecnológico do Instituto Federal de São Paulo.