X.509

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

X.509 — в криптографії стандарт ITU-T для інфраструктури відкритого (публічного) ключа (англ. public key infrastructure (PKI)) та інфраструктури управління привілеями (англ. Privilege Management Infrastructure (PMI)).

X.509 стандартизує формати представлення та кодування:

  • сертифікатів відкритого ключа (англ. public key certificates);
  • списку відкликаних сертифікатів (англ. certificate revocation lists);
  • атрибутів сертифікатів (англ. attribute certificates);
  • алгоритм перевірки методу сертифікації (англ. certification path validation algorithm).

Історія[ред. | ред. код]

X.509 був виданий 3 липня 1988 року і був зв'язаний зі стандартом X.500.

Особливості[ред. | ред. код]

Для випуску сертифікатів існує чітко визначена ієрархічна система відповідальних органів (англ. certificate authorities — CAs). У цьому його відмінність від моделей основаних на принципі мережі довіри (англ. web of trust), подібним до PGP, де будь-хто (не тільки спеціальні органи — CAs) можуть випускати, підписувати і перевіряти відповідність.

Версія 3 X.509 має гнучкість для підтримки таких топологій як мости (bridges) та сітки (meshes). Може бути використаний у p2p мережах, але таким чином використовується рідко.

Види сертифікатів[ред. | ред. код]

Стандартом X.509 визначані такі види сертифікатів:

  • сертифікат відкритого ключа;
  • сертифікат атрибутів.

Сертифікат відкритого ключа підтверджує, що відкритий ключа належить відповідній особі. Містить ім'я особи, відкритий ключ, назву засвідчувального центру, політику використання тощо. Сертифікат підписується електронним підписом засвідчувального центру.

Сертифікат відкритого ключа використовується для ідентифікації особи та визначення операцій, які він має право здійснювати з використанням закритого ключа, відповідного відкритого ключа.

Формат сертифіката відкритого ключа X.509 v3 наведено в RFC 5280[1].

Сертифікат атрибутів — підтверджує атрибути та їх значення, що характеризують особу, наприклад, приналежність до групи, роль, повноваження тощо. За структурою аналогічний сертифікату відкритого ключа, але має відкритого ключа. Сертифікат атрибутів застосовується для авторизації осіб.

Формат сертифіката атрибутів наведено в RFC 5755[2].

Структура сертифікату[ред. | ред. код]

Сертифікат складається з наступних атрибутів та їхніх значень:

  • Сертифікат (Certificate)
    • версія (Version)
    • серійний номер (Serial Number)
    • ідентифікатор алгоритму (Algorithm ID)
    • видавець (Issuer)
    • період дії (Validity) включає у себе:
      • не перед (Not Before)
      • не після (Not After)
    • суб’єкт сертифікату (Subject)
    • інформація про публічний ключ суб’єкту (Subject Public Key Info):
      • алгоритм (Public Key Algorithm)
      • публічний ключ (Subject Public Key)
    • унікальний ідентифікатор видавця (Issuer Unique Identifier ) — необов'язково
    • унікальний ідентифікатор суб’єкту (Subject Unique Identifier) — необов'язково
    • розширення (Extensions) - необов'язково
      • додаткові дані
  • Алгоритм підпису сертифікату(Certificate Signature Algorithm).
  • Підпис сертифікату(Certificate Signature).

Класифікація сертифікатів[ред. | ред. код]

VeriSign запропонувала наступну концепцію класифікації цифрових сертифікатів:

  • Class 1 - індивідуальні, для ідентифікації електронної пошти;
  • Class 2 - для організацій;
  • Class 3 - для серверів та програмного забезпечення;
  • Class 4 - для онлайн-бізнесу та транзакцій між компаніями;
  • Class 5 - для приватних компаній або урядової безпеки.

Загальновживані розширення файлів сертифікатів[ред. | ред. код]

  • .CERCER закодований сертифікат або набір сертифікатів;
  • .DERDER закодований сертифікат;
  • .PEM — (Privacy Enhanced Mail) Base64 закодований DER сертифікат, поміщений між «-----BEGIN CERTIFICATE-----» та «-----END CERTIFICATE-----»;
  • .P7B — Див. .p7c
  • .P7CPKCS#7 Підписана структура без даних, просто сертифікат(-и) чи список сертифікатів які вже не дійсні;
  • .PFX — Див. .p12
  • .P12PKCS#12 можуть містити публічні та приватні ключі захищені паролем.

Приклад[ред. | ред. код]

Найбільш поширений файл з сертифікатом відкритого ключа (*.cer) містить інформацію в бінарному вигляді. Для того, щоб її переглянути можна скористатись пакетом OpenSSL:

 openssl x509 -inform der -in  my_digest.cer -noout -text

Ця команда покаже вміст сертифікату (нижче приклад):

   Data:
       Version: 3 (0x2)
       Serial Number: 646702442348892787 (0x8f98c71e7955273)
   Signature Algorithm: sha256WithRSAEncryption
       Issuer: C = UA, O = MyDigest Inc., OU = My Digest Company, CN = Developer Relations Cert
       Validity
           Not Before: Oct 12 12:40:30 2014 GMT
           Not After : Oct 12 12:40:30 2016 GMT
       Subject: UID = XMM9NE5AEO, CN = Developer: Petrovsk Oleksa, OU = Worker, O = Petrovsk Oleksa, C = UA
       Subject Public Key Info:
           Public Key Algorithm: rsaEncryption
               Public-Key: (2048 bit)
               Modulus:
                   00:d3:de:c0:bf:f6:8b:51:1c:b7:66:a1:4f:0c:94:
                   ....
                   ....
               Exponent: 65537 (0x10001)
       X509v3 extensions:
           X509v3 Basic Constraints: critical
               CA:FALSE
           X509v3 Authority Key Identifier:
               keyid:88:27:17:09:A9:B6:18:60:8B:EC:EB:BA:F6:47:59:C5:52:54:A3:B7
           Authority Information Access:
               OCSP - URI:http://ocsp.mydiget.com/findosp
           X509v3 Certificate Policies:
               Policy: 1.2.340.122635.100.1.1
                 User Notice:
                   Explicit Text: Reliance on this certificate by ...
                 CPS: http://www.mydiget.com/certificateauthority/
           X509v3 Extended Key Usage: critical
               Code Signing
           X509v3 Subject Key Identifier:
               23:D2:13:8B:27:81:88:99:00:88:0D:41:CB:37:53:72:4A:F3:02:6D
           X509v3 Key Usage: critical
               Digital Signature
           1.2.840.113635.100.6.1.2: critical
               ..
   Signature Algorithm: sha256WithRSAEncryption
        ba:23:aa:a9:0b:8c:c6:1b:d6:dd:9a:83:b2:29:e8:f8:4f:2f:
        ....
        ....


Посилання[ред. | ред. код]


  1. RFC 5280 — Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
  2. RFC 5755 — An Internet Attribute Certificate Profile for Authorization