Ключ без права передачи: защита от пиратов с помощью Senselock
АрхивВ фокусеЧтобы снизить наносимый пиратами ущерб, софтверным компаниям приходится выбирать наиболее эффективный вид защиты, который позволит ей успеть получить прибыль от реализации продукта на рынке.
Как только разработка компьютерных программ встала на коммерческие рельсы, появилась потребность в защите программистских творений. Не хотелось бы тратить время на рассуждения о вреде софтверного пиратства, но от него страдают все: сами разработчики, которым оно мешает извлекать прибыль из своего труда, корпоративные клиенты, для которых использование нелицензионного софта чревато проблемами с правоохранительными органами и прочими неприятностями, да и само государство, которое недополучает налоги.
Но наиболее заинтересованной стороной в данном вопросе все-таки остаются разработчики программного обеспечения. Чтобы снизить наносимый пиратами ущерб и тем самым гарантировать успешность развития своей компании, им приходится выбирать наиболее эффективный вид защиты, который пусть и не даст стопроцентную гарантию от взлома, но, тем не менее, позволит реализовать программу на легальном рынке и успеть получить прибыль от этой реализации.
С течением времени, технологии защиты программ приобретали самые различные формы: серийные номера и ключевые файлы, активации по телефону или через интернет, защита с помощью аппаратных электронных ключей. Последний вид защиты до сих пор пользуется огромной популярностью у разработчиков, создающих продукты для корпоративного рынка. В этой статье речь пойдет об относительно новом для российского рынка способе защиты программ – электронных ключах производства компании Senselock.
Обычные электронные ключи, до сих пор используемые большинством разработчиков, позволяют осуществлять две операции: чтение и запись памяти, а также шифрование и дешифрование данных. Первую операцию, как вы понимаете, взломщики могут эмулировать очень легко, но и вторая, как правило, особой трудности для них тоже не представляет.
Некоторым препятствием для взлома могут являться функции шифрования, используемые в электронных ключах. Если взломщик не знает их, то он не может их полноценно эмулировать. Однако обходной путь известен уже очень давно. Злоумышленник может составить таблицу всех используемых программой запросов к этим функциям и всех ответов на эти вопросы, а затем поместить эту таблицу в эмулятор. В большинстве случаев такой подход неплохо срабатывает. Откуда же берутся правильные ответы? Как правило, из самой программы, ведь она рано или поздно должна получить их для сравнения с "правильным" вариантом или просто использования. Во многих случаях в качестве источника ответов используется сам ключ.
Постепенно взломщики проанализировали используемые функции шифрования или прочитали оригинальное содержимое ключей и вычислили их алгоритмы (Aladdin HASP-3 и HASP-4, Sentinel SuperPRO, Guardant Stealth I и др.), что сделало возможным создание полных эмуляторов для этих ключей.
Как рассказали нам представители компании "Секьюлэб", которая занимается дистрибуцией решений Senselock в России, в электронных ключах SenseLock использован совершенно иной подход. Если раньше защищаемая программа лишь периодически обращалась к электронному ключу, чтобы проверить его наличие, то теперь она частично выполняется непосредственно в этом ключе.
Как это работает? Программист выбирает участки кода, без которых программа гарантированно не будет работать корректно, а также те, которые необходимо надежно спрятать от изучения (например, конкурентами). После этого он переписывает эти участки кода на язык С и создает исполняемый модуль специальным компилятором. Результат помещается в память электронного ключа, а в коде программы, на том месте, где эти участки находились ранее, добавляются запросы к электронному ключу со всеми необходимыми параметрами.
Поскольку часть программы теперь выполняется внутри электронного ключа, то составить таблицу правильных запросов и ответов более не представляется возможным. Все запросы и ответы теперь зависят от данных, используемых каждым отдельным пользователем в программе, и программа вообще не хранит "правильных" ответов для сравнения, они просто используются программой в дальнейших вычислениях. Таким образом, полноценная и корректная работа программы без электронного ключа становится попросту невозможной. Вдобавок, в отличие от старых обычных ключей, где алгоритм шифрования был один на всех и отличался лишь значением, которым он инициализировался, здесь каждый разработчик закладывает в ключ собственные алгоритмы, известные лишь ему.
Сами электронные ключи SenseLock выполнены на основе высокозащищенных чипов смарт-карт, прошедших сертификацию EAL5+, что надежно защищает их от считывания содержимого на аппаратном уровне, как это было с некоторыми электронными ключами ранее. Полный доступ к ключам обеспечивается 24-байтным ПИН-кодом, защищенным от перебора. После пятнадцати неудачных попыток авторизоваться ключ полностью блокируется и не подлежит разблокировке. Этот ПИН-код каждый разработчик задает самостоятельно.
Стоит упомянуть и о наличии модели со встроенными часами реального времени и собственным элементом питания (литиевая батарейка). Время и дата часов задаются при производстве ключа и возможность внесения каких-либо изменений в их показания как у разработчиков, так у конечных пользователей, полностью отсутствуют. Текущее значение часов может быть только считано, но не изменено. В то же время, в одной из самых распространенных моделей обычных ключей с часами, их значение может быть изменено кем угодно, что делает использование таких ключей бессмысленным с точки зрения защиты.
Возможность создания системы надежного и безопасного удаленного обновления содержимого ключей SenseLock позволит разработчикам организовать безопасные продажи через дилерскую сеть, гарантировав отсутствие убытков в случае потери ключей, а также полностью исключив возможность мошенничества со стороны нечестных дилеров.
Можно представить и другие области, в которых ключи SenseLock способны найти применение. Например, создание на его основе средств авторизации доступа или использование в онлайновых играх для безопасного и надежного хранения профилей игроков.
В компании "Секьюлэб" уверяют, что если бы технологии защиты программного кода аналогичная SenseLock появилась в России не в 2007 году, а лет на десять раньше, то сегодня могла бы быть совершенно иная картина с уровнем пиратства программного обеспечения. В качестве примера они приводят Китай, где ключи Senselock продаются с 2002 года и уже сейчас занимают 80 процентов в своем рыночном сегменте.
Впрочем, пока в России совершенно другая ситуация, и на рынке средств защиты программ по прежнему доминируют продукты компаний Aladdin и "Актив". К сожалению, нам пока не удалось найти статистику взлома программных продуктов, защищенных тем или иным типом аппаратного электронного ключа. Да и вряд ли такая статистика существует, разве что можно посмотреть результаты поиска по сочетаниям названий электронных ключей и таких слов, как "эмулятор" и "взлом". Так что убедиться в эффективности того или иного метода все заинтересованные разработчики смогут только на практике.
Что же касается стоимости ключчей Senselock, то она не является столь уж заоблачной и составляет от 575 до 1250 рублей за один ключ в зависимости от свойств и возможностей конкретной модели.