本文へスキップ
AZ Tools

ASN.1 / DER デコーダ

証明書には専用のビューアがありますが、DER で符号化された他のものにはありません。証明書署名要求(CSR)、PKCS#8 の鍵、PKCS#7 のバンドル、OCSP 応答、タイムスタンプトークン。どれも中身は同じ形——長さを明示したタグ付きの値が入れ子になった構造——で、このツールはその形をどれについても示します。 各ノードは、どこから始まり、ヘッダが何バイトで、内容が何バイト続き、constructed か primitive かを報告します。構造上の問題が見えるようになるのはまさにここです。親をはみ出す長さ、最外の値の後に残ったバイト、DER にあってはならない不定長——バイト列が親切な名前に置き換わったあとでは、どれも見えません。そして問題なさそうなファイルをライブラリが拒む理由は、たいていそれらです。 primitive はダンプではなく復号して示します。よく知られたオブジェクト識別子には名前を付け、文字列はタグが定める文字集合で復号し、整数は全桁を表示し、BIT STRING は詰めビットを報告します。中にさらに DER を含む OCTET STRING は——証明書の拡張や鍵データはそうやって運ばれます——印を付け、その場で展開できます。アップロードはされません。この種のデータは証明書と同じくらい鍵であることが多いので、そこは重要です。

証明書の拡張や鍵データは文字列の中に別の構造を収めます。この項目でその場に開きます。

すべてブラウザ内で復号され、どこにも送信されません。それでも秘密鍵はローカルのツールで見るほうが賢明です。

PEM ブロック・base64・hex を貼り付けると復号します。

使い方

  1. PEM ブロック、base64、hex を貼り付けるか、.der ファイルをドロップします。
  2. ツリーを読みます。オフセット、ヘッダ長、内容長、タグ、値が並びます。
  3. 展開を有効にすると OCTET・BIT STRING に隠れた DER が開きます。
  4. 残りバイトの注記に注意します。ファイルに構造が複数ある印です。
  5. 他のツールの出力と比べるなら一覧をコピーします。

よくある質問

証明書デコーダとの違いは
証明書デコーダは X.509 証明書の意味——サブジェクト、有効期限、代替名——を理解します。こちらは符号化だけを理解します。だからこそ CSR でも鍵でも PKCS#7 バンドルでも DER でありさえすれば動き、フィールド名の代わりにオフセットと長さを示します。
各行の先頭の数字は何ですか
その値がファイル内で始まるオフセット、続いてヘッダの長さと内容の長さです。この三つがあれば hex ダンプで任意のノードを見つけられますし、親に収まらない長さを見抜くのもこれで行います。
OCTET STRING に「DER を含む」と付くのはなぜですか
その内容を DER として解析したときにちょうど使い切ったからです。多くの場合、中に別の構造が入れ子になっているという意味で、証明書の拡張や鍵素材はそう運ばれます。それでも推測なので断定せず印を付けるだけにし、展開は任意です。
不定長とは何を意味しますか
大きさを宣言せず、end-of-contents の印が現れるまで値が続くという意味です。BER は許しますが DER は許しません。DER のはずのものでこれを見かけたら、厳密なパーサがそのファイルを拒んだ理由はたいていそれです。
秘密鍵を貼り付けてもよいですか
秘密鍵も DER なので構造は復号されますし、アップロードもされません。それでも秘密鍵はローカルのツールで見るほうが賢明です。鍵をウェブページに貼り付ける習慣が、いつか流出につながります。
値の検証もしますか
いいえ。このツールは意味ではなく符号化を読みます。署名も連鎖も有効期限も確認しません。バイト列が何と言っているかを示すだけです。

関連ツール