Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 076

ASN.1

ПроверилCybersecurity entrepreneur & security researcher

Что такое ASN.1?

ASN.1Abstract Syntax Notation One — стандарт ITU-T (серия X.680), описывающий структуры данных, применяемые в криптографии и телекоме, независимо от языка программирования.


ASN.1 (Abstract Syntax Notation One) — формальная нотация, определённая в ITU-T X.680-X.681, для описания структурированных данных (целых чисел, последовательностей, множеств, выборов и тегированных типов) независимо от какого-либо языка программирования или процессора. Сопутствующий стандарт X.690 задаёт двоичные кодировки: BER (базовая), CER, DER (различающая), тогда как X.691 определяет PER (компактная). Каждый элемент представляет собой триплет тег-длина-значение (TLV), поэтому сертификат X.509 буквально является SEQUENCE из TBSCertificate, signatureAlgorithm и signatureValue.

ASN.1 лежит в основе X.509/PKI, CMS/PKCS#7, PKCS#12, LDAP, Kerberos, SNMP и телеком-сигнализации (3GPP S1AP/NGAP, GSM MAP). DER важен для безопасности: он предписывает единственную каноническую кодировку (определённая длина, минимальные целые, отсортированный SET OF), поэтому подпись или хеш над структурой ASN.1 воспроизводимы и не могут быть незаметно перекодированы. Снисходительность BER (неопределённые длины, избыточные теги) — классический источник различий между парсерами (parser differentials) и приёмов обхода подписи.

Поскольку разбор сертификата происходит до аутентификации, декодеры ASN.1 являются ценной поверхностью атаки. Реальные изъяны включают CVE-2016-2108 (повреждение памяти из-за «отрицательного нуля» в поле ANY в OpenSSL), CVE-2021-3712 (чтение за границами буфера для не завершённых NUL-байтом ASN1_STRING, утечка памяти ключей) и CVE-2022-0778 (бесконечный цикл, достижимый при разборе специально сформированного сертификата). Меры защиты: использовать безопасные по памяти или закалённые фаззингом декодеры, применять строгий DER и ограничивать глубину вложенности и длину.

flowchart LR
  S[ASN.1 schema in X.680] --> M[In-memory structure]
  M --> ENC{Encoding rules}
  ENC -->|DER canonical| D[Bytes for signing / PKI]
  ENC -->|BER permissive| B[Bytes - interop only]
  ENC -->|PER compact| P[Bytes for telecom links]
  D --> W[Wire / stored certificate]
  B --> W
  P --> W
  W --> DEC[TLV decoder]
  DEC --> V{Strict DER & bounds checks?}
  V -->|Yes| OK[Validated object]
  V -->|No| VULN[Parser differential / overflow / DoS]

Примеры

  1. 01

    Сертификат X.509 — это SEQUENCE из TBSCertificate, signatureAlgorithm и signatureValue, закодированный в DER.

  2. 02

    Сообщения S1AP 3GPP между eNodeB и MME описываются в ASN.1 и кодируются по PER.

Частые вопросы

Что такое ASN.1?

Abstract Syntax Notation One — стандарт ITU-T (серия X.680), описывающий структуры данных, применяемые в криптографии и телекоме, независимо от языка программирования. Относится к категории Криптография в кибербезопасности.

Что означает ASN.1?

Abstract Syntax Notation One — стандарт ITU-T (серия X.680), описывающий структуры данных, применяемые в криптографии и телекоме, независимо от языка программирования.

Как защититься от ASN.1?

Защита от ASN.1 обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия ASN.1?

Распространённые альтернативные названия: Abstract Syntax Notation One, X.680.

Связанные термины