20.03.2024

Электронная цифровая подпись (ЭЦП) – что это такое, порядок получения и регистрации для физических и юридических лиц. Как работает электронная цифровая подпись


Где находится дверь

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

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

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

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

Работать с электронными «заглушками» можно как в локальном, так и в сетевом варианте. При использовании сетевого ключа нет необходимости устанавливать локальные ключи на каждое рабочее место. Лицензирование в данном случае осуществляется одним ключом с программного сервера, обрабатывающего запросы защищенных приложений. Например, если на сервер устанавливается ключ и обслуживающий его драйвер (небольшую программу, обслуживающую ключ, удобно регистрировать в Windows NT/2000/XP как сервис, запускаемый при загрузке, а в Windows 95/98/Me как резидентную программу), то любая удаленная программа может запросить с сервера лицензию и только в случае ее получения продолжить работу. Число лицензий для каждого ключа может быть специально задано, и в зависимости от того, на какое количество одновременно запущенных копий рассчитана приобретенная вами программа, она или запустится, или нет. При этом распределение лицензий, как правило, осуществляется по простому принципу: «один компьютер - одна лицензия». Это означает, что если на конкретном компьютере запущено несколько копий приложения, то на это будет отведена всего одна лицензия. Таким образом, здесь налагается ограничение на количество рабочих мест, с которых возможно одновременное использование программы.

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

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

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

Что такое электронный ключ

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

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

Исходя из аппаратной базы современные ключи можно подразделить на следующие типы:

  • с использованием микросхем энергонезависимой электрически перепрограммируемой памяти (EEPROM);
  • построенные на заказных конфигурациях ASIC (Application Specific Integrated Circuit);
  • с использованием чипов с памятью или без;
  • построенные на базе полнофункциональных микропроцессоров (микроконтроллеров).

По своему внешнему исполнению наиболее популярны ключи, выпускаемые в виде брелоков, для подключения к USB-портам.

