[MS-RDPBCGR]: Remote Desktop Protocol: Basic Connectivity and Graphics Remoting

This topic lists the Errata found in [MS-RDPBCGR] since it was last published. Since this topic is updated frequently, we recommend that you subscribe to these RSS or Atom feeds to receive update notifications.

Errata are subject to the same terms as the Open Specifications documentation referenced.

RSS

Atom

To view a PDF file of the errata for the previous versions of this document, see the following ERRATA Archives:

October 16, 2015 - Download

June 30, 2015 - Download

July 18, 2016 - Download

March 20, 2017 - Download

June 1, 2017 - Download

December 1, 2017 - Download

March 16, 2018 - Download

September 12, 2018 - Download

March 13, 2019 - Download

Errata below are for Protocol Document Version V50.0 – 2019/03/13.

Errata Published*

Description

2019/08/19

In Section 2.2.8.1.1.3, Client Input Event PDU (TS_INPUT_PDU), removed the reference to slow-path.​

Changed from:​

The slow-path Input Event PDU is used to transmit input events from client to server.<32><33>​

...​

Changed to:​

The Input Event PDU is used to transmit input events from client to server.<32><33>​

...​

​In Section 2.2.8.1.1.3.1, Client Input Event PDU Data (TS_INPUT_PDU_DATA), specified Slow-Path Input Events in the introductory sentence and in the numEvents field description.​

Changed from:​

The TS_INPUT_PDU_DATA structure contains a collection of slow-path input events generated by the client and intended to be processed by the server.​

...​

numEvents (2 bytes): A 16-bit, unsigned integer. The number of slow-path input events packed together in the slowPathInputEvents field.​

...​

slowPathInputEvents (variable): A collection of Slow-Path Input Events (section 2.2.8.1.1.3.1.1) to be processed by the server. The number of events present in this array is given by the numEvents field.​

Changed to:​

The TS_INPUT_PDU_DATA structure contains a collection of Slow-Path Input Events (section 2.2.8.1.1.3.1.1) generated by the client and intended to be processed by the server.​

...​

numEvents (2 bytes): A 16-bit, unsigned integer. The number of Slow-Path Input Events packed together in the slowPathInputEvents field.​

...​

slowPathInputEvents (variable): A collection of Slow-Path Input Events to be processed by the server. The number of events present in this array is given by the numEvents field.​

In Section 2.2.8.1.1.3.1.1, Slow-Path Input Event (TS_INPUT_EVENT), removed the reference to slow-path and clarified how the contents of the input event are specified in the slowPathInputData field description. ​

Changed from:​

...​

slowPathInputData (variable): TS_KEYBOARD_EVENT, TS_UNICODE_KEYBOARD_EVENT, TS_POINTER_EVENT, TS_POINTERX_EVENT, or TS_SYNC_EVENT. The actual contents of the slow-path input event (sections 2.2.8.1.1.3.1.1.1 through 2.2.8.1.1.3.1.1.5).​

Changed to:​

...​

slowPathInputData (variable): TS_KEYBOARD_EVENT, TS_UNICODE_KEYBOARD_EVENT, TS_POINTER_EVENT, TS_POINTERX_EVENT, or TS_SYNC_EVENT. The actual contents of the input event specified by the messageType field (sections 2.2.8.1.1.3.1.1.1 through 2.2.8.1.1.3.1.1.6).​

In Section 3.2.5.8.1.1, Sending Input Event PDU, changed the section title from Sending Slow-Path Input Event PDU to Sending Input Event PDU and specified Input Event PDU and slowPathInputEvents field sections. ​

Changed from:​

3.2.5.8.1.1 Sending Slow-Path Input Event PDU​

The structure and fields of the Slow-Path Input Event PDU are specified in 2.2.8.1.1.3.1.1, and the techniques specified in section 3.2.5.1 demonstrate how to initialize the contents of the PDU.​

The slowPathInputEvents field encapsulates a collection of input events and is populated with the following input event data:​

...​

Changed to:​

3.2.5.8.1.1 Sending Input Event PDU​

The structure and fields of the Input Event PDU are specified in sections 2.2.8.1.1.3 and 2.2.8.1.1.3.1, and the techniques specified in section 3.2.5.1 demonstrate how to initialize the contents of the PDU.​

The slowPathInputEvents field (section 2.2.8.1.1.3.1) encapsulates a collection of input events and is populated with the following input event data:​

...​

In Section 3.3.5.8.1.1, Processing Input Event PDU, changed the section title from Processing Slow-Path Input Event PDU to Processing Input Event PDU and specified Input Event PDU and slowPathInputEvents field sections.​

Changed from:​

3.3.5.8.1.1 Processing Slow-Path Input Event PDU​

The structure and fields of the Slow-Path Input Event PDU are described in section 2.2.8.1.1.3, and the techniques described in section 3.3.5.2 demonstrate how to process the contents of the PDU.​

The slowPathInputEvents field encapsulates a collection of input events and is populated with the following input event data:​

...​

If a slow-path input event structure is received that does not match one of the known types, the server SHOULD drop the connection.​

...​

Changed to:​

3.3.5.8.1.1 Processing Input Event PDU​

The structure and fields of the Input Event PDU are described in sections 2.2.8.1.1.3 and 2.2.8.1.1.3.1, and the techniques described in section 3.3.5.2 demonstrate how to process the contents of the PDU.​

The slowPathInputEvents field (section 2.2.8.1.1.3.1) encapsulates a collection of input events and is populated with the following input event data:​

...​

If an input event is received that does not match one of the known types, the server SHOULD drop the connection.​

...​

2019/08/19

In Section 2.2.9.1.2.1.11, Fast-Path Large Pointer Update (TS_FP_LARGEPOINTERATTRIBUTE), changed the FASTPATH_UPDATETYPE_LARGE_POINTER value in the updateHeader field description.​

Changed from:​

...​

updateHeader (1 byte): An 8-bit, unsigned integer. The format of this field is the same as the updateHeader byte field specified in the Fast-Path Update (section 2.2.9.1.2.1) structure. The updateCode bitfield (4 bits in size) MUST be set to FASTPATH_UPDATETYPE_LARGE_POINTER (15).​

...​

Changed to:​

...​

updateHeader (1 byte): An 8-bit, unsigned integer. The format of this field is the same as the updateHeader byte field specified in the Fast-Path Update (section 2.2.9.1.2.1) structure. The updateCode bitfield (4 bits in size) MUST be set to FASTPATH_UPDATETYPE_LARGE_POINTER (12).​

...​

2019/07/08

In Section 5.5, Automatic Reconnection, clarified in the fourth step that the derived security verifier has the same value for a given auto-reconnect random when auto-reconnecting with Enhanced RDP Security.​​

Changed from:​

...​

4. The client derives a 16-byte security verifier from the random number contained in the auto-reconnect cookie received in Step 2. This security verifier is wrapped in a Client Auto-Reconnect Packet (section 2.2.4.3) and sent to the server as part of the extended information (section 2.2.1.11.1.1.1) of the Client Info PDU (section 2.2.1.11).​

The auto-reconnect random is used to key the HMAC function ([RFC2104]), which uses MD5 as the iterative hash function. The security verifier is derived by applying the HMAC to the client random received in Step 3.​

SecurityVerifier = HMAC(AutoReconnectRandom, ClientRandom)​

When Enhanced RDP Security is in effect the client random value is not generated (section 5.3.2). In this case, for the purpose of generating the security verifier, the client random is assumed to be an array of 32 zero bytes. This effectively means that the derived security verifier will always have the same value when carrying out auto-reconnect under the Enhanced RDP Security. Hence, care is taken to authenticate the identity of the server to which the client is reconnecting, ensuring that the identity has not changed in the period between connections.​

...​

Changed to:​

...​

4. The client derives a 16-byte security verifier from the random number contained in the auto-reconnect cookie received in Step 2. This security verifier is wrapped in a Client Auto-Reconnect Packet (section 2.2.4.3) and sent to the server as part of the extended information (section 2.2.1.11.1.1.1) of the Client Info PDU (section 2.2.1.11).​

The auto-reconnect random is used to key the HMAC function ([RFC2104]), which uses MD5 as the iterative hash function. The security verifier is derived by applying the HMAC to the client random received in Step 3.​

SecurityVerifier = HMAC(AutoReconnectRandom, ClientRandom)​

When Enhanced RDP Security is in effect the client random value is not generated (section 5.3.2). In this case, for the purpose of generating the security verifier, the client random is assumed to be an array of 32 zero bytes. This implies that the derived security verifier will always have the same value for a given auto-reconnect random when auto-reconnecting with Enhanced RDP Security. ​

...​

*Date format: YYYY/MM/DD