اختر اللغة

مولد كلمات مرور آمنة قائم على مولد الأرقام العشوائية الزائفة (PRNG)

ورقة بحثية تقدم مولد كلمات مرور آمن باستخدام مولدات أرقام عشوائية زائفة (PRNG) قائمة على HMAC أو CMAC أو KMAC، تم التحقق منها عبر اختبارات الإنتروبيا والتوزيع المستقل والمتماثل (IID) وفقًا لمعيار NIST SP 800-90B.
computationalcoin.com | PDF Size: 0.5 MB
التقييم: 4.5/5
تقييمك
لقد قيمت هذا المستند مسبقاً
غلاف مستند PDF - مولد كلمات مرور آمنة قائم على مولد الأرقام العشوائية الزائفة (PRNG)

جدول المحتويات

1. المقدمة

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

استجابةً لذلك، تقدم هذه الورقة البحثية مولد كلمات مرور آمنًا مبنيًا على مولد أرقام عشوائية زائفة آمن (PRNG). يتم بناء نواة مولد الأرقام العشوائية الزائفة باستخدام دوال تشفير أولية مثل HMAC أو CMAC أو KMAC لتوليد أرقام عشوائية عالية الجودة، والتي تُستخدم بعد ذلك لإنشاء كلمات المرور. يسمح النظام بإدخال اختياري من المستخدم (الرسالة المراد تجزئتها، TBHM) لبدء العملية. المساهمات الرئيسية هي:

2. المراجعة الأدبية

2.1. مولد الأرقام العشوائية الزائفة القائم على المولد التطابقي الخطي

تستخدم لغات البرمجة الشائعة (مثل C، Java) المولدات التطابقية الخطية (LCG). بوجود بذرة أولية $k$، يتم توليد التسلسل كالتالي: $f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$ و $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$. هذه الطريقة غير آمنة حيث يمكن عكس الحالة: $f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$، مما يكشف البذرة والتسلسل بأكمله.

2.2. مولد الأرقام العشوائية الزائفة الآمن

تعتمد مولدات الأرقام العشوائية الزائفة الآمنة على دوال تشفير أولية كما هو موضح في معيار NIST SP 800-108 الإصدار 1.

2.2.1. القائم على HMAC

يعتمد الأمان على خاصية الاتجاه الواحد لوظائف التجزئة (مثل SHA2، SHA3). لمفتاح $k$ ورسالة $M$، يتم حساب HMAC كالتالي: $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$. لتوليد تيار بتات عشوائي بطول $L$، يتم استخدام وضع العداد: $M_i = i \ || \ \text{KDF} \ || \ 0x00 \ || \ M \ || \ L$، منتجًا مخرجات $r_{hmac,i}$.

2.2.2. القائم على CMAC

يعتمد الأمان على خوارزمية التشفير بالأحجار AES في وضع CBC. يتم تقسيم الرسالة $M$ إلى كتل $M'_1, M'_2, ...$. تتكرر العملية: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$ مع $c_0 = Pad0(0)$. يتم اشتقاق المخرج النهائي $r_{cmac}$ من كتلة التشفير الأخيرة بعد حشو محدد (Pad1).

2.2.3. القائم على KMAC

يستخدم وظيفة الإسفنج KECCAK (الأساس لـ SHA-3)، مما يوفر وظيفة MAC مرنة وقوية مناسبة لتوليد بتات عشوائية حتمية.

2.3. طرق التحقق من العشوائية

تعتمد الورقة البحثية على إطار عمل NIST SP 800-90B، والذي يُعد المعيار الفعلي للتحقق من مصادر الإنتروبيا. ويشمل مجموعتي تحقق حاسمتين:

3. مولد كلمات المرور الآمن المقترح

هندسة النظام المقترح مباشرة وقوية:

  1. المدخلات/البذرة: يقبل رسالة TBHM اختيارية مقدمة من المستخدم. إذا وُفرت، تتم معالجتها؛ وإلا، يتم استخدام بذرة آمنة مولدة من النظام.
  2. نواة مولد الأرقام العشوائية الزائفة الآمن: يتم تغذية TBHM/البذرة في واحدة من التركيبات الثلاثة لمولدات الأرقام العشوائية الزائفة التشفيرية (القائمة على HMAC، CMAC، KMAC) لتوليد تسلسل بتات عشوائية زائفة قوي تشفيريًا.
  3. بناء كلمة المرور: يتم تعيين البتات العشوائية على مجموعة أحرف محددة من قبل المستخدم أو النظام (مثل الأحرف الأبجدية الرقمية + الرموز) لإنتاج كلمة مرور بالطول المطلوب.

