Handshaking Phase
sequenceDiagram
Server->>Client: max. possible ProtocolVersion
Client-->>Server: answer with selected ProtocolVersion
Server->>Client: send available SecurityTypes
Client-->>Server: answer with selected SecurityType
Note over Server,Client: Communication depending on selected security type
Server->>Client: send SecurityResult
Protocol for SecurityType 1 (NO-AUTHENTICATION):
sequenceDiagram
Server->>Client: max. possible ProtocolVersion
Client-->>Server: answer with selected ProtocolVersion
Server->>Client: send available SecurityTypes
Client-->>Server: answer with selected SecurityType
Server->>Client: send SecurityResult
Special Case for SecurityType 1 (NO-AUTHENTICATION) and ProtocolVersion 3.3/3.7:
If the server and client decide to use the ProtocolVersion 3.3 or 3.7 and security type 1, the server does not send the
SecurityResult message, but will directly continue with the Initialization messages. This is valid for ProtocolVersion
3.3 and 3.7 :
sequenceDiagram
Server->>Client: max. possible ProtocolVersion
Client-->>Server: answer with selected ProtocolVersion
Server->>Client: send selected SecurityType
Note over Server,Client: Continue with Initialization messages
Protocol for SecurityType 2 (VNC-AUTHENTICATION):
sequenceDiagram
Server->>Client: max. possible ProtocolVersion
Client-->>Server: answer with selected ProtocolVersion
Server->>Client: send available SecurityTypes
Client-->>Server: answer with selected SecurityType
rect rgb(191, 223, 255)
Server->>Client: send random 16-byte challenge
Client-->>Server: DES encrypted challenge (with password)
end
Server->>Client: send SecurityResult
Special Case for ProtocolVersion 3.3:
If the server and client decide to use the ProtocolVersion 3.3, the handshaking phase changes.
Instead the server is provide a set of possible security types, it will just send a single security type. The
security-type may only take the value 0, 1, or 2.
sequenceDiagram
Server->>Client: max. possible ProtocolVersion
Client-->>Server: answer with selected ProtocolVersion
Server->>Client: send selected SecurityType
Note over Server,Client: Communication depending on selected security type