[Logo] Форум PKI в Казахстане
  [Search] Поиск   [Recent Topics] Последние темы   [Hottest Topics] Горячие темы   [Members]  Список участников   [Groups] На главную страницу 
[Register] Регистрация / 
[Login] Вход 
Обсуждение использования сервисов TSP и OCSP
Индекс форума » Использование сервисов метки времени (TSP) и проверки статуса сертификатов (OCSP)
Автор Сообщение
Anton


Зарегистрирован: 15/07/2010 11:59:34
Сообщений: 4
Оффлайн

Коллеги! У кого-нибудь получилось реализовать проверку сертификата средствами скриптов или апплета? Закодированный текст могу получить только вручную.
Как можно обработать этот файл, который приходит в ответ на сертификат?
Umid


Зарегистрирован: 01/08/2010 20:25:50
Сообщений: 5
Оффлайн

Anton wrote:Коллеги! У кого-нибудь получилось реализовать проверку сертификата средствами скриптов или апплета? Закодированный текст могу получить только вручную.
Как можно обработать этот файл, который приходит в ответ на сертификат?


Антон,
у меня ответ приходит только на запрос штампа времени, на OCSP запрос никакого ответа не приходит. Штам времени я обрабатываю так (C#)


чтобы этот пример работал нужно в приложении подключить ссылку на crypto.dll - она идет в комплекте НУЦ SDK. Есть реализация на Java, если нужно обращайся.

У меня лично другая проблема - на запрос OCSP мое приложение вообще не получает никакого ответа, только пустую строку. В форме поста я передаю туда тело сертификата, работал над этим несколько дней, но никак не выходит получить ответ от сервиса средствами дот нета. Причем если я вручную отправляю тело сертификата через форму - то ответ приходит нормально. Я уже все возможные значения заголовков отправлял - ничего не помогает. Может админы подскажут в чем тут засада?

На ocsp запрос я отправляю параметр certificate={тело сертификата}, Плюс всевозможные виды HTTP заголовков - но обратный поток пустой. Что я делаю неправильно? Админы, пожалуйста помогите, а то без OCSP вся схема проверки сертификатов не очень убедительно выглядит.


На данный момент моя реализация проверки подписей состоит из двух компонентов:
1. crl - скачиваю автоматом и парсю список отозванных сертификатов.
2. Там где должен работать OCSP - там просто сверяюсь со своей базой - если сертификат в списке отозванных, то здесь пользователю идет отказ.
3. TSP - получаю штамп времени, сверяюсь со временем сертификата и если просрочен - то также отказ
AdminCA


Зарегистрирован: 19/11/2008 12:04:38
Сообщений: 87
Оффлайн

В представленной ранее HTML форме было указано
Попробуйте это в своем коде.

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 20/08/2010 10:22:43

Umid


Зарегистрирован: 01/08/2010 20:25:50
Сообщений: 5
Оффлайн

Я в своем коде уже по-моему все перепробовал , ничего не помогает и все типы content-type перебрал и все виды кодировок, юзер агентов разных указывал и еще кучу всего. Тут я вижу две причины: 1) либо в моем коде все-таки что-то не так, либо 2) в коде НУЦ который возвращает ответ на POST считываются какие-то еще параметры которые я не предоставляю - соответственно и ответ пустой приходит.


В общем не знаю, пока забил на ocsp, работаю через crl и tsp, потом как будет время посижу покопаюсь в коде, если получится отпишу здесь вариант кода для c#.

AdminCA wrote:В представленной ранее HTML форме было указано
Попробуйте это в своем коде.
AdminCA


Зарегистрирован: 19/11/2008 12:04:38
Сообщений: 87
Оффлайн

Вы пробовали использовать HTML формы, которые мы приводили в качестве примера?
Они работают у вас?
Тупо конечно, но попробуйте в коде выполнить "полную" эмуляцию HTML/POST, без вызова методов.
Umid


Зарегистрирован: 01/08/2010 20:25:50
Сообщений: 5
Оффлайн

AdminCA wrote:Вы пробовали использовать HTML формы, которые мы приводили в качестве примера?
Они работают у вас?
Тупо конечно, но попробуйте в коде выполнить "полную" эмуляцию HTML/POST, без вызова методов.



Да пробовал, все с HTML формой работает просто на ура. Но в коде не получится просто эмулировать отправку формы, без методов, по крайней мере в ASP.NET. Я еще не пробовал эмулировать OCSP запрос через PHP с помощью cURL, если там получится, то значит что-то не так в самой реализации dotNet, а если и в PHP не сработает, тогда дело в чем-то другом
Dmitry


Зарегистрирован: 22/08/2010 17:18:02
Сообщений: 2
Оффлайн

Может следующие слова помогут тем кто пишет на dot.net....

На ocsp запрос я отправляю параметр certificate={тело сертификата}


1)
Дело в том, что надо составлять полный запрос серверу
Выглядит он примерно так:
certificate=-----BEGIN+CERTIFICATE-----%0D%0A{тело сертификата}%0D%0A-----END+CERTIFICATE-----&submit=Verify

