Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline dimappik  
#1 Оставлено : 19 октября 2010 г. 19:47:49(UTC)
dimappik

Статус: Новичок

Группы: Участники
Зарегистрирован: 19.10.2010(UTC)
Сообщений: 1
Откуда: СПб

Добрый день,
Разрабатываю библиотеку для подписывания PDF документов.
В качестве криптопровайдера используется КриптоПро CSP 3.6.
Одним из условий является правильность проверки подписи средствами КриптоПро PDF.

При записи подписи в документ используются следующие параметры:
Фильтр Adobe.PPKLite (хотя судя по сообщениям с форума Адобе - фильтр не имеет значение)
Субфильтр - adbe.pkcs7.detached

При проверке подписи средствами КриптоПро PDF вылетает след. ошибка:
"Unsupported cryptographic algorithm encountered error".

С pdf работаю через iTextSharp, с КриптоПро - через Sharpei.

Что можно предпринять, для того, чтобы КриптоПро PDF мог проверить подпись?

Отредактировано пользователем 30 декабря 2010 г. 20:05:46(UTC)  | Причина: Не указана

Offline Павел Смирнов  
#2 Оставлено : 19 октября 2010 г. 19:55:57(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Текущая версия КриптоПро PDF не понимает подписи adbe.pkcs7.detached. Попробуйте adbe.x509.rsa_sha1.

Скоро будет доступна версия КриптоПро PDF, создающая и проверяющая подписи вида adbe.pkcs7.detached.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline timkin_vn  
#3 Оставлено : 30 декабря 2010 г. 10:49:01(UTC)
timkin_vn

Статус: Участник

Группы: Участники
Зарегистрирован: 14.12.2010(UTC)
Сообщений: 25
Откуда: Новосибирск

А если используется RSA_SHA1, какие провайдеры надо указывать при создании подписи? Стандартные от Майкрософта или все-таки Gost3410/3411? И в том, и в другом случае возникают вопросы по части совместимости. Мои эксперименты (RSA_SHA1, Gost3410/3411CryptoServiceProvider) привели пока только к тому, что факт наличия подписи опознается, а проверка не получается.
Offline Павел Смирнов  
#4 Оставлено : 30 декабря 2010 г. 20:09:29(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Последняя версия КриптоПро PDF делает и проверяет подписи типа adbe.pkcs7.detached. Проверяются, естественно, только подписи по ГОСТ Р 34.10-2001, т.е. стандартные провайдеры MS не подойдут.
Пришлите кусок кода, создающий подпись и пример подписанного документа PDF. Мы посмотрим на предмет совместимости.
Техническую поддержку оказываем тут.
Наша база знаний.
Offline timkin_vn  
#5 Оставлено : 6 января 2011 г. 15:01:05(UTC)
timkin_vn

Статус: Участник

Группы: Участники
Зарегистрирован: 14.12.2010(UTC)
Сообщений: 25
Откуда: Новосибирск

Поменял на pkcs7.detached.

Если выбираем сертификат от Майкрософта (pfx), все проходит замечательно. Документ успешно подписывается, а подпись опознается в Adobe Reader.

Если выбрать сертификат КриптоПро, документ тоже подписывается, но Adobe Reader ее не опознает, указывая, что ему неизвестен алгоритм.

Проверка средствами iTextSharp (после его небольшого допиливания) дает положительный результат: и для сертификатов pfx, и для КриптоПро; и созданных в Adobe Reader, и в программе через iTextSharp.

Во вложенных файлах - пример PDF с вашего сайта, подписанный сертификатом pfx (помеченный цифрой 3) и КриптоПро (цифра 4).

Отредактировано пользователем 6 января 2011 г. 15:03:46(UTC)  | Причина: Не указана

Вложение(я):
example-signed-4.pdf (50kb) загружен 136 раз(а).
example-signed-3.pdf (50kb) загружен 91 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Павел Смирнов  
#6 Оставлено : 6 января 2011 г. 19:32:29(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
Можно ещё примеры кода создания и проверки подписи получить?
Техническую поддержку оказываем тут.
Наша база знаний.
Offline timkin_vn  
#7 Оставлено : 7 января 2011 г. 15:46:45(UTC)
timkin_vn

Статус: Участник

Группы: Участники
Зарегистрирован: 14.12.2010(UTC)
Сообщений: 25
Откуда: Новосибирск

