تسجيل الدخول بدون كلمة مرور باستخدام مفاتيح المرور

متابعةً لـ Support passwordless login with Passkeys وبضعة أسابيع من الاختبار الداخلي، يسعدنا أن نعلن أن دعم مفاتيح المرور قد وصل الآن إلى Discourse.

ما هي مفاتيح المرور؟

مفاتيح المرور هي بديل أكثر أمانًا وأبسط لاستخدام كلمات المرور للمصادقة. أصبح إنشاء واستخدام مفتاح مرور مدعومًا على نطاق واسع الآن عبر المنصات والمتصفحات. مقارنة بكلمات المرور، تتمتع مفاتيح المرور بأمان مدمج أفضل بسبب بيانات الاعتماد القوية التي تم إنشاؤها بواسطة المنصة والتحقق من الهوية البيومترية (مثل TouchID، FaceID، PIN أو كلمة مرور الجهاز). مفاتيح المرور آمنة أيضًا من التسريبات من جانب الخادم (الجزء الخاص من المفتاح لا يغادر الجهاز أبدًا) أو التصيد الاحتيالي (كل مفتاح مرتبط بموقع ويب/خدمة واحدة فقط).

طرح الميزة

إذا كنت عميلاً مستضافًا، فسيتم طرح دعم مفاتيح المرور على نسختك خلال الأيام القليلة القادمة. إذا كنت ترغب في تمكينها الآن، فيرجى التواصل مع @team هنا على meta أو عبر البريد الإلكتروني إلى team@discourse.org.

إذا كنت تستضيف Discourse بنفسك، لاحظ أن الميزة سيتم تمكينها افتراضيًا في Discourse core قريبًا تم تمكينها الآن افتراضيًا في core اعتبارًا من هذا الالتزام. إذا كنت ترغب في تعطيلها، يمكنك القيام بذلك عبر وحدة تحكم Rails:

launcher enter app
rails c
SiteSetting.enable_passkeys = false

لاحظ أنه لا يمكن استخدام مفاتيح المرور إلا على نسخ Discourse التي تم تمكين تسجيل الدخول المحلي فيها. إذا كانت نسختك لا تستخدم تسجيل الدخول المحلي، فإن ميزة مفاتيح المرور ليس لها تأثير.


بمجرد تمكين الميزة، يمكن للمستخدمين إضافة مفاتيح مرور إلى حساباتهم عن طريق الانتقال إلى علامة التبويب “الأمان” في تفضيلات المستخدم الخاصة بهم:

بمجرد تسجيل مفتاح مرور، يمكنهم تسجيل الدخول به عبر القائمة المنسدلة الملء التلقائي تحت حقل اسم المستخدم (1) أو عن طريق النقر فوق الزر “تسجيل الدخول باستخدام مفتاح مرور” (2).

مزيد من التفاصيل

هناك العديد من الموارد والأدلة المتاحة حول مفاتيح المرور. لقد وجدت أن ما يلي هو الأكثر فائدة:

تحسينات مستقبلية محتملة

بمجرد اكتمال الطرح الأولي للميزة، قد نفكر في إجراء التحسينات التالية:

  • السماح بإعداد مفتاح مرور عند إنشاء الحساب
  • السماح باستخدام مفاتيح المرور عند تأكيد الإجراءات الحساسة (مدعوم حاليًا في علامة التبويب “الأمان” في تفضيلات المستخدم ولكن ليس في بعض الشاشات الخاصة بالمسؤول فقط)
  • السماح بإزالة كلمات المرور تمامًا (على أساس كل مستخدم أو كل نسخة؟)
32 إعجابًا

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

3 إعجابات

شكراً @Be0

في معظم التطبيقات الحالية، لا يتم نشر مفاتيح المرور بهذه الطريقة بعد. يتم التعامل معها بشكل مستقل عن المصادقة الثنائية، انظر هذا التقرير عن نهج يوتيوب. أعتقد أن الصناعة ستتكيف ببطء مع هذا الأمر.

