Saiba tudo sobre o mensageiro seguro e privado da Status

Saiba tudo sobre o mensageiro seguro e privado da Status

A Status é uma plataforma descentralizada de código aberto com três grandes funcionalidades: mensageiro seguro e privado, carteira não custodial e navegador web3, projetada para atuar como um nó de rede que interage com aplicativos descentralizados (DApps) executados na rede Ethereum.

A Status também é uma comunidade de código aberto formada por pessoas comprometidas com a construção das melhores ferramentas descentralizadas para a web3, e com a garantia de que todas as pessoas do mundo possam acessar as ferramentas diretamente de seus smartphones.

A Status Network é um ecossistema de aplicativos descentralizados - construindo ferramentas de comunicação privadas e seguras. Defendemos os direitos humanos e o empoderamento de comunidades soberanas, o que transforma o ecossistema em uma porta de entrada para o livre-comércio, pagamento ponto a ponto e a comunicação P2P criptografada para qualquer pessoa com um smartphone e acesso à internet.

No artigo de hoje, vamos explorar a primeira das três grandes funcionalidades da Status - o mensageiro seguro e privado. O mensageiro Status é altamente focado em privacidade e segurança e utiliza uma tecnologia bastante interessante para conseguir isso. Iremos nos aprofundar na funcionalidade do mensageiro e nos protocolos subjacentes utilizados para alcançar estes objetivos, assim como os motivos e uma extensa pesquisa realizada para cada uma das tecnologias subjacentes.

Nosso mensageiro utiliza diversas tecnologias diferentes, vou explicá-las da melhor maneira que puder. Para obter mais detalhes sobre os protocolos usados e a tecnologia, consulte as documentações e especificações.

Então, vamos lá!

O que é o mensageiro Status?

Como uma das três grandes funcionalidades da plataforma Status, o mensageiro é parte integral do aplicativo. O objetivo de longo prazo da Status sempre foi fornecer ferramentas de comunicação que removam terceiros desnecessários que buscam renda, e atores opressores, colocando a soberania de volta nas mãos do indivíduo.

Como outros mensageiros populares disponíveis hoje, a Status oferece chats 1:1 privados e chats públicos - os chats em grupo serão reintroduzidos em breve.

Chats privados - são completamente privados e resistentes a qualquer tipo de censura entre os pares. Sem servidores centralizados e o modelo padrão cliente/servidor, ninguém pode acessar as mensagens - nem mesmo a Status. Nós nos esforçamos para não haver vazamento de metadados (por exemplo, quem está enviando e para onde).

Chats públicos - totalmente públicos e sem restrições de número de participantes. Os canais públicos são baseados em tópicos.

Mensageiro -> Integração com a carteira

Uma das minhas funcionalidades favoritas, o mensageiro está perfeitamente integrado com a carteira, o que permite o envio de pagamentos em criptomoedas para outros usuários sem qualquer tipo de barreira.

Usando comandos do chat, você pode acessar sua carteira a partir de uma conversa privada, selecionar uma de suas criptomoedas e assinar uma transação para enviar pagamentos para qualquer pessoa.

Os usuários também podem comprar adesivos do mercado de adesivos descentralizados usando SNT. Após a compra os adesivos ficam disponíveis para uso em todos os tipos de chat.

As chaves do chat e da carteira não estão conectadas. Se eu souber sua chave do chat, não sei nada sobre sua carteira ou seus fundos, a menos que você compartilhe explicitamente o endereço de sua carteira comigo.

Como a Status se diferencia do WhatsApp ou Signal?

A Status possui um alto nível de segurança, sem pontos centrais de falha. Veja na tabela abaixo quais recursos de privacidade e segurança a Status oferece, e quais faltam nas alternativas:

Como posso saber se meus dados estão seguros?

Todas as mensagens 1:1 na Status estão sujeitas à criptografia de ponta a ponta por padrão, o que possibilita aos usuários um alto grau de privacidade e segurança. As mensagens do chat público podem ser lidas por qualquer pessoa, uma vez que não existe um modelo de permissão para participar de um chat público.

