Pregunta

Considere el siguiente escenario:

  • Cliente VNC intente conectarse con un servidor VNC que está detrás de un NAT.

  • He escrito un reenvío de puertos en Java que me ayuda a lograr la tarea, y funciona bien.

  • Ahora necesito, de alguna manera, agregar una funcionalidad de intermediación de conexión dentro de este reenviador para que también pueda interceptar la comunicación entre el cliente VNC - servidor y autenticar el cliente VNC dentro de la utilidad de reenvío también.

Es posible que haya adivinado que en realidad estoy usando la contraseña recibida del cliente VNC para alguna autenticación en mi aplicación. Como el servidor RFB se puede implementar en la capa de aplicación, supongo que esta intercepción es posible ... VNCAUTHENTICACIÓN (DES Cifrado/descifrado) se utiliza en todo lo anterior. Tras la autenticación exitosa dentro de la utilidad de reenvío, dejaré que el reenvío continúe para ese cliente respectivo, de lo contrario, puedo cerrarla (dejar de reenviar).

He probado alguna implementación, también intenté personalizar una implementación de Java del servidor RFB ... pero aún no puedo llegar allí. Tomará algo de tiempo, lo sé, pero necesito confirmar si estoy pensando con claridad.

Avíseme si la implementación del escenario anterior es ambigua, no es posible o ilegítima y si esto es posible, permítanme tener algunas líneas de gremio ...

¿Fue útil?

Solución

Esto parece una buena implementación. Piense en ello como un proxy VNC, al igual que un proxy HTTP (s). También hay proxies de autenticación HTTP. Está implementando parte del protocolo VNC para crear un proxy VNC autenticador.

Tal vez puedas inspirarte Vncproxy, un proxy Java VNC existente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top