الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أحتاج إلى إنشاء اتصال آمن SSL بين سيرفر و عميل على لينوكس هل من مصادر؟

بدأه McGeek في 3 يناير 2012 · 6 رد · 1,406 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أقوم بعمل مشروع شخصي باستخدام C++ على لينوكس

اﻵن وصلت لحائط اسمنت و هو أني أحتاج استخدام اتصال آمن بين سيرفر و عميل لدي قمت بإنشائهما

المشكلة أني اليوم في العمل 8 ساعات أبحث عن نقطة بداية لكن لم أجد شيء جيد...

سأضع الذي وصلت له لكن أيضا أريد من أي شخص هنا لديه خبرة أو لديه خلفية في التعامل مع هذا المجال أن يفيدني بروابط أو أسماء كتب أستطيع من خلالها القراءة و فهم موضوع SSL مع C++ و لينوكس

ﻻ أريد أمثلة جاهزة، وجدت الكثير منها لكن أريد أن أفهم الموضوع ﻷن فهم الموضوع لدي أهم بكثير جدا جدا من إنجازه

هذا ما وصلت له من الروابط:

http://pocoproject.org/index.html

http://www.rtfm.com/openssl-examples/

http://www.ibm.com/developerworks/linux/library/l-openssl/index.html

http://etutorials.org/Programming/secure+programming/Chapter+9.+Networking/9.1+Creating+an+SSL+Client/

http://etutorials.org/Programming/secure+programming/Chapter+10.+Public+Key+Infrastructure/10.1+Understanding+Public+Key+Infrastructure+PKI/

http://etutorials.org/Programming/secure+programming/Chapter+10.+Public+Key+Infrastructure/10.4+Understanding+X.509+Certificate+Verification+Methodology/

http://etutorials.org/Programming/secure+programming/Chapter+10.+Public+Key+Infrastructure/10.5+Performing+X.509+Certificate+Verification+with+OpenSSL/

http://etutorials.org/Programming/secure+programming/Chapter+10.+Public+Key+Infrastructure/10.9+Using+a+Whitelist+to+Verify+Certificates/

http://etutorials.org/Programming/secure+programming/Chapter+10.+Public+Key+Infrastructure/10.10+Obtaining+Certificate+Revocation+Lists+with+OpenSSL/

http://etutorials.org/Programming/secure+programming/Chapter+10.+Public+Key+Infrastructure/10.11+Obtaining+CRLs+with+CryptoAPI/

ما أريد أنني أريد أن أقوم بعمل اتصال آمن بين سيرفر و عميل (ليس اتصال HTTPS)

لكن كل الذي وجدته لم أجد فيه ما أريد

شكرا لكم و بالتوفيق

lxcs.png

syria-flag_small.jpg

#2

أنا مش قادر أحدد النقطة اللى عندك فيها مشكلة برضه, هل المشكلة فى فهم ال SSL نفسه؟

#3
Blueteeth كتب:

أنا مش قادر أحدد النقطة اللى عندك فيها مشكلة برضه, هل المشكلة فى فهم ال SSL نفسه؟

:S ﻷ

المشكلة أن كل المصادر اللي شفتها هي تتحدث إما عن بيئة ويندوز أو Web Server

أنا اللي محتاج أعمله أن عندي سيرفر و عميل محتاج أعمل secure channel بينهم مشفر بشهادة رقمية لحتى أنقل عليها معلومات

مشكلتي أني ضعت في الموضوع (مع أني فاهم موضوع SSL تماما ﻷني أتعامل معه في عملي بشكل شبه يومي عبر Local CAs و الشهادات الرقمية لسيرفر الـ Exchange)

إذا كنت أريد عمل اتصال مشفر بين جهازين هل هي نفس الطريقة المتبعة في الـ web servers؟

آسف لهذا التشتيت صراحة

lxcs.png

syria-flag_small.jpg

#4

أوكى، يبقى المشكلة فى عمل هذا السيناريو على اللينكس و بين برنامجين مكتملين؟

بالنسبة لنظام التشغيل فإستخدام مكتبة OpenSSL حيغنيك عن تفاصيل التعامل مع نظام التشغيل. أما عمل هذا السيناريو على برنامجين مكتملين بدلاً من متصفح و خادم إنترنت، فأنت من ستقرر ما سيحدث، فالمكتبة تمدك بمكونات أى نظام أمن مثل مفاتيح التشفير و خوارزميات التشفير و دوال الهاش....و أنت حر فى إستخدام ما تريد. و أكيد طبعا حتكتب السيناريو دا من ناحية الخادم و من ناحية العميل أيضاً.

#5

الـ defacto بالنسبة للـ transportation layer في عالم ++C هي asio. و هي تدعم إنشاء اتصالات مشفرة باستخدام OpenSSL حسبما أذكر. المكتبة اتفق على أنها المكتبة القياسية القادمة للـ sockets و لكنها defacto حالياً.

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 4 يناير 2012 في 00:02

#6
Khaled.Alshaya كتب:

الـ defacto بالنسبة للـ transportation layer في عالم ++C هي asio. و هي تدعم إنشاء اتصالات مشفرة باستخدام OpenSSL حسبما أذكر. المكتبة اتفق على أنها المكتبة القياسية القادمة للـ sockets و لكنها defacto حالياً.

يعني أستطيع استخدام asio في هذا الموضوع بدون أي مشاكل مستقبلا؟

lxcs.png

syria-flag_small.jpg

#7
اقتباس
يعني أستطيع استخدام asio في هذا الموضوع بدون أي مشاكل مستقبلا؟

ماهي المشاكل التي تتوقع حدوثها؟

يبقى عليك كتابة منطق البرنامج, و باعتقادي أنك ستحتاج لمكتبات عديدة بالإضافة إلى asio مثل Boost.Serialization إذا كنت تقوم RPC مبسط. ماهو بالضبط البروتوكول الذي يقبع فوق tcp(هل ستستخدم udp أصلاً؟!). هناك مكتبات في Boost ستسهل عليك كثيراً في هذا المجال, و لكن اطرح وظيفة التطبيق ربما يكون هناك مكتبات مساعدة لوظيفة البرنامج و ربما بشكل عام للمهام الأساسية.

تم تعديل هذه المشاركة بواسطة Khaled.Alshaya في 4 يناير 2012 في 01:07

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…