جدول المحتويات
1. المقدمة
يتناول هذا البحث المشكلة المستمرة لتسريب كلمات المرور وما ينتج عنها من مخاطر الكشف عن البيانات الشخصية. بينما يُعد أمان المواقع الإلكترونية عاملاً مؤثرًا، فإن القوة الجوهرية لكلمة المرور نفسها هي العامل الأهم. تشمل نقاط الضعف الشائعة كلمات المرور القائمة على الكلمات المفتاحية والعبارات الشائعة ومعلومات المستخدم وإعادة استخدام كلمة المرور. كما أن صعود الذكاء الاصطناعي ونماذج اللغة الكبيرة يمنح المهاجمين قدرة أكبر على تخمين كلمات المرور بفعالية أعلى.
استجابةً لذلك، تقدم هذه الورقة البحثية مولد كلمات مرور آمنًا مبنيًا على مولد أرقام عشوائية زائفة آمن (PRNG). يتم بناء نواة مولد الأرقام العشوائية الزائفة باستخدام دوال تشفير أولية مثل HMAC أو CMAC أو KMAC لتوليد أرقام عشوائية عالية الجودة، والتي تُستخدم بعد ذلك لإنشاء كلمات المرور. يسمح النظام بإدخال اختياري من المستخدم (الرسالة المراد تجزئتها، TBHM) لبدء العملية. المساهمات الرئيسية هي:
- بناء مولدات أرقام عشوائية زائفة آمنة قائمة على HMAC و CMAC و KMAC.
- تحليل أمان كلمات المرور المُنشأة تحت مجموعات أحجام وأطوال مختلفة، ومقارنة قوتها بمفاتيح AES-128 و AES-256.
- التحقق التجريبي من العشوائية باستخدام معيار NIST SP 800-90B، مع التركيز على اختبارات الإنتروبيا واختبارات التوزيع المستقل والمتماثل (IID).
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، والذي يُعد المعيار الفعلي للتحقق من مصادر الإنتروبيا. ويشمل مجموعتي تحقق حاسمتين:
- تقييم الإنتروبيا: يُقدر مقدار الإنتروبيا الدنيا في تيار البتات المُنشأ، مما يشير إلى عدم القدرة على التنبؤ به.
- اختبار IID (التوزيع المستقل والمتماثل): مجموعة من الاختبارات الإحصائية (مثل اختبار كاي مربع، كولموغوروف-سميرنوف) لتحديد ما إذا كانت بتات المخرج مستقلة إحصائيًا وتتبع توزيعًا متماثلًا.
3. مولد كلمات المرور الآمن المقترح
هندسة النظام المقترح مباشرة وقوية:
- المدخلات/البذرة: يقبل رسالة TBHM اختيارية مقدمة من المستخدم. إذا وُفرت، تتم معالجتها؛ وإلا، يتم استخدام بذرة آمنة مولدة من النظام.
- نواة مولد الأرقام العشوائية الزائفة الآمن: يتم تغذية TBHM/البذرة في واحدة من التركيبات الثلاثة لمولدات الأرقام العشوائية الزائفة التشفيرية (القائمة على HMAC، CMAC، KMAC) لتوليد تسلسل بتات عشوائية زائفة قوي تشفيريًا.
- بناء كلمة المرور: يتم تعيين البتات العشوائية على مجموعة أحرف محددة من قبل المستخدم أو النظام (مثل الأحرف الأبجدية الرقمية + الرموز) لإنتاج كلمة مرور بالطول المطلوب.
تحليل الأمان: تجادل الورقة بأن أمان كلمة المرور المُنشأة يعتمد بشكل مباشر على إنتروبيا مخرج مولد الأرقام العشوائية الزائفة وحجم مجموعة الأحرف. تقوم بإجراء تحليل مقارن، موضحة أن كلمة مرور مكونة من 16 حرفًا من مجموعة أحجام 94 حرفًا مولدة بهذه الطريقة يمكن أن تقدم مقاومة للهجوم بالقوة الغاشمة مماثلة أو تفوق تلك الخاصة بمفاتيح AES-128 أو AES-256، بافتراض أن مخرج مولد الأرقام العشوائية الزائفة عشوائي حقًا.
4. النتائج التجريبية والتحليل
التحقق التجريبي هو نقطة قوة رئيسية في الورقة.
- التحقق من الإنتروبيا: اجتازت التسلسلات العشوائية المولدة من الأنواع الثلاثة لمولدات الأرقام العشوائية الزائفة (HMAC-SHA256، CMAC-AES256، KMAC256) تقييم الإنتروبيا وفقًا لمعيار NIST SP 800-90B، مما يظهر إنتروبيا دنيا عالية قريبة من القيمة المثالية 1 بت لكل بت من المخرج.
- التحقق من IID: اجتازت التسلسلات أيضًا مجموعة اختبار IID، مؤكدة أن البتات مستقلة إحصائيًا وموزعة بشكل متماثل، دون أنماط أو تحيزات قابلة للكشف.
- الأداء: على الرغم من أنه ليس المحور الرئيسي، تلاحظ الورقة الكفاءة الحسابية. أظهرت HMAC-SHA256 و KMAC256 سرعة متقاربة، بينما كانت CMAC-AES256 أبطأ قليلاً بسبب عمليات تشفير الكتل، ولكن جميعها كانت ضمن الحدود العملية لتوليد كلمات المرور.
وصف الرسم البياني (ضمني): سيكون رسم الأعمدة فعالاً لمقارنة تقديرات الإنتروبيا الدنيا (بالبت لكل بت) لطرق مولدات الأرقام العشوائية الزائفة الثلاثة مقابل القيمة المثالية 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). تشمل الصيغ الرئيسية:
- LCG (غير آمن): $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$
- HMAC: $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$
- HMAC في وضع العداد لمولد الأرقام العشوائية الزائفة: $M_i = i \ || \ \text{KDF} \ || \ 0x00 \ || \ M \ || \ L$
- CMAC (CBC-MAC) التكرار: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$
يقوم توليد كلمة المرور بتعيين عدد صحيح عشوائي $R$ (من مخرج مولد الأرقام العشوائية الزائفة) إلى فهرس حرف: $\text{index} = R \ \text{mod} \ |S|$، حيث $|S|$ هو حجم مجموعة الأحرف.
8. إطار التحليل ومثال تطبيقي
مثال تطبيقي: تقييم مولد كلمات مرور لنظام قديم
السيناريو: يستخدم تطبيق ويب قديم مولد LCG معدلًا لتوليد كلمات مرور مؤقتة للمستخدمين. مطلوب تدقيق أمني.
تطبيق الإطار:
- تحديد نوع مولد الأرقام العشوائية الزائفة: فحص الكود المصدري. البحث عن:
seed = (a * seed + c) % m;التأكد من أنه نوع من LCG. - تقييم الأمان التشفيري: مولد LCG حتمي وعكوس. يمكن لمهاجم يحصل على بضع كلمات مرور متتالية أن يحل المعادلة لإيجاد البذرة ويتنبأ بجميع كلمات المرور المستقبلية، مما ينتهك إرشادات NIST SP 800-63B بشأن عشوائية أدوات المصادقة.
- اقتراح العلاج باستخدام طريقة الورقة:
- مصدر البذرة: استبدال بذرة وقت النظام بمولد أرقام عشوائية زائفة آمن تشفيريًا (مثل
/dev/urandomعلى لينكس، CryptGenRandom على ويندوز). - المولد الأساسي: تنفيذ مولد أرقام عشوائية زائفة قائم على HMAC-SHA256 وفقًا لتصميم الورقة.
- التحقق: توليد عينة كبيرة (1,000,000 بت) من المولد الجديد وتشغيل مجموعة الاختبارات الإحصائية (STS) من NIST أو مقدرات الإنتروبيا من SP 800-90B للتحقق من العشوائية قبل النشر.
- مصدر البذرة: استبدال بذرة وقت النظام بمولد أرقام عشوائية زائفة آمن تشفيريًا (مثل
9. التطبيقات المستقبلية واتجاهات التطوير
تمتد المبادئ إلى ما بعد كلمات مرور المستخدم:
- توليد مفاتيح ورمز API: توليد مفاتيح API ورمز الجلسة عشوائية تشفيريًا تلقائيًا داخل هياكل الخدمات المصغرة.
- التكوينات الافتراضية الآمنة: تضمين مثل هذه المولدات في أجهزة إنترنت الأشياء أو برامج التثبيت لإنشاء كلمات مرور افتراضية قوية وفريدة للمسؤولين، مما يخفف من هجمات بيانات الاعتماد الافتراضية الواسعة الانتشار.
- التطور نحو ما بعد الكم: التركيبة القائمة على KMAC تعتمد بشكل أساسي على SHA-3 (KECCAK)، والتي تعتبر مقاومة للكم. يمكن أن يكون هذا المولد أساسًا لأنظمة "مرنة تشفيريًا". يجب على العمل المستقبلي دمج مولدات أرقام عشوائية زائفة قائمة على خوارزميات ما بعد الكم المعيارية من NIST مثل CRYSTALS-Kyber أو التوقيعات القائمة على التجزئة، بينما يستعد مجتمع التشفير لعصر الحوسبة الكمومية.
- التكامل مع مديري كلمات المرور وأنظمة الدخول الموحد (SSO): يمكن أن يكون المولد مكونًا أساسيًا في مديري كلمات المرور مفتوحة المصدر أو أنظمة الدخول الموحد (SSO)، مما يوفر مصدرًا واضحًا وقابلًا للتدقيق لعشوائية كلمات المرور.
10. المراجع
- M. Bishop, “Computer Security: Art and Science”, Addison-Wesley, 2019.
- NIST, “Special Publication 800-63B: Digital Identity Guidelines”, 2020.
- NIST, “Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation”, 2018.
- NIST, “Special Publication 800-108 Rev. 1: Recommendation for Key Derivation Using Pseudorandom Functions”, 2022.
- NIST, “FIPS 202: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions”, 2015.
- J. Kelsey, B. Schneier, D. Wagner, “Secure Applications of Low-Entropy Keys”, Information Security Workshop, 1997.
- M. Dworkin, “Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication”, NIST SP 800-38B, 2005.
- 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
- Linux Foundation, “Common Criteria Certification and Open Source”, 2023. [Online]. Available: https://www.linuxfoundation.org/