1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | Оглавление текущего номера /150, 1996 г./ | Бонус | Поиск  

Продукты

Электронные ключи

Сергей Груздев


© 2004, Еженедельник «Компьютерра» | http://www.computerra.ru/offline
Этого материала на сайте "Компьютерры", к сожалению, нет

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

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

С точки зрения электроники

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

Сердце ключа

"Умственные" и физические возможности ключа во многом определяются той базой, на которой собран ключ. Современные ключи собирают на базе EEPROM-памяти, на базе заказных ASIC-чипов (с памятью или без памяти), на базе микропроцессоров.

Ключи на базе EEPROM-микросхемы

Это самые простые и недорогие ключи, выпускаемые для параллельного порта Centronics. Для обеспечения каскадирования дополнительно используется мультиплексор. Каскадно могут работать обычно не более трех ключей. Из-за типовых схемотехнических решений эти ключи имеют "прозрачность" только для принтеров, работающих в стандартном протоколе Centronics. Двунаправленный протокол, в котором работают современные лазерные и струйные принтеры (например, HPLJ-IV, HPLJ-V, Stylus-850), как правило, ими не поддерживается, что сильно ограничивает перспективы их использования.

Размер памяти ключа, доступной для чтения-записи, обычно составляет не более 126 байт. Часть этой памяти используется для унификации ключа. В ней хранится некоторая служебная информация, тип ключа, идентификатор пользователя (Customer's code) и серийный номер ключа (ID-number). Код пользователя доступен только для чтения. Это достигается с помощью специальной процедуры программирования через дополнительный адаптер С помощью такого адаптера может быть и дальше "заперта" практически любая непрерывная область памяти ключа. Память в ключе организуется полями и требует дополнительной процедуры предварительного форматирования и структурирования. Запись в память ключа будет невозможна, если заранее не были правильно определены типы полей, их размеры и адреса Это создает ряд неудобств при выпуске новых версий программ или использовании уже имеющихся у пользователя ключей такого типа.

Нижний порог напряжения питания для микросхем памяти разных производителей составляет от 3 до 4 вольт. Разброс по питанию микросхем памяти и выходных характеристик современных портов (прежде всего нагрузочная способность) иногда приводят к самопроизвольному сбросу или перепрограммированию памяти. Иногда у таких ключей наблюдается эффект рассасывания памяти за счет стекания заряда. Другими словами, надежность работы такого ключа во многом определяется качеством параллельного порта и условиями программирования ключа. Ключи этого класса работают, как правило, тем хуже, чем лучше (быстрее и современнее) компьютер.

Ключи на базе ASIC-чипа

Это, наверное, самый привлекательный тип электронных ключей, так как все особенности их функционирования закладываются на стадии проектирования так называемого ASIC-чипа (заказной интегральной микросхемы специального применения). Как правило, этот чип вбирает в себя весь интеллект и опыт работы огромного числа специалистов в области защиты, криптографии, микроэлектроники. Он имеет довольно сложную внутреннюю организацию и нетривиальные алгоритмы работы Логику работы такого чипа практически невозможно реализовать с помощью стандартных наборов микросхем PAL, GAL или PEEL. Такой чип практически невозможно воспроизвести, а содержащийся в его памяти микрокод – считать и расшифровать либо эмулировать.

Перед изготовлением ключа для конкретного заказчика сначала с помощью специальной аппаратуры программируется ASIC-чип. Как минимум в него заносится уникальный код, присвоенный заказчику, и, может быть, уникальный серийный номер изготавливаемого ключа Количество комбинаций для кода заказчика обычно составляет порядка 240-250. Эта информация будет доступна в дальнейшем только на чтение, и ее нельзя будет изменить никакими средствами. Другим, может быть, менее надежным способом является программирование готового ключа с "чистой" микросхемой. Такое программирование обычно тоже осуществляется с помощью специального адаптера или вставляемой в слот компьютера платы-программатора. Некоторые типы ASIC-чипов имеют блокировку доступа.

Минимальное рабочее напряжение ASIC-чипа обычно составляет не более 2-2,5 вольта, потребляемый ток – порядка 5/50 микроампер для "спящего"/активного режимов соответственно. Это является залогом надежной работы ключа на различных типах портов, в том числе и на "подсаженных".

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

ASIC-чип обычно реализует некоторую сложную функцию y=f(x), где х – данные, передаваемые ключу из программы, у – данные, возвращаемые ключом в программу, f(x) – функция преобразования входных данных в выходные.

Одной из разновидностей реализации функции f(x) является использование ASIC-чипа в качестве внешнего вычислителя (по отношению к процессору компьютера). Очевидно, что это делается не из стремления облегчить работу процессора компьютера или распараллелить вычислительный процесс, а для получения из ключа некоторой значащей информации, влияющей на ход выполнения программы, и для избавления от проверок на защиту.

Activator

Выполнен на базе запатентованного компанией Software Security ASIC-чипа, имеющего постоянную память (18 разрядов), однократно программируемую память (24 разряда) и реализующего некоторую функцию. Структурно функция реализуется с помощью восьми элементов: трех источников, четырех селекторов и фиксатора.

Счетчиками являются шестиразрядные регистры с диапазоном счета от 0 до 63, (начальные значения счетчиков устанавливаются при изготовлении чипа), могут работать на сложение и на вычитание. При достижении граничных условий (0 и 63) счетчиком вырабатывается выходной сигнал.

Селекторами являются шестиразрядные регистры, предназначенные для управления счетчиками. Операция инкрементации/декрементации на единицу выполняется счетчиком в том случае, когда на вход селектора подано значение, "прошитое" в него при изготовлении. Так же производится и изменение направления счета.

Фиксатор – это входной накапливающий регистр, который подает данные на вход всех селекторов при поступлении управляющей команды.

Сигнал на выходе формируется либо как логическое "И", либо как логическое "ИЛИ" от всех счетчиков.

Для использования ключей Activator программист должен смоделировать и запрограммировать алгоритм управления счетчиками и селекторами в виде команд обращения к параллельному порту и позаботиться об их маскировании.

Компания Software Security имеет представительство в Беларуси (г. Минск).

Sentinel Pro, NetSentinel Pro, Sentinel SuperPro

Эти ключи выполнены на базе мощного ASIC-чипа – гордости компании Rainbow Technologies. Каждый чип имеет уникальный код, присваиваемый производителю программного обеспечения, и реализует уникальный алгоритм преобразования входной последовательности данных в выходную. Ключи подключаются к параллельному порту, "прозрачны" для любых устройств, могут работать каскадно.

Компания Rainbow не имеет дистрибьютора в СНГ.

HardLock

ASIC-чип компании FAST Electronic производится по CMOS-технологии, содержит порядка 1200 вентилей и обеспечивает диапазон уникальных кодов до 248. Чип программируется только с использованием специальной платы Crypto Programmer Card (поставляется отдельно и стоит порядка 150 немецких марок). Эта плата вставляется в слот компьютера и позволяет записывать или повторно перезаписывать в чип уникальный код пользователя и настраивать алгоритм шифрования. Время программирования составляет порядка 1 секунды, напряжение программирования – 18 вольт. Используемый в чипе алгоритм шифрования не может быть воспроизведен с помощью стандартных программируемых логических матриц и т. п. Шифрование данных производится блоками по 64 бита.

Ключ HardLock E-Y-E имеет 128 байт памяти. Из них 96 байт программируется только с использованием платы Crypto Programmer Card и доступны из программ только на чтение. Остальные 32 байта памяти ключа могут использоваться из программы на чтение-запись.

Компания FAST Electronic не имеет дистрибьютора в СНГ.

HASP

На этапе изготовления ASIC-чипа для ключей семейства HASP компанией Aladdin Knowledge Systems определяется идентификационный код пользователя, уникальный серийный номер чипа и уникальная функция f(x). Далее в процессе эксплуатации чипа или ключа эта информация в нем не может быть изменена никакими средствами. Реализуемая чипом функция является генератором последовательности, где на каждое целое беззнаковое входное число из диапазона от 0 до 64К возвращается четыре значения. Эти значения постоянны для одной партии ключей. Использование механизма генерации чисел качественно усложняет задачу взлома программ, так как ключевая информация (пароли, шифровальные ключи, условия переходов, ветвлений программы или часть самого кода и т.д.) не хранится ни в теле самой программы, ни в памяти ключа ни в открытом, ни в зашифрованном виде. В этом случае из программы может быть исключено самое уязвимое звено любой защиты – условие проверки элемента защиты.

Ключи HASP – самые быстрые и имеют самую большую память – до 4 Кбит. Для параллельного порта выпускаются в различных модификациях – без памяти, с 1 или 4 Кбит памяти. Для организации сложных схем маркетинга программ, использующих функцию времени, выпускаются ключи TimeHASP. Они содержат дополнительный чип часов и имеют встроенный автономный источник питания (литиевая батарейка). Срок службы подобных ключей обычно составляет не менее 10 лет.

 

Для подключения к последовательному порту RS-232 компания Aladdin выпускает ключ SerialHASP (две модификации: для PC и NEC). Ключ выполнен на базе ASIC-чипа, имеет 128 байт энергонезависимой памяти, доступной для чтения-записи, прозрачен для периферийных устройств, подключаемых через него. В корпусе установлен микропереключатель для управления активными линиями, по которым идет обмен с ключом. Это может пригодиться в том случае, когда через ключ подключен, например, самописец или другой регистрирующий аппарат, который воспринимает обмен с ключом как шум.

Для компьютеров Amiga выпускается ключ AmigaHASP, также подключаемый к порту RS-232.

Компания Aladdin имеет отделение в Москве, дилеров в Санкт-Петербурге и на Украине.

Результаты тестирования ключей на базе ASIC-чипа

Национальная тестовая лаборатория США по испытаниям программного обеспечения (NSTL) в ноябре 1995 года провела сравнение лучших образцов электронных ключей. На тестирование были представлены образцы электронных ключей четырех ведущих компаний: Aladdin Knowledge Systems Ltd., Rainbow Technologies Inc., Glenco Engineering Inc./FAST Electronic GmbH и Software Security Inc.

Сравнение проводилось по следующим параметрам:

 – простота освоения;

 – простота эксплуатации;

 – совместимость с аппаратным обеспечением;

 – общий спектр имеющихся возможностей.

Детальное исследование степени защиты проводилось для ключей, работающих с параллельными портами PC-совместимых компьютеров для 16-битных Windows и DOS.

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

 

Система HASP компании Aladdin получила самый высокий конечный рейтинг. Это обусловлено такими преимуществами HASP, как простота использования утилит защиты, установки оболочек защиты для DOS и Windows-приложений, легкость освоения, возможность шифрования кода через вызовы API, наличие TSR в качестве альтернативы библиотекам, система защиты структурным кодом (PCS) и поддержка широкого спектра операционных систем и сетевых сред.

Главным выводом комиссии является то, что продукция компании Aladdin сильнее своих конкурентов по многим параметрам, в том числе по степени обеспечиваемой защиты и по поддержке различных сред; продукция компании Glenco обладает менее сильными защитными параметрами и меньшим количеством поддерживаемых сред, а продукция компаний Rainbow и SSI является наиболее ограниченной в применении.

Копию отчета можно получить на BSS московского отделения компании Aladdin (тел. (095) 923 9588 14400 bps 20:00-9:00) или послав запрос по электронной почте aladdin@aladdin.msk.ru.

Ключи на базе ASIC-чипа:

Достоинства:

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

Недостатки:

сравнительно высокая цена;

относительная недоступность некоторых фирм-производителей на рынке СНГ или отсутствие технической поддержки.

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

 

Ключи на базе микропроцессора

Электронные ключи, выполненные на базе микропроцессора, как правило, предназначены для работы в открытых системах для защиты Unix-приложений. Обычно микропроцессорные ключи подключаются к последовательному порту RS-232/423 рабочей станции и поддерживают платформы IBM RS/6000, Sun, DEC Alpha, Silicon Graphics, HP, IBM PC и т.п.

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

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

Доступ к ключу защищается специальным паролем, назначаемым самим разработчиком программного обеспечения. Пароль, как правило, хранится в специальной привилегированной памяти ключа, доступ к которой ограничивается. Для хранения информации о номере версии программы, ключей доступа, шифрования, счетчиков и т.д. используется доступная для чтения-записи энергонезависимая электрически программируемая память ключа (EEPROM). Кроме того, некоторые модели ключей имеют (и предоставляют пользователю) RAM-память для временного хранения переменных, результатов некоторых вычислений и т.д. При отсоединении ключа от компьютера или при выключении компьютера содержимое этой памяти стирается.

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

Пример внутренней организации микропроцессорного ключа.

В качестве примера выбран ключ U-plug, разработанный компанией ????? microcomputers (сейчас этот ключ уже не выпускается).

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

В ключе U-plug аппаратно реализован NOES (New Data Encryption Standart) – стандарт шифрования с использованием уникального ключа.

Протокол: RS-232

BAUND: 9600 BPS, DATA: 8 data bits, STOP BIT: 2 stop bit, PARITY: none

Используемые линии: Txd(2), Rxd(3), DTR(20), GND(7)

Подключение: через стандартный 25-контактный разъем.

Алгоритм шифрования: NOES (New Data Encryption Standart) Длина шифровального ключа: 120 бит

Организация EEPROM-памяти:

 – блокировка (защита чтения/записи – 1 байт);

 – ключ шифрования (15 байт);

 – уникальный код пользователя (3 байта);

 – уникальный серийный номер (2 байта) – может быть изменен пользователем;

 – доступная для чтения/записи память (100 байт).

Ключ OpenHASP компании Aladdin Knowledge Systems

Этот ключ поддерживает протоколы RS-232/423, имеет 88 байт памяти, разделенной на три области: энергонезависимая память (64 байта), доступная из защищенного приложения для чтения/записи; привилегированная память (20 байт), доступная только разработчику программы; RAM – область для промежуточного или оперативного хранения данных (4 байта).

Ключи поставляются в "чистом" виде, значения некоторых ключевых параметров заданы "по умолчанию", но перед их использованием разработчик программного обеспечения должен произвести инициализацию ключа:

 – присвоить 8-байтный Batch-code, который будет служить кодом доступа к ключу OpenHASP;

 – назначить 4-байтный ключ шифрования протокола обмена ключа и защищенного им приложения;

 – задать 3 пароля для процедур обращения к ключу;

 – определить Core Number ключа для генерации уникальных кодов возврата в ответ на посылаемые ключу кодовые посылки Seed Code.

Уникальное значение ID Number программируется в процессе производства ключа и не может быть переопределено.

Микропроцессорные ключи:

Преимущества:

платформонезависимость; возможность аппаратной реализации функции шифрования; открытый интерфейс.

Недостатки:

очень высокая цена;

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

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

 

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

 


1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | Оглавление текущего номера /150, 1996 г./ | Бонус | Поиск  

© 2004, Издательский дом «Компьютерра» | http://www.computerra.ru
Телефон редакции: (095) 232-22-61
E-mail редакции: inform@computerra.ru