هناك تغييران مطلوبان لكي يعمل هذا كما تتوقع:

الخطوة 1: السماح باستخدام مفاتيح المرور كمصادقة ثنائية (حاليًا، كما لاحظت، يجب تسجيل مفاتيح الأمان بشكل مستقل)
الخطوة 2: فرض المصادقة الثنائية على تسجيلات الدخول بكلمة المرور عندما يضيف المستخدم مفتاح مرور
الخطوة 1 منطقية بالنسبة لي، وليست مزعجة. الخطوة 2 منطقية أيضًا، ولكنها مزعجة بعض الشيء، إذا قام المستخدم بحذف مفتاح المرور من متصفحه (أو لم يكن لديه على جهاز معين)، فسيتم حظر الوصول.

أعتقد أنه من المنطقي النظر في هذا الأمر.

7 إعجابات

مرحباً، عند تصفح موقع Discourse الخاص بي على الهاتف المحمول (فايرفوكس)، لا يتم دعم المفاتيح السريّة، هل هذا مقصود؟

4 إعجابات

أعتقد أن فايرفوكس يعمل بنشاط على إضافة دعم مفاتيح المرور بشكل عام، لكنه لا يزال غير مكتمل بنسبة 100% إذا كنت أقرأ هذا الرسم البياني بشكل صحيح.

اعتمادًا على إصدارك ونظام التشغيل لديك، قد لا يكون متاحًا بعد. لقد أجريت اختبارًا سريعًا على macOS و iOS، وكان المصادقة باستخدام مفاتيح المرور متاحة وعملية بالنسبة لي هنا على meta.discourse.org.

5 إعجابات

تم تقسيم منشور إلى موضوع جديد: مشاكل استخدام المفاتيح السرية مع vaultwarden

إذا لم تتضمن وظيفة الإكمال التلقائي للمتصفح مفتاح المرور لسبب ما، يمكنك النقر فوق الزر “تسجيل الدخول باستخدام مفتاح المرور”.

3 إعجابات

يمكنك كتابة رسالة خاصة إلى @team هنا أو إرسال بريد إلكتروني إلى team@discourse.org ويمكننا تعطيل هذه الميزة لك. لا نوصي بالقيام بذلك، حيث تتبنى العديد من الخدمات على الويب مفاتيح المرور كخيار أكثر أمانًا للمصادقة.

4 إعجابات

هل هناك خطط لتعطيل كلمة المرور تمامًا في النهاية (ويفضل أن يكون ذلك على أساس إعدادات الحساب، يمكنني أن أرى إجبار المواقع بأكملها على القيام بذلك لن ينتهي بشكل جيد)؟ لأن وجود كل من مفتاح المرور وكلمة المرور نشطين يحد من فائدة مفتاح المرور. يمكنك التخفيف من ذلك عن طريق إنشاء كلمة مرور معقدة للغاية وعدم استخدامها أبدًا، ولكن هذا مجرد تجاوز لنقطة مفاتيح المرور.

4 إعجابات

نعم، أعتقد أن هذا سيكون لطيفًا (وتحسينًا للأمان للحساب). سأضيفه الآن تحت قسم “التحسينات المستقبلية المحتملة” في المنشور الأصلي.

3 إعجابات

هذا أمر بالغ الأهمية لسلامة مفاتيح المرور. إنها ليست أكثر من مجرد راحة إذا لم أتمكن من تعطيل تسجيل الدخول بكلمة المرور.

إعجابَين (2)

إذا فهمت آلية المفتاح المعتمد بشكل صحيح، فأنت بحاجة إلى تثبيت حاوية موثوقة مثل مدير كلمات المرور لتخزين مفاتيح الوصول. التخلص من كلمات المرور يفترض أن جميع المستخدمين قد قاموا بتثبيت مثل هذا المدير، فكيف سيسجل الدخول المستخدمون الذين لم يفعلوا ذلك؟

