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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline CryptoPro_FanBoy  
#1 Оставлено : 26 сентября 2019 г. 22:44:14(UTC)
CryptoPro_FanBoy

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

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

Сказал(а) «Спасибо»: 3 раз
Здравствуйте!
jcp-2.0.40035
Создаю отсоединенную подпись в формате Cades_bes, используя пример в руководстве программиста (ЖТЯИ.00102-01 96 02. Руководство программиста. JavaCSP). Файл с подписью создается, даже успешно проверяется указанным в том же примере способом.
1.PNG (8kb) загружен 15 раз(а).
Но при попытке проверить данную подпись на сервере, возникает ошибка: "Произошла ошибка при проверке документа. В сообщении не найден сертификат подписи". Использовал всевозможные варианты задания формата подписи и параметров
2.PNG (19kb) загружен 11 раз(а).
При создании прикрепленной подписи ситуация аналогичная

Прошу указать мне, что я делаю не так. Прикрепляю свой код, логи создания и проверки подписи, файл подписи(pdf.txt, файл .bin не дает загрузить) и исходный документ. Заранее спасибо!
Код
Код:
private static void Cades(PrivateKey privateKey, X509Certificate[] chain, String tsaUrl) throws CAdESException, IOException {
        //Создание
        CAdESSignature cAdESSignature = new CAdESSignature(true);
        cAdESSignature.addSigner("JCP",
                JCP.GOST_DIGEST_2012_256_OID,
                JCP.GOST_PARAMS_EXC_2012_256_KEY_OID,
                privateKey,
                Arrays.asList(chain),
                CAdESType.CAdES_BES,
                /*tsaUrl,*/ null,
                false);
        byte[] data;
        File file = new File("C:\\Work\\HDImageStore\\PDF\\a\\pdf.pdf");
        data = Files.readAllBytes(Paths.get(file.getAbsolutePath()));
        ByteArrayOutputStream signatureStream = new ByteArrayOutputStream();
        cAdESSignature.open(signatureStream);
        cAdESSignature.update(data);
        cAdESSignature.close();
        System.out.println(cAdESSignature);
        byte[] cadesCMS = signatureStream.toByteArray();
        OutputStream os = new FileOutputStream("pdf.bin");
        signatureStream.close();
        os.write(cadesCMS);
        os.close();

        //ПРОВЕРКА
        FileInputStream cades = new FileInputStream("pdf.bin");
        CAdESSignature signature = new CAdESSignature(cades, new FileInputStream(file), CAdESType.CAdES_BES);
        signature.verify(Arrays.asList(chain)); 
}
log.txt (128kb) загружен 2 раз(а). pdf.pdf (424kb) загружен 2 раз(а). pdf.txt (1kb) загружен 2 раз(а).
Offline Санчир Момолдаев  
#2 Оставлено : 26 сентября 2019 г. 23:03:30(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 706
Российская Федерация

Сказал(а) «Спасибо»: 61 раз
Поблагодарили: 139 раз в 137 постах
Добрый день!
попробуйте так:
Код:
        ...
        Certificate[] chain = keyStore.getCertificateChain(ALIAS);
        X509Certificate[] xChain = new X509Certificate[chain.length];
        System.arraycopy(chain, 0, xChain, 0, chain.length);
        Collection<X509CertificateHolder> certHolders = new ArrayList<X509CertificateHolder>(chain.length);
        for (Certificate cert : chain) {
            certHolders.add(new X509CertificateHolder(cert.getEncoded()));
        }
        CollectionStore store = new CollectionStore(certHolders);
        ByteArrayOutputStream signature = new ByteArrayOutputStream();
        CAdESSignature cAdESSignature = new CAdESSignature(true);
        cAdESSignature.addSigner(
        ...
        );
        cAdESSignature.open(signature);
        cAdESSignature.update(data);
        cAdESSignature.setCertificateStore(store);
        ...

