Virtual Network Computing

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 16. april 2021; checks kræver 7 redigeringer .

Virtual Network Computing ( VNC ) er et system til fjernadgang til en computers skrivebord ved hjælp af RFB -protokollen ( Remote FrameBuffer ) . Kontrol udføres ved at overføre tastetryk på tastaturet og musebevægelser fra en computer til en anden og videresende skærmens indhold gennem et computernetværk .  

VNC-systemet er platformsuafhængigt: en VNC-klient kaldet VNC viewer, der kører på et operativsystem, kan oprette forbindelse til en VNC-server, der kører på et hvilket som helst andet operativsystem. Der er klient- og serverimplementeringer til næsten alle operativsystemer, inklusive Java (inklusive J2ME -mobilplatformen ). Flere klienter kan oprette forbindelse til én VNC-server på samme tid. De mest populære måder at bruge VNC på er teknisk fjernsupport og adgang til en arbejdscomputer hjemmefra.

Historie

VNC blev skabt på Olivetti & Oracle Research Lab , som på det tidspunkt var ejet af Olivetti og Oracle Corporation . I 1999 blev laboratoriet opkøbt af AT&T , som lukkede sin R&D-afdeling i 2002 . De originale kildekoder er tilgængelige under GPL , ligesom mange VNC-varianter, der findes i øjeblikket.

Navnet stammer fra Videotile tynde klient -computernetværket , som var en LCD-skærm med pen-input og en hurtig ATM -netværksforbindelse. VNC er i det væsentlige en softwareimplementering af "ATM Network Computer".

Udviklere, der arbejdede på VNC hos AT&T Research Lab:

Enhed

VNC har to dele: en klient og en server. Server  - et program, der giver adgang til skærmen på den computer, den kører på. En klient (eller fremviser) er et program, der modtager et skærmbillede fra en server og interagerer med det via RFB-protokollen.

RFB-protokol

RFB ( eng.  remote framebuffer ) er en simpel klient-server-netværksprotokol på applikationsniveau til fjernadgang til computerens grafiske skrivebord, brugt i VNC. Da det fungerer på rammebufferniveau , kan det anvendes til grafiske vinduessystemer, såsom X Window System , Windows , Quartz Compositor .

I begyndelsen af ​​sin udvikling var RFB en relativt simpel protokol baseret på grafiske primitiver: " sæt et rektangel af pixeldata på en position givet af koordinater ". Serveren sender små rektangler til klienten. En sådan ordning i sin primitive form forbruger betydelig trafik. For at reducere belastningen på kanalen anvendes forskellige metoder. Der er forskellige indkodninger - metoder til at bestemme den mest effektive måde at overføre disse rektangler på. RFB-protokollen tillader klienten og serveren at "forhandle", hvilken kodning der skal bruges. Den enkleste indkodningsmetode, der understøttes af alle klienter og servere, er "råkodning" , hvor pixels transmitteres i rækkefølge fra venstre mod højre, top til bund, og efter overførsel af den oprindelige skærmtilstand transmitteres kun ændrede pixels. Denne metode fungerer meget godt til mindre ændringer af skærmbilledet (flytning af musemarkøren på skrivebordet, tastning under markøren), men feedet bliver meget højt, når du ændrer et stort antal pixels på samme tid, for eksempel når du ser en video i fuldskærmstilstand. Under udviklingen har protokollen fået forskellige yderligere funktioner og muligheder, såsom filoverførsel, komprimering og sikkerhed.

Som standard bruger RFB TCP-portområdet 5900 til 5906. Hver port repræsenterer en tilsvarende X-serverskærm (portene 5900 til 5906 er forbundet med skærmbillederne :0 til :6). Java-klienter, tilgængelige i mange implementeringer, der bruger en indlejret webserver til dette formål, såsom RealVNC, forbinder til skærme på samme måde, men på et portområde fra 5800 til 5806. Mange Windows-computere kan kun bruge én port. pga. manglen på flerbrugerfunktioner, der er iboende i UNIX - systemer. For Windows-systemer er standardskærmen :0, hvilket svarer til port 5900.

