5 DANH MỤC CÁC HÌNH VẼ Hình 1.1 Tương tác giữa trình ứng dụng và cơ sở dữ liệu Hình 1.2 Hệ thống kiểm soát truy nhập Hình 1.3 Kiểm soát truy nhập bắt buộc Hình 1.4 Kiểm soát truy nhập t
Trang 11
MỤC LỤC
LỜI CAM ĐOAN 3
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 4
DANH MỤC CÁC HÌNH VẼ 5
MỞ ĐẦU 6
Chương 1 - TỔNG QUAN VỀ AN TOÀN THÔNG TIN TRONG CƠ SỞ DỮ LIỆU 8
1.1 Giới thiệu 8
1.2 Khái niệm cơ bản 8
1.2.1 Các thành phần của DBMS 9
1.2.2 Các mức mô tả dữ liệu 10
1.3 Vấn đề an toàn trong cơ sở dữ liệu 11
1.3.1 Các hiểm hoạ đối với an toàn cơ sở dữ liệu 11
1.3.2 Các yêu cầu bảo vệ cơ sở dữ liệu 12
1.4 Kiểm soát an toàn 13
1.4.1 Kiểm soát luồng 14
1.4.2 Kiểm soát suy diễn 14
1.4.3 Kiểm soát truy nhập 14
Chương 2 - CƠ SỞ LÝ THUYẾT MẬT MÃ TRONG BẢO MẬT CỞ SỞ DỮ LIỆU 16
2.1.Giới thiệu 16
2.2 Mã hóa bằng khóa bí mật 16
2.2.1 Cơ chế mã hóa khóa bí mật 17
2.3 Mã hóa bằng khóa công khai 19
2.3.1 Cơ chế mã hóa khóa công khai 20
2.4 Xác thực thông tin 23
2.5 Hàm băm 23
2.6 Chữ ký số 24
Trang 22
Chương 3 - NGHIÊN CỨU CÁC GIẢI PHÁP BẢO MẬT CƠ SỞ DỮ LIỆU
MYSQL 26
3.1 Giải pháp bảo mật cơ sở dữ liệu 26
3.1.1 Giới thiệu 26
3.1.2 Mô hình bảo mật CSDL 26
3.1.3 Các yếu tố mất an toàn 29
3.1.4 Yêu cầu đặt ra khi xây dựng một hệ thống an toàn 31
3.1.5 Giải pháp 31
3.2 Nghiên cứu giải pháp bảo mật CSDL trong hệ quản trị CSDL MySQL 39
3.2.1 Giới thiệu 39
3.2.2 Vấn đề bảo mật trong MySQL 39
3.2.3 Xây dựng ứng dụng 47
KẾT LUẬN 56
TÀI LIỆU THAM KHẢO 57
Trang 33
LỜI CAM ĐOAN
Tôi xin cam đoan những kết quả được trình bày trong luận văn là hoàn toàn trung
thực của tôi, không vi phạm bất cứ điều gì trong luật sở hữu trí tuệ và pháp luật Việt Nam Nếu sai, tôi hoàn toàn chịu trách nhiệm trước Nhà trường
TÁC GIẢ LUẬN VĂN
Nguyễn Xuân Trường
Trang 44
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
AES Advanced Encrypition Standard Chuẩn mã tiên tiến
CA Certificate Authority Chủ quyền chứng nhận
CSDL Database Cơ sở dữ liệu
DBMS Database Management Hệ quản trị cơ sở dữ liệu DDL Data Definition Language Ngôn ngữ định nghĩa dữ liệu DES Data Encript Standard Chuẩn mã hóa dữ liệu
DML Data Nanipulation Language Ngôn ngữ thao tác dữ liệu MAC Message Authentication Code Mã xác thực bản tin
QL Query Language Ngôn ngữ truy vấn
SQL Structured Query Language Ngôn ngữ truy vấn có cấu trúc
Trang 55
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Tương tác giữa trình ứng dụng và cơ sở dữ liệu
Hình 1.2 Hệ thống kiểm soát truy nhập
Hình 1.3 Kiểm soát truy nhập bắt buộc
Hình 1.4 Kiểm soát truy nhập tuỳ ý
Hình 1.5 Thiết kế các quy tắc trao quyền
Hình 2.1 Mã hóa bằng khóa bí mật
Hình 2.2 Sơ đồ mã hóa AES
Hình 2.3 Mã hóa bằng khóa công khai
Hình 3.1 Các thành phần của mô hình an toàn trong một hệ thống an toàn
Hình 3.2 Dòng dữ liệu trao đổi giữa hai nút
Hình 3.3 Mô hình khai thác CSDL được bảo mật
Hình 3.4 Giao thức bắt tay của SSL
Hình 3.5 Mô hình bài toán ứng dụng một cấp
Hình 3.6 Form đăng nhập và xác thực user
Hình 3.7 Giao diện chọn chứng thư số của người đăng nhập
Hình 3.8 Dữ liệu rõ trên ứng dụng máy trạm chi nhánh
Hình 3.9 Thông tin user đã được mã hóa trong CSDL MySQL
Hình 3.10 Dữ liệu đã được mã hóa ở một số trường lưu trong máy chủ chi nhánh Hình 3.11 Thêm mới danh mục cán bộ
Hình 3.12 Sửa danh mục cán bộ
Hình 3.13 Mô hình bài toán ứng dụng hai cấp
Hình 3.14 Dữ liệu rõ trên ứng dụng máy trạm chi nhánh
Hình 3.15 Dữ liệu với một số trường đã được mã hóa lưu trong máy chủ trụ sở chính
Hình 3.16 Thông tin chứng thư số của người gửi
Trang 6kỹ thuật tấn công ngày càng tin vi hiện đại thực hiện trên diện rộng với nhiều cách thức khác nhau Điều đó sẽ ảnh hưởng rất lớn đến quá trình hoạt động của tổ chức, doang nghiệp, website do đó ta cần phảo có biện pháp để bảo vệ toàn bộ cơ sở dữ liệu đó
Tính cấp thiết của đề tài
Hiện nay rất nhiều các đơn vị sử dụng hệ quản trị CSDL MySQL để tránh nguy cơ mất an toàn thông tin và bảo vệ dữ liệu của các đơn vị, doanh nghiệp, các website Do vậy cần tập trung nghiên cứu bảo mật cơ sở dữ liệu là rất cần thiết Chính vì nhận thấy nhiệm vụ bảo vệ dữ liệu quan trọng như trên và My SQL - là hệ
quản trị cơ sở dữ liệu rất phổ biến nên tôi đã chọn đề tài "Bảo mật Cơ sở dữ liệu
MySQL"
Mục đích của đề tài (các kết quả cần đạt được)
- Đề tài tìm hiểu các kỹ thuật và phương pháp để thực hiện nhiệm vụ bảo mật
và an toàn thông tin trong MySQL, quá trình thực hiện và các kiến thức khoa học và thuật toán liên quan như: Xác thực, bảo mật dữ liệu, mật mã, chữ ký số …
- Áp dụng các kết quả tìm hiểu để triển khai hệ thống bảo mật và an toàn thông tin trong MySQL
- Các vấn đề bảo mật, chứng thực trong MySQL, sử dụng chữ ký số, các kỹ thuật sử dụng, phương pháp kết hợp các hệ mật mã trong bảo mật
Trang 77
- Cài đặt thử nghiệm vấn đề về bảo mật và an toàn trong MySQL đã nghiên cứu
Phương pháp nghiên cứu
Nghiên cứu tài liệu, ứng dụng và công nghệ liên quan Tổng hợp các tài liệu
lý thuyết về bảo mật CSDL Xây dựng ứng dụng để bảo mật CSDL MySQL
Trang 88
Chương 1 - TỔNG QUAN VỀ AN TOÀN THÔNG TIN TRONG CƠ SỞ DỮ
LIỆU 1.1 Giới thiệu
An ninh cơ sở dữ liệu đã trở thành một vấn đề có tầm quan trọng toàn cầu, những kẻ xâm nhập tìm mọi con đường để đánh cắp dữ liệu Mặc dù chúng ta không bao giờ khẳng định an toàn 100%, chúng ta cần phải thực hiện mọi biện pháp
để giảm thiểu rủi ro và bảo vệ trước những kẻ xâm phạm, bởi vì tác động của một hành vi xâm phạm có thể là thảm họa ở nhiều mức độ khác nhau
Hướng triển khai nhiều lớp bảo mật trong môi trường cơ sở dữ liệu quan trọng là phương pháp hữu hiệu nhất để giảm thiểu nguy cơ xâm phạm dữ liệu Nếu nhiều lớp bảo mật được áp dụng cho một môi trường lưu trữ dữ liệu, khi đó những
kẻ xâm nhập sẽ có một thời gian khó khăn hơn khi truy cập dữ liệu Trong các môi trường đa lớp bảo mật, một kẻ xâm nhập đã có thể thỏa hiệp các lớp đầu tiên sẽ phải tìm cách vượt qua lớp thứ hai và thậm chí lớp ba để có được quyền truy cập, làm cho xâm nhập phức tạp và tốn thời gian
Để bảo mật môi trường lưu trữ dữ liệu cần có những lớp bảo vệ sau: bảo mật
cơ sở dữ liệu, bảo mật máy tính và an ninh mạng Để đảm bảo hiệu quả cơ sở dữ liệu, người ta phải bảo mật môi trường cơ sở dữ và bảo mật của các hệ cơ dữ liệu
đó
1.2 Khái niệm cơ bản
CSDL là tập hợp có tổ chức của các dữ liệu liên quan với nhau về mặt logic, được sử dụng trong các tổ chức với những ứng dụng khác nhau Trong thiết kế CSDL có hai vấn đề chính đó là thiết kế pha khái niệm và thiết kế pha logic, hai pha này dùng để mô tả cấu trúc CSDL Trong quá trình thiết kế pha logic, lược đồ logic được chuyển từ lược đồ khái niệm Pha khái niệm độc lập với DBMS, pha logic phụ thuộc vào từng DBMS
DBMS là phần mềm ứng dụng để quản lý, tạo mới, bảo trì, và đảm bảo truy cập có điều kiện tới CSDL của người dùng Có rất nhiều DBMS khác nhau, từ các
Trang 99
phần mềm nhỏ chạy trên máy tính các nhân đến các hệ quản trị phức tạp chạy trên các siêu máy tính Nhưng tất cả đều có đặc điểm chung là sử dụng ngôn ngữ truy vấn có cấu trúc SQL Các ngôn ngữ dùng trong DBMS bao gồm:
DDL là ngôn ngữ định nghĩa dữ liệu, hỗ trợ định nghĩa lược đồ CSDL logic
DML là ngôn ngữ thao tác dữ liệu, được người dùng đặc biệt sử dụng, ví
dụ như nhà phát triển Bao gồm các cú pháp cập nhật, xóa, thêm thông tin
QL là ngôn ngữ hỏi, cho phép người sử dụng khai thác dữ liệu, truy vấn thông tin trên CSDL
Hỏi đáp cơ sở dữ liệu - QL
Quản trị cơ sở dữ liệu - DBMS
Trang 1010
chương trình quản lý file, thực thi các thao tác trên file Chương trình này chịu trách nhiệm lấy dữ liệu từ trong CSDL rồi trả về kết qủa cho người dùng thông qua chương trình quản lý file, chương trình quản lý CSDL Bộ xử lý DML, QL là nơi tiếp nhận sự trả về cuối cùng
Hình 1.1 Tương tác giữa trình ứng dụng và cơ sở dữ liệu Tất cả mọi thao tác nhằm truy vấn tới CSDL đều được thực hiện thông qua các thủ tục của DBMS Thực hiện một câu lệnh DML tương ứng với một thủ tục của DBMS truy cập tới CSDL
1.2.2 Các mức mô tả dữ liệu
DBMS mô tả dữ liệu theo nhiều mức khác nhau Mỗi mức cung cấp một mức trừu tượng về cơ sở dữ liệu Trong DBMS có thể có các mức mô tả sau:
Tầng hiển thị logic: chức năng của tầng là hỗ trợ các ứng dụng hiển thị trên
đó, việc xây dựng tầng này phụ thuộc vào các yêu cầu của mô hình logic và mục đích của ứng dụng Tầng hiển thị logic mô tả một phần tầng lược đồ CSDL logic Tầng này sử dụng DDL để định nghĩa các hiển thị logic và DML để thực hiện các thao tác trên đó
Vùng làm việc của các trình ứng dụng
Thủ tục của DBMS
Vùng làm việc của DBMS
Trang 1111
Tầng lược đồ dữ liệu logic: ở tầng này tất cả dữ liệu của CSDL được mô tả
sử dụng mô hình logic của DBMS Dữ liệu và các mối quan hệ của dữ liệu được mô
tả qua DDL của DBMS và các thao tác khác nhau trên tầng này được xác định thông qua DML của DBMS
Tầng dữ liệu vật lý: ở tầng này kiến trúc lưu trữ của dữ liệu chính là các file trên bộ nhớ ngoài Dữ liệu là các dữ liệu vật lý được lưu trữ như bản ghi hay con trỏ của bản ghi
Việc DBMS tạo ra các tầng khác nhau trong mô tả của dữ liệu làm cho khái niệm về logic và vật lý của dữ liệu trở nên độc lập ở cả hai mức logic và vật lý
Độc lập logic nghĩa là một lược đồ logic có thể được thay đổi mà không làm thay đổi các chương trình ứng dụng làm việc của lược đồ này
Độc lập vật lý nghĩa là lược đồ dữ liệu vật lý có thể thay đổi mà không cần thay đổi các ứng dụng truy cập dữ liệu trên đó
1.3 Vấn đề an toàn trong cơ sở dữ liệu
1.3.1 Các hiểm hoạ đối với an toàn cơ sở dữ liệu
Hiểm họa đối với an ninh cơ sở dữ liệu là người truy cập trái phép vào CSDL nhằm sao chép, sửa đổi, khám phá thông tin Hiện nay hiểm họa hàng đầu đối với
an toàn cơ sở sữ liệu là:
Lạm dụng quyền vượt mức: Người dùng sử dụng quyền vượt mức các yêu cầu trong chức năng công việc của mình
Lạm dụng quyền hợp pháp: Người dùng sử dụng không dúng mục đích quyền của mình để thu thập dữ liệu
Nâng cấp quyền bất hợp pháp: Kẻ tấn công thay đổi quyền truy nhập của người bình thường thành quyền truy nhập của một người quản trị
Lợi dụng các điểm yếu của nền tảng: Các điểm yếu trên hệ điều hành, điểm yếu trong các dịch vụ được cài đặt máy chủ CSDL có thể dẫn tới truy nhập bất hợp pháp, hay từ chối dịch vụ
Trang 12 Từ chối dịch vụ: Người dùng hợp pháp sẽ không thể truy cập được dữ liệu hay các ứng dụng trên mạng
Lợi dụng sự sơ hở để khai thác phương tiện lưu trữ: do các phương tiện lưu trữ không thường xuyên được bảo vệ khỏi các tấn công dễ dẫn đến mất mát đĩa và băng sao lưu CSDL
1.3.2 Các yêu cầu bảo vệ cơ sở dữ liệu
Bảo vệ cơ sở dữ liệu khỏi các hiểm hoạ, có nghĩa là bảo vệ tài nguyên, đặc biệt là dữ liệu khỏi các thảm hoạ, hoặc truy nhập trái phép Các yêu cầu bảo vệ cơ
sở dữ liệu gồm:
Bảo vệ chống truy cập trái phép: đây là một vấn đề được quan tâm chính trong an toàn CSDL Nó bao gồm việc truy cập hợp pháp tới dữ liệu của người được cấp quyền Các yêu cầu truy cập sẽ được DBMS kiểm tra lại để xem xét có chấp nhận quyền đó của người dùng hay chương trình ứng dụng không thông qua bảng phân quyền Kiểm soát truy cập tới dữ liệu khó hơn nhiều so với kiểm soát truy cập tới file và việc kiểm soát cần được thực hiện trên các đối tượng dữ liệu ở mức thấp hơn mức file, đó là các bản ghi, thuộc tính và giá trị
Bảo vệ chống suy diễn: suy diễn chỉ rõ khả năng thu được thông tin bí mật
từ những dữ liệu đã được công khai Vấn đề suy diễn thường là mối đe dọa lớn của
cơ sở dữ liệu thống kê Người dùng sẽ bắt đầu tìm thông tin ẩn từ những dấu vết để lại trên thông tin đã được công khai
Trang 1313
Bảo vệ toàn vẹn CSDL: bảo vệ truy vấn lại sự truy cập trái phép bắt nguồn
từ các lỗi, virut, sự phá hoại hoặc các lỗi hệ thống DBMS dựa vào dạng bảo vẹn thông qua việc kiểm soát tính đúng đắn của hệ thống, các thủ tục sao lưu, phục hồi
dữ liệu, các thủ tục an toàn dữ liệu Để duy trì tính tương thích của CSDL, mỗi giao tác phải là một đơn vị tính toán tin cậy, tương thích
Tính đúng đắn của các phép toán thực hiện trên dữ liệu: yêu cầu này đảm bảo tính tương thích logic của dữ liệu và các thao tác thực hiện đồng thời trên dữ liệu
Tính toàn vẹn về mặt ngữ nghĩa của dữ liệu: yêu cầu đảm bảo tính tương thích logic của dữ liệu bị thay đổi, bằng cách kiểm tra dữ liệu có nằm trong khoảng giá trị cho phép hay không
Dữ liệu có khả năng lưu vết và kiểm tra: là khả năng ghi lại mọi truy cập tới dữ liệu và dữ liệu có khả năng kiểm tra được nhằm đảm bảo tính toàn vẹn dữ liệu
Xác thực người dùng: hệ thống phải có khả năng xác thực đối tượng người dùng, và quyền truy cập của người dùng tới dữ liệu, chỉ có người có quyền hợp pháp mới được truy cập tới dữ liệu
Bảo vệ dữ liệu nhạy cảm: bảo vệ dữ liệu nhạy cảm là một vấn đề rất quan trọng đặt biệt trong các môi trường năng động, nhạy cảm như quân đội, thương mại…Vì vậy, cần có chế độ kiểm soát người dùng truy cập tới dữ liệu nhạy cảm, hạn chế tối đa mức truy cập không cần thiết
Có nhiều cấp độ bảo vệ khác nhau: tùy vào tính chất nhạy cảm của dữ liệu
mà phân cấp, cấp độ bảo vệ khác nhau và trao quyền cho người dùng truy cập tới dữ liệu là khác nhau
Giới hạn thông tin truyền nhằm tránh mất mát thông tin trên đường truyền
1.4 Kiểm soát an toàn
Có thể bảo vệ được cơ sở dữ liệu thông qua các phương pháp an toàn sau:
Kiểm soát luồng
Trang 1414
Kiểm soát suy diễn
Kiểm soát truy nhập
Với kiểm soát này chỉ những người có người dùng hợp pháp mới có thể hiểu được vì dữ liệu đã được mã hóa bằng khóa bí mật, để đảm bảo dữ liệu được bí mật
1.4.1 Kiểm soát luồng
Kiểm soát luồng là kiểm tra xem thông tin có trong một số đối tượng có đi vào các đối tượng có mức bảo vệ thấp hơn hay không Các kiểm soát luồng điều chỉnh phân bố luồng thông tin giữa các đối tượng có khả năng truy nhập Các chính sách kiểm soát luồng cần phải chỉ ra các luồng có thể được chấp nhận, hoặc phải điều chỉnh
1.4.2 Kiểm soát suy diễn
Kiểm soát suy diễn nhằm mục đích bảo vệ dữ liệu không bị khám phá gián tiếp
Các kênh suy diễn chính trong hệ thống là:
Truy nhập gián tiếp: từ dữ liệu được phép truy nhập để khám phá ra những
dữ liệu khác qua các câu hỏi truy vấn
Dữ liệu tương quan: Dữ liệu tương quan là một kênh suy diễn đặc trưng,
xảy ra khi dữ liệu có thể nhìn thấy được X và dữ liệu không thể nhìn thấy được Y kết nối với nhau mặt ngữ nghĩa Kết quả là có thể khám phá được thông tin về Y nhờ đọc X
Thiếu dữ liệu: Kênh thiếu dữ liệu là một kênh suy diễn mà qua đó, người
dùng có thể biết được sự tồn tại của một tập giá trị X
1.4.3 Kiểm soát truy nhập
Kiểm soát truy nhập trong các hệ thống thông tin là đảm bảo mọi truy nhập trực tiếp vào các đối tượng của hệ thống tuân theo các kiểu và các quy tắc đã được xác định trong chính sách bảo vệ Một hệ thống kiểm soát truy nhập (hình 1.2) bao gồm các chủ thể truy nhập vào đối tượng
Trang 15Chương này nhằm giới thiệu một cách tổng quan về an toàn thông tin trong cơ
sở dữ liệu Chương đã đề cập tới các vấn đề:
Khái niệm cơ bản về CSDL
Vấn đề an toàn trong CSDL trong đó đã đưa ra được các nguy cơ, hiểm họa hiện nay đối với cơ sở dữ liệu và yêu cầu bảo vệ cơ sở dữ liệu
Các phương pháp kiểm soát an toàn để bảo vệ CSDL
Các quy tắc truy nhập
Các thủ tục kiểm soát
Truy nhập bị
từ chối Truy nhập được phép
Sửa đổi yêu cầu
Các chính sách
an toàn
Yêu cầu
truy nhập
Trang 1616
Chương 2 - CƠ SỞ LÝ THUYẾT MẬT MÃ TRONG BẢO MẬT CỞ SỞ DỮ
LIỆU 2.1.Giới thiệu
Có thể nói rằng, thời đại hiện nay là thời đại của công nghệ thông tin, trong
đó thông tin được lưu trữ các máy tính rất phổ biến, các thông tin này được trao đổi qua mạng internet và lưu trữ trong CSDL…, chính vì thế khả năng dữ liệu bị mất mát trên đường truyền, thay đổi, chỉnh sửa trái phép…là không thể tránh khỏi Do
đó đặt ra vấn đề đảm bảo tính bí mật, toàn vẹn của dữ liệu trên đường truyền hoặc trong các CSDL, mã hóa dữ liệu là phương pháp chính trong việc bảo vệ dữ liệu Thực chất, mã hóa là quá trình biến đổi thông tin ban đầu sang một dạng khác gọi là bản mã
Có nhiều phương pháp mã hóa đã được đưa ra dựa trên các giải thuật phức tạp, để tạo ra sự khó khăn cho những người nào đó muốn phá mật mã mà không cần được ai trao cho chìa khóa Nói việc tạo ra sự khó khăn là vì trên lý thuyết, không thể nói việc tìm ra khóa là không thể hoặc đến khi tìm ra khóa thì dữ liệu không còn giá trị nữa thì đó là một mức độ an toàn tốt
2.2 Mã hóa bằng khóa bí mật
Các hệ thống mã hóa bằng khóa bí mật còn được gọi là mã hóa bằng khóa riêng hay mã hóa bằng khóa đối xứng, mã hóa khóa đối xứng sử dụng duy nhất một khóa cho cả quá trình mã hóa lẫn giải mã
Một số thuật toán hiện đang được sử dụng rộng rãi hiện nay như: DES, Triple DES, RC6, Rijndael (AES)…
Quá trình mã hóa và giải mã bằng khóa bí mật được minh họa như hình sau:
Trang 17Hệ mã hóa khóa bí mật không an toàn nếu khóa bị lộ với xác suất cao, trong
hệ này khóa phải được gửi đi trên kênh an toàn
Vấn đề quản lý và phân phối khóa là khó khăn và phức tạp khi sử dụng hệ
mã hóa bí mật Người gửi và người nhận luôn phải thống nhất với nhau về khóa Việc thay đổi khóa là rất khó khăn và dễ bị lộ
2.2.1.2 Cơ chế mã hóa AES
AES là thuật toám mã hóa khối được chính phủ Hoa kỳ áp dụng làm chuẩn
mã hóa từ năm 2001 AES có thể thể dễ dàng thực hiện với tốc độ cao bằng phần mềm hoặc phần cứng và không đỏi hỏi nhiều bộ nhớ Nó sử dụng một kích thước
khối 128-bit và kích thước khóa 128, 192, hoặc 256 bit
Để mã hóa khối dữ liệu bằng AES thì đầu tiên, tiến hành thao tác:
Add Round Key (thao tác XOR một khóa con với khối dữ liệu) Tiếp theo thì thực hiện một số vòng lặp chính, số vòng lặp chính trong Rijdael như sau:
Bản mã
hóa AES
Bản rõ Giải mã
Mã hóa
Khóa Bản mã
Trang 1818
- Là 9 vòng nếu cả khối cùng mã hóa và khóa có cùng chiều dài là 128 bit
- Là 11 vòng nếu hoặc khối dữ liệu hay khóa là 192 bit và không có cái nào
có kích thước lớn hơn 192 bit
- Là 13 vòng nếu hoặc khối dữ liệu hay khóa có chiều dài là 256 bit Vòng lặp chính bao gồm những bước sau:
SubByte (Substitution Byte): Mỗi byte của khối được thay thế bằng một giá trị khi qua một hộp S-box
ShiftRow (Shift Rows): Là quá trình chuyển đổi các dòng
MixColumn (Multiply Colunms): Thực hiện quá trình nhân ma trận, mỗi cột được nhân với một ma trận kích thước 4x4
AddRoundKey (Xored By Key): Quá trình này chỉ là việc XOR khóa con
và cho kết quả của vòng hiện hành
Vòng cuối cùng chỉ thi hành việc chuyển đổi:
- SubByte
- ShiftRow
- AddRoundKey
2.2.1.3 Phân phối khóa bí mật
Vấn đề an toàn trong dùng khóa đối xứng là vấn đề rất quan trọng vì khóa yêu cầu giữ bí mật tuyệt đối, nếu khóa bị lộ coi như toàn bộ thông tin bị lộ An toàn trong dùng khóa đối xứng liên quan mật thiết tới vấn đề phân phối khóa Sơ đồ khóa đối xứng đòi hỏi cả hai đối tác chia sẻ khóa bí mật chung Dẫn đến việc phải phân phối khóa mật
Với hai đối tác A và B cần thực hiện chia sẻ thông tin thì có cách phân phối khóa bí mật như sau:
A lựa chọn khóa bí mật và truyền cho B
Đối tác thứ ba chọn khóa và phân phối cho A và B
Trang 1919
A và B có thể thống nhất dùng khóa trước để mã khóa mới
A và B trao đổi với một đối tác thứ ba là C và C chuyển tiếp giữa A và B
Phân loại khóa: có hai loại chính là khóa phiên và khóa chính
- Khóa phiên: là khóa tạm thời dùng để mã hóa dữ liệu giữa nhóm người dùng cho một phiên logic sau đó bị hủy
- Khóa chính: là khóa dùng để mã hóa các khóa phiên chia sẻ giữa người dùng và trung tâm phân phối khóa
Đối với vấn đề phân phối khóa thì đối với các mạng lớn thì đòi hỏi cần một trung tâm phân phối khoá và trung tâm này tạo sự tin cậy giữa các đối tượng sử dụng khóa với trung tâm và giữa các trung tâm với nhau Thời gian sống của khóa phiên cần phải hạn chế cho an toàn và các khóa được phát sinh càng ngẫu nhiên càng tốt và hỗ trợ kiểm soát mục đích của bên dùng khóa
2.3 Mã hóa bằng khóa công khai
Mã hóa bằng khóa công khai hay còn được gọi là mã hóa khóa bất đối xứng hay mã hóa bằng khóa chung Hệ thống mã hóa bằng khóa công khai sử dụng hai khóa khác nhau để mã hóa và giải mã: một khóa dành cho người mã hóa thường được công khai và khóa còn lại dùng cho người giải mã và được giữ bí mật Như vậy thì hệ thống mã hóa sử dụng khóa công khai cần có một quá trình sinh ra hai khóa để mã hóa và giải mã thông điệp, và các khóa này được xem như một bộ đôi:
Public-key (khóa công khai): Là khóa được phép công khai mà không phải chịu bất kỳ một rủi ro nào về an toàn, khóa này được dùng để mã hóa dữ liệu
Private-key (khóa bí mật): Là khóa để giải mã và được giữ bí mật, mỗi một
dữ liệu được mã hóa bằng khóa công khai thì chỉ có thể giải mã được bằng một khóa bí mật thích hợp
Một số thuật toán mã hóa khóa công khai phổ biến như: RSA, Elgamal,… Quá trình mã hóa và giải mã bằng cách sử dụng khóa công khai được minh họa như hình sau:
Trang 2020
Hình 2.2 Mã hóa bằng khóa công khai
2.3.1 Cơ chế mã hóa khóa công khai
2.3.1.1 Cơ chế mã hóa RSA
Thuật toán mã hóa RSA do ba nhà toán học là Ron Rivest, Adi Shamir và Len Adlerman tại đại học MIT cùng thực hiện vào năm 1977 và được công bố vào năm 1978 Thuật toán được đặt tên là RSA(Rivest - Shamir - Adlerman) được thiết
kế theo hệ mã hóa khóa công khai
Sự khác biệt cơ bản giữa một hệ mã hóa khóa bí mật với một hệ mã hóa khóa công khai đó là hệ mã hóa khóa công khai sử dụng hai khóa khác nhau để mã hóa
và giải mã Vì thế một bộ mã hóa khóa công khai gồm hai khóa, một khóa dành cho người mã hóa và thường được công khai, khóa còn lại dành cho người giải mã, được giữ bí mật Mặc dù hai khóa này thực hiện các thao tác ngược nhau và có liên quan đến nhau, nhưng phải làm thế nào đó để không thể suy ra khóa bí mật từ khóa công khai
Và để thực hiện được yêu cầu này, Rivest, Shamir và Adleman đã đưa ra phương pháp dựa trên nhận xét là có thể dễ dàng sinh ra hai số nguyên tố lớn và nhân chúng lại với nhau, nhưng rất khó khăn khi muốn phân tích thừa số cho tích của chúng
Các bước thực hiện của thuật toán RSA:
Khóa giải Bản mã
Khóa mã
Trang 2121
Hình 2.3 Các bước thực hiện của thuật toán RSA
Vấn đề cốt lõi của thuật toán RSA là hai số nguyên tố p và q, hai số này cần phải được giữ bí mật tuyệt đối Mặt khác, có thể tính toán được khóa bí mật D nếu phân tích được n thành hai số nguyên tố p và q Nhưng điều này là không khả thi vì phải đối mặt với bài toán khó
Trang 2222
Mã hóa: Bản tin gốc: P, bản mã: C=Pe(mod n)
Giải mã: Bản tin mã: C, bản giải mã: P=Cd(mod n)
Các hệ thống mã hóa khóa công khai khắc phục được nhược điểm phân phối khóa phải được giữ một cách an toàn Tuy nhiên thì khi công khai các khóa dùng để
mã hóa thì lại nảy sinh vấn đề một người nào đó giả danh sử dụng để mã hóa các thông báo gửi đến bên nhận làm cho họ không thể phân biệt được thông báo đó là hợp lệ hay không Và có nhiều phương pháp giải quyết được vấn đề này, điển hình
là chữ ký số
2.3.1.2 Phân phối khóa công khai
Các hệ mã công khai chúng ta đã biết yêu cầu mỗi người phải có một giá trị công khai Để phân phối các giá trị đó cho người dùng đảm bảo tính xác thực, ta có thể sử dụng một trong các kỹ thuật sau:
Phân phối điểm - điểm trên kênh truyền tin cậy: Khóa công khai của các bên thu được thông qua việc tra đổi trược tiếp với nhau trên mật kênh tin cậy Phương pháp này phù hợp với hệ thống không thường xuyên sử dụng hoặc hệ thống đóng và nhỏ
Truy nhập trực tiếp tới các tệp dùng chung: Sử dụng một cơ sở dữ liệu công khai lưu trữ tên và khóa công khai được xác thực mỗi người dùng hệ thống Truy cập từ xa trên những kênh truyền công cộng có thể tránh được những tấn công bị động, còn muốn chống lại những tấn công chủ động ta sử dụng những kênh truyền tin cậy
Sử dụng phục vụ ủy quyền trực tuyến: Một phục vụ tin cậy cho phép các truy nhập như khi truy nhập tới tệp dùng chung, khi các bên có nhu cầu khóa công khai,
nó sẽ được phục vụ gửi cho và chữ ký của phục vụ trên đó Mỗi người sử dụng đều
có thể kiểm thử được chữ ký của phục vụ đó
Sử dụng phục vụ ủy quyền ngoại tuyến và chứng chỉ: Phục vụ được gọi là
CA (ủy quyền chứng chỉ) Mỗi người sử dụng chỉ phải liên lạc với phục vụ một lần
để đăng ký khóa công khai của mình và nhận khóa kiểm thử chữ ký của CA CA sẽ
Trang 23- Kiểm chứng danh tính nguồn gốc thông tin, tức là kiểm tra xem thông tin
có đúng là người gửi hay bị kẻ khác mạo danh
- Chống từ chối bản tin gốc, tức là bản thân thông tin có chứa định danh người gửi và không ai có thể làm việc đó
- Có thể bổ sung thêm việc bảo mật như mã hóa
Do đó để đáp ứng được những yêu cầu đó thì có ba cách mã hóa được lựa chọn là:
- Thông tin được mã hóa bằng khóa đối xứng hoặc công khai
- Sử dụng mã xác thực bản tin, dùng khóa với hàm nén thông tin cần gửi để nhận được một đặc trưng đính kèm với thông tin và người gửi đó
- Sử dụng hàm băm nén thông tin thành dấu vân tay cho thông tin
Yêu cầu bảo mật thông tin khi truyền thông tin trên mạng bao gồm có: Giữ
bí mật thông tin, chỉ cho phép người có quyền biết nắm được thông tin đó, không cho phép theo dõi hoặc cản trở việc truyền tin, tránh việc giả mạo lấy danh nghĩa của người khác để truyền tin, ngăn chặn việc nội dung thông tin bị cắn xén và sửa đổi, tránh việc thay đổi thứ tự bản tin truyền, chống chối cãi
2.5 Hàm băm
Hàm băm chính là một biến thể của mã xác thực thông điệp Với hàm băm, đầu vào là một thông điệp M có kích thước bất kỳ, nhưng đầu ra H(M) có kích thước cố định Mã băm chính là hàm của tất cả các bit trong một thông điệp, đồng
Trang 24Các bước thực hiện để băm một thông điệp là:
Bước 1: Với một thông điệp có kích thước bất kỳ, bổ sung một số bit vào
thông điệp để sao cho độ dài của thông điệp khi đó là bội của một số cho trước Sau
đó chia nhỏ thông điệp ra thành các khối M1, M2,….Ms…
Bước 2: Với H là hàm trạng thái có kích thước n bit, f là hàm nén thực hiện
thao tác trên gói dữ liệu với trạng thái như sau:
H(0) là trạng thái ban đầu, khởi tạo
Hi=f(Hi-1, Mi) với i=1,2…s
Hs là thông điệp đã được rút gọn
2.6 Chữ ký số
Một chữ ký số là một cơ chế xác thực cho phép người tạo ra một thông điệp
để đính kèm một mã số hoạt động như một chữ ký Thông thường các chữ ký được
Trang 2525
tạo thành bằng cách lấy các hash của thông điệp và mã hóa các tin nhắn với khóa riêng của người tạo ra nó Chữ ký đảm bảo nguồn gốc và tính toàn vẹn của thông điệp Chữ ký số dùng để hai thành viên bảo vệ lẫn nhau trong việc gửi thông điệp Chữ ký số có tính chất sau:
Có khả năng xác thực tác giả và thời gian ký
Có khả năng xác thực nội dung tại thời điểm ký
Thành viên thứ ba có thể xác thực để giải quyết tranh chấp
Các yêu cầu đối với chữ ký số:
Chữ ký phải là chuỗi bit phụ thuộc vào các thông điệp được ký
Chữ ký phải sử dụng một thông tin duy nhất nào đó từ người gửi nhằm ngăn chặn tình trạng làm giả chữ ký và chối bỏ chữ ký
Việc tạo ra chữ ký số là dễ dàng
Khó có thể làm giả chữ ký
Cần phải lưu trữ một bản sao các chữ ký
Quá trình thực hiện chữ ký số công khai: Chữ ký số khóa công khai dựa trên nền tảng mật mã khóa công khai Để có thể trao đổi thông tin trong môi trường này, mỗi người dùng có một căp khóa (khóa công khai và khóa bí mật) Khóa công khai được công bố rộng rãi, còn khóa bí mật được giữ kín và không thể tìm được khóa bí mật nếu chỉ biết khóa công khai
Quá trình gồm ba thuật toán: tạo khóa, tạo chữ ký số và kiểm tra chữ ký số
Kết luận
Trong chương này đã giới thiệu những kiến thức chung về mã hóa đối xứng,
mã hoá công khai và cơ chế mã hóa Nêu ra các vấn đề an toàn toàn trong dùng các
hệ mã, phân phối và sử dụng khóa Tìm hiểu về xác thực thông tin, kỹ thuật băm, chữ ký số và một số kỹ thuật cơ bản được sử dụng
Trang 2626
Chương 3 - NGHIÊN CỨU CÁC GIẢI PHÁP BẢO MẬT CƠ SỞ DỮ LIỆU
MYSQL 3.1 Giải pháp bảo mật cơ sở dữ liệu
3.1.1 Giới thiệu
Áp dụng các kiến thức về an toàn thông tin trong cơ sở dữ liệu và cơ sở lý thuyết mật mã trong CSDL Chương 3 sẽ đề xuất giải pháp bảo mật cơ sở dữ liệu, nghiên cứu giải pháp và xây dựng ứng dụng bảo mật trong hệ CSDL MySQL
3.1.2 Mô hình bảo mật CSDL
Đối tượng mà mô hình CSDL an toàn nghiên cứu là các thủ tục ở cấp độ cao, tính độc lập của phần mềm, mô hình khái niệm, nhằm bảo vệ an toàn hệ thống từ yếu tố bên ngoài Mô hình an toàn cung cấp các thành phần đại diện về mặt ngữ nghĩa trong đó cho phép các thuộc tính của hàm, và cấu trúc của hệ thống an toàn được mô tả Mô hình bảo mật hỗ trợ cho người phát triển đưa ra các định nghĩa ở cấp độ cao các yêu cầu bảo vệ và các chính sách được cung cấp một cách ngắn gọn,
rõ ràng phù hợp với mô hình trừu tượng và dễ dàng trong cài đặt hệ thống
Có nhiều mô hình an toàn, các mô hình có thể phân thành nhiều loại nhưng xoay quanh hai mô hình chính là mô hình an toàn bắt buộc và mô hình an toàn tùy chọn
Mô hình an toàn tùy chọn quản lý truy cập của người dùng tới thông tin trong CSDL dựa vào việc xác thực người dùng, dựa vào các quy tắc dành riêng cho từng người dùng và từng đối tượng trong hệ thống, các quyền mà người dùng được thao tác với đối tượng Yêu cầu của người dùng truy cập tới một đối tượng được kiểm tra trong bảng CSDL xem có thỏa mãn các quyền mà họ được cấp không Nếu truy cập của người dùng phù hợp với các quyền của họ thì họ được quyền tiếp tục truy cập vào hệ thống, nếu không hệ thống đưa ra thông báo từ chối truy cập Mô hình bảo vệ tùy chọn nhìn chung cho phép người dùng cấp quyền cho những người dùng khác để truy cập tới các đối tượng trong CSDL Hầu hết quyền đều ở dạng là các chính sách sở hữu, ở đây người tạo ra một đối tượng được phép cấp phát hoặc
Trang 2727
thu hồi quyền truy cập của người sử dụng khác tới đối tượng mà họ tạo ra
Đánh giá: Cho đến nay, truy cập thông tin vẫn dựa phần lớn trên chính sách bảo vệ tùy chọn Thuận lợi mà chính sách tùy chọn mang lại đó là tính mềm dẻo, phù hợp với nhiều hệ thống và các chương trình ứng dụng Tuy nhiên, chính sách điều khiển truy cập tùy chọn có mặt hạn chế, nó không thể cung cấp một cách thực sự chắc chắn nhằm thỏa mãn các yêu cầu bảo vệ Mặc dù mỗi cách thức truy cập chỉ được điều khiển hoặc được cho phép nếu được ủy quyền, tuy nhiên vẫn có thể vượt qua các hạn chế đó bằng cách lách quyền Vấn đề chính mà chính sách tùy chọn gặp phải đó là nó không chịu bất kì hạn chế nào trên các cách thức sử dụng thông tin mà một người dùng giành được, do đó thông tin bị điều khiển dễ dàng Chính điều này làm cho điều khiển tùy chọn có thể bị tấn công từ Trojan khi chúng được nhúng vào trong chương trình
Mô hình an toàn bắt buộc quản lý việc truy cập tới thông tin trong CSDL dựa vào việc phân lớp các chủ thể và các đối tượng trong hệ thống Đối tượng là các thực thể thụ động lưu trữ thông tin như file, bản ghi, không gian trong bản ghi…, chủ thể là các thực thể hoạt động, thành phần truy cập tới các đối tượng Nhìn chung một chủ thể được coi là một quá trình xử lý tính toán đại diện cho người dùng Các lớp thao tác truy cập được kết hợp với các chủ thể và các đối tượng trong
hệ thống, thao tác truy cập của chủ thể trên đối tượng được cấp nếu thỏa mãn các yêu cầu truy cập giữa lớp chủ thể và lớp đối tượng mà hệ thống đặt ra
Đánh giá: Những thuận lợi mà chính sách bắt buộc mang lại xuất phát từ môi trường, nơi có các đối tượng và chủ thể được phân lớp Chúng cung cấp tính xác thực ở cấp độ cao cho vấn đề an toàn dựa trên nhãn có thực Mô hình điều khiển bắt buộc và mô hình điều khiển luồng cho phép lưu vết thông tin do đó ngăn chặn được các kiểu tấn công bề mặt của Trojan Đối với những môi trường đòi hỏi linh động thì chính sách này là không phù hợp Hiện nay mô hình an toàn có thể được xây dựng từ sự tích hợp của chính sách tùy chọn và chính sách bắt buộc
Bên cạnh các mô hình ràng buộc và mô hình tùy chọn, các mô hình có thể được phân loại theo các hướng sau:
Trang 2828
Mô hình phụ thuộc vào mục đích của hệ thống: Tùy thuộc vào mục tiêu của hệ thống, tài nguyên cần bảo vệ, cách điều khiển mà ta có các mô hình khác nhau Như mô hình để bảo vệ hệ điều hành, mô hình để bảo vệ CSDL hoặc bảo vệ
Các thành phần của mô hình CSDL an toàn:
Chủ thể: đây là những thực thể hoạt động của hệ thống, thực hiện các yêu cầu truy cập tới các đối tượng Những truy cập bất hợp pháp của chủ thể có thể đe dọa đến tính an toàn của hệ thống
Đối tượng: đây là các thực thể bị động của hệ thống, chịu sự điều khiển truy cập của chủ thể Nó bao gồm các thông tin cần được bảo vệ từ việc truy cập hoặc các thay đổi bất hợp pháp trên đối tượng
Mô hình truy cập: biểu diễn cách mà chủ thể truy cập, thực thi trên các đối tượng
Chính sách: là các quy tắc đặt ra nhằm thực hiện việc kiểm soát và truy cập tới CSDL
Tập các quyền: là các quyền truy cập của chủ thể
Quyền quản lý: đây chính là các quyền như: cấp phát, thu hồi, sở hữu, cấp quyền