Skip to content
Herramienta Pro

Laboratorio decodificador ASN.1 / DER

Un parser real en el navegador recorre el árbol TLV de certificados X.509: identifica campos, decodifica OID y fechas y detecta DER mal formado.

Abrir la herramienta →

La herramienta interactiva se abre en inglés.

Cada certificado TLS es un árbol de tripletas Tag-Length-Value codificado en DER. Este laboratorio incluye un parser real y diminuto que recorre ese árbol en tu navegador: pegas un certificado en hexadecimal o base64 (o PEM), o cargas un ejemplo, y practicas las tres habilidades que importan: identificar qué bytes son el número de serie, la validez, la clave pública o las extensiones; decodificar a mano un OID, un INTEGER o una fecha; y detectar las codificaciones de longitud mal formadas (indefinida, no mínima, demasiado larga) que DER prohíbe y en las que se apoyan los ataques reales de análisis de certificados. Las estructuras son SEQUENCE (0x30) y SET (0x31); las hojas, INTEGER, OBJECT IDENTIFIER, cadenas, fechas, BIT STRING y OCTET STRING. Los niveles de dificultad añaden más anidamiento, OID más difíciles y más casos mal formados, con bono por velocidad y notas de la S a la D. Nada de lo que pegas sale de la página. Es un laboratorio Pro.

  1. Pega un certificado X.509 en DER como hexadecimal o base64/PEM, o carga un ejemplo incluido.
  2. Recorre el árbol TLV que renderiza el parser.
  3. Resuelve el desafío: identifica el nodo resaltado, decodifica a mano un INTEGER, un OID o una fecha y detecta la codificación mal formada.
  4. Sube de nivel para más anidamiento, OID más difíciles y más casos mal formados.

Preguntas frecuentes

¿Qué es el laboratorio decodificador ASN.1 / DER?

Un ejercicio en el navegador que enseña cómo se codifican los certificados X.509. ASN.1 es el lenguaje de esquemas; DER (Distinguished Encoding Rules) es la codificación exacta en bytes. Un pequeño parser en tu navegador recorre el árbol Tag-Length-Value y lo muestra, y un desafío evaluado te pide identificar campos del certificado, decodificar valores en bruto (INTEGER, OBJECT IDENTIFIER, UTCTime) y detectar codificaciones mal formadas. No hay que instalar nada y los bytes nunca salen de tu navegador.

¿Qué es TLV y por qué importa?

Cada elemento DER es una tripleta: un byte de Tag (qué tipo es: SEQUENCE 0x30, INTEGER 0x02, OBJECT IDENTIFIER 0x06, etc.), una longitud (Length) y el valor (Value). Los tipos construidos como SEQUENCE y SET contienen más tripletas TLV, así que un certificado es un árbol de ellas. Leer el árbol es como sabes qué bytes son el número de serie, las fechas de validez, la clave pública y las extensiones.

¿Por qué DER prohíbe las longitudes indefinidas y no mínimas?

DER exige exactamente una codificación canónica para cada valor: toda longitud debe ser definida (sin la forma indefinida 0x80) y mínima (sin forma larga donde cabe la corta y sin octetos cero iniciales). Las firmas se calculan sobre esos bytes exactos, así que un parser que acepta en silencio las variantes más laxas de BER puede ser engañado con dos cadenas de bytes distintas que «significan» lo mismo, una fuente clásica de vulnerabilidades en el análisis de certificados. El laboratorio te hace detectar esos casos.

¿Es un parser real?

Sí: el laboratorio incluye un pequeño parser DER en TypeScript puro que recorre las tripletas TLV con comprobación completa de límites y nunca lanza excepciones (devuelve un error en su lugar). Es compacto a propósito y está orientado a la enseñanza, no es una biblioteca ASN.1 completa de producción, y decodifica las estructuras y los OID que encuentras en un certificado X.509.

¿Es gratis?

No, es un laboratorio Pro. Con una cuenta gratuita tienes 3 usos de prueba de herramientas Pro en total; después necesitas Pro.

🖤 Black Friday: new customers get 3 months of Pro for $5, then $5/month. Ends 30 Nov. Claim 3 months for $5 →