Oracle® ने सुरक्षा उद्देश्यों के लिए Oracle 12C में पारदर्शी डेटा एन्क्रिप्शन (TDE) सुविधा पेश की, ताकि उपयोगकर्ता संवेदनशील डेटा के लिए टेबल स्पेस और कॉलम-स्तरीय एन्क्रिप्शन को सक्षम कर सकें।
परिचय
आपके द्वारा डेटा एन्क्रिप्ट करने के बाद, केवल अधिकृत उपयोगकर्ता या एप्लिकेशन ही इसे एक्सेस कर सकते हैं। Oracle डेटाबेस को प्रमाणित करने, अधिकृत करने और ऑडिट करने के लिए टूल और प्रक्रियाओं का उपयोग करता है लेकिन डेटा को संग्रहीत करने वाली OS डेटाफ़ाइल्स का नहीं।
Oracle डेटाबेस एडवांस्ड सिक्योरिटी गाइड (ASOAG) के अनुसार, “TDE डेटा फ़ाइलों में संग्रहीत संवेदनशील डेटा को एन्क्रिप्ट करता है। अनधिकृत डिक्रिप्शन को रोकने के लिए, टीडीई एन्क्रिप्शन कुंजी को डेटाबेस के बाहर एक सुरक्षा मॉड्यूल में संग्रहीत करता है, जिसे कीस्टोर कहा जाता है।"
आवश्यक TDE विशेषाधिकार
TDE को कॉन्फ़िगर करने के लिए, उपयोगकर्ता को SYSKM
प्रदान करें प्रशासनिक विशेषाधिकार। तब ASOAG अनुशंसा करता है कि आप "इसके लिए एक पासवर्ड फ़ाइल बनाएँ ताकि उपयोगकर्ता पासवर्ड का उपयोग करके SYSKM के रूप में डेटाबेस से जुड़ सके। ... TDE कॉलम या टेबलस्पेस एन्क्रिप्शन को कॉन्फ़िगर करने के लिए, आपको SYSKM ... विशेषाधिकार की आवश्यकता नहीं है।" हालांकि, एएसओएजी ने कहा है कि आपको टेबल कॉलम और टेबल स्पेस को एन्क्रिप्ट करने के लिए निम्नलिखित "विशेषाधिकारों की आवश्यकता है:
- तालिका बनाएं
- तालिका बदलें
- टेबलस्पेस बनाएं
- टेबल स्पेस बदलें (ऑनलाइन और ऑफलाइन टेबलस्पेस एन्क्रिप्शन के लिए)
- डेटाबेस बदलें (तेज़ ऑफ़लाइन टेबलस्पेस एन्क्रिप्शन के लिए)”
इन विशेषाधिकारों के अलावा, आपको एक वॉलेट बनाना चाहिए जो हमेशा सक्षम करने के लिए खुला होना चाहिए। वॉलेट को कीस्टोर . के नाम से भी जाना जाता है 12 सी में।
दो प्रकार के TDE
निम्नलिखित अनुभाग दो प्रकार के TDE का वर्णन करते हैं:
1. पारदर्शी डेटा एन्क्रिप्शन कॉलम एन्क्रिप्शन
यह तालिका में संग्रहीत गोपनीय डेटा जैसे क्रेडिट कार्ड, सामाजिक सुरक्षा नंबर आदि की सुरक्षा करता है। ASOAG के अनुसार, यह संवेदनशील कॉलम को पारदर्शी रूप से एन्क्रिप्ट और डिक्रिप्ट करने के लिए "दो-स्तरीय कुंजी-आधारित आर्किटेक्चर का उपयोग करता है। TDE मास्टर एन्क्रिप्शन कुंजी एक बाहरी सुरक्षा मॉड्यूल में संग्रहीत है, जो एक Oracle सॉफ़्टवेयर या हार्डवेयर कीस्टोर हो सकता है। यह TDE मास्टर एन्क्रिप्शन कुंजी TDE तालिका कुंजी को एन्क्रिप्ट और डिक्रिप्ट करती है, जो बदले में तालिका कॉलम में डेटा को एन्क्रिप्ट और डिक्रिप्ट करती है।"
छवि स्रोत:https://docs.oracle.com/database/121/ASOAG/introduction-to-transparent-data-encryption.htm#ASOAG10137
2. पारदर्शी डेटा एन्क्रिप्शन टेबलस्पेस एन्क्रिप्शन
एन्क्रिप्टेड टेबलस्पेस में बनाए गए सभी ऑब्जेक्ट स्वचालित रूप से एन्क्रिप्ट किए जाते हैं। यह आपको संपूर्ण तालिका या एकाधिक स्तंभों को एन्क्रिप्ट करने में मदद करता है। ASOAG इसे जोड़ता है:“TDE टेबलस्पेस एन्क्रिप्शन दो-स्तरीय, कुंजी-आधारित आर्किटेक्चर का उपयोग पारदर्शी रूप से एन्क्रिप्ट (और डिक्रिप्ट) टेबल स्पेस के लिए करता है। TDE मास्टर एन्क्रिप्शन कुंजी एक बाहरी सुरक्षा मॉड्यूल (सॉफ़्टवेयर या हार्डवेयर कीस्टोर) में संग्रहीत होती है। इस TDE मास्टर एन्क्रिप्शन कुंजी का उपयोग TDE टेबलस्पेस एन्क्रिप्शन कुंजी को एन्क्रिप्ट करने के लिए किया जाता है, जिसका उपयोग टेबलस्पेस में डेटा को एन्क्रिप्ट और डिक्रिप्ट करने के लिए किया जाता है।"
छवि स्रोत:https://docs.oracle.com/database/121/ASOAG/introduction-to-transparent-data-encryption.htm#ASOAG10137
TDE का उद्देश्य
ASOAG TDE का उपयोग करने के लिए निम्नलिखित कारणों का उल्लेख करता है:
- संवेदी डेटा को सुरक्षित करने के लिए भले ही कोई स्टोरेज मीडिया या डेटा फ़ाइल चुरा ले।
- सुरक्षा से संबंधित नियामक अनुपालन मुद्दों को हल करने में हमारी मदद करने के लिए।
- एप्लिकेशन डेटा को डिक्रिप्ट करने के लिए अतिरिक्त सहायक या दृश्य बनाने के लिए। यह डेटाबेस उपयोगकर्ता और एप्लिकेशन के लिए टेबल डेटा को पारदर्शी रूप से डिक्रिप्ट करता है जिसमें एप्लिकेशन में बहुत कम या कोई बदलाव नहीं होता है।
- DB और एप्लिकेशन उपयोगकर्ताओं को यह जानने की आवश्यकता नहीं है कि वे जो डेटा एक्सेस कर रहे हैं वह एन्क्रिप्टेड है।
- आप ऑनलाइन पुनर्परिभाषा का उपयोग करके या इसे इनऑफ़लाइन मोड में एन्क्रिप्ट करके बिना डाउनटाइम के डेटा एन्क्रिप्ट कर सकते हैं।
- एन्क्रिप्टेड डेटा को संभालने के लिए आपको किसी एप्लिकेशन परिवर्तन की आवश्यकता नहीं है। डेटाबेस डेटा को एन्क्रिप्ट और डिक्रिप्ट करता है।
- Oracle डेटाबेस 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
यहां वॉलेट_प्रकार PASSWORD
है . हर बार जब आप डेटाबेस को पुनरारंभ करते हैं, तो आपको कुंजी या वॉलेट को स्पष्ट रूप से खोलने की आवश्यकता होती है। इससे बचने के लिए, आप ऑटो लॉगिन को सक्षम कर सकते हैं, जो डेटाबेस के पुनरारंभ होने पर स्वचालित रूप से वॉलेट खुल जाता है।
निष्कर्ष
TDE आपको अत्यधिक संवेदनशील डेटा सुरक्षित करने की अनुमति देता है। भले ही डेटाफ़ाइल या मीडिया संग्रहण चोरी हो गया हो, डेटा तब तक उपलब्ध नहीं होता जब तक कि उपयोगकर्ताओं के पास इसे डिक्रिप्ट करने की कुंजी न हो।
हमारी डेटाबेस सेवाओं के बारे में अधिक जानें।
कोई टिप्पणी करने या प्रश्न पूछने के लिए प्रतिक्रिया टैब का उपयोग करें। आप हमारे साथ बातचीत भी शुरू कर सकते हैं।