
مشروع Wycheproof يختبر مكتبات التشفير ضد الهجمات المعروفة.
مشروع Wycheproof هو مستودع مُدار مجتمعيًا لمتجهات الاختبار التي يمكن لمطوري مكتبات التشفير استخدامها للاختبار ضد الهجمات المعروفة، وعدم اتساق المواصفات، ومختلف أخطاء التنفيذ الأخرى.
يتم الاحتفاظ بمتجهات الاختبار كبيانات متجهات اختبار بصيغة JSON، مع ملفات مخطط JSON المصاحبة التي توثق بنية بيانات متجهات الاختبار.
قد تجد من المفيد فحص كيفية دمج مشاريع أخرى مثل pyca/cryptography لمتجهات اختبار Wycheproof.
يمتلك مشروع Wycheproof متجهات اختبار لخوارزميات التشفير الأكثر شيوعًا، بما في ذلك
تكتشف متجهات الاختبار ما إذا كانت المكتبة عرضة للعديد من الهجمات، بما في ذلك
نرحب بالمساهمة ببيانات متجهات اختبار جديدة، وخوارزميات.
إذا كنت ترغب في المساهمة، يرجى قراءة CONTRIBUTING وإرسال طلبات السحب إلينا. يمكنك أيضًا الإبلاغ عن الأخطاء أو طلب اختبارات جديدة كـ مشكلات GitHub.
نحن في عملية إحياء تطوير وصيانة مشروع Wycheproof كمشروع C2SP مع تركيز متجدد على بيانات متجهات الاختبار.
أولويتنا الفورية هي إضافة تغطية إضافية للخوارزميات وحالات الاختبار إلى بيانات متجهات الاختبار.
سُمي مشروع Wycheproof على اسم جبل Wycheproof، أصغر جبل في العالم. كان الدافع الرئيسي للمشروع في وقت إنشائه هو وجود هدف قابل للتحقيق. فكلما كان الجبل أصغر، زادت احتمالية القدرة على تسلقه.
تُستخدم متجهات اختبار Wycheproof بشكل ما من قبل عدد من مشاريع ومكتبات التشفير المهمة. بدون ترتيب معين، تشمل هذه:
إذا كان مشروعك يستخدم متجهات اختبار من Wycheproof، فلا تتردد في فتح PR لإضافته إلى القائمة أعلاه!
راجع doc/bugs.md لبعض الأخطاء التاريخية الملحوظة التي تم العثور عليها باستخدام أدوات اختبار Wycheproof، أو بيانات متجهات الاختبار.
testvectors/؟قمنا مؤخرًا بدمج دليلي testvectors/ و testvectors_v1/ في دليل موحد واحد مع نهج متسق واحد للمخططات.
يمكن للمستخدمين الذين يحتاجون إلى بيانات متجهات الاختبار الأصلية ("v0") استنساخ هذا المستودع من وسم wycheproof-v0-vectors، ولكن يُشجعون على التفكير في التحديث لاستخدام testvectors_v1/ للاستفادة من التحديثات المستقبلية. إذا كانت هناك ميزات/تغطية اختبار من testvectors/ مفقودة من testvectors_v1/، أو كانت هناك مشكلة أخرى تعيق تحديثك، فيرجى فتح مشكلة تصف احتياجاتك.
تتوفر بعض الوثائق القديمة لـ الملفات، والتنسيقات، والأنواع، ولكنها ليست بالضرورة متزامنة مع الحالة الحالية لمتجهات الاختبار.
بشكل عام، يُفضل الرجوع إلى ملفات المخطط نظرًا لأنها مُختبرة في CI لضمان تطابق محتويات ملفات المتجهات مع مخططها المُعلن.
تاريخيًا، تضمن Wycheproof أيضًا أدوات اختبار (مثل تطبيقات التشفير بلغة Java وJavascript) التي اختبرت مجموعة متنوعة من الهجمات مباشرة ضد التطبيقات. منذ الانتقال إلى الدعم المجتمعي، تمت إزالة هذه الأدوات (لكنها لا تزال موجودة في تاريخ git للمهتمين عند cd27d64). تركيزنا الحالي هو على متجهات الاختبار المستقلة عن التنفيذ.
اختبار مكتبات التشفير التابعة لجهات خارجية مباشرة يعني أن العيوب لا تُكتشف إلا بعد أن يتم إيداعها، وربما إصدارها، من قبل المشاريع الخاضعة للاختبار. بدلاً من ذلك، نشجع المشاريع التابعة على اختبار كودها بانتظام باستخدام متجهات اختبار Wycheproof كجزء من عملية التطوير الخاصة بها. يساعد هذا النهج في اكتشاف العيوب قبل أن تصبح CVEs، ويعني أن الميزات الجديدة يتم اختبارها فورًا، ويساعد في توزيع عبء الصيانة. هذا يسمح لمشرفي Wycheproof بالتركيز على متجهات الاختبار بدلاً من تتبع التطوير التابع للعديد من المشاريع مع الحفاظ في الوقت نفسه على عدد متزايد باستمرار من أدوات الاختبار الخاصة باللغات والمشاريع.
قد يجد الأطراف المهتمون بأدوات الاختبار العمل المستمر الذي يقوم به Daniel Bleichenbacher في Rooterberg ذا أهمية.
حقوق النشر 2016-2026 لمؤلفي Wycheproof، مُقدمة تحت رخصة Apache 2.0.
تم إنشاء وصيانة مشروع Wycheproof في الأصل بواسطة: