ASN.1 простыми словами
От: Строжевский Юрий Россия www.strozhevsky.com
Дата: 28.05.13 15:18
Оценка: 75 (3) :)
Статья:
ASN.1 простыми словами
Автор(ы): Строжевский Юрий
Дата: 23.10.2012
Статья представляет собой описание принципов кодирования простейших типов в нотации ASN.1 BER. Приведены подробные примеры кодирования, рассмотрены сложные и не очевидные варианты кодируемых значений. К статье прилагается файл примеров на С++ (Windows) с дополнительными примерами кодирования для каждого рассмотренного в статье типа.


Авторы:
Строжевский Юрий

Аннотация:
Статья представляет собой описание принципов кодирования простейших типов в нотации ASN.1 BER. Приведены подробные примеры кодирования, рассмотрены сложные и не очевидные варианты кодируемых значений. К статье прилагается файл примеров на С++ (Windows) с дополнительными примерами кодирования для каждого рассмотренного в статье типа.

30.05.13 02:14: Перенесено модератором из 'Низкоуровневое программирование' — SergH
Re: ASN.1 простыми словами
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 28.05.13 15:33
Оценка: +1 -1
Здравствуйте, Строжевский Юрий, Вы писали:

СЮ>Статья:

СЮ>ASN.1 простыми словами
Автор(ы): Строжевский Юрий
Дата: 23.10.2012
Статья представляет собой описание принципов кодирования простейших типов в нотации ASN.1 BER. Приведены подробные примеры кодирования, рассмотрены сложные и не очевидные варианты кодируемых значений. К статье прилагается файл примеров на С++ (Windows) с дополнительными примерами кодирования для каждого рассмотренного в статье типа.


СЮ>Авторы:

СЮ> Строжевский Юрий

СЮ>Аннотация:

СЮ>Статья представляет собой описание принципов кодирования простейших типов в нотации ASN.1 BER. Приведены подробные примеры кодирования, рассмотрены сложные и не очевидные варианты кодируемых значений. К статье прилагается файл примеров на С++ (Windows) с дополнительными примерами кодирования для каждого рассмотренного в статье типа.
Унылая и бесполезная статья. Нет ссылко на стандартны, не сказано про то, как правильно читать эти стандарты. Заголовок не соответствует соежржанию, эту статью надо назвать "ASN.1. Стандарт кодирования BER для Чайников.". Да и БЕр не очень интересн т.к. прост, а вот PER был бы интересен. В общем, не зачёт.
Sic luceat lux!
Re[2]: ASN.1 простыми словами
От: y-niko Россия www.strozhevsky.com
Дата: 29.05.13 03:08
Оценка: -3
Здравствуйте, Kernan, Вы писали:

K>Здравствуйте, Строжевский Юрий, Вы писали:


СЮ>>Статья:

СЮ>>ASN.1 простыми словами
Автор(ы): Строжевский Юрий
Дата: 23.10.2012
Статья представляет собой описание принципов кодирования простейших типов в нотации ASN.1 BER. Приведены подробные примеры кодирования, рассмотрены сложные и не очевидные варианты кодируемых значений. К статье прилагается файл примеров на С++ (Windows) с дополнительными примерами кодирования для каждого рассмотренного в статье типа.


СЮ>>Авторы:

СЮ>> Строжевский Юрий

СЮ>>Аннотация:

СЮ>>Статья представляет собой описание принципов кодирования простейших типов в нотации ASN.1 BER. Приведены подробные примеры кодирования, рассмотрены сложные и не очевидные варианты кодируемых значений. К статье прилагается файл примеров на С++ (Windows) с дополнительными примерами кодирования для каждого рассмотренного в статье типа.
K>Унылая и бесполезная статья. Нет ссылко на стандартны, не сказано про то, как правильно читать эти стандарты. Заголовок не соответствует соежржанию, эту статью надо назвать "ASN.1. Стандарт кодирования BER для Чайников.". Да и БЕр не очень интересн т.к. прост, а вот PER был бы интересен. В общем, не зачёт.

