Но что произойдет, если срок действия моего ЦС истечет (корневая ЦС выдает ЦС)?
Буквально ничего. Давайте объясним это немного подробнее.
Если подпись не имеет отметки времени, подпись действительна до тех пор, пока:
- данные не подделаны
- срок действия сертификата подписи
- ни один сертификат в цепочке не отозван
- корневой сертификат является доверенным
Если срок действия сертификата подписи истек, отозван или стал недействительным тем или иным способом, подпись считается недействительной. Легко и просто.
Целью отметок времени в цифровой подписи является предоставление расширенного доверия подписанному контенту. Сертификаты подписи действительны в течение короткого периода времени, а базовые параметры доверия не подходят для долгосрочной (возможно, заархивированной) подписи. Обычно (без отметок времени) вам придется воссоздавать подпись каждый раз при обновлении сертификата подписи. Это путь в никуда.
При добавлении временной метки к цифровым подписям условия доверия изменяются на следующий список:
- данные не подделаны
- сертификат подписи * был * действителен в момент подписания: время подписания находится в пределах срока действия сертификата подписи
- Ни один сертификат не был отозван * до * генерации подписи
- оба сертификата подписи и отметки времени объединяются в доверенные корневые центры сертификации (независимо от их срока действия, они просто должны находиться в хранилище доверенных сертификатов).
Что здесь изменилось: подпись остается в силе после истечения срока действия сертификата. То есть может истечь вся цепочка для подписи и сертификатов отметки времени (вместе с корневым сертификатом), и это не сломает доверие. Сертификаты в цепочке могут быть отозваны. Единственное требование: если какой-либо сертификат отозван, время отзыва (полученное из CRL) должно быть установлено на время после создания подписи (время подписания идентифицируется с помощью метки времени). Предыдущее предложение означает, что должен быть подписанный CRL, чтобы доказать, что ни один сертификат не был отозван во время подписания.
По этой причине современные системы Windows поставляют давно истекшие корневые сертификаты. Они по-прежнему используются для проверки старых подписей и отметок времени.
Некоторое время назад я написал пост в блоге, который объясняет тему более подробно: цифровые подписи и временные метки
ThisUpdate
поле) после времени подписания. Этот CRL может доказать, что ни один сертификат в обеих цепочках (подпись и отметка времени) не был отозван во время подписания.