تخطَّ إلى المحتوى

إضافة المتصفح

قيد التطوير

Chrome وEdge وBrave وOpera وVivaldi وArc وFirefox (على سطح المكتب وAndroid)، وكلها بـ Manifest V3. أما Safari 18 وما بعده، على Mac وiPhone وiPad، فيحصل على الإضافة نفسها داخل تطبيق Octa Pass صغير (انظر Safari).

المتاجر المخطط لها: Chrome Web Store وMicrosoft Edge Add-ons وFirefox Add-ons (مع رفع الشيفرة المصدرية للمراجعة) وإضافات Opera.

  • الملء التلقائي لبيانات الدخول ورموز TOTP والبطاقات والهويات والعناوين
  • إضافة رموز لمرة واحدة من رمز QR تعرضه الصفحة (مسح رمز QR في هذه الصفحة)، أو من أي صورة رمز QR في صفحة (انقر بزر الفأرة الأيمن ← إضافة رمز لمرة واحدة من رمز QR)، مع حساب أو على هذا الجهاز فقط. تقرأ الإضافة لقطة للعلامة المرئية، فقط عندما تطلب ذلك، ولا تنزّل الصورة مرة أخرى
  • حفظ بيانات الدخول وتحديثها عند تسجيل الدخول أو إنشاء حساب، وحفظ العناوين والبطاقات عند الدفع، حتى وOcta Pass مقفل: ينتظر الحفظ مختومًا ويُضاف عند فتح القفل التالي
  • إنشاء مفاتيح المرور واستخدامها
  • توليد كلمات المرور والبريد المُقنَّع في نماذج التسجيل
  • الخزنة كاملة في علامة تبويب في المتصفح: يفتحها زر شريط الأدوات بجوار الصفحة التي أنت عليها (راجع تبويب Octa Pass)

يفتح زر شريط الأدوات Octa Pass في علامة تبويب في المتصفح، بجوار الصفحة التي أنت عليها. وإن كان تبويب Octa Pass مفتوحًا أصلًا، يُعرض في المقدمة بدل ذلك: الذي في هذه النافذة، وإلا فالذي في نافذة أخرى. لا نافذة منبثقة ولا لوحة جانبية.

وللتبويب تخطيط خزنة الويب كاملًا. في شريطه الجانبي خزناتك والفئات والمشاركة ومؤسستك والوصول في الطوارئ والبريد المُقنَّع والأدوات والمهملات والإعدادات ونتيجة السلامة.

  • هذا الموقع أول ما في الشريط الجانبي. يعرض بيانات الدخول للتبويب الذي جئت منه، لكلٍّ منها زر تعبئة، بجانب العنصر الذي تفتحه. وإن انتقلت إلى تبويب آخر في تلك النافذة ثم عدت، يعرض موقع ذلك التبويب. وبعد تعبئة تعيدك الإضافة إلى الصفحة.
  • مسح رمز QR في هذه الصفحة (زر رمز QR في هذا الموقع) يعرض تبويب الصفحة في المقدمة لحظةً ليلتقط صورة للشاشة، ثم يعود.
  • فتح القفل في القائمة داخل الصفحة يفتح التبويب على شاشة القفل. وبعد أن تفتح القفل يعيدك إلى الصفحة.
  • النقر بزر الفأرة الأيمن ← إضافة رمز لمرة واحدة من رمز QR يفتح التبويب على المسح.
  • تعمل مؤقتات القفل في خلفية الإضافة لا في التبويب، فإبقاء التبويب مفتوحًا أو إغلاقه لا يغيّر موعد قفل Octa Pass.
  • بعض الأسئلة ما زالت تُفتح في نافذة صغيرة خاصة بها: نوافذ تسجيل الدخول عبر HTTP، والسؤال عند كل تعبئة.
  • في الإعدادات أقسام الإضافة الخاصة بها (الملء التلقائي، والإطارات، ونوافذ تسجيل الدخول عبر HTTP، والمواقع التي لا يُحفظ لها شيء) وأقسام حسابك كما في خزنة الويب: كلمة المرور الرئيسية، والمفتاح السري، ومفاتيح الخزنة، وسجل الأمان، وتسجيل الدخول بخطوتين، والأجهزة، والخادم والتخزين.
  • يبدأ البريد المُقنَّع في المولّد بموقع التبويب الذي جئت منه.

