Red de comunicacion (Anonima, Segura)

Iniciado por AlbertoBSD, 19 Marzo 2016, 02:30 AM

0 Miembros y 1 Visitante están viendo este tema.

AlbertoBSD

Buen dia a todos.

Estoy implementando un programa cliente - servidor, (Muchos clientes un solo servidor) el cual se comunica con criptografía asimétrica esto es un par de llaves publicas y privadas para cada cliente.

Los clientes tendrían actualizaciones periódicas tanto de contenido como del programa en si y solo aceptaran la actualización si esta esta firmada por el servidor.

No tengo problema con la criptográfica ni con la programación. Solo estoy buscando opciones para la implementación del canal de comunicación.
El cual me gustaría que la comunicación del cliente para el servidor utilizara un canal anónimo de forma que fuera muy difícil saber quien es el servidor.

Opciones en las que he pensado.

  • Usar la red de Tor para que los clientes envien datos al servidor y/o servidores
  • Implementar una red parecida a la red que usa el sistema de Bitcoin para distribuir la información.
  • Usar algun sistema de mensajes publicos tipo Twitter/paste bin etc..

Punto por punto:

La red de TOR

He escuchado poco de los dominios Onion, sin embargo no estoy tan seguro que tan factible es que localicen tal o cual servidor.

Implementar una red parecida a la red que usa el sistema de Bitcoin para distribuir la información.

Segun el PDF que lei, utiliza un sistema de broadcast para enviar la informacion de las transacciones entre todos los nodos de la red. Sin embargo con mis conocimientos de redes no conozco la forma de hacer esto.

Usar una red Publica
He pensado de todo desde Twitter, Pastebin incluso la red IRC pero en la mayoría de los casos siempre deja algún rastro y/o bloquean las cuentas.

¿Alguna otra sugerencia?

El programa que estoy implementando es instalado manualmente por los usuarios y ellos pueden dejar de usarlo en cualquier momento.
No es ningun ransomware ni malware que se le paresca.
El detalle de tanto hermetismo con el servidor es por que el contenido que es enviado a los clientes puede entrar en conflicto con grandes corporaciones multimedia y no quiero tener represalias por ello.

Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

PalitroqueZ

a riesgo de que pueda sonar de "novatos",

no serviría una VPN?

y los datos los manejas con PGP.



"La Economía planificada lleva de un modo gradual pero seguro a la economía dirigida, a la economía autoritaria y al totalitarismo" Ludwig Erhard

engel lex

Ni VPN, ni pgp, VPN es absurdo para esto, por otro lado el cifrado parece ya estar resuelto...

La red tor no te sería tan útil,  podrías usar mensajes esteanograficos

Te importa verte comprometido si reversan tu programa?
Que parte se comprometeria, la conexion o el servidor?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

AlbertoBSD

Cita de: PalitroqueZ en 19 Marzo 2016, 04:04 AM
y los datos los manejas con PGP.

Uso libgcrypt para manejar la criptografia, como lo comento la criptografia no es problema

Cita de: engel lex en 19 Marzo 2016, 04:30 AM
La red tor no te sería tan útil

Algun argumento en contra para la red de tor?

Cita de: engel lex en 19 Marzo 2016, 04:30 AM
podrías usar mensajes esteanograficos

Lo considerare, aun asi creo que al ser criptografia asimetrica end to end no tengo mucho problema.

Cita de: engel lex en 19 Marzo 2016, 04:30 AM
Te importa verte comprometido si reversan tu programa?

El programa del cliente no hay mucho problema si lo reversean. Realmente el cliente solo procesa la información recibida y la muestra prácticamente en texto plano.

Otras funciones del cliente son actualizarse a si mismo cuando aplique y actualizar el contenido a mostrar.
Validar que la actualización venga firmada por el programa servidor.
Y enviar datos estadísticos de uso al servidor.

Cita de: engel lex en 19 Marzo 2016, 04:30 AM
Que parte se comprometeria, la conexion o el servidor?


La conexion no hay problema que se comprometa igualmente va cifrado, bueno si la conexion es orientada a valga la redundancia "conexion" me refiero a una conexion directa (TCP, control de flujo etc etc etc), si seria problema por que entonces todos sobrian quien es el servidor.

Lo mas viable que veo es usar una red publica ya existente o alguna forma de broadcast para el servidor sea pasivo al momento de leer los mensajes de los clientes. Y ningun cliente conozca quien es el servidor.


Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

engel lex

Ya te entendi

El problema es hacer anonimo al server

Tor podria servir, pero corres el riesgo que tu dominio caiga por ratos

Puedes usar email y crear una especie de cliente de correo, el servidor, tambien acesaria como un cliente a su cuenta y la comunicacion la compartes como binarios adjtntados, asi usas al servidor de correos (gmail, hotmail, tormail, etc) como barrera, allí podrias anonimizarte como quieras (acedes al servidor de correo por vpn, tor o como quieras, a demas, sabemos que no es facil sacarle la ip del cliente a ninguno de esos, a demas tienes un https adicional de seguridad)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

AlbertoBSD

Cita de: engel lex en 19 Marzo 2016, 06:05 AM
Puedes usar email y crear una especie de cliente de correo

Buena idea, voy a pensarlo a ver que tal va.

Jaja ya estaba pensando en un protocolo de comunicación usando IRC y algun servidor al estilo FreeNode.

Voy a ver los pro y contra de las opciones. A ver si se me ocurre alguna otra.
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

engel lex

La ventaja del email sobre el irc, me parece, es la facilidad de la transmision binaria y la privacidad de data con cada cliente, la debilidad seria el riesgo de hackeo del correo, pero en ese caso, ya el cliente estaba comprometido ya, pero aunque soliciten el cierre de tu cuenta de correo, puedes abrir otra y solicitar el cambio a tus clientes, igual el caso inverso (por seguridad y para evitar el pishing usa autentication challenge o similar)

el conflicto de el irc es que vean el canal y soliciten su cierre, tur clientes quedarian desorientados, la ventaja es la inmediatez del mensaje, la desventaja, la velocidad de transmision
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

AlbertoBSD

Estaba pensando en los pros y contras antes de irme a dormir y amaneci con esas mismas ideas.

Estoy viendo otras opciones como
:https://core.telegram.org/

Aun asi, al igual que los otros metodos tambien esta el riesgo que terminen quitando el canal de comunicación.


Saludos!.

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

engel lex

En email,  ja ventaja es que el canal de comunicación puede caer y no hay problemas, ya que reemplazarlo es fácil

Usar el api de telegram es una buena opción, es bastante cerrada la conexión
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

AlbertoBSD

Muy buen dia.

Depues de 7 dias de estar jugando con la API de telegram he escrito una interaz para usarla en lenguaje C.

Libtelegrambot

Si alguien quiere usarla y practicar con ella para los fines que quiera esta disponible. Pueden reportar fallas en la pagina de github

Ya con la interfaz lista voy a comenzar una sección genérica de comunicación en mi programa
Asi si un dia decido de cambiar de canal, solo tendre que cambiar las llamadas de mi sección a una nueva API o plataforma.

ejemplo:

Ahora
Citar
progama_getUpdates() {
  telegram_getUpdates();
}

En caso de cambiar de plataforma
Citar
progama_getUpdates() {
  another_getUpdates();
}

Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW