Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Mã hóa dữ liệu minh bạch với Oracle EBS

Blog này thảo luận về việc thiết lập mã hóa cấp độ cột Mã hóa dữ liệu minh bạch (TDE) trong môi trường Oracle® E-Business Suite® (EBS) R12. Bạn có thể thiết lập mã hóa mức cột trên các bảng một cột hoặc nhiều cột, tùy thuộc vào yêu cầu của người dùng.

Giới thiệu

Bạn có thể sử dụng chức năng mã hóa cột TDE để mã hóa các cột đã chọn của bảng. Vì mã hóa minh bạch, bạn không cần phải viết lại mã ứng dụng của mình và có thể sử dụng mã hiện có. Thuật ngữ minh bạch cũng có nghĩa là phiên cơ sở dữ liệu có thể đọc dữ liệu được mã hóa mà không gặp bất kỳ sự cố nào.

Sau khi xem qua các hướng dẫn trong blog này, bạn có thể thiết lập mã hóa cấp cột TDE trong môi trường EBS R12.

Tác động của TDE

Việc triển khai mã hóa TDE của bạn có thể có tác động đến khía cạnh sau của các ứng dụng của bạn:

  • Hiệu suất:Một số hạn chế nhất định trong việc triển khai TDE được ghi lại trong Hướng dẫn Bảo mật Phần mềm. Bạn nên xem lại điều này trước khi thực hiện TDE. Bạn cũng nên chọn các cột để mã hóa một cách cẩn thận vì lựa chọn này ảnh hưởng đến hiệu suất của Ngôn ngữ thao tác dữ liệu (DML) và các truy vấn khác sử dụng các cột được mã hóa.

  • Bản vá:Bạn nên biết các bản vá EBS có sẵn, đặc biệt là các bản vá áp dụng thay đổi đối với các cột và được mã hóa bằng TDE. Điều này bao gồm các thay đổi dẫn đến việc bổ sung các chỉ mục trên một cột được mã hóa.

Giới hạn TDE

Mã hóa cột TDE không được hỗ trợ với các công nghệ dựa trên Oracle LogMiner, chẳng hạn như Streams hoặc DataGuard, ở chế độ chờ logic. Nếu bạn đang sử dụng các công nghệ, bạn không thể sao chép các cột được mã hóa. Tuy nhiên, TDE mã hóa được hỗ trợ khi bạn sử dụng DataGuard ở chế độ chờ vật lý. Trong trường hợp này, awallet chứa khóa chính phải được sao chép từ máy chủ chính sang máy chủ dự phòng riêng, như thể hiện trong hình sau:

Mã hóa dữ liệu minh bạch với Oracle EBS Nguồn ảnh:https://docs.oracle.com/cd/E11882_01/network.112/e40393/ asotrans.htm # ASOAG9567

Các bước để triển khai TDE

