Linux электронная подпись документов
Далее описан процесс настройки и проверки работоспособности на примере Ubuntu 20.04 LTS
1. Установка КриптоПро CSP версии 5.0.
1.1. Выполните регистрацию на сайте нашей компании. Если Вы уже зарегистрированы – выполните вход (необходимо ввести адрес электронной почты и пароль, которые Вы указывали при регистрации).
1.3. Ознакомьтесь с условиями лицензионного соглашения и нажмите кнопку «Я согласен с лицензионным соглашением. Перейти к загрузке».
1.4. Нажмите кнопку «Скачать для Linux», для загрузки дистрибутива актуальной версии КриптоПро CSP.
1.5. Распакуйте загруженный архив: tar -xvf linux-amd64_deb.tgz && cd linux-amd64_deb
1.6. Установите основные пакеты КриптоПро CSP: sudo ./install.sh
1.7. Установите дополнительные пакеты:
2.1. Установка «облачного» сертификата электронной подписи (через графический интерфейс пользователя).
2.1.1. Запустите приложение «Инструменты КриптоПро»: /opt/cprocsp/bin/amd64/cptools
2.1.2. Перейдите на вкладку «Облачный провайдер».
2.1.3. Укажите адрес сервера авторизации (1) и сервера DSS (2). Данные адреса необходимо получить в организации, предоставившей Вам «облачный» сертификат электронной подписи. Поле «Уникальное имя» (3) заполнится автоматически. Затем нажмите кнопку «Установить сертификаты» (4).
Обратите внимание! Если на вкладке «Облачный провайдер» уже будут указаны адреса https://dss.cryptopro.ru/STS/oauth и https://dss.cryptopro.ru/SignServer/rest (адреса тестового сервиса электронной подписи DSS, который не предназначен для хранения квалифицированных сертификатов электронной подписи и выполнения юридически значимых операций) — необходимо открыть выпадающий список под кнопкой «Выберите сервер» и выбрать пункт «Использовать новый сервер».
2.1.4. Введите логин пользователя для доступа к «облачному» сертификату, а затем нажмите кнопку «ОК».
2.1.5. Введите пароль пользователя для доступа к «облачному» сертификату, а затем нажмите кнопку «ОК».
2.1.6. При появлении уведомления о необходимости подтвердить операцию входа – выберите один из доступных методов аутентификации.
2.1.7. После этого Вы будете возвращены к интерфейсу программы «Инструменты КриптоПро». Чуть ниже кнопки «Установить сертификаты» появится уведомление об успешной установке.
2.2. Установка «облачного» сертификата электронной подписи (без использования графического интерфейса пользователя).
2.2.1. Выполните команду:
/opt/cprocsp/bin/amd64/csptest -cloud -register -login -save -unique -auth -rest -user -password
— — идентификатор сервера DSS. Можете задать любой, удобный для Вас идентификатор;
— — адрес сервера авторизации (необходимо получить в организации, предоставившей Вам «облачный» сертификат электронной подписи);
— — адрес сервера DSS (необходимо получить в организации, предоставившей Вам «облачный» сертификат электронной подписи);
— — логин пользователя для доступа к «облачному» сертификату;
— пароль пользователя для доступа к «облачному» сертификату.
2.2.2. Появление статуса [ErrorCode: 0x00000000] означает, что установка была выполнена успешно.
Обратите внимание! Установку сертификатов без использования графического интерфейса можно выполнить только в случае, если операция входа в центр идентификации DSS не требует вторичной аутентификации.
3.1. Проверка работоспособности (через графический интерфейс пользователя).
3.1.1. Перейдите на вкладку «Создание подписи».
3.1.2. Выберите Ваш «облачный» сертификат из списка (1), выберите любой файл для подписи (2) и нажмите кнопку «Подписать» (3).
3.1.3. Повторите действия из п. 2.1.4 – 2.1.6.
3.1.4. В случае успешного формирования подписи чуть ниже кнопки «Подписать» появится уведомление об успешном создании подписи.
3.2. Проверка работоспособности (без использования графического интерфейса пользователя).
3.2.1. Выполните команду:
/opt/cprocsp/bin/amd64/cryptcp -sign /path/to/file /path/to/signature.sig –q
— /path/to/file – путь до подписываемого файла;
— /path/to/signature.sig – путь до подписанного файла.
3.2.2. Если у Вас установлено несколько сертификатов электронной подписи – после выполнения команды нужно будет ввести порядковый номер требуемого сертификата.
3.2.3. Появление статуса [ErrorCode: 0x00000000] означает, что файл был успешно подписан.
Обратите внимание! Подписать файл без использования графического интерфейса можно только в случае, если операции входа и подписи не требует вторичной аутентификации.
Источник
ЭЦП по ГОСТ на GNU/Linux с помощью OpenSSL
Понадобилось как-то раз срочно подписать важный документ и отправить его контрагенту, который доверяет только бумаге с нотариально заверенной подписью или верифицированной ЭЦП. Попробуем же сэкономить время и деньги и по максимуму избежать платных проприетарных и аппаратных решений.
Удостоверяющий Центр выдал нам ключ и сертификат в одном PKCS#12 файле auth.p12
Я исхожу из того, что у нас в наличии есть linux и docker. Можно даже не локально — вполне можно закинуть наш документ куда-нибудь на хостинг и подключиться по SSH. Подробности установки docker и работы с докер-образами оставим за пределами этой заметки. Перейдём сразу к делу:
Прямо из папки, где лежит наш документ на подпись (document.pdf) и PKCS#12 файл (auth.p12) запускаем замечательный docker образ OpenSSL с поддержкой ГОСТ и заходим в контейнер:
sudo docker run —rm -i -t -v `pwd`:`pwd` -w `pwd` rnix/openssl-gost bash
Вытаскиваем из PKCS#12 файла приватный ключ и сохраняем его в pem-формате. Может потребоваться ввести ваш пароль от PKCS#12 файла.
openssl pkcs12 -in auth.p12 -out key.pem -engine gost -nodes -clcerts
Аналогично вытаскиваем из PKCS#12 файла и сертификат.
openssl pkcs12 -in auth.p12 -clcerts -nokeys -out pub.crt
Подписываем документ. Подпись будет отсоединенная, в формате PKCS#7 в отдельном файле (document.pdf.sig)
openssl smime -sign -signer pub.crt -inkey key.pem -engine gost -binary -noattr -outform DER -in document.pdf -out document.pdf.sig
Проверить подпись можно много где, как локально так и на сайте госуслуг, например.
Всё. Можно отправлять контрагенту документ и соответствующий sig файл.
Если вдруг у вас сертификат в формате DER (в Windows часто это файл с расширением .cer), то можно конвертировать такой сертификат в pem-формат:
Источник
Как добавить электронную подпись на .pdf-документ?
В Windows этот вопрос решается следущим образом:
А какие программы надо установить и что прочитать для Linux? интересуют, повторюсь, именно .pdf-файлы.
Я не уверен, что мне подойдёт openssl и gnupg, как написано здесь:
можно ли подписывать документы подписью юридического лица, а то в новости — Медведев узаконил электронную подпись написано, что нельзя.
какие ещё пакеты должны быть установлены
Но я не могу найти, какой .ebuild для этого устанавливать.
Но пока полного понимания, как это должно работать не появилось
«У них продукты «с поддержкой российской криптографии» представляют собой проприетарные версии опенсорсного софта.»
Но я не могу найти, какой .ebuild для этого устанавливать.
А ты забавный… Никакой? Потому что сперва его надо взять и написать.
Я пользователь, и такие тонкости знать не должен. Мне и любой другой вариант подписывания подойдёт, кроме того я не люблю кофе.
А ты не охерел ли? Во первых мне оно это твоё jsignpdf без надобности. А уж тем более в генте.
Я пользователь, и такие тонкости знать не должен.
Ты попутал — пользователи они толпами в сраном вендазе а в гентах пользователей нетути от слова абсолютно.
Я всегда так и думал, что гента никому не нужна.
Я всегда так и думал, что гента никому не нужна.
Если гента не нужна самим гентушникам, вот как к примеру тебе Einstok_Fair, то закономерно что она не нужна никому.
Я не гентушник, меня в гентушники не берут
Я не гентушник, меня в гентушники не берут
Но если подпись от jsignpdf не отличается, то зачем платить больше?
Как добавить электронную подпись на .pdf-документ?
Я б тебе посоветовал использовать официальный софт от компании разработчика формата pdf а не искать сторонние велосипеды. Как бы то ни было печально но в случае с pdf это всегда так.
Я не хочу официальный софт, потому что уверен, что он не опенсорсный ( пруф — https://github.com/adobe?q=reader ) . А если и опенсорсный, то не работает с ГОСТ.
.pdf мне нужен потому что он международный стандарт ISO 32000:2008
и разные книжки в библиотеки рассылаются в этом формате издательствами.
https://66.rkn.gov.ru/directions/p18759/p18815/
Экземпляр печатного издания в электронной форме должен быть представлен в формате PDF/A, использование других форматов не допускается
Я скачал выписку из ЕГРЮЛ с сайта ФНС. ФНС подписывает выписки для того, чтобы можно было передать их в суд.
Внутри документа на последней странице есть надпись-картинка «ДОКУМЕНТ ПОДПИСАН УСИЛЕННОЙ КВАЛИФИЦИРОВАННОЙ ЭЛЕКТРОННОЙ ПОДПИСЬЮ», ну и там дальше циферки про этот сертификат и срок действия.
Однако LibreOffice Write сверху красной строкой выводит «This document has an invalid signature». Кнопка «Show Signatures» ничего не делает при нажатии.
Что и где нужно настроить, чтобы эта подпись успешно проверялась?
Однако LibreOffice Write сверху красной строкой выводит
LibreOffice? PDF-ки? Не положено!
Не «неположено», а «недоустановлено» и «недонастроено».
Ты «подписанную» PDF-ку редактировать собрался, чтоле?
Дебил ты. Цитирую повторно:
Что и где нужно настроить, чтобы эта подпись успешно проверялась?
Нет, это ты дебил. Ты нафига PDF-ку редактором открываешь?
Чтобы проверить подпись.
нафига PDF-ку редактором Чтобы проверить подпись.
С логикой всё совсем плохо?
Отлично у меня всё с логикой. У Libre Office в меню file для этого специальный пункт. Файл открывается в readonly. Это у тебя незнание матчасти.
Это у тебя незнание матчасти
… нафига PDF-ку редактором?
Потому что функция редактирования это не единственная функция, которая реализована в программе Write. Там ещё есть функция проверки ЭЦП. Я запускаю программу Write, для того чтобы использовать вторую функцию, и не собираюсь использовать первую.
Попробую по другому. Нафига LibreOffice?
В википедии прочитал, что надо взять эту программу.
Ну ты сам себя послал в нужном направлении. 🙂
Нет, я тебе объяснил почему ты дебил, не знаешь матчасть, не читал википедию, и ко всему этому тупое хамло.
не знаешь матчасть, не читал википедию
Ну и кто тут дебил?
ты не знаешь матчасть, потому что ты не потрудился запустить Libre Office и посмотреть что в нём есть.
А не читал википедию потому что не знаешь как была выбрана программа Write
Т.е. к всему вышеперечисленному ещё ошибки в логике
Ни капли не ошибаюсь.
https://habr.com/ru/post/428429/
Электронная подпись ГОСТ Р 34.10 документов формата PDF в офисном пакете LibreOffice
Кат док.пдф пайп мд5сам.
И подпись отдельно, как делают тру пацики.
Подпись отдельно не соответствует стандарту PAdES = PDF Advanced Electronic Signature https://en.wikipedia.org/wiki/PAdES
А соответствие этому стандарту нужно для юридической значимости зарубежом
Пацики — на зону
Специалисты Рурского университета в Бохуме рассказали, как им удалось подделать цифровые подписи (и создать фейковые) для 21 из 22 десктопных приложений для просмотра PDF, а также 5 из 7 онлайновых сервисов. В список скомпрометированных исследователями решений вошли Adobe Acrobat Reader, Foxit Reader и LibreOffice, также онлайновые DocuSign и Evotrus.
А соответствие этому стандарту нужно для юридической значимости зарубежом
нужно для юридической значимости зарубежом
Для юридической значимости нужно использовать инструменты Plankton Software, используемые юристами и прочими.
Скройся под шконкой, петушок.
While PDF and ISO 32000-1 provide a framework for digitally signing their documents, PAdES specifies precise profiles making it compliant with the European eIDAS regulation (Regulation on electronic identification and trust services for electronic transactions in the internal market). The eIDAS regulation enhances and repeals the Electronic Signatures Directive 1999/93/EC.[3][4] EIDAS is legally binding in all EU member states since July 2014. An electronic signature that has been created in compliance with eIDAS has the same legal value as a handwritten signature.[3]
An electronic signature can carry legal effect and be used as evidence in legal proceedings. A qualified electronic signature shall have the equivalent legal effect of a handwritten signature. If the qualified certificate was issued in one Member State it shall be recognized as a qualified electronic signature in all other Member States.[8]
К сожалению Let’s Encrypt находится не в юрисдикции ЕвроСоюза (Headquarters: San Francisco, California, U.S.)
Но как же так? Ведь тогда теряется весь смысл импортозамещения.
Источник