Двійковий файл DER (.der)

ITU-T Стандарт

Distinguished Encoding Rules (DER): це суворий канонічний двійковий стандарт кодування для структур даних ASN.1, що забезпечує однозначне побітове представлення сертифікатів безпеки та криптографічних ключів.

Конвертувати з DER у PEM

Безкоштовний конвертер з DER у PEM у браузері. Миттєво конвертуйте файли на своєму пристрої.

Аналіз та метадані

Операційні системи та аналізатори файлів ідентифікують файли DER, перевіряючи початкову послідовність бінарних байтів:

Виберіть або перетягніть файли сюди

Приватно - файли ніколи не залишають ваш пристрій

або вставте Ctrl+V
Гарантія конфіденційності без передавання даних мережею: Жодного байта не передано на зовнішні сервери. Уся обробка відбувалася локально в ізольованому середовищі браузера.

Сигнатура заголовка на байтовому рівні (Magic Bytes)

Операційні системи та аналізатори файлів ідентифікують файли DER, перевіряючи початкову послідовність бінарних байтів:

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):

Фіксованої сигнатури немає

ПОДАННЯ В ASCII: Фіксованої сигнатури немає

Стандартизація: ITU-T Recommendation X.690

Технічні характеристики

Архітектура контейнераСтроге канонічне двійкове кодування структур ASN.1 за допомогою трійок «тег: довжина: значення» (TLV)
СтисненняДвійкові дані без стиснення
Порядок байтів (Endianness)Кодування ASN.1 зі старшим байтом першим (Big-Endian)
Колірні просториНе застосовується (криптографічний двійковий потік)
Канали та структураКриптографічні ключі, сертифікати X.509, списки відкликаних сертифікатів (CRL) і структури PKCS
Максимальні розміриНеобмежена довжина ASN.1
ПрозорістьДвійкова структура даних ASN.1
Потокове та прогресивне завантаженняДетерміноване канонічне декодування за один прохід

Технічна матриця порівняння: DER проти конкурентів

Технічний атрибутDER (Поточний)PEMCRTP12
Представлення данихСуворе двійкове кодування ASN.1Текст у форматі ASCII, закодований у Base64Base64 PEM або двійковий DERЗашифрований двійковий архів PKCS #12
Детерміноване хешування100% канонічний бітовий потікЗалежить від пробілів/банерівЗалежить від форматуванняЗашифровано з сіллю/IV
Розмір файлуНайменший (~33% менший за PEM)Більший через Base64 (+33%)Більший через Base64 (+33%)Більший через обгортки шифрування
Підтримка Java та обладнанняРідний стандартПотребує конвертації в JavaПотребує конвертації в JavaПідтримується як сховище ключів

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Помилка OpenSSL: 'asn1 encoding routines:ASN1_get_object:header too long'.

Першопричина: Пошкоджений байт Тег-Довжина-Значення (TLV) у заголовку послідовності ASN.1.

Відновлення: Здійсніть перекодування за допомогою інструменту сертифікатів File2File.app, щоб відновити дійсні канонічні байти DER.

Аналіз безпеки та векторів атак на парсери

Декодери DER аналізують дескриптори довжини, де переповнення або втрата точності цілих чисел можуть спричинити переповнення буфера в нативних криптографічних бібліотеках.

Відомі вектори атак

  • Переповнення цілих чисел під час декодування глибоко вкладених структур ASN.1 з невизначеною довжиною.
  • Читання за межами буфера під час аналізу пошкоджених бітових рядків.
  • Відмова в обслуговуванні (DoS) за допомогою вкладених рекурсійних бомб ASN.1.

Рекомендації щодо захисту: Використовуйте засоби розбору ASN.1, що безпечно працюють із пам’яттю та мають обмеження максимальної глибини рекурсії.

Історичне походження та віхи

2021Перегляд ITU-T X.690 стабілізує специфікації ASN.1 DER на сучасних апаратних токенах.
1997Впроваджено архітектурою Java Cryptography Architecture (JCA) для кодування двійкових ключів (X509EncodedKeySpec).
1988Стандартизовано згідно з рекомендацією CCITT / ITU-T X.690 як сувору підмножину правил базового кодування (Basic Encoding Rules, BER).

Основні переваги

  • Канонічність і детермінованість: гарантує, що ідентичні дані завжди створюють той самий двійковий хеш, що є критично важливим для цифрових підписів.
  • Більш компактний порівняно з PEM: зменшує розмір файлу приблизно на 33% завдяки відсутності кодування Base64 та ASCII-банерів.
  • Рідний формат для апаратних модулів безпеки (HSM), смарт-карт і сховищ ключів Java.

Технічні обмеження та недоліки

  • Двійковий формат неможливо переглянути, відредагувати або скопіювати в текстових редакторах.
  • Менш поширений у середовищах веб-хостингу, які переважно віддають перевагу текстовим файлам PEM/CRT.
  • Суворі правила кодування означають, що будь-яка незначна невідповідність заповнення призведе до відмови в розборі.

Цікаві технічні факти

  • DER є суворою підмножиною BER (Basic Encoding Rules); хоча BER дозволяє кілька дійсних способів кодування значення, DER дозволяє рівно один канонічний спосіб.
  • Якщо закодувати файл DER у формат Base64 та обернути його в '-----BEGIN CERTIFICATE-----', ви отримаєте стандартний файл PEM.
  • KeyFactory в Java вимагає надання публічних і приватних ключів RSA у сирому форматі DER.

Поширені технічні запитання

У чому різниця між DER та PEM?

DER: це необроблений бінарний формат сертифіката або ключа. PEM: це просто той самий файл DER, перетворений на читабельний текст у форматі Base64 із заголовками '-----BEGIN...-----'.

Як конвертувати DER у PEM?

Завантажте ваш файл .der у File2File.app, щоб за одну секунду перетворити його на стандартний текстовий сертифікат .pem прямо у вашому браузері.

Чому Java використовує ключі DER?

Архітектура криптографії Java (JCA) використовує закодовані у DER масиви байтів PKCS#8 та X.509 для своїх власних специфікацій ключів.