جدول المحتويات
1. المقدمة
تسلط التقارير المستمرة عن تسريبات حسابات وكلمات مرور المواقع الضوء على الأهمية القصوى لأمن المعلومات وكلمات المرور. بينما تشكل الثغرات الأمنية في المواقع عاملًا، فإن الأمن الجوهري لكلمة المرور نفسها هو الأهم. تشمل ممارسات كلمات المرور غير الآمنة الشائعة: كلمات المرور القائمة على الكلمات المفتاحية، واستخدام العبارات الشائعة، ودمج المعلومات الشخصية، وإعادة استخدام كلمة المرور. إن صعود الذكاء الاصطناعي ونماذج اللغة الكبيرة يمكّن المهاجمين بشكل أكبر من تخمين كلمات المرور بفعالية أكبر.
يقترح هذا البحث مُوَلِّد كلمات مرور آمنة قائم على مُوَلِّدات الأرقام العشوائية الزائفة الآمنة تشفيريًا (PRNGs). يقوم ببناء مُوَلِّدات الأرقام العشوائية الزائفة باستخدام رمز المصادقة على الرسائل المشفر بالمفتاح (HMAC)، أو رمز المصادقة على الرسائل القائم على التشفير (CMAC)، أو رمز المصادقة على الرسائل KECCAK (KMAC) لتوليد أرقام عشوائية آمنة، والتي تُستخدم بعد ذلك لإنتاج كلمات المرور. يتم التحقق من العشوائية المُنْتَجَة مقابل معيار NIST SP 800-90B من خلال اختبارات الإنتروبيا واختبارات التوزيع المستقل والمتماثل (IID).
2. استعراض الأدبيات
2.1. مُوَلِّد الأرقام العشوائية الزائفة القائم على المولد التطابقي الخطي
يُستخدم المولد التطابقي الخطي (LCG) بشكل شائع في لغات مثل C وJava، حيث يولد تسلسلاً عبر علاقة التكرار: $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$، باستخدام البذرة $k$. إنها غير آمنة حيث يمكن عكس الحالة: $f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$، مما يكشف البذرة والتسلسل بأكمله.
2.2. مُوَلِّدات الأرقام العشوائية الزائفة الآمنة
صُممت مُوَلِّدات الأرقام العشوائية الزائفة التشفيرية لتكون غير قابلة للتنبؤ، حتى عندما يكون جزء من المخرجات معروفًا.
2.2.1. مُوَلِّد الأرقام العشوائية الزائفة القائم على HMAC
يعتمد الأمن على الخاصية أحادية الاتجاه لوظائف التجزئة (مثل SHA2، SHA3). بالنسبة للمفتاح $k$ والرسالة $M$، يتم حساب HMAC كالتالي: $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$. يتم استخدام وضع العداد لتوليد كتل متعددة لمخرجات أطول.
2.2.2. مُوَلِّد الأرقام العشوائية الزائفة القائم على CMAC
يعتمد الأمن على معيار التشفير المتقدم (AES). يعمل في وضع سلسلة كتل التشفير (CBC). كتلة النص المشفر النهائية بعد معالجة الرسالة المبطنة تُستخدم كرمز MAC/المخرج: $r_{cmac}(k, Split(M))$.
2.2.3. مُوَلِّد الأرقام العشوائية الزائفة القائم على KMAC
يعتمد على دالة التجزئة SHA-3 (KECCAK)، يوفر KMAC مخرجًا بطول متغير ويُعتبر مرشحًا قويًا للتشفير ما بعد الكم.
2.3. طرق التحقق من العشوائية
يوفر معيار NIST SP 800-90B منهجيات لتقييم مصادر الإنتروبيا. تقدير الإنتروبيا يقيس عدم القدرة على التنبؤ (الإنتروبيا الدنيا). اختبار IID يتحقق مما إذا كانت البيانات مستقلة وموزعة بشكل متماثل، وهو افتراض رئيسي للعديد من الاختبارات الإحصائية. اجتياز هذه الاختبارات يتحقق من جودة مصدر العشوائية.
3. مُوَلِّد كلمات المرور الآمنة المقترح
تتضمن بنية النظام: 1) يمكن للمستخدم اختياريًا تقديم رسالة للتجزئة (TBHM). 2) يستخدم مُوَلِّد الأرقام العشوائية الزائفة التشفيري (القائم على HMAC/CMAC/KMAC) رسالة TBHM (والمفتاح) لتوليد تدفق بتات عالي الإنتروبيا. 3) يتم تعيين تدفق البتات هذا على مجموعة أحرف محددة من قبل المستخدم (مثل الأحرف الأبجدية الرقمية + الرموز) بطول محدد لإنتاج كلمة المرور النهائية. يتم تحليل الأمن بمقارنة فضاء البحث لكلمة المرور مع قوة مفاتيح AES-128 وAES-256.
4. التجارب والنتائج
4.1. الإعداد التجريبي
تم تنفيذ الأنواع الثلاثة من مُوَلِّدات الأرقام العشوائية الزائفة (HMAC-SHA256، CMAC-AES-128، KMAC256). تم توليد تسلسلات كبيرة من البتات العشوائية للاختبار.
4.2. نتائج التحقق من العشوائية
النتيجة الرئيسية: نجحت هياكل مُوَلِّدات الأرقام العشوائية الزائفة الثلاثة المقترحة (HMAC، CMAC، KMAC) في اجتياز كل من اختبار التحقق من الإنتروبيا واختبارات IID وفقًا لمعيار NIST SP 800-90B. يوضح هذا تجريبيًا أن الأرقام المُنْتَجَة تمتلك عشوائية كافية وجودة إحصائية مناسبة لتوليد كلمات مرور تشفيرية.
4.3. تحليل الأداء
تم تقييم الكفاءة الحسابية. بينما جميع الطرق قابلة للتطبيق، قد يُظهر KMAC وHMAC ملفات أداء مختلفة اعتمادًا على المنصة، حيث يكون CMAC القائم على AES غالبًا أسرع على الأجهزة التي تحتوي على تسريع AES.
5. الخاتمة والعمل المستقبلي
قدمت هذه الورقة إطار عمل لمُوَلِّد كلمات مرور آمنة مبني على مُوَلِّدات الأرقام العشوائية الزائفة التشفيرية (HMAC، CMAC، KMAC). تم التحقق من العشوائية المُنْتَجَة باستخدام معايير NIST، مما يؤكد ملاءمتها. يشمل العمل المستقبلي دمج المُوَلِّد في إضافات المتصفح أو مديري كلمات المرور، واستكشاف استخدامه في توليد مفاتيح تشفيرية تتجاوز كلمات المرور، واختبار الصمود ضد هجمات التخمين القائمة على الذكاء الاصطناعي الناشئة.
6. التحليل الأصلي والتعليقات الخبيرة
الفكرة الأساسية: هذه الورقة ليست عن اختراع شيفرة جديدة؛ إنها حل هندسي عملي ومتوافق مع المعايير لمشكلة إنسانية منتشرة: إنشاء كلمات مرور ضعيفة. تكمن قيمتها الأساسية في التطبيق الصحيح للبدائيات التشفيرية الراسخة (HMAC، CMAC، KMAC) كمُوَلِّدات أرقام عشوائية زائفة موصى بها من NIST والتحقق بدقة من المخرجات - وهي خطوة غالبًا ما يتم تجاهلها في مُوَلِّدات كلمات المرور "افعلها بنفسك". في عصر يمكن فيه للذكاء الاصطناعي نمذجة أنماط البيانات الشخصية (كما هو موضح في الأبحاث حول تخمين كلمات المرور المدعوم بالذكاء الاصطناعي مثل PassGAN)، فإن تحويل مصدر عشوائية كلمة المرور من العقول البشرية إلى خوارزميات تشفيرية تم التحقق منها هو ترقية أمنية غير قابلة للتفاوض.
التدفق المنطقي: المنطق سليم ويتبع قالب التشفير التطبيقي الكلاسيكي: 1) تحديد الثغرة (كلمات المرور الضعيفة التي يولدها الإنسان). 2) اختيار الأدوات التشفيرية المناسبة والمختبرة (مُوَلِّدات الأرقام العشوائية الزائفة من NIST SP 800-108). 3) بناء نظام (تعيين مخرج مُوَلِّد الأرقام العشوائية الزائفة إلى مجموعة أحرف). 4) التحقق من المكون الأساسي (مخرج مُوَلِّد الأرقام العشوائية الزائفة عبر NIST SP 800-90B). تعكس هذه المنهجية أفضل الممارسات في تصميم الأنظمة الآمنة، على غرار كيفية قيام المكتبات الحديثة مثل `libsodium` بإعطاء الأولوية للبدائيات القوية والآمنة افتراضيًا.
نقاط القوة والضعف:
نقاط القوة: التحقق الدقيق من NIST هو أقوى ميزة في الورقة، حيث يوفر مصداقية تجريبية. استخدام KMAC يتوافق مع الاستعداد لما بعد الكم. إدخال المستخدم الاختياري (TBHM) هو ميزة ذكية، تسمح بإعادة توليد كلمة المرور بشكل حتمي إذا لزم الأمر، دون المساس بالأمن إذا كان مُوَلِّد الأرقام العشوائية الزائفة قويًا.
نقاط الضعف: القيد الأساسي للورقة هو نطاقها كدليل على المفهوم. تفتقر إلى تحليل تنفيذ واقعي يتناول القنوات الجانبية (هجمات التوقيت أثناء التعيين)، وإدارة المفاتيح الآمنة لمُوَلِّد الأرقام العشوائية الزائفة، وتحديات التكامل مع سياسات كلمات المرور الحالية. علاوة على ذلك، بينما تقارن قوة كلمة المرور بـ AES، فإنها لا تحلل بعمق فقدان الإنتروبيا أثناء عملية تعيين مجموعة الأحرف، وهي تفصيلة حاسمة لكلمات المرور القصيرة.
رؤى قابلة للتنفيذ: بالنسبة للممارسين في مجال الأمن، الاستنتاج واضح: توقف عن السماح للمستخدمين أو وظائف العشوائية الساذجة باختيار كلمات المرور. نفذ مُوَلِّد كلمات مرور في الخلفية مثل هذا لإعادة تعيين "نسيت كلمة المرور" أو إعداد المستخدم الأولي. يمكن تخصيص اختيار مُوَلِّد الأرقام العشوائية الزائفة المحدد: استخدم CMAC-AES للسرعة على الخوادم الشائعة، وKMAC للقلق الكمي طويل الأمد. والأهم من ذلك، يجب أن تتضمن أي عملية تبني إدارة بذرة/مفتاح مُوَلِّد الأرقام العشوائية الزائفة بنفس الدقة مثل أي مفتاح تشفيري. يجب دمج هذا العمل في أطر عمل مثل OWASP's Authentication Cheat Sheet كنمط موصى به لتوليد كلمات مرور آمنة.
7. التفاصيل التقنية والصياغة الرياضية
يعتمد الأمن على صيغ مُوَلِّدات الأرقام العشوائية الزائفة. بالنسبة لـ HMAC:
$r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$
حيث $h$ هي دالة تجزئة مثل SHA-256، و $ipad/opad$ ثوابت، و $k$ هو المفتاح. لتوليد كلمة المرور، يتم دمج عداد $i$ في $M_i$ لتوليد كتل متعددة: $M_i = i || \text{Label} || 0x00 || \text{Context} || L$. ثم يتم تحويل بتات المخرجات إلى فهرس صحيح لاختيار الأحرف من المجموعة $C$ ذات الحجم $N$: $\text{index} = \text{random_bits} \mod N$.
8. إطار التحليل ومثال تطبيقي
السيناريو: تحتاج خدمة ويب إلى توليد كلمة مرور قوية مكونة من 12 حرفًا لحساب مستخدم جديد.
تطبيق الإطار:
1. تحديد المعلمات: مجموعة الأحرف $C$ = 94 حرفًا ASCII قابلًا للطباعة. الطول $L=12$. اختيار مُوَلِّد الأرقام العشوائية الزائفة: HMAC-SHA256.
2. توليد العشوائية: جمع الإنتروبيا للبذرة $k$. استخدام TBHM = "serviceX_user123". تشغيل مُوَلِّد الأرقام العشوائية الزائفة القائم على HMAC في وضع العداد لإنتاج $\lceil log_2(94^{12}) \rceil \approx 79$ بتًا من الإنتروبيا.
3. تعيين إلى كلمة المرور: استخدام تدفق البتات البالغ 79 بتًا لتوليد 12 فهرسًا، يختار كل منها حرفًا من $C$.
4. فحص التحقق: إنتروبيا كلمة المرور المُنْتَجَة هي ~78.5 بت، قابلة للمقارنة مع مفتاح متماثل ~80 بت، أقوى بكثير من أي كلمة مرور يختارها الإنسان.
سير العمل بدون كود: يمكن تغليف هذه العملية في استدعاء API من جانب الخادم، مما يعزل التشفير تمامًا عن المستخدم النهائي.
9. التطبيقات المستقبلية والاتجاهات
1. محرك أساسي لمدير كلمات المرور: دمج هذا المُوَلِّد كمحرك افتراضي لإنشاء كلمات المرور في مديري كلمات المرور مفتوحة المصدر والتجارية (مثل Bitwarden، 1Password).
2. الانتقال إلى ما بعد الكم: التوليد القائم على KMAC هو حل جاهز لتوليد كلمات مرور ورموز مقاومة للكم، كما أوصى مشروع NIST للتشفير ما بعد الكم.
3. إنترنت الأشياء والأمن المضمن: يمكن لإصدارات CMAC-AES الخفيفة توليد كلمات مرور أجهزة فريدة ومفاتيح API في بيئات مقيدة.
4. سلسلة الكتل والويب 3: توليد بذور عبارات ذاكرة عشوائية آمنة لمحافظ العملات المشفرة باستخدام مصدر عشوائي قابل للتحقق.
5. التوحيد القياسي: اقتراح هذه المنهجية لهيئات المعايير مثل IETF أو FIDO لتضمينها في بروتوكولات المصادقة من الجيل التالي.
10. المراجع
- M. Bishop, "Computer Security: Art and Science", Addison-Wesley, 2018.
- NIST, "Special Publication 800-63B: Digital Identity Guidelines", 2017.
- M. L. Mazurek et al., "Measuring Password Guessability for an Entire University", IEEE S&P, 2013.
- B. Ur et al., "How Does Your Password Measure Up? The Effect of Strength Meters on Password Creation", USENIX Security, 2012.
- NIST, "Special Publication 800-108: Recommendation for Key Derivation Using Pseudorandom Functions", Rev. 1, 2022.
- NIST, "Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation", 2018.
- J. Kelsey, B. Schneier, D. Wagner, "Secure Applications of Low-Entropy Keys", ISW, 1997.
- FIPS PUB 202, "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions", 2015.
- B. Hitaj et al., "PassGAN: A Deep Learning Approach for Password Guessing", NeurIPS Workshop, 2017.
- D. J. Bernstein et al., "The Security Impact of a New Cryptographic Random Number Generator", 2020.