ЭЦП - что это такое? Электронная цифровая подпись: инструкция для начинающих. Что такое электронная подпись — простым языком для новичков мира цифровой экономики

Алгоритмов), часы реального времени. Аппаратные ключи могут иметь различные форм-факторы , но чаще всего они подключаются к компьютеру через USB . Также встречаются с LPT - или PCMCIA -интерфейсами.

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

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

Энциклопедичный YouTube

    1 / 4

    Arduino NFC EEPROM электронный ключ RC522 Card Read Module RFID OLED LCD Display

    Arduino NFC билет Метро электронный ключ RC522 Card Read Module RFID Servo

    А. Пурнов. Зачем нужен электронный ключ от терминала? (трейдинг, биржевая торговля, игра на бирже)

    Как оплатить и активировать электронный ключ в PRAV.TV

    Субтитры

История

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

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

Защита ПО с помощью электронного ключа

Комплект разработчика ПО

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

Технология защиты

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

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

Стоит отметить, что некоторые современные ключи (Guardant Code от Компании "Актив", LOCK от Astroma Ltd., Rockey6 Smart от Feitian, Senselock от Seculab) позволяют разработчику хранить собственные алгоритмы или даже отдельные части кода приложения (например, специфические алгоритмы разработчика, получающие на вход большое число параметров) и исполнять их в самом ключе на его собственном микропроцессоре . Помимо защиты ПО от нелегального использования такой подход позволяет защитить используемый в программе алгоритм от изучения, клонирования и использования в своих приложениях конкурентами. Однако для простого алгоритма (а разработчики часто совершают ошибку, выбирая для загрузки недостаточно сложный алгоритм) может быть проведен криптоанализ по методу анализа "черного ящика".

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

Алгоритм шифрования может быть секретным или публичным. Секретные алгоритмы разрабатываются самим производителем средств защиты, в том числе и индивидуально для каждого заказчика. Главным недостатком использования таких алгоритмов является невозможность оценки криптографической стойкости . С уверенностью сказать, насколько надёжен алгоритм, можно было лишь постфактум: взломали или нет. Публичный алгоритм, или «открытый исходник», обладает криптостойкостью несравнимо большей. Такие алгоритмы проверяются не случайными людьми, а рядом экспертов, специализирующихся на анализе криптографии . Примерами таких алгоритмов могут служить широко используемые ГОСТ 28147-89 , AES , RSA , Elgamal и др.

Защита с помощью автоматических средств

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

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

Реализация защиты с помощью функций API

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

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

Обход защиты

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

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

Взлом программного модуля

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

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

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

