Results not found

По вашему запросу ничего не найдено

Попробуйте отредактировать запрос и поискать снова

HR-советы

Ключи для вашей программы

Article Thumbnail

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

Аппаратный ключ — это специальная микросхема, заключенная в корпусе и имеющая все необходимое для передачи данных через один из портов компьютера (LPT, COM, USB). Он взаимодействует с установленными в операционной системе драйверами и модулем защиты конкретного программного продукта, разрешая работу последнего. Аппаратные ключи имеют очень низкое энергопотребление, в результате чего их можно подключать к информационным портам без дополнительного питания. Обмен данными между микросхемой и компьютером происходит последовательно. Кроме того, аппаратные ключи работают «прозрачно», то есть к ним, как бы поверх, можно подключать обычные для данного порта устройства. Это очень важно. Согласитесь, было бы не очень-то хорошо, если бы ключ занял LPT-порт, на который вам нужно подключить принтер.

На сегодняшний день существует три вида аппаратных ключей — выполненных на микросхемах FLASH-памяти, на PIC-контроллерах или на заказных ASIC-чипах. Все они имеют свои достоинства и недостатки. Рассмотрим каждый из вариантов.

Ключи на основе FLASH-памяти

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

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

Ключи на основе PIC-котроллеров

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

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

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

Ключи на основе ASIC-чипов

В принципе, этот тип ключей очень похож на предыдущий. Единственная разница между ними — это то, что ASIC-чипы создаются специально, на заказ. В них на элементарном уровне задан алгоритм защиты программы. С одной стороны, это обеспечивает меньшую стоимость ASIC-чипов по сравнению с PIC-котроллерами. Но, естественно, при этом уменьшается и надежность аппаратных ключей. Ведь если злоумышленник сможет взломать алгоритм защиты, то разработчики ничего не смогут с этим сделать, поскольку, для того чтобы сменить алгоритм, им нужно будет разработать и выпустить новую партию микросхем, а потом произвести обмен все старых ключей на новые. Естественно, это практически нереально организовать. Кстати, на первый взгляд может показаться, что описанная ситуация чисто гипотетическая. Однако это не так. Например, довольно широко известен случай, когда некто создал эмулятор аппаратного ключа, выпущенного весьма известной компанией. И разработчики в этой ситуации ничего не смогли сделать.

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


Источник : hr-portal.ru