CH-J Server Managerإدارة الخوادم عبر SSH
القائمة

مصادقة النظام الاختيارية وقفل Vault

تنزيل الملف

تخضع هذه الترجمة حاليًا لمراجعة لغوية. إذا كان أي جزء غير واضح، فقارنه بـالنص الإنجليزي الأصلي.

أنشئ Vault أو افتحه أولًا باستخدام كلمة المرور الرئيسية. افتح Settings ← Security (الإعدادات ← الأمان) ثم تحقّق من حالة الموفّر، وفعّل الفتح بالقياسات الحيوية. يطلب التسجيل مصادقة جديدة من النظام. بعد ذلك تعرض واجهة تسجيل الدخول الفتح عبر Touch ID أو Windows Hello أو بصمة الإصبع إلى جانب نموذج كلمة المرور الرئيسية. يزيل Disable and remove enrollment (تعطيل التسجيل وإزالته) المفتاح المخزّن مؤقتًا لهذا التطبيق، ولا يزيل أبدًا البصمات المسجّلة في نظام التشغيل.

احتفظ بكلمة المرور الرئيسية: فالإلغاء وانتهاء المهلة وعدم توفر العتاد/حلقة المفاتيح وإبطال التسجيل كلها تتطلب الرجوع إلى كلمة المرور. التسجيل بالقياسات الحيوية محلي لهذا المستخدم وهذا الجهاز وهذا الـ Vault. وهو ليس آلية استرداد ولا نسخة احتياطية. تؤدي إعادة تعيين Vault إلى إبطال التسجيل وحذف ملفات التعريف المشفّرة وبصمات المضيفين الموجودة، ولكن فقط بعد تأكيد SMAZAT القائم.

المنصة المصادقة والتخزين المتطلبات والقيود
macOS Apple Silicon LocalAuthentication / Touch ID أصلي؛ عنصر Keychain عبر Security.framework مع biometryCurrentSet وWhenUnlockedThisDeviceOnly Touch ID مسجّل، ومستشعر متاح، وKeychain تسجيل دخول صالح للاستخدام. تؤدي تغييرات البصمات إلى إبطال العنصر. استخدم توقيع Developer ID مستقرًا لتحديثات الإنتاج؛ فقد يعطّل توقيع alpha من نوع ad hoc ثقة Keychain وتتبّع إذن الشبكة المحلية.
Windows x64 تكامل WinRT Windows Hello الأصلي لسطح المكتب مرتبط بنافذة HWND الرئيسية؛ مفتاح مشفّر عبر DPAPI للمستخدم الحالي في Windows Credential Manager بصمة أو وجه أو رمز PIN مهيّأ في Hello. هذا فتح للراحة: يفرض التطبيق موافقة Hello، بينما لا تخضع DPAPI نفسها لحماية القياسات الحيوية. وقد تتمكن شيفرة أخرى تعمل بالمستخدم نفسه من فك تشفير بيانات الاعتماد.
Ubuntu x64 بصمة المستخدم الحالي المسجّلة عبر fprintd D-Bus؛ تخزين صريح لبيانات الاعتماد عبر libsecret / Secret Service قارئ مدعوم، وبصمة مسجّلة، وخدمة Secret Service لسطح المكتب قيد التشغيل، وحلقة مفاتيح افتراضية. فتح للراحة: بيانات الاعتماد في حلقة المفاتيح غير مرتبطة تشفيريًا بالتحقق من البصمة. لا يوجد رجوع إلى basic_text أو إلى ملف نصي صريح.

على Ubuntu، الحزم الاختيارية لبيئة التشغيل هي python3-gi وgir1.2-secret-1 وgnome-keyring (أو خدمة Secret Service متوافقة أخرى) وfprintd. ثبّت الحزم الناقصة باستخدام مدير حزم نظام التشغيل المعتاد، ثم سجّل بصمة في إعدادات النظام. تستخدم المصادقة المستخدم الحالي ولا تتطلب root ولا تغيّر PAM. وتُبلغ جلسة SSH دون واجهة رسومية ودون حلقة مفاتيح لسطح المكتب بعدم التوفر؛ ولا تخزّن المفتاح في مكان آخر بصمت.

قواعد القفل

