كل المقالات

TOTP: كيف تعمل الرموز أحادية الاستخدام في تطبيقات المصادقة

خدمة الهوية الرقمية الموحدة "UAE Pass" في الإمارات، إحدى أكثر منصات الهوية الحكومية الرقمية تطورًا في المنطقة، تعتمد في جوهرها على نفس فكرة TOTP: سر مشترك بين جهاز المستخدم وجهة التحقق، يُستخدم مع الوقت لإنتاج رمز مؤقت بدل الاعتماد فقط على رسالة SMS القابلة للاعتراض عبر هجمات استنساخ شريحة SIM.

سر مشترك زائد الوقت

أثناء الإعداد، يتبادل الخادم وتطبيق المصادقة مفتاحًا سريًا مشتركًا واحدًا (وهو تحديدًا ما هو مشفَّر في رمز QR). بعد ذلك، يحسب الطرفان بشكل مستقل HMAC من هذا السر والوقت الحالي بصيغة يونكس، مقرَّبًا إلى فاصل 30 ثانية — فيصلان إلى نفس الرمز دون التواصل مع بعضهما.

لماذا يعمل هذا دون إنترنت

بما أن الرمز يُحسب محليًا من السر وساعة النظام في الجهاز، لا يحتاج تطبيق المصادقة إلى اتصال شبكي لتوليد رمز. الشرط الوحيد هو أن تبقى ساعتا الخادم والهاتف متزامنتين ضمن هامش صغير مسموح به (عادةً ±30–60 ثانية).

لماذا يتغيّر الرمز كل 30 ثانية

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

لماذا نحتاج هذا

  • فهم آلية المصادقة الثنائية عند إعداد تطبيقات المصادقة أو تشخيص مشكلاتها.
  • اختبار تطبيقك الخاص لـ TOTP عند تطوير نظام مصادقة.
  • توليد رموز للاختبار الآلي دون إدخالها يدويًا من الهاتف.

ما لا يحميه TOTP

يحمي TOTP بشكل موثوق من سرقة كلمة المرور بمعزل عن الرمز، لكنه لا يحمي من التصيّد الاحتيالي الفوري (real-time phishing): إذا أدخلت الضحية كلمة المرور ورمز TOTP الحالي على موقع مزيّف، يمكن للمهاجم استخدام كلتا القيمتين فورًا على الموقع الحقيقي طالما الرمز لا يزال صالحًا. لا يحمي من هذا الهجوم سوى المفاتيح الصلبة وفق معيار FIDO2/WebAuthn، المرتبطة تشفيريًا بنطاق محدد.

جرّب الأداة