OCSP (част 1) - PKI разширения

Днес искам да говоря заOCSP - Протокол за онлайн статус на сертификат, който се използва за проверка на статуса на сертификат за анулиране. Както знаете, стандартният механизъм за проверка на статуса на сертификат е публикуването наCRL (списък с анулирани сертификати). В живота има 2 вида CRL:

Но това не елиминира необходимостта клиентът да изтегли не само Base CRL, но също така трябва допълнително да изтегли Delta CRL. Сертификатните услуги в Windows Server 2008 обаче ни позволяват да направим живота малко по-добър и да улесним валидирането на сертификата с помощта наOCSP.

Накратко, OCSP работи много просто: за да провери статуса на сертификат, клиентът изпраща заявка до OCSP Responder, като посочва серийния номер на сертификата, който се проверява. OCSP Responder от своя страна проверява статуса на сертификата и връща този статус на клиента.

Забележка:Само клиенти, работещи с Windows Vista и по-нови версиимогат да използват OCSP първоначално. Предишните операционни системи могат да го поддържат само чрез компоненти на трети страни.

Този шаблон има следните свойства:

  • сертификатът е валиден 2 седмици
  • в раздела Обработка на заявки е добавено правото за четене на частния ключ за мрежовата услуга, тъй катоOCSP услугата работи от името на мрежовата услуга, а не LocalSystem(не са необходими отделни разрешения за LocalSystem)
  • шаблонът не съдържа CDP и AIA разширения
  • шаблонът е маркиран като неподходящ за проверка на анулиране (вижте фиг.1)

В раздела Сигурност трябва да дадете праватаРазрешаване на четене иРазрешаване на записване на компютърния акаунт, хостващ OCSP. Това е единствената промяна, коятотрябва да се направи за шаблона. Сега трябва да отворим модула за сертифициращ орган и да добавим този шаблон за издаване:

щракнете с десния бутон върху Шаблони за сертификати –> Ново-> Шаблон на сертификат за издаване –> Подписване на отговор на OSCP. След това трябва да създадете модула за сертификати за компютърния акаунт и да поискате сертификат въз основа на този шаблон от компютъра, на който е инсталиран OCSP Responder.

След като поискате сертификат, не затваряйте модула за сертификати, а изберете нов сертификат и изберетеУправление на частни ключове вВсички задачи. В прозореца с разрешения, който се отваря, дайте право наЧетене за акаунтаМрежова услуга :

Настройка на CA

Следващата стъпка е да подготвите самия CA за работа с OCSP. За да направите това, извикваме свойствата на самия CA и отиваме в раздела Разширения:

В списъка с разширения изберете Authority Information Access (AIA), щракнете върху Add и въведете URL адреса за OCSP в полето. В моя случай това е http://dc2.contoso.com/ocsp. Също така поставяме долната отметка, така че този път да се добавя към всички сертификати, издадени от този CA.

Забележка: Като се има предвид, че такъв сертификат е валиден само за 2 седмици, този шаблон не трябва да се добавя към правилата за автоматично записване (ако се използва), т.к. може да има затруднения с валидирането на сертификата в периода от време, когато CA сертификатът се актуализира. Ето как може да изглежда:

в интервала t0 - t2 старият CA ключ се използва за подписване на сертификати (включително OCSP). Между t1-t3 се използва нов CA сертификат. И когато дойде етап t1, когато старият сертификат се поднови за нов преди датата на изтичане, тогава в интервала t1-t2 може да се случи следното:

  • клиентът изпраща заявка за проверка на статуса на сертификата Cert1 или Cert2, койтоподписан с CA Key 1
  • новият CA Key 2 вече е валиден на CA сървъра и съответно OCSP сертификатът е подписан от новия ключ
  • сървърът подписва отговора на клиента с нов OCSP ключ и препраща
  • клиентът проверява подписите на OCSP и сертификата, който се проверява. Подписите няма да съвпадат, т.к сертификатът е подписан от CA Key 1, а OCSP отговорът вече е подписан от CA Key 2 и отхвърля отговора от OCSP Responder, тъй като провереният сертификат и подписващият сертификат на Online Responder трябва да бъдат подписани от един и същ CA ключ.

За да разреши проблема, Windows Server 2008 включва подновяване на сертификати за подписване на OCSP с помощта на съществуващи ключове за посочения период от време. Не е активиран по подразбиране, така че за да активирате такава актуализация от командния ред, изпълнете:

certutil –setreg ca\UseDefinedCACertInRequest 1

След като изпълните тази команда, трябва да получите нещо подобно на:

C:\Users\administrator>certutil -setreg ca\UseDefinedCACertInRequest 1 SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\contoso-DC2-CA\UseDefine dCACertInRequest:

Както се казва в съобщението, трябва да рестартирате услугата AD CS след тази процедура:

net stop certsvc net start certsvc

Това е всичко за днес, но следващия път ще продължим с конфигурирането на онлайн отговора и правилата за анулиране на сертификати.