Статус: Активный участник
Группы: Участники
Зарегистрирован: 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-Москва |
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 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 (за исключением некоторых случаев, учитывающих особенности алгоритмов) |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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-Москва |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 03.02.2012(UTC) Сообщений: 35 Откуда: Moscow
|
А debug вообще с JCP возможен? Попробовал и в режиме отладки сваливаюсь аж на KeyStore.load с ошибкой InvalidAlgorithmParameterException: Неверный открытый ключ. При этом в нормальном режиме load проходит. Это защита какая-то или фича? |
Luxoft-Москва |
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,977 Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 708 раз в 669 постах
|
В отладке падать не должно. Посмотрите раздел "Управление протоколами" в admin.html. На счет проверки цепочки - можете приложить свою цепочку сертификатов? У меня ошибка не воспроизводится. Какую версию jcp используете? |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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-Москва |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 03.02.2012(UTC) Сообщений: 35 Откуда: Moscow
|
Так и как быть то с CertPathValidator и CRLDP на IBM JVM и сертификатами КриптоПро? Или спрошу по-другому: JCP совместима с J9? Отредактировано пользователем 7 сентября 2012 г. 21:13:13(UTC)
| Причина: Не указана |
Luxoft-Москва |
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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-Москва |
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close