المفتاح 0، المفتاح العام للجانب الآخر
بايتات المفتاح العام غير المضغوطة X9.62 (33 بايت لـ P-256). يستخدمه الهاتف لإنشاء النفق المشفّر.
المعايير · FIDO CTAP 2.2 هجين (رمز QR للمفتاح العبوري)
فقط إذا بدأتَ أنتَ للتوّ عملية تسجيل الدخول بالمفتاح العبوري على الجهاز الذي يعرض الرمز. إذا أنشأ الرمز أي شخص آخر، غريب أو موظف "دعم فني" أو متصل هاتفي، فإن مسحه بهاتفك سيُسجّل دخولهم إلى حسابك لا حسابك أنت. البروتوكول المفتوح (FIDO CTAP 2.2 هجين) متين؛ التهديد هو الهندسة الاجتماعية حول سؤال: من الذي ضغط أولاً على زر "تسجيل الدخول بمفتاح عبوري".
المفتاح العبوري هو بيانات اعتماد، زوج مفاتيح عامة/خاصة، مرتبط بأحد أجهزتك. إذا سجّلت مفتاحاً عبورياً لـexample.com على هاتفك، فهاتفك فقط هو الذي يستطيع توقيع تحدي تسجيل الدخول لـexample.com.
هذا يسير على ما يرام عند تسجيل الدخول من هاتفك مباشرةً. لكن ماذا يحدث عند تسجيل الدخول من حاسوب محمول لا يحتوي على مفتاح عبوري لذلك الموقع؟ يمكنك:
الخيار الثالث هو ما يُحدّده FIDO CTAP 2.2 "الهجين". الرمز هو نقطة الانطلاق؛ يحمل معلومات كافية لكي يكتشف هاتفك الحاسوب عبر Bluetooth منخفض الطاقة، ويُنشئ نفقاً آمناً لمرة واحدة، ويُوكّل عملية WebAuthn.
يبدو الـ URI هكذا:
FIDO:/0123456789012345678901234567890123456789...
الأرقام العشرية هي ترميز base10 لخريطة CBOR. بعد فكّ ترميز base10 وتحليل CBOR، تحتوي الخريطة على مفاتيح صحيحة:
بايتات المفتاح العام غير المضغوطة X9.62 (33 بايت لـ P-256). يستخدمه الهاتف لإنشاء النفق المشفّر.
10 بايتات من البيانات العشوائية. يُحدّد هذا الرمز بالذات؛ يُذيع إعلان BLE تجزئته لكي يجد الهاتف الحاسوب المحمول الصحيح.
0 = make-credential (تسجيل مفتاح عبوري جديد)، 1 = get-assertion (تسجيل الدخول)، 2 = discoverable-credential.
مضيف HTTPS الذي يُوكّل النفق بين الجهازين حين لا يُتاح BLE المباشر (مثلاً عبر NAT). عادةً خادم يشغّله البائع مثل cable.ua5v.com (Google) أو cable.auth.com (Apple/MS).
الثواني منذ الحقبة حين أُنشئ الرمز. يُستخدم للحماية من إعادة التشغيل؛ يرفض الهاتف الرمز إذا تجاوز عمره بضع دقائق.
قيمة منطقية. تُشير إلى ما إذا كان الحاسوب المحمول يريد أن يشارك الهاتف في الحفاظ على حالة سلبية (ذو صلة أساساً بتدفقات تعداد بيانات الاعتماد).
البروتوكول سليم مشفّراً. فحص القرب عبر Bluetooth حقيقي ويُقيّد الهجوم بمن هو قريب منك جسدياً. إذن كيف تسوء الأمور؟
عبر الهندسة الاجتماعية على مرحلة البدء. يبدأ المهاجم عملية تسجيل دخول بمفتاح عبوري إلى حسابك على حاسوبه. يعرض حاسوبه رمز FIDO. يُوصل ذلك الرمز إليك بطريقة ما:
إذا مسحت الرمز، يُوكّل هاتفك توقيع مفتاحك العبوري إلى متصفح حاسوب المهاجم. يعتقد الموقع الذي لديك فيه مفتاح عبوري أنك سجّلت الدخول. المهاجم الآن داخل حسابك.
لاحظ أن فحص القرب لا يُفيد؛ المهاجم موجود جسدياً. محتوى الرمز لا يُفيد؛ صالح مشفّراً. وجهة تسجيل الدخول لا تُفيد؛ هو الموقع الصحيح الذي لديك فيه مفتاح عبوري. الشيء الوحيد الذي يُفيد هو إدراك الموقف: يجب ألا تمسح رمز FIDO إلا إذا أنشأتَه أنت بالضغط على "تسجيل الدخول" على جهازك الخاص.
حين تُسقط رمز FIDO في ماسحنا، يُظهر الحكم:
cable.ua5v.com من Google، أو خادم نفق Apple، إلخ)؟فئة التهديد هي دائماً مشبوه، ليس لأن البروتوكول معطوب بل لأن الحكم الأمني سياقي ولا يستطيع الماسح معرفة من ضغط على "تسجيل الدخول". يُخبرك إفصاح الحكم بذلك بالضبط: "مسح هذا الرمز يُكمل تسجيل دخول بدأه شخص ما على جهاز آخر. إذا لم تبدأ عملية تسجيل دخول للتوّ، ارفض."
آمن: جلستَ أمام حاسوبك المحمول، وفتحت موقع بنكك أو بريدك الإلكتروني، وضغطت على "تسجيل الدخول بمفتاح عبوري"، وعرض الحاسوب الرمز. تمسك الهاتف، تمسح الرمز، تُقرّ طلب القرب. انتهى.
غير آمن: أي شخص غيرك بدأ عملية تسجيل الدخول. يشمل ذلك أي شخص عبر الهاتف، أو في مكالمة دعم عن بُعد، أو أرسل إليك رمزاً عبر البريد الإلكتروني، أو أظهر لك "رمزاً للتحقق من هويتك"، وأي رمز في مكان ليس جهازك الخاص المعروض حديثاً.
إذا لم تكن متأكداً من أن الرمز جاء من عملية تسجيل دخول بدأتها أنت، ألغِ عملية تسجيل الدخول على الجهاز الأصلي (أغلق علامة تبويب المتصفح)، ثم أعد البدء من الصفر على الجهاز الذي تريد استخدامه. رموز FIDO الحقيقية صالحة لـ 10 دقائق فقط؛ إعادة البدء تُمسح أي جلسة قيد التنفيذ وتجعل التهديد مستحيلاً.
أسقط الصورة أو الصق FIDO: URI. يُظهر الحكم العملية وخادم النفق والطابع الزمني وتحذيراً صارماً بالرفض ما لم تبدأ عملية تسجيل الدخول بنفسك.