Oracle® đã giới thiệu tính năng Mã hóa dữ liệu minh bạch (TDE) trong mục đích bảo mật của Oracle 12C để cho phép người dùng kích hoạt mã hóa vùng bảng và cấp cột cho dữ liệu nhạy cảm.
Giới thiệu
Sau khi bạn mã hóa dữ liệu, chỉ những người dùng hoặc ứng dụng được ủy quyền mới có thể truy cập. Oracle sử dụng các công cụ và quy trình để xác thực, ủy quyền và kiểm tra cơ sở dữ liệu nhưng không sử dụng các tệp dữ liệu hệ điều hành lưu trữ dữ liệu.
Theo Hướng dẫn Bảo mật Nâng cao Cơ sở dữ liệu Oracle (ASOAG), “TDE mã hóa dữ liệu nhạy cảm được lưu trữ trong các tệp dữ liệu. Để ngăn giải mã trái phép, TDE lưu trữ các khóa mã hóa trong mô-đun bảo mật bên ngoài cơ sở dữ liệu, được gọi là kho khóa. ”
Đặc quyền TDE bắt buộc
Để định cấu hình TDE, hãy cấp cho người dùng SYSKM
đặc quyền quản trị. Sau đó ,ASOAG thông báo rằng bạn “tạo một tệp mật khẩu cho nó để người dùng có thể kết nối với cơ sở dữ liệu dưới dạng SYSKM bằng mật khẩu. … Để định cấu hình mã hóa cột TDE hoặc không gian bảng, bạn không cần đặc quyền SYSKM… ”. Tuy nhiên, ASOAG cho biết thêm rằng bạn cần có “các đặc quyền sau để mã hóa các cột bảng và không gian bảng:
- TẠO BẢNG
- BẢNG THAY THẾ
- TẠO TABLESPACE
- ALTER TABLESPACE (để mã hóa vùng bảng trực tuyến và ngoại tuyến)
- ALTER DATABASE (để mã hóa vùng bảng ngoại tuyến nhanh chóng) ”
Ngoài những đặc quyền này, bạn nên tạo một ví luôn mở để kích hoạtTDE. Ví còn được gọi là kho khóa trong 12c.
Hai loại TDE
Các phần sau đây mô tả hai loại TDE:
1. Mã hóa cột Mã hóa dữ liệu minh bạch
Điều này bảo vệ dữ liệu bí mật như thẻ tín dụng, số an sinh xã hội, v.v. được lưu trữ trong bảng. TheoASOAG, nó sử dụng “kiến trúc dựa trên khóa hai tầng để mã hóa và giải mã các cột nhạy cảm một cách minh bạch. Khóa mã hóa chính TDE được lưu trữ trong một mô-đun bảo mật bên ngoài, có thể là một kho khóa phần cứng hoặc phần mềm Oracle. Khóa mã hóa chính TDE này sẽ mã hóa và giải mã khóa bảng TDE, khóa này sẽ mã hóa và giải mã dữ liệu trong cột bảng. ”
Nguồn hình ảnh:https://docs.oracle.com/database/121/ASOAG/introduction-to-transparent-data-encryption.htm#ASOAG10137
2. Mã hóa vùng bảng mã hóa dữ liệu minh bạch
Tất cả các đối tượng được tạo trong vùng bảng được mã hóa đều được mã hóa tự động. Nó giúp youto mã hóa toàn bộ bảng hoặc nhiều cột .ASOAG thêm điều này:“Mã hóa vùng bảng TDE sử dụng kiến trúc hai tầng, dựa trên khóa để mã hóa (và giải mã) không gian bảng rõ ràng. Khóa mã hóa chính TDE được lưu trữ trong mô-đun bảo mật bên ngoài (kho khóa phần mềm hoặc phần cứng). Khóa mã hóa chính TDE này được sử dụng để mã hóa khóa mã hóa vùng bảng TDE, khóa này được sử dụng để mã hóa và giải mã dữ liệu trong vùng bảng. ”
Nguồn hình ảnh:https://docs.oracle.com/database/121/ASOAG/introduction-to-transparent-data-encryption.htm#ASOAG10137
Mục đích của TDE
ASOAG đề cập đến những lý do sau để sử dụng TDE:
- Để bảo mật dữ liệu nhạy cảm ngay cả khi ai đó đánh cắp phương tiện lưu trữ hoặc tệp dữ liệu.
- Để giúp chúng tôi giải quyết các vấn đề tuân thủ quy định liên quan đến bảo mật.
- Để tạo thêm phần bổ trợ hoặc khung nhìn để giải mã dữ liệu ứng dụng. Nó mã hóa dữ liệu bảng một cách minh bạch cho người dùng cơ sở dữ liệu và ứng dụng với ít hoặc không có thay đổi đối với ứng dụng.
- Người dùng DB và ứng dụng không cần biết rằng dữ liệu họ đang truy cập đã được mã hóa.
- Bạn có thể mã hóa dữ liệu mà không mất thời gian chết bằng cách sử dụng tính năng xác định lại trực tuyến hoặc mã hóa dữ liệu ở chế độ không trực tuyến.
- Bạn không cần bất kỳ thay đổi ứng dụng nào để xử lý dữ liệu được mã hóa. Cơ sở dữ liệu mã hóa và giải mã dữ liệu.
- Cơ sở dữ liệu Oracle tự động hóa khóa mã hóa chính TDE và các hoạt động quản lý kho khóa.
Định cấu hình TDE
Thực hiện các bước sau để định cấu hình TDE và ví:
-
Tạo ví hoặc vị trí kho khóa:
mkdir -p /u01/oracle/wallet
-
Cập nhật ví hoặc vị trí kho khóa trong 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)))
-
Tạo kho khóa:
SQL> ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/u01/oracle/wallet/' IDENTIFIED BY Oraclewallet#123 ; keystore altered. SQL> host ls /u01/oracle/wallet/ Oraclewallet.P12
-
Mở kho khóa:
SQL> ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY Oraclewallet#123; keystore altered.
-
Kích hoạt khóa:
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
-
Tạo một vùng bảng được mã hóa:
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
-
Tạo bảng có cột được mã hóa:
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
-
Bật autologin:
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
Đây là wallet_type là PASSWORD
. Mỗi khi khởi động lại cơ sở dữ liệu, bạn cần mở khóa hoặc ví một cách rõ ràng. Để tránh điều này, bạn có thể bật đăng nhập tự động, thao tác này sẽ tự động vận hành ví khi cơ sở dữ liệu khởi động lại.
Kết luận
TDE cho phép bạn bảo mật dữ liệu nhạy cảm cao. Ngay cả khi tệp dữ liệu hoặc bộ nhớ phương tiện bị lỗi, dữ liệu sẽ không có sẵn cho đến khi người dùng có khóa để giải mã.
Tìm hiểu thêm về các dịch vụ Cơ sở dữ liệu của chúng tôi.
Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.