נתוני DER בינאריים (.der)
ITU-T תקןכללי קידוד מובחנים (DER - Distinguished Encoding Rules) הוא תקן הקידוד הבינארי הקפדני והקאנוני עבור מבני נתונים מסוג ASN.1, המספק ייצוג מדויק וחד-משמעי ברמת הסיביות של אישורי אבטחה ומפתחות קריפטוגרפיים.
המר DER ל-PEM
ממיר חינמי מ-DER ל-PEM פועל בדפדפן. המר קבצים באופן מיידי במכשיר שלך.
בדיקה ומטא-דאטה
מערכות הפעלה ומנתחי קבצים מזהים קבצי DER על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת כותרת ברמת הבייט (Magic Bytes)
מערכות הפעלה ומנתחי קבצים מזהים קבצי DER על ידי בדיקת רצף הבייטים הבינארי הראשוני:
חתימת HEX (היסט 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 |
| סדר בתים (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 (נוכחי) | PEM | CRT | P12 |
|---|---|---|---|---|
| ייצוג נתונים | קידוד ASN.1 בינארי קפדני | טקסט ממוגן Base64 ASCII | Base64 PEM או DER בינארי | ארכיון PKCS #12 בינארי מוצפן |
| גיבוב דטרמיניסטי (Hashing) | זרם סיביות קאנוני ב-100% | תלוי ברווחים לבנים/כותרות | תלוי בעיצוב | מוצפן עם מלח (salt)/וקטור אתחול (IV) |
| גודל קובץ | הקטן ביותר (כ-33% קטן יותר מ-PEM) | גדול יותר עקב Base64 (+33%) | גדול יותר עקב Base64 (+33%) | גדול יותר עקב מעטפות הצפנה |
| תמיכה בג'אווה וחומרה | תקן מולד (Native) | דורש המרה בג'אווה | דורש המרה בג'אווה | נתמך כמחסן מפתחות |
מצבי שיחשות נפוצים ומדריך שחזור הקסדצימלי (Hex)
שגיאת OpenSSL: 'asn1 encoding routines:ASN1_get_object:header too long'.
גורם שורש: בתג (Tag-Length-Value - TLV) מושחת בכותרת רצף ה-ASN.1.
התאוששות: בצע המרה מחדש באמצעות כלי האישורים של File2File כדי לשחזר בתים קאנוניים חוקיים של DER.
ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)
מפענחי DER מנתחים תיאורי אורך שבהם גלישת חסר או גלישת יתר של מספרים שלמים עלולה להפעיל גלישות חוצץ בספריות קריפטוגרפיה מובנות.
ווקטורי תקיפה ידועים
- גלישת מספר שלם (Integer overflow) במהלך פענוח אורך בלתי מוגדר של ASN.1 מקונן עמוקות.
- קריאה מחוץ לגבולות (Out-of-bounds read) בעת ניתוח מחרוזות סיביות פגומות.
- מניעת שירות (DoS) באמצעות פצצות רקורסיה מקוננות של ASN.1.
השיטות המומלצות להגנה:
היסטוריה ואבני דרך
יתרונות מרכזיים
- קאנוני ודטרמיניסטי: מבטיח שנתונים זהים תמיד יפיקו בדיוק את אותו ה-hash הבינארי, דבר חיוני לחתימות דיגיטליות.
- קומפקטי יותר מ-PEM: חוסך כ-33% מנפח הנתונים על ידי השמטת קידוד Base64 וכותרות טקסטואליות.
- פורמט מקורי עבור מודולי אבטחת חמונה (HSM), כרטיסים חכמים ומחסני מפתחות של ג'אווה (Keystores).
מגבלות טכניות וחסרונות
- פורמט בינארי שלא ניתן לצפות בו, לערוך אותו או להעתיק-להדביק אותו בעורכי טקסט.
- פחות נפוץ בסביבות אחסון אתרים, המעדיפות באופן גורף קבצי PEM/CRT מבוססי טקסט.
- כללי קידוד קפדניים פירושם שכל סטיית ריפוד קטנה גורמת לדחיית הניתוח (parsing).
עובדות טכניות מעניינות
- DER הוא תת-קבוצה קפדנית של BER (כללי קידוד בסיסיים); בעוד ש-BER מאפשר מספר דרכים חוקיות לקודד ערך, DER מתיר דרך קאנוני אחת ויחידה.
- אם תקודד קובץ DER ב-Base64 ותעטוף אותו ב-'-----BEGIN CERTIFICATE-----', תקבל קובץ PEM סטנדרטי.
- אובייקט ה-KeyFactory של ג'אווה דורש שמפתחות ציבוריים ופרטיים מסוג RSA יסופקו בפורמט DER גולמי.
שאלות טכניות נפוצות
מה ההבדל בין DER ל-PEM?
DER הוא הפורמט הבינארי הגולמי של אישור או מפתח. PEM הוא פשוט אותו קובץ DER שהומר לטקסט Base64 קריא עם כותרות '-----BEGIN...-----'.
איך אני יכול להמיר DER ל-PEM?
העלה את קובץ ה-.der שלך ל-File2File.app כדי להמיר אותו לאישור טקסט תקני מסוג .pem בשנייה אחת ישירות בדפדפן שלך.
למה Java משתמשת במפתחות DER?
ארכיטקטורת ההצפנה של Java (JCA) משתמשת במערכי בייט מסוג PKCS#8 ו-X.509 מקודדי DER עבור מפרטי המפתחות המקוריים שלה.