Двійковий файл DER (.der)
ITU-T СтандартDistinguished Encoding Rules (DER): це суворий канонічний двійковий стандарт кодування для структур даних ASN.1, що забезпечує однозначне побітове представлення сертифікатів безпеки та криптографічних ключів.
Конвертувати з DER у PEM
Безкоштовний конвертер з DER у PEM у браузері. Миттєво конвертуйте файли на своєму пристрої.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли DER, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (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 (Поточний) | PEM | CRT | P12 |
|---|---|---|---|---|
| Представлення даних | Суворе двійкове кодування ASN.1 | Текст у форматі ASCII, закодований у Base64 | Base64 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, що безпечно працюють із пам’яттю та мають обмеження максимальної глибини рекурсії.
Історичне походження та віхи
Основні переваги
- Канонічність і детермінованість: гарантує, що ідентичні дані завжди створюють той самий двійковий хеш, що є критично важливим для цифрових підписів.
- Більш компактний порівняно з 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 для своїх власних специфікацій ключів.