تحليل الأمان: تجادل الورقة بأن أمان كلمة المرور المُنشأة يعتمد بشكل مباشر على إنتروبيا مخرج مولد الأرقام العشوائية الزائفة وحجم مجموعة الأحرف. تقوم بإجراء تحليل مقارن، موضحة أن كلمة مرور مكونة من 16 حرفًا من مجموعة أحجام 94 حرفًا مولدة بهذه الطريقة يمكن أن تقدم مقاومة للهجوم بالقوة الغاشمة مماثلة أو تفوق تلك الخاصة بمفاتيح AES-128 أو AES-256، بافتراض أن مخرج مولد الأرقام العشوائية الزائفة عشوائي حقًا.

4. النتائج التجريبية والتحليل

التحقق التجريبي هو نقطة قوة رئيسية في الورقة.

وصف الرسم البياني (ضمني): سيكون رسم الأعمدة فعالاً لمقارنة تقديرات الإنتروبيا الدنيا (بالبت لكل بت) لطرق مولدات الأرقام العشوائية الزائفة الثلاثة مقابل القيمة المثالية 1.0. ستكون جميع الأعمدة قريبة جدًا من 1.0. يمكن أن يظهر رسم بياني ثاني قيم p من اختبارات IID الرئيسية (مثل كاي مربع، كولموغوروف-سميرنوف)، مع جميع القيم أعلى بكثير من عتبة الدلالة النموذجية (مثل 0.01)، مما يشير إلى النجاح.

5. الخاتمة والعمل المستقبلي

يُظهر البحث بنجاح إطار عمل لتوليد كلمات مرور آمنة قائم على مولدات أرقام عشوائية زائفة تشفيرية. تولد الطرق المقترحة كلمات مرور بعشوائية كافية، كما تم التحقق منها بدقة وفقًا لمعايير NIST. اتجاهات العمل المستقبلي تشمل:

6. التحليل الأصلي ورؤية الخبراء

الرؤية الأساسية: هذه الورقة ليست عن اختراع دالة تشفير أولية جديدة؛ بل هي عن التطبيق المنضبط والتحقق من الدوال الحالية والمختبرة جيدًا (HMAC، CMAC، KMAC) لحل المشكلة العادية ولكن الحرجة المتمثلة في توليد كلمات المرور. تكمن قيمتها الحقيقية في سد الفجوة بين التشفير النظري والنظافة الأمنية العملية، وإثبات بشكل صارم أن مخرجها مناسب للغرض باستخدام مجموعة الاختبارات الذهبية لـ NIST.

التسلسل المنطقي: الحجة سليمة: 1) مولدات LCG القياسية معطوبة تشفيريًا. 2) مولدات الأرقام العشوائية الزائفة الآمنة المبنية من دوال MAC التشفيرية قوية بشكل قابل للإثبات. 3) لذلك، ترث كلمات المرور المشتقة من مثل هذه المولدات تلك القوة. 4) يتم التحقق من هذا الادعاء ليس فقط بالنظرية، ولكن باجتياز اختبارات تجريبية صارمة (NIST SP 800-90B). هذا التحقق الشامل هو ما تفتقر إليه العديد من أدوات "مولد كلمات المرور الآمنة".

نقاط القوة والضعف:
نقاط القوة: الصرامة المنهجية جديرة بالثناء. استخدام NIST SP 800-90B للتحقق يرفع مصداقيتها فورًا، على غرار كيفية التحقق من خوارزميات التشفير عبر برنامج التحقق من خوارزميات التشفير (CAVP). المقارنة بقوة مفتاح AES هي مقياس عملي ومألوف لفرق الأمان.
نقاط الضعف: تعمل الورقة في بيئة خاضعة للرقمة ومثالية. تفترض أن البذرة الأولية/TBHM لديها إنتروبيا كافية – وهي حلقة حرجة وغالبًا ما تكون ضعيفة في الأنظمة الحقيقية. المدخلات "الاختيارية" من المستخدم هي سلاح ذو حدين؛ فقد تقوض العبارة الضعيفة والقابلة للتنبؤ من المستخدم (مثل "كلمتيالسرية") البناء التشفيري بأكمله، وهو خطر لم يتم قياسه بالكامل. علاوة على ذلك، كما لوحظ في مراجعة 2023 "تشفير ما بعد الكم: رحلة عشر سنوات" من NIST، فإن المجال يتجه نحو خوارزميات مقاومة للكم. تعتمد تركيبات الورقة، رغم أمانها ضد أجهزة الكمبيوتر الكلاسيكية، على SHA2/AES، التي لا يُعرف يقينًا عن مقاومتها طويلة الأمد للكم.

