БЕЗОПАСНОСТЬ
Совместимость различных протоколов и криптографических приложений, используемых для формирования электронной цифровой подписи, скрывает ряд проблем
Елена Никонова, Владимир Смирнов, Денис Копылов
Принятый в январе 2001 г. Закон РФ об ЭЦП стал первым в пакете законов, определяющих будущее развитие российской электронной коммерции и электронных финансовых технологий. Два других закона - “Об электронном документе” и “Об электронной торговле” - находятся в стадии подготовки.
Дебаты вокруг закона об ЭЦП сводятся к малопродуктивному поиску и обсуждению путей, позволяющих коммерческим структурам и частным лицам уклониться от расходов на лицензирование, смену ПО, оплату труда.
Вызывает споры и неправомерная конкретизация в законе определенных технических решений по созданию электронной подписи, в частности асимметричных криптографических преобразований с использованием сертификатов открытых ключей. Подобная конкретизация не позволяет распространить закон на асимметричные криптосистемы без сертификатов или на преобразования, называемые аналогами собственноручной подписи (АСП), такие, например, как биометрические методы авторизации.
Однако закон об ЭЦП уже вступил в силу, и теперь специалистам имеет смысл сосредоточиться на поиске разумных и эффективных решений. Тем более что предложенная в нем технология, ориентированная на создание инфраструктуры с открытым распределением ключей (pubic key infrastructure - PKI), надежна и эффективна, имеет мировой опыт практического внедрения и законодательного регулирования, а главное, в последние пять-шесть лет активно используется в России.
Рассмотрим некоторые технологические аспекты, связанные с применением закона об ЭЦП, и в первую очередь проблемы стандартизации и совместимости различных криптографических приложений и протоколов.
В общем случае типовая структура системы с PKI (подразумеваемая законом об ЭЦП), включает:
- удостоверяющий центр (УЦ), обеспечивающий формирование и публикацию цифровых сертификатов и списков отозванных сертификатов;
- владельцев и конечных пользователей цифровых сертификатов;
- организатора PKI, под чьим присмотром работают центр регистрации запросов на сертификацию и справочная служба на базе LDAP-совместимых протоколов, ведется архив электронных документов на случай возникновения споров, поддерживаются другие функции;
- системы разрешения споров на основе действующего законодательства;
- средства криптографической защиты информации (СКЗИ) для формирования и проверки ЭЦП.
Подпись под электронным документом формируется на основе секретного ключа пользователя и служит для установления подлинности (целостности и авторства) документа, а ее проверка выполняется с помощью открытого ключа, парного секретному. Секретный ключ должен быть известен только владельцу, а открытый ключ может распространяться свободно в составе цифрового сертификата и должен быть доступен любому пользователю информационной системы. Следует отметить, что законом об ЭЦП допускается изготовление ключей как самим пользователем на его рабочем месте, так и в удостоверяющем центре.
Цифровой сертификат открытого ключа представляет собой заверенный в УЦ набор данных, содержащий юридически значимую информацию о владельце ключа, имя издателя сертификата, собственно код открытого ключа, период действия сертификата, идентификаторы поддерживаемых криптографических алгоритмов и другую служебную информацию.
В качестве алгоритмов формирования и проверки ЭЦП в законе предусматривается использование российских криптографических стандартов - ГОСТ Р 34.10-94, ГОСТ Р 34.11-94 и нового ГОСТ Р 34.10-2001 на основе эллиптических кривых.
Разрешение споров, связанных с применением ЭЦП, основано на безусловном признании (“неотрекаемости”) пользователем своей электронной цифровой подписи под документом.
Содержащиеся в законе требования к условиям использования ЭЦП, процедур сертификации открытых ключей, обязательств во взаимоотношениях удостоверяющих центров и владельцев сертификатов и пр., по существу, соответствуют описанию PKI, определенному международным стандартом X.509, хотя этот стандарт в законе и не упоминается. В связи с этим представляется нелогичным, что разработчики закона, определив технологию ЭЦП, не пошли дальше и не оговорили структуру и форматы представления данных в составе цифрового сертификата, а упомянули лишь его необходимые информационные составляющие.
Отсутствие согласованных форматов может привести к тому, что поля сертификата будут неоднозначно толковаться, с одной стороны, формирующими их удостоверяющими центрами, а с другой - приложениями, которые их используют. Это может спровоцировать приложение на использование сертификата не по назначению или, наоборот, привести к неправомочному отказу в предоставлении определенной услуги владельцу либо пользователю сертификата.
Так, вследствие неверной интерпретации криптографическим приложением значения флага “сертификат ключа подписи” (ограничивающего применение ключа) владельцу сертификата будет отказано в формировании ЭЦП, если указанное приложение использует для подписи только сертификаты с установленным флагом.
Приведенный пример иллюстрирует проблему совместимости криптографических приложений на уровне PKI: параметры сертификатов, выпускаемых удостоверяющим центром для поддержания определенной PKI-системы, должны правильно пониматься и однозначно интерпретироваться любым приложением (независимо от производителя), пользующимся услугами указанной PKI. Эта проблема легко разрешается при условии, что все участники PKI, включая удостоверяющий центр, будут придерживаться единой структуры и формата представления данных в составе цифрового сертификата.
Российским разработчикам криптографических приложений не нужно выдумывать в этой области ничего нового. Международным комитетом по телекоммуникациям (ITU-T) и авторитетной общественной международной организацией Internet Engineering Task Forse (IETF) разработан стандарт X.509 и опубликованы рекомендации RFC 2459, RFC 3039, определяющие форматы цифровых сертификатов, которые широко и успешно используются не только зарубежными, но и многими российскими криптосистемами на основе PKI. В готовящихся дополнениях и нормативных актах, регламентирующих действие закона об ЭЦП, можно явно указать, что требования к формированию сертификатов должны соответствовать стандарту X.509 и рекомендациям RFC.
Этот момент весьма важен, так как единый стандарт на цифровые сертификаты - краеугольный камень в построении иерархической структуры и унификации подсистем распределения криптографических ключей в различных приложениях. В перспективе владельцы сертификатов получат возможность использования единого сертификата в различных PKI-системах, что облегчит их работу и упростит процедуру разрешения споров в судах.
Естественно, что для приведения формата сертификата X.509 в соответствие с положениями статьи 6 закона об ЭЦП понадобятся некоторые согласования по составу отдельных полей и атрибутов сертификата, однако стандарт x.509 достаточно гибок, чтобы удовлетворить все требования в соответствии с рекомендациями RFC.
К сожалению, введение единого стандарта на цифровые сертификаты само по себе еще не решает проблемы унификации PKI-систем, обслуживающих несколько приложений с разными СКЗИ. Для России эта проблема особенно актуальна, поскольку даже сертифицированные СКЗИ различных производителей, реализующие единые российские криптографические стандарты, практически несовместимы между собой. Как правило, каждое СКЗИ использует свои собственные идентификаторы алгоритмов, форматы представления их параметров и форматы хранения ключевой информации.
Таким образом, сертификаты, выдаваемые удостоверяющими центрами, поддерживающими СКЗИ различных российских производителей, оказываются несовместимыми между собой, даже если они придерживаются единого формата X.509 и реализуют один и тот же криптографический стандарт ЭЦП. Соответственно сертификаты удостоверяющего центра, построенного на базе одного СКЗИ, не смогут обслуживать криптосистемы, построенные на базе других СКЗИ, а подпись, сформированная одним СКЗИ, не может быть проверена другим.
Складывается абсурдная ситуация, когда приложения различных производителей прекрасно понимают друг друга, если используют зарубежные криптографические алгоритмы (например, RSA, DSA), тогда как при использовании российских стандартов проблемы совместимости возникают уже на уровне систем PKI: каждое приложение должно поддерживать по крайней мере два СКЗИ - свое собственное и то, которое применяется в обслуживающем УЦ. Практически это возможно, но подобные решения крайне трудоемки и неэффективны. Здесь было бы целесообразно обратиться к мировому опыту.
Как известно, в задачи упомянутой международной организации IETF входит координация действий по разработке протоколов, их подробное описание и присвоение унифицированных идентификаторов различным объектам, в том числе параметрам протоколов и используемым криптографическим алгоритмам. Присвоение идентификаторов и публикация формализованного описания протоколов в виде рекомендаций RFC с разработкой соответствующих стандартов и форматов представления информации способствует корректной интеграции криптографических алгоритмов во всевозможные криптографические протоколы (SSL/TLS, SHTTP, S/MIME, SET, IPSec и др.). Любой разработчик по номеру идентификатора может получить всю необходимую информацию о параметрах алгоритма, самом алгоритме, форматах, протоколах и пр. Если эта информация является закрытой, то по крайней мере публикуются данные о том, кто является ее владельцем и через какую организацию и каким образом можно получить к ней доступ.
Очевидно, что в случае с российскими криптографическими стандартами все эти вопросы должны решаться на государственном уровне, поскольку в России пока еще нет такой общественной организации, которая пользовалась бы безусловным доверием не только частных лиц, но и заинтересованных коммерческих и государственных структур, могла бы иметь достаточное финансирование для поддержки инициативных исследований и взяла бы на себя ответственность за координацию разработок новых алгоритмов, протоколов и форматов, их публикацию для обсуждений, взаимодействие с IANA (подразделение IETF, отвечающее за регистрацию идентификаторов) и т. д.
Сейчас в России в связи с введением нового государственного стандарта на ЭЦП (ГОСТ Р 34.10-2001) сложилась крайне благоприятная ситуация для принятия единого стандарта на формат представления параметров алгоритма ЭЦП и приведения в соответствие с международными стандартами структуры и форматов представления данных в составе цифрового сертификата (включая формат представления открытого ключа и ЭЦП).
Подобная стандартизация будет способствовать прозрачному исполнению закона об ЭЦП независимо от используемых СКЗИ в составе средств электронной подписи. Совместимость СКЗИ на уровне PKI дает два важных преимущества:
- приложения любых российских производителей смогут использовать сертификаты любых УЦ, удовлетворяющих требованиям закона об ЭЦП;
- электронная подпись, выполненная приложением одного производителя, может быть проверена приложением другого.
Не менее важной, чем стандартизация и совместимость, представляется еще одна принципиальная проблема - возможность выдачи сертификатов юридическим лицам.
Принятый закон ориентирован на выдачу сертификатов открытых ключей только физическим лицам, хотя описанная в нем технология ЭЦП вполне соответствует международным стандартам и рекомендациям, в частности Х.509 v.3, RFC 2459, которые предусматривают, что владельцами сертификатов могут быть и физические, и юридические лица. С технической точки зрения здесь особых проблем нет, поскольку в полях сертификата должность физического лица и его принадлежность к какой-либо организации могут быть явно прописаны, а в случае изменения персонального статуса сертификат будет обновлен. Проблемы возникают на уровне УЦ, сертификат которого в соответствии с законом также должен выдаваться на уполномоченное физическое лицо. Даже не рассматривая абсурдность ситуации, когда, например, в браузере наряду с авторитетными сертификатами VeriSign будут встречаться сертификаты какого-нибудь УЦ “Разумный риск” с доверенным лицом И. И. Ивановым, использование сертификатов физических лиц ставит под сомнение устойчивость всей конструкции. Заурядные события в жизни И. И. Иванова, как-то: смена работы, завершение земного пути и т. п. - приводят к компрометации всех PKI-систем, поддерживаемых данным УЦ. Во избежание этих проблем нам представляется целесообразным в качестве дополнения к закону об ЭЦП прописать возможность выдачи сертификатов юридическим лицам.
Итак, подведем итоги. По нашему мнению, для успешного технологического старта закона об ЭЦП необходимо как минимум:
- утвердить соответствие формата сертификата международным рекомендациям Х.509 и RFC;
- разработать единый государственный стандарт на форматы представления ключей СКЗИ, хранящихся на ключевых носителях и в составе сертификата, а также унифицировать значения и форматы представления параметров нового алгоритма ЭЦП (ГОСТ Р 34.10-2001);
- довести до судов всех уровней перечень сертифицированных СКЗИ, применяемых в российских PKI-системах, и разработать технологическую процедуру разрешения конфликтных ситуаций и организовать обучение специалистов;
- при подготовке нормативных документов ориентироваться на создание иерархической системы удостоверяющих центров без ограничения количества уровней.
Выполнение этих рекомендаций обеспечит совместимость форматов сертификатов, выдаваемых УЦ на основе различных СКЗИ, поможет разрешению споров, связанных с применением ЭЦП, в судах и позволит использовать сертификаты различных удостоверяющих центров в разных PKI-системах.
Законодателям при подготовке дополнений и подзаконных актов следует активно взаимодействовать с заинтересованными специалистами, иначе мы опять будем сетовать на то, что Россия пошла своим путем, не учитывая опыт законотворчества других развитых стран, уже принявших аналогичные законы.
С авторами статьи - сотрудниками компании “Сигнал-КОМ” и “Новый Адам”, можно связаться по адресу: signal@gin.ru.