Thực hiện các bước sau để triển khai TDE:

  1. Nhận danh sách các cột và bảng cần được mã hóa.

  2. Tạo một thư mục ví tại vị trí cần thiết bằng cách chạy lệnh sau:

    $ mkdir TDEWallet
    
  3. Thực hiện mục nhập bắt buộc trong sqlnet.ora hoặc sqlnet_ifile.ora tương tự như dòng sau:

    [oratactp@odbprod1 tactprd_odbprod1]$ cat sqlnet_ifile.ora
    
  4. Đặt Master Key bằng cách sử dụng các lệnh sau, tạo một tệp wallet tại vị trí wallet được chỉ định trong bước trước:

    $ Sqlplus  '/as sysdba'
    SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "*****";
    System altered.
    
  5. Tải xuống và áp dụng bản vá 7337863 nếu nó chưa được áp dụng.

  6. Thực thi aftdeval.sql trên AppsTier từ $FND_TOP/sql chống lại các cột trình bảng cần được mã hóa, như được hiển thị trong ví dụ sau:

    SQL> @aftdeval.sql IBY IBY_CREDITCARD CCNUMBER E
    
  7. Thực thi tất cả các lệnh mã hóa được tạo bởi aftdeval.sql .

  8. Xác minh các cột được mã hóa bằng cách sử dụng lệnh sau:

    SQL> SELECT * FROM DBA_ENCRYPTED_COLUMNS;
    
    OWNER      TABLE_NAME                COLUMN_NAME          ENCRYPTION_ALG       SAL INTEGRITY_AL
    ---------- ------------------------- -------------------- -------------------- --- ------------
    IBY        IBY_CREDITCARD            CCNUMBER             AES 192 bits key     NO SHA-1
    
  9. Bạn có thể mở hoặc đóng ví bằng cách sử dụng các lệnh sau:

    SQL> ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "****";
    SQL> SELECT * FROM v$encryption_wallet;
    
    SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "****";
    
  10. Bạn có thể đặt đăng nhập tự động cho ví bằng cách sử dụng lệnh sau:

    $ orapki wallet create -wallet <wallet_location> -auto_login
    

Ràng buộc đối với việc triển khai TDE

Các ràng buộc sau áp dụng cho việc triển khai TDE:

  • Chỉ một số loại dữ liệu nhất định mới có thể được mã hóa.

  • Chỉ các cột được xác định có độ dài dưới 3932 byte mới có thể được mã hóa.

  • Nếu cột là một phần của khóa ngoại hoặc được sử dụng trong một ràng buộc cơ sở dữ liệu khác, thì nó không thể được mã hóa.

  • Nếu có một chỉ mục dựa trên chức năng trên cột, nó không thể được mã hóa.

  • Nếu một cột được lập chỉ mục và quét phạm vi được thực hiện đối với cột đó, chỉ mục sẽ không còn được sử dụng sau khi cột được mã hóa. Thay vào đó, toàn bộ quá trình quét bảng được thực hiện.

  • Nếu một bảng được phân vùng và các phân vùng hoặc phân vùng con được trao đổi, tất cả các phân vùng bảng phải được mã hóa tương tự. Các bảng sau hiện phù hợp với tiêu chí này:

  • EGO_MTL_SY_ITEMS_EXT_B

  • EGO_MTL_SY_ITEMS_EXT_TL

  • WF_LOCAL_ROLES

  • WF_LOCAL_ROLES_STAGE

  • WF_USER_ROLE_ASSIGNMENTS

  • WF_UR_ASSIGNMENTS_STAGE

  • WF_LOCAL_USER_ROLES

  • WF_LOCAL_USER_ROLES_STAGE

  • WF_LOCAL_ROLES_TL

  • WF_LOCAL_ROLES_TL_STAGE

Kế hoạch dự phòng

Nếu không cần mã hóa cột, hãy chạy các lệnh sau như một kế hoạch dự phòng:

SQL> ALTER TABLE IBY.IBY_CREDITCARD modify (CCNUMBER decrypt); << repeat this for all columns/tables which were encrypted.

Comment ENCRYPTION_WALLET_LOCATION from sqlnet_ifile.ora

Sau khi thực hiện các lệnh trước, hãy khởi động lại môi trường và thực hiện kiểm tra độ tỉnh táo đã hoàn thành.

Kết luận

Bằng cách triển khai TDE ở cấp cột, bạn có thể ngăn người dùng nhìn thấy dữ liệu nhạy cảm được lưu trữ trong các cột, chẳng hạn như số thẻ tín dụng hoặc Dữ liệu nhân sự. Bạn không phải viết lại mã ứng dụng sau khi mã hóa. Mã hiện có có thể được sử dụng và phiên cơ sở dữ liệu có thể xử lý dữ liệu đã mã hóa mà không gặp sự cố.

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.

Tìm hiểu thêm về các dịch vụ cơ sở dữ liệu của chúng tôi.