Oracle® 12C-এ নিরাপত্তার উদ্দেশ্যে Transparent Data Encryption (TDE) ফিচার চালু করেছে যাতে ব্যবহারকারীরা সংবেদনশীল ডেটার জন্য টেবিলস্পেস এবং কলাম-লেভেল এনক্রিপশন সক্ষম করতে পারে।
ভূমিকা
ডেটা এনক্রিপ্ট করার পর, শুধু অনুমোদিত ব্যবহারকারী বা অ্যাপ্লিকেশনই এটিকে অ্যাক্সেস করতে পারে। Oracle ডাটাবেস অথেন্টিকেট, অথরাইজ এবং অডিট করার জন্য টুল এবং প্রসেস ব্যবহার করে কিন্তু OS ডেটা ফাইলগুলোকে নয় যেগুলো ডেটা সংরক্ষণ করে।
Oracle Database Advanced Security Guide (ASOAG) অনুযায়ী, "TDE ডেটা ফাইলে সংরক্ষিত সংবেদনশীল ডেটা এনক্রিপ্ট করে। অননুমোদিত ডিক্রিপশন প্রতিরোধ করতে, TDE এনক্রিপশন কি একটি সিকিউরিটি মডিউলে সংরক্ষণ করে যা ডাটাবেসের বাহিরে, যাকে কীস্টোর বলা হয়।"
প্রয়োজনীয় TDE প্রিভিলেজ
TDE কনফিগার করতে, ইউজারকে SYSKM অ্যাডমিনিস্ট্রেটিভ প্রিভিলেজ দিন। তারপর ASOAG সুপারিশ করে যে আপনি "এর জন্য একটি পাসওয়ার্ড ফাইল তৈরি করুন যাতে ইউজার পাসওয়ার্ড ব্যবহার করে ডাটাবেসে SYSKM হিসেবে কানেক্ট করতে পারে। ... TDE কলাম বা টেবিলস্পেস এনক্রিপশন কনফিগার করতে, আপনাকে SYSKM ... প্রিভিলেজ দরকার নেই।" যাইহোক, ASOAG যোগ করে যে টেবিল কলাম এবং টেবিলস্পেস এনক্রিপ্ট করার জন্য আপনাকে নিচের প্রিভিলেজগুলো দরকার:
- CREATE TABLE
- ALTER TABLE
- CREATE TABLESPACE
- ALTER TABLESPACE (অনলাইন এবং অফলাইন টেবিলস্পেস এনক্রিপশনের জন্য)
- ALTER DATABASE (ফাস্ট অফলাইন টেবিলস্পেস এনক্রিপশনের জন্য)"
এই প্রিভিলেজগুলোর পাশাপাশি, আপনাকে একটি ওয়ালেট তৈরি করা উচিত যা TDE সক্ষম করার জন্য সবসময় খোলা থাকবে। ওয়ালেটকে 12c-এ কীস্টোর-ও বলা হয়।
TDE-এর দুটি টাইপ
নিচের সেকশনগুলো TDE-এর দুটি টাইপ বর্ণনা করে:
১. Transparent Data Encryption কলাম এনক্রিপশন
এটি টেবিলে সংরক্ষিত গোপন ডেটা যেমন ক্রেডিট কার্ড, সোশ্যাল সিকিউরিটি নম্বর, এবং সকল রক্ষা করে। ASOAG অনুযায়ী, এটি "টু-টিয়ার্ড কি-ভিত্তিক আর্কিটেকচার ব্যবহার করে স্বচ্ছভাবে সংবেদনশীল টেবিল কলাম এনক্রিপ্ট এবং ডিক্রিপ্ট করতে। TDE মাস্টার এনক্রিপশন কি একটি এক্সটার্নাল সিকিউরিটি মডিউলে সংরক্ষিত থাকে, যা একটি Oracle সফটওয়্যার বা হার্ডওয়্যার কীস্টোর হতে পারে। এই TDE মাস্টার এনক্রিপশন কি TDE টেবিল কি এনক্রিপ্ট এবং ডিক্রিপ্ট করে, যাïque টেবিল কলামে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করে।"
ছবির উৎস: https://docs.oracle.com/database/121/ASOAG/introduction-to-transparent-data-encryption.htm#ASOAG10137
২. Transparent Data Encryption টেবিলস্পেস এনক্রিপশন
এনক্রিপ্টেড টেবিলস্পেসে তৈরি সমস্ত অবজেক্ট স্বয়ংক্রিয়ভাবে এনক্রিপ্ট হয়। এটি পুরো টেবিল বা একাধিক কলাম এনক্রিপ্ট করতে আপনাকে সাহায্য করে। ASOAG এটি যোগ করে: "TDE টেবিলস্পেস এনক্রিপশন টু-টিয়ার্ড, কি-ভিত্তিক আর্কিটেকচার ব্যবহার করে স্বচ্ছভাবে টেবিলস্পেস এনক্রিপ্ট (এবং ডিক্রিপ্ট) করে। TDE মাস্টার এনক্রিপশন কি একটি এক্সটার্নাল সিকিউরিটি মডিউলে সংরক্ষিত থাকে (সফটওয়্যার বা হার্ডওয়্যার কীস্টোর)। এই TDE মাস্টার এনক্রিপশন কি TDE টেবিলস্পেস এনক্রিপশন কি এনক্রিপ্ট করতে ব্যবহৃত হয়, যা بدوره টেবিলস্পেসে ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করতে ব্যবহৃত হয়।"
ছবির উৎস: https://docs.oracle.com/database/121/ASOAG/introduction-to-transparent-data-encryption.htm#ASOAG10137
TDE-এর উদ্দেশ্য
ASOAG TDE ব্যবহার করার নিচের কারণগুলো উল্লেখ করে:
- সensitivity ডেটা সিকিউর করতে এমনকি কেউ স্টোরেজ মিডিয়া বা ডেটা ফাইল চুরি করলেও।
- নিরাপত্তা-সম্পর্কিত রেগুলেটরি কমপ্লায়েন্স সমস্যা সমাধান করতে সাহায্য করতে।
- অ্যাপ্লিকেশন ডেটা ডিক্রিপ্ট করার জন্য অতিরিক্ত অ্যাক্সিলিয়ারি বা ভিউ তৈরি করতে। এটি ডাটাবেস ইউজার এবং অ্যাপ্লিকেশনের জন্য টেবিল ডেটা স্বচ্ছভাবে ডিক্রিপ্ট করে অ্যাপ্লিকেশনে কম বা কোনো পরিবর্তন ছাড়া।
- DB এবং অ্যাপ্লিকেশন ইউজারদের জানতে হবে না যে তারা যে ডেটা অ্যাক্সেস করছে সেটি এনক্রিপ্টেড।
- আপনি অনলাইন রিডিফিনিশন বা অফলাইন মোডে এনক্রিপ্ট করে ডাউনটাইম ছাড়া ডেটা এনক্রিপ্ট করতে পারেন।
- এনক্রিপ্টেড ডেটা হ্যান্ডেল করার জন্য আপনাকে কোনো অ্যাপ্লিকেশন পরিবর্তন দরকার নেই। ডাটাবেস ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করে।
- Oracle Database TDE মাস্টার এনক্রিপশন কি এবং কীস্টোর ম্যানেজমেন্ট অপারেশন অটোমেট করে।
TDE কনফিগার করুন
TDE এবং ওয়ালেট কনফিগার করতে নিচের ধাপগুলো সম্পাদন করুন:
-
একটি ওয়ালেট বা কীস্টোর লোকেশন তৈরি করুন:
mkdir -p /u01/oracle/wallet -
sqlnet.ora-এ ওয়ালেট বা কীস্টোর লোকেশন আপডেট করুন:
cat $ORACLE_HOME/network/admin/sqlnet.ora # sqlnet.ora Network Configuration File: /home/oracle/app/oracle/product/12.1.0/dbhome_1/network/admin/sqlnet.ora # Generated by Oracle configuration tools. NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) ENCRYPTION_WALLET_LOCATION = (SOURCE =(METHOD = FILE)(METHOD_DATA = (DIRECTORY = /u01/oracle/wallet))) -
কীস্টোর তৈরি করুন:
SQL> ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/u01/oracle/wallet/' IDENTIFIED BY Oraclewallet#123 ; keystore altered. SQL> host ls /u01/oracle/wallet/ Oraclewallet.P12 -
কীস্টোর খুলুন:
SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY Oraclewallet#123; keystore altered. -
কি এক্টিভেট করুন:
SQL> SET LINESIZE 100 SELECT con_id, key_id FROM v$encryption_keys;SQL> no rows selected SQL> ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY Oraclewallet#123 WITH BACKUP; keystore altered. SQL> SET LINESIZE 100 SELECT con_id, key_id FROM v$encryption_keys;SQL> CON_ID KEY_ID ---------- ------------------------------------------------------------------------------ 0 HTDRKP*%GRLOHNRWMrX2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAA SQL> SET LINESIZE 200 COLUMN wrl_parameter FORMAT A50 SELECT * FROM v$encryption_wallet; SQL> SQL> WRL_TYPE WRL_PARAMETER STATUS WALLET_TYPE WALLET_OR FULLY_BAC CON_ID -------------------- -------------------------------------------------- ------------------------------ -------------------- --------- --------- ---------- FILE /u01/oracle/wallet/ OPEN PASSWORD SINGLE NO 0 -
এনক্রিপ্টেড টেবিলস্পেস তৈরি করুন:
SQL> CREATE TABLESPACE ENCRYPTION_TEST datafile '/u01/oracle/app/oracle/oradata/db/encrytest.dbf' size 2G ENCRYPTION USING 'AES256' DEFAULT STORAGE(ENCRYPT); 2 3 4 Tablespace created. SQL> create table ENCRYPTION_EMP( empno Number(3), Name varchar(10) ) tablespace ENCRYPTION_TEST; 2 3 4 Table created. SQL> select tablespace_name,encrypted from dba_tablespaces where tablespace_name='ENCRYPTION_TEST'; TABLESPACE_NAME ENC ------------------------------ --- ENCRYPTION_TEST YES -
এনক্রিপ্টেড কলাম সহ একটি টেবিল তৈরি করুন:
SQL> CREATE TABLE employee ( first_name VARCHAR2(128), last_name VARCHAR2(128), empID NUMBER, salary NUMBER(6) ENCRYPT ); 2 3 4 5 6 Table created. SQL> select owner,table_name,column_name,encryption_alg from dba_encrypted_columns where table_name='EMPLOYEE'; OWNER TABLE_NAME COLUMN_NAME ENCRYPTION_A ---------- ------------ ------------ ----- RAJ EMPLOYEE SALARY AES 192 bits key -
অটোলগইন সক্ষম করুন:
SQL> SELECT * FROM v$encryption_wallet; WRL_TYPE WRL_PARAMETER STATUS WALLET_TYPE WALLET_OR FULLY_BAC CON_ID ---------- ------------------- ------------ --------------- ------------- ------------- ---------- FILE /u01/oracle/wallet/ OPEN PASSWORD SINGLE NO 0
এখানে wallet_type হলো PASSWORD। ডাটাবেস রিস্টার্ট করার 때마다, আপনাকে কি বা ওয়ালেট স্পষ্টভাবে খুলতে হবে। এটিকে এড়াতে, আপনি অটো লগইন সক্ষম করতে পারেন, যা ডাটাবেস রিস্টার্ট হলে ওয়ালেট স্বয়ংক্রিয়ভাবে খুলে দেয়।
উপসংহার
TDE আপনাকে অত্যন্ত সংবেদনশীল ডেটা সিকিউর করতে দেয়। এমনকি ডেটাফাইল বা মিডিয়া স্টোরেজ চুরি হলেও, ডেটা উপলব্ধ নেই যতক্ষণ না ব্যবহারকারীদের ডিক্রিপ্ট করার কি থাকে।
আমাদের ডাটাবেস সার্ভিস সম্পর্কে আরও জানুন।
ফিডব্যাক ট্যাব ব্যবহার করে যেকোনো মন্তব্য করুন বা প্রশ্ন জিজ্ঞাসা করুন। আপনি আমাদের সাথে কথোপকথনও শুরু করতে পারেন।