Проверка пути сертификата
(0 чел.) 
  • Страница:
  • 1
  • 2

ТЕМА: Проверка пути сертификата

Проверка пути сертификата 4 года, 10 мес. назад #1195

  • Baitur
  • Новый участник
  • Постов: 1
  • Репутация: 0
Добрый день. Столкнулись с проблемой реализации проверки пути сертификации до корневого сертификта.

Есть ли у Вас пример реализации на java?

Re: Проверка пути сертификата 4 года, 9 мес. назад #1298

  • Andry
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 0
Солидарен с Вами.
Пишу на Delphi, библиотека IolaCOM v.6.0.0.1.
В предоставленных исходниках есть примеры генерации, конвертации и подписания запросов на сертификат. Есть функция SetDocRdn, но жаль что нет обратной, для получения информации по идентификатору(типа GetDocRdn (const RdnOid: WideString): WideString

Но, "прошарившись" по IolaCOM_TLB, я так и не нашел подходящей функции для проверки действительности сертификационного пути (trust). Кстати, почему можно спокойно пройти проверку OCSP с просроченным сертификатом, если в системе переставить время назад? Разве OCSP не проводит проверку на time и trust?

Если проверку по времени сертификата реализовать несложно (получить точное время в нужном регионе по NTP), то вот как реализовать проверку trust? И можно ли это реализовать в IolaCOM?

Re: Проверка пути сертификата 4 года, 9 мес. назад #1299

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Здравствуйте!

Локальное время никак не влияет на проверку по OCSP. Данная проверка проходит на сервере.
Если у Вас при изменении локального времени прошла проверка, значит Вы неправильно вызываете проверку по OCSP.
В тестовом приложении в SDK есть пример использования. Обязательно должен быть установлен флаг CC_USE_OCSP_ONLY.

  StrBody := FileAsStr(dlgOpen1.FileName);
  IolaTest.ValidType := CC_USE_OCSP_ONLY;
  IolaTest.OcspUrl := edt1.Text;
  
  try
    Result := IolaTest.ValidateDoc(StrBody, Now());
    if Result then ShowMessage('Certificate is OK!');
  finally
    ShowMessage(IolaTest.GetLastErrorString);
  end;
Модератор
Изменено: 4 года, 9 мес. назад от Murat Seisenov.

Re: Проверка пути сертификата 4 года, 9 мес. назад #1300

  • Andry
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 0
Мой код:
function OCSP_Verify(pParam : POINTER):dword; stdcall;
var cert:WideString;
begin
//---если проверка годности прошла, проверяем по OCSP
OCSP_frm.redt_data.Lines.Add('Системная проверка окончена.');
OCSP_frm.redt_data.Lines.Add('');
OCSP_frm.redt_data.Lines.Add('Начинается проверка OCSP. Пожалуйста подождите...');
  try
  cert := IolaCOM.ExportCertificate(form1.selectkey_combo.Text, CF_OUT_BASE64);
  iolaCOM.ValidType := CC_USE_OCSP_ONLY;
  iolaCOM.OcspUrl := 'http://ocsp.pki.kz:80';
   //try
    if iolaCOM.ValidateDoc(cert, now)=true then
    begin
    OCSP_frm.redt_data.Lines.Add('OCSP: Cертификат успешно подтвержден НУЦ РК');
    St:='8756214';
    OCSP_frm.close_btn.Caption:= 'Продолжить';
    end;
    finally
    OCSP_frm.redt_data.Lines.Add(IolaCOM.GetLastErrorString);
   end;
PulseEvent(Cardinal(pParam^));
end;


Я использую OCSP для проверки валидности сертификата. При просроченных сертификатах - дальше проверки дело не заходит, но как только поменяешь системную дату назад (на время действия сертификата), то проверка как ни странно проходит на ура!
используемый ключ: "...\SDK_KNCA_2014-11-05\test certificates\Просроченные\Физ.лиц.действ\RSA_99976127425c59b1b7d7a536d42613edc4d198a5"
Проверьте самостоятельно, если не верите. Пример моей программы в соседней теме "Подписывание файлов в XML"

И кстати, что на счет проверки сертификационного пути? Она автоматически проходит по ocsp или ее необходимо выполнить самостоятельно в IolaCOM??
Изменено: 4 года, 9 мес. назад от Andry.

Re: Проверка пути сертификата 4 года, 9 мес. назад #1302

  • Murat Seisenov
  • Модератор
  • Постов: 391
  • Репутация: 19
Да, точно. В COM-объекте проверка сертификата производится по локальному времени компьютера. Вообще, эту проверку Вы должны сами реализовывать на Вашем сервере.
По OCSP проверяется сертификат на его наличие в списках отозванных сертификатов.

Да, проверка сертификационного пути в методе ValidateDoc производится автоматически при установке флага CC_USE_OCSP_ONLY или CC_USE_CRL_ONLY. При успешном выполнении метода можете вызвать GetLastErrorString и увидите лог выполнения проверки.
Модератор

Re: Проверка пути сертификата 4 года, 9 мес. назад #1303

  • Andry
  • Осваиваюсь на форуме
  • Постов: 26
  • Репутация: 0
Ну, по времени то я проверю срок действия сертификата....Но вот что касается сертификационного пути, его мне тоже реализовывать самостоятельно?
  • Страница:
  • 1
  • 2
FaLang translation system by Faboba