An ninh trong CSDL phân tán Oracle

Một phần của tài liệu (LUẬN văn THẠC sĩ) cơ sở dữ liệu phân tán và ứng dụng trong chuyển tiền điện tử (Trang 57 - 65)

Cơ sở dữ liệu Oracle hỗ trợ tất cả các tính năng bảo mật sẵn có của môi trường CSDL không phân tán cho môi trường CSDL phân tán , bao gồm một số các công cụ và chức năng như:

 Xác thực mật khẩu và các vai trò người dùng

 Sử dụng một số loại xác thực mở rộng bên ngoài để xác thực người dùng và vai trò người dùng, như: Kerberos, DCE

 Mã hoá các gói đăng nhập cho các kết nối client-to-server và server- to-server

 Mô hình kiểm soát truy cập bắt buộc (Mandatory Access Control- MAC)

Trong báo cáo này, tác giả chỉ trình bày một số phương pháp đảm bảo an ninh trong CSDL phân tán để có thể áp dụng để giải quyết bài toán đặt ra trong chương 3. Các chức năng và công cụ được trình bày bao gồm:

 Phương pháp sử dụng đối tượng trung gian để bảo mật CSDL

 Kiểm soát CSDL liên kết

 Kiểm soát dữ liệu phân tán

2.5.1 Phương pháp sử dụng đối tượng trung gian để bảo mật CSDL Giải pháp đơn giản nhất bảo vệ dữ liệu trong CSDL là ở mức độ tập tin, chống lại sự truy cập trái phép vào các tập tin CSDL là hình thức mã hóa. Tuy nhiên, mã hóa dữ liệu ở mức độ này là giải pháp mang tính “tất cả trong một”, giải pháp này không cung cấp mức độ bảo mật truy cập đến CSDL ở mức độ bảng (table), cột (column) và dòng (row). Một điểm yếu nữa của giải pháp này là bất cứ ai với quyền truy xuất CSDL đều có thể truy cập vào tất cả dữ liệu trong CSDL. Điều này phát sinh một nguy cơ nghiêm trọng, cho phép các đối tượng với quyền quản trị (admin) truy cập tất cả các dữ liệu nhạy cảm. Thêm vào đó, giải pháp này bị hạn chế vì không cho phép phân quyền khác nhau cho người sử dụng CSDL.

Giải pháp thứ hai, đối nghịch với giải pháp mã hóa cấp tập tin nêu trên, giải quyết vấn đề mã hóa ở mức ứng dụng. Giải pháp này xử lý mã hóa dữ liệu trước khi truyền dữ liệu vào CSDL. Những vấn đề về quản lý khóa và quyền truy cập được hỗ trợ bởi ứng dụng. Truy vấn dữ liệu đến CSDL sẽ trả kết quả dữ liệu ở dạng mã hóa và dữ liệu này sẽ được giải mã bởi ứng dụng. Giải pháp này giải quyết được vấn đề phân tách quyền an ninh và hỗ trợ các chính sách an ninh dựa trên vai trò (Role Based Access Control – RBAC). Tuy nhiên, xử lý mã hóa trên tầng ứng dụng đòi hỏi sự thay đổi toàn diện kiến trúc của ứng dụng, thậm chí đòi hỏi ứng dụng phải được viết lại. Đây là một vấn đề đáng kể cho các công ty có nhiều ứng dụng chạy trên nhiều nền CSDL khác nhau.

Từ những phân tích hai giải pháp nêu trên, có thể dễ dàng nhận thấy một giải pháp bảo mật CSDL tối ưu cần hỗ trợ các yếu tố chính sau:

1. Hỗ trợ mã hóa tại các mức dữ liệu cấp bảng, cột, hàng.

2. Hỗ trợ chính sách an ninh phân quyền truy cập đến mức dữ liệu cột, hỗ trợ các chính sách an ninh dựa trên vai trò - RBAC.

3. Cơ chế mã hóa không ảnh hưởng đến các ứng dụng hiện tại.

Dưới đây là hai mô hình thỏa mãn các yêu cầu trên, đặc biệt là yêu cầu thứ ba.

a. Phương pháp xây dựng tầng mã hoá để bảo mật CSDL

