В этой статье описаны требования, которым должен соответствовать каждый сертификат в цепочке X.509, чтобы его можно было использовать для зашифрованных писем или писем с подписью S/MIME.
Кроме того, цепочка должна быть привязана к сертификату центра сертификации, который Google явно считает доверенным для этой цели. Вы также можете выбрать, сертификаты каких корневых ЦС будут считаться доверенными. Подробнее о правилах в отношении корневых сертификатов…
Примечания
- Google предоставляет и поддерживает список сертификатов ЦС, которым доверяет Gmail для S/MIME. Компания Google по собственному усмотрению решает, какие ЦС считать доверенными, и оставляет за собой право удалять корневые ЦС из этого списка в любое время без предварительного уведомления.
- Убедитесь, что установленные расширения не противоречат другим расширениям в том же сертификате. Например, если определены nsCertTypes, они должны охватывать те же области применения, что и расширения key usage, extended key usage и basic constraints.
Правила цепочки сертификатов
Сертификат корневого ЦС
| Поле | Значение |
|---|---|
|
Уникальное имя эмитента |
Должно указывать на конкретный ЦС. В частности, не допускается использование обобщенных имен, таких как Certificate Authority (Центр сертификации). |
|
Уникальное имя субъекта |
Зашифрованное имя должно побайтово совпадать с уникальным именем эмитента. |
|
Данные открытого ключа субъекта |
Шифрование rsaEncryption с ключом RSA длиной 2048, 3072 или 4096 бит либо ecPublicKey с использованием кривой secp256r1 или secp384r1. |
Сертификаты промежуточных ЦС (не промежуточных эмитентов)
Используйте эту информацию, если между корневым и конечным субъектом есть несколько промежуточных центров сертификации (прямо или косвенно).
Промежуточным эмитентом считается ЦС, который выдает сертификат конечному субъекту. Этот раздел относится ко всем промежуточным ЦС в цепочке, кроме выпускающего промежуточного ЦС.
| Поле | Значение | ||
|---|---|---|---|
| Версия | Версия 3 | ||
| Серийный номер | Значение должно быть больше нуля, а если параметр DER зашифрован как INTEGER, его длина не должна превышать 20 Б. | ||
| Алгоритм подписи | RSA с ключом SHA‐256, SHA‐384 или SHA‐512 либо ECDSA с ключом SHA‐256, SHA‐384 или SHA‐512. | ||
| Уникальное имя эмитента |
Должно побайтово совпадать с уникальным именем субъекта, принадлежащим эмитенту. |
||
| Период действия | Не задан. | ||
| Уникальное имя субъекта | Не задано. | ||
| Данные открытого ключа субъекта |
Шифрование rsaEncryption с ключом RSA длиной 2048, 3072 или 4096 бит либо ecPublicKey с использованием кривой secp256r1 или secp384r1. |
||
| Расширение | Присутствие | Критическая | Значение |
| Назначение ключа | Обязательное | Да |
Позиции битов должны быть заданы для: keyCertSign |
| Базовые ограничения | Обязательное | Да | Поле cA должно иметь значение true поле pathLenConstraint должно присутствовать |
| Точки распространения списков отзыва сертификатов | Обязательное | Нет |
Должен быть указан хотя бы один общедоступный идентификатор uniformResourceIdentifier HTTP |
| Примечание | Серверы отзыва должны соответствовать следующим разделам базовых требований к сертификатам, выпущенным и управляемым общедоступными центрами сертификации, версии 1.3.2 или более поздней:
|
||
| Другие расширения | Могут присутствовать. | ||
Сертификаты промежуточных ЦС, выдаваемые конечному субъекту
Важно! В цепочке обязательно должен присутствовать хотя бы один сертификат промежуточных ЦС. Недопустимо, чтобы корневой ЦС выдавал сертификаты непосредственно конечным субъектам.
| Поле | Значение | ||
|---|---|---|---|
| Версия | Версия 3 | ||
| Серийный номер | Значение должно быть больше нуля, а если параметр DER зашифрован как INTEGER, его длина не должна превышать 20 Б. | ||
| Алгоритм подписи |
RSA с ключом SHA‐256, SHA‐384 или SHA‐512 либо ECDSA с ключом SHA‐256, SHA‐384 или SHA‐512. |
||
| Уникальное имя эмитента |
Должно побайтово совпадать с уникальным именем субъекта, принадлежащим эмитенту. |
||
| Период действия |
Разница значений параметров notBefore и notAfter. Не рекомендуется, чтобы она превышала 10 лет. Разница более 20 лет недопустима. |
||
| Уникальное имя субъекта |
Должен указывать на использование сертификата. |
||
| Данные открытого ключа субъекта |
Шифрование rsaEncryption с ключом RSA длиной 2048, 3072 или 4096 бит либо ecPublicKey с использованием кривой secp256r1 или secp384r1. |
||
| Расширение | Присутствие | Критическая | Значение |
| Назначение ключа | Обязательное | Да |
Позиции битов должны быть заданы для: Другие биты не должны быть заданы. |
| Расширенное назначение ключа | Обязательное | Не важно | Обязательные поля: emailProtection Необязательные поля: serverAuth codeSigning timeStamping anyExtendedKeyUsage |
|
Базовые ограничения |
Обязательное | Да |
Поле cA должно иметь значение true. |
| Политики сертификатов | Необязательно | Нет |
Рекомендуется указать policyIdentifier, который идентифицирует правила, в соответствии с которыми работает центр сертификации, и НЕ должен быть anyPolicy. |
| Точки распространения списков отзыва сертификатов | Обязательное | Нет |
Должен быть указан хотя бы один общедоступный идентификатор uniformResourceIdentifier протокола HTTP |
| Примечание |
Серверы отзыва должны работать в соответствии с перечисленными ниже разделами Правил консорциума CA/Browser Forum в отношении базовых требований к выпуску и управлению общедоступными доверенными сертификатами (CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates) версии 1.3.2 или более поздней.
|
||
| Другие расширения | Необязательно | Нет |
Могут присутствовать. |
Сертификат конечного субъекта
| Поле | Значение | ||
|---|---|---|---|
| Версия | Версия 3 | ||
| Серийный номер |
Должен быть больше нуля и содержать не менее 64 непредсказуемых битов. Примечание. Будет обновлено в соответствии с требованиями к энтропии серийного номера конечного объекта базовых требований CA/Browser Forum к сертификатам. |
||
| Алгоритм подписи | RSA с ключом SHA‐256, SHA‐384 или SHA‐512 либо ECDSA с ключом SHA‐256, SHA‐384 или SHA‐512. | ||
| Уникальное имя эмитента |
Должно побайтово совпадать с уникальным именем субъекта, принадлежащим эмитенту. |
||
| Период действия |
Разница значений параметров notBefore и notAfter не должна превышать 27 месяцев. Значение параметра notBefore должно отличаться от времени подписи не более чем на 48 часов. |
||
| Уникальное имя субъекта |
Подлинность всех уникальных имен субъекта, кроме адреса электронной почты, должна тщательно проверяться перед выдачей с использованием общепринятых процедур аутентификации. Приемлемая процедура описана в разделе 3.2.3 "Аутентификация личности" базовых требований CA/Browser Forum к сертификатам для выпуска и управления общедоступными доверенными сертификатами версии 1.3.2 или более поздней. Все адреса электронной почты (например, содержащиеся в полях "commonName" или "emailAddress") должны также присутствовать в поле "rfc822Name" расширения "Альтернативное имя субъекта". |
||
| Данные открытого ключа субъекта |
Шифрование rsaEncryption с ключом RSA длиной 2048, 3072 или 4096 бит либо ecPublicKey с использованием кривой secp256r1 или secp384r1. |
||
| Расширение | Присутствие | Критическая | Значение |
| Назначение ключа (RSA) | Обязательное | Да |
Позиции битов должны быть заданы для: Другие биты не должны быть заданы. |
| Назначение ключа (ECDH) | Да |
Позиции битов должны быть заданы для: Другие биты не должны быть заданы. |
|
| Расширенное назначение ключа | Обязательное | Не важно |
Обязательные поля: |
|
Базовые ограничения |
Необязательно | Не важно |
Если поле cA присутствует, то его значение не должно быть равно true |
| Политики сертификатов | Обязательное | Нет |
Обязательное поле. Идентификатор правила, в соответствии с которым был выпущен сертификат. Не может иметь значение anyPolicy. Может присутствовать: cps. Если присутствует, должен содержать действительную ссылку HTTP или HTTPS на CPS, в соответствии с которой был выдан сертификат. |
|
Доступ к информации о ЦС |
Необязательно | Нет |
caIssuers и, если присутствует, ocsp должны содержать хотя бы один общедоступный HTTP-идентификатор uniformResourceIdentifier. Поле "AccessDescription" не должно содержать никаких ярлыков или параметров, позволяющих идентифицировать конкретный сертификат. |
| Точки распространения списков отзыва сертификатов | Обязательное | Нет |
Должен быть указан хотя бы один общедоступный |
|
Примечание |
Серверы отзыва должны работать в соответствии со следующими разделами базовых требований к сертификатам, выпущенным и управляемым общедоступными центрами сертификации версии 1.3.2 или более поздней:
|
||
|
Альтернативное имя субъекта |
Обязательное | Нет |
Должно содержать хотя бы один элемент типа "rfc822Name". |
|
Другие расширения |
Необязательно | Нет | Могут присутствовать. |