Ativar a proteção de enumeração de e-mails

Este guia mostra como ativar a proteção de enumeração de e-mails.

Informações gerais

A enumeração de e-mails é um tipo de ataque de força bruta em que um ator malicioso tenta adivinhar ou confirmar usuários em um sistema, passando um endereço de e-mail para a API e verificando a resposta.

Nos exemplos a seguir, a proteção de enumeração de e-mails está desativada. O Identity Platform retorna informações que podem ser usadas em um ataque de enumeração de e-mails:

  • É feita uma tentativa de login com um endereço de e-mail que não existe no sistema. O Identity Platform retorna um erro EMAIL_NOT_FOUND.

  • Houve uma tentativa de inscrição com um endereço de e-mail que já existe no sistema. O Identity Platform retorna um erro EMAIL_EXISTS.

Você pode usar o recurso de proteção de enumeração de e-mails do Identity Platform para proteger as contas de usuário no seu aplicativo contra esses ataques. A proteção de enumeração de e-mails oferece os seguintes recursos:

  • Casos de login inválidos retornam uma resposta de erro INVALID_LOGIN_CREDENTIALS. Casos de inscrição inválidos retornam EMAIL_EXISTS.
  • Remove as respostas de erro para fluxos de verificação de e-mail. Se o endereço de e-mail existir, um e-mail de verificação será enviado. Se ele não existir, não será enviado um e-mail de verificação. Recomendamos que você não permita que os usuários se inscrevam sem um fluxo de verificação de e-mail.
  • Desativa a capacidade de os usuários alterarem seus endereços de e-mail sem antes confirmar o novo endereço.
  • Desativa a listagem de métodos de login para um endereço de e-mail especificado ao chamar createAuthUri.

Ativar a proteção de enumeração de e-mails

Para ativar a proteção de enumeração de e-mails, siga estas etapas:

  1. No console do Google Cloud, imprima um token de acesso para o ID do projeto usando o comando gcloud auth print-access-token:

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Ative a proteção de enumeração de e-mail para o ID do projeto usando a API Identity Toolkit:

    curl -X PATCH -d "{'email_privacy_config':{'enable_improved_email_privacy':"true"}}" \
        -H 'Authorization: Bearer ACCESS_TOKEN' \
        -H 'Content-Type: application/json' -H 'X-Goog-User-Project: PROJECT_ID' \
        "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=email_privacy_config"
    

Substitua:

  • ACCESS_TOKEN: o token de acesso gerado anteriormente
  • PROJECT_ID: ID do projeto

Desativar a proteção de enumeração de e-mails

Para desativar a proteção de enumeração de e-mails, siga estas etapas:

  1. No console do Google Cloud, imprima um token de acesso para o ID do projeto usando o comando gcloud auth print-access-token:

    gcloud auth print-access-token --project=PROJECT_ID
    
  2. Desative a proteção de enumeração de e-mails usando a API Identity Toolkit:

    curl -X PATCH -d "{'email_privacy_config':{'enable_improved_email_privacy':"false"}}" \
        -H 'Authorization: Bearer ACCESS_TOKEN' \
        -H 'Content-Type: application/json' -H 'X-Goog-User-Project: PROJECT_ID' \
        "https://identitytoolkit.googleapis.com/admin/v2/projects/PROJECT_ID/config?updateMask=email_privacy_config"
    

Substitua:

  • ACCESS_TOKEN: o token de acesso gerado anteriormente
  • PROJECT_ID: ID do projeto

Exemplo de uma resposta de erro

Se um usuário tentar fazer login com um endereço de e-mail ou uma senha incorreta ou tentar se inscrever com um endereço de e-mail que já existe no sistema, o Identity Platform retornará um erro semelhante ao seguinte:

{
  "code": "auth/internal-error",
  "message": "{\"error\":{\"code\":400,\"message\":\"INVALID_LOGIN_CREDENTIALS\",\"errors\":[{\"message\":\"INVALID_LOGIN_CREDENTIALS\",\"domain\":\"global\",\"reason\":\"invalid\"}]}}"
}