# ASN.1 / DER ビューア

PEM・Base64・16 進・DER ファイルを読み、ASN.1 の TLV（タグ・長さ・値）を木の形で表示します。OID は名前も出し、長さの誤りや DER でない符号化を指摘します。秘密鍵は値を伏せて警告し、入力は送信しません。

- URL: https://tools.itlibra.com/ja/asn1-viewer
- 端末内で処理・アップロードなし
- 最終更新: 2026-10-31

## 使い方

1. PEM（-----BEGIN ... -----）・Base64・16 進の文字列を入力欄に貼ります。DER ファイル（.der・.cer・.crt・.p7b など）は、ファイルを選ぶかドロップします。
2. 木の各行で、オフセット・タグ（クラス・構築か基本か・番号）・長さ・値を確認します。OID は登録名が付きます。
3. 「注意が必要な点」で、長さの誤り・余りのバイト・DER でない符号化（INTEGER の不要な先頭 0 など）を確かめます。
4. 秘密鍵が含まれていると値は伏せられ、警告が出ます。「値を表示」を押したときだけ画面に出ます。
5. 「結果をコピー」か「テキストで保存」で、木の内容を文字として取り出せます。

## こんなときに

- 証明書や鍵ファイルの中身を、項目の意味づけをせずに DER の構造のまま確かめたい
- OID（署名アルゴリズム・曲線・拡張）が何を指すかを調べたい
- DER として正しく書かれているか（不要な先頭 0・長さの形式）を確かめたい
- 鍵ファイルを開いてしまったが、値は見ずに構造だけ確かめたい

## できること

### タグと長さを一つずつ読む

タグのクラス・構築か基本か・番号（高い番号の複数バイト形式を含む）、短い長さ・長い長さ・不定長（BER）を読み、オフセットとともに木で示します。

### 型ごとに値を読む

INTEGER は 16 進と 10 進（512 バイトまで）、OID はドット表記と名前（よく使う約 60 件）、BIT STRING は未使用ビット数、UTCTime・GeneralizedTime は ISO 形式に直します。

### 入れ子の DER を開く

OCTET STRING や BIT STRING の中身が、最後まで DER（SEQUENCE・SET）として読めるときだけ入れ子として開きます。読めなければ生の値のまま表示します。

### DER の規則違反を指摘

長さが残りより長い、余りのバイトがある、INTEGER に不要な先頭 0 がある、長さが最短の形式でない、BOOLEAN が 00・FF 以外、などを注記します。

### 秘密鍵は値を伏せる

PKCS#8・RSAPrivateKey・ECPrivateKey・暗号化された秘密鍵の構造を検出すると、INTEGER と OCTET STRING の値を既定で伏せます。表示は利用者が押したときだけで、保存もしません。


## 対応形式

### 入力

- PEM（複数ブロック可）
- 16 進（空白・コロン可）
- Base64
- DER（.der・.cer・.crt・.p7b など）

### 出力

- 画面の木
- テキスト（コピー・保存）


## 対応状況

| 機能 | 対応 | 補足 |
| --- | --- | --- |
| DER・BER の TLV を木で表示（タグ・長さ・値・オフセット） | 対応 | — |
| OID の名前の表示 | 一部対応 | よく使う約 60 件だけ。一覧にない OID は数字のまま表示します |
| 証明書・CSR の項目を意味のある名前で一覧にすること | 非対応 | OID の名前だけを表示します。有効期限や SAN の一覧は「証明書・CSR・PEM Studio」を使ってください |
| 不正な符号化の指摘（DER の規則） | 一部対応 | 代表的な違反だけを指摘します。すべての違反を網羅するものではありません |
| 秘密鍵の値の表示・パスフレーズによる復号 | 非対応 | 秘密鍵の値は既定で伏せ、復号はしません |
| 署名の検証・証明書チェーンの確認 | 非対応 | 構造を読むだけで、署名や信頼は確認しません |
| PKCS#12（.p12 / .pfx）の中身 | 非対応 | パスワードで暗号化されているため読みません |
| DER への変換・保存 | 非対応 | 読んで表示するだけで、変換したファイルは作りません |
| サーバーへの送信 | 非対応 | 入力は端末の中だけで処理し、送信しません |

## 制限・注意事項

- 入力は 5 MB まで（16 進・Base64 のテキストは 1,200 万文字まで）。PEM のブロックは 100 件までです。
- 読むのは最大 2 万ノード・入れ子の深さ 64 までです。上限を超えた部分は読まず、注記します。
- 16 進の表示は各値の先頭 32 バイトまで。INTEGER の 10 進表示は 512 バイトまでです。
- 16 進と Base64 は文字の並びで判定します。16 進の文字だけで偶数長のテキストは 16 進として読みます。
- 秘密鍵の値（INTEGER・OCTET STRING）は画面に出しません。「値を表示」を押すと見えるようになります。

## プライバシーと安全性

貼り付けた内容とファイルの解析は、すべてお使いのブラウザの中で行われます。入力・ファイル名・解析結果がサーバーへ送られたり保存されたりすることはありません。秘密鍵の値は既定で伏せ、保存もしません。

## よくある質問

### ASN.1 をデコードするにはどうすればよいですか？

PEM（-----BEGIN ... -----）、Base64、16 進のテキストを入力欄に貼るか、DER ファイルを選びます。タグ・長さ・値が木の形で並びます。

### DER と BER の違いは何ですか？

BER は同じ内容を複数の書き方（不定長など）で符号化できる規則です。DER は BER の一部で、書き方を一通りに決めたものです（ITU-T X.690）。X.509 証明書は一般に DER で符号化されています。このツールは両方を読み、DER でない書き方を注記します。

### 証明書の有効期限や SAN を項目ごとに見たいときは？

このツールは構造をそのまま見るためのものです。有効期限・SAN・チェーンのような項目の意味づけは「証明書・CSR・PEM Studio」を使ってください。

### 秘密鍵の PEM を貼るとどうなりますか？

秘密鍵の構造（PKCS#8・RSA・EC など）を検出すると、INTEGER と OCTET STRING の値を伏せ、「この端末の中だけで処理し送信しません。共有しないでください」と警告します。

### 一覧にない OID はどうなりますか？

名前は付けず、数字（例: 1.2.3.4）のまま表示します。名前は、その OID を登録している団体の文書で確かめてください。

### SSH の公開鍵（ssh-ed25519 など）も読めますか？

読めません。SSH の公開鍵は ASN.1 ではありません。SSH の鍵は「SSH 鍵 確認」（ssh\_key\_studio）を使ってください。