Der er også mulighed for en omvendt forbindelse fra serveren til klienten. I dette tilfælde skiftes klienten til lyttetilstand , og forbindelsen initieres af serveren på klientens 5500 TCP-port . 

Porte kan ændres.

Kodning og udvidelsesmetoder offentliggjort fra TigerVNC-projektet:

  • 0x00000000 - Rå
  • 0x00000001 - Kopiering af rektangler (CopyRect)
  • 0x00000002 - Stigende rektangel
  • 0x00000004 - Corre (Compact Rising Rectangle)
  • 0x00000005 — Hekstil
  • 0x00000006 - Zlib kompression
  • 0x00000007 - Stram klientversion
  • 0x00000008 — zlibhex
  • 0x00000009 - Ultra klient version
  • 0x00000010 - ZRLE kompression
  • 0x00000011 - Kompression ZYWRLE (ZLib YUV Wavelet Run Length Encoding)
  • 0xFFFF0001 - Cache-flag (CacheEnable)
  • 0xFFFF0006 - Bitwise XOR flag (XOREnable)
  • 0xFFFF8000 ServerState (UltraVNC)
  • 0xFFFF8001 - EnableKeepAlive (UltraVNC)
  • 0xFFFF8002 - Filoverførsel (FTProtocolVersion - UltraVNC)
  • 0xFFFFFF00 — 0xFFFFFF09 — CompressLevel (Tight)
  • 0xFFFFFF10 — XCursor
  • 0xFFFFFF11 — RichCursor
  • 0xFFFFFF18 — PointerPos
  • 0xFFFFFF20 — LastRect
  • 0xFFFFFF21 — NyFBSstørrelse
  • 0xFFFFFFE0 — 0xFFFFFFE9 — Kvalitetsniveau (stram)

Sikkerhed

Til at begynde med bruger VNC ikke trafikkryptering, dog i godkendelsesproceduren transmitteres adgangskoden ikke i klartekst, men udfordring-svar- algoritmen med DES-kryptering bruges (den effektive nøglelængde er 56 bit). I mange implementeringer er der en grænse på 8 tegn for længden af ​​adgangskoden, og hvis længden overstiger 8 tegn, afkortes adgangskoden, og ekstra tegn ignoreres.

Hvis du har brug for stærk kryptering af hele VNC-sessionen, kan den etableres over SSL , SSH eller VPN- tunnel, såvel som over IPsec . IPsec-teknologien understøttes af langt de fleste moderne operativsystemer og bruges både ved forbindelse via internettet og i lokale netværk . SSH-klienter giver dig mulighed for at oprette SSH-tunneler til alle større platforme ( Linux , BSD , Windows , Macintosh osv.) såvel som til mindre populære.

Også mange moderne versioner af VNC understøtter udvidelser til standardprotokollen, der implementerer kryptering og/eller komprimering af VNC-trafik, differentiering efter ACL -adgangslister og forskellige godkendelsesmetoder.

EchoVNC bruger OpenSSL til at kryptere forbindelser, og VNC-sessionen er krypteret, inklusive godkendelse og dataoverførsel. Understøtter også filoverførsel og chat. Hvis klienten ikke understøtter OpenSSL-kryptering, deaktiveres kryptering automatisk.

UltraVNC giver dig mulighed for at bruge et særligt open source- plugin , der krypterer hele VNC-sessionen ved hjælp af AES- eller RC4-algoritmer , inklusive godkendelse og dataoverførsel. Der er også muligheder for godkendelse baseret på NTLM og brugerkonti i Active Directory . UltraVNC giver dig mulighed for at overføre filer mellem server og klient i enhver retning.

RealVNC i den kommercielle version af produktet bruger AES-algoritmen til forbindelseskryptering og RSA-algoritmen til godkendelse.

Workspot har udgivet en patch til VNC, der implementerer AES-krypteringsalgoritmen.

Programmer

linux Windows macOS Android

Se også

Litteratur

Noter

  1. 1 2 3 RealVNC   // Wikipedia . — 25-05-2021.

Links