Virtual Network Computing

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 16. dubna 2021; kontroly vyžadují 7 úprav .

Virtual Network Computing ( VNC ) je systém pro vzdálený přístup k ploše počítače pomocí protokolu RFB ( Remote FrameBuffer  ) . Ovládání se provádí přenosem úhozů na klávesnici a pohybů myši z jednoho počítače do druhého a předáváním obsahu obrazovky prostřednictvím počítačové sítě .

Systém VNC je nezávislý na platformě: klient VNC s názvem VNC viewer běžící na jednom operačním systému se může připojit k serveru VNC běžícímu na jakémkoli jiném OS. Existují klientské a serverové implementace pro téměř všechny operační systémy, včetně Javy (včetně mobilní platformy J2ME ). K jednomu VNC serveru se může současně připojit více klientů. Nejoblíbenějšími způsoby použití VNC jsou vzdálená technická podpora a přístup k pracovnímu počítači z domova.

Historie

VNC bylo vytvořeno v Olivetti & Oracle Research Lab , kterou v té době vlastnily Olivetti a Oracle Corporation . V roce 1999 laboratoř získala společnost AT&T , která v roce 2002 uzavřela své oddělení výzkumu a vývoje . Originální zdrojové kódy jsou dostupné pod licencí GPL , stejně jako mnoho variant VNC, které v současné době existují.

Název vznikl podle počítačové sítě Videotile pro tenkého klienta , což byl LCD displej se vstupem pro pero a rychlým síťovým připojením ATM . VNC je v podstatě softwarová implementace "ATM Network Computer".

Vývojáři, kteří pracovali na VNC v AT&T Research Lab:

Zařízení

VNC má dvě části: klient a server. Server  - program, který poskytuje přístup k obrazovce počítače, na kterém běží. Klient (neboli prohlížeč) je program, který přijímá obraz obrazovky ze serveru a komunikuje s ním prostřednictvím protokolu RFB.

RFB protokol

RFB ( anglicky  remote framebuffer ) je jednoduchý síťový protokol klient-server na aplikační úrovni pro vzdálený přístup ke grafické ploše počítače, používaný ve VNC. Protože funguje na úrovni framebufferu , lze jej použít pro grafické okenní systémy, jako je X Window System , Windows , Quartz Compositor .

Na začátku svého vývoje byl RFB relativně jednoduchý protokol založený na grafických primitivech: " umísti obdélník pixelových dat na pozici danou souřadnicemi ". Server posílá malé obdélníky klientovi. Takové schéma ve své primitivní podobě spotřebovává značný provoz. Ke snížení zatížení kanálu se používají různé metody. Existují různá kódování – metody pro určení nejúčinnějšího způsobu přenosu těchto obdélníků. Protokol RFB umožňuje klientovi a serveru „vyjednat“, které kódování bude použito. Nejjednodušší metodou kódování, kterou podporují všichni klienti a servery, je „raw encoding“ , ve kterém jsou pixely přenášeny v pořadí zleva doprava, shora dolů a po přenosu počátečního stavu obrazovky jsou přenášeny pouze změněné pixely. Tato metoda funguje velmi dobře pro drobné změny obrazu na obrazovce (pohyb ukazatele myši na ploše, psaní pod kurzorem), ale posuv se stává velmi vysokým při změně velkého počtu pixelů současně, například při sledování video v režimu celé obrazovky. Během svého vývoje protokol získal různé další funkce a možnosti, jako je přenos souborů, komprese a zabezpečení.

Ve výchozím nastavení používá RFB rozsah portů TCP 5900 až 5906. Každý port představuje odpovídající obrazovku X serveru (porty 5900 až 5906 jsou spojeny s obrazovkami :0 až :6). Klienti Java, kteří jsou k dispozici v mnoha implementacích, které pro tento účel používají vestavěný webový server , jako je RealVNC, se připojují k obrazovkám stejným způsobem, ale na portech v rozsahu od 5800 do 5806. Mnoho počítačů se systémem Windows může používat pouze jeden port. nedostatek funkcí pro více uživatelů, které jsou součástí systémů UNIX . Pro systémy Windows je výchozí obrazovka :0, což odpovídá portu 5900.

