Протокол remote desktop
- Робота підсистеми безпеки Remote Desktop
- Формат обміну службовою інформацією в RDP
- Уразливі місця сервера терміналів та шляхи їх усунення
- Підбір облікових записів користувачів по RDP протоколу (розробки компанії Positive Technologies в даній області)
В даний час основна конкурентна боротьба між Citrix і Microsoft розгорілася в області серверів додатків для малого і середнього бізнесу. Традиційно рішення на базі Terminal Services виграють в системах з не дуже великою кількістю однотипних серверів і подібних змін, в той час як Citrix Systems міцно влаштувалася на ринку складних і високопродуктивних систем. Конкуренція підігрівається випуском полегшених рішень для невеликих систем компанією Citrix і постійним розширенням функціоналу Terminal Services з боку Microsoft. [11]
Розглянемо переваги цих рішень.
Сильні сторони Terminal Services:
- Простота установки додатків для клієнтської частини сервера додатків
- Централізоване обслуговування сесій користувача
- Необхідність наявності ліцензії тільки на Terminal Services
Сильні сторони рішень Citrix:
- простота масштабування
- Зручність адміністрування та моніторингу
- Політика розмежування доступу
- Підтримка корпоративних продуктів сторонніх розробників (IBM WebSphere, BEA WebLogic)
Microsoft передбачає два режими використання протоколу RDP:
- для адміністрування (Remote administration mode)
- для доступу до сервера додатків (Terminal Server mode)
RDP в режимі адміністрування

RDP в режимі доступу до сервера терміналів

Даний режим доступний тільки в серверних версіях Windows. Кількість вилучених підключень в даному випадку не лімітується, але потрібно налаштування сервера ліцензій (License server) і його подальша активація. Сервер ліцензій може бути встановлений як на сервер терміналів, так і на окремий мережевий вузол. Можливість віддаленого доступу до сервера терміналів відкривається тільки після установки відповідних ліцензій на License server.
Remote Desktop є прикладним протоколом, що базуються на TCP. Після установки з'єднання на транспортному рівні инициализируется RDP- сесія, в рамках якої узгоджуються різні параметри передачі даних. Після успішного завершення фази ініціалізації сервер терміналів починає передавати клієнту графічний висновок і очікує вхідні дані від клавіатури і миші. В якості графічного виведення може виступати як точна копія графічного екрану, що передається як зображення, так і команди на отрисовку графічних примітивів (прямокутник, лінія, еліпс, текст і ін.). Передача виведення за допомогою примітивів є пріоритетною для протоколу RDP, так як значно економить трафік; а зображення передається лише в тому випадку, якщо інше неможливо з яких-небудь причин (не вдалося узгодити параметри передачі примітивів при установці RDP -сессіі). RDP- клієнт обробляє отримані команди і виводить зображення за допомогою своєї графічної підсистеми. Призначений для користувача введення за замовчуванням передається за допомогою скан-кодів клавіатури. Сигнал натискання і відпускання клавіші передається окремо за допомогою спеціального прапора. [1] [2]
RDP підтримує кілька віртуальних каналів в рамках одного з'єднання, які можуть використовуватися для забезпечення додаткового функціоналу:
- використання принтера або послідовного порту
- перенаправлення файлової системи
- підтримка роботи з буфером обміну
- використання аудіо- підсистеми
Характеристики віртуальних каналів узгоджуються на етапі встановлення з'єднання.
Забезпечення безпеки при використанні RDP

Специфікація протоколу RDP передбачає використання одного з двох підходів до забезпечення безпеки:
- Standard RDP Security (вбудована підсистема безпеки)
- Enhanced RDP Security (зовнішня підсистема безпеки)
При цьому підході аутентифікація, шифрування і забезпечення цілісності реалізується засобами, закладеними в RDP- протокол. [1]
аутентифікація
Аутентифікація сервера виконується наступним чином:
- При старті системи генерується пара RSA- ключів
- Створюється сертифікат (Proprietary Certificate) відкритого ключа
- Сертифікат підписується RSA- ключем, зашитим в операційну систему (будь-RDP-клієнт містить відкритий ключ даного вбудованого RSA- ключа). [12]
- Клієнт підключається до сервера терміналів і отримує Proprietary Certificate
- Клієнт перевіряє сертифікат і отримує відкритий ключ сервера (даний ключ використовується в подальшому для узгодження параметрів шифрування)
Аутентифікація клієнта проводиться при введенні імені користувача та пароля.
шифрування
В якості алгоритму шифрування обраний потоковий шифр RC4. Залежно від версії операційної системи доступні різні довжини ключа від 40 до 168 біт.
Максимальна довжина ключа для операційних систем Winodws:
При установці з'єднання після узгодження довжини генерується два різних ключа: для шифрування даних від клієнта і від сервера.
цілісність
Цілісність повідомлення досягається застосуванням алгоритму генерації MAC (Message Authentication Code) на базі алгоритмів MD5 і SHA1.
В даному підході використовуються зовнішні модулі забезпечення безпеки:
При використанні TLS сертифікат сервера можна генерувати засобами Terminal Sercives або вибирати існуючий сертифікат зі сховища Windows. [13] [16]
Протокол CredSSP є поєднання функціоналу TLS, Kerberos і NTLM.
Розглянемо основні переваги протоколу CredSSP:
При використанні RDP для доступу до додатків в режимі тонкого клієнта потрібно налаштування спеціалізованого сервера ліцензій.

