ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN THỊ THU TRANG
NGHIÊN CỨU MỘT SỐ GIẢI PHÁP
AN TOÀN VÀ BẢO MẬT CƠ SỞ DỮ LIỆU ỨNG DỤNG
CHO SỞ GIÁO DỤC VÀ ĐÀO TẠO TỈNH QUẢNG NINH
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
THÁI NGUYÊN - 2020
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN THỊ THU TRANG
NGHIÊN CỨU MỘT SỐ GIẢI PHÁP
AN TOÀN VÀ BẢO MẬT CƠ SỞ DỮ LIỆU ỨNG DỤNG
CHO SỞ GIÁO DỤC VÀ ĐÀO TẠO TỈNH QUẢNG NINH
Chuyên ngành: Khoa học máy tính
Mã số: 8 48 01 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Giáo viên hướng dẫn: TS. Hồ Văn Hương
THÁI NGUYÊN - 2020
i
LỜI CẢM ƠN
Trong suốt quá trình học tập vừa qua, em đã được quý thầy cô cung cấp và
truyền đạt tất cả kiến thức chuyên môn cần thiết và quý giá nhất. Ngoài ra, em còn
được rèn luyện một tinh thần học tập và làm việc độc lập và sáng tạo. Đây là tính
cách hết sức cần thiết để có thể thành công khi bắt tay vào nghề nghiệp trong tương
lai.
Đề tài luận văn thạc sĩ là cơ hội để em có thể áp dụng, tổng kết lại những kiến
thức mà mình đã học. Đồng thời, rút ra được những kinh nghiệm thực tế và quý giá
trong suốt quá trình thực hiện đề tài. Sau một thời gian em tập trung công sức cho đề
tài và làm việc tích cực, đặc biệt là nhờ sự chỉ đạo và hướng dẫn tận tình của TS Hồ
Văn Hương cùng với các thầy cô trong trường Đại học Công nghệ thông tin & Truyền
thông - Đại học Thái Nguyên, đã giúp cho em hoàn thành đề tài một cách thuận lợi
và gặt hái được những kết quả mong muốn. Bên cạnh những kết quả khiêm tốn mà
em đạt được, chắc chắn không tránh khỏi những thiếu sót khi thực hiện luận văn của
mình, kính mong thầy cô thông cảm. Sự phê bình, góp ý của quý thầy cô sẽ là những
bài học kinh nghiệm rất quý báu cho công việc thực tế của em sau này.
Là sinh viên ngành công nghệ thông tin, em rất tự hào về khoa mà mình theo
học, tự hào về tất cả các thầy cô của mình.
Em xin chân thành cảm ơn TS Hồ Văn Hương đã tận tình giúp đỡ em hoàn
thành đề tài này.
Em xin chân thành cảm ơn!
Thái Nguyên, tháng 9 năm 2020
Học viên
Nguyễn Thị Thu Trang
ii
LỜI CAM ĐOAN
Em xin cam đoan nội dung luận văn này là do chính em thực hiện, các số liệu
thu thập và kết quả phân tích trong báo cáo là trung thực, không sao chép từ bất cứ
đề tài nghiên cứu khoa học nào. Nếu sai, em xin hoàn toàn chịu trách nhiệm trước
Nhà trường.
Thái Nguyên, tháng 9 năm 2020
Học viên
Nguyễn Thị Thu Trang
iii
MỤC LỤC
LỜI CẢM ƠN ..............................................................................................................i
LỜI CAM ĐOAN ...................................................................................................... ii
DANH MỤC HÌNH ẢNH .........................................................................................vi
MỞ ĐẦU ..................................................................................................................... 1
1. Tính khoa học và cấp thiết của đề tài ...................................................................... 1
2. Đối tượng và phạm vi nghiên cứu của đề tài .......................................................... 2
3. Phương pháp luận nghiên cứu ................................................................................. 2 4. Nội dung và bố cục của luận văn ............................................................................ 3
CHƯƠNG 1. TỔNG QUAN VỀ AN TOÀN THÔNG TIN TRONG CƠ SỞ DỮ LIỆU ............................................................................................................................ 4
1.1. Giới thiệu chung về an toàn, bảo mật cơ sở dữ liệu ......................................... 4 1.2. Khái niệm cơ bản ............................................................................................. 4 1.2.1. Các thành phần của DBMS ....................................................................... 5 1.2.2. Các mức mô tả dữ liệu .............................................................................. 6 1.3. Vấn đề an toàn trong cơ sở dữ liệu .................................................................. 7 1.3.1. Các hiểm hoạ đối với an toàn cơ sở dữ liệu ............................................. 7 1.3.2. Các yêu cầu bảo vệ cơ sở dữ liệu .............................................................. 8 1.4. Kiểm soát an toàn ............................................................................................. 9 1.4.1. Kiểm soát luồng....................................................................................... 10 1.4.2. Kiểm soát suy diễn .................................................................................. 10 1.4.3. Kiểm soát truy nhập ................................................................................ 10 1.5. Khảo sát thực trạng an toàn và bảo mật cơ sở dữ liệu tại Sở Giáo dục và Đào tạo tỉnh Quảng Ninh .............................................................................................. 11 1.6. Kết luận chương 1 .......................................................................................... 15
CHƯƠNG 2. LÝ THUYẾT MẬT MÃ TRONG BẢO MẬT CƠ SỞ DỮ LIỆU ..... 17
2.1. Giới thiệu về lý thuyết mật mã ....................................................................... 17 2.2. Mã hóa bằng khóa bí mật ............................................................................... 18 2.2.1. Khái niệm ................................................................................................ 18 2.2.2. Ưu khuyết điểm........................................................................................ 18 2.2.3. Cơ chế mã hóa khóa bí mật ..................................................................... 19 2.3. Mã hóa bằng khóa công khai ......................................................................... 21 2.3.1. Khái niệm ................................................................................................ 21 2.3.2. Ưu khuyết điểm........................................................................................ 22
iv
2.3.3. Cơ chế mã hóa khóa công khai ............................................................... 22 2.4. Xác thực thông tin .......................................................................................... 25 2.4.1. Bảo vệ tính toàn vẹn của thông tin .......................................................... 26 2.4.2. Kiểm chứng danh tính nguồn gốc thông tin ............................................ 27 2.4.3. Chống từ chối bản tin gốc ....................................................................... 28 2.5. Hàm băm ........................................................................................................ 30 2.6. Chữ ký số ....................................................................................................... 32 2.7. Một số vấn đề về bảo mật cơ sở dữ liệu ......................................................... 35 2.7.1. Mô hình bảo mật CSDL .......................................................................... 35 2.7.2. Các yếu tố mất an toàn với cơ sở dữ liệu ................................................ 39 2.7.3. Những yêu cầu khi xây dựng một hệ thống cơ sở dữ liệu an toàn .......... 40 2.8. Kết luận chương 2 .......................................................................................... 41
CHƯƠNG 3. THỰC NGHIỆM MỘT SỐ GIẢI PHÁP AN TOÀN VÀ BẢO MẬT CƠ SỞ DỮ LIỆU MYSQL ỨNG DỤNG CHO SỞ GIÁO DỤC VÀ ĐÀO TẠO TỈNH QUẢNG NINH ............................................................................................... 42
3.1. Mục tiêu và giải pháp bảo mật cơ sở dữ liệu ................................................. 42 3.1.1. Mục tiêu ................................................................................................... 42 3.1.2. Giải pháp ................................................................................................. 42 3.2. Giải pháp bảo mật CSDL trong hệ quản trị CSDL MySQL .......................... 49 3.2.1. Giới thiệu................................................................................................. 49 3.2.2. Vấn đề bảo mật trong MySQL ................................................................. 50 3.3. Thử nghiệm bảo mật cơ sở dữ liệu trong phát triển website quản lý điểm .... 57 3.3.1. Phạm vi và yêu cầu bài toán ................................................................... 57 3.3.2. Mô hình bảo mật của hệ thống ................................................................ 58 3.3.3. Triển khai mô hình bảo mật .................................................................... 59 3.3.4. Một số kết quả sau khi phát triển website ............................................... 59 3.4. Kết luận chương 3 .......................................................................................... 69
KẾT LUẬN VÀ ĐỀ NGHỊ ....................................................................................... 70
TÀI LIỆU THAM KHẢO ......................................................................................... 72
v
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
AES : Advanced Encrypition Standard
CA : Certificate Authority
CSDL : Cơ sở dữ liệu
DBMS : Database Management System
DDL : Data Definition Language
DES : Data Encript Standard
DDM : Data Manipulation Language
MAC : Message Authentication Code
QL : Query Language
SQL : Structured Query Language
vi
DANH MỤC HÌNH ẢNH
Hình 1.1: Tương tác giữa trình ứng dụng và cơ sở dữ liệu ......................................... 6
Hình 1.2: Hệ thống kiểm soát truy nhập ................................................................... 11
Hình 2.1: Mã hóa bằng khóa bí mật .......................................................................... 18
Hình 2.2: Tiến trình mã hoá AES.............................................................................. 20
Hình 2.3: Mã hóa bằng khóa công khai .................................................................... 22
Hình 2.4: Các bước thực hiện của thuật toán RSA ................................................... 23
Hình 2.5: Lược đồ tạo chữ ký số ............................................................................... 33
Hình 2.6: Lược đồ kiểm tra chữ ký số ...................................................................... 34
Hình 2.7: Các thành phần của mô hình an toàn trong một hệ thống an toàn ............ 39
Hình 3.1: Dòng dữ liệu trao đổi giữa hai nút ............................................................ 44
Hình 3.2: Mô hình khai thác CSDL được bảo mật ................................................... 46
Hình 3.3: Giao thức bắt tay của SSL ......................................................................... 52
Hình 3.4: Mô hình bảo mật của hệ thống .................................................................. 58
Hình 3.5: Giao diện đăng nhập người dùng .............................................................. 60
Hình 3.6: Bản mã tài khoản người dùng ................................................................... 60
Hình 3.7: Giao diện thêm mới học sinh .................................................................... 61
Hình 3.8: Sửa thông tin học sinh ............................................................................... 61
Hình 3.9: Bản mã thông tin học sinh ........................................................................ 61
Hình 3.10: Giao diện nhập điểm của học sinh .......................................................... 62
Hình 3.11: Giao diện xem bản mã điểm của học sinh .............................................. 62
Hình 3.12: Bản mã được lưu trong CSDL ................................................................ 63
Hình 3.13: Giao diện sau khi đăng nhập ................................................................... 63
Hình 3.14: Giao diện thiết lập năm học .................................................................... 64
Hình 3.15: Giao diện thêm mới năm học .................................................................. 65
Hình 3.16: Giao diện thiết lập môn học .................................................................... 65
Hình 3.17: Giao diện thêm mới môn học .................................................................. 66
Hình 3.18: Giao diện quản lý người dùng ................................................................. 66
Hình 3.19: Giao diện quản lý lớp học ....................................................................... 67
vii
Hình 3.20: Giao diện danh sách học sinh trong lớp .................................................. 68
Hình 3.21: Giao diện sửa và xét hạnh kiểm học sinh trong lớp ................................ 68
Hình 3.22: Giao diện tìm kiếm điểm ......................................................................... 69
1
MỞ ĐẦU
1. Tính khoa học và cấp thiết của đề tài
An toàn thông tin luôn là vấn đề được bàn luận và quan tâm trong thời đại
Internet phát triển, đảm bảo thông tin được bảo mật, không bị đánh cắp, sửa đổi làm
ảnh hưởng đến quyền lợi của người dùng cá nhân cũng như của các tổ chức. Ngày
nay, lĩnh vực bảo mật an toàn thông tin đang được nghiên cứu, phát triển và ứng dụng
rộng rãi trong nhiều hệ thống thông tin nhằm đảm bảo một hệ thống có tính bảo mật,
tin cậy và sẵn sàng. Đặc biệt là những hệ thống có cơ sở dữ liệu lưu trữ lớn cần phải
có giải pháp đảm bảo an toàn và bí mật như trong lĩnh vực ngân hàng, tài chính, bảo
hiểm. Do đó, việc tạo ra một hệ thống an toàn phục vụ cho nhu cầu truy cập, sửa đổi,
cập nhật là hết sức cần thiết và chỉ có những cá nhân hay các tổ chức có quyền hợp
lệ mới có khả năng tương tác dữ liệu với hệ thống.
Vì thế, nhiệm vụ đảm bảo tính bí mật cho cơ sở dữ liệu là hết sức quan trọng,
giúp tạo ra một hệ thống bảo mật, hoạt động chặt chẽ và an toàn cho việc cập nhật và
truy cập dữ liệu.
Hiện nay, Quảng Ninh là một trong những tỉnh tiên phong trong việc triển khai
Chính phủ điện tử và ứng dụng công nghệ thông tin vào hầu hết các ngành nghề, các
lĩnh vực trong cuộc sống. Trong đó, giáo dục và đào tạo là ngành được quan tâm hàng
đầu. Sở Giáo dục và Đào tạo tỉnh Quảng Ninh đã không ngừng áp dụng những ứng
dụng mới vào công tác quản lý cũng như công tác dạy và học, mang lại nhiều hiệu
quả tích cực.
Nhưng cùng với thực trạng chung trên cả nước, sự phát triển nhanh chóng của
công nghệ thông tin đang khiến cho vấn đề mất an toàn thông tin của Sở Giáo dục và
Đào tạo tỉnh Quảng Ninh ở mức độ cao. Do năng lực chống lại sự xâm nhập về thông
tin còn yếu, hầu hết không biết rõ đối tượng tấn công cơ sở dữ liệu của mình và chưa
có quy trình thao tác để ứng phó khi có sự cố xảy ra. Từ đó đặt ra những nhiệm vụ
quan trọng đối với Sở Giáo dục và Đào tạo tỉnh Quảng Ninh là công tác đảm bảo an
toàn và bảo mật thông tin cho cơ sở dữ liệu.
2
Được sự gợi ý của thầy giáo hướng dẫn tôi đã chọn đề tài “Nghiên cứu một số
giải pháp an toàn và bảo mật cơ sở dữ liệu ứng dụng cho Sở Giáo dục và Đào tạo
tỉnh Quảng Ninh” làm luận văn tốt nghiệp của mình. Mục tiêu chính của luận văn
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 dữ
liệu như mật mã, xác thực, bảo mật, chữ ký số… có liên quan tới truyền thông an toàn
và cơ sở dữ liệu, sau đó sử dụng hệ quản trị cơ sở dữ liệu MySQL với bài toán quản
lý dữ liệu và truyền thông bảo mật dữ liệu về kết quả học tập của học sinh cho một
trường THPT của tỉnh Quảng Ninh để thử nghiệm.
2. Đối tượng và phạm vi nghiên cứu của đề tài
- Đối tượng nghiên cứu: Tìm hiểu, nghiên cứu thực trạng và nhu cầu về an
ninh, an toàn thông tin trong bộ dữ liệu của Sở Giáo dục và Đào tạo tỉnh Quảng Ninh,
dựa trên các tiêu chuẩn, cơ sở mật mã, chữ ký số nhằm đưa ra các giải pháp an toàn
và bảo mật cơ sở dữ liệu cho Sở Giáo dục và Đào tạo.
- Phạm vi nghiên cứu: Luận văn tập trung nghiên cứu trên bài toán bảo mật
thông tin trong CSDL MySQL.
3. Phương pháp luận nghiên cứu
- Phương pháp nghiên cứu lý thuyết: Nghiên cứu, thu thập các tài liệu đã xuất
bản, các bài báo trên các tạp chí khoa học và các tài liệu trên mạng Internet có liên
quan đến vấn đề đang nghiên cứu của các tác giả trong và ngoài nước. Từ đó, chọn
lọc và sắp xếp lại theo ý tưởng của mình.
Tìm hiểu, vận dụng một số giải pháp an toàn và bảo mật cơ sở dữ liệu.
Thực hiện triển khai cài đặt ứng dụng demo sử dụng một số giải pháp an toàn
và bảo mật cơ sở dữ liệu ứng dụng cho Sở Giáo dục và Đào tạo tỉnh Quảng Ninh.
- Phương pháp nghiên cứu thực nghiệm: 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.
- Phương pháp trao đổi khoa học: Thảo luận, xemina, lấy ý kiến chuyên gia.
3
4. Nội dung và bố cục của luận văn
Ngoài phần mở đầu, kết luận và hướng phát triển, luận văn được bố cục thành
ba chương chính như sau:
Chương 1. Tổng quan về an toàn thông tin trong cơ sở dữ liệu: 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 2. Cơ sở lý thuyết mật mã trong bảo mật cơ sở dữ liệu: 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 trong dùng các hệ mã, phân phối và sử dụng khóa.
Chương 3. Thực nghiệm một số giải pháp an toàn và bảo mật cơ sở dữ liệu
MySQL ứng dụng cho Sở Giáo dục và Đào tạo tỉnh Quảng Ninh: Trình bày các giải
pháp bảo mật trong CSDL, từ đó đưa ra hướng bảo mật CSDL MySQL và xây dựng
ứng dụng bảo mật CSDL MySQL. Xây dựng ứng dụng bảo mật CSDL điểm cho các
trường THPT.
4
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 chung về an toàn, bảo mật cơ sở dữ liệ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. 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.
Để 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.
1.2. Khái niệm cơ bản
CSDL được hiểu là một tập hợp các dữ liệu, các quy tắc dữ liệu và chỉ ra mỗi
quan hệ giữa các dữ liệu ấy. Thông qua quy tắc này thì người tạo lập CSDL mô tả
khuôn dạng logic cho dữ liệu [1].
Hệ quản trị CSDL: Hay trình quản lý CSDL (DBMS) là một hệ thống chương
trình hỗ trợ thuận lợi cho người tạo lập CSDL và quản lý CSDL.
Ví dụ như hệ quản trị CSDL Access của Microsoft: Hỗ trợ cho việc tạo bảng,
câu lệnh truy vẫn, các khung nhìn, thủ tục lưu trữ... rất thuận tiện, thực hiện các chính
sách về truy cập CSDL.
Người quản trị CSDL: Là những người xác định các quy tắc về tổ chức, kiểm
soát, cấp quyền truy cập đến các thành phần của CSDL.
Ví dụ như hệ quản trị CSDL của Microsoft là SQL server: Người quản trị có thể
tạo ra những quy tắc, cấp quyền truy xuất đến CSDL,...
5
Người dùng tương tác đến CSDL: Là những đối tượng truy xuất đến CSDL
thông qua hệ quản trị CSDL hay ứng dụng có tương tác (truy xuất) đến CSDL.
Ví dụ: Website báo chí cần truy xuất thông tin bài báo bằng cách thực hiện kết
nối đến CSDL.
1.2.1. Các thành phần của DBMS
Một DBMS thông thường bao gồm nhiều môđun tương ứng với các chức năng sau:
Định nghĩa dữ liệu - DDL.
Thao tác dữ liệu - DML.
Hỏi đáp cơ sở dữ liệu - QL.
Quản trị cơ sở dữ liệu - DBMS.
Quản lý file.
Nguyên lý hoạt động:
Yêu cầu người dùng cuối hoặc một chương trình ứng dụng thông qua câu lệnh
của DML hoặc QL để thao tác với CSDL. Các câu lệnh này được thông dịch bằng bộ
xử lý DML, QL. Kết quả đưa ra các câu hỏi tối ưu theo lược đồ CSDL. Sau đó các
câu lệnh được đưa tới bộ quản lý CSDL. Tại đây bộ quản lý CSDL kiểm tra xem
người dùng hoặc chương trình có được phép truy cập tới CSDL không, thông qua
bảng phân quyền. Ngoài tra chương trình quản lý CSDL không, thông qua bảng truy
cập đồng thời. Tiếp đó thực hiện truy vấn tới 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 quả 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 [1].
6
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 và được mô tả như sau [1]:
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 đó.
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.
7
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ở dữ 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ụ.
SQL Injection:
Kẻ tấn công chèn các mệnh đề CSDL bất hợp pháp vào nguồn CSDL SQL. Để
truy nhập và khai thác dữ liệu.
Mã độc:
8
Kẻ tấn công sử dụng các mã độc, hoặc phần mềm độc hại để thâm nhập vào các
tổ chức để lấy cắp dữ liệu nhạy cảm.
Lợi dụng lỗ hổng truy vết:
Không phát hiện và ngăn chặn được hành động tấn công của người dùng do
không ghi lại được đầy đủ những hành động của người dùng.
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 [2]:
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.
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.
Bảo vệ toàn vẹn CSDL:
9
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.
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…
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.
Kiểm soát suy diễn.
10
Kiểm soát truy nhập.
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ệ. Hình 1.2 minh hoạ một hệ thống kiểm soát truy
nhập.
11
Hình 1.2: Hệ thống kiểm soát truy nhập
1.5. Khảo sát thực trạng an toàn và bảo mật cơ sở dữ liệu tại Sở Giáo dục và Đào
tạo tỉnh Quảng Ninh
Hiện tại, Sở Giáo dục và Đào tạo tỉnh Quảng Ninh đã và đang thực hiện quản
lý nhiều lĩnh vực khác nhau, trong đó bao gồm một số lĩnh vực sau:
- Quản lý cán bộ (CB) gồm các thông tin sau:
Mã CB, tên CB, ngày sinh, giới tính, trình độ đào tạo, bộ môn, hình thức hợp
đồng, phòng ban/đơn vị, email, số điện thoại, tình trạng.
- Quản lý Đảng viên (ĐV) gồm các thông tin sau:
Mã ĐV, tên ĐV, chức vụ, trình độ đào tạo, phòng ban/đơn vị, ngày vào Đảng,
ngày chính thức, trạng thái.
- Quản lý học sinh (HS) gồm các thông tin sau:
Mã HS, tên HS, ngày sinh, giới tính, lớp, trường, trạng thái.
- Quản lý điểm học sinh được tác giả trình bày chi tiết ở phần tiếp theo của
luận văn.
Quảng Ninh là một trong những tỉnh tiên phong trong việc triển khai Chính
phủ điện tử và ứng dụng công nghệ thông tin vào hầu hết các ngành nghề, các lĩnh
vực trong cuộc sống. Sở Giáo dục và đào tạo tỉnh Quảng Ninh cũng triển khai các
12
biện pháp nhằm đảm bảo an toàn thông tin trong hoạt động ứng dụng công nghệ thông
tin cụ thể như:
a) Công tác triển khai cơ sở dữ liệu ngành Giáo dục và Đào tạo
Ngành GDĐT tỉnh Quảng Ninh triển khai cơ sở dữ liệu ngành Giáo dục theo
hướng dữ liệu được thu thập thông qua phần mềm quản lý trường học trực tuyến tại
các trường học và được chuyển tự động sang phần mềm quản lý cơ sở dữ liệu ngành
Giáo dục qua các giao tiếp lập trình ứng dụng (API).
Đến thời điểm này, toàn bộ dữ liệu học sinh, giáo viên (trừ các nhóm trẻ tư thục
độc lập, các cơ sở đào tạo GDTX tại các trường cao đẳng, đại học) đã được thu thập
và cập nhật vào cơ sở dữ liệu ngành Giáo dục. Sở GDĐT tỉnh Quảng Ninh đã hoàn
thiện, gửi toàn bộ các báo cáo cuối năm trên phần mềm cơ sở dữ liệu.
b) Sở GDĐT tỉnh Quảng Ninh đã thực hiện việc gửi và nhận văn bản điện tử có
ký số thông qua phần mềm quản lý hành chính điện tử (e-office) với Bộ GDĐT. Sở
và các phòng GDĐT, các trường học trực thuộc sở đã thực hiện chuyển nhận văn bản
điện tử có ký số qua phần mềm quản lý văn bản.
c) Trong các năm học vừa qua, Sở GDĐT Quảng Ninh đã triển khai phần mềm
quản lý trường học trực tuyến tại địa chỉ http://qlth.quangninh.edu.vn tới 100% các
trường mầm non, phổ thông trên địa bàn toàn tỉnh.
Sở GDĐT tỉnh Quảng Ninh hiện nay đang quản lý 56 trường THPT thành viên
như các trường: THPT Chuyên Hạ Long, THPT Hòn Gai, THPT Cẩm Phả, THPT
Uông Bí, THPT Hồng Đức, THPT Hoàng Văn Thụ, THPT Đông Thành, THPT Bãi
Cháy, THPT Lê Quý Đôn, THPT Hoành Bồ…
Các trường THPT đều có chung cách tính điểm cũng như quy trình quản lý điểm
của học sinh theo từng khối. Cụ thể như sau:
13
Mỗi học kỳ, một học sinh có các loại điểm: điểm kiểm tra thường xuyên,
điểm kiểm tra định kì và điểm kiểm tra học kỳ. Số lượng con điểm tùy thuộc vào từng
bộ môn và do giáo viên bộ môn quản lý.
Mỗi lớp có một giáo viên chủ nhiệm. Giáo viên chủ nhiệm có trách nhiệm
quản lý kỷ luật của từng học sinh trong lớp. Cuối mỗi học kỳ giáo viên chủ nhiệm sẽ
nhận xét, đánh giá hạnh kiểm, giáo viên chủ nhiệm sẽ thông báo kết quả học tập cả
học kỳ cho học sinh.
Sau mỗi học kỳ, giáo viên chủ nhiệm và giáo viên bộ môn sẽ nhập điểm cho
học sinh mình phụ trách dạy. Các giáo viên có quyền cập nhật điểm (thêm, sửa, xóa
điểm) trong thời gian qui định.
Ngoài ra giáo viên có thể thống kê kết quả học kỳ theo lớp, theo môn và kết
quả cả năm theo lớp, theo môn. Điểm tổng kết môn học được làm tròn đến chữ số
thập phân thứ nhất.
Người quản lý sẽ quản lý việc nhập điểm của học sinh từ các giáo viên, quản
lý người dùng. Ngoài ra, người quản lý sẽ tiếp nhận học sinh mới, lập bảng phân lớp
và lập bảng phân công giáo viên. Hệ thống quản lý học sinh dựa vào họ tên, lớp, ngày
sinh, địa chỉ.
Cách tính điểm được áp dụng:
a) Điểm trung bình môn học kỳ (ĐTBmhk) là trung bình cộng của điểm các bài KTtx,
KTđk và KThk với các hệ số quy định tại Điểm a, Khoản 3, Điều 7 Quy chế này:
TĐKTtx + 2 x TĐKTđk + 3 x ĐKThk ĐTBmhk =
Số bài KTtx + 2 x Số bài KTđk + 3
- TĐKTtx: Tổng điểm của các bài KTtx
- TĐKTđk: Tổng điểm của các bài KTđk
- ĐKThk: Điểm bài KThk
b) Điểm trung bình môn cả năm (ĐTBmcn) là trung bình cộng của ĐTBmhkI với
ĐTBmhkII, trong đó ĐTBmhkII tính hệ số 2:
14
ĐTBmhkI + 2 x ĐTBmhkII ĐTBmcn = 3
c) ĐTBmhk và ĐTBmcn là số nguyên hoặc số thập phân được lấy đến chữ số thập
phân thứ nhất sau khi làm tròn số.
Tiêu chuẩn xét học lực của học sinh:
Loại giỏi:
1. Điểm trung bình các môn từ 8,0 trở lên trong đó điểm trung bình của một
trong hai môn toán và ngữ văn phải từ 8,0 trở lên.
2. Không có môn học nào tổng kết dưới 6,5.
3. Các môn học đánh giá bằng hình thức đạt hay không đạt thì phải Đạt.
Loại Tiên Tiến:
1. Điểm trung bình các môn từ 6,5 trở lên, trong đó điểm trung bình của 1 trong
2 môn toán và ngữ văn từ 6,5 trở lên.
2. Không có môn học nào điểm trung bình dưới 5,0.
3. Các môn học đánh giá bằng hình thức đạt hay không đạt thì phải đạt.
Loại trung bình:
1. Điểm trung bình các môn học từ 5 trở lên, trong đó điểm trung bình của 1
trong 2 môn toán và ngữ văn phải trên 5,0.
2. Không có môn học nào điểm trung bình dưới 3,5.
3. Các môn học đánh giá bằng hình thức đạt hay không đạt phải Đạt.
Loại yếu:
1. Điểm trung bình các môn học từ 3,5 trở lên, không có môn học nào trung
bình dưới 2.
Tiêu chuẩn xét lên lớp:
Cho lên lớp thẳng với những học sinh có đủ điều kiện sau:
1. Nghỉ học không quá 45 ngày/1 năm.
2. Được xếp loại học lực và hành kiểm của cả năm từ trung bình trở lên.
15
Không được lên lớp với khi học sinh vi phạm 1 trong những điều sau đây:
1. Nghỉ học quá 45 ngày/ 1 năm.
2. Có học lực và hạnh kiểm vcar năm xếp loại yếu.
Thi lại: những học sinh có tổng điểm cả năm dưới 5,0 phải thi lại 1 trong 2
môn toán và văn.
d) Hiện tại hệ thống hội nghị trực tuyến (công nghệ video conferencing) đã
được triển khai từ Sở đến tất cả các phòng GDĐT. Hàng tháng, Sở GDĐT đều tổ
chức giao ban trực tuyến tới toàn bộ các phòng GDĐT và các trường THPT trên toàn
tỉnh.
e) Hệ thống cổng thông tin điện tử, thư điện tử theo tên miền riêng đã được triển
khai và hoạt động ổn định tại Sở và các phòng GDĐT từ năm 2012. Dự kiến trong
năm 2020, toàn bộ hệ thống cổng thông tin điện tử ngành GDĐT trong toàn tỉnh sẽ
được đầu tư xây mới.
g) Công tác thực hiện tổ chức thi, cấp chứng chỉ ứng dụng CNTT trên địa bàn
theo Thông tư liên tịch số 17/2016/TTLT-BGDĐT-BTTTT ngày 21/6/2016 sát các
cơ sở đào tạo, trung tâm sát hạch được quản lý, kiểm tra, giám sát chặt chẽ. Toàn bộ
các kỳ thi đều được phê duyệt bằng văn bản, được giám sát bằng cán bộ của Sở GDĐT
và Sở TTTT.
Hiện tại, Sở GDĐT đang tham mưu Ủy ban nhân dân tỉnh phê duyệt dự án Xây
dựng hệ thống quản lý giáo dục thông minh với mục tiêu triển khai các giải pháp
mang tính đồng bộ (bao gồm kho học liệu số, bài giảng e-learning, phần mềm thiết
kế bài giảng điện tử, phần mềm mô phỏng, thí nghiệm ảo và phần mềm dạy học) liên
kết với phần mềm quản lý trường học, cơ sở dữ liệu giáo dục của tỉnh và cả nước.
1.6. Kết luận chương 1
Chươ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. Nội dung của chương đã trình bày tổng quan và chi tiết về các vấn đề:
Khái niệm cơ bản về CSDL.
16
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.
Khảo sát thực trạng an toàn và bảo mật cơ sở dữ liệu tại Sở Giáo dục và Đào
tạo tỉnh Quảng Ninh.
17
CHƯƠNG 2
LÝ THUYẾT MẬT MÃ TRONG BẢO MẬT CƠ SỞ DỮ LIỆU
2.1. Giới thiệu về lý thuyết mật mã
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ị đánh cắp, bị
thay đổi và bị chỉnh sửa trái phép khi truyền thông 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ã.
Một hệ thống mã hóa bao gồm những thành phần sau:
PlainText: Là bản tin sẽ được mã hóa hay bản tin gốc.
CipherText: Là bản tin đã được mã hóa hay bản tin mã.
Thuật toán mã hóa và giải mã.
Encryption: Là quá trình chuyển bản tin gốc thành bản tin dạng mật mã.
Decryption: Là quá trình chuyển bản tin dạng mật mã thành bản tin gốc.
Cách chọn khóa: Giá trị toán học dùng để thực hiện mã hóa.
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ó
khóa. Sự khó khăn ở trên là theo lý thuyết, tuy nhiên những kẻ tấn công vẫn có thể
dò tìm được khoá. Nếu thời gian để những kẻ tấn công dò tìm được khoá đủ lớn hoặc
cho đến khi thì dữ liệu không còn giá trị nữa thì đó là một mức độ an toàn tốt.
18
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 trong Hình 2.1
Hình 2.1: Mã hóa bằng khóa bí mật
2.2.1. Khái niệm
Mã hóa khóa bí mật là thuật toán mà tại đó khóa mã hóa có thể tính toán ra được
từ khóa giải mã. Trong rất nhiều trường hợp, khóa mã hóa và khóa giải mã là giống
nhau. Thuật toán này yêu cầu người gửi và người nhận phải thỏa thuận một khóa
trước khi thông báo được gửi đi, khóa này phải được cất giữ bí mật. Độ an toàn của
thuật toán này phục thuộc vào khóa, nếu để lộ ra khóa này nghĩa là bất kì người nào
cũng có thể mã hóa và giải mã thông báo trong hệ thống mã hóa.
2.2.2. Ưu khuyết điểm
Ưu điểm của phương pháp mã hoá bằng khoá bí mật là thời gian mã hoá nhanh,
sử dụng đơn giản chỉ cần dùng một khóa cho hai quá trình mã hóa và giải mã, tuy
nhiên phương pháp này có nhược điểm là hệ thống sẽ không an toàn nếu khóa bị lộ
với xác suất cao, do đó trong hệ này khóa phải được gửi đi trên kênh an toàn. Điều
19
này làm phức tạp cho hệ thống khi cài đặt và không thể cho phép tạo ra chữ ký điện
tử.
2.2.3. Cơ chế mã hóa khóa bí mật
2.2.3.1. Cơ chế mã hóa AES
AES là thuật toán mã hóa khối được chính phủ Hoa Hỳ á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. Hình 2.2 minh họa tiến trình mã hoá
AES.
Để 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:
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.
20
ShiftRow.
AddRoundKey.
Hình 2.2: Tiến trình mã hoá AES
21
2.2.3.2. 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.
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.
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 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.
2.3. Mã hóa bằng khóa công khai
2.3.1. Khái niệm
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):
22
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:
Hình 2.3: Mã hóa bằng khóa công khai
2.3.2. Ưu khuyết điểm
Ưu điểm của phương pháp này là: Mặc dù kẻ tấn công biết thuật toán mã hóa
và khóa mã hóa cũng không thể xác định được khóa giải mã. Chức năng này đạt được
trên nguyên tắc sử dụng các hàm một chiều trong toán học khi tính hàm y= f(x) là
đơn giản nhưng ngược lại việc tính giá trị y khi đã biết x là rất khó khăn.
Điểm yếu lớn nhất của phương pháp mã hóa bằng khoá công khai là tốc độ mã
hóa và giải mã rất chậm so với mã hóa bí mật, nếu dùng mã hóa công khai để mã hóa
dữ liệu truyền - nhận giữa hai bên thì sẽ tốn rất nhiều chi phí.
2.3.3. Cơ chế mã hóa khóa công khai
2.3.3.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
23
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ã. 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.
Các bước thực hiện của thuật toán RSA được minh họa trong Hình 2.4.
Hình 2.4: 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ó.
Định nghĩa các giá trị:
24
Sinh khóa:
Chọn p, q là 2 số nguyên tố
Tính n = p.q
Tính Ø (n) = (p-1)(q-1)
Chọn e: USCLN[e, Ø(n)] =1
Tính d: d=e-1 mod Ø(n)
Khóa công khai: KU={e,n}
Khóa bí mật: KR={d,n}
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.3.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
25
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ẽ
chứng nhận khóa công khai của người sử dụng rồi rằng buộc giá trị này với xâu xác
định danh tính của người sử dụng, đó là nội dung chứng chỉ của người sử dụng.
2.4. Xác thực thông tin
Việc xác thực thông tin liên quan đến việc sau khi thông tin được truyền trên
mạng bao gồm có:
Bảo vệ tính toàn vẹn của thông tin, tức là bảo vệ thông tin không bị thay đổi
hoặc có thể phát hiện ra nếu thông tin có sự thay đổi trên đường truyền.
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 đó.
26
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ó [4]: 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.4.1. Bảo vệ tính toàn vẹn của thông tin
Đảm bảo tính toàn vẹn của thông tin, tức là thông tin chỉ được phép xóa hoặc
sửa bởi những đối tượng được phép và phải đảm bảo rằng thông tin vẫn còn chính
xác khi được lưu trữ hay truyền đi. Về điểm này, nhiều người thường hay nghĩ tính
toàn vẹn (integrity) đơn giản chỉ là đảm bảo thông tin không bị thay đổi (modify) là
chưa đẩy đủ [8].
Trong an toàn thông tin, toàn vẹn có nghĩa rằng dữ liệu không thể bị chỉnh sửa
mà không bị phát hiện. Nó khác với tính toàn vẹn trong tham chiếu của cơ sở dữ liệu,
mặc dù nó có thể được xem như là một trường hợp đặc biệt của tính nhất quán như
được hiểu trong hô hình cổ điển ACID (tính nguyên tử (Atomicity), tính nhất quán
(Consistency), tính tính cách ly (Isolation), tính lâu bền (Durability) - là một tập các
thuộc tính đảm bảo rằng cơ sở dữ liệu đáng tin cậy) của xử lý giao dịch. Tính toàn
vẹn bị xâm phạm khi một thông điệp bị chỉnh sửa trong giao dịch. Hệ thống thông tin
an toàn luôn cung cấp các thông điệp toàn vẹn và bí mật [5].
Ngoài ra, một giải pháp toàn vẹn dữ liệu (data integrity) có thể bao gồm thêm
việc xác thực nguồn gốc của thông tin này (thuộc sở hữu của đối tượng nào) để đảm
bảo thông tin đến từ một nguồn đáng tin cậy và ta gọi đó là tính xác thực
(Authenticity) của thông tin.
Sau đây là một số trường hợp tính toàn vẹn của thông tin bị phá vỡ:
Thay đổi giao diện trang chủ của một website.
Chặn đứng và thay đổi gói tin được gửi qua mạng.
27
Chỉnh sửa trái phép các file được lưu trữ trên máy tính.
Do có sự cố trên đường truyền mà tín hiệu bị nhiễu hoặc suy hao dẫn đến
thông tin bị sai lệch.
2.4.2. Kiểm chứng danh tính nguồn gốc thông tin
Xác thực nguồn gốc dữ liệu còn được gọi là xác thực thông báo, liên quan nhiều
tới nguyên vẹn dữ liệu. Tuy nhiên, đây là hai khái niệm khác nhau, chúng có thể được
phân biệt rõ ràng qua một số khía cạnh sau đây [2]:
Thứ nhất, xác thực nguồn gốc dữ liệu gắn liền với liên lạc. Nó có mục đích
kiểm tra xem thông báo có phải đến từ nguồn đã khai báo hay không. Còn nguyên
vẹn dữ liệu không cần đến đặc tính liên lạc mà nó có thể được cung cấp ngay trên dữ
liệu lưu trữ.
Thứ hai, xác thực nguồn gốc dữ liệu phải bao gồm sự nhận biết nguồn gốc
của thông báo, còn nguyên vẹn dữ liệu với tư cách là một dịch vụ an toàn có thể được
cung cấp, không cần nhận biết nguồn gốc thông báo.
Thứ ba và có ý nghĩa hơn cả là xác thực nguồn gốc dữ liệu bao gồm sự thiết
lập “tính tươi” của thông báo trong khi đó nguyên vẹn dữ liệu lại không cần làm như
vậy: Một đoạn dữ liệu cũ cũng có thể có tính nguyên vẹn hoàn hảo.
Trong dịch vụ xác thực nguồn gốc dữ liệu, bên nhận thông báo phải kiểm tra
xem thông báo này có đủ mới hay không (tức là khoảng thời gian giữa phát và thu
thông báo là đủ nhỏ). Thông báo mà bên nhận cho là mới thường được đề cập đến
như là một thông báo “tươi”. Việc đòi hỏi thông báo phải tươi có ý nghĩa phổ biến là,
thông báo tươi kéo theo sự đáp ứng tốt giữa những thực thể liên lạc và điều này có
thể suy luận đến tình huống ít khả năng hơn là khi những thực thể liên lạc, máy móc,
những hệ thống hay bản thân thông báo có thể đã bị phá hoại rồi.
Khoảng thời gian để xác định tính tươi của thông báo được xác định bởi các ứng
dụng cụ thể. Một số ứng dụng đòi hỏi khoảng thời gian đó dao động trong khoảng vài
giây. Một số ứng dụng cho phép chu kỳ tươi dài hơn. Chẳng hạn, thời gian sống
28
(lifetime) của séc ngân hàng là khoảng thời gian giữa ngày phát hành séc và ngày chi
trả séc. Đa số các ngân hàng cho phép khoảng thời gian ba tháng là thời gian sống
hợp lệ của séc.
Cuối cùng, cần chỉ ra rằng một sự xác nhận nặc danh nào đó được tạo bởi một
vài sơ đồ mật mã (ví dụ chữ ký mù) cũng giúp phân biệt rõ ràng giữa xác thực nguồn
gốc dữ liệu và nguyên vẹn dữ liệu. Người sử dụng được cấp một “giấy” xác nhận nặc
danh để chứng minh tư cách thành viên với hệ thống. Tại đây, bằng chứng về sự
nguyên vẹn dữ liệu có thể được trình diễn theo cách hợp lý, sống động, tuy nhiên
hành động của hệ thống nhằm nhận biết nguồn gốc dữ liệu sẽ bị ngăn chặn.
2.4.3. Chống từ chối bản tin gốc
Khi sử dụng một chứng chỉ số, người gửi phải chịu trách nhiệm hoàn toàn về
những thông tin mà chứng chỉ số đi kèm. Trong trường hợp người gửi chối cãi, phủ
nhận một thông tin nào đó không phải do mình gửi (chẳng hạn qua mạng) chứng
chỉ số mà người nhận có được sẽ là bằng chứng khẳng định người gửi là tác giả của
thông tin đó. Trong trường hợp chối bỏ, CA cung cấp chứng chỉ số cho hai bên sẽ
chịu trách nhiệm xác minh nguồn gốc thông tin, chứng tỏ nguồn gốc thông tin được
gửi [6].
Trong các ứng dụng, Chữ ký chống chối từ có tác dụng bảo vệ lợi ích riêng của
người ký. Nó bảo đảm cho việc chữ ký không bị bên nhận dùng sai mục đích, cũng
như những việc làm của bên nhận để thuyết phục người khác về sau này. Nó cũng
thuyết phục bên nhận rằng tất cả những người giữ Chữ ký chống chối từ đều có thể
yêu cầu sự hợp tác của người ký và người ký không thể trả lời sai vì họ luôn luôn
thuyết phục một người bất kì rằng một chữ ký tin cậy là đáng tin cậy và một chữ ký
không tin cậy là không tin cậy.
Ví dụ rõ ràng nhất về tác dụng của Chữ ký chống chối từ là chống sự sao chép
trái phép phần mềm. Sản phẩm phần mềm của A có kèm theo Chữ ký chống chối từ
được bán cho B. Sau đó B không thể giả danh A để bán cho C vì khi C thực hiện kiểm
29
tra chữ ký, sự hợp tác của B là vô nghĩa (nếu B chịu hợp tác thì câu trả lời trong giao
thức sẽ là “chữ ký không tin cậy”). Chỉ có sự hợp tác của A mới mang lại sự khẳng
định tin cậy cho C.
Đối với người nhận, các Chữ ký chống chối từ có ưu thế hơn so với phép Chứng
minh tri thức không ở chỗ bên nhận nắm được điều gì đó mà sau này, trong những
hoàn cảnh nhất định, có thể được sử dụng để thuyết phục người khác. Mặc dù vậy,
điều này phụ thuộc vào sự đáp ứng của người ký trong việc tiếp tục xác nhận chữ ký.
Nếu người ký không thể đáp ứng đầy đủ các điều kiện trong giao thức hoặc từ chối
hợp tác thì bên nhận không thể sử dụng chữ ký [9]. Việc từ chối hợp tác xác nhận chữ
ký có thể do người ký muốn chối bỏ trách nhiệm của mình hoặc cũng có thể do người
ký quá bận rộn với công việc. Chẳng hạn, nếu chữ ký chống chối từ trên sản phẩm
phần mềm là của Giám đốc công ty thì Giám đốc không thể thường xuyên cộng tác
với khách hàng để kiểm tra chữ ký được.
Người ta đã đề xuất Lược đồ chữ ký người xác nhận được chỉ định để giải
quyết điểm yếu này và nâng cao độ tin cậy của lược đồ chữ ký chống chối từ. Giao
thức này đòi hỏi có ba bên tham gia: người nhận, người ký và người xác nhận. Người
ký và người xác nhận có khoá công khai và chúng được người nhận chấp thuận. Ở
giao thức ký, người ký đã tạo ra được một Chữ ký chống chối từ như là nó được ký
bởi người xác nhận. Nếu giao thức kiểm tra được tiến hành với sự cộng tác của người
ký, người nhận bị thuyết phục rằng chữ ký này do người ký tạo ra và chữ ký đó có
thể được kiểm tra bởi người xác nhận [2].
Trong giao thức xác nhận, với sự hợp tác của người xác nhận, người kiểm tra
(có thể là chính người nhận hoặc là một người khác. Trong tình huống B gửi cho A
thông báo cho phép rút một số tiền ở tài khoản của B thì người kiểm tra có thể là nhân
viên của ngân hàng) bị thuyết phục rằng chữ ký là tin cậy, nhưng cũng không cho
phép người kiểm tra một mình tiếp tục đi thuyết phục người khác.
30
Trong Lược đồ chữ ký người xác nhận, người xác nhận có khả năng xác nhận
hoặc từ chối chứng thực độ tin cậy của chữ ký gốc nhưng họ không có khả năng giả
mạo chữ ký.
Tuy nhiên, trong nhiều lược đồ Chữ ký người xác nhận, bản thân người ký
không thể xác nhận chữ ký của mình là tin cậy. Nếu người xác nhận từ chối cộng tác
thì dẫn đến việc không thể kiểm tra chữ ký. Trong thực tế, sự tin cậy của các bên
tham gia giữ vai trò rất quan trọng, vì vậy giảm sự rắc rối cho các bên là cần thiết cả
về phương diện kỹ thuật cũng như tiết kiệm chi phí trong giao dịch.
Lược đồ chữ ký người xác nhận không thể chối từ gắn cả chức năng kiểm tra
chữ ký của cả người ký và của cả người xác nhận. Lược đồ này là sự biến đổi của
lược đồ chữ ký người xác nhận. Nó đem lại sự linh hoạt đối với người ký, người nhận
cũng như người xác nhận được chỉ định - người thường được tin cậy trong thực tế. Ở
đây, người nhận có thể kiểm tra chữ ký thông qua sự hợp tác của người ký hoặc của
người xác nhận. Hơn nữa, lược đồ này còn có thể phát triển thành lược đồ chữ ký
người xác nhận không thể chối từ “mù” (nghĩa là người ký không quan tâm đến nội
dung cần ký).
Các Chữ ký số này đem lại lợi ích trong nhiều ứng dụng, ví dụ như thiết kế hệ
thống trả tiền trước (micropayment) đối với các mạng lớn bao gồm nhiều dịch vụ.
Trong mô hình này, giấy chứng nhận trả tiền trước (thường là số tiền nhỏ) có chữ ký
người xác nhận không thể chối từ mù của người quản lý liên hợp các công ty (thuộc
tính “mù” được đưa vào để đảm bảo tính riêng tư của người sử dụng). Để truy cập tới
các dịch vụ trực tuyến, người sử dụng phải chứng minh giấy chứng nhận trả tiền trước
là tin cậy đối với người cung cấp dịch vụ - người có vai trò người xác nhận trong lược
đồ chữ ký [2].
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
31
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 thời
cũng cung cấp khả năng phát hiện ra lỗi. Tức là nếu người nào đó thay đổi một bit
bất kì hay một chuỗi bit trong một thông điệp thì giá trị băm cũng sẽ bị thay đổi. Do
đó, để đáp ứng yêu cầu về xác thực thì hàm băm phải thỏa mãn những yêu cầu sau:
Có thể áp dụng cho mọi thông điệp có kích thước tùy ý, nhưng đầu ra H phải
có kích thước cố định thường là 128 hay 1024 bit.
Dễ tính được giá trị h=H(M) cho mọi bản tin M và hàm băm H tính toán
nhanh, phụ thuộc vào bản tin và không thể tính toán ngược lại, nói cách khác chính
là hàm một chiều.
Nếu cho một giá trị x thì không thể tìm được y sao cho H(x)=H(y) và cũng
không thể tìm được x, y sao cho H(x)=H(y).
Hàm băm sẽ tạo nên dấu vân tay hay chính là thông tin đặc trưng của
dữ liệu.
Vì việc đầu vào có kích thước tùy ý, đầu ra có kích thước cố định, nói cách
khác là hàm băm đã nén thông điệp về dấu vân tay có kích thước cố định.
Cá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.
32
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 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 [2]. Chữ ký
số có tính chất sau [8]:
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 xử lý chữ ký số gồm ba thuật toán tạo khóa, tạo chữ ký số và kiểm
tra chữ ký số. Quá trình tạo chữ ký số được minh hoạ trong Hình 2.5. Quá trình kiểm
tra chữ ký số được minh hoạ trong Hình 2.5.
33
Hình 2.5: Lược đồ tạo chữ ký số
Chi tiết về quá trình tạo chữ ký số được mô tả như sau:
Sử dụng giải thuật băm (hash) một chiều để thay đổi thông điệp cần truyền
đi. Kết quả thu được một message digest gọi là bản phân tích văn bản hay tóm tắt
thông điệp.
Sử dụng giải thuật MD5 thu được digest độ dài 128 bits.
Tiếp tục sử dụng giải thuật SHA (Secure Hash Algorithm) nên thu được
message digest có độ dài 160 bits.
Sử dụng khóa bí mật của người gửi để mã hóa bản phân tích văn bản thu được
(thông thường là bằng giải thuật RSA). Kết quả thu được là chữ ký điện tử của thông
điệp ban đầu.
Gộp chữ ký điện tử vào thông điệp ban đầu. Công việc này gọi là ký nhận
thông điệp.
34
Sau khi đã ký nhận thông điệp, mọi sự thay đổi trên thông điệp sẽ bị phát
hiện trong giai đoạn kiểm tra. Ngoài ra, việc ký nhận này đảm bảo người nhận tin
tưởng vào thông điệp này xuất phát từ người gửi chứ không phải ai khác.
Quá trình nhận và kiểm tra chữ ký số gồm các bước như sau:
Hình 2.6: Lược đồ kiểm tra chữ ký số
Sau khi nhận được thông điệp có đính kèm chữ ký điện tử người nhận kiểm
tra lại thông điệp:
Người nhận sử dụng khóa công khai của người gửi để giải mã chữ ký điện tử
đính kèm trong thông điệp.
35
Sử dụng giải thuật MD5 hay SHA để băm thông điệp đính kèm.
So sánh kết quả thu được ở hai bước trên. Nếu trùng nhau thì ta kết luận thông
điệp này không bị thay đổi trong quá trình gửi, người gửi là chính xác và ngược lại.
Bản chất của thuật toán tạo chữ ký số là đảm bảo nếu chỉ biết thông điệp thì rất
khó (hầu như không thể) tạo ra chữ ký số của người gửi nếu không biết khóa bí mật
của người gửi. Nên nếu phép so sánh cho kết quả đúng thì có thể xác nhận người gửi
là chính xác.
Tuy nhiên khi tạo chữ ký số, người gửi thường không mã hóa toàn bộ thông
điệp với khóa bí mật mà chỉ thực hiện với bản băm của thông điệp (bản tóm tắt thông
điệp 160 bits) nên có thể xảy ra trường hợp hai thông điệp khác nhau có cùng bản
băm nhưng với xác suất rất thấp.
2.7. Một số vấn đề về bảo mật cơ sở dữ liệu
2.7.1. 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 [4].
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
36
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 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
37
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:
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ả hệ
điều hành và CSDL.
Mô hình phụ thuộc vào các chính sách hệ thống đặt ra: Mô hình bắt buộc
hoặc mô hình tùy chọn.
Mô hình phụ thuộc vào các cách thức kiểm soát: Cho phép truy cập trực tiếp
tới thông tin, hoặc cho phép truy cập gián tiếp tới thông tin.
Do đó việc lựa chọn mô hình bảo mật nào trong phát triển hệ thống an toàn phụ
thuộc vào mục đích, môi trường, dữ liệu nó muốn bảo vệ, dựa trên các mặt an toàn,
chính sách an toàn và trên các mục đích kiểm soát. Có thể một mô hình là không đủ
để đảm bảo an toàn trên nhiều khía cạnh khác nhau của hệ thống. Vì vậy, cần có sự
kết hợp của nhiều mô hình để đáp ứng được yêu cầu về an toàn CSDL mà nhà quản
lý đặt ra.
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.
38
Đố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.
Các tiên đề: Đây là các thuộc tính mà một hệ thống an toàn phải được thỏa
mãn. Chúng là điều kiện mà một quyền khi được yêu cầu thực thi phải thỏa mãn. Một
sự thay đổi trên một thể hiện đặc quyền chỉ được phép khi đi qua đặc quyền quản lý
mà các tiên đề được thỏa mãn.
39
Hình 2.7: Các thành phần của mô hình an toàn trong một hệ thống an toàn
2.7.2. Các yếu tố mất an toàn với cơ sở dữ liệu
Các hiểm họa đối với hệ thống có thể phân thành hiểm họa vô tình hay cố ý,
chủ động hay thụ động:
Hiểm họa vô tình: Những kẻ xấu lợi dụng sử dụng quyền bất hợp pháp của
người dùng truy cập được phép do khi hoàn thành công việc không chuyển hệ thống
về bình thường.
Hiểm họa cố ý: Truy cập trái phép vào hệ thống.
Hiểm họa thụ động: Không tác động trực tiếp vào hệ thống.
Hiểm họa chủ động: Là việc thay đổi thông tin, thay đổi tình trạng hoặc hoạt
động của hệ thống.
Đối với mỗi hệ thống thông tin mối đe dọa tiềm ẩn là rất lớn nó có thể xuẩt phát
từ các nguyên nhân sau:
40
Từ phía người sử dụng: Xâm phạm bất hợp pháp, hoặc sử dụng quyền vượt
mức.
Trong kiến trúc hệ thống thông tin: Cấu trúc của hệ thông không đủ mạnh để
bảo vệ thông tin.
Chính sách bảo mật an toàn thông tin: Chưa phân rõ quyền hạn của người
dùng, không áp dụng các chuẩn an toàn.
Do không có công cụ quản lý, kiểm tra và điều khiển hệ thống trên hệ thống
máy tính.
Các tội phạm công nghệ cao là nguy hiểm nhất đối với hệ thống.
Các hệ thống trên mạng có thể là đối tượng của nhiều kiểu tấn công:
Tấn công giả mạo: Giả dạng một chủ thể tin cậy để lấy cắp thông tin nhạy
cảm của người dùng.
Tấn công chuyển tiếp: Một thông báo hoặc một phần thông báo được gửi
nhiều lần gây ra các tác động tiêu cực.
Tấn công sửa đổi thông báo: Bằng cách nào đó thông báo sẽ bị sửa đổi mà
không bị phát hiện.
Tấn công từ chối dịch vụ: Làm cho 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.
Tấn công từ bên trong hệ thống: Người dùng hợp pháp dùng vượt quá quyền
hạn của mình để thu thập thông tin trái phép.
Tấn công từ bên ngoài: Người dùng bất hợp pháp truy cập trái phép vào hệ
thống nhằm thu thập thông tin.
2.7.3. Những yêu cầu khi xây dựng một hệ thống cơ sở dữ liệu an toàn
Chính vì các yêu tố mất an toàn trên, đặt ra yêu cầu phải có một hệ thống đủ
mạnh để quản lý, cấp quyền truy cập cho từng cá nhân một cách hợp lý, chỉ có cá
nhân có đủ thẩm quyền mới được phép truy cập vào CSDL để tránh xâm nhập bất
hợp pháp vào hệ thống, thực hiện thao tác đọc dữ liệu, thêm, xóa, sửa dữ liệu trong
CSDL làm mất tính toàn vẹn của dữ liệu, có những thao tác mã hóa dữ liệu nhạy cảm
41
để tránh trường hợp nội dung dữ liệu bị lộ, sửa đổi trên đường truyền. Khi xây dựng
mô hình an toàn CSDL, mô hình cần thỏa mãn các yêu cầu sau:
Khả năng thích nghi của hệ thống: Các đặc tính an toàn cần phải làm việc
được trên mọi nền, các thiết bị phần cứng, phần mềm, tránh xảy ra xung đột với các
hệ thống khác.
Tính trong suốt: Khi thực hiện cài đặt chương trình vào hệ thống, chương
trình là trong suốt, việc thêm nó vào không làm cho các ứng dụng khác phải thay đổi
theo.
Khả năng mở rộng: Các môđun của chương trình ứng dụng nên được xây
dựng một cách độc lập với nhau, việc này thuận tiện cho việc sử dụng lại các môđun
khi có nhu cầu, đồng thời khi thực hiện một thay đổi trên môđun này không làm cho
các môđun khác phải thay đổi theo.
Dễ cài đặt: Các môđun an toàn có thể cài đặt trên các máy tính cá nhân hay
các máy chủ một cách dễ dàng mà không cần phải thực hiện bất kì thay đổi nào của
hệ thống.
Tính hiệu quả: Tính mật của hệ thống được nâng cao, tốc độ xử lý của hệ
thống là khả thi.
2.8. Kết luận chương 2
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 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.
42
CHƯƠNG 3
THỰC NGHIỆM MỘT SỐ GIẢI PHÁP AN TOÀN VÀ BẢO MẬT
CƠ SỞ DỮ LIỆU MYSQL ỨNG DỤNG CHO SỞ GIÁO DỤC VÀ ĐÀO
TẠO TỈNH QUẢNG NINH
3.1. Mục tiêu và giải pháp bảo mật cơ sở dữ liệu
3.1.1. Mục tiêu
Căn cứ vào mô hình truy xuất dữ liệu và các nguy cơ có thể gây mất an toàn
cho CSDL thì mô hình an toàn hệ thống CSDL đề xuất phải giải quyết các mục
tiêu sau:
1. Đảm bảo an toàn dữ liệu CSDL khi chuyển dữ liệu trên mạng.
2. Đảm bảo an toàn dữ liệu CSDL trong lúc khai thác CSDL phục vụ tác
nghiệp.
3. Đảm bảo an toàn dữ liệu CSDL khi không phục vụ tác nghiệp.
3.1.2. Giải pháp
Hệ thống bảo mật CSDL hoạt động trên nguyên tắc kết hợp chặt chẽ giữa biện
pháp nghiệp vụ và các giải pháp kỹ thuật. Các biện pháp nghiệp vụ và giải pháp kỹ
thuật không được ảnh hưởng đến những khả năng khai thác CSDL. Với giải pháp kỹ
thuật cũng kết hợp nhiều phương pháp khác nhau để thu nhỏ dần không gian hiểm
họa đối với CSDL, tiến tới kiểm soát hoàn toàn các hiểm họa đối với CSDL. Việc
bảo vệ có thể thực hiện bằng nhiều lớp bảo vệ. Các biện pháp nghiệp vụ mang tính
chất hỗ trợ các giải pháp kỹ thuật.
Theo nguyên tắc phối hợp nhiều phương pháp khác nhau và chia thành nhiều
lớp. Các giải pháp kỹ thuật phải giải quyết cả hai mục tiêu: toàn vẹn dữ liệu và bảo
mật dữ liệu. Tính toàn vẹn dữ liệu nhằm chống lại tất cả những tấn công trái phép dẫn
tới sai lệnh dữ liệu cũng như từ chối dịch vụ. Bảo mật dữ liệu nhằm chống lại tất cả
43
những tấn công trái phép dẫn đến khám phá thông tin trong CSDL một cách bất hợp
pháp.
3.1.2.1. Các giải pháp kỹ thuật
Giải quyết bài toán “Đảm bảo an toàn dữ liệu CSDL khi chuyển dữ liệu trên
mạng”.
Do dữ liệu được truyền từ máy khách tới máy chủ và ngược lại cho nên có những
nguy cơ gặp phải:
Không chắc rằng việc trao đổi thông tin là đúng với đối tượng cần trao đổi.
Dữ liệu trên mạng có thể bị chặn, thay đổi và sửa đổi dữ liệu trước khi gửi
đến người nhận.
Để thực hiện được điều này thì ta áp dụng giao thức SSL để bảo vệ dữ liệu trong
quá trình trao đổi giữa tất cả các dich vụ. SSL sẽ giải quyết vấn đề xác thực các đối
tượng bằng cách cho phép một cách tùy chọn mỗi bên trao đổi để chắc chắn về định
danh của phía đối tác trong quá trình xác thực. Một khi các bên đã được xác thực thì
SSL sẽ cung cấp một kết nối mã hóa giữa hai bên để truyền bảo mật các thông điệp.
Việc mã hóa trong quá trình trao đổi thông tin giữa hai bên cung cấp sự riêng tư, bí
mật do đó giải quyết được vấn đề chặn bắt dữ liệu. Thuật toán mã hóa sử dụng bao
gồm các hàm băm mã hóa, nó đảm bảo rằng dữ liệu không bị thay đổi trong quá trình
truyền dẫn.
Ngoài ra, giao thức SSL còn đòi hỏi ứng dụng chủ phải được xác thực bằng một
đối tượng thứ 3 (CA) thông qua giấy chứng thực điện tử dựa trên mật mã 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 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 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 đó. 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.
44
Kiểm soát quá trình trao đổi dữ liệu trên mạng: Đảm bảo kiểm soát được các
điểm kết nối tham gia vào quá trình trao đổi dữ liệu và tránh tình trạng các kết nối
không kiểm soát được. Khi tiến hành tra đổi dữ liệu thì toàn bộ trao đổi phải được
bảo mật, thức là mã hóa dữ liệu trước khi trao đổi. Cách trao đổi được giải quyết bằng
cách:
Không sử dụng lại tiến trình trao đổi của hệ thống mà viết lại để có thể kiểm
soát và có thể đưa kỹ thuật bảo mật vào quá trình trao đổi.
Bảo mật dữ liệu trong suốt quá trình trao đổi dữ liệu từ nút tới nút, tức là dữ
liệu trao đổi trước khi chuyển lên kênh truyền thì sẽ được mã hóa.
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ơ đồ
sau:
Hình 3.1: Dòng dữ liệu trao đổi giữa hai nút
Giải quyết bài toán “Đảm bảo an toàn dữ liệu CSDL trong lúc khai thác
CSDL phục vụ tác nghiệp”
Trong DBMS có nhiều CSDL và người dùng, do đó việc phân quyền hạn cho
những người dùng này là rất quan trọng nhằm tránh việc lạm dụng quyền hạn, truy
cập CSDL trái phép, sửa đổi thông tin... Do đó, để hạn chế tối đa những nguy cơ mất
an toàn này thì thứ nhất cần có biện pháp phân quyền truy cập: tùy theo vai trò khác
nhau của người dùng mà họ có những quyền hạn khác nhau để khai thác CSDL, ví
dụ một số người chỉ có quyền đọc, xem, trong khi đó một số người lại có quyền chỉnh
45
sửa... Các đối tượng trên muốn truy cập vào hệ thống thì cần phải xác thực trước khi
vào. Thông tin xác thực bao gồm tên đăng nhập và mật khẩu, dựa vào các thông tin
này thì DBMS sẽ thực hiện việc xác nhận và sẽ cho phép hay từ chối vào quyền truy
cập CSDL. Trong một số trường hợp thì đối với người có cấp cao thì cơ chế nhận
dạng sẽ phức tạp hơn.
Ngoài ra, để đảm bảo thông tin xác thực thì DBMS cũng cung cấp cơ chế thay
đổi mật khẩu để tăng cường khả năng an toàn cho mật khẩu. Một vấn đề cũng cần
chú ý nữa là các thông tin trong CSDL cũng cần có biện pháp bảo vệ, bởi vì nếu
chẳng may có kẻ xâm nhập vào DBMS thì chúng dễ dàng xem được các thông tin
quan trọng.
Đảm bảo an toàn dữ liệu 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 hệ quản trị CSDL.
Bài toán được giải quyết theo các hướng sau:
Phân hoạch CSDL:
Tùy theo mức độ quan trọng của dữ liệu mà CSDL nên được phân hoạch theo
chiều ngang. 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. Với phần CSDL lưu trữ thông tin quan
trọng yêu cầu độ mật cao thì luôn lưu giữ ở dạng mã hóa toàn bộ CSDL còn những
phần CSDL lưu trữ thông tin ít nhạy cảm thì chỉ cần bảo đảm tính xác thực toàn vẹn
dữ liệu. Việc khai thác trên phần CSDL này chỉ có thể tiến hành qua phần giao diện
ứng dụng 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.
Mã hóa các trường hợp dữ liệu quan trọng:
Các dữ liệu trong CSDL có mức độ quan trọng là không giống nhau, có những
dữ liệu cần phải bảo mật trong khi có những dữ liệu chỉ cần đảm bảo tính toàn vẹn và
xác thực, việc CSDL cần được bảo mật được xác định bởi người có thẩm quyền. Các
thông tin có độ mật cao luôn đượ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 người dùng và chỉ có những thông tin thỏa mãn yêu
46
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 soát chuyển thông tin giữa các mức có những mức bảo mật khác nhau. Có
hai kiểu chính sách kiểm soát thông tin trong các hệ quản trị CSDL để phục vụ cho
bảo vệ CSDL là: Chính sách tùy ý và chính sách bắt buộc.
Kiểm soát người dùng CSDL:
Có hai mức kiểm soát quy định bởi người quản trị CSDL và quy định bởi hệ
thống an ninh cơ sở dữ liệu người dùng CSDL, để truy cập vào CSDL người dùng
cần phải vượt qua hai mức kiểm soát trên.
Mô hình có thể được thể hiện như sau:
Hình 3.2: Mô hình khai thác CSDL được bảo mật
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,
47
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
48
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ề tổ chức hệ thống thiết bị khai thác CSDL.
49
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.
Một số đặc điểm của MySQL [7]:
50
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
51
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.
52
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:
Hình 3.3: Giao thức bắt tay của SSL
Giai đoạn 1: Thiết lập khả năng bảo mật
Giai đoạn này được sử dụng để thiết lập kết nối vật lý và khả năng bảo mật sẽ
được liên kết với nó. Việc trao đổi được khởi tạo bằng máy khách bằng việc gửi một
53
thông điệp cho máy chủ với những thông số sau: phiên bản SSL mới nhất mà máy
khách biết, dữ liệu được sinh ra ngẫu nhiên, những thuật toán mã hóa, phương thức
nén mà máy khách được hỗ trợ. Sau đó máy khách chờ thông điệp được gửi từ máy
chủ có chứ thông điệp giống với thông điệp máy khách gửi và những thỏa thuận kèm
theo.
Giai đoạn 2: Xác thực máy chủ và trao đổi khóa
Giai đoạn này máy chủ gửi chứng chỉ đến máy trạm, thông điệp chứa một hoặc
một chuỗi chứng thực X.509. Sau đó là một thông điệp trao đổi khóa từ máy chủ nếu
nó được yêu cầu. Yêu cầu chứng chỉ từ máy khách nếu có yêu cầu. Chứng thư số ở
giai đoạn này chỉ ra giải thuật khóa công khai và danh sách các CA được chấp nhận.
Giai đoạn 3: Xác thực máy khách và trao đổi khóa
Máy khách xác nhận xem máy chủ cung cấp chứng chỉ hợp lệ hay chưa, nếu
được yêu cầu và kiểm tra các thông số từ thông điệp máy chủ gửi tới được chấp nhận
hay không. Nếu thỏa mãn máy khác gửi một hoặc nhiều thông điệp trở lại cho máy
chủ. Nếu máy chủ yêu cầu chứng chỉ thì máy khách bắt đầu giai đoạn này bằng cách
gửi một thông điệp chứng chỉ. Nếu không có chứng chỉ phù hợp máy khách gửi thông
điệp không có chứng chỉ thay thế. Tiếp theo máy khác gửi thông điệp trao đổi khóa,
nội dung thông điệp phụ thuộc vào kiểu trao đổi khóa. Cuối cùng, trong giai đoạn này
máy khách gửi một thông điệp để xác thực tường minh của một thông điệp máy khách.
Giai đoạn 4: Kết thúc
Giai đoạn này hoàn thành thiết lập một kết nối an toàn, máy khách gửi thông
điệp theo giải thuật mới với các khóa và các bí mật. Thông điệp kết thúc xác minh
xem quá trình trao đổi khóa và xác thực có thành công hay không.
Thuật toán mã hóa xác thực mà SSL sử dụng là SHA-1 - một trong những thuật
toán băm mã hóa, được dùng trong việc kiểm tra tính toàn vẹn của dữ liệu ở phía
người nhận.
54
AES (Advanced Encryption Standard, hay Tiêu chuẩn mã hóa nâng cao) là một
thuật toán mã hóa khối được chính phủ Hoa Kỳ áp dụng làm tiêu chuẩn mã hóa. AES
là thuật toán được phát triển dựa trên bản thiết kế Square bởi 2 nhà mật mã học người
Bỉ là Joan Daemen và Vincent Rijmen. AES là một thuật toán mã hóa khối đối xứng
với độ dài khóa là 128 bit, 192 bit và 256 bit tương ứng gọi là AES-128, AES-192 và
AES-256. Tùy vào độ dài của key khi sử dụng mà ta có số vòng lặp khác nhau AES-
128 sử dụng 10 vòng (round), AES-192 sử dụng 12 vòng và AES-256 sử dụng 14
vòng.
Trong quá trình này, khóa mã hóa được tạo và cũng phải có khóa này để giải
mã. Nếu không, dữ liệu sẽ chỉ là mớ lộn xộn không thể đọc được. Cả người gửi và
người nhận đều phải biết khóa mã hóa và giải mã.
Các thứ tự hàm AES sẽ thực hiện:
Trộn từng byte (SubBytes) mỗi byte được thay thế với các byte khác.
Trộn từng hàng (ShiftRows): Phép biến đổi dùng trong phép mã hóa áp dụng
lên trạng thái bằng cách chuyển dịch vòng ba hàng cuối của trạng thái theo số lượng
byte các offset khác nhau.
Trộn từng cột (MixColumns): Mỗi cột được chuyển đổi tuyến tính bằng cách
nhân nó với một ma trận trong trường hữu hạn.
Mã hóa (AddRoundKey): Mỗi byte trong bảng trạng thái được thực hiện phép
XOR với một khoá vòng, quá trình xử lý AES thu được 11 khoá vòng từ các key mã
hoá được phân phát cho kỹ thuật mã hoá.
Dù ban đầu AES được tạo ra để chính phủ Mỹ bảo mật dữ liệu nhưng nó cũng có
thể dùng để chuyển dữ liệu qua mạng an toàn. AES được dùng để chia sẻ tập tin qua kết
nối HTTPS, an toàn hơn HTTP, vốn được thiết kế để ngăn tấn công trung gian.
AES cũng được dùng để mã hóa WiFi trên router, khi kết hợp với giao thức phổ
biến WPA2 thì có tên AES/WPA2. Giao thức bảo mật khác được dùng cùng với
55
WPA2 là TKIP cũ hơn AES và được cho là không còn an toàn. AES cũng được dùng
để hỗ trợ mã hóa SSL.
3.2.2.2. Bảo mật tại chỗ
Hệ thống bảo mật trong MySQL Server tương đối phức tạp. MySQL Server
thực hiện bảo mật CSDL dựa vào hệ thống truy cập quyền. Chức năng chính của hệ
thống điều khiển truy cập là chứng thực kết nối của người dùng vào MySQL Server,
kết hợp người dùng với các quyền riêng trên CSDL với các thao tác: SELECT,
UPDATE, DELETE, INSERT. Để thực hiện điều khiển hệ thống cần phải thực hiện
truy cập một số thông tin đặc biệt. Các thông tin này được lưu trữ trong một CSDL
chính là MySQL. Ngay sau khi cài đặt MySQL có hai CSDL được tạo ra là:
MySQL: Lưu trữ các thông tin cho việc quản trị.
Test: Là CSDL bất kì ai cũng có thể có quyền thực hiện trên đó.
CSDL MySQL lưu trữ các thông tin chung và các đặc quyền của người dùng để
kiểm tra kết nối và quyền thực hiện các lệnh. Do đó chỉ có nhà quản trị CSDL mới
có quyền truy cập và thao tác trên CSDL này. Tất cả các tập tin dữ liệu của MySQL
lưu trữ dữ liệu trong môt thư mục gốc mysql. Trong CSDL mysql có các bảng phân
quyền sau: user, db, host, column_priv, procs_priv. Người dùng có thể thực hiện bất
kì câu lệnh nào trên bảng này như các bảng thông thường. Server sử dụng thông tin
trong ba bảng: user, db, host trong hai giai đoạn điều khiển truy nhập bằng cách kiểm
tra các yêu cầu để chắc chắn rằng Client đưa ra yêu cầu có đủ quyền thực hiện yêu
cầu đó.
Ngoài ra Server còn tham khảo tới bảng table_priv và bảng column_priv, các
bảng này cung cấp các quyền riêng cần thiết ở mức bảng và cột. Từ phiên bản 5.0.3
CSDL MySQL có thêm bảng procs_priv dùng để thẩm định lại các yêu cầu mà thường
xuyên được lưu trữ. Mỗi bảng đều có các cột phạm vi và các cột quyền. Cột phạm vi
dùng để chỉ rõ phạm vi cho mỗi mục của bảng hay là ngữ cảnh mà dòng dữ liệu áp
dụng. Các cột quyền chỉ định thông tin về các quyền trên một mức của CSDL tùy
thuộc từng bảng. Server kết hợp thông tin trong nhiều bảng phân quyền để hoàn thành
56
việc mô tả đặc quyền của người dùng. Quá trình truy vấn CSDL thực hiện theo hai
giai đoạn.
Giai đoạn kiểm tra kết nối: Khi người dùng cố gắng kết nối vào cơ sở dữ liệu,
Server chấp nhận hoặc từ chối các kết nối cơ bản dựa trên nhận dạng người dùng. Chỉ
khi thông tin đưa vào là hợp lý Server mới chấp nhận, nếu không Server cấm truy
cập. Nếu đúng Server chấp nhận kết nối, sau đó chuyển sang giai đoạn hai. Chờ đợi
yêu cầu. Việc nhận dạng người dùng dựa trên hai phần thông tin sau: client host từ
kết nối của người dùng, username MySQL của người dùng.
Bất kì ai kết nối vào MySQL Server hệ thống đều đòi hỏi password, password
là công cụ được thêm vào để xác nhận người dùng, username là tên của người dùng
muốn kết nối, hostname là tên máy kết nối. MySQL Server không thể giới hạn số
người kết nối nhưng giới hạn số lượng máy kết nối. MySQL Server không lưu trữ
dạng tường tận của password mà password sẽ được mã hóa. Password được mã hóa
sẽ được dùng trong kết nối. Như vậy cách nhìn nhận của MySQL Server password đã
được mã hóa mới là password đúng.
Giai đoạn kiểm tra yêu cầu: Xảy ra mỗi khi người dùng thực hiện yêu cầu
truy vấn vào CSDL. Sau khi quá trình kết nối đã được thiết lập, mỗi dòng lệnh đều
phải đi qua một tiến trình, điều này đảm bảo mọi người dùng đều bị giới hạn làm việc.
Mỗi khi yêu cầu được đưa ra, MySQL Server kiểm tra xem người dùng đã được phân
quyền ở cấp độ user chưa. Nếu có người dùng được phép làm bất cứ việc gì trên
CSDL của MySQL Server. Nếu không tìm thấy MySQL Server sẽ kiểm tra tiếp trong
bảng db. Db là cơ chế bảo mật ở cấp độ tiếp theo. Đặc quyền chỉ được cấp trên một
CSDL cụ thể, cho phép người dùng thao tác trên tất cả các bảng của một CSDL cụ
thể. Nếu người dùng muốn phân quyền cụ thể hơn thì dùng bảng table_priv,
column_priv. Bảng column_priv là nơi cuối cùng MySQL Server cấp quyền cho
người dùng. Nếu người dùng không được cấp quyền ở cấp độ này thì MySQL Server
báo lỗi.
Như vậy MySQL Server bảo mật theo cơ chế phân quyền. Tùy thuộc vào từng
cấp độ người dùng mà có những quyền truy cập tới CSDL là khác nhau. Việc xác
57
định cấp độ người dùng lại hoàn toàn phụ thuộc vào username, hostname và password
của người dùng. Các giá trị username, hostname là được công khai, chính vì vậy phần
lớn mục đích bảo mật CSDL trong MySQL là bảo mật password người dùng. Trong
MySQL Server để bảo mật password người ta dùng phương pháp mã hóa password
dựa vào thuật toán băm SHA-1 hoặc thuật toán MD5, đây là hai thuật toán được sử
dụng chính trong MySQL Server.
Ngoài ra MySQL Server sử dụng các phương thức AES_ENCRYPT(),
AESP_DECRYPT(), để mã hóa và giải mã dữ liệu dựa vào thuật toán AES. Mã hóa
sử dụng 128 bit khóa và có thể mở rộng thành 256 bit. Chọn 128 bit vì nhanh và đã
đủ an toàn. AES thực hiện dò tìm các giá trị không hợp lệ của dữ liệu, những giá trị
thêm vào không chính xác, sẽ bị từ chối thực hiện. Đây là hàm được coi là an toàn
nhất trong các hàm mã hóa sẵn có trong MySQL.
3.2.2.3. Biện pháp tác nghiệp
Để đảm bảo CSDL trong MySQL Server an toàn ngoài các giải pháp kỹ thuật
bạn cũng cần phải quan tâm, xem xét tới các biện pháp tác nghiệp sau:
Đòi hỏi tất cả người sử dụng CSDL của MySQL Server đều phải có tài khoản.
Không cho phép sử dụng các link biểu tượng tới các bảng.
Không cấp đặc quyền processor hoặc super cho người không phải là nhà quản
trị.
Không cấp đặc quyền file cho người không phải là nhà quản trị.
Không cho bất kì ai có thể truy cập vào bảng user trong CSDL MySQL trừ
người có tài khoản root.
3.3. Thử nghiệm bảo mật cơ sở dữ liệu trong phát triển website quản lý điểm
3.3.1. Phạm vi và yêu cầu bài toán
Xây dựng website demo nghiệp vụ quản lý điểm cho Trường THPT với các yêu
cầu:
1. Về chức năng:
a. Quản lý lớp, quản lý học sinh
58
b. Quản lý năm học, quản lý môn học
c. Quản lý điểm
d. Quản lý người dùng
e. Thống kê, báo cáo
2. Về bảo mật: Phải được thực hiện ở 3 cấp độ: ứng dụng, truyền thông và cơ
sở dữ liệu.
a. Bảo mật ở cấp độ ứng dụng: Xác thực người dùng.
b. Bảo mật ở cấp độ truyền thông: Dữ liệu được bảo mật khi truyền
thông giữa web client và web server.
c. Bảo mật ở cấp độ cơ sở dữ liệu: Thông tin được mã hoá khi lưu trữ
trong cơ sở dữ liệu và được giải mã cho các truy vấn hợp lệ đối với
cơ sở dữ liệu.
3.3.2. Mô hình bảo mật của hệ thống
Mô hình bảo mật của hệ thống được phân thành 3 lớp: (1) Lớp bảo mật ở cấp
độ ứng dụng; (2) Lớp bảo mật ở cấp độ truyền thông và (3) Lớp bảo mật ở cấp độ cơ
sở dữ liệu. Mô hình này được minh hoạ trong Hình 3.4.
Hình 3.4: Mô hình bảo mật của hệ thống
Trong mô hình này, người sử dụng muốn truy cập vào sử dụng các chức năng
của ứng dụng quản lý điểm phải thực hiện việc đăng nhập bằng một tài khoản hợp lệ
59
đã được người quản trị phân quyền để thực hiện tiến trình xác thực người dùng. Dữ
liệu trao đổi giữa trình duyệt web trên máy khách web và dịch vụ web trên máy chủ
web sẽ được bảo mật qua giao thức HTTPS trên cơ sở dịch vụ SSL/TLS. Ứng dụng
quản lý điểm chạy trên máy chủ web sẽ thực hiện truy vấn và cập nhật dữ liệu tới cơ
sở dữ liệu quản lý điểm trên máy chủ cơ sở dữ liệu. Phần mềm quản lý điểm chạy
trên máy chủ web sẽ thực hiện mã hoá dữ liệu trước khi lưu trữ và giải mã dữ liệu
được truy vấn từ cơ sở dữ liệu bằng thuật toán AES.
3.3.3. Triển khai mô hình bảo mật
Với lớp bảo mật ở cấp độ ứng dụng: Phát triển ứng dụng web phải đảm bảo
tuỳ theo tài khoản người dùng được cung cấp, người dùng sẽ phải trải qua bước xác
thực của hệ thống máy chủ web. Nếu tài khoản người dùng là hợp lệ, người dùng sẽ
được phép truy cập vào các chức năng của ứng dụng quản lý điểm theo phân quyền
của người quản trị.
Với lớp bảo mật ở cấp độ truyền thông: Thực hiện ở bước triển khai website
sau bước phát triển ứng dụng web. Sử dụng giao thức HTTPS để truyền thông dữ liệu
web một cách an toàn và bảo mật trên cơ sở áp dụng hai giao thức SSL và TLS ở tầng
Transport. Cả web client và web server sẽ bắt buộc phải trải qua giai đoạn xác thực
và dữ liệu web sẽ được mã hoá và giải mã theo cả hai chiều truyền thông giữa web
client và web server.
Với lớp bảo mật ở cấp độ cơ sở dữ liệu: Tích hợp thuật toán mã hoá và giải
mã dữ liệu AES vào phần mềm website quản lý điểm chạy trên máy chủ web để mã
hoá và giải mã dữ liệu đọc ra và ghi vào cơ sở dữ liệu trên máy chủ cơ sở dữ liệu.
3.3.4. Một số kết quả sau khi phát triển website
3.3.4.1. Quản lý người dùng
Giao diện khi người dùng đăng nhập:
60
Hình 3.5: Giao diện đăng nhập người dùng
Cơ sở dữ liệu lưu thông tin người dùng, thông tin học sinh. Dữ liệu người dùng
được mã hóa lưu trong cơ sở dữ liệu:
Hình 3.6: Bản mã tài khoản người dùng
3.3.4.2. Quản lý thông tin của học sinh
61
Hình 3.7: Giao diện thêm mới học sinh
Hình 3.8: Sửa thông tin học sinh
Bảng dữ liệu mã hóa thông tin học sinh
Hình 3.9: Bản mã thông tin học sinh
62
3.3.4.3. Quản lý điểm học sinh
Điểm trước khi được lưu vào CSDL sẽ được mã hóa rồi mới lưu. Khi điểm ra
thì điểm sẽ được lấy từ CSDL ra và tiến hành giải mã rồi mới cho hiển thị ra ngoài
giao diện.
Hình 3.10: Giao diện nhập điểm của học sinh
Hình 3.11: Giao diện xem bản mã điểm của học sinh
63
Hình 3.12: Bản mã được lưu trong CSDL
3.3.4.4. Mô tả một số các chức năng khác trong website
Người dùng sử dụng tài khoản được quản trị viên cấp để đăng nhập vào website.
Hình 3.13: Giao diện sau khi đăng nhập
a. Giao diện thiết lập
Thiết lập là chức năng quản lý chỉ có quản trị viên mới có thể dùng, bao gồm:
Thiết lập năm học, môn học và quản lý người dùng.
Thiết lập năm học:
64
Hình 3.14: Giao diện thiết lập năm học
Gồm có danh sách các năm học đã tạo, các chức năng thêm mới, sửa, xóa, tìm
kiếm.
Để tìm kiếm năm học, người dùng nhập năm đầu và năm cuối vào thanh tìm
kiếm (Ví dụ: 2019 - 2020).
Người dùng chọn thêm mới để thêm mới năm học, chọn sửa để chỉnh sửa lại
thông tin năm học đó.
Để xóa năm học, người dùng chọn vào ô năm học cần xóa ở đầu rồi bấm xóa
(Nên xóa các lớp học của năm đó trước rồi mới xóa năm, trước khi xóa lớp nên xuất
excel điểm của các học sinh lớp đó).
65
Hình 3.15: Giao diện thêm mới năm học
Người dùng chọn năm bắt đầu và viết mô tả nếu cần cho năm đó rồi ấn chấp
nhận. Ví dụ: chọn năm bắt đầu là 2019 thì sẽ tạo được ra năm học là 2019 - 2020.
Thiết lập môn học:
Hình 3.16: Giao diện thiết lập môn học
66
Chức năng gồm có danh sách các môn học, thêm mới, sửa thông tin, xóa môn
học, tìm kiếm môn học.
Giao diện thêm môn học mới:
Hình 3.17: Giao diện thêm mới môn học
Để thêm mới môn học cần nhập tên môn học, mô tả của môn học (nếu có) và
chọn khối học. Chọn khối học hiện tại đang quản lý sẽ gồm có 3 khối 10, 11, 12 và
khối chung. Nếu môn học tạo mà có ở tất cả các khối thì sẽ chọn khối chung, còn
môn học mà xuất hiện chỉ ở các khối riêng biệt thì sẽ chọn khối đó.
b. Giao diện sửa thông tin để sửa lại các thông tin đã tạo
Quản lý người dùng:
Hình 3.1: Giao diện quản lý người dùng
67
Gồm các chức năng thêm mới, sửa, chặn, xóa người dùng.
Để tìm kiếm người dùng có thể nhập tên người dùng hoặc tên đăng nhập hoặc
lớp giảng dạy của người đó.
Chức năng chặn là chặn tài khoản đó không được đăng nhập vào website mà
không cần xóa tài khoản đó.
Thêm mới người dùng cần nhập thông tin của người dùng đó, chọn môn học
mà người dùng dạy và chọn quyền cho người dùng.
c. Giao diện quản lý lớp học
Hình 3.19: Giao diện quản lý lớp học
Gồm các chức năng thêm, sửa, xóa, tìm kiếm và xem lớp học. Giáo viên chỉ có
thể xem lớp học.
Chức năng thêm, sửa, xóa, tìm kiếm tương tự như các chức năng trên. Quản trị
viên thêm giáo viên chủ nhiệm cho lớp trong thêm mới và sửa lớp học.
Chọn xem lớp để xem danh sách các học sinh của lớp đó, hoặc thêm, sửa, xóa
học sinh thuộc lớp đó. Quản trị viên hoặc giáo viên trực tiếp thêm học sinh vào lớp,
giáo viên chỉ có thể xem danh sách học sinh.
68
Hình 3.20: Giao diện danh sách học sinh trong lớp
Quản trị viên và giáo viên chủ nhiệm có thể xét hạnh kiểm cho học sinh trong
chức năng sửa. Giáo viên không phải chủ nhiệm chỉ có thể xem hoặc tải file excel.
Hình 3.21: Giao diện sửa và xét hạnh kiểm học sinh trong lớp
d. Giao diện điểm
69
Người dùng chọn các mục để có thể xem điểm của lớp cần tìm.
Hình 3.22: Giao diện tìm kiếm điểm
Sau khi ấn tìm kiếm thì sẽ hiện ra danh sách điểm môn học của lớp đã chọn.
Người dùng có thể xuất file excel để tải về dữ liệu điểm. Chỉ có quản trị viên hoặc
giáo viên dạy bộ môn và được thiết lập lớp dạy này thì mới có thể chỉnh sửa điểm.
Sau khi điền điểm thì chọn xác nhận kết quả để hệ thống tính điểm rồi sau đó ấn
xác nhận để lưu điểm.
Đối với môn thể dục thì người dùng chọn D (đạt) hoặc CD (chưa đạt).
e. Giao diện thống kê
Gồm thống kê học lực theo lớp và theo khối. Người dùng chọn các mục để tìm
kiếm lớp hoặc khối cần thống kê. Sau đó có thể xuất file excel để tải về dữ liệu thống
kê.
3.4. Kết luận chương 3
Chương 3 trình bày các giải pháp bảo mật website, trong đó nhấn mạnh đến giải
pháp bảo mật dữ liệu trong CSDL, từ đó đưa ra hướng bảo mật CSDL MySQL và
xây dựng ứng dụng website quản lý điểm được tích hợp các kỹ thuật bảo mật.
70
KẾT LUẬN VÀ ĐỀ NGHỊ
Trong đề tài “Nghiên cứu một số giải pháp an toàn và bảo mật cơ sở dữ liệu
ứng dụng cho Sở Giáo dục và Đào tạo tỉnh Quảng Ninh”, sau một thời gian tìm
hiểu luận văn đã trình bày được một số vấn đề sau đây:
Trong chương 1, đã tìm hiểu kiến thức tổng quan về an toàn thông tin trong cơ
sở dữ liệu, giới thiệu chung về an toàn bảo mật cơ sở dữ liệu, trình bày một số khái
niệm cơ bản, các vấn đề an toàn trong cơ sở dữ liệu, vấn đề kiểm soát an toàn và khảo
sát thực trạng an toàn và bảo mật cơ sở dữ liệu tại Sở Giáo dục và Đào tạo tỉnh Quảng
Ninh.
Trong chương 2, đã tìm hiểu về cơ sở lý thuyết mật mã trong bảo mật cơ sở dữ
liệu, như giới thiệu chung về lý thuyết mật mã, mã hóa bằng khóa bí mật, mã hóa
bằng khóa công khai, xác thực thông tin, hàm băm, chữ ký số và trình bày chi tiết về
thuật toán mã hóa và giải mã dữ liệu AES.
Trong chương 3, tiến hành làm thực nghiệm giải pháp an toàn và bảo mật cơ sở
dữ liệu MySQL ứng dụng cho Sở Giáo dục và Đào tạo tỉnh Quảng Ninh. Từ thực
nghiệm đã giúp Sở GD&ĐT tỉnh Quảng Ninh dễ dàng bảo vệ CSDL nói chung và
bảo vệ CSDL MySQL nói riêng như:
- Đảm bảo an toàn dữ liệu khi truyền trên mạng.
- Đảm bảo an toàn CSDL trong lúc khai thác phục vụ tác nghiệp.
- Đảm bảo an toàn CSDL khi không khai thác phục vụ tác nghiệp.
- Từ các giải pháp đưa ra tác giả đã xây dựng ứng dụng bảo mật CSDL MySQL
để đảm bảo an toàn CSDL trong lúc khai thác phục vụ tác nghiệp và trên đường
truyền.
Do còn nhiều hạn chế về kiến thức, kinh nghiệm của bản thân cũng như thời
gian thực hiện, luận văn này không tránh khỏi những sơ suất. Với bước đầu nghiên
cứu cài đặt thử nghiệm chương trình đã tạo tiền đề ứng dụng an toàn dữ liệu trong
71
công tác quản lý điểm tại sở Giáo dục và Đào tạo tỉnh Quảng Ninh. Vì vậy, theo quan
điểm của học viên, đề tài còn có một số hướng phát triển sau:
- Thử nghiệm với hệ thống dữ liệu tại Sở Giáo dục và Đào tạo tỉnh Quảng
Ninh.
- Mở rộng CSDL với một số mảng khác hiện tại Sở đang quản lý.
- Nghiên cứu các phương pháp tấn công, các giải pháp khắc phục, các hệ mã
hóa và chữ ký số tiên tiến hơn nhằm nâng cao tính an toàn thông tin cho hệ thống.
Em rất mong nhận được các ý kiến đóng góp của thầy/cô và các bạn để luận văn
được hoàn thiện hơn nữa. Đặc biệt, trong thời gian tới có thể áp dụng các kết quả
nghiên cứu của luận văn trong thực tế.
Thái Nguyên, tháng 9 năm 2020
Học viên
Nguyễn Thị Thu Trang
72
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]. Bùi Văn Đài (2013), Nghiên cứu về bảo mật cơ sở dữ liệu SQL Server, Luận văn
thạc sĩ, Học viện kỹ thuật quân sự.
[2]. Hồ Văn Hương, Hoàng Chiến Thắng (2013), Ký số và xác thực trên nền tảng
web, http://www.antoanthongtin.vn/cong-nghe-pki/ky-so-va-xac-thuc-tren-
nen-tang-web-100650, ngày 04/10/2013.
[3]. Hồ Văn Hương, Hoàng Chiến Thắng, Nguyễn Quốc Uy (2013), Giải pháp bảo
mật và xác thực thư điện tử, http://antoanthongtin.gov.vn/gp-attm/giai-phap-
bao-mat-va-xac-thuc-thu-dien-tu-100791, 31/03/2014.
[4]. Hồ Văn Hương, Nguyễn Quốc Uy (2014), Giải pháp bảo mật cơ sở dữ liệu ứng
dụng mã nguồn mở, http://m.antoanthongtin.gov.vn/giai-phap-khac/giai-phap-
bao-mat-co-so-du-lieu-ung-dung-ma-nguon-mo-100742, 20/02/2014.
[5]. Phạm Thị Ngọc Oanh (2009), Nghiên cứu giải pháp bảo mật cơ sở dữ liệu, Khóa
luận tốt nghiệp, Đại học Quốc Gia Hà Nội.
[6]. Đỗ Trung Tuấn (2004), Cơ sở dữ liệu, Nxb Đại học Quốc Gia Hà Nội.
Tiếng Anh
[7]. Morris Lewis (2004), SQL Server Security Distilled, Apress.
[8]. William Stallings (2010), Cryptography and Network Security: Principles and
practice, Prentice Hall.
[9]. Wrox Author Team (2003), MySQL Security Handbook, Apress.