Search code examples
encryptionvncvnc-servervnc-viewerrfb-protocol

What protocol codes are defined for VNC? (RFB-protocol)


Just recently i found out that the various implementations of VNC on Windows, Linux and other systems have an ID based method for negotiating the protocol method of the rfb-protocol to use for the communication. Some of the protocols have more encryption than others, some will only encrypt the logon credentials and some wont use any encryption at all.

Where can i find a (mostly complete) listing of the existing or standardized protocol IDs and their names? If a link to advanced information (e.g. specs) is attached to each of these entries i would appreciate this.


Solution

  • The RFB protocol registries are maintained by IANA.

    Current Security Types:

    0        Invalid                    [RFC6143]
    1        None                       [RFC6143]
    2        VNC Authentication         [RFC6143]
    3-15     RealVNC                    historic assignment
    16       Tight                      historic assignment
    17       Ultra                      historic assignment
    18       TLS                        historic assignment
    19       VeNCrypt                   historic assignment
    20       GTK-VNC SASL               historic assignment
    21       MD5 hash authentication    historic assignment
    22       Colin Dean xvp             historic assignment
    23       Secure Tunnel              [RFC7869]
    24       Integrated SSH             [RFC7869]
    25-29    Unassigned     
    30-35    Apple Inc.                 [Michael_Stein]
    36-127   Unassigned     
    128-255  RealVNC                    historic assignment
    

    Current Encoding Types:

    0                           Raw                                 [RFC6143]
    1                           CopyRect                            [RFC6143]
    2                           RRE                                 [RFC6143]
    5                           Hextile                             [RFC6143]
    9-10                        Possibly used in UltraVNC           historic assignment
    16                          ZRLE                                [RFC6143]
    -239                        Cursor pseudo-encoding              [RFC6143]
    -223                        DesktopSize pseudo-encoding         [RFC6143]
    4                           CoRRE                               historic assignment
    6                           zlib                                historic assignment
    7                           tight                               historic assignment
    8                           zlibhex                             historic assignment
    15                          TRLE                                [RFC6143]
    17                          Hitachi ZYWRLE                      historic assignment
    20                          H.264                               [Tristan_Richardson]
    21                          JPEG                                historic assignment [Tristan_Richardson]
    22                          JRLE                                historic assignment [Tristan_Richardson]
    1000-1002                   Apple Inc.                          [Michael_Stein]
    1011                        Apple Inc.                          [Michael_Stein]
    1024 to 1099                RealVNC                             historic assignment [Tristan_Richardson]
    1100-1105                   Apple Inc.                          [Michael_Stein]
    -1 to -222                  tight options                       historic assignment
    -224 to -238                tight options                       historic assignment
    -240 to -256                tight options                       historic assignment
    -257 to -272                Anthony Liguori                     historic assignment
    -273 to -304                VMWare                              historic assignment
    -305                        gii                                 historic assignment
    -306                        popa                                historic assignment
    -307                        Peter Astrand DesktopName           historic assignment
    -308                        Pierre Ossman ExtendedDesktopSize   historic assignment
    -309                        Colin Dean xvp                      historic assignment
    -310                        OLIVE Call Control                  historic assignment
    -311                        ClientRedirect                      [Brian_Hinz]
    -312                        Fence                               TigerVNC
    -313                        ContinuousUpdates                   TigerVNC
    -314                        CursorWithAlpha                     [Tristan_Richardson]
    -412 to -512                TurboVNC fine-grained quality level historic assignment
    -523 to -528                Car Connectivity                    [Jörg_Brakensiek] [Terminal Mode v1.0]
    -763 to -768                TurboVNC subsampling level          historic assignment
    0x48323634                  VA H.264                            [David_Verbeiren]
    0x574d5600 to 0x574d56ff    VMWare                              historic assignment
    0xc0a1e5ce to 0xc0a1e5cf    Possibly used in UltraVNC           historic assignment
    0xfffe0000 to 0xfffe00ff    Used in LibVNCServer                LibVNCServer
    0xffff0000 to 0xffff8003    Possibly used in UltraVNC           historic assignment