ไบนารี DER (.der)

ITU-T มาตรฐาน

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

แปลง DER เป็น PEM

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

ตรวจสอบและดู Metadata

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

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

การแปลงไฟล์แบบส่วนตัว 100% ในเบราว์เซอร์ - ไฟล์จะไม่ rời ออกจากอุปกรณ์ของคุณ

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

ลายเซ็นส่วนหัวในระดับไบต์ (Magic Bytes)

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

ลายเซ็น HEX (OFFSET 0):

30 82

การแสดงผลรูปแบบ ASCII: 0\x82

มาตรฐาน: ITU-T Recommendation X.690

ข้อมูลจำเพาะทางเทคนิค

สถาปัตยกรรมคอนเทนเนอร์Strict canonical binary encoding of ASN.1 structures using Tag-Length-Value (TLV) triples
การบีบอัดUncompressed binary data
การจัดลำดับไบต์ (Byte Endianness)Big-Endian ASN.1 encoding
พื้นที่สีN/A (Cryptographic Binary Stream)
ช่องสัญญาณและโครงสร้างCryptographic keys, X.509 certificates, CRLs, and PKCS structures
ขนาดสูงสุดUnbounded ASN.1 length
ความโปร่งใสBinary ASN.1 data structure
การสตรีมและแบบโปรเกรสซีฟDeterministic single-pass canonical decoding

ตารางเปรียบเทียบทางเทคนิค: DER กับคู่แข่ง

คุณลักษณะทางเทคนิคDER (ปัจจุบัน)PEMCRTP12
การแสดงข้อมูลการเข้ารหัส ASN.1 ไบนารีที่เข้มงวดข้อความที่หุ้มด้วย Base64 ASCIIBase64 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 เพื่อสร้างไบต์มาตรฐาน DER ที่ถูกต้องขึ้นใหม่

การวิเคราะห์ความปลอดภัยและเวกเตอร์การโจมตีตัวแยกวิเคราะห์

ตัวถอดรหัส DER แยกวิเคราะห์ตัวระบุความยาวซึ่งการ underflow/overflow ของจำนวนเต็มอาจทริกเกอร์บัฟเฟอร์โอเวอร์ฟลอว์ในไลบรารีการเข้ารหัสลับดั้งเดิม

เวกเตอร์การโจมตีที่ทราบ

  • จำนวนเต็มล้นในระหว่างการถอดรหัสความยาวที่ไม่แน่นอนของ ASN.1 ที่ซ้อนกันลึก
  • การอ่านนอกขอบเขตเมื่อแยกวิเคราะห์สตริงบิตที่ผิดรูป
  • การปฏิเสธการให้บริการผ่านระเบิดการเรียกซ้ำ ASN.1 ที่ซ้อนกัน

แนวทางปฏิบัติที่ดีที่สุดในการป้องกัน:

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

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

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

  • เป็นมาตรฐานและจำแนกได้แน่นอน: รับประกันว่าข้อมูลที่เหมือนกันจะสร้างแฮชไบนารีที่ตรงกันทุกประการเสมอ ซึ่งจำเป็นสำหรับลายเซ็นดิจิทัล
  • มีขนาดกะทัดรัดกว่า PEM: ประหยัดค่าใช้จ่ายได้ประมาณ 33% โดยการละเว้นการเข้ารหัส Base64 และแบนเนอร์ ASCII
  • เป็นรูปแบบดั้งเดิมสำหรับโมดูลความปลอดภัยฮาร์ดแวร์ (HSM), สมาร์ทการ์ด และ Java keystore

ข้อจำกัดทางเทคนิคและข้อควรพิจารณา

  • รูปแบบไบนารีไม่สามารถดู แก้ไข หรือคัดลอกและวางในโปรแกรมแก้ไขข้อความได้
  • พบได้น้อยกว่าในสภาพแวดล้อมการโฮสต์เว็บ ซึ่งส่วนใหญ่จะนิยมไฟล์ PEM/CRT แบบข้อความมากกว่า
  • กฎการเข้ารหัสที่เข้มงวดหมายความว่าความคลาดเคลื่อนในการเว้นวรรคเพียงเล็กน้อยอาจทำให้การแยกวิเคราะห์ถูกปฏิเสธ

เกร็ดความรู้ทางเทคนิคที่น่าสนใจ

  • 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 (JCA) ใช้ชุดอาร์เรย์ไบต์ PKCS#8 และ X.509 ที่เข้ารหัสแบบ DER สำหรับข้อมูลจำเพาะของคีย์ดั้งเดิม