CHƢƠNG 3 : ĐỀ XUẤT GIẢI PHÁP BẢO MẬT CƠ SỞ DỮ LIỆU
3.5. Giải pháp
3.5.3. Các giải pháp kỹ thuật
3.5.3.1. Giải pháp bài tốn “đảm bảo an tồn dữ liệu khi chuyển dữ liệu trên mạng”
Đảm bảo an toàn dữ liệu CSDL khi chuyển trên mạng nhằm chống lại các tấn công vào CSDL qua môi trường mạng – chống lại việc chặn bắt dữ liệu trên kênh truyền. Các giao thức IP/TCP không được thiết kế với dự phịng gắn liền cho bảo mật, vì vậy có nhiều hệ thống bảo mật khác nhau được phát triển cho các ứng dụng và lưu lượng trên mạng Internet. Phần mềm có nhiệm vụ chuẩn bị dữ liệu cho việc truyền lên một mạng, cung cấp một số khả năng có thể áp dụng xác thực và mã hóa. Những ứng dụng trên được thực hiện tại một trong ba lớp: Phần mềm ứng dụng, lớp giao vận/mạng, thiết bị liên kết dữ liệu và ổ đĩa. Một vài giao thức mật mã cho các ứng dụng bao gồm Secure MINE, SSL/TSL, Secure HTTP, VPN. Trong đó giao thức SSL/TSL là hai giao thức bảo mật đặt ở tầng giao vận, VPN đặt ở tầng mạng và tầng liên kết dữ liệu được sử dụng rộng rãi ngày nay.
Ứng dụng giao thức SSL/TSL: Là dịch vụ an toàn tầng giao vận. SSL là giao thức đa mục đích được tạo ra để thực hiện giao tiếp giữa hai ứng dụng trên một cổng định trước (thường là socket 443 ) nhằm mã hóa tồn bộ thơng tin đi đến. SSL sử dụng giao thức TCP/IP để truyền tải dữ liệu cịn bản thân SSL thì mã hóa các dữ liệu này. SSL được thiết kế độc lập với tầng ứng dụng để đảm bảo tính bí mật, an tồn, chống lại việc giả mạo luồng thông tin qua Internet giữa hai ứng dụng bất kỳ. Toàn bộ cơ chế hoạt động và hệ thống thuật toán sử dụng trong SSL được phổ biến cơng khai trừ khóa chia sẻ tạm thời được sinh ra tại thời điểm trao đổi giữa hai ứng dụng là tạo ngẫu nhiên và bí mật đối với người quan sát trên mạng máy tính. Ngồi ra, giao thức SSL còn đòi hỏi ứng dụng chủ phải được xác định bằng một đối tượng thứ ba (CA) thông qua giấy chứng thực điện tử dựa trên các hệ mật mã hóa khóa cơng khai. Giao thức SSL dựa trên hai nhóm giao thức là giao thức bắt tay và giao thức bản ghi. Giao thức bắt
53
tay xác định các tham số giao dịch giữa hai đối tượng có nhu cầu trao đổi thơng tin hoặc dữ liệu. Giao thức bản ghi xác định khn dạng cho tiến hành mã hóa và truyền tin hai chiều giữa hai đối tượng. SSL không phải là một giao thức đơn lẻ mà là một tập các thủ tục đã được chuẩn hóa để thực hiện các nhiệm vụ bảo mật sau: Xác thực máy chủ, xác thực máy trạm, mã hóa kết nối. Tuy nhiên, SSL khơng ngăn chặn các cuộc tấn cơng phân tích lưu lượng, các cuộc tấn cơng có định hướng dựa vào phần thực thi TCP. Giao thức TSL dựa trên giao thức SSL v3.0 nhưng có một số cải tiến an tồn như dùng HMAC thay cho MAC dùng phép tính tốn khác trong bảo mật của máy chủ và tài liệu khóa thêm các bộ chỉnh sửa.
Ứng dụng kỹ thuật mạng riêng ảo: Kỹ thuật mạng riêng ảo để tách biệt toàn bộ hệ thống CSDL với phần mạng cịn lại. Mục đích giảm bớt các loại hiểm họa, đặc biệt là hiểm họa từ các hacker. Với phép lọc này cho phép loại bỏ được phần lớn những tấn công thông thường vào CSDL. Tất cả các cổng không phục vụ cho công việc khai thác và quản lý dữ liệu đều bị đóng. Các cổng phục vụ trong hệ thống phải được kiểm soát chặt chẽ. Số cổng phục vụ cho khai thác CSDL và các dịch vụ liên quan khơng nhiều nên có thể chủ động kiểm soát. Giữa các Server CSDL được kết nối với nhau theo một kênh an toàn. Các dữ liệu khi ra khỏi vùng làm việc CSDL sẽ được mã hóa và giải mã khi chuyển vào vùng làm việc.
Kiểm sốt q trình trao đổi dữ liệu trên mạng: Kiểm sốt q trình trao đổi dữ liệu giữa các phần của CSDL trong toàn mạng là một cơng việc khó khăn vì các hệ thống CSDL thường gồm nhiều mức người sử dụng và quá trình trao đổi dữ liệu là quá trình hai chiều.
Kiểm sốt q trình trao đổi dữ liệu phải giải quyết các vấn đề sau:
Đảm bảo kiểm sốt được chính xác các điểm kết nối tham gia vào quá trình trao đổi dữ liệu, khơng để xảy ra những kết nối khơng kiểm sốt được.
Trong lúc tiến hành trao đổi dữ liệu, toàn bộ dữ liệu tác nghiệp phải được đảm bảo an toàn ( dữ liệu tác nghiệp bao gồm dữ liệu tại các trạm và dữ liệu trên đường truyền ).
54
Hình 3.2: Dịng dữ liệu trao đổi giữa hai nút.
Để giải quyết vấn đề trên phải xây dựng tiến trình trao đổi dữ liệu an tồn sao cho đảm bảo kết quả có được như sử dụng kỹ thuật của hệ thống nhưng dữ liệu thì được bảo mật. Điều này được giải quyết thông qua các cách sau:
Khơng sử dụng tiến trình trao đổi của hệ thống mà viết lại tiến trình đó để có thể kiểm sốt được dịng dữ liệu trong q trình trao đổi. Nhờ đó mà có thể chủ động đưa ra các kỹ thuật mật mã vào để bảo vệ dữ liệu trong quá trình trao đổi trên mạng.
Bảo mật dữ liệu trong quá trình xử lý để trao đổi: Bảo mật dữ liệu trên mạng phải được tiến hành từ nút tới nút (nghĩa là từ Client tới Server hoặc từ Server này đồng bộ tới Server khác). Dữ liệu trao đổi trước khi truyển lên kênh truyền sẽ được mã hóa bằng hệ mật mã để chỉ hai nút tham gia xử lý trao đổi dữ liệu trên mạng là hai hệ khác nhau. Khi dữ liệu được chuẩn bị đưa lên mạng dữ liệu sẽ được bảo vệ bằng hệ thống mã hóa phục vụ cho quá trình trao đổi trên kênh truyền, khi dữ liệu chuyển vào CSDL nơi đó sẽ được bảo vệ bằng hệ thống mã hóa phục vụ cho q trình lưu trữ và khai thác.
Dòng dữ liệu trao đổi trên kênh giữa hai nút A và B được thực hiện trong sơ đồ hình 3.2 Như vậy dữ liệu lặp giữa các Server CSDL được bảo vệ bởi hai tầng mật mã. Với việc áp dụng các kỹ thuật trên, chúng ta đã giải quyết được bài tốn thứ nhất trong mơ hình đặt ra. Tạo dữ liệu trao đổi Mã hóa dữ liệu trao đổi Dữ liệu nhận được từ nút A Giải mã dữ liệu trao đổi Nút A Nút B
55
3.5.3.2. Giải quyết bài tốn “Đảm bảo an tồn CSDL trong lúc khai thác CSDL phục vụ tác nghiệp” vụ tác nghiệp”
Bài tốn đảm bảo an tồn CSDL trong lúc khai thác CSDL phục vụ tác nghiệp nhằm chống lại các tấn công trực tiếp vào CSDL qua mơi trường DBMS. Bài tốn này được giải quyết theo các hướng sau:
Phân hoạch CSDL: CSDL nên được phân hoạch theo chiều ngang tùy theo độ nhạy cảm của dữ liệu. Với mỗi phân hoạch hệ thống an toàn sẽ thực hiện một chiến lược bảo mật riêng theo yêu cầu bảo mật của dữ liệu. Những phần CSDL lưu giữ như thơng tin ít nhạy cảm thì chỉ cần đảm bảo tính xác thực tồn vẹn của dữ liệu. Với phần CSDL lưu giữ thơng tin u cầu độ mật cao thì ln lưu giữ ở dạng mã hóa tồn bộ CSDL. Việc khai thác trên thành phần CSDL này chỉ có thể tiến hành qua thành phần giao diện ứng dụng. Khi làm việc chỉ người làm việc thích hợp mới có thể chuyển CSDL về trạng thái sẵn sàng phục vụ và khi kết thúc công việc CSDL lại được chuyển về trạng thái an toàn tuyệt đối. Những người dùng có quyền khai thác trên CSDL có yêu cầu độ mật cao thì cũng có quyền khai thác CSDL có u cầu độ mật thấp hơn.
Mã hóa các trường dữ liệu quan trọng: Những trường chứa thơng tin có độ bảo mật cao được mã hóa bằng hệ mật tương ứng với yêu cầu của dữ liệu. Việc xác định độ mật của từng trường phải được xác định bởi những người có thẩm quyền. Các thơng tin có độ mật cao ln được lưu trữ ở dạng mã hóa. Những thơng tin này chỉ được giải mã ở tầng giao diện với người dùng và chỉ có những thơng tin thỏa mãn yêu cầu của người dùng và trong thẩm quyền được phép của người dùng mới được giải mã.
Kiểm soát các luồng dữ liệu: Kiểm sốt chuyển thơng tin giữa các mức có những mức bảo vệ khác nhau. Có hai kiểu chính sách kiểm sốt thơng tin trong các hệ quản trị CSDL để phục vụ cho bảo vệ CSDL là:
Mandatory: Với kiểu chính sách kiểm sốt này thì ngồi việc chống lại việc khai thác dư liệu bất hợp pháp của những người dùng khơng có thẩm quyền thì hệ thống cịn có khả năng chống lại việc khám phá dữ liệu gián tiếp thông qua chuyển dữ liệu theo kênh ngầm để từ đó có thể dẫn tới khám phá ra dữ liệu một cách bất hợp pháp. Ví dụ: Chuyển dữ liệu từ mức bảo vệ cao xuống mức bảo vệ
56
thấp thông qua lệnh Read dữ liệu ở mức cao và Write xuống mức bảo vệ thấp hơn. Hành động này sẽ tạo điều kiện cho việc khai thác dữ liệu có mức bảo vệ cao bởi người dùng khơng có thẩm quyền.
Hình 3.3: Mơ hình khai thác CSDL được bảo mật.
Kiểm soát người dùng CSDL: Người dùng CSDL, hồ sơ được kiểm soát bởi hai mức an toàn: Mức quy định bởi hệ thống an ninh CSDL và mức quy định bởi người quản trị CSDL. Khi người dùng vượt qua được cả hai mức kiểm sốt thì mới có thể thực hiện được các thao tác với CSDL. Tuy bị kiểm soát bởi hai mức bảo vệ, song giao diện truy cập chỉ có một giao diện duy nhất để khơng gây phiền phức trong q trình sử dụng của người dùng.
Tóm lại, với những giải pháp kỹ thuật trên, chúng ta đã giải quyết được bài toán thứ hai trong mơ hình an tồn đề xuất. Mơ hình có thể được thể hiện như hình 3.3.
3.5.3.3. Giải quyết bài toán “đảm bảo an tồn CSDL khi khơng phục vụ tác nghiệp”
Khi không phục vụ tác nghiệp, phần CSDL chứa dữ liệu có độ mật cao sẽ được chuyển về trạng thái lưu giữ. Khi ở trạng thái này thì ngồi những trường quan trọng được mã hóa theo cách đã trình bày trong bài tốn an tồn thứ hai thì tồn bộ CSDL được mã hóa. Hệ mật phục vụ cho mã hóa cũng là sự kết hợp giữa mã hóa khóa đối xứng và mã hóa khóa cơng khai đảm bảo cho người dùng hợp lệ có thể chuyển CSDL về trạng thái
Giao diện người dùng CSDL
Người dùng
57
khai thác. Như vậy sẽ ngăn chặn được những tấn công qua đường hệ điều hành vào CSDL chứa những thơng tin có độ bảo mật cao.
Với những dữ liệu khơng có nhu cầu bảo mật thì hệ thống chỉ đảm bảo xác thực nội dung. Các kỹ thuật được áp dụng nhằm đảm bảo phát hiện được những thay đổi nội dung bất hợp pháp.
3.5.4. Thiết kế hệ mật
Hệ mật được sử dụng để bảo vệ dữ liệu cho hệ thống CSDL trong mơ hình bảo mật CSDL đề xuất dựa trên hai hệ mật cơ bản sau:
Hệ mật mã khóa cơng khai.
Hệ mật mã khóa đối xứng.
Hệ mật mã khóa cơng khai được sử dụng để phân phối khóa phiên cho các phiên làm việc, xác thực người sử dụng và dữ liệu còn hệ mật mã khóa đối xứng được sử dụng để mã hóa dữ liệu. Hai hệ mật mã này được kết hợp với nhau để tạo ra các hệ mật cụ thể phục vụ cho các mục tiêu an tồn khác nhau như đã trình bày ở trên.
3.5.5. Hệ thống quản lý và phân phối khóa
Hệ thống bảo mật sử dụng hai hệ mật cơ bản để đảm bảo an tồn là hệ mật mã hóa khóa cơng khai và hệ mật mã hóa khóa đối xứng. Hệ mật mã hóa khóa cơng khai được sử dụng để phục vụ cho phân phối khóa phiên trong các phiên làm việc, xác thực người dùng và dữ liệu.
Để giải quyết vấn đề “quản lý và phân phối khóa trong hệ thống bảo mật ứng dụng cơ sở hạ tầng khóa cơng khai ( PKI )”. Hệ thống cấp phát chứng chỉ là việc như sau: Một CA phát hành các chứng chỉ cho người tham gia vào hệ thống CSDL nắm giữ cặp khóa cơng khai – bí mật. Mỗi chứng chỉ gồm có một khóa cơng khai và thơng tin dùng để nhận dạng duy nhất chỉ thể của chứng chỉ. Chứng chỉ CA kí bằng khóa riêng của CA.
Một khi các chứng chỉ được thiết lập, nếu người dùng cần khóa cơng khai của một đối tượng khác trong hệ thống CSDL, anh ta có thể lấy được khóa cơng khai của đối
58
tượng đó bằng cách lấy một bản sao chứng chỉ của th bao, lấy ra khóa cơng khai, kiểm tra chữ ký của CA có trên chứng chỉ bằng cách sử dụng khóa cơng khai của CA.
Nếu một đối tượng muốn làm giả một chứng chỉ để truy nhập trái phép vào hê thống CSDL khi chứng chỉ này đang được phát hành cho người sử dụng khóa cơng khai, anh ta sẽ bị những người này phát hiện ra việc làm giả, bởi vì chữ ký số của CA được kiểm tra chính xác. Khi sử dụng chứng chỉ trong hệ thống bảo đảm an tồn CSDL các cặp khóa của người dùng và khóa cơng khai của CA sẽ được lưu trữ trên thiết bị lưu trữ an tồn, nhỏ gọn. Với cách phân phối khóa như vậy, sẽ giúp thuận lợi hơn rất nhiều cho việc quản lý khóa với việc mở rộng hệ thống. Chúng ta đều biết phân phối khóa là một khâu hết sức quan trọng tất cả các hệ thống an tồn. Có được một hệ thống phân phối khóa an tồn cũng đồng nghĩa với việc nâng cao hiệu quả và độ tin cậy của hệ thống mật mã mà ta áp dụng.
3.6. Nghiên cứu giải pháp bảo mật CSDL trong DBMS SQL Server 3.6.1. Giới thiệu 3.6.1. Giới thiệu
SQL Server là một DBMS do Microsoft phát triển. Các phiên bản của SQL Server (trước phiên bản 7.0) được phát triển trên nền tảng là Sybase SQL Server. Phiên bản SQL Server 7.0 được viết lại từ mã Sybase. Nó được tiếp nối bởi SQL Server 2000. Ngày này SQL Server đã có phiên bản mới nhất là SQL Server 2010. SQL Server hỗ trợ nhiều loại dữ liệu khác nhau như: Interger,float, double, char, varchar, text. Một cơ sở dữ liệu SQL Server có thể chứa tối đa 231
đối tượng và có thể span trên nhiều hệ điều hành cấp tập tin với kích thước tối đa là 220TB. Các dữ liệu trong CSDL được lưu trữ trong các tập tin dữ liệu chính với phần mở rộng là .mdf, tập tin thứ cấp được xác định với phần mở rộng là .ndf được sử dụng để lưu trữ siêu dữ liệu và Log files được định nghĩa với phần mở rộng là .ldf.
SQL Server cho phép nhiều người dùng sử dụng cùng một cơ sở dữ liệu đồng thời. Nó kiểm sốt truy cập đồng thời vào dữ liệu được chia sẻ để đảm bảo tính tồn vẹn của dữ liệu – khi nhiều người dùng cập nhật cùng một dữ liệu hoặc người dùng cố gắng để đọc dữ liệu đó là trong q trình bị thay đổi bởi người dùng khác. SQL Server cung cấp hai chế độ kiểm soát đồng thời là: bi quan và lạc quan.
59
SQL Server là một hệ quản trị cơ sở dữ liệu nhanh, đáng tin cậy, dễ sử dụng. SQL Server ngày đã và đang được Microsoft quan tâm phát triển để hồn thiện hơn nhằm đem lại những tính năng tốt nhất cho người sử dụng.
3.6.2. Vấn đề bảo mật trong SQL Server
Bảo mật trong CSDL là yếu tố cần thiết trong tất cả các DBMS. Bảo mật là bảo vệ dữ liệu chống lại các Cracker đồng thời cũng bảo vệ dữ liệu đối với người dùng. Ví dụ: Người dùng có thể đọc, xóa, sửa hoặc thêm những bản ghi mà họ không được phép. Để tránh tình trạng này, người quản trị có thể tạo ra một cơ chế bảo mật trên CSDL để ngăn