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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline 1Aleksey1  
#1 Оставлено : 3 октября 2014 г. 15:23:47(UTC)
1Aleksey1

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

Группы: Участники
Зарегистрирован: 29.05.2014(UTC)
Сообщений: 18

Сказал(а) «Спасибо»: 1 раз
Добрый день.
Столкнулся со следующей проблемой: есть подписанный файл с несколькими присоединенными подписями.
Пытаюсь улучшить подписи до CAdES_X_Long_Type_1 и получаю ошибку "Not enough revocation values for the certificate"

Лог выполнения и исходный файл прикладываю
Вложение(я):
log.txt (1,084kb) загружен 5 раз(а).
file.zip (23kb) загружен 4 раз(а).

У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
Offline Новожилова Елена  
#2 Оставлено : 3 октября 2014 г. 15:30:01(UTC)
Новожилова Елена

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 10.12.2008(UTC)
Сообщений: 924
Женщина
Откуда: Крипто-Про

Поблагодарили: 99 раз в 95 постах
Здравствуйте! А какое ПО вы используете?
Offline 1Aleksey1  
#3 Оставлено : 3 октября 2014 г. 15:36:47(UTC)
1Aleksey1

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

Группы: Участники
Зарегистрирован: 29.05.2014(UTC)
Сообщений: 18

Сказал(а) «Спасибо»: 1 раз
Улучшаю Java кодом, использую так:
Код:

			Collection<X509Certificate> chain = new ArrayList<X509Certificate>();

        // 1. Загрузка и "проверка" подписи.
        // Если подпись совмещенная, то данные (origData) равны null.
        logger.debug("Load signature...");
        CAdESSignature cadesSignature = new CAdESSignature(cadesCms, origData, null);
        cadesSignature.verify(chain);

        CAdESSigner[] signerInfos = cadesSignature.getCAdESSignerInfos();

        for (CAdESSigner signer : signerInfos) {
            chain.add(signer.getSignerCertificate());
        }
        // Список всех подписантов в исходной подписи.
        Collection<SignerInformation> srcSignerInfos = new ArrayList<SignerInformation>();
        for (CAdESSigner signer : signerInfos) {
            srcSignerInfos.add(signer.getSignerInfo());
        }
        // 2. Усовершенствование подписи.
        CMSSignedData srcSignedData = cadesSignature.getSignedData();

        for (CAdESSigner srcSigner : signerInfos) {
            // Исключаем его из исходного списка, т.к. его место займет усовершенствованный подписант.
            srcSignerInfos.remove(srcSigner.getSignerInfo());
            // Улучшаем CAdES-BES до CAdES-X Long Type 1.
            srcSigner.enhance(JCP.PROVIDER_NAME, JCP.GOST_DIGEST_OID, chain, tsaUrl, CAdESType.CAdES_X_Long_Type_1);
            // Усовершенствованный подписант.
            SignerInformation enhSigner = srcSigner.getSignerInfo();
            // Добавляем его в исходный список подписантов.
            srcSignerInfos.add(enhSigner);
        }
        // Список подписантов.
        SignerInformationStore dstSignerInfoStore = new SignerInformationStore(srcSignerInfos);
        // Обновляем исходную подпись c ее начальным списком подписантов на тот же, но с усовершенствованными подписантами.
        CMSSignedData dstSignedData = CMSSignedData.replaceSigners(srcSignedData, dstSignerInfoStore);

        // 3. Проверка усовершенствованной подписи.
        // Проверяем подпись.
        byte[] encodedSignature = dstSignedData.getEncoded();
        cadesSignature = new CAdESSignature(encodedSignature, origData, null);
        cadesSignature.verify(chain);
        return encodedSignature;
Offline Евгений Афанасьев  
#4 Оставлено : 3 октября 2014 г. 17:00:26(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,955
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 701 раз в 662 постах
Здравствуйте.
В chain предполагается, что сертификат подписанта - первый в списке. Немного смущает
for (CAdESSigner signer : signerInfos) {
chain.add(signer.getSignerCertificate());
}
а потом он передается всем, даже разным, подписям (enhance). Попробуйте не класть эти сертификаты, или класть так, чтобы первым был сертификат актуального, улучшаемого в данной итерации цикла подписанта.

Отредактировано пользователем 3 октября 2014 г. 17:02:28(UTC)  | Причина: Не указана

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
1Aleksey1 оставлено 03.10.2014(UTC)
Offline 1Aleksey1  
#5 Оставлено : 3 октября 2014 г. 17:57:25(UTC)
1Aleksey1

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

Группы: Участники
Зарегистрирован: 29.05.2014(UTC)
Сообщений: 18

Сказал(а) «Спасибо»: 1 раз
Спасибо! Немного исправил код, теперь все сработало.
Offline 1Aleksey1  
#6 Оставлено : 3 октября 2014 г. 18:03:59(UTC)
1Aleksey1

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

Группы: Участники
Зарегистрирован: 29.05.2014(UTC)
Сообщений: 18

Сказал(а) «Спасибо»: 1 раз
Подскажите еще по такой проблеме

Есть подпись CADES_BES сделанная например два месяца назад. Подписана сертификатом у которого истекает срок действия.
Пытаюсь усовершенствовать подпись, но получаю ошибку:
Код:
CRL issued by CN=TAXCOM CA, OU=Удостоверяющий центр, O="ООО \"Такском\"", L=Москва, ST=77 Москва, C=RU, EMAILADDRESS=uc_support@taxcom.ru, STREET="ул. Плющиха, дом 26/2", OID.1.2.643.3.131.1.1=#120C303037373034323131323031, OID.1.2.643.100.1=#120D31303237373030303731353330, has wrong thisUpdate Thu Oct 02 17:10:00 GMT+04:00 2014 if compare to Fri Oct 03 17:39:32 GMT+04:00 2014


Про даты CRL я понимаю, но может есть какие то варианты как обойти данную проблему?

Отредактировано пользователем 3 октября 2014 г. 18:04:48(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#7 Оставлено : 4 октября 2014 г. 11:27:44(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,955
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 701 раз в 662 постах
По 1 вопросу - спасибо, внесем исправление, которое позволит выбирать из цепочки chain нужный сертификат подписи независимо от его положения.
По поводу двумесячной CAdES-BES - есть подозрение, что в сертификате подписи нет AIA - адреса OCSP службы. В этой версии CAdES.jar может быть ошибка - попытка обращения в случае отсутствия AIA или недоступности OCSP службы к CRL даже для сертификата подписи, хотя для него полагается только OCSP доказательство. Это исправлено в текущей версии.

Отредактировано пользователем 4 октября 2014 г. 11:28:51(UTC)  | Причина: Не указана

Offline 1Aleksey1  
#8 Оставлено : 6 октября 2014 г. 11:37:39(UTC)
1Aleksey1

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

Группы: Участники
Зарегистрирован: 29.05.2014(UTC)
Сообщений: 18

Сказал(а) «Спасибо»: 1 раз
Автор: afev Перейти к цитате
По 1 вопросу - спасибо, внесем исправление, которое позволит выбирать из цепочки chain нужный сертификат подписи независимо от его положения.
По поводу двумесячной CAdES-BES - есть подозрение, что в сертификате подписи нет AIA - адреса OCSP службы. В этой версии CAdES.jar может быть ошибка - попытка обращения в случае отсутствия AIA или недоступности OCSP службы к CRL даже для сертификата подписи, хотя для него полагается только OCSP доказательство. Это исправлено в текущей версии.

Спасибо за ответ!
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (5)
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.