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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

12
ответ дан 2 December 2019 в 22:29

Теги

Похожие вопросы