Giáo trình mô đun Bảo mật web và cơ sở dữ liệu

1. 1. MỘT SỐ PHƢƠNG PHÁP TẤN CÔNG WEBSITE: SQL

INJECTION, XSS, DDOS, PHISING, COOKIE THEFT, VIRUSES

AND MALICIOUS CODE,.

1.1.1 SQL injection

* Khái niệm:

SQL injection là kĩ thuật cho phép các kẻ tấn công thực hiện các lệnh thực

thi SQL bất hợp pháp (mà ngƣời phát triển không lƣờng trƣớc đƣợc), bằng cách

lợi dụng các lỗ hổng bảo mật từ dữ liệu nhập vào của các ứng dụng.

* Cách thức hoạt động của Sql injection

 Lỗi Sql injection thƣờng xảy ra do sự thiếu kiểm tra dữ liệu truyền

vào, điều này gây ra những tác động không mong muốn ngoài mục đích chính

của câu truy vấn. Ta hãy xem xét câu truy vấn sau:

Selected_user = "SELECT * FROM users WHERE name = '" + userName + "';"

 Ta thấy rằng, mục đích chính của câu truy vấn này là lục tìm trong

bảng users những dòng dữ liệu nào mà trƣờng name có giá trị bằng với tham số

userName đã truyền vào.

 Thoạt nhìn thì câu truy vấn này là đúng cấu trúc và không có bất cứ

vấn đề gì, thế nhƣng ta hãy thử phân tích một tình huống sau đây: giả sử ngƣời

gọi câu truy vấn này truyền vào tham số userName có giá trị:

a' or 't'='t

Nhƣ vậy câu truy vấn của ta có đƣợc hiểu nhƣ sau:

SELECT * FROM users WHERE name = 'a' or 't'='t';

Câu truy vấn trên có ý nghĩa là gì? Mệnh đề WHERE của câu truy vấn trên luôn

đúng, lí do là vì „t‟=‟t‟ luôn cho ra giá trị đúng. Nhƣ vậy, thay vì trả về kết quả

của 1 dòng dữ liệu mong muốn, câu truy vấn này trả về kết quả là toàn bộ dữ

liệu của bảng users.

 Nguyên nhân chính của việc truy vấn sai này chính là do dữ liệu

của tham số truyền vào. Hãy tƣởng tƣợng rằng toàn bộ dữ liệu này bị sử dụng

nhằm mục đích không tốt, hậu quả thật khó lƣờng phải không nào?2

* Các trƣờng hợp thƣờng bị tấn công Sql injection

 Bất cứ thao tác nào của ứng dụng có thực hiện truy vấn tới cơ sở dữ

liệu đều có thể bị lợi dụng để tấn công Sql injection. Các thao tác cơ bản với

CSDL là: select, insert, update đều có thể bị tấn công. Có thể kể ra vài thao tác

phổ biến có thể tấn công nhƣ:

 Kiểm tra đăng nhập ứng dụng.

 Thao tác lƣu comment của user xuống DB.

 Thao tác truy vấn thông tin user.

* Cách phòng tránh lỗi Sql injection

 Nhƣ đã phân tích ở trên: điểm để tấn công chính là tham số truyền

vào câu truy vấn. Do vậy phải thực hiện các biện pháp phòng chống để đảm bảo

việc kiểm tra dữ liệu truyền vào không thể gây ra sai lệch khi thực hiện truy vấn.

 Giải pháp cho việc kiểm tra này là sử dụng “chuỗi escape”. Khi

thực hiện escape một chuỗi, tức là mã hoá các kí tự đặc biệt của chuỗi (nhƣ kí tự

„, &, |, ) để nó không còn đƣợc hiểu là 1 kí tự đặc biệt nữa. Mỗi ngôn ngữ lập

trình đều cung cấp các hàm để thực hiện escape chuỗi, với PHP ta sẽ sử dụng

hàm mysqli_real_escape_string() hoặc cũng có thể dùng addslashes() để thực

hiện điều này.

 Ví dụ về hàm addslashes(): kí tự nháy kép lúc này không còn đƣợc

hiểu là kí tự điểu khiển nữa.

1 2

$str = addslashes('What does "yolo" mean?');

//$str = 'What does \"yolo\" mean?'

Giáo trình mô đun Bảo mật web và cơ sở dữ liệu trang 1

Trang 1

Giáo trình mô đun Bảo mật web và cơ sở dữ liệu trang 2

Trang 2

Giáo trình mô đun Bảo mật web và cơ sở dữ liệu trang 3

Trang 3

Giáo trình mô đun Bảo mật web và cơ sở dữ liệu trang 4

Trang 4

Giáo trình mô đun Bảo mật web và cơ sở dữ liệu trang 5

Trang 5

Giáo trình mô đun Bảo mật web và cơ sở dữ liệu trang 6

Trang 6

Giáo trình mô đun Bảo mật web và cơ sở dữ liệu trang 7

Trang 7

Giáo trình mô đun Bảo mật web và cơ sở dữ liệu trang 8

Trang 8

Giáo trình mô đun Bảo mật web và cơ sở dữ liệu trang 9

Trang 9

Giáo trình mô đun Bảo mật web và cơ sở dữ liệu trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 63 trang xuanhieu 7680
Bạn đang xem 10 trang mẫu của tài liệu "Giáo trình mô đun Bảo mật web và cơ sở dữ liệu", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình mô đun Bảo mật web và cơ sở dữ liệu

Giáo trình mô đun Bảo mật web và cơ sở dữ liệu
hợp tất các lỗi đã đƣợc công bố đối với từng ứng dụng web cụ 
thể và thực hiện đệ trình đến ứng dụng web xem thử ứng dụng đó có bị mắc các 
49 
lỗi bảo mật hay không? Ví dụ, một fuzzer kiểm tra tất cả các lỗi bảo mật liên 
quan đến ứng dụng cổng thông tin điện tử Joomla thì nó sẽ tập hợp tất cả các lỗi 
bảo mật liên quan đến ứng dụng Joomla và thực hiện đệ trình khi ngƣời kiểm tra 
cung cấp. 
Cách thức thu thập lỗi bảo mật 
Một công cụ kiểm tra lỗi bảo mật sử dụng phƣơng pháp kiểm tra fuzzing 
đƣợc tổ chức thành 2 phần: 
 Phần 1: Tập hợp tất cả các định dạng URL mà gây ra lỗi cho một ứng 
dụng cụ thể. Ví dụ: lỗi bảo mật cho ứng dụng Joomla đƣợc phát hiện 
nằm trong URL: “index.php?option=com_content&view=article”. 
URL này sẽ đƣợc lƣu trong cơ sở dữ liệu của chƣơng trình cùng với 
tham số đệ trình gây ra lỗi của nó. 
 Phần 2: Tập hợp tất cả đặc điểm nhận diện tƣơng ứng với URL gây ra 
lỗi trong quá trình fuzzing. Các điểm điểm nhận diện này cũng sẽ lƣu 
cùng với URL gây ra lỗi trong cơ sở dữ liệu. 
Kiểm tra lỗi bảo mật web bằng phƣơng pháp kiểm tra fuzzing có ƣu điểm 
là kiểm tra nhanh với một lƣợng lớn website mà đã biết tên ứng dụng đang chạy. 
Ví dụ, tập hợp một lƣợng lớn danh sách các website biết chắc chắn đang chạy 
ứng dụng Joomla thì sẽ sử dụng công cụ kiểm tra lỗi bảo mật liên quan đến ứng 
dụng Joomla một cách nhanh chóng. Nhƣợc điểm của phƣơng pháp kiểm tra này 
là tính cố định đƣợc tổ chức cho từng lỗi bảo mật cho nên lỗi bảo mật nào muốn 
kiểm tra thì phải đúng định dạng của nó thì nó mới kiểm tra đƣợc và dấu hiệu 
nhận biết phải đƣợc tập hợp một cách đầy đủ, không sẽ bỏ xót. Nếu không thì 
mặc dầu ứng dụng đó có lỗi nhƣng dữ liệu nhận diện thiếu, cũng không thể phát 
hiện ra lỗi bảo mật đó. 
*** Một số công cụ quét lỗ hổng bảo mật tự động khác 
 Nikto: là một trong những công cụ thực hiện fuzzer các lỗi bảo mật tốt 
