Сертификаты открытого ключа 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 развивались. Как показано на следующем рисунке, каждая последовательная версия структуры данных сохранила поля, которые существовали в предыдущих версиях и добавили больше.
В следующих разделах подробно рассматриваются доступные поля:
- базовые поля
- поля версии 2
- расширения версии 3
Связанные разделы