КриптоАРМ - программа для электронной подписи документов

17.12.06


Программа КриптоАРМ компании Digt фактически является стандартом для электронной подписи в России. Программа предназначена для работы с файлами и обеспечивает выполнение всех необходимых криптографических операций. КриптоАРМ поддерживает работу со стандартными криптопровайдерами Windows, а также с сертифицированными российскими криптопровайдерами КриптоПро CSP (компании «КриптоПро») и Signal-COM CSP (компании «Сигнал-Ком»). (В планах – поддержка криптопровайдера «Домен-К» компании «Инфотекс» и «Шипка» 1.5 компании «ОКБ САПР»). Если криптопровайдер поддерживает работу с электронными ключами (токенами), то и КриптоАРМ работает с ними. Таким образом в программе поддерживается работа с электронными ключами eToken (компании Aladdin) и ruToken (компании «Актив»). Поэтому, при использовании КриптоАРМа, хранение закрытых ключей может быть организовано в соответствии с теми регламентами, которые действуют или должны быть задействованы в организации.

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

С помощью КриптоАРМа реализуется два варианта формирования ЭЦП – отделенная ЭЦП, когда сформированная на основе криптографических функций подпись сохраняется в виде отдельного файла, и неотделенная, когда ЭЦП сохраняется в одном файле с подписанным документом.

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

КриптоАРМ позволяет сформировать для одного документа несколько равнозначных подписей, а также есть возможность каждую из них заверить еще одной подписью (заверяющая подпись). Таким образом, документ может подписать несколько человек, и все их подписи будут сохранены в одном файле, вне зависимости, отделенные это подписи или нет. Единственное условие, которое требуется выполнить при формировании множества подписей, заключается в том, что ключи, на которых будут формироваться подписи, должны быть созданы по одному и тому же алгоритму.

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

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

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

В программе реализована возможность проверки сертификатов как по локально сохраненным СОС, так и в режиме онлайнового запроса на УЦ. Имеется возможность назначения того или иного варианта проверки как для отдельного сертификата, так и для всех сертификатов, выданных каким-либо УЦ.

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

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

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

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

Еще одна служба – OCSP – выполняет в реальном режиме времени проверку статусов всей цепочки сертификатов – от личного до сертификата головного УЦ, подписывает ответ своим сертификатом и возвращает по адресу запроса. В КриптоАРМе есть возможность дополнения цифровой подписи ответами сервисов TSP и OCSP. Запросы к сервисам формируются в момент создания подписи. Адреса, по которым выполняются запросы, прописываются либо в настройках программы (для сервиса TSP), либо в самом сертификате. Полученные от сервисов ответы добавляются в состав подписи в качестве ее реквизитов и могут быть в дальнейшем просмотрены, аналогично просмотру данных о самой подписи. И штамп времени, и ответ OCSP может быть получен индивидуально для каждой подписи, проставляемой под документом.

Описанный выше формат подписи является одним из возможных вариантов, определенных международными рекомендациями. При его использовании метка штампа времени определяет то, что подписанный документ существовал не позднее получения штампа времени. Но есть и другой формат, рекомендованный европейскими стандартами - X Long (CAdES - CMS Advanced Electronic Signatures), в котором дополнительные реквизиты формируются несколько иначе. На основе этих рекомендаций компанией «КриптоПРО» был разработан аналогичный формат и для российских алгоритмов. Это – усовершенствованный формат подписи КриптоПРО. Отличие от ранее рассмотренного формата заключается в том, что штамп времени ставится на хэш уже сформированной подписи, а на ответ сервиса OCSP на него ставится еще один штамп времени. Поддержка данного формата реализована в версии программы КриптоАРМ "Стандарт +". При использовании этой версии программы пользователь сможет формировать подпись усовершенствованного формата, а проверять сможет и обычные подписи. КриптоАРМ "Стандарт" сможет просмотреть и усовершенствованную подпись, но не сможет показать ее дополнительные характеристики.

Еще один дополнительный модуль, который может быть подключен к КриптоАРМу, – "Клиент УЦ". Он позволяет использовать ПО "КриптоАРМ" в качестве клиентского места для взаимодействия с Удостоверяющим центром (УЦ). С его помощью можно формировать запросы в УЦ (и на первичную выдачу сертификата, и на повторную, на отзыв или приостановку действия), загружать из УЦ сертификаты других пользователей, распечатывать запросы и сертификаты. Для удобства работы с сертификатами в программу встроен собственный планировщик, позволяющий настроить выдачу напоминаний для событий, связанных со сроком действия личного сертификата, СОС, статуса запросов, переданных на рассмотрение в УЦ. Модуль поддерживает работу с Удостоверяющим центром «КриптоПро УЦ».

Хотя программа поставляется в виде законченного решения, разработчики предоставили возможность использовать ее и для встраивания во внешние приложения, представив ее в виде COM-компонента и включив в состав дистрибутива руководство для программистов. Таким образом, приобретая КриптоАРМ, пользователи могут интегрировать его в иные решения. Такая интеграция была выполнена БКИ "Южное", включившим КриптоАРМ в состав своего решения для обмена данными с банками, "Увадрев-Холдинг" интегрировал ее в систему 1С, «Кировэнерго» использовало КриптоАРМ для интеграции в свою систему документооборота. Аналогичная работа по встраиванию была проведена и компанией «РБК-Софт», которая ввела его в состав системы документооборота Documentum.

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