الحصول على التطبيقات الأخرى

Section titled “الحصول على التطبيقات الأخرى”

تعرض بطاقة صغيرة في أسفل الشريط الجانبي تطبيق Octa Pass ليس لديك بعد:

  • تطبيق سطح المكتب، حين لا يكون في حسابك جهاز سطح مكتب ولا تستطيع الإضافة الوصول إلى تطبيق سطح المكتب على هذا الحاسوب. ولا تظهر أبدًا في Safari، لأن إضافة Safari تأتي داخل تطبيق Mac.
  • وإلا تطبيق الهاتف، حين لا يكون جهاز iPhone أو Android مسجّل الدخول إلى حسابك. ولا تظهر لخزنة على هذا الجهاز فقط.

أغلق البطاقة بـ × فلا يُعرض ذلك التطبيق مرة أخرى. ويذهب الرابط إلى صفحة تطبيق سطح المكتب أو تطبيقات الهاتف، لأن التطبيقات ليست في أي متجر بعد.

الصق مفتاح API في نموذج، فتعرض الإضافة حفظه كبيانات اعتماد API. يجري ذلك على جهازك: تُعدّ القيمة مفتاحًا إن كان لها شكل معروف (مثل ghp_… أو sk_live_…)، أو إن كان اسم الحقل يدل على مفتاح وبدت القيمة عشوائية. وتبقى في سكربت الإضافة الخاص بالصفحة حتى تختار حفظ، لدقيقتين على الأكثر، ولا يغادر شيء جهازك.

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

وفي حقل يدل اسمه على رمز (token) أو مفتاح API، تعرض القائمة داخل الصفحة أيضًا بيانات اعتماد API المحفوظة لذلك الموقع. وتسري عليها قواعد بيانات الدخول نفسها: تطابق تام للموقع، ونقرتك، وتأكيد الملء التلقائي إن كان مفعّلًا. والعنصر الذي فيه رمز OAuth2 حي يملأ ذلك الرمز ما دام صالحًا؛ ولا تطلب الإضافة رمزًا جديدًا من المزوّد أبدًا، فاستخدم واجهة سطر الأوامر أو Connect لذلك.

الجزء وظيفته
عامل الخدمة في الخلفية يشغّل نواة Octa Pass (Rust مترجمة إلى WebAssembly) والمزامنة. تُوقف المتصفحات عمال الخدمة الخاملين، لذلك يُحفظ مفتاح الحساب أثناء فتح القفل في تخزين جلسة في الذاكرة فقط (chrome.storage.session)، ملفوفًا بمفتاح عشوائي لكل جلسة، ولا يُكتب على القرص أبدًا. يتخلص منه القفل أو إغلاق المتصفح.
سكربت المحتوى يكتشف النماذج ويعرض القائمة داخل الصفحة (محرك الملء التلقائي)، ويعرض مطالبات الحفظ
سكربت الصفحة سكربت صغير يعترض استدعاءات WebAuthn لمفاتيح المرور
مطالبة مفتاح المرور صفحة من الإضافة يضعها الموقع في إطار لكنه لا يستطيع التحكم بها برمجيًا: تختار فيها Octa Pass أو مسار مفاتيح المرور الخاص بمتصفحك
صفحة التطبيق شاشات خزنة الويب في علامة تبويب في المتصفح، إضافة إلى هذا الموقع (بيانات الدخول للصفحة التي جئت منها، مع زر تعبئة) وماسح رمز QR لتلك الصفحة
مضيف الرسائل الأصلي يثبّته تطبيق سطح المكتب لفتح القفل بالقياسات الحيوية ولجلسة فتح قفل مشتركة

