Релиз FreeRDP 2.0, свободной реализации протокола RDP

10 April

После семи лет разработки состоялся релиз проекта FreeRDP 2.0, предлагающего свободную реализацию протокола удалённого доступа к рабочему столу RDP (Remote Desktop Protocol), развиваемую на основе спецификаций Microsoft. Проект предоставляет библиотеку для интеграции поддержки RDP в сторонние приложения и клиента, который может применяться для удалённого подключения к рабочему столу Windows. Код проекта распространяется под лицензией Apache 2.0.

Прошлый стабильный выпуск проекта был сформирован в январе 2013 года, а тестирование ветки 2.0 началось в 2007 году. Для того чтобы в дальнейшем не затягивать разработку следующие выпуски будут развиваться в рамках rolling-модели, подразумевающей ежегодное формирование значительного релиза после стабилизации master-ветки и периодическую публикацию корректирующих обновлений. Значительные релизы будут поддерживаться два года - один год исправление ошибок и ещё в течение года только устранение уязвимостей.

Основные изменения:

  • Добавлена возможность работы в виде транзитного RDP-прокси;
  • Добавлена поддержка протокола MS-RA 2 (Remote Assistance Protocol);
  • Переработан код, связанный с поддержкой смарт-карт. Добавлена ранее отсутствующая функциональность и усилена проверка входных данных;
  • Добавлена опция "/cert", в которую сведена функциональность, ранее предоставляемая разрозненными опциями для обработки сертификатов (cert-ignore, cert-deny, cert-name, cert-tofu);
  • Прекращена поставка клиента на базе DirectFB, который остался без сопровождения;
  • Включено по умолчанию сглаживание шрифтов;
  • Добавлена поддержка системы самодостаточных пакетов Flatpack;
  • Для систем на базе Wayland при помощи libcairo реализован режим умного масштабирования;
  • Представлен API для масштабирования изображений при программной отрисовке;
  • Реализация компонента RAIL (Remote Applications Integrated Locally), позволяющего организовать удалённый доступ к отдельным окнам и индикаторам уведомлений, обновлена до спецификации 28.0;
  • Во время работы обеспечено определение поддержки сервером трансляции в формате H.264;
  • В команды "/gfx" и "/gfx-h264" добавлена опция "mask=<value>";
  • Проведено переформатирование исходных текстов;
  • Добавлена опция "/timeout" для настройки таймаута ожидания пакетов TCP ACK;
  • Устранены уязвимости CVE-2020-11521, CVE-2020-11522, CVE-2020-11523, CVE-2020-11524, CVE-2020-11525, CVE-2020-11526, среди которых имеются проблемы приводящие к записи в область памяти вне выделенного буфера при обработке поступающих извне данных. Кроме того, исправлено ещё 9 уязвимостей без CVE, в основном вызванных чтением из областей памяти вне выделенного буфера.