Existuje také možnost zpětného připojení ze serveru ke klientovi. V tomto případě je klient přepnut do režimu naslouchání a připojení je iniciováno serverem na portu 5500 TCP klienta . 

Porty lze změnit.

Metody kódování a rozšíření publikované z projektu TigerVNC:

  • 0x00000000 - Drsný
  • 0x00000001 - Kopírování obdélníků (CopyRect)
  • 0x00000002 - Stoupající obdélník
  • 0x00000004 - CoRRE (Compact Rising Rectangle)
  • 0x00000005 — Hextile
  • 0x00000006 - Komprese Zlib
  • 0x00000007 - Pevná verze klienta
  • 0x00000008 — zlibhex
  • 0x00000009 - Verze klienta Ultra
  • 0x00000010 - Komprese ZRLE
  • 0x00000011 - Kompresní ZYWRLE (ZLib YUV Wavelet Run Length Encoding)
  • 0xFFFF0001 - Příznak mezipaměti (CacheEnable)
  • 0xFFFF0006 - Bitový příznak XOR (XOREnable)
  • 0xFFFF8000 ServerState (UltraVNC)
  • 0xFFFF8001 - EnableKeepAlive (UltraVNC)
  • 0xFFFF8002 - Přenos souborů (FTProtocolVersion - UltraVNC)
  • 0xFFFFFF00 — 0xFFFFFF09 — CompressLevel (Tight)
  • 0xFFFFFF10 — XCursor
  • 0xFFFFFF11 — RichCursor
  • 0xFFFFFF18 — PointerPos
  • 0xFFFFFF20 — LastRect
  • 0xFFFFFF21 — NewFBSize
  • 0xFFFFFFE0 — 0xFFFFFFE9 — Úroveň kvality (Tight)

Zabezpečení

Zpočátku VNC nepoužívá šifrování provozu, nicméně v autentizační proceduře se heslo nepřenáší jako prostý text, ale používá se algoritmus výzva-odpověď s DES šifrováním (efektivní délka klíče je 56 bitů). V mnoha implementacích je délka hesla omezena na 8 znaků, a pokud jeho délka přesáhne 8 znaků, je heslo zkráceno a další znaky jsou ignorovány.

Pokud potřebujete silné šifrování celé relace VNC, lze ji vytvořit přes tunel SSL , SSH nebo VPN a také přes IPsec . Technologie IPsec je podporována drtivou většinou moderních operačních systémů a využívá se jak při připojení přes internet , tak v lokálních sítích . SSH klienti umožňují vytvářet SSH tunely pro všechny hlavní platformy ( Linux , BSD , Windows , Macintosh atd.) i pro méně oblíbené.

Mnoho moderních verzí VNC také podporuje rozšíření standardního protokolu, které implementuje šifrování a/nebo kompresi provozu VNC, rozlišení podle přístupových seznamů ACL a různé metody ověřování.

EchoVNC používá OpenSSL k šifrování připojení a relace VNC je šifrována, včetně ověřování a přenosu dat. Podporuje také přenos souborů a chat. Pokud klient nepodporuje šifrování OpenSSL, je šifrování automaticky zakázáno.

UltraVNC umožňuje používat speciální open source plugin , který šifruje celou relaci VNC pomocí algoritmů AES nebo RC4 , včetně ověřování a přenosu dat. Existují také možnosti ověřování na základě NTLM a uživatelských účtů v Active Directory . UltraVNC umožňuje přenášet soubory mezi serverem a klientem v libovolném směru.

RealVNC v komerční verzi produktu používá algoritmus AES pro šifrování připojení a algoritmus RSA pro ověřování.

Workspot vydal opravu pro VNC, která implementuje šifrovací algoritmus AES.

Programy

linux Okna Operační Systém Mac Android

Viz také

Literatura

Poznámky

  1. 1 2 3 RealVNC   // Wikipedie . — 25.05.2021.

Odkazy