اختر اللغة

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

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

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

1. المقدمة

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

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

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

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

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

تطبق العديد من لغات البرمجة (مثل C، Java) مولدات الأرقام العشوائية الزائفة (PRNGs) القائمة على المولدات التطابقية الخطية (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)$ من أجل $i \ge 1$

ومع ذلك، فإن المولدات التطابقية الخطية غير آمنة لأن الحالة التالية تُشتق خطيًا من الحالة السابقة ($f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$)، مما يسمح للمهاجم بالعودة إلى البذرة.

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

2.2.1. القائم على رمز المصادقة الرسالة القائم على التجزئة (HMAC)

يعتمد أمان HMAC على الخاصية أحادية الاتجاه لوظائف التجزئة التشفيرية (مثل SHA-2، SHA-3). لمفتاح $k$ ورسالة $M$، يتم حساب HMAC كما يلي:

$r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$

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

2.2.2. القائم على رمز المصادقة الرسالة القائم على التشفير (CMAC)

يعتمد أمان CMAC على معيار التشفير المتقدم (AES). لمفتاح $k$ ورسالة $M$ مقسمة إلى كتل $M'_i$ بطول $l_a$، يعمل في وضع سلسلة كتل التشفير (CBC):

$c_{i+1} = AES(k, c_i \oplus M'_{i+1})$، مع $c_0 = Pad0(0)$.

يتم اشتقاق المخرجات النهائية $r_{cmac}(k, Split(M))$ من كتلة النص المشفر الأخيرة بعد حشو محدد (Pad1).

2.2.3. القائم على رمز مصادقة رسالة KECCAK (KMAC)

يعتمد KMAC على بناء الإسفنجة SHA-3 (KECCAK)، مما يوفر مرونة وأمانًا. يمكن استخدامه بشكل مشابه لـ HMAC في وضع العداد لتوليد تيار بتات حتمي وغير متوقع مناسب لأغراض مولد الأرقام العشوائية الزائفة، كما هو موضح في NIST SP 800-108 Rev. 1.

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

تعتمد الورقة إطار عمل NIST SP 800-90B للتحقق من العشوائية، مع التركيز على جانبين رئيسيين:

3. مولد كلمات المرور الآمنة المقترح القائم على مولد الأرقام العشوائية الزائفة الآمن

يتضمن هيكل النظام المقترح:

  1. المدخلات: رسالة اختيارية يقدمها المستخدم "للتجزئة" (TBHM) ومعلمات (طول كلمة المرور المطلوب، مجموعة الأحرف).
  2. النواة الآمنة لمولد الأرقام العشوائية الزائفة: مولد أرقام عشوائية زائفة مبني باستخدام إحدى وظائف المصادقة الثلاث (HMAC، CMAC، أو KMAC) في وضع العداد، وفقًا لـ NIST SP 800-108. تأخذ هذه النواة رسالة TBHM (ومفتاح/بذرة داخلي) لتوليد تسلسل بتات عشوائية زائفة آمن تشفيريًا.
  3. توليد كلمة المرور: يتم تعيين البتات العشوائية على مجموعة الأحرف المحددة من قبل المستخدم (مثل الأحرف الأبجدية الرقمية + الرموز) لإنشاء كلمة مرور بالطول المطلوب.

يقارن تحليل الأمان مساحة المفتاح الفعالة لكلمات المرور المُولدة (بناءً على حجم مجموعة الأحرف $C$ والطول $L$، مما يعطي $C^L$ احتمالًا) بمقاومة القوة الغاشمة لـ AES-128 ($2^{128}$) و AES-256 ($2^{256}$). على سبيل المثال، كلمة مرور مكونة من 16 حرفًا من مجموعة أحرف مكونة من 94 حرفًا توفر حوالي $94^{16} \approx 2^{105}$ احتمالًا، وهو أضعف من AES-128 ولكنه لا يزال قويًا للعديد من الأغراض.

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

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

أُجريت تجارب لتوليد تسلسلات كبيرة من الأرقام العشوائية باستخدام مولدات الأرقام العشوائية الزائفة المقترحة القائمة على HMAC و CMAC و KMAC. ثم خضعت هذه التسلسلات لمجموعة اختبارات NIST SP 800-90B.

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

النتيجة الرئيسية: أظهرت النتائج التجريبية أن الأرقام العشوائية المُولدة بواسطة طرق مولد الأرقام العشوائية الزائفة الثلاث المقترحة (HMAC/SHA-256، CMAC/AES-256، KMAC) نجحت جميعها في اجتياز اختباري التحقق من الإنتروبيا والتحقق من التوزيع المستقل والمتماثل (IID) المحددين في NIST SP 800-90B.

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

4.3. تحليل الكفاءة الحسابية

على الرغم من أنها ليست المحور الرئيسي، تشير الورقة إلى وجود مقايضة. بشكل عام، HMAC/SHA-256 و KMAC فعالان جدًا في البرمجيات. قد يكون لـ CMAC/AES مزايا تسريع بالأجهزة على منصات محددة. يمكن تخصيص الاختيار بناءً على قيود الأداء في بيئة النشر.

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

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

تشمل الاتجاهات المستقبلية:

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

الرؤية الأساسية: عمل تشين هو حل هندسي عملي ومتوافق مع المعايير لمشكلة أمنية أساسية: إنتروبيا كلمة المرور الضعيفة. يحدد بشكل صحيح أن السبب الجذري للعديد من خروقات كلمات المرور ليس مجرد عيوب في التخزين ولكن التوليد المتوقع. من خلال تأسيس الحل على إنشاءات معتمدة من NIST (HMAC، CMAC، KMAC) وأطر التحقق (SP 800-90B)، يتجنب البحث الابتكار التشفيري لذاته ويقدم بدلاً من ذلك طريقة سليمة قابلة للتحقق. يعكس هذا النهج الفلسفة الكامنة وراء الأنظمة الراسخة مثل واجهة /dev/urandom في لينكس، والتي تجمع الإنتروبيا من أحداث النظام، ولكن التركيز هنا على عملية حتمية وقابلة للبذر والتأثير من قبل المستخدم ومناسبة لتوليد كلمات مرور قابلة للتكرار.

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

نقاط القوة والضعف: القوة الأساسية هي الاعتمادية. يقلل استخدام الدوال التشفيرية المجربة والتوجيهات من NIST من المخاطر. المدخلات الاختيارية من المستخدم (TBHM) هي ميزة ذكية، تسمح ببذور مخصصة وآمنة. ومع ذلك، فإن عيبًا كبيرًا هو عدم وجود تحليل أمني مقارن مباشر ضد أحدث مولدات كلمات المرور مثل تلك التي تستخدم Argon2 أو bcrypt لتمديد المفتاح في سياق مماثل. المقارنة مع قوة القوة الغاشمة لـ AES مفيدة ولكنها مبسطة. ناقل الهجوم في العالم الحقيقي هو غالبًا كسر كلمات المرور المشفرة بلا اتصال؛ كان يمكن للورقة تقوية حجتها من خلال نمذجة المقاومة ضد أدوات مثل Hashcat مع مجموعات قواعد محسنة. علاوة على ذلك، بينما تعد اختبارات NIST موثوقة، إلا أنها ليست شاملة لجميع الخصائص التشفيرية؛ سيكون مناقشة مقاومة هجمات القنوات الجانبية على تنفيذ مولد الأرقام العشوائية الزائفة ذات قيمة.

رؤى قابلة للتنفيذ: لمهندسي الأمن، توفر هذه الورقة مخططًا جاهزًا. التوصية 1: تنفيذ المتغير القائم على KMAC. باعتباره مشتقًا من SHA-3، فهو مصمم ليكون مقاومًا لهجمات تمديد الطول التي تؤثر نظريًا على HMAC القائم على SHA-2 في سيناريوهات معينة، ويمثل خيارًا أكثر ملاءمة للمستقبل. التوصية 2: دمج هذا المولد كمحرك أساسي لخزائن كلمات المرور المؤسسية أو أنظمة الدخول الموحد (SSO) حيث يكون إنشاء كلمات المرور القائم على السياسة مطلوبًا. طبيعته الحتمية (نفس TBHM + المعلمات = نفس كلمة المرور) يمكن أن تكون ميزة في سيناريوهات الاسترداد. التوصية 3: استكمال هذا الحل التقني بتثقيف المستخدم. يمكن للمولد إنتاج سلسلة عشوائية مكونة من 20 حرفًا، ولكن إذا اختار المستخدم TBHM قصيرًا يسهل تذكره وطول 8 أحرف، فإن الأمان ينهار. يجب أن تفرض الواجهة إعدادات افتراضية معقولة (مثل 12 حرفًا كحد أدنى، مجموعة أحرف كاملة) ونقل قوة الإنتروبيا بصريًا، تمامًا مثل عدادات قوة كلمة المرور المستنيرة بأبحاث من منظمات مثل NCC Group.

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

يعتمد الأمان الأساسي على خاصية الدالة العشوائية الزائفة (PRF) لرموز المصادقة. يمكن تجريد مولد الأرقام العشوائية الزائفة في وضع العداد على النحو التالي:

$R_i = PRF(K, \text{Counter} \ || \ \text{Label} \ || \ 0x00 \ || \ \text{Input} \ || \ L)$

حيث $PRF$ هي $HMAC$ أو $CMAC$ أو $KMAC$، و $K$ هو مفتاح سري، و $R_i$ هي كتل المخرجات التي يتم تسلسلها لتشكيل التيار البتي النهائي.

تعيين كلمة المرور: بوجود قيمة عدد صحيح عشوائي $v$ مشتقة من التيار البتي ومجموعة أحرف بحجم $C$، يتم اختيار فهرس الحرف على النحو التالي: $index = v \mod C$. يتكرر هذا $L$ مرة.

8. إطار التحليل والمثال المفاهيمي

السيناريو: تحتاج خدمة ويب إلى إنشاء كلمة مرور أولية عالية القوة وعشوائية للمستخدمين الجدد.

تطبيق الإطار:

  1. اختيار المعلمات: تختار الخدمة KMAC256 كدالة PRF، ومفتاحًا تشفيريًا مشتقًا من النظام $K_{sys}$ مخزنًا بأمان، ورسالة TBHM مكونة من معرف المستخدم الفريد وغير القابل للتغيير وطابع زمني.
  2. العملية:
    • المدخلات: TBHM = "USER12345@2023-10-27T10:30:00Z"، الطول $L$ = 16، مجموعة الأحرف = 94 حرف ASCII قابل للطباعة.
    • تعالج نواة مولد الأرقام العشوائية الزائفة هذا باستخدام $K_{sys}$ في وضع العداد لتوليد 128 بت عشوائي (16 حرف * log2(94) ≈ 105 بت، لذا فإن 128 بت توفر إنتروبيا وافرة).
    • يتم تحويل البتات إلى سلسلة مثل: s9*!Lq9@Pz%2m#X&
  3. خصائص الأمان:
    • عدم القدرة على التوقع: بدون $K_{sys}$، يكون الناتج غير متوقع حتى لو كانت رسالة TBHM معروفة.
    • الحتمية: سيحصل نفس المستخدم في تلك اللحظة بالضبط على نفس كلمة المرور، مما يساعد في تصحيح الأخطاء.
    • إنتروبيا عالية: تحتوي كلمة المرور على حوالي 105 بت من الإنتروبيا، مما يجعل الهجوم بالقوة الغاشمة غير عملي.

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

10. المراجع

  1. M. Bellare, R. Canetti, and H. Krawczyk, "Keying Hash Functions for Message Authentication," CRYPTO 1996.
  2. NIST, "Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication," SP 800-38B.
  3. NIST, "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions," FIPS PUB 202.
  4. NIST, "Recommendation for the Entropy Sources Used for Random Bit Generation," SP 800-90B.
  5. NIST, "Recommendation for Key Derivation Using Pseudorandom Functions," SP 800-108 Rev. 1.
  6. J. Kelsey, B. Schneier, and N. Ferguson, "Yarrow-160: Notes on the Design and Analysis of the Yarrow Cryptographic Pseudorandom Number Generator," SAC 1999.
  7. J. Zhu, T. Park, P. Isola, A.A. Efros, "Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks," ICCV 2017. (مذكور كمثال على التقييم المنهجي الدقيق).
  8. NCC Group, "Password Storage Cheat Sheet," OWASP Foundation. (مذكور كمصدر لتوجيهات سياسة كلمات المرور العملية).