Transparent Data Encryption (TDE) এবং Column-Level Encryption গাইড ও নোট

Microsoft Technologies - এমএস এসকিউএল সার্ভার (MS SQl Server) - Data Encryption এবং Data Masking Techniques
272

SQL Server-এ Transparent Data Encryption (TDE) এবং Column-Level Encryption হল দুটি শক্তিশালী নিরাপত্তা কৌশল, যেগুলি ডেটাবেসের ডেটা সুরক্ষা নিশ্চিত করতে ব্যবহৃত হয়। এই দুটি পদ্ধতি ডেটাবেসের ডেটা এনক্রিপ্ট করে এবং অনুমোদিত ব্যবহারকারীদের জন্য ডেটা অ্যাক্সেস নিশ্চিত করে, তবে এগুলোর কাজের পদ্ধতি এবং ব্যবহার ক্ষেত্র আলাদা।


1. Transparent Data Encryption (TDE)

Transparent Data Encryption (TDE) হল SQL Server এর একটি নিরাপত্তা বৈশিষ্ট্য, যা ডেটাবেসের ফাইল স্তরে ডেটা এনক্রিপ্ট করে। এটি ডেটা স্টোরেজ (ডেটাবেস ফাইল) এবং ট্রানজেকশন লগ ফাইল (T-Log) এনক্রিপ্ট করে, যাতে ডেটাবেসের ডেটা বা ফাইল চুরি বা অনুপ্রবেশকারীদের হাত থেকে সুরক্ষিত থাকে। TDE ডেটাবেসের সমস্ত ডেটা এবং লগ ফাইল এনক্রিপ্ট করে, কিন্তু অ্যাপ্লিকেশন বা ব্যবহারকারীর কাছে এই এনক্রিপশন স্বচ্ছ (transparent) থাকে, অর্থাৎ ব্যবহারকারীরা এনক্রিপ্টেড ডেটা অ্যাক্সেস করতে কোনো বিশেষ পরিবর্তন বা কোডিং করতে হয় না।

1.1. TDE এর প্রধান সুবিধাসমূহ

  • Data-at-Rest Encryption: ডেটা যখন সার্ভারে স্টোর করা থাকে (ডেটা-অ্যাট-রেস্ট), তখন এটি এনক্রিপ্ট করা থাকে। ফলে, ডেটাবেস ফাইলের নিরাপত্তা সুরক্ষিত থাকে, যেমন: ফাইল সিস্টেম থেকে ডেটা চুরি বা কোনো ধরনের ডেটা লিকেজ হলে এনক্রিপশন তা অপ্রবিষ্ট করে দেয়।
  • Zero Impact on Applications: TDE ব্যবহারের ফলে অ্যাপ্লিকেশন বা ব্যবহারকারীদের জন্য কোনো কোড পরিবর্তন বা অ্যাক্সেস পদ্ধতিতে পরিবর্তন প্রয়োজন হয় না। এটি transparent
  • Key Management: TDE এর এনক্রিপশন প্রক্রিয়া ব্যবস্থাপনা সহজ। TDE দ্বারা ব্যবহৃত এনক্রিপশন কীগুলি SQL Server তে সেন্ট্রালাইজডভাবে ব্যবস্থাপনা করা যায়।

1.2. TDE কনফিগারেশন পদ্ধতি

  1. Database Encryption Key (DEK) তৈরি: প্রথমে একটি Database Encryption Key (DEK) তৈরি করতে হবে। এই কী ডেটাবেস এনক্রিপশন প্রক্রিয়ার জন্য ব্যবহৃত হবে।

    CREATE DATABASE ENCRYPTION KEY;
    
  2. Certificate তৈরি: TDE ব্যবহার করতে, একটি সার্টিফিকেট তৈরি করতে হয় যা DEK এর জন্য সার্ভারের এনক্রিপশন কীগুলি সংরক্ষণ করবে।

    CREATE CERTIFICATE MyTDECertificate
    WITH SUBJECT = 'TDE Certificate';
    
  3. Encryption চালু করা: ডেটাবেস এনক্রিপশন চালু করার জন্য, ALTER DATABASE কমান্ড ব্যবহার করা হয়।

    ALTER DATABASE [MyDatabase] SET ENCRYPTION ON;
    
  4. Backup এবং Recovery: TDE ব্যবহারের সময় সার্টিফিকেট এবং Database Encryption Key (DEK) এর ব্যাকআপ রাখা অত্যন্ত গুরুত্বপূর্ণ। এগুলি ব্যাকআপ ছাড়া, ডেটাবেস পুনরুদ্ধার করা যাবে না।

    BACKUP CERTIFICATE MyTDECertificate TO FILE = 'C:\Backup\MyTDECertificate.cer';
    

2. Column-Level Encryption

Column-Level Encryption হল SQL Server এর একটি ফিচার যা নির্দিষ্ট কলামগুলোর মধ্যে ডেটা এনক্রিপ্ট করার জন্য ব্যবহৃত হয়। এটি বিশেষ করে প্রয়োজনীয় তথ্য, যেমন: পাসওয়ার্ড, ক্রেডিট কার্ড নম্বর বা ব্যক্তিগত তথ্য, সুরক্ষিত রাখতে ব্যবহৃত হয়। Column-Level Encryption এর মাধ্যমে আপনি শুধুমাত্র সেই কলামগুলোর ডেটা এনক্রিপ্ট করতে পারবেন যেগুলোর জন্য আপনাকে সুরক্ষা দরকার।