(если кому интересно могу расписать почему именно так, здесь слова certificate и Verify не обязательно должны писаться так...)

Здесь уже представлена полная строка для запроса к серверу без тела сертификата

2)
"+" и "%0D%0A" в теле запроса стоит не случайно!

При отправке запроса к серверу необходимо подготовить данные => все русские символы заменяются на ASCI хекс
Так же после получения сертификата в base64 необходимо заменить следующие символы +, =, \r, \n, \0 на ASCI хекс

Вопрос:
Почему это работает в браузере, но не работает в dot.net?
Ответ:
Браузер сам преобразует символы.

Без замены в ручную есть готовые dot.net классы, просто здесь расписал, чтобы до конца понимали, что к чему....

Теперь вопрос к разработчикам:
1) Почему бы это все не реализовать с помощью какого нибудь Web сервиса (формат SOAP) (дабы не было такого гемороя....)?
2) Вроде как живем не в каменном веке... Почему представление квитанции нельзя отдавать в Xml представлении?

Так же интересный вопрос:
отправлял запрос без "BEGIN CERTIFICATE" и "END CERTIFICATE" ответ получаю нормальный (как и с ними).
Так они обязательны или нет? Просьба расписать
AdminCA


Зарегистрирован: 19/11/2008 12:04:38
Сообщений: 87
Оффлайн

Dmitry, спасибо за замечание.
Как только утрясется вопрос со "статусом" разработчиков, мы обязательно подымем
вопрос об улучшении работы сервисов.
Пока же придется придумывать "заковыристые велосипеды".
Dmitry


Зарегистрирован: 22/08/2010 17:18:02
Сообщений: 2
Оффлайн

Так же хотелось спросить как можно проверить действительна метка времени (TSP) или нет (ну по крайней мере на тестовом сервисе сделать это не возможно.. )

1. <li>Квитанция TSP : статус квитанции : 0:-1 ().</li>
2. <li> подпись верна.</li>
3. <li>------------------------------------.</li>
4. <li>Квитанция : </li>
5. <li> digest(1.3.6.1.4.1.6801.1.2.1) : e3 bd c5 ....</li>
6. <li> время TSA : 20100511123040Z</li>
7. <li> имя сервера TSA : C=KZ;O=АО Национальные Информационные Технологии;CN=TSP, s/n=e2 4f fb ....</li>

Из такой квитанции можно узнать тока TimeStamp и алгоритм хэширования, можно ли, чтобы на тестовом сервисе TSP хэш приходил полный, а не обрезанный?

Хотелось бы услышать от администрации алгоритмы проверки действительности TimeStamp, ну так сказать чтобы и другие люди знали, а то как то не по себе становится, когда идет получение TimeStamp и сразу проверка с какой то датой....
Anton


Зарегистрирован: 15/07/2010 11:59:34
Сообщений: 4
Оффлайн

Umid, Спасибо!

Есть реализация на java получения OCSP квитанции, если еще нужно - обращайся.
аcя 347384673

Не могу понять, как вообще пользоваться сервисом TSP в данном, конкретном случае?
Что нужно хэшировать? Каким алгоритмом? И что за дата придет в ответ?
Anton


Зарегистрирован: 15/07/2010 11:59:34
Сообщений: 4
Оффлайн

Вопрос снимается

http://ru.wikipedia.org/wiki/Timestamp

Получается что без хэша сервис использовать невозможно
FireWolf2007


Зарегистрирован: 03/11/2010 16:42:48
Сообщений: 2
Оффлайн

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

Подскажите почему не возможно разобрать TSP-ответ от сервера с помощью обычного openssl?
Также не возможен разбор с помощью библиотек TumarJCE.

Везде выходит ошибка:

openssl asn1parse <data.tsp
Error: offset too large

Java Test:
java.io.IOException: DER length more than 4 bytes at kz.gamma.asn1.ASN1InputStream.readLength(ASN1InputStream.java:93) at kz.gamma.asn1.ASN1InputStream.readObject(ASN1InputStream.java:297)
...

Заранее спасибо, за ответ.
FireWolf2007


Зарегистрирован: 03/11/2010 16:42:48
Сообщений: 2
Оффлайн

FireWolf2007 wrote:Здравствуйте!

Подскажите почему не возможно разобрать TSP-ответ от сервера с помощью обычного openssl?
Также не возможен разбор с помощью библиотек TumarJCE.
...



Проблема актуальна, кто-нибудь может что-нибудь предложить/подсказать?
AdminCA


Зарегистрирован: 19/11/2008 12:04:38
Сообщений: 87
Оффлайн

Добрый день.

На этот вопрос вам сможет ответить только разработчики
прикладного программного обеспечения НУЦ РК.

http://gamma.kz
e.nur.kz


Зарегистрирован: 25/01/2011 09:08:05
Сообщений: 9
Оффлайн

Gamma, говорить, что у них с вами не заключен Договор и никаких консультаций они оказывать не будут.
Планируется ли заключение Договора с Gamma?
 
Индекс форума » Использование сервисов метки времени (TSP) и проверки статуса сертификатов (OCSP)
Перейти:   
Powered by JForum 2.1.8 © JForum Team