KeepMyPass
حول KeepMyPass
KeepMyPass هو نظام لإدارة كلمات المرور مبني في لغة Python باستخدام تكامل MySQL مع واجهة مستخدم رسومية. تم تطويره في June/July, 2020
كمشروع علوم الكمبيوتر للصف الثاني عشر (CBSE). ويحتوي أيضًا على نظام إدارة الأحداث ونظام إدارة جهات الاتصال.
الإقرار والشهادة
تم تنفيذ هذا المشروع جزئيًا بمساعدة مدرس علوم الكمبيوتر للصف الثاني عشر. يلبي جميع متطلبات مشروع علوم الكمبيوتر للصف الثاني عشر، 2020-21، ويغطي المفاهيم التالية بالتفصيل:
- التعامل مع ملفات البيانات الثنائية من خلال بايثون
- إدارة قواعد بيانات MySQL من خلال تكامل Python-MySQL باستخدام
mysql.connector
- إنشاء واجهات المستخدم الرسومية باستخدام
tkinter
بعض مميزات التطبيق
ميزة المعلومات
يتم توفير أزرار المساعدة على شاشات مختلفة لمساعدة المستخدم على التنقل عبر التطبيق.
ميزة نسيت كلمة المرور
إذا نسي المستخدم كلمة المرور الرئيسية الخاصة به، فيمكنه استرداد حسابه المفقود باستخدام هذه الميزة.
ميزة إنشاء كلمة المرور
يحتوي Secure-Vault على مولد كلمات المرور الذي يقوم بإنشاء كلمات مرور عشوائية (زائفة).*
(زائفة) ميزات الأمان
- تتضمن الملفات الثنائية سجلات بيانات مزيفة.*
- يتم تشفير البيانات التي يتم كتابتها في الملف الثنائي مرتين.*
- يمكن لمستخدم واحد فقط تسجيل الدخول في المرة الواحدة.
- يتم تخزين جميع البيانات في قاعدة البيانات بتنسيق مشفر، ولا يتم فك تشفيرها إلا إذا رغب المستخدم في رؤيتها.
- تعتبر مفاتيح التشفير/فك التشفير فريدة لكل مستخدم.
ميزة وضع المسؤول
باستخدام وضع المسؤول المحمي بكلمة مرور، يمكن لأي شخص البحث في جميع خزائن المستخدم مرة واحدة.* يمكن استخدام البحث للبحث في سجلات محددة أو جميع السجلات من نوع معين.
الحواشي والمشكلات الأمنية
- المشروع عرضة لإلغاء التسلسل غير الآمن لأنه يستخدم وحدة بايثون
pickle
. - يذكر المشروع (في عدة أماكن) أن كلمات المرور التي تم إنشاؤها هي "آمنة". لاحظ أن كلمات المرور هي مع ذلك شبه عشوائية ، على الرغم من أن أحد عناصر وظيفة إنشاء كلمة المرور يستخدم
os.urandom()
. - تمت إضافة ميزة وضع المسؤول إلى المشروع فقط لتلبية المتطلبات التي حددتها CBSE. لا ينبغي بأي حال من الأحوال الاستفادة من هذه الميزة. أنا، المطور، أفهم تمامًا أن القدرة على الوصول إلى جميع البيانات المخزنة، وتوفير الوصول إليها للمستخدمين النهائيين أمر مثير للمشاكل وغير أخلاقي .
- تتكون تقنية التشفير المطبقة فقط من تعيينات أحرف مختلفة وشفرات ROT، أي لم يتم استخدام خوارزمية تشفير حقيقية في المشروع.
- إن تضمين السجلات المزيفة في الملفات الثنائية لا يؤثر حقًا على أمان سجلات البيانات الفعلية.
- ليس لتشفير البيانات مرتين أي فائدة إضافية مقارنة بتشفيرها مرة واحدة فقط.
- تمت إضافة تلميحات النوع إلى جميع الوظائف في وقت لاحق.
- تمت إضافة
user_checker.py
فقط كمدقق وظائف الخلفية. ليس المقصود للاستخدام.
الاعتمادات التوضيحية
جميع الرسوم التوضيحية المستخدمة في المشروع مأخوذة من LastPass، وأدعي أنني لا أستطيع بأي حال من الأحوال استخدام مشروعي لأغراض تجارية مهما كانت مع هذه الرسوم التوضيحية.
يجري
للتشغيل، قم باستنساخ المستودع الموجود على جهازك، وانتقل إلى المجلد، وقم بتنفيذ ما يلي:
الخطط المستقبلية
- تصحيح كافة المشكلات الأمنية المحتملة وإشراك خوارزميات التشفير/فك التشفير الحقيقية
- تحسين واجهة المستخدم/التصميم
- استخدام حزمة بديلة للتعامل مع الملفات الثنائية أو تنفيذ طريقة بديلة لتخزين مفاتيح التشفير/فك التشفير
- يجب ألا يتم ترميز كلمة المرور الخاصة بوضع المسؤول في الملف
- قم بفرع المشروع، حيث ستتم إزالة وضع المسؤول
- اجعل الكود أكثر نمطية
- تلميحات أفضل وأكثر احترافية للنوع