Red de conocimiento informático - Problemas con los teléfonos móviles - Introducción al protocolo RDP

Introducción al protocolo RDP

Proporciona la conexión entre el cliente y el servidor. Sesión de sombra, la sesión de imágenes es una función importante de MetaFrame. Los usuarios pueden utilizar esta función para crear imágenes de los escritorios de otros usuarios. Los administradores pueden utilizar las sesiones de imágenes para guiar a los usuarios a través del uso de software y sistemas, y también pueden usarse para monitorear las operaciones del cliente. Esta función de MetaFrame puede realizar funciones uno a uno, uno a muchos, muchos a muchos y otras. La funcionalidad de administración remota en Windows 2000 Server es similar, pero sólo de uno a uno. RDP es un protocolo para aplicaciones de Microsoft Terminal Services y el servidor está basado en win2000/winNT. El protocolo proporciona comunicación multicanal basada en T.128 (familia de protocolos T.120). El cliente admite múltiples recursos de almacenamiento en búfer y procesamiento de compresión de datos de imágenes. Las plataformas de virtualización que utilizan el protocolo RDP incluyen VMware, Microsoft, etc.

El protocolo transmite datos a través de TCP/IP y está empaquetado en tres capas de ISO/MCS/SEC antes de los datos reales. Las dos capas de ISO/MCS proporcionan una garantía de transmisión confiable para la comunicación simultánea multipunto. La capa SEC proporciona cifrado y descifrado de datos detallados de RDP. Cada capa agrega un encabezado de datos en la parte frontal de los datos para el control de los datos y la transmisión. El control de datos específicos se administra mediante una estructura de tipo STREAM (este método es muy flexible y fácil de entender, y puede usarse como referencia para los programadores de redes. Los diferentes miembros de la estructura administran diferentes encabezados de datos y la jerarquía es clara). El protocolo RDP asigna dispositivos en el entorno virtual del terminal en diferentes paquetes de datos, redirige la entrada y salida (E/S) del dispositivo al identificador de red, organiza los datos de diferentes dispositivos en pequeños paquetes de datos en diferentes formatos y múltiples pequeños. Los paquetes de datos se encapsulan en un paquete de datos grande y se envían a través de la red a la vez. La otra parte descompone los datos decodificados por la red en paquetes pequeños y realiza un procesamiento diferente según el tipo de datos del dispositivo.

Windows ha proporcionado servicios de terminal desde NT. Es una tecnología de protocolo de red (Citrix) comprada por Microsoft. El servidor debe instalarse y configurarse, y el cliente debe conectarse al programa. El servicio de terminal permite que cualquier terminal autorizado inicie sesión en el servidor con una cuenta conocida y use los recursos de la cuenta, incluidos los recursos de software y hardware al mismo tiempo. Después de actualizar el protocolo, el cliente puede usar los recursos locales después de conectarse; Incluyendo impresoras locales, reproducción de sonido local, recursos de disco local e interfaces de hardware locales. Todos los cálculos se realizan en el lado del servidor y el cliente solo necesita manejar la conexión de red, la recepción de datos, la visualización de la interfaz y la salida de datos del dispositivo.

2. Descripción general

1 Descripción de la función de la versión: el protocolo RDP tiene cuatro versiones después del lanzamiento del servicio de terminal, 4.0, 5.0, 5.1 y 5.2. En términos generales, la versión se determina en función de la versión de Windows. Desde la perspectiva del cliente, no hay mucha diferencia en las funciones proporcionadas entre las versiones 5. y las conexiones de nivel de cifrado compatibles con FIPS. Además, las funciones del cliente proporcionadas a partir del protocolo 4.0 incluyen: niveles de cifrado de datos alto, medio y bajo, entorno de inicio de sesión inicial personalizado del cliente, mapeo de impresoras del cliente, mapeo de puertos LPT del cliente, mapeo de puertos COM del cliente, mapeo del portapapeles, configuraciones personalizadas para el cliente. iniciar sesión (incluido el teclado, el tamaño de la interfaz de pantalla, etc.).

