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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Тимур Шарипов  
#1 Оставлено : 11 июля 2024 г. 17:09:57(UTC)
Тимур Шарипов

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день.
Есть задача улучшить подписи CAdES-BES до CAdES-A, но есть нюанс, что в сертификатах этих подписей не указана ссылка на OCSP сервис. Поэтому, при улучшении мы получаем ошибку:
Цитата:
must have OCSP evidence but it doesn't contain any OCSP reference(s) or service(s) is(are) unavailable. OCSP evidence is not found

Судя по документации, в метод усовершенствовании (enhance) можно передать CRL, что мы и попробовали сделать:
Цитата:

X509CRL crl = (X509CRL) CertificateFactory.getInstance("X.509").generateCRL(new FileInputStream(Configuration.CRL_FILENAME));
List<X509CRL> crlList = Collections.singletonList(crl);
srcSigner = srcSigner.enhance(config.getProviderName(),
digestAlgOID,
chain,
crlList,
config.getTSAAddress(),
CAdESType.CAdES_A,
(AttributeTable)null);


Но ошибка не поменялась.

Вопросы:
1. Можно ли в этом случаем заменить OCSP на CRL? это работает?)
2. Какие варианта решения можете посоветовать?
Offline Санчир Момолдаев  
#2 Оставлено : 11 июля 2024 г. 17:15:39(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 229 раз в 216 постах
Добрый день!

1. нельзя.
2. найти или сделать самостоятельно OCSP сервер и использовать его адрес при enhance
Техническую поддержку оказываем тут
Наша база знаний
Offline Тимур Шарипов  
#3 Оставлено : 11 июля 2024 г. 17:17:52(UTC)
Тимур Шарипов

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

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

Сказал(а) «Спасибо»: 1 раз
Автор: Санчир Момолдаев Перейти к цитате
Добрый день!

1. нельзя.
2. найти или сделать самостоятельно OCSP сервер и использовать его адрес при enhance


2. А как его туда передать? Есть пример?
Offline Санчир Момолдаев  
#4 Оставлено : 11 июля 2024 г. 17:27:20(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 229 раз в 216 постах
нужна актуальная версия СКЗИ
https://www.cryptopro.ru...&m=145856#post145856
> JCP 2.0.45041 / 2.0.45042-A

Цитата:
cades: добавлена возможность настроить доверие сертификату сторонней OCSP службы (JCP-2184)
cades: добавлена возможность указать программно или в java-свойствах дополнительные адреса альтернативных источников доказательств - OCSP служб (JCP-2188)


соответственно нужно сеттать Options
Код:
    public static Options setSingleOcsp(Options options) {
        return options.setRevocationURLStrategy(
                new SingleRevocationURLStrategy() {
                    @Override
                    public RevocationURL get(ValidatingData validatingData) throws AdESException {
                        return new RevocationURL() {
                            @Override
                            public ConnectionParameters getConnectionParameters() {
                                return null;
                            }

                            @Override
                            public RevocationURLActionOnError onError(Throwable throwable) {
                                return null;
                            }

                            @Override
                            public String get() {
                                return OCSP;
                            }
                        };
                    }
                }
        );
    }

    public static Options setAuthorizedOCSPs(Options options, String[] thumbs) {
        return options.setRevocationPermissions(new RevocationPermission() {
            @Override
            public boolean isAuthorizedIssuer(ValidatingPermissionData validatingPermissionData) {
                X509Certificate cert = validatingPermissionData.getValidatingRevocationData().getCertificate();
                try {
                    MessageDigest digest = MessageDigest.getInstance("SHA-1");
                    digest.update(cert.getEncoded());
                    String thumb = bytesToHex(digest.digest());
                    boolean result = false;
                    for (String walk : thumbs)
                        if (thumb.equalsIgnoreCase(walk)) {
                            result = true;
                            break;
                        }
                    return result;

                } catch (NoSuchAlgorithmException | CertificateEncodingException e) {
                    throw new RuntimeException(e);
                }
            }
        });
    }

    public static Options setOcspList(Options options) {
        return options.setRevocationURLStrategy(new CollectionRevocationURLStrategy() {
            @Override
            public RevocationURLCollection get(ValidatingData validatingData) throws AdESException {
                return new RevocationURLCollection() {
                    @Override
                    public Collection<RevocationURL> get() {
                        return Collections.singleton(
                                new RevocationURL() {
                                    @Override
                                    public ConnectionParameters getConnectionParameters() {
                                        return null;
                                    }

                                    @Override
                                    public RevocationURLActionOnError onError(Throwable throwable) {
                                        return null;
                                    }

                                    @Override
                                    public String get() {
                                        return OCSP;
                                    }
                                }
                        );
                    }
                };
            }
        });
    }


javadoc https://docs.cryptopro.r...javadoc/CAdES/index.html

либо через проперти.
Код:
System.setProperty("ru.CryptoPro.AdES.ocsp.responderURL", "http://.../ocsp.srf");
System.setProperty("ru.CryptoPro.AdES.ocsp.responderCertIssuerName", "CN = CadesTest PKI 2012 Root,OU = Cades Testing,O = OOO Crypto-Pro,C = RU");

их же можно задать через -D
но приоритет тут у AIA. т.е. через проперти будет медленнее.
через код более гибкая настройка

Отредактировано пользователем 11 июля 2024 г. 17:36:15(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.
Тимур Шарипов оставлено 12.07.2024(UTC)
Offline Тимур Шарипов  
#5 Оставлено : 18 июля 2024 г. 15:43:44(UTC)
Тимур Шарипов

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

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

Сказал(а) «Спасибо»: 1 раз
Здравствуйте,
подскажите, если идти по пути настройки через Options, правильно ли я понимаю, что:

  • параметр OCSP == responderUR (указывается URL OCSP)
  • параметр String[] thumbs== responderCertIssuerName(указывается сертификат)?

Offline Санчир Момолдаев  
#6 Оставлено : 22 июля 2024 г. 10:45:42(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 229 раз в 216 постах
1. да
2. указываются отпечатки сертификатов сторонних ocsp которым вы доверяете.

например есть Федеральное Казначейство у которого нет ocsp. но вам нужен xlt1 с ними. создаете свой экземпляр службы ocsp. в коде указываете его и доверяете ему, то у вас xlt1 будут созданы.
но проверяться они будут только у вас или только там где настроено доверие к отпечаткам сертификатов уполномеченных OCSP.

можно ли доверять ответу ООО Рога и Копыта о том что сертификат клиента Федерального Казначейства не отозван?
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.