Отредактировано пользователем 27 сентября 2019 г. 3:30:39(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.
CryptoPro_FanBoy оставлено 27.09.2019(UTC)
Offline CryptoPro_FanBoy  
#3 Оставлено : 27 сентября 2019 г. 11:30:25(UTC)
CryptoPro_FanBoy

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

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

Сказал(а) «Спасибо»: 3 раз
Большое спасибо! Теперь всё проверяется.
photo_2019-09-27_10-36-34.jpg (54kb) загружен 14 раз(а).
Однако теперь возникает проблема при попытки подписать тот же документ подписью CAdES_X_Long_Type_1.
Ошибок сразу несколько:

  • java.security.GeneralSecurityException: java.security.InvalidKeyException: Алгоритм ключа не соответствует алгоритму подписи.
  • ru.CryptoPro.reprov.certpath.JCPCertPathBuilderException: unable to find valid certification path to requested target
  • Error building certification path for <данные сертификата>: ru.CryptoPro.reprov.certpath.JCPCertPathBuilderException: unable to find valid certification path to requested target; error codes: [33] 'PKIX failure: invalid parameters of certificate'
  • org.bouncycastle.cms.CMSAttributeTableGenerationException: The signer certificate: <Данные сертификата> must have OCSP evidence but it doesn't contain any OCSP reference(s) or service(s) is(are) unavailable. OCSP evidence is not found


Изначально думал, что проблема с доступом к ocsp службе или в её работе, т.к. cades_bes строился без указанных выше ошибок. Проверил ответ от ocsp службы с помощью утилиты ocsputil. Результат:
4.PNG (14kb) загружен 12 раз(а).

В чем теперь может быть проблема - неизвестно. Прошу помощи.
Заранее спасибо!

log (2).txt (188kb) загружен 6 раз(а).

Отредактировано пользователем 27 сентября 2019 г. 11:32:26(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#4 Оставлено : 27 сентября 2019 г. 12:54:16(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 17 раз
Поблагодарили: 563 раз в 537 постах
Здравствуйте.
1. Провайдер Java CSP задан провайдером по умолчанию в панели управления JCP?
2. В сертификате подписанта есть ссылка на OCSP сервис?
Offline CryptoPro_FanBoy  
#5 Оставлено : 27 сентября 2019 г. 14:56:03(UTC)
CryptoPro_FanBoy

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Евгений Афанасьев Перейти к цитате
Провайдер Java CSP задан провайдером по умолчанию в панели управления JCP?

Стоял JCP, поменял на Java CSP, попробовал снова - ничего не изменилось.

Автор: Евгений Афанасьев Перейти к цитате
В сертификате подписанта есть ссылка на OCSP сервис?

Тут я не совсем уверен.
Snimok.PNG (233kb) загружен 14 раз(а).
Слева на скриншоте - сертификат, открытый контейнере в панели управления, справа - свойства .cer этого же сертификата. Думаю, что есть.

Здесь ведь находится ссылка:
Цитата:
FINER: Searching for extension by id 1.3.6.1.5.5.7.48.1 in certificate: <Данные сертификата>
сен 27, 2019 2:33:04 PM ru.CryptoPro.AdES.tools.AdESUtility getAccessor
FINER: Found: 1 OCSP url(s).



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

Этих:
Код:
cAdESSignature.addSigner("JCP",
                    JCP.GOST_DIGEST_2012_256_OID,
                    JCP.GOST_PARAMS_EXC_2012_256_KEY_OID,
                    privateKey,
                    Arrays.asList(chain),
                    CAdESType.CAdES_X_Long_Type_1,
                    tsaUrl,  
                    false);


И этих:
6.PNG (25kb) загружен 17 раз(а).
Offline Санчир Момолдаев  
#6 Оставлено : 27 сентября 2019 г. 15:47:32(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 706
Российская Федерация

Сказал(а) «Спасибо»: 61 раз
Поблагодарили: 139 раз в 137 постах
у вас цепочка ocsp строится по 2001 госту
сам сертификат по 2012 госту
tsp по 2012 госту.

попробуйте только с 2012, причем чтобы сертификат оператора ocsp был выпущен тем же ключом ЦС что и сертификат пользователя.
Техническую поддержку оказываем тут
Наша база знаний
Offline CryptoPro_FanBoy  
#7 Оставлено : 27 сентября 2019 г. 15:58:51(UTC)
CryptoPro_FanBoy

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Санчир Момолдаев Перейти к цитате
у вас цепочка ocsp строится по 2001 госту
сам сертификат по 2012 госту
tsp по 2012 госту.

попробуйте только с 2012, причем чтобы сертификат оператора ocsp был выпущен тем же ключом ЦС что и сертификат пользователя.


Подскажите, пожалуйста, где можно задать параметры для цепочки ocsp, вроде везде стоит 2012 гост, и в коде, и в панели управления (Где Вы вообще это увидели?).

Отредактировано пользователем 27 сентября 2019 г. 16:02:43(UTC)  | Причина: Не указана

Offline Санчир Момолдаев  
#8 Оставлено : 27 сентября 2019 г. 16:35:19(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 706
Российская Федерация

Сказал(а) «Спасибо»: 61 раз
Поблагодарили: 139 раз в 137 постах
base64 представление в логе.
там и сертификаты и ocsp и tsp ответы.
адрес ocsp берется из расширения сертификата. уточните у вашего уц есть ли ocsp служба по 2012 госту.
если есть, переиздайте сертификат с правильной ссылкой на ocsp службу с сертификатом по 2012 госту
Техническую поддержку оказываем тут
Наша база знаний
Offline Санчир Момолдаев  
#9 Оставлено : 27 сентября 2019 г. 16:37:08(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 706
Российская Федерация

Сказал(а) «Спасибо»: 61 раз
Поблагодарили: 139 раз в 137 постах
base64 представление в логе.
там и сертификаты и ocsp и tsp ответы.
адрес ocsp берется из расширения сертификата. уточните у вашего уц есть ли ocsp служба по 2012 госту.
если есть, переиздайте сертификат с правильной ссылкой на ocsp службу с сертификатом по 2012 госту
Техническую поддержку оказываем тут
Наша база знаний
Offline CryptoPro_FanBoy  
#10 Оставлено : 27 сентября 2019 г. 16:44:42(UTC)
CryptoPro_FanBoy

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Санчир Момолдаев Перейти к цитате
base64 представление в логе.
там и сертификаты и ocsp и tsp ответы.
адрес ocsp берется из расширения сертификата. уточните у вашего уц есть ли ocsp служба по 2012 госту.
если есть, переиздайте сертификат с правильной ссылкой на ocsp службу с сертификатом по 2012 госту


Но я ведь проверял (скриншот выше) этот же сертификат с помощью ocsputil по этому же адресу службы, там ответ успешный. Думаю, что если бы дело было в службе или в сертификате - вернулась бы ошибка. Ошибаюсь?
Offline Санчир Момолдаев  
#11 Оставлено : 27 сентября 2019 г. 16:51:35(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 706
Российская Федерация

Сказал(а) «Спасибо»: 61 раз
Поблагодарили: 139 раз в 137 постах
на страничке https://www.cryptopro.ru.../cades_xlong_sample.html
подпись создается?
Техническую поддержку оказываем тут
Наша база знаний
Offline CryptoPro_FanBoy  
#12 Оставлено : 27 сентября 2019 г. 16:56:43(UTC)
CryptoPro_FanBoy

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Санчир Момолдаев Перейти к цитате
на страничке https://www.cryptopro.ru.../cades_xlong_sample.html
подпись создается?


Нет. Пошел связываться с УЦ
Snimok6.PNG (119kb) загружен 14 раз(а).

Отредактировано пользователем 27 сентября 2019 г. 16:59:32(UTC)  | Причина: Не указана

Offline Санчир Момолдаев  
#13 Оставлено : 27 сентября 2019 г. 17:07:26(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 706
Российская Федерация

Сказал(а) «Спасибо»: 61 раз
Поблагодарили: 139 раз в 137 постах
ошибка на страничке из-за того что не установлен корневой цепочки tsp
Или укажите другой tsp адрес

Отредактировано пользователем 27 сентября 2019 г. 17:50:11(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline CryptoPro_FanBoy  
#14 Оставлено : 27 сентября 2019 г. 17:57:15(UTC)
CryptoPro_FanBoy

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Санчир Момолдаев Перейти к цитате
ошибка на страничке из-за того что не установлен корневой цепочки tsp
Или укажите другой tsp адрес


Поменял на стандартный
Snimok6.PNG (119kb) загружен 16 раз(а).

На странице стоит криптопровайдер ГОСТ 2001, в сертификате - ГОСТ 2012. Может быть, в этом проблема?

Отредактировано пользователем 27 сентября 2019 г. 17:57:48(UTC)  | Причина: Не указана

Offline Санчир Момолдаев  
#15 Оставлено : 27 сентября 2019 г. 22:07:20(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 706
Российская Федерация

Сказал(а) «Спасибо»: 61 раз
Поблагодарили: 139 раз в 137 постах
установите этот корневой в доверенные центры сертификации
http://testca2012.crypto...195bcb49c1992e31ba84.crt

это корневой для tsp службы http://testca2012.cryptopro.ru/tsp/tsp.srf

попробуйте снова.

прикрепите исходный файл и файл подписи. и результат с тестовой странички подписания
Техническую поддержку оказываем тут
Наша база знаний
Offline CryptoPro_FanBoy  
#16 Оставлено : 30 сентября 2019 г. 11:41:15(UTC)
CryptoPro_FanBoy

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Санчир Момолдаев Перейти к цитате
установите этот корневой в доверенные центры сертификации
http://testca2012.crypto...195bcb49c1992e31ba84.crt

это корневой для tsp службы http://testca2012.cryptopro.ru/tsp/tsp.srf

попробуйте снова.

прикрепите исходный файл и файл подписи. и результат с тестовой странички подписания


Здравствуйте!

Указанный сертификат у меня уже был установлен и в cacerts и в доверенные центры сертификации. При попытке создать подпись на странице возникает ошибка "Не удалось создать подпись из-за ошибки: Процесс отмены не может быть продолжен - проверка сертификатов недоступна. (0x800B010E)".

УЦ дал ссылку(http://ucfoms.ffoms.ru/tsp/tsp.srf) для tsp, с помощью которой удалось подписать сертификат на странице, но в jsp всё еще возникают ошибки. Попробовал с помощью утилиты получить корневой сертификат для данной ссылки и поставить его в доверенные и в cacerts. Ошибка не исчезла.
sad.PNG (58kb) загружен 12 раз(а). zs.PNG (119kb) загружен 11 раз(а).

По поводу версии OCSP обещали дать ответ в течение дня

Прилагаю лог с ошибками после установки сертификата tsp службы в cacerts и доверенные сертификаты.
log.txt (96kb) загружен 5 раз(а).
Offline CryptoPro_FanBoy  
#17 Оставлено : 30 сентября 2019 г. 19:08:29(UTC)
CryptoPro_FanBoy

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

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

Сказал(а) «Спасибо»: 3 раз
Получил также сертификат ocsp службы с помощью ocsputil. И у TSP, и у OCSP ГОСТ 2001
s.PNG (162kb) загружен 10 раз(а). ss.PNG (172kb) загружен 7 раз(а).

Offline Санчир Момолдаев  
#18 Оставлено : 30 сентября 2019 г. 20:39:07(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 706
Российская Федерация

Сказал(а) «Спасибо»: 61 раз
Поблагодарили: 139 раз в 137 постах
java.security.cert.CertificateException: Unrecognized critical extension(s)

Код:
    1.3.6.1.4.1.311.21.10: Флаги = 1(Критический), Длина = e
    Политики применения
        [1]Политика сертификата приложения:
            Идентификатор политики=Установка метки времени

если использовать tsp службу без этого расширения в сертификате, то сработает.

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

Техническую поддержку оказываем тут
Наша база знаний
Offline CryptoPro_FanBoy  
#19 Оставлено : 30 сентября 2019 г. 21:10:12(UTC)
CryptoPro_FanBoy

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

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

Сказал(а) «Спасибо»: 3 раз
Автор: Санчир Момолдаев Перейти к цитате
java.security.cert.CertificateException: Unrecognized critical extension(s)

Код:
    1.3.6.1.4.1.311.21.10: Флаги = 1(Критический), Длина = e
    Политики применения
        [1]Политика сертификата приложения:
            Идентификатор политики=Установка метки времени

если использовать tsp службу без этого расширения в сертификате, то сработает.


Попробовал использовать http://testca2012.cryptopro.ru/tsp/tsp.srf вместо вышеуказанной службы. Результат:
sm.PNG (6kb) загружен 5 раз(а).

Однако,

asdasd.PNG (46kb) загружен 10 раз(а).

всевозможные сертификаты лежат и в cacerts, и в хранилище.

Лог:
log.txt (948kb) загружен 1 раз(а).
Offline Санчир Момолдаев  
#20 Оставлено : 30 сентября 2019 г. 21:24:34(UTC)
Санчир Момолдаев

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

Группы: Модератор, Участники
Зарегистрирован: 03.12.2018(UTC)
Сообщений: 706
Российская Федерация

Сказал(а) «Спасибо»: 61 раз
Поблагодарили: 139 раз в 137 постах
проверяете на justsign.me?
проверьте на тестовом сервисе https://dss.cryptopro.ru/verify
тут стоят корневые тестовых УЦ
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.