يبدأ اكتشاف النماذج بخصائص autocomplete، ثم أنواع الحقول وأسماؤها وتسمياتها ونصوصها المؤقتة بأكثر 10 لغات شيوعًا، إضافة إلى بنية النموذج. لا يوجد تعلّم آلي عن بُعد ولا شيفرة تُحمَّل عن بُعد. وتصل إصلاحات المواقع المحددة في مجموعة قواعد موقّعة داخل الإضافة.

لا يخبر عامل الخدمة الصفحةَ إلا ببيانات الدخول الخاصة بموقع تلك الصفحة نفسه، بحسب العنوان الذي يبلّغ عنه المتصفح، لا بحسب ما تقوله الصفحة. لا تُعرض بيانات دخول paypal.com على paypal.com.evil.io أبدًا، ولا تُعرض بيانات دخول محفوظة لموقع https على نظيره http العادي. تبقى المفاتيح الخاصة لمفاتيح المرور في عامل الخدمة: يرى تبويب Octa Pass اسم مفتاح المرور وموقعه، ولا ترى مفتاحه أبدًا.

تعرض بعض المواقع داخل صفحتها نموذجًا من موقع آخر: مربع تسجيل دخول من مزوّد هوية، أو نموذج دفع. لا يفعل Octa Pass شيئًا في إطار كهذا حتى تسمح له. في أول مرة تفتح قائمته هناك، يذكر موقع الإطار والصفحة التي بداخلها، مثل هذا النموذج من accounts.example-idp.com، داخل shop.example، ويعرض السماح لـ Octa Pass هنا. يأتي الاسمان من المتصفح، لا من الصفحة.

  • بعد السماح، يحصل الإطار على بيانات الدخول المحفوظة لموقعه هو، لا لموقع الصفحة.
  • يُحفظ الجواب لذلك الإطار في ذلك الموقع فقط. والإطار نفسه داخل موقع آخر يسأل من جديد.
  • الإطارات من موقع الصفحة نفسه (login.shop.example داخل shop.example) لا تحتاج إلى موافقة.
  • الإعدادات ← إطارات من مواقع أخرى تعرض ما سمحت به. أزل واحدًا ليُطلب منك الإذن من جديد.

طلبات مفاتيح المرور من إطارات كهذه تُترك لمتصفحك.

نوافذ تسجيل الدخول عبر HTTP

Section titled “نوافذ تسجيل الدخول عبر HTTP”

حين يطلب موقع اسم مستخدم وكلمة مرور في النافذة المنبثقة الخاصة بالمتصفح (HTTP Basic أو Digest)، تتيح Chrome وEdge وFirefox للإضافة أن تجيب عنها (webRequest.onAuthRequired، مع إذن webRequestAuthProvider). لا يجيب Octa Pass إلا ببيانات دخول للعنوان الدقيق للموقع، ولنطاق الحماية (realm) الذي يسميه الموقع إذا كان لبيانات الدخول واحد. في أول مرة يفتح نافذة صغيرة ليسألك أي بيانات دخول يستخدم؛ وبعد ذلك يجيب ذلك الموقع من تلقاء نفسه. تُترك للمتصفح المطالبات الآتية من إطارات، ومن طلبات بدأها موقع آخر، ومن وكلاء الشبكة (proxies). الإعدادات ← نوافذ تسجيل الدخول عبر HTTP تعرض المواقع التي سمحت بها. المزيد في الملء التلقائي.

  • كلمة المرور الرئيسية
  • عبر تطبيق سطح المكتب (Touch ID وWindows Hello)، حين يكون يعمل ومسجَّلًا دخوله إلى الحساب نفسه. اربطها مرة واحدة: على Mac من الإعدادات ← إضافة المتصفح ← ربط إضافة المتصفح، وعلى Windows وLinux من المتصفح ← ربط إضافة المتصفح في التطبيق. يلفّ التطبيق مفتاح حسابك لهذا الطلب وحده، بمفتاح لا تستطيع اشتقاقه إلا الإضافة والتطبيق. ولا يفعل ذلك إلا مع المتصفحات التي يتعرّف عليها؛ وفي غيرها تقول شاشة القفل ذلك.

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

