الأحد، 29 مارس 2015

التوقيع الرقمى Digital Signature

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

طريقة توليد التواقيع الرقمية

تُستخدم الخوارزميات غير متناظرة المفاتيح Asymmetric Cryptography  فى هذه العملية ,وفكرة هذه الخوارزميات تتمثل فى أن يحصل كل فرد يشارك فى الإتصال على مفتاحين مختلفين ,المفتاح الاول منهما يسمى المفتاح الخاص (Private Key) بينما الثانى هو المفتاح العام (Public Key) ,وجدير بالذكر أن كل زوج من هذا النوع من المفاتيح بينهم علاقة رياضية معينة تجعل المفتاحين يعملان بطريقة عكسية ,هذا بمعنى أن ما سيتم تشفيره بإستخدام المفتاح العام لا يمكن فكه إلا بالمفتاح الخاص والعكس صحيح .
وبعد أن يقوم كل شخص بتوليد زوج من المفاتيح يمكن عندئذ البدأ فى عملية التوقيع ,وسأقوم بسردها عن طريق الرسوم التالية التى تبين كيف يتم التوقيع بين شخصين .

خطوات التوقيع الرقمى

Bob & Alice  هما شخصيتان وهميتان يتم الإعتماد عليهم لشرح أمور التشفير وتبادلاته ,فجميع كتب التشفير تعارفت على إستخدام نفس الإسمين لشرح خطوات عمل الخوارزميات ,لذلك سأعتمد عليهم لتوضيح خطوات عملية الحصول على التوقيع الرقمى .
يريد Bob & Alice تبادل رسائل محمية ومشفرة بحيث تحمل كل رسالة توقيع يميز مُرسلها ليتأكد المستلم من هوية المُرسل ,ومطلوب أيضاً التأكد أنه لم يتم العبث بمحتويات الرسالة أثناء فترة إرسالها .
التوقيع الرقمى يضمن كل ما سبق ,وتبدأ أولى خطواته بأن يقوم كل شخص بالحصول على زوج من هذه المفاتيح


1

 بعد ذلك يقوم كل شخص بمشاركة  مفتاحه العام(Public Key)  مع من سيتواصل معهم
2 
ونستنتج من ما سبق أن المفتاح العام يكون متاح لأى شخص يريد التواصل مع  Bob بينما يكون المفتاح الخاص Private Key  مخفى لا يعرف عنه أحد أى شىء لأنه خاص بالشخص الذى يملكه ,وسبب ذلك هو أن المفتاح العام يتم إستخدامه لتشفير الرسائل بينما المفتاح الخاص يقوم بفك التشفير ,لذلك يجب الحفاظ على سريته لأن بمعرفته يمكن فك تشفير أى رسالة تم حمايتها ,أو تزوير توقيع الشخص صاحب هذا المفتاح .
الأن تريد Alice إرسال رسالة مشفرة إلى Bob فتقوم بذلك على النحو التالى

3


إستخدمت Alice المفتاح العام الخاص ب Bob بعد أن حصلت عليه أثناء التبادل وقامت بتشفير الرسالة بهذا المفتاح , وعندما وصلت الرسالة إلى Bob قام بفك تشفيرها ليفهم محتواها بإستخدام مفتاحه الخاص الذى يملكه ,هذا لأن المفتاح الخاص يستطيع فك ما تم تشفيره بالمفتاح العام والعكس صحيح .
بهذه الطريقة تمت حماية الرسالة عن طريق تشفيرها لكنها لم تُوقع بعد ,ولكن أراد Bob الرد على هذه الرسالة بشرط أن يتضمن رده على توقيع خاص به ليثبت للطرف الأخر أنه مصدر الرسالة الحقيقى .
فى البدايه يجب تمرير الرسالة بعملية تسمى Hashing  والهدف منها هو الحصول على هاش (Hash) يدل على هذه الرسالة ,والهاش هو عبارة عن خليط من الرموز والحروف والأرقام بطول ثابت يتم توليدها عشوائيا بطرق رياضية معقدة ,ويكون الهدف منه هو معرفة أى تعديل قد تم على الرسالة أثناء إنتقالها ,فإذا تم حساب هاش لرسالة معينة وبعد ذلك تم تغيير حرف واحد بها وتم حساب الهاش مرة أخرى بعد التعديل ستكون النتيجة هاش مختلف تماماً عن الأول بالرغم من أن الفارق مجرد حرف ,ولحساب هاش الرسالة تٌستخدم مجموعة من الخوارزميات أشهرها Md5 ,SHA1 وأحيانا يطلق على الهاش مصطلح (Message Digest)  ,ومن مميزات الهاش انه يستحيل عكسه داخل الخوارزمية لتحويله إلى نص الرسالة الأصلية مرة أخرى لأن هذه الخوارزميات تعمل بإتجاه واحد فقط .
 ومن أجل توليد التوقيع يتم حساب الهاش الخاص بالرسالة المراد توقيعها
