كيف يعمل التشفير في الانترنت SSL؟

هذا الموضوع سيكون شرح مبسط عن طريقة عمل Secure Socket Layer او SSL المستخدمة في مواقع الانترنت المشفرة والتي يبدأ عنوانها بـ https.
سبب حديثي عن هذا الموضوع هو اهميته واعجابي به وبطريقة عمله وهي ما سوف اتحدث عنها الان.

أولا يوفر نظام SSL ثلاث خصائص:

  1. تشفير البيانات المرسلة عبر الانترنت بحيث لا يستطيع احد فهم محتواها غير المرسل والمستقبل الرسمي Confidentiality.
  2. حماية البيانات المرسلة من العبث او التعديل قبل وصولها للمستقبل Integrity.
  3. التأكد من هوية المرسل حتى يتسنى للمستقبل تحديد اذا كانت البيانات مرسلة من جهه صحيحه او لا Authentication.

سوف اقوم في حديثي هذا بشرح الخاصية رقم 1 وترك باقي الخصائص لموضوع قادم ان تيسر الوقت.

يستخدم هذا النظام ثلاث انواع من الشفير:

  1. تشفير تثائي الاتجاه: يعتبر هذا اقدم سبل التشفير المعروفة وحاليا يعتبر تشفير AES هو التشفير المتفق عليه عالميا ويتميز بسرعته وقوته. وطريقة عمله تعتمد على اختيار مفتاح سري (Secret Key) من عدة احرف يتفق علية المرسل والمستقبل بشرط ان يكون طويل وصعب التخمين فيقوم المرسل باستخدام المفتاح السري لتشفير البيانات (Encryption) قبل ارسالها ثم يقوم المستقبل باستخدام نفس المفتاح لعكس عملية التشفير واستخراج البيانات (Decryption) الاصلية ولهذا يسمى ثنائي الاتجاه ويسمى كذلك بالتشفير التماثلي (Symmetric key cryptography). من الامثلة المشهورة لهذا النوع: DES و AES و RC4

    النص الاصلي
    Plain text
    → + ← المفتاح السري
    Secret Key
    النص المشفر
    Cipher text
    المفتاح السري
    Secret Key
     +  النص الاصلي
    Plain text

     

  2. تشفير احادي الاتجاه (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

     

  3. تشفير المفتاح العام والخاص (Public-key cryptography): ويسمى ايضا التشفير الغير متماثل (Asymmetric key cryptography) اذ يعتمد هذا النوع من الشفير على وجود مفتاحين مختلفين تماما يستخدم احدهما للتشفير ويستخدم  الاخر لفك التشفير (او العكس) ولكن لايمكن استخدام نفس المفتاح لكلا العمليتنين. ومن الامثلة: RSA و Diffie-Hellman.

    النص الاصلي
    Plain text
    ← + → المفتاح الخاص
    Private Key
    النص المشفر
    Cipher text
    المفتاح العام
    Public Key
    ← + ← النص الاصلي
    Plain text

بعد هذا الشرح المبسط للتقنيات المستخدمة سوف أتحدث عن طريقة عملها مجتمعة في نظام SSL اذ ان كل واحدة منها لا تستطيع اداء المهمة بالشكل المطلوب لوحدها. فعلى سبيل المثال لو تحدثت عن التشفير ثنائي الاتجاة (مثلا AES) فان هذا التشفير هو المستخدم في كثير من ألأنظمة لانه سريع وقوي ولكن تكمن مشكلته في أن المفتاح السري يجب ان يكون معلوماُ لدي الطرفين المعنيين بالإرسال (المرسل والمستقبل) فاذا كنت تود ارسال رسالة مشفرة لزميل عن كريق الانترنت فيجب عليك مسبقا ابلاغة بالمفتاح السري لكي يتمكن من فك التشفير ولكن يجب عمل ذلك بطريق آمن اذ لو تم ارسال المفتاح عن طريق الانترنت فان اي متجسس سوف يحصل عليه وسيتمكن من فك التشفير. ففي السابق كانت طريقة تبادل المفتاح السري هي باستخدام وسيلة اتصال اخرى غير الانترنت واكثر امنا كأن يتم التقابل شخصيا والاتفاق على رقم سري او عن طريق الهاتف….الخ لكن هذا الخيار غير ممكن في جميع الاحوال وصعب التطبيق، ففي الحرب العالمية الثانية كانت المانيا تزود جيشها بقائمة من المفاتيح السرية بحيث يتم استخدام كل مفتاح لمدة زمنية معينه ثم يتم الانتقال للمفتاح الذي يليه، تكمن المشكلة في هذه الطريقة صعوبة تغيير القائمة في حال تم الوصول اليها من العدو وهو ما حصل بالفعل عندما تمكن الحلفاء من اختطاف غواصة والحصول على قائمة المفاتيح السرية منها.
جاء الحل لهذة المشكلة مع اكتشاف تقنية تشفير المفتاح العام والخاص ففي هذه التقنية يقوم الشخص المعني باستقبال الرسالة بانشاء مفتاحين (باستخدام عملية حسابية تعتمد على ايجاد ارقام اولية كبيره جدا) يستخدم احدهما للتشفير ويسمى المفتاح العام والاخر لفك ذلك التشفير ويسمى المفتاح الخاص. فاذا اردت انا استقبال رسالة سرية منك فكل ما علي عملة هو انشاء هذين المفتاحين ثم اقوم بالاحتفاظ بالمفتاح الخاص ووضع المفتاح العام في مكان يسهل عليك الوصول اليه (اما ان ارسلة اليك او اضعه في صفحة في الانترنت) ولا يهم اذا تمكن شخص غيرك من الحصول عليه، ثم بعد ذلك تقوم انت باستخدام ذلك المفتاح (المفتاح العام) لتشفير رسالتك ثم ارسالها الي وفي هذه الحالة لايمكن فك ذلك التشفير إلا باستخدام المفتاح الخاص الموجود لدي وحدي ولا يمكن استخدام المفتاح العام لعمل ذلك. (ارجو ان يكون الشرح واضح ولا اكون لخبطتكم 😉 )

المشكلة الموجودة حاليا في تقنية تشفير المفتاح العام هي كون العملية معقدة وتستغرق وقتا طويلا وطاقة حسابية من اجهزة الحاسب والشبكات فيصعب استخدامها في تشفير بيانات كثيرة وعلاوة على ذلك فانها لاتعتبر بالقوة التشفيرية التي تصل اليها تقنية التشفير التماثلي (او ثنائي الاتجاة) فلكي تحصل على تشفير تماثلي قوي تحتاج الى مفتاح سري بحجم 256 بت او اكثر اما في تشفير المفتاح العام فيجب ان يكون حجم المفتاح 1024 بت او اكثر.

ما هو الحل اذن؟؟ هل نستخدم التشفير التماثلي او المفتاح العام؟ 😕
الجواب هو باستخدامهما جميعا. كيف؟ … الطريقة ببساطة هي وكما في المثال السابقة ان اقوم بارسال مفتاحي العام لك ثم بدلا من ان تقوم انت باستخدامة لتشفير الرسالة تستخدمة لتشفير المفتاح السري الذي سنقوم باستخدامة في التشفير التماثلي، حيث تقوم انت بانشاء مفتاح (بطول 256 بت مثلا) ويكون صعب التخمين (احرف وارقام عشوائية) ثم تستخدم مفتاحي العام لتشفير ذلك المفتاح السري وارسالة لي ومن ثم اقوم انا باستخدام مفتاحي الخاص لفك التشفير والحصول على ذلك المفتاح العشوائي والذي سنستخدمة جميعا في تشفير بقية الاتصال. فبهذه الطريقة نكون استخدمنا تقنية المفتاح العام (المكلفة حسابيا والبطيء) مرة واحده فقط وبعد ذلك نكمل بقية المراسلات باستخدام التشفير التماثلي (السريع والآمن)

لتبسيط شرح طريقة العمل قمت بعمل هذا المثال المبسط:

طريقة عمل الـ SSL

  1. يقوم المستخدم بالدخول على موقع البنك المشفر (https) او اذا استخدم الموقع العادي (http) فان البنك سيقوم يتحويلة مباشرة الى النمط المشفر.
  2. يقوم البنك بارسال شهادته الرقمية المصدقة وفيها مفتاح التشفير العام.
  3. يقوم متصفح الانترنت لدى المستخدم (مثلا فايرفوكس او انترنت اكسبلورر) بالتحقق من مصداقية وصلاحية تلك الشهادة واذا كانت تخص البنك او لا.
  4. يقوم المتصفح بانشاء رقم سري عشوائي يكون عادته بطول 128 او 256 بت (حسب مواصفات شهادة البنك الرقمية).
  5. يقوم المتصفح باستخراج المفتاح العام الموجود في شهادة البنك الرقمية ويستخدمة لتشفير الرقم السري العشوائي الذي قام بانشائه في خطوة رقم 4.
  6. يقوم المتصفح بارسال الرقم السري المشفر للبنك.
  7. بعد ان يصل الرقم السري المشفر للبنك يقوم البنك باستخدام مفتاحة الخاص لفك التشفير واستخراج الرقم السري.
  8. في هذة اللحظة يكون لدى المستخدم والبنك رقم سري معروف لديهما فقط وصعب الكسر يتم استخدامة لتشفير بقية المعاملات البنكية بين الطرفين.

في كل مرة يقوم المستخدم بالاتصال بالبنك تتم العملية السابقة وينشأ رقم سري جديد خاص بذلك الاتصال ولايتم استخدامة مره اخرى.

في ختام هذا الحديث اتمنى ان اكون قد وفقت في شرح الموضوع بشكل مبسط وسهل الفهم، وفي حال كانت هناك ملاحظات او استفسارات ارجو مراسلتي او التعليق على هذا الموضوع.

26
Leave a Reply

avatar
23 Comment threads
3 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
16 Comment authors
محمدمجاهديوسفrowidaSafaa Alatabbi Recent comment authors

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.

  Subscribe  
الأحدث الأقدم
نبّهني عن
Ahmed Melege
ضيف
Ahmed Melege

معلومات جميلة جدا. شكراً على المجهود.

احمد
ضيف
احمد

الله يجزاك خير

لكن هل يمكن فك التشفير لو حصل طرف ثالث على البيانات المشفره بـ ssl ؟ هكر مثلا مستخدم برامج السنفر على الشبكه؟؟

لاني حاولت ان ارى مدى قوة شبكتي في الحمايه وقمت بعمل سنفر عليها وظهرت لدي المعلومات الخارجه من كل الاجهزه عبر الراوتر ورأيت كل الروابط للمواقع التي تم زيارتها من قبل الاجهزه ولكن اليوزر والباسوورد كان مشفر
فلو تم اقتحام الشبكه هل يستطيع المقتحم من فك هذا التشفير؟؟؟
سمعت بأن هناك برامج في نظام لنكس تقوم بفك التشفير بكل سهوله فهل هذا صحيح؟؟
وكيف تتم الحمايه منه؟؟

جزاكم الله خير ورمضان مبارك علينا وعليكم

في امان الله

محمد
ضيف
محمد

احمد ممكن اتواصل معك عبر الواتس ضروري يا اخي الكريم 00962788721220 هذا رقمي وشكرا

web designer in egypt
ضيف
web designer in egypt

موضوع شيق جدا يا جماعه والله
ياريت المزيد

عبدالله
ضيف
عبدالله

الحقيقة الشرح من أبدع مايكون..كثيرا ما تساءلت عن فكرة هذا التشفير..وأنت هنا وصلت الفكرة بشكل جميل وواضح 😀

نوختشو ووسو
ضيف
نوختشو ووسو

شرح ولا أروع …بارك الله فيك أخي

ck
ضيف
ck

السلام عليكم

لطالما حيرتني رؤية https بدل http

فشكرا لك على الشرح الوافي وجزاك الله خير ..

محمد
ضيف
محمد

مشاء الله اخي الكريم شكرا لك