ومع إيقافه، تُقفل الخزنة بعد المدة التي تختارها (15 دقيقة افتراضيًا) وحين يُقفل حاسوبك أو ينام.

فتح القفل بالجهاز في كل متصفح

Section titled “فتح القفل بالجهاز في كل متصفح”

لاستخدام Touch ID أو Windows Hello في الإضافة، استخدم تطبيق سطح المكتب. لا تستطيع الإضافة أن تنشئ مفتاح مرور خاصًا بالجهاز بنفسها حتى الآن. أما خزنة الويب فتستطيع ذلك في هذه المتصفحات:

المتصفح في خزنة الويب في الإضافة
Chrome وEdge نعم: Touch ID وWindows Hello عبر تطبيق سطح المكتب
Safari 18+ (macOS 15+ وiOS 18+) نعم: Touch ID وFace ID ورمز مرور الجهاز عبر تطبيق Octa Pass
Firefox 139+ على macOS 15+ نعم: Touch ID عبر تطبيق سطح المكتب
Firefox 135+ على Windows وLinux حيث يدعم مصادِق الجهاز PRF (لم يُختبر بعد) عبر تطبيق سطح المكتب

يتطلب الإعداد مطالبة Touch ID واحدة في Safari وFirefox، لأنهما يعطيان المفتاح أثناء إنشاء مفتاح المرور. وقد يسألك Chrome وEdge مرتين. إذا رفض المتصفح المطالبة الثانية، تعرض الإعدادات أكمل باستخدام Touch ID لتكمل بنقرة أخرى. وعند فشل مطالبة، تتضمن الرسالة ما قاله المتصفح.

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

في Firefox، تربط الإعدادات ← الأمان في الإضافة إلى تطبيق سطح المكتب لهذا الغرض. يسمح Firefox للإضافة باستخدام مفاتيح المرور للمواقع فقط، لا للإضافة نفسها.

يمكنك استخدام الإضافة دون حساب: اختر الاستخدام على هذا الجهاز فقط في الشاشة الأولى. تُشفَّر خزنتك بكلمة المرور الرئيسية (Argon2id بذاكرة 256 MiB) وتُحفظ في المتصفح. لا يُرسَل أي شيء إلى أي مكان.

  • انسخها احتياطيًا من الإعدادات ← هذا الجهاز. ملف .octapass-backup مشفّر؛ يُفتح بكلمة المرور الرئيسية، أو برمز الاسترداد الاحتياطي الذي دوّنته عند إنشاء الخزنة. استعادة نسخة احتياطية في الشاشة الأولى.
  • فعّل المزامنة حين تريد خزنتك على أجهزة أخرى. تنشئ حسابًا وتنقل الخزنة إليه كما هي (المفاتيح والنص المشفَّر نفسهما)، ثم تعطيك مجموعة استرداد الحساب.
  • ميزات تسجيل الدخول (مفاتيح المرور والمشاركة) تحتاج إلى المزامنة. لا يستطيع المتصفح إبقاء خزنة محلية مفتوحة القفل عبر إعادة تشغيل خلفيته كما يبقي جلسة الحساب، لذلك تبقى الإضافة مستيقظة ما دامت خزنة محلية مفتوحة القفل.

إيقاف مدير كلمات المرور في المتصفح

Section titled “إيقاف مدير كلمات المرور في المتصفح”

