MAC0499 - Trabalho de Formatura Supervisionado
Desenvolvimento de um sistema descentralizado de envio de mensagens
Uma análise de dificuldades e limitações
Bacharelado em Ciência da Computação
Instituto de Matemática e Estatística - Universidade de São Paulo
Aluno: João Renner Rudge | Orientador: Daniel Macêdo Batista
São Paulo, 2024
Proposta de trabalho
Este Trabalho de Conclusão de Curso tem como objetivo a análise das características positivas e negativas de sistemas descentralizados de envio de mensagens pela internet, entrando em detalhe sobre suas diferentes características, e posteriormente buscando a implementação de um protótipo funcional.
Esta monografia se insere no contexto da crescente centralização da internet moderna, que pode ser observada tanto no mercado de hospedagem web, na distribuição de Content Delivery Networks (CDNs), ou até mesmo na propagação da versão mais recente do protocolo de segurança Transport Layer Security (TLS), . Nos últimos 20 anos, a adoção de sistemas descentralizados caiu significativamente. O objetivo deste trabalho é discutir as vantagens e limitações de protocolos distribuídos para envio de mensagens em redes de computadores.
A arquitetura híbrida proposta para o projeto de protocolo utiliza serviços ocultos do Tor na comunicação entre usuários. Cada usuário hospeda seu próprio serviço oculto com um par de chaves público-privadas e expõe uma API acessível por outros usuários, permitindo funcionalidades como envio de mensagens, verificação de status de amizade e estabelecimento de conexões P2P diretas. A comunicação padrão esconde o IP, mas, para reduzir latência, usuários podem optar por conexões diretas ao adicionarem outros como "amigos". Nesse modelo, a conexão P2P é estabelecida apenas quando ambos os usuários estão online, possuem o chat aberto e confiam um no outro.
Este trabalho está dividido em cinco capítulos. O Capítulo 1 apresenta definições relevantes, e explica alguns conceitos importantes para a discussão dos protocolos que serão analisados. O Capítulo 2 analisa implementações já existentes de protocolos de envio de mensagens pela Internet. O Capítulo 3 apresenta a proposta de um protocolo de envio de mensagens descentralizado, e o Capítulo 4 apresenta detalhes sobre a implementação e resultados de testes. A monografia é finalizada com conclusões e ideias para trabalhos futuros no Capítulo 5.
Links relevantes (autocontido):
- Download da versão final da monografia: tese.pdf
- Repositório do código fonte da monografia: mac0499-dissertation.zip
- Repositório com o código fonte desta página: mac0499-webpage.zip
- Repositório com a imagem de docker usada para automaticamente compilar a monografia: mac0499-latex-cicd.zip
- Repositório com o código da implementação do protocolo: mac0499-prototype.zip
Links relevantes (externos):
- Repositório do código fonte da monografia (externo, github): mac0499-dissertation
- Repositório com o código fonte desta página (externo, github): mac0499-webpage
- Repositório com o código da implementação do protocolo (externo, github): mac0499-prototype
- Repositório com a imagem de docker usada para automaticamente compilar a monografia (externo, github): mac0499-latex-cicd