Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.04.2012(UTC) Сообщений: 109
|
Добрый день! В нашем проекте стоит задача создать сервис по подписыванию PDF документов в соответствии с Российским законодательством. Насколько я понимаю, это означает соответствие стандартам: • ГОСТ Р 34.10-2001 – Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи. • ГОСТ Р 34.11-94 – Информационная технология. Криптографическая защита информации. Функция хэширования. Я протестировал код из примера Simple35\Pdf\Sign.cs При этом возник ряд вопросов. 1) В примере нигде явно не используются классы Sharpei. Означает ли это, что библиотека в примере не используется? Означает ли это, что не используются алгоритмы 34.11-94 для создания хеша и 34.10-2001 для создания подписи? Нужно ли для использования этих алгоритмов явно использовать классы и методы Sharpei? 2) Во время работы примера, при выполнении строчки кода Код:signedCms.ComputeSignature(cmsSigner, false);
появилось окошко, предлагающее ввести пароль для доступа к приватному ключу. Но нам необходимо создать сервис, который будет подписывать документы автоматически, никто вручную вводить ничего не будет. Соответственно вопрос - можно ли задавать пароль в коде? Отредактировано пользователем 19 апреля 2012 г. 23:13:15(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
В примере используется signedCms, который в свою очередь вызывает криптопровайдер, прописанный в используемом сертификате. Пароль (пин) проще всего запомнить средствами КриптоПро CSP или не задавать вовсе. Программно конечно можно тоже. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.04.2012(UTC) Сообщений: 109
|
Спасибо.
Возник еще один вопрос. В тесте для подписания PDF документа использовался тестовый сертификат, полученный на вашем УЦ. Я открыл подписанный документ в Acrobat Reader на том же компьютере с установленными КриптоПро CSP и КриптоПро PDF. Acrobat Reader провалидировал подпись и сказал, что она действительна. После этого я перенес подписанный документ на другую машину, где ничего не установлено кроме Acrobat Reader. Acrobat Reader сказал, что не может провалидировать подпись. Почему так произошло? Из-за того, что сертификат тестовый? Смогут ли наши клиенты проверить подпись документов при подписании реальным сертификатом после того, как мы запустим наш сервис?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Без КриптоПро CSP и КриптоПро PDF подпись проверить не получится - Adobe "не знает" российских криптоалгоритмов. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.04.2012(UTC) Сообщений: 109
|
maxdm написал:В примере используется signedCms, который в свою очередь вызывает криптопровайдер, прописанный в используемом сертификате. Но в этом случае получается, что библиотека КриптоПро .NET не нужна. Я удалил ее из проекта, но код все равно работает. Получается, что Microsoft CryptoAPI использует напрямую криптопровайдер КриптоПро CSP без библиотеки КриптоПро .NET? Отредактировано пользователем 20 апреля 2012 г. 14:21:51(UTC)
| Причина: Не указана
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.04.2012(UTC) Сообщений: 109
|
Возникла проблема при проверки подписи. После подписания файла в примере Simple35\Pdf\Sign.cs проверяю этот подписанный вайл в примере Simple35\Pdf\Verify.cs На строчке кода Код:PdfPKCS7 pk = af.VerifySignature(name);
вылетает exception: Цитата:Org.BouncyCastle.Security.SecurityUtilityException: Signer 1.2.643.2.2.9WITH1.2.643.2.2.19 not recognised. at Org.BouncyCastle.Security.SignerUtilities.GetSigner(String algorithm) at iTextSharp.text.pdf.PdfPKCS7..ctor(Byte[] contentsKey, Boolean tsp) at iTextSharp.text.pdf.PdfPKCS7..ctor(Byte[] contentsKey) at iTextSharp.text.pdf.AcroFields.VerifySignature(String name) at Simple35.Pdf.Verify.Main(String[] args) in C:\Projects\CryptoPro\simple35\Pdf\Verify.cs:line 68
Что не так не могу понять. Тестовый сертификат из вашего УЦ. Код примеров не менял. Однако что-то не работает. Не могли бы вы помочь разобраться? Используются VS2010, КриптоПро CSP 3.6 R2, КриптоПро .NET (1.0.4461.3), iTextSharp (5.2.1) Отредактировано пользователем 20 апреля 2012 г. 14:40:53(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,926 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 691 раз в 652 постах
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.04.2012(UTC) Сообщений: 109
|
Эту ветку я уже читал. Если в качестве примера подписи и проверки Вы имеете в виду файл pdf_signing.cs, то его я тоже скачал. Он ничем существенным не от личается от примеров в проекте simple35. Более того, примеры в simple35 как раз написаны на основе этой дискуссии. И проверка подписи также осуществляется методом af.VerifySignature(name). Именно он и вызывает exception.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,377 Откуда: КРИПТО-ПРО Сказал «Спасибо»: 32 раз Поблагодарили: 706 раз в 614 постах
|
Нужно пропатчить itext. Мы засылали патч разработчикам, они сначала его применили, потом откатили. Вот код патча. Отредактировано пользователем 20 апреля 2012 г. 16:47:56(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.04.2012(UTC) Сообщений: 109
|
maxdm написал:Нужно пропатчить itext. Мы засылали патч разработчикам, они сначала его применили, потом откатили. Вот код патча. Спасибо. Наверное дело именно в этом. Только я не очень понимаю, как этот патч поставить. Надо открыть исходники iTextSharp, добавить туда эти две строчки и перекомпилить? Отредактировано пользователем 20 апреля 2012 г. 17:32:27(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close