القفل التلقائي معطّل في عمليات التثبيت الموجودة. وعند تفعيله تُختار 15 دقيقة افتراضيًا؛ والقيم المدعومة هي Never (أبدًا) و1 و5 و10 و15 و30 و60 دقيقة. يُحتسب إدخال لوحة المفاتيح والفأرة في نوافذ التطبيق نشاطًا؛ أما مخرجات SSH الواردة فلا. ويعامل القفل الاختياري عند فقدان التركيز نوافذ إضافات التطبيق كجزء من التطبيق، ويسمح بإكمال مطالبة مصادقة النظام الجارية. ويتطلب تغيير هذه القواعد كلمة المرور الرئيسية.

كل قفل لـ Vault، بما في ذلك القفل بسبب الخمول وفقدان التركيز، يقطع جلسات SSH النشطة ويغلق الإضافات ويوقف التشخيص. احفظ التعديلات البعيدة قبل القفل. وهذا يحافظ على سلوك القفل اليدوي القائم؛ فلا تبقى أي بيانات اعتماد SSH متاحة للإضافات العاملة في الخلفية بعد القفل.

تطلب سياسة العمليات الحساسة الاختيارية مصادقة جديدة من النظام لحذف ملفات التعريف، وتثبيت الإضافات/إزالتها، وتشغيل المثبّت، وإعادة تعيين Vault مفتوح. أما أوامر الطرفية البعيدة وتعديلات الإضافات على الملفات فتقع خارج هذه السياسة. ولا تحل السياسة محل تفويض خادم SSH. إذا توقف الموفّر عن العمل، فافتح بكلمة المرور الرئيسية وغيّر السياسة باستخدامها. وتظل إعادة التعيين متاحة من شاشة الاسترداد المقفلة بعد تأكيدها التدميري.

تصميم Vault وIPC

يظل Vault الإصدار v1 الحالي يستخدم AES-256-GCM مع scrypt؛ ولا يعيد التسجيل كتابة ملفاته ولا يغيّر مخططه. لا تُرسل إلى مخزن بيانات الاعتماد في نظام التشغيل سوى نسخة من المفتاح المشتق بطول 32 بايت. ولا تُخزَّن كلمة المرور الرئيسية بنص صريح أبدًا. تحتوي البيانات الوصفية المحلية للتسجيل على معرّف عشوائي لبيانات الاعتماد والموفّر وربط SHA-256 بالبيانات الوصفية غير القابلة للتغيير لـ Vault. ويجب أن يجتاز المفتاح المسترد فك تشفير موثّقًا قبل فتح أي جلسة. تُمسح مخازن العملية الرئيسية المؤقتة بعد الاستخدام؛ وسلاسل البروتوكول الأصلية ذاكرة عملية مؤقتة، وليست ادعاءً بالمحو الكامل للذاكرة في بيئات التشغيل المُدارة.

يتواصل المساعد (helper) عبر أنابيب stdin/stdout خاصة ومحدودة، ولا يقبل أوامر صدفة، وله مهلات للمصادقة، ويعيد رموز أخطاء منقّاة. تُحزم المساعدات خارج ASAR في resources/biometrics؛ وهي ملفات تنفيذية أصلية مستقلة، فلا حاجة إلى وحدة أصلية وفق ABI الخاص بـ Electron. ويستخدم مساعد Linux لغة Python وGI الخاصين بالنظام. ولا تعبر الكائنات الأصلية والمفاتيح المشتقة جسر renderer/الإضافات أبدًا. ويتحقق IPC الخاص بالقياسات الحيوية من النافذة الرئيسية الحية وإطارها الرئيسي؛ ولا يمكن للإضافات استدعاؤه. يلغي القفل الصريح أعمال الفتح المعلّقة بالقياسات الحيوية وبكلمة المرور، حتى لا تتمكن موافقة متأخرة من إعادة فتح Vault. وتُبطل إزالة التسجيل الربط المحلي حتى إذا كان مخزن نظام التشغيل غير متصل؛ وقد يحتفظ مخزن يتعذر الوصول إليه ببيانات اعتماد يتيمة غير قابلة للاستخدام.

البناء والتحقق

يجهّز npm run biometrics:build المساعد لمنصة المضيف؛ ويستدعيه بدء التطوير وتحضير الإصدار تلقائيًا. يتطلب macOS بيئة Swift/Apple SDK مع Security وLocalAuthentication؛ ويتطلب Windows أدوات Visual Studio C++ Build Tools وWindows SDK وC++/WinRT؛ أما Linux فينسخ مساعد Python. لم تُضف أي تبعيات npm جديدة. ابنِ بشكل أصلي على كل نظام تشغيل مستهدف. يُدرج مساعد macOS في توقيع الحزمة التكراري؛ ولا يحتاج إلى استحقاق App Sandbox لأن تطبيق سطح المكتب هذا لا يعمل داخل sandbox. ولا يزال توزيع macOS في الإنتاج يتطلب توقيع Developer ID والتوثيق (notarization)، بشكل مستقل عن توقيعات إصدارات OpenPGP.

شغّل npm test وnpm run test:biometrics:ui وnpm run test:diagnostics:ui. تستخدم اختبارات Node للقياسات الحيوية واختبار الدخان المعزول للواجهة محوّل نظام تشغيل وهميًا لتغطية النجاح والرفض/الإلغاء والمفاتيح الخاطئة وغياب العتاد/التسجيل وإعادة التعيين وانتهاء المهلة والنتائج المتأخرة وعدم توفر حلقات مفاتيح Linux وأعطال بيانات اعتماد نظام التشغيل واستجابات Windows الموافَق عليها برمز PIN وتغييرات التسجيل على macOS والتوافق مع Vault الحالي وعزل IPC وتنظيف SSH. ولا يثبت ذلك نجاح المصادقة على العتاد الفعلي.

تم التحقق من الترجمة الأصلية على macOS arm64 وWindows x64. يُبلغ macOS بتوفر Touch ID؛ ويُبلغ الجهاز الافتراضي لـ Windows بعدم توفر Hello. ولا يزال تسجيل البصمة/الوجه/PIN، والاسترجاع الفعلي للمفتاح المحمي، وإلغاء نافذة حوار نظام التشغيل، والإبطال الناتج عن تغيير التسجيل، تتطلب اختبارًا تفاعليًا على العتاد في كل نظام مدعوم. ويجب أيضًا اختبار مساعد Linux على سطح مكتب مزوّد بقارئ fprintd مدعوم؛ إذ لا يمكن لجهاز افتراضي دون واجهة رسومية إثبات ذلك التحقق.

مراجع المنصات: التحكم في الوصول بالقياسات الحيوية من Apple، تكامل Hello لسطح مكتب Windows، دورة حياة الأجهزة في fprintd، مواصفة Secret Service.

وصول SSH إلى الشبكة المحلية على macOS

إذا فشل كل ملف تعريف SSH محلي برسالة connect EHOSTUNREACH بينما يعمل الاتصال نفسه في Terminal، فتحقّق من System Settings ← Privacy & Security ← Local Network ← CH-J Server Manager (إعدادات النظام ← الخصوصية والأمان ← الشبكة المحلية) واسمح بالوصول، وأغلق التطبيق تمامًا ثم أعد فتحه. وإذا كان مفعّلًا بالفعل، فبدّل حالة الإذن وأعد التشغيل. تحقّق أيضًا من التوجيه وWi-Fi/Ethernet وVPN: فهذا الخطأ وحده ليس دليلًا على رفض الخصوصية. ولا تُعد تعيين Vault ولا تتخلَّ عن بصمات SSH الموثوقة بسبب هذا الخطأ.

يعلن التطبيق NSLocalNetworkUsageDescription ويقدّم إرشادات مترجمة لأخطاء أذونات/مسارات الشبكة على macOS. ولا يستطيع منح نفسه الإذن. توصي Apple بهوية توقيع صادرة عنها كي يتمكن macOS من تتبّع خصوصية الشبكة بشكل موثوق عبر الإصدارات؛ ولا تزال إصدارات alpha الحالية من نوع ad hoc تعاني هذا القيد. راجع إرشادات Apple حول خصوصية الشبكة المحلية.

أيقونة التطبيق على Ubuntu

تثبّت حزم Debian أيقونة CH-J الحالية بأحجام hicolor القياسية (16–512 px)، مع إدخال سطح مكتب وفئة نافذة Electron مطابقين. وتتلقى النافذة الرئيسية الأيقونة أيضًا عند إعادة إنشائها. بعد تحديث مشغّل قديم مثبّت على الشريط، ألغِ تثبيته وثبّت التطبيق المثبَّت حديثًا؛ ويمكن لتسجيل الخروج من سطح المكتب ثم الدخول مجددًا تحديث ذاكرة مشغّلات GNOME المؤقتة القديمة.