آموزش رمزگذاری فایل‌های پشتیبان (Backup) در SQL Server

آموزش رمزگذاری فایل‌های پشتیبان (Backup) در SQL Server

برای رمزگذاری فایل‌های بکاپ در SQL Server، ابتدا بر روی سرورهای مورد نظر یک Master Key با گذرواژه‌ای قوی ایجاد کرده و سپس یک Certificate با نام مشخص، مانند smGK_BackupCertificate، وتاریخ انقضای بلندمدت را صادر کنید.

راهنمای جامع پیاده‌سازی رمزنگاری بکاپ‌ها در SQL Server با استفاده از Master Key و Certificate

مقدمه

امنیت اطلاعات در دنیای امروز یکی از مهم‌ترین دغدغه‌های سازمان‌ها محسوب می‌شود. یکی از جنبه‌های حیاتی امنیت داده‌ها، محافظت از فایل‌های پشتیبان (Backup) بانک‌های اطلاعاتی است. در این مقاله، به صورت گام‌به‌گام و کاملاً عملی، فرآیند پیاده‌سازی رمزنگاری فایل های بکاپ‌ها با استفاده از  SQL Server را در Master Key و Certificate آموزش خواهیم داد.

چرا رمزنگاری بکاپ‌ها ضروری است:

قبل از ورود به جزئیات فنی، بیایید به این سؤال پاسخ دهیم که چرا باید بکاپ‌های خود را رمزنگاری کنیم:

  • حفاظت از داده‌های حساس در برابر دسترسی غیرمجاز
  • تطابق با الزامات قانونی مانند GDPR، HIPAA و استانداردهای بانکی
  • امنیت در هنگام انتقال فایل‌های بکاپ به مراکز دیگر
  • جلوگیری از سوءاستفاده در صورت گم شدن یا سرقت فایل های  بکاپ

پیش‌نیازها

  • دسترسی به SQL Server از نسخه ۲۰۱۴ به بالا
  • دسترسی سطح بالای ادمینی (sysadmin) روی سرورهای هدف
  • مسیرهای ذخیره‌سازی مشخص برای فایل‌های کلید و گواهی

مرحله اول: ایجاد Master Key در سرورهای Primary

 Master Key اولین لایه از سلسله‌مراتب رمزنگاری در SQL Server است. این کلید برای محافظت از کلیدهای خصوصی و گواهی‌ها استفاده می‌شود.

اسکریپت ایجاد Master Key:

USE MASTER ;

GO

-- بررسی وجود Master Key قبل از ایجاد

IF NOT EXISTS (SELECT * FROM sys.symmetric_keys WHERE name LIKE '%Master%')

BEGIN

    CREATE MASTER KEY

    ENCRYPTION BY PASSWORD = 'Password';

    PRINT 'Master Key با موفقیت ایجاد شد.';

END

ELSE

BEGIN

    PRINT 'Master Key از قبل وجود دارد.';

END

GO

نکته مهم : پسورد تعیین شده را در یک مکان امن نگهداری کنید .

مرحله دوم : ایجاد Certificate بر روی سرور :

پس از ایجاد Master Key ، برای رمزگذاری بر روی فایل های Backup نوبت به ایجاد Certificate در SQL Server می باشد 

اسکریپت ایجاد Certificate:

USE MASTER ;

GO

-- در صورت وجود Certificate ابتدا آن را حذف میکنیم 

-- IF EXISTS (SELECT * FROM sys.certificates WHERE name = 'smGK_BackupCertificate')

-- DROP CERTIFICATE smGK_BackupCertificate;

-- GO

-- ایجاد Certificate جدید

CREATE CERTIFICATE smGK_BackupCertificate

WITH SUBJECT = 'smGK_BackupCertificate',

EXPIRY_DATE = '2030-12-31';  -- تاریخ انقضای بلندمدت برای جلوگیری از مشکلات دوره‌ای

GO

PRINT 'Certificate با نام smGK_BackupCertificate با موفقیت ایجاد شد.';

GO

توضیحات پارامترها:

  • SUBJECT : یک توضیح درباره Certificate می باشد و می تواند شالم هر رشته متنی باشد .
  • EXPIRY_DATE :تاریخ انقضا Certificate پیشنهاد می شود 5 سال در نظر گرفته شود .

مرحله سوم : بکاپ کیری از Certificate  و Master Key

برای استفاده از Certificate بر روی دیگر سرورهاباید از آن Backup گیری کنید و آن را در یک مسیر امن نگهداری کنید .

اسکریپت بکاپ‌گیری از Certificate:

USE MASTER;

GO

-- تعریف مسیرهای ذخیره‌سازی

DECLARE @CertPath NVARCHAR(500) = N'E:\GKKeys\';

DECLARE @CertFile NVARCHAR(500) = @CertPath + N'SMGK_BACKUP_CERTIFICATE.cer';

DECLARE @KeyFile NVARCHAR(500) = @CertPath + N'SMGK_BACKUP_CERTIFICATE_PRIVATE_KEY.key';

DECLARE @KeyPassword NVARCHAR(100) = N'Password';

-- بررسی وجود پوشه مقصد (در محیط واقعی باید از قبل ایجاد شده باشد)

PRINT 'شروع فرآیند بکاپ‌گیری از Certificate...';

BACKUP CERTIFICATE smGK_BackuCertificate

TO FILE = @CertFile

WITH PRIVATE KEY

(

    FILE = @KeyFile,

    ENCRYPTION BY PASSWORD = @KeyPassword

);

 

PRINT 'بکاپ Certificate با موفقیت ایجاد شد.';

PRINT 'مسیر فایل Certificate: ' + @CertFile;

PRINT 'مسیر فایل کلید خصوصی: ' + @KeyFile;

GO

توصیه‌های امنیتی مهم:

  1. مسیر E:\GKKeys\ باید از قبل ایجاد شده باشد
  2. دسترسی به این پوشه فقط برای ادمین‌های سیستم مجاز باشد
  3. از فایل‌های ایجاد شده، بکاپ جداگانه در محیطی امن تهیه کنید
  4. پسورد نیز باید در جای امن  نگهداری شود

مرحله چهارم تکرار فرآیند روی تمام سرورها:

مراحل یک تا سه باید روی تمامی سرورهای دیگر که قرار است بکاپ‌های آنها رمزنگاری شود، اجرا گردد .

 

💬 نظرات (0)

هنوز نظری ثبت نشده است. اولین نفری باشید که نظر می‌دهید!

📝 ثبت نظر جدید