Introdução ao XMPP

Este guia é para quem está conhecendo o XMPP, um protocolo livre e aberto para troca de mensagens em tempo real, uma alternativa descentralizada aos aplicativos de mensagens mais comuns, como WhatsApp ou Telegram.

Aqui você encontrará uma explicação geral sobre o que é o XMPP, como ele funciona, quais aplicativos utilizam o protocolo e como se conectar aos servidores. Este texto pode ser usado como introdução ao XMPP no lugar do guia oficial “Getting Started”, disponível no site xmpp.org.

O que é o XMPP?

XMPP (Extensible Messaging and Presence Protocol) é um protocolo de comunicação usado principalmente para mensagens instantâneas. Ele é aberto, descentralizado e federado, o que significa que qualquer pessoa ou organização pode criar seu próprio servidor de mensagens e, ainda assim, trocar mensagens com usuários de outros servidores, algo semelhante ao funcionamento do e-mail.

Cada conta no XMPP é identificada por um JID (Jabber ID), que tem o formato usuario@servidor.tld.

Assim como você pode ter um endereço de e-mail com domínio próprio, também pode ter um JID em um servidor XMPP público ou privado, e usá-lo para conversar com qualquer pessoa na rede.

Funcionalidades principais

Para usar uma conta XMPP, é necessário um cliente XMPP - um aplicativo de mensagens que se conecta a um servidor XMPP. Com uma conta configurada, você pode:

  • Enviar mensagens diretas para outros usuários (mesmo que estejam em servidores diferentes, através da federação);
  • Participar de salas de bate-papo em grupo (conhecidas como MUCsMulti-User Chats);
  • Enviar arquivos, imagens e documentos;
  • Ver indicadores de presença (como “online”, “ausente”, etc.);
  • Sincronizar o histórico de mensagens (dependendo do cliente e do servidor);
  • Usar criptografia ponta-a-ponta para mais privacidade.

Clientes XMPP

Há inúmeros clientes e aplicativos XMPP para escolher. Para começar, aqui estão alguns dos mais populares, conforme o site oficial do XMPP:

Clientes para computador (desktop):

Clientes para celular (mobile):

A maioria desses clientes permite registrar uma nova conta e configurar a conexão diretamente dentro do próprio aplicativo.

Criando uma conta em servidores XMPP públicos

Caso você ainda não tenha uma conta XMPP, é possível se registrar gratuitamente em um servidor público federado. O processo envolve geralmente os seguintes passos:

  1. Escolha o servidor, de preferência da categoria A;
    1. Existe uma opção brasileira, o XMPP Brasil;
  2. Escolha um aplicativo cliente
  3. Baixe e instale o cliente;
  4. No aplicativo, selecione a opção para criar uma nova conta;
  5. Informe o endereço do servidor público escolhido;
  6. Escolha um nome de usuário e senha segura;
  7. Complete qualquer verificação solicitada (como CAPTCHA);
  8. Pronto! O cliente irá conectar automaticamente à rede XMPP após o registro.
💡 Nem todos os servidores suportam registro direto pelo aplicativo (in-band registration). Alguns exigem registro via site, como os servidores das categorias B e C.

[REVISÃO FEITA ATÉ AQUI]

Servidores privados

Os servidor privados oferecem contas mediante solicitação. Essas contas são criadas manualmente e entregues com credenciais temporárias.

Após receber as credenciais:

  1. Acesse sua conta por meio de um cliente XMPP;
  2. Troque a senha temporária o quanto antes, nas configurações do cliente;
  3. Leia e aceite os Termos de Serviço definidos pelo servidor.

Contas que não seguirem os termos podem ser suspensas ou canceladas sem aviso prévio.

Federação e bate-papo em grupo

A rede XMPP é federada, o que significa que usuários em servidores diferentes podem se comunicar entre si, incluindo bate-papos em grupo.

Esses grupos geralmente estão localizados em subdomínios como conference.servidor.tld ou muc.servidor.tld. Cada sala é identificada por um endereço no formato:

Criptografia ponta-a-ponta (OMEMO)

O protocolo OMEMO permite criptografia ponta-a-ponta nas mensagens, ou seja, somente você e a outra pessoa conseguem ler o conteúdo, nem mesmo os servidores envolvidos têm acesso.

Ele é baseado no algoritmo Double Ratchet, o mesmo utilizado por aplicativos como o Signal.

Nos clientes com suporte ao OMEMO:

  • A troca de chaves criptográficas é feita automaticamente;
  • Ambos os usuários devem utilizar aplicativos compatíveis;
  • Na primeira conversa, o cliente pode pedir para verificar as impressões digitais do dispositivo da outra pessoa;
  • Uma vez estabelecida a confiança, todas as mensagens seguintes serão criptografadas automaticamente.
⚠️ O OMEMO não é recomendado para bate-papos em grupo (MUCs).

Criptografia durante a transmissão (TLS)

Mesmo que a criptografia ponta-a-ponta não esteja ativada, o XMPP ainda protege os dados durante o caminho entre você e o servidor (ou entre servidores). Isso é feito com TLS (Transport Layer Security), uma camada de segurança padrão usada também em sites HTTPS.

Essa criptografia em trânsito evita que alguém espionando a rede consiga ver o conteúdo das mensagens.

O XMPP permite usar links com o prefixo xmpp: para iniciar ações automáticas, como iniciar uma conversa, entrar em uma sala ou enviar uma solicitação de presença.

Formato geral: xmpp:identificador@servidor.tld?ação

Exemplos:

  • xmpp:usuario@exemplo.org → inicia um bate-papo com esse usuário
  • xmpp:grupo@conference.exemplo.org?join → entra em um grupo
  • xmpp:usuario@exemplo.org?message → abre a janela de nova mensagem
  • xmpp:usuario@exemplo.org?subscribe → envia solicitação para acompanhar o status (presença) do usuário

Se o cliente XMPP estiver configurado corretamente no sistema, esses links funcionam com um clique. Caso contrário, basta copiar o endereço e colar no campo de busca do aplicativo.


Esse artigo é uma tradução adaptada do texto Getting Started with XMPP and sidech.nl, publicado em 09 de abril de 2025 no website intkos.link, disponível nesse link.

Licenças: (C)/CC BY-SA/2025