تخزين الإعدادات
يوفر تخزين الإعدادات مزامنة مشفرة بدون معرفة لإعدادات واجهة سطر الأوامر عبر الأجهزة. يُشفَّر إعدادك من جهة العميل بمفتاح تشفير المحتوى (CEK)، ولا يرى الخادم أبداً البيانات بنص واضح.
طرق فك القفل (فتحات المفاتيح)
هناك مفتاح تشفير محتوى (CEK) واحد لكل مخزن، يُغلَّف بشكل مستقل لكل طريقة فك قفل، على غرار فتحات مفاتيح LUKS. أي فتحة واحدة تفتح المفتاح نفسه، ويمكن إضافة الفتحات أو إزالتها دون إعادة تشفير بياناتك:
| الطريقة | ما هي | ملاحظات |
|---|---|---|
| مفتاح المرور | مفتاح مرور WebAuthn مع امتداد PRF | الخيار الأقوى؛ مدعوم بالعتاد |
| كلمة المرور الرئيسية | كلمة مرور تختارها، تُقوَّى باستخدام PBKDF2-SHA256 (600,000 تكرار) | تعمل بدون عتاد يدعم PRF؛ وتتيح أيضاً التسجيل بدون واجهة في واجهة سطر الأوامر |
| رمز الاسترداد | رمز يُنشأ بالصيغة RC1-XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX | يُعرض مرة واحدة فقط عند الإنشاء؛ احفظه في مكان آمن |
تغذي كل طريقة المسار نفسه: تُنتج الفتحة سراً يتحد مع سر يحتفظ به الخادم لفك تغليف مفتاح CEK. لا يكفي أي من النصفين بمفرده، لذا تبقى خاصية “بدون معرفة” قائمة في الطرق الثلاث جميعها، ولا يصل سر الفتحة إلى الخادم أبداً.
تُدار الفتحات من البوابة في صفحة تخزين الإعدادات. المؤسسات التي تريد فك قفل بالعتاد فقط يمكنها تفعيل سياسة طلب مفتاح المرور، التي ترفض أي فتحة غير مفتاح مرور وتُلغيها من المخزن بالكامل.
فك القفل مرتبط بالجهاز: تفك القفل مرة واحدة على جهاز جديد، وبعدها تعمل عمليات واجهة سطر الأوامر اليومية (push/pull) دون الحاجة لمفتاح مرور أو كتابة كلمة مرور.
المتطلبات الأساسية
- المصادقة الثنائية مفعّلة على حسابك
- لطريقة مفتاح المرور: مزود مفتاح مرور يدعم PRF، مثل مفتاح أمان FIDO2 (كـ YubiKey)، أو iCloud Keychain، أو Google Password Manager، أو 1Password، أو Dashlane
- المتصفح: Chrome 133+، أو Edge 133+، أو Firefox 130+، أو Safari 17+
ينطبق شرط PRF على فتحة مفتاح المرور فقط. أما طريقتا كلمة المرور الرئيسية ورمز الاسترداد فتعملان مع أي متصفح مدعوم.
الإعداد
- انتقل إلى تخزين الإعدادات في الشريط الجانبي، ثم انقر على إعداد تخزين الإعدادات
- تتحقق قائمة المتطلبات من متصفحك والمصادقة الثنائية وحالة الجلسة
- انقر على بدء الإعداد. لإنشاء فتحة مفتاح مرور، ستحتاج إلى لمس مفتاح الأمان مرتين:
- اللمسة الأولى: تسجيل مفتاح المرور
- اللمسة الثانية: اشتقاق مفاتيح التشفير عبر PRF
- اكتمل الإعداد — يتم تخزين سر مفتاح المرور في حلقة مفاتيح نظام التشغيل
بعد الإعداد، أضف فتحة كلمة مرور رئيسية أو رمز استرداد من صفحة تخزين الإعدادات، حتى لا يُقفَل عليك بفقدان أداة المصادقة أو عدم دعمها.
توافق مزودي PRF
| المزود | دعم PRF | المنصات |
|---|---|---|
| YubiKey / مفاتيح أمان FIDO2 | ✅ | Windows 11، macOS، Linux |
| iCloud Keychain | ✅ | macOS 15+، iOS 18+ |
| Google Password Manager | ✅ | Android |
| 1Password | ✅ | Android، iOS |
| Dashlane | ✅ | متعدد المنصات |
| إضافة Bitwarden | ❌ | قيد التطوير |
| Windows Hello | ❌ | غير مدعوم |
التسجيل بدون واجهة في واجهة سطر الأوامر
يمكن لجهاز بلا متصفح (خادم، أو عامل CI، أو خدمة تنفيذ) التسجيل في مخزن قائم باستخدام طريقة كلمة المرور الرئيسية:
rdc config remote enable --password
المتطلبات:
- فتحة كلمة مرور رئيسية مُهيَّأة مسبقاً عبر البوابة (يحتفظ المتصفح بالمفتاح أثناء التهيئة، لذا لا يمكن أن تكون هذه الخطوة نفسها بدون واجهة)
- رمز وصول API يحمل نطاق
config:enrollلمصادقة الطلب
التسجيل عملية قراءة: تجلب واجهة سطر الأوامر معاملات KDF العامة للفتحة والمفتاح المُغلَّف، وتشتق سر كلمة المرور محلياً، وتفك تغليف مفتاح CEK على الجهاز نفسه. يمنح ذلك الجهاز القدرة على فك تشفير الإعدادات ومزامنتها؛ ولا يُعدِّل المخزن.
التفعيل والقراءة بلا اتصال
يربط أمر rdc config remote enable الإعداد النشط بالمخزن. عندما يكون المخزن فارغاً، يقوم التفعيل بـتعبئته من إعدادك المحلي الحالي: تُدفع الموارد المحلية كأول إصدار للمخزن، ثم تُسحب مرة أخرى لإثبات صحة الدورة الكاملة. عندما يحتوي المخزن على محتوى بالفعل، فإن التفعيل يوفّق معه بدلاً من الكتابة فوقه (يتوقف عند تباين حقيقي ما لم تمرر --force).
بعد التفعيل، يحتفظ الإعداد بـذاكرة تخزين مؤقت للقراءة كاملة، مشفّرة أثناء التخزين بنفس آلية أي إعداد محلي، بحيث يبقى المخزن قابلاً للاستخدام عندما يتعذر الوصول إلى خادم الحساب:
- تعمل القراءات دون اتصال. يُقدَّم المحتوى المخزَّن مؤقتاً مع تحذير بعدم الحداثة على stderr، موسوماً بإصدار وطابع زمني للتخزين المؤقت (
cachedVersion/cachedAt). - تتطلب الكتابة الخادم وتفشل بأمان. لا توجد قائمة انتظار كتابة دون اتصال: أي كتابة لا يمكنها الوصول إلى الخادم تفشل مع ذكر اسم الخادم. إذا نجح أمر كتابة، فإن التغيير موجود على الخادم.
- تُحل التعديلات المتزامنة من جهازين عبر السحب-إعادة التطبيق-إعادة الدفع على مستوى مجموعة الموارد، بحيث لا يطغى تعديل متزامن في مكان آخر على تعديلك.
تدوير المفتاح
يؤدي تدوير مفتاح CEK الخاص بالمخزن إلى إعادة تغليفه تحت جيل جديد:
- تُبطَل رموز الاسترداد دائماً عند التدوير، لذا أنشئ رمزاً جديداً واحفظه بعد ذلك
- تبقى فتحة كلمة المرور الرئيسية صالحة فقط إذا أُعيد إدخال كلمة المرور أثناء معالج التدوير
- تُبلَّغ أي فتحة متروكة عند جيل أقدم بأنها قديمة بدلاً من أن تفشل بخطأ فك تشفير غامض
إدارة الأعضاء
تخزين الإعدادات محدد لكل مؤسسة. تتم إدارة الأعضاء عبر بوابة الويب:
- عرض الأعضاء: تخزين الإعدادات ← الأعضاء
- إضافة عضو: حالياً عبر واجهة سطر الأوامر فقط (واجهة الويب مخططة)
- إزالة عضو: انقر على زر الإزالة في صفحة الأعضاء (يتطلب المصادقة الثنائية + إعادة المصادقة)
تمنع الحمايات الأمنية إزالة آخر عضو نشط أو إزالة نفسك.
تخضع الإعدادات داخل المخزن أيضاً لنطاق كل فريق، لكن هذا النطاق هو تحكم وصول من جانب الخادم، وليس عزلاً تشفيرياً: يُشفِّر مفتاح CEK واحد على مستوى المؤسسة إعدادات جميع الفرق، ويفرض الخادم أي الفرق يمكن لعضو معين قراءتها.
الأمان
- بدون معرفة: يخزن الخادم بيانات مشفرة ثلاثياً لا يمكنه فك تشفيرها
- مفتاح مقسم: يتطلب فك التشفير كلاً من سر الفتحة (العميل) وسر الخادم (الخادم)
- رموز متجددة: تستخدم كل مكالمة API رمزاً جديداً؛ الرموز القديمة تدمر نفسها ذاتياً
- ربط IP: ترتبط الرموز بعنوان IP الخاص بك عند أول استخدام
- إلغاء فوري: يفقد الأعضاء المُزالون الوصول خلال 30 ثانية
استكشاف الأخطاء وإصلاحها
| الخطأ | السبب | الحل |
|---|---|---|
| PRF not supported | المصادق يفتقر إلى امتداد PRF | استخدم YubiKey، أو iCloud Keychain، أو 1Password، أو Dashlane، أو أضف فتحة كلمة مرور رئيسية |
| X25519 not supported | إصدار المتصفح قديم جداً | حدّث إلى Chrome 133+، أو Edge 133+، أو Firefox 130+، أو Safari 17+ |
| Already configured | يوجد مخزن لمؤسستك بالفعل | قم بزيارة /account/config-storage للإدارة |
| Config storage not configured | الخادم يفتقر إلى تخزين blob | اتصل بمسؤولك لتكوين R2/RustFS |
| Token expired | لا يوجد نشاط لمدة 24 ساعة | شغّل أي أمر تخزين إعدادات للتحديث |
| Cannot remove last member | سيؤدي إلى قفل المخزن نهائياً | أضف عضواً آخر أولاً |
| Stale slot | الفتحة أقدم من آخر عملية تدوير للمفتاح | أعد إضافة الفتحة (يجب إعادة إنشاء رموز الاسترداد بعد كل تدوير) |
ذو صلة
- وحدة التحكم على الويب، فك قفل المخزن في المتصفح لتشغيل الأوامر
- الوسيط والمنفِّذ، كيف يُمنح المفتاح المفكوك القفل إلى منفِّذ