Профили сертификатов S/MIME

В этой статье описаны требования, которым должен соответствовать каждый сертификат в цепочке 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 или более поздней:
  • 4.9.7. Частота выпуска списков отзыва сертификатов (CRL Issuance Frequency)
  • 4.9.9. Возможность проверить статус отзыва онлайн (On‐line Revocation/Status Checking Availability)
  • 4.9.10. Требования к проверке отзыва сертификата в режиме онлайн
    4.10.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.

Расширение Присутствие Критическая Значение
Назначение ключа Обязательное Да

Позиции битов должны быть заданы для:
keyCertSign
Позиции битов могут быть заданы для:
cRLSign
digitalSignature
Если используется непосредственно для подписи ответов OCSP, должен присутствовать:
digitalSignature

Другие биты не должны быть заданы.

Расширенное назначение ключа Обязательное Не важно Обязательные поля:
emailProtection
Необязательные поля:
serverAuth
codeSigning
timeStamping
anyExtendedKeyUsage

Базовые ограничения

Обязательное Да

Поле cA должно иметь значение true.
Поле pathLenConstraint должно присутствовать и иметь значение 0.

Политики сертификатов Необязательно Нет

Рекомендуется указать policyIdentifier, который идентифицирует правила, в соответствии с которыми работает центр сертификации, и НЕ должен быть anyPolicy.
Если присутствует cps, он должен содержать действительную ссылку HTTP или HTTPS.

Точки распространения списков отзыва сертификатов Обязательное Нет

Должен быть указан хотя бы один общедоступный идентификатор uniformResourceIdentifier протокола HTTP
.

Примечание

Серверы отзыва должны работать в соответствии с перечисленными ниже разделами Правил консорциума CA/Browser Forum в отношении базовых требований к выпуску и управлению общедоступными доверенными сертификатами (CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates) версии 1.3.2 или более поздней.

  • 4.9.7. Частота выпуска списков отзыва сертификатов (CRL Issuance Frequency)
  • 4.9.9. Возможность проверить статус отзыва онлайн (On‐line Revocation/Status Checking Availability)
  • 4.9.10. Требования к проверке статуса отзыва онлайн (On‐line Revocation Checking Requirements)
  • 4.10.2. Доступность сервисов (Service Availability)
Другие расширения Необязательно Нет

Могут присутствовать.

Сертификат конечного субъекта

Поле Значение
Версия Версия 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) Обязательное Да

Позиции битов должны быть заданы для:
digitalSignature
и/или
nonRepudiation/contentCommitment
Позиции битов могут быть заданы для:
dataEncipherment
keyEncipherment

Другие биты не должны быть заданы.

Назначение ключа (ECDH) Да

Позиции битов должны быть заданы для:
digitalSignature
Позиции битов могут быть заданы для:
nonRepudiation/contentCommitment
keyAgreement
encipherOnly (если задано значение keyAgreement)
decipherOnly (если задано значение keyAgreement)

Другие биты не должны быть заданы.

Расширенное назначение ключа Обязательное Не важно

Обязательные поля:
emailProtection
Необязательные поля:
serverAuth
codeSigning
timeStamping
anyExtendedKeyUsage

Базовые ограничения

Необязательно Не важно

Если поле cA присутствует, то его значение не должно быть равно true
поле pathLenConstraint не должно присутствовать

Политики сертификатов Обязательное Нет

Обязательное поле. Идентификатор правила, в соответствии с которым был выпущен сертификат. Не может иметь значение anyPolicy.

Может присутствовать: cps. Если присутствует, должен содержать действительную ссылку HTTP или HTTPS на CPS, в соответствии с которой был выдан сертификат.

Доступ к информации о ЦС

Необязательно Нет

caIssuers и, если присутствует, ocsp должны содержать хотя бы один общедоступный HTTP-идентификатор uniformResourceIdentifier.

Поле "AccessDescription" не должно содержать никаких ярлыков или параметров, позволяющих идентифицировать конкретный сертификат.

Точки распространения списков отзыва сертификатов Обязательное Нет

Должен быть указан хотя бы один общедоступный
HTTPuniformResourceIdentifier.

Примечание

Серверы отзыва должны работать в соответствии со следующими разделами базовых требований к сертификатам, выпущенным и управляемым общедоступными центрами сертификации версии 1.3.2 или более поздней:

  • 4.9.7. Частота выпуска списков отзыва сертификатов (CRL Issuance Frequency)
  • 4.9.9. Возможность проверить статус отзыва онлайн (On‐line Revocation/Status Checking Availability)
  • 4.9.10. Требования к проверке статуса отзыва онлайн (On‐line Revocation Checking Requirements)
  • 4.10.2. Доступность служб (Service Availability)

Альтернативное имя субъекта

Обязательное Нет

Должно содержать хотя бы один элемент типа "rfc822Name".
Не должно содержать элементы типа:
dNSName
iPAddress
uniformResourceIdentifier
Каждый элемент rfc822Name должен быть проверен с помощью общедоступных и проверенных мер, чтобы убедиться, что организация, отправляющая запрос, контролирует аккаунт электронной почты, связанный с адресом электронной почты, или уполномочена владельцем аккаунта электронной почты действовать от его имени.

Другие расширения

Необязательно Нет Могут присутствовать.