Михаил Бакаляров, Guardant: «Ломают не ключ, а приложение»

Руководитель департамента разработок и тестирования Guardant Компании «Актив» Михаил Бакаляров рассказал читателям «Системного администратора» о том, почему не нужно пользоваться самописными системами защиты, когда следует выбирать аппаратные ключи, а когда – программные? В чем сложность взлома ключа? И что делать, если возникает потребность забрать сетевую лицензию для работы удаленно?

Михаил Бакаляров, Guardant: «Ломают не ключ, а приложение»

Аппаратные ключи являются самым надежным инструментом для защиты от копирования

– Почему надо защищать софт не самописными системами, а с помощью профессиональных решений? Какие компоненты содержат профессиональные решения? Зачем вообще нужны ключи?

– Мы, как разработчики профессионального решения для лицензирования и защиты софта, безусловно, рекомендуем пользоваться именно готовыми решениями, а не заниматься разработкой своих собственных.

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

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

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

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

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

Безусловно, также в состав экосистемы должны входить компоненты для автоматической защиты приложений от реверс-инжиниринга (попросту протекторы). Благодаря им достигается высокий уровень защиты и не требуются дополнительные ресурсы для внедрения системы.

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

– В каком случае для защиты ПО стоит выбирать аппаратные ключи, а в каких программные?

– Не всегда аппаратный ключ является самым удобным с точки зрения дистрибуции софта. В некоторых случаях пересылка устройства требует времени, а работать нужно прямо здесь и сейчас.

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

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

– Как сегодня ломают софт? Где слабые места и как их защитить? Ваше кредо: «Ломают не ключ, а приложение». Почему нужно к этому стремиться? Какими способами? Как Guardant этого достиг? В чем сложность взлома ключа?

– Аппаратные ключи, безусловно, являются самым надежным инструментом для защиты от копирования. Но, к сожалению, а может быть и к счастью, не ломаемых защит в мире не существует.

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

Раньше можно было сделать универсальный эмулятор аппаратного ключа, перехватывая данные между ключом и usb-драйвером. Но эти времена давно ушли в прошлое. Сейчас мощность процессора внутри ключа выросла до такой степени, что стало возможным использовать криптографически стойкие алгоритмы для шифрования трафика непосредственно между защищенным приложением и ключом. Это свело на «нет» существование всех эмуляторов.

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

Взлом приложения упирается в защиту от реверс-инжиниринга, которую тоже очень сложно «раскрутить». И при выходе новой версии софта защита от реверс-инжиниринга обязательно обновится, потому что хороший протектор генерирует уникальную внутреннюю систему команд при каждой защите.

Еще стоит не забывать такую банальную вещь, что для взлома нужен физически хотя бы один электронный ключ, без наличия которого взлом попросту невозможен. Соответственно, разработчики софта могут отследить, кому была продана эта версия и заблокировать поддержку недобросовестному покупателю.

– Модель угроз и различие потребностей разработчиков софта. Как они влияют на выбор ключей?

– Решение, что выбрать: аппаратный ключ или программную лицензию, -зависит от многих факторов. Если все-таки критическим моментом является защита программного продукта, то мы рекомендуем выбирать аппаратные ключи. К неудобствам этого варианта можно отнести пересылку ключа и работу в облачных средах. Аппаратные ключи позволяют легко переносить лицензию, но они стоят дороже.

У программных ключей есть свое достоинство – их можно активировать быстро, удаленно, моментально доставить лицензию за тысячи километров. Можно использовать в облачных средах, где не работают аппаратные ключи. Можно их также переносить между двумя компьютерами, но в большинстве случаев это дополнительная операция, которую следует отнести к недостаткам программных ключей. Потому что она требует открепить лицензию от одного компьютера и перенести к другому компьютеру. Но в большинстве случаев программные ключи удобны.

Многим компаниям важно учитывать количество проданных копий программного продукта, изменять схемы лицензирования. Они предпочитают покупать программные лицензии, так как это уже готовое решение, включающее многие функции. И они готовы мириться с менее надежной защитой, чем в случае с аппаратными ключами, ради большего удобства.

Что хочется еще заметить про программные ключи? С точки зрения защиты ПО они имеют определенные плюсы, достаточно надежны, потому что привязываются к защищенному хранилищу на компьютере – эту папку нельзя раскопировать, ее можно только перемещать. Если ее скопировать, то ключ окажется неработоспособным. Вся работа с программным ключом защищена протектором от реверс-инжиниринга.

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

– А если нужно защитить ПО для российской операционной системы или встраиваемой системы (IoT)? Что у вас есть?

– Любая современная экосистема должна работать по умолчанию на трех операционных системах – Linux, Windows и macOS. Соответственно, эта опция у нас есть. Если же у кого-то стоит какой-нибудь мудреный ARM процессор или российский «Эльбрус», то у Guardant есть решение с открытым исходным кодом, которое позволяет собрать систему защиты под необходимую вам архитектуру.

– Как выбранная разработчиком система защиты софта может сказаться на пользователях этого софта? Что приходится им потом расхлебывать?

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

Например, программные лицензии позволяют осуществлять их перенос между двумя машинами. Если однажды системные администраторы установили лицензию, а сейчас у них стоит задача ее перенести, то это должно быть реализовано максимально удобно: в одном месте лицензию открепляешь, в другое место – переносишь. В наших решениях перенос можно сделать даже через интернет. Вы просто открепляете лицензию, сервис в интернете запоминает, откуда вы ее открепили, и на другой машине эта лицензия у вас появляется. Таким образом, мы максимально упростили перенос программных лицензий.

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

– Что бы вы посоветовали ИТ-специалисту при выборе электронных ключей для защиты софта от копирования?

– Сначала выбираем экосистему. Потом определяем, что необходимо для нее: аппаратный ключ или программная лицензия. Аппаратный ключ более надежен с точки зрения защиты, но в некоторых случаях не так удобен для пересылки. Программная лицензия в этом плане более удобная, гибкая, но менее защищенная.

Соответственно, когда мы определились с ключами, дальше мы выбираем схему лицензирования. У Guardant есть все основные схемы лицензирования. Вендор выбирает одну из них и приступает к продажам. В случае с программной защитой вендор может выписать лицензию, которая тут же становится доступна конечному пользователю. Другой вариант – вендор программирует аппаратный ключ и отправляет его покупателю.

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