Введение
Тип проприетарного сетевого протокола
Протокол удаленного рабочего стола (RDP) — это проприетарный протокол, разработанный корпорацией Microsoft, который предоставляет пользователю графический интерфейс для подключения к другому компьютеру по сетевому соединению. Пользователь использует для этого клиентское программное обеспечение RDP, а на другом компьютере должно быть установлено серверное программное обеспечение RDP. Существуют клиенты для большинства версий Microsoft Windows (включая Windows Mobile, но поддержка прекращена), Linux (например, Remmina), Unix, macOS, iOS, Android и других операционных систем. Серверы RDP встроены в серверные и профессиональные версии операционных систем Windows, но не в домашние; также существует сервер RDP для Unix и OS X (например, xrdp). По умолчанию сервер прослушивает TCP-порт 3389 и UDP-порт 3389. В настоящее время Microsoft называет свое официальное клиентское программное обеспечение RDP "Remote Desktop Connection", ранее — "Клиент удаленных рабочих столов". Протокол является расширением протокола обмена приложениями ITU-T T.128. Microsoft публикует некоторые спецификации на своем веб-сайте.
Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft Corporation which provides a user with a graphical interface to connect to another computer over a network connection. The user employs RDP client software for this purpose, while the other computer must run RDP server software. Several clients exist for most versions of Microsoft Windows (including Windows Mobile but the support has ended), Linux (for example Remmina), Unix, macOS, iOS, Android, and other operating systems. RDP servers are built into the server and professional editions of Windows operating systems but not home editions; an RDP server for Unix and OS X also exists (for example xrdp). By default, the server listens on TCP port 3389 and UDP port 3389. Microsoft currently refers to their official RDP client software as Remote Desktop Connection, formerly "Terminal Services Client". The protocol is an extension of the ITU T T.128 application sharing protocol. Microsoft makes some specifications public on their website.
История
Каждая серверная и профессиональная версия Microsoft Windows, начиная с Windows XP, включает в себя установленный клиент Remote Desktop Connection (RDC) ("Terminal Services"), версия которого определяется версией операционной системы или последним установленным пакетом обновления Windows. Сервер Terminal Services поддерживается как официальная функция в Windows NT 4.0 Terminal Server Edition, выпущенной в 1998 году, Windows 2000 Server, во всех версиях Windows XP, кроме Windows XP Home Edition, Windows Server 2003, Windows Home Server, в Windows Fundamentals для устаревших ПК, в Windows Vista Ultimate, Enterprise и Business, Windows Server 2008 и Windows Server 2008 R2, а также в Windows 7 Professional и выше. Домашние версии Windows не поддерживают RDP. Microsoft предоставляет клиент, необходимый для подключения к более новым версиям RDP для устаревших операционных систем. Поскольку улучшения серверной части недоступны в устаревших версиях, функции, представленные в каждой новой версии RDP, работают только на устаревших операционных системах при подключении к серверу RDP более новой версии из этих старых операционных систем, а не при использовании сервера RDP в самой устаревшей операционной системе.
Версия 4.0
Основанный на протоколе обмена приложениями ITU-T T.128 (во время разработки также известном как "T.share") из серии рекомендаций T.120, первая версия RDP (под названием версия 4.0) была представлена компанией Microsoft вместе с "Terminal Services" как часть продукта Windows NT 4.0 Server, Terminal Server Edition.
Версия 5.0
Эта версия была представлена вместе с Windows 2000 Server, добавила поддержку множества функций, включая печать на локальные принтеры, и была призвана повысить эффективность использования сетевой пропускной способности.
Версия 5.1
Эта версия была представлена вместе с Windows XP Professional и включала поддержку 24-битной цветовой палитры и звука. Она поддерживается в Windows 2000, Windows 9x и Windows NT 4.0. С этой версией название клиента было изменено с Terminal Services Client на Remote Desktop Connection; однако, историческое название сохранилось и по сей день, так как базовый исполняемый файл до сих пор называется .
Версия 5.2
Эта версия была представлена вместе с Windows Server 2003 и включала поддержку подключений в консольном режиме, каталог сеансов и сопоставление локальных ресурсов. Она также вводит Transport Layer Security (TLS) 1.0 для аутентификации сервера и шифрования коммуникаций сервера терминалов. Эта версия встроена в Windows XP Professional x64 Edition и Windows Server 2003 x64 & x86 Editions, а также доступна для Windows XP для загрузки.
Версия 6.0
Эта версия была представлена вместе с Windows Vista и обеспечивала поддержку приложений Windows Presentation Foundation, сетевой аутентификации, расширения на несколько мониторов и поддержку больших рабочих столов, а также соединения TLS 1.0. Клиент RDP 6.0 доступен для Windows XP SP2, Windows Server 2003 SP1/SP2 (x86 и x64 издания) и Windows XP Professional x64 Edition через KB925876. Клиент Microsoft Remote Desktop Connection для Macintosh OS X также доступен с поддержкой Mac OS версий 10.4.9 и выше для процессоров Intel и PowerPC.
Версия 6.1
Эта версия была выпущена в феврале 2008 года и впервые появилась в Windows Server 2008 и Windows Vista с пакетом обновления Service Pack 1, а затем была портирована в Windows XP с пакетом обновления Service Pack 3. Клиент RDP 6.1 доступен для Windows XP SP2, Windows Server 2003 SP1/SP2 (x86 и x64 версии) и Windows XP Professional x64 Edition через KB952155. Помимо изменений, касающихся подключения удаленного администратора к "консоли", эта версия включает новые функции, представленные в Windows Server 2008, такие как удаленное подключение к отдельным приложениям и новую систему перенаправления принтеров на стороне клиента, которая предоставляет приложениям, работающим на сервере, доступ к возможностям печати клиента без необходимости установки драйверов принтеров на сервере. С другой стороны, удаленный администратор может свободно устанавливать, добавлять или удалять любое программное обеспечение или настройки на клиентской стороне. Однако для начала сеанса удаленного администрирования необходимо быть членом группы Администраторов на сервере, к которому осуществляется подключение.
Версия 7.0
Эта версия была выпущена в производство в июле 2009 года и поставляется с Windows Server 2008 R2, а также с Windows 7. Вместе с этой версией произошел переход от Терминальных служб к Службам удаленного рабочего стола. Эта версия включает новые функции, такие как перенаправление Windows Media Player, двунаправленная передача звука, поддержка нескольких мониторов, поддержка Aero glass, улучшенное ускорение растровой графики, перенаправление Easy Print и закрепление языковой панели. Клиент RDP 7.0 доступен для Windows XP SP3 и Windows Vista SP1/SP2 через KB969084, но официально не поддерживается на Windows Server 2003 x86 и в версиях Windows Server 2003 / Windows XP Professional x64. Он также официально не поддерживается на Windows Server 2008. Большинство функций RDP 7.0, включая удаленное использование Aero glass, двунаправленную передачу звука, перенаправление Windows Media Player, поддержку нескольких мониторов и Remote Desktop Easy Print, доступны только в редакциях Windows 7 Enterprise или Ultimate.
Версия 7.1
Выпуск 7.1 RDP был включен в Windows 7 Service Pack 1 и Windows Server 2008 R2 SP1 в 2010 году. Он представил RemoteFX, обеспечивающий поддержку виртуализированной графики и кодирование на стороне сервера.
Версия 8.0
Эта версия была выпущена в Windows 8 и Windows Server 2012. Она включает новые функции, такие как адаптивная графика (прогрессивный рендеринг и связанные технологии), автоматический выбор протокола TCP или UDP для передачи данных, поддержка мультитач, поддержка DirectX 11 для vGPU, перенаправление USB, работающее независимо от поддержки vGPU, и другие. Клиентские и серверные компоненты RDP 8.0 доступны для Windows 7 SP1 и Windows Server 2008 R2 SP1 через KB2592687. Клиент RDP 8.0 также доступен для Windows Server 2008 R2 SP1, но серверные компоненты – нет. Для установки дополнения требуется протокол DTLS. Новой функцией RDP 8.0 является ограниченная поддержка вложенных сеансов RDP, однако она работает только в Windows 8 и Server 2012, в то время как Windows 7 и Server 2008 R2 (даже с обновлением RDP 8.0) не поддерживают эту функцию. Функция "теневого" подключения из RDP 7, позволявшая администратору отслеживать (просматривать) RDP-соединение, была удалена в RDP 8. Функция удаленного взаимодействия с Aero Glass (применительно к компьютерам Windows 7, подключающимся друг к другу) также была удалена в RDP 8. Поддержка отслеживания сеансов была восстановлена в версии RDP 8.1. Эта версия также устраняет некоторые графические ошибки Microsoft Office 2013 при запуске в режиме RemoteApp. Microsoft опубликовала 82-страничный документ с описанием способов защиты от данного типа атак.
Версия 10.0
Версия 10.0 протокола RDP была представлена вместе с Windows 10 и включает следующие новые возможности: автоматическое масштабирование (AutoSize zoom), полезное для клиентов с экранами HiDPI. Также были внесены улучшения в сжатие графики с использованием H.264/AVC.
Вопросы безопасности
Версия 5.2 RDP в конфигурации по умолчанию уязвима для атаки типа "человек посередине". Администраторы могут включить шифрование транспортного уровня для снижения этого риска. RDP-сессии также подвержены сбору учетных данных из памяти, которые могут быть использованы для проведения атак типа "pass-the-hash". В марте 2012 года Microsoft выпустила обновление для критической уязвимости в RDP. Эта уязвимость позволяла скомпрометировать компьютер под управлением Windows неавторизованным клиентам и компьютерным червям. RDP-клиент версии 6.1 может быть использован для раскрытия имен и изображений всех пользователей на RDP-сервере (независимо от версии Windows) с целью выбора одного из них, если имя пользователя не указано при установлении RDP-соединения. В марте 2018 года Microsoft выпустила исправление для уязвимости удаленного выполнения кода в CredSSP, поставщике поддержки безопасности, используемом в Microsoft Remote Desktop и Windows Remote Management, обнаруженной компанией Preempt. В мае 2019 года Microsoft выпустила патч безопасности для ("BlueKeep") – уязвимости, позволяющей удаленно выполнять код, и предупредила, что она "подвержена распространению червями" и может вызвать масштабные сбои. В необычном порядке патчи были выпущены и для нескольких версий Windows, срок поддержки которых истек, например, для Windows XP. Немедленного злонамеренного использования уязвимости не последовало, однако эксперты единогласно сошлись во мнении, что это весьма вероятно и может привести к серьезным последствиям, учитывая количество систем, которые остались уязвимыми и не обновленными. В июле 2019 года Microsoft выпустила патч безопасности для уязвимости RDP, затрагивающей Hyper-V.
Клиенты
С момента выпуска Remote Desktop Connection появилось несколько дополнительных клиентов протокола удаленного рабочего стола, разработанных как компанией Microsoft, так и другими разработчиками, включая Microsoft Remote Desktop, rdesktop и FreeRDP.
Серверы
В дополнение к Remote Desktop Services, разработанным Microsoft, серверы RDP с открытым исходным кодом для Unix включают FreeRDP (см. выше), проект ogon и xrdp. Клиент Windows Remote Desktop Connection может использоваться для подключения к таким серверам. Также существует Azure Virtual Desktop, который использует RDP и является частью платформы Microsoft Azure. Кроме того, существует протокол удаленного отображения VirtualBox (VRDP), используемый в реализации виртуальной машины VirtualBox компанией Oracle. Этот протокол совместим со всеми RDP-клиентами, включая клиент, поставляемый с Windows, но, в отличие от оригинального RDP, может быть настроен для приема незашифрованных соединений без защиты паролем, что может быть полезно в безопасных и доверенных сетях, таких как домашние или офисные локальные сети. По умолчанию сервер RDP от Microsoft отклоняет подключения от учетных записей пользователей с пустыми паролями (но это можно изменить с помощью редактора групповой политики). VRDP также предоставляет возможности внешней и гостевой авторизации. Неважно, какая операционная система установлена в качестве гостевой, поскольку VRDP реализован на уровне виртуальной машины (хоста), а не в гостевой системе. Для работы требуется проприетарный пакет расширений VirtualBox.
Патенты
Microsoft требует, чтобы сторонние реализации лицензировали соответствующие патенты RDP. По состоянию на февраль 2014 года степень соответствия этому требованию клиентами с открытым исходным кодом остаётся невыясненной.
Использование в киберпреступности
Исследователи в области безопасности сообщили, что киберпреступники продают скомпрометированные серверы RDP на подпольных форумах и в специализированных незаконных магазинах RDP. Эти скомпрометированные RDP могут использоваться как "плацдарм" для осуществления других видов мошенничества или для получения доступа к конфиденциальным личным или корпоративным данным. Кроме того, исследователи сообщают о случаях, когда киберпреступники используют RDP для непосредственной загрузки вредоносного ПО на компьютеры.