nhất và nhanh nhất hiện nay. Với cơ sở dữ liệu cập nhật hàng trăm lỗi 
bảo mật đƣợc xuất hiện hằng ngày. Đặc biệt là Nikto đƣợc sử dụng 
hoàn toàn miễn phí và có khả năng tùy biến cao. Nikto cũng là một 
trong những công cụ đƣợc insecure.org bình chọn một trong những 
công cụ quét lỗi bảo mật web tốt nhất trong 10 công cụ. Ngoài ra, 
Nikto cho phép ngƣời sử dụng tùy biến viết các thành phần và nhúng 
50 
kết với Nikto để thực thi. Hơn nữa, Nikto cũng hỗ trợ nhiều định dạng 
của những chƣơng trình quét lỗi bảo mật khác nhƣ: Nmap, Nessus. 
Nikto 
 AppScan: một công cụ thƣơng mại tập hợp lớn các lỗi bảo mật cho 
từng ứng dụng web riêng biệt. 
51 
________________________________________________________________ 
BÀI 2 : TẤN CÔNG VÀ BẢO MẬT CSDL 
2.1 CÁC PHƢƠNG PHÁP TẤN CÔNG, KHAI THÁC TRÁI PHÉP CSDL 
2.1.1Tổng quan về SQL Injection 
Khái niệm 
 SQL Injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ 
hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các 
thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về để inject (tiêm vào) và 
thi hành các câu lệnh SQL bất hợp pháp 
 SQL injection có thể cho phép những kẻ tấn công thực hiện các thao tác 
trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang 
chạy. 
Nguyên nhân 
 Dữ liệu đầu vào từ ngƣời dùng hoặc từ các nguồn khác không đƣợc kiểm 
tra hoặc kiểm tra không kỹ lƣỡng 
 Ứng dụng sử dụng các câu lệnh SQL động, trong đó dữ liệu đƣợc kết nối 
với mã SQL gốc để tạo câu lệnh SQL hoàn chỉnh 
52 
Tính nguy hiểm của tấn công SQL Injection 
Tùy vào mức độ tinh vi, SQL Injection có thể cho phép kẻ tấn công: 
 Vƣợt qua các khâu xác thực ngƣời dùng 
 Chèn, xóa hoặc sửa đổi dữ liệu 
 Đánh cắp các thông tin trong CSDL 
 Chiếm quyền điều khiển hệ thống 
2.1.2 Phân loại các kiểu tấn công SQL Injection 
SQL Injection có thể chia nhỏ thành các dạng sau 
 In-band SQLi 
o Error-based SQLi 
o Union-based SQLi 
 Inferential SQLi (Blind SQLi) 
 Blind-boolean-based SQLi 
o Time-based-blind SQLi 
 Out-of-band SQLi 
In-band SQLi 
 Đây là dạng tấn công phổ biến nhất và cũng dễ để khai thác lỗ hổng SQL 
Injection nhất 
53 
 Xảy ra khi hacker có thể tổ chức tấn công và thu thập kết quả trực tiếp 
trên cùng một kênh liên lạc 
 In-Band SQLi chia làm 2 loại chính: 
o Error-based SQLi 
o Union-based SQLi 
Error-based SQLi 
 Là một kỹ thuật tấn công SQL Injection dựa vào thông báo lỗi đƣợc trả về 