Постійні клієнтські ліцензії можуть бути встановлені на сервер тільки після проходження процедури активації, до її проходження можлива видача тимчасових ліцензій, лімітованих за терміном дії. Після проходження активації сервера ліцензій надається цифровий сертифікат, що підтверджує його приналежність і справжність. Використовуючи цей сертифікат, сервер ліцензій може здійснювати наступні транзакції з базою даних Microsoft Clearinghouse і приймати постійні клієнтські ліцензії для сервера терміналів. [6]
Види клієнтських ліцензій:
- тимчасова ліцензія (Temporary Terminal Server CAL)
- ліцензія «на пристрій» (Device Terminal Server CAL)
- ліцензія «на користувача» (User Terminal Server CAL)
- ліцензія для зовнішніх користувачів (External Terminal Server Connector)
Даний вид ліцензії видається клієнту при першому підключенні до сервера терміналів, термін дії ліцензії 90 днів. При успішному вході клієнт продовжує працювати з тимчасової ліцензією, а при наступному підключенні сервер терміналів пробує замінити тимчасову ліцензію постійної, при її наявності в сховищі.
Ліцензія «на пристрій»
Ця ліцензія видається для кожного фізичного пристрою, що підключається до сервера додатки. Термін дії ліцензії встановлюється випадковим чином в проміжку від 52 до 89 днів. За 7 днів до закінчення терміну дії сервер терміналів намагається оновити ліцензію з сервера ліцензій при кожному новому підключенні клієнта.
Ліцензія «на користувача»
Ліцензування «на користувача» забезпечує додаткову гнучкість, дозволяючи користувачам підключатися з різних пристроїв. У поточній реалізації Terminal Services немає засобів контролю використання призначені для користувача ліцензій, тобто кількість доступних ліцензій на сервері ліцензій не зменшується при підключенні нових користувачів. Використання недостатньої кількості ліцензій для клієнтських підключень порушує ліцензійну угоду з компанією Microsoft. Щоб одночасно використовувати на одному сервері терміналів клієнтські ліцензії для пристроїв і для користувачів, сервер повинен бути налаштований для роботи в режимі ліцензування «на користувача».
Ліцензія для зовнішніх користувачів
Це спеціальний вид ліцензії, призначений для підключення зовнішніх користувачів до корпоративного сервера терміналів. Дана ліцензія не накладає обмежень на кількість підключень, однак, згідно з призначеною для користувача угодою (EULA), сервер терміналів для зовнішніх підключень повинен бути виділеним, що не допускає його використання для обслуговування сесій від корпоративних користувачів. Через високу ціну даний вид ліцензії не отримав широкого розповсюдження.
Для сервера ліцензій може бути встановлена одна з двох ролей:
- Сервер ліцензій для домену або робочої групи (Domain or Workgroup License server)
- Сервер ліцензій підприємства (Entire Enterprise License Server)
Ролі відрізняються способом виявлення сервера ліцензій: при використанні ролі Enterprise термінальний сервер виконує пошук сервера ліцензії за каталогом ActiveDirectory, в іншому випадку пошук виконується за допомогою широкомовного NetBIOS- запиту. Кожен знайдений сервер перевіряється на коректність за допомогою RPC-запит. [8] [9]
Рішення для серверів додатків активно просуваються компанією Microsoft, розширюється функціонал, вводяться додаткові модулі. Найбільший розвиток отримали технології, що спрощують установку додатків і компоненти, що відповідають за роботу сервера терміналів в глобальних мережах. [5]
- Terminal Services Printing - дозволяє використовувати принтер клієнта для друку з додатків на сервері терміналів.
- Terminal Services RemoteApp - забезпечує доступ до будь-якій програмі через службу терміналів. Для користувача в даному випадку сервер терміналів стає абсолютно прозорим.
- Terminal Services Web Access - дозволяє клієнтам підключатися до програм RemoteApp за допомогою звичайного браузера. У ролі сполучної ланки для RemoteApp виступає Web-сервер.
- Terminal Services Gateway - дана технологія організовує роботу RDP поверх встановленого HTTPS- з'єднання. TS Gateway дає можливість віддаленим користувачам підключатися до сервера додатків через регіональні мережі або Internet з використанням безпечного SSL- тунелю і з мінімальною налаштуванням мережевих пристроїв.
- Terminal Services Session Broker - дозволяє організовувати підключення користувачів до серверних платформ, які використовують балансування мережевого навантаження.