Object Identifier (OID) — это иерархически структурированная последовательность чисел, используемая для однозначной идентификации криптографических алгоритмов, атрибутов сертификатов, расширений X.509 и множества других ASN.1-структур. В библиотеке Jsrsasign работа с OID является фундаментальной частью парсинга и генерации сертификатов, CMS, PKCS#7 и криптографических объектов.
OID в X.509-сертификатах применяются для описания:
OID в Jsrsasign сгруппированы по функциональному назначению. Каждая группа соответствует определённой области криптографической инфраструктуры.
| Алгоритм | OID |
|---|---|
| MD5 | 1.2.840.113549.2.5 |
| SHA-1 | 1.3.14.3.2.26 |
| SHA-224 | 2.16.840.1.101.3.4.2.4 |
| SHA-256 | 2.16.840.1.101.3.4.2.1 |
| SHA-384 | 2.16.840.1.101.3.4.2.2 |
| SHA-512 | 2.16.840.1.101.3.4.2.3 |
Эти OID используются внутри структуры
AlgorithmIdentifier в сертификатах X.509 и при формировании
цифровой подписи.
| Алгоритм | OID |
|---|---|
| rsaEncryption | 1.2.840.113549.1.1.1 |
| md5WithRSAEncryption | 1.2.840.113549.1.1.4 |
| sha1WithRSAEncryption | 1.2.840.113549.1.1.5 |
| sha256WithRSAEncryption | 1.2.840.113549.1.1.11 |
| sha384WithRSAEncryption | 1.2.840.113549.1.1.12 |
| sha512WithRSAEncryption | 1.2.840.113549.1.1.13 |
| ecdsa-with-SHA1 | 1.2.840.10045.4.1 |
| ecdsa-with-SHA256 | 1.2.840.10045.4.3.2 |
| ecdsa-with-SHA384 | 1.2.840.10045.4.3.3 |
| ecdsa-with-SHA512 | 1.2.840.10045.4.3.4 |
Эти OID критичны для определения способа подписи сертификата и проверки цепочек доверия.
| Алгоритм | OID |
|---|---|
| RSA | 1.2.840.113549.1.1.1 |
| DSA | 1.2.840.10040.4.1 |
| EC Public Key | 1.2.840.10045.2.1 |
| Diffie-Hellman | 1.2.840.113549.1.3.1 |
В структуре SubjectPublicKeyInfo OID определяет тип ключа, после чего следует битовое представление ключа.
| Кривая | OID |
|---|---|
| secp256r1 (P-256) | 1.2.840.10045.3.1.7 |
| secp384r1 (P-384) | 1.3.132.0.34 |
| secp521r1 (P-521) | 1.3.132.0.35 |
Эти OID используются совместно с алгоритмом
id-ecPublicKey для точного указания параметров кривой.
| Атрибут | OID |
|---|---|
| Common Name (CN) | 2.5.4.3 |
| Country (C) | 2.5.4.6 |
| Organization (O) | 2.5.4.10 |
| Organizational Unit (OU) | 2.5.4.11 |
| Locality (L) | 2.5.4.7 |
| State/Province (ST) | 2.5.4.8 |
| Email Address | 1.2.840.113549.1.9.1 |
Эти OID формируют структуру субъекта и издателя сертификата (Subject / Issuer).
| Расширение | OID |
|---|---|
| Basic Constraints | 2.5.29.19 |
| Key Usage | 2.5.29.15 |
| Extended Key Usage | 2.5.29.37 |
| Subject Alternative Name | 2.5.29.17 |
| Authority Key Identifier | 2.5.29.35 |
| Subject Key Identifier | 2.5.29.14 |
| Certificate Policies | 2.5.29.32 |
| CRL Distribution Points | 2.5.29.31 |
Расширения определяют ограничения использования сертификата и его поведение в инфраструктуре PKI.
| Назначение | OID |
|---|---|
| TLS Web Server Authentication | 1.3.6.1.5.5.7.3.1 |
| TLS Web Client Authentication | 1.3.6.1.5.5.7.3.2 |
| Code Signing | 1.3.6.1.5.5.7.3.3 |
| Email Protection | 1.3.6.1.5.5.7.3.4 |
| Time Stamping | 1.3.6.1.5.5.7.3.8 |
EKU определяет конкретные сценарии применения сертификата.
| Структура | OID |
|---|---|
| PKCS#1 RSA Encryption | 1.2.840.113549.1.1.1 |
| PKCS#7 Data | 1.2.840.113549.1.7.1 |
| PKCS#7 Signed Data | 1.2.840.113549.1.7.2 |
| PKCS#10 Certification Request | 1.2.840.113549.1.10.1 |
| Content Type Attribute | 1.2.840.113549.1.9.3 |
| Message Digest Attribute | 1.2.840.113549.1.9.4 |
Эти OID используются при создании CSR, CMS и подписанных сообщений.
| Тип | OID |
|---|---|
| Data | 1.2.840.113549.1.7.1 |
| Signed Data | 1.2.840.113549.1.7.2 |
| Enveloped Data | 1.2.840.113549.1.7.3 |
| Digested Data | 1.2.840.113549.1.7.5 |
| Encrypted Data | 1.2.840.113549.1.7.6 |
CMS используется для создания подписанных и зашифрованных сообщений поверх ASN.1.
| Алгоритм | OID |
|---|---|
| AES-128-CBC | 2.16.840.1.101.3.4.1.2 |
| AES-192-CBC | 2.16.840.1.101.3.4.1.22 |
| AES-256-CBC | 2.16.840.1.101.3.4.1.42 |
| DES-CBC | 1.3.14.3.2.7 |
| Triple DES (3DES) | 1.2.840.113549.3.7 |
Эти идентификаторы используются в структурах шифрования CMS и PKCS#8.
| Назначение | OID |
|---|---|
| RSA OAEP | 1.2.840.113549.1.1.7 |
| MGF1 | 1.2.840.113549.1.1.8 |
| PBE With SHA1 and 3DES | 1.2.840.113549.1.12.1.3 |
| PBKDF2 | 1.2.840.113549.1.5.12 |
Эти OID применяются в криптографических схемах усиленной защиты ключей и паролей.
Внутренне Jsrsasign использует строковое представление OID в формате:
"1.2.840.113549.1.1.11"
При парсинге ASN.1 структура преобразуется в числовой массив, а затем обратно в строку при сериализации. Важные моменты:
OID используется в ключевых структурах:
AlgorithmIdentifierAttributeTypeExtensionKeyUsagePolicyInformationSubjectPublicKeyInfoЛюбая ошибка в OID приводит к невозможности валидации сертификата или некорректной криптографической интерпретации данных.