Репозиторий содержит пример реализации программы для создания и проверки электронной подписи с использованием CryptoPro. В этом руководстве подробно объясняется, как установить все необходимые инструменты, настроить окружение и использовать программу для работы с подписью.
Электронная подпись – это инструмент, который обеспечивает юридическую значимость и безопасность цифровых документов. Она подтверждает, что данные, содержащиеся в файле, остались неизменными после подписания, а также позволяет идентифицировать автора подписи.
Предположим, у вас или организации есть важный документ, который необходимо подписать, чтобы подтвердить его подлинность и защитить от изменений.
Документ передается в систему, поддерживающую работу с электронной подписью (в данном случае – CryptoPro). Система создает цифровую подпись в формате base64, содержащую информацию о документе, времени подписания и данные сертификата подписавшего.
Это называется отделенной подписью: подписываемый файл и подпись хранятся отдельно друг от друга. Это удобно, если требуется отправить документ вместе с подписью в различные учреждения или организациям.
Подписанный документ вместе с его подписью передается третьей стороне, в государственные органы, партнерам или клиентам.
При получении документа вместе с подписью принимающая сторона проверяет подлинность подписи через соответствующее программное обеспечение, например, CryptoPro или CPTools. Если содержимое файла было изменено, проверка завершится ошибкой. Если файл оригинальный, программа подтвердит его подлинность.
Электронная подпись содержит информацию о том, кто и когда подписал документ. Это исключает возможность подмены или искажения данных и обеспечивает высокий уровень доверия к содержимому.
Для работы с подписью необходимо установить CryptoPro CSP. Это программное обеспечение отвечает за реализацию криптографических алгоритмов.
- Перейдите на официальный сайт CryptoPro CSP и скачайте установочный файл.
- Установите программу, следуя инструкциям на экране.
- Убедитесь, что программа работает корректно, открыв панель управления CryptoPro CSP.
⚠️ Примечание:
Для скачивания потребуется регистрация на сайте CryptoPro.
Для работы с подписью в браузере необходимо установить плагин CryptoPro.
- Для Chrome, Edge или Яндекс.Браузера:
- Загрузите плагин из Chrome Web Store.
- Для Firefox:
- Скачайте плагин с официального сайта CryptoPro.
После установки:
- Перейдите на тестовую страницу плагина, чтобы убедиться в корректной работе плагина.
- На странице отображается список сертификатов, доступных в системе, а также полная диагностика корректности работы плагина.
- Вы можете протестировать создание подписи, проверку подписи и работу криптографических функций прямо на этой странице.
⚠️ Совет:
Если вы не видите доступные сертификаты или возникают ошибки, убедитесь, что плагин установлен корректно и вашему браузеру разрешено работать с локальным сервером (например,http://127.0.0.1:5500
).
Программа CPTools позволяет проверить созданную подпись и убедиться в её корректности.
- Скачайте программу CPTools с официальной страницы.
- Установите программу, следуя инструкциям на экране.
- Откройте CPTools и убедитесь, что она работает корректно.
- Используйте вкладку "Проверка подписи" для загрузки файла подписи и проверки её валидности.
Для работы с CryptoPro Browser Plugin необходимо добавить ваш локальный сервер в список доверенных узлов.
- Откройте настройки расширения CryptoPro в вашем браузере.
- В разделе "Список доверенных узлов" добавьте URL вашего локального сервера, например:
- Сохраните изменения.
⚠️ Примечание:
При добавлении веб-узлов в доверенные можно использовать символ*
для указания всех субдоменов данного узла. Например:http://127.0.0.1:*
Для работы с подписью необходим сертификат электронной подписи. Сертификаты выдаются аккредитованными удостоверяющими центрами (УЦ). Для получения сертификата:
- Выберите удостоверяющий центр, например:
- Подайте заявку на выпуск сертификата. Это может потребовать предоставления паспортных данных и иных документов.
- Установите сертификат в хранилище на вашем компьютере. Обычно это делается автоматически в процессе получения сертификата.
⚠️ Примечание:
Получение сертификата может потребовать оплаты. Для тестирования вы можете использовать пробные сертификаты, если они предоставляются вашим удостоверяющим центром.
git clone https://github.com/disa4148/crypto-signature-app.git
cd crypto-signature-app
npm install -g http-server
http-server .
После запуска локального сервера откройте его в браузере
- Укажите CN (Common Name) вашего сертификата в соответствующее поле.
- Нажмите кнопку "Найти сертификат".
- Если сертификат найден, появится уведомление, и вы сможете использовать его для подписания данных.
- Введите данные, которые необходимо подписать, в текстовое поле "Данные для подписи".
- Нажмите кнопку "Создать подпись".
- Подпись будет сгенерирована и отображена в поле "Подпись".
- Скачайте подпись в виде файла для последующей проверки или отправки.
- Загрузите оригинальный текст данных в текстовое поле "Данные для подписи".
- Вставьте подпись в поле "Подпись".
- Нажмите кнопку "Проверить подпись".
- Если подпись валидна, появится уведомление, подтверждающее её подлинность. Если данные или подпись изменены, появится сообщение об ошибке.
Этот репозиторий лицензирован под MIT License. Подробности см. в файле LICENSE.