Jump to content

Х.690

X.690 — это стандарт ITU-T, определяющий несколько ASN.1 форматов кодирования :

Базовые правила кодирования (BER) были первоначальными правилами, изложенными в стандарте ASN.1 для кодирования данных в двоичный формат. Правила, называемые синтаксисом передачи на языке ASN.1, определяют точные октеты (8-битные байты), используемые для кодирования данных.

X.680 определяет синтаксис объявления типов данных, например: логические значения, числа, строки и составные структуры. Каждое определение типа также включает идентификационный номер. X.680 определяет несколько примитивных типов данных, например: BooleanType, IntegerType, OctetStringType. (ASN.1 также предусматривает сконструированные типы, созданные на основе других типов.) Типы связаны с классом . Например, примитивные типы являются частью универсального класса. Три других класса ( приложение , частный и контекстно-зависимый ) по сути представляют собой разные области действия для поддержки настройки для конкретных приложений. В совокупности класс и тип образуют тег , который, следовательно, соответствует уникальному определению данных. X.690 включает правила для кодирования этих тегов, значений данных (содержимого) и длины этих закодированных данных.

BER, наряду с двумя подмножествами BER ( Каноническими правилами кодирования и Отличительными правилами кодирования ), определены стандартным документом ITU-T X.690, который является частью серии документов ASN.1.

BER-кодирование

[ редактировать ]

Базовые правила кодирования в общих чертах определяют частично самоописывающийся и самоопределяющийся протокол для кодирования структур данных ASN.1. Каждый элемент данных должен быть закодирован как идентификатор типа, описание длины, фактические элементы данных и, при необходимости, маркер конца содержимого. Эти типы кодировок обычно называются кодировками тип-длина-значение (TLV). Однако в терминологии BER это идентификатор-длина-содержимого .

Этот тип формата позволит получателю декодировать информацию ASN.1 из неполного потока, не требуя предварительного знания размера, содержания или семантического значения данных, хотя необходимо будет предоставить некоторые особенности протокола. или реконструированы на основе репрезентативных образцов трафика или программного обеспечения. [1]

Кодирование данных состоит из трех или четырех компонентов в следующем порядке:

Октеты идентификатора
Тип
Длина октетов
Длина
Октеты содержимого
Ценить
Октеты конца содержимого
(только если неопределенная форма )

Обратите внимание: если длина равна нулю, то октетов содержимого нет, например, типа NULL. Октеты End-of-Contents используются только для неопределенной формы длины.

Октеты идентификатора

[ редактировать ]

BER Октеты идентификатора ASN.1 кодируют теги . Список тегов универсального класса можно найти в Rec. МСЭ-Т X.680, пункт 8, таблица 1. [2] Следующие теги являются собственными для ASN.1:

Типы, универсальный класс
Имя Разрешенное строительство Номер тега
Десятичный Шестнадцатеричный
Конец контента (EOC) Примитивный 0 0
БУЛЕВОЕ значение Примитивный 1 1
ЦЕЛОЕ ЧИСЛО Примитивный 2 2
БИТОВАЯ СТРОКА Оба 3 3
ОКТЕТНАЯ СТРОКА Оба 4 4
НУЛЕВОЙ Примитивный 5 5
ИДЕНТИФИКАТОР ОБЪЕКТА Примитивный 6 6
Дескриптор объекта Оба 7 7
ВНЕШНИЙ Построенный 8 8
РЕАЛЬНЫЙ (с плавающей запятой) Примитивный 9 9
ПЕРЕСЕЧЕННЫЕ Примитивный 10 А
ВСТРОЕННЫЙ ПДВ Построенный 11 Б
UTF8Строка Оба 12 С
ОТНОСИТЕЛЬНЫЙ-OID Примитивный 13 Д
ВРЕМЯ Примитивный 14 И
Сдержанный 15 Ф
ПОСЛЕДОВАТЕЛЬНОСТЬ и ПОСЛЕДОВАТЕЛЬНОСТЬ Построенный 16 10
НАБОР и НАБОР Построенный 17 11
ЧисловаяСтрока Оба 18 12
PrintableString Оба 19 13
T61Строка Оба 20 14
ВидеотексСтрока Оба 21 15
IA5Строка Оба 22 16
UTCTime Оба 23 17
Генерализованноевремя Оба 24 18
ГрафическаяСтрока Оба 25 19
ВидиблеСтрока Оба 26
Генеральная строка Оба 27
Универсальная строка Оба 28
СТРОКА СИМВОЛОВ Построенный 29
BMPString Оба 30
ДАТА Примитивный 31 1F
ВРЕМЯ СУТКА Примитивный 32 20
ДАТА-ВРЕМЯ Примитивный 33 21
ПРОДОЛЖИТЕЛЬНОСТЬ Примитивный 34 22
ОИД-ИРИ Примитивный 35 23
ОТНОСИТЕЛЬНЫЙ-OID-IRI Примитивный 36 24

