- •Содержание
- •3. Проблемы защиты информации. Часть 2. 25
- •12. Электронная почта 218
- •13. Электронная цифровая подпись 231
- •14. Компьютерная стеганография 244
- •1. Современное состояние информационной безопасности
- •2. Проблемы защиты информации. Часть 1.
- •3. Проблемы защиты информации. Часть 2.
- •4. Основные пути обеспечения безопасности информации
- •5. Правила организации защиты информации
- •6. Определение степени защищенности сети
- •7. Методы и средства защиты информации от нсд
- •8. Методы и средства защиты информации от вредоносного программного обеспечения
- •9. Методы и средства защиты информации от удаленных атак
- •10. Ведение в криптографические методы защиты информации
- •11. Организация криптографической защиты информации
- •12. Электронная почта
- •13. Электронная цифровая подпись
- •14. Компьютерная стеганография
- •Литература
13. Электронная цифровая подпись
Необходимость использования электронной цифровой подписи
В чем же состоит определение подлинности (аутентификация) информации? Прежде всего в установке того факта, что полученная информация была передана подписавшим ее отправителем, и что она при этом не искажена.
Сегодня нетрудно констатировать, что электронные технологии идут вперед с головокружительной скоростью. Словосочетание «электронная цифровая подпись» стало уже привычным. А еще сравнительно недавно пользователи с большим недоверием относились к электронным документам, считая, что подделать их проще, чем документы на бумажном носителе.
Собственноручная подпись под документом с давних пор используется людьми в качестве доказательства, что человек, подписавший данный документ, ознакомился с ним и согласен с его содержанием. Почему же подпись заслужила такое доверие? Основные причины этого заключаются в следующем:
– подлинность подписи можно проверить (ее присутствие в документе позволяет убедиться, действительно ли он был подписан человеком, который обладает правом ставить эту подпись);
– подпись нельзя подделать (подлинная подпись является доказательством того, что именно тот человек, которому она принадлежит, поставил эту подпись под документом);
– подпись, которая уже стоит под одним документом, не может быть использована еще раз для подписания второго документа (подпись — неотъемлемая часть документа и ее нельзя перенести в другой документ);
– подписанный документ не подлежит никаким изменениям;
– от подписи невозможно отречься (тот, кто поставил подпись, не может впоследствии заявить, что он не подписывал этот документ).
На самом деле, ни одно из перечисленных свойств подписи полностью, на все 100%, не выполняется. В нашем современном криминальном обществе подписи подделывают и копируют, от них отрекаются, а в уже подписанные документы вносят произвольные изменения. Однако люди вынуждены мириться с недостатками, присущими подписи, поскольку мошеннические трюки с подписями проделывать не просто и шансы быть пойманными у мошенников достаточно велики.
Проблему электронной подписи можно было бы решить путем создания сложных считывающих устройств, разлагающих подпись на бумаге на элементы, переводящих эти элементы в цифровой код и на приемном конце производить операцию проверки подлинности, сверяя полученный цифровой код с хранящимся образцом. Такие технические средства уже используются, но, в основном, для защиты от несанкционированного доступа, где пользователь ставит свою подпись и в его присутствии происходит сверка. Совсем иначе обстоят дела, если документ послан по почте. При этом возникает трудная проблема: подписанный документ можно перехватить и изменить или полностью заменить, и к поддельному документу «приклеить» подпись, «отрезанную» от подлинного.
Попытка использовать подпись в компьютерных файлах сопряжена с еще большими трудностями по тем причинам, что:
– любой файл можно скопировать вместе с имеющейся в нем подписью;
– после подписания в файл можно внести любые изменения, которые в принципе не поддаются обнаружению.
Эти недостатки устраняются при использовании электронной цифровой подписи, позволяющей заменить при безбумажном электронном документообороте традиционные печать и подпись. Она не имеет ничего общего с последовательностью символов, соответствующих печати или подписи, приписанной к документу. При построении цифровой подписи вместо обычной связи между печатью или рукописной подписью и листом бумаги выступает сложная зависимость между документом, секретным и общедоступным (открытым) ключами, а также цифровой подписью. Невозможность подделки электронной цифровой подписи обусловлена очень большим объемом математических вычислений.
Эта подпись может иметь вполне читаемый, «буквенный» вид, но чаще она представлена в виде последовательности произвольных символов. Цифровая подпись может храниться вместе с документом, например, стоять в его начале или конце, либо в отдельном файле. Естественно, что в последнем случае при проверке подписи необходимо располагать как самим документом, так и файлом, содержащим подпись.
Чего мы хотим от электронной цифровой подписи и чем она лучше обычной? Электронная цифровая подпись — это средство, позволяющее на основе использования криптографических методов определить авторство и подлинность документа. При этом электронная цифровая подпись имеет следующие преимущества:
– возможность идентификации принадлежности подписи на основе объективных показателей;
– высокая защищенность от подделки;
– жесткая связь с подписываемым документом.
Если первые два условия еще можно как-то реализовать для традиционной подписи, то третье выполняется только в случае применения электронной цифровой подписи. Ведь она представляет собой специальный зашифрованный код, присоединяемый к электронному сообщению. Это еще и один из самых перспективных способов аутентификации и установления доверительных связей на рынке электронной коммерции. Но до сих пор не существует единого мнения о том, какой способ шифрования наилучший и как организовать сети, где используются цифровые подписи. Но и в случае применения цифровой подписи существуют «подводные камни», угрожающие электронным документам.
Рассмотрим возможные угрозы (виды злоумышленных действий), которые наносят существенный ущерб развитию электронного документооборота. Они подрывают доверие к компьютерной технологии визирования документов. При обмене электронными документами (рис. 4.34) существуют следующие виды злоумышленных действий:
– отказ от авторства или от факта получения документа;
– модификация документа;
– подмена документа;
– активный перехват;
– подмена имени («маскарад»);
– повторная рассылка документов.
В случае отказа от авторства пользователь А заявляет, что не посылал документ пользователю В, хотя на самом деле послал. При модификации документа пользователь А сам изменяет полученный документ и утверждает, что именно таким получил его от пользователя В. Когда пользователь В формирует документ и заявляет, что получил его от пользователя А, имеет место подмена документа. Если злоумышленник подключился к сети, он активно перехватывает информацию и вносит в нее изменения. В ситуации, когда пользователь С посылает документ не от своего имени, а от имени пользователя А, имеет место подмена имени или так называемый «маскарад». При повторной рассылке документов пользователь С повторяет посылку документа, который пользователь А ранее послал пользователю В. Для этого, чтобы исключить возможность подобных злоумышленных действий, и придумали электронную цифровую подпись.
П
ри
выборе алгоритма и технологии
аутентификации необходимо предусмотреть
надежную защиту от всех перечисленных
видов злоумышленных действий. Однако
в рамках классической (одноключевой)
криптографии защититься от угроз
всех этих видов трудно, поскольку имеется
принципиальная возможность
злоумышленных действий одной из сторон,
владеющих секретным ключом.
Никто не может помешать пользователю, например, создать любой документ, зашифровать его с помощью имеющегося ключа, общего для двух пользователей, а потом заявить, что он получил этот документ от него.
Значительно эффективнее работают схемы, основанные на использовании двухключевой криптографии. В этом случае каждый передающий пользователь имеет свой секретный ключ, а у всех других пользователей есть несекретные открытые ключи передающих абонентов. Эти открытые ключи можно трактовать как набор проверочных соотношений, позволяющих судить об истинности подписи передающего пользователя, но не позволяющих восстановить секретный ключ подписи. Передающий пользователь несет единоличную ответственность за свой секретный ключ. Никто, кроме него, не в состоянии сформировать корректную подпись. Секретный ключ передающего пользователя можно рассматривать как его личную печать, и ее владелец должен всячески ограничивать доступ к ней.
Таким образом, электронная цифровая подпись представляет собой некое достаточно длинное число, полученное в результате преобразования электронного образа защищаемого документа с использованием секретного (личного) ключа отправителя. Любой может проверить стоящую под документом электронную цифровую подпись при помощи соответствующих преобразований с использованием опять-таки электронного образа документа, открытого (публичного) ключа отправителя и собственно значения ЭЦП. Открытый и секретный ключи однозначно связаны между собой, однако невозможно вычислить секретный ключ по открытому. Точнее, если формулировать совсем строго, то пока не найдено алгоритмов, позволяющих сделать такие вычисления за приемлемое время с учетом современного уровня развития техники и используемой длины ключей.
Криптостойкость цифровой подписи должна обеспечивать трудность ее подделки любым человеком, не имеющим доступа к секретному ключу. Причем трудоемкость подделки должна быть велика как для совершенно постороннего пользователя, так и для участника данной сети и не зависеть от числа подписанных документов, перехваченных злоумышленником. Кроме того, на нее не должно влиять то, что у злоумышленника есть возможность готовить документы «на подпись» отправителю. Причем должна обеспечиваться соответствующая защита от несанкционированного доступа к хранящемуся секретному «образцу подписи».
Реализация цифровой подписи
Чтобы поставить цифровую подпись под конкретным документом, необходимо проделать довольно большой объем вычислений. Эти действия осуществляются в два этапа:
– генерация ключей;
– подписание документа.
При использовании несимметричного шифрования, а именно его и применяют для цифровой подписи, каждый абонент, обладающий правом подписи, самостоятельно на своем компьютере формирует два ключа подписи: секретный (co6ственный) и открытый (общий).
Секретный ключ применяют для выработки подписи (рис. 4.35). Только секретный ключ гарантирует невозможность подделки злоумышленником документа и цифровой подписи от имени заверяющего. Никто, кроме владельца, не сможет сформировать ЭЦП под документом. Зато любой может проверить (с помощью доступного всем открытого ключа), что документ подписал именно владелец и что документ не искажен (так как значение ЭЦП зависит и от содержимого документа). Логичное следствие состоит в том, что невозможно просто перенести ЭЦП с одного документа на другой (по аналогии с ксерокопированием или сканированием обычной подписи на бумажном документе или использованием факсимиле). Таким образом, можно сказать, что электронная цифровая подпись является реквизитом данного конкретного электронного документа.
Открытый ключ вычисляется как значение некоторой функции от секретного, но знание открытого ключа не дает возможности определить секретный ключ. Открытый ключ можно опубликовать и использовать для проверки подлинности документа и цифровой подписи, а также для предупреждения мошенничества со стороны заверяющего в виде отказа его от подписи документа. Открытым ключом можно пользоваться только в том случае, если известны его подлинность и авторство, которые подтверждаются сертификатом. Поэтому во избежание подделки или внесения искажений, обмен и хранение открытых ключей должны осуществляться в защищенном виде. Для этого можно использовать секретный канал связи или в открытом канале связи средства электронной цифровой подписи, а при работе со средствами криптографической защиты необходимо контролировать целостность справочника открытых ключей.
Открытые ключи всех участников обмена информацией должны быть доступны всем для возможности проверки ЭЦП. То есть их можно размещать на серверах, передавать по радио, писать на заборах и публиковать в колонке частных объявлений в газете.
Естественно, говорить об этом с уверенностью можно только в том случае, если генерацию ключей производил сам владелец ключа либо (если он не располагает соответствующей техникой) удостоверяющий центр в его присутствии. В этой связи вызывает недоумение практика, распространенная в некоторых системах, когда организатор системы генерирует ключи заранее, а потом раздает пользователям.
На первом этапе для каждого абонента генерируют пару ключей — секретный и открытый, которые связаны между собой с помощью особого математического соотношения. Открытый ключ следует рассматривать как необходимый инструмент, позволяющий определить автора подписи и достоверность электронного документа, но не позволяющий вычислить секретный ключ.
Возможны два варианта проведения этого этапа. Естественным представляется вариант, когда генерацию ключей абонент может осуществлять самостоятельно. Не исключено, однако, что в определенных ситуациях эту функцию целесообразно передать центру, который будет вырабатывать пары «секретный‑открытый» ключ для абонентов и заниматься их распространением. Второй вариант имеет целый ряд преимуществ административного характера, однако обладает принципиальным недостатком — у абонента нет гарантии, что его личный секретный ключ уникален. Другими словами, можно сказать, что здесь все абоненты находятся «под колпаком» центра и он может подделать любую подпись.
Первый вариант заключается в том, что пользователь передает сам свой открытый ключ всем, с кем собирается вести переписку. По очевидным причинам он технически сложен (не со всеми можно встретиться лично, невозможно заранее предусмотреть всех адресатов).
Второй вариант заключается в создании центра сертификации (Certificate Authority). В качестве такого центра выбирают человека, которому все доверяют и с которым хотя бы один раз могут встретиться лично либо имеют надежный (т. е. не допускающий искажений/подделок) канал связи. После выбора такого лица все участники обмена генерируют свои пары ключей и, прихватив свой открытый ключ, выстраиваются в очередь к центру сертификации, который за умеренную плату удостоверяет личность пришедшего и подписывает его открытый ключ своим секретным ключом.
Кроме собственно открытого ключа, в блок подписываемых данных входят дополнительные сведения: имя владельца, другие идентифицирующие данные, сроки действия ключа, перечень информационных систем, в которых допустимо его использовать и др. Все это вместе (открытый ключ, блок данных и ЭЦП) называется сертификатом открытого ключа.
Владелец ключа получает на руки сертификат и открытый ключ центра. Теперь он просто счастлив — центр удостоверил принадлежность ключа ему (поэтому в Законе об ЭЦП данные центры именуются удостоверяющими центрами). Поскольку другие участники системы также получают вместе с сертификатом копию открытого ключа центра (получают лично), они могут удостовериться в принадлежности любого открытого ключа, не встречаясь лично с его владельцем, потому что теперь при установлении связи пользователи обмениваются не просто открытыми ключами, а сертификатами. Так, к почти строгому математическому механизму ЭЦП добавился организационный.
Таким образом, каждому пользователю, обладающему правом подписи, необходимо иметь лишь один секретный ключ и справочник регистрационных записей открытых ключей абонентов сети. Если у пользователя нет права подписи, но в процессе работы ему необходимо проверять подписи, проставленные под документами, он должен иметь лишь справочник открытых ключей. Для формирования справочника существует несколько возможностей. Например, список открытых ключей может формироваться в «центре» (выделенный пользователь, обладающий особыми полномочиями). «Центр» получает готовую регистрационную карточку открытого ключа абонента, формирует справочник открытых ключей, рассылает абонентам сети и контролирует его целостность и истинность.
Системы цифровой подписи организуются внутри инфраструктуры открытого ключа PKI (Public Key Infrastructure), которая поддерживается уполномоченным по сертификатам. Он отвечает за выдачу ключей и гарантирует подлинность сертификатов.
Базовые правила для каждой сети цифровой подписи должны быть тщательно проработаны. К примеру, необходимо определить, какой метод шифрования будет использоваться, кто будет выступать в роли уполномоченного по сертификатам.
Математические схемы, используемые в алгоритмах, реализующих цифровую подпись, основаны на однонаправленных функциях. Гипотеза о существовании односторонних функций является одним из результатов теории сложности и теории функций. Напомним, что односторонней называется функция, определенная (например) на множестве натуральных чисел и не требующая для вычисления своего значения больших вычислительных ресурсов. Но вычисление обратной функции (то есть по известному значению функции восстановить аргумент) оказывается невозможно теоретически или (в крайнем случае) вычислительно.
Строгого доказательства существования односторонних функций пока нет. Поэтому все используемые в настоящее время хэш-функции являются лишь кандидатами в односторонние функции, хотя и имеют достаточно хорошие свойства. Основными свойствами криптографически надежной хэш-функции являются:
– рассеивание;
– стойкость к коллизиям;
– необратимость.
Свойство рассеивания требует, чтобы минимальные изменения текста, подлежащего хэшированию, вызывали максимальные изменения значения хэш-функции. К таким изменениям относятся вставки, выбросы, перестановки и т. п.
Коллизией хэш-функции называется ситуация, когда два различных текста (вне зависимости от длины) могут иметь одинаковые хэш-функции. Значение хэш-функции всегда имеет фиксированную длину, а на длину исходного текста не накладывается никаких ограничений. Из этого следует, что коллизии существуют. Требование стойкости к коллизиям обозначает, что для криптографически надежной хэш-функции для заданного текста вычислительно невозможно найти другой текст, вызывающий коллизию. Иными словами, вероятность того, что значения хэш-функции двух различных документов совпадут, должна быть ничтожно мала.
Свойство необратимости заключается в том, что задача подбора документа, который обладал бы требуемым значением хэш-функции, вычислительно неразрешима. Для данной функции нельзя вычислить, какие два исходные сообщения могут генерировать одно и то же хэш-значение, поскольку хэш‑значения двух 256-битных документов могут совпасть лишь в одном из 2256 (1077) случаев.
При подписании прежде всего документ «сжимают» до нескольких десятков или сотен байт с помощью хэш-функции. Здесь термин «сжатие» вовсе не аналогичен термину «архивирование». После архивирования информация может быть восстановлена. Значение же хэш-функции лишь только зависит от документа, но не позволяет восстановить сам документ.
Если к полученному хэш‑значению применяется некоторое математическое преобразование (шифрование секретным ключом), то на выходе и получается цифровая подпись документа.
Размер собственно ЭЦП довольно велик, например, для ГОСТ Р 34.10-11.94 он равен 64-м байтам. После добавления служебной информации (порядка 50—200 байт в зависимости от реализации) эта величина существенно возрастает. Поскольку алгоритмы вычисления ЭЦП используют сложные алгебраические преобразования и являются сравнительно медленными, то для крупных центров обработки, где суточный объем электронных баз данных составляет величину порядка 50 000 — 60 000 шт., временные затраты на вычисление и проверку ЭЦП становятся значительными и заметно влияют на производительность системы в целом.
Процедура проверки подписи
Проверка подписи происходит в два этапа: вычисление хэш-функции документа и собственно математические вычисления, предусмотренные в данном алгоритме подписи, т. е. проверка того или иного соотношения, связывающего хэш-функцию документа, подпись под этим документом и открытый ключ абонента. Если требуемое соотношение выполнено, то подпись признается правильной, а сам документ — подлинным, в противоположном случае документ считается измененным, а подпись под ним — недействительной (рис. 4.36).
Проверяющий подпись должен располагать открытым ключом пользователя, поставившего подпись. Этот ключ должен быть аутентифицирован, то есть проверяющий должен быть полностью уверен, что данный открытый ключ принадлежит именно тому, кто выдает себя за его «хозяина». В случае, когда пользователи самостоятельно обмениваются ключами, эта уверенность может подкрепляться по телефону, личным контактом или любым другим способом. Когда же они работают в сети с выделенным центром, открытые ключи пользователей подписываются (сертифицируются) центром, и непосредственный контакт пользователей между собой (при передаче или подтверждении подлинности ключей) заменяется на контакт каждого из них с сертификационным центром.
Для разрешения споров между отправителем и получателем информации, связанных с возможностью искажения открытого ключа подписи, достоверная копия этого ключа может быть выдана третьей стороне (арбитру) и применена им при возникновении конфликта. Предъявляя контролеру открытый ключ — значение некоторой функции, вычисляемое с помощью секретного ключа, пользователь косвенным образом доказывает, что обладает секретным, но это еще не позволяет ему самому сменить свой номер в сети или выработать подпись под номером другого пользователя. Некоторые из них могут только проверять подписанные другими сообщения, другие (назовем их пользователями с правом подписи) могут, как проверять, так и самостоятельно подписывать сообщения. Кроме того, бывают случаи, когда кто-либо может ставить свою цифровую подпись только в качестве второй подписи после подписи определенного пользователя (начальника, например); это не меняет существа дела.
Юридическая правомочность использования аналогов собственноручной подписи (разновидностью каковых и является ЭЦП) декларирована в Гражданском кодексе. Конечно же, наши респектабельные фирмы и банк заключили между собой соответствующие договоры, в которых стороны признают, что подписанные ЭЦП документы имеют такую же юридическую силу, что и документы на бумажном носителе, подписанные обычной подписью и заверенные печатью. В этом же договоре стороны определяют, при помощи какого именно программного обеспечения или аппаратуры будет формироваться ЭЦП, порядок его использования (организационные и технические меры безопасности) и, самое главное, порядок разрешения конфликтных ситуаций. Применительно к ЭЦП разновидностей конфликтных ситуаций не так много:
– отказ от авторства сообщения (я это не писал/не посылал);
– отказ от факта приема сообщения (я этого не получал);
– оспаривание времени приема/отправки сообщения.
Возникновение двух последних ситуаций предотвращается изначально продуманным протоколом обмена сообщениями между абонентами. Во-первых, к каждому сообщению перед подписанием прикрепляется отметка времени. Во-вторых, на каждое полученное сообщение получатель отправляет подписанное ЭЦП подтверждение о его приеме. Отправитель, в свою очередь, получив подтверждение, отправляет подписанную ЭЦП квитанцию. Таким образом, на каждый акт информационного обмена приходится 3 посылки, что, конечно же, избыточно, однако позволяет избежать упомянутых выше проблем (естественно, обе стороны ведут в течение оговоренного времени архивы принятых/посланных сообщений с ЭЦП).
Во многих случаях трехшаговое общение позволяет легко разрешить и ситуацию с отказом от авторства. Эта ситуация также должна быть предусмотрена в договоре и, во избежание недоразумений, должна быть расписана по шагам: как формируется комиссия (сроки, число членов с обеих сторон, необходимость привлечения независимых экспертов), порядок установки с эталонной копии средств проверки, формальные признаки, по которым осуществляется проверка, порядок оформления результатов. Не следует забывать и о сохранении копий сертификатов открытых ключей в удостоверяющем центре в течение необходимого срока, определяемого договором между участниками обмена. Естественно, срок хранения должен быть не менее исковой давности, определенной Гражданским кодексом или иными правовыми актами для данного вида договорных отношений.
Основными применяемыми на сегодняшний день алгоритмами, реализующими хэш-функции, являются MD2, MD4, MD5, SHA и его вариант SHA1, российский алго-
ритм, описываемый стандартом ГОСТ Р 34.11-94. Наиболее часто используются MD5, SHA1 и 34.11 в России. Длина значения хэш-функции различна. Типичная длина составляет 16—32 байта.
Существует много математических схем подписи, наиболее известные из которых:
– RSA (R.L.Rivest, A.Shamir, L.Adleman) назван по первым буквам фамилий авторов;
– OSS (H.Ong, C.P.Schnorr, A.Shamir);
– Эль-Гамаля (T.EIGamal);
– Рабина (M.Rabin);
– Шнорра(С. P. Schnorr);
– Окамото-Сараиси (T.Okamoto, A.Shiraishi);
– Мацумото — Имаи (T.Matsuraoto, H.Imai);
– схемы с использованием эллиптических кривых и др.
В схемах RSA, Рабина, Эль-Гамаля и Шнорра трудность подделки подписи обусловлена вычислительной сложностью задач факторизации или дискретного логарифмирования. Среди схем, предложенных отечественными учеными, можно отметить оригинальную схему А. А. Грушо (1992 г.). Ее однонаправленная функция, в отличие от перечисленных выше, основана не на сложности теоретико-числовых задач, а на сложности решения систем нелинейных булевых уравнений. На базе перечисленных выше схем подписи созданы стандарты на ЭЦП. Стандарт — это достаточно подробное описание алгоритмов, по которым вычисляется и проверяется подпись.
В принятых стандартах на цифровую подпись США и России (DSS — Digital Signature Standard, ГОСТы Р 34.10-94 и Р 34.11-94) используются специально созданные алгоритмы. В основу этих алгоритмов положены схемы Эль-Гамаля и Шнорра.
Федеральный стандарт цифровой подписи DSS, который был впервые опубликован в 1991 году в США, описывает систему цифровой подписи DSA (Digital Signature Algorithm). Этот алгоритм разработан Агентством Национальной Безопасности США и принят в качестве стандарта цифровой подписи Национальным Институтом Стандартов и Технологии. Алгоритм использует метод шифрования с открытым ключом и является основой всей электронной коммерции, обеспечивая конфиденциальность и достоверность передаваемых по Internet данных. Длина подписи в системе DSA составляет 320 бит. Надежность всего стандарта основана на практической неразрешимости задачи вычисления дискретного логарифма. Однако, к сожалению, сегодня этот алгоритм уже не имеет достаточного временного запаса по нераскрываемости (10— 20 лет). Прореха скрывается в несовершенстве подпрограммы генерации псевдослучайных чисел. Вместо того чтобы вычислять разные цифры с равной вероятностью, она выбирает числа из некоторого диапазона. Этот недостаток цифровой подписи заметно облегчает ее взлом с использованием современных суперкомпьютеров.
В России «Закон об электронной цифровой подписи» принят Государственной думой 21 ноября 2001 года. В нем установлена права и обязанности обладателя цифровой подписи, указаны сертификаты ключа, выдаваемые удостоверяющим центром, определены состав сведений, содержащихся в сертификате ключа, срок и порядок его хранения и т.д.
У нас в стране выработка и проверка электронной цифровой подписи производятся на основе отечественного алгоритма криптопреобразования ГОСТ 28147-89. Данная процедура предусматривает использование двух различных ключей криптографического алгоритма отечественного стандарта. Этими ключами одновременно владеет только отправитель, который и подписывает сообщение. Кроме того, предполагается наличие двух независимых центров доверия (Центр 1 и Центр 2), которым доверяют все пользователи данной системы электронной цифровой подписи.
Кроме того, в России приняты стандарты: ГОСТ Р 34.10-94 «Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма» и ГОСТ Р 34.11-94 «Функция хэширования». В основу ГОСТ Р 34.10-94 положена однонаправленная функция, основанная на дискретном возведении в степень. Можно быть вполне уверенным, что алгоритм из стандарта ГОСТ Р 34.10-94 обладает высокой криптографической стойкостью.
Пользователи Internet используют в качестве основы своей системы ЭЦП известный пакет программ PGP, созданный под руководством Филиппа Зиммерманна. К основным преимуществам данного пакета, выделяющим его среди других аналогичных продуктов, относятся:
– открытость;
– стойкость;
– бесплатность;
– поддержка различных моделей распределения ключей;
– удобство программного интерфейса.
Открытость основана на том, что доступен исходный код всех версий программ PGP. Любой эксперт может убедиться, что в программе криптоалгоритмы реализованы эффективно. Для повышения стойкости криптоалгоритма применяются ключи достаточно большой длины. Пакет поддерживает как централизованную модель (через серверы ключей), так и децентрализованную модель (через сеть доверия) распределения ключей.
Однако, несмотря на то, что пакет свободно распространяется по сетям, это не означает, что его можно легко и доверительно использовать — существует патентное законодательство. Кроме того, в этих программах обнаружено несколько закладок (в частности, против систем, построенных на основе пакета программ PGP), при помощи которых были подделаны электронные документы.
В марте 2001 года два чешских криптолога объявили, что ими была обнаружена «дыра» в самой популярной программе шифрования электронных посланий — PGP. Ошибку обнаружили при изучении надежности электронной подписи в открытом формате OpenPGP, широко используемом сейчас для присылки сообщений.
Это уже второй случай обнаружения в PGP «дыры» для несанкционированного доступа к зашифрованным сообщениям. Предполагается, однако, что на этот раз дело обстоит несколько серьезнее, чем в случае с возможностью добавлять к открытому ключу дополнительный ключ ADK (Additional Decryption Key) и таким образом дешифровать данные. Как известно, чтобы воспользоваться этой программной ошибкой, необходимо сначала получить доступ к передаваемому сообщения компьютеру либо напрямую, либо через Internet. Обнаруженное уязвимое место в программе не дает возможности взлома кода, который до сих пор считается достаточно надежным, но открывает пути доступа, позволяющие мошеннику украсть у пользователя один из ключей.
Подчеркнем, что под стандартом на электронную подпись понимается только стандарт на криптографический алгоритм. Многие существенные детали в стандарте не оговорены (например, способ распространения открытых ключей, способ генерации псевдослучайных чисел и др.). Это, вообще говоря, может привести к тому, что разные средства, осуществляющие функции ЭЦП (каждое из которых соответствует стандарту!), окажутся несовместимыми между собой.
Новый отечественный стандарт на ЭЦП
В 2001 году на конференции, проводившейся Ассоциацией документальной электросвязи и представителями ФАПСИ, было официально объявлено об утверждении нового стандарта на электронную цифровую подпись. Этот стандарт, основанный на методе эллиптических кривых, вступает в силу с 1 июля 2002 года. Он придет на смену тому стандарту, который используется сейчас и который мы рассматривали выше. Новый стандарт будет иметь тот же номер, что и старый, за исключением того, что изменятся лишь цифры, обозначающие год.
Все ранее сертифицированные криптографические системы, использующие старый стандарт, сохранят свои сертификаты до конца срока их действия. Для всех новых или вновь сертифицируемых систем новый стандарт будет обязательным.
Ввод в действие нового стандарта связан с тем, что, по словам гендиректора ФАПСИ, действующий стандарт уже к 2003 году не будет обеспечивать достаточный уровень защиты. И хотя для подделки одной ЭЦП, соответствующей старому ГОСТу, сегодня требуется около 10 лет работы 10 000 компьютеров, он же и существенно увеличивает длину обрабатываемых сообщений (в российском алгоритме используются очень длинные ключи).
Проблему криптостойкости существующего стандарта можно было бы решить, увеличив длину шифровального ключа подписи, однако это приведет к неоправданным затратам и увеличению длительности обработки. Поэтому в новой редакции стандарта и используется математика эллиптических кривых.
Сегодня работа стандартов ЭЦП основана, в основном, на:
– классической математике;
– эллиптических кривых, использующих теорию алгебраических чисел.
Если первый подход уже давно известен, то второй метод подразумевает более короткий ключ, при этом процедуры обоснования его надежности сложнее, поскольку экспертов в области эллиптических кривых гораздо меньше, чем специалистов по теории чисел. Ключи в алгоритме с использованием эллиптических кривых могут быть созданы в 100 раз быстрее и занимают гораздо меньше места, чем ключи в алгоритме RSA.
Совсем недавно для оценки криптостойкости алгоритма, основанного на методе эллиптических кривых, были предприняты попытки взлома шифра с 97-битным ключом. Эта задача, поставленная Французским национальным институтом информатики (INRIA), была решена командой энтузиастов под руководством ирландского математика Роберта Харли (Robert Harley). Для этого потребовались 40-дневные объединенные усилия 195 добровольцев из 20 стран и 740 независимых компьютеров. По словам Роберта Харли, решить задачу шифрования с 97-битным" дискретным алгоритмом на основе эллиптических кривых труднее, чем взломать 512-битный несимметричный шифр RSA, который сегодня является промышленным стандартом.
Несколько позднее канадской компанией Certicom, занимающейся вопросами шифрования, которая хотела привлечь исследователей к тестированию уровня защиты, обеспечиваемого алгоритмом ЕСС (Elliptic Curve Cryptography), было инициировано исследование, посвященное анализу уже 109-разрядного ключа. Эта задача, получившая известность под кодовым наименованием ЕСС2К.108, была решена с помощью распределенной сети, включающей большое число компьютеров. В ее решении приняли участие 1300 человек из 40 стран, перебиравшие всевозможные комбинации ключей до тех пор, пока не был обнаружен искомый. Исходное тестовое сообщение было закодировано с помощью метода эллиптических кривых.
В своем проекте Certicom использовала свободно распространяемое программное обеспечение, которое Роберт Харли разработал для вычисления более 215 точек на эллиптической кривой, относящейся к классу кривых Коблитца. Данные о 2 млн «выделенных» точек были посланы на сервер AlphaServer в INRIA, где участники могли в реальном времени наблюдать за поиском ключа. Для взлома алгоритма использовались 9500 компьютеров в Internet. По данным INRIA, две трети вычислений пришлось на долю рабочих станций с операционной системой Unix, а одна треть — на компьютеры с Windows.
На решение такой задачи на одном компьютере с процессором Pentium II/450 МГц потребовалось бы примерно 500 лет. «Объем вычислений, проделанных нами, больше, чем нужно для взлома системы, защищенной открытым ключом наподобие RSA длиной как минимум 600 разрядов», — отметил Эрьен Ленстра, вице-президент по технологиям подразделения Citibank в Нью-Йорке, который также принимал участие в проекте. И это с учетом того, что компания Certicom выбрала кривую, отличающуюся свойствами, упрощающими задачу взлома кода, и была проделана примерно десятая часть всех вычислений, которые в обычных условиях должны потребоваться для взлома 109-разрядного ключа при шифровании по кривой. Проведенный проект показал относительную уязвимость некоторых кривых с особыми свойствами и подтвердил тот факт, что произвольные кривые лучше подходят для оптимальной защиты.
Остановимся вкратце на рассмотрении метода эллиптических кривых, использованного в новом стандарте на электронную цифровую подпись. Эллиптическая кривая описывается математическим уравнением вида:
у2 = x3 + ax + b,
где все вычисления выполняются по модулю выбранного просто числа р и 4aЗ + 27b2 = 0.
Этот случай называется нечетным, т.к. модуль р берется для некоторого числа нечетных значений р. Четный случай аналогичен, но вычисления при этом ведутся в конечном поле GF(2m) для некоторого целого числа т.
Проблему дискретного логарифма DLP (Discrete Logarithm Problem) кратко можно сформулировать так: «По заданному простому числу р, основанию g и значению gx(mod р) найти значение х». Причем проблема может быть сформулирована в ограниченной области.
Полезное для криптографии свойство эллиптических кривых состоит в том, что если взять две различных точки на кривой (рис. 4.37), то соединяющая их хорда пересечет кривую в третьей точке (так как мы имеем кубическую кривую). Зеркально отразив эту точку по оси X, мы получим еще одну точку на кривой (так как кривая симметрична относительно оси X). Это позволяет точно определить форму кривой. Если мы обозначим две первоначальные точки Р и Q, то получим последнюю (отраженную) точку P+Q. Представленное «сложение» удовлетворяет всем известным алгебраическим правилам для целых чисел, позволяя определить единственную дополнительную точку, которая называется бесконечно удаленной точкой и выполняет роль нуля (начала отсчета) для целых чисел.
Другими словами, можно определить форму кривой по заданным точкам (плюс бесконечно удаленной точке), что является обычным алгебраическим действием. Выражаясь математическими терминами, можно определить конечную абелеву группу (абстрактную группу с коммутативной бинарной операцией) на точках кривой, где нулем будет бесконечно удаленная точка. В частности, если точки Р и Q совпадут, то можно вычислить Р+Р. Развивая эту идею, можно определить kP для любого целого числа k, и, следовательно, определить значение Р и значение наименьшего целого числа k, такого что kP = F, где F — бесконечно удаленная точка. Теперь можно сформулировать Проблему дискретного логарифма эллиптической кривой (Elliptic Curve Discrete Logarithm Problem, ECDLP), на которой основана рассматриваемая система:
– Д
ля
эллиптических кривых и базовых точек
решение уравнений типа «Даны базовая
точка Р и расположенная на кривой точка
kP; найти значение k.»
представляет весьма и весьма сложную
задачу. С точки же зрения криптографии
на основе эллиптических кривых
имеется возможность определить новую
криптографическую систему (любая
стандартная система, основанная на
проблеме дискретного логарифма,
аналогична системе основанной на ECDLP).
Например, эллиптическая кривая DSA
(ECDSA) уже стандартизована
(ANSI X9.62), и
на ее базе можно реализовать протокол
открытого обмена ключами Diffie-Hellman.
– При определении системы эллиптической кривой требуются сама кривая и базовая точка Р. Эти элементы не являются тайной и могут быть одинаковыми для всех пользователей системы. Для данной кривой и точки несложно сгенерировать открытые и частные ключи для пользователей (частный ключ представляет просто случайное целое число k, а открытый ключ — точку kP на кривой). Однако чрезвычайно трудно создать подходящую кривую и точку. Главное — подсчитать количество точек на кривой. Для этого необходимо выбрать подходящую базовую точку Р, координаты которой должны иметь достаточно большое значение, чтобы гарантировать трудность взлома ECDLP. Но координаты точки Р должны делиться на количество точек на кривой (точки вместе с бесконечно удаленной точкой образуют конечную группу). И весьма вероятно, что, найдя число точек на кривой, мы не сможем найти базовую точку. Существуют и другие ограничения, которые необходимо учесть при построении кривых.
Подводя итог вышеизложенному, можно утверждать, что создание кривых — задача непростая. Пользователи могут применять «стандартные» кривые с помощью специального программного обеспечения, либо создавать собственные кривые, что занимает, к сожалению, очень много времени.
Системы на основе эллиптической кривой используют ключи малых размеров. Это значительно снижает требования к вычислительным мощностям по сравнению с требованиями систем на основе RSA. Как это влияет на скорость обработки, показывает табл. 4.10. В ней представлены сравнительные характеристики алгоритмов RSA и ECDSA (нечетный случай) при создании и проверке цифровых подписей. Оба алгоритма тестировали на параллельных процессорах Motorola 56303 DSP (66 МГц). При этом функция проверки подписи RSA использует е = 65 537.
Таблица 4.10. Сравнительные характеристики алгоритмов RSA и ECDSA (нечетный случай)при создании и проверки цифровой подписи
Алгоритм (длина ключа, бит) |
Время выполнения, мс |
|
|
Создание подписи |
Проверка подписи |
RSA (1024) |
25 |
< 2 |
ECDSA (160) |
32 |
33 |
RSA (2048) |
120 |
5 |
ECDSA (216) |
68 |
70 |
Как видно из табл. 4.10, при увеличении размеров ключа создание подписей с помощью ECDSA производится значительно быстрее, чем в системах RSA. Это различие в еще большей степени проявляется для однопроцессорных систем. С другой стороны, проверка подписи с помощью ECDSA, делается намного медленнее, чем эта же процедура в системах RSA и опять же различие усиливается для систем с одним процессором.
Обработка ECDSA может несколько ускориться в «четном» случае. Мощность процессора, затраченная на проверку подписи, при использовании, скажем, ECDSA может замедлить выполнение других приложений в системе. Множество систем имеют много удаленных устройств, соединенных с центральным сервером, и время, затраченное удаленным устройством для создания подписи (несколько секунд), не влияет на производительность системы в целом, но сервер должен также и подтверждать подписи, причем очень быстро. В некоторых случаях системы RSA (даже использующие большие ключи) возможно, будут более приемлемы, чем криптосистемы на основе эллиптической кривой. Тем не менее, криптосистемы на основе эллиптической кривой получают все большее распространение скорее как альтернатива, а не замена систем RSA, поскольку системы ECDLP имеют некоторые преимущества, особенно при использовании в устройствах с маломощными процессорами и/или маленькой памятью. Типичные области применения алгоритма на основе эллиптической кривой:
– m-commerce (мобильная торговля) (например, WAP, сотовые телефоны, карманные компьютеры);
– смарт-карты (например, ЕМУ);
– e-commerce (электронная торговля) и банковские операции (например, SET);
– Internet-приложения (например, SSL).
Из-за очевидной трудности взлома алгоритм ECDLP можно применять для высоко защищенных систем, обеспечивая достаточно высокий уровень безопасности. Как уже говорилось выше, в рассматриваемом алгоритме используются ключи значительно меньшего размера, чем, например, в алгоритмах RSA или DSA. В табл. 4.11 сравниваются приблизительные параметры эллиптических систем и RSA, обеспечивающих одинаковую стойкость шифра, которая рассчитывается на основе современных методов решения ECDLP и факторинга (поиска делителей) для больших целых чисел.
Таблица 4.11. Параметры эллиптических систем и RSA, обеспечивающих одинаковую стойкость шифра
Длина ключа, бит |
|
Система на основе эллиптической кривой (базовая точка Р) |
RSA (длина модуля п) |
106 |
512 |
132 |
768 |
160 |
1024 |
224 |
2048 |
Из табл.4.11 видно, что, используя эллиптические кривые, можно строить хорошо защищенные системы с ключами явно меньших размеров по сравнению с аналогичными «традиционными» системами типа RSA или DSA. В частности, такие системы менее требовательны к вычислительной мощности и объему памяти оборудования и потому удобны, например, для смарт-карт или портативных телефонов.
Разумеется, есть и проблемы, ограничивающие повсеместное распространение криптографических систем на основе эллиптических кривых.
Главная проблема состоит в том, что истинная сложность ECDLP еще не осознана полностью. Недавнее исследование показало, что некоторые эллиптические кривые, использовавшиеся для отработки алгоритмов шифрования, фактически не подходят для таких операций. Например, если координаты базовой точки Р равны положению р, то ECDLP имеет простое решение. Такие кривые являются «аномальными» кривыми. Существуют, однако, и некоторые другие проблемы:
– реальная безопасность таких систем все еще недостаточно исследована;
– трудность генерации подходящих кривых;
– несовместимость с другими системами;
– относительно медленная проверка цифровой подписи.
Системами электронного документооборота с использованием ЭЦП оснащены администрация президента и представительства президента в федеральных округах. Сертифицированные средства используют Внешторгбанк (система «Верба»), Сбербанк, Министерство по налогам и сборам, Пенсионный фонд, внедрена система ЭЦП в аппарате правительства РФ.
Сертификацией средств электронно-цифровой подписи занимается ФАПСИ. Сегодня существуют две сертифицированные системы — «Криптон» фирмы «Анкад» и
«Крипто-про CSP» компании «Крипто-про». Действие сертификата ФАПСИ на систему «Верба» производства МО ПНИЭИ фактически закончилось.
По Указу Президента, применение сертифицированных ФАПСИ средств ЭЦП сегодня обязательно для государственных организаций, однако в действительности эта норма легко обойти (например, применение ЭЦП можно назвать «защитой информации»). Так, не сертифицированные в ФАПСИ средства применяются в ФСБ, МИДе и отчасти в Центробанке. Однако по новому закону использование сертифицированных ФАПСИ алгоритмов электронно-цифровой подписи в госорганах планируется сделать строго обязательным.
