Токены и удаленный рабочий стол (RDP подключение)

  • Автор:

RDP-token-crypto-000.png

Электронно-цифровая подпись (ЭЦП) и токены, как средство ее хранения, плотно вошли в нашу жизнь, трудно представить себе предприятие, где нет хотя бы одной подписи. Другая распространенная технология - это удаленный рабочий стол (RDP), это может быть как сервер терминалов, так и просто доступ к рабочему месту сотрудника. Вполне ожидаемы попытки использовать обе эти технологии совместно, где и начинаются проблемы. В большинстве своем они проистекают от непонимания того, что такое токен, для чего он нужен и как с ним правильно работать.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Если мы говорим о токенах применительно к ЭЦП, то их основная задача - безопасное хранение закрытого ключа. Компрометация закрытого ключа равносильна полной утере подписи, так как с его помощью любой желающий может совершать от вашего имени юридически значимые действия. Использование усиленной квалифицированной электронной подписи (УКЭП) равносильно нотариально заверенной собственноручной подписи владельца. Начиная с 2022 года УКЭП выдается ФНС в единственном экземпляре, тем самым завершив эпоху зоопарка подписей, когда одно и тоже лицо (юридическое или физическое) могло иметь кучу подписей от разных УЦ, каждая из которых использовалась для собственного сервиса.

Мы немного отклонились от темы. Но, благодаря этому отступлению можно понять, что ЭЦП - это очень важно и к ее безопасности следует относиться серьезно. Токены решают одну простую задачу - не допустить выход закрытого ключа за свои пределы. При любых криптографических операциях закрытый ключ не покидает пределов токена и не может быть просто так оттуда скопирован. В этом его основное отличие от таких хранилищ ЭЦП как флеш-карта или реестр, откуда ключи можно легко извлечь при наличии доступа.

Учитывая важность ЭЦП сложилась следующая парадигма - токен это индивидуальное аппаратное средство подписи и аутентификации, а сама идея удаленного доступа к нему идет вразрез со всеми представлениями о безопасности.

Начиная с Windows Vista при подключении к компьютеру при помощи RDP работа со смарт-картами и токенами, подключенными к удаленной машине невозможна.

Чтобы лучше разобраться в этом вопросе давайте проведем некоторые практические эксперименты. Мы будем использовать в них токены JaCarta, но это не имеет никакого значения, аналогично будут вести себя любые токены от любого производителя.

Подключим токен непосредственно к серверу терминалов и подключимся к нему интерактивно, т.е. через локальную консоль. В системе токен определяется как смарт-карта и устройство чтения смарт-карт.

RDP-token-crypto-001.pngРодное ПО также видит токен и сертификаты на нем:

RDP-token-crypto-002.pngА теперь подключимся к этому же серверу по RDP, нас ожидает совершенно иная картина, хотя Диспетчер устройств будет продолжать нам показывать присутствие токена в системе:

RDP-token-crypto-003.pngКак мы уже писали выше, из RDP-сессии доступ к токенам и смарт-картам, подключенным к удаленному устройству невозможен!

Если же мы подключим токен к локальному компьютеру и снова подключимся к удаленному серверу, то увидим, что ПО на сервере видит токен и может полноценно с ним работать. При этом на локальном компьютере не нужно устанавливать ПО для токена, если вы будете работать с ним только удаленно. Обратите внимание, что Диспетчер устройств не показывает подключенного к серверу устройства.

RDP-token-crypto-004.pngУ многих здесь может возникнуть вопрос: а безопасно ли это? Пробрасывать токен на сервер? Да, безопасно, потому что пробрасывается стандартное устройство смарт-карта и все последующее взаимодействие идет именно с этим устройством, а критически важная информация, такая как закрытый ключ, ни при каких обстоятельствах не покидает пределы токена.

А если пользователей несколько и у каждого свой токен со своей ЭЦП? Ничего страшного, система предоставляет эффективную изоляцию токена в пределах сеанса. Берем еще один токен, подключаем ко второму компьютеру и соединяемся с сервером, как мы и ожидали, в текущей сессии пользователь видит только свой ключ.

RDP-token-crypto-005.pngПоэтому единственный правильный вариант сочетания ЭЦП расположенной на токенах и удаленного рабочего стола (RDP) - это расположение токена на клиенте с последующим пробросом устройства смарт-карты на терминальный сервер. С настройками по умолчанию это происходит автоматически, в противном случае проверьте, что у вас разрешен проброс смарт-карт как на клиенте, так и на сервере.

RDP-token-crypto-006.pngНо иногда все-таки бывают задачи, которые требуют использовать токен удаленно, в этих случаях следует использовать иные средства удаленного доступа, предполагающие подключение к текущему консольному сеансу. Последнее условие важно, сеанс к которому вы будете подключаться должен быть создан на сервере локально, а не через удаленный доступ.

Потому что даже если мы запустим TeamViewer или аналогичное ПО в RDP-сеансе, то мы не увидим токена, а попытавшись закрыть удаленный сеанс потеряем с ним связь.

RDP-token-crypto-007.pngЕсли же мы выполним локальный вход на сервер и запустим в рамках этого сеанса средство удаленного доступа, то токен снова будет доступен.

RDP-token-crypto-008.pngКак видим, если понимать основные принципы работы токенов при RDP-подключении, то никаких сложностей по работе с ними нет. Если необходим удаленный доступ, то вместо RDP используем иные средства, позволяющие непосредственно подключаться к локальному сеансу. Ну и не забываем, что ЭЦП - это большая ответственность и вопросы безопасности должны стоять на первом месте.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments