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 MUCs – Multi-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):
- Conversations (Android)
- Cheogram (Android)
- Monal (iOS, macOS)
- Siskin (iOS)
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:
- Escolha o servidor, de preferência da categoria A;
- Existe uma opção brasileira, o XMPP Brasil;
- Escolha um aplicativo cliente
- Baixe e instale o cliente;
- No aplicativo, selecione a opção para criar uma nova conta;
- Informe o endereço do servidor público escolhido;
- Escolha um nome de usuário e senha segura;
- Complete qualquer verificação solicitada (como CAPTCHA);
- 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:
- Acesse sua conta por meio de um cliente XMPP;
- Troque a senha temporária o quanto antes, nas configurações do cliente;
- 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.
Links XMPP (formato URI)
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árioxmpp:grupo@conference.exemplo.org?join
→ entra em um grupoxmpp:usuario@exemplo.org?message
→ abre a janela de nova mensagemxmpp: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.