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
Това е всичко за днес, но следващия път ще продължим с конфигурирането на онлайн отговора и правилата за анулиране на сертификати.