2025.04.01 (Ter)
2025.04.02 (Qua) atualizado

✨ Resumo do GPT  

Um dia em que concluí a arquitetura técnica e o desenho de segurança de um messenger com foco em segurança para desertores norte-coreanos na China, e escrevi um plano de desenvolvimento de MVP baseado em Flutter Web + Node.

🧮 Secret Messenger

Este é um messenger para usuários desertores norte-coreanos que vivem na China sem documento de identificação oficial.

  • 📱 Acessível pelo navegador, sem necessidade de instalação
  • 💬 Capaz de receber informações, manter conversas secretas e compartilhar arquivos
  • 🛡️ Uma ferramenta de comunicação com foco em segurança, baseada em Flutter Web

Este projeto é um experimento técnico voltado para proteção de direitos humanos e apoio à sobrevivência, não para fins políticos. Ele não pressupõe distribuição pública nem uso comercial. (🔒 Gerenciado apenas em um repositório privado no GitHub.)


📌 Visão geral do projeto

Item Conteúdo
Usuários Desertores norte-coreanos na China, com letramento digital muito baixo e celulares monitorados pela segurança pública
Objetivo Compartilhamento de informações, chat secreto e compartilhamento seguro de arquivos
Formato SPA em Flutter Web baseada em navegador, sem necessidade de instalação
Domínio https://???.net (disfarçado como UI de calculadora)
Estratégia de disfarce da UI Primeira tela com aparência de calculadora → ao inserir uma operação específica, envia uma solicitação de entrada ao servidor
Método de entrada O Flutter Web envia a chave de entrada ao servidor por POST, e o servidor decide se emite um token de acesso
Estratégia de segurança do código Condições e lógicas sensíveis não ficam incluídas no cliente; todas as decisões são feitas no lado do servidor
Prioridade de funcionalidades ① Recebimento de informações → ② Chat → ③ Compartilhamento de arquivos

🧪 Projeto experimental de Vibe Coding

Ao mesmo tempo, este projeto é um MVP que experimenta a aplicabilidade prática e os limites de um modo de desenvolvimento chamado Vibe Coding.

  • O desenho e a implementação avançam em linguagem natural, com a maior parte da geração de código feita com ajuda de IA.
  • O usuário exerce o papel de “designer/coordenador”, em vez de escrever diretamente a maior parte do código.
  • O objetivo é avaliar na realidade a eficiência e os fatores de risco do desenvolvimento conduzido por IA.

Por meio deste experimento, quero explorar o futuro dos métodos de desenvolvimento baseados em IA e verificar se eles chegam a um nível aplicável a um projeto real de direitos humanos.


⚙️ Stack técnica

🔷 Frontend (Flutter Web)

  • Flutter 3.x (Web build)
  • Material 3 (ideal para o disfarce de UI de calculadora)
  • go_router (transições de página e fluxo de entrada oculto)
  • Riverpod (gerenciamento de estado: UUID, sessão etc.)
  • http (comunicação com REST API)

🔍 Estratégia de UI

  • Tela inicial: TextField + grade de botões em formato de calculadora
  • Inserção de uma operação específica → envio ao servidor → se for válida, permite a entrada interna
  • Nenhum gatilho ou lógica de entrada é incluído no cliente

🔷 Backend (Node.js + Express)

  • Node.js 18+
  • Express.js (servidor REST API)
  • SQLite (DB local baseado em arquivo)
  • Multer (upload de arquivos)
  • node-cron (agendador de exclusão baseado em TTL)
  • Middleware de segurança como CORS, helmet e rate-limit

📁 APIs principais

  • POST /check-trigger
    • O servidor verifica a string enviada
    • Se ela corresponder a uma condição de gatilho previamente registrada, emite um token de sessão
  • GET /session/:id ou /inbox/:key
    • Somente usuários com uma chave de sessão emitida pelo servidor podem acessar funcionalidades internas
  • POST /message, GET /messages
    • Armazenamento/consulta de mensagens baseadas em TTL
  • POST /upload, GET /file/:id
    • Suporte a upload de arquivos e exclusão automática

