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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline ikonovalov  
#1 Оставлено : 6 сентября 2012 г. 13:52:12(UTC)
ikonovalov

Статус: Активный участник

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

Проверяю CRL. Производится проверка CRLDP и OCSP. Производится отдельно построение цепочки CertPathBuilder с setRevocationEnabled=false и отдельно валидация CertPathValidator setRevocationEnabled=true. У всех проверяемых сертификатов УЦ КРИПТО-ПРО. И так, пехали.

Вариант 1:
Дано
0) Сертификат содержит url для OCSP и CRLDP
1) CRLDP и OCSP включены. ocsp.enable=com.ibm.security.enableCRLDP=com.sun.security.enableCRLDP=true
2) CertPathBuilder=PKIX, CertPathValidator=PKIX
3) java version "1.6.0_32" (Oracle-овая)
Результат:
Все корректно проверяется. Запросы уходят в OCSP и во все(!!! ну да ладно) CRLDP

Вариант 2: (все тоже самое но с отключенным OCSP)
1) OCSP отключен, CRLDP - включены. ocsp.enable=false com.ibm.security.enableCRLDP=com.sun.security.enableCRLDP=true
Результат:
Все корректно. Запросы уходят в CRLDP. Все проверяется.

Вариант 3: (все тоже самое но с отключенным CRLDP)
1) OCSP - включен, CRLDP - отключены. ocsp.enable=true com.ibm.security.enableCRLDP=com.sun.security.enableCRLDP=false
Результат:
Запросы уходят в OCSP и ошибка
CertPathValidatorException: Unable to verify OCSP Responder's signature
или
CertPathValidatorException: signature check failed
От раза к разу - то одна, то другая.

Переключение CertPathValidator на CPPKIX результата не принесло.

Теперь что касается IBM JVM (IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Windows 7 amd64-64 jvmwa6460sr9-20111111_94827)
Тут ситуация другая.
1) При включенном CRLDP и OCSP проверяется OCSP, если есть, к CRLDP даже не лезет и на этом успокаивается - все ОК.
2) Если отключить OCSP или нет на него url, то проверяется CRLDP и происходит ошибка: The revocation status of the certificate with subject (CN=XXXXXXX) could not be determined.

Внимание вопрос:
1) Что не так в Вариантом 3?
2) Если ли разница между PKIX и CPPKIX? Пробовал выставлять, результат 0.
Luxoft-Москва
Offline Евгений Афанасьев  
#2 Оставлено : 6 сентября 2012 г. 14:45:04(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 708 раз в 669 постах
Здравствуйте.
1) устанавливали для
Security.setProperty("ocsp.enable", "true");
свойства, например,
Security.setProperty("ocsp.responderCertSubjectName", "CN=Test Center CRYPTO-PRO,O=CRYPTO-PRO,C=RU,EMAILADDRESS=info@cryptopro.ru");
Security.setProperty("ocsp.responderURL", "http://www.cryptopro.ru/ocspnc/ocsp.srf"); (пример samples_src.jar/OCSPValidateCert) ?
2) CPPKIX использует возможности PKIX (за исключением некоторых случаев, учитывающих особенности алгоритмов)
Offline ikonovalov  
#3 Оставлено : 6 сентября 2012 г. 15:22:25(UTC)
ikonovalov

Статус: Активный участник

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

ocsp.responderURL насколько мне известно может браться из самого сертификата. Или я не прав? Для сертификатов, в которых нет OCSP, используется CRLDP. Если нет ни того, ни того, то будет ошибка - это ок. Кстати выбор OCSP или CRLDP в IBM JVM действительно производится, причем приоритет у OCSP, как бы понятно. В Oracle JVM выбор не производится и опрашивается все подряд - все что есть в сертификате.