message_digest 
ثم يتم تشفير الهاش نفسه بإستخدام المفتاح الخاص Private Key التابع ل Bob الذى يريد توقيع رسالته
4 
و ناتج العملية السابقة هو التوقيع الرقمى الذى سيتم دمجه فى نهاية الرسالة بهذا الشكل
5 
 
بعد الحصول على الشكل النهائى الذى يتضمن على نص الرسالة وتوقيع المُرسل يمكن عندئذ إرسالها إالى Alice التى ستصلها بنفس الشكل السابق فتبدأ بإجراءات التحقق من صحة هذا التوقيع لكى تتأكد أن مصدره هو Bob وليس شخص أخر يتظاهر بذلك .
فى البداية تقوم Alice بفك تشفير التوقيع الموجود أسفل الرسالة بإستخدام المفتاح العام المملوك ل Bob صاحب هذا التوقيع ,فإذا نجحت فى فك تشفيره بإستخدام مفتاح Bob العام عندها ستتأكد أنه هو بالفعل مصدر الرسالة والدليل هو نجاح المفتاح العام التابع ل Bob فى فك تشفير التوقيع ,وطالما نجح هذا المفتاح فى الفك فلابد أن التوقيع تم تشفيره عن طريق المفتاح الخاص التابع ل Bob و الذى لا يملكه أحد سواه ,بهذا تم التأكد من هوية المُرسل .
وللتأكد من سلامة الرسالة وعدم حدوث أى عبث بها أثناء إرسالها يتم حساب الهاش الخاص بنص الرسالة التى وصلت إلى Alice بنفس الخوارزمية التى إستخدمها Bob ,ويتم مطابقته بالهاش الذى نتج عن عملية فك تشفير التوقيع فإذا تطابقا الإثنان كانت الرسالة سليمة , أما فى حالة حدوث إختلاف بين الإثنين تُرفض الرسالة لأن هناك من عبث بنصها .
Capturzae 
 
فائدة التوقيع الرقمى
  • كشف أى تغيير حدث على الرسالة أثناء إنتقالها .
  • التأكد من هوية الطرف الأخر أو الشخص المُرسل .

كيف يُستخدم التوقيع الرقمى

ما سبق هو تبسيط لما يحدث بين أجهزة الحاسب على مستوى الشبكة ,وعن طريق أدوات رياضية تتمثل فى مجموعة من الخوارزميات ,يتم تطبيق ما سبق على الحزم والبيانات المتناقلة فى الشبكة لمنع حدوث أى تزوير فى هذه العملية وكشف أى محاولة لعمل ذلك ,فأغلب البروتوكولات تعمل بنفس المبدأ مع إختلاف الخوارزميات المُستخدمة فى البرمجة  , وشهادات الموثوقية Digital Certificates  هى أيضاَ تطبيق لنفس هذا المبدأ .




مدونه Network Information أنشأت في سنة 2013 من أجل جمع كل شيئ عن الشبكات وكل ما يتعلق بها في مدونه عربيه واحده


اشترك معنا عبر البريد الإليكتروني وتوصل بأخر المستجدات والمواضيع الحصرية ولا تنسى تفعيل تسجيلك
To Top