[BulletProof] Propuesta DCC Chat con BulletProof

Jesus Cea Avion jcea at argo.es
Wed Jun 25 16:38:48 CEST 2003


Mensaje de Marzo de 2002:


Zoltan wrote:
> 
> Propongo que se puedan mantener conversaciones cifradas con
> bulletproof con otro usuario vía DCC Chat. En el mIRC existe una
> opcion (Connect -> Firewall) para que puedas hacer los DCC a traves
> del firewall, que seria el bp en localhost via puerto 1080
> (configuracion de por defecto) y dado que el envio de una peticion de
> DCC es un PRIVMSG normal con unos parametros con formato ctcp, veo
> factible que el bulletproof capture la peticion y se pueda
> iniciar una conversacion cifrada IP to IP (peer-peer).

Este es un tema al que llevo dando vueltas MUUCHO tiempo. Los detalles
son bastante más complejos de lo que parece.

Imaginemos el BulletProof. Desde siempre, el BP permite tener varias
conexiones a la vez. Cada conexión mantiene una estructura de datos de
claves, independiente del resto de conexiones. Es decir, yo puedo tener
una clave para el nick "pepe" en IRC-Hispano, y una clave distinta para
el mismo nick en "Undernet", bajo la premisa de que se trata de
conexiones distintas. Si creamos una conexión nueva, no tiene clave
hasta que se la asignamos.

En ese sentido los DCC's son una conexión más, con sus claves
independientes (en este caso solo una), pero debe seguir interpretándose
el protocolo BP (poder eliminar clave, cambiarla, etc) dentro del DCC
que, como sabemos, es un protocolo completamente distinto al protocolo
IRC normal. Además, en vez de "crearse" esa conexión sin ninguna clave,
como cualquier conexión normal, debemos "heredar" la clave para ese nick
de la conexión "irc" de la que "nacemos".

Pero bueno, llevo mucho tiempo pensando en el asunto y "podría" haber
formas de hacerlo.

Lo que ya no tengo claro es cómo funcionaría el DCC a través del BP.
Estudiando el DCC "normal", sabemos que el usuario que "origina" el DCC
se pone a escuchar en un puerto y envía al otro usuario un privado
"especial" con su IP y puerto de escucha. El otro extremo se conecta a
esa IP/Puerto.

Si metemos el BP en medio, tenemos:

- En el BP "remoto", debemos interceptar el privado de "DCC" y
  "modificarlo" para que haga referencia a la IP y puerto locales. Es
  decir, el usuario remoto, cuando acepta el DCC, se conectará a su BP
  local.

  Esto es bastante más complejo de lo que parece, porque el BP puede
  estar funcionando en un servidor de la LAN, no en nuestra máquina.

- En el BP "origen", debemos escuchar en una IP y Puerto, y modificar
  el privado de "DCC" saliente para reflejar este hecho. Esto es
  relativamente asumible en "SOCKS5", pero si nuestra conexión es
  "HTTP Proxy" o "socks4", estamos jodido.

Además de dichas complejidades, imaginemos ahora que el BP está
configurado para usar, a su vez, un servidor SOCKS4/5/Proxy HTTP externo
para salir de nuestra red o como "bouncer". Sólo pensar en los detalles
marea :-).

¿Comentarios?. Si me podeis dar detalles de funcionamiento "interno"
de los DCC vía "firewall", se agradecería.

-- 
Jesus Cea Avion                         _/_/      _/_/_/        _/_/_/
jcea at argo.es http://www.argo.es/~jcea/ _/_/    _/_/  _/_/    _/_/  _/_/
                                      _/_/    _/_/          _/_/_/_/_/
PGP Key Available at KeyServ   _/_/  _/_/    _/_/          _/_/  _/_/
"Things are not so easy"      _/_/  _/_/    _/_/  _/_/    _/_/  _/_/
"My name is Dump, Core Dump"   _/_/_/        _/_/_/      _/_/  _/_/
"El amor es poner tu felicidad en la felicidad de otro" - Leibniz




More information about the BulletProof mailing list