Унылый и бесполезный комментарий: отсутствует внимательность (ссылка на стандарты прямо во введении к статье), автор комментария не знает даже как читать эти стандарты. За идею заголовка спасибо — видимо для определённого слоя читателей заголовок "для чайников" ближе и приятнее. А про PER — понимание вторичных кодировок (таких как PER) сложно без понимания BER. И интересы у всех людей разные — если кому нравится BER то они читают мою статью, если кому-то нравится PER — читают что-то другое или пишут свои прекрасные статьи.
Re[2]: ASN.1 простыми словами
От: dilmah США  
Дата: 29.05.13 03:14
Оценка:
K>Унылая и бесполезная статья. Нет ссылко на стандартны, не сказано про то, как правильно читать эти стандарты. Заголовок не соответствует соежржанию.....

И даже подраздел форума (asm) не соответствует содержанию
Re[3]: ASN.1 простыми словами
От: y-niko Россия www.strozhevsky.com
Дата: 29.05.13 03:16
Оценка:
Здравствуйте, dilmah, Вы писали:

K>>Унылая и бесполезная статья. Нет ссылко на стандартны, не сказано про то, как правильно читать эти стандарты. Заголовок не соответствует соежржанию.....


D>И даже подраздел форума (asm) не соответствует содержанию


С этим согласен, но это уже к редакторам сайта.
Re[3]: ASN.1 простыми словами
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 30.05.13 15:37
Оценка:
Здравствуйте, y-niko, Вы писали:

YN>Здравствуйте, Kernan, Вы писали:


YN>Унылый и бесполезный комментарий: отсутствует внимательность (ссылка на стандарты прямо во введении к статье), автор комментария не знает даже как читать эти стандарты.

Начнём с того, что стандартов всего 10 ITU-шных и один RFC. Из статьи не ясно что и где декларируется (а это очень интересно, т.к. разработчки руководствуются таки стандартами, а не статьями). Как минимум можно посвятить этому хороший обзац. Во вторых, та куцая ссылка это не ссылка на "ITU-T Rec. X.690", а ссылка на непойми что. Скачать ничего не получилось. У тебя, кстати, нет раздела "Литература" в которой все используемые для написания статьи стандарты должны быть перечислены.
YN>За идею заголовка спасибо — видимо для определённого слоя читателей заголовок "для чайников" ближе и приятнее.
Ты просто вкратце передашь суть статьи, а суть её это "ASN.1 Стандарт кодирования BER для чайников.", т.к. не чаники просто откроют стандарт.
YN>А про PER — понимание вторичных кодировок (таких как PER) сложно без понимания BER. И интересы у всех людей разные — если кому нравится BER то они читают мою статью, если кому-то нравится PER — читают что-то другое или пишут свои прекрасные статьи.
На самом деле, разобраться с BER не проблема, т.к. это TLV (кстати, что это за подход?). Реальная проблема это хитрые стандарты вроде PER которые используются в серьёзных системах и на практике народ имеет проблемы именно с ним и именно постое описание его они ищут в инете.
Sic luceat lux!
Re: ASN.1 простыми словами
От: Kubyshev Andrey  
Дата: 03.06.13 15:08
Оценка: -1
Как то не очень интересно в 21 веке ..
Re[2]: ASN.1 простыми словами
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 04.06.13 12:16
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>Как то не очень интересно в 21 веке ..

На самом деле оно актуально в телекоме более, чем ты думаешь. Даже новые стандарты по LTE-A (к примеру) используют ASN.1 для описания протокола. А дальше всё просто, запихал описание в программу и она тебе сгенерила парсер и сопутствующий хлам..
Sic luceat lux!
Re[4]: ASN.1 простыми словами
От: y-niko Россия www.strozhevsky.com
Дата: 09.12.13 04:01
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Здравствуйте, y-niko, Вы писали:


YN>>Здравствуйте, Kernan, Вы писали:


YN>>Унылый и бесполезный комментарий: отсутствует внимательность (ссылка на стандарты прямо во введении к статье), автор комментария не знает даже как читать эти стандарты.

