Escrever «não guardamos a tua palavra-passe» numa página web custa exatamente o mesmo que escrever outra coisa qualquer: nada. É uma frase, não é uma garantia. Escreve-a tal e qual quem diz a verdade e quem não diz, e do teu lado do ecrã as duas são idênticas.
É esse o problema de fundo de qualquer site que te peça uma palavra-passe para a «analisar». Mesmo que o serviço seja impecável —código limpo, boas intenções, gente séria—, tu não tens maneira de o saber. O servidor é uma caixa fechada. Mandas-lhe o dado mais sensível que tens e confias que do outro lado aconteça o que te prometeram que acontece.
E há um pormenor que costuma passar despercebido: uma promessa de não guardar também não protege daquilo que não depende de quem promete. Um servidor honesto pode ter registos que ninguém reviu, um proxy pelo meio, uma cópia de segurança automática, um funcionário novo ou, pura e simplesmente, um dia mau. A palavra-passe já saiu da tua máquina. O que acontecer a seguir está fora do teu alcance e, muitas vezes, do dele.
A única resposta que não exige acreditar em nada
A solução não é prometer melhor. É não precisar do dado.
Se a tua palavra-passe nunca sai do navegador, a pergunta «o que é que eles fazem com ela?» deixa de fazer sentido. Não há «eles». Não há servidor que a receba, nem registos onde apareça, nem cópia de segurança que a contenha, nem funcionário que a possa ler. A confiança não passa a ser mais bem gerida: desaparece do problema.
É isso que faz o password.es. O verificador analisa o que escreves no teu próprio navegador, com o teu próprio processador. O texto que escreves não viaja para lado nenhum porque não há lado nenhum para onde viajar.
De onde vem o acaso
O gerador parte do mesmo princípio. Para fazer uma palavra-passe aleatória é preciso acaso, e há duas formas de o obter: pedi-lo a um servidor ou pedi-lo ao navegador. Pedi-lo a um servidor seria absurdo: o servidor ficaria a conhecer a palavra-passe antes de ti.
Por isso pedimo-lo ao navegador, com crypto.getRandomValues(). É a API padrão
da plataforma web para aleatoriedade criptográfica —a que existe precisamente
para isto, ao contrário de Math.random(), que serve para baralhar cartas num
jogo e não para nada que tenha de resistir a alguém com interesse—. Quem produz o
acaso é o próprio navegador, na tua máquina. Nós não participamos: o resultado
aparece no teu ecrã e fica por ali.
Como confirmá-lo sem acreditares em mim
Tudo o que ficou dito continua a ser, para já, um parágrafo escrito pelas mesmas pessoas que fizeram o site. Ou seja: exatamente aquilo de que eu te dizia para desconfiares. Por isso não acredites em mim. Vê com os teus olhos.
Abre as ferramentas de programador do teu navegador —F12, ou Cmd+Option+I num
Mac—, vai ao separador Rede (Network), deixa-o aberto e entra no verificador.
Vais ver a página a carregar. Agora limpa a lista, clica no campo da
palavra-passe e escreve.
É isto que vais ver, e aqui convém ser exato em vez de vendedor:
- Ao clicar no campo, dispara-se um pedido. Não é a tua palavra-passe —ainda
não escreveste nada—: é a biblioteca que faz a análise, um ficheiro chamado
zxcvbn-pt-br.min.jsque traz lá dentro as listas de palavras, nomes, padrões de teclado e palavras-passe conhecidas contra as quais se compara. Transfere-se do password.es assim que tocas no campo, para que chegue enquanto escreves. Vem do mesmo domínio, é um ficheiro estático e é o mesmo para toda a gente que abra esta página —o site tem várias versões consoante o idioma, e esta carrega o pacote português—. - A partir daí, escrevas o que escreveres, a lista fica quieta. Uma letra, vinte, apaga, começa outra vez, cola um texto comprido. Zero pedidos. O contador não se mexe. O dicionário já está no teu navegador e a procura acontece contra a memória da tua máquina.
Essa distinção é toda a diferença. Não é que confies que o pedido não leve a tua palavra-passe: é que não há pedido. Não é preciso interpretar nada nem perceber o código; basta olhar para um contador que não sobe.
O inventário completo, defeitos incluídos
Já que o argumento é «confirma tu», seria estranho esconder o que irias encontrar ao confirmá-lo. O inventário honesto do password.es:
Não há analítica. Nem Google Analytics, nem uma alternativa discreta, nem um píxel. Houve um e foi retirado de todas as páginas. Não há cookies. O site não escreve nenhuma. Há, sim, uma coisa guardada no teu navegador: se preferes o tema claro ou escuro, no armazenamento local do teu próprio equipamento. Nunca é enviada para lado nenhum e podes apagá-la a partir do mesmo inspetor. Não há registo, contas nem formulários: não há onde deixar um dado, mesmo que quisesses deixá-lo.
E o defeito, porque há um: a página pede duas tipografias aos servidores da Google ao carregar. Isso significa que a Google vê que alguém com o teu IP carregou uma página deste domínio, como em tantíssimos sites. Não vê o que escreves —esse pedido acontece antes e não volta a repetir-se—, mas é um pedido a um terceiro, vais vê-lo nesse mesmo separador Rede e não faria sentido nenhum dizer-te para abrires o inspetor e ao mesmo tempo não o mencionar. Está na lista de coisas a corrigir.
Porque é que contamos isto
Podíamos ter escrito «zero pedidos, privacidade total» e ficado muito descansados. Teria soado melhor e teria sido falso nos pormenores: há um pedido de dicionário e há umas tipografias. Um argumento que cai quando alguém o verifica não era um argumento: era publicidade.
A versão exata é menos redonda e aguenta o escrutínio: aquilo que tu escreves não sai do teu navegador, e isso vê-se em trinta segundos com uma ferramenta que já tens instalada.
E atenção, porque isto devolve-se-te como critério geral. Da próxima vez que um site te peça a palavra-passe seja para o que for, abre esse separador e vê se aparece um pedido ao carregares numa tecla. Se aparecer, a tua palavra-passe foi-se. Não interessa o que diga o aviso de privacidade, o quão bonito seja o cadeado do formulário ou o quão séria pareça a empresa. E se o site te mostra a palavra-passe já analisada depois de uma rodinha a girar, já sabes por onde ela passou.
A regra de que menos se fala em segurança não é sobre palavras-passe: é sobre verificação. Confiar está bem. Confirmar é melhor, e aqui não custa nada.
Fontes: a arquitetura do próprio password.es, verificável com o inspetor de
qualquer navegador — o verificador transfere do próprio domínio, ao focar o
campo, a biblioteca de análise com as suas listas (zxcvbn-pt-br.min.js) e não
emite qualquer pedido enquanto se escreve ·
crypto.getRandomValues(), a API padrão da Web Crypto API para aleatoriedade
criptográfica · o código do site não contém analítica, píxeis nem cookies; o
único dado armazenado localmente é a preferência de tema · as tipografias são
servidas a partir do Google Fonts.