DERバイナリ (.der)
ITU-T勧告 標準Distinguished Encoding Rules (DER) は、ASN.1データ構造のための厳格で正準なバイナリエンコーディング規格です。セキュリティ証明書や暗号鍵を曖昧さなく、ビット単位で正確に表現できます。
DER を PEM に変換
無料のブラウザ内 DER から PEM へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してDERファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してDERファイルを識別します:
16進数シグネチャ(オフセット0):
共通のシグネチャなし(ASN.1 DERエンコーディング)ASCII表現: 固定シグネチャなし
標準化: ITU-T勧告 X.690
技術仕様
| コンテナアーキテクチャ | Tag-Length-Value(TLV)三つ組を用いたASN.1構造の厳密な正規バイナリエンコード |
| 圧縮 | 非圧縮バイナリデータ |
| バイトエンディアン | ビッグエンディアンのASN.1エンコード |
| 色空間 | 該当なし(暗号バイナリストリーム) |
| チャンネルと構造 | 暗号鍵、X.509証明書、CRL、PKCS構造 |
| 最大寸法 | ASN.1データ長に上限なし |
| 透過性 | バイナリASN.1データ構造 |
| ストリーミングとプログレッシブ | 決定的な1回の正規デコード |
技術比較表:DERと競合製品
| 技術属性 | DER (現在) | PEM | CRT | P12 |
|---|---|---|---|---|
| データ表現 | 厳格なバイナリ ASN.1 エンコーディング | Base64 ASCIIアーマードテキスト | Base64 PEM またはバイナリ DER | 暗号化されたバイナリ PKCS #12 アーカイブ |
| 決定論的ハッシュ | 100% カノニカルなビットストリーム | 空白/バナーに依存 | フォーマットに依存 | ソルト/IVで暗号化 |
| ファイルサイズ | 最小(PEMより約33%小さい) | Base64のためより大きい (+33%) | Base64のためより大きい (+33%) | 暗号化ラッパーのためより大きい |
| Javaおよびハードウェアのサポート | ネイティブ標準 | Javaでの変換が必要 | Javaでの変換が必要 | キーストアとしてサポート |
一般的な破損モードと16進数リカバリガイド
OpenSSLエラー: 'asn1 encoding routines:ASN1_get_object:header too long'。
根本原因: ASN.1シーケンスヘッダー内の破損したTag-Length-Value (TLV) バイト。
復旧: File2File.app証明書ツールを使用してトランスコードし、有効なDERカノニカルバイトを再構築します。
セキュリティ分析とパーサー攻撃ベクトル
DERデコーダーは、整数アンダーフロー/オーバーフローがネイティブ暗号ライブラリでバッファオーバーフローを引き起こす可能性のある長さを記述するフィールドを解析します。
既知の攻撃ベクター
- 深くネストされたASN.1の不定長デコード中の整数オーバーフロー。
- 不正なビット文字列の解析時の範囲外読み取り。
- ネストされたASN.1再帰ボムによるサービス拒否(DoS)。
防御的ベストプラクティス: 強制的な最大再帰深度制限を備えたメモリ安全なASN.1パーサーを使用します。
歴史的背景とマイルストーン
主なメリット
- 正準かつ決定論的な形式で、同一のデータから常にまったく同じバイナリハッシュが生成されるため、デジタル署名に不可欠です。
- PEMよりもコンパクト:Base64エンコーディングとASCIIバナーを省略することで、約33%のオーバーヘッドを削減します。
- ハードウェアセキュリティモジュール (HSM)、スマートカード、Javaキーストアのネイティブフォーマット。
技術的な制限とデメリット
- バイナリフォーマットのため、テキストエディタでの閲覧、編集、コピー&ペーストができません。
- テキストベースのPEM/CRTファイルを圧倒的に好むWebホスティング環境ではあまり一般的ではありません。
- 厳格なエンコーディング規則のため、わずかなパディングの不一致でもパースが拒否されます。
興味深い技術トリビア
- DERはBER(Basic Encoding Rules)の厳格なサブセットです。BERでは値をエンコードする複数の有効な方法が許可されますが、DERでは正確に1つの標準的な方法のみが許可されます。
- DERファイルをBase64エンコードし、「-----BEGIN CERTIFICATE-----」で囲むと、標準的なPEMファイルになります。
- JavaのKeyFactoryでは、RSA公開鍵と秘密鍵を生のDERフォーマットで提供する必要があります。
よくある技術的な質問
DER と PEM の違いは何ですか?
DER は、証明書またはキーの生バイナリ形式です。PEM は、単に同じ DER ファイルを読み取り可能な Base64 テキストに変換し、「-----BEGIN...-----」のバナーを付けたものです。
DER を PEM に変換するにはどうすればよいですか?
.der ファイルを File2File.app にアップロードすると、ブラウザ上で直接1秒で標準の .pem テキスト証明書に変換できます。
Java が DER キーを使用するのはなぜですか?
Java 暗号化アーキテクチャ(JCA)は、ネイティブのキー仕様に DER エンコードされた PKCS#8 および X.509 バイト配列を使用するためです。