Зачем выдавать сертификат SSL, срок действия которого истекает в 2037 году?

11

В Firefox, если я просматриваю Verisign Universal Root Certificate Authority, я замечаю, что срок его действия истекает в 2037 году.

( Settingsвкладка -> advanced-> view certificates-> VeriSign Universal Root Certification Authority-> View.)

Почему его срок службы составляет 23 года?
Почему бы им не установить его срок действия раньше? Или позже?

user3298687
источник
5
Как говорится в ответе, чтобы избежать необходимости замены корневого сертификата как можно дольше. Кто-то, вероятно, поставил на него 25 или 30-летний срок действия, потому что это болезненно, чтобы заменить их, и не дает никакой выгоды. Скорее всего, задолго до того, как истечет срок его действия, его придется заменить одним с более длинным ключом (и, может быть, другим криптографическим алгоритмом). Я делаю то же самое с нашими внутренними сертификатами SSL, просто потому, что не хочу когда-либо устанавливать другой сертификат в $ [crappy_printer]. Установите срок действия больше, чем срок службы устройства, и проблема решена.
HopelessN00b

Ответы:

13

Срок действия был установлен в 2037 году, чтобы избежать возможности столкнуться с проблемой дат в Unix 2038 году . По сути, в начале 2038 года даты Unix больше не будут помещаться в 32-разрядное целое число со знаком, поэтому использование даты непосредственно перед этим позволяет избежать запуска любого кода, который еще не был обновлен, для устранения проблемы.

Корневые сертификаты берут с собой все цепочечные сертификаты по истечении срока их действия, поэтому с практической точки зрения срок их действия истекает после любых цепочечных сертификатов.

Брайан
источник
7

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

MikeAWood
источник
4
Что касается «Почему 2037» (или более широко «Почему не 100-летний срок действия?») - могут быть технические ограничения , но, по крайней мере, в недавнем OpenSSL (0.9.8y, в 64-битной системе) это не было проблемой, так что, вероятно, это просто «я продержался на ## лет»)
voretaq7
1
@ voretaq7 проблема не только в обработке библиотек, проблема в том, что стандартный, хорошо проверенный формат дат до 2038 года использует эпоху UNIX. Если вы хотите установить даты после него, вам нужно использовать другой формат даты, и он может не поддерживаться другими / более старыми библиотеками.
Хьюберт Карио
1
@HubertKario Да, я помню, что у OpenSSL ранее были "проблемы" с датами после красной линии Y2038. Похоже, что они решили указанные проблемы, по крайней мере, в том, что касается моего тестового примера (я создал сертификат, срок действия которого истекает через 100 лет, и он не жаловался) :-)
voretaq7
0

Я определенно видел, как 32-битные реализации SSL сталкивались с ошибкой 2038, так что почти наверняка приходится «почему» только «2037».

А почему бы не истечь раньше? Ну, одна из первоначальных целей истечения срока действия состояла в том, чтобы сохранить скомпрометированный сертификат, действительный слишком долго - но при всей честности, который не приносит вам большой выгоды. Теперь, конечно, у нас есть списки отзыва сертификатов, поэтому мы можем довольно легко аннулировать сертификат, который вызывает у нас проблемы, так что нет реального принуждения иметь короткий срок жизни.

Том Ньютон
источник