Кодирование

[ редактировать ]

Октеты идентификатора кодируют номер класса и номер типа тега ASN.1. Он также кодирует, представляют ли октеты содержимого сконструированное или примитивное значение. Идентификатор охватывает один или несколько октетов.

Октет 1 Октет 2... н
Только если тип тега > 30 10
8 7 6 5 4 3 2 1 8 7 6 5 4 3 2 1
тега Класс ПК тега Тип (если 0–30 10 ) Полная форма
31 10 = Полная форма 1=Больше 7 бит типа тега

В начальном октете бит 6 кодирует, является ли тип примитивным или сконструированным, биты 7–8 кодируют класс тега, а биты 1–5 кодируют тип тега. Возможны следующие значения:

Сорт Ценить Описание
Универсальный 0 Тип является родным для ASN.1.
Приложение 1 Тип действителен только для одного конкретного приложения.
Контекстно-зависимый 2 Значение этого типа зависит от контекста (например, внутри последовательности, набора или выбора).
Частный 3 Определено в частных спецификациях
ПК Ценить Описание
Примитивный (P) 0 Октеты содержимого непосредственно кодируют значение.
Построено (С) 1 Октеты содержимого содержат 0, 1 или более кодировок.

Если тип тега умещается в 5 бит (0–30 10 ), то идентификатор занимает всего один байт: короткая форма . Если тип тега слишком велик для 5-битного поля тега (> 30 10 ), его необходимо закодировать в следующих октетах: Длинная форма .

Начальный октет кодирует класс и примитив/сконструированный, как и раньше, а биты 1–5 равны 1. Номер тега кодируется в следующих октетах, где бит 8 каждого равен 1, если октетов больше, а биты 1–7 кодируют номер тега. Биты номера тега в совокупности, с прямым порядком байтов, кодируют номер тега. Должно быть закодировано наименьшее количество следующих октетов; то есть не все биты 1–7 должны быть равны 0 в первом следующем октете.

Длина октетов

[ редактировать ]

Существует две формы октетов длины: определенная форма и неопределенная форма.

Первый октет длины
Форма Биты
8 7 6 5 4 3 2 1
Определенный, короткий 0 Длина (0–127)
Бессрочный 1 0
Определенный, длинный 1 Количество следующих октетов (1–126)
Сдержанный 1 127

Определенная форма

[ редактировать ]

Он кодирует количество октетов содержимого и всегда используется, если тип является примитивным или сконструированным и данные доступны немедленно. Существует короткая и длинная форма, которые могут кодировать разные диапазоны длин. Числовые данные кодируются как беззнаковые целые числа, причем младший бит всегда идет первым (справа).

Краткая форма состоит из одного октета, в котором бит 8 равен 0, а биты 1–7 кодируют длину (которая может быть равна 0) как количество октетов.

Длинная форма состоит из 1 начального октета, за которым следуют 1 или несколько последующих октетов, содержащих длину. В начальном октете бит 8 равен 1, а биты 1–7 (исключая значения 0 и 127) кодируют количество последующих октетов. [1] Следующие октеты кодируют длину (которая может быть равна 0) в виде числа октетов с обратным порядком байтов.

