الأمان

الأمان والأسرار

ليس لـ Gitcito خادم خلفي. فالنداءات الشبكية الوحيدة هي إلى مستضيف Git لديك، وإلى مزوّد الذكاء الاصطناعي إن فعّلته.

إعدادات الأمان

تقنيع الأسرار

القيم في .env* و*.pem و*.key وid_rsa وcredentials.* وأشباهها تُعرض على هيئة KEY=•••••• في عروض الفرق والملف وblame، فلا تستطيع مشاركة شاشة أو لقطة أن تسرّبها. ومواد توقيع Apple محسوبة معها: *.mobileprovision و*.provisionprofile و*.p12 ومفاتيح *.p8 الخاصة بـ App Store Connect. أما *.cer فلا — فالشهادة علنية بحكم تصميمها.

وهو للعرض فقط: لا يغيّر الملف أبدًا ولا يغيّر ما تحضّره. ومفتاح على شكل عين يكشفها لكل عرض على حدة. أما .env.example و.sample و.template فتُعامَل كقوالب، لا كأسرار.

ملف .env معروضًا وكل قيمة فيه مقنَّعة، ومفتاح الكشف

حرّاس قبل أن تُحدث ضررًا

الحارس متى
ملف سرّي حين تلتزم بشيء يبدو كبيانات اعتماد — مع تجاهُل وإلغاء تتبُّع بضغطة واحدة
ملف كبير حين تلتزم بكائن مفرط الحجم (العتبة في الإعدادات ← الأمان)
مخلفات البناء عند إيداع xcuserdata/ أو DerivedData/ أو ملف .DS_Store — مع نفس زر تجاهل وإلغاء التتبع بنقرة واحدة
فرع محمي حين تلتزم مباشرةً على main/master، أو ترسل فوقه قسريًا
أسرار متتبَّعة حين ترسل مستودعًا يتتبع ملفًا سرّيًا — يُحذَّر مرة واحدة في الجلسة

سلسلة مفاتيح النظام

الرموز ومداخل الخزنة مشفَّرة بسلسلة مفاتيح نظامك (safeStorage في Electron)، لا بمفتاح في ملف الإعدادات.

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

والتثبيت الجديد يجري صفرًا من نداءات سلسلة المفاتيح حتى يحتاج شيء إلى التخزين فعلًا.

المشاركة بأمان

تصدّر المشاركة الآمنة الإعدادات أو مداخل الخزنة أو مساحات عمل بكاملها على شكل حزمة مشفَّرة — والأسرار لا تُضمَّن أبدًا إلا حين تؤشر على المربع.

انظر أيضًا: الخزنة · المشاركة الآمنة

حسّن هذه الترجمة على GitHub