Virtual Network Computing - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs est disponible ici.

Virtual Network Computing ou VNC est un protocole ouvert pour se connecter à un ordinateur distant. Il permet de transmettre les saisies au clavier ainsi que les clics de souris d'un ordinateur à l'autre, à travers un réseau informatique.

VNC est indépendant de la plateforme : un client VNC installé sur n'importe quel système d'exploitation peut se connecter à un serveur VNC installé sur un autre système d'exploitation. Il existe des clients et serveurs VNC pour la plupart des systèmes d'exploitation. Plusieurs clients peuvent se connecter en même temps sur un même serveur VNC. Une utilisation de ce protocole est le support technique à distance, ainsi que la visualisation de fichiers sur votre ordinateur de travail à partir de votre ordinateur personnel.

VNC a été initialement développé dans les laboratoires AT&T de Cambridge. Le code source du programme VNC original est open source sous licence GNU/GPL, comme la plupart des variantes de VNC disponibles aujourd'hui.

Historique

VNC a été créé au laboratoire Olivetti & Oracle Research Lab, qui était alors la propriété de Olivetti et Oracle Corporation. En 1999, AT&T acheta le laboratoire, et en 2002 ferma la partie "recherche" de celui-ci.

Le nom provient de l'ATM Network Computer appelé Videotile, qui était un écran LCD avec un stylo tactile et une connexion ATM rapide sur un réseau. VNC est une version logicielle de cet ATM Network Computer.

Voici une liste des développeurs qui ont travaillé sur VNC quand celui-ci était encore en développement dans le laboratoire de recherche AT&T :

  • Tristan Richardson
  • Quentin Stafford-Fraser
  • James Weatherall
  • Ken Wood
  • Andy Harter
  • Charlie McLachlan
  • Paul Webster

Comment ça marche ?

VNC se décompose en deux parties, le client et le serveur. Le serveur est le programme esclave sur la machine qui partage son écran, et le client (appelé aussi le "viewer") est le programme maître qui regarde et interagit éventuellement avec le serveur.

VNC se base sur le protocole Remote Frame Buffer (RFB) qui est très simple, avec des fonctions du type "Insérer un rectangle de pixel à la position x,y donnée". Cela étant, le serveur envoie des petits rectangles venant du framebuffer au client. Cette méthode, dans sa forme la plus simple, utilisant beaucoup de bande passante, il existe plusieurs méthodes pour réduire cette utilisation. Par exemple, il y a plusieurs formes d'encodage, des méthodes pour déterminer quel moyen est le plus efficace pour réduire cela. Le protocole Remote Frame Buffer permet au client et au serveur de s'accorder sur la méthode d'encodage utilisée. L'encodage le plus simple, qui est supporté par tous les clients et serveurs, est le raw encoding où les pixels sont transmis de gauche à droite par ligne, et après le premier écran transféré, seulement les rectangles qui changent sont envoyés. A cause de cela, cette méthode fonctionne très bien si seulement une petite quantité de l'écran change d'une image à l'autre (comme un pointeur de souris qui se déplace sur le bureau, ou du texte tapé), mais l'utilisation de bande passante augmente fortement si beaucoup de pixels changent et donc doivent être transmis (une vidéo en plein écran est le meilleur exemple).

Par défaut, VNC utilise les ports de 5900 à 5906, chacun représentant l'écran correspondant (ports de 6000 à 6006, pour les écrans de :0 à :6). Un client Java est disponible dans de nombreuses implémentations, comme RealVNC par exemple qui utilise les ports allant de 5800 à 5806 (ces ports pouvant être changés).

Sur les systèmes Unix ou Linux l'affichage graphique se fait par un protocole et un serveur X11 qui permet l'affichage (donc l'exécution) distant d'applications graphiques, de sorte que VNC y est moins utile (mais existe aussi). Le serveur X11 a été porté sous d'autres systèmes d'exploitation, dont Windows et MacOS.

La sécurité avec VNC

Par défaut, VNC n'est pas un protocole sécurisé.

VNC peut être utilisé à travers un tunnel par une connexion SSH ou VPN, ce qui ajoute une couche de sécurité avec un meilleur chiffrement. Cependant, ce n'est pas toujours une solution viable; par exemple, un tunnel SSH peut être difficile à faire avec des machines sous Windows.

UltraVNC permet l'utilisation d'un plugin open-source de chiffrement qui va chiffrer la session VNC complète, en incluant l'identification par mot de passe, et le transfert de données. Il permet également une identification basée sur les comptes utilisateurs NTLM et Active Directory.

RealVNC offre un chiffrement puissant dans sa version commerciale.

Workspot propose des patches permettant un chiffrement AES pour VNC.

VNC peut bien évidemment poser des problèmes de sécurité, a l'instar de tous les programmes offrant un support reseau, d'autant plus que son but premier est d'utiliser une machine a distance. Mais proposant une identification, voire un chiffrement des communications, il ne pose pas de problème particulier de nos jours.

Un problème de sécurité a été identifié en mai 2006 sur la version 4.1.1 de "RealVNC Free edition" qui permet à un pirate de prendre la main sur votre PC sans connaître votre mot de passe avec un VNC Viewer modifé. Il est impératif de passer au plus vite à la version 4.1.2 pour corriger cette faille de sécurité.

Plus d'articles

  • Tristan Richardson, Quentin Stafford-Fraser, Kenneth R. Wood & Andy Hopper, "Virtual Network Computing", IEEE Internet Computing, Vol.2 No.1, Jan/Feb 1998 pp33-38 PDF format
Page générée en 0.072 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise