As instâncias do Mastodon se comunicam entre si para trocar postagens públicas e dados de perfil. Esse modelo de federação aberta pode ser abusado por servidores maliciosos que fazem scraping de conteúdo ou burlam bloqueios. O Modo de Busca Autorizada, também conhecido como Modo Seguro, força toda requisição entre servidores a incluir um cabeçalho de autenticação assinado. Ativar essa configuração impede que servidores não autorizados puxem dados públicos da sua instância. Este artigo explica como o Modo de Busca Autorizada funciona, quando você deve ativá-lo e quais compensações esperar antes de habilitá-lo.
Principais Conclusões: Modo de Busca Autorizada do Mastodon
- Preferências > Administração > Configurações do Servidor > Busca Autorizada: Alternar para exigir requisições assinadas de todos os servidores federados.
- Instâncias bloqueadas permanecem bloqueadas: O Modo de Busca Autorizada impede que servidores bloqueados burlem restrições por meio de endpoints públicos da API.
- A latência da federação aumenta: Cada requisição exige verificação de assinatura, o que adiciona tempo de processamento e pode atrasar as atualizações da timeline.
O que o Modo de Busca Autorizada faz no Mastodon
O Mastodon usa o protocolo ActivityPub para compartilhar postagens, perfis e notificações entre instâncias. Por padrão, qualquer servidor na internet pode fazer uma requisição HTTP GET à sua instância e ler dados públicos, como toots, anexos de mídia e metadados de perfil. É assim que a timeline federada funciona — sua instância envia dados para outros servidores sem exigir que eles provem sua identidade.
O Modo de Busca Autorizada muda esse comportamento. Quando ativado, sua instância rejeita qualquer requisição ActivityPub recebida que não inclua um cabeçalho HTTP Signature válido. O servidor solicitante deve assinar a requisição com sua própria chave privada. Sua instância então verifica a assinatura usando a chave pública do servidor solicitante, que é obtida do objeto actor desse servidor. Somente após a verificação bem-sucedida sua instância entrega os dados solicitados.
Como funciona o handshake de assinatura
O processo segue estas etapas:
- O servidor solicitante gera uma assinatura
O servidor remoto cria uma HTTP Signature usando sua chave privada e inclui cabeçalhos como Date, Host e Digest na string de assinatura. - Sua instância recebe a requisição
Seu servidor lê o cabeçalho Signature, extrai a URL keyId e obtém a chave pública do servidor remoto dessa URL. - Verificação da assinatura
Sua instância recalcula a assinatura usando a chave pública. Se as assinaturas coincidirem, a requisição é aceita. Caso contrário, a requisição é rejeitada com uma resposta 401 Unauthorized.
Quando ativar o Modo de Busca Autorizada
O Modo de Busca Autorizada não está ativado por padrão. A decisão depende do modelo de ameaça da sua instância e dos requisitos de desempenho. Ative-o nestes cenários:
- Sua instância é alvo de scraping de dados — Se você administra uma instância popular que atrai bots ou scrapers, o Modo de Busca Autorizada bloqueia a coleta não autorizada de dados em massa.
- Você bloqueou um grande número de instâncias — Servidores bloqueados ainda podem ler dados públicos por meio de requisições não autenticadas. O Modo de Busca Autorizada reforça esses bloqueios no nível da API.
- Você quer evitar a federação com servidores maliciosos — Servidores que não conseguem assinar requisições (como scrapers personalizados ou software desatualizado) têm o acesso negado automaticamente.
- Sua instância hospeda conteúdo sensível — Mesmo postagens públicas podem conter informações pessoais. Exigir autenticação adiciona uma barreira contra a coleta casual.
Passos para ativar o Modo de Busca Autorizada
Você precisa ser administrador de uma instância do Mastodon para alterar essa configuração. A opção está disponível na interface web, em Configurações do Servidor.
- Faça login como administrador
Abra a URL da sua instância e entre com uma conta que tenha o papel de Admin. - Navegue até Configurações do Servidor
Clique no menu hambúrguer (três linhas horizontais) no canto superior direito. Selecione Preferências, depois Administração e, em seguida, Configurações do Servidor. - Encontre a opção Busca Autorizada
Role para baixo até a seção chamada Federação. Você verá uma alternância rotulada como Busca Autorizada ou Modo Seguro. - Ative a configuração
Clique no interruptor para ativar o Modo de Busca Autorizada. A alteração entra em vigor imediatamente. Não é necessário reiniciar o servidor. - Verifique a alteração
Use uma ferramenta como curl para tentar uma requisição GET não autenticada a um endpoint público da sua instância. Exemplo:curl -I https://suainstancia.social/api/v1/timelines/public. A resposta deve retornar o status 401.
Compensações e limitações do Modo de Busca Autorizada
Ativar o Modo de Busca Autorizada introduz várias considerações operacionais. Avalie-as antes de ativá-lo.
Aumento da carga do servidor
Cada requisição federada recebida agora exige verificação de assinatura. Para uma instância pequena com menos de 100 usuários ativos, a carga adicional de CPU é insignificante. Para instâncias grandes com milhares de federações ativas, o processo de verificação pode aumentar o tempo de resposta do servidor em 10 a 50 milissegundos por requisição. Sob tráfego intenso, isso pode causar atrasos perceptíveis nas atualizações da timeline.
Problemas de compatibilidade com a federação
Algumas implementações antigas ou personalizadas do ActivityPub não suportam HTTP Signatures. Esses servidores não conseguirão obter nenhum dado da sua instância. Como resultado, suas postagens públicas não aparecerão nas timelines federadas deles. Usuários nessas instâncias não verão seu conteúdo, a menos que sigam sua conta de dentro da sua instância.
Indexação em mecanismos de busca
Mecanismos de busca como Google e Bing dependem de requisições HTTP não autenticadas para indexar conteúdo público. O Modo de Busca Autorizada bloqueia esses rastreadores. Suas postagens públicas não aparecerão nos resultados de busca. Se você depende da visibilidade em mecanismos de busca para sua instância ou seu conteúdo, mantenha esse modo desativado.
Prevenção parcial de bypass de bloqueio
O Modo de Busca Autorizada impede que servidores bloqueados leiam dados públicos por meio da API. No entanto, ele não impede que um servidor bloqueado receba dados por meio de um servidor terceiro que não foi bloqueado. Um usuário em uma instância bloqueada ainda pode ver suas postagens públicas se outra instância não bloqueada as retransmitir. Essa é uma limitação do próprio protocolo ActivityPub, não do Modo de Busca Autorizada.
Modo de Busca Autorizada vs Federação Padrão: Principais Diferenças
| Item | Federação Padrão | Modo de Busca Autorizada |
|---|---|---|
| Exigência de autenticação | Nenhuma — qualquer HTTP GET é aceito | HTTP Signature exigida para todas as requisições |
| Reforço de bloqueio | Servidores bloqueados ainda podem ler dados públicos via API | Servidores bloqueados são negados na camada da API |
| Indexação em mecanismos de busca | Postagens públicas são indexadas por mecanismos de busca | Postagens públicas não são indexadas |
| Compatibilidade com federação | Funciona com todas as implementações do ActivityPub | Incompatível com servidores sem suporte a HTTP Signature |
| Carga do servidor | Mínima — sem verificação de assinatura | Aumentada — cada requisição exige verificação de assinatura |
Agora você entende como o Modo de Busca Autorizada funciona e quando ativá-lo. Se sua instância enfrenta ataques de scraping ou você precisa reforçar bloqueios de forma rigorosa, ative o recurso em Configurações do Servidor, na seção Federação. Monitore o uso de CPU do seu servidor após ativá-lo. Para a maioria das instâncias pequenas e médias, o benefício de segurança supera o custo de desempenho. Considere deixar o Modo de Busca Autorizada desativado se a visibilidade em mecanismos de busca ou a ampla compatibilidade com a federação for mais importante do que bloquear o acesso não autorizado.