từ Database Server có chứa thông tin về cấu trúc của cơ sở dữ liệu. 
 Trong một vài trƣờng hợp, chỉ một mình Error-based là đủ cho hacker có 
thể liệt kê đƣợc các thuộc tính của cơ sở dữ liệu 
Union-based SQLi 
 Là một kỹ thuật tấn công SQL Injection dựa vào sức mạnh của toán tử 
UNION trong ngôn ngữ SQL cho phép tổng hợp kết quả của 2 hay nhiều 
câu truy vấn SELECTION trong cùng 1 kết quả và đƣợc trả về nhƣ một 
phần của HTTP response 
54 
Inferential SQLi (Blind SQLi) 
 Không giống nhƣ In-band SQLi, Inferential SQL Injection tốn nhiều thời 
gian hơn cho việc tấn công do không có bất kì dữ liệu nào đƣợc thực sự 
trả về thông qua web application và hacker thì không thể theo dõi kết quả 
trực tiếp nhƣ kiểu tấn công In-band 
 Thay vào đó, kẻ tấn công sẽ cố gắng xây dựng lại cấu trúc cơ sở dữ liệu 
bằng việc gửi đi các payloads, dựa vào kết quả phản hồi của web 
application và kết quả hành vi của database server. 
 Có 2 dạng tấn công chính 
o Blind-boolean-based 
o Blind-time-based SQLi 
Blind-boolean-based 
 Là kĩ thuật tấn công SQL Injection dựa vào việc gửi các truy vấn tới cơ sở 
dữ liệu bắt buộc ứng dụng trả về các kết quả khác nhau phụ thuộc vào câu 
truy vấn là True hay False. 
 Tuỳ thuộc kết quả trả về của câu truy vấn mà HTTP reponse có thể thay 
đổi, hoặc giữ nguyên 
 Kiểu tấn công này thƣờng chậm (đặc biệt với cơ sở dữ liệu có kích thƣớc 
lớn) do ngƣời tấn công cần phải liệt kê từng dữ liệu, hoặc mò từng kí tự 
55 
Time-based Blind SQLi 
 Time-base Blind SQLi là kĩ thuật tấn công dựa vào việc gửi những câu 
truy vấn tới cơ sở dữ liệu và buộc cơ sở dữ liệu phải chờ một khoảng thời 
gian (thƣờng tính bằng giây) trƣớc khi phản hồi. 
 Thời gian phản hồi (ngay lập tức hay trễ theo khoảng thời gian đƣợc set) 
cho phép kẻ tấn công suy đoán kết quả truy vấn là TRUE hay FALSE 
 Kiểu tấn công này cũng tốn nhiều thời gian tƣơng tự nhƣ Boolean-based 
SQLi 
Out-of-band SQLi 
 Out-of-band SQLi không phải dạng tấn công phổ biến, chủ yếu bởi vì nó 
phụ thuộc vào các tính năng đƣợc bật trên Database Server đƣợc sở dụng 
bởi Web Application. 
 Kiểu tấn công này xảy ra khi hacker không thể trực tiếp tấn công và thu 
thập kết quả trực tiếp trên cùng một kênh (In-band SQLi), và đặc biệt là 
việc phản hồi từ server là không ổn định 
 Kiểu tấn công này phụ thuộc vào khả năng server thực hiện các request 
DNS hoặc HTTP để chuyển dữ liệu cho kẻ tấn công. 
 Ví dụ nhƣ câu lệnh xp_dirtree trên Microsoft SQL Server có thể sử dụng 
