Что такое ЭЦП и для чего они нужны?
ЭЦП - реквизит документа, полученный криптографическим путем. В каждом государстве существует свой формат электронно-цифровой подписи (ЭЦП). В России стандарт принят с 2014 года.
Электронные подписи позволяют проверить:
- отсутствие изменений в документе (целостность);
- принадлежность подписи владельцу (авторство);
- факт подписания документа (неотказуемость).
Суть криптографической защиты не в том, чтобы на 100% защитить данные от взлома (таких гарантий вообще не существует в природе), а в том, чтобы попытка подделать или взломать подпись была экономически нецелесообразна. Допустим, если для взлома какой-то подписи требуется 200 лет и работа супердорогих мейнфреймов, то вряд ли кто-то станет этим заниматься.
Кто выдает ЭЦП?
На вершине иерархии находится Минкомсвязи РФ. По его лицензии работают удостоверяющие центры.
Удостоверяющий центр - это обычное юридическое лицо, зачастую даже не связанное с криптографией и информационными технологиями. Всего в России их около 400.
Удостоверяющий центр имеет право выдавать электронные подписи их владельцам на различных носителях.
Схема выдачи ЭЦП
Процесс состоит из двух действий: собственно подписание и проверка подписи.
В процессе подписания к массиву данных причисляется хэш-функция, полученные данные обрабатывается закрытым ключом или выносится в отдельный файл, в зависимости от типа подписи.
Проверка подписи производится в тестовых удостоверяющих центрах. Важно, что это проверка с чисто технической точки зрения. С юридической точки зрения подписи проверяются на сайте госуслуг.
В ходе проверки берутся данные, которые не подписаны, по ним вычисляется хэш-функция. Затем берутся данные, которые подписаны и подвергаются расшифровке. Затем сравниваются хэши. Если их значения равны, значит подпись верна.
Классификация подписей
По месту расположения подписей:
Присоединенная - результат криптографической операции добавляется к файлу
Отсоединенная - результат криптографической операции выносится в отдельный файл
И по типу подписываемых данных:
-Двоичные данные (бинарники),
-Xml-файлы
-Электронные документы (DOCX, PDF)
По уровню защиты:
-Простая электронная подпись
-Усиленная неквалифицированная ЭП
-Усиленная квалифицированная ЭП
Наибольшее распространение на сегодняшний день имеет усиленная квалифицированная подпись. Только она в России является легитимным доказательством в суде.
По месту хранения ключа:
-Смарт-карта (выглядит как кредитка. В связи с неудобством сегодня практически не используется)
-USB-брелок (выглядит как обычная флэшка, но не читается OC)
- Реестр операционной системы (по сути это хорошо запароленный компьютер)
Интеграция на frontend
Интеграция ЭЦП происходит в плотном контакте с системными файлами Windows. Для Linux и Mac интеграция подписей будет достаточно проблематичной. Об этом лучше заранее предупреждать заказчика.
Для интеграции требуется
•Зарегистрироваться на сайте поставщика сервиса криптографической защиты информации (СКЗИ);
•Установить СКЗИ;
•Установить средство взаимодействия браузера с СКЗИ.
Схема работы на Frontend:
Находясь на странице пользователь выбирает нужный файл при помощи Javascript в браузере. При помощи посредника файл передается сервису защиты информации, где происходит конвертация в bas064
СУществует два типа посредников: Браузерный плагин (КриптоПРО) и
Локальный сервер (VipNet)
Затем происходит запрос авторизации, вводится пароль. В СКЗИ производится шифрование и СКЗИ передает подписанный файл назад владельцу.
Важно: СКЗИ выводит файл не через браузер, а своими средствами через Javascript.
Допустимые операции на backend
Проверка валидности подписи;
Получение информации о сертификате;
Проверка валидности сертификата;
Установка штампов времени на сертификат;
Создание расширенной подписи.
Схема работы на backend
Основная проблема с интеграцией электронных подписей на сайт заключалась в том, что никто толком не знал сколько времени займет эта процедура, не было четкого алгоритма. Всю информацию в этом гайде мы и сами получили эмпирическим путем.
Надеемся, у нас получилось структурировать информацию и сделать вашу работу с ЭЦП проще.
Следите за нашим блогом, чтобы не проглядеть новых путеводных маяков в бушующем океане море web-разработки.