معظم لوائح حماية البيانات في المنطقة، سواء نظام حماية البيانات الشخصية السعودي (PDPL) أو قانون حماية البيانات الإماراتي، تفرض على الشركات اتخاذ "تدابير تقنية مناسبة" لحماية بيانات المستخدمين دون أن تُسمّي خوارزمية بعينها — القرار التقني يبقى بيد فرق الهندسة. ومنذ فوز Argon2 بمسابقة Password Hashing Competition عام 2015، أصبح هذا القرار شبه محسوم: توصي OWASP به كخيار أول قبل bcrypt، وتدعمه بوابات الدفع الإقليمية الحديثة وتطبيقات الفنتك في أنظمتها الخلفية.
لماذا الذاكرة لا تقل أهمية عن الوقت
يكتفي bcrypt وPBKDF2 بإبطاء الحوسبة فقط. أما Argon2 فيُجبر كل محاولة تخمين على حجز كمية محددة من ذاكرة RAM — وهذا ما يُسمى دالة memory-hard. مزرعة وحدات معالجة رسومية (GPU) مؤجرة على السحابة توازي ملايين العمليات الحسابية البسيطة بتكلفة زهيدة، لكن موازاة الوصول المتزامن إلى ذاكرة كبيرة أغلى بكثير: الذاكرة، على عكس أنوية المعالجة، محدودة فعليًا على كل بطاقة.
ثلاثة أنواع: d وi وid
- Argon2d — الوصول إلى الذاكرة يعتمد على كلمة المرور نفسها، ما يمنح أقصى مقاومة لهجمات GPU لكنه يفتح احتمالًا نظريًا لهجمات القناة الجانبية.
- Argon2i — الوصول إلى الذاكرة مستقل عن كلمة المرور، ما يغلق تلك الثغرة مقابل مقاومة أقل قليلًا لـ GPU.
- Argon2id — يجمع بين الأسلوبين في مراحل مختلفة من الحساب. هذا هو النوع الذي يوصي به RFC 9106 وتستخدمه معظم الأنظمة افتراضيًا، بما فيها دالة
PASSWORD_ARGON2IDفي PHP.
ثلاثة معاملات مستقلة
خلافًا لمعامل "التكلفة" الواحد في bcrypt، يتيح Argon2 ضبط الذاكرة والتكرارات والتوازي كلٍّ على حدة. هذا مفيد عمليًا: دالة serverless بذاكرة محدودة يمكنها التعويض بزيادة التكرارات، بينما خادم مصادقة مخصص بذاكرة وفيرة يمكنه فعل العكس — مرونة لا يوفرها معامل تعقيد واحد.
لماذا نحتاج هذا
- اختيار خوارزمية حديثة لنظام مصادقة جديد بدلًا من MD5 أو SHA-256 المجردة.
- فهم لماذا يجعل Argon2 كسر كلمات المرور على عتاد GPU مؤجر أو أجهزة تعدين العملات المشفرة أغلى بشكل خاص.
- التخطيط للانتقال من bcrypt أو PBKDF2 كجزء من مراجعة أمنية.
فخ معامل التوازي
يبدو التوازي مكسبًا مجانيًا — مسارات أكثر، تجزئة أسرع على خادم متعدد الأنوية. لكن مهاجمًا يملك العتاد نفسه متعدد الأنوية يحصل على التسريع نفسه في كل محاولة. ضبط التوازي على العدد الفعلي لأنوية الخادم آمن؛ رفعه «احتياطيًا» يمنح المهاجم خصمًا مكافئًا فقط.