2. Descripción del nivel del protocolo: a través de la investigación de craqueo, hemos dominado la estructura jerárquica básica del protocolo RDP. Básicamente, cada capa del protocolo RDP indica el valor de longitud de los datos dentro de su capa. En cuanto a la división de capas, se refiere principalmente a las diversas capas generalmente incluidas en la transmisión de datos de la función de red del protocolo RDP, y la conexión de una sola capa y otras funciones implementadas dentro de cada capa se explicarán como módulos separados. Capa de conexión de red: el protocolo RDP se basa en el protocolo TCP/IP. Dado que la cantidad de datos transmitidos es relativamente grande, primero se define una capa de conexión de red en la parte inferior del protocolo. Define un paquete lógico de datos RDP completo para evitar la pérdida de datos debido a que el paquete de red se fragmenta debido a una longitud demasiado larga. Capa de datos ISO: encima de la capa de conexión de red está la capa de datos ISO, que representa la comunicación de conexión normal de los datos RDP.

Capa de canal virtual: además de la capa de datos ISO, el protocolo RDP define una capa de canal virtual para dividir datos que indican diferentes canales virtuales, acelerar el procesamiento del cliente y ahorrar tiempo en la ocupación de interfaces de red. Capa de cifrado y descifrado: además de la capa del canal virtual, RDP define una capa de cifrado y descifrado de datos. Esta capa se utiliza para cifrar y descifrar todos los datos funcionales. Capa de datos funcionales: encima de la capa de cifrado y descifrado se encuentran datos funcionales, información de pantalla, conversión de recursos locales, datos de sonido, datos de impresión y otra información de datos funcionales que se procesan en esta capa. Además, dependiendo del tipo de datos, estos datos tienen diferentes niveles de segmentación, y sus jerarquías internas se elaborarán en cada módulo funcional.

3 Otras explicaciones: las estructuras jerárquicas mencionadas en este análisis de protocolo se refieren a las estructuras subyacentes durante la transmisión normal de datos funcionales RDP, el proceso de establecimiento de conexión en cada nivel antes de la transmisión de datos funcionales y su estructura. y la implementación se atribuyen a la implementación del módulo para su explicación. Para conocer diversas configuraciones del lado del servidor y diferencias de implementación interna entre versiones, consulte la documentación de ayuda de RDP y la documentación de desarrollo de rdpwin.

4 Descripción del proceso de conexión:

1) El cliente se conecta al servidor

2) La capa de datos ISO establece la conexión

3) Envío inicial Información relacionada con el protocolo, recibir claves de cifrado y descifrado

4) Aplicación de canal virtual

5) Enviar información del sistema cliente en forma cifrada y verificar el protocolo de cifrado

6) Verificación del certificado del software de la plataforma

7) Establecimiento de conexión para cada función, transmisión de datos para cada función e implementación de la función

3. Capa de conexión de red: en la conexión de red del protocolo RDP, el formato de datos de esta capa es fijo. El número de versión del protocolo de contenido conserva esta longitud lógica del paquete

Número de bytes 1 1 2

Las versiones actuales tienen una longitud lógica de 3 0, comenzando desde el número de versión hasta el final de este. paquete

2 Capa de datos ISO: en la transmisión de red de datos de la función RDP, el formato de datos de esta capa es fijo. Contenido longitud de datos de una sola capa Bandera de tipo de paquete ISO

Número de bytes 1 1 1

Valor 2, calculado a partir del siguiente byte 0xf0, que indica datos 0x80

3 Capa de canal virtual: la capa de canal virtual se utiliza para proporcionar datos funcionales de un canal virtual además de los datos de conexión de red normales. Para conexiones en este nivel, consulte también el módulo de conexión inicial y el módulo de aplicación de canal. Aquí solo describimos la estructura jerárquica de las conexiones de datos normales.

1) Información de estructura: tipo de contenido número de canal virtual número de canal virtual bandera

Número de bytes 1 2 2 1

