Программное обеспечение все чаще используется на серверах приложений и под виртуальными машинами (ВМ). Цель — более эффективное использование вычислительных ресурсов, однократная установка и централизованная настройка приложений.
Сложные и ресурсоемкие приложения часто защищаются при помощи электронных ключей. Они распространяются единичными экземплярами, требуют надежной защиты и индивидуального сопровождения. Однако далеко не каждая ВМ позволяет использовать USB-интерфейс хостовой машины, и уж совсем редко встречается возможность подключения USB-устройств «тонкого» клиента.
Возникло желание поделиться мыслями о том, как обеспечить лицензирование приложений, защищенных электронными ключами, в подобной ситуации. Если физически электронный ключ один, то наиболее удобно подключить его непосредственно к виртуальной машине (если такая функциональность поддерживается). Но когда ключей несколько — может потребоваться подключение электронного ключа каждым пользователем непосредственно перед сеансом работы, а также «проброс» порта USB в виртуальную среду от каждого клиента.
В последних версиях наиболее известных виртуальных машин (таких как VmWare ESXi 4.1, Microsoft Hyper-V SP1, Oracle Virtual Box 4 и некоторых других) поддержка USB-устройств хостовой машины была реализована. Однако до недавнего времени такой поддержки не было, как нет сейчас практически нигде встроенной возможности «проброса» любых USB-устройств с «тонкого» клиента. Исключением является связка MS Hyper-V RemoteFX + RDP 7.1, в которой реализовано низкоуровневое перенаправление любых USB устройств. Однако RDP всех предыдущих версий позволяет подключать лишь сильно ограниченный спектр устройств, не включающий аппаратные ключи защиты, а для установки RemoteFX нужно специфическое аппаратное обеспечение.
Таким образом, для простоты рассуждений можно предположить, что ВМ не поддерживает устройств USB вообще.
Функциональность «проброса» USB-устройств по сети может быть реализована при помощи AnywhereUSB от компании Digi. Решение представляет собой программно-аппаратный комплекс, позволяющий в пределах локальной сети организовать доступ к USB-устройствам, которые непосредственно к нему подключаются. Из опыта обращения — решение является одним из наиболее стабильных, и так как USB-портов в нем несколько, то с одним устройством могут работать сразу несколько человек. Единственный очевидный недостаток — цена (стоимость порядка $300).
Существуют также полностью программные решения, позволяющие «подключать» по сети USB-интерфейс удаленной клиентской машины. В качестве примера можно привести разработку компании Incentives Pro — USB Redirector (стоимость лицензии от $60, есть Evaluation версия). Но использовать полностью только программные средства лучше с осторожностью, так как (на момент написания статьи) надежность многих из них при длительной работе оказалась сомнительной.
Есть и другой, возможно менее очевидный, способ — лицензирование защищенного приложения по локальной сети с использованием сетевых ключей Guardant. Их основными преимуществами являются возможности:
- использования электронного ключа и защищенного приложения на различных компьютерах;
- хранения нескольких лицензий на одном электронном ключе.
В нашей ситуации полезным оказывается именно первое: электронный ключ (с драйвером или без) и сервер лицензирования Guardant устанавливаются на доступном в пределах локальной сети компьютере. После этого защищенному приложению остается лишь указать IP-адрес этого компьютера (драйвер устанавливать не нужно) и можно работать.