Contents of this directory is archived and no longer updated.

В первой части нашей темы я сделал лёгкий вброс по основным интерфейсам COM, при помощи которых мы можем управлять службой Online Responder. Сегодня мы более плотно посмотрим уже сами конфигурации. Они хранятся в свойстве OCSPCAConfigurationCollection:

PS C:\> $OCSPAdmin.OCSPCAConfigurationCollection


Identifier                 : ocsp
CACertificate              : {48, 130, 4, 78...}
HashAlgorithm              : SHA1
SigningFlags               : 605
SigningCertificate         : {48, 130, 3, 212...}
ReminderDuration           : 90
ErrorCode                  : 0
CSPName                    : Microsoft Software Key Storage Provider
KeySpec                    : 0
ProviderCLSID              : {4956d17f-88fd-4198-b287-1e6e65883b19}
ProviderProperties         : {BaseCrl, 48 130 2 152 48 130 1 128 2 1 1 48 13 6 9 42 134 72 134 247 13 1 1 5 5 0 48 71 4
                             9 19 48 17 6 10 9 146 38 137 147 242 44 100 1 25 22 3 99 111 109 49 23 48 21 6 10 9 146 38
                              137 147 242 44 100 1 25 22 7 99 111 110 116 111 115 111 49 23 48 21 6 3 85 4 3 19 14 99 1
                             11 110 116 111 115 111 45 68 67 50 45 67 65 23 13 49 50 48 53 49 51 49 49 48 50 51 57 90 2
                             3 13 49 50 48 53 50 48 50 51 50 50 51 57 90 48 91 48 31 2 14 101 155 179 23 53 37 15 8 0 2
                              0 0 5 131 23 13 49 50 48 53 48 54 49 49 51 53 48 48 90 48 27 2 10 32 26 29 24 0 2 0 0 1 1
                             29 23 13 49 48 49 50 50 52 49 56 48 49 48 48 90 48 27 2 10 31 211 64 105 0 2 0 0 1 126 23
                             13 49 48 49 50 50 52 49 56 48 49 48 48 90 160 129 167 48 129 164 48 31 6 3 85 29 35 4 24 4
                             8 22 128 20 157 253 252 170 197 187 38 226 196 154 213 208 75 93 106 97 10 138 186 67 48 1
                             8 6 9 43 6 1 4 1 130 55 21 1 4 5 2 3 2 0 2 48 11 6 3 85 29 20 4 4 2 2 16 116 48 28 6 9 43
                             6 1 4 1 130 55 21 4 4 15 23 13 49 50 48 53 50 48 49 49 49 50 51 57 90 48 66 6 3 85 29 46 4
                              59 48 57 48 55 160 53 160 51 134 49 104 116 116 112 58 47 47 119 119 119 46 99 111 110 11
                             6 111 115 111 46 99 111 109 47 112 107 105 47 99 111 110 116 111 115 111 45 68 67 50 45 67
                              65 40 50 41 43 46 99 114 108 48 13 6 9 42 134 72 134 247 13 1 1 5 5 0 3 130 1 1 0 156 239
                              176 50 82 182 152 141 109 146 1 34 159 198 212 222 139 111 75 202 34 219 81 91 218 47 160
                              188 159 228 249 133 164 153 33 24 26 55 214 208 11 189 82 186 56 116 38 224 61 30 148 63
                             218 121 221 136 67 7 191 198 215 242 67 218 117 108 219 222 70 179 59 85 61 12 226 50 226
                             204 3 166 82 24 27 27 47 174 240 240 231 71 163 189 198 130 208 45 70 38 42 17 115 82 222
                             6 148 136 135 85 174 225 245 242 176 6 78 190 140 62 128 91 106 95 86 58 130 196 86 228 24
                             1 170 12 173 118 67 246 186 112 59 183 176 78 118 138 200 254 116 36 175 94 168 16 112 165
                              100 54 47 110 243 54 206 147 250 205 204 175 151 8 158 95 209 94 50 10 241 188 45 11 142
                             27 207 149 112 99 222 46 228 250 2 5 119 39 169 172 96 113 105 195 53 140 167 13 88 214 20
                             8 28 38 63 37 113 147 224 27 177 59 242 214 132 106 195 108 47 163 92 48 31 25 135 186 215
                              117 239 61 145 115 176 93 90 62 11 5 180 55 103 70 34 138 118 213 55 114 81 33 254 38 167
                              226, BaseCrlUrls, http://www.contoso.com/pki/contoso-DC2-CA(2).crl...}
Modified                   : False
LocalRevocationInformation :
SigningCertificateTemplate : OCSPResponseSigning
CAConfig                   : dc2.contoso.com\contoso-DC2-CA



PS C:\>

В моём случае присутствует только одна конфигурация. Что мы здесь видим:

  • Identifier — название конфигурации (какое хотите, такое и будет);
  • CACertificate — сертификат CA, для которого работает эта конфигурация;
  • HashAlgorithm — алгоритм подписи ответа. Хоть мы можем поменять SHA1 на более другой (например, SHA2), но учтите, что клиенты будут просто отклонять такие ответы. RFC2560 подразумевает использование только SHA1;
  • SigningFlags — набор флагов (через побитовое ИЛИ) подписи. Эквивалентно тому, что вы видите на вкладке Signing конкретной конфигурации. Об их значения поговорим чуть позже, когд будем создавать новую конфигурацию;
  • SigningCertificate — сам сертификат, который используется для подписи ответов. Если Online Responder установлен на сервере CA, можно обойтись и без делегированного сертификата, а подписывать сертификатом самого CA. В таком случае, это свойство будет содержать те же байтики, что и в CACertificate;
  • ReminderDuration — указывает процент времени по истечении которого служба начнёт доставлять кирпичи в эвентлог, что сертификат подписи скоро закончится;
  • ErrorCode — тут всё понятно. Если 0 — всё хорошо, если нет — всё плохо;
  • CSPName — название CSP, который будет использоваться для хранения ключей сертификата подписи;
  • KeySpec — ничего интересного. Там всегда должен быть 0;
  • ProviderCLSID — GUID провайдера отзыва;
  • ProviderProperties — содержимое провайдера отзыва. В конкретном случае здесь хранятся ссылки на CRL и сами CRL'ы в бинарном формате. Внутренности этого свойства мы посмотрим чуть ниже отдельно.
  • Modified — как я говорил в предыдущей части, это свойство автоматически становится True, как только мы что-нибудь поменяем в конкретной конфигурации;
  • LocalRevocationInformation — по умолчанию пусто. Здесь может быть локальный CRL, который содержит дополнительный список отзыва (это в случае если вы не имеете возможность переподписать основной CRL). В этом случае могут быть коллизии — OCSP отвечает, что сертификат отозван, а в основном (подписанном) CRL'е его нету;
  • SigningCertificateTemplate — шаблон сертификатов, который используется (если используется) для автоматического энроллмента сертификата подписи;
  • CAConfig — информация о CA, у которого запрашивать сертификат подписи.

Теперь давайте посмотрим содержимое свойства ProviderProperties. Это свойство является двумерным массивом, где первый столбец содержит название элемента конфигурации,  а второй уже содержит сами значения:

PS C:\> 0..5 | %{$OCSPAdmin.OCSPCAConfigurationCollection.Item(1).ProviderProperties[$_,0]}
BaseCrl
BaseCrlUrls
DeltaCrl
RevocationErrorCode
PS C:\>

Вот полный список возможных (но не факт, что они присутствуют) названий элементов провайдера отзыва:

  • BaseCrl
  • BaseCrlUrls
  • CrlUrlTimeout
  • DeltaCrl
  • DeltaCrlUrls
  • RefreshTimeOut
  • RevocationErrorCode

Примечание: эти названия описаны на странице IOCSPCAConfiguration::ProviderProperties property, но на MSDN закралась ошибка. Там где Url (BaseCrlUrl и DeltaCrlUrl), в конце должна ещё присутствовать буква S (как я написал выше).

Например, на другом сервере набор свойств и их значений немного другой:

PS C:\> $OCSPAdmin.OCSPCAConfigurationCollection.Item(3).ProviderProperties
BaseCrlUrls
http://pkix.sysadmins.lv/pica-1.crl
DeltaCrlUrls
http://pkix.sysadmins.lv/pica-1+.crl
RefreshTimeOut
600000
RevocationErrorCode
0
PS C:\>

И, следовательно, последовательность следования свойств может не соблюдаться. Это я к тому, что при разборе провайдеров отзыва, обязательно нужно считывать названия элементов из первого столбца, чтобы знать, что будет во втором столбце. На сегодня всё. В следующий раз мы будем удалять существующие конфигурации и создавать новые.


Share this article:

Comments:

artem

Ну, остаётся только понять, почему ты это не опишешь по-английски и не доставишь ссылку вот сюда: http://blogs.technet.com/b/askds/archive/2012/05/11/friday-mail-sack-mothers-day-pfffft-when-is-son-s-day.aspx#ocsp

Vadims Podāns

Потому что мне в этот бложек тоже что-то надо писать. А то он и так уже поростает мхом. Ссылку на AskDS я читал и они мне напомнили, что об этом надо что-то написать. Тем более, я некоторое время назад разбирал этот вопрос детально для одного проекта.

Comments are closed.