Хочу представить общественности свою разработку – приложение для удаленного управления рабочим столом Aspia. Проект является полностью бесплатным и с открытым исходным кодом (GPL 3.0).
На данный момент реализованы следующие возможности:
- Удаленное управление рабочим столом
- Удаленный просмотр рабочего стола
- Передача файлов
- Адресная книга с поддержкой шифрования и мастер-паролем (XChaCha20+Poly1305, 256-битный ключ)
- Возможность создавать пользователей с индивидуальными правами
- Шифрование всей передаваемой по сети информации (XSalsa20+Poly1305)
Приложение является продолжением развития моего более старого проекта, который был нацелен на сбор информации о компьютере. В то время я обещал сетевую версию приложения.
Реализовывать одну лишь возможность сбора информации о компьютерах по сети мне показалось немного неправильно и недальновидно. Так появилась идея сделать полноценный инструмент, который будет включать удаленное управление и сбор/просмотр отчетов по компьютерам. Мне была нужна основа для сетевой версии и текущая версия является этой основой.
Приложение полностью переписано, код теперь написан на C++ с использованием фреймворка Qt. Для сериализации данных используется protobuf, для шифрования libsodium, для сжатия данных zlib-ng и libvpx.
К сожалению, тип сессии «Информация о системе» не вошел в этот релиз, но доступны другие интересные функции. Давайте рассмотрим их подробнее.
Управление пользователями
Вы можете создавать пользователей с различными правами доступа. Разграничение прав осуществляется по типам сессий. Возможно отключение аккаунта пользователя.

Адресная книга
Отдельного упоминания стоит адресная книга. Каждая адресная книга представляет собой документ, который может быть расположен там, где удобно пользователю.
Адресные книги открываются в приложении «Aspia Console» и могут быть зашифрованными и незашифрованными. При открытии зашифрованной адресной книги будет предложено ввести пароль:

После успешного ввода пароля адресная книга будет открыта:

В адресной книге вы можете управлять группами компьютеров, создавать компьютеры с индивидуальными настройками подключения и подключаться к ним.
Свойства компьютера:

Так же возможно «быстрое» подключение, без добавления компьютера в адресную книгу:

Управление рабочим столом
Окно управления рабочим столом мало отличается от других программ подобного рода.

Возможно изменение параметров сессии «на лету». На выбор есть 3 типа кодеков: VP9, VP8 и ZLIB.

VP8 отлично подходит для быстрых соединений, это полноценный видео-кодек. Он отлично справляется с воспроизведением видео, плавной прокруткой в браузерах, анимацией.
ZLIB хорошо подходит для относительно медленных соединений. Он позволяет указать глубину цвета и степень сжатия.
VP9 является экспериментальным. На данный момент он потребляет нерациональное количество ресурсов.
В параметрах сессии возможно отключить обмен буфером обмена и отправку изображения курсора мыши.
Для совсем медленных соединений (менее 256кбит/с) текущие кодеки подходят плохо, хотя работать возможно. Тут есть над чем поработать, но без создания нового кодека тут не обойтись. Было бы неплохо добавить в этот новый кодек кеширование графики, детектирование одноцветных областей (передавать значение цвета вместо передачи сжатого ZLIB прямоугольника) и некоторые другие возможности.
Передача файлов
Передача файлов так же не слишком отличается от программ-аналогов. Поддерживаются горячие клавиши, drag-and-drop.

Что ждать от следующей версии?
Одни из ключевых запланированных возможностей:
- Тип сессии «Информация о системе». Возможность просматривать информацию о оборудовании, приложениях, сетевых параметрах и операционной системе. Всю информацию будет возможно сохранить в файлы отчетов, как для отдельного компьютера, так и для выбранных из адресной книги.
- Тип сессии «Текстовый чат». Возможность вести текстовый чат с пользователем на удаленном компьютере.
- Возможность открытия сессий во вкладках консоли.
- Авторизация средствами Windows.
- Черные и белые списки
Планируется ли версия для других операционных систем?
К сожалению, я работаю над проектом один и у меня недостаточно свободного времени для поддержки других операционных систем.
Количество платформозависимого кода минимально, все сторонние библиотеки могут быть собраны для Linux/MacOS.
Если у вас есть желание заняться подобной версией, то вы можете присоединиться к проекту и сделать это.
Чем помочь проекту?
- Присоединиться к написанию кода. Круг решаемых задач очень разнообразный, работа найдется на любой вкус.
- Тестирование. От ошибок не застрахован никто. Чем быстрее возможные ошибки будут найдены, тем качественнее будет приложение.
- Если вы знаете другие языки, то можете перевести приложение на них.
- Оказать помощь с написанием документации.
- Поддержать проект материально. Проект бесплатный для пользователей, но расходы на него у меня все же имеются. Например, на электронную подпись. Позволить себе выпускать приложение без подписи я не могу.
Ссылки
→ Страница проекта на GitHub
→ Сайт проекта
Буду рад ответить на ваши вопросы, если таковые имеются.
Автор: lentin