
تطبيق مكتبي آمن دون اتصال لإنشاء وإدارة رموز التحقق الثنائي (TOTP 2FA). يتميز بتخزين خزنة مشفرة، وتشفير حديث (Argon2 + AES‑GCM)، وهندسة معيارية، ونهج يعتمد على المحلية أولاً دون اعتماد على السحابة. صُمم ليكون موثوقاً وقابلاً للتوسع، وواجهة مستخدم مستقبلية عبر المنصات.
مدير آمن وغير متصل للمصادقة الثنائية (2FA) لبيئات سطح المكتب. مبني بلغة Python، مع تشفير قوي وبدون اعتماد على السحابة.
🌐 الصفحة الرئيسية: desktop-2fa.org
| الميزة | الوصف |
|---|
| 🔐 أمان الخزنة | تشفير AES-256-GCM مع اشتقاق المفتاح باستخدام Argon2id |
| ⏱️ توليد رمز TOTP | توليد رموز متوافقة مع RFC 6238 |
| 💻 واجهة سطر أوامر كاملة | واجهة سطر أوامر شاملة لإدارة الرموز |
| 📋 دعم الحافظة | نسخ تلقائي لرموز TOTP إلى الحافظة |
| 🔓 تصميم بدون حالة | كل أمر يتطلب مصادقة بكلمة مرور صريحة |
| 🛡️ سياسة كلمة المرور | فرض قوة كلمة المرور قابل للتكوين باستخدام zxcvbn |
| 🧪 مختبر جيدًا | 289 اختبارًا ناجحًا مع تغطية شاملة |
| 📖 نموذج الأمان | تحليل تهديدات مفصل وتوثيق التصميم التشفيري |
إضافة إدخال TOTP جديد بشكل تفاعلي
توليد رمز TOTP لإدخال
إعادة تسمية إدخال مع اكتشاف التكرار
عرض معلومات الإصدار وسرد جميع الإدخالات
pip install desktop-2fa
تحقق من التثبيت:
python -c "import desktop_2fa; print(desktop_2fa.__version__)"
# Output: 0.8.1dev
#Initialize a new vault
d2fa vault init
#Add a new TOTP token
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP
#List all entries
d2fa vault list
#Generate a code
d2fa code GitHub
#Provide password via command line
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP --password mypassphrase
#Provide password via file
d2fa vault add GitHub GitHub JBSWY3DPEHPK3PXP --password-file /path/to/passphrase.txt
الخزنة هي ملف تخزين مشفر يقع في ~/.desktop-2fa/vault.
عندما يتطلب أمر ما وجود خزنة ولا توجد واحدة:
--password/--password-file (الوضع غير التفاعلي)Vault created at <path>عندما يتطلب أمر ما وجود خزنة وكانت موجودة:
typer.Exit(1)يفرض أمر rename سلوكًا حتميًا عندما تتطابق إدخالات متعددة مع الاسم الهدف:
Error: Multiple entries named '<name>' exist. Operation aborted. Resolve duplicates first.| الأمر | الوصف |
|---|---|
d2fa vault add <name> <issuer> <secret> | إضافة إدخال TOTP جديد |
d2fa vault list | سرد جميع إدخالات TOTP المخزنة |
d2fa vault rename <old> <new> | إعادة تسمية إدخال |
d2fa vault remove <name> | إزالة إدخال |
d2fa code <name> [--copy|--copy-only] | توليد رمز TOTP مع خيارات النسخ إلى الحافظة |
| الأمر | الوصف |
|---|---|
d2fa vault init [--force] | تهيئة خزنة جديدة |
d2fa vault unlock | فتح الخزنة مع تحذير كلمة المرور الضعيفة (إذا تم تكوينه) |
d2fa vault change-password | تغيير كلمة مرور الخزنة |
d2fa vault backup | إنشاء نسخة احتياطية مشفرة للخزنة |
d2fa vault export <path> | تصدير الخزنة إلى ملف |
d2fa vault import <path> [--force] | استيراد الخزنة من ملف |
| الخيار | الوصف |
|---|---|
--password <pwd> | توفير كلمة مرور الخزنة مباشرة |
--password-file <path> | قراءة كلمة مرور الخزنة من ملف |
--json | الإخراج بتنسيق JSON |
--raw | إخراج خام (بدون تنسيق) |
--quiet | إخفاء الإخراج غير الأساسي |
--copy | نسخ رمز TOTP إلى الحافظة وعرضه |
--copy-only | نسخ رمز TOTP إلى الحافظة فقط |
--force | فرض العملية (تجاوز التأكيدات) |
تستخدم الخزنة:
time_cost=4, memory_cost=128MiB, parallelism=2)كل أمر يتطلب مصادقة صريحة بكلمة مرور. لا يوجد وصول قائم على الجلسة.
يستخدم Desktop-2FA مكتبة zxcvbn لتقييم قوة كلمة المرور عند إنشاء أو تغيير كلمة مرور الخزنة:
أمثلة:
password, 123456, qwerty, admin2024Battery-Horse-Staple-Correct, Mountain@River*2024, MySecureVault#42التكوين (~/.config/d2fa/config.toml):
[security]
# Require strong passwords (score >= 3)
reject_weak_passwords = false # warn but allow | true: reject weak passwords
عندما reject_weak_passwords = false:
عندما reject_weak_passwords = true:
التوافق مع الإصدارات السابقة:
إذا كان لديك min_password_entropy مضبوطًا في ملف الإعدادات (خيار قديم)، فسيتم التعرف عليه ومعاملته كمكافئ لطلب zxcvbn score >= 3.
الإصدار 0.8.0 يحافظ على جميع تعزيزات الأمان السابقة من v0.7.3 ويقدم بنية معيارية لعزل أفضل للكود:
| المستند | الوصف |
|---|---|
| دليل المستخدم | دليل الاستخدام الكامل |
| نموذج الأمان | تحليل التهديدات المفصل والتصميم التشفيري |
| مواصفات تجربة المستخدم للـ CLI | عقد تجربة المستخدم والسلوك |
| التشفير | تفاصيل تنفيذ الأمان |
pytest tests/ # تشغيل جميع الاختبارات
pytest --cov=src/desktop_2fa # تشغيل مع تغطية
src/desktop_2fa/
├── app/ # مكونات التطبيق
├── cli/ # واجهة سطر الأوامر
├── crypto/ # أدوات التشفير
├── totp/ # توليد TOTP
├── ui/ # مكونات واجهة المستخدم
├── vault/ # إدارة الخزنة
└── utils/ # الأدوات المساعدة
رخصة Apache 2.0. انظر ملف LICENSE.
Łukasz Perek
يتم دعم desktop‑2fa من خلال برنامج رعاية Kilo OSS.
للاستفسارات أو الدعم، اتصل بنا على [email protected]
Desktop‑2FA هي أداة مفتوحة المصدر مستقلة تم بناؤها مع التركيز على الاستقلالية والشفافية والأمان دون اتصال. إذا وجدتها مفيدة وتريد دعم التطوير المستمر، يمكنك القيام بذلك من خلال المنصات أدناه: