klink0v (klink0v) wrote,
klink0v
klink0v

Categories:

Очередная пидерсия в Windows (SmartCard+RDP)

Вот сколько я работаю с виндой, столько её и костерю. И что ни каждый день, то новый повод. На этот раз грабли вылезли в службе смарт-карт (SmartCard).

Сперва небольшой исторический экскурс. Начиная с версии Windows Vista и соответствующих ей серверных систем (Server 2008 R1) мелкомягкие полностью переделали архитектуру работающих со смарт-картами компонентов. Это коснулось в том числе и драйверов.

В первый раз с "нововведениями" я столкнулся, когда попытался сделать для пользователей доступ в локальную сеть через OpenVPN в неинтерактивном режиме с аутентификацией по eToken-у. В Windows XP оно прекрасно работало, в Vista и семерке — перестало. Совместно с аладдиновскими разработчиками причина тому была найдена. В той самой пресловутой "новой архитектуре" системные службы (и вообще все что выполняется не из контекста пользователя) больше не могут общаться с драйверами eToken в PKI-режиме, а драйвера режима ядра в принципе не умеют однофакторную (то есть без ввода пароля на токен) аутентификацию. Надо ли разъяснять, что в неинтерактивном режиме пароль вводить как бе и некому? Вот так было работающее отлаженное решение -> не стало решения.

Теперь я столкнулся с "усовершенствованиями" ещё раз, во всей их красе. Поводом стала ситуация, когда некоторые очень кривые криптопродукты (самый красочный пример — BSS) просто отвратительно работают со смарт-картами в RDP-сеансах. Проще говоря, дико тормозят и тупят. И это заметил не я один. Но поскольку дать [censored] рукожопым программистам из BSS я не в состоянии и отказаться от использования их продуктов — тоже, решил искать обходные пути. Например, редиректить токен на терминал-сервер не встроенным в RDP-клиента способом, а сторонним софтом, который на низком уровне заворачивает USB-шину в Ethernet. Ха-ха, не тут-то было!

Внезапно я узнал, что терминал-сервер так устроен, что локально подключенные к серверу смарт-карты в RDP-сеансах не доступны by design. То есть в самой WinSCard.dll, через которую проходят все вызовы API-функций работы со смарт-картами есть однозначное логическое ветвление. Если вызов приходит из нулевого сеанса (RDP с ключем "/admin", локально залогиненный пользователь, VNC или Radmin и т.д.), то в этой сессии доступны локально подключенные к серверу токены. В противном же случае (если номер RDP-сеанса ненулевой), то возможно работать только со смарт-картами RDP-клиента и только из того же самого сеанса. Пруф.

И дошло до того, что некоторые народные умельцы начали самостоятельно отлаживать и патчить пресловутую WinSCard.dll для того, чтобы можно было работать с физически подключенными к серверу токенами из RDP-сеанса (начало, продолжение). Но это ж онанизм и извращение, согласитесь. Особенно в корпоративных средах.

А на аладдиновских форумах регулярно всплывают вопросы "ой, а почему у меня не работает?" (раз, два).

Вот же "доулучшались", черти мелкомягкие. И чего у них зазудило, спрашивается? Хотели как лучше, а получилось как всегда?

Subscribe

  • ОколоITшный дыбр #91

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

  • Juniperобсирание, серия 21

    Как всегда. Когда пытаешься сделать на этих ждуниперах что-нибудь хоть мало-мальски серьезное... Выяснилось, что BFD у них валится от малейшего…

  • ОколоITшный дыбр #90

    ... Сбермобайл за каким-то лядом решил подключать клиентов к проводному интернету руками Ростелекома. Как-то странно-непонятно. От последнего и…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 15 comments

  • ОколоITшный дыбр #91

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

  • Juniperобсирание, серия 21

    Как всегда. Когда пытаешься сделать на этих ждуниперах что-нибудь хоть мало-мальски серьезное... Выяснилось, что BFD у них валится от малейшего…

  • ОколоITшный дыбр #90

    ... Сбермобайл за каким-то лядом решил подключать клиентов к проводному интернету руками Ростелекома. Как-то странно-непонятно. От последнего и…