| Автор |
Сообщение |
![[Post New]](/jforum/templates/default/images/icon_minipost_new.gif) 28/07/2010 08:54:15
|
Anton
Зарегистрирован: 15/07/2010 11:59:34
Сообщений: 2
Оффлайн
|
Коллеги! У кого-нибудь получилось реализовать проверку сертификата средствами скриптов или апплета? Закодированный текст могу получить только вручную.
Как можно обработать этот файл, который приходит в ответ на сертификат?
|
|
|
 |
![[Post New]](/jforum/templates/default/images/icon_minipost_new.gif) 01/08/2010 20:40:04
|
Umid
Зарегистрирован: 01/08/2010 20:25:50
Сообщений: 3
Оффлайн
|
Anton wrote:Коллеги! У кого-нибудь получилось реализовать проверку сертификата средствами скриптов или апплета? Закодированный текст могу получить только вручную.
Как можно обработать этот файл, который приходит в ответ на сертификат?
Антон,
у меня ответ приходит только на запрос штампа времени, на OCSP запрос никакого ответа не приходит. Штам времени я обрабатываю так (C#)
чтобы этот пример работал нужно в приложении подключить ссылку на crypto.dll - она идет в комплекте НУЦ SDK. Есть реализация на Java, если нужно обращайся.
У меня лично другая проблема - на запрос OCSP мое приложение вообще не получает никакого ответа, только пустую строку. В форме поста я передаю туда тело сертификата, работал над этим несколько дней, но никак не выходит получить ответ от сервиса средствами дот нета. Причем если я вручную отправляю тело сертификата через форму - то ответ приходит нормально. Я уже все возможные значения заголовков отправлял - ничего не помогает. Может админы подскажут в чем тут засада?
На ocsp запрос я отправляю параметр certificate={тело сертификата}, Плюс всевозможные виды HTTP заголовков - но обратный поток пустой. Что я делаю неправильно? Админы, пожалуйста помогите, а то без OCSP вся схема проверки сертификатов не очень убедительно выглядит.
На данный момент моя реализация проверки подписей состоит из двух компонентов:
1. crl - скачиваю автоматом и парсю список отозванных сертификатов.
2. Там где должен работать OCSP - там просто сверяюсь со своей базой - если сертификат в списке отозванных, то здесь пользователю идет отказ.
3. TSP - получаю штамп времени, сверяюсь со временем сертификата и если просрочен - то также отказ
|
|
|
 |
![[Post New]](/jforum/templates/default/images/icon_minipost_new.gif) 20/08/2010 10:22:33
|
AdminCA
Зарегистрирован: 19/11/2008 12:04:38
Сообщений: 59
Оффлайн
|
В представленной ранее HTML форме было указано
Попробуйте это в своем коде.
Это сообщение было редактировано 1 раз. Последнее обновление произошло в 20/08/2010 10:22:43
|
|
|
 |
![[Post New]](/jforum/templates/default/images/icon_minipost_new.gif) 20/08/2010 10:46:13
|
Umid
Зарегистрирован: 01/08/2010 20:25:50
Сообщений: 3
Оффлайн
|
Я в своем коде уже по-моему все перепробовал , ничего не помогает и все типы content-type перебрал и все виды кодировок, юзер агентов разных указывал и еще кучу всего. Тут я вижу две причины: 1) либо в моем коде все-таки что-то не так, либо 2) в коде НУЦ который возвращает ответ на POST считываются какие-то еще параметры которые я не предоставляю - соответственно и ответ пустой приходит.
В общем не знаю, пока забил на ocsp, работаю через crl и tsp, потом как будет время посижу покопаюсь в коде, если получится отпишу здесь вариант кода для c#.
AdminCA wrote:В представленной ранее HTML форме было указано
Попробуйте это в своем коде.
|
|
|
 |
![[Post New]](/jforum/templates/default/images/icon_minipost_new.gif) 20/08/2010 11:00:41
|
AdminCA
Зарегистрирован: 19/11/2008 12:04:38
Сообщений: 59
Оффлайн
|
Вы пробовали использовать HTML формы, которые мы приводили в качестве примера?
Они работают у вас?
Тупо конечно, но попробуйте в коде выполнить "полную" эмуляцию HTML/POST, без вызова методов.
|
|
|
 |
![[Post New]](/jforum/templates/default/images/icon_minipost_new.gif) 20/08/2010 11:06:05
|
Umid
Зарегистрирован: 01/08/2010 20:25:50
Сообщений: 3
Оффлайн
|
AdminCA wrote:Вы пробовали использовать HTML формы, которые мы приводили в качестве примера?
Они работают у вас?
Тупо конечно, но попробуйте в коде выполнить "полную" эмуляцию HTML/POST, без вызова методов.
Да пробовал, все с HTML формой работает просто на ура. Но в коде не получится просто эмулировать отправку формы, без методов, по крайней мере в ASP.NET. Я еще не пробовал эмулировать OCSP запрос через PHP с помощью cURL, если там получится, то значит что-то не так в самой реализации dotNet, а если и в PHP не сработает, тогда дело в чем-то другом
|
|
|
 |
![[Post New]](/jforum/templates/default/images/icon_minipost_new.gif) 22/08/2010 17:48:47
|
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" ответ получаю нормальный (как и с ними).
Так они обязательны или нет? Просьба расписать
|
|
|
 |
![[Post New]](/jforum/templates/default/images/icon_minipost_new.gif) 25/08/2010 11:16:35
|
AdminCA
Зарегистрирован: 19/11/2008 12:04:38
Сообщений: 59
Оффлайн
|
Dmitry, спасибо за замечание.
Как только утрясется вопрос со "статусом" разработчиков, мы обязательно подымем
вопрос об улучшении работы сервисов.
Пока же придется придумывать "заковыристые велосипеды".
|
|
|
 |
![[Post New]](/jforum/templates/default/images/icon_minipost_new.gif) 28/08/2010 13:12:13
|
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 и сразу проверка с какой то датой....
|
|
|
 |
|
|