Поделиться через


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

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

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

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

-- 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

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

инфраструктуре открытого ключа