Пример длинной формы, длина 435
Октет 1 Октет 2 Октет 3
1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 0 0 1 1
Полная форма 2 октета длины 110110011 2 = 435 10 октетов содержимого

Неопределенная форма

[ редактировать ]

Это вообще не кодирует длину, а октеты содержимого заканчиваются октетами маркера. Это относится к сконструированным типам и обычно используется, если содержимое недоступно сразу во время кодирования.

Он состоит из одного октета, в котором бит 8 равен 1, а биты 1–7 равны 0. Затем два октета конца содержимого должны завершать октеты содержимого.

Октеты содержимого

[ редактировать ]

Октеты содержимого кодируют значение данных элемента. [1]

Обратите внимание, что октетов содержимого может не быть (следовательно, элемент имеет длину 0), если необходимо отметить только существование объекта ASN.1 или его пустоту. Например, это относится к значению ASN.1 NULL.

CER-кодирование

[ редактировать ]

CER (Правила канонического кодирования) — это ограниченный вариант BER для создания однозначного синтаксиса передачи для структур данных, описанных ASN.1 . В то время как BER дает возможность выбора способа кодирования значений данных, CER (вместе с DER ) выбирает только одну кодировку из тех, которые разрешены основными правилами кодирования, исключая остальные варианты. CER полезен, когда необходимо сохранить кодировки; например, в обмене безопасностью.

DER-кодирование

[ редактировать ]

DER (Distinguished Encoding Rules) — это ограниченный вариант BER для создания однозначного синтаксиса передачи для структур данных, описанных ASN.1 . Как и CER , кодировки DER являются допустимыми кодировками BER. DER — это то же самое, что и BER, за исключением всех опций отправителя, кроме одного.

DER — это подмножество BER, обеспечивающее ровно один способ кодирования значения ASN.1. DER предназначен для ситуаций, когда необходима уникальная кодировка, например, в криптографии , и гарантирует, что структура данных, которая должна быть подписана цифровой подписью, создает уникальное сериализованное представление. DER можно считать канонической формой BER. Например, в BER логическое значение true может быть закодировано как любое из 255 ненулевых байтовых значений, тогда как в DER существует один способ кодирования логического значения true.

Наиболее существенные ограничения кодирования DER:

  1. Кодирование длины должно использовать определенную форму
    • Кроме того, необходимо использовать кодировку минимально возможной длины.
  2. Битовые строки, строки октетов и строки ограниченных символов должны использовать примитивную кодировку.
  3. Элементы набора кодируются в отсортированном порядке на основе значения их тега.

DER широко используется для цифровых сертификатов, таких как X.509 .

Сравнение BER, CER и DER

[ редактировать ]

Ключевое различие между форматом BER и форматами CER или DER заключается в гибкости, обеспечиваемой базовыми правилами кодирования. BER, как объяснялось выше, представляет собой базовый набор правил кодирования, заданный ITU-T X.690 для передачи структур данных ASN.1. Он дает отправителям четкие правила кодирования структур данных, которые они хотят отправить, но также оставляет отправителям некоторый выбор кодирования. Как указано в стандарте X.690, «Альтернативные кодировки разрешены основными правилами кодирования по выбору отправителя. Получатели, заявляющие о соответствии основным правилам кодирования, должны поддерживать все альтернативы». [1]

Получатель должен быть готов принять все допустимые кодировки, чтобы законно заявить о соответствии BER. Напротив, и CER, и DER ограничивают доступные спецификации длины одним вариантом. По существу, CER и DER являются ограниченными формами BER и служат для устранения неоднозначности стандарта BER.

CER и DER различаются набором ограничений, которые они накладывают на отправителя. Основное различие между CER и DER заключается в том, что DER использует форму окончательной длины, а CER использует форму неопределенной длины в некоторых точно определенных случаях. То есть DER всегда имеет информацию о начальной длине, тогда как CER использует октеты конца содержимого вместо предоставления длины закодированных данных. По этой причине CER требует меньше метаданных для больших закодированных значений, а DER — для маленьких.

