Nhị phân DER (.der)
ITU-T Tiêu chuẩnDistinguished 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ữ 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 82BIỂ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 Container | Strict canonical binary encoding of ASN.1 structures using Tag-Length-Value (TLV) triples |
| Nén | Uncompressed binary data |
| Thứ tự byte Endianness | Big-Endian ASN.1 encoding |
| Không gian màu | N/A (Cryptographic Binary Stream) |
| Kênh & Cấu trúc | Cryptographic keys, X.509 certificates, CRLs, and PKCS structures |
| Kích thước tối đa | Unbounded ASN.1 length |
| Độ trong suốt | Binary ASN.1 data structure |
| Truyền phát & Tăng dần | Deterministic 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ật | DER (Hiện tại) | PEM | CRT | P12 |
|---|---|---|---|---|
| Biểu diễn dữ liệu | Mã hóa ASN.1 nhị phân nghiêm ngặt | Văn bản bọc giáp Base64 ASCII | Base64 PEM hoặc DER nhị phân | Lưu trữ PKCS #12 nhị phân được mã hóa |
| Băm tất định | Luồ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ệp | Nhỏ 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ứng | Tiêu chuẩn gốc | Yêu cầu chuyển đổi trong Java | Yê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
Ư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ó.