لئلا تظهر لك مطالبتا حفظ، يستطيع Octa Pass إيقاف مدير المتصفح: الإعدادات ← مدير كلمات المرور في المتصفح ← استخدام Octa Pass بدلًا من مدير كلمات المرور في Chrome (أو Edge أو Firefox). وتقترح الإضافة ذلك مرة واحدة أيضًا، عند أول فتح للقفل.

  • يطلب تفعيله إذنًا إضافيًا واحدًا، تغيير إعدادات الخصوصية (privacy). لا يطلبه Octa Pass إلا حينها، لا عند التثبيت.
  • Chrome وEdge: اختر ما يتولاه Octa Pass: كلمات المرور والعناوين وبطاقات الدفع (الثلاثة كلها في البداية). يوقف هذا عروض المتصفح لحفظ كلمات المرور، وملئه التلقائي للعناوين والبطاقات.
  • Firefox: لا تستطيع الإضافة إيقاف سوى حفظ كلمات المرور. أوقف الملء التلقائي للعناوين والبطاقات بنفسك في إعدادات Firefox، ضمن الخصوصية والأمان.
  • Safari: لا تستطيع الإضافات تغيير هذا. على Mac افتح Safari ← الإعدادات ← التعبئة التلقائية؛ وعلى iPhone أو iPad افتح الإعدادات ← التطبيقات ← Safari ← الملء التلقائي. أوقف ما تريد أن يتولاه Octa Pass بدلًا منه.
  • إذا كانت إضافة أخرى أو سياسة مؤسستك تتحكم في إعداد، يقول Octa Pass ذلك ويتركه.
  • إيقاف الخيار يعيد إعدادات المتصفح الخاصة كما كانت، ويسقط الإذن. وإذا أزلت الإضافة، يعيد Chrome وEdge إعدادات المتصفح تلقائيًا.

لتفعل ذلك يدويًا بدلًا من ذلك:

  • Chrome/Edge: الإعدادات ← كلمات المرور ← أوقف Offer to save passwords؛ الإعدادات ← التعبئة التلقائية ← أوقف العناوين وطرق الدفع
  • Firefox: الإعدادات ← الخصوصية والأمان ← ألغِ تحديد Ask to save passwords
  • Safari على Mac: الإعدادات ← التعبئة التلقائية ← ألغِ تحديد User names and passwords

تحتاج إلى Node 22+ وpnpm وRust مع wasm-pack (للنواة) وخادم Octa Pass: المستضاف، أو خادمك الخاص (انظر الاستضافة الذاتية).

Terminal window
pnpm install
pnpm build:extension # the WebAssembly core when needed, then apps/extension/dist/chrome and dist/firefox

يسأل pnpm build:extension مرة واحدة عن الخادم الذي تعرضه الإضافة باسم “Octa Pass” في شاشة تسجيل الدخول، ويمكنه تذكّره؛ انظر بناء التطبيقات.

  • Chrome وEdge وBrave: افتح chrome://extensions، وفعّل Developer mode، واختر Load unpacked ثم حدّد apps/extension/dist/chrome.
  • Firefox: افتح about:debugging#/runtime/this-firefox، واختر Load Temporary Add-on ثم حدّد apps/extension/dist/firefox/manifest.json. يطلب Firefox منك السماح للإضافة على مواقع الويب قبل أن تستطيع الملء.

تحمل إصدارات التطوير مفتاحًا ثابتًا، لذلك يكون معرّف إضافة Chrome غير المُحزَّمة دائمًا oojckfebkmiogiahdggohbdnndbfcjnm، وهو المعرّف الذي يسمح به ملف manifest للرسائل الأصلية في تطبيق سطح المكتب. يترك node apps/extension/scripts/build.ts --store المفتاح خارج البناء لرفعه إلى المتاجر. ويحتاج إلى Chrome أو Edge 133+ أو Firefox 130+.

يعيد pnpm --filter @octapass/extension dev البناء عند كل تغيير ويتحدث إلى خادم محلي على http://localhost:8080 (يشغّل pnpm --filter @octapass/web dev:stack واحدًا). أعد تحميل الإضافة بعد كل إعادة بناء.

