Actualmente estoy creando un sistema de chat descentralizado de código abierto en Python. Originalmente comenzó como algo para entrenar mis habilidades de programación, pero después de hablar con algunos amigos, decidí alojar el código fuente en GitHub.
Ahí es donde entran los problemas.
Primero que nada, el código está diseñado para que después de insertarlo en un servidor y ejecutarlo, pueda usar HTTP POST para usarlo como un proxy al enviar mensajes (usa HTTP porque no sé cómo codificar nada más y porque el proyecto nunca fue destinado a ser utilizado en realidad). Al hacerlo, todos los mensajes deben estar encriptados. Normalmente, esto no será un problema, pero debido a los recortes presupuestarios, alojo mi código en repl.it, lo que significa que cualquier persona y su madre (siempre que sepan cosas sobre Internet) podrían acceder al código. Eso incluye cualquier clave que me gustaría usar para el cifrado.
El segundo problema es que incluso si encuentro una forma de cifrar los datos, no puedo enviar las claves a través de la red porque, como mencioné anteriormente, no tengo claves (es muy parecido a un catch-22: no tengo claves, así que no puedo canalizarlas al cliente). Hay alguna manera de arreglar este problema? Sé que https / tls no funcionará ya que el archivo simplemente se leerá.
¿Hay alguna forma de mejorar mi grave situación?
Gracias por tu tiempo.
TL; DR
Estoy haciendo un sistema de chat de código abierto. Necesito una forma de cifrar los datos que se canalizan, pero mi servicio de alojamiento comparte mi código fuente porque soy un imbécil. ¿Qué debo hacer?