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

ASN.1

Revisado porCybersecurity entrepreneur & security researcher

O que é ASN.1?

ASN.1Abstract Syntax Notation One: uma norma ITU-T (serie X.680) que descreve estruturas de dados usadas em criptografia e telecomunicacoes de forma independente da linguagem.


ASN.1 (Abstract Syntax Notation One) e uma notacao formal, definida em ITU-T X.680-X.681, para descrever dados estruturados (inteiros, sequencias, conjuntos, escolhas e tipos com etiqueta) de forma independente de qualquer linguagem de programacao ou CPU. A norma complementar X.690 define as codificacoes binarias: BER (basica), CER, DER (distintiva), enquanto X.691 define PER (compactada). Cada elemento e um triplo tag-length-value (TLV), razao pela qual um certificado X.509 e literalmente um SEQUENCE de TBSCertificate, signatureAlgorithm e signatureValue.

ASN.1 sustenta X.509/PKI, CMS/PKCS#7, PKCS#12, LDAP, Kerberos, SNMP e a sinalizacao de telecomunicacoes (3GPP S1AP/NGAP, GSM MAP). DER e importante para a seguranca: impoe uma unica codificacao canonica (comprimento definido, inteiros minimos, SET OF ordenado), de modo que uma assinatura ou hash sobre uma estrutura ASN.1 e reproduzivel e nao pode ser recodificado silenciosamente. A permissividade do BER (comprimentos indefinidos, etiquetas redundantes) e uma fonte classica de diferencas entre parsers (parser differentials) e de truques para contornar assinaturas.

Como a analise do certificado ocorre antes da autenticacao, os decodificadores ASN.1 sao uma superficie de ataque de alto valor. Falhas reais incluem CVE-2016-2108 (corrupcao de memoria por "zero negativo" num campo ANY do OpenSSL), CVE-2021-3712 (leitura alem dos limites em ASN1_STRINGs nao terminados em NUL, vazando memoria de chaves) e CVE-2022-0778 (um laco infinito alcancavel ao analisar um certificado manipulado). Defesas: usar decodificadores seguros na memoria ou reforcados por fuzzing, impor DER estrito e limitar a profundidade de aninhamento e o comprimento.

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]

Exemplos

  1. 01

    Um certificado X.509 e um SEQUENCE de TBSCertificate, signatureAlgorithm e signatureValue, codificado em DER.

  2. 02

    As mensagens 3GPP S1AP entre um eNodeB e um MME sao descritas em ASN.1 e codificadas em PER.

Perguntas frequentes

O que é ASN.1?

Abstract Syntax Notation One: uma norma ITU-T (serie X.680) que descreve estruturas de dados usadas em criptografia e telecomunicacoes de forma independente da linguagem. Pertence à categoria Criptografia da cibersegurança.

O que significa ASN.1?

Abstract Syntax Notation One: uma norma ITU-T (serie X.680) que descreve estruturas de dados usadas em criptografia e telecomunicacoes de forma independente da linguagem.

Como se defender contra ASN.1?

As defesas contra ASN.1 costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.

Quais são outros nomes para ASN.1?

Nomes alternativos comuns: Abstract Syntax Notation One, X.680.

Termos relacionados