Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информационная безопасность2.docx
Скачиваний:
10
Добавлен:
17.08.2019
Размер:
47.43 Кб
Скачать

III. Технология применения цифровой подписи и возможные виды нападения

Постановка подписи

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

1. Генерация ключей.

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

Возможны два варианта проведения этого этапа.

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

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

2. Подписание документа.

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

Хеш-функция должна удовлетворять целому ряду условий:

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

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

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

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

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

Проверка подписи

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

Процедура проверки подписи состоит из двух этапов:

- вычисления хеш-функции документа;

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

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

Критерии (показатели эффективности)

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

1) криптостойкость;

2) время работы;

3) функциональные возможности;

4) удобство пользователя.

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

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

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

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

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

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

Нападения

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

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

Например, в момент подписания «криптовирусы» могут перехватить секретные ключи (и скопировать их в нужное место). Кроме того, при проверке подписи они могут заставить систему «сказать», что подпись верна, хотя она на самом деле неверна.

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

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

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

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

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

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

Рассматриваемые нападения можно расклассифицировать по степени вреда, наносимого злоумышленником.

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

Далее, если нарушитель смог вскрыть (или похитить) секретные ключи какого-то абонента, то, очевидно, он может подписать любое сообщение от имени данного абонента.

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

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