Обработка дополнительных критичных дополнений. Распознаются и обрабатываются любые дополнительные критичные дополнения, указанные в сертификате. Если какие-либо критичные дополнения не распознаются, то путь сертификации не является валидным. Из переменных состояния извлекаются выходные параметры валидного пути сертификации:
* политики применения сертификатов и любые связанные с политикой квалификаторы;
* открытый ключ конечного субъекта, параметры, связанные с открытым ключом, и название алгоритма цифровой подписи.
Выявление в пути сертификации аннулированных сертификатов
В процессе валидации пути сертификации проверяется, не был ли аннулирован издателем хотя бы один сертификат из цепочки сертификатов [167]. С этой целью часто используются списки аннулированных сертификатов (см. лекцию 8). Выявление аннулированных сертификатов состоит из трех последовательных шагов:
1 инициализации ;
2 обработки САС;
3 завершения.
Каждый шаг выполняется один раз. В случае необходимости на втором шаге могут быть проверены несколько списков САС. Иногда анализируют не все коды причины аннулирования, а ограничиваются, например, только компрометацией ключа УЦ. Процедура обработки аннулирования, описываемая в данном разделе, предполагает проверку всех кодов причины аннулирования и требует наличия двух входных элементов: сертификата и индикатора дельта-списка САС. Комбинация серийного номера сертификата и имени издателя позволяет установить, находится ли данный сертификат в настоящий момент в определенном САС. Дополнение сертификата Basic Constraints (основные ограничения) информирует о принадлежности сертификата конечному субъекту или УЦ. Информация о пункте распространения САС и последней версии САС позволяет определить, должен ли применяться САС для выяснения статуса сертификата. Индикатор дельта-списка САС (см. лекцию 9) показывает, должны ли использоваться дельта-списки САС. Во время инициализации на базе входных параметров устанавливаются значения переменных состояния.
Переменная состояния маски причины принимает значения кодов причины аннулирования, полученных из списков и дельта-списков САС. Ее первоначальное значение - пустое множество. Коды причины могут отражать следующие ситуации: компрометацию ключа, компрометацию УЦ, истечение срока действия сертификата, прекращение операционной работы УЦ и др.
Переменная состояния статуса сертификата принимает одно из трех значений: "аннулирован" (с указанием причины аннулирования ), "не аннулирован" и "статус сертификата не определен". Первоначально переменная состояния статуса сертификата имеет значение "не аннулирован", оно не меняется до тех пор, пока в ходе проверки не обнаруживаются доказательства аннулирования.
Обработка САС
Как только инициализация закончена, обрабатывается один или несколько списков САС. Обработка выполняется до тех пор, пока либо не выяснится, что сертификат аннулирован, либо не будут проверены все списки САС, указанные в дополнении проверяемого сертификата CRL Distribution Points (пункты распространения САС), а переменная состояния статуса сертификата сохранит значение "не аннулирован". Обработка каждого САС состоит из шести шагов [167].
* Шаг 1. САС считывается или помещается в локальную кэш-память компьютера для хранения. САС может охватывать коды причины аннулирования полностью или частично.
* Шаг 2. Проверяется издатель САС. Если в дополнении CRL Distribution Points данного сертификата последовательности указано имя издателя САС, то оно сравнивается с именем издателя обрабатываемого САС. Если эти имена различны, то проверяется, совпадает ли имя издателя обрабатываемого САС с именем издателя данного сертификата. Когда используются косвенные списки САС, то имя издателя САС, указанное в дополнении CRL Distribution Points сертификата, отличается от имени издателя этого сертификата.
* Шаг 3. Проверка подписи издателя САС. Строится и проверяется путь сертификации издателя САС. Для проверки подписи, заверяющей САС, используется открытый ключ издателя САС. В большинстве случаев издатель САС является одновременно издателем одного из сертификатов пути сертификации. Если один и тот же ключ используется для подписания и САС, и сертификата, то путь сертификации уже построен и прошел валидацию. Если издатель использовал разные ключи, для построения этого пути может потребоваться отдельный дополнительный сертификат. Когда используются косвенные списки САС, может потребоваться путь сертификации полностью независимого издателя САС.
* Шаг 4. Подтверждается, что САС является текущим. Если в поле CRL Next Update (следующее обновление САС) указано время, предшествующее текущему моменту, то необходимо либо получить соответствующий дельта-список для обновления САС, либо отбросить САС. Если начальное значение индикатора дельта-списка установлено и присутствует дополнение Freshest CRL (последняя версия САС), то получают дельта-список, соответствующий данному базовому САС. Для дельта-списка САС проверяется его соответствие тому же самому набору сертификатов и тому же самому набору кодов причин, которые содержит и базовый САС. Кроме того, проверяется, был ли он издан тем же самым УЦ и заверен тем же самым ключом, что и базовый САС. Если все эти проверки завершены успешно, то проверяется цифровая подпись дельта-списка САС. Если подпись верна, то объединяются базовый список и дельта-список САС.
* Шаг 5. Корректировка переменной состояния маски причины. Значение переменной состояния устанавливается как объединение текущего значения и списка кодов причины для САС, определенного ранее.
* Шаг 6. Поиск сертификата с заданным серийным номером в САС. Если в сертификате имеется дополнение Issuer CRL Entry (точка входа САС издателя), то значение этого дополнения должно совпадать с именем издателя сертификата. Если в сертификате отсутствует дополнение Issuer CRL Entry, то должны совпадать имена издателя сертификата и издателя САС. Если для сертификата с заданным серийным номером имена издателей совпадают, то сертификат аннулирован. В этом случае переменная состояния статуса сертификата принимает значение, соответствующее причине аннулирования.
Если переменная состояния маски причин не отражает того, что все причины аннулирования проверены, а переменная состояния статуса сертификата имеет значение "не аннулирован", то выполняется пошаговая обработка следующего САС, указанного в дополнении сертификата CRL Distribution Points. Если обработаны все списки САС из дополнения CRL Distribution Points, но не все причины аннулирования проверены, то должны быть получены и проанализированы дополнительные списки САС. Информация о них хранится в репозитории издателя данного сертификата. Пошаговая процедура обработки повторяется для каждого дополнительного САС, после этого выполняется процедура завершения.
Завершение
Если все списки САС проанализированы, а переменная состояния маски причины не показывает, что все причины аннулирования проверены, то переменная состояния статуса сертификата принимает значение "не определен". Большинство приложений будет реагировать на этот статус так же, как и на статус "аннулирован", остальные приложения уведомят пользователя о неопределенном статусе сертификата. После этого проверка сертификата на предмет аннулирования завершается, и выводится значение переменной состояния статуса сертификата.
В начале главы упоминалось о том, что некоторые реализации объединяют построение и валидацию пути в одну операцию. Этот способ выбирается, потому что он более эффективен. Во-первых, он избавляет от необходимости повторно строить цепочки имен, когда они могут быть построены однократно во время объединенной операции. Во-вторых, в результате обработки ограничений пути, не являющиеся валидными, могут быть отвергнуты на этапе построения пути сертификации, что позволит избежать множества повторных запросов к репозиторию.
С другой стороны, объединенная операция более сложна, чем две отдельные операции построения и валидации пути. Эта повышенная сложность часто приводит к ошибкам реализации, которые, в свою очередь, требуют больших усилий по поддержке системы. В иерархиях, где путь строится достаточно просто, нецелесообразно объединять построение и валидацию пути.