ไบนารี DER (.der)

ITU-T มาตรฐาน

Distinguished Encoding Rules (DER) เป็นมาตรฐานการเข้ารหัสไบนารีที่เข้มงวดและเป็นมาตรฐานสากลสำหรับโครงสร้างข้อมูล ASN.1 ซึ่งช่วยให้มั่นใจได้ว่าการแสดงผลใบรับรองความปลอดภัยและคีย์เข้ารหัสมีความแม่นยำระดับบิตโดยไม่มีความคลุมเครือ

แปลง DER เป็น PEM

ตัวแปลงจาก DER เป็น PEM ฟรีในเบราว์เซอร์ แปลงไฟล์ได้ทันทีบนอุปกรณ์ของคุณ

ตรวจสอบไฟล์และข้อมูลเมตา

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ DER โดยการตรวจสอบลำดับไบต์ไบนารีส่วนต้น:

เลือกหรือวางไฟล์ที่นี่

เป็นส่วนตัว - ไฟล์จะไม่ออกจากอุปกรณ์ของคุณ

หรือวาง Ctrl+V
รับประกันความเป็นส่วนตัวโดยไม่มีการส่งข้อมูลผ่านเครือข่าย: อัปโหลด 0 ไบต์ไปยังเซิร์ฟเวอร์ภายนอก การประมวลผลทั้งหมดเกิดขึ้นภายในแซนด์บ็อกซ์ของเบราว์เซอร์ของคุณ

ลายเซ็นส่วนหัวระดับไบต์

ระบบปฏิบัติการและเครื่องมือวิเคราะห์ไฟล์จะระบุไฟล์ 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 (ปัจจุบัน)PEMCRTP12
การแสดงข้อมูลการเข้ารหัส ASN.1 ไบนารีที่เข้มงวดข้อความ ASCII ที่เข้ารหัส Base64Base64 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 ที่ปลอดภัยต่อหน่วยความจำพร้อมบังคับใช้ขีดจำกัดความลึกของการเรียกซ้ำสูงสุด

ประวัติความเป็นมาและเหตุการณ์สำคัญ

2021การแก้ไขมาตรฐาน ITU-T X.690 ทำให้ข้อกำหนด ASN.1 DER มีความเสถียรบนโทเค็นฮาร์ดแวร์สมัยใหม่
1997Java Cryptography Architecture (JCA) นำ DER มาใช้เข้ารหัสคีย์ไบนารี (X509EncodedKeySpec)
1988กำหนดมาตรฐานภายใต้ข้อเสนอแนะ CCITT / ITU-T X.690 เป็นชุดย่อยที่เข้มงวดของ Basic Encoding Rules (BER)

ข้อได้เปรียบและจุดเด่นสำคัญ

  • เป็นรูปแบบมาตรฐานที่กำหนดแน่นอนและให้ผลซ้ำได้: ข้อมูลเดียวกันจะสร้างแฮชไบนารีที่ตรงกันทุกประการเสมอ ซึ่งจำเป็นต่อการสร้างลายเซ็นดิจิทัล
  • มีขนาดกะทัดรัดกว่า 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 สำหรับข้อกำหนดคีย์มาตรฐานของระบบ