تم النشر منذ 8 Nov 2014 (معدل) السلام عليكم أعمل الآن على وضع اللمسات الأخيرة لبرنامج صغير (Password Manager) يسمح بتسيير و حفظ كلمات المرور بشكل آمن مع ضمان الـ portability. وظائف البرنامج :إنشاء قاعدة بيانات جديدة (قاعدة البيانات محمية بالـ master password) (إضافة، تغيير، حذف، بحث [عن] ) حساب نسخ المعرف أو كلمة المرور تنضيف الـ cliboard فتح الـ URL تبع الحساب (إن وُجد) توليد كلمات مرور قوية تقييم صلابة كلمات المرور إظهار تفاصيل التقييم حفظ قاعدة البيانات باسم (save as) - امتداد الملف الذي استخدمته هو psm تغيير كلمة المرور الرئيسية تسجيل الخروج بشكل يدوي تسجيل الخروج بشكل تلقائي (بعد مدة مُحددة) فتح ملف الـ psm توليد كلمة المرور انطلاقا من تحريك الـ mouse على random picture لمدة 10 ثواني إظهار الحسابات المنتهية الصلاحية حماية ملف الـ psm ضد التعديل . المكتبات المُستخدمة :Boucny CaslteSQLite JDBCSwingXJTattoo الـ design patterns المُستخدمة :Model–View–ControllerObserver Pattern الـ IDE المُستخدم : Netbeans.لم أستخدم Drag and Drop لرسم الواجهات، كتبتها جميعاً عن طريق الكود : صور من البرنامج : إن كان هناك من يرغب في الحصول على السورس كود لتطوير البرنامج فليراسلني على الخاص. (للجادين فقط :) ) تحياتي. تم تعديل 8 Nov 2014 بواسطه Snack3r 2 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 8 Nov 2014 إنشاء قاعدة بيانات جديدة (قاعدة البيانات محمية بالـ master password)يبدو برنامجا رائعا مفيدا ولكن هل لك أن تخبرني كيف ستحمي قاعدة البيانات من العبث 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 8 Nov 2014 صور أخرى :) كيف ستحمي قاعدة البيانات من العبث هذه هي الـ fonctionnalité الوحيدة المتبقية، أعمل الآن عليها :rolleyes: 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 8 Nov 2014 (معدل) إنما سألتك لأنها مسالة سبق ونوقشت في هذا الموضوعيمكنك الاطلاع عليه فلعله يفيدك أو تفيدhttp://arabteam2000-forum.com/index.php/topic/292601-%D9%86%D9%82%D8%A7%D8%B4-%D8%AD%D9%88%D9%84-%D8%A3%D9%81%D8%B6%D9%84-%D8%B7%D8%B1%D9%8A%D9%82%D8%A9-%D9%84%D9%84%D8%AA%D8%B9%D8%A7%D9%85%D9%84-%D9%85%D8%B9-%D8%A7%D9%84%D9%80-encryption-key/ تم تعديل 8 Nov 2014 بواسطه أحمد أبو عبد البر 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 8 Nov 2014 والله شيء رائع وجميلهل فكرت ان توسع عمل البرنامج ليكون enterpriseاي عن طريق الويب يكون لكل مستخدم حساب يستطيع فيه حفظ كلمات السر واستخدامها في اي جهاز وفي كل مكان 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 8 Nov 2014 @أحمد أبو عبد البرحفظ قاعدة البيانات من العبث صعيب جداً إن كان التطبيق portable لكن لو كان التطبيق مُثبتا على الجهاز فيُمكن تخزين الـ hash في أحد ملفات الـ installation التابعة للتطبيق.الفكرة التي أعمل عليها حالياً لضمان الـ integrity تكمن في حساب hash الملف و تخزينه مُشفراً في قاعدة البيانات، عند محاولة فتح الملف أقوم بحساب الهاش الجديد للملف ثم أقارنه بالهاش المُخزن بعد فك تشفيره.ما رأيك ؟ :) @vector_everفي الحقيقة لم أفكر في هذا، البرنامج كتبته بالأساس للإستعمال الشخصي، لكن ربما أغير فكرتي إن وجدتُ عرضاً من شركة ما، من يدري ؟ :D الإصدار القادم سيدعم :العمل على عدة work session في نفس الوقتتحسين عملية البحث عن الحسابات باستخدام الـ regexجعل التطبيق على شكل plugin (سأبدأ بـ firefox و بعدها سأفكر في chrome و البقية تأتي ..)برمجة نسخة للهواتف الذكية (سأبدأ بالعمل على نسخة الـ Android و بعدها Windows Phone) تحياتي. 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 8 Nov 2014 الفكرة التي أعمل عليها حالياً لضمان الـ integrity تكمن في حساب hash الملف و تخزينه مُشفراً في قاعدة البيانات، عند محاولة فتح الملف أقوم بحساب الهاش الجديد للملف ثم أقارنه بالهاش المُخزن بعد فك تشفيره.لن يحصل التطابق هكذا لانك ستحسب الهاش لملف قاعدة البيانات ثم ستعدل على قاعدة البيانات و تخزن فيها ناتج الهاش وبالتاكيد ستتغير بصمة الملف ولن يحدث التطابق في المقارنة القادمة الفكرة الصحيحة تعتمد على تخزين الهاش خارج ملف قاعدة البيانات ولكن اين ستخزنه ، هذا ما لم أجد له حلا مع ضمان المحمولية للبرنامج والاستقلال عن أنظمة التشغيل شيء آخر في قولك بعد فك تشفيره.وهو أن الهاش يعتمد على خوارزميات تشفير لايمكن عكسها أي لا يمكن فك تشفيره إلا بالاقتحام العنيف 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 8 Nov 2014 (معدل) لن يحصل التطابق هكذا لانك ستحسب الهاش لملف قاعدة البيانات ثم ستعدل على قاعدة البيانات و تخزن فيها ناتج الهاش وبالتاكيد ستتغير بصمة الملف ولن يحدث التطابق في المقارنة القادمةلعلك لم تفهم ما قصدتُه :)عند حفظ قاعدة البيانات أقوم بحساب هاش الملف و أخزنه داخل الـ database بعد تشفيره.عند محاولة فتح ملف الـ psm أقوم بحساب هاش الملف من جديد و أقارنه مع الهاش المُخزن في قاعدة البيانات. الهاش يعتمد على خوارزميات تشفير لايمكن عكسها أي لا يمكن فك تشفيره إلا بالاقتحام العنيفبلا اقتحام بلا بطيخ :P :D حسب فكرتي، الهاش يتم توليده بـ SHA-256 و يتم تشفيره بـ AES-CBC-256 و مفتاح التشفير هو نفسه المفتاح الذي أشفر به بيانات الحسابات. تم تعديل 8 Nov 2014 بواسطه Snack3r 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 8 Nov 2014 @vector_everفي الحقيقة لم أفكر في هذا، البرنامج كتبته بالأساس للإستعمال الشخصي، لكن ربما أغير فكرتي إن وجدتُ عرضاً من شركة ما، من يدري ؟ :D الإصدار القادم سيدعم :العمل على عدة work session في نفس الوقتتحسين عملية البحث عن الحسابات باستخدام الـ regexجعل التطبيق على شكل plugin (سأبدأ بـ firefox و بعدها سأفكر في chrome و البقية تأتي ..)برمجة نسخة للهواتف الذكية (سأبدأ بالعمل على نسخة الـ Android و بعدها Windows Phone) تحياتي. ربما لو طرحت هذا المشروع في المنتدى وقررت عمله Enterprise ستجد من يعمل معك...شخصيا ارغب بالمشاركة في هكذا موضوع لانه جد مفيد وعمل مثمر 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 9 Nov 2014 أهلا vector ever :) هل تقصد بالـ entreprise وجود التطبيق على server و إمكانية الوصول إلى قاعدة بيانات المستخدم عن بعد ؟ (للعلم، مع تعديلات خفيفة، يُمكن للبرنامج الآن أن يعمل هكذا)أم تقصد وجود shared database تحوي مجموعة كلمات سر لمجموعة مستخدمين مع تسيير الـ privileges لكل مسستخدم ؟ (هذا يتطلب إعادة النظر في الـ architecture تبع التطبيق) الـ architecture الحالية هكذا : 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 9 Nov 2014 أهلا vector ever :) هل تقصد بالـ entreprise وجود التطبيق على server و إمكانية الوصول إلى قاعدة بيانات المستخدم عن بعد ؟ (للعلم، مع تعديلات خفيفة، يُمكن للبرنامج الآن أن يعمل هكذا)أم تقصد وجود shared database تحوي مجموعة كلمات سر لمجموعة مستخدمين مع تسيير الـ privileges لكل مسستخدم ؟ (هذا يتطلب إعادة النظر في الـ architecture تبع التطبيق) الـ architecture الحالية هكذا :Arch.jpgما أقصده اخي هو الحالة الأولى طبعالكن للتوضيح ان ما أقصده هو ليس ان يكون البرنامج مكتبي Desktop مع امكانية الاتصال بالانترنت للولوج لقاعدة البياناتلكن ان يكون عبارة عن صفحة ويب تسمح لكل مستخدم ان يكون لديه حساب ويضيف فيه كلمات السر للبرامج والتطبيقات وصفحات التواصل الاجتماعي والبريد الالكترونيالهدف من ذلك تمكين المستخدم من الولوج لحساباته المختلفة من أي جهاز كمبيوتر في أي مكان كل ما عليه هو الولوج لصفحة الويب التي تحوي كلمات السر الخاصة بهالهدف 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 9 Nov 2014 أوكي.هل أنت مستعد للمشاركة ؟و بأي لغة برمجة تود كتابة نسخة الويب ؟ 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 9 Nov 2014 لعلي لم أفهم قصدك فحسبت أنك ستستعمل ملفا واحدا هو ملف قاعدة البيانات ولكن إلى الآن لا يمكنك حماية الملف من العبث وإنما يمكنك معرفة هل حدث عبث أم لا تقنيا embedded data base غير آمنة لحفظ بيانات حساسة لا سيما إذا أردت استقلالية عن أنظمة التشغيل 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 9 Nov 2014 اهلا اخيانا مستعد للمشاركة يفصلني فقط بعض الصعوبات التفنية -كعدم توفر جهاز حاسوب مناسب لدي- نلك الصعوبات سيتم تجاوزها قريبا ان شاء الله بغضون 3 اسابيع تقريبا الامر الاخر هو انني استخدم JSF في برمجة الويب 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 9 Nov 2014 (معدل) إلى الآن لا يمكنك حماية الملف من العبث وإنما يمكنك معرفة هل حدث عبث أم لا في الحقيقة، أعتقد أن المشكلة الرئيسية في الـ password manager هي مشكلة الـ confidentiality و ليست الـ integrity :)حماية الملف من العبث مسؤولية المستخدم فقط و ليست مسؤوليتي كمبرمج خصوصاً و أن ملف الـ psm لا يقع في حيز أسيطر عليه برمجيا (كالسيرفر مثلا) و بالتالي المُستخدم هو من يتحمل مسؤولية الحفاظ على الملف (هذا أقل ما يُمكن للمستخدم تقديمه !).إن كان التطبيق يسمح بالتأكد من الـ master password و الـ integrity عند فتح الملف، فهذا هو أقصى شيء يُمكنني تقديمه -كمبرمج- للمستخدم. تقنيا embedded data base غير آمنة لحفظ بيانات حساسة لا سيما إذا أردت استقلالية عن أنظمة التشغيل غير آمنة ! متأكد من ذلك ؟ @vector_everراسلني على الخاص، إن تمت أمورك بشكل كامل. تم تعديل 9 Nov 2014 بواسطه Snack3r 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 10 Nov 2014 @vector_everراسلني على الخاص، إن تمت أمورك بشكل كامل.ان شاء الله في القريب العاجل 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 10 Nov 2014 في الحقيقة، أعتقد أن المشكلة الرئيسية في الـ password manager هي مشكلة الـ confidentialityهذه مشكلة رئيسة وحسب علمي ليس لها إلا حلان الأول sécurité par l'obscurité الثاني استعمال هاردوير مأمنة بكلمة سر قوية مثل فلاش ديسك محمي أو سمارت كارد .... غير آمنة ! متأكد من ذلك ؟لأنه يصعب حمايتها من وصول المهاجم إلى البيانات وإذا وصل المهاج إلى البيانات فما بقي عليه إلا فك التشفيروفك التشفير له تقنيات وآخرها الاقتحام العنيف بوجود مجموعة كمبيوتيرات سريعة 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 10 Nov 2014 (معدل) الأول sécurité par l'obscuritéالثاني استعمال هاردوير مأمنة بكلمة سر قوية مثل فلاش ديسك محمي أو سمارت كارد .... لو كنت سأحمي معلومات فائقة الحساسية مثل كلمات سر تابعة لموظفين في إدارة الأمن مثلا، سأستخدم بالتأكيد الطريقة الثانية لكن -كما تعلم- الحماية تكون على حسب نوعية و حساسية الاستخدام.الإجراءات الأمنية المُتخذة لتأمين البيض الأبيض مثلا أكثر منها بكثير تلك المتخذة لتأمين المنشآت المحصنة ضد الطائرات و هكذا، تزداد درجة الحماية بارتفاع درجة حساسية الموضوع :) لأنه يصعب حمايتها من وصول المهاجم إلى البيانات وإذا وصل المهاج إلى البيانات فما بقي عليه إلا فك التشفيرسُعدت بهذا النقاش جداً أخي أحمد و سأكون سعيداً أكثر لو أعطيتني ملاحظات عن كيفية كسر الـ database من خلال وجود ثغرات في الـ architecture التي أرفقتها في مشاركة سابقة. فك التشفير له تقنيات وآخرها الاقتحام العنيف بوجود مجموعة كمبيوتيرات سريعة من سييتخدم مجموعة supercomputer لكسر ملف psm لشخص عادي جداً ؟لا أتوقع مثلا أن يتم استخدام botnet روسي لعمل brute-force لملف الـ psm، لأن كسره لن يعني لهم الكثير :) تم تعديل 10 Nov 2014 بواسطه Snack3r 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 10 Nov 2014 تعرف يا أخي أني أريد مساعدتك لبناء برنامج على وجه أكمل والكمال لله تعالى لذلك لا تعتبر مراجعاتي هذي كما تقولون "يشقر عليه" كون المعلومات حساسة أو لا هذه يحددها صاحبها فقد تكون بالغة الحساسية والسرية عندي وتراها أنت أمرا عاديا لا يستحق السرية أصلا مثلا قد يكون لي حساب على cloud وانا أخزن فيه ملفات لو كشفتها لكان فيها حتفي ، فكلمة السر هذه قد تكون حساسة جدا بالنسبة إلي 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 10 Nov 2014 لا تعتبر مراجعاتي هذي كما تقولون "يشقر عليه"أبداً أخي أحمد، إنما قلت لك : سأكون سعيداً أكثر لو أعطيتني ملاحظات عن كيفية كسر الـ database من خلال وجود ثغرات في الـ architecture التي أرفقتها في مشاركة سابقة.فقط من باب الموضوعية، حتى يعتمد النقاش على الجانب التقني أكثر من التنظير :) قد يكون لي حساب على cloud وانا أخزن فيه ملفات لو كشفتها لكان فيها حتفي ، فكلمة السر هذه قد تكون حساسة جدا بالنسبة إليصحيح، لذا تكلمتُ عن مستوى درجة الحماية التي يُقدمها البرنامج في فقرة النصائح في الـ menubar. 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 10 Nov 2014 يبدو برنامج رائع ، سأحاول أن أكتبه كتمرين حالما أنهي تعلم اللغة ، ولكن عندي إستفسار ما هي ال design patternsModel–View–ControllerObserver Patternوأتمنى تجيبو على مواضيعي اللي بالقسم لعل و عسى ألحق بالمشاركة في التطوير :P 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
تم النشر منذ (معدل)
السلام عليكم
أعمل الآن على وضع اللمسات الأخيرة لبرنامج صغير (Password Manager) يسمح بتسيير و حفظ كلمات المرور بشكل آمن مع ضمان الـ portability.
وظائف البرنامج :
المكتبات المُستخدمة :
الـ design patterns المُستخدمة :
الـ IDE المُستخدم : Netbeans.
لم أستخدم Drag and Drop لرسم الواجهات، كتبتها جميعاً عن طريق الكود :
صور من البرنامج :
إن كان هناك من يرغب في الحصول على السورس كود لتطوير البرنامج فليراسلني على الخاص. (للجادين فقط :) )
تحياتي.
تم تعديل بواسطه Snack3rشارك هذا الرد
رابط المشاركة
شارك الرد من خلال المواقع ادناه