Nhị phân DER (.der)

ITU-T Tiêu chuẩn

Distinguished Encoding Rules (DER) là tiêu chuẩn mã hóa nhị phân chuẩn hóa, nghiêm ngặt cho các cấu trúc dữ liệu ASN.1, cung cấp biểu diễn chính xác đến từng bit, không mơ hồ cho các chứng chỉ bảo mật và khóa mật mã.

Chuyển đổi DER sang PEM

Trình chuyển đổi từ DER sang PEM miễn phí trên trình duyệt. Chuyển đổi tệp ngay lập tức trên thiết bị của bạn.

Kiểm tra & Siêu dữ liệu

Các hệ điều hành và trình phân tích tệp nhận dạng tệp DER bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

Chọn hoặc thả tệp vào đây

Chuyển đổi 100% riêng tư trong trình duyệt - tệp không bao giờ rời khỏi thiết bị của bạn

hoặc dán Ctrl+V
Cam kết bảo mật không truyền tải qua mạng: 0 byte được tải lên máy chủ bên ngoài. Toàn bộ quá trình xử lý diễn ra cục bộ trong hộp cát trình duyệt của bạn.

Chữ ký tiêu đề ở cấp độ Byte (Magic Bytes)

Các hệ điều hành và trình phân tích tệp nhận dạng tệp DER bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

CHỮ KÝ HEX (OFFSET 0):

30 82

BIỂU DIỄN ASCII: 0\x82

Tiêu chuẩn hóa: ITU-T Recommendation X.690

Thông số kỹ thuật

Kiến trúc ContainerStrict canonical binary encoding of ASN.1 structures using Tag-Length-Value (TLV) triples
NénUncompressed binary data
Thứ tự byte EndiannessBig-Endian ASN.1 encoding
Không gian màuN/A (Cryptographic Binary Stream)
Kênh & Cấu trúcCryptographic keys, X.509 certificates, CRLs, and PKCS structures
Kích thước tối đaUnbounded ASN.1 length
Độ trong suốtBinary ASN.1 data structure
Truyền phát & Tăng dầnDeterministic single-pass canonical decoding

Ma trận so sánh kỹ thuật: DER so với các đối thủ

Thuộc tính kỹ thuậtDER (Hiện tại)PEMCRTP12
Biểu diễn dữ liệuMã hóa ASN.1 nhị phân nghiêm ngặtVăn bản bọc giáp Base64 ASCIIBase64 PEM hoặc DER nhị phânLưu trữ PKCS #12 nhị phân được mã hóa
Băm tất địnhLuồng bit chuẩn hóa 100%Phụ thuộc vào khoảng trắng/tiêu đềPhụ thuộc vào định dạngĐược mã hóa với salt/IV
Kích thước tệpNhỏ nhất (nhỏ hơn ~33% so với PEM)Lớn hơn do Base64 (+33%)Lớn hơn do Base64 (+33%)Lớn hơn do các lớp bọc mã hóa
Hỗ trợ Java & Phần cứngTiêu chuẩn gốcYêu cầu chuyển đổi trong JavaYêu cầu chuyển đổi trong JavaĐược hỗ trợ dưới dạng kho khóa

Các chế độ hỏng hóc phổ biến & Hướng dẫn khôi phục Hex

Lỗi OpenSSL: 'asn1 encoding routines:ASN1_get_object:header too long'.

Nguyên nhân gốc rễ: Byte Tag-Length-Value (TLV) bị hỏng trong tiêu đề chuỗi ASN.1.

Khắc phục: Chuyển mã bằng Công cụ Chứng chỉ File2File để tạo lại các byte chuẩn hóa DER hợp lệ.

Phân tích bảo mật & Các vectơ tấn công bộ phân tích cú pháp

Các bộ giải mã DER phân tích cú pháp các mô tả độ dài nơi hiện tượng tràn/dưới hạn số nguyên có thể kích hoạt tràn bộ đệm trong các thư viện mật mã gốc.

Các Véc-tơ Tấn công Đã biết

  • Tràn số nguyên trong quá trình giải mã độ dài bất định ASN.1 lồng nhau sâu.
  • Đọc ngoài giới hạn khi phân tích cú pháp chuỗi bit bị lỗi.
  • Tấn công từ chối dịch vụ thông qua bom đệ quy ASN.1 lồng nhau.

Thực tiễn Tốt nhất về Phòng thủ:

Nguồn gốc lịch sử & Các cột mốc

2021Bản sửa đổi ITU-T X.690 ổn định hóa các thông số kỹ thuật ASN.1 DER trên các token phần cứng hiện đại.
1997Được áp dụng bởi Java Cryptography Architecture (JCA) để mã hóa khóa nhị phân (X509EncodedKeySpec).
1988Được chuẩn hóa theo Khuyến nghị CCITT / ITU-T X.690 như một tập con nghiêm ngặt của Basic Encoding Rules (BER).

Ưu điểm & Lợi ích chính

  • Tính chuẩn hóa và tất định: đảm bảo rằng dữ liệu giống hệt nhau luôn tạo ra chính xác cùng một mã băm nhị phân, rất cần thiết cho chữ ký số.
  • Nhỏ gọn hơn PEM: tiết kiệm khoảng 33% dung lượng thừa bằng cách lược bỏ mã hóa Base64 và các tiêu đề ASCII.
  • Định dạng gốc cho các mô-đun bảo mật phần cứng (HSM), thẻ thông minh và kho khóa Java.

Hạn chế & Nhược điểm kỹ thuật

  • Định dạng nhị phân không thể xem, chỉnh sửa hoặc sao chép-dán trong các trình soạn thảo văn bản.
  • Ít phổ biến hơn trong môi trường lưu trữ web, nơi phần lớn chuộng các tệp PEM/CRT dựa trên văn bản.
  • Các quy tắc mã hóa nghiêm ngặt có nghĩa là bất kỳ sai sót đệm nhỏ nào cũng dẫn đến việc từ chối phân tích cú pháp.

Thông tin kỹ thuật thú vị

  • DER là một tập con nghiêm ngặt của BER (Basic Encoding Rules); trong khi BER cho phép nhiều cách hợp lệ để mã hóa một giá trị, DER chỉ cho phép đúng một cách chuẩn hóa.
  • Nếu bạn mã hóa Base64 một tệp DER và bọc nó trong '-----BEGIN CERTIFICATE-----', bạn sẽ nhận được một tệp PEM chuẩn.
  • KeyFactory của Java yêu cầu các khóa công khai và riêng tư RSA phải được cung cấp ở định dạng DER thô.

Các câu hỏi kỹ thuật thường gặp

Sự khác biệt giữa DER và PEM là gì?

DER là định dạng nhị phân thô của chứng chỉ hoặc khóa. PEM đơn giản là cùng một tệp DER được chuyển đổi thành văn bản Base64 có thể đọc được với các tiêu đề '-----BEGIN...-----'.

Làm cách nào để chuyển đổi DER sang PEM?

Tải tệp .der của bạn lên File2File.app để chuyển đổi tệp thành chứng chỉ văn bản .pem tiêu chuẩn trong một giây trực tiếp trong trình duyệt của bạn.

Tại sao Java sử dụng các khóa DER?

Kiến trúc Mật mã Java (Java Cryptography Architecture - JCA) sử dụng các mảng byte PKCS#8 và X.509 được mã hóa DER cho các thông số kỹ thuật khóa gốc của nó.