Собственно проблема с OCSP в том что при отключении CRLDP в Oracle jvm - происходит ошибка (Unable to verify OCSP Responder's signature), но в IBM JVM работает. Но при этом CRLDP в IBM не работают вообще.
Собственно вот такая проблема.
Luxoft-Москва
Offline ikonovalov  
#4 Оставлено : 6 сентября 2012 г. 16:13:16(UTC)
ikonovalov

Статус: Активный участник

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

А debug вообще с JCP возможен? Попробовал и в режиме отладки сваливаюсь аж на KeyStore.load с ошибкой InvalidAlgorithmParameterException: Неверный открытый ключ. При этом в нормальном режиме load проходит. Это защита какая-то или фича?
Luxoft-Москва
Offline Евгений Афанасьев  
#5 Оставлено : 6 сентября 2012 г. 17:27:24(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 708 раз в 669 постах
В отладке падать не должно. Посмотрите раздел "Управление протоколами" в admin.html.
На счет проверки цепочки - можете приложить свою цепочку сертификатов? У меня ошибка не воспроизводится. Какую версию jcp используете?
Offline ikonovalov  
#6 Оставлено : 6 сентября 2012 г. 18:42:16(UTC)
ikonovalov

Статус: Активный участник

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

1) "Управление протоколами". Что-то ничего кроме INFO не выводит. Остальные уровни вообще используются?
2) Про отладку из этой доки сказано только "На ПЭВМ, оснащенных СКЗИ КриптоПро JCP, не допускается установка средств разработки и отладки ПО". Печаль моя не знает границ.
3) JCP 53-я. Цепочку скинуть я не могу, но она короткая. Сертификат сразу выдан-подписан УЦ КриптоПро. В сертификате лежит два адреса CRLDP. Проблемная java IBM J9 VM (build 2.4, JRE 1.6.0 IBM J9 2.4 Windows 7 amd64-64 jvmwa6460sr9-20111111_94827 (JIT enabled, AOT enabled)

НО! Обнаружился интересный факт. Ошибка при проверке CRLDP происходит не всегда. В некоторых случаях проверка проходит. Извиняюсь, что немного вас по-DoS-ил, но искусство требует жертв - погонял проверку в цикле и, о чудо, некоторые запросы проходят - сертификат проверяется. Процент успеха может быть разный - от 0% до 90%. В oracle-овой яве процент успеха 100%.
Еще факт такой: В сертификате два url на CRLDP, так вот когда происходит ошибка, запрос уходит один(!) раз в (GET http://cdp.cryptopro.ru/...e19f3fc71a0dc845a79f.crl HTTP/1.1). А когда проверка успешна, то видно, что таких запросов в одном http-соединении два(!!), но оба по одному и тому же адресу (GET http://cdp.cryptopro.ru/...e19f3fc71a0dc845a79f.crl HTTP/1.1). При этом резервный url не используется.

Дополнительно:
1) Проверил на другом сертификате КриптоПро. Двойного запроса к CRLDP на нем не происходит. Лезет по одному адресу и тут уж как повезет.
2) Попробовал сертификат google-а. У него цепочка строится google->Thawte->Verisign. Валидация по CRLDP и(или) OCSP проходит в 100% случаев. Что с КриптоПро-шным УЦ и сертификатами на IBM JVM?

Отредактировано пользователем 6 сентября 2012 г. 20:10:43(UTC)  | Причина: Не указана

Luxoft-Москва
Offline ikonovalov  
#7 Оставлено : 7 сентября 2012 г. 16:43:10(UTC)
ikonovalov

Статус: Активный участник

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

Так и как быть то с CertPathValidator и CRLDP на IBM JVM и сертификатами КриптоПро? Или спрошу по-другому: JCP совместима с J9?

Отредактировано пользователем 7 сентября 2012 г. 21:13:13(UTC)  | Причина: Не указана

Luxoft-Москва
Offline ikonovalov  
#8 Оставлено : 10 сентября 2012 г. 16:12:28(UTC)
ikonovalov

Статус: Активный участник

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

Проблему решил обходным маневром. Если используется IBM J9 и включен OCSP и в сертификате CryptoPro есть url OCSP, то используется штатная проверка - встроенными средствами java через CertPathValidator. Если же OCSP отключен и(или) у сертификата CryptoPro нет url на OCSP, то применяется "ручная" проверка через CRLDP. Что входит в ручной режим:
1) Загрузка CRL из CRLDP (с фейловером, а не как у oracle) - получаем X509CRL. Indirect CRL отвергаем.
2) Проверяем даты CRL (thisDate - nextUpdate)
3) Проверяем подпись CRL
4) Проверяем наш сертификат в этом CRL

Отредактировано пользователем 10 сентября 2012 г. 16:13:04(UTC)  | Причина: Не указана

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