Giải quyết bài toán “Đảm bảo an toàn dữ liệu CSDL khi không phục vụ tác nghiệp”
Môi trường hệ điều hành là nơi DBMS được cài đặt trên đó cho nên việc có kẻ xâm nhập được vào hệ thống qua hệ điều hành thì chúng có thể có các biện pháp tấn công, trộm cắp, khai thác thông tin qua việc cài virus, hay các phương tiện phục vụ cho việc khai thác thông tin, để từ đó chúng có thể đánh cắp được thông tin CSDL,
thông tin đăng nhập vào DBMS... Do vậy việc bảo vệ CSDL qua môi trường hệ điều hành là việc rất quan trọng. Có một số biện pháp như cần phải phân quyền hạn như quyền truy cập máy chủ, bảo trì hệ thống. Quyền chạy các chương trình ứng dụng trên hệ điều hành.
Ngoài ra vấn đề cần chú ý là khi không phục vụ tác nghiệp thì dữ liệu quan trọng trong CSDL sẽ ở trạng thái lưu trữ. Ở trạng thái này thì ngoài những trường quan trọng thì toà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ã đối xứng và mã công khai đảm bảo người dùng hợp pháp có thể chuyển CSDL về trạng thái sẵn sàng phục vụ do đó 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 dữ liệu có độ bảo mật cao.
3.1.2.2. 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 đề xuất được dựa trên hai hệ mật cơ bản:
Hệ mật khóa công khai: Sử dụng để phục vụ cho 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.
Hệ mật khóa đối xứng: Được sử dụng để mã hóa dữ liệu.
Hai hệ mật 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 toàn khác nhau như đã trình bày trong phần trước.
3.1.2.3. Sử dụng 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 để đảm bảo an toàn là hệ mật khóa công khai và hệ mật khóa đối xứng. Hệ mật khóa công khai được sử dụng để phục vụ cho 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.
Để giải quyết bài toán quản lý và phân phối 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àm việc như sau: Một CA phát hành các chứng chỉ cho người tham gia hệ thống CSDL nắm giữ cặp khóa công khai và khóa riêng. 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ỉ. Các 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 tượng đó bằng cách lấy một bản sao chứng chỉ của thuê 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 cập trái phép vào hệ thống CSDL khi chứng chỉ này đang được phát hành cho những 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ỉ số trong hệ thống bảo mật an toàn cho 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 toà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à 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 trong bất kì một hệ thống mật nào. Có được một hệ thống phân phối khóa tốt cũng đồng nghĩa với việc nâng cao hiệu quả và độ tin cậy hệ thống mật áp dụng ở đây.
3.1.2.4. Giải pháp bảo mật trong khâu tác nghiệp
Đây là phần hết sức quan trọng không thể thiếu được trong hệ thống bảo đảm an toàn cho CSDL. Cùng với những giải pháp kỹ thuật, các biện pháp nghiệp vụ sẽ tăng độ an toàn cho hệ thống CSDL. Sau đây là một số biện pháp nghiệp vụ sẽ được triển khai trong hệ thống an toàn cho CSDL.
Quy định khai thác CSDL, bảo vệ máy chủ lưu trữ CSDL. Quy định về nhiệm vụ quản lý khóa.
Quy định về trách nhiệm của người sử dụng khi khai thác CSDL. Quy định rõ ràng ai được phép khi thác CSDL và khai thác đến mức nào.
Với những đối tượng khai thác các dữ liệu có độ mật cao phải hết sức tin cậy và được quản lý chặt chẽ, phải ghi rõ nhật kí khai thác. Số lượng người khai thác được tính toán hết sức cẩn thận.
Có các kỹ thuật nghiệp vụ bảo vệ môđun mật mã. Có các nghiệp vụ bảo vệ các môđun chương trình.
Có các kỹ thuật nghiệp vụ bảo vệ các tham số người dùng trên các thiết bị mang tin.
Về đối tượng sử dụng CSDL tại các mức khác nhau cũng rất khác nhau. Hơn nữa, điều kiện bảo vệ ở các mức khác nhau cũng khác nhau. Do đó tùy từng điều kiện cụ thể và tùy thuộc vào mức độ cần bảo vệ của CSDL mà vận dụng những biện pháp nghiệp vụ phù hợp tại mỗi khu vực. Đối với những hệ thống CSDL nhạy cảm chứa nhiều dữ liệu quan trọng có thể cung cấp cho mỗi người sử dụng một thẻ nghiệp vụ khai thác CSDL. Khi muốn khai thác CSDL, người sử dụng phải trình thẻ thì mới được phép truy cập hệ thống sau đó mới tiến hành những mức kiểm tra tiếp theo.
3.2. Giải pháp bảo mật CSDL trong hệ quản trị CSDL MySQL
3.2.1. Giới thiệu
MySQL Server là một hệ quản trị CSDL quan hệ mã nguồn mở phổ biến nhất hiện nay, được phát triển, phân chia, hỗ trợ bởi MySQL AB. MySQL Server nhanh, đáng tin cậy, dễ sử dụng, chạy trên mọi nền, dễ dàng cấu hình và miễn phí nhưng vẫn là một DBMS rất an toàn. Các tính năng của MySQL Server đang được bổ sung dần qua từng phiên bản. MySQL là giải pháp cơ sở dữ liệu tốt nhất cho các website.
MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server của Microsoft).
MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu.
MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (user name) và mật khẩu tương ứng để truy xuất đến CSDL.
Khi ta truy vấn tới CSDL MySQL, ta phải cung cấp tên truy cập và mật khẩu của tài khoản có quyền sử dụng CSDL đó. Nếu không, chúng ta sẽ không làm được gì cả.
3.2.2. Vấn đề bảo mật trong MySQL
Bảo mật CSDL là một yếu tố cần thiết trong bất kì hệ thống CSDL nào. 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 từ người dùng.
Ví dụ người dùng có thể xóa, sửa, xem hoặc thêm những bản ghi mà họ không được phép. Để tránh những tình trạng này, người quản trị có thể tạo nên một cơ chế bảo mật trên CSDL để ngăn chặn các thao tác mà người dùng không được phép thao tác trên CSDL. Bảo mật đóng vai trò chính trong bất kì ứng dụng nào mà người dùng có thể truy cập vào ít nhất một lần. Cơ chế bảo mật của hệ quản trị CSDL MySQL rất tốt, là một trong hệ quản trị CSDL an toàn hiện nay. Cơ chế bảo mật của hệ quản trị CSDL MySQL bao gồm các lĩnh vực chính [3]:
Bảo mật trong môi trường mạng. Bảo mật tại chỗ.
Các biện pháp tác nghiệp.
3.2.2.1. Bảo mật trong môi trường mạng
Các phiên bản gần đây của MySQL Server hỗ trợ cho các kết nối an toàn giữa các MySQL Client và Server dùng giao thức SSL. Mặc định, MySQL Server dùng
các kết nối giải mã giữa Client và Server. Điều này có nghĩa là một người dùng khi truy cập vào mạng có thể biết được mọi hoạt động của người dùng và thấy được tất cả dữ liệu đang được nhận hay gửi đi. Thậm chí họ có thể thay đổi dữ liệu trên đường truyền. Chính vì vậy giao thức SSL và chuẩn X.509 được sử dụng để mã hóa dữ liệu và xác thực người dùng trong MySQL Server để đảm bảo tính toàn vẹn và bí mật của CSDL.
Để sử dụng giao thức SSL kết nối giữa máy trạm và máy chủ hệ thống phải cung cấp thêm thư viện OpenSSL và yaSSL phù hợp với phiên bản MySQL Server có hỗ trợ SSL... Giao thức SSL được phát triển bởi Netscape, giao thức SSL đã được sử dụng rộng rãi trên mạng Internet trong việc xác thực và mã hóa thông tin giữa máy trạm và máy chủ. 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ủ:
Máy khách sẽ xác thực có đúng là máy chủ cần kết nối hay không. Các kỹ thuật mã hóa công khai được duyệt sử dụng để chắc chắn rằng chứng chỉ và khóa công cộng của máy chủ là có giá trị và được cấp phát bởi một CA trong danh sách các CA đáng tin cậy của máy trạm.
Xác thực máy trạm:
Máy chủ sẽ xác thực có đúng là máy khách muốn kết nối hay không. Phía máy chủ cũng sử dụng các kỹ thuật mã hóa công khai để kiểm tra xem chứng chỉ và khóa công cộng máy trạm có giá trị hay không và được cấp phát bởi một CA trong danh sách các CA đáng tin cậy không.
Mã hóa kết nối:
Để bảo mật thông tin trao đổi giữa máy chủ và máy trạm thì thông tin sẽ được mã hóa bằng các thuật toán mã hóa mà SSL hỗ trợ. Các dữ liệu gửi đi trên một kết nối SSL đã được mã hóa còn được bảo vệ nhờ cơ chế tự động phát hiện xáo trộn, thay đổi dữ liệu đó là các thuật toán băm.
Giao thức SSL hoạt động dựa trên hai nhóm giao thức con là giao thức “bắt tay” và giao thức “bản ghi”. Giao thức bắt 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, còn giao thức bản ghi xác định khuôn dạng cho tiến hành mã hóa và truyền tin hai chiều giữa hai đối tượng đó. Giao thức SSL “bắt tay” sẽ sử dụng SSL “bản ghi” để trao đổi một số thông tin giữa máy chủ và máy trạm vào lần đầu tiên thiết lập kết nối SSL. Một giao dịch SSL thường bắt đầu bởi quá trình “bắt tay” giữa hai bên.
Các giai đoạn trong quá trình “bắt tay” có thể như sau: