Pull to refresh

Российские ЭП для самых маленьких

Information SecurityCryptography
Картинка с бумажной подписью

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

Заключение договоров — дело привычное. Их заключают в банках, в больницах, при покупке мебели, оплате обучения. Прочитать договор, проверить реквизиты юридического лица, с которым заключается договор, убедиться в наличии печати и подписи — стандартная процедура, которая уменьшает риск обмана. Однако приобретённые навыки работы с бумажными договорами не могут просто так перейти в цифровой мир в силу специфики электронных документов.

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

Для меня эта история началась при заключении договора со страховой компанией ООО СК “Сбербанк страхование”. После оформления мне показались подозрительными некоторые факты (небольшой спойлер: всё оказалось хорошо) и я стал разбираться, как же мне проверить, что полученный документ действительно выдан страховой компанией, а не некими третьими лицами.

Что же меня насторожило?
После расчёта суммы в калькуляторе на сайте и заполнения формы с паспортными и контактными данными мне на электронную почту пришло письмо, в котором кроме общей информации, полезных ссылок и контактов было 3 вложения: памятка, правила страхования и сам полис. Я ознакомился с документами, оплатил страховку и стал ждать подписанную версию полиса.

Через полчаса ожидания я стал волноваться, быстрый поиск показал, что у страховой компании есть аж 3 разных активных домена: www.sberbank-insurance.ru, www.sberins.ru и sberbankins.ru, что не добавляло мне уверенности в компании.

Звонок в контакт центр принёс информацию о том, что присланный полис и является финальным документом с ЭП страховой компании. Мне показалось странным, что компания отдаёт уже подписанный документ еще до факта оплаты клиентом и я стал проверять полученный pdf файл.

Глава первая: проверка ЭП


Все манипуляции с PDF документом приведены в чистой версии ОС Windows 10, русская домашняя редакция, как наиболее вероятной среде работы простого пользователя. Набор софта, используемый в статье, также является непрофессиональным и доступным для всех.

Для начала я открыл документ в просмотрщике Foxit Reader, который использую как основной:



Это выглядит очень и очень подозрительно — документ модифицирован непонятно кем, сертификат также не является доверенным. Система не может проверить цепочку доверия для данного сертификата и помечает его недействительным.

Кроме имени организации, которой выдан сертификат, видно наименование выдавшей его организации, ООО “ИТК”. Поиск по запросу “ООО ИТК сертификат” вывел меня на страницу Установка корневого сертификата Удостоверяющего центра ООО «ИТК». Это официальный сайт ООО «Интернет Технологии и Коммуникации», который является одним из удостоверяющих центров, выдающих сертификаты ЭП.

Следуем инструкции: нам нужно пройти по ссылке и скачать с Google Drive (!) RAR архив (!!) «Корневой квалифицированный.rar» (который ещё надо найти чем открыть, пришлось ставить 7-zip) и видим там 2 сертификата: корневой и промежуточный. Корневой выдан Минкомсвязи самим себе, а промежуточный — министерством для ООО “ИТК”. Устанавливаем их, соглашаемся с добавлением корневого сертификата (краем глаза замечая, что sha1 отпечаток устанавливаемого ключа и картинки в инструкции совпадает, но про такое сравнение в пунктах установки ничего нет).


Снова открываем сертификат из документа. И чуда не произошло, цепочка доверия от корневого до конечного не строится!

Изучаем ЭП подробнее: в Foxit Reader есть дополнительная информация о свойствах подписи:


Ага, алгоритм хеширования ГОСТовский, ЭП создана в КриптоПро PDF. Возможно, Windows не знает про ГОСТ шифрование и поэтому ему нужен дополнительный криптопровайдер.

Идём на сайт КриптоПро, регистрируемся, скачиваем пробную версию КриптоПро CSP 5.0 на 3 месяца. Что будет дальше — не совсем понятно, возможно всё превратится в тыкву, посмотрим.

Снова открываем просмотр сертификата ЭП:


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

Сообщение о проверке немного улучшилось, но всё равно Foxit Reader не может проверить сертификат (вероятно дело в ГОСТовском алгоритме):


В Adobe Acrobat Reader DC проверка тоже не успешна:


И на этом вроде бы можно остановиться: Foxit Reader подтверждает, что документ не был изменен после подписания, руками можно проверить, что сертификат подтверждается системой и действителен. Но всё же хочется довести дело до конца, чтобы хотя бы одна программа сказала: да, документ действителен, всё хорошо.

Вспоминаем, что полис подписан в программе КриптоПро PDF. Вероятно, что раз она может создавать такие подписи, то уж наверняка должна их и проверять. Ставим.

+1 триал версия на 90 дней, хотя вроде бы надпись при установке успокаивает, что при использовании продукта в Adobe Acrobat Reader DC лицензия не нужна.


Ура, долгожданное сообщение о том, что всё хорошо.

Подведем промежуточный итог. Для проверки действительности ЭП на документе нужно:

  • Узнать, какой удостоверяющий центр выдал сертификат, которым подписан документ, установить его промежуточный и, если такого еще нет, корневой сертификат (в нашем случае из rar архива с Google Drive);
  • Установить в систему криптопровайдер (вероятно, существуют другие криптопровайдеры, которые обучат Windows ГОСТовским криптоалгоритмам) КриптоПро CSP с триалом на 3 месяца и неизвестностью после;
  • Для проверки подписи из Adobe Acrobat Reader DC установить КриптоПро PDF (без CSP он не ставится).

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

  • Нужно как-то найти и скачать корневой и промежуточный сертификаты. Непонятно, откуда его можно скачать официально, а поиск в сети может привести к установке левых сертификатов, через которые мошенники могут атаковать незадачливого пользователя;
  • Нужно понять, какого софта не хватает в системе и где его взять, из коробки ничего не работает. В данной статье приведены примеры на основе продуктов КриптоПро только потому, что это название встретилось в информации о создании ЭП. Нужно изучать тему в поиске аналогов;
  • Проверка полноценно заработала только в Adobe Acrobat Reader DC, в Foxit Reader проверка ЭП неполная, нет долгожданной зелёной галочки. Нужно копать дальше, вероятно есть решения.


Глава вторая: ещё одна ЭП



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

По отработанному алгоритму идём в поисковую систему с запросом “тинькофф сертификат”, находим официальный сайт УЦ АО Тинькофф Банк. Тут нас встречает изобилие ссылок на корневые сертификаты, списки отозванных сертификатов и даже видеоинструкция по их установке. Скачиваем “Цепочка корневых сертификатов УЦ АО Тинькофф Банк ГОСТ Р 34.10.2012”, на этот раз ссылка ведёт не на сторонний сервис, а на сайт банка. Формат файла P7B не очень известный, но открывается Windows без установки стороннего софта и показывает находящиеся в нём сертификаты. Здесь уже привычный корневой сертификат от Минкомсвязи (другой, не тот, что в первом случае) и промежуточный сертификат УЦ банка.


Ставим оба, проверяем сертификат в полисе. Но нет, сертификат не является доверенным, т.к. система не может подтвердить поставщика сертификата. На сайте УЦ было 2 ссылки на 2 цепочки сертификатов, один для ГОСТ Р 34.10.2001, другой для ГОСТ Р 34.10.2012. Полис был выпущен в этом году, логичнее бы его подписать уже более современным криптоалгоритмом (тем более уже есть версия ГОСТ от 2018 года, алгоритмы обновляются довольно часто), но давайте проверим старый.


В новом файле формата P7B оказывается уже 3 файла сертификатов. Можно поставить все 3, однако стоит заметить, что сертификат “Головного удостоверяющего центра” мы поставили в первой главе из RAR архива ООО “ИТК”, они идентичны. А сертификат с не очень говорящим названием “УЦ 1 ИС ГУЦ” поставил КриптоПро CSP, т.к. галочка об установке корневых сертификатов была установлена по-умолчанию в его инсталляторе. Единственным новым является сертификат АО “Тинькофф Банк”, который мы и ставим.

После установки сертификатов из “Цепочка корневых сертификатов УЦ АО Тинькофф Банк ГОСТ Р 34.10.2001” путь в сертификате прорисовался и система радостно сообщила, что он является доверенным. Adobe Acrobat Reader DC также подтвердил, что подпись действительна.


На этом приключения с проверкой ЭП на полисе еОСАГО завершаются. Заметно, что после того, как в системе уже установлен необходимый софт, а пользователь понимает принципы работы и поиска промежуточных сертификатов, то проверка подписи занимает уже меньше времени.

Но проблемные места по-прежнему видны: необходимо искать в интернете официальные сайты удостоверяющих центров, разбираться в инструкциях по установке сертификатов. Даже при установленных корневых сертификатах необходимо искать промежуточный, иначе цепочка доверия будет не полной и система не сможет подтвердить достоверность подписи.

Глава третья: немного про корневые и промежуточные сертификаты



Проделав всю эту работу, меня не покидало чувство, что вся система построена не очень безопасно, требует от пользователя кучу дополнительных операций и доверия многим факторам: от поисковой системы, которая может не выдать первой строкой официальный сайт УЦ, до работы самого персонала УЦ, который выкладывает сертификаты без контрольных сумм на сторонние веб сервисы в проприетарных форматах контейнеров.

За дополнительной информацией я пошёл на сайт Минкомсвязи и нашёл такую страницу. Там можно скачать XLS файл, в котором будут перечислены все имеющие в настоящий момент аккредитацию УЦ, а также УЦ с приостановленной и прекращенной аккредитацией. В списке аккредитованных находится 494 УЦ, что немало.

Однако просто списка недостаточно, нужны хотя бы ссылки на сайты этих УЦ, а также надо найти корневые сертификаты непосредственно от первоисточника, Минкомсвязи. Следующий точкой в поиске этой информации стал портал pravo.gov.ru, где перечислены ссылки на некоторые корневые сертификаты. Страница доступна только по http протоколу, контрольных сумм опять нет.

Приглядевшись, можно заметить, что первые 4 ссылки ведут на портал https://e-trust.gosuslugi.ru. Не совсем понятно, почему именно поддомен сайта госуслуг стал центральным в системе корневых сертификатов, но, кажется, тут приведена вся актуальная информация по корневым и промежуточным сертификатам.

На странице головного УЦ https://e-trust.gosuslugi.ru/MainCA приведены 10 корневых сертификатов от Минкомсвязи, для разных ГОСТ алгоритмов и с разными сроками действия. Тут же доступны слепки ключей, можно проверить, что скачанный сертификат никто не подменил. Сам сайт имеет сертификат от Thawte.

На странице аккредитованных УЦ https://e-trust.gosuslugi.ru/CA находится полный список промежуточных удостоверяющих центров, можно скачать их сертификаты, проверить слепок. Кроме этого вся информация доступна в формате XML. Одним разом можно получить файл с данными о всех промежуточных УЦ, а также их сертификаты и ссылки для получения списка отозванных сертификатов.

У сертификатов есть поле точки распространения списка отзывов (CRL), в котором прописан путь получения списка отозванных сертификатов. При проверке ЭП на каком-то документе кроме установки промежуточного и корневых сертификатов нужно также установить и последний список отозванных и обновлять его перед каждой проверкой (данная процедура автоматизируется специализированным софтом, но штатные средства вроде бы так не умеют). На портале e-trust у каждого сертификата указан путь к такому списку и он может отличаться от того, что написано в самом сертификате. Чему верить? Не совсем понятно.



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

После написания статьи осталось несколько открытых вопросов, которые хотелось бы обсудить с сообществом:

  1. аналоги КриптоПро, особенно opensource инструменты для создания и проверки ЭП;
  2. добавление валидации ЭП не только в Adobe Acrobat Reader DC, но и в Foxit Reader и другие;
  3. оставшиеся за пределами данной статьи проблемы, которые также важны и требуют внимания, но не проявились в моём случае.


UPD 0: В комментариях подсказали онлайн сервис на портале госуслуг для проверки ЭП документов: https://www.gosuslugi.ru/pgu/eds. К сожалению, не заработало в моём случае, но может быть полезно.

UPD 1: После написания статьи мне подсказали, что есть ещё один криптопровайдер, ViPNet CSP, который тоже может помочь с ГОСТовскими криптоалгоритмами в системе. Одновременная установка его с КриптоПро CSP под вопросом.

КДПВ: edar, Pixabay
Only registered users can participate in poll. Log in, please.
Всегда-ли вы проверяете ЭЦП в полученных электронных документах?
20% Да, всегда 13
38.46% Иногда 25
41.54% Никогда 27
65 users voted. 27 users abstained.
Tags:криптографияэпгостгост 34.10-2001гост 34.10-2012
Hubs: Information Security Cryptography
Rating +6
Views 6.7k Add to bookmarks 60
Comments
Comments 30