مرحبا بالجميع. في هذه المقالة ، أود أن أشارك تجربتي في إعداد واستخدام مدير مرور كلمة المرور لنظام التشغيل Linux ، وليس هذا فقط المميز لبساطته ، وذلك باستخدام الأدوات الموجودة بالفعل في النظام والقدرة على العمل حصريًا من وحدة التحكم. وبشكل أكثر تحديدًا ، ستتأثر المشكلات المتعلقة بإنشاء وتخزين المفتاح السري gpg ، وكذلك إعداد التعاون بين pass و gpg و git و github والمتصفح. كل شيء تحت Linux و Windows و Android.
ما هو وكيف يعمل
من الناحية الفنية ، يعد المرور رابطًا بسيطًا جدًا على GnuPG و git مكتوبًا بالباش. يتم تخزين كل كلمة مرور (والمعلومات ذات الصلة ، مثل تسجيل الدخول) في ملف مشفر. يتم تنفيذ البحث عن كلمة المرور المطلوبة بواسطة اسم الملف ، والتشفير - باستخدام GnuPG ، والتزامن بين الأجهزة - باستخدام git.
بالإضافة إلى النسخة الأصلية ، هناك مشروعان أكثر شيوعًا متوافقان مع ذلك ، يعملان على Windows:
- QtPass . تطبيق واجهة المستخدم الرسومية المكتوبة ، كما قد تخمن ، في كيو تي.
- جوباس . تطبيق سطر الأوامر مكتوب في الذهاب. تحت ويندوز ، وأنا استخدامها. ومع ذلك ، في رأيي ، بدأ المطورون في إضافة الكثير من الميزات الإضافية هناك ، مع التخلي عن حدسهم.
مطور النجاح هو Jason Donenfeld ، وهو أيضًا مؤلف WireGuard (تطبيقات VPN المستندة إلى معايير التشفير الحديثة ، "عمل فني مقارنة بـ OpenVPN و IPSec" وفقًا لـ Linus Torvalds ، الذي من المرجح أن يظهر في Linux 5.6 kernel).
إنشاء المفتاح السري
GnuPG - نظام للتشفير والتوقيعات الإلكترونية. على الرغم من العيوب (على سبيل المثال ، مقال ينتقد gpg) ، فقد كان المعيار الفعلي لأكثر من 20 عامًا. حتى المقالة الموجودة على الرابط تجد صعوبة في تسمية أداة بديلة لتشفير الملفات.
يتم وصف عملية إنشاء مفتاح سري في وحدة التحكم على سبيل المثال على habr ، ولكن لماذا لا تفعل ذلك في واجهة المستخدم الرسومية؟ في مشروع كيدي ، صنعوا واجهة لـ GPG تسمى كليوباترا . سيجد مستخدمو Linux ذلك في المستودعات ، وفي gpg4win كليوباترا خارج الصندوق.
في القائمة ، حدد File
- New Key Pair
- Create a personal OpenPGP key pair
.
أدخل الاسم والبريد الإلكتروني. لا داعي للقلق من أنك ستغيرها في المستقبل. يتيح لك GPG إضافة معرف جديد بحرية إلى المفتاح وحذف الموجودات الحالية. إذا كنت تريد التوقيع على التزاماتك باستخدام المفتاح الذي تم إنشاؤه ورؤية مربعات الاختيار "تم التحقق منها" المقابلة لها ، فأنت بحاجة إلى تحديد بريد إلكتروني حقيقي به حالة "مؤكد" في حساب جيثب الخاص بك.
بعد ذلك ، انقر فوق " Advanced Settings
لتكوين إعدادات المفاتيح.
في قسم Key Material
، حدد ECDSA/EdDSA
+ ECDSA/EdDSA
. أنا أفضل عدم استخدام خوارزمية RSA الكلاسيكية ، ولكن استنادًا إلى المنحنيات الإهليلجية ed25519 / cv25519. ميزتهم الرئيسية على RSA من وجهة نظر المستخدم النهائي هي حجم المفتاح الأصغر بنفس قوة التشفير. يُقال إن مفتاح ed25519 256 بت يكون قوياً مثل مفتاح RSA 3072 بت. الميزة الوحيدة لهذا الأخير هو ارتفاع معدل انتشاره ، وخاصة في أنظمة الأجهزة.
يمكنك أيضًا تحديد عائلات منحنى Brainpool و NIST من القائمة. ومع ذلك ، يشتبه في أن الأخيرة لها مستتر من وكالة الأمن القومي ، والسابق لديهم أيضا شكاوى بسيطة. لذلك ، يعد الخياران ed25519 و cv25519 اللذين اقترحهما المشفر الشهير Daniel Bernstein.
حقيقة مثيرة للاهتمام: في معيار المصادقة الذي تم الترويج له بنشاط FIDO U2F (والذي شاركت Google بنشاط في تطويره) ، يتم استخدام منحنيات NIST. أيضًا ، على سبيل المثال ، يدعم Android Keystore ، ولكن لا يوجد دعم لـ ed25519. لماذا حدث هذا؟
نتيجة لذلك ، سيتم إنشاء مفتاحين فرعيين على المنحنيات الإهليلجية. واحد للتوقيعات ، والآخر للتشفير ، وهو ما نحتاجه. لا يسمح GPG باستخدام مفتاح فرعي واحد لكليهما ، على الرغم من أنه ممكن حسابيًا (توجد وظائف مماثلة ، على سبيل المثال ، في مكتبة libsodium
).
إذا كنت تخطط لاستخدام هذا المفتاح للعمل مع git ، فحينها في قسم Certificate Usage
، تحقق من عناصر Signing
Authentication
.
في الخطوة التالية ، يُقترح طرح كلمة مرور تحمي المفتاح بها. نظرًا لأنه سيتم استخدام المفتاح لتشفير جميع البيانات الموجودة في وحدة التخزين ، فإن كلمة المرور هذه هي كلمة مرور رئيسية. يجدر الاقتراب من اختياره بالتحديد.
ماجستير كلمة السر الجيل
بالطبع ، يمكنك دائمًا إنشاء سلسلة عشوائية من عدد كافٍ (على سبيل المثال 20) من الأحرف. ومع ذلك ، يكاد يكون من المستحيل تذكر وصعوبة الدخول بدون أخطاء ، خاصة على الهاتف الذكي. لذلك ، توصي EFF باستخدام عبارات المرور بدلاً من ذلك في دليلك .
تعمل الطريقة كالتالي: خذ قاموسًا كبيرًا بما فيه الكفاية (تقدم EFF العديد من القواميس ، على سبيل المثال هذا القاموس) واختر ما لا يقل عن 6 كلمات عشوائية منه. يمكنك اختيار ما تريد ، حتى بدون استخدام جهاز كمبيوتر على الإطلاق باستخدام الزهر أو العملة المعدنية. هذه الطريقة تسمى diceware . لم تصل إلى النرد والعملات المعدنية حتى الآن ، لذلك shuf
الأداة shuf
المضمنة في غنو الأساسية:
$ shuf --random-source=/dev/random -n 6 ./eff_large_wordlist.txt 51345 rendering 24564 edging 65652 vivacious 31343 footprint 55261 snore 24436 earache
نحن نحفظ عبارة المرور هذه في مكان آمن خارج الكمبيوتر.
نتيجة لذلك ، سيتم إنشاء مفتاح سري. عند العمل في وحدة التحكم ، غالبًا ما يتعين عليك الإشارة إلى بصمة أصبعها ، فإن الأمر يستحق تدوين هذا الرقم.
الآن يمكنك تكوين تكامل gpg و git.
Gpg ، بوابة و github التكامل
بالمعنى الدقيق للكلمة ، وهذا البند هو اختياري. إن ممر تخزين كلمة المرور هو مجرد دليل يحتوي على ملفات مشفرة ، مما يعني أنه يمكن مزامنتها كما تريد. Google Drive ، Yandex.Disk ، إلخ. إلخ إذا كنت لا ترغب في استخدام git ، فأنصحك أن تنتبه إلى Syncthing . هذا هو برنامج مفتوح المصدر يتطلب حدا أدنى من الإعدادات وينقل الملفات مباشرة بين الأجهزة دون تخزينها على خوادم خارجية.
كضيفة استضافة ، لا أحد يكترث برفع الخادم الخاص به عن طريق وضع Gitea ، على سبيل المثال ، ولكن هذا يعني تكلفة دعمه ولا يضمن بالضرورة أمانًا وموثوقية كبيرين. لذلك ، أنا ، لا أرغب في استخدام منتجات Microsoft ، أنشأت مستودعًا خاصًا على github.
آلية المصادقة القياسية في بوابة عبر SSH. من المفهوم عادة أن هذا يتطلب مفتاح ssh خاص. ومع ذلك ، من الممكن ، دون إنشاء كيانات غير ضرورية ، استخدام مفتاح gpg الذي تم إنشاؤه في الخطوة السابقة. من أجل استخدام مفتاح gpg (بتعبير أدق ، المفتاح الفرعي) بواسطة ssh ، يجب استيفاء شرطين:
- يجب أن يحتوي على
A
إشارة A
- المصادقة ؛ - يجب كتابة
~/.gnupg/sshcontrol
.
تم إكمال العنصر الأول بالفعل ، ويمكنك الحصول على keygrip باستخدام الأمر
gpg --list-secret-keys --with-keygrip 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7
في إخراج gpg ، نحن مهتمون بالمجموعة الرئيسية من المفتاح الفرعي 05B6641E23D720E87EE6A26020BAB214B842F2B7
( 05B6641E23D720E87EE6A26020BAB214B842F2B7
).
يمكنك الآن تحميل المفتاح العمومي إلى جيثب. انتقل إلى قسم SSH and GPG keys
في ملف التعريف وحدد New SSH key
. في وحدة التحكم نكتب
$ gpg --export-ssh-key 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPfj81nennAoujvw1fLzGx9iED34zk5oDMYKuUcBq5wv openpgp:0x54068AC7
وانسخ المفتاح ssh العمومي الناتج.
يمكن لـ Git تسجيل أوامر باستخدام gpg ، ويدعم github هذا. أعتقد أن هذه ميزة مفيدة للأمان. تصدير الأمر gpg المفتاح العمومي
$ gpg --export --armor 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7 -----BEGIN PGP PUBLIC KEY BLOCK----- mDMEXcrHrBYJKwYBBAHaRw8BAQdA9+PzWd6ecCi6O/DV8vMbH2IQPfjOTmgMxgq5 RwGrnC+0G0hlbGxvIEhhYnIgPGZha2VAZW1haWwuY29tPoiQBBMWCAA4BQsJCAcC BhUKCQgLAgQWAgMBAh4BAheAFiEEBgnJ3+8aorON7brcwFRLVVQGiscFAl3WO2wC GyMACgkQwFRLVVQGiscg5AEAkh0a6OQS2CPiXq9bWB+wULHUGT6NYZhwZ3eUQCfH Zq0A/iFBJQkAZIFdqH84ksFbvv6K/LQy72NRJzK0tho6qFwHuDgEXcrHrBIKKwYB BAGXVQEFAQEHQEs6UVOtj5yMGxvRcMU577miH/Bh5kZWMJKHxsDBcXV4AwEIB4h4 BBgWCAAgFiEEBgnJ3+8aorON7brcwFRLVVQGiscFAl3Kx6wCGwwACgkQwFRLVVQG isea8wD/X5JSJW0PMu/KucytUZZo8obHa86/TUwH/8+xQ3+djuEBALugbQRmCIr5 /JYO7x5PNA0QYqhh7LIZ9nKYp0mhqpcO =dc89 -----END PGP PUBLIC KEY BLOCK-----
وانسخ ما حدث لنموذج New GPG key
.
الإجراءات الإضافية خاصة بنظام التشغيل الخاص بك.
تكامل gpg و git (linux)
يمكن للعميل OpenSSH المستخدم بواسطة git استلام المفاتيح بطريقتين: من دليل ~/.ssh
ومن خلال المقبس الذي تم إنشاؤه بواسطة البرنامج الخفي ssh-agent
. قد يكون الأخير gpg-agent
، والتي سوف نستخدمها. في الملف ~/.gnupg/gpg-agent.conf
ستحتاج إلى كتابة السطر enable-ssh-support
.
أعد تشغيل gpg-agent باستخدام الأمر
gpg-connect-agent reloadagent /bye
بعد ذلك ، فإنه سيتم إنشاء مأخذ في
${XDG_RUNTIME_DIR}/gnupg/S.gpg-agent.ssh
يجب كتابة هذا المسار (قد يعتمد على التوزيع) في متغير البيئة $SSH_AUTH_SOCK
، وسيقوم ssh $SSH_AUTH_SOCK
. نكتب الأمر في وحدة التحكم
ssh -T git@github.com
وإذا سارت الأمور على ما يرام ، فبعد إدخال كلمة المرور الرئيسية ، ستظهر رسالة حول المصادقة الناجحة.
تكامل gpg و git (Windows)
في الآونة الأخيرة ، أضافت Microsoft OpenSSH إلى عدد مكونات Windows المتاحة للتثبيت ، ونفذت أيضًا دعمًا لمآخذ التوصيل مثل AF_UNIX
، مثل SSH_AUTH_SOCK
نفسه. ومع ذلك ، Win32-OpenSSH غير قادر على التفاعل مع gpg4win ، لأنه لا يزال يستخدم توجيهات الإخراج المسماة فقط.
لذلك ، عليك تثبيت المعجون دائمة الخضرة. نكتب في الملف
~/AppData/Roaming/gnupg/gpg-agent.conf
enable-putty-support
وإعادة gpg وكيل. بعد ذلك ، سيبدأ في التظاهر بأنه ملكة - شيطان المفاتيح. يجب أن يكون الملف sshcontrol
موجودًا في نفس المجلد.
لكي يبدأ عميل git في استخدام المعجون ، تحتاج إلى إنشاء GIT_SSH
البيئة GIT_SSH
مع المسار إلى plink.exe
. على سبيل المثال ، لدي هذا
C:\ProgramData\chocolatey\bin\PLINK.EXE
بالمناسبة عن بوابة. يحتوي git for windows
المثبت عادة git for windows
عميل git for windows
على الكثير من الأشياء غير الضرورية (على الأقل غير الضرورية لتشغيل gopass) ، على سبيل المثال تطبيقه الخاص لـ OpenSSH. ومع ذلك ، فإن مطوريها يصنعون نسخًا أخف يمكن تنزيلها على جيثب . على سبيل المثال ، هناك MinGit أصغر بمرتين ، ويمكن للأشخاص الخطرين تجربة MinGit-busybox. نشأ إصدار busbox بسبب رغبة المطورين في إنشاء عميل git باستخدام Win32 api بدون طبقات مثل MSYS2. ومع ذلك ، وفقًا لمراجعاتهم الخاصة ، لا يزال mingit-busybox يحتوي على الكثير من الأخطاء. يمكنك قراءة المزيد عن هذه الجهود في التذكرة .
تأكد من تشغيل gpg-agent ( gpg-connect-agent /bye
) وتحقق من الاتصال بـ github:
plink git@github.com
بوابة الإعداد
لا شيء غير عادي هنا. أعتقد أنه يمكن إعطاء الأوامر دون تعليق:
git config --global user.name "Hello Habr" git config --global user.email fake@email.com git config --global user.signingKey 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7 git config --global gpg.program /usr/bin/gpg git config --global commit.gpgSign true
gpg.program
عنصر gpg.program
إذا لم يكن gpg في PATH
.
سر النسخ الاحتياطي الرئيسية
يجب تخزين المفتاح السري بشكل آمن مثل عبارة المرور ، أي خارج الكمبيوتر. يمكنك ببساطة طباعة سلسلة طويلة من الأرقام ، ولكن التعرف عليها أو الدخول من لوحة المفاتيح - هذا ليس لضعاف القلوب. لذلك ، أفضل إنشاء رمز QR الذي يسهل مسحه باستخدام أي هاتف ذكي. هناك برنامج qrencode
خاص لهذا qrencode
. يتم إنشاء صورة رمز QR على النحو التالي:
gpg --export-secret-key 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7 | qrencode --8bit --output secret-key.qr.png
بطبيعة الحال ، فإن المعلومات غير الضرورية في النسخ الاحتياطي ، كان ذلك أفضل. هنا ، حجم مفتاح صغير جدًا هو ed25519. بفضل دانيال بيرنشتاين!
هناك أداة مساعدة خاصة بـ paperkey تتيح لك تقليل كمية البيانات إلى الحد الأقصى. سعر الخفض هو أنه لا يمكن استعادة المفتاح السري من مثل هذه النسخة الاحتياطية إلا إذا كان هناك مفتاح عام. يحتوي نظام GPG البيئي على خوادم خاصة لتخزين المفاتيح العامة ؛ يمكنك القراءة عنها وليس فقط في المقالة https://eax.me/gpg/ .
يتم إنشاء نسخة احتياطية paperkey على النحو التالي:
gpg --export-key 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7 > pubkey.asc gpg --export-secret-key 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7 | paperkey --output-type raw | qrencode --8bit --output secret-key.qr.png
القاعدة الثانية للنسخ الاحتياطي: النسخ الاحتياطي غير موجود حتى يتم تأكيد القدرة على استعادة البيانات منه. لذلك ، نجري اختبار الإجهاد. احذف المفتاح السري باستخدام الأمر
gpg --delete-secret-key 0609C9DFEF1AA2B38DEDBADCC0544B5554068AC7
ثم نقوم بمسح رمز الاستجابة السريعة واستيراد المفتاح مرة أخرى إلى GPG. كماسح رمز الاستجابة السريعة لنظام Android ، أنا أحب BinaryEye ، وهو برنامج مجاني مع واجهة سهلة الاستخدام. في الصورة أدناه - نسخة احتياطية من المفتاح السري من هذه المقالة.
paperkey --pubring pubkey.asc --secrets from_qr.asc > secretkey.asc gpg --import ./secretkey.asc
أتمنى ألا تستخدم هذا المفتاح في أي مكان. يتم إنشاؤه لأغراض التوضيح فقط.
إذا كان كل شيء يعمل ، ثم يمكنك المضي قدما.
باستخدام (الذهاب) تمر
الآن بعد أن أصبح لدينا مفتاح خاص آمن ومخزن بشكل آمن ، بالإضافة إلى تكامل العمل مع git ، يمكننا البدء في استخدام التمريرة نفسها. أنا أفضل gopass ، لأن هذا الربط البديل يعمل تحت ويندوز.
تهيئة تخزين كلمة المرور مع الأمر
gopass init
وحدد المفتاح السري المطلوب من القائمة.
يحدث العمل باستخدام git بالطريقة نفسها كما في الحالة في مستودع عادي ، فقط سطر الأوامر يحتاج إلى إضافة (go)pass
. نهيئ المستودع ونضيف الأصل المطلوب هناك:
gopass git init gopass git remote add origin git@github.com:xxx/taisho-secrets.git
يمكن العثور على العنوان في صفحة المستودع في جيثب من خلال النقر على زر Clone or download
.
لدى Gopass أمر محدد
gopass sync
أداء كلا git pull
و git push
، أي التزامن الكامل.
يتم إنشاء التخزين الافتراضي في مجلد ~/.password-store
، ولكن يمكنك أيضًا تحديد المسار الخاص بك.
للعمل مع كلمات المرور ، تدعم وحدة التحكم الأوامر ls أو cp أو mv أو البحث أو الإنشاء أو ما إلى ذلك. يمكنك الحصول على القائمة الكاملة عن طريق كتابة gopass --help
، لكنني شخصياً لا أستخدم وحدة التحكم ، لكن البرنامج المساعد للمستعرض هو 95٪ من الوقت.
تكامل المتصفح
يُسمى مكون المتصفح الإضافي gopass bridge ، ويمكن العثور عليه في متجر Chrome و Firefox (انظر الرابط).
لتوصيل المكوّن الإضافي بـ gopass نفسها ، ستحتاج إلى برنامج نصي إضافي وبيان للرسائل الأصلية. يتم إنشاؤها من قبل الفريق.
gopass jsonapi configure
والتي سوف تقدم لنا لاختيار متصفح وموقع البرنامج النصي.
تحقق كيف يعمل كل شيء. إنشاء كلمة مرور جديدة:
gopass new habr
نحن الإجابة على جميع الأسئلة وحفظها. سيطالبك GPG بإدخال كلمة مرور رئيسية للعمل مع المفتاح الخاص.
نحن الآن نفتح قائمة المكونات الإضافية بميزة gopher زرقاء مميزة ، وإذا سارت الأمور على ما يرام ، يمكننا العثور على كلمة المرور الخاصة بنا.
مفاتيح TOTP
أنا شخصياً أستخدم FreeOTP ، ومع ذلك ، يمكنك العمل باستخدام هذه المفاتيح باستخدام pass. يحتاج مستخدمو التمرير الأصلي إلى تثبيت ملحق pass-otp ، وفي gopass و APS (انظر أدناه) ، تكون الوظائف الضرورية خارج الصندوق.
لإضافة مفتاح TOTP إلى مخزن كلمة المرور باستخدام pass-otp ، نحصل على عنوان URL (يبدأ بـ otpauth://
) وأدخل الأمر
pass otp insert totp-secret
ما إذا كان يمكن أن يسمى المصادقة الناتجة عاملين هو نقطة خلافية. يوصي مطورو KeePassXC بتخزين مفاتيح TOTP في قاعدة بيانات منفصلة محمية بكلمة مرور مختلفة. في تمرير ، ويمكن أيضا أن يتم ذلك.
التكامل الروبوت
يسمى تنفيذ GnuPG لنظام Android OpenKeychain . لتكوينه ، ما عليك سوى الانتقال إلى قائمة "إدارة المفاتيح" واستيراد المفتاح السري الذي تم إنشاؤه مسبقًا. العيب الوحيد في OpenKeychain بالنسبة لي شخصيا هو أنه لا يوجد فتح لبصمات الأصابع.
يسمى تنفيذ تمرير Android android-password-store ، أو ببساطة APS.
تثبيت وتشغيل APS. قبل مزامنة تخزين كلمة المرور ، انتقل إلى قائمة "الإعدادات". سنحتاج إلى العناصر التالية:
git
. يجب أن يكون عنوان URL الناتج هو نفسه المحدد في صفحة المستودع في جيثب. نوع التفويض - OpenKeychain
.Git utils
. في هذا القسم ، حدد اسم المستخدم والبريد الإلكتروني من مفتاح gpg.OpenPGP
. حدد OpenKeychain
.
. تتضمن هذه الميزة التي ظهرت مؤخرًا ملء كلمات المرور في التطبيقات على Android 8.0+.
لاحظ لمستخدمي الهواتف الذكية من Huawei وأي شخص آخر أيضًا: تتوفر برامج Open-Keychain و APS و BinaryEye و FreeOTP بالإضافة إلى Syncthing و Telegram و Tachiyomi و KDE Connect والمزيد في F-Droid . يجب أن يقدّر مستخدمو Google Play هذا: فهرس البرامج الذي لا يحتوي على إعلانات ، أو برامج rootkits ، أو ببساطة برامج غير مرغوب فيها من مقالة tonky الشهيرة .
قبل الإكمال التلقائي في APS ، اعتدت keepass2android . ليس في F-Droid للسبب الأصلي: هو مكتوب بلغة Xamarin ، ولكن لم يتمكن مشرفو F-Droid من تثبيت هذا الإطار على خادم الإنشاء الخاص بهم لمدة 9 أشهر حتى الآن . شخص ما يفعل شيئا.
الآن يمكنك استنساخ. على الشاشة الرئيسية ، حدد "استنساخ من الخادم" ، حدد الموقع المطلوب للمستودع ، تحقق من إعدادات git.
إذا أدت محاولة التعامل مع git إلى حدوث خطأ (ربما كان ذلك في الإصدارات السابقة من APS بسبب استخدام إصدار قديم من مكتبة jgit
من مشروع Eclipse) ، فلا يزال هناك Syncthing.
استنتاج
بالطبع ، تمرير ليس من السهل تكوينه. ومع ذلك ، بالنسبة لهذا السعر ، يمكنك شراء الثقة في أن الأدوات التي نستخدمها (وكذلك الأشخاص مثل Linus Torvalds أو Edward Snowden) لن يتم إهمالها في نقطة واحدة ، ولن تغير تنسيق البيانات ، ولن تكون بدون دعم. وإذا فعلوا ذلك ، فإن التصميم البسيط المعياري للمرور يشجع على إنشاء أي عملاء وملحقات بديلة.
إذا قررت عدم استخدام كلمة مرور ، فأتمنى أن تكون بعض البرامج المذكورة في المقالة مفيدة لك بمفردها.