Categoria: textão

  • O protocolo mais perfeito dos imperfeitos

    Um pouco de contexto

    Como uma XMPP Lady que se preze, atuo vigilante e incessantemente no fediverso e canais XMPP lutando para desmistificar diversas questões relacionadas ao ecossistema do XMPP.

    Essas intervenções acontecem em diferentes tópicos relacionados, desde seu funcionamento em termos de protocolo, na parte backend (servidor) e até a operação dos apps que atuam como clientes de mensagens.

    Na parte de clientes é onde surgem as maiores questões. O protocolo tem uma característica de extensibilidade. Os padrões de funcionamento são organizados em XEPs (XMPP Extension Protocol) e a comunidade de desenvolvedores e organizações envolvidas atuam para implementar essas definições.

    Por se tratar de um software livre, o XMPP tem seus padrões definidos por uma entidade – a XSF (XMPP Standards Foundation) – que trabalha as propostas de extensão e as documenta para que sejam adotadas pela comunidade.

    No dia a dia

    Seguido pessoas leigas e técnicas fazem comparações do WhatsApp, Telegram, Signal e etc com o XMPP. São alegações diversas, como:

    • No WhatsApp é mais fácil migrar de aparelho sem perder as mensagens;
    • No WhatsApp não me preocupo com chaves de segurança;
    • Para ter um novo contato no WhatsApp só tenho que pegar o número de telefone do contato ou ler um QR Code;

    E aí entra a XMPP Lady em ação…

    • No WhatsApp é mais fácil migrar de aparelho sem perder as mensagens;
      No XMPP também! No seu iOS ou Android, ao fazer a migração de aparelhos usando o mecanismo do próprio sistema operacional, seus aplicativos e dados (incluindo suas chaves de criptografia) são movidas de um aparelho para outro transparentemente!
    • No WhatsApp não me preocupo com chaves de segurança;
      E por que você se preocupa com elas no XMPP se elas fazem parte do seu backup ou da migração entre aparelhos?
    • Para ter um novo contato no WhatsApp só tenho que pegar o número de telefone do contato ou ler um QR Code;
      E por que você não pede também o QR Code ou link de convite de contato para quem também usa XMPP? Ou porque não pede o ID da pessoa – sendo este ID um mero endereço e-mail?

    Para além de questões básicas como essa – que demonstram uma pura resistência sem nenhum fato, de fato (perdão a redundância), eu exemplifico um outro comparativo em formato de “FAQ”:

    • Se você trocar de celular ou simplesmente redefinir o telefone de fábrica e não tiver backup do WhatsApp, o que acontece com suas mensagens?

      Resposta: você perde suas mensagens históricas e continua conversando dali para frente.

      E no XMPP? Mesma coisa. Você precisa se backup da conta para ter acesso às mensagens históricas.
    • Se o seu telefone estiver na assistência técnica, como você faz para acessar seu WhatsApp?

      Resposta: se tiver um WhatsApp web já registrado, poderá continuar acessando dali. Se não tiver, ou fica sem acesso ao WhatsApp e incomunicável com as pessoas ou coloca seu número em outro chip, ativa num aparelho, loga no WhatsApp no aparelho e perde o acesso que tinha ao WhatsApp no aparelho anterior, causando uma bagunça nos seus históricos.

      E no XMPP? Você pode seguir usando sua conta em outro dispositivo que já tinha ativado e seguir a vida normalmente. Quando o aparelho voltar da assistência, ele vai sincronizar as mensagens não baixadas ainda do servidor (só varia quanto tempo cada servidor armazena offine, geralmente no mínimo 1 semana). Outra opção é acessar sua conta de outro aparelho ou cliente web qualquer e seguir se comunicando com as pessoas – mas só será possível ler as mensagens a partir do momento em que o novo dispositivo ingressou na sua conta.

    O protocolo perfeito

    Fora as comparações corriqueiras com WhatsApp, surgem as questões relacionadas a outros mensageiros descentralizados. Os mais conhecidos são o Matrix e o Delta Chat.

    De uma forma sucinta vou colocar aqui uma listinha de razões pelas quais eu considero o XMPP o protocolo perfeito dentre os imperfeitos – que são todos, sejam livres ou proprietários.

    • Maturidade: o XMPP está conosco há 26 anos, exatamente o tempo que eu, quem vos escreve, tem de mercado de tecnologia. Seu projeto teve início em 1999.
    • Flexibilidade: há quem diga que a extensibilidade do protocolo dificulta as coisas pros usuários… mas o que eu acredito é que é inerente a um protocolo livre não criar definições estanques sobre como cada servidor ou cliente vai funcionar e que funcionalidades vai implementar: isso fica a cargo da comunidade de desenvolvedores e da comunidade de usuários ajudar na definição do caminho.
    • Multicanal: o XMPP permite a comunicação por texto, voz e vídeo, diferente das outras soluções livres que mencionei antes desta lista.
    • Privacidade: se a pessoa está buscando anonimato, não será no XMPP que ela encontrará essa possibilidade. O XMPP é um protocolo que oferece toda privacidade necessária para sua comunicação e, operando em conjunto com OMEMO, garante a também a integridade e a confidencialidade do conteúdo das mensagens que você trafega. Os servidores XMPP atuam como relays, que conectam duas partes: remetente e destinatário; e, nesse sentido, o máximo de informação sua que há num servidor XMPP, por padrão, são metadados como timestamp de conexão, nome de usuário, nome de usuário de quem está na sua lista de contatos XMPP (chamada roster) e, habilitando um debug no servidor, pode-se auditar com que outro usuário você trocou mensagem, mas nunca o conteúdo dessas mensagens. Inclusive, mensagens offline esperando ser entregues para um dispositivo que está desligado ficam também criptografadas pois apenas o destinatário pode decodificá-la.
    • Federação: o fato de você poder criar sua conta no servidor XMPP administrado por uma comunidade ou pessoa que você confia dá um grau extra de conforto na hora de usar o serviço. Então você tem um ecossistema de milhares de servidores XMPP para escolher onde ter sua conta e diminui drasticamente a possibilidade de ser um alvo potencial de um roubo de dados visto que essas estruturas são pequenas demais para gerar qualquer interesse escuso. Pelo fato de ser distribuído, também reduz enormemente a possibilidade de um “apagão” generalizado pois cada servidor XMPP é independente.

    Facilitando o ingresso de novos usuários

    Por fim, quero deixar algumas dicas pessoais sobre como melhorar a jornada de ingresso de novos usuários no ecossistema XMPP.

    • Evite o “hoping”: pelo fato de haver muitos clientes disponíveis para uso, você pode até ficar testando esses clientes todos para você, mas evite ficar indicando mil opções para usuários novatos.
    • Eleja 1 cliente para Android, 1 para iOS, 1 para Windows, 1 para Linux e 1 para macOS e indique sempre esses para seus contatos – de preferência indique os aplicativos que são referência.

      Pessoalmente eu indico:
      isaCloud para Android – baseado no Conversations
      Gajim para Windows e Linux
      Monal para iOS, ipadOS e macOS
    • Evite dar detalhes técnicos sobre o protocolo porque as pessoas não querem saber sobre isso. Você acha que elas sabem alguma coisa do WhatsApp ou do Telegram?
    • Não explique sobre criptografia a menos que perguntem diretamente a você.

    E, por fim…

    Não tente convencer alguém de que a Zeta (nome fictício) é uma empresa vilã e por isso essa pessoa deve sair imediatamente do mensageiro da empresa… aborde seus familiares ou amigos com a ideia de que eles podem deixar o mensageiro padrão pras questões de trabalho e de “resolver problemas” e usar o isaCloud – ou outro serviço XMPP – para conversar com as pessoas que são mais importantes para elas. ☺️

    Pela atenção, obrigada!
    Isadora




    Links:
    https://isacloud.im
    https://xmpp.org
    https://conversations.im