Se você usa o Firefox, provavelmente já percebeu que é possível armazenar todas as suas senhas no próprio navegador. Essa função é bastante interessante, pois permite que você acesse rapidamente suas contas e serviços sem a necessidade de lembrar cada senha. Além disso, se o Firefox for seu navegador principal, todas as informações são sincronizadas entre seus dispositivos. Mas você já parou para pensar se isso é realmente seguro? Sabe como o Firefox armazena e protege suas senhas? Neste post, vamos detalhar como funciona o gerenciador de senhas do Firefox, as medidas de segurança que ele adota e os riscos potenciais de confiar informações tão sensíveis ao navegador.

Como o Firefox armazena nossas credenciais?

Quando aceitamos salvar nossos dados de login, o Firefox inicia o processo buscando uma chave de criptografia. Se ainda não houver uma chave criada, o navegador gera uma de 256 bits. Em seguida, essa chave é usada para proteger as senhas por meio do algoritmo de criptografia simétrica AES no modo Cypher Block Chaining (CBC).

Essa chave é gerada uma única vez e será utilizada para criptografar todos os dados de login que o usuário do sistema operacional armazenar no Firefox. A chave deve ser criptografada, e o Firefox oferece duas opções para isso: se o usuário tiver uma senha mestra configurada, a chave será criptografada com essa senha; caso contrário, o navegador delega essa tarefa ao sistema operacional, que a protegerá por meio de um programa de gerenciamento de credenciais (como o DPAPI no Windows, Keychain no macOS ou gnome-keyring/Kwallet no Linux). Se o dispositivo não tiver essas funcionalidades, o Firefox utilizará um algoritmo de criptografia próprio. Em todos esses casos, as informações relacionadas às chaves de criptografia são armazenadas em um arquivo SQLite chamado key4.db (ou key3.db em versões anteriores).

Uma vez criptografadas, as credenciais são armazenadas em um arquivo chamado logins.json, que ficará localizado junto com o banco de dados mencionado anteriormente em:

Windows: C:\Users\[Usuario]\AppData\Roaming\Mozilla\Firefox\Profiles\[Perfil]

Linux: ~/.mozilla/firefox/[Perfil]

macOS: ~/Library/Application Support/Firefox/Profiles/[Perfil]
guardar-contrasenas-firefox-riesgos-1
Imagem 1. Exemplo de credencial em logins.json.

Para que possamos usar essa senha, o Firefox segue o processo inverso e a descriptografa.

Além disso, o Firefox oferece a possibilidade de sincronizar as credenciais armazenadas entre diferentes dispositivos. Essa funcionalidade, chamada Firefox Sync, também criptografa as comunicações que contêm credenciais em trânsito, evitando assim possíveis ataques Man-in-the-Middle durante o processo de sincronização.

Por que é arriscado armazenar nossas senhas no Firefox?

Embora existam diversas ferramentas que permitem recuperar as senhas armazenadas no Firefox, facilitando a transferência ou a coleta de nossas credenciais em um único arquivo, essas mesmas ferramentas podem ser exploradas por cibercriminosos. Se eles tiverem acesso ao nosso dispositivo, seja fisicamente ou remotamente, podem conseguir obter nossas credenciais de forma indevida.

Como exemplo, utilizaremos a ferramenta Firefox Decrypt, um script que coleta dados de login de um perfil do Firefox sem senha mestra (ou com uma senha previamente conhecida). Começaremos com as seguintes senhas armazenadas no perfil da vítima:

guardar-contrasenas-firefox-riesgos-2
Imagem 2. Senhas armazenadas no perfil da vítima.

Neste caso, o perfil apresentará as configurações padrão do gerenciador de senhas, incluindo a senha mestra desativada.
Para compreender o funcionamento do script, podemos executá-lo utilizando a opção -h.

guardar-contrasenas-firefox-riesgos-3
Imagem 3. Funcionamento do script.


A saída detalhada apresenta as funcionalidades da ferramenta, incluindo formatos de exportação, um modo de depuração e a opção de inserir a senha mestra. Para fins de demonstração, basta adicionar a opção "verbose" ou -v, que proporcionará o máximo de informações na console. O script permitirá escolher entre os perfis disponíveis (caso haja mais de um) e, em seguida, exibirá automaticamente a lista de credenciais descriptografadas.

guardar-contrasenas-firefox-riesgos-4
Imagem 4. Lista de credenciais descriptografadas.


Esta é apenas uma das várias ferramentas disponíveis com esse propósito, compatíveis também com outros navegadores. Entre elas, destaca-se a LaZagne, um projeto multiplataforma que facilita a extração de credenciais de navegadores, bancos de dados, e-mails e até mesmo do próprio sistema operacional.
É importante ressaltar que não é possível utilizar essas ferramentas se o perfil tiver uma senha primária ou mestra configurada e desconhecida.

Conclusão

Embora seja prático armazenar nossas senhas em um navegador como o Firefox, essa prática traz riscos consideráveis. Uma simples intrusão em nosso dispositivo, enquanto a sessão do sistema operacional está ativa, pode expor essas senhas, permitindo que cibercriminosos as capturem por meio de ferramentas ou códigos maliciosos que realizam essa extração de forma automatizada.

Por esses motivos, é recomendável optar por aplicativos de gerenciamento de senhas. Se decidirmos usar o gerenciador de senhas do Firefox, é crucial configurar uma senha mestra. Essa ação adiciona uma camada extra de segurança, além da criptografia básica fornecida pelo navegador.

Por fim, é importante estar ciente dos riscos envolvidos no uso de qualquer gerenciador de senhas e entender como os cibercriminosos podem acessar nossas informações mais sensíveis como usuários online.