A criptografia de ponta a ponta (E2EE - “End-to-end encryption” na sigla em inglês) ocorre entre dois clientes. O principal protocolo criptográfico é uma implementação da Status do protocolo Double Ratchet, que por sua vez é derivado do protocolo Off-the-Record, usando uma Ratchet diferente.

Os dados que contém a mensagem são criptografados pelo protocolo de transporte através da criptografia de chave simétrica. Além disso, a Status usa o conceito de pré-chaves (através do uso de X3DH) para permitir que o protocolo opere em um ambiente assíncrono. Não é necessário que as duas partes estejam online ao mesmo tempo para iniciar uma conversa criptografada.

Por dentro da criptografia

Protocolo de chat P2P

A Status usa o Whisper para prover o roteamento de mensagens que preservam a privacidade através do devP2P. O Whisper usa tópicos para particionar as mensagens, eles são aproveitados para todos os recursos do chat. No caso dos chats públicos, o nome do canal é mapeado diretamente no tópico Whisper. Isso permite que todas as pessoas possam utilizar um único canal.

Além disso, como qualquer pessoa pode receber envelopes Whisper, para decidir o destinatário correto é necessário descriptografar a mensagem. No entanto, não contamos com essa propriedade, em vez disso implementamos outra camada de transporte seguro através do Whisper.

Por fim, usamos uma extensão do Whisper com a capacidade de enviar mensagens offline.

Armazenamento de mensagens

Estar na maioria das vezes offline é uma propriedade intrínseca dos clientes móveis. Eles precisam economizar no uso de rede e no consumo de bateria para evitar gastos desnecessários. O protocolo Whisper, por outro lado, é um protocolo online. As mensagens ficam disponíveis na rede Whisper por um curto período de tempo calculado em segundos.

Antes de explicar como a Status armazena mensagens, há alguns termos importantes que quero esclarecer:

Par - Um dispositivo conectado à rede de chat da Status. Cada usuário pode representar um ou mais pares, dependendo do número de dispositivos.

E...

Mailserver - Um nó na rede Status que roteia e armazena mensagens por até 30 dias.

Whisper Mailserver é uma extensão do Whisper que permite armazenar mensagens de forma permanente e entregá-las aos clientes mesmo que já não estejam disponíveis na rede e tenham expirado.

Da perspectiva da rede, Mailserver é como qualquer outro nó Whisper. A única diferença é que ele tem a capacidade de arquivar mensagens e entregá-las aos seus pares sob demanda.

Para receber mensagens que estão no histórico do Mailserver, um nó deve confiar no Mailserver selecionado, assim receberá os pacotes com o código de mensagem P2P. Por padrão, esses pacotes são descartados.

Segurança das mensagens

O roteamento escuro significa que no modo de operação padrão, as mensagens não podem ser rastreadas ou inspecionadas e não vazam metadados. Cada mensagem é transmitida para todos os pares da rede, tornando os padrões entre elas impossíveis de entender.

O Whisper aproveita os seguintes recursos para ser verdadeiramente anônimo e prevenir o vazamento de metadados:

• Ponto a ponto: aproveita o protocolo ÐΞVp2p da Ethereum para enviar mensagens pela rede.

• Difusão multicast: ao enviar uma mensagem para uma pessoa específica, na realidade o usuário está difundindo essa mensagem para toda a rede. Por ser criptografada com a chave pública do destinatário, apenas o destinatário designado pode visualizar a mensagem.

• Prova de trabalho (PoW - “Proof-of-work” na sigla em inglês): Atualmente, a Status define um valor de PoW mais baixo para mensagens Whisper do que o padrão de outros clientes, pois um PoW mais alto utiliza muita energia e poder computacional para a maioria dos smartphones. Esta é uma área ativa em nossa pesquisa.

• Tempo de vida: uma mensagem salta de nó em nó na rede, mesmo depois de chegar ao destinatário pretendido, até que o tempo de vida expire - isso fornece uma negação plausível de que a mensagem foi destinada a um destinatário específico.

