إصدار Sequoia 0.20.0 ، تنفيذ OpenPGP في Rust



تم تقديم إصدار حزمة سيكويا 0.20.0 أمس . فإنه يوفر مكتبة وظائف والأدوات سطر الأوامر مع تنفيذ المعايير بينبغب (RFC-4880). يتكون فريق المشروع من ثلاثة أشخاص - أعضاء في مشروع OpenPGP (RFC-4880). لتحسين أمان وموثوقية قاعدة التعليمات البرمجية ، قرروا إنشاء تطبيق مجاني جديد لـ OpenPGP في Rust. يتم توزيع كود المشروع بموجب ترخيص GPLv2 +.



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



يحتوي Sequoia على أداة سطر أوامر مربعة مع دعم أوامر فرعية بأسلوب Git ، بالإضافة إلى خيارين لواجهة برمجة التطبيقات - مستوى منخفض وعالي المستوى. توجد روابط للغات C و Python. يتم دعم معظم الميزات الموضحة في معيار OpenPGP للتشفير وفك التشفير وإنشاء التوقيعات الرقمية والتحقق منها.



تشمل الميزات الإضافية دعم التحقق من التوقيعات الرقمية المقدمة بشكل منفصل ، والتكيف مع التكامل مع مديري الحزم والقدرة على تقييد التوقيعات عن طريق قيم العتبة والوقت.



تعمل واجهة برمجة التطبيقات ذات المستوى المنخفض على إعادة إنتاج قدرات OpenPGP بشكل وثيق للغاية وبعض الامتدادات ذات الصلة ، بما في ذلك دعم ECC وعناصر من "مسودة" الإصدار المستقبلي للمعيار. بقدر ما يتعلق الأمر بالاستثناءات ، فهذه ليست سوى أجزاء قديمة من المواصفات التي يمكن أن تؤثر سلبًا على الأمان - على سبيل المثال ، دعم تجزئة MD5. تدعم واجهة برمجة التطبيقات أيضًا معالجة الرسائل غير المخزنة. من حيث إمكانياته ، فهو قريب من التغطية الكاملة لمعيار OpenPGP وهو جاهز تمامًا للعمل مع بيانات OpenPGP. يجب إطلاق إصدار 1.0 مستقر في المستقبل القريب.



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



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



  sq packet dump --hex message.pgp
 
   New CTB, 13 bytes: One-Pass Signature Packet
       Version: 3
       Type: Binary
       Pk algo: EdDSA Edwards-curve Digital Signature Algorithm
       Hash algo: SHA512
       Issuer: 83F8 2E4F E9A5 E098
       Last: true
 
   00000000  c4 0d                                              frame
   00000002        03                                           version
   00000003           00                                        sigtype
   00000004              0a                                     hash_algo
   00000005                 16                                  pk_algo
   00000006                    83 f8  2e 4f e9 a5 e0 98         issuer
   0000000e                                             01      last


فيما يتعلق بدعم النظام الأساسي ، تعمل الحزمة حاليًا مع أنظمة Linux و FreeBSD و Windows و macOS و Android و iOS. من الممكن أيضًا العمل مع خدمات التشفير التي توفرها هذه المنصات ، بما في ذلك المعالجات المشتركة للحوسبة في الجيوب المعزولة. لتوفير عزل إضافي ، تتم ممارسة فصل الخدمات إلى عمليات منفصلة تعمل مع المفاتيح العامة والخاصة. على سبيل المثال ، تم تطوير مخزن المفاتيح في شكل عملية منفصلة. يستخدم بروتوكول Cap'n Proto لضمان تفاعل العمليات الفردية.



يحتوي الإصدار الجديد المقدم على حزمة منخفضة المستوى Sequoia-openpgp ، برنامج sqv (استبدال gpgv) للتحقق من التواقيع المنفصلة وأداة sqop مع تنفيذ OpenPGP CLI عديم الحالة. تم رفع متطلبات الصدأ إلى الإصدار 1.46. تم توسيع استخدام نظام التكامل المستمر لفحص التغييرات وتم تحسين مجموعة اختبار التوافق مع OpenPGP.



في المستقبل القريب ، يخطط المطورون لإصدار الإصدار 1.0 ، والذي سيتضمن أيضًا واجهة برمجة تطبيقات عالية المستوى ، وليس فقط واجهة برمجة تطبيقات منخفضة المستوى ، كما هي الآن.






All Articles