Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Cơ Sở Dữ Liệu

Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Blog này bao gồm các yếu tố thiết yếu về cách sử dụng advanced security option để bảo mật dữ liệu nhạy cảm trong Oracle® database bằng Transparent Data Encryption (TDE). Tính năng này cho phép bạn mã hóa cột database và quản lý encryption key.

Giới thiệu

TDE cho phép mã hóa dữ liệu database nhạy cảm, được lưu trữ trong file hệ điều hành. Nó cung cấp lưu trữ an toàn và quản lý encryption key trong security module nằm bên ngoài database.

Dữ liệu được mã hóa được giải mã minh bạch (transparently decrypted) cho database user có quyền truy cập dữ liệu. TDE lưu trữ encryption key trong security module bên ngoài database.

Tại sao dùng TDE?

Nếu kẻ trộm đánh cắp backup tape của database, và restore nó trên server của họ, họ có quyền truy cập vào dữ liệu nhạy cảm nhất của công ty. Đây là rủi ro không thể chấp nhận được. Hầu hết quy định và hướng dẫn của công ty coi việc bảo vệ dữ liệu database là yêu cầu tuân thủ (compliance requirement). Làm thế nào bạn có thể bảo vệ database của mình khỏi lỗ hổng này?

Một giải pháp là mã hóa dữ liệu nhạy cảm trong database và lưu encryption key ở vị trí riêng biệt. Không có key, bất kỳ dữ liệu bị đánh cắp nào cũng vô giá trị.

TDE hoạt động như thế nào?

TDE là hệ thống kiểm soát truy cập dựa trên key (key-based access control system). Ngay cả khi dữ liệu được mã hóa bị lấy cắp, nó vô dụng nếu không có authorized decryption, xảy ra tự động cho user được phép truy cập bảng.

Đối với bảng chứa cột được mã hóa, encryption key được gọi là column encryption key. Column encryption key của mỗi bảng được mã hóa với master key của database server. Master encryption key được lưu trữ bên ngoài database trong Oracle Wallet.

Encrypted table key được đặt trong data dictionary. Khi user nhập dữ liệu vào cột được định nghĩa là encrypted, Oracle thực hiện các tác vụ sau:

  1. Nó lấy master key từ wallet.
  2. Nó giải mã encryption key cho bảng đó từ data dictionary.
  3. Nó dùng encryption key đó trên giá trị đầu vào.
  4. Nó lưu trữ dữ liệu được mã hóa trong database.
Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Nguồn hình ảnh: https://docs.oracle.com/database/121/ASOAG/img/GUID-5FD3A3BB-441C-4C42-A520-1248974627B0-default.png

TDE mã hóa dữ liệu trong các file database sau:

  • Datafile
  • Redo log và archive log files
  • Memory
  • File backup

Quản lý Oracle Wallet

Phần này mô tả tạo, mở, và đóng wallet.

Tạo wallet

Khi bạn lần đầu bật TDE, bạn phải tạo wallet nơi master key được lưu trữ.

Mặc định, wallet được tạo trong $ORACLE_BASE/admin/$ORACLE_SID/wallet, nhưng bạn có thể đặt vị trí khác bằng cách chỉ định nó trong sqlnet.ora trong các dòng sau:

ENCRYPTION_WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY =D:\oracle\product\Wallet))) 

Tiếp theo, chạy lệnh sau để tạo wallet:

ALTER SYSTEM SET ENCRYPTION KEY [certificate_ID] IDENTIFIED BY password; 
Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)
  • Wallet password phân biệt chữ hoa/chữ thường (case sensitive). Đặt chuỗi password trong dấu ngoặc kép (" “).

  • Certificate_ID là chuỗi tùy chọn chứa unique identifier của certificate được lưu trong Oracle wallet. Bạn có thể tìm certificate_ID bằng cách truy vấn fixed view V$WALLET khi wallet đang mở.

Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Mở và đóng wallet

Sau khi bạn tạo wallet và đặt password, bạn cần mở wallet một cách rõ ràng bằng cách dùng tài khoản SYS, SYSTEM, hoặc SYSDBA mỗi khi bạn khởi động database.

Ví dụ, chạy lệnh sau:

alter system set encryption wallet open identified by "oracle12345"; 

Quan trọng: Để thực hiện bất kỳ hành động nào trên database, bạn phải mở wallet.

Ví dụ sau minh họa thao tác database nơi database đang up nhưng wallet đóng:

alter system set encryption wallet close; 
Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Bây giờ, nếu bạn cố gắng truy xuất dữ liệu từ cột được mã hóa, thông báo lỗi sau hiển thị vì wallet đang đóng:

Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Để truy xuất dữ liệu từ cột được mã hóa, bạn cần mở wallet bằng lệnh sau:

alter system set encryption wallet open identified by "oracle12345"; 
Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Bây giờ bạn có thể truy xuất dữ liệu từ cột được mã hóa vì wallet đang mở.

Tạo bảng với cột được mã hóa

Dùng lệnh sau để tạo bảng với cột được mã hóa:

CREATE TABLE test2 (id number,name varchar2(20),s_s_num number ENCRYPT); 
Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Tạo bảng dùng thuật toán non-default và tùy chọn NO SALT

SALT là chuỗi ngẫu nhiên được thêm vào dữ liệu trước khi mã hóa để làm cho nó an toàn hơn và khó hack hơn. Mặc định, TDE thêm SALT vào cleartext trước khi mã hóa.

Bạn không thể tạo index trên cột được mã hóa với tùy chọn SALT. Nếu bạn muốn thêm index trên cột được mã hóa, bạn phải dùng tùy chọn NO SALT như ví dụ sau:

CREATE TABLE test3 (id number,name varchar2(20),s_s_num number ENCRYPT NO SALT,Ph_no number ENCRYPT USING '3DES168'); 
Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Ở đây, cột S_S_NUM được mã hóa với tùy chọn NO SALT và cột PH_NO được tạo với tùy chọn SALT mặc định.

Ví dụ sau cho thấy bạn không thể tạo index trên cột PH_NO vì bạn tạo nó với tùy chọn SALT mặc định.

Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Mã hóa cột trong bảng hiện có

Lệnh sau mã hóa cột trong bảng hiện có:

ALTER TABLE test1 ADD (ssn VARCHAR2(11) ENCRYPT); 
Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Vô hiệu hóa mã hóa trên cột

Lệnh sau vô hiệu hóa mã hóa trên cột:

ALTER TABLE test1 MODIFY (ssn DECRYPT); 
Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Hạn chế khi dùng TDE

Hãy nhớ các hạn chế sau khi dùng TDE:

  • Bạn không thể tạo bất kỳ index nào khác ngoài B-tree trên cột được mã hóa.
Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)
  • Mã hóa không được phép trên external large objects (BFILE).
Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)
  • Bạn không thể thực hiện import hoặc export operation nếu wallet đóng.

Lỗi vì wallet đóng

Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Thành công vì wallet mở

Tăng cường bảo mật Oracle Database với Transparent Data Encryption (TDE)

Kết luận

Nếu bạn cần bảo mật dữ liệu nhạy cảm khỏi truy cập trái phép, hoặc back-door access, hãy dùng tùy chọn bảo mật TDE. Tính năng này cho phép bạn cung cấp data encryption và compliance ngay lập tức mà không cần coding và phức tạp key management. Do đó, nó cho phép bạn tập trung vào các nỗ lực chiến lược hơn.

Sử dụng tab Feedback để đưa ra bình luận hoặc đặt câu hỏi.

Tối ưu môi trường của bạn với quản trị, quản lý và cấu hình chuyên nghiệp

Các chuyên gia Dịch vụ ứng dụng của Rackspace (RAS) cung cấp các dịch vụ chuyên nghiệp và được quản lý sau đây trên danh mục ứng dụng rộng:

  • Nền tảng eCommerce và Trải nghiệm số
  • Quản trị nguồn lực doanh nghiệp (ERP)
  • Business Intelligence
  • Salesforce Quản trị quan hệ khách hàng (CRM)
  • Databases
  • Lưu trữ Email và Năng suất

Chúng tôi cung cấp:

  • Chuyên môn khách quan: Chúng tôi đơn giản hóa và hướng dẫn hành trình hiện đại hóa của bạn, tập trung vào các khả năng mang lại giá trị ngay lập tức.
  • Fanatical Experience™: Chúng tôi kết hợp phương pháp Process first. Technology second.® với hỗ trợ kỹ thuật chuyên dụng để cung cấp giải pháp toàn diện.
  • Danh mục không đối thủ: Chúng tôi áp dụng kinh nghiệm đám mây rộng lớn để giúp bạn chọn và triển khai công nghệ phù hợp trên đám mây phù hợp.
  • Giao hàng Agile: Chúng tôi gặp gỡ bạn ở bất kỳ đâu trong hành trình của bạn và điều chỉnh thành công của chúng tôi với của bạn.

Chat ngay để bắt đầu.