K>Начнём с того, что стандартов всего 10 ITU-шных и один RFC. Из статьи не ясно что и где декларируется (а это очень интересно, т.к. разработчки руководствуются таки стандартами, а не статьями). Как минимум можно посвятить этому хороший обзац. Во вторых, та куцая ссылка это не ссылка на "ITU-T Rec. X.690", а ссылка на непойми что. Скачать ничего не получилось. У тебя, кстати, нет раздела "Литература" в которой все используемые для написания статьи стандарты должны быть перечислены.
Стандарт кодирования ASN.1 всего один — X.609 (в статье говорится про последний стандарт на ASN.1). Всё остальное — вариации на тему. И для справки — никакие RFC стандартами не являются и расшифровывается эта аббревиатура как "Request For Comments", не более того. Для перехода в статус "стандарта" (по мнению IETF) RFC должно получить другое имя и стать STD.

YN>>А про PER — понимание вторичных кодировок (таких как PER) сложно без понимания BER. И интересы у всех людей разные — если кому нравится BER то они читают мою статью, если кому-то нравится PER — читают что-то другое или пишут свои прекрасные статьи.

K>На самом деле, разобраться с BER не проблема, т.к. это TLV (кстати, что это за подход?). Реальная проблема это хитрые стандарты вроде PER которые используются в серьёзных системах и на практике народ имеет проблемы именно с ним и именно постое описание его они ищут в инете.
Напищи свою прекрасную статью про PER, если тебе интересно. Ну если сможешь, конечно
Re[5]: ASN.1 простыми словами
От: Cyberax Марс  
Дата: 09.12.13 04:27
Оценка:
Здравствуйте, y-niko, Вы писали:

YN>Стандарт кодирования ASN.1 всего один — X.609 (в статье говорится про последний стандарт на ASN.1). Всё остальное — вариации на тему. И для справки — никакие RFC стандартами не являются и расшифровывается эта аббревиатура как "Request For Comments", не более того. Для перехода в статус "стандарта" (по мнению IETF) RFC должно получить другое имя и стать STD.

Это неверно. STD-номера просто ссылаются на RFC, которые получили статус стандартов. Не все RFC находятся на Standards Track и не все Standards Track документы в итоге становятся стандартами.
Sapienti sat!
Re[3]: ASN.1 простыми словами
От: Cyberax Марс  
Дата: 09.12.13 04:33
Оценка:
Здравствуйте, Kernan, Вы писали:

KA>>Как то не очень интересно в 21 веке ..

K>На самом деле оно актуально в телекоме более, чем ты думаешь. Даже новые стандарты по LTE-A (к примеру) используют ASN.1 для описания протокола. А дальше всё просто, запихал описание в программу и она тебе сгенерила парсер и сопутствующий хлам..
Ага, вот тут описаны приключения человека, который делал реальный процессор SS7.

Спойлер: потребовалось написать специальный инструмент для разбора файлов MS Word 3.

http://laforge.gnumonks.org/weblog/2011/03/26/#20110326-parsing_dos_word_files_for_gsm_map
Sapienti sat!
Re[2]: ASN.1 простыми словами
От: Аноним  
Дата: 09.12.13 07:28
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>Как то не очень интересно в 21 веке ..


в 21 веке сертификаты уже не используются ? ssl не актуален?
учите матчасть )
Re[5]: ASN.1 простыми словами
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 09.12.13 08:29
Оценка:
Здравствуйте, y-niko, Вы писали:

YN>Стандарт кодирования ASN.1 всего один — X.609 (в статье говорится про последний стандарт на ASN.1).

Даже вики говорит, что их не 1, а 7. И что такое X.609 я не понимаю, может X.690? Кроме кодирования, есть стандарт описание самого языка.
YN>Напищи свою прекрасную статью про PER, если тебе интересно. Ну если сможешь, конечно
Мне лениво что-то делать, особенно после попыток взять на слабо. Девушку свою на слабо бери, если она у тебя есть конечно же .
Sic luceat lux!
Re[6]: ASN.1 простыми словами
От: y-niko Россия www.strozhevsky.com
Дата: 09.12.13 17:38
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, y-niko, Вы писали:


YN>>Стандарт кодирования ASN.1 всего один — X.609 (в статье говорится про последний стандарт на ASN.1). Всё остальное — вариации на тему. И для справки — никакие RFC стандартами не являются и расшифровывается эта аббревиатура как "Request For Comments", не более того. Для перехода в статус "стандарта" (по мнению IETF) RFC должно получить другое имя и стать STD.