để thực hiện DNS request tới một server khác do kẻ tấn công kiểm soát, 
hoặc Oracle Database‟s UTL HTTP Package có thể sử dụng để gửi HTTP 
request từ SQL và PL/SQL tới server do kẻ tấn công làm chủ 
2.2 BẢO MẬT, AN TOÀN CSDL 
Theo thống kê, khoảng 90% dữ liệu trong máy tính đƣợc lƣu trữ dƣới 
dạng CSDL. Tất cả các thông tin về ngân hàng, kho tàng, quản lý cơ sở vật chất, 
dân số, tài nguyên khoáng sản, sách trong thƣ viện,... đều ở dạng CSDL. Các 
dạng thông tin khác nhƣ thƣ tín (bao gồm tất cả các hệ Internet Mail, IBM Lotus 
Notes, Microsoft Exchange Server,...), văn bản (đƣợc soạn thảo bằng Microsoft 
Word, Word Perfect,...), các thông tin đồ hoạ khác (đƣợc soạn bằng Power 
Point, Corel Draw, AutoCad,...) và các dạng khác chỉ chiếm 10%. 
56 
Thông tin đƣợc coi là tài sản và CSDL không chỉ lƣu trữ các thông tin có 
liên quan tới bí mật nhà nƣớc hay những thông tin trong lĩnh vực kinh tế (ngân 
hàng, tốc độ tăng trƣởng của các ngành sản xuất,...), mà chứa cả thông tin cá 
nhân (số điện thoại nhà riêng, sở thích, sở đoản,...) và chúng đều cần đƣợc bảo 
vệ. Trong [1] có phân tích khá đầy đủ về các nhu cầu bảo mật CSDL. 
Với các hệ quản trị CSDL nhỏ chạy trên một máy tính đơn lẻ nhƣ Dbase hay 
Foxpro thì vấn đề bảo mật dữ liệu chƣa đƣợc quan tâm. Nhƣng đến hệ quản trị 
Microsoft Access thì bên cạnh tính năng cho phép phân quyền sử dụng nó còn 
có cả tính năng mã hóa/giải mã. 
Đối với các hệ quản trị CSDL lớn nhƣ Oracle, SQL Server hay Informix thì tính 
năng bảo mật đƣợc thực hiện nhờ các cơ chế sau [2]: 
- Khả năng bảo mật của hệ điều hành mạng: Oracle, SQL Server, Informix,... là 
các hệ quản trị CSDL có cấu trúc khách/chủ và chạy trên các hệ điều hành mạng 
nhƣ Novell Netware, Windows NT Server, Unix (Solaris, AIX,...). 
- Khả năng phân quyền của hệ quản trị CSDL: Các hệ quản trị CSDL cho phép 
phân quyền đối với các thao tác để thiết kế (tạo CSDL, tạo bảng,...) hay thay đổi 
cấu trúc của CSDL, thao tác khai thác sử dụng dữ liệu (quyền đọc, quyền ghi, 
quyền xoá). Các quyền đƣợc phân nhỏ cho từng bảng, thậm chí tới từng trƣờng. 
- Khả năng bảo mật của hệ quản trị CSDL: Microsoft SQL Server cho phép bảo 
mật dữ liệu trên đƣờng truyền khi nhập liệu nhờ câu lệnh “Insert with 
encryption”. Tuy nhiên, trong câu lệnh này không có tham số để nạp khoá. Điều 
đó có nghĩa là khả năng mã hóa hoàn toàn do hệ thống đảm nhận. Microsoft 
Access cũng có chức năng Encrypt/Decrypt nhƣng việc tìm hiểu về cơ chế hoạt 
động của nó cần phải có thêm các nghiên cứu sâu hơn. Để tăng cƣờng tính năng 
bảo mật cho Oracle Database Server, hãng Oracle xây dựng Oracle Proxy 
Server. 
57 
Khả năng tạo View cũng đƣợc đánh giá nhƣ một tính năng bảo mật. 
Có thể nói, xây dựng một ứng dụng cho phép truyền tệp có bảo mật và 
xác thực (bao gồm cả xác thực thông tin và xác thực ngƣời gửi) trong các 
môi trƣờng mạng là tƣơng đối dễ. Tuy rằng các hệ thƣ tín nhƣ Lotus 
Notes, Microsoft Outlook,... đã có sẵn các tính năng bảo mật, nhƣng việc 
đƣa thêm tính năng mã hoá vào trong các hệ thƣ tín cũng không mấy khó 
khăn (mặc dù khó hơn so với việc bảo mật thông tin trong tệp dữ liệu). 
Tuy vậy, do đặc thù của ứng dụng CSDL, để bảo mật CSDL chúng ta cần 
giải quyết các vấn đề sau đây: 
- Thông tin trong CSDL cần đƣợc sử dụng chung, vậy nên việc dùng khoá riêng 
cho từng ngƣời sử dụng là không thích hợp. Bởi vậy bài toán đặt ra là: Lƣợc đồ 
phân phối khoá nhƣ thế nào để có thể vừa đáp ứng đƣợc nhu cầu bí mật, vừa tạo 
điều kiện để dữ liệu có thể khai thác bởi nhiều ngƣời cùng một lúc? Khoá sẽ 
thay đổi theo từng bản ghi (record) hay là chung cho mọi bản ghi? 
- Thông tin trong CSDL cần phải đƣợc cập nhật, sửa đổi thƣờng xuyên, nên 
không thể giải quyết theo hƣớng mã tệp (mặc dù đối với Foxpro thì CSDL đƣợc 
lƣu ở dạng tệp .DBF; ở Access thì đƣợc lƣu ở tệp .MDB; ở SQL Server thì đƣợc 
lƣu ở tệp .DAT,...). Nếu mã cả tệp dữ liệu thì sẽ không thể đảm bảo đƣợc yêu 
cầu truy nhập ngẫu nhiên (random access). Khi CSDL có dung lƣợng lớn thì 
thời gian mã hóa/giải mã sẽ rất lớn và không đáp ứng đƣợc yêu cầu thực tế. 
Việc mã hoá phải đáp ứng đƣợc yêu cầu của bài toán khai thác dữ liệu, tức là 
đảm bảo thực hiện đƣợc các câu lệnh lọc dữ liệu (SELECT FROM WHERE ). 
Nhƣ vậy các tệp index, các trƣờng khoá (key field) cần phải đƣợc xử lý rất đặc 
biệt. 
Vì thông tin trong CSDL đƣợc lƣu trữ lâu dài chứ không chỉ là những tệp dữ 
liệu đã đƣợc giải mã và có thể xoá đi nhanh chóng nên khi thay khoá, các tệp 
phải đƣợc giải mã bằng khoá cũ và mã lại bằng khoá mới. 
Để giải quyết bài toán bảo mật CSDL có thể áp dụng các phƣơng pháp hết sức 
đặc thù [3]. Giải pháp giải quyết bài toán bảo mật CSDL theo từng phần đối với 
CSDL về ngân hàng có thể nhƣ sau: các trƣờng về “họ tên”, “số tài khoản”,... 
đƣợc giữ nguyên. Chỉ có trƣờng “số tiền” đƣợc mã hoá. Ánh xạ f(x) cần phải 
thoả mãn tính chất: f(x + y) = f(x) + f(y) và f(x × y) = x × f(y) (hay f(x × y) = 
f(x) × f(y)). Ngoài ra, ánh xạ f còn cần phải bảo toàn thứ tự: nếu x > y thì f(x) > 
f(y). 
Hiện nay, phần lớn các cơ chế bảo mật đƣợc dành cho những ngƣời thiết kế ra 
hệ quản trị CSDL (tức là các hãng phần mềm lớn nhƣ Oracle, Microsoft,...) chứ 
58 
không phải từ góc độ những ngƣời khai thác. Cũng có thể các hãng sản xuất hệ 
quản trị CSDL có để ngỏ khả năng cho ngƣời sử dụng tích hợp mật mã vào, 
nhƣng cách thức thực hiện nhƣ thế nào thì không đƣợc công bố rộng rãi. Tuy 
vậy, cũng có thể giải quyết bài toán bảo mật CSDL bằng một số cách sau : 
Hình 1: Mô hình xác thực bằng Cisco Secure 
Hình: Mô hình sử dụng tầng kiểm soát Proxy 
- Tận dụng hết khả năng an toàn sẵn có của hệ điều hành mạng và hệ quản trị 
CSDL. Sau khi thực hiện cài đặt theo cách thông thƣờng các khả năng về an 
ninh/an toàn của hệ điều hành chƣa chắc đã phát huy đƣợc tác dụng. Cần thực 
hiện các thao tác quản trị cần thiết để phát huy tối đa các khả năng sẵn có của hệ 
thống. 
- Bảo mật dữ liệu của CSDL trên đƣờng truyền giống nhƣ các dịch vụ mạng 
khác (ftp. http, e-mail,...) bằng cách sử dụng các phần mềm bảo mật dữ liệu nhƣ 
IPSec hoặc SSL. Đối với ngƣời sử dụng truy cập từ xa qua Remote Access 
Server có thể kiểm soát bằng phần mềm (ví dụ nhƣ dùng Cisco Secure đối với 
thiết bị của hãng Cisco (Hình 1)). Việc kiểm tra xác thực có thể thực hiện theo 
thủ tục TACASC+ hay RADIUS. 
59 
- Kiểm soát truy nhập: cần tăng thêm một cơ chế kiểm soát truy nhập/phân 
quyền sử dụng (bên cạnh cơ chế đã có của hệ điều hành mạng và Database 
Server). Đối với SQL Server có thể dùng Open Data Service để thực hiện chức 
năng này. Đối với Oracle Database Server thì Oracle Proxy Server chính là phần 
mềm tăng thêm một lần kiểm soát nữa. 
 Việc cập nhật và khai thác dữ liệu trong mạng LAN cũng cần thiết, nhƣng cũng 
