اختر اللغة

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

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

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

1. المقدمة

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

يقترح هذا البحث مُولِّد كلمات مرور آمنة قائم على مُولِّدات الأرقام العشوائية الزائفة الآمنة تشفيريًا (PRNGs). حيث يقوم ببناء مُولِّدات الأرقام العشوائية الزائفة باستخدام رمز المصادقة على الرسائل المشفر بالمفتاح (HMAC)، أو رمز المصادقة على الرسائل القائم على التشفير (CMAC)، أو رمز المصادقة على الرسائل KECCAK (KMAC) لإنتاج أرقام عشوائية آمنة، والتي تُستخدم بعد ذلك لتوليد كلمات المرور. يتم التحقق من عشوائية الأرقام المُولَّدة مقابل معيار NIST SP 800-90B من خلال اختبارات الإنتروبيا واختبارات التوزيع المستقل والمتماثل (IID).

المساهمات الرئيسية:

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

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

يُستخدم المولد التطابقي الخطي (LCG) بشكل شائع في لغات مثل C وJava، حيث يولد سلسلة من الأرقام باستخدام علاقة تكرار خطية. بمعلومية البذرة $k$، يتم حساب القيمة الأولية $f_0(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.

2.2.1. مُولِّد الأرقام العشوائية الزائفة القائم على HMAC

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

2.2.2. مُولِّد الأرقام العشوائية الزائفة القائم على CMAC

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

2.2.3. مُولِّد الأرقام العشوائية الزائفة القائم على KMAC

بناءً على دالة التجزئة SHA-3 (KECCAK)، يوفر KMAC مخرجًا بطول متغير ويُعتبر مرشحًا قويًا للتشفير ما بعد الكم. تتبع تركيبته مبدأ التجزئة المصادق عليه المشابه، مما يوفر ضمانات أمنية عالية.

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

يوفر معيار NIST SP 800-90B منهجيات لتقييم جودة مُولِّدات الأرقام العشوائية. يتم تقييم جانبين رئيسيين:

3. مُولِّد كلمات المرور الآمنة المقترح

تتضمن بنية النظام مرحلتين رئيسيتين:

  1. توليد أرقام عشوائية آمنة: يمكن للمستخدم اختياريًا تقداق رسالة للتجزئة (TBHM). تتم معالجة هذه الرسالة، جنبًا إلى جنب مع مفتاح تشفيري، بواسطة مُولِّد الأرقام العشوائية الزائفة الآمن المختار (القائم على HMAC/CMAC/KMAC) لإنتاج سلسلة بتات عشوائية قوية تشفيريًا.
  2. توليد كلمة المرور: يتم تعيين البتات العشوائية على مجموعة أحرف محددة من قبل المستخدم أو النظام (مثل الأحرف الأبجدية الرقمية بالإضافة إلى الرموز) بطول محدد لتوليد كلمة المرور النصية النهائية. يتم تحليل قوة الأمن بالنسبة إلى AES-128/256، مع الأخذ في الاعتبار الإنتروبيا التي توفرها حجم مجموعة الأحرف وطول كلمة المرور.

4. التجارب والنتائج

4.1. الإعداد التجريبي

أُجريت التجارب للتحقق من عشوائية مخرجات مُولِّدات الأرقام العشوائية الزائفة. نفذت مجموعة الاختبار إجراءات تقييم NIST SP 800-90B لتقدير الإنتروبيا واختبار التوزيع المستقل والمتماثل (IID) على عينات كبيرة من الأرقام العشوائية المُولَّدة من جميع أنواع مُولِّدات الأرقام العشوائية الزائفة الثلاثة.

4.2. نتائج التحقق من العشوائية

ملخص النتائج: نجحت مُولِّدات الأرقام العشوائية الزائفة المقترحة القائمة على HMAC وCMAC وKMAC جميعها في اجتياز اختبارات التحقق من الإنتروبيا والتوزيع المستقل والمتماثل (IID) التابعة لـ NIST SP 800-90B. لم تظهر السلاسل المُولَّدة أي انحرافات إحصائية ذات دلالة عن العشوائية الحقيقية، مما يؤكد ملاءمتها لتوليد كلمات مرور تشفيرية.

وصف مخطط (متخيل): مخطط شريطي يقارن تقديرات الإنتروبيا الدنيا (بالبت لكل بت) لأنواع مُولِّدات الأرقام العشوائية الزائفة الثلاثة مقابل عتبة النجاح الخاصة بـ NIST. ستظهر الأشرطة الثلاثة جميعها أعلى بكثير من خط العتبة، مع احتمال أن يُظهر KMAC أعلى قيمة، يليه عن قرب HMAC-SHA3 ثم CMAC-AES256.

4.3. تحليل الأداء

تم إجراء تحليل مقارن للكفاءة الحسابية (مثل عمليات التوليد في الثانية). أظهرت المُولِّدات القائمة على CMAD (باستخدام تسريع العتاد AES-NI) عادةً أعلى إنتاجية، تليها القائمة على HMAC (SHA2/SHA3)، بينما كان KMAC أكثر ثقلًا من الناحية الحسابية ولكنه يقدم خصائص أمنية قوية لما بعد الكم.

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

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

6. التحليل الأصلي والتعليقات الخبيرة

الفكرة الأساسية: هذه الورقة هي استجابة عملية تركز على الهندسة للرابط الضعيف الدائم في الأمن السيبراني: كلمات المرور التي يختارها البشر. قيمتها الأساسية ليست في التشفير الجديد، ولكن في التطبيق الصحيح والتحقق الصارم من التركيبات الحالية المجربة والمعتمدة (HMAC، CMAC، KMAC) لحالة استخدام محددة عالية التأثير. إنها تحدد بشكل صحيح أن نقل توليد كلمات المرور من عقول المستخدمين إلى عملية تشفيرية مُتحقق منها هو ترقية أمنية أساسية، تشبه التحول من التشفير المتماثل إلى غير المتماثل لتبادل المفاتيح.

التدفق المنطقي: المنطق سليم ويتبع نمط البحث التطبيقي الكلاسيكي: تعريف المشكلة (كلمات مرور ضعيفة) → نقد الحلول الشائعة (مولدات تطابقية خطية غير آمنة) → اقتراح حل قوي (مُولِّد قائم على CSPRNG) → التحقق التجريبي (اختبارات NIST). إن اختيار NIST SP 800-90B كمعيار للتحقق ممتاز، لأنه المعيار الفعلي لتقييم العشوائية في السياقات التشفيرية، مما يمنح النتائج مصداقية فورية.

نقاط القوة والضعف:
نقاط القوة: أكبر قوة للورقة هي تحققها العملي. كثير من المقترحات تتوقف عند مرحلة التصميم. من خلال إخضاع المخرجات لاختبارات NIST الصارمة، يقدم المؤلفون دليلًا ملموسًا على الأمن، وهو أمر حاسم للاعتماد. إن تضمين KMAC، القائم على SHA-3، يظهر بُعد نظر فيما يتعلق باعتبارات ما بعد الكم، كما هو مذكور في عملية توحيد معايير التشفير لما بعد الكم الجارية في NIST.
نقاط الضعف/الإغفالات: التحليل منعزل إلى حد ما. عيب كبير هو عدم مناقشة إدارة البذور. ينهار أمن أي مُولِّد أرقام عشوائية زائفة إذا كانت بذرته قابلة للتنبؤ أو تم تسريبها. كيف يولد النظام ويخزن ويحمي المفتاح التشفيري الأولي لـ HMAC/CMAC/KMAC؟ هذا بنفس أهمية الخوارزمية نفسها. علاوة على ذلك، بينما تكون مقارنة قوة كلمة المرور بـ AES مفيدة، فإن مقارنة أكثر مباشرة مع مُولِّدات كلمات المرور الحالية (مثل تلك الموجودة في KeePass أو 1Password) ومُولِّدات الأرقام العشوائية الزائفة الأساسية الخاصة بها (مثل استخدام ChaCha20) ستوفر سياقًا أفضل لميزتها التنافسية.

رؤى قابلة للتنفيذ: بالنسبة للممارسين في مجال الأمن، تخدم هذه الورقة كخطة عمل. الإجراء 1: إيقاف استخدام أي مولدات تطابقية خطية أو مُولِّدات أرقام عشوائية غير تشفيرية مماثلة (مثل `rand()`) للمهام الحساسة أمنيًا على الفور. الإجراء 2: عند بناء أو مراجعة مُولِّد كلمات مرور، يجب أن تكون عناصر قائمة المراجعة الأساسية: 1) استخدام مُولِّد أرقام عشوائية زائفة آمن تشفيريًا (مثل HMAC_DRBG، CTR_DRBG من NIST SP 800-90A، أو التركيبات هنا)، 2) التحقق من مخرجاته بمجموعة اختبار مثل NIST SP 800-90B أو Dieharder، و 3) تنفيذ توليد بذور قوي من مصدر إنتروبيا عالي (مثل `getrandom()` على لينكس). تركز الورقة بنجاح على النقطة 2، ولكن النقطتين 1 و 3 هما جزءان حيويان بنفس القدر من الصورة الكاملة.

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

