تشفير قواعد البيانات

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

التشفير الشفافي (الخارجي)

قواعد البيانات الخارجية أو كما يرمز لها بالإنجليزية (Transparent Data Encryption) "TDE", هي طريقة مستخدمة للتشفير الكامل لقاعدة البيانات, وبالتالي, يتم أيضا تشفير البيانات التي هي من نوع "data at rest" في قاعدة البيانات نفسها. وللتوضيح, "data at rest" يمكن شرحها أو وصفها بأنها بيانات غير مفعلة أو نشطة ولم يتم التعديل عليها أو نشرها عن طريق الشبكة. على سبيل المثال, يكون الملف النصي المخزن في جهازك الحاسوبي في وضع "at rest" حتى تقوم بفتح الملف و تعديله. يتم حفظ وتخزين البيانات التي هي على شكل "data at rest" في أي من وسائل التخزين الشريطية مثل الأشرطة الثابته أو الأقراص الصلبة, ولكن عند تخزين وحفظ كميات كبيرة من المعلومات الحساسية في تلك الأجهزة, تصبح المسألة حساسة جدا لأنها تتعلق بالأمن والحماية والخوف من السرقة أو ضياع وتلف تلك المعلومات. 
هذا النوع من تشفير قواعد البيانات وهو كما عرفناه سابقا بالمصطلح "TDE" يمتاز بأنه يضمن الحماية لتلك البيانات المشفرة على أجهزة التخزين والوسائط, بحيث أنه يمنع الأشخاص الذين يعملون تحت شعار الإختراق والعبث من قراءة تلك البيانات.  
ولذلك, البيانات التي لايمكن قرائتها تصبح فعليا بدون أي قيمة, لذا يلعب هذا النوع من التشفير دور كبير في تقليل الحوافز لدى المخترقين الراغبين بسرقة المعلومات, وينسب أيضا لهذا النوع من التشفير قوة الشفافية الموجودة. تكمن هذه القوة في أنه لايجب تغيير التطبيقات و إعداداتها لأجل مهمة التشفير بنوع "TDE". توجد نقطة مهمة وهي أن كما ذكرنا مسبقا في أن هذا النوع يشفر كافة المعلومات في قاعدة البيانات بما فيها النسخ الإحتياطية (نسخ احتياطي) من قاعدة البيانات نفسها. وتأتي خاصية الشفافية الموجودة بهذا النوع من التشفير في أنه يتم تشفير البيانات في حالة تخزينها, ويتم بعد ذلك فك تشفيرها عند إستدعائها من قبل ذاكرة النظام. يتم تشفير المحتويات الموجودة في قاعدة البيانات بإستخدام مفتاح التماثل أو بالإنجليزية "symmetric key", وغالبا مايدعى بمفتاح تشفير قواعد البيانات.

تشفير الأعمدة

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

تشفير الحقول

هناك أعمال تجريبية قائمة على توفير عمليات قواعد البيانات مثل البحث والعمليات الحاسبية الأخرى على حقول مشفرة ومن دون الحاجة إلى فك تشفير هذه الحقول. المبتغى من قوة عمليات التشفير هي بأن تكون عشوائية, بحيث تكون هناك نتيجة مختلفة في كل مرة يتم فيها التشفير. تعرف هذا التقنية بإسم (التشفير الإحتمالي) أو بالإنجليزية (Probabilistic Encryption). تشفير الحقول يعتبر أضعف من التشفير العشوائي أو الإحتمالي, ولكن هذا النوع يسمح أيضا للمستخدمين بأن يقوموا بإختبار مستوى المساواة ومن دون القيام بفك تشفير البيانات.

نظام تشفير الملفات (EFS)

