Informatica di rete virtuale
Virtual Network Computing ( VNC ) è un sistema per l'accesso remoto al desktop di un computer utilizzando il protocollo RFB ( Remote FrameBuffer ) . Il controllo viene effettuato trasmettendo le sequenze di tasti sui movimenti della tastiera e del mouse da un computer all'altro e trasmettendo il contenuto dello schermo attraverso una rete di computer .
Il sistema VNC è indipendente dalla piattaforma: un client VNC chiamato VNC viewer in esecuzione su un sistema operativo può connettersi a un server VNC in esecuzione su qualsiasi altro sistema operativo. Esistono implementazioni client e server per quasi tutti i sistemi operativi, incluso Java (compresa la piattaforma mobile J2ME ). Più client possono connettersi a un server VNC contemporaneamente. I modi più popolari per utilizzare VNC sono il supporto tecnico remoto e l'accesso a un computer di lavoro da casa.
Storia
VNC è stato creato presso Olivetti & Oracle Research Lab , che all'epoca era di proprietà di Olivetti e Oracle Corporation . Nel 1999 il laboratorio è stato acquisito da AT&T , che ha chiuso il suo dipartimento di ricerca e sviluppo nel 2002 . I codici sorgente originali sono disponibili sotto GPL , così come molte varianti VNC attualmente esistenti.
Il nome ha origine dalla rete di computer thin client Videotile , che era un display LCD con input penna e una connessione di rete ATM veloce. In sostanza, VNC è un'implementazione software di "ATM Network Computer".
Gli sviluppatori che hanno lavorato su VNC presso AT&T Research Lab:
- Tristano Richardson
- Quentin Stafford-Fraser
- James Weatherall
- Ken Wood
- Andy Hopper
- Charlie McLachlan
- Paolo Webster
- Jony Playa
Dispositivo
VNC ha due parti: un client e un server. Server : un programma che fornisce l'accesso allo schermo del computer su cui è in esecuzione. Un client (o visualizzatore) è un programma che riceve un'immagine dello schermo da un server e interagisce con esso tramite il protocollo RFB.
Protocollo RFB
RFB ( eng. remote framebuffer ) è un semplice protocollo di rete client-server a livello di applicazione per l'accesso remoto al desktop grafico del computer, utilizzato in VNC. Poiché funziona a livello di framebuffer , può essere applicato a sistemi di finestre grafiche, come X Window System , Windows , Quartz Comppositor .
All'inizio del suo sviluppo, RFB era un protocollo relativamente semplice basato su primitive grafiche: " metti un rettangolo di dati di pixel in una posizione data dalle coordinate ". Il server invia piccoli rettangoli al client. Un tale schema nella sua forma primitiva consuma traffico significativo. Per ridurre il carico sul canale, vengono utilizzati vari metodi. Esistono varie codifiche - metodi per determinare il modo più efficiente per trasferire questi rettangoli. Il protocollo RFB consente al client e al server di "negoziare" quale codifica verrà utilizzata. Il metodo di codifica più semplice, supportato da tutti i client e server, è la "codifica grezza" , in cui i pixel vengono trasmessi in ordine da sinistra a destra, dall'alto verso il basso e, dopo aver trasmesso lo stato iniziale dello schermo, vengono trasmessi solo i pixel modificati. Questo metodo funziona molto bene per modifiche minori all'immagine dello schermo (spostando il puntatore del mouse sul desktop, digitando sotto il cursore), ma il feed diventa molto alto quando si cambia un numero elevato di pixel contemporaneamente, ad esempio durante la visione un video in modalità schermo intero. Durante il suo sviluppo, il protocollo ha acquisito varie funzionalità e opzioni aggiuntive, come il trasferimento di file, la compressione e la sicurezza.
Per impostazione predefinita, RFB utilizza l' intervallo di porte TCP da 5900 a 5906. Ciascuna porta rappresenta una schermata del server X corrispondente (le porte da 5900 a 5906 sono associate alle schermate da :0 a :6). I client Java, disponibili in molte implementazioni che utilizzano un server Web incorporato per questo scopo, come RealVNC, si connettono agli schermi allo stesso modo, ma su un intervallo di porte compreso tra 5800 e 5806. Molti computer Windows possono utilizzare solo una porta. la mancanza di funzionalità multiutente inerenti ai sistemi UNIX . Per i sistemi Windows, la schermata predefinita è :0, che corrisponde alla porta 5900.
C'è anche la possibilità di una connessione inversa dal server al client. In questo caso, il client passa alla modalità di ascolto e la connessione viene avviata dal server sulla porta 5500 TCP del client .
Le porte possono essere modificate.
Metodi di codifica ed estensione pubblicati dal progetto TigerVNC:
|
|
Sicurezza
Inizialmente VNC non utilizza la crittografia del traffico, tuttavia, nella procedura di autenticazione , la password non viene trasmessa in chiaro, ma viene utilizzato l'algoritmo challenge-response con crittografia DES (la lunghezza effettiva della chiave è di 56 bit). In molte implementazioni, esiste un limite di 8 caratteri per la lunghezza della password e se la sua lunghezza supera gli 8 caratteri, la password viene troncata e i caratteri aggiuntivi vengono ignorati.
Se hai bisogno di una crittografia avanzata dell'intera sessione VNC, può essere stabilita su tunnel SSL , SSH o VPN , nonché su IPsec . La tecnologia IPsec è supportata dalla stragrande maggioranza dei moderni sistemi operativi e viene utilizzata sia durante la connessione tramite Internet che nelle reti locali . I client SSH consentono di creare tunnel SSH per tutte le principali piattaforme ( Linux , BSD , Windows , Macintosh , ecc.) e per quelle meno popolari.
Inoltre, molte versioni moderne di VNC supportano estensioni al protocollo standard che implementano la crittografia e/o la compressione del traffico VNC, la differenziazione per elenchi di accesso ACL e vari metodi di autenticazione.
EchoVNC utilizza OpenSSL per crittografare le connessioni e la sessione VNC viene crittografata, inclusi l'autenticazione e il trasferimento dei dati. Supporta anche il trasferimento di file e la chat. Se il client non supporta la crittografia OpenSSL, la crittografia viene automaticamente disabilitata.
UltraVNC consente di utilizzare uno speciale plug -in open source che crittografa l'intera sessione VNC utilizzando algoritmi AES o RC4 , inclusi l'autenticazione e il trasferimento dei dati. Sono inoltre disponibili opzioni per l'autenticazione basata su NTLM e account utente in Active Directory . UltraVNC ti consente di trasferire file tra server e client in qualsiasi direzione.
RealVNC nella versione commerciale del prodotto utilizza l'algoritmo AES per la crittografia della connessione e l' algoritmo RSA per l'autenticazione.
Workspot ha rilasciato una patch per VNC che implementa l'algoritmo di crittografia AES.
Programmi
- linux
- x11vnc Archiviato il 12 gennaio 2006 su Wayback Machine - Un server con una GUI di configurazione Tcl/Tk .
- Vino è un server vnc di GNOME .
- Vinagre è un client GUI per l'ambiente GNOME.
- Remmina è un client GUI multiprotocollo.
- KRDC - Cliente KDE
- Krfb Archiviato il 10 marzo 2016 su Wayback Machine - Il server vnc di KDE per la condivisione del desktop.
- TightVNC è un client-server.
- TigerVNC è un client-server.
- vnc4server - server.
- RealVNC [1] - client-server
- finestre
- UltraVNC è client-server.
- TightVNC è un client-server.
- TigerVNC è un client-server.
- RealVNC [1] - client-server
- Mac OS
- RealVNC [1] - client-server
- Androide
- Visualizzatore VNC - cliente.
- bVNC è un cliente.
Vedi anche
Letteratura
- Tristan Richardson, Quentin Stafford-Fraser, Kenneth R. Wood e Andy Hopper. Virtual Network Computing Archiviato il 13 maggio 2006 su Wayback Machine IEEE Internet Computing , Vol.2, No.1, Jan/Feb 1998. P. 33-38
Note
Collegamenti
- RealVNC (inglese) - versione ufficiale gestita dal team AT&T Laboratories
- Standard di protocollo RFB 3.8