Да, кстати, я разобрался. Теперь все работает. Успешно проверяющийся пример и фрагмент кода прилагаю. Код предствляет собой некоторую компиляцию из примеров iTextSharp и CryptoPro Sharpei. Главное, что оказалось нужным сделать, - указать фильтром CryptoPro#20PDF.

Отредактировано пользователем 7 января 2011 г. 15:53:16(UTC)  | Причина: Не указана

Вложение(я):
example-signed-5.pdf (50kb) загружен 112 раз(а).
pdf_signing.cs (5kb) загружен 288 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline timkin_vn  
#8 Оставлено : 10 января 2011 г. 21:48:14(UTC)
timkin_vn

Статус: Участник

Группы: Участники
Зарегистрирован: 14.12.2010(UTC)
Сообщений: 25
Откуда: Новосибирск

Попутно была замечена следующая особенность. При отсутствии подключения к интернету Adobe Reader признает, что подпись правильная, но сертификат не подтверждает (пишет, что он untrusted). Причем это верно как для документов, которые я подписываю самостоятельно, так и для тех, которые подписаны через Adobe Reader с библиотекой КриптоПро PDF. Для документов, подписанных посредством обычных pfx-ключей, такого не происходит. Это вообще особенность работы КриптоПро PDF или связано с тем, что используются тестовые ключи, полученные на вашем тестовом УЦ?
Offline timkin_vn  
#9 Оставлено : 17 января 2011 г. 16:40:45(UTC)
timkin_vn

Статус: Участник

Группы: Участники
Зарегистрирован: 14.12.2010(UTC)
Сообщений: 25
Откуда: Новосибирск

Продолжу тему. На данный момент для получения сертификата приходится проделывать довольно сложную последовательность действий. Сначала я получаю Gost3410CryptoServiceProvider по имени контейнера (связано с особенностями выбранного решения). Если обратиться к его свойству ContainerCertificate, то окажется, что его свойство PrivateKey равно null. То есть, такой способ получения сертификата не позволяет обратиться к его секретному ключу. Поэтому я делаю следующий шаг: обращаюсь к личному хранилищу и ищу в нем сертификат с таким же серийным номером. Далее все работает нормально:
Код:
        CspParameters cp = new CspParameters(75, null, keyName);
        Gost3410CryptoServiceProvider cspGost = new Gost3410CryptoServiceProvider(cp);
        X509Certificate2 certGost = cspGost.ContainerCertificate;
        X509Store store = new X509Store("My", StoreLocation.CurrentUser);
        store.Open(OpenFlags.ReadOnly);
        X509Certificate2Collection coll = store.Certificates.Find(X509FindType.FindBySerialNumber, certGost.SerialNumber, true);
        X509Certificate2 cert = coll[0];

Этот способ работает, но он требует, чтобы сертификат обязательно был установлен в личные перед подписыванием. Если сертификат принесен, например, на флэшке, это потребует дополнительных предварительных действий. Существует ли способ получить содержимое сертфиката вместе с секретным ключом, не устанавливая его в личные?
Offline Павел Смирнов  
#10 Оставлено : 17 января 2011 г. 16:45:45(UTC)
Павел Смирнов

Статус: Вам и не снилось

Группы: Администраторы
Зарегистрирован: 24.12.2007(UTC)
Сообщений: 831
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 1 раз
Поблагодарили: 48 раз в 44 постах
timkin_vn написал:
Попутно была замечена следующая особенность. При отсутствии подключения к интернету Adobe Reader признает, что подпись правильная, но сертификат не подтверждает (пишет, что он untrusted). Причем это верно как для документов, которые я подписываю самостоятельно, так и для тех, которые подписаны через Adobe Reader с библиотекой КриптоПро PDF. Для документов, подписанных посредством обычных pfx-ключей, такого не происходит. Это вообще особенность работы КриптоПро PDF или связано с тем, что используются тестовые ключи, полученные на вашем тестовом УЦ?

По поводу собственных подписей у Adobe Reader есть собственное мнение о проверке статусов сертификатов. Мы особо это мнение не изучали.

В случае КриптоПро PDF и неусовершенствованной ЭЦП цепочка сертификатов проверяется в том числе и на отзыв, для чего обычно требуется откачка CRL.
Техническую поддержку оказываем тут.
Наша база знаний.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.