Trong mô hình này, một CSDL trung gian (proxy) được xây dựng giữa ứng dụng và CSDL gốc. Hình (Sơ đồ 1). CSDL trung gian này có vai trò mã hóa dữ liệu trước khi cập nhật vào CSDL gốc, đồng thời giải mã dữ liệu trước khi cung cấp cho ứng dụng. CSDL trung gian đồng thời cung cấp thêm các chức năng quản lý khóa, xác thực người dùng và cấp phép truy cập.

Giải pháp này cho phép tạo thêm nhiều chức năng về bảo mật cho CSDL.

Tuy nhiên, mô hình CSDL trung gian đòi hỏi xây dựng một ứng dụng CSDL tái tạo tất cả các chức năng của CSDL gốc.

Ứng dụng

CSDL trung gian

CSDL Oracle

Dữ liệu giải mã

Dữ liệu mã hoá Dữ liệu

giải mã

Dữ liệu mã hoá

Hình 2.7: Mô phỏng tầng CSDL mã hoá để bảo mật CSDL b. Sử dụng các công cụ và chức năng cung cấp bởi CSDL Oracle

Mô hình này giải quyết các vấn đề mã hóa cột dựa trên các cơ chế sau:

1. Sử dụng các hàm và thủ tục lưu (Stored Procedure) trong CSDL cho chức năng mã hóa và giải mã

2. Sử dụng cơ chế bảng ảo (View) trong CSDL tạo các bảng ảo, thay thế các bảng thật đã được mã hóa.

3. Sử dụng bẫy kích hoạt (Trigger) nhằm tự động hóa quá trình mã hóa từ bảng ảo đến bảng gốc.

Trong mô hình này, dữ liệu trong các bảng gốc sẽ được mã hóa, tên của bảng gốc được thay đổi. Một bảng ảo (View) được tạo ra mang tên của bảng gốc, ứng dụng sẽ truy cập đến bảng ảo này.

Truy xuất dữ liệu trong mô hình này có thể được tóm tắt trong hình 2.8

Ứng dụng

Bảng ảo (View)

Bảng gốc (Được lưu dưới dạng mã hoá) Thêm mới, cập

nhật sử dụng các hàm/thủ tục lưu để mã hoá dữ liệu

Truy xuất sử dụng các hàm/

thủ tục lưu để giải mã dữ liệu

Hình 2.8: Mô phỏng phương pháp sử dụng bảng ảo để truy xuất dữ liệu Các truy xuất dữ liệu đến bảng gốc sẽ được thay thế bằng truy xuất đến bảng ảo.

Bảng ảo được tạo ra để mô phỏng dữ liệu trong bảng gốc. Khi thực thi lệnh truy xuất (“select”), dữ liệu sẽ được giải mã cho bảng ảo từ bảng gốc (đã được mã hóa). Khi thực thi lệnh “Insert, Update”, các trigger sẽ được thi hành và mã hóa dữ liệu xuống bảng gốc.

Quản lý phân quyền truy cập đến các cột sẽ được quản lý ở các bảng ảo.

Ngoài các quyền cơ bản do CSDL cung cấp, hai quyền truy cập mới được định nghĩa:

1. Người sử dụng chỉ được quyền đọc dữ liệu ở dạng mã hóa (ciphertext).

Quyền này phù hợp với những đối tượng cần quản lý CSDL mà không cần đọc nội dung dữ liệu.

2. Người sử dụng được quyền đọc dữ liệu ở dạng giải mã (plaintext).

Giải pháp nêu trên có lợi điểm đơn giản, dễ phát triển. Tuy nhiên, do các giới hạn về cơ chế view, trigger và cách thức quản trị dữ liệu, giải pháp này có những hạn chế sau:

 Những cột index không thể được mã hóa, do đó hạn chế các ứng dụng cần hỗ trợ index

 Dữ liệu mã hóa có kích thước lớn so với dữ liệu gốc. Sự chênh lệch này không đáng kể đối với các dữ liệu chữ (text), nhưng rất đáng kể đối với các dữ liệu số và dạng nhị phân. Ví dụ, dữ liệu số 1 byte sẽ bị tăng lên 2 byte sau khi mã hóa.

 Tốc độ truy cập CSDL giảm do quá trình thực thi tầng mã hóa 2.5.2 Kiểm soát CSDL liên kết

a. Xác thực thông qua Database Links (Authentication Through Database Links)

Để tạo liên kết Database (Database Links )

CREATE PUBLIC DATABASE LINK foo USING 'sales';