يعتمد أمن المُولِّد المقترح على الدوال التشفيرية الأساسية. العمليات الرياضية الرئيسية هي:

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

مثال تطبيقي: مراجعة وظيفة إعادة تعيين كلمة المرور في تطبيق ويب
السيناريو: يولد تطبيق ويب كلمة مرور مؤقتة للمستخدمين الذين ينقرون على "نسيت كلمة المرور".
تطبيق الإطار:

  1. تحديد مُولِّد الأرقام العشوائية الزائفة: فحص كود الخادم. العثور على `Math.random()` (جافا سكريبت) أو مولد تطابقي خطي بسيط في PHP سيكون فشلًا خطيرًا.
  2. تقييم مصدر الإنتروبيا: كيف تتم بذر مُولِّد الأرقام العشوائية الزائفة؟ هل يستخدم إنتروبيا النظام (`/dev/urandom`, `CryptGenRandom`)؟
  3. التخطيط للحل المقترح: التوصية باستبدال مُولِّد الأرقام العشوائية الزائفة المعيب بوحدة تنفذ تصميم هذه الورقة — على سبيل المثال، دالة بايثون تستخدم `hmac.new` مع SHA256 وبذرة من `os.urandom(32)`.
  4. التحقق من المخرجات (بعد التنفيذ): توليد عينة من 1,000,000 كلمة مرور مؤقتة، وتحويلها إلى تدفق بتات، وتشغيل مجموعة اختبار NIST STS (مجموعة اختبار ذات صلة) لضمان العشوائية.