2.1. Column-Level Encryption এর প্রধান সুবিধাসমূহ

  • Granular Encryption: আপনি টেবিলের পুরো ডেটাবেসের পরিবর্তে শুধুমাত্র নির্বাচিত কলামগুলোর জন্য এনক্রিপশন প্রয়োগ করতে পারবেন, যার ফলে সিস্টেমের পারফরম্যান্স ভালো থাকে।
  • Sensitive Data Protection: Column-Level Encryption অত্যন্ত উপযোগী যখন আপনি খুব সংবেদনশীল ডেটা (যেমন পাসওয়ার্ড, ক্রেডিট কার্ড ডেটা) এনক্রিপ্ট করতে চান।
  • Controlled Access: শুধুমাত্র নির্দিষ্ট ব্যবহারকারীরা বা অ্যাপ্লিকেশনই এনক্রিপ্টেড ডেটা ডিক্রিপ্ট করতে সক্ষম হবে, অন্যরা তা দেখতে পারবে না।

2.2. Column-Level Encryption কনফিগারেশন পদ্ধতি

  1. Symmetric Key তৈরি করা: প্রথমে একটি Symmetric Key তৈরি করতে হবে যেটি কলাম এনক্রিপশন এবং ডিক্রিপশনের জন্য ব্যবহৃত হবে। Symmetric keys একই কী দিয়ে ডেটা এনক্রিপ্ট ও ডিক্রিপ্ট করা সম্ভব।

    CREATE DATABASE ENCRYPTION KEY;
    CREATE SYMMETRIC KEY MySymmetricKey
    WITH ALGORITHM = AES_256
    ENCRYPTION BY PASSWORD = 'YourStrongPassword';
    
  2. Column Data এনক্রিপ্ট করা: একটি কলাম বা তার ভ্যালু এনক্রিপ্ট করতে, ENCRYPTBYKEY ফাংশন ব্যবহার করতে হবে।

    OPEN SYMMETRIC KEY MySymmetricKey
    DECRYPTION BY PASSWORD = 'YourStrongPassword';
    
    UPDATE Employees
    SET SSN = ENCRYPTBYKEY(KEY_GUID('MySymmetricKey'), SSN)
    WHERE EmployeeID = 1;
    
  3. Column Data ডিক্রিপ্ট করা: এনক্রিপ্ট করা ডেটাকে ডিক্রিপ্ট করতে, DECRYPTBYKEY ফাংশন ব্যবহার করা হয়।

    SELECT EmployeeID, 
           CONVERT(VARCHAR, DECRYPTBYKEY(SSN)) AS DecryptedSSN
    FROM Employees;
    
  4. Key Management: Column-Level Encryption এর সময়, কী ম্যানেজমেন্ট অত্যন্ত গুরুত্বপূর্ণ। অ্যাপ্লিকেশন বা ব্যবহারকারী কী সম্পর্কে জানবে না, তবে ডেটা ডিক্রিপ্ট করার জন্য সঠিক কী প্রাপ্তি জরুরি।

3. TDE এবং Column-Level Encryption এর মধ্যে পার্থক্য

বৈশিষ্ট্যTransparent Data Encryption (TDE)Column-Level Encryption
এনক্রিপশন স্তরসম্পূর্ণ ডেটাবেস স্তরেনির্দিষ্ট কলাম স্তরে
কনফিগারেশনসহজ, সার্ভার বা ডেটাবেস স্তরে কাজ করেনির্দিষ্ট কলামের জন্য ইনডিভিজুয়াল কনফিগারেশন
পারফরম্যান্সকিছুটা পারফরম্যান্স ইফেক্ট থাকতে পারেকলামভিত্তিক এনক্রিপশন পারফরম্যান্সে কম প্রভাব ফেলে
ব্যবহারডেটাবেসের ফাইল এবং লোগ এনক্রিপশনসংবেদনশীল ডেটার এনক্রিপশন
ব্যবহারের ক্ষেত্রেপুরো ডেটাবেসের সুরক্ষাশুধুমাত্র সংবেদনশীল ডেটার সুরক্ষা
ডিক্রিপশনস্বচ্ছ (Transparent), কোনো কোড পরিবর্তন ছাড়াইপ্রোগ্রামmatically ডিক্রিপ্ট করা প্রয়োজন

সারাংশ

TDE হল একটি সার্বিক ডেটাবেস এনক্রিপশন পদ্ধতি যা ডেটাবেসের সকল ডেটা, লোগ ফাইল এবং ট্রানজেকশন লগকে এনক্রিপ্ট করে, তবে এর জন্য অ্যাপ্লিকেশন বা ব্যবহারকারীর কোনো পরিবর্তন করতে হয় না। অন্যদিকে, Column-Level Encryption শুধুমাত্র নির্বাচিত কলামগুলোর জন্য এনক্রিপশন প্রদান করে, যা বেশি প্রাসঙ্গিক যখন আপনার সংবেদনশীল ডেটা সুরক্ষিত করতে হয়। তবে, Column-Level Encryption-এ কী ম্যানেজমেন্ট বেশি গুরুত্বপূর্ণ এবং ডিক্রিপশনও প্রোগ্রাম্যাটিকভাবে করতে হয়।

Content added By
Promotion

Are you sure to start over?

Loading...