إعجاب واحد (1)

بنفس الطريقة التي يصل بها الأشخاص الذين لا يستخدمون المصادقة الثنائية إلى المواقع التي تتطلب المصادقة الثنائية - لا يمكنهم الوصول إليها.

ليس هذا مصدر قلق حقيقي لأن Chrome و Safari و Windows و iPhones و Android و Yubi وما إلى ذلك كلها بدائل لمديري كلمات المرور (التي يجب أن تستخدمها بالفعل في عام 2024 بغض النظر) وجميعها تعمل مع مفاتيح المرور.

لم أقترح أيضًا إجبار كل مستخدم على عدم امتلاك كلمة مرور (على الرغم من أنني لا أمانع في ذلك) ولكن إذا كنت أنت، مستخدم مفتاح المرور، لا يمكنك تعطيل كلمة المرور الخاصة بك، فإن مفتاح المرور يخدم غرضًا أقل بكثير ولا تزال قابلاً للتصيد الاحتيالي بالكامل.

إعجاب واحد (1)

إذا اخترت مفاتيح المرور لـ Discourse، فلن أستخدم كلمة المرور الخاصة بي بعد الآن، فكيف يمكن أن أكون عرضة للتصيد الاحتيالي؟ أفهم أن خطر الهجوم الخبيث أو هجوم القوة الغاشمة على تسجيل الدخول بكلمة المرور سيظل قائمًا، واقتراحك لتعطيله لكل مستخدم صالح، ولكن ليس عن طريق التصيد الاحتيالي؟

إعجاب واحد (1)

هل هناك أي تحديثات حول إمكانية دعم إنشاء الحسابات باستخدام مفاتيح المرور فقط وبدون كلمة مرور؟ يبدو أن دعم مفاتيح المرور عديم الجدوى تقريبًا عندما يُطلب منك وجود كلمة مرور على أي حال.

5 إعجابات

هل من الممكن معرفة عدد الأشخاص (إن وجد) الذين يستخدمون هذه الميزة؟

سيكون من الجيد إذا كان يمكن تعطيله باستخدام إعداد موقع عادي.

إعجاب واحد (1)

يمكنك معرفة عدد المفاتيح التي تم إنشاؤها باستخدام أمر Rails هذا:

UserSecurityKey.where(factor_type: 1).count
إعجاب واحد (1)

شكرا لك. آسف على السؤال الأساسي، ولكن هل هذا شيء من النوع الذي يتم إدخاله بعد ما يلي؟

launcher enter app
rails c
إعجابَين (2)

للمرجع الخاص بي بقدر ما هو أي شيء آخر، استخدمت:

  • cd /var/discourse
  • ./launcher enter app (لأنه بدون ./ قال “launcher: command not found”)
  • rails c (انتظرت قليلاً)
  • SiteSetting.enable_passkeys = false
  • Control-D للخروج من وحدة تحكم Rails
  • Exit للخروج من التطبيق

كانت النتيجة النهائية هي اختفاء خيار استخدام مفتاح المرور، كما هو متوقع. شكراً.

إعجاب واحد (1)

كان هناك شخص واحد قام بإنشاء مفتاح مرور.

حصلت على معرف المستخدم باستخدام UserSecurityKey.where(factor_type: 1) واسم المستخدم باستخدام مستكشف البيانات.

هل هناك أي شيء نحتاج إلى القيام به لضمان عدم تعطل أي شيء عن طريق التخلص من خيار المفتاح؟

هل سيتم تسجيل خروج المستخدم، أم أنه لن يتمكن ببساطة من تسجيل الدخول باستخدام المفتاح بعد تسجيل الخروج؟

هل سيكون لدى المستخدم كلمة مرور عادية بالفعل، أم أنه سيكون قادرًا على إنشاء واحدة على الأقل الآن؟

إعجاب واحد (1)