Назад | Перейти на главную страницу

Что происходит с сертификатами кодовой подписи по истечении срока действия корневого центра сертификации?

Пока для меня ясно: если срок действия самого сертификата подписи кода истекает, подписанный код будет проверен / принят, если он был подписан с отметкой времени. В противном случае срок действия подписанного кода также истек.

Но что произойдет, если истечет срок действия самого моего ЦС (корневого ЦС и, таким образом, выдающих ЦС)?

Но что произойдет, если истечет срок действия самого моего ЦС (корневой ЦС и, таким образом, выдающие ЦС)?

Буквально ничего. Поясним это немного подробнее.

Если подпись не имеет отметки времени, подпись действительна до тех пор, пока:

  • данные не подделаны
  • сертификат подписи действителен
  • ни один сертификат в цепочке не отозван
  • корневой сертификат является доверенным

Если срок действия сертификата подписи истек, он отозван или стал недействительным тем или иным образом, подпись считается недействительной. Легко и просто.

Целью меток времени в цифровой подписи является обеспечение расширенного доверия для подписанного содержимого. Сертификаты для подписи действительны в течение короткого периода времени, а базовые настройки доверия не подходят для долгосрочной (возможно, архивной) подписи. Обычно (без меток времени) вам придется воссоздавать подпись каждый раз при обновлении сертификата подписи. Это путь в никуда.

При добавлении метки времени к цифровым подписям условия доверия изменяются на следующий список:

  • данные не подделаны
  • сертификат подписи *был* время действительно на момент подписания: время подписания находится в пределах срока действия сертификата подписи
  • Ни один сертификат не был отозван *перед* генерация подписи
  • сертификаты подписи и отметки времени связаны с доверенными корневыми центрами сертификации (независимо от их срока действия, они должны находиться в хранилище доверенных сертификатов).

Что здесь изменилось: подпись остается действительной после истечения срока действия задействованного сертификата. То есть вся цепочка для подписи и сертификатов с отметками времени может истечь (вместе с корневым сертификатом), и это не нарушит доверия. Сертификаты в цепочке можно отозвать. Единственное требование: если какой-либо сертификат отозван, время отзыва (оно получается из CRL) должно быть установлено на время после создания подписи (время подписи идентифицируется меткой времени). Предыдущее предложение означает, что должен быть подписанный CRL, чтобы доказать, что ни один сертификат не был отозван во время подписания.

Это причина того, что современные системы Windows поставляют корневые сертификаты с давно истекшим сроком действия. Они по-прежнему используются для проверки старых подписей и имеют отметки времени.

Некоторое время назад я написал сообщение в блоге, в котором более подробно объясняется тема: Цифровые подписи и отметки времени