• Envelopes: como o nome sugere, contém todas as partes de uma mensagem. Eles podem ser comparados a cartas físicas - todos os nós, independentemente de serem ou não o destinatário, precisam ser capazes de lidar com o envelope, mas apenas o nó destinatário sabe como abrir o texto real da mensagem. Eles são um pacote que encapsula o texto da mensagem, junto com metadados como o tempo de vida e a própria mensagem. Os próprios envelopes não são criptografados, pois fazem parte do protocolo e precisam ser lidos pelos nós.

• Tópicos: os tópicos são strings curtas - hashes para ser mais preciso - que são definidas pelo remetente (ou na camada do aplicativo) e ajudam a categorizar as mensagens. Em uma linguagem mais técnica: os tópicos são criptograficamente seguros, probabilísticos, classificações parciais da mensagem.

Uma mensagem vai saltar de nó em nó na rede, mesmo depois de chegar ao destinatário pretendido, até que o tempo de vida tenha expirado - isso fornece negação plausível de que a mensagem foi entregue a um destinatário específico. Para obter mais detalhes sobre o Whisper, veja as especificações.

Sincronização de mensagens

Para sincronizar mensagens, o MVDS é usado para chats 1:1 e em grupo, atualmente não* está em uso nos chats públicos. Os dados que contém as mensagens da Status são serializados e, em seguida, empacotados em uma mensagem MVDS que é adicionada a um dado MVDS, esse dado é então criptografado (se necessário para chats 1:1/em grupo) e enviado usando Whisper, que também o criptografa.

*Por que o MVDS não é usado em chats públicos?

Atualmente, os chats públicos são baseados em transmissão e não há uma maneira direta de descobrir quem está recebendo mensagens. Portanto, não há um contexto claro de estado de sincronização de grupo pelo qual os participantes possam sincronizar. Além disso, o MVDS atualmente não está otimizado para contextos de grandes grupos, o que significa que o uso da largura de banda será muito maior do que o razoável. Consulte P2P Data Sync for Mobile para obter mais informações. Esta é uma área ativa de pesquisa. O problema de largura de banda é ainda mais agravado pelo Whisper, por ser muito pesado em largura de banda.

Mudando do Whisper para o Waku

O Whisper tem suas limitações e desafios. A Status é uma das poucas instâncias do Whisper sendo usada em um ambiente de produção real, então fizemos algumas modificações ad hoc para dar suporte ao nosso caso de uso.

Quais são essas questões fundamentais? Resumidamente:

• O Whisper não é escalável, principalmente quando se trata do uso de largura de banda - não há nós ativos suficientes para suportar um grande volume de uso.

• Ele tem baixa resistência a spam: a prova de trabalho é um mecanismo ruim para os nós heterogêneos do Whisper.

• A falta de infraestrutura incentivada leva à confiança nos próprios nós da Status como pontos centralizados.

• A falta de especificações formais e claras dificulta o processo de análise e implementação.

• O Whisper é executado em devp2p, o que limita onde e como ele pode ser executado.

Nos próximos meses, a Status complementará a implementação atual do Whisper com uma bifurcação de um protocolo chamado Waku.

O Waku está sendo desenvolvido pela equipe Vac da Status, que conduz P&D em mensagens modulares ponto a ponto para comunicação privada, segura e resistente à censura.

Confira este vídeo de dois de nossos engenheiros extremamente talentosos, Dean Eigenman e Oskar Thoren, falando sobre a mudança de Whisper para Waku:

Saiba mais sobre Vac e Waku aqui.

Perguntas frequentes

Minhas mensagens estão na blockchain?

Suas mensagens não estão na blockchain. As mensagens são armazenadas em um Mailserver por duas semanas e em seu telefone assim que você as recebe, ao abrir o app Status e se conectar à rede. Para chegar até você, as mensagens passam pelo devp2p - que é a camada de transporte do Whisper - mas não são transportadas pela Máquina Virtual Ethereum. Em outras palavras, elas não são armazenadas na blockchain e não custam nada para enviar

Consulte a seção acima sobre Armazenamento de mensagens para descobrir exatamente onde suas mensagens estão armazenadas.

O mensageiro é totalmente descentralizado?