Дополнительную информацию по устройству и эксплуатации ключей защиты можно найти на русском Web-сайте (http://www.aladdin.ru/) компании Aladdin Knowledge Systems (http://www.aks.com/) - разработчика системы защиты HASP.

Защита программного обеспечения и данных

аким образом можно защитить приложение при помощи электронного ключа?

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

Более сложные методы базируются на использовании специализированного API, которые поставляют производители электронных ключей разработчикам защищаемых ПО. Функции этого API предназначены для выполнения различных операций по взаимодействию программы с ключом: поиск нужного кода, чтение/запись памяти ключа, запуск аппаратных алгоритмов ключа и преобразование кода и данных приложения с их помощью.

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

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

Http://glasha.zap.to/ всем предлагаются эмуляторы ключей HASP).

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

КомпьютерПресс 3"2002

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

В современной электронной технике наибольшее применение находят транзисторные ключи.

Ключи на биполярных транзисторах . Простейшая схема транзисторного ключа (рис. 5.2, а) подобна схеме транзисторного усилителя, однако она отличается режимом работы транзистора. При работе в ключевом режиме рабочая точка транзистора может находиться только в двух положениях: в области отсечки (транзистор закрыт) и в области насыщения (транзистор открыт и насыщен). Такие ключи называют насыщенными транзисторными ключами. Иногда применяются ключи, в которых рабочая точка при открытом транзисторе находится в активной области (обычно вблизи области насыщения, но не достигает ее). Такие ключи называют ненасыщенными. Чаще применяются транзисторные насыщенные ключи, так как у них в состоянии «Включено» выходное напряжение имеет более низкий уровень и отличается большей стабильностью.

Рис. 5.2. Схемы транзисторного ключа (а) и характеристики (б),иллюстрирующие изменения режима при переходе ключа из закрытого состояния {точка А) в открытое (точка В)

Для обеспечения режима отсечки на вход ключа необходимо подать отрицательное напряжение
(или положительное дляp-n-p-транзистора).

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

Для перехода транзистора в режим насыщения на вход ключа необходимо подать такое положительное напряжение , при котором в цепи базы создается ток

где
- ток базы на границе между активным режимом и режимом насыщения (точка В на рис. 5.2, б).

Ток коллектора в режиме насыщения

.

В режиме насыщения коллекторное напряжение
остается положительным по отношению к эмиттеру, но имеет очень малое значение (десятые доли вольта для германиевых транзисторов и 1...1,5 В для кремниевых). Поэтому напряжение на коллекторном ЭДП оказывается отрицательным:

и он включается в прямом направлении.

Быстродействие электронного ключа зависит от времени включения и выключения.

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

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

Для уменьшения тока базы в режиме насыщения применяют ненасыщенные ключи, в которых между базой и коллектором включают диод Шоттки (рис. 5.3). Диод Шоттки имеет напряжение отпирания на 0,1...0,2 В меньше, чем напряжение насыщения коллекторного перехода, поэтому он открывается до наступления режима насыщения, и часть тока базы через открытый диод проходит в коллекторную цепь транзистора, предотвращая тем самым накопление в базе заряда неосновных носителей. Ненасыщенные ключи с диодом Шоттки широко применяются в ИМС. Это связано с тем, что изготовление диодов Шоттки на основе транзисторной структуры с помощью интегральной технологии не требует никаких дополнительных операций и не приводит к увеличению площади кристалла, занимаемой элементами ключа.

Рис. 5.3. Схема ключа с диодом Шоттки

Ключи на МДП-транзисторах . В ключах на полевых транзисторах (рис. 5.4) отсутствует такой недостаток, как накопление и рассасывание неосновных носителей, поэтому время переключения определяется зарядкой и перезарядкой междуэлектродных емкостей. Роль резистора могут выполнять полевые транзисторы. Это значительно облегчает технологию производства интегральных ключей на полевых транзисторах.

Рис. 5.4. Схемы электронных ключей на ПТ с p-n-затвором (а) и МДП-типа (б).

В ключах на МДП-транзисторах с индуцированным каналом (рис, 5.5) роль резистора выполняют транзисторы VТ1, а роль активного элемента - транзисторы VТ2. Транзисторы VТ2 имеют канал p-типа, а транзисторы VT1 - канал n-типа (рис. 5.5, а) или n-типа (рис. 5.5, б). Их передаточные характеристики показаны на рис. 5.6, а и 5.6, б соответственно. Графики напряжений, поясняющие работу ключей, представлены на рис. 5.7.

Рис. 5.5. Схемы электронных ключей на МДП-транзисторах с индуцированными каналами одинакового (а) и противоположного (б) типов электропроводности

Рис. 5.6. Передаточные характеристики МДП-транзисторов с индуцированными каналами различного типа электропроводности

Рис. 5.7. Графики изменений входного (а) и выходного (б) напряжений электронных ключей на МДП-транзисторах

При подаче на вход положительного напряжения транзисторы VТ2, имеющие канал p-типа, закрываются. Транзистор VТ1 первого ключа (рис. 5.5, а) открыт вследствие поданного на его затвор отрицательного напряжения смещения
. ТранзисторVТ1 второго ключа, имеющий канал n-типа (рис. 5.5, б), также оказывается открытым, так как его затвор соединен со входом, на котором действует положительное напряжение
. Сопротивления открытых транзисторовVT1 малы по сравнению с сопротивлением закрытых транзисторов VT2, и
.

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

5.4. Базовые логические элементы на биполярных структурах. В зависимости от компонентов, которые используются при построении ЛЭ, и способа соединения компонентов в пределах одного ЛЭ различают следующие типы ЛЭ, или типы логик:

диодно-транзисторная логика (ДТЛ);

транзисторно-транзисторная логика (ТТЛ);

эмиттерно-связанная логика (ЭСЛ);

инжекционно-интегральная логика (И 2 Л, ИИЛ);

логические элементы на МДП-транзисторах (КМДП).

Имеются и иные типы ЛЭ. Одни из них морально устарели и в настоящее время не применяются, другие находятся в стадии разработки.

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

На рис. 5.8, а показана схема 3И - НЕ ЛЭ ТТЛ с простым инвертором. Если на все входы МЭТ поданы напряжения
, соответствующие уровню 1, то все эмиттерные переходы МЭТVТ1 смещены в обратном направлении, а коллекторный - в прямом. Коллекторный ток МЭТ протекает через базу транзистора VТ2, который открывается и переходит в режим насыщения. На выходе ЛЭ устанавливается напряжение низкого уровня
.

Если хотя бы на один вход МЭТ подано напряжение
, соответствующее уровню 0, то соответствующий эмиттерный переход МЭТ смещается в прямом направлении. Эмиттерный ток этого перехода протекает через резисторR1, вследствие чего коллекторный ток МЭТ уменьшается и транзистор VТ2 закрывается. На выходе ЛЭ устанавливается напряжение высокого уровня
.

Для повышения быстродействия ЛЭ в него вводят нелинейную обратную связь, осуществляемую с помощью диода Шотки (диод VD на рис. 5.10, а). Диод Шотки VD с транзистором VТ2 в интегральном исполнении составляет единую структуру, которую иногда называют транзистором Шотки.

Рис. 5.8. Схемы логических И - НЕ ТТЛ с простым (а) и сложным (б) инверторами

На рис. 5.8, б показана схема логического элемента 2И - НЕ ТТЛ со сложным инвертором. Работа такого инвертора была рассмотрена раньше.

Особенностью сложного инвертора является инерционность процесса переключения транзисторов VТ2, VТЗ и VТ4. Поэтому быстродействие сложного инвертора хуже, чем простого. Для повышения быстродействия сложного инвертора в него вводят дополнительный транзистор, который подключается параллельно эмиттерному переходу VТ4.

В настоящее время выпускается несколько разновидностей серий микросхем с элементами ТТЛ: стандартные (серии 133; K155), высокого быстродействия (серии 130; K131), микромощные (серия 134), с диодами Шоттки (серии 530; K531) и микромощная с диодами Шоттки (серия K555). Они имеют большой процент выхода, низкую стоимость, обладают широким функциональным набором и удобны для практического использования.

Логические элементы ЭСЛ . Элементную базу эмиттерно-связанной логики составляют устройства на переключателях тока.

Простейшая схема переключателя тока показана на рис. 5.9, а .

Рис. 5.9. Упрощенная схема переключателя тока (а) и графики напряжений (б), поясняющие его работу

Суммарный ток транзисторов VТ1 и VТ2 задается генератором тока I, включенным в цепь эмиттеров транзисторов. Если на вход (базу VТ1) поступает напряжение низкого уровня
(логический 0), то транзисторVТ1 закрыт и весь ток протекает через транзисторVТ2, на базу которого подается опорное напряжение
, превышающее нижний уровень напряжения базыVТ1.

На коллекторе закрытого транзистора VТ1 образуется напряжение высокого уровня (логическая 1), а на коллекторе открытого транзистора VТ2 - напряжение низкого уровня (логический 0), как показано на рис. 5.9, б . Если
, то транзисторVТ1 откроется. Так как
, то транзисторVТ2 окажется закрытым и весь ток будет протекать через транзисторVТ1. На коллекторе VТ1 образуется напряжение низкого уровня, а на коллекторе VТ2 - высокого.

Параметры генератора тока таковы, что транзисторы VТ1 и VТ2 не переходят в режим насыщения. Этим достигается высокое быстродействие элементов ЭСЛ.

Принципиальная схема базового логического элемента ЭСЛ показана на рис. 5.10. Этот ЛЭ одновременно выполняет две логические операции: ИЛИ - НЕ по выходу 1 и ИЛИ по выходу 2.

Рис. 5.10. Схема базового логического элемента ЭСЛ

На транзисторах VT1, VТ2 и VТЗ выполнен токовый переключатель, обеспечивающий получение логических функций ИЛИ - НЕ (на коллекторе VТ2) и ИЛИ (на коллекторе VТЗ). В качестве генератора тока используется высокоомный резистор R5, включенный в объединенную эмиттерную цепь транзисторов VТ1, VТ2 и VТЗ. Источник опорного напряжения выполнен на транзисторе VТ4 и диодах VD1 и VD2. Опорное напряжение, уровень которого находится примерно посередине между уровнями, соответствующими 0 и 1, подается на базу транзистора VТЗ, поэтому транзистор VТЗ будет закрыт, если хотя бы на один из входов подано напряжение более высокого уровня (логическая 1) и открыт, если на всех входах имеется напряжение низкого уровня (логический 0). Логическая информация с коллекторов VТ2 и VТЗ поступает на базы выходных эмиттерных повторителей, выполненных на транзисторах VТ5 и VТ6. Эмиттерные повторители служат для увеличения нагрузочной способности ЛЭ и смещения уровней выходных напряжений для совместимости ЛЭ данной серии по входу и выходу.

Представителями ЛЭ ЭСЛ являются интегральные микросхемы 500-й серии.

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

Недостатком ЛЭ ЭСЛ является высокая потребляемая мощность.

Логические элементы И 2 Л . ЛЭ И 2 Л выполняются в виде цепочки транзисторов с инжекционным питанием. Отличительной особенностью таких транзисторов по сравнению с БТ является наличие дополнительного электрода - инжектора. В этой структуре можно выделить два транзистора: горизонтальный токозадающий и вертикальный переключающий , соединенные так, как показано на рис. 5.11, б . Роль электронного ключа S обычно выполняет структура БТ, включенного с ОЭ и работающего в ключевом режиме.

Рис. 5.11. Принципиальная схема инвертора с инжекционным питанием

Смещение инжекторного перехода в прямом направлении достигается подачей на инжектор p-типа положительного напряжения, равного 1...1,5 В. С помощью электронного ключа S база транзистора VТ2 может подключаться к эмиттеру этого транзистора или к генератору тока (коллектору T1). Если ключ разомкнут (при этом входное напряжение имеет высокий уровень), то почти весь ток генератора поступает в базу транзистора VТ2. Транзистор открыт и насыщен, и его выходное напряжение составляет единицы или десятки милливольт (при условии, что к коллектору подключена нагрузка). При замкнутом ключе S почти весь ток генератора тока течет через ключ и лишь незначительная его часть поступает в базу транзистора VТ2. Транзистор находится в активном режиме вблизи области отсечки. Напряжение коллектора транзистора в этом режиме соответствует высокому уровню - примерно 0,8 В.

Таким образом, транзистор с инжекционным питанием можно рассматривать как инвертор или ЛЭ, выполняющий операцию НЕ.

На рис. 5.12 показана схема ЛЭ ИЛИ - НЕ на два входа. При поступлении логических нулей на оба входа транзисторы VТ1 и VТ2 закрыты и на выходе образуется логическая 1. Если хотя бы на один из входов поступает логическая 1, то соответствующий транзистор открыт и насыщен и на выходе, являющемся объединением всех коллекторов, устанавливается логический 0.

Рис. 5.12. Упрощенная схема ЛЭ 2ИЛИ – НЕ инжекционной логики

Достоинствами ЛЭ И 2 Л являются высокая степень интеграции, большое быстродействие, способность работать при очень малых токах (единицы наноампер) и малых значениях питающих напряжений.

5.5. Базовые логические элементы на МДП- и КМДП-структурах. Базовым элементом логических ИМС на МДП-транзисторах является инвертор (элемент НЕ). На рис. 5.13 показаны схемы инверторов на МДП-транзисторах с каналом p-типа с одним (а) и двумя (б) источниками питания.

Рис. 5.13. Схемы инверторов на МДП-транзисторах (а, б) и графики входных и выходных напряжений (в)

Транзисторы VT1 обеих схем имеют более узкие и длинные каналы по сравнению с транзисторами VТ2. Поэтому если оба транзистора VТ1 и VТ2 открыты, то
. Если
, т.е.
, то транзисторыVТ2 оказываются открытыми. Так как при этом
, то напряжение на выходе близко к нулю (рис. 5.13, в).

Если
, т. е.
, то транзисторыVТ2 закрываются, а транзисторы VТ1 находятся на грани запирания. При этом
и на выходе устанавливается напряжение с низким отрицательным уровнем, соответствующим логической 1.

Включение в цепь затвора транзистора VT1 дополнительного источника напряжения
повышает помехоустойчивость ЛЭ.

На рис. 5.14, а показана схема двухвходового ЛЭ ИЛИ - НЕ, выполненного на комплементарных МДП-транзисторах. Параллельно соединенные транзисторы VТЗ и VТ4 с каналом n-типа являются управляющими, а транзисторы VТ1 и VТ2 с каналом p-типа - нагрузочными. Управляющие транзисторы образуют нижнее, а нагрузочные - верхнее плечо делителя, с которого снимается выходное напряжение.

Рис. 5.14. Схемы логических элементов ИЛИ - НЕ (а) и И - НЕ (б) на КМДП-транзисторах

Если на входах инапряжение низкого уровня:
, то транзисторыVТЗ и VТ4 закрыты. Исток транзистора VТ1 с каналом p-типа подключен к плюсу источника , поэтому напряжение его затвора
и превышает по абсолютному значению пороговое напряжение. Транзистор VТ1 открыт, сопротивление его канала мало и напряжение истока транзистора VТ2 близко к напряжению
. Следовательно, транзистор VТ2 также открыт, и сопротивление верхнего плеча оказывается значительно меньше, чем сопротивление нижнего плеча. На выходе устанавливается напряжение высокого уровня, близкое к напряжению источника питания.

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

В логических элементах И - НЕ КМДП-ТЛ (рис. 5.14, б) управляющие МДП-транзисторы с каналом n-типа VТЗ и VТ4 включены последовательно, а нагрузочные с каналами p-типа - параллельно. Сопротивление нижнего плеча будет мало в том случае, если открыты оба транзистора VТЗ и VТ4, т.е. когда на входах идействуют напряжения, соответствующие логическим единицам. При этом
и соответствует логическому нулю. Если на одном из входов будет напряжение низкого уровня, то один из транзисторовVТ1 или VТ2 открыт, а один из транзисторов VТЗ или VТ4 закрыт. При этом сопротивление верхнего плеча значительно меньше, чем сопротивление нижнего плеча, и уровень выходного напряжения соответствует логической единице.

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

В статье даны ответы на вопросы: «Как выглядит электронная подпись», «Как работает ЭЦП», рассмотрены ее возможности и основные компоненты, а также представлена наглядная пошаговая инструкция процесса подписания файла электронной подписью.

Что такое электронная подпись?

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

Справочно:

Сокращенное название (согласно федеральному закону № 63) — ЭП, но чаще используют устаревшую аббревиатуру ЭЦП (электронная цифровая подпись). Это, например, облегчает взаимодействие с поисковиками в интернете, так как ЭП может также означать электрическую плиту, электровоз пассажирский и т.д.

Согласно законодательству РФ, квалифицированная электронная подпись — это эквивалент подписи, проставляемой «от руки», обладающий полной юридической силой. Помимо квалифицированной в России представлены еще два вида ЭЦП:

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

— простая — не придает подписанному документу юридическую значимость до заключения дополнительных соглашений между подписантами о правилах применения и признания ЭЦП и без соблюдении законодательно закрепленных условий по ее использованию (простая электронная подпись должна содержаться в самом документе, ее ключ применяться в соответствии с требованиями информационной системы, где она используется, и прочее согласно ФЗ-63, ст.9), не гарантирует его неизменность с момента подписания, позволяет подтвердить авторство. Ее применение не допускается в случаях, связанных с государственной тайной.

Возможности электронной подписи

Физическим лицам ЭЦП обеспечивает удаленное взаимодействие с государственными, учебными, медицинскими и прочими информационными системами через интернет.

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

Возможности, которые предоставляет ЭЦП пользователям, сделали ее важной составляющей повседневной жизни и рядовых граждан, и представителей компаний.

Что означает фраза «клиенту выдана электронная подпись»? Как выглядит ЭЦП?

Сама по себе подпись является не предметом, а результатом криптографических преобразований подписываемого документа, и ее нельзя «физически» выдать на каком-либо носителе (токене, smart-карте и т.д.). Также ее нельзя увидеть, в прямом значении этого слова; она не похожа на росчерк пера либо фигурный оттиск. О том, как «выглядит» электронная подпись, расскажем чуть ниже.

Справочно:

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

Flash-носитель — это компактный носитель данных, в состав которого входит flash-память и адаптер (usb-флешка).

Токен — это устройство, корпус которого аналогичен корпусу usb-флешки, но карта памяти защищена паролем. На токене записана информация для создания ЭЦП. Для работы с ним необходимо подключение к usb-разъему компьютера и введения пароля.

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

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

Как же следует понимать фразу «выдана электронная подпись», которая прочно закрепилась в разговорной речи участников рынка? Из чего состоит электронная подпись?

Выданная электронная подпись состоит из 3 элементов:

1 - средство электронной подписи, то есть необходимое для реализации набора криптографических алгоритмов и функций техническое средство. Это может быть либо устанавливаемый на компьютер криптопровайдер (КриптоПро CSP, ViPNet CSP), либо самостоятельный токен со встроенным криптопровайдером (Рутокен ЭЦП, JaCarta ГОСТ), либо «электронное облако». Подробнее прочитать о технологиях ЭЦП, связанных с использованием «электронного облака», можно будет в следующей статье Единого портала Электронной подписи.

Справочно:

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

Важно: токен и средство квалифицированной ЭЦП на нем должны быть сертифицированы ФСБ РФ в соответствии с требованиями федерального закона № 63.

2 - ключевая пара, которая представляет из себя два обезличенных набора байт, сформированных средством электронной подписи. Первый из них - ключ электронной подписи, который называют «закрытым». Он используется для формирования самой подписи и должен храниться в секрете. Размещение «закрытого» ключа на компьютере и flash-носителе крайне небезопасно, на токене — отчасти небезопасно, на токене/smart-карте/sim-карте в неизвлекаемом виде — наиболее безопасно. Второй — ключ проверки электронной подписи, который называют «открытым». Он не содержится в тайне, однозначно привязан к «закрытому» ключу и необходим, чтобы любой желающий мог проверить корректность электронной подписи.

3 - сертификат ключа проверки ЭЦП, который выпускает удостоверяющий центр (УЦ). Его назначение — связать обезличенный набор байт «открытого» ключа с личностью владельца электронной подписи (человеком или организацией). На практике это выглядит следующим образом: например, Иван Иванович Иванов (физическое лицо) приходит в удостоверяющий центр, предъявляет паспорт, а УЦ выдает ему сертификат, подтверждающий, что заявленный «открытый» ключ принадлежит именно Ивану Ивановичу Иванову. Это необходимо для предотвращения мошеннической схемы, во время развертывания которой злоумышленник в процессе передачи «открытого» кода может перехватить его и подменить своим. Таким образом, преступник получит возможность выдавать себя за подписанта. В дальнейшем, перехватывая сообщения и внося изменения, он сможет подтверждать их своей ЭЦП. Именно поэтому роль сертификата ключа проверки электронной подписи крайне важна, и за его корректность несет финансовую и административную ответственность удостоверяющий центр.

В соответствии с законодательством РФ различают:

— «сертификат ключа проверки электронной подписи» формируется для неквалифицированной ЭЦП и может быть выдан удостоверяющим центром;

— «квалифицированный сертификат ключа проверки электронной подписи» формируется для квалифицированной ЭЦП и может быть выдан только аккредитованным Министерством связи и массовых коммуникаций УЦ.

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

Подводя итог вышеизложенному, фраза «клиенту выдана электронная подпись» состоит из трех слагаемых:

  1. Клиент приобрел средство электронной подписи.
  2. Он получил «открытый» и «закрытый» ключ, с помощью которых формируется и проверяется ЭЦП.
  3. УЦ выдал клиенту сертификат, подтверждающий, что «открытый» ключ из ключевой пары принадлежит именно этому человеку.

Вопрос безопасности

Требуемые свойства подписываемых документов:

  • целостность;
  • достоверность;
  • аутентичность (подлинность; «неотрекаемость» от авторства информации).

Их обеспечивают криптографические алгоритмы и протоколы, а также основанные на них программные и программно-аппаратные решения для формирования электронной подписи.

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

Примечание: при приобретении токена важно поменять заводской пароль, таким образом, никто не сможет получить доступ к механизму ЭЦП кроме ее владельца.

Как подписать файл электронной подписью?

Для подписания файла ЭЦП нужно выполнить несколько шагов. В качестве примера рассмотрим, как поставить квалифицированную электронную подпись на свидетельство на товарный знак Единого портала Электронной подписи в формате.pdf. Нужно:

1. Кликнуть на документ правой кнопкой мышки и выбрать криптопровайдер (в данном случае КриптоАРМ) и графу «Подписать».

2. Пройти путь в диалоговых окнах криптопровайдера:

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

Поля «Кодировка и расширение» не требуют редактирования. Ниже можно выбрать, где будет сохранен подписанный файл. В примере, документ с ЭЦП будет размещен на рабочем столе (Desktop).

В блоке «Свойства подписи» выбираете «Подписано», при необходимости можно добавить комментарий. Остальные поля можно исключить/выбрать по желанию.

Из хранилища сертификатов выбираете нужный.

После проверки правильности поля «Владелец сертификата», нажимайте кнопку «Далее».

В данном диалоговом окне проводится финальная проверка данных, необходимых для создания электронной подписи, а затем после клика на кнопку «Готово» должно всплыть следующее сообщение:

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

Итак, как же выглядит электронная подпись на документе?

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

Фрагмент рабочего стола. Слева: файл, подписанный ЭП, справа: криптопровайдер (например, КриптоАРМ).

Визуализация электронной подписи в самом документе при его открытии не предусмотрена ввиду того, что она является реквизитом. Но есть исключения, например, электронная подпись ФНС при получении выписки из ЕГРЮЛ/ЕГРИП через онлайн сервис условно отображается на самом документе. Скриншот можно найти по

Но как же в итоге «выглядит» ЭЦП , вернее, как факт подписания обозначается в документе?

Открыв через криптопровайдер окно «Управление подписанными данными», можно увидеть информацию о файле и подписи.

При нажатии на кнопку «Посмотреть» появляется окно, содержащее информацию о подписи и сертификате.

Последний скриншот наглядно демонстрирует как выглядит ЭЦП на документе «изнутри».

Приобрести электронную подпись можно по .

Задавайте другие вопросы по теме статьи в комментариях, эксперты Единого портала Электронной подписи обязательно ответят Вам.

Статья подготовлена редакцией Единого портала Электронной подписи сайт с использованием материалов компании SafeTech.

При полном или частичном использовании материала гиперссылка на www..

01августа 2001 года Этот материал посвящен вопросам защиты программного обеспечения взлома. А точнее, речь в нем пойдет об электронных ключах - одном из самых распространенных на сегодняшний день способов защиты программных продуктов.

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

Методы защиты программ

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

Использование ключевых дискет и компакт-дисков со специальным покрытием, паролей и регистрационных номеров

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

Привязка к уникальным характеристикам компьютера

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

Самый свежий пример использования этого метода - встроенная защита от копирования новых программных продуктов Microsoft.

Программно-аппаратная защита с использованием электронных ключей

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

Электронными ключами, в основном, защищают так называемый «деловой» софт: бухгалтерские и складские программы, правовые и корпоративные системы, строительные сметы, САПР, электронные справочники, аналитический софт, экологические и медицинские программы и т. п. Затраты на разработку таких программ велики, а соответственно высока их стоимость, поэтому ущерб от пиратского распространения будет значителен. Здесь электронные ключи являются оптимальной защитой.

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

Что такое электронный ключ

Электронный ключ предотвращает незаконное использование (эксплуатацию) программы. Часто говорят, что ключ защищает от копирования, но это не совсем верно. Защищенную программу можно скопировать, только копия без ключа работать не будет. Т. о. копирование просто не имеет смысла.

Собственно электронный ключ - это устройство размером, как принято говорить, «со спичечный коробок» , которое подсоединяется к одному из портов компьютера. Ключ состоит из платы с микросхемами (вспомогательные элементы, микроконтроллер и память), заключенной в пластиковый корпус. Микроконтроллер содержит так называемую «математику» - набор команд, реализующих некую функцию или функции, которые служат для генерации информационных блоков обмена ключа и защищенной программы. Иначе эти блоки называются «вопросы и ответы». Память электронного ключа содержит информацию о его характеристиках, а также данные пользователя. Ключ имеет два разъема. С помощью одного он подсоединяется к LPT-порту (параллельному порту) компьютера, другой служит для подключения периферийного устройства. При правильной эксплуатации современный электронный ключ обычно не вносит помех в работу принтеров, сканеров и прочей периферии, которая подключена через него к параллельному порту.

Какие бывают электронные ключи

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

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

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

По устройству электронные ключи делятся на

  • Ключи, не содержащие встроенной памяти
    Такие ключи не обеспечивают должную степень защищенности приложения. Ведь только наличие памяти в дополнение к логическому блоку ключа позволяет строить систему защиту любой сложности. В памяти ключа можно хранить информацию, необходимую для работы программы, списки паролей (по существу, электронный ключ может использоваться в качестве средства идентификации) и т. п. Объем памяти большинства современных ключей достигает обычно несколько сотен байт. Использование ключей без встроенной памяти может быть оправданным только для защиты дешевых многотиражных программ.
  • Ключи, содержащие только память
    Этот класс ключей является морально устаревшим. Такие ключи больше не выпускаются, но достаточно большое их количество пока сохраняется у конечных пользователей ПО.
  • Ключи на заказном ASIC-чипе
    На сегодняшний день это самый распространенный класс ключей. Их функциональность определяется конкретным видом ASIC-чипа. Недостатком таких ключей является, если можно так выразится, «завершенность» конструкции. Диапазон их свойств ограничен определенными при создании микросхемы рамками. Все ключи одной модели работают по одинаковому алгоритму или алгоритмам (т. е. в них содержаться функции одинакового вида). Такая особенность может неблагоприятно сказываться на степени стойкости системы защиты. Ведь часто повторяющаяся модель защиты облегчает задачу взломщика.
  • Микропроцессорные ключи
    Этот тип ключей, в отличие от предыдущего, обладает гораздо более гибким устройством. В контроллер микропроцессорного ключа можно «прошивать» программу, реализующую функции, разные для каждого клиента. В принципе, любой микропроцессорный ключ легко можно запрограммировать так, что он будет работать по своему, уникальному алгоритму.

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

Защита программ с помощью ключа

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

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

Способы защиты

Есть системы защиты, которые устанавливаются на исполняемые программные модули (навесная или автоматическая защита), и системы защиты, которые встраиваются в исходный код программы (защита при помощи функций API).

Автоматическая защита

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

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

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

Защита при помощи функций API

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

Библиотеки специальных функций API и примеры их использования, написанные на различных языках программирования, должны входить в комплект программного обеспечения для работы с ключами. Для установки защиты необходимо написать вызовы нужных функций API, вставить их в исходный код программы и скомпилировать с объектными модулями. В результате защита окажется внедренной глубоко в тело программы. Использование функций API обеспечивает гораздо более высокую степень защищенности, чем автоматическая защита

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

В общих чертах работу системы защиты можно представить таким образом:

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

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

Методы взлома защиты

Изготовление аппаратной копии ключа

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

Изготовление эмулятора (программной копии) ключа

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

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

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

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

Современные ключи обладают целым набором средств, предотвращающих эмуляцию. Прежде всего, это различные варианты усложнения протокола обмена ключа и защищенной программы, а также кодирование передаваемых данных. Используются следующие основные виды защищенных протоколов обмена или их сочетания:

  • плавающий протокол - вместе с реальными данными передается «мусор», причем со временем порядок чередования и характер, как реальных, так и ненужных данных, изменяется хаотическим образом
  • кодированный протокол - все передаваемые данные кодируются
  • с автоматической верификацией - любая операция записи в память ключа сопровождается автоматической проверкой данных на адекватность

Дополнительное усложнение протокола обмена достигается за счет увеличения объема передаваемых сведений и количества вопросов к ключу. Современные ключи обладают памятью, достаточной для обработки достаточно больших объемов данных. Например, ключ с памятью 256 байт может обработать за один сеанс до 200 байт информации. Составление таблицы вопросов к такому ключу на сегодняшний день представляется весьма трудоемкой задачей.

Отделение модуля автоматической защиты

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

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

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

Удаление вызовов функций API

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

Существует несколько эффективных приемов противодействия попыткам удаления или обхода вызовов функций API:

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

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

Методы противодействия взлому

Комбинирование автоматической и API защиты

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

API защита

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

Обязательным является использование алгоритмов (или функций) преобразования данных. Кодирование информации делает бессмысленным удаление вызовов функций API, ведь при этом данные не будут декодированы.

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

Автоматическая защита

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

Обновление системы защиты

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

Возможности электронного ключа

Конечно, прежде всего, ключ предназначен для защиты программ. Однако потенциал современной программно-аппаратной защиты настолько велик, что позволяет применять электронные ключи для реализации маркетинговой стратегии и оптимизации продаж. Вот несколько вариантов такого «нецелевого» использования.

Демо-версии

С помощью электронных ключей можно легко создавать демо-версии программных продуктов без написания демонстрационного варианта программы. Можно свободно распространять копии, заблокировав или ограничив некоторые возможности программы, которые активируются только с помощью электронного ключа. Или же предоставлять клиентам полнофункциональную программу в качестве пробной («trial») версии, ограничив количество ее запусков. А после оплаты продлевать срок пользования программой или вовсе снимать ограничение.

Аренда и лизинг

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

Продажа программы по частям

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

Обновление защищенной программы

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

Лицензирование в локальных вычислительных сетях

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

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

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

Будущее электронного ключа

Пока существует ПО и стоит проблема компьютерного пиратства, программно-аппаратная защита останется актуальной. Что конкретно она будет представлять собой лет через десять, сказать трудно. Но уже сейчас можно отметить некоторые тенденции, которые становятся очевидными.

Широкую популярность приобретают USB-ключи и, скорее всего, они постепенно вытеснят ключи для параллельного порта. В ключах будут реализованы более сложные и стойкие алгоритмы, увеличится объем памяти.

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

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

Совокупность символов, предназначенная для формирования электронной подписи, называется ключом ЭЦП. О том, как формируется и как применяется ключ электронной подписи, читайте в нашей статье.

Что такое ключ ЭЦП?

Определение данного понятия содержится в ст. 2 Федерального закона от 06.04.2011 N 63-ФЗ . Согласно этой норме под ключом ЭЦП понимается неповторяемое сочетание символов, при помощи которых формируется подпись.

В указанном Законе существует и еще одно понятие, содержащее слово «ключ». Это понятие ключа проверки ЭЦП. Ключ проверки электронной подписи — это неповторяемое сочетание символов, связанное с ключом ЭЦП, целью которого является осуществление проверки подлинности такой подписи.

Как получить ключ электронной подписи?

Для получения ключа следует обратиться в удостоверяющий центр. Найти ближайший к вам центр можно, набрав соответствующую информацию в поисковой строке браузера.

Вопрос о том, где получить ключ электронной подписи, заинтересованному лицу следует решить самостоятельно в зависимости от целей ее получения.

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

В ст. 5 Федерального закона от 06.04.2011 N 63-ФЗ перечислены основные виды и подвиды ЭЦП:

  • простая ЭЦП;
  • усиленная ЭЦП;
  • неквалифицированная усиленная ЭЦП;
  • квалифицированная усиленная ЭЦП.

Из указанной классификации видно, что усиленная подпись может быть либо квалифицированной, либо неквалифицированной. Простая же ЭЦП подобной градации не имеет.

Другая (условная) градация предусматривает разделение ключей на закрытые и открытые.

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

В качестве признаков усиленной подписи выделяются:

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

Эти признаки характерны для всех усиленных подписей. Квалифицированная подпись отличается от неквалифицированной двумя дополнительными характеристиками:

  • ключ проверки ЭЦП прописывается в специальном сертификате;
  • для нее применяются специальные средства, соответствующие отдельным требованиям законодательства.

Для получения ЭЦП представителю заявителя понадобится, в т.ч., доверенность на получение ключа ЭЦП. Она должна содержать указание на право:

  • владения сертификатом;
  • представления в удостоверяющий центр необходимой информации и документов;
  • знать информацию, указанную в сертификате;
  • получения инструкции по безопасности применения ЭЦП.

Документы для получения ЭЦП подаются в удостоверяющий центр самим заявителем или его уполномоченным лицом.

Как установить ключ ЭЦП?

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

Основным отличием простой подписи от усиленной ЭЦП является то, что для простой подписи сертификат ключа не формируется.

Вот критерии подписания простой подписью:

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

Необходимость формирования удостоверяющим центром ключа проверки, который содержится в специальном сертификате, является основным отличием ключа квалифицированной цифровой подписи от ключа неквалифицированной. Как следует из ч. 5 ст. 5 Федерального закона от 06.04.2011 N 63-ФЗ , для неквалифицированной ЭЦП такой сертификат может не изготовляться.