تصل إضافات Safari داخل تطبيق. يحمل تطبيق Octa Pass لـ Safari (app.octap.safari، على macOS وiOS) الإضافة (app.octap.safari.extension) وله شاشة واحدة: أين تفعّل الإضافة، وهل هي مفعّلة. والإضافة هي الشيفرة نفسها كما في Chrome وFirefox، مبنية لـ Safari، مع هذه الفروق:

  • تفعيلها: يُبقي Safari الإضافات متوقفة حتى تفعّلها، ويسأل قبل أن تقرأ إضافة موقعًا.
    • Mac: Safari ← الإعدادات ← الإضافات، حدّد Octa Pass، ثم Edit Websites واسمح لها على المواقع الأخرى.
    • iPhone وiPad: الإعدادات ← التطبيقات ← Safari ← الإضافات ← Octa Pass، فعّل Allow Extension واسمح لها على كل المواقع. وفي iOS 26.2 وما بعده يفتح التطبيق تلك الصفحة لك.
  • علامة تبويب، كما في المتصفحات الأخرى. يفتح زر شريط الأدوات Octa Pass في علامة تبويب. وعلى iPhone وiPad يقع الزر في قائمة الإضافات في شريط العنوان.
  • لا فتح قفل عبر تطبيق سطح المكتب. تصل الرسائل الأصلية في Safari إلى التطبيق الذي تأتي فيه الإضافة فقط، لا إلى تطبيق سطح المكتب. افتح القفل بكلمة المرور الرئيسية.
  • لا قفل عند قفل حاسوبك. لا يخبر Safari الإضافات حين يُقفل الحاسوب. وتبقى الخزنة تُقفل بعد المدة التي اخترتها.
  • مفاتيح المرور تحتاج إلى Safari 18 أو أحدث، الذي يشغّل سكربت مفاتيح المرور في Octa Pass في عالم JavaScript الخاص بالصفحة.
  • لا نوافذ تسجيل دخول عبر HTTP. لا يسمح Safari للإضافات بالإجابة عن نافذة اسم المستخدم وكلمة المرور لموقع (ليس فيه webRequest.onAuthRequired)، فيعرض Safari نافذته الخاصة.

تحتاج إلى Mac مع Xcode 16 أو أحدث، إضافة إلى ما يحتاجه بناء الإضافة.

Terminal window
apps/safari/scripts/build.sh # the Safari extension, then the macOS app and the iOS Simulator app

يبني الإضافة بالأمر node scripts/build.ts --target safari (في apps/extension/dist/safari)، وينسخها إلى مشروع Xcode ويشغّل xcodebuild. ثم يفحص الإضافة في بيئة تشغيل إضافات WebKit نفسها (WKWebExtension، على macOS 15.4 أو أحدث): يُحمَّل ملف manifest، وتبدأ الخلفية، وتعرض صفحة التطبيق شاشتها الأولى، ويمكن إنشاء خزنة على هذا الجهاز فقط.

  • Mac: تُوقَّع الإصدارات توقيعًا مؤقتًا (ad hoc)، فلا يحمّلها Safari إلا بعد Safari ← الإعدادات ← متقدم ← Show features for web developers، ثم Develop ← Developer Settings ← Allow unsigned extensions (يوقف Safari هذا من جديد عند إنهائه). افتح apps/safari/build/DerivedData/Build/Products/Debug/Octa Pass.app مرة واحدة، ثم فعّل الإضافة.
  • محاكي iOS: xcrun simctl install booted "apps/safari/build/DerivedData/Build/Products/Debug-iphonesimulator/Octa Pass.app"، أو افتح apps/safari/OctaPass.xcodeproj في Xcode وشغّل المخطط Octa Pass (iOS).

البناء القابل لإعادة الإنتاج

Section titled “البناء القابل لإعادة الإنتاج”

يستطيع أي شخص إعادة بناء الإضافة من المصدر ومقارنتها بنسخة المتجر. ستُنشر التعليمات مع الإصدار الأول.