C>Это неверно. STD-номера просто ссылаются на RFC, которые получили статус стандартов. Не все RFC находятся на Standards Track и не все Standards Track документы в итоге становятся стандартами.
Из Википедии:
Согласно RFC 2026, жизненный цикл стандарта выглядит следующим образом:
1) Выносится на всеобщее рассмотрение интернет-проект (Internet Draft). Проекты не имеют официального статуса и удаляются из базы через шесть месяцев после последнего изменения.
2) Если проект стандарта оказывается достаточно удачным и непротиворечивым, он получает статус предложенного стандарта (Proposed Standard), и свой номер RFC. Наличие программной реализации стандарта желательно, но не обязательно.
3) Следующая стадия — проект стандарта (Draft Standard) — означает, что предложенный стандарт принят сообществом, в частности, существуют две независимые по коду совместимые реализации разных команд разработчиков. В проекты стандартов ещё могут вноситься мелкие правки, но они считаются достаточно стабильными и рекомендуются для реализации.
4) Высший уровень — стандарт Интернета (Internet Standard). Это спецификации с большим успешным опытом применения и зрелой формулировкой. Параллельно с нумерацией RFC они имеют свою собственную нумерацию STD. Список стандартов имеется в документе STD 1 (сейчас это RFC 5000, но нумерация может измениться). Из более чем трёх тысяч RFC этого уровня достигли только несколько десятков.
5) Многие старые RFC замещены более новыми версиями под новыми номерами или вышли из употребления. Такие документы получают статус исторических (Historic)
Re[6]: ASN.1 простыми словами
От: y-niko Россия www.strozhevsky.com
Дата: 09.12.13 17:52
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Здравствуйте, y-niko, Вы писали:


YN>>Стандарт кодирования ASN.1 всего один — X.609 (в статье говорится про последний стандарт на ASN.1).

K>Даже вики говорит, что их не 1, а 7. И что такое X.609 я не понимаю, может X.690? Кроме кодирования, есть стандарт описание самого языка.
YN>>Напищи свою прекрасную статью про PER, если тебе интересно. Ну если сможешь, конечно
K>Мне лениво что-то делать, особенно после попыток взять на слабо. Девушку свою на слабо бери, если она у тебя есть конечно же .
Мне 37 лет, и мне письками меряться уже давно не с кем — у меня всё-равно больше И статей у меня только на этом ресурсе уже 2 (первую из которых я написал аж 10 лет тому назад) в отличе от ленивых некоторых.
А со стандартом — да, перепутал местами две цифры.
Стандарт кодирования ASN.1 это X.690. Если всё-таки читать мою статью, то в ней прямо говорится, что обсуждение будет идти правил кодирования BER. Для них стандарт один.
Re[4]: ASN.1 простыми словами
От: y-niko Россия www.strozhevsky.com
Дата: 09.12.13 18:03
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, Kernan, Вы писали:


KA>>>Как то не очень интересно в 21 веке ..

K>>На самом деле оно актуально в телекоме более, чем ты думаешь. Даже новые стандарты по LTE-A (к примеру) используют ASN.1 для описания протокола. А дальше всё просто, запихал описание в программу и она тебе сгенерила парсер и сопутствующий хлам..
C>Ага, вот тут описаны приключения человека, который делал реальный процессор SS7.

C>Спойлер: потребовалось написать специальный инструмент для разбора файлов MS Word 3.


C>http://laforge.gnumonks.org/weblog/2011/03/26/#20110326-parsing_dos_word_files_for_gsm_map

SS7 — это стэк протоколов, в поддержке отдельной реализации которого также участвовал и я, кстати говоря.
И лично знал многих из тех, кто очень успешно занимался разработкой всех уровней этого стэка.

Кстати в упомянутой статье говорится только про протокол MAP, протокол уровня приложения. До "реального процессора SS7" там как до Луны пешком.
Re[7]: ASN.1 простыми словами
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 10.12.13 08:40
Оценка:
Здравствуйте, y-niko, Вы писали:

YN>Мне 37 лет, и мне письками меряться уже давно не с кему меня всё-равно больше И статей у меня только на этом ресурсе уже 2 (первую из которых я написал аж 10 лет тому назад) в отличе от ленивых некоторых.

