Tras ver dos protocolos, Telnet y SSH que sirven, básicamente, para el acceso remoto por línea de comandos, hoy damos un repaso a uno de los protocolos más conocidos para el acceso gráfico a un ordenador remoto, VNC.
Desarrollado en los laboratorios de investigación de Olivetti y Oracle para un terminal "tonto", hoy en día hay versiones para casi todos los sistemas operativos, tanto del cliente como del servidor. El protocolo VNC transmite desde el cliente al servidor las pulsaciones de teclado y los movimientos del ratón, y desde el servidor al cliente las actualizaciones de pantalla. Esto tiene ventajas e inconvenientes. Con VNC el servidor puede ver en todo momento lo que está haciendo el cliente, porque ambos controlan la misma pantalla, pero no pueden trabajar los dos a la vez en el mismo ordenador. A cambio, es un sistema altamente portable entre diferentes sistemas operativos, al no depender de ninguna característica de este.
Las actualizaciones de pantalla se hacen enviando las partes de la pantalla que hayan cambiado, enviando solo pequeños rectángulos con las variaciones. Esto funciona muy bien cuando los cambios en pantalla son pocos, pero cuando hay grandes variaciones, por ejemplo, cuando arrastramos una ventana por la pantalla. Para evitar tener que enviar tantos datos por la red y acelerar la tasa de refresco, el protocolo VNC puede utilizar diferentes tipos de compresión en las actualizaciones que se envían.
Por lo que respecta a la seguridad del protocolo, la contraseña no se envía en texto plano, como en el caso de Telnet, sino que se utiliza un sistema llamado desafío-respuesta, en el que el servidor envía un número aleatorio al cliente, el cual lo cifra con la contraseña y se lo devuelve, con lo que el servidor puede comprobar si esta contraseña es correcta. El resto del tráfico que se transmite si se hace en texto plano, por lo que un atacante que escuche el tráfico puede obtener los datos que enviemos.
Las mejoras versiones del servidor para Windows son aquellas que funcionan como un driver de pantalla, ya que estas no requieren estar mirando continuamente si algo ha cambiado sino que lo controlan directamente. UltraVNC soporta este modo de funcionamiento, además de permitir el traspaso de ficheros entre cliente y servidor. TightVNC, en su última versión, también permite usar un plugin para este modo.
UltraVNC también dispone de un plugin para cifrar el tráfico enviado con el protocolo RC4, lo cual mejora un poco la seguridad del sistema, aunque también cabe la opción de usar VNC sobre SSH para aprovechar todas las ventajas de este.
Más información | Wikipedia.
Ver 11 comentarios