من المهم ملاحظة أن تقنيات تشفير قواعد البيانات التقليدية تقوم عادةً بتشفير وفك تشفير محتويات قاعدة البيانات. تتم إدارة قواعد البيانات بواسطة "أنظمة إدارة قواعد البيانات" (DBMS) التي تعمل على رأس نظام تشغيل موجود (OS).  هذا يثير مخاوف أمنية محتملة ، لأن قاعدة البيانات المشفرة قد تعمل على نظام تشغيل يمكن الوصول إليه وهشاش أو ضعيف. يمكن لـ EFS تشفير البيانات التي لا تشكل جزءًا من نظام قاعدة البيانات ، مما يعني أن نطاق التشفير الخاص بـ EFS أوسع بكثير مقارنةً بنظام مثل TDE قادر فقط على تشفير ملفات قاعدة البيانات.   بينما تعمل EFS على توسيع نطاق التشفير ، إلا أنها تقلل أيضًا من أداء قاعدة البيانات ويمكن أن تسبب مشكلات في الإدارة حيث يتطلب مسؤولو النظام الوصول إلى نظام التشغيل لاستخدام EFS. نظرًا للمشاكل المتعلقة بالأداء ، لا يتم استخدام EFS عادةً في تطبيقات قواعد البيانات التي تتطلب مدخلات ومخرجات متكررة لقاعدة البيانات. من أجل تعويض مشكلات الأداء ، يوصى غالبًا باستخدام أنظمة EFS في بيئات بها عدد قليل من المستخدمين.

تشفير القرص الكامل

BitLocker ليس لديه نفس الأداء المرتبط بـ EFS.

التشفير التماثلي

يعرف هذا النوع بإسم (symmetric database encryption), حيث أنه يشترط وجود مفتاح تشفير خاص يدعى (private key), ويتم إيداع هذا المفتاح وربطه وإستخدامه للبيانات المخزنة والمستدعية من قبل قاعدة البيانات. قبل عملية فك تشفير هذه البيانات, يقوم هذا المفتاح الخاص بالتعديل والتغيير بحيث أنه يعمل على جعل البيانات غير قابلة للقراءة. تكون هذه البيانات مشفرة عندما تكون مخزنة ومحفوظة, وتكون بعد ذلك غير مشفرة عندما يتم فتحها, و تنشأ هاذه الخطوة عندما يكون المستخدم نفسه على علم بالمفتاح الخاص (private key) الذي تم إستخدامه هنا. علاوة على ذلك, من المهم عند مشاركة البيانات عبر قاعدة البيانات مابين شخص مرسل ومستقبل بأن يتم استخدام مفتاح آخر يدعى بالمفتاح السري أو بالإنجليزية (secret key) من قبل الشخص المرسل, ومن الضروري بأن يتم توفير نسخه من هذا المفتاح السري للشخص المستقبل للمشاركة التي تمت من الشخص المرسل له, بعد ذلك يمكن لهذا الشخص المستقبل للبيانات بأن يفك تشفيرها وقرائتها بعد ذلك.  
- يتميز التشفير التماثلي بالسرعة, لأنه يمتلك خاصية استخدام مفتاح تشفيري واحد للعمليات.

التشفير الغير تماثلي

بالإنجليزية يدعى هذا التشفير بال (Asymmetric database encryption), حيث أنه يشترط وجود مفتاحان للتشفير يعمل كل منهما على حده. هذان النوعان تسمى (private key & public key) أو "المفتاح العام" و"المفتاح الخاص". يستطيع أي شخص الوصول إلى المفتاح العام, ولكل شخص أو مستخدم مفتاح عام مختلف ومميز يختص به. وبالجهة المقابلة, المفتاح الخاص هو مفتاح متميز ومختلف ولايستطيع أحد الوصول إليه إلا بواسطة شخص أو مستخدم واحد فقط. في أغلب الأحيان, يكون المفتاح العام هو المفتاح المستخدم في عمليات التشفير, بينما المفتاح الخاص هو المفتاح الذي يقوم بفك عمليات التشفير. على سبيل المثال, إذا أراد المستخدم (أ) أن يرسل رسالة إلى المستخدم (ب) بإستخدام التشفير الغير تماثلي, المستخدم أ سيقوم بتشفير الرسالة بواسطة المفتاح العام للمستخدم ب, بعد ذلك, سيقوم بإرسال الرسالة كرسالة مشفرة. بعد هذه العملية, سيقوم المستخدم ب بفك شفرة هذه الرسالة بإستخدام مفتاحه الخاص. إذا تدخل مستخدم جديد ليكون مستخدم (ج), لن يكون هو قادر على فك هذه الشفرة الخاصة برسالة المستخدم أ, لأن المفتاح الخاص للمستخدم ج لا يتوافق مع المفتاح الخاص بالمستخدم ب. 
- يمتاز التشفير الغير تماثلي بأنه أكثر حماية وأمن مقارنة بالتشفير التماثلي.

