ไบนารี DER (.der)
ITU-T มาตรฐานDistinguished Encoding Rules (DER) เป็นมาตรฐานการเข้ารหัสไบนารีที่เข้มงวดและเป็นมาตรฐานสากลสำหรับโครงสร้างข้อมูล ASN.1 ซึ่งช่วยให้มั่นใจได้ว่าการแสดงผลใบรับรองความปลอดภัยและคีย์เข้ารหัสมีความแม่นยำระดับบิตโดยไม่มีความคลุมเครือ
แปลง DER เป็น PEM
ตัวแปลงจาก DER เป็น PEM ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ
ตรวจสอบไฟล์และข้อมูลเมตา
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ DER โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็นส่วนหัวระดับไบต์
ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ DER โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:
ลายเซ็น HEX (OFFSET 0):
ไม่มีลายเซ็นสากล (เข้ารหัสตามรูปแบบ ASN.1 DER)การแสดงผลรูปแบบ ASCII: ไม่มีลายเซ็นตายตัว
มาตรฐาน: ITU-T Recommendation X.690
ข้อมูลจำเพาะทางเทคนิค
| สถาปัตยกรรมคอนเทนเนอร์ | การเข้ารหัสไบนารีแบบ Canonical ที่เข้มงวดของโครงสร้าง ASN.1 โดยใช้ชุดแท็ก-ความยาว-ค่า (TLV) |
| การบีบอัด | ข้อมูลไบนารีแบบไม่บีบอัด |
| การจัดลำดับไบต์ | การเข้ารหัส ASN.1 แบบ Big-Endian |
| พื้นที่สี | ไม่เกี่ยวข้อง (สตรีมไบนารีคริปโตกราฟี) |
| ช่องสัญญาณและโครงสร้าง | กุญแจคริปโตกราฟี, ใบรับรอง X.509, CRL และโครงสร้าง PKCS |
| ขนาดสูงสุด | ความยาว ASN.1 ไม่จำกัด |
| ความโปร่งใส | โครงสร้างข้อมูล ASN.1 แบบไบนารี |
| การสตรีมและแบบโปรเกรสซีฟ | ถอดรหัส Canonical แบบกำหนดผลแน่นอนในรอบเดียว |
ตารางเปรียบเทียบทางเทคนิค: DER กับคู่แข่ง
| คุณลักษณะทางเทคนิค | DER (ปัจจุบัน) | PEM | CRT | P12 |
|---|---|---|---|---|
| การแสดงข้อมูล | การเข้ารหัส ASN.1 ไบนารีที่เข้มงวด | ข้อความ ASCII ที่เข้ารหัส Base64 | Base64 PEM หรือ DER ไบนารี | คลังเก็บไบนารีเข้ารหัส PKCS #12 |
| การสร้างแฮชที่ให้ผลแน่นอน | สตรีมบิตที่เป็นมาตรฐาน 100% | ขึ้นอยู่กับช่องว่าง/แบนเนอร์ | ขึ้นอยู่กับการจัดรูปแบบ | เข้ารหัสด้วยเกลือ/IV |
| ขนาดไฟล์ | เล็กที่สุด (เล็กกว่า PEM ประมาณ 33%) | ใหญ่ขึ้นเนื่องจาก Base64 (+33%) | ใหญ่ขึ้นเนื่องจาก Base64 (+33%) | ใหญ่ขึ้นเนื่องจากส่วนห่อหุ้มการเข้ารหัส |
| การสนับสนุน Java และฮาร์ดแวร์ | รูปแบบมาตรฐานโดยตรง | ต้องมีการแปลงใน Java | ต้องมีการแปลงใน Java | รองรับเป็นคลังคีย์ |
รูปแบบความเสียหายทั่วไปและคู่มือการกู้คืน Hex
ข้อผิดพลาด OpenSSL: 'asn1 encoding routines:ASN1_get_object:header too long'
สาเหตุหลัก: ไบต์ Tag-Length-Value (TLV) เสียหายในส่วนหัวของลำดับ ASN.1
การกู้คืน: แปลงไฟล์ด้วยเครื่องมือใบรับรอง File2File.app เพื่อสร้างไบต์ DER มาตรฐานที่ถูกต้องขึ้นใหม่
การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์
ตัวถอดรหัส DER แยกวิเคราะห์ตัวระบุความยาว ซึ่งการคำนวณจำนวนเต็มต่ำกว่าหรือเกินขอบเขตอาจทำให้เกิดบัฟเฟอร์ล้นในไลบรารีเข้ารหัสบนระบบ
เวกเตอร์การโจมตีที่ทราบ
- จำนวนเต็มล้นในระหว่างการถอดรหัสความยาวแบบไม่ระบุขนาดของ ASN.1 ที่ซ้อนกันลึก
- การอ่านนอกขอบเขตเมื่อแยกวิเคราะห์สตริงบิตที่ผิดรูป
- การปฏิเสธการให้บริการผ่านข้อมูล ASN.1 ที่ซ้อนลึกจนทำให้เกิดการเรียกซ้ำมากเกินไป
แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน: ใช้ตัวแยกวิเคราะห์ ASN.1 ที่ปลอดภัยต่อหน่วยความจำพร้อมบังคับใช้ขีดจำกัดความลึกของการเรียกซ้ำสูงสุด
ประวัติความเป็นมาและเหตุการณ์สำคัญ
ข้อได้เปรียบและจุดเด่นสำคัญ
- เป็นรูปแบบมาตรฐานที่กำหนดแน่นอนและให้ผลซ้ำได้: ข้อมูลเดียวกันจะสร้างแฮชไบนารีที่ตรงกันทุกประการเสมอ ซึ่งจำเป็นต่อการสร้างลายเซ็นดิจิทัล
- มีขนาดกะทัดรัดกว่า PEM: ลดขนาดส่วนเกินได้ประมาณ 33% โดยการละเว้นการเข้ารหัส Base64 และแบนเนอร์ ASCII
- เป็นรูปแบบดั้งเดิมของโมดูลความปลอดภัยฮาร์ดแวร์ (HSM) สมาร์ทการ์ด และ Java keystore
ข้อจำกัดทางเทคนิคและข้อควรพิจารณา
- รูปแบบไบนารีไม่สามารถดู แก้ไข หรือคัดลอกและวางในโปรแกรมแก้ไขข้อความได้
- พบได้น้อยกว่าในสภาพแวดล้อมเว็บโฮสติ้ง ซึ่งส่วนใหญ่นิยมไฟล์ PEM/CRT แบบข้อความ
- กฎการเข้ารหัสที่เข้มงวดทำให้ความคลาดเคลื่อนเล็กน้อยของข้อมูลเติมเต็ม (padding) ก็ทำให้โปรแกรมปฏิเสธการแยกวิเคราะห์ได้
เกร็ดความรู้ทางเทคนิคที่น่าสนใจ
- DER เป็นชุดย่อยที่เข้มงวดของ BER (Basic Encoding Rules): BER อนุญาตให้เข้ารหัสค่าเดียวกันได้หลายวิธี แต่ DER กำหนดวิธีมาตรฐานไว้เพียงวิธีเดียว
- หากเข้ารหัสไฟล์ DER ด้วย Base64 แล้วใส่เครื่องหมาย "-----BEGIN CERTIFICATE-----" ครอบไว้ ก็จะได้ไฟล์ PEM มาตรฐาน
- KeyFactory ของ Java กำหนดให้ต้องระบุคีย์สาธารณะและคีย์ส่วนตัวของ RSA ในรูปแบบ DER ดั้งเดิม
คำถามทางเทคนิคที่พบบ่อย
ความแตกต่างระหว่าง DER และ PEM คืออะไร
DER คือรูปแบบไบนารีดิบของใบรับรองหรือคีย์ ส่วน PEM เป็นเพียงไฟล์ DER เดียวกันที่แปลงเป็นข้อความ Base64 ที่อ่านได้พร้อมแบนเนอร์ '-----BEGIN...-----'
แปลง DER เป็น PEM ได้อย่างไร?
อัปโหลดไฟล์ .der ของคุณไปที่ File2File.app เพื่อแปลงเป็นใบรับรองข้อความ .pem มาตรฐานในหนึ่งวินาทีบนเบราว์เซอร์ของคุณ
เหตุใด Java จึงใช้คีย์ DER
Java Cryptography Architecture (JCA) ใช้อาร์เรย์ไบต์ PKCS#8 และ X.509 ที่เข้ารหัสแบบ DER สำหรับข้อกำหนดคีย์มาตรฐานของระบบ