أصدر VPN Author WireGuard تحديث RDRAND جديدًا

جايسون أ. دونينفيلد، مؤلف برنامج VPN WireGuard كشف النقاب قبل أيام قليلة تطبيق جديد تم التحديث من مولد رقم عشوائي RDRAND، وهو المسؤول عن تشغيل الأجهزة / dev / random و / dev / urandom في نواة Linux.

في نهاية شهر نوفمبر ، تم إدراج Jason في قائمة المشرفين على وحدة التحكم العشوائية ونشر الآن النتائج الأولى لأعمال إعادة العمل الخاصة به.

مذكور في الإعلان أن التنفيذ الجديد يبرز التبديل إلى استخدام وظيفة تجزئة BLAKE2s بدلاً من SHA1 لعمليات خلط الانتروبيا.

تتمتع BLAKE2s نفسها بخاصية جميلة تتمثل في كونها تعتمد داخليًا على
تبديل ChaCha ، والذي يستخدمه RNG بالفعل للتوسيع ، لذلك
يجب ألا تكون هناك مشكلة في الجدة أو الأصالة أو وحدة المعالجة المركزية المذهلة
السلوك لأنه يعتمد على شيء قيد الاستخدام بالفعل.

بالإضافة إلى ذلك ، تم إبراز أن التغيير قام أيضًا بتحسين أمان منشئ الأرقام العشوائية الزائفة من خلال التخلص من خوارزمية SHA1 المزعجة وتجنب الكتابة فوق متجه تهيئة RNG. نظرًا لأن خوارزمية BLAKE2s تتقدم على SHA1 في الأداء ، فقد كان لاستخدامها أيضًا تأثير إيجابي على أداء مولد الأرقام العشوائية الزائفة (أظهرت الاختبارات على نظام مع معالج Intel i7-11850H زيادة في السرعة بنسبة 131٪).

ميزة أخرى تبرز هي نقل خليط الانتروبيا إلى BLAKE2 هو توحيد الخوارزميات المستخدمة: يتم استخدام BLAKE2 في تشفير ChaCha ، والذي يستخدم بالفعل لاستخراج التسلسلات العشوائية.

تعد BLAKE2s بشكل عام أسرع وأكثر أمانًا بالتأكيد ، لقد تم كسره حقًا. إلى جانب ال لا يستخدم البناء الحالي في RNG وظيفة SHA1 الكاملة ، مثل يحدد ويسمح للكتابة فوق الرابع بإخراج RDRAND بذلك غير موثق ، حتى إذا لم يتم تعيين RDRAND كـ "موثوق" ، فإنه والتي تمثل خيارات IV الخبيثة المحتملة.

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

بالإضافة إلى ذلك ، تم إجراء تحسينات على منشئ الأرقام العشوائية الزائفة CRNG ذات التشفير الآمن المستخدم في مكالمة getrandom.

كما ذكر أن يتم تقليل التحسينات إلى تقييد الاتصال بمولد RDRAND بطيئة عند استخراج الانتروبيا ، والتي يمكنه تحسين الأداء بمعامل 3,7. أظهر جايسون أن المكالمة إلى RDRAND يكون ذلك منطقيًا فقط في الحالة التي لم يتم فيها تهيئة CRNG بالكامل بعد ، ولكن إذا اكتملت تهيئة CRNG ، فإن قيمتها لا تؤثر على جودة الدفق الذي تم إنشاؤه وفي هذه الحالة من الممكن القيام بذلك دون استدعاء RDRAND.

يهدف هذا الالتزام إلى حل هاتين المشكلتين وفي نفس الوقت الحفاظ على الهيكل العام والدلالات أقرب ما يمكن إلى الأصل.
على وجه التحديد:

أ) بدلاً من الكتابة فوق التجزئة IV باستخدام RDRAND ، وضعنا حقلي "ملح" و "شخصي" موثقين من BLAKE2 ، وهما تم إنشاؤها خصيصًا لهذا النوع من الاستخدام.
ب) نظرًا لأن هذه الوظيفة ترجع نتيجة التجزئة الكاملة إلى ملف جامع الانتروبيا ، نعيد فقط نصف طول التجزئة ، تمامًا كما تم إجراؤها من قبل. هذا يزيد من سر البناء المسبق 2 ^ 80 أ 2 ^ 128 أكثر راحة.
ج) بدلاً من مجرد استخدام وظيفة "sha1_transform" الخام ، بدلاً من ذلك ، نستخدم وظيفة BLAKE2s الكاملة والمناسبة ، مع اكتمالها.

تمت جدولة التغييرات لإدراجها في kernel 5.17 وقد تمت مراجعته بالفعل من قبل المطورين Ted Ts'o (المسؤول الثاني عن الحفاظ على وحدة التحكم العشوائية) ، و Greg Kroah-Hartman (المسؤول عن الحفاظ على استقرار نواة Linux) و Jean-Philippe Aumasson (مؤلف خوارزميات BLAKE2 / 3).

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


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.