Чтобы облегчить выбор между правилами кодирования, документ стандартов X.690 содержит следующие рекомендации:

Выделенные правила кодирования более подходят, чем канонические правила кодирования, если закодированное значение достаточно мало, чтобы поместиться в доступную память, и существует необходимость быстрого пропуска некоторых вложенных значений. Канонические правила кодирования более подходят, чем выделенные правила кодирования, если необходимо закодировать значения, которые настолько велики, что они не могут легко поместиться в доступную память, или необходимо закодировать и передать часть значения перед всем значением. доступен. Базовые правила кодирования более подходят, чем канонические или выделенные правила кодирования, если кодирование содержит установленное значение или набор значений и нет необходимости в ограничениях, налагаемых каноническими и выделенными правилами кодирования.

Критика кодирования BER

[ редактировать ]

Существует распространенное мнение, что BER «неэффективен» по сравнению с альтернативными правилами кодирования. Некоторые утверждали, что такое восприятие в первую очередь связано с плохой реализацией, а не обязательно с каким-либо внутренним недостатком правил кодирования. [3] Эти реализации полагаются на гибкость, которую обеспечивает BER для использования логики кодирования, которую легче реализовать, но в результате получается больший поток закодированных данных, чем необходимо. Независимо от того, является ли эта неэффективность реальностью или восприятием, она привела к появлению ряда альтернативных схем кодирования, таких как Правила пакетного кодирования , которые пытаются улучшить производительность и размер BER.

Также разрабатываются другие альтернативные правила форматирования, которые по-прежнему обеспечивают гибкость BER, но используют альтернативные схемы кодирования. Наиболее популярными из них являются альтернативы на основе XML, такие как правила кодирования XML и ASN.1 SOAP . [4] Кроме того, существует стандартное сопоставление для преобразования схемы XML в схему ASN.1, которую затем можно закодировать с помощью BER. [5]

Использование

[ редактировать ]

Несмотря на очевидные проблемы, BER является популярным форматом передачи данных, особенно в системах с различными собственными кодировками данных.

  • Протоколы SNMP и LDAP указывают ASN.1 с BER в качестве требуемой схемы кодирования.
  • Стандарт EMV для кредитных и дебетовых карт использует BER для кодирования данных на карте.
  • Стандарт цифровой подписи PKCS #7 также определяет ASN.1 с BER для кодирования зашифрованных сообщений и их цифровой подписи или цифрового конверта .
  • Многие телекоммуникационные системы, такие как ISDN , бесплатная маршрутизация вызовов и большинство служб сотовой связи, в некоторой степени используют ASN.1 с BER для передачи управляющих сообщений по сети.
  • Файлы GSM TAP (процедуры передачи учетных записей), NRTRDE (обмен данными в роуминге в реальном времени) кодируются с использованием BER. [1]

Для сравнения, более определенная кодировка DER широко используется для передачи цифровых сертификатов, таких как X.509 .

См. также

[ редактировать ]
  1. ^ Jump up to: а б с д Информационные технологии – Правила кодирования ASN.1: Спецификация базовых правил кодирования (BER), канонических правил кодирования (CER) и особых правил кодирования (DER) , ITU-T X.690, 07/2002
  2. ^ «База данных рекомендаций МСЭ-Т» .
  3. ^ Линь, Хуай-Ань. «Оценка оптимальной производительности синтаксиса передачи ASN.1/BER». Обзор компьютерных коммуникаций ACM. 93 июля, 45 – 58.
  4. ^ Рек. МСЭ-Т. Х.892, ИСО/МЭК 24824-2
  5. ^ ITU-T X.694, ISO/IEC ISO/IEC 8825-5
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 192830dd6cdd1c17ed261bfd14056c2c__1709063340
URL1:https://arc.ask3.ru/arc/aa/19/2c/192830dd6cdd1c17ed261bfd14056c2c.html
Заголовок, (Title) документа по адресу, URL1:
X.690 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)