التشفير Encryption
مقدمة
تشفير المعلومات (إنكريبشن Encryption) ضمن إطار علم التعمية Cryptography هو عملية تحويل المعلومات من شكلها المقروء أو الواضح إلى شكل لا يمكن معه قراءتها أو معاينتها إلا للمخولين بذلك.
تدل الآثار والوثائق التاريخية أن التشفير بدأ في مصر حوالي 2000 عام قبل الميلاد. وظهر أيضا في بلاد ما بين النهرين حوالي 1500 قبل الميلاد. ويذكر أن جيش اسبرطة استخدم التشفير في رسائله. في عهد الامبراطورية الرومانية,عرف عن الامبراطور الروماني يوليوس قيصر ومن تلاه تشفير الرسائل الموجهه لقادة الحربه باستخدام تشفير سمي باسمه: تشفير قيصر Caesar Code.
يفيد تشفير المعلومات إذا في اخفاء محتوى الرسائل المتبادلة بين شخصين عن أي شخص يتعرض هذه الرسالة ويحاول قراءتها. كما يفيد التشفير في ابقاء محتوى الملفات المشفرة غير مقروء في حال وقعت هذه الملفات في أيدي شخص أو أشخاص غير مخولين لقراءة محتواها كوقوع القرص الصلب في أيدي الاشخاص الخطأ.
كما لمرسل الرسالة أو لصاحب المعلومات المصلحة في ابقاء المعلومات والرسائل سرية كذلك هناك مصلحة لدى معترضي الرسائل لكسر تشفير الرسائل. كسر التشفير علم قائم بحد ذاته بدأ مع "الكِنْدي" العالم والفيلسوف العربي الذي ابتكر طريقة لكسر تشفير قيصر هي طريقة التحليل الاحصائي Frequency Analysis مكنت مستخدمها من قراءة الرسالة المعترضة المشفرة بتشفير قيصر. هذا بدوره دفع إلى تطور وسائل تشفير أكثر "جودة" ما دفع علم كسر التشفير إلى الأمام وما يزال هذان العلمان يطاردا بعضهما حتى اليوم.
كسر التشفير
يحاول الباحثون في مجال أمن البيانات والمهاجمون على حد سواء إيجاد ثغرات في خوارزميات التشفير هذه تتيح للمهاجم استنباط مفتاح التشفير جزئيا أو كلياس، أو استرجاع البيانات المشفرة جزئيا أو كليا. تسمى هذه المحاولات بالهجمات على خوارزمية التشفير Attacks on Cryptographic Cipher، كالبحث مثلا عن ثغرة في خوارزمية AES. في حين يحاول آخرون إيجاد ثغرات في تطبيق معين يستخدم خوارزمية تشفير معينة وليس الخوارزمية نفسها، كالبحث مثلا عن ثغرة في تطبيق AESCrypt، وتسمى هذه الهجمات بهجمات القناة الجانبية Side-Channel Attacks، وقد يحاول آخرون تخمين المفتاح المستخدم فيما يسمى عادة بالهجمات على كلمات السرّ Malicious Cyber Attacks on Passwords وهنا يلعب طول المفتاح الدور الأهم، فكلما كان عدد بتات المفتاح أكبر كلما صعب تخمينه، وكذلك تلعب جودة مولد البتات العشوائية دورا هاما، فإن كان بالإمكان توقع البتات في مفتاح التشفير، يعني ذلك تقليل مساحة البحث اللازمة عن المفاتيح.
التشفير الجيد والتشفير السئ
تتميز إذا خوارزميات التشفير فيما بينها من ناحية الأمان بوجود وبقدرة الهجمات على خزارزمية التشفير من استنباط مفتاح التشفير في وقت معقول وموارد معقولة. فوجود هجوم على خوارزمية ما لا يكفي لاعتبارها سيئة إذ قد يحتاج هذا الهجوم إلى موارد هائلة أو إلى وقت طويل جدا. لكن وبسبب التطور التقني، وتضاعف قدرة الحواسيب التقليدية كل سنتين تقريبا، وظهور حوسبة الكم Quantum Computing وقد تتحول خوارزمية تشفير ما من خوارزمية جيدة إلى خوارزمية غير جيدة أي غير آمنة بسبب وجود هجوم أصبح تنفيذه خلال فترة معقولة من الوقت وباستخدام موارد معقولة ممكنا.
أنواع التشفير
على الرغم من وجود خوارزميات كثيرة جدا للتشفير مثل AES، Blowfish، RSA، الخ. إلا أنه يمكن تصينف هذه الخوارزميات المخنلفة ضمن صنفين متمايزين هما التشفير بالمفتاح المتناظر، والتشفير بالمفاتيح غير المتناظرة. وسنحاول فيما يلي توضيح هذين الصنفين:
التشفير بالمفتاح المتناظر Symmetric Key Encryption
في هذا النوع من أنواع خوارزميات التشفير، يتم استخدام مفتاح التشفير Encryption Key ذاته للتشفير Encryption ولفكّ التشفير Decryption.
بما أن مفتاح التشفير هو ذاته مفتاح فك التشفير فإن ذلك يقتضي أن تقوم الجهة التي قامت بتشفير مجلد ما بخوارزمية تشفير محددة ومفتاح تشفير محدد، بمشاركة هذا المفتاح مع الجهة التي ترغب بفك تشفير المجلد للاطلاع على محتوياته. لذلك لا تعتبر هذه الطريقة للتشفير طريقة آمنة لتشفير البيانات المتبادلة على منصات التواصل مثلا أو لتبادل الملفات المشفرة، إن يكفي لجهة تستطيع التنصت على البيانات المتبادلة وترغب بفك تشفير البيانات المتبادلة، اعتراض مفتاح التشفير واستخدامه في فك تشفير البيانات.
لذلك تعتبر هذه الخوارزميات جيدة عن عدم الحاجة لمشاركة البيانات المشفرة، أو عند عدم الحاجة لمشاركة مفتاح التشفير. وغير جيدة بالمقارنة مع خوارزميات التشفير بالمفتاح غير المتناظر Asymmetric Key Encryption.
لكن وفي حال استخدام هذه الطريقة في تبادل البيانات المشفرة، ننصح بمشاركة مفتاح التشفير بطريقة آمنة مع الجهة (الجهات) المستقبلة، كارساله عبر تطبيقات التواصل مثل واير Wire أو سيغنال Signal التي تدعم التشفير طرف إلى طرف End-to-End Encryption.
تقسم هذه الخوارزميات بدورها لقسمين رئيسيين هما Stream Ciphers و Block Ciphers، ويوجد أمثلة كثيرة عن خوارزميات تشفير مفتاح متناظر من هذا النوع أو ذاك نذكر منها:
- تشفير Vigenere Stream Cipher
- AES Block Cipher
- Blowfish Block Cipher
- GCM Block Cipher
يبين الشكل التالي عملية التشفير بالمفتاح المتناظر، حيث يتم تشفير النص المقروء في أيمن الشكل إلى مجموعة مبهمة من الرموز في يسار الشكل، باستخدام خوارزمية Blowfish CRC وكلمة السرّ salam@salam@. وأيضا يوضح الشكل العملية المقابلة، ابتداءا بالرموز المبهمة على يسار الشكل حيث يمكن الحصول على النص المقروء في يمين الشكل عبر فك التشفير باستخدام الخوارزمية ذاتها ومفتاح التشفير ذاته. استخدامنا لمفتاح التشفير ذاته في العمليتين يعني بالضرورة أن خوارزمية التشفير هذه هي من نوع التشفير بالمفتاح المتناظر.
التشفير بالمفاتيح غير المتناظرة Asymmetric Keys Encryption
يختلف هذا النوع من خوارزميات التشفير بشكل كبير عن خوارزميات التشفير بالمفتاح المتناظر. إذ يعتمد هذا النوع من خوارزميات التشفير على ما يسمى أزواج المفاتيح Key Pairs. حيث تقوم كل جهة ترغب باستقبال البيانات المشفرة بشكل آمن، بإنشاء زوج مفاتيح يسمى الأول مفتاحا عاماً، يجب مشاركته مع الآخرين، ومفتاحا خاصا Private Key (يسمى أيضا مفتاحا سريا Secret Key) يجب الابقاء عليه سرياً. يستخدم المفتاح العام لتشفير البيانات المرسلة للجهة صاحبة زوج المفاتيح، بينما يستخدم المفتاح السرّي لفك تشفيرها.
تشبه هذه العملية فكرة القفل والمفتاح التي كانت (وما تزال مستخدمة) في إرسال الوثائق، وغيرها ضمن وحدات الجيوش. فلنفترض أن قطعة عسكرية ترغب بإرسال عينة سرية بعد تجارب على المتفجرات إلى وحدة المختبرات العسكرية، وترغب بحماية العينة حتى من أعين المسؤولين عن نقلها وتأمين وصولها. في هذه الحالة، تقوم المختبرات العسكرية بإرسال صندوق مفتوح مع قفل مفتوح خاص بوحدة المختبرات العسكرية، يقوم الضابط المسؤول في القطعة العسكرية بوضع العينة ضمن الصندوق، وتغلق الصندوق، وتقوم بقفل الصندوق بقفل المختبرات العسكرية. بعد هذه الخطوة لن يتمكن أحد من فتح الصندوق إلى من يملك مفتاح القفل أي وحدة المختبرات العسكرية.
في هذا التشبيه، يمثل القفل المفتوح Open Lock المفتاح العام للجهة المستقبلة Public Key، بينما تمثل العينة ضمن الصندوق المؤمن بالقفل المغلق عملية التشفير بالمفتاح العام للجهة المستقبلة Encryption with the Public Key، ويمثل المفتاح الخاص بالقفل المفتاح السري الخاص بالجهة المستقبلة Secret Key.
فإن رغبت رباب إرسال رسالة إلى باسم بشكل آمن، وبدون مشاركة أي مفتاح تشفير مع باسم، على رباب الحصول أولا على مفتاح باسم العام، ثم تشفير البيانات بمفتاح باسم العام قبل إرسالها إليه. إن وقعت هذه البيانات المشفرة في يد شخص ما غير باسم، مثلا همام أو ليلى لن يتمكن همام أو ليلى من فكّ تشفير هذه البيانات ومعاينة محتواها الصريح دون أن يكون لديها مفتاح باسم السري. وعند وصول الرسالة إلى باسم، يستطيع باسم فك تشفير Decrypt الرسالة باستخدام مفتاحه الخاص الذي لا يملكه أحد سواه.
يوضح الشكل التالي طرفين A و B يودان التواصل بشكل آمن بدون أن يستطيع أي متنصت من معاينة محتوى الرسائل.
يقوم الطرفان أولا بتبادل المفاتيح العامة الممثلة بالأقفال المفتوحة بشكل علني وبدون الاكتراث إن تم اعتراضها أو التنصت عليها. فهي غير مفيدة إلا للتشفير ولا يمكن استخدامها لفك التشفير، ولا يمكن ياستخدامها استنتاج المفتاح الخاص بالقفل. المفاتيح الخاصة الممثلة كمفاتيح في الشكل.
يقوم الطرف B باستخدام قفل A لتشفير الرسالة، لن يستطيع أحد إلا الطرف A فك تشفير الرسالة إذ أن لا أحد غير الطرف A يملك ذلك المفتاح الخاص بذلك القفل. يقوم الطرف B بإرسال الرسالة المشفرة إلى الطرف A. حتى لو اعترضت الرسالة المشفرة، لن يستطيع المتنصتون فك تشفير الرسالة بدون مفتاح A الخاص. تصل الرسالة المشفرة للطرف A، الذي يقوم بفك تشفير الرسالة باستخدام المفتاح وقراءة محتوى الرسالة.
بالمقارنة مع خوارزميات التشفير بالمفتاح المتناظر، لا تحتاج هذه الطريقة من الأطراف التي تتبادل الرسائل المشفرة مشاركة مفتاح التشفير أو كلمة سرّ لإتمام تبادل البيانات المشفرة بنجاح. لذلك تعتبر خوارزميات التشفير بالمفاتيح غير المتناظرة مناسبة لتشفير البيانات المتبادلة بين أطراف بدون تبادل أية أسرار عبر طرق جانبية أو فرعية، كالاتصال بين المتصفح وموقع البنك، أو تبادل الرسائل على منصات التواصل.
من الخوارزميات التي تستخدم هذه الطريقة:
- Diffie-Hellman key exchange
- RSA
- ElGamal
- DSA
- TLS
- بروتوكول PGP
- التشفير طرف إلى طرف End-to-End Encryption
- بروتوكول سيغنال Signal Protocol
استخدامات شائعة للتشفير
تشفير الأقراص والملفات
برامج تشفير الأقراص هي برامج مصممة لحماية المعلومات الموجودة على الأقراص عبر تقنية تجعل المعلومات المخزنة على القرص مشفرة. تقوم هذه البرامج بإظهار محتوى الملفات المشفرة الموجودة على القرص المشفر عبر فك تشفيرها عند طلبها من قبل مستخدم يملك كلمة السر الصحيحة التي استخدمت لحماية المعلومات المشفرة من الوصول لغير المصرح لهم قراءة محتويات القرص.
برامج تشفير الأقراص يمكن أن تستخدم لاخفاء بيانات ضمن القرص المشفر بحيث يستطيع صاحب البيانات إخفاء حقيقة وجودها في حين لا يمكن لأحد إثبات وجود هذه المعلومات في ما يسمى النكران القابل للتصديق Plausible Deniability لتوضيح ذلك نفترض المثال التالي:
رامي ناشط لديه جدول بمعلومات مهمة جدا, يقوم رامي بانشاء قرص مشفر ويستخدم كلمة سر أولى لحماية هذا القرص ويضع معلومات غير مهمة جدا ضمن القرص المشفر. بعد ذلك يقوم رامي بإخفاء الجدول ضمن القرص باستخدام كلمة سر ثانية. للأسف تم اعتقال رامي ومصادره حاسبه. يقوم المحقق بمعاينة الحاسب ويلاحظ وجود قرص مشفر. يقوم المحقق بتعذيب رامي للحصول على كلمة السر الخاصة بالقرص. رامي خوفا من التعذيب يقوم بذكر كلمة السر الأولى. التي يستخدمها المحقق لمعاينة الملفات المشفرة, التي قلنا سابقا أنها غير مهمة جدا. لكن ما لا يعلمه المحقق أن القرص يحتوي معلومات مهمة مخفية لا يستطيع المحقق سؤاله عنها لعدم وجود دليل على وجودها. ويمكن لرامي أن ينكر وجودها في حال سؤل عنها دون أن يكون للمحقق أي دليل يشير إلى وجودها. ربما بقليل من الحظ تنقذ هذه الخاصية حياة رامي.
أحد أكثر برامج تشفير الأقراص التي تملك هذه الخاصية هو برنامج ڤيراكريبت VeraCrypt. ترو كريبت برنامج تشفير أقراص يعمل على أنظمة تشغيل متعددة, سهل الاستخدام وله سمعة طيبة. ويعطي مستخدمه امكانية تشفير المجلدات وأيضا تشفير الأقراص الصلبة والمحمولة. بالإضافة لذلك يوفر تروكريب أيضا امكانية النكران القابل للتصديق Plausible Deniability عبر المجلدات المخفية ضمن القرص المشفر. للمزيد حول البرنامج وطريقة استخدامه اتبع الرابط إلى صفحة برنامج ڤيراكريبت VeraCrypt.
هناك أيضا برامج أخرى لتشفير الملفات مثل برنامج AES Crypt. وهو برنامج سهل الاستخدام متوفر على أنظمة تشغيل متعددة يعتمد على معيار Advanced Encryption Standard AES لتشفير الملفات. لمزيد من المعلومات عن البرنامج وطريقة استخدامه اتبع الرابط إلى صفحة برنامج AES Crypt. وبالنسبة للهواتف الذكية هناك تطبيق كريبتونايت Cryptonite للأجهزة العاملة بنظام أندرويد.
نجد أيضا تطبيقات أو برامج تتخصص بحماية الملفات المخزنة لدى خدمات التخزين السحابي مثل دروببوكس Dropbox وغوغل درايف Google Drive. تقوم معظم هذه الخدمات بتخزين الملفات على خوادمها بشكل مشفرّ. وينم التشفير وفك التشفير على المخدمات ذاتها. إذا يستطيع مزود خدمة التخزين السحابي أن يقوم بفك تشفير الملفات المخزنة لديه والاطلاع عليها في حال أراد ذلك أو حال رضوخه لقرار محكمة مثلا. لحماية محتوى الملفات الملفات من مزود خدمة التخزين السحابي أو السلطات، يمكن تشفيرها على جهاز المستخدم بحيث ترفع ملفات مشفرة سلفا إلى مزود الخدمة. ويقوم جهاز المستخدم بفك التشفير أيضا على الجهاز بعيدا عن مخدمات مزود الخدمة. ومن هذه البرامج، برنامج بوكس كريبتور BoxCryptor المدفوع وبرنامج كريبتوميتر Cryptomator المجاني ومفتوح المصدر. وبالطبع يمكن الاستعاضة عن هذه التطبيقات عبر استخدام خدمة تخزين سحابي تدعم التشفير على جهاز المستخدم مثل خدمة سينك Sync.
تشفير قرص نظام التشغيل
تدعم أنظمة التشغيل إمكانية تشفير السواقة التي يوجد عليها نظام التشغيل بحيث لا يمكن الوصول إلى هذه المعلومات إلا بعد الاقلاع من نظام التشغيل وتسجيل الدخول بنجاح إلى حساب المستخدم. بعد تسجيل الدخول يقوم نظام التشغيل بإتاحة المعلومات الموجودة على القرص للمستخدم عند الحاجة لها بشكل مؤقت مبقيا عليها مشفرة على القرص. يذكر أيضا أن أنظمة تشغيل الهواتف الذكية سواء كانت iOS أو Android تدعم أيضا هذه الإمكانية.
للمزيد حول هذه الميزة وكيفية إعدادها اتبع الرابط إلى المقالة التالية: تشفير قرص نظام التشغيل Operating System Disk Encryption
تشفير رسائل البريد الإلكتروني
تشفير رسائل البريد الإلكتروني أمر ضروري جدا وأمر أساسي لضمان الخصوصية.
لتشفير رسائل البريد الالكتروني يتم الاعتماد على بروتوكول PGP وهي الأحرف الأولى للكلمات Pretty Good Privacy التي تعني بالعربية: خصوصية جيدة جدا. يتيح بروتوكول PGP امكانية توقيع رسالة ما الكترونيا وتشفيرها. بحيث لا يستطيع فك تشفيرها إلا الشخص الموجهة إليه تلك الرسالة. تجري عملية التشفير على جهاز المرسل وعملية فك التشفير على جهاز المستقبل باستخدام ما يسمى المفاتيح. بروتوكول PGP يقوم بتشفير محتوى الرسالة لكنه للأسف لا يشفر عنوان البريد الالكتروني ولا حساب صاحب البريد الالكتروني ولا حساب المستقبل. للمزيد حول بروتوكول PGP واستخدامه اتبع الرابط: بروتوكول PGP
من المهم جدا الانتباه أنه قد يتمكن الأشخاص المتطفلون على الخصوصية من ملاحظة وجود رسالة مشفرة أو أكثر (إذا استطاعوا اختراق حساب البريد الإلكتروني مثلا أو إذا كان لديهم الإمكانية لمراقبة وارد البريد كأن يكون حساب بريدك الإلكتروني ملكا لمزود خدمة تحت سلطة جهاز أمني استبدادي). وربما قد يدفهم ذلك لمزيد من التطفل أو حتى الانتقال إلى مستوى الملاحقة الجسدية حسب الوضع والقوانين والإمكانيات والمعلومات المتوفرة لدى المتطفلين على الخصوصية مهما كانوا. لذلك قد يكون استخدام بروتوكول التشفير مضرا.
لذلك ليس بالضرورة أن يكون تشفير رسائل البريد الإلكتروني أفضل الطرق لضمان سلامتك الجسدية... لكنه بالتأكيد أفضل طريقة لضمان إرسال رسائل بريد الكتروني لا يمكن إلا للمستقبل المقصود قراءتها.
التشفير في منصات التواصل
من البديهي أن نرغب في أن تكون سرية الرسائل والمكالمات مصانة على منصات التواصل. فمن منّا لا يأبه أن يستطيع أي كان معاينة رسائله الخاصة أو التنصت على المكالمات أو حتى معاينة مكالمات الفيديو سواء أثناء المكالمة أو بعد حين؟ إن حماية سرية محتوى الرسائل في الحقيقة هو السبب الأساسي وراء ظهور وتطور علم التعمية والتشفير. فالجيوش تحتاجه، والبعثات الدبلوماسية تحتاجه، كما أنه ضروري في عالم المال والأعمال، وكذلك هو ضرورة مجتمعية تحفظها القوانين في معظم دول العالم ولا تنتهكها إلى في حالات قليلة أو في دول لا تحترم حرية مواطنيها أو حقوقهم. ولأن منصات التواصل التي نحن بصددها تعتمد على شبكة الإنترنت حيث تمر البيانات المتبادلة عبر عقد كثيرة تستطيع أي منها معاينة البيانات، فإنه من الضروري استخدام التشفير لحجب المحتوى عن أعين المتطفلين. ونقصد بالتشفير هنا، تشفير الرسائل المتبادلة بين الأطراف المتراسلة، وتشفير المكالمات الصوتية ومكالمات الفيديو وأيضا الملفات المتبادلة سواء كان صورا أو أفلاما أو ملفات صوتية أو غيرها.
وتختلف منصات التواصل Communication Platforms بعضها عن بعض من ناحية التشفير بالإضافة لنواح عديدة أخرى. فمن منصات التواصل من تبذل الجهد الإضافي لضمان سرية الرسائل والمكالمات وخصوصية المتخابرين، ومنها ما يحترم سرية المكالمات لكن بنفس الوقت يستخدم البيانات الوصفية للمكالمات كطول المكالمة، وتوقيتها كمعلومات إضافية عن المستخدمين يمكن استخدامها وبيعها لشركات الإعلان.
وتختلف المنصات في نوع التشفير الذي تتيحه للمستخدمين، فقد تقدم منصة ما خوارزمية تشفير أفضل من الناحية الأمنية من خوارزمية أخرى على منصة أخرى. كما قد تكون المحددات المستخدمة لخوارزميات التشفير غير جيدة كان يكون طول المفاتيح المستخدمة قصيرا أو كان يكون مولد الرموز العشوائية غير عشوائي بقدر كافِ. كما تختلف المنصات فيما إن كان تشفير الاتصال أو التراسل هو الوضع الافتراضي. وإن كان التشفير جزئيا كأن يشمل التراسل والمكالمات الصوتية بين شخصين ولا يشمل المكالمات الصوتية ضمن مجموعة.
تقدم أغلب منصات التواصل الجيدة أحد الأنواع التالية من التشفير:
- تشفير طرف إلى مركز: حيث يتم تشفير البيانات بين تطبيق المستخدمين من جهة وخوادم منصة التواصل من جهة أخرى. أي عندما تتصل رباب بباسل على منصة مثل فيسبوك ميسينجر Facebook Messenger، يكون الاتصال بين جهاز باسل وخوادم شركة فيسبوك Facebook مشفرا، وكذلك الاتصال بين خوادم شركة Facebook وجهاز رباب، لكن على خوادم شركة يكون محتوى المكالمة أو محتوى الرسائل غير مشفرا. بكلمات آخرى، يقوم التطبيق بتشفير الرسالة على جهاز باسل وإرسالها إلى خادم Facebook حيث يتم فك تشفيرها، ثم تشفيرها من جديد من قبل الخادم قبل إرسالها إلى رباب حيث يقوم الأخير بفك تشفير الرسالة وإتاحتها لرباب. هنا نقول أن الرسال ترسل بشكل مشفر، لكن للمنصة القدرة على معاينة الرسائل.
- تشفير طرف إلى طرف End-to-End Encryption: هنا يكون الاتصال بين المستخدمين مشفرا بالكامل. فإن أراد باسل إرسال رسالة إلى رباب عبر تطبيق سيغنال Signal، يتم تشفير الرسالة على جهاز باسل، ويتم إرسالها إلى خادم المنصة، الذي يقوم بتمريرها كما هي إلى جهاز رباب. هنا لا يستطيع أحد سوى جهاز رباب فك تشفير الرسالة، بما في ذلك خوادم المنصة.
تتفوق المنصات التي تعتمد على برمجيات مفتوحة المصدر Open-Source Software مثل سيغنال Signal على تلك التي تعتمد على برمجيات مغلقة المصدر مثل واتس أب WhatsApp إذ لا يكفي أن تدعي منصة تطبيقها لبروتوكول تشفير معين وإنما يجب أن تثبت أنها تطبق خوارزمية وبروتوكول التشفير بشكل صحيح. ففي حال كانت المنصة مفتوحة المصدر بإمكان الخبراء معاينة سطور البرمجة وتحديد مواضع الخلل في تطبيق الخوارزمية بدون عناء. أما في حال البرمجيات المغلقة فعلى المنصات التعاقد مع جهاز خارجية بهدف إجراء تدقيق Audit لتحديد دقة ادعاءات المنصة حول موضوع التشفير.
تشفير المحتوى أثناء التصفح
عند تصفّح المواقع التي تعمل وفق بروتوكول http يتم إرسال كامل عنوان الصفحة إلى الموقع المطلوب عبر الإنترنت بشكلها الصحيح. ما يتيح لمزود خدمة الإنترنت معرفة الصفحة التي يريد المستخدم معاينتها بالتحديد، لجميع الخوادم بين مزود خدمة الإنترنت وخوادم الموقع المطلوب. وإن قبل الموقع طلب http وقام بإرسال محتويات الصفحة باستخدام بروتوكول http إلى المستخدم يكون محتوى الصفحة (النصوص والصور وغيرها من محتويات الصفحة) غير مشفرا أي أنه يكون بإمكان أي خادم على طريق البيانات بين خادم الصفحة وجهاز المستخدم معايتنها.
لنفترض مثلا أن المستخدم يرغب بمعاينة الصفحة التالية http://www.bbc.com/arabic/51855397 على موقع bbc. فهذا يعني أن مزود خدمة الإنترنت سيعرف بالتحديد الخبر على موقع BBC الذي يهتم به المشترك. وبالتالي وعبر متابعة الصفحات التي يعاينها المشترك يمكن لمزود خدمة الإنترنت معرفة المزيد عن عادات المستخدم ورغباتهم ونزواتهم وأهوائهم وطباعهم وآرائهم الفكرية ومصادر التأثير على آرائهم. كما يستطيع مزود الخدمة حجب صفحات بعينها ضمن موقع معين، كحجب صفحة معينة ضمن موقع ويكيبيديا، وهو إجراء تتخذه مزودات خدمة الإنترنت في الدول التي لا تحترم حق الوصول إلى المعلومة حيث قد يشكل طلب الصفحة أساسا مشكلة للمشترك إن قام مزود خدمة الإنترنت بإعلام السلطات المختصة بمحاولة المشترك معاينة الصفحة الممنوعة. وكذلك يكون محتوى الصفحة نفسه متاحا لجميع من هم على طريق البيانات وهذا يعني أيضا قدرة هذه الخوادم (خاصة مزود خدمة الإنترنت) على تعديل محتوى الصفحة قبل وصولها إلى المستخدم، كحذف مقاطع من مقالة لاذعة تتهم السلطة السياسية بالفساد المالي، أو إضافة مقاطع تمدح الزعيم ومنجزات الزعيم.
تشفير المحتوى أثناء التصفح، عبر استخدام ppبروتوكول https]] يكفي لمنع مزود خدمة الإنترنت وغيره على شبكة الإنترنت من معرفة الصفحة التي يطلبها المستخدم ضمن نطاق ما ومحتواها. فبالعودة لمثالنا http://www.bbc.com/arabic/51855397 لو وضعنا في العنوان البروتوكول https بدل http ليصبح العنوان https://www.bbc.com/arabic/51855397 لتعذر على مزود خدمة الإنترنت معرفة الجزء arabic/51855397 الذي يدل على الصفحة ضمن موقع www.bbc.com. ولتعذر عليه أيضا معاينة محتوى الصفحة نفسه وتعديله. طبعا يجدر بالذكر أن مزود خدمة الإنترنت سيعرف أن المشترك يعاين صفحة ما على موقع www.bbc.com لأن هذا الجزء من العنوان، أي النطاق، يبقى مكشوفا حتى عند استخدام بروتوكول https. لا يكفي استخدام بروتوكول https لحماية محتوى التشفح من المتطفلين، إذ ينبغي إعداد https بحيث يقوم البروتوكول باستخدام خوارزميات ومحددات تشفير جيدة ينصح بها ومنع استخدام خوارزميات و محددات تشفير آخرى (بعد كشف مواضع عجزها أو إمكانية كسرها).
استخدام تور Tor يتيح تصفح مواقع الإنترنت دون أن يتمكن أحد من معرفة محتوى التصفح، أو الصفحات التي يطلبها المستخدم بما في ذلك مزود خدمة الإنترنت. وبستخدم Tor أساليب التشفير لحماية العنوان المطلوب والمحتوى من أعين المتطفلين.
التشفير لتأمين الاتصال بشبكة الإنترنت وغيرها من الشبكات
من التطبيقات الأساسية للتشفير استخدامه لتامين الاتصال بشبكة الإنترنت أو غيرها من شبكات الحاسوب، ونقصد بذلك تأمين قناة اتصال مشفرة بين جهاز أول على الشبكة وجهاز آخر على شبكة الحواسبب، كتأمين الاتصال بين جهاز المستخدم وخادم ما على شبكةالإنترنت على سبيل المثال وليس الحصر.
تنبع الحاجة لتشفير قناة الاتصال بين جهازين على الشبكة من أنه لا يمكن الوثوق بجميع الأجهزة الموجودة بين الجهازين على الشبكة، خاصة في شبكات مفتوحة مثل شبكة الإنترنت. بالتالي يصبح تشفير البيانات المتبادلة بين جهازين على الشبكة حاجة ضرورية لضمان سرية البيانات المتبادلة وكذلك ضمان أمانتها أي سلامتها من التعديل والحذف والتحوير.
تعتبر تطبيقات الشبكات المحلية الافتراضية VPN مثالا ممتازا على استخدام التشفير لتأمين الاتصال بين جهاز المستخدم وخادم مزود خدمة الـ VPN على الإنترنت، وحيث لا يثق المستخدم بشكل أساسي بمزود خدمة الإنترنت ISP الخاص بهم، أو لا يثق بمدير شبكة الـ Wifi في المقهى أو المكتبة أو آخرين موجودن على الشبكة ذاتها.
تشفير قواعد البيانات
تعتبر قواعد البيانات بمختلف أنواعها واستخداماتها من أهم تطبيقات تقنية المعلومات وأكثرها أثرا على الاقتصاد والنمو حول العالم. فهي التقنية التي استبدلت الجداول الورقية ودفاتر المحاسبة الورقية والأرشيف الورقي وغيرها من الأساليب الأساسية لتخزين البيانات بشكل مضبوط ومرتّب. وهي التي التقنية التي أتاحت أساليبا إضافية لتحقيق الأرباح والنمو الاقتصادي، عبر تقنيات الاحصاء وتحليل البيانات وما يسمى بالـ Business Intelligence والـ Big Data.
ولقواعد البيانات تطبيقات مختلفة نذكر منها على سبيل المثال لا الحصر:
- تخزين بيانات العملاء في البنوك والمؤسسات المالية
- تخزين البيانات الشخصية للمواطنين في مؤسسات الدولة
- تخزين ومتابعة بيانات المرضى في المستشفيات
- إدارة المستودعات
- برامج المحاسبة
- تخزين نتائج التجارب العلمية
- منصات إدارة المحتوى Content Management Systems كمدونات وورد بريس Wordpress أو MediaWiki والتي على قاعدة بيانات لتخزين جميع البيانات المتعلقة بالموقع والصفحات والمنشورات والمستخدمين والمحتوى التفاعلي وغير ذلك
- مواقع خدمة البريد الالكتروني
- مواقع التواصل الاجتماعي
- مواقع الـ streaming
من الواضح من جميع هذه التطبيقات أن تقنيات قواعد البيانات تعتبر من أهم التقنيات التي أدت إلى النمو الاقتصادي وانتشار استخدام تقنيات المعلومات في الحياة اليومية حول العالم. ولذلك ينعكس أي تقدم في تقنية قواعد البيانات على الاقتصاد العالمي بسرعة شديدة.
بنفس الوقت، يعني الاعتماد على قواعد البيانات في مناحي الاقتصاد والإدارة كافة إلى ضرورة الاهتمام بأمن هذه التقنيات والمخاطر المرتبطة باستخدامها. وهنا من الضروري أن تؤمن تقنيات قواعد البيانات المختلفة سرية البيانات، أمانتها وتوافرها (متطلبات ضمان المعلومات) CIA of IA. يهمنا هنا سرية البيانات المخزنة على قواعد البيانات.
ففي تسرب البيانات المالية الخاصة بنا أو للبيانات الخاصة بحالتنا الصحية أو ببيانات الشخصية في دوائر الدولة ضرر كبير على الخصوصية قد يؤدي لمصائب أو مصاعب اقتصادية واجتماعية لنا.
لذلك تؤمن تقنيات قواعد البيانات أساليب وطرق للتحكم بالوصول Access Control لحصر الوصول إلى البيانات المخزنة بالمخولين بذلك. لكن ذلك قد لا يحول من شخص استطاع اختراق الخادم حيث تتواجد هذه البيانات من الوصول إلى البيانات، ملتفا على طرق التحكم بالوصول الخاصة بقاعدة البيانات، كونها مخزنة بشكل أو بآخر على القرص الصلب. لذلك تؤمن تقنيات قواعد البيانات التي تأخذ موضوع ضمان البيانات بجدية أساليب لتشفير البيانات المخزنة على قاعدة البيانات بحيث لا يستطيع أي شخص استطاع اختراق الخادم من الاطلاع على محتواها.
تمتلك الكثير من قواعد البيانات إمكانية تشفير كامل المحتوى باستخدام مفتاح تشفير وحيد مخزن لدى التطبيق المستخدم لقاعدة البيانات، وأيضا تقدم قواعد بيانات أخرى إمكانية تشفير البنود (entries) المرتبطة بمستخدم معين بمفتاح تشفير لدى المستخدم لهذه التطبيقات. وبالتالي تكون المفاتيح موزعة بين مستخدمي المنصة ما يعني أن على المخترق اختراق أجهزة جميع المستخدمين لقاعدة البيانات للتمكن من الوصول إلى البيانات بشكلها الصريح.
تشفير بيانات تسجيل الدخول
في السابق كانت المواقع تقوم بسذاجة بتخزين بيانات تسجيل الدخول (عادة اسم المستخدم وكلمة السرّ) في قواعد بيانات تحفظ المستخدمين المرخص استخدام الموقع. سرعان ما أصبحت المشكلة مع هذا النوع من الإجراءات واضحة. فبعد حدوث اختراق لخوادم إحدى المواقع وسرقة قاعدة بيانات المستخدمين، قام المهاجمون باستخدام بيانات تسجيل الدخول ذاتها في مواقع آخرى فيما يسمى بحشو كلمات السرّ Password Stuffing محققين نسبة نجاح عالية جدا.
بعد ذلك أصبحت المواقع تقوم بتخزين اسم المستخدم وهاش Hash عن كلمة السرّ بدل تخزين كلمة السرّ ذاتها. عند تسجيل الدخول يقوم المستخدم بإدخال اسم المستخدم وكلمة السرّ حيث يقوم الموقع بحساب هاش كلمة السرّ ومقارنته بالهاش Hash المخزن في قاعدة البيانات على الموقع. وبالتالي إن تسربت قاعدة البيانات إلى جهات خبيثة، لن تتمكن تلك الجهات من الاستفادة من تلك المعلومات، إذ لا يمكن استنتاج كلمة السرّ انطلاقا من الهاش، خاصة إن كانت عملية إنشاء الـ Hash بداية من كلمة السرّ غير معروفة.
مع تطور هجوم قوس قزح Rainbow Attack على الهاشات المخزمة في قواعد بيانات تسجيل دخول المستخدمين أصبح بالإمكان استنتاج كلمة سرّ معينة انطلاقات من الهاش الخاص بها لعدد من خوارزميات الهاشينغ المشهورة. بالتالي أصبح تسرب قاعدة بيانات المستخدمين التي تحوي اسماء مستخدمين، والهاش الخاص بكلمات السرّ شبيها بتسرب قواعد بيانات المستخدمين التي تحتوي كلمات السرّ بشكلها الصريح. لرفع سوية أمان قواعد بياتات تسجيل الدخول، أضافت المواقع ما يسمى بالملح Salt لكلمة السرّ قبل تحويلها إلى هاش Hash. والملح هو رمز عشوائي يتم توليده لكل مستخدم ويتم تخزينه بشكله الصريح ضمن سجل تسجيل دخول المستخدم الذي يتضمن الآن اسم المتسخدم Username، الملح Salt، هاش كلمة السرّ المملحة Salted Password Hash. بما أن الملح Salt هو رمز مولد بشكل عشوائي لكل مستخدم، يضمن ذلك وجود hash مختلف لكلمة سرّ كل مستخدم، ما يعني أنه عند حدوث تسرب لقاعدة بيانات تسجيل الدخول، لن يستطيع المهاجمون تحديد المستخدمين الذين قاموا باستخدام كلمات سرّ متشابهة عبر معاينة عمود الهاش وبالتالي يحتاج المهاجم وقتا اكبر بكثير للحصول على كلمة السرّ بداية بالهاش الخاصة بكلمات السرّ المملحة.
التشفير عند استخدام التخزين السحابي Cloud Storage Encryption
عند استخدام التخزين السحابي Cloud Storage تتواجد الملفات على مخدمات موزد الخدمة المتصلة بالإنترنت. بسبب وجود الملفات على الانترنت فإن معاينتها أو مزامنتها تعني نقلها أو نسخ البيانات ضمنها عبر شبكة الإنترنت من مخدمات التخزين السحابي إلى جهاز المستخدم، عبر مخدمات الانترنت التي قد توجد في دول مختلفة او التي تتبع لجهات مختلفة منها بالتأكيد مزود خدمة الانترنت الخاص بشركة التخزين السحابي ومزود خدمة الانترنت الخاص بكم. بالتالي توجد هنا خطورة خسارة سرية الملفات أو محتواها أثناء نقل البيانات عبر شبكة الانترنت.
لإلقاء أو التقليل من هذه الخطورة تستخدم تطبيقات مزودات خدمات التخزين السحابي المحترمة التشفير الجيد لنقل البيانات بين أجهزة المستخدمين وخادمات مزود الخدمة، كما تستخدم التشفير الجيد لنقل البيانات بين خادماتها.
أيضا عند استخدام التخزين السحابي تتواجد الملفات على مخدمات موزد الخدمة المتصلة بالانترنت. فذلك يعني أن هناك خطورة إضافية وهي احتمال حصول اختراق Hacking للخادمات وبالتالي احتمال وصول المخترقين للملفات. يمكن لمزودات خدمة التخزين السحابي التصدي لهذه الخطورة عبر استخدام تشفير الملفات عند تخزينها. بالتالي في حال حصل اختراق لخادمات مزود الخدمة لن يصل المخترق لمحتوى الملفات إذ انها مشفرة وبالتالي لن يخصر صاحبها سريتها. تقوم عدد من مزودات الخدمة المحترمة بتشفير الملفات والبيانات المخزنة على خادماتها وتحتفظ بها مشفرة كل الوقت للتقليل من هذه الخطورة. لكن يجب هنا الانتباه إلى من يملك مفاتيح التشفير. فهنا يجب أن نميز بين خيارين. خيار التشفير عند مزود الخدمة أو التشفير عند الخادم Server-Side Encryption أو التشفير عند المستخدم أو التشفير عند العميل Client-Side Encryption والذي يسمى تجاوزا End-to-End Encryption أسوة بتشفير طرف إلى طرف لتامين التواصل.
ففي حالة Server-Side Encryption، يستطيع مزود خدمة التخزين السحابي الاطلاع على محتويات البيانات كما تم رفعها. فإن رفعت بشكلها الصريح كما هي العادة مع تطبيقات Dropbox وGoogle Drive. وقد ترغب الشركة بمعاينة ملفاتكم بقصد توجيه الإعلانات المناسبة لكم. أو قد تضطر امتثالا للقانون مثلا إلى تقديم نسخة عن ملفاتك إلى الجهات المعنية عند طلبها.
أما في حالة الـ Client-Side Encryption يتم تشفير البيانات على جهاز المستخدم قبل رفعها إلى السحابة، أي أنه لن يستطيع أي كان بما في ذلك مزود خدمة التخزين السحابي معاينة البيانات الخاصة بالمستخدمين. تقدم عدد من مزودات خدمة التخزين السحابي مثل SpiderOak و Sync ميزة الـ Client-Side Encryption.
يذكر انه بإمكانكم تشفير الملفات (يدويا او باستخدام تطبيق مناسب) قبل وضعها ضمن المجلد الخاص بخدمة التخزين السحابي وبذلك لا يستطيع مزود خدمة التخزين السحابي معاينة محتوى الملفات لانها مشفرة من جهة المصدر. يمكنكم مثلا إنشاء حاوية VeraCrypt بحجم معين ووضعها ضمن مجلد Dropbox، بذلك لا تستطيع شركة Dropbox معاينة البيانات ضمن الحاوية. يوجد أيضا برامج خاصة تضيف ميزات التشفير Client-Side Encryption إلى خدمات التخزين السحابي التي لا تقدمها، من بين هذه الخدمات برنامج بوكس كريبتور BoxCryptor وبرنامج كريبتوميتور Cryptomator التي تضيف ميزة Client-Side Encryption لخدمات دروببوكس Dropbox، غوغل درايف Google Drive وغيرها.
للمقارنة بين خدمات التخزين السحابي المتوفرة راجعوا هذه المقالة الخاصة بالتخزين السحابي Cloud Storage لاسيما المقطع الخاص بالمقارنة بين الخدمات.
السابق: التحكم بالوصول Access Control
التالي: البروتوكولات Protocols
أساسيات في الأمن الرقمي Information Security Essentials
اقرأ أيضا See Also
التحليل الاحصائي Frequency Analysis
النكران القابل للتصديق Plausible Deniability
تشفير القرص الصلب Hard disk encryption
بروتوكول PGP لتشفير رسائل البريد الالكتروني
تشفير طرف إلى طرف End-to-End Encryption
مراجع References
A Short History of Cryptography
Bill's Security Site.com - Encryption
Where Does Encryption Happen and Speed Presentations
صفحة لتشفير النصوص وفك التشفير وفق خوارزميات مختلفة بشكل مباشر أونلاين
WHAT IS DATA ENCRYPTION? WHICH ALL ARE THE TOP ENCRYPTION ALGORITHMS?