Ir para o conteúdo
AZ Tools

Descodificador ASN.1 / DER

Os certificados têm um leitor dedicado, mas tudo o resto codificado em DER não: um pedido de assinatura de certificado, uma chave PKCS#8, um pacote PKCS#7, uma resposta OCSP, um carimbo temporal. Por dentro têm todos a mesma forma — valores etiquetados e aninhados com comprimentos explícitos — e esta ferramenta mostra essa forma para qualquer um deles. Cada nó indica onde começa, que tamanho tem o cabeçalho, quantos bytes de conteúdo se seguem e se é constructed ou primitive, que é o que torna visível um problema estrutural. Um comprimento que ultrapassa o pai, bytes a sobrar depois do valor mais exterior, um comprimento indefinido que não devia estar em DER: nada disso se nota depois de os bytes se transformarem em nomes simpáticos, e é tudo isso que explica que uma biblioteca recuse um ficheiro aparentemente correto. Os primitivos são descodificados em vez de despejados: os identificadores de objeto recebem nome quando são conhecidos, as cadeias são descodificadas com o conjunto de caracteres da sua etiqueta, os inteiros aparecem por inteiro e um BIT STRING indica o seu enchimento. Um OCTET STRING que afinal contém mais DER — é assim que as extensões de certificado e o material de chave viajam — é assinalado e pode ser expandido no lugar. Nada é enviado, o que aqui conta porque estes blocos são chaves tantas vezes como certificados.

As extensões de certificado e o material de chave aninham outra estrutura dentro de uma cadeia; isto abre-a no lugar.

Tudo é descodificado no seu navegador e nada é enviado, mas uma chave privada inspeciona-se melhor com uma ferramenta local.

Cole um bloco PEM, base64 ou hex para descodificar.

Como usar

  1. Cole um bloco PEM, base64 ou hex, ou largue um ficheiro .der.
  2. Leia a árvore: deslocamento, comprimento do cabeçalho, comprimento do conteúdo, etiqueta e valor.
  3. Ligue a expansão para abrir o DER escondido nos OCTET e BIT STRING.
  4. Repare no aviso de bytes sobrantes: o ficheiro contém mais do que uma estrutura.
  5. Copie a listagem se quiser compará-la com a saída de outra ferramenta.

Perguntas frequentes

Em que difere do descodificador de certificados?
O descodificador de certificados percebe o que um certificado X.509 significa: sujeito, validade, nomes alternativos. Este percebe apenas a codificação, por isso funciona com um CSR, uma chave, um pacote PKCS#7 ou qualquer coisa em DER, e por isso mostra deslocamentos e comprimentos em vez de nomes de campos.
O que são os números no início de cada linha?
O deslocamento do valor dentro do ficheiro, depois o comprimento do cabeçalho e o do conteúdo. Juntos permitem localizar qualquer nó num despejo hexadecimal, e são a forma de detetar um comprimento que não cabe dentro do pai.
Porque é que um OCTET STRING é marcado como contendo DER?
Porque analisar o conteúdo como DER o consumiu exatamente, o que quase sempre significa que há outra estrutura aninhada lá dentro — é assim que as extensões e o material de chave viajam. Continua a ser um palpite, por isso é assinalado em vez de assumido, e expandir é opcional.
O que significa um comprimento indefinido?
Que o valor segue até um marcador de fim de conteúdo em vez de declarar o tamanho. O BER permite, o DER não, por isso vê-lo em algo que devia ser DER costuma explicar por que motivo um analisador rigoroso recusou o ficheiro.
Posso colar uma chave privada?
A estrutura é descodificada, já que é DER como tudo o resto, e nada é enviado. Ainda assim, uma chave privada inspeciona-se melhor com uma ferramenta local: o hábito de colar chaves em páginas web é o que acaba por expor uma.
Os valores são verificados?
Não. Isto lê a codificação, não o significado: não verifica assinaturas, cadeias nem validade. Diz-lhe o que os bytes dizem.

Ferramentas relacionadas