Data-at-Rest এবং Data-in-Transit এনক্রিপশন দুটি গুরুত্বপূর্ণ নিরাপত্তা কৌশল, যা ডেটাবেসের নিরাপত্তা নিশ্চিত করতে ব্যবহৃত হয়। মারিয়া ডিবি (MariaDB) তে এই দুই ধরনের এনক্রিপশন ব্যবহৃত হয় ডেটার অখণ্ডতা এবং গোপনীয়তা রক্ষার জন্য।
Data-at-Rest এনক্রিপশন
Data-at-Rest হলো সেই ডেটা যা স্টোরেজ মিডিয়াতে (যেমন, হার্ড ড্রাইভ, SSD, বা অন্য কোনো স্থায়ী মিডিয়া) সংরক্ষিত থাকে এবং যে ডেটার সাথে আর কোনো সক্রিয় কাজ বা প্রক্রিয়া চলছে না। অর্থাৎ, ডেটা যখন ডেটাবেস থেকে রিড বা রাইট না হয়ে সংরক্ষিত থাকে, তখন সেটি Data-at-Rest হিসেবে পরিচিত।
Data-at-Rest এনক্রিপশন কী?
Data-at-Rest এনক্রিপশন হল সেই প্রক্রিয়া যেখানে সংরক্ষিত ডেটা এনক্রিপ্ট করা হয় যাতে ডেটার গোপনীয়তা রক্ষা পায় এবং যদি সেই ডেটা হ্যাকার বা অননুমোদিত ব্যবহারকারীর হাতে চলে যায়, তবে তারা সেটি অ্যাক্সেস বা ব্যবহার করতে না পারে।
মারিয়া ডিবি তে Data-at-Rest এনক্রিপশন সাধারণত InnoDB স্টোরেজ ইঞ্জিনের সাথে কনফিগার করা হয়। এতে ডেটাবেস টেবিলের ডেটা, লগ ফাইল এবং অন্যান্য স্টোরেজ ফাইলগুলো এনক্রিপ্ট করা হয়।
Data-at-Rest এনক্রিপশন কনফিগারেশন
মারিয়া ডিবি তে Data-at-Rest এনক্রিপশন সক্রিয় করতে নিম্নলিখিত কনফিগারেশন ফাইলের মধ্যে এনক্রিপশন সেটিংস যোগ করা হয়:
[mysqld]
# Enable encryption at rest
innodb_encrypt_tables = 1
innodb_encrypt_log = 1
innodb_encrypt_temporary_tables = 1
innodb_encryption_threads = 4
# Encryption key management (Using file-based key)
keyring_file_data = /path/to/keyring-file
এখানে:
- innodb_encrypt_tables: সমস্ত InnoDB টেবিল এনক্রিপ্ট করার জন্য সক্রিয় করা হয়।
- innodb_encrypt_log: ইননডিবি লোগ ফাইল এনক্রিপ্ট করে।
- innodb_encrypt_temporary_tables: অস্থায়ী টেবিলগুলোও এনক্রিপ্ট করা হয়।
- innodb_encryption_threads: এনক্রিপশনের জন্য ব্যবহৃত থ্রেডের সংখ্যা।
- keyring_file_data: এনক্রিপশন কী সংরক্ষণের জন্য ফাইলের অবস্থান।
Key Management
এনক্রিপশন কী সঠিকভাবে ম্যানেজ করা অত্যন্ত গুরুত্বপূর্ণ। মারিয়া ডিবি Keyring ব্যবস্থার মাধ্যমে কী ম্যানেজমেন্ট সমর্থন করে, যা ডেটা এনক্রিপশনের জন্য কী স্টোর করে এবং ডেটাবেসে প্রয়োগ করে।
Data-in-Transit এনক্রিপশন
Data-in-Transit হলো সেই ডেটা যা নেটওয়ার্কের মাধ্যমে এক জায়গা থেকে অন্য জায়গায় পাঠানো হয়। এটি হতে পারে ক্লায়েন্ট এবং সার্ভার বা দুইটি ডেটাবেসের মধ্যে ডেটা ট্রান্সফার। ডেটা যখন ট্রান্সমিট হচ্ছে, তখন এটি সহজেই মাঝপথে পড়তে পারে, যদি নেটওয়ার্ক সুরক্ষিত না হয়। তাই Data-in-Transit এনক্রিপশন খুবই গুরুত্বপূর্ণ।
Data-in-Transit এনক্রিপশন কী?
Data-in-Transit এনক্রিপশন হল সেই প্রক্রিয়া যা ডেটাকে নেটওয়ার্কের মাধ্যমে পাঠানোর সময় এনক্রিপ্ট করে, যাতে মাঝপথে ডেটাটি পড়া বা পরিবর্তন করা না যায়। সাধারণত, SSL/TLS (Secure Sockets Layer / Transport Layer Security) প্রোটোকল ব্যবহার করে এই এনক্রিপশন করা হয়।
মারিয়া ডিবি তে SSL/TLS এনক্রিপশন ব্যবহার করে আপনি ক্লায়েন্ট এবং সার্ভারের মধ্যে নিরাপদ ডেটা ট্রান্সমিশন নিশ্চিত করতে পারেন।
Data-in-Transit এনক্রিপশন কনফিগারেশন
SSL/TLS এনক্রিপশনের জন্য মারিয়া ডিবি তে নিম্নলিখিত কনফিগারেশনটি করতে হবে:
[mysqld]
# Enable SSL encryption for connections
ssl-ca = /path/to/ca-cert.pem
ssl-cert = /path/to/server-cert.pem
ssl-key = /path/to/server-key.pem
এখানে:
- ssl-ca: সার্ভার কর্তৃক ব্যবহৃত CA (Certificate Authority) সার্টিফিকেটের পথ।
- ssl-cert: সার্ভারের সার্টিফিকেট ফাইল।
- ssl-key: সার্ভারের প্রাইভেট কী ফাইল।
এটি ক্লায়েন্ট এবং সার্ভারের মধ্যে নিরাপদ সংযোগ তৈরি করবে, যা SSL/TLS এনক্রিপশন দিয়ে ডেটা ট্রান্সমিট করবে।
ক্লায়েন্টে SSL/TLS এনক্রিপশন কনফিগারেশন
ক্লায়েন্টের সংযোগেও SSL/TLS এনক্রিপশন সক্রিয় করতে হবে:
mysql -u username -p --ssl-ca=/path/to/ca-cert.pem --ssl-cert=/path/to/client-cert.pem --ssl-key=/path/to/client-key.pem
এটি ক্লায়েন্টকে SSL/TLS এনক্রিপশন ব্যবহার করে সার্ভারের সাথে সংযুক্ত করবে।
Data-at-Rest এবং Data-in-Transit এনক্রিপশন একসাথে ব্যবহারের গুরুত্ব
যতটা গুরুত্বপূর্ণ Data-at-Rest এনক্রিপশন, ঠিক ততটাই গুরুত্বপূর্ণ Data-in-Transit এনক্রিপশন। একসাথে এই দুটি এনক্রিপশন ব্যবহারের মাধ্যমে আপনি ডেটার নিরাপত্তা অনেক বেশি নিশ্চিত করতে পারেন:
- Data-at-Rest এনক্রিপশন: ডেটা যখন ডিস্কে সংরক্ষিত থাকে, তখন তা এনক্রিপ্ট করা থাকে, যাতে কোনো অননুমোদিত ব্যক্তি বা হ্যাকার ডেটা অ্যাক্সেস করতে না পারে।
- Data-in-Transit এনক্রিপশন: ডেটা যখন নেটওয়ার্কের মাধ্যমে এক জায়গা থেকে অন্য জায়গায় যায়, তখন তা এনক্রিপ্ট থাকে, যাতে ট্রান্সমিশন চলাকালীন সময়ে ডেটা পড়া বা পরিবর্তন করা না যায়।
এই দুটি এনক্রিপশন ব্যবস্থা একসাথে ব্যবহৃত হলে আপনার ডেটাবেসের নিরাপত্তা অনেক বেশি বাড়ে এবং এটি বিভিন্ন নিরাপত্তা স্ট্যান্ডার্ড এবং নিয়ন্ত্রক বিধি (যেমন GDPR, HIPAA) পূরণ করতে সাহায্য করে।
সারাংশ
Data-at-Rest এবং Data-in-Transit এনক্রিপশন মারিয়া ডিবি তে গুরুত্বপূর্ণ নিরাপত্তা ব্যবস্থা যা ডেটার গোপনীয়তা এবং অখণ্ডতা রক্ষা করতে সাহায্য করে। Data-at-Rest এনক্রিপশন ডেটা স্টোরেজে সংরক্ষিত থাকাকালে এনক্রিপ্ট করার মাধ্যমে নিরাপত্তা নিশ্চিত করে, এবং Data-in-Transit এনক্রিপশন নেটওয়ার্কের মাধ্যমে ডেটা ট্রান্সফার করার সময় এর নিরাপত্তা নিশ্চিত করে। এই দুটি এনক্রিপশন একসাথে ব্যবহৃত হলে ডেটাবেসের নিরাপত্তা আরও বেশি শক্তিশালী হয়ে ওঠে।
Read more