هذا الموضوع سيكون شرح مبسط عن طريقة عمل Secure Socket Layer او SSL المستخدمة في مواقع الانترنت المشفرة والتي يبدأ عنوانها بـ https.
سبب حديثي عن هذا الموضوع هو اهميته واعجابي به وبطريقة عمله وهي ما سوف اتحدث عنها الان.
أولا يوفر نظام SSL ثلاث خصائص:
- تشفير البيانات المرسلة عبر الانترنت بحيث لا يستطيع احد فهم محتواها غير المرسل والمستقبل الرسمي Confidentiality.
- حماية البيانات المرسلة من العبث او التعديل قبل وصولها للمستقبل Integrity.
- التأكد من هوية المرسل حتى يتسنى للمستقبل تحديد اذا كانت البيانات مرسلة من جهه صحيحه او لا Authentication.
سوف اقوم في حديثي هذا بشرح الخاصية رقم 1 وترك باقي الخصائص لموضوع قادم ان تيسر الوقت.
يستخدم هذا النظام ثلاث انواع من الشفير:
- تشفير تثائي الاتجاه: يعتبر هذا اقدم سبل التشفير المعروفة وحاليا يعتبر تشفير AES هو التشفير المتفق عليه عالميا ويتميز بسرعته وقوته. وطريقة عمله تعتمد على اختيار مفتاح سري (Secret Key) من عدة احرف يتفق علية المرسل والمستقبل بشرط ان يكون طويل وصعب التخمين فيقوم المرسل باستخدام المفتاح السري لتشفير البيانات (Encryption) قبل ارسالها ثم يقوم المستقبل باستخدام نفس المفتاح لعكس عملية التشفير واستخراج البيانات (Decryption) الاصلية ولهذا يسمى ثنائي الاتجاه ويسمى كذلك بالتشفير التماثلي (Symmetric key cryptography). من الامثلة المشهورة لهذا النوع: DES و AES و RC4
النص الاصلي
Plain text← + → المفتاح السري
Secret Key↓ النص المشفر
Cipher text↓ المفتاح السري
Secret Key← + ← النص الاصلي
Plain text - تشفير احادي الاتجاه (Hashing): وهو يعتبر نوع خاص من انواع التشفير حيث انه يقوم بتحويل البيانات الى شفرة غير مفهومة وتكون ذات حجم ثابت غالبا، ولكن من الصعب عكس العملية والتوصل الى البيانات الاصلية، كما يجب (قدر الامكان) ان لا توجد بيانات عند تشفيرها تعطي نتيجة مشابهة لشفرة بيانات اخرى. ومن الامثلة: MD5 و SHA
مثال على ما تم الحديث عنه:
النص الاصلي الشفرة (Hash) أي نص مشفر او غير مشفر ومهما كان حجمة
Any clear text or encrypted text of any size← a0dfa73889a0a38a884c483ef4f870b1 أي نص اخر مغاير سواء في الحجم او المحتوى ولو بفرق بسيط جدا
Any different text in size or content even with small changes← 195903a5b0c33a81c10f1692fd5091ee - تشفير المفتاح العام والخاص (Public-key cryptography): ويسمى ايضا التشفير الغير متماثل (Asymmetric key cryptography) اذ يعتمد هذا النوع من الشفير على وجود مفتاحين مختلفين تماما يستخدم احدهما للتشفير ويستخدم الاخر لفك التشفير (او العكس) ولكن لايمكن استخدام نفس المفتاح لكلا العمليتنين. ومن الامثلة: RSA و Diffie-Hellman.
النص الاصلي
Plain text← + → المفتاح الخاص
Private Key↓ النص المشفر
Cipher text↓ المفتاح العام
Public Key← + ← النص الاصلي
Plain text
بعد هذا الشرح المبسط للتقنيات المستخدمة سوف اتحدث عن طريقة عملها مجتمعة في نظام SSL اذ ان كل واحد منها لا يستطيع اداء المهمة بالشكل المطلوب لوحدة. فعلى سبيل المثال لو تحدثت عن التشفير ثنائي الاتجاة (مثلا AES) فان هذا التشفير هو المستخدم في كثير من الانظمة لانه سريع وقوي ولكن تكمن مشكلتة في ان المفتاح السري يجب ان يكون معلوماُ لدي الطرفين المعنيين بالارسال (المرسل والمستقبل) فاذا كنت تود ارسال رسالة مشفرة لزميل عن كريق الانترنت فيجب عليك مسبقا ابلاغة بالمفتاح السري لكي يتمكن من فك التشفير ولكن يجب عمل ذلك بطريق آمن اذ لو تم ارسال المفتاح عن طريق الانترنت فان اي متجسس سوف يحصل علية ويستمكن من فك التشفير. ففي السابق كانت طريقة تبادل المفتاح السري هي باستخدام وسيلة اتصال اخري غير الانترنت واكثر امنا كأن يتم التقابل شخصيا والاتفاق على رقم سري او عن طريق الهاتف….الخ لكن هذا الخيار غير ممكن في جميع الاحوال وصعب التطبيق، ففي الحرب العالمية الثانية كانت المانيا تزود جيشها بقائمة من المفاتيح السرية بحيث يتم استخدام كل مفتاح لمدة زمنية معينه ثم يتم الانتقال للمفتاح الذي يليه، تكمن المشكلة في هذه الطريقة صعوبة تغيير القائمة في حال تم الوصول اليها من العدو وهو ماحصل بالفعل عندما تمكن الحلفاء من اختطاف غواصة والحصول على قائمة المفاتيح السرية منها.
جاء الحل لهذة المشكلة مع اكتشاف تقنية تشفير المفتاح العام والخاص ففي هذه التقنية يقوم الشخص المعني باستقبال الرسالة بانشاء مفتاحين (باستخدام عملية حسابية تعتمد على ايجاد ارقام اولية كبيره جدا) يستحدم احدهما للتشفير ويسمى المفتاح العام والاخر لفك ذلك التشفير ويسمى المفتاح الخاص. فاذا اردت انا استقبال رسالة سرية منك فكل ما علي عملة هو انشاء هذين المفتاحين ثم اقوم بالاحتفاظ بالمفتاح الخاص ووضع المفتاح العام في مكان يسهل عليك الوصول اليه (اما ان ارسلة اليك او اضعه في صفحة في الانترنت) ولا يهم اذا تمكن شخص غيرك من الحصول عليه، ثم بعد ذلك تقوم انت باستخدام ذلك المفتاح (المفتاح العام) لتشفير رسالتك ثم ارسالها الي وفي هذه الحالة لايمكن فك ذلك التشفير إلا باستخدام المفتاح الخاص الموجود لدي وحدي ولا يمكن استخدام المفتاح العام لعمل ذلك. (ارجو ان يكون الشرح واضح ولا اكون لخبطتكم
)
المشكلة الموجودة حاليا في تقنية تشفير المفتاح العام هي كون العملية معقدة وتستغرق وقتا طويلا وطاقة حسابية من اجهزة الحاسب والشبكات فيصعب استخدامها في تشفير بيانات كثيرة وعلاوة على ذلك فانها لاتعتبر بالقوة التشفيرية التي تصل اليها تقنية التشفير التماثلي (او ثنائي الاتجاة) فلكي تحصل على تشفير تماثلي قوي تحتاج الى مفتاح سري بحجم 256 بت او اكثر اما في تشفير المفتاح العام فيجب ان يكون حجم المفتاح 1024 بت او اكثر.
ما هو الحل اذن؟؟ هل نستخدم التشفير التماثلي او المفتاح العام؟ ![]()
الجواب هو باستخدامهما جميعا. 8O كيف؟ … الطريقة ببساطة هي وكما في المثال السابقة ان اقوم بارسال مفتاحي العام لك ثم بدلا من ان تقوم انت باستخدامة لتشفير الرسالة تستخدمة لتشفير المفتاح السري الذي سنقوم باستخدامة في التشفير التماثلي، حيث تقوم انت بانشاء مفتاح (بطول 256 بت مثلا) ويكون صعب التخمين (احرف وارقام عشوائية) ثم تستخدم مفتاحي العام لتشفير ذلك المفتاح السري وارسالة لي ومن ثم اقوم انا باستخدام مفتاحي الخاص لفك التشفير والحصول على ذلك المفتاح العشوائي والذي سنستخدمة جميعا في تشفير بقية الاتصال. فبهذه الطريقة نكون استخدمنا تقنية المفتاح العام (المكلفة حسابيا والبطيء) مرة واحده فقط وبعد ذلك نكمل بقية المراسلات باستخدام التشفير التماثلي (السريع والآمن)
لتبسيط شرح طريقة العمل قمت بعمل هذا المثال المبسط:
- يقوم المستخدم يالدخول على موقع البنك المشفر (https) او اذا استخدم الموقع العادي (http) فان البنك سيقوم يتحويلة مباشرة الى النمط المشفر.
- يقوم البنك بارسال شهادته الرقمية المصدقة وفيها مفتاح التشفير العام.
- يقوم متصفح الانترنت لدى المستخدم (مثلا فايرقوكس او انترنت اكسبلورر) بالتحقق من مصداقية وصلاحية تلك الشهادة واذا كانت تخص البنك او لا.
- يقوم المتصفح بانشاء رقم سري عشوائي يكون عادته بطول 128 او 256 بت (حسب مواصفات شهادة البنك الرقمية).
- يقوم المتصفح باستخراج المفتاح العام الموجود في شهادة البنك الرقمية ويستخدمة لتشفير الرقم السري العشوائي الذي قام بانشائه في خطوة رقم 4.
- يقوم المتصفح بارسال الرقم السري المشفر للبنك.
- بعد ان يصل الرقم السري المشفر للبنك يقوم البنك باستخدام مفتاحة الخاص لفك التشفير واستخراج الرقم السري.
- في هذة اللحظة يكون لدى المستخدم والبنك رقم سري معروف لديهما فقط وصعب الكسر يتم استخدامة لتشفير بقية المعاملات البنكية بين الطرفين.
في كل مرة يقوم المستخدم بالاتصال بالبنك تتم العملية السابقة وينشأ رقم سري جديد خاص بذلك الاتصال ولايتم استخدامة مره اخرى.
في ختام هذا الحديث اتمنى ان اكون قد وفقت في شرح الموضوع بشكل مبسط وسهل الفهم، وفي حال كانت هناك ملاحظات او استفسارات ارجو مراسلتي او التعليق على هذا الموضوع.
Tags: HTTPS, Security, SSL, أمن المعلومات






July 1st, 2009 at 12:29 am
معلومات جميلة جدا. شكراً على المجهود.
August 26th, 2009 at 8:04 pm
الله يجزاك خير
لكن هل يمكن فك التشفير لو حصل طرف ثالث على البيانات المشفره بـ ssl ؟ هكر مثلا مستخدم برامج السنفر على الشبكه؟؟
لاني حاولت ان ارى مدى قوة شبكتي في الحمايه وقمت بعمل سنفر عليها وظهرت لدي المعلومات الخارجه من كل الاجهزه عبر الراوتر ورأيت كل الروابط للمواقع التي تم زيارتها من قبل الاجهزه ولكن اليوزر والباسوورد كان مشفر
فلو تم اقتحام الشبكه هل يستطيع المقتحم من فك هذا التشفير؟؟؟
سمعت بأن هناك برامج في نظام لنكس تقوم بفك التشفير بكل سهوله فهل هذا صحيح؟؟
وكيف تتم الحمايه منه؟؟
جزاكم الله خير ورمضان مبارك علينا وعليكم
في امان الله
August 27th, 2009 at 8:17 pm
رمضان مبارك على الجميع.
اخي احمد الرد البسيط على سؤالك هو لا. حيث ان الهدف الاول من هذا التشفير هو الحماية من عمليات التنصت على بيانات الشبكة او السنفنق (Sniffing) فحتى لو قام شخص بالتقاط تلك البيانات فانه لن يستطيع فكها لانها في الغالب مشفرة باستخدام تشفير AES256. فلا لينكس او غيرة يستطيع عمل ذلك بل الامر يحتاج الى عمليات قد تستغرق سنين طويلة.
وكما تعلم فان الشبكات الاسلكية المفتوحة تسمح للجميع بالتقاط ورؤية البيانات الخاصة بمستخدمي الشبكة والمواقع التي يزورونها والحل الوحيد لحماية بياناتهم هو استخدام تقنية الـ VPN او زيارة المواقع التي تدعم SSL فقط.
الطريقة الوحيدة لفك تشفير SSL هو ان يقوم الهاكر باختراق احد الطرفين (المرسل او المستقبل) والحصول على مفتاح التشفير او ان يقوم بالعمل كوسيط بين الطرفين (Man in the middle) حيث يستلم البيانات من طرف ثم يمررها للطرف الاخر لكن هذه يمكن اكتشافها بالتاكد من نوعية رخصة الطرف الاخر.
كما ان الاصدار الثالث من تقنية SSL v3 او ما تسمى ب TLS فيه تحسنات زادت من قوة الحماية
وان كان هناك اي استفسار اخر او طلب توضيح فلا تتردد في السؤال. والسلام عليكم
October 11th, 2009 at 5:09 pm
موضوع شيق جدا يا جماعه والله
ياريت المزيد
October 12th, 2009 at 6:24 am
[...] السؤال هذا راح يجيب وبشكل مفصل مركز التميز الرقمي، من خلال المقال” SSL, Secure Socket Layer“، وأيضاً مدونة فهد الدريبي، “كيف يعمل التشفير في الانترنت SSL؟“. [...]
October 16th, 2009 at 10:28 pm
الحقيقة الشرح من أبدع مايكون..كثيرا ما تساءلت عن فكرة هذا التشفير..وأنت هنا وصلت الفكرة بشكل جميل وواضح
October 27th, 2009 at 4:54 pm
شرح ولا أروع …بارك الله فيك أخي
October 27th, 2009 at 9:10 pm
[...] السؤال هذا سوف يجيب عليه وبشكل مفصل مركز التميز الرقمي، من خلال المقال” SSL, Secure Socket Layer“، وأيضاً مدونة فهد الدريبي، “كيف يعمل التشفير في الانترنت SSL؟“. [...]
January 14th, 2010 at 9:41 pm
[...] السؤال هذا راح يجيب عليه وبشكل مفصل مركز التميز الرقمي، من خلال المقال” SSL, Secure Socket Layer“، وأيضاً مدونة فهد الدريبي، “كيف يعمل التشفير في الانترنت SSL؟“. [...]
March 12th, 2010 at 2:40 am
السلام عليكم
لطالما حيرتني رؤية https بدل http
فشكرا لك على الشرح الوافي وجزاك الله خير ..