Valor 0x64/0x68 0x0001 0x03eb a 0x03ee 0x70/0xf0

2) Descripción del tipo: 0x64: el cliente envía datos 0x68: el cliente recibe datos 3) Descripción del número de usuario: el número de usuario de esta conexión, el servidor envía el cliente 0x0001 El valor enviado es el; Número virtual que el servidor acepta abrir después de solicitar el canal durante la conexión inicial. 4) Descripción del número de canal virtual: El número de canal virtual es el número de canal virtual donde se ubican los datos funcionales enviados por encima de este nivel. Se determina cuando se establece la aplicación del canal de conexión inicial. 5) Descripción de la bandera: la bandera enviada por el cliente es 0x70; la bandera enviada por el servidor, cuando los datos funcionales son una imagen (identificada por el número de canal), su valor es 0x70, cuando los datos funcionales son otros datos, su El valor es 0xf0.

4 Capa de cifrado y descifrado: La capa de cifrado y descifrado se utiliza para cifrar y descifrar los datos enviados y recibidos en la conexión de red. Para garantizar la seguridad de los datos y los sistemas, es común e inevitable cifrar los datos de la red para su transmisión. El protocolo RDP cifra los datos funcionales reales en esta capa.

1) Información estructural: capa única de contenido y longitud total de datos en la capa, indicador de cifrado, indicador desconocido, firma digital

Número de bytes 1-2 2 2 8

El valor se calcula a partir del siguiente byte 0x0800 0x1000/0x0203 obtenido secuencialmente

2) Descripción de la longitud total: si la longitud es mayor que 0x7f, la longitud se expresa en dos bytes y bit a bit Y con 0x8000.

Esto se debe a que los formatos admitidos por las actualizaciones de versión no son uniformes y la longitud es variable. La versión actual considera que el valor de longitud no es mayor que 0x0fff (4095), por lo que solo usa el valor de longitud y 0x8000 bit a bit para lograr la compatibilidad de la versión. Después de la actualización de la versión, el valor de longitud estará representado por 0x8x El número de bytes, donde 8 representa un byte que no es 1 y x representa el número específico de bytes.

3) Descripción del indicador de cifrado: el protocolo RDP requiere autenticación de licencia primero antes de que se realice la conexión funcional normal. El indicador es 0x8xxx y los datos posteriores son diferentes del formato de la capa de cifrado de la transmisión de datos funcionales normales. Puede considerar la autenticación de licencia como el proceso de establecimiento de conexión de la capa de cifrado y descifrado. Además, las claves para el cifrado y descifrado de datos funcionales se obtienen durante la conexión inicial, y los módulos de cifrado y descifrado explican la implementación de las funciones de cifrado y descifrado.

4) Descripción del indicador desconocido: hay dos tipos de datos desconocidos enviados por el servidor. El significado es actualmente desconocido. El cliente lo establece en un valor de 0x0000 al enviar datos.

5) Descripción de la firma digital: coloque aquí una firma digital de 8 bytes para todos los datos cifrados. Su valor se obtiene mediante la operación SHA y la operación MD5 del valor de la clave de sesión RC4 y los datos de función.

5 Capa de datos funcionales: Los datos funcionales son los datos reales para que el cliente interactúe con el servidor. Todos tienen sus propios formatos fijos, métodos de conexión y control. Para más detalles, consulte la descripción de cada módulo funcional. Según la información que tenemos actualmente, el protocolo RDP transmite información de imagen, información de sonido, información del dispositivo y contenido del portapapeles a través de un único canal virtual, y el mapeo de impresora, el mapeo de disco y el mapeo de puertos se realizan como contenido de la información del dispositivo. . tratar con. Limitado al trabajo actual de la esquina superior izquierda y al trabajo del proyecto, solo se considera la parte de mapeo de la impresora en la información del dispositivo, y no existe un aislamiento ni distinción efectivos entre la información de la impresora y otra información relacionada con el dispositivo, la información de conexión relevante y la transmisión de datos. esta descripción del protocolo solo se considera contenido mapeado por impresora