تعزّز ميزة "بيانات اعتماد الجلسة المرتبطة بالجهاز" (DBSC) عملية المصادقة من خلال إضافة أمان الجلسة المستند إلى الأجهزة.
مقدمة
تعتمد العديد من المواقع الإلكترونية على ملفات تعريف ارتباط طويلة الأمد للمصادقة على المستخدمين، ولكنّها عرضة لاختطاف الجلسات. تضيف ميزة "بيانات اعتماد الجلسة المرتبطة بالجهاز" (DBSC) طبقة من الأمان المستند إلى الأجهزة للحد من هذا الخطر، ما يضمن ربط الجلسات بأجهزة معيّنة.
هذا الدليل مخصّص للمطوّرين الذين يديرون مسارات المصادقة في تطبيقات الويب. توضّح هذه المقالة طريقة عمل إطار الموافقة والشفافية وكيفية دمجه في موقعك الإلكتروني.
طريقة عمل DBSC
على مستوى عالٍ، تقدّم خدمة DBSC زوجًا من مفاتيح التشفير المرتبطة بجهاز المستخدم. ينشئ Chrome زوج المفاتيح هذا أثناء تسجيل الدخول ويخزّن المفتاح الخاص في جهاز آمن، مثل وحدة النظام الأساسي الموثوقة (TPM)، إذا كان متاحًا. تستخدم الجلسات ملفات تعريف ارتباط قصيرة الأجل. عند انتهاء صلاحية أحد ملفات تعريف الارتباط هذه، يثبت Chrome امتلاكه للمفتاح الخاص قبل إعادة تحميلها. تربط هذه العملية استمرار الجلسة بالجهاز الأصلي.
إذا كان جهاز المستخدم لا يتيح تخزين مفاتيح الأمان، ستعود ميزة "بيانات اعتماد جلسة مرتبطة بالجهاز" إلى السلوك العادي بدون إيقاف عملية المصادقة.
نظرة عامة حول خطوات التنفيذ
لدمج DBSC في تطبيقك، عليك إجراء التغييرات التالية:
- عدِّل مسار تسجيل الدخول لتضمين عنوان
Secure-Session-Registration. - أضِف نقطة نهاية لتسجيل الجلسة تتضمّن ما يلي:
- يربط مفتاحًا عامًا بجلسة المستخدِم.
- تعرض هذه السمة إعدادات الجلسة.
- الانتقال إلى ملفات تعريف الارتباط القصيرة الأمد
- أضِف نقطة نهاية لإعادة التحميل من أجل التعامل مع تجديد ملفات تعريف الارتباط والتحقّق من صحة امتلاك المفتاح.
لا تتطلّب معظم نقاط النهاية الحالية إجراء أي تغييرات. تم تصميم DBSC ليكون تكميليًا وغير مزعج.
عندما لا تتوفّر ملفات تعريف الارتباط القصيرة الأجل المطلوبة أو تنتهي صلاحيتها، يوقف Chrome الطلب مؤقتًا ويحاول إعادة تحميل ملف تعريف الارتباط. يتيح ذلك لتطبيقك مواصلة استخدام عمليات التحقّق المعتادة من ملفات تعريف الارتباط الخاصة بالجلسة لتأكيد تسجيل المستخدم الدخول. وبما أنّ ذلك يتطابق مع مسارات المصادقة النموذجية، يمكن استخدام DBSC مع إجراء الحد الأدنى من التغييرات على منطق تسجيل الدخول.
خطوات التنفيذ
يوضّح هذا القسم التغييرات اللازمة على نظام المصادقة، بما في ذلك كيفية تعديل مسار تسجيل الدخول والتعامل مع تسجيل الجلسات وإدارة عمليات إعادة تحميل ملفات تعريف الارتباط القصيرة الأمد. تم تصميم كل خطوة لتتكامل بسلاسة مع البنية الأساسية الحالية.
تتّبع خطوات التنفيذ المسار الشائع الذي يمر به المستخدم الذي سجّل الدخول عندما تكون خدمة DBSC نشطة: التسجيل عند تسجيل الدخول، ثم إعادة تحميل ملفات تعريف الارتباط العادية القصيرة الأمد بشكل منتظم. يمكنك اختبار كل خطوة وتنفيذها بشكل مستقل، حسب مستوى حساسية الجلسة في تطبيقك.

1. تعديل تدفّق تسجيل الدخول
بعد أن يسجّل المستخدم الدخول، أرسِل ردًا يتضمّن ملف تعريف ارتباط طويل الأمد وعنوان Secure-Session-Registration. على سبيل المثال:
يتم عرض عنوان استجابة HTTP التالي بعد تسجيل الجلسة بنجاح:
HTTP/1.1 200 OK
Secure-Session-Registration: (ES256 RS256); path="/StartSession"
Set-Cookie: auth_cookie=session_id; max-age=2592000; Domain=example.com; Secure; SameSite=Lax
إذا كان الجهاز يتيح تخزين المفاتيح الآمنة، يتواصل Chrome مع نقطة النهاية /StartSession
باستخدام مفتاح عام في رمز JSON المميّز للويب (JWT).
يمثّل auth_cookie في هذا المثال الرمز المميز للجلسة. يمكنك تسمية ملف تعريف الارتباط هذا بأي اسم تريده، طالما أنّه يتطابق مع الحقل name في إعدادات الجلسة ويتم استخدامه بشكل متّسق في جميع أنحاء تطبيقك.
2. تنفيذ نقطة نهاية تسجيل الجلسة
في /StartSession، يجب أن يستوفي الخادم ما يلي:
- ربط المفتاح العام المستلَم بجلسة المستخدم
- الردّ باستخدام إعدادات الجلسة
- استبدِل ملف تعريف الارتباط الذي يدوم طويلاً بملف تعريف ارتباط يدوم لفترة قصيرة.
في المثال التالي، تم ضبط ملف تعريف الارتباط القصير الأمد على انتهاء صلاحيته بعد 10 دقائق:
HTTP/1.1 200 OK
Set-Cookie: auth_cookie=short_lived_grant; Max-Age=600; # Expires after 10 minutesSet-Cookie: Domain=example.com; Secure; SameSite=Lax
{
"session_identifier": "session_id",
"refresh_url": "/RefreshEndpoint",
"scope": {
"origin": "https://example.com",
"include_site": true,
"scope_specification": [
{ "type": "exclude", "domain": "*.example.com", "path": "/static" }
]
},
"credentials": [{
"type": "cookie",
"name": "auth_cookie",
"attributes": "Domain=example.com; Secure; SameSite=Lax"
}]
}
3- تنفيذ نقطة نهاية إعادة التحميل
عند انتهاء صلاحية ملف تعريف الارتباط القصير الأمد، يبدأ Chrome عملية إعادة تحميل لإثبات امتلاك المفتاح الخاص. تتضمّن هذه العملية إجراءات منسّقة من Chrome وخادمك:
يؤجّل Chrome طلب المستخدم إلى تطبيقك ويرسل طلب إعادة تحميل إلى
/RefreshEndpoint:POST /RefreshEndpoint HTTP/1.1 Sec-Secure-Session-Id: session_idيردّ الخادم بطلب التحقّق من الهوية:
HTTP/1.1 403 Forbidden Secure-Session-Challenge: "challenge_value"يوقّع Chrome على التحدّي باستخدام المفتاح الخاص المخزّن، ثم يعيد محاولة تنفيذ الطلب:
POST /RefreshEndpoint HTTP/1.1 Sec-Secure-Session-Id: session_id Secure-Session-Response: <JWT proof>يتحقّق الخادم من صحة الإثبات الموقَّع ويصدر ملف تعريف ارتباط جديدًا قصير الأمد:
HTTP/1.1 200 OK Set-Cookie: auth_cookie=short_lived_grant; Max-Age=600; Domain=example.com; Secure; SameSite=Laxيتلقّى Chrome ملف تعريف الارتباط المُعاد تحميله ويستأنف الطلب الأصلي المؤجّل.
نمط الدمج البديل
لتحسين المرونة، يمكن للمواقع الإلكترونية إضافة ملف تعريف ارتباط ثانٍ غير مرتبط بميزة "موافقة المستخدم في الاتحاد الأوروبي" إلى جانب ملف تعريف الارتباط القصير الأمد. يتم استخدام ملف تعريف الارتباط هذا الذي يدوم طويلاً فقط لإصدار رموز مميّزة جديدة قصيرة الأمد، ويساعد في التمييز بين الطلبات غير المصادَق عليها فعلاً وحالات تعذُّر DBSC المؤقتة.
- يبقى ملف تعريف الارتباط الطويل الأمد صالحًا حتى إذا تعذّر استخدام ميزة "بيانات اعتماد الجلسة المرتبطة بالجهاز".
- يتم تجديد ملف تعريف الارتباط القصير الأمد باستخدام "بيانات اعتماد الجلسة المرتبطة بالجهاز"، وهو مطلوب لإجراء العمليات الحساسة.
يمنح هذا النمط المواقع الإلكترونية مزيدًا من التحكّم في كيفية التعامل مع الحالات الحدّية.
التحذيرات والسلوك الاحتياطي
قد يتخطّى Chrome عمليات بيانات اعتماد الجلسة المرتبطة بالجهاز ويرسل الطلبات بدون ملف تعريف الارتباط القصير الأمد الذي تديره بيانات اعتماد الجلسة المرتبطة بالجهاز في الحالات التالية:
- لا يمكن الوصول إلى نقطة نهاية إعادة التحميل بسبب حدوث أخطاء في الشبكة أو مشاكل في الخادم.
- وحدة TPM مشغولة أو تواجه أخطاء في التوقيع. بما أنّ وحدة TPM تتم مشاركتها بين عمليات النظام، قد تؤدي عمليات إعادة التحميل المفرطة إلى تجاوز الحدود القصوى لمعدلاتها.
- ملف تعريف الارتباط القصير الأمد الذي تديره خدمة DBSC هو ملف تعريف ارتباط تابع لجهة خارجية، وقد حظر المستخدم ملفات تعريف الارتباط التابعة لجهات خارجية في إعدادات المتصفّح.
في هذه الحالات، يعود Chrome إلى استخدام ملف تعريف الارتباط الذي يدوم طويلاً إذا كان لا يزال متوفّرًا. لا يعمل هذا الخيار الاحتياطي إلا إذا كان التنفيذ يتضمّن ملفَي تعريف ارتباط، أحدهما طويل الأمد والآخر قصير الأمد. إذا لم يكن كذلك، يرسل Chrome الطلب بدون ملف تعريف ارتباط.
ملخّص
تساهم بيانات اعتماد الجلسة المرتبطة بالجهاز في تحسين أمان الجلسة بأقل تغييرات في تطبيقك. وتوفّر هذه الميزة حماية أقوى ضد اختراق الجلسات من خلال ربط الجلسات بأجهزة معيّنة. يستفيد معظم المستخدمين من هذه الميزة بدون مواجهة أي انقطاع، كما أنّها تتوافق بسلاسة مع الأجهزة غير المتوافقة.
لمزيد من المعلومات، يُرجى الرجوع إلى مواصفات DBSC.