| Как только разработка компьютерных программ взошла на коммерческие рельсы, появилась надобность в защите программистских творений. Не хотелось бы тратить время на рассуждения о вреде софтверного пиратства, но от него мучаются все: сами разработчики, каким оно мешает извлекать прибыль из своего труда, общие клиенты, для которых использование нелицензионного софта чревато проблемами с правоохранительными аппаратами и прочими неприятностями, да и само государство, которое недополучает налоги. Но наиболее заинтересованной сторонкой в пущенном вопросе все-таки остаются разработчики программного снабжения. Чтобы снизить наносимый пиратами ущерб и тем самым поручиться успешность развития своей компании, им приводится выбирать наиболее эффективный вид защиты, который пусть и не даст совершенную гарантию от взлома, но, тем не менее, позволит реализовать программу на законном рынке и успеть получить барыш от этой реализации. С течением времени, технологии защиты программ приобретали самые разные формы: серийные номера и ключевые файлы, активации по телефону или через интернет, защита с поддержкой аппаратных электронных ключей. Последний вид защиты до сих пор пользуется громадной известностью у разработчиков, создающих продукты для корпоративного рынка. В этой статье речь уродится об относительно новом для российского рынка способе защиты программ – электронных источниках производства компании 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 рублевок за один ключ в зависимости от свойств и вероятностей конкретной модели.
Источник: http://www.computerra.ru/print/focus/358613/ |