إدارة المفاتيح

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

التجزئة

يتم استخدام دوال الـ (هاش) في أنظمة قواعد البيانات كوسيلة لحماية البيانات الحساسة مثل كلمات المرور ؛ ومع ذلك يتم استخدامه أيضًا لتحسين كفاءة الرجوع إلى قاعدة البيانات.  يتم التعامل مع البيانات المدخلة بواسطة خوارزمية التجزئة. تقوم خوارزمية التجزئة بتحويل البيانات المدخلة إلى سلسلة ذات طول ثابت يمكن تخزينها بعد ذلك في قاعدة بيانات. أنظمة التجزئة لها سمتان مهمتان للغاية سيتم تحديدهما الآن. 
أولاً ، تعد التجزئة "فريدة ومتكررة". على سبيل المثال ، يؤدي تشغيل كلمة "cat" من خلال نفس خوارزمية التجزئة عدة مرات دائمًا إلى تجزئة نفس الشيء ، ولكن من الصعب للغاية العثور على كلمة ستُرجع نفس التجزئة التي يجلبها "cat".  ثانياً ، خوارزميات التجزئة غير قابلة للانعكاس. لربط هذا مرة أخرى بالمثال المذكور أعلاه ، سيكون من المستحيل تقريبًا تحويل ناتج خوارزمية التجزئة إلى المدخلات الأصلية ، والتي كانت "قطة".  في سياق تشفير قاعدة البيانات ، يتم استخدام التجزئة غالبًا في أنظمة كلمة المرور. عندما ينشئ المستخدم كلمة المرور لأول مرة ، يتم تشغيلها من خلال خوارزمية التجزئة وحفظها كتجزئة. عندما يقوم المستخدم بتسجيل الدخول مرة أخرى إلى موقع الويب ، يتم تشغيل كلمة المرور التي يدخلها من خلال خوارزمية التجزئة ثم تتم مقارنتها مع التجزئة المخزن.  نظرًا لحقيقة أن التجزئات فريدة من نوعها ، إذا كان كلا التجزيدين متطابقين ، يُقال إن المستخدم أدخل كلمة المرور الصحيحة. أحد الأمثلة على دالة التجزئة الشهيرة SHA (خوارزمية التجزئة الآمنة) 256.

عمليات التمليح

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

تقنيات الفلفل

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

تشفير مستوى التطبيق

في تشفير مستوى التطبيق ، يتم إكمال عملية تشفير البيانات بواسطة التطبيق الذي تم استخدامه لإنشاء أو تعديل البيانات المراد تشفيرها. يعني هذا بشكل أساسي أن البيانات مشفرة قبل كتابتها إلى قاعدة البيانات. يسمح هذا الأسلوب الفريد للتشفير بتخصيص عملية التشفير لكل مستخدم بناءً على المعلومات (مثل الاستحقاقات أو الأدوار) التي يعرفها التطبيق عن مستخدميه.

مزايا التشفير على مستوى التطبيق

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

عيوب تشفير مستوى التطبيق

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

مخاطر تشفير قاعدة البيانات

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