А.В. Петраков - Основы практической защиты информации (1022811), страница 57
Текст из файла (страница 57)
Технологии применения ЭЦПМатематические схемы, используемые в алгоритмах, реализующихэлектронную цифровую подпись (ЭЦП), основаны на так называемыходнонаправленных функциях.Суть подхода основана на применении этих однонаправленныхфункций и заключается в следующем.
Каждый передатчик (пользователь системы) передает приемнику (другому пользователю) или помещает в общедоступный справочник процедуру D, которую долженприменить приемник (другой пользователь) для проверки ЭЦП пере' датчика Е(х) документа х. Свою оригинальную систему подстановкиЭЦП передатчик Ε держит в секрете. Эти процедуры должны обладать следующими свойствами:·для. каждого возможного χ D{E(x)) — x;Ε и D — легко вычислимы;получение Ε из D —- труднорешаемая задача.На практике, как правило, в схемах ЭЦП вместо документа χ рассматривают его хеш-функцию h(x), обладающую рядом специальныхсвойств, важнейшее из которых —- отсутствие «коллизий» (т.е. практическая невозможность создания двух различных документов с одинаковым значениемчхеш-функции).
Перечислим наиболее известные математические схемы ЭЦП: RSA (названа по первым буквам фамилийавторов R.L. Rivest, A. Shamir, L Adleman), OSS (Η. Ong, C.P. Schnorr,A. Shamir), Эль-Гамаля (Т. EIGamal), Рабина (Μ. Rabin), ОкамотоСараиси (Т. Okamoto, A. Shiraishi), Мацумото-Имаи (Т. Matsumoto,Η. Imai) [43].Трудность задач поддержки ЭЦП в этих схемах основана на вычислительной сложности задач факторизации или дискретного логарифмирования.
Среди схем, предложенных отечественными учеными,■'.257можно отметить оригинальную Схему А.А. Грушо (1992 г.). Ее однонаправленная функция, в отличие от вышеперечисленных, основана не насложности теоретико-числовых задач, а на сложности решения системнелинейных булевых уравнений.В принятых стандартах США и России на ЭЦП (DSS — DigitalSignature Standart, ГОСТ Р34.10-94 и Р34.11-94) используются специально созданные алгоритмы. В основу этих алгоритмов положены схемы Эль-Гамаля и Шнорра.Технология применения систем ЭЦП пред усматривает сетьабонентов, посылающих друг другу электронные документы.
Некоторыеиз этих абонентов могут только проверять подписанные другими сообщения, другие (назовем их абонентами с правом подписи) могут как проверять, так и самостоятельно подписывать сообщения. Кроме того, могутбыть случаи, когда кто-либо может ставить свою ЭЦП только в качествевторой подписи после подписи определенного абонента — начальника(например, директор — бухгалтер); это не меняет существа дела.Далее возможны две ситуации: либо в этой сети есть центр (выделенный абонент, наделенный некоторыми особыми полномочиями),либо все абоненты с правом подписи равноправны. Не исключен, однако, и вариант, при котором функции центра рассредоточены по нескольким локальным центрам.
Сети с центрами могут быть расклассифицированы по степени доверия абонентов к центру. Образно говоря, сетимогут быть «тоталитарными» и «демократическими». Центры в такихсетях могут потенциально либо полностью контролировать абонента, либо выполнять чисто формальные функции администрирования, скажемпо приему в сеть новых абонентов.Архитектура алгоритмов ЭЦП. Поскольку подпись под важным документом может иметь далеко идущие последствия, перед под-'писыванием необходимо предусмотреть определенные меры предосторожности. В случае программной реализации, как правило, секретныйключ подписывающего хранится на его личной дискете, защищенной откопирования. Однако этого бывает недостаточно, ведь дискету могутпохитить или просто потерять.
Следовательно, необходима защита отнесанкционированного доступа к секретной информации (ключу). Естественным решением этой проблемы является парольная защита. Паролем могут закрываться не только функции (опции) постановки ЭЦПи генерации ключей, но и функций, изменяющие содержимое каталогаоткрытых ключей абонентов сети, и др.Необходимо проверить (в случае программной реализации, и особенно это важно для программной реализации на ПЭВМ), чтобы в системе не было «криптовирусов», которые могут нанести существенныйвред. Например, в момент подписывания криптовирусы могут перехватить секретные ключи (и скопировать их в нужное место).
Кроме того, при проверке .подписи они могут заставить систему «сказать», чтоподпись верна, хотя она на самом деле неверна. Можно представить258'■'себе криптовирус, который, попав в систему лишь один-единственныйраз в момент генерации ключей, «поможет» системе сгенерировать слабые ключи.
Например, если ключи генерируются на основе датчикаслучайных чисел, который использует встроенный таймер, вирус можетизменить показания таймера, а потом восстановить «статус-кво». Впоследствии эти ключи могут быть легко вскрыты злоумышленниками.Далее этот вирус уже не нужен, он сделал свое дело.
Против таких криптовирусов имеется только одна защита — загрузка с чистой системнойдискеты и использование чистого, «родного» программного продукта.7.8.3. Постановка и проверка подписиЧтобы поставить ЭЦП под конкретным документом, необходимопроделать довольно большой объем вычислительной работы. Эти вычисления разбиваются на два этапа: генерация ключей и подписаниедокумента.Генерация ключей. На этом этапе для каждого абонента генерируется па ключей: секретный и открытый.
Секретный ключ хранитсяабонентом в тайне. Он используется для формирования подписи. Открытый ключ связан с секретным с помощью особого математическогосоотношения. Открытый ключ известен всем другим пользователям сети и предназначен для проверки подписи. Его следует рассматриватькак необходимый инструмент для проверки, позволяющий определитьавтора подписи и достоверность электронного документа, но не позволяющий вычислить секретный ключ.Возможны два варианта проведения этого этапа. Естественнымпредставляется вариант, когда генерацию ключей абонент может осуществить самостоятельно. Не исключено, однако, что в определенныхситуациях эту функцию целесообразна передать центру, который будетвырабатывать пару секретный-открытый ключи для каждого абонентаи заниматься их распространением.
Второй вариант имеет ряд преимуществ административного характера, однако обладает принципиальнымнедостатком — у абонента нет гарантии, что его личный секретный ключявляется уникальным. Другими словами, можно сказать, что здесь всеабоненты находятся «под колпаком» центра и центр может подделатьлюбую подпись [43].Подписание документа . Прежде всего, документ «сжимают»до нескольких десятков или сотен байт с помощью так называемой хешфункции. Здесь термин «сжатие» вовсе не аналогичен термину «архивация», значение хеш-функции лишь только сложным образом зависитот документа, но че позволяет восстановить сам документ.
Эта хешфункция должна удовлетворять ряду условий:быть чувствительна к всевозможным изменениям в тексте, таким,как вставки, выбросы, перестановки и т.п.;обладать свойством необратимости, т.е. задача подбора документа, который обладал бы требуемым значением хеш-функции, вычислительно неразрешима.-.'■~259Вероятность того, что значения хеш-функций двух различных документов (вне зависимости от их длин) совпадут, должна быть ничтожна мала. ., 'Ниже будет рассмотрено, какие нападения становятся возможными,если пренебречь хотя бы одним из перечисленных выше условий.Далее к полученному значению хеш-функции применяют то илииное математическое преобразование (в зависимости от выбранного алгоритма ЭЦП) и получают собственно подпись документа. Эта подписьможет иметь вполне читаемый, «буквенный» вид, но зачастую ее представляют в виде последовательности произвольных «нечитаемых» символов. ЭЦП может храниться вместе с документом, например стоять вего начале или конце, либо в отдельном файле.
Естественно, в последнем случае при проверке подписи необходимо располагать как самимдокументом, так и файлом, содержащим его подпись.Проверка подписи. При проверке подписи проверяющий долженрасполагат открытым ключом абонента, поставившего подпись. Этотключ должен быть аутентифицирован, то есть проверяющий долженбыть полностью уверен, что данный открытый ключ соответствует томуабоненту, который выдает себя за его «хозяина».
В случае, когда абоненты самостоятельно обмениваются ключами, эта уверенность можетподкрепляться связью по телефону, личным контактом или любым другим способом. В случае, когда абоненты действуют в сети с выделеннымцентром, открытые ключи абонентов подписываются (сертифицируются) центром, и непосредственный контакт абонентов между собой (припередаче или подтверждении подлинности ключей) заменяется на контакт каждого из них в отдельности с центром.Процедура проверки ЭЦП состоит из двух этапов: вычисления хешфункции документа и собственно математических вычислений, предусмотренных в данном алгоритме подписи. Последние заключаются впроверке того или иного соотношения, связывающего хеш-функцию документа', подпись под этим документом и открытый ключ подписавшегоабонента. Если рассматриваемое соотношение оказывается выполненным, то подпись признается правильной, а сам документ — подлинным,в противоположном случае документ считается измененным, а подписьпод ним — недействительной.7.8.4.