كلمات المرور هي الحلقة الأضعف في أمان الحسابات. يمكن اختراقها عبر التصيد الاحتيالي، أو تسريبها، أو إعادة استخدامها، أو نسيانها. لهذا السبب أضفنا دعم WebAuthn Passkeys - وهي طريقة مصادقة بدون كلمة مرور مقاومة للتصيد الاحتيالي وأكثر أماناً وراحة في الوقت نفسه.
ما هي Passkeys؟
Passkeys هي بيانات اعتماد مشفرة مخزنة على جهازك (الهاتف، الكمبيوتر المحمول، مفتاح الأمان) تستبدل كلمات المرور للمصادقة. تستخدم معيار WebAuthn (جزء من FIDO2) وتوفر عدة مزايا:
- مقاومة للتصيد الاحتيالي - Passkeys مرتبطة بنطاق الموقع، لذا لا يمكن استخدامها على المواقع المزيفة
- لا توجد أسرار للتسريب - يتم تخزين المفتاح العام فقط على الخادم
- مرتبطة بالجهاز - المفتاح الخاص لا يغادر جهازك أبداً
- محمية بيومترياً - عادة ما تكون محمية بـ Face ID أو Touch ID أو Windows Hello
- مزامنة عبر الأجهزة - المنصات الحديثة تزامن Passkeys عبر الأجهزة من خلال حسابات iCloud أو Google أو Microsoft
تنفيذنا
قمنا بدمج دعم WebAuthn Passkeys في منظومة المصادقة الحالية django-allauth، مع توفير نقاط نهاية API للويب والهاتف المحمول.
تدفق التسجيل
عندما يسجل المستخدم Passkey جديد، يعمل التدفق كالتالي:
- يطلب العميل خيارات التسجيل من الخادم
- يولد الخادم تحدياً مع معلومات المستخدم والطرف المعتمد
- واجهة WebAuthn API في المتصفح تطلب من المستخدم (البيومترية أو مفتاح الأمان)
- يرسل العميل بيانات الاعتماد إلى الخادم
- يتحقق الخادم ويخزن المفتاح العام
| |
تدفق المصادقة
للمصادقة الثنائية باستخدام Passkey:
- يكمل المستخدم المصادقة الأولية (اسم المستخدم/كلمة المرور أو تسجيل الدخول الاجتماعي)
- يعيد الخادم تحدياً للتحقق من WebAuthn
- يطلب المتصفح Passkey (لمسة بيومترية)
- يتم التحقق من بيانات الاعتماد مقابل المفتاح العام المخزن
- المستخدم مصادق عليه بالكامل
| |
إدارة Passkeys
يمكن للمستخدمين إدارة Passkeys المسجلة لديهم:
- عرض جميع Passkeys مع تاريخ التسجيل وآخر استخدام
- إعادة تسمية Passkeys لتسهيل التعرف عليها (مثل “iPhone”، “MacBook”)
- حذف Passkeys (مع الحماية من إزالة آخر مصادق)
| |
نقاط نهاية API
توفر واجهة REST API الخاصة بنا دعماً كاملاً لـ WebAuthn لتطبيق الهاتف المحمول:
| نقطة النهاية | الطريقة | الوصف |
|---|---|---|
/api/webauthn/register/options/ | GET | الحصول على تحدي التسجيل |
/api/webauthn/register/complete/ | POST | إكمال التسجيل |
/api/webauthn/authenticate/options/ | GET | الحصول على تحدي المصادقة |
/api/webauthn/verify/ | POST | التحقق من بيانات الاعتماد لـ 2FA |
/api/webauthn/ | GET | عرض Passkeys المسجلة |
/api/webauthn/<id>/ | PATCH | إعادة تسمية Passkey |
/api/webauthn/<id>/ | DELETE | حذف Passkey |
اعتبارات الأمان
رموز الاسترداد
عندما يسجل المستخدم أول مصادق له (Passkey أو TOTP)، نقوم تلقائياً بإنشاء رموز الاسترداد. يمكن استخدام هذه الرموز ذات الاستخدام الواحد إذا أصبحت جميع طرق المصادقة الأخرى غير متاحة:
| |
منع القفل
لا يمكن للمستخدمين حذف آخر Passkey لديهم إذا كان ذلك سيتركهم بدون أي طريقة مصادقة ثنائية:
| |
المراقبة
نتتبع استخدام Passkeys عبر مقاييس Datadog لمراقبة الأمان:
| |
دعم المتصفحات
WebAuthn مدعوم في جميع المتصفحات الحديثة:
- Chrome 67+
- Firefox 60+
- Safari 13+
- Edge 79+
- Chrome للهاتف المحمول، Safari، Firefox
للمتصفحات الأقدم، يمكن للمستخدمين الاستمرار في استخدام TOTP (تطبيقات المصادقة) أو رموز الاسترداد.
تجربة المستخدم
إضافة Passkey تستغرق ثوانٍ فقط:
- اذهب إلى الإعدادات → الأمان → المصادقة الثنائية
- انقر على إضافة Passkey
- سمِّ جهازك (مثل “iPhone 15”)
- قم بالمصادقة باستخدام Face ID / Touch ID / Windows Hello
- تم! تم تسجيل Passkey الخاص بك
تسجيلات الدخول المستقبلية تتطلب فقط تأكيداً بيومترياً - لا حاجة لكتابة كلمات المرور أو نسخ الرموز من تطبيقات المصادقة.
لماذا اخترنا Passkeys
| الطريقة | خطر التصيد | تجربة المستخدم | الاسترداد |
|---|---|---|---|
| كلمات المرور | عالي | سيئة (منسية، ضعيفة) | إعادة تعيين بالبريد الإلكتروني |
| SMS 2FA | متوسط (تبديل SIM) | مقبولة | رقم الهاتف |
| تطبيقات TOTP | منخفض | إدخال الرمز يدوياً | مفاتيح احتياطية |
| Passkeys | منخفض جداً | ممتازة | رموز الاسترداد |
تمثل Passkeys مستقبل المصادقة. إنها مدعومة بالفعل من منصات Apple و Google و Microsoft، مما يجعلها متاحة لجميع مستخدمينا تقريباً.
هل أنت مستعد للتخلص من كلمات المرور؟ فعّل Passkeys في إعدادات الأمان الخاصة بك!