يحول هذا الإطار نظرية الورقة إلى قائمة مراجعة ملموسة للمراجعة والمعالجة.

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

التكنولوجيا الأساسية لها تطبيقات تتجاوز توليد كلمات مرور المستخدم:

10. المراجع

  1. M. Bishop, "Computer Security: Art and Science," Addison-Wesley, 2003.
  2. NIST, "Special Publication 800-63B: Digital Identity Guidelines," 2017.
  3. NIST, "Special Publication 800-90A: Recommendation for Random Number Generation Using Deterministic Random Bit Generators," 2015.
  4. NIST, "Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation," 2018.
  5. J. Kelsey, B. Schneier, D. Wagner, "Secure Applications of Low-Entropy Keys," ISW '97.
  6. D. D. Hwang, B. B. Gupta, "A Study of Password Security and Its Implications," JIS, 2019.
  7. NIST, "FIPS 202: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions," 2015.
  8. NIST, "SP 800-185: SHA-3 Derived Functions: cSHAKE, KMAC, TupleHash and ParallelHash," 2016.
  9. M. S. Turan, E. Barker, J. Kelsey, "Recommendation for Random Bit Generator (RBG) Constructions," NIST SP 800-90C, 2016.
  10. P. G. Neumann, "Illustrative Risks to the Public in the Use of Computer Systems and Related Technology," ACM SIGSOFT, 1995.