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

       

Как работает электронный ключ?


Блок логики представляет собой устройство, которое генерирует значения некоторой функции: f(x)=y. Значения подаваемые на вход (x) каким-либо образом влияют на выход (y) и таким образом происходит "привязка" к ключу. То есть программа, через специальный код (API) посылает в ключ некоторое число и проверяет ответное значение. Если оно совпадает - то программа работает дальше, если нет - соответственно или не работает, или переходит в демо-режим. Функции, выполняемые в блоке логики могут быть взаимообратными (то есть, f(x)=y, f(y)=x), а могут и не быть таковыми.

Обычно встречаются 3 вида блоков логики:

  • Основанные на логической матрице (заказной ASIC-чип, Application Specific Integrated Circuit)
  • Основанные на собственном микропроцессоре (заказной MCU-чип)
  • Основанные на готовом микропроцессоре (PIC-чип)
  • Первый вид логики отличается тем, что очень прост и дешев в изготовлении. Однако, вид функции генерируемой эти видом логики (Я имею ввиду "чистую" функцию, возвращаемую ключом. То, что возвращается программе из API ключа - далеко не то же самое, что вернул сам ключ) очень прост и понятен. Потенциально, такие ключи очень опасны тем, что профессиональный хакер (конкретно - кракер, от англ. "cracker" - человек, занимающийся взломом программного обеспечения), "раскусив" ключ может с легкостью обмануть любую часть программы и, таким образом, "отвязать" ее от ключа (попросту говоря - сломать). Однако, с аппаратной точки зрения такой ключ очень стоек, так как использует свой собственный заказной чип и его исследование возможно только с помощью специальных средств (электронный микроскоп и т.д.).

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

    Третий вид логики - основанные на готовом микропроцессоре (например, на PIC 16X8X фирмы Microchip Technology Inc.) дают невысокую себестоимость и высокую надежность с программной точки зрения. Однако, применение стандартного микрочипа делает возможным и его стандартное изучение. Мне известны случаи "снятия" битов защиты от чтения с такого микроконтроллера и чтение (с последующим изучением) всей микропрограммы, что дает еще и возможность так называемого аппаратного "клонирования" ключей. То есть покупки чистого PIC-а и зашивки в него той же микропрограммы и получение 100%-го аналога конкретного ключа.

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



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