YN>А со стандартом — да, перепутал местами две цифры.
Как говорится, найдите в выделенном когнетивный диссонанс и расположите в нужном порядке. Игра для троллей от 2-х до 5-и лет.
YN>Мне 37 лет
Аппеляция к возрасту...
Sic luceat lux!
Re: ASN.1 простыми словами
От: Хреннос  
Дата: 17.12.13 15:57
Оценка: +1
Спасибо за статью (просвещение — дело нужное). Но нужно что-то делать со стилем изложения.

СЮ>Статья представляет собой описание принципов кодирования простейших типов в нотации ASN.1 BER. Приведены подробные примеры кодирования, рассмотрены сложные и не очевидные варианты кодируемых значений.


Дочитал пока до кодирования отрицательных целых чисел.

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

Юрий, скажите, как можно было написать вот такое: "Кодирование отрицательных целых построено так, что на самом деле кодируется не одно, а два целых значения – одно основное значение и другое целое значение, которое нужно вычесть из основного значения"? Я весь следующий абзац пытался найти намеки, в каком порядке эти значения записываются в поток вывода: сначала "основное", а затем "другое целое", или наоборот? И как они, собственно, разделяются?

Или вот прекрасный образчик потока сознания: "Так как число, которое надо вычесть из основного, должно быть больше основного числа, то кодирование отрицательных целых чисел начинается именно с выбора этого вычитаемого. Так как по правилам это вычитаемое должно разлагаться по основанию 256 так, чтобы все биты, кроме первого, представляющие индексы при соответствующих степенях 256, были равны 0, то ряд возможных вычитаемых представляет собой лидирующий октет 80 (1000 0000) и какое-то количество октетов 00, следующих за ним. То есть в качестве вычитаемых могут использоваться: 80256 (12810), ( 80 00 )256 (3276810), ( 80 00 00 )256 (838860810) и т.п.". Нет, если знать, о чем речь, то становится понятно: автор всего лишь хотел сказать, что отрицательные числа можно закодировать в бОльшее количество байт, чем минимально необходимо. Но это же и так азы!

Возможно, в стандарте описание всего этого счастья дано еще более косноязычно и бестолково. Но статья-то называется "простыми словами". Статья-то написана для людей, которые в компьютерах кой-чего понимают. Почему бы не использовать нормальную, устоявшуюся терминологию? Зачем своими словами пересказывать то, что и так известно каждому более-менее вменяемому программисту?

Честно говоря, от статьи с таким названием я ожидал гораздо менее формальной и более живой подачи материала. Не таблицы битов, а живые примеры с последующим разбором. Не нудное и невнятное описание вычитаний и оснований 256, а живые примеры кодирований чисел: вот тут у нас — бинарное число в дополнительном формате (обратите внимание — в формате big-endian), вот тут — число в виде строки (потому что флаги в заголовке такие-то), а вот тут у нас — напряглись, поднатужились — мантисса числа великой точности. Я вовсе не ожидаю, что после прочтения статьи я смогу во сне перечислить все возможные значения полей в служебных октетах. Как раз наоборот: ожидается, что в голове возникнет какая-то общая картина, что появится представление, как устроен протокол "с высоты птичьего полета".
Re[2]: ASN.1 простыми словами
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 17.12.13 18:57
Оценка:
Здравствуйте, Хреннос, Вы писали:

Х>Возможно, в стандарте описание всего этого счастья дано еще более косноязычно и бестолково. Но статья-то называется "простыми словами".


Стандарты как раз понятнее. Это несмотря на то, что ITU-T никогда не стремилась к излишней понятности
The God is real, unless declared integer.
Re[5]: ASN.1 простыми словами
От: Cyberax Марс  
Дата: 25.12.13 08:20
Оценка:
Здравствуйте, y-niko, Вы писали:

YN>SS7 — это стэк протоколов, в поддержке отдельной реализации которого также участвовал и я, кстати говоря.

YN>И лично знал многих из тех, кто очень успешно занимался разработкой всех уровней этого стэка.
Ну дык. Я тоже знаю фанатов BDSM.

YN>Кстати в упомянутой статье говорится только про протокол MAP, протокол уровня приложения. До "реального процессора SS7" там как до Луны пешком.

Это часть OpenBTS/OpenBSC, которая таки полный стек реализует.
Sapienti sat!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.