プロトコルとバイナリ形式

ASN.1パーサーバイト境界から原因を探す

完全なBERまたはDERの値を1つ入力し、テキスト形式を選んでからツリーを解析します。

ASN.1パーサー

符号化されたバイト

TLVツリー

バイト列を入力するか、サンプルを読み込んでください。

バイト列はこのブラウザー内だけで処理され、送信もURLへの保存もされません。

設定

バイト列を入力するか、サンプルを読み込んでください。

証明書やCSRを読み込むライブラリが失敗したとき、まず確かめたいのは実際のバイト境界です。ASN.1パーサーは各タグの長さと位置を残すため、証明書の概要表示では見落としがちな切断や余分な末尾が分かります。 ASN.1解析やTLV解析では、元のバイト位置も確認できます。DERデコーダーとして使う場合も入力は書き換えません。

ASN.1パーサーには単一TLVの構築機能もあります。タグと値から長さを作って再解析しますが、コンテキスト固有タグの業務上の意味は外部のASN.1定義なしには決めません。

ASN.1パーサーを使う理由

証明書の項目名より先に、符号化された範囲を確かめます。

長さの不整合を位置で示す

ASN.1パーサーは開始位置、ヘッダー長、内容長をノードごとに表示します。親の範囲を超える長さ、BERの終了マーカー不足、ルート後の余分なバイトを途中までの成功として扱いません。

16進数の列がSEQUENCEとINTEGERの階層に分かれ、それぞれのバイト範囲が示される。

構築したTLVを同じ規則で再解析

完全なタグと値のバイト列から確定長のTLVを作り、その結果を解析エンジンへ戻します。構造化タグの値には完全な子TLVが必要です。

タグと値から生成したTLVのバイト列が、再解析で二段のツリーになる。

入力形式と長さを順に確かめる

01

テキストの包み方を選ぶ

標準は16進数です。PEMとBase64は明示的に切り替え、DERファイルはローカルでバイトとして読みます。16進数らしいBase64との取り違えを避けられます。

  • PEMは対応するBEGIN行とEND行を1組だけ受け付けます。
02

ツリーの位置を照合する

解析は手動で起動します。選んだノードのクラス、タグ番号、開始位置、ヘッダー長、内容長を原文と比べてください。

  • Ctrl/Cmd + Enterでも現在の解析または構築を実行できます。
03

上書き前に再解析を試す

構築では値のバイト数から長さを計算します。生成結果を入力へ戻す際は置換を確認でき、適用後に一度だけ元へ戻せます。

  • 入力や形式を変えた直後は結果が古くなり、コピーと保存が無効になります。

構造と元のバイトを両方残す

入力形式を明示

hex、Base64、単一PEMブロックを選択します。ローカルDERをテキストへ変換する必要はありません。ASN.1パーサーは壊れた符号化を解析前に知らせます。

読める値と生データ

INTEGER、OID、文字列など確実なユニバーサル型だけを解釈します。未知のタグも番号と元のhexを残すので仕様書と照合できます。

BERの入れ子に上限

構造化された確定長と不定長を扱います。入力256 KiB、深さ32、ノード10,000件を上限にして異常な値を止めます。

解析できても証明できないこと

DER準拠の証明ではない
ASN.1パーサーはBERの構造化不定長も読みます。ツリーができてもDERの正規形、SETの順序、ASN.1定義との一致は保証されません。
ルート値は1つだけ
複数のPEMブロック、ルート後のバイト、切れた長さ、終了マーカー不足はエラーです。途中までのツリーは有効な結果として書き出しません。
証明書の信頼性は検証しない
署名、証明書チェーン、有効期限、秘密鍵の整合性は確認しません。ASN.1パーサーの対象はTLVの符号化構造です。
業界固有の意味を推測しない
[0]のようなタグだけでEMVや独自プロトコルの項目名は決まりません。OCTET STRING内のバイトも自動的に入れ子のDERとは見なしません。

ASN.1パーサーのよくある質問

X.509、ASN.1、DERはどう違いますか?

X.509は証明書の仕様、ASN.1は型を記述する表記法、DERは値をバイトにする規則です。このページは主に最後の符号化構造を示します。

貼り付けた証明書はサーバーに保存されますか?

いいえ。ASN.1パーサーはこのブラウザーで処理し、入力を送信せずURLにも入れません。

秘密鍵も解析できますか?

DERで符号化されていれば構造は読めます。ただし機密の秘密鍵は、貼り付ける習慣を避けて端末内の専用ツールで確認するほうが安全です。

「証明書を解析できませんでした」と出るのはなぜですか?

PEMの開始・終了行、Base64の破損、宣言された長さと残りのバイト数を確認してください。このツールは問題のバイト位置を報告します。

SSL証明書チェッカーとは何が違いますか?

こちらは渡されたバイトだけを解析します。稼働中のサーバーへ接続せず、チェーンや失効状態も調べません。

ほかに質問がありますか?

ASN.1パーサーで解析を始める

完全なBER/DER値を貼り付けるかローカルファイルを開き、上位の意味を決める前に各バイト範囲を確認してください。

処理はこのブラウザー内で完結します。