RFC: 5280
Оригинал: Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
Предыдущие версии: RFC 2459, RFC 3280, RFC 4325, RFC 4630
Категория: Предложенный стандарт
Дата публикации: (с дополнениями из RFC 6818, Январь 2013)
Авторы: , , , , , ,
Перевод: Мельников Дмитрий Анатольевич

6.3.3. Обработка СОС

Алгоритм обработки начинается с предположения, что сертификат не является аннулированным. Алгоритм проверяет один или несколько СОС до тех пор, пока, либо не будет определён состояние сертификата, подлежащего аннулированию, либо будет проверено достаточное число СОС с целью выявления всех кодов причин отзыва.

Для каждой точки распространения, указанной в субполе «cRLDistributionPoints» сертификата, для каждого соответствующего СОС, хранящегося в локальной кэш-памяти для СОС, несмотря на то, что переменная «reasons_mask» не содержит значение «all-reasons», а переменная «cert_status» — «UNREVOKED», проводим следующие операции:

  1. Обновляем данные в локальной кэш-памяти для СОС за счёт получения заполняемого СОС, усечённого СОС или их обоих, если конечно это потребуется:

    1. Если текущее время больше времени, указанного в субполе «nextUpdate» СОС, то выполняем одну из двух следующих операций:

      1. Если значение «use-deltas» установлено, а сертификат или СОС содержат субполе «freshestCRL», то получаем усечённый СОС со следующим значением в субполе «nextUpdate», которое позднее текущего времени, и может использоваться для обновления данных в локальной кэш-памяти для СОС (5.2.4).

      2. Добавляем заполняемый СОС к данным в локальной кэш-памяти для СОС, проверяем, что текущее время более раннее, чем значение в субполе «nextUpdate» нового СОС, и продолжаем обработку с использование нового СОС. Если значение «use-deltas» установлено, а сертификат или СОС содержат субполе «freshestCRL», то получаем текущий усечённый СОС, который может использоваться для обновления нового заполняемого СОС, хранящегося в локальной кэш-памяти для СОС (5.2.4).

    2. Если текущее время больше значения в субполе «nextUpdate», значение «use-deltas» установлено, а сертификат или СОС содержат субполе «freshestCRL», то получаем текущий усечённый СОС, который может использоваться для обновления заполняемого СОС, хранящегося в локальной кэш-памяти для СОС (5.2.4).

  2. Проверяем издателя и область применения заполняемого СОС следующим образом:

    1. Если точка распространения включает субпоследовательность «cRLIssuer», то проверяем, что поле «Issuer» в заполняемом СОС совпадает с субпоследовательностью «cRLIssuer» в точке распространения, и что заполняемый СОС содержит последовательность «issuingDistributionPoint», которая, в свою очередь, включает субпоследовательность «indirectCRL» (содержит логический тип данных, «boolean»). В противном случае, проверяем, что издатель СОС совпадает с издателем сертификата.

    2. Если заполняемый СОС включает последовательность «issuingDistributionPoint» субполя «crlExtensions», то проверяем:

      1. Если в последовательности «issuingDistributionPoint» субполя «crlExtensions» представлена субпоследовательность «DistributionPointName», а в последовательности «DistributionPoint» представлена субпоследовательность «Distribution», то проверяем, что одно из наименований в последовательности «issuingDistributionPoint» совпадает с одним из наименований в последовательности «DistributionPoint». Если в последовательности «issuingDistributionPoint» субполя «crlExtensions» представлена субпоследовательность «DistributionPointName», а в последовательности «DistributionPoint» не представлена субпоследовательность «Distribution», то проверяем, что одно из наименований в последовательности «issuingDistributionPoint» совпадает с одним из наименований в субпоследовательности «cRLIssuer» последовательности «DistributionPoint».

      2. Если в последовательности «issuingDistributionPoint» субполя «crlExtensions» представлена субпоследовательность «onlyContainsUserCerts» (содержит логический тип данных, «boolean»), то проверяем, что в субполе «basicConstraints» поля «Расширения» сертификата не установлен флаг «cA».

      3. Если в последовательности «issuingDistributionPoint» субполя «crlExtensions» представлена субпоследовательность «onlyContainsCACerts» (содержит логический тип данных, «boolean»), то проверяем, что в субполе «basicConstraints» поля «Расширения» сертификата установлен флаг «cA».

      4. Проверяем, что субпоследовательность «onlyContainsAttributeCerts» (содержит логический тип данных, «boolean») не представлена.

  3. Если значение «use-deltas» установлено, то проверяем издателя и область применения усечённого СОС следующим образом:

    1. Проверяем, что издатель усечённого СОС совпадает с издателем заполняемого СОС.

    2. Если заполняемый СОС включает последовательность «issuingDistributionPoint» в субполе «crlExtensions», то проверяем, что усечённый СОС содержит аналогичную (полностью совпадающую) последовательность «issuingDistributionPoint» в субполе «crlExtensions». Если же заполняемый СОС не включает последовательность «issuingDistributionPoint» в субполе «crlExtensions», то проверяем, что и усечённый СОС также не содержит последовательность «issuingDistributionPoint» в субполе «crlExtensions».

    3. Проверяем, что последовательность «authorityKeyIdentifier» усечённого СОС совпадает с последовательностью «authorityKeyIdentifier» заполняемого СОС.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.