Введение

Электронное устройство защиты программного обеспечения

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

Этимология

В словаре Merriam-Webster указано, что "первое зафиксированное употребление термина 'dongle'" относится к 1981 году, а его этимология, возможно, является видоизменением слова "dangle". Dongle быстро эволюционировали в активные устройства, содержащие последовательный приемопередатчик (UART) и даже микропроцессор для обработки транзакций с хост-компьютером. В последующих версиях был принят интерфейс USB, который стал предпочтительнее последовательного или параллельного интерфейса. В 1992 году в рекламе Rainbow Technologies утверждалось, что слово "dongle" произошло от имени "Дон Галл". Несмотря на то, что это не соответствует действительности, это породило городской миф.

Использование

Усилия по внедрению защиты от копирования с помощью донглов на рынке массового программного обеспечения встретили сильное сопротивление со стороны пользователей. Такая защита от копирования чаще всего используется в очень дорогих программных пакетах и специализированном программном обеспечении, например, в программах CAD/CAM, программном обеспечении для прошивки мобильных телефонов/отладчиках JTAG, программном обеспечении MICROS Systems для индустрии гостеприимства и специализированной розничной торговли, приложениях для цифровых аудио рабочих станций и некоторых пакетах памяти переводов. В таких областях, как допечатная подготовка и печатное программное обеспечение, донгл кодируется уникальным лицензионным ключом для каждого пользователя, который активирует определенные функции в целевом приложении. Это форма жесткого лицензионного контроля, позволяющая поставщику привязать клиента к своим продуктам и взимать за них более высокую плату, чем если бы защита отсутствовала. Примером может служить схема лицензирования Kodak Prinergy: при продаже компьютера для вывода на печатную форму клиенту стоимость лицензии Prinergy предоставляется отдельно, а базовая цена включает лишь минимальный набор лицензий, необходимых для вывода работы на устройство. USB-донглы также являются важной частью аудиопроизводственных и редакторских систем Steinberg, таких как Cubase, WaveLab, Hypersonic, HALion и другие. Донгл, используемый в продуктах Steinberg, также известен как Steinberg Key. Steinberg Key можно приобрести отдельно от соответствующих приложений и обычно поставляется в комплекте с приложением "Syncrosoft License Control Center", которое совместимо как с Mac OS X, так и с Windows. Некоторые разработчики программного обеспечения используют традиционные USB-накопители в качестве лицензионных донглов, содержащих аппаратные серийные номера в сочетании с сохраненными идентификаторами устройства, которые обычно сложно изменить конечному пользователю. Разработчик также может использовать донгл для хранения пользовательских настроек или даже полной "портативной" версии приложения. Не все USB-накопители подходят для этой цели, поскольку не все производители устанавливают уникальные серийные номера в свои устройства. Хотя такая средняя степень защиты может отпугнуть случайного хакера, отсутствие процессорного ядра в донгле для аутентификации данных, шифрования/дешифрования и выполнения недоступного двоичного кода делает такой пассивный донгл непригодным для использования с программным обеспечением, кроме самого дешевого. Более простой и еще менее безопасный вариант – использовать неразмеченное или нераспределенное пространство на донгле для хранения лицензионных данных. Обычные USB-накопители относительно недороги по сравнению с выделенными устройствами безопасности, но чтение и хранение данных на флеш-накопителе легко перехватить, изменить и обойти.

Проблемы

Есть потенциальные недостатки в реализации протокола между донглом и программным обеспечением с контролем копирования. Например, простая реализация может определить функцию для проверки наличия донгла, возвращающую "true" или "false" в зависимости от результата, но требование наличия донгла может быть легко обойдено путем модификации программного обеспечения, чтобы оно всегда возвращало "true". Современные донглы включают в себя встроенное надежное шифрование и используют технологии производства, разработанные для противодействия обратной разработке. Типичные донглы теперь также содержат энергонезависимую память — важные части программного обеспечения могут фактически храниться и выполняться непосредственно на донгле. Таким образом, донглы превратились в защищенные криптопроцессоры, выполняющие программные инструкции, которые могут быть переданы в криптопроцессор только в зашифрованном виде. Изначальный защищенный криптопроцессор был разработан для защиты программного обеспечения персональных компьютеров от копирования (см. патент США № 4,168,396 от 18 сентября 1979 г.) с целью обеспечения более высокого уровня безопасности, чем могли обеспечить донглы того времени. См. также шифрование шины. Аппаратное клонирование, при котором донгл эмулируется драйвером устройства, также представляет угрозу для традиционных донглов. Чтобы противостоять этому, некоторые производители донглов стали использовать продукты на основе смарт-карт, которые широко применяются в средах с высокими требованиями к безопасности, таких как военная и банковская сферы, в своих продуктах. Более современный и инновационный донгл разработан с использованием процесса переноса кода, который перемещает зашифрованные части программного кода поставщика или механизмы контроля лицензирования в защищенную аппаратную среду (например, операционную систему смарт-карты, упомянутую выше). Независимый поставщик программного обеспечения (ISV) может перенести тысячи строк важного программного кода в донгл. Кроме того, донглы подвергаются критике, поскольку, будучи аппаратными устройствами, они легко теряются и подвержены повреждениям, что потенциально увеличивает операционные расходы, такие как стоимость самого устройства и стоимость доставки.

Игровые приставки

Некоторые нелицензионные игры для игровых консолей (например, Super 3D Noah's Ark или Little Red Hood) использовали донглы для подключения к официально лицензированным картриджам ROM, чтобы обойти встроенный в консоль чип аутентификации. Некоторые устройства для ввода чит-кодов, такие как GameShark и Action Replay, также используют донглы. Обычно донгл подключается к слоту для карт памяти системы, и программное обеспечение, работающее с диска, не запускается, если донгл не обнаружен. Донгл также служит для хранения настроек и новых кодов, добавляемых пользователем или посредством официальных обновлений, поскольку диск, будучи только для чтения, не позволяет их сохранять. Некоторые донглы могут также функционировать как обычные карты памяти.