🔷 Infraestrutura / Deploy

  • Docker (garantia de consistência e portabilidade do ambiente de servidor)
  • Ubuntu 22.04 LTS (Vultr VPS)
  • Vultr VPS (região de Hong Kong) — para garantir estabilidade de acesso a partir da China
  • Cloudflare (proxy DNS + SSL + ocultação de IP)
  • Domínio: ???.net — domínio para disfarce de calculadora

🔐 Estratégia de segurança

Item Descrição
Separação de código Código sensível, como lógica de entrada e gatilhos, é exclusivo do servidor
Papel limitado do Flutter Web Apenas renderiza a UI e envia entradas
HTTPS obrigatório Cloudflare + Let’s Encrypt
Proxy Cloudflare Oculta o IP do servidor e ajuda na defesa contra DDoS
Restrição de CORS Bloqueia solicitações de domínios fora da lista permitida
Política no-cache Aplica cabeçalhos no-store a todas as respostas
TTL de mensagens Exclusão automática baseada no horário de criação
TTL de arquivos Arquivos são excluídos dentro de um tempo definido após o upload, tratados pelo node-cron
Restrição de armazenamento local Minimizar ou proibir o uso de localStorage/cookies

🗂️ Lista de funcionalidades

Funcionalidade Status Descrição
🧊 UI disfarçada 🟢 Em implementação Disfarçada como UI de calculadora, com condição de entrada aplicada pelo servidor
📥 Recebimento de informações 🟢 Em preparação Avisos do administrador (somente leitura)
💬 Sala de chat 🟡 Planejada Chat em grupo anônimo (baseado em TTL)
📁 Compartilhamento de arquivos 🟡 Planejado Compartilhamento de arquivos com exclusão automática configurada
🔥 Sistema de exclusão 🟡 Planejado Automação de exclusão TTL para mensagens/arquivos

🚀 Roadmap de desenvolvimento

  • ⚙️ Projetar a arquitetura do sistema e estabelecer o modelo de segurança
  • 📌 Finalizar stack técnica + decidir estratégia de disfarce
  • 🌐 Comprar domínio (???.net)
  • 🔨 Scaffold da calculadora em Flutter Web
  • 🔨 Scaffold da API Express + SQLite
  • 🔐 Construir estrutura de processamento da chave de entrada no servidor
  • 📦 Docker + automação de deploy
  • 🌐 Deploy em VPS + integração com Cloudflare
  • 🧪 Teste do MVP
  • 🎯 Estabilização e distribuição interna

📄 Observações

  • Nunca commitar código ou informações sensíveis no GitHub.
  • O código Flutter para deploy vai para o diretório build/, e o código do servidor roda apenas dentro do contêiner Docker.
  • Toda comunicação de API é criptografada via HTTPS, e os dados dos usuários são descartados automaticamente após a configuração de TTL.
  • Informações sensíveis como a chave de entrada da calculadora e UUIDs de usuários nunca são incluídas no frontend; elas são processadas apenas com base em chaves privadas de verificação dentro do servidor.
  • A verificação das condições de entrada e a identificação do usuário são compostas como lógica de verificação unidirecional executada somente no lado do servidor, de modo que mesmo se o código Flutter Web for exposto, as informações de segurança não sejam reveladas externamente.

👤 Nota do desenvolvedor

Este projeto não é apenas um app simples. Começo com a consciência de que, para algumas pessoas, ele pode ser uma ferramenta de sobrevivência ligada à própria vida.

Que a tecnologia não seja uma ferramenta de vigilância, mas uma ferramenta para a liberdade.


💭 Diário

Para que eu vivo? Riqueza e honra? Não. Coisas desse tipo, para começo de conversa, são ilusões que não podem ser objetivos. São apenas meios.

Qual é a vida que eu realmente quero? … Bem, não consigo defini-la. De todo modo, está claro que é uma vida incluída dentro da grande categoria de amar a Deus / amar o próximo.

Enfim, vendo que este projeto faz meu coração bater e me dá entusiasmo, acho que esse tipo de coisa é o que eu mais queria fazer agora.

Então, por enquanto, vamos começar por isto.

Deixe um comentário