محطة عمل تشفير تستند إلى معايير المفتاح العمومي. وظائف لتحليل وعرض هيكل ASN1

لم يكن العمل الرئيسي عند إنشاء الأداة المساعدة cryptoarmpkcs هو تطوير التعليمات البرمجية أو الواجهة الرسومية ، ولكن العمل مع بنيات ASN1 . في هذه الهياكل يتم تخزين شهادات x509v3 وتوقيعات المستندات الإلكترونية (PKCS # 7 و CMS) وطلبات الشهادة (PKCS # 10 و CSR) والمفاتيح العامة والخاصة وحاويات PKCS # 12 / PFX الآمنة وقوائم شهادات CRL الملغاة وختم الوقت للتوقيعات الإلكترونية ، طلبات واستجابات OCSP وما إلى ذلك. كان عليه أن يبحث باستمرار من خلال الهياكل الموجودة لفهم كيف فعل الآخرون ذلك ، وأنظر إلى هياكل AN1 التي جمعناها للتو. العملية واضحة. ولكن نظرًا لأنني أعمل على نظام Linux (أصبح الآن Mageia ، وأعد أيضًا رمزًا لنظام Windows على Linux) ، فإن الأدوات المساعدة opensl و derdump من حزمة NSS كانت في متناول اليد من الأدوات المتاحة لتحليل هياكل ASN1. شخصيا ، كانت تفضيلاتي إلى جانب derdump. كانت هي التي أصبحت النموذج الأولي للأداة المساعدة derdump.tcl / tclderdump التي يتم النظر فيها هنا لعرض هياكل ASN1. وإذا قارنت إخراج الأداة المساعدة derdump من حزمة NSS والأداة المساعدة derdump.tcl ، فستجد بالكاد أي اختلافات:



الاختلافات تتعلق بأسماء OID. الأداة المساعدة لديها بناء الجملة التالي:

$dertcl.tcl < > <  | stdout> <1 | 0> <der | pem | hex> 

حيث

  • <ملف الإدخال> - يشير إلى المسار إلى الملف مع بنية ASN1 ؛
  • <ملف الإخراج> - يشير إلى الملف حيث سيتم حفظ نتيجة التحليل: إذا تم تحديد stdout كملف الإخراج ، سيتم إرسال النتيجة إلى الإخراج القياسي ؛
  • تشير المعلمة الثالثة إلى أنه من الضروري عرض معلومات كاملة (1) ؛
  • تعيّن المعلمة الرابعة تنسيق ملف الإدخال ، حيث يشير der إلى ملف ثنائي ، يشير pem إلى أن الملف يحتوي على بيانات مشفرة base64 بعنوان "----- BEGIN ... -" والمقطورة "----- END ... -" كما هو معتاد في openssl ، وأخيرا يقول hex أن الملف يحتوي على كود سداسي عشري. علاوة على ذلك ، قد تحتوي على أحرف خاصة (\ r ، \ n ، \ t) ، ومسافات وأحرف "." و ":". من أين جاءت رموز النقطة والقولون ستصبح واضحة أدناه.

شكل عرافة كان حيويا بالنسبة لي. في الواقع ، من أجل تحليل أي قطعة من الملف الذي تم تحليله ، كان عليك ترجمته إلى نموذج ثنائي (der-encoding) وتمريره مرة أخرى عبر الأداة المساعدة. جعل تنسيق عرافة الحياة أسهل بكثير.

بطبيعة الحال ، فإن استخدام شفرة tcl الخالصة (وكذلك استخدام أي شفرة نصية أخرى ، على سبيل المثال بيثون) ليست مريحة تمامًا. لذلك ، تم تأطير الأدوات المساعدة في توزيعات tclderdump لأنظمة Linux و Windows و OS X. وهذه التوزيعات مكتفية ذاتيا: تقوم بالتنزيل والتشغيل.

ولكن مرة أخرى إلى القدرة على عرض الهياكل ASN1 المخزنة في ست عشري. بالإضافة إلى الأدوات المساعدة المذكورة أعلاه لعرض هياكل ASN1 ، هناك أيضًا أداة pyderasn جيدة مكتوبة في Python ، والتي تستخدم أحرف نقطتين ونقطتين في الإخراج ، وقد تقرر أنه يمكن أيضًا أن يكونا موجودين في الشفرة السداسية عشرية. التالي هو نتيجة تحليل نفس شهادة x509 v.3 مع derdump.tcl وأدوات مساعدة pederasn:



لكنني أردت أكثر ، وهي واجهة رسومية والقدرة على تحليل الكتل الداخلية أثناء الطيران. تقرر إضافة هذه الوظيفة إلى الأداة المساعدة cryptoarmpkcs ، خاصة وأن لديها الكثير لتطويره ، على سبيل المثال ، تشفير المستندات في شهادة المستلم. وهنا مرة أخرى لا يمكنك الاستغناء عن المشاهد ASN1- الهياكل.

لهذه الأغراض ، تقرر إعادة توجيه زر الوظيفة "رمز المعلومات". قمنا بإعادة توجيه الزر وقمنا بتعيين الوظيفة الجديدة "View ASN1 structure" إليه ، ولا يزال بإمكانك الحصول على معلومات حول الرمز المميز المتصل عن طريق تحريك المؤشر فوق الاسم المميز إلى يمين علامة "Choose token / البطاقة الذكية":



كل شيء بسيط هنا. نختار الملف ذو بنية ASN1 ، ونشير بالتنسيق ، ونقرر ما إذا كنا بحاجة إلى تفاصيل إضافية وانقر فوق الزر "عرض ملف ASN1":



بمقارنة لقطات الشاشة اليمنى واليسرى ، يمكنك أن ترى شخصياً المعلومات الإضافية التي يمكنك الحصول عليها عند الضغط على زر "معلومات إضافية". لحفظ الهيكل في نموذج مفكك ، فقط انقر فوق الزر "حفظ".

إذا كنت تضغط باستمرار على زر الماوس الأيسر ، فيمكنك تحديد كتلة الاهتمام بالنسبة لنا. وإذا كان الآن على الكتلة المحددة ، فاضغط على زر الماوس الأيمن ، ستظهر قائمة بالعناصر التالية:

  • نسخ إلى الحافظة ؛
  • عرض الكتلة المميزة.

وإذا حددت عنصر "عرض الكتلة المحددة" ، فستظهر لك نافذة بها الكتلة التي تم تحليلها:



إذا قمت بالنقر فوق الزر "نسخ إلى الحافظة" ، فسيتم نسخ الكتلة المحددة إلى الحافظة. يمكن عرض الحافظة بالنقر فوق الزر "ASN1-clipboard". يمكن للمستخدم وضع البيانات في الحافظة بأمواله الخاصة ، ثم عرضها هنا.

ونظرًا لأن الأداة يتم تحديثها غالبًا ، فقد تمت إضافة إمكانية الحصول على إصدارات جديدة من الأداة مباشرةً. للقيام بذلك ، ما عليك سوى تحريك مؤشر الماوس فوق الحقل "PKCS # 11 ، x509v3 ، PKCS # 10 ، PKCS # 7 ، CMS ، PKCS # 12 ، ASN1" ، اضغط على زر الماوس الأيمن واختر "حول البرنامج" في القائمة التي تظهر. في النافذة التي تظهر ، فقط حدد النظام الأساسي واضغط على زر الماوس الأيسر:



عند استلام مجموعة التوزيع بنجاح ، ستتلقى رسالة مقابلة حول مكان حفظ الأرشيف المستلم:



ملاحظة: بالنسبة لأولئك الذين يرغبون في الحصول على الأدوات المساعدة لأول مرة ، لا يزال هذا ممكنًا هنا:

توزيعات Linux و OS X و Windows

Source: https://habr.com/ru/post/ar473886/


All Articles