Декомпиляция - преобразование исполняемого модуля приложения в программный код на языке высокого уровня и получение представления приложения, близкого к исходному коду. Может быть проведена только для некоторых языков программирования (в частности, для.NET приложений, создаваемых на языке C# и распространяемых в байт-коде - интерпретируемом языке относительно высокого уровня).

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

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

Здравствуйте! В этой статье мы расскажем об электронной цифровой подписи.

Сегодня вы узнаете:

  1. Что собой представляет ЭЦП и в каких сферах ее можно применить;
  2. О юридической силе подписи такого формата;
  3. О преимуществах, которые дает ее наличие.

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

ЭЦП — что это такое простыми словами

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

Что же такое ЭЦП простым языком?

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

Хранят ее обычно на флеш-накопителе.

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

  1. Упрощает и ускоряет процесс обмена данными (когда ведется сотрудничество с зарубежными компаниями);
  2. Сокращение расходов, связанных с документооборотом;
  3. Повышение уровня безопасности для информации, носящей коммерческий характер.

Термины, связанные с ЭЦП

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

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

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

Немного истории

Первые ЭП стали использоваться в России в 1994 году. А закон о регулировании их применения был принят в 2002. Он был крайне расплывчатым и неоднозначно толковал терминологию. Вопрос получения подписи также в нем практически не освещался.

Начиная с 2011 года на электронный документооборот перешли государственные структуры. А все должностные лица получили ЭЦП.

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

Как получить электронную цифровую подпись

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

Чтобы получить электронную цифровую подпись, нужно пройти несколько важных ступеней:

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

Теперь каждый шаг обсудим подробно.

Шаг 1. Выберите вид подписи, который максимально вам подходит.

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

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

№ п/п Где применяют Простой вид Неквалифицированный Квалифицированный
1 Ведение внутреннего документооборота в небольших компаниях встречается да да
2 Ведение внешнего документооборота уже редко да да
3 В Арбитражном Суде да да да
4 При обращении к сайту Госуслуг да нет да
5 В контролирующих органах нет нет да
6 При проведении электронных торгов нет нет да

Шаг 2. Выбираем удостоверяющий центр.

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

Уточним, что УЦ является юрлицом, цель работы которого – формирование и выдача ЭЦП.

Кроме этого, УЦ осуществляет следующую деятельность:

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

В РФ около 100 УЦ. Лучше выбрать тот, который подходит по вашему месторасположению и возможностям. Предварительно можно уточнить, есть ли таковые в вашем городе. Сделать это просто: достаточно просмотреть информацию на официальном сайте.

Шаг 3. Оформляем заявку.

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

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

Шаг 4. Оплачиваем.

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

Причем разброс цен довольно большой – от 1500 до 8000 рублей.

Документы для ЭЦП

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

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

  • Заполненный бланк заявления;
  • Паспорт с ксерокопией;
  • СНИЛС;
  • Квитанцию, подтверждающую оплату счета.

Если у получателя есть доверенное лицо, подачей документов может заняться оно. Единственно, нужна доверенность на совершение таких действий.

Юрлицам нужно подготовить:

  • Заполненное заявление;
  • Свид-во ОГРН;
  • Свид-во ИНН;
  • (не просроченную);
  • Паспорт с копией того лица, которое будет использовать ЭЦП;
  • Квитанцию об оплате;
  • СНИЛС лица, которое будет использовать ЭЦП;
  • Если подпись будет использовать директор, нужно предоставить приказ, на основании которого он занимает эту должность;
  • Для других сотрудников нужны доверенности, чтобы они могли использовать ЭЦП.

ИП предоставляют:

  • Заполненное заявление;
  • Свид-во ОГРНИП;
  • Свид-во ИНН;
  • Выписку из реестра предпринимателей, которой не более 6 месяцев (можно копию);
  • Квитанцию, которая подтвердит оплату.

Если заявка была подана удаленно, нужные документы направляют в УЦ по почте, если лично – то вместе с заявкой.

Электронная подпись для физических лиц

Для физлиц есть 2 типа подписей: квалифицированная и неквалифицированная. Процедура получения, если сравнивать с юрлицами, гораздо проще.

Частные лица обычно используют ЭП, чтобы подписывать некоторые бумаги.

Сейчас для ее применения разработаны такие системы, как:

  • Единый портал государственных услуг;
  • Сеть ЕСИА, для получения различных сведений.

Для ЕСИА достаточно простого типа ЭП, а вот для портала госуслуг используется квалифицированная.

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

Процедура выглядит так:

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

Электронная подпись для юридических лиц

Алгоритм получения практически не отличается от получения подписи физлицом. Точно так же выбирается УЦ, собираются все нужные документы, оплачивается выставленный счет. Единственное, не нужно забывать, что выписка из ЕГРЮЛ должна быть получена вовремя, так как процесс ее подготовки занимает около 5 дней.

Хеш-функция: зачем нужна

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

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

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

Для формирования ЭЦП отправитель вычисляет хеш-функцию документа и шифрует ее при помощи секретного ключа.

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

Подписываемый файл проходит процедуру хеширования. А получатель сможет удостовериться в подлинности документа.

Юридическая сила ЭЦП

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

Срок действия ЭЦП

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

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

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

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

Создание ЭЦП

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

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

Зачем нужны удостоверяющие центры

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

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

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

Открытым шифруем, закрытым расшифровываем

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

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

После проверки инспекция отправляет организации протокол входного контроля. Инспектор подписывает протокол своим закрытым ключом. Затем шифрует протокол открытым ключом компании и направляет файл с зашифрованной информацией в адрес компании. Бухгалтер открывает зашифрованную в файле информацию своим закрытым ключом.

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

Что будет, если небрежно хранить закрытый ключ

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

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

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

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

Дополнительная информация
Насколько надежна ЭЦП

Как мы уже упоминали, размер закрытого ключа ЭЦП, используемой при сдаче отчетности, составляет 512 бит. Для того, чтобы понять, какую степень надежности обеспечивает такой размер ключа, приведем пример. На подбор ключа размером 72 бита у группы исследователей, использовавших сотни компьютеров, ушло три года. Размер нашего ключа — 512 бит. Условия проведенного эксперимента позволяют вычислить количество лет, которое потребуется на его подбор. Этот срок выражается числом со 130-ю нулями. Для сравнения: возраст Земли оценивается в 4,5 миллиарда лет, а миллиард — число с 9 нулями.

Чем ЭЦП отличается от старых шифровок

Одним из первых шифрование информации (криптографию) на практике применил император Гай Юлий Цезарь. Он отправлял в удаленные провинции послания, где вместо буквы A ставил букву D, вместо буквы B — букву E и т д. То есть использовал алфавитный сдвиг на три буквы. Этого было достаточно, чтобы враги, перехватившие послание, не могли его расшифровать. Зато адресаты в провинциях, которым секрет шифра был известен, легко читали распоряжения из столицы.
С тех пор прошло больше двух тысяч лет. За это время было придумано огромное множество шифров (у Цезаря это был простейший алфавитный сдвиг на 3 буквы, а в аппаратах-шифраторах второй мировой войны уже применялись жуткие тысячезначные числа). Однако вплоть до недавнего времени ничего принципиально нового наука о шифровании не изобретала. Суть оставалась прежней: до сеанса документооборота отправитель сообщения и его получатель должны были разделить секрет шифра (для чего требовалась либо личная встреча, либо использование каких-то сверхнадежных каналов связи). Такое шифрование, при котором участникам документооборота необходимо передать друг другу секрет шифра, называется симметричная криптография.

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

Многие из тех, кто постоянно взаимодействует с электронным документооборотом, наверняка сталкивались с таким понятием, как электронная подпись. Тем не менее для большинства людей данный термин остаётся незнакомым, но те, кто успел попробовать этот инструмент, не разочаровались. Если говорить простым языком, электронная подпись - это аналог подписи от руки. Зачастую такой способ используют при работе с электронными документами, в независимости от сферы деятельности. Давайте подробнее изучим, что это такое, для чего применяется и как получить ключ электронной подписи.

Для чего нужна электронная подпись

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

Так вот, имеется целый ряд причин, по которым электронная подпись имеет большую ценность, чем реальная. Рассмотрим их подробнее:

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

  • они не занимают пространство;
  • надёжно хранятся;
  • процесс обмена информацией очень упрощается и прочее.

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

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

3. Государственные услуги. Основное достоинство - не нужно тратить время на длинные очереди. Физическое лицо может просто вписать электронную подпись на универсальную электронную карту (УЭК), на которой уже есть все важные данные.

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

5. Арбитражный суд. Электронные документы, подкреплённые ЭП, признаются полноценными доказательствами.

6. Передача документации. Особенно полезен такой вариант юридическим лицам, потому что даёт право:

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

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

Как это работает?

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

Не знаете, как получить сертификат ключа проверки электронной подписи? Партнёрам рассылается копия, а доступ к оригинальному сертификату ключа есть исключительно у компании-обладателя.

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

  • Дата подписания документа.
  • Информация о лице, поставившем подпись.
  • Идентификатор ключа.

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

  • Номерной знак.
  • Срок действия.
  • Информация, о регистрации в Удостоверяющем центре (УЦ).
  • Данные о пользователе и УЦ, где был изготовлен.
  • Список отраслей, где можно использовать.
  • Гарантия подлинности.

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

Порядок получения ЭЦП. Пошаговая инструкция

Изучив все достоинства ЭЦП, вы приняли решение получить её. Прекрасно! Но тут появляется вопрос, как получить ключ электронной подписи? Ответ на него находится в развёрнутой пошаговой инструкции, представленной ниже.

  1. Выбор типа ЭЦП.
  2. Подбор удостоверяющей организации.
  3. Оформление заявления на изготовление электронной подписи.
  4. Оплата по счёту, после того как заявка будет подтверждена.
  5. Подготовка набора документов.
  6. Получение цифровой подписи. В удостоверяющий центр требуется явиться с оригиналами документов (либо ксерокопиями, заверенными нотариусом), которые требуются для оформления ЭЦП, с квитанцией об оплате по счёту, кроме того, юридическим лицам и ИП следует иметь при себе печать.

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

Шаг 1. Выбор вида ЭЦП

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

  1. Простая. В ней содержаться сведения об обладателе подписи, для того чтобы получатель документации смог понять, кто значится отправителем. Такая подпись не имеет защиты от подделок.
  2. Усиленная. Она также делится на подвиды:
  • Неквалифицированная - содержит данные не только об отправителе, но и о поправках, внесённых после подписания.
  • Квалифицированная - самый надёжный вид подписи. Она имеет высокую защиту, а также владеет юридической силой, на 100 % соответствует подписи от руки. Выдаётся квалифицированная подпись исключительно в организациях, аккредитованных ФСБ.

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

Шаг 2. Удостоверяющий центр

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

Шаг 3. Оформление заявления

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

Шаг 4. Оплата

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

  • Формирование сертификата ключа подписи.
  • Программное обеспечение, которое требуется для формирования подписи и отправки документации.
  • Техническая поддержка.

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

Шаг 5. Подготовка документации

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

Юридические лица

  • Оригинал паспорта генерального директора.
  • Ксерокопия 2 и 3 страницы в 1 экземпляре.
  • Свидетельство ОГРН.
  • Документы об учреждении организации (Устав или учредительное соглашение).
  • СНИЛС.
  • Выписка из единого государственного реестра юридических лиц (на бланке обязательно должна быть печать ФНС, а также подпись, фамилия и должность сотрудника ведомства).

Индивидуальные предприниматели

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

  • Оригинал паспорта.
  • Копия 2 и 3 листа в паспорте - 1 экземпляр.
  • Ксерокопия документа о государственной регистрации физического лица в качестве ИП - 1 экземпляр.
  • СНИЛС.
  • Ксерокопия документа о постановке на учёт в налоговой организации - 1 экземпляр.
  • Выписка из ЕГРИП, заверенная нотариусом (срок выдачи не должен превышать 30 дней).
  • Заявление на изготовление ЭЦП.
  • Заявка на присоединение к Регламенту Удостоверяющего центра.
  • Согласие на обработку личной информации заявителя.

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

Физические лица

Как получить ключ электронной подписи для налоговой физическому лицу? В первую очередь следуют подготовить следующие документы:

  • Паспорт гражданина.
  • СНИЛС.
  • Заявление на изготовление электронной подписи.

Шаг 6. Получение цифровой подписи: финальный этап

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

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

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

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

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-страницы.

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

Публикации по теме