Để tạo các liên kết có xác thực bằng cách sử dụng thêm các từ khoá CONNECT TO, AUTHENTICATED BY hoặc cả hai

Ví dụ:

CREATE DATABASE LINK sales CONNECT TO scott IDENTIFIED BY tiger USING 'sales';

CREATE SHARED PUBLIC DATABASE LINK sales CONNECT TO mick IDENTIFIED BY jagger

AUTHENTICATED BY david IDENTIFIED BY bowie USING 'sales';

Bảng sau mô tả cách người dùng truy cập vào CSDL từ xa thông qua liên kết Database:

Link Type

Authenticated

? Security Access

Private No Khi kết nối với CSDL từ xa, Oracle sử dụng thông tin bảo mật (userid/password) được lấy từ các session địa phương. Do đó, liên kết là một kết nối của người sử dụng liên kết cơ sở dữ . Mật khẩu phải được đồng bộ hóa giữa hai cơ sở dữ liệu.

Private Yes Các userid/password được ưu tiên lấy từ các định nghĩa liên kết so với session địa phương. Do đó, liên kết là một liên kết cố định người dùng cơ sở dữ liệu.

Cấu hình này cho phép các mật khẩu được khác nhau trên hai cơ sở dữ liệu, nhưng các CSDL địa phương liên kết mật khẩu phải phù hợp với mật khẩu CSDL từ xa. Mật khẩu được

thêm một nguy cơ về bảo mật.

Public No Làm việc giống như một liên kết Private không xác, ngoại trừ việc tất cả người dùng có thể kết nối tới CSDL từ xa.

Public Yes Tất cả người dùng trên CSDL địa phương có thể truy cập vào CSDL từ xa và tất cả sử dụng dùng một userid/password để tạo kết nối. Ngoài ra, mật khẩu được lưu trữ trong văn bản rõ ràng trong hệ thống catalog địa phương, vì vậy người dùng có thể xem các mật khẩu nếu người dùng có đủ đặc quyền trong CSDL địa phương.

Bảng 2.2 Bảng mô tả xác thực thông tin qua Database Link b. Xác thực không mật khẩu (Authentication Without Passwords)

Khi sử dụng một người dùng kết nối hoặc liên kết CSDL người dùng hiện tại, người dùng có thể sử dụng một nguồn xác thực bên ngoài như Kerberos để có được bảo mật điểm tới điểm (end-to-end). Trong xác thực end-to-end, các thông tin được truyền từ máy chủ đến máy chủ và có thể được chứng thực bởi một máy chủ CSDL thuộc cùng một miền.

2.5.3 Kiểm soát dữ liệu phân tán trong Oracle a. Mô hình kiểm soát truy cập bắt buộc (MAC)

MAC là một phương tiên để hạn chế truy cập tới các đối tượng dựa vào mức độ nhạy cảm của dữ liệu được chứa trong các đối tượng và quyền hạn ( ví dụ: sự cho phép sử dụng thông tin bí mật mật - Clearance) của các chủ thể để truy cập thông tin nhạy cảm.

Clearance là mức bảo mật để người dùng (hay phía Client) có thể truy cập thông tin. Người ta thường chia Clearance thành 4 loại:

Tối mật (Top Secret - T): Được áp dụng với thông tin là nếu bị lộ có thể dẫn đến những thiệt hại trầm trọng với an ninh quốc gia

Tuyệt mật (Secret - S): Được áp dụng với thông tin mà nếu bị lộ có thể dẫn đến một loạt thiệt hại Với an ninh quốc gia

Mật (Confidential - C): Được áp dụng với thông tin mà nếu bị lộ có thể dẫn đến thiệt hại với an ninh quốc gia.

Không phân loại (Unclassified - U): Những thông tin không gây thiệt hại

Sự phân loại mức bảo mật cho thông tin tuỳ thuộc vào chính sách. Người ta sẽ sử dụng cùng các mức phân loại cho các mức Clearence thành một cặp "Kiểu - Loại". Trong đó, kiểu người dùng là một giới hạn để truy cập thông tin dựa trên sự phân loại Clearence của thông tin. Mối quan hệ trong phân loại này là:

U< C < S < T. Mỗi mức bảo mật nói lên ưu thế của nó với tất cả hững thứ bên dưới nó trong kiến trúc này. (Loại T có ưu thế hơn cả)

