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 nghiêm ngặt, chuẩn tắc cho các cấu trúc dữ liệu ASN.1, cung cấp cách biểu diễn chính xác đến từng bit và không mơ hồ cho 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ý ở đầu tệp (mẫu byte nhận diện)
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):
Không có chữ ký cố định (mã hóa ASN.1 DER)BIỂU DIỄN ASCII: Không có chữ ký cố định
Tiêu chuẩn hóa: ITU-T Recommendation X.690
Thông số kỹ thuật
| Kiến trúc Container | Mã hóa nhị phân chuẩn tắc nghiêm ngặt các cấu trúc ASN.1 bằng bộ ba thẻ-độ dài-giá trị (TLV) |
| Nén | Dữ liệu nhị phân không nén |
| Thứ tự byte | Mã hóa ASN.1 big-endian |
| Không gian màu | Không áp dụng (luồng nhị phân mật mã) |
| Kênh & Cấu trúc | Khóa mật mã, chứng chỉ X.509, CRL và cấu trúc PKCS |
| Kích thước tối đa | Độ dài ASN.1 không giới hạn |
| Độ trong suốt | Cấu trúc dữ liệu ASN.1 nhị phân |
| Truyền phát & Tăng dần | Giải mã chuẩn tắc xác định trong một lượt |
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 ASCII được mã hóa Base64 | 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 dạng hỏng thường gặp và hướng dẫn khôi phục bằng mã 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.app để tạo lại các byte chuẩn hóa DER hợp lệ.
Phân tích bảo mật và các đường tấn công nhằm vào 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/thiếu 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.
Biện pháp phòng thủ tốt nhất: Sử dụng các trình phân tích cú pháp ASN.1 an toàn về bộ nhớ với các giới hạn độ sâu đệ quy tối đa được áp dụng.
Nguồn gốc lịch sử và 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 dòng 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ó.