تعمل ميزة "بيانات اعتماد الجلسة المرتبطة بالجهاز" على تعزيز المصادقة من خلال إضافة أمان الجلسة المستند إلى الأجهزة.
مقدمة
تعتمد العديد من المواقع الإلكترونية على ملفات تعريف ارتباط صالحة لفترة طويلة لمصادقة المستخدمين، ولكنّ هذه الملفات معرّضة للاستيلاء على الجلسات. تضيف ميزة "بيانات اعتماد جلسة مرتبطة بالجهاز" (DBSC) طبقة من الأمان المستند إلى الأجهزة للحد من هذا الخطر، ما يضمن ربط الجلسات بأجهزة معيّنة.
هذا الدليل مخصّص للمطوّرين الذين يحافظون على عمليات المصادقة في تطبيقات الويب. ويشرح هذا الدليل طريقة عمل ميزة "الحملات على شبكة البحث" وكيفية دمجها في موقعك الإلكتروني.
آلية عمل ميزة "بيانات اعتماد جلسة مرتبطة بالجهاز"
على مستوى عالٍ، يوفّر بروتوكول DBSC زوجًا من مفاتيح التشفير المرتبط بجهاز المستخدم. ينشئ Chrome هذا الزوج من المفاتيح أثناء تسجيل الدخول ويخزِّن المفتاح الخاص في جهاز آمن، مثل وحدة النظام الأساسي الموثوق به (TPM)، عند توفّرها. تستخدم الجلسات ملفات تعريف ارتباط قصيرة الأجل. عندما تنتهي صلاحية أحد ملفات تعريف الارتباط هذه، يثبت Chrome امتلاكه للمفتاح الخاص قبل إعادة تحميلها. تربط هذه العملية استمرارية الجلسة بالجهاز الأصلي.
إذا كان جهاز المستخدم لا يتيح تخزين المفاتيح بأمان، تعود ميزة "بيانات اعتماد جلسة مرتبطة بالجهاز" بشكلٍ سلس إلى السلوك العادي بدون إيقاف عملية المصادقة.
نظرة عامة على التنفيذ
لدمج DBSC في تطبيقك، عليك إجراء التغيُّرات التالية:
- عدِّل عملية تسجيل الدخول لتضمين عنوان
Sec-Session-Registration
. - أضِف نقطة نهاية لتسجيل الجلسة تستوفي الشروط التالية:
- ربط مفتاح عام بجلسة المستخدِم
- تُستخدَم لضبط الجلسة.
- الانتقال إلى ملفات تعريف الارتباط قصيرة الأجل
- أضِف نقطة نهاية لإعادة التحميل من أجل تجديد ملف تعريف الارتباط والتحقّق من حيازة المفتاح.
لا تتطلّب معظم نقاط النهاية الحالية إجراء أي تغييرات. تم تصميم نموذج DBSC ليكون مكمّلاً وغير مزعج.
عندما لا يتوفّر ملف تعريف ارتباط مطلوب قصير الأجل أو تنتهي صلاحيته، يوقف Chrome المعالجة مؤقتًا ويحاول إعادة تحميل ملف تعريف الارتباط. يتيح ذلك لتطبيقك مواصلة استخدام عمليات التحقّق المعتادة من ملف تعريف ارتباط الجلسة لتأكيد تسجيل دخول المستخدم. وبما أنّ ذلك يتطابق مع خطوات المصادقة المعتادة، تعمل ميزة "إدارة الخدمات المستندة إلى البيانات" مع إجراء تغييرات طفيفة على منطق تسجيل الدخول.
خطوات التنفيذ
يوضّح هذا القسم التغييرات اللازمة على نظام المصادقة، ويشمل ذلك كيفية تعديل مسار تسجيل الدخول ومعالجة تسجيل الجلسة وإدارة إعادة تحميل ملفات تعريف الارتباط قصيرة الأجل. تم تصميم كل خطوة للدمج بسلاسة مع البنية الأساسية الحالية.
تتّبع خطوات التنفيذ المسار الشائع الذي سيختبره مستخدم سجّل الدخول عندما يكون نموذج "إدارة الخدمات في البيانات" نشطًا: التسجيل عند تسجيل الدخول، ثم إعادة تحميل ملفّات تعريف الارتباط العادية قصيرة الأجل. يمكنك اختبار كل خطوة وتنفيذها بشكل مستقل، استنادًا إلى مستوى حساسية الجلسة في تطبيقك.
1. تعديل عملية تسجيل الدخول
بعد تسجيل دخول المستخدم، يجب الردّ باستخدام ملف تعريف ارتباط صالح لفترة طويلة وعنوان
Sec-Session-Registration
. على سبيل المثال:
يتم عرض عنوان استجابة HTTP التالي بعد تسجيل جلسة ناجح:
HTTP/1.1 200 OK
Sec-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-Session-Id: session_id
يستجيب الخادم بتحدّي:
HTTP/1.1 401 Unauthorized Sec-Session-Challenge: "challenge_value"
يوقّع Chrome التحدّي باستخدام المفتاح الخاص المخزّن ويعيد محاولة تنفيذ الطلب:
POST /RefreshEndpoint HTTP/1.1 Sec-Session-Id: session_id Sec-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 ملف تعريف الارتباط الذي تم تعديله ويستأنف الrequest الأصلي الذي تم تأجيله.
نمط الدمج البديل
لتحسين المرونة، يمكن للمواقع الإلكترونية إضافة ملفّ تعريف ارتباط ثانٍ غير تابع لنظام مراقبة الزيارات من DBSC إلى جانب ملفّ تعريف الارتباط الذي ينتهي صلاحيته بعد فترة قصيرة. لا يُستخدَم ملفّ تعريف الارتباط هذا الذي يبقى لفترة طويلة إلا لإصدار علامات هُوية جديدة قصيرة الأجل، ويساعد في التفريق بين الطلبات التي لم يتم إثبات هويتها حقًا وحالات الرفض المؤقتة في قاعدة بيانات الأمان في تطبيقات الويب.
- يبقى ملف تعريف الارتباط ذي الصلاحية الطويلة محفوظًا حتى إذا تعذّر استخدام ميزة "الاستناد إلى بيانات قاعدة البيانات".
- يتمّ تعديل ملفّ تعريف الارتباط قصير المدّة باستخدام ميزة "إدارة ذاكرة التخزين المؤقت في قاعدة البيانات"، وهو مطلوب للعمليات الحسّاسة.
يمنح هذا النمط المواقع الإلكترونية مزيدًا من التحكّم في كيفية التعامل مع الحالات الشاذة.
التحذيرات والسلوك الاحتياطي
قد يتخطّى Chrome عمليات بيانات اعتماد الجلسة المرتبطة بالجهاز ويُرسِل الطلبات بدون ملف تعريف الارتباط القصيّر المُدار من خلال بيانات اعتماد الجلسة المرتبطة بالجهاز في السيناريوهات التالية:
- لا يمكن الوصول إلى نقطة نهاية التحديث بسبب أخطاء في الشبكة أو مشاكل في الخادم.
- وحدة TPM مشغولة أو تواجه أخطاء في التوقيع. ولأنّ وحدة إدارة الضمان (TPM) تتم مشاركتها في جميع عمليات النظام، قد تتجاوز عمليات التحديث المفرطة الحدود القصوى لمعدلاتها.
- ملف تعريف الارتباط قصير الأجل الذي تديره خدمة "إدارة الأداء في الأنشطة التجارية" هو ملف تعريف ارتباط تابع لجهة خارجية، وقد حظر العميل ملفات تعريف الارتباط التابعة لجهات خارجية في إعدادات المتصفّح.
وفي هذه الحالات، يعود Chrome إلى استخدام ملف تعريف الارتباط ذي الصلاحية الطويلة إذا كان ملفًا مماثلاً لا يزال متوفّرًا. لا يعمل هذا الإجراء الاحتياطي إلا إذا كان التنفيذ يتضمّن كلاً من ملفَي تعريف ارتباط قصير الأمد وطويل الأمد. وإذا لم يكن الأمر كذلك، يرسل Chrome الطلب بدون ملف تعريف استقطاب العميل.
ملخّص
تعمل بيانات اعتماد الجلسة المرتبطة بالجهاز على تحسين أمان الجلسة مع إجراء تغييرات قليلة على تطبيقك. وتوفّر هذه الميزة حماية أقوى ضد الاستيلاء على الجلسات من خلال ربط الجلسات بأجهزة معيّنة. يستفيد معظم المستخدمين من هذه الميزة بدون مواجهة أي انقطاع، وتتوقّف ميزة "إدارة الخدمات السحابية من Google" عن العمل بشكل سلس على الأجهزة غير المتوافقة.
لمزيد من المعلومات، يُرجى الاطّلاع على مواصفات DBSC.