có thể thực hiện đƣợc nhờ các biện pháp nghiệp vụ. Giải quyết vấn đề bảo mật 
trên đƣờng truyền cần phải đặc biệt quan tâm đối với việc lặp dữ liệu 
(Replication) giữa các Server (mô hình phân tán). Việc giải quyết bài toán này 
phụ thuộc vào hệ quản trị CSDL và đòi hỏi chúng ta phải hiểu rõ cơ chế lặp dữ 
liệu của từng hệ CSDL. 
 Bảo mật trên đƣờng truyền trong quá trình khai thác: Giữa máy trạm và máy 
chủ luôn diễn ra quá trình cập nhật dữ liệu (3 thao tác của việc cập nhật là insert, 
update, delete) cũng nhƣ khai thác dữ liệu. Khi khai thác dữ liệu thì máy trạm sẽ 
gửi về máy chủ các câu truy vấn, còn máy chủ sẽ gửi trả về máy trạm kết quả 
thực hiện truy vấn này (Hình 3). 
60 
Hình 3: Mô hình cập nhật và khai thác dữ liệu giữa máy trạm và máy chủ 
Hình 4: Mô hình mã hóa dữ liệu trên đường truyền 
- Mọi dữ liệu trên đƣờng truyền giữa máy chủ và máy trạm cần đƣợc bảo mật. 
Dữ liệu truy vấn đƣợc mã hóa tại máy trạm và giải mã tại máy chủ. Dữ liệu trả 
lời cho câu truy vấn thì đƣợc mã hoá tại máy chủ và giải mã tại máy trạm (Hình 
4).Chính vì những đặc trƣng khá phức tạp của bài toán bảo mật CSDL đã trình 
bày ở trên, nên mặc dù nhu cầu bảo mật CSDL là rất lớn, song có thể nói trên 
thế giới có ít sản phẩm về bảo mật CSDL, nhất là do các tổ chức thuộc “thành 
phần thứ 3” (là những ngƣời không tạo ra các hệ quản trị CSDL) tạo ra. 

File đính kèm:

  • pdfgiao_trinh_mo_dun_bao_mat_web_va_co_so_du_lieu.pdf