Копирование без границ или передовые методики защиты CD

         

Основные концепции защиты


Главное свойство защиты — это надежность (не путать со стойкостью ко взлому). Защита должна уверенно работать на всем спектре программно-аппаратного обеспечения с заранее непредсказуемыми свойствами. Антиотладочные приемы следует использовать с большой осторожностью или не использовать вообще, поскольку от них слишком много проблем. К тому же защита должна быть проста в реализации и отладке. Например, если часть функционала вынесена в микроконтроллер, смонтированный на отдельной печатной плате, подключаемой через PCI-шину или COM/USB/LPT-порт, взлом становится не только нерентабельным, но и практически невозможным, конечно, при условии, что микроконтроллер не позволяет считывать ПЗУ (некоторые приемы аппаратного взлома можно найти на страничке Сергея Скоробогатого: http://www.cl.cam.ac.uk/~sps32/), однако, отладить такой комплекс будет намного сложнее, чем взломать, поэтому для практического применения он непригоден. В идеале, защита вообще не должна требовать никакого "внешнего" оборудования, а это значит, что ее код заведомо будет заведомо доступен для анализа и модификации.

Рисунок 1 электронный ключ…

Рисунок 2 …и его взлом, путем считывая содержимого EEPROM под микроскопом с увеличением 500х

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

Так же недопустимо привязываться к оборудованию, поскольку потребители очень не любят, когда ограничивают их свободу, к тому же, если стоимость защищенного комплекса составляет хотя бы 500$, хакеры могут клонировать весь компьютер целиком, особенно если это будут китайские хакеры (цены на оборудование в Азии намного ниже европейских). Наиболее популярным объектом привязки служит серийный номер жесткого диска и MAC-адрес сетевой карты, которые легко изменить (для жесткого диска можно воспользоваться комплексом PC-3000 от ACE Laboratory — www.acelab.ru, а для сетевой карты — утилитой ipconfig, запущенной из-под LINIX).
Остальные же характеристики "железа" еще менее уникальны и в пределах одной партии практически идентичны друг другу. К тому же, нельзя забывать про виртуальные машины (VMWare, Virtual PC и т. д.), привязка к которым лишена всякого смысла. Можно, конечно, распознать наличие виртуальной машины и отказаться работать под ней, только это не выход. Виртуальных машин существует огромное множество и каждая из них детектируется по-своему, к тому-то для большинства из них существуют специальные "патчи", предотвращающие детектирование. В общем, вложенные в защиту усилия, окажутся нерентабельными.

Привязываться можно только к носителю — дискете, лазерному или DVD-диску, карте FLASH-памяти и т. д. Это в наименьшей степени ущемляет права потребителей и практически не создает непреодолимых неудобств, к тому же, качественно защищенный носитель чрезвычайно трудно скопировать. Существует множество хакерских групп, специализирующихся на взломе программного кода, но очень немногие разбираются в устройстве носителей на профессиональном уровне.

Весь вопрос в том — какой носитель выбрать? Дискеты отбросим сразу. Их время уже прошло. DVD-диски только набирают силу и требовать обязательно наличия DVD привода на целевом компьютере по меньшей мере негуманно. Тоже самое относится и к FLASH-картам. Остается только CD. Вот к нему-то мы и будем привязываться.


Содержание раздела