b. Mã hoá với nhãn trong Oracle (Oracle Label Security – OLS )

Sự thực thi của MAC trong các hệ quản trị là dựa vào các nhãn - label, dùng để gán cho các chủ thể và đối tượng của hệ thống. Do đó, trong Oracle gọi MAC là an toàn dựa vào nhãn - OLS (Oracle Label Security).

OLS trong Oracle cho phép bảo vệ dữ liệu của các bảng đến mức hàng - mức bản ghi (row level).

OLS cho phép định nghĩa một chính sách an toàn (security policy) được thực thi bằng cách gán cho các bản ghi trong bảng một nhãn an toàn. Nhãn này cũng thể hiện quyền mà một người dùng cần có để đọc hay ghi dữ liệu trong các bản ghi. Khi áp dụng chính sách an toàn vào một bảng, bảng đó sẽ được bổ sung thêm một cột để chứa các nhãn an toàn gắn với từng bản ghi của bảng đó.

Hình 2.9 Mã hoá với nhãn dữ liệu trong Oracle c. Cài đặt OLS

Để cài đặt OLS, ta phải lựa chọn tuỳ chọn Custom trong quá trình cài đặt Oracle. Đồng thời, khi create Database phải chọn tuỳ chọn Oracle Label Security.

Sau khi chọn các tuỳ chọn đó, OLS đã được hỗ trợ trong Oracle để ta có thể bảo vệ CSDL của mình dựa vào các label mà ta sẽ tạo ra.

d. Thực thi an toàn nhãn (Label security) Cần có 5 bước để thực thi OLS:

Bước 1 (Tạo chính sách OLS): Chính sách này bao gồm các nhãn (label), quyền người dùng (user authorization), đối tượng CSDL cần bảo vệ (protected database object).

Bước 2 (Định nghĩa các thành phần nhãn - label component): Mỗi một label bao gồm 3 thành phần:

o Level: là thành phần bắt buộc, phân cấp, thể hiện mức nhạy cảm của thông tin

o Compartment: là thành phần tuỳ chọn, không phân cấp, sử dụng để phân loại dữ liệu.

Ví dụ: Compartment là các phòng ban làm việc của một tổ chức

o Group: cũng là một tùy chọn để giới hạn truy nhập trong một level.

Group có ích trong việc phân cấp user.

Ví dụ: Group có thể là các chi nhánh của một công ty, các vùng miền của một đất nước.

Bước 3 (Tạo các label để sử dụng): Từ các label component đã định nghĩa ở bước 2, tạo một tập các nhãn dựa vào chính sách an toàn phù hợp với ứng dụng của ta.

Bước 4 (Áp dụng chính sách an toàn trên cho các bảng hay các lược đồ): Sau bước này, các bảng hay lược đồ quan hệ đó sẽ được add thêm một cột chứa nhãn an toàn của từng hàng.

Bước 5 (Gán nhãn cho các user hay các ứng dụng): Bước này thực hiện gán nhãn cho người dùng một cách phù hợp với từng người dùng. Sau đó OLS sẽ so sánh nhãn của một người dùng với nhãn dữ liệu gán cho từng hàng để đưa ra quyết định truy nhập. Một người dùng chưa được gán nhãn sẽ không thể truy nhập vào bảng đó.

Ta có thể thực thi OLS trong Oracle bằng công cụ Oracle Policy Manager.

Tại đây, ta có thể tạo policy để áp dụng và các bảng và các lược đồ. Trong một Policy tạo ra, ta quan tâm đến 3 phần sau:- Labels: là nhãn ta tạo ra để gán cho các bản ghi trong table, bao gồm:

 Label components (Thành phần nhãn): bao gồm Level, Compartment và Group.

 Data label: là nhãn dữ liệu tạo ra từ 3 thành phần nhãn trên.

o Authorizations: là phần cấp quyền cho các user để cho phép họ truy nhập và từng hàng dữ liệu như thế nào.

o Protected Objects (Các đối tượng cần bảo vệ): đưa vào các bảng hay các lược đồ cần bảo vệ.

Một phần của tài liệu (LUẬN văn THẠC sĩ) cơ sở dữ liệu phân tán và ứng dụng trong chuyển tiền điện tử (Trang 57 - 65)

Tải bản đầy đủ (PDF)

(125 trang)