تمكين Transparent Data Encryption

مكتمل

يشفر تشفير البيانات الشفافة (TDE) من Microsoft SQL Server جميع البيانات داخل قاعدة بيانات الهدف على مستوى الصفحة. يتم تشفير البيانات، حيث تتم كتابة البيانات على صفحة البيانات على القرص وفك تشفيرها عند قراءة صفحة البيانات في الذاكرة. وتتمثل النتيجة النهائية في أن جميع صفحات البيانات الموجودة على القرص مشفرة.

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

يحمي TDE البيانات الثابتة، ويتبع العديد من القوانين واللوائح والمبادئ التوجيهية الراسخة في مختلف الصناعات. باستخدام هذه الإمكانية، يمكن لمطوري البرامج تشفير البيانات باستخدام خوارزميات تشفير AES و3DES دون الحاجة إلى تغيير التطبيقات الموجودة.

توضح الصورة التالية كيفية عمل تشفير TDE.

Transparent Data Encryption architecture.

باستخدام قاعدة بيانات Azure SQL، يعتبر تمكين TDE أمرًا بسيطًا. تم تمكين TDE تلقائيًا لقواعد البيانات التي تم إنشاؤها في قاعدة بيانات Azure SQL بعد مايو 2017. قواعد البيانات التي تم إنشاؤها قبل مايو 2017 ستعمل على تعطيل TDE بشكل ظاهري وسيتعين تمكين TDE يدويًا في قواعد البيانات هذه. تم تمكين TDE في قواعد البيانات التي تم إنشاؤها بعد فبراير 2019 باستخدام Azure SQL Managed Instance. قواعد البيانات التي تم إنشاؤها قبل فبراير 2019 ستعمل على تعطيل TDE.

يعد تمكين TDE داخل قاعدة بيانات Azure SQL مجرد مسألة تحرير قاعدة البيانات داخل مدخل Microsoft Azure. من جزء Transparent data encryption، حدد لتمكين تشفير البيانات.

Transparent Data Encryption Settings for an Azure SQL Database.

بشكل افتراضي، يتم تشفير قواعد البيانات في قاعدة بيانات Azure SQL باستخدام شهادة توفرها Microsoft. يوفر Microsoft Azure خيار إنشاء مفتاحك، والذي يسمح لك باستخدام شهادة تم إنشاؤها بواسطة شركتك وتحميلها إلى Azure. إذا كانت شركتك تزيل الشهادة من Azure، فسيتم إغلاق اتصالات قاعدة البيانات، ولن يكون هناك وصول إلى قاعدة البيانات.

يعد تمكين TDE داخل قاعدة بيانات Microsoft SQL Server عملية سهلة، حيث لا يلزم سوى عدد قليل من أوامر T-SQL. تتضمن هذه العملية الخطوات التالية:

  1. عيّن مفتاح رئيسي داخل قاعدة البيانات الرئيسية باستخدام الأمر CREATE MASTER KEY ENCRYPTION.
  2. أنشئ شهادة في قاعدة البيانات الرئيسية، والتي سيتم استخدامها للتشفير باستخدام الأمر CREATE CERTIFICATE.
  3. أنشئ مفتاح تشفير قاعدة البيانات داخل قاعدة البيانات، ما يسمح لك بتمكين TDE باستخدام الأمر CREATE DATABASE ENCRYPTION KEY.
  4. بمجرد إنشاء مفتاح التشفير، يجب تمكينه باستخدام الأمر ALTER DATABASE.

يتم عرض مجموعة الأوامر بأكملها أدناه.

USE master;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Pa55.w.rd';
GO

CREATE CERTIFICATE MyServerCert
    WITH SUBJECT = 'TDEDemo_Certificate';
GO

USE [TDE_Demo];
GO

CREATE DATABASE ENCRYPTION KEY
    WITH ALGORITHM = AES_256 ENCRYPTION BY SERVER CERTIFICATE MyServerCert;
GO

ALTER DATABASE TDE_Demo SET ENCRYPTION ON;
GO

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

بمجرد إنشاء الشهادة التي ستستخدمها TDE، يجب نسخها احتياطيًا يدويًا وتخزينها في مكان آمن. يتكامل SQL Server مع Enterprise Key Managers (EKMs) من أجل إدارة مفاتيح التشفير. مثال على EKM هو Azure Key Vault.

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

إشعار

لاستخدام TDE مع قواعد البيانات في مجموعات قابلية وصول عالية التوفر AlwaysOn، يجب نسخ الشهادة المستخدمة لتشفير قاعدة البيانات احتياطيًا واستعادتها إلى الخوادم الأخرى ضمن مجموعة قابلية وصول عالية التوفر والتي ستستضيف نسخًا من قاعدة البيانات.

تشفير قرص Azure

بالإضافة إلى ميزات أمان SQL Server هذه، تشتمل أجهزة Azure الظاهرية على طبقة إضافية من الأمان، وهي تشفير قرص Azure - وهي ميزة تساعد في حماية البيانات وتأمينها وتلبية التزامات المؤسسة والامتثال. إذا كنت تستخدم TDE، فستتم حماية بياناتك بواسطة طبقات متعددة من التشفير باستخدام تشفير قرص Azure.