Não, pois precisamos armazenar seu histórico de mensagens em algum lugar e, já que elas não estão na blockchain, devemos aproveitar os Mailservers e bootnodes.

Por que devp2p? Por que não usar libp2p?

Na época em que os principais clientes Status estavam sendo desenvolvidos, devp2p era o mais maduro. No entanto, é provável que migremos para a libp2p no futuro, pois ela nos fornecerá múltiplos transportes, melhor negociação de protocolo, passagem de NAT, etc.

E quanto a outros subprotocolos RLPx como LES e Swarm?

A Status é otimizada principalmente para dispositivos com recursos restritos e, no momento, o suporte a clientes leves para esses protocolos não é o ideal. Este é um trabalho em progresso.

Para melhor suporte ao cliente leve Ethereum, consulte Reativar LES como opção. Para obter melhor suporte ao Swarm, consulte nós adaptativos do Swarm.

Para suporte a transações, os clientes Status atualmente precisam contar com o Infura.

Os clientes Status atualmente não oferecem suporte nativo para armazenamento de arquivos.

Por que usar o Whisper?

O Whisper é um dos três protocolos que consolidam a rede Ethereum como o computador mundial. Ethereum e Swarm são os outros dois. A Status foi iniciada como um encapsulamento de uma janela transparente para este computador mundial.

Ouvi dizer que a Status está se afastando do Whisper?

O Whisper não está em desenvolvimento ativo e tem várias desvantagens. Entre outros:

• É um grande desperdício de largura de banda e não parece ser escalável;

• Prova de trabalho é um mecanismo de proteção contra spam pobre para dispositivos heterogêneos;

• As garantias de privacidade fornecidas não são rigorosas;

• Não há incentivos para executar um nó.

Encontrar mais privacidade na transferência de dados é um esforço contínuo de pesquisa, em conjunto com a Vac e outras equipes.

Por que a prova de trabalho do Whisper está tão baixa?

Uma prova de trabalho mais alta seria desejável, mas isso acabaria com as baterias dos smartphones, que são os principais alvos dos clientes Status.

Isso significa que a rede está vulnerável a ataques DDoS. Métodos alternativos de proteção contra spam estão sendo pesquisados.

Por que o Discovery v5 não é utilizado para a descoberta de nós?

No momento em que implementamos a descoberta dinâmica de nós, o Discovery v5 ainda não estava concluído. Além disso, a execução de um DHT em um celular leva à detecção lenta de nós, baixa eficiência energética e uso insuficiente da largura de banda. Em vez disso, cada cliente pode escolher ativar o Discovery v5 por um curto período de tempo até que sua lista de pares seja preenchida.

Para mais investigações, veja aqui.

Eu ouvi algo sobre Mailservers serem confiáveis

Para usar um Mailserver, um determinado nó precisa se conectar a ele diretamente, ou seja, adicionar o Mailserver como seu par e marcá-lo como confiável. Isso significa que o Mailserver pode enviar mensagens P2P diretas para o nó em vez de transmiti-las. Efetivamente, ele conhece o filtro bloom dos tópicos nos quais o nó está interessado, quando está online, bem como muitos metadados, como o endereço IP.

Conclusão

Bem, é isso! Aproximadamente 2.300 palavras depois, espero ter explicado tudo o que você precisa saber sobre o mensageiro e suas funcionalidades focadas em privacidade e segurança. Se você acha que faltam minhas explicações e ainda tem dúvidas:

Sinta-se à vontade para nos enviar um e-mail em support@status.im ou, melhor ainda, entre em nosso chat.

Quer saber mais sobre a tecnologia usada? Está procurando uma resposta específica? Faça sua pergunta em nosso fórum aberto discuss.status.im.

Não encontrou o que você precisa? Obtenha suporte no canal #support do Discord.

-

Post original: https://our.status.im/breaking-down-the-private-secure-messenger/.

- Algumas informações podem ter sido alteradas do texto original por conter conteúdo ultrapassado.

- Alguns termos podem ter sido modificados para fazer mais sentido no contexto da língua portuguesa e/ou facilitar o entendimento.