رؤى قابلة للتنفيذ: لمهندسي الأمان، توفر هذه الورقة مخططًا. لا تصنع مولد أرقام عشوائية زائفة خاصًا بك. استخدم التركيبات التشفيرية المعتمدة كوحدات بناء. والأهم من ذلك، تحقق، تحقق، تحقق. قم بدمج التحقق المستمر من الإنتروبيا (مثل اختبارات NIST) في أنظمة توليد الأرقام العشوائية الحرجة لديك، وهي ممارسة تؤكد عليها منظمات مثل جهود مؤسسة لينكس في الشهادة المعيارية المشتركة (CCC). لتطوير المنتجات، فإن الاستفادة الفورية هي استبدال أي توليد لكلمات المرور قائم على LCG في أنظمتك بمولد قائم على KMAC أو HMAC-SHA256، باستخدام بذرة مصدرة بشكل آمن. خطوة الاستعداد للمستقبل هي البدء في إنشاء نماذج أولية بتصميمات قائمة على SHA-3/KECCAK (مثل KMAC) ومراقبة تطور معايير تشفير ما بعد الكم من NIST لدمجها في النهاية.

7. التفاصيل التقنية والصياغة الرياضية

يتم تعريف العمليات الرياضية الأساسية في المراجعة الأدبية (القسم 2). تشمل الصيغ الرئيسية:

يقوم توليد كلمة المرور بتعيين عدد صحيح عشوائي $R$ (من مخرج مولد الأرقام العشوائية الزائفة) إلى فهرس حرف: $\text{index} = R \ \text{mod} \ |S|$، حيث $|S|$ هو حجم مجموعة الأحرف.

8. إطار التحليل ومثال تطبيقي

مثال تطبيقي: تقييم مولد كلمات مرور لنظام قديم
السيناريو: يستخدم تطبيق ويب قديم مولد LCG معدلًا لتوليد كلمات مرور مؤقتة للمستخدمين. مطلوب تدقيق أمني.
تطبيق الإطار:

  1. تحديد نوع مولد الأرقام العشوائية الزائفة: فحص الكود المصدري. البحث عن: seed = (a * seed + c) % m; التأكد من أنه نوع من LCG.
  2. تقييم الأمان التشفيري: مولد LCG حتمي وعكوس. يمكن لمهاجم يحصل على بضع كلمات مرور متتالية أن يحل المعادلة لإيجاد البذرة ويتنبأ بجميع كلمات المرور المستقبلية، مما ينتهك إرشادات NIST SP 800-63B بشأن عشوائية أدوات المصادقة.
  3. اقتراح العلاج باستخدام طريقة الورقة:
    • مصدر البذرة: استبدال بذرة وقت النظام بمولد أرقام عشوائية زائفة آمن تشفيريًا (مثل /dev/urandom على لينكس، CryptGenRandom على ويندوز).
    • المولد الأساسي: تنفيذ مولد أرقام عشوائية زائفة قائم على HMAC-SHA256 وفقًا لتصميم الورقة.
    • التحقق: توليد عينة كبيرة (1,000,000 بت) من المولد الجديد وتشغيل مجموعة الاختبارات الإحصائية (STS) من NIST أو مقدرات الإنتروبيا من SP 800-90B للتحقق من العشوائية قبل النشر.
هذا الإطار يحول التقييم من "هل يبدو عشوائيًا؟" إلى "هل يجتاز التحقق التشفيري المعياري؟"

9. التطبيقات المستقبلية واتجاهات التطوير

تمتد المبادئ إلى ما بعد كلمات مرور المستخدم:

10. المراجع

  1. M. Bishop, “Computer Security: Art and Science”, Addison-Wesley, 2019.
  2. NIST, “Special Publication 800-63B: Digital Identity Guidelines”, 2020.
  3. NIST, “Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation”, 2018.
  4. NIST, “Special Publication 800-108 Rev. 1: Recommendation for Key Derivation Using Pseudorandom Functions”, 2022.
  5. NIST, “FIPS 202: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions”, 2015.
  6. J. Kelsey, B. Schneier, D. Wagner, “Secure Applications of Low-Entropy Keys”, Information Security Workshop, 1997.
  7. M. Dworkin, “Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication”, NIST SP 800-38B, 2005.
  8. NIST, “Status Report on the Third Round of the NIST Post-Quantum Cryptography Standardization Process”, 2022. [Online]. Available: https://csrc.nist.gov/projects/post-quantum-cryptography
  9. Linux Foundation, “Common Criteria Certification and Open Source”, 2023. [Online]. Available: https://www.linuxfoundation.org/