معیارات · FIDO CTAP 2.2 ہائبرڈ (passkey QR)

کیا مجھے اس passkey سائن اِن QR کو اسکین کرنا چاہیے؟

صرف اسی صورت میں جب آپ نے ابھی اسی ڈیوائس پر passkey سائن اِن شروع کیا ہو جو QR دکھا رہی ہے۔ اگر کسی اور نے QR بنایا ہے، کوئی اجنبی، کوئی "helpdesk" ایجنٹ، کوئی tech-support کال، تو اسے اپنے فون پر اسکین کرنا اسے آپ کے اکاؤنٹ میں سائن اِن کر دیتا ہے، آپ کو نہیں۔ پروٹوکول کا اوپن معیار (FIDO CTAP 2.2 hybrid) مضبوط ہے؛ خطرہ تو اس بات کے گرد سوشل انجینئرنگ ہے کہ "Sign in with a passkey" بٹن پہلے کس نے دبایا۔

ایک passkey QR چیک کریں ← تمام معیارات ←

cross-device passkey سائن اِن کیسے کام کرتا ہے

passkey ایک کریڈنشل ہے، ایک public/private کلید کا جوڑا، جو آپ کی ڈیوائسز میں سے کسی ایک سے منسلک ہوتا ہے۔ اگر آپ نے اپنے فون پر example.com کے لیے passkey رجسٹر کیا ہے، تو صرف آپ کا فون ہی example.com کے لاگ اِن چیلنج پر دستخط کر سکتا ہے۔

یہ تب ٹھیک کام کرتا ہے جب آپ اپنے فون پر سائن اِن کر رہے ہوں۔ لیکن کیا ہوتا ہے جب آپ ایسے لیپ ٹاپ پر سائن اِن کر رہے ہوں جس کے پاس اس سائٹ کے لیے passkey نہیں ہے؟ آپ یہ کر سکتے ہیں:

  1. اپنا پاس ورڈ ٹائپ کریں، اس سے passkeys کا پورا مقصد ہی ختم ہو جاتا ہے۔
  2. لیپ ٹاپ پر نیا passkey اندراج کریں، ٹھیک ہے، لیکن صرف تب جب آپ اس لیپ ٹاپ پر طویل مدت کے لیے بھروسہ کرتے ہوں۔
  3. cross-device ٹرانسپورٹ کے ذریعے فون کا passkey استعمال کریں، لیپ ٹاپ ایک QR دکھاتا ہے، آپ کا فون اسے اسکین کرتا ہے، فون چیلنج پر دستخط کرتا ہے، لیپ ٹاپ کا براؤزر نتیجہ وصول کرتا ہے اور آپ سائن اِن ہو جاتے ہیں۔

آپشن 3 وہی ہے جو FIDO CTAP 2.2 "hybrid" بیان کرتا ہے۔ QR ابتدائی بوٹ اسٹریپ ہے، یہ اتنی معلومات رکھتا ہے کہ آپ کا فون Bluetooth Low Energy کے ذریعے لیپ ٹاپ کو دریافت کر سکے، ایک بار کا محفوظ tunnel قائم کر سکے، اور WebAuthn رسم کو پراکسی کر سکے۔

QR کے اندر کیا ہے

URI کچھ ایسا دکھتا ہے:

FIDO:/0123456789012345678901234567890123456789...

اعشاری ہندسے ایک CBOR map کی base10 انکوڈنگ ہیں۔ base10 ڈی کوڈ + CBOR پارس کے بعد، map میں عددی کلیدیں ہوتی ہیں:

کلید 0، peer public کلید

غیر کمپریسڈ X9.62 public-key بائٹس (P-256 کے لیے 33 بائٹس)۔ فون اسے انکرپٹڈ tunnel قائم کرنے کے لیے استعمال کرتا ہے۔

کلید 1، QR راز / tunnel nonce

10 بائٹس بے ترتیب ڈیٹا۔ یہ اس مخصوص QR کی شناخت کرتا ہے؛ BLE اشتہار اس کا ہیش نشر کرتا ہے تاکہ فون درست لیپ ٹاپ تلاش کر سکے۔

کلید 2، آپریشن اشارہ

0 = make-credential (نیا passkey رجسٹر کرنا)، 1 = get-assertion (سائن اِن کرنا)، 2 = discoverable-credential۔

کلید 3، tunnel-server ڈومین

وہ HTTPS host جو دونوں ڈیوائسز کے درمیان tunnel کو پراکسی کرتا ہے جب براہ راست BLE قابلِ رسائی نہ ہو (مثلاً، NAT کے پار)۔ عام طور پر کوئی وینڈر کے زیرِ انتظام سرور جیسے cable.ua5v.com (Google) یا cable.auth.com (Apple/MS)۔

کلید 4، ٹائم اسٹیمپ

QR بننے کے وقت کے seconds-since-epoch۔ replay سے تحفظ کے لیے استعمال ہوتا ہے، فون چند منٹ سے پرانی QR کو قبول کرنے سے انکار کر دیتا ہے۔

Key 5، state-assisted فلیگ

Boolean۔ ظاہر کرتا ہے کہ آیا لیپ ٹاپ چاہتا ہے کہ فون غیر فعال state-keeping میں شریک ہو (زیادہ تر credential-enumeration فلوز کے لیے متعلقہ)۔

خطرے کا ماڈل: "Sign in with a passkey" پہلے کس نے دبایا؟

پروٹوکول کرپٹوگرافک طور پر مضبوط ہے۔ Bluetooth قربت کی جانچ حقیقی ہے اور حملے کو اُسی شخص تک محدود کر دیتی ہے جو جسمانی طور پر آپ کے قریب ہو۔ تو پھر یہ غلط کیسے ہوتا ہے؟

آغاز پر سوشل انجینئرنگ کے ذریعے۔ حملہ آور اپنے لیپ ٹاپ پر آپ کے اکاؤنٹ کے لیے passkey سائن اِن شروع کرتا ہے۔ اُن کا لیپ ٹاپ ایک FIDO QR دکھاتا ہے۔ وہ کسی نہ کسی طرح وہ QR آپ کے سامنے لے آتے ہیں:

اگر آپ اسکین کرتے ہیں، تو آپ کا فون آپ کے passkey دستخط کو واپس حملہ آور کے لیپ ٹاپ کے براؤزر تک پہنچا دیتا ہے۔ وہ سائٹ جس کے لیے آپ کے پاس passkey ہے سمجھتی ہے کہ آپ نے سائن اِن کر لیا۔ حملہ آور اب آپ کے اکاؤنٹ میں لاگ اِن ہے۔

نوٹ کریں کہ قربت کی جانچ مدد نہیں کرتی، حملہ آور جسمانی طور پر موجود ہے۔ QR کا مواد مدد نہیں کرتا، وہ کرپٹوگرافک طور پر درست ہے۔ لاگ اِن کی منزل مدد نہیں کرتی، یہ وہی درست سائٹ ہے جس کے لیے آپ کے پاس passkey ہے۔ صرف ایک چیز جو مدد کرتی ہے وہ صورتحال کو پہچاننا ہے: آپ کو کبھی بھی ایسا FIDO QR اسکین نہیں کرنا چاہیے جسے آپ نے اپنے ڈیوائس پر "Sign in" پر کلک کر کے خود نہیں بنایا۔

ہمارا اسکینر کیا ظاہر کرتا ہے

جب آپ ہمارے اسکینر میں FIDO QR ڈالتے ہیں، تو فیصلہ یہ دکھاتا ہے:

خطرے کی کلاس ہمیشہ مشتبہ ہوتی ہے، اس لیے نہیں کہ پروٹوکول خراب ہے بلکہ اس لیے کہ حفاظتی فیصلہ سیاق و سباق پر منحصر ہے اور اسکینر یہ نہیں جان سکتا کہ "Sign in" کس نے دبایا۔ فیصلے کا انکشاف آپ کو بالکل یہی بتاتا ہے: "اسکین کرنا ایک ایسا سائن اِن مکمل کرتا ہے جو کسی نے کسی دوسرے ڈیوائس پر شروع کیا تھا۔ اگر آپ نے ابھی خود لاگ اِن شروع نہیں کیا، تو انکار کریں۔"

کب یہ محفوظ ہے (اور کب نہیں)

محفوظ: آپ اپنے لیپ ٹاپ پر بیٹھے، اپنا بینک یا ای میل سائٹ کھولی، "Sign in with a passkey" پر کلک کیا، اور آپ کے لیپ ٹاپ نے QR دکھایا۔ آپ اپنا فون اٹھاتے ہیں، QR اسکین کرتے ہیں، قربت کی درخواست کی منظوری دیتے ہیں۔ ہو گیا۔

محفوظ نہیں: آپ کے علاوہ کسی اور نے سائن اِن شروع کیا۔ اس میں فون پر موجود کوئی بھی، ریموٹ سپورٹ کال پر موجود کوئی بھی، وہ جس نے آپ کو ای میل پر QR بھیجا، وہ جس نے آپ کو "اپنی شناخت کی تصدیق کے لیے QR" دکھایا، اور کوئی بھی ایسا QR جو آپ کے اپنے تازہ دکھائے گئے ڈیوائس میں نہ ہو، شامل ہے۔

اگر آپ کو یقین نہیں کہ کوئی QR ایسے سائن اِن سے ہے جو آپ نے شروع کیا تھا، تو اصل ڈیوائس پر سائن اِن منسوخ کریں (براؤزر ٹیب بند کریں)، پھر اُس ڈیوائس پر دوبارہ شروع سے کریں جو آپ استعمال کرنا چاہتے تھے۔ اصلی FIDO QRs صرف ~10 منٹ کے لیے درست ہوتے ہیں، دوبارہ شروع کرنا کسی بھی زیرِ عمل سیشن کو ختم کر دیتا ہے اور خطرے کو ناممکن بنا دیتا ہے۔

متعلقہ

FIDO QR کا معائنہ کریں

تصویر ڈراپ کریں یا FIDO: URI پیسٹ کریں۔ فیصلہ آپریشن، tunnel سرور، ٹائم اسٹیمپ، اور ایک سخت انتباہ دکھاتا ہے کہ اس وقت تک انکار کریں جب تک آپ نے خود سائن اِن شروع نہ کیا ہو۔

اسکینر کھولیں ←