Работа с ЭЦП до сих пор вызывает у многих администраторов существенные затруднения. Мало того, что сама тема является достаточно сложной и требует некоторых базовых знаний, так еще используемые в РФ системы СКЗИ имеют собственные особенности, которые нужно учитывать. Осложняет ситуацию еще и то, что разные типы электронных сервисов используют по умолчанию различные типы СКЗИ и вряд ли смогут оказать качественную поддержку в нестандартной ситуации. В нашем случае все именно так и было, поэтому пришлось во всем разбираться самостоятельно.
Начнем с Рутокен ЭЦП 2.0 - на первый взгляд это самый обычный токен красного цвета, который широко используется в системе ЕГАИС, вместо показавшей низкую надежность JaCarta. Используется для хранения ЭЦП ГОСТ предприятия или индивидуального предпринимателя и RSA-сертификата для доступа к ЕГАИС.
На самом деле Рутокен ЭЦП 2.0 - это не просто токен, а полноценное СКЗИ (средство криптографической защиты информации). В чем разница? Обычные токены являются контейнерами для хранения закрытого ключа (подписи, ЭЦП) и сертификата, при этом закрытый ключ может быть неизвлекаемым, т.е. выполнить его экспорт из токена невозможно. Но для работы с криптографическими функциями требуется специальное приложение - СКЗИ, которое будет шифровать, подписывать, проверять подпись, расшифровывать и т.д. и т.п. Наиболее известными программными СКЗИ являются КриптоПро и ViPNet.
Но у таких систем есть один серьезный недостаток - закрытый ключ выгружается в оперативную память, и хотя предпринимаются серьезные методы защиты этой области памяти, сам факт такой выгрузки дает возможность осуществления атаки с целью завладения закрытым ключом.
Рутокен ЭЦП 2.0 выполняет все криптографические операции самостоятельно, на собственном контроллере, при этом закрытый ключ никогда не покидает пределов токена. Дополнительный плюс - для работы с Рутокен ЭЦП 2.0 не требуется никакое дополнительное ПО, достаточно самого токена и драйверов в системе к нему.
Если брать область малого и среднего бизнеса, то чаще всего Рутокен ЭЦП 2.0 можно увидеть в составе системы УТМ ЕГАИС, в последние годы он безальтернативно вытеснил с этого рынка JaCarta. А так как токен уже содержит ЭЦП предприятия, то возникает желание использовать эту подпись и для других целей. Желание это вполне здравое, с некоторыми ограничениями ЭЦП из Рутокен 2.0 можно использовать практически для любых целей. К ограничениям относится невозможность работы с шифрованием CBC, это делает невозможным сдачу отчетов в МВД, Росприроднадзор. а также некоторых отчетов в ПФР и ФСС.
Но обычно этого и не требуется, чаще всего возникает необходимость использовать имеющуюся ЭЦП для ЭДО (электронного документооборота) и интеграции в систему Честный знак (маркировка). Одним из крупнейших провайдеров, предоставляющих услуги ЭДО является СБИС и об интеграции этой системы и подписи размещенной в Рутокен ЭЦП 2.0 у нас сегодня и пойдет речь.
Для понимания ситуации немного обрисуем диспозицию: имеется небольшой сельский магазин уровня минимаркета, одной из первых в нем была внедрена система ЕГАИС, ЭЦП для которой было получено в одном из региональных УЦ. затем возникла необходимость в ЭДО с поставщиками табачной продукции, которое было предоставлено СБИС, при этом использовалась уже существующая подпись из Рутокен ЭЦП 2.0, мы в этой настройке не участвовали, все было выполнено силами сотрудников СБИС.
Прошел год, ЭЦП ГОСТ была перевыпущена, с ЕГАИС никаких проблем не возникло, а вот ЭДО работать отказалось, сообщая, что сертификат не соответствует закрытому ключу. Это понятно и логично, если поменялся закрытый ключ, то нужно заменить и сертификат в ЭДО.
Откроем Панель управления Рутокен и на вкладке Сертификаты выполним экспорт сертификата в формат DER X.509.
Следующим шагом, вполне логичным на первый взгляд, будет импорт этого сертификата в СБИС. Он отлично импортируется, но отказывается работать, сообщая, что не может найти контейнер закрытого ключа. Еще одним настораживающим фактором является то, то при попытке импортировать сертификат в СБИС система упорно предлагает старый сертификат, хотя нигде в системе он не установлен.
Здесь мы проявили небольшую слабость и воспользовались опцией "звонок другу", т.е. в техническую поддержку. Приятная дама из СБИС, пробежав по базовым настройкам сообщила, что скорее всего что-то с подписью, а так как подпись выпустила другая организация, то обращайтесь туда. На наше возражение, что ЕГАИС работает нормально, значит подпись в порядке, дама осталась непреклонна.
Ну за спрос денег не берут, позвонили в УЦ выдавший подпись, там еще раз все проверили, подтвердили, что ЭЦП в порядке, а на вопрос про ЭДО отправили нас туда, где мы это самое ЭДО и приобрели. Ничего другого мы не ожидали, никто не будет помогать разбираться с продуктом конкурентов.
Снова звонок в СБИС, еще одна обходительная и приятная дама, минут двадцать мы с ней выгружали-загружали сертификаты, сравнивали новый сертификат со старым, проверяли настройки, но безуспешно. В итоге она сказала, что может нам только посочувствовать, мол подпись сделана не у них и, следовательно, они бессильны, а в качестве решения проблемы предложила приобрести еще одно ЭЦП, теперь уже от СБИС.
Вариант рабочий, но ведь до этого все работало, да и вгонять заказчика в дополнительные расходы - это не наш метод. Будем разбираться далее. Логика подсказывает: закрытый ключ на Рутокен ЭЦП 2.0 неизвлекаемый, следовательно, сертификат должен работать с токеном, но почему старый сертификат это может, а новый нет? Дополнительная подсказка таится в этом же старом сертификате, который СБИС настойчиво предлагает импортировать, хотя нигде в системе его нет. Тогда откуда? Логично предположить, что из токена, но Панель управления Рутокен никаких дополнительных сертификатов не показывает. Тем не менее они есть!
На помощь здесь придет ресурс cvs.sbis.ru, для работы с ним вам потребуется установленный СБИС Плагин. Перейдем в Криптооперации - Установка сертификата и нажмём в вверху кнопку Заполнить, а затем выберем найденный контейнер. Затем загрузим в него выгруженный на предыдущем шаге сертификат кнопкой Выбрать файл и установим, нажав на Установить.
После выполнения данной операции вернемся в СБИС и выполним импорт подписи, для этого перейдите в раздел Подписи - Другие операции - Зарегистрировать имеющуюся, теперь вместо старой подписи вам предложат импортировать новую.
Для дополнительной проверки вернитесь в Подписи, выберите импортированную подпись в самой правой колонке внизу вы должны увидеть надпись Рутокен ЭЦП 2.0 Rutoken ECP, это означает что контейнер закрытого ключа на токене привязан к данному сертификату и будет использоваться при криптографических операциях.