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

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

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

  • Будет ли принят код, если в нем есть отметка времени?
  • Должны ли по-прежнему присутствовать истекшие сертификаты корневого и выдающего ЦС (например, в хранилище сертификатов доверенного корневого ЦС)? Это мое предположение, даже если ЦС может быть понижен в должности, клиент, который выполняет подписанный, все еще должен доверять ЦС? Иначе цепочка доверия будет разорвана, верно?
  • Не создаст ли проблемы отсутствие CRL или AIA?

1 ответ

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

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

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

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

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

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

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

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

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

По этой причине современные системы Windows поставляют давно истекшие корневые сертификаты. Они все еще используются для проверки старых подписей и отметок времени.

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

Другие вопросы по тегам