O Proton Authenticator é um aplicativo de autenticação (A2F) de dois fatores de código aberto que gera códigos de senha de uso único baseada no tempo (TOTP) em seu dispositivo, permitindo que você acesse serviços on-line com uma camada extra de segurança. Ele usa a mesma criptografia bem testada que protege o restante do ecossistema Proton. O Proton Authenticator é único porque foi projetado desde o início para estar disponível em quase todas as plataformas, preservando sua privacidade e dando a você total propriedade sobre seus dados.
Ao contrário de outros aplicativos de autenticação, o Proton Authenticator protege seus dados com criptografia de ponta a ponta, mesmo quando você ativa a sincronização de dispositivos.
Isso significa que o Proton Authenticator impede que qualquer pessoa, incluindo o próprio Proton, saiba em quais serviços on-line você tem contas. Essas informações, assim como seus e-mails ou histórico de navegação, podem revelar muito sobre você, e protegê-las é essencial para manter sua privacidade.
A criptografia de ponta a ponta do Proton Authenticator garante que todas as operações criptográficas, incluindo geração de chaves e criptografia de dados, sejam realizadas localmente em seu dispositivo. Isso significa que seus dados não criptografados não podem ser acessados pelo Proton nem compartilhados com terceiros. Os servidores do Proton nunca têm acesso aos seus dados não criptografados, incluindo a senha da sua Conta Proton.
Modelo de criptografia
O Proton Authenticator adota uma abordagem abrangente para garantir a máxima segurança e privacidade para todos os dados do usuário. Todas as operações criptográficas ocorrem localmente em seu dispositivo, e quaisquer dados transmitidos ao servidor são sempre criptografados. O Proton nunca tem acesso às chaves em texto simples necessárias para descriptografar os dados do usuário, tornando impossível para nós descriptografar dados armazenados, mesmo se solicitado por terceiros.
O Proton Authenticator usa a mesma criptografia avançada que usamos para autenticação no Proton Mail. Isso inclui o uso de uma versão reforçada do protocolo Secure Remote Password (SRP) que oferece garantias de segurança mais fortes contra ataques man-in-the-middle (MITM). Nossa implementação significa que mesmo um invasor que possa ler, modificar, atrasar, destruir, repetir ou fabricar arbitrariamente mensagens entre o Proton e um usuário de maneira indetectável está limitado a verificar apenas um palpite de senha por tentativa de início de sessão, o equivalente a tentar entrar diretamente. Dessa forma, mesmo se o Proton for comprometido e agir maliciosamente, as informações equivalentes à senha nunca serão reveladas.
Leia mais sobre a criptografia de autenticação do Proton
Criptografia de dados
O Proton Authenticator permite armazenar com segurança seus códigos A2F, mesmo que você não tenha uma Conta Proton. Isso significa que o processo inicial de criptografia deve ser feito inteiramente em seu dispositivo local. Então, se você decidir que deseja usar sua Conta Proton para sincronizar seus códigos entre dispositivos, podemos usar as chaves criptográficas armazenadas nos servidores do Proton para realizar a sincronização.
A criptografia do Proton começa com o servidor Proton fornecendo a versão criptografada da chave raiz que o aplicativo de autenticação usa para criptografar os dados do usuário. Cada usuário do Proton tem uma Chave de Usuário assimétrica, e o Proton criptografa essa Chave de Usuário em seu dispositivo da seguinte forma:
- Contas que usam uma senha de conta única: O Proton criptografa a Chave de Usuário com um hash bcrypt da senha da conta e o salt da conta.
- Contas que usam nosso recurso de senhas de múltiplas contas: O Proton criptografa a Chave de Usuário com um hash bcrypt da senha da chave e o salt da conta.
O Proton Authenticator usa bcrypt e um salt de conta para criar um hash de sua senha como uma camada extra de proteção contra ataques de força bruta. Mesmo que um ator mal-intencionado obtivesse acesso ao banco de dados do Proton, as chaves da sua conta estariam seguras contra ataques de força bruta.
Depois de ativar a sincronização, o Proton Authenticator gera uma Chave do Authenticator aleatória de 32 bytes. Essa chave é criptografada e assinada com sua Chave de Usuário, garantindo que apenas você possa descriptografá-la — ninguém (nem mesmo o Proton) pode ler ou criar uma nova Chave do Authenticator. Depois de ter acesso à Chave do Authenticator, todas as entradas no Proton Authenticator são criptografadas usando AES-GCM de 256 bits.

Como o Proton Authenticator não requer uma Conta Proton, também precisamos de um esquema de criptografia separado que armazene seus dados com segurança quando eles existirem apenas em seu dispositivo. No final, a maneira mais fácil de implementar isso é tratando a Conta Proton como um provedor de chaves separado. No final, fica assim:

Para o armazenamento local de chaves em seu dispositivo, contamos com os provedores de armazenamento seguro de chaves de cada sistema:
- Android: Armazenamos a chave com segurança no Android Keystore(nova janela), que é então usado para criptografar uma Chave Aleatória Local que armazenamos no sistema de arquivos protegido do aplicativo. Essa chave é usada para criptografar simetricamente todas as entradas do Proton Authenticator em seu dispositivo.
- iOS/iPadOS/macOS: Geramos uma Chave Aleatória Local e a armazenamos no serviço Keychain(nova janela). Essa chave é usada para criptografar simetricamente todas as entradas do Proton Authenticator em seu dispositivo.
- Windows: Geramos uma Chave Aleatória Local e a armazenamos no Gerenciador de Credenciais do Windows(nova janela). Essa chave é usada para criptografar simetricamente todas as entradas do Proton Authenticator em seu dispositivo. Se a conexão com o WCM não estiver disponível, permitimos que o usuário criptografe sua Chave Aleatória Local com uma senha.
- Linux: Geramos uma Chave Aleatória Local e a armazenamos no DBUS Secret Service disponível. Essa chave é usada para criptografar simetricamente todas as entradas do Proton Authenticator em seu dispositivo. Se nenhum serviço secreto DBUS estiver configurado, permitimos que o usuário criptografe sua Chave Aleatória Local com uma senha.
Criptografia de backup
Um dos principais pontos fortes do Proton Authenticator é que você sempre controla seus dados. Isso inclui permitir que você faça backup periodicamente de seus códigos em seu dispositivo local e defina uma senha que criptografa esses dados sensíveis.
Para implementar esse backup local seguro, usamos a senha fornecida por você para derivar uma chave de criptografia segura usando Argon2 como KDF (Função de Derivação de Chave). Um KDF é usado para gerar chaves criptográficas a partir de entradas secretas, como senhas inseridas pelo usuário, e seu objetivo principal é melhorar a segurança, tornando mais difícil e demorado para os invasores quebrar senhas. Usando essa chave de criptografia gerada a partir de sua senha, serializamos todas as suas entradas e as criptografamos para garantir que seus dados permaneçam criptografados com segurança, mesmo se o backup vazar. E, ao usar tecnologias bem conhecidas e abertas, você pode descriptografar seus dados sem usar o Proton Authenticator, permitindo que você mantenha o controle mesmo se decidir mudar para outro aplicativo de autenticação.
Segurança por meio da transparência
Como todos os serviços Proton, o Proton Authenticator é de código aberto. Qualquer pessoa pode consultar nosso código-fonte para verificar nosso modelo de segurança. Assim como em nossos outros serviços, o Proton Authenticator também passará por auditorias de segurança independentes regulares, e compartilharemos esses relatórios de auditoria publicamente assim que estiverem disponíveis.
Por fim, para pesquisadores de segurança interessados, o Proton Authenticator é elegível para o programa de recompensas por erros do Proton que oferece prêmios de até US$ 100.000 pela descoberta de erros no software do Proton.