Сертификаты открытого ключа X.509

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

Стандарт инфраструктуры открытых ключей (PKI) X.509 определяет требования к надежным сертификатам открытых ключей. Сертификат — это подписанная структура данных, которая привязывает открытый ключ к человеку, компьютеру или организации. Сертификаты выдаются центрами сертификации (ЦС). Все, кто является участником безопасного обмена данными, использующим открытый ключ, полагаются на ЦС для адекватной проверки удостоверений отдельных лиц, систем или сущностей, которым он выдает сертификаты. Уровень проверки обычно зависит от уровня безопасности, необходимого для транзакции. Если ЦС может надлежащим образом проверить удостоверение инициатора запроса, он подписывает (шифрует), кодирует и выдает сертификат.

Сертификат — это подписанная структура данных, которая привязывает открытый ключ к сущности. Синтаксис абстрактной синтаксической нотации 1 (ASN.1) для сертификата X.509 версии 3 показан в следующем примере.

-- X.509 signed certificate 

SignedContent ::= SEQUENCE 
{
  certificate         CertificateToBeSigned,
  algorithm           Object Identifier,
  signature           BITSTRING
}
 
-- X.509 certificate to be signed

CertificateToBeSigned ::= SEQUENCE 
{
  version                 [0] CertificateVersion DEFAULT v1,
  serialNumber            CertificateSerialNumber,
  signature               AlgorithmIdentifier,
  issuer                  Name
  validity                Validity,
  subject                 Name
  subjectPublicKeyInfo    SubjectPublicKeyInfo,
  issuerUniqueIdentifier  [1] IMPLICIT UniqueIdentifier OPTIONAL,
  subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,
  extensions              [3] Extensions OPTIONAL
}

С момента своего создания в 1998 году произошло развитие трех версий стандарта сертификата открытого ключа X.509. Как показано на следующем рисунке, каждая последовательная версия структуры данных сохранила поля, существовавшие в предыдущих версиях, и добавила дополнительные сведения.

Сертификаты x.509 версий 1, 2 и 3

В следующих разделах доступные поля рассматриваются более подробно.

Инфраструктура открытых ключей