BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH NGUYỄN XUÂN DUY NGHIÊN CỨU XÂY DỰNG GIẢI PHÁP BẢO VỆ TÍNH BÍ MẬT VÀ TÍNH RIÊNG TƯ DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU BẰNG PHƯƠNG PHÁP MÃ HÓA Chuyên ngành KHOA HỌC MÁY TÍNH Mã chuyên ngành 60480101 LUẬN VĂN THẠC SĨ THÀNH PHỐ HỒ CHÍ MINH, NĂM 2O17 2 TÓM TẮT LUẬN VĂN THẠC SĨ Dữ liệu lưu trữ trong cơ sở dữ liệu (CSDL) cần được bảo vệ trước mọi tấn công và truy cập trái phép nhằm đảm bảo tính bí mật và tính riêng tư dữ liệu, đặc biệt là dữ.
Trang 1BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH
NGUY ỄN XUÂN DUY
NGHIÊN CỨU XÂY DỰNG GIẢI PHÁP BẢO VỆ TÍNH BÍ MẬT VÀ TÍNH RIÊNG TƯ DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU BẰNG PHƯƠNG
Trang 2TÓM TẮT LUẬN VĂN THẠC SĨ
Dữ liệu lưu trữ trong cơ sở dữ liệu (CSDL) cần được bảo vệ trước mọi tấn công và truy cập trái phép nhằm đảm bảo tính bí mật và tính riêng tư dữ liệu, đặc biệt là dữ
liệu nhạy cảm Để giải quyết vấn đề này, luận văn đã đề xuất phương pháp kết hợp
hệ mật mã RSA-AES để mã hóa dữ liệu trong CSDL và đưa ra các mô hình, giải pháp cụ thể cho bài toán này Bên cạnh đó, nghiên cứu cũng quan tâm đến các giải pháp nhằm nâng cao tính tiện ích và giải quyết các vấn đề phát sinh khi dữ liệu bị
mã hóa: giải pháp dự phòng để giải mã dữ liệu, giải pháp thay đổi khóa bí mật khi
dữ liệu đã được mã hóa, xác thực thông tin đăng nhập khi thay đổi khóa bí mật bằng cách ứng dụng chữ ký số sử dụng hệ mã RSA,… Giải pháp đề xuất được triển khai trên ứng dụng Web kết nối với hệ quản trị CSDL Oracle 12c và áp dụng thử nghiệm
để bảo vệ tính bí mật vị trí kho của hàng hóa vận chuyển bằng đường hàng không Nghiên cứu bước đầu cho kết quả khả quan và có thể phát triển để áp dụng vào các bài toán khác như: bảo mật thông tin trong lĩnh vực y tế, ngân hàng
Trang 3MỤC LỤC
MỤC LỤC 5
DANH MỤC HÌNH ẢNH 7
DANH MỤC BẢNG BIỂU 8
DANH MỤC TỪ VIẾT TẮT 9
MỞ ĐẦU 10
1 LÝ DO CHỌN ĐỀ TÀI 10
2 TỔNG QUAN TÌNH HÌNH THỰC TẾ VÀ TÌNH HÌNH NGHIÊN CỨU 11
3 MỤC TIÊU NGHIÊN CỨU 14
4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 14
5 PHƯƠNG PHÁP NGHIÊN CỨU 14
6 CẤU TRÚC CỦA LUẬN VĂN 15
CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN VỀ BẢO MẬT CƠ SỞ DỮ LIỆU 16
1.1 Một số khái niệm sử dụng trong đề tài nghiên cứu 16
1.2 An toàn và bảo mật thông tin 18
1.3 Bảo mật cơ sở dữ liệu bằng phương pháp mã hóa 20
1.3.1 Các mức mã hóa 21
1.3.2 Phương pháp mã hóa 23
1.4 Bảo mật bằng phương pháp mã hóa trong hệ quản trị CSDL ORACLE 26
CHƯƠNG 2: GIẢI PHÁP BẢO VỆ TÍNH BÍ MẬT VÀ TÍNH RIÊNG TƯ DỮ LIỆU TRONG CƠ SỞ DỮ LIỆU BẰNG PHƯƠNG PHÁP MÃ HÓA 34
2.1 Mô hình mã hóa dữ liệu bằng cách kết hợp hệ mật mã RSA và AES 34
Trang 42.1.1 Định nghĩa hệ mật mã 34
2.1.2 Mô hình mã hóa dữ liệu RSA-AES 35
2.2 Kết hợp RSA-AES để mã hóa dữ liệu trong CSDL 36
2.2.1 Mô hình RSA-AES để mã hóa dữ liệu trong CSDL 36
2.2.2 Giải pháp kết hợp RSA-AES để mã hóa dữ liệu trong CSDL 39
2.3 Giải pháp thay đổi khóa bí mật khi dữ liệu đã được mã hóa 45
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ THỬ NGHIỆM 51
3.1 Xây dựng chương trình 51
3.1.1 Bài toán thực nghiệm 51
3.1.2 Thiết kế chương trình 52
3.2 Thử nghiệm chương trình 57
3.2.1 Mô tả chương trình 57
3.2.2 Kết quả thử nghiệm chương trình 59
3.3 Đánh giá kết quả thử nghiệm 66
KẾT LUẬN 74
TÀI LIỆU THAM KHẢO 79
PHỤ LỤC 82
LÝ LỊCH TRÍCH NGANG CỦA HỌC VIÊN 87
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1 Mô hình mã hóa dữ liệu trong CSDL ở mức ứng dụng 17
Hình 1.2 Những yêu cầu bảo mật hệ thống thông tin 18
Hình 1.3 Mô hình mã hóa mức lưu trữ 21
Hình 1.4 Mô hình mã hóa mức hệ quản trị CSDL 22
Hình 1.5 Mô hình mã hóa mức ứng dụng 23
Hình 1.6 Mô hình mã hóa đối xứng 24
Hình 1.7 Mô hình mã hóa khóa công khai 25
Hình 1.8 Mô hình chức năng mã hóa trong ORACLE 26
Hình 1.9 Cơ chế hoạt động TDE 27
Hình 2.1 Mô hình mã hóa RSA-AES 35
Hình 2.2 Mô hình giải mã RSA-AES 36
Hình 2.3 Mô hình RSA-AES để mã hóa dữ liệu trong CSDL 37
Hình 2.4 Mô hình RSA-AES để giải mã dữ liệu trong CSDL 38
Hình 2.5 Mô hình mã hóa RSA-AES đối với User và Backup 41
Hình 2.6 Mô hình giải mã RSA-AES đối với User và Backup 41
Hình 2.7 Sơ đồ kiểm tra xác thực thông tin đăng nhập khi thay đổi khóa bí mật 49
Hình 3.1 Hệ điều hành: Oracle Linux Server release 6.4 53
Hình 3.2 Database Oracle 12C 54
Hình 3.3 Oracle SQL Developer: Cấu trúc bảng Location 54
Hình 3.4 Oracle SQL Developer: Dữ liêu bảng Location 55
Hình 3.5 Hệ quản trị CSDL MySQL: Bảng members 55
Hình 3.6 Hệ quản trị CSDL MySQL: Bảng user_kpr_history 56
Hình 3.7 Màn hình đăng nhập 56
Hình 3.8 Giao diện chính của chương trình 57
Trang 6DANH MỤC BẢNG BIỂU
Bảng 2.1 Table USER-KPU-1 42
Bảng 2.2 Table USER-EAES-1 42
Bảng 2.3 Table USER-KPU-2 43
Bảng 2.4 Table USER-EAES-2 43
Bảng 2.5 Table USER-KPU-3 45
Bảng 2.6 Table USER-EAES-3 45
Bảng 2.7 Table USER-KPR-HISTORY sau khi User1 thay đổi KPR-USR lần 1 46
Bảng 2.8 Table USER-KPR-HISTORY sau khi User1 thay đổi KPR-USR lần 2 47
Trang 7
DANH M ỤC TỪ VIẾT TẮT
AES Advanced Encryption Standard
ANSI American National Standards Institute
DAC Discretionary Access Control
DBA Database Administrator
DBMS Database Management System
DCL Data Control Language
DDL Data Definition Language
DES Data Encryption Standard
DML Data Manipulation Language
HSM Hardware Security Module
IDS Intrusion Detection System
ISO International Organization for Standardization
MAC Mandatory Access Control
MD5 Message-Digest algorithm 5
SA Security Administrator
SHA Secure Hash Algorithm
SMS Short Message Services
SQL Structured Query Language
SSL Secure Sockets Layer
TDE Transparent Data Encryption
WIFI Wireless Fidelity
Trang 8MỞ ĐẦU
1 LÝ DO CHỌN ĐỀ TÀI
Trong hệ thống công nghệ thông tin, dữ liệu thường được lưu trữ một cách có tổ chức và hệ thống dưới dạng cơ sở dữ liệu (CSDL- Database) CSDL cũng lưu trữ các thông tin bí mật, các thông tin nhạy cảm cần được bảo vệ Các thông tin này có thể là: thông tin cá nhân, mật khẩu, hồ sơ điều tra, thông tin tài chính ngân hàng, thông tin cần được xác minh,… Do đó, cần có một giải pháp hiệu quả để đảm bảo vấn đề an toàn thông tin trong CSDL nói chung và bảo vệ tính bí mật dữ liệu, tính riêng tư dữ liệu trong CSDL nói riêng
Chuyên trang về Công nghệ thông tin của báo điện tử Infonet - cơ quan ngôn luận của Bộ Thông tin và Truyền thông, có đăng bài: "Security World 2016 bàn về bảo mật cơ sở dữ liệu" Hội thảo - Triển lãm Quốc gia về An ninh Bảo mật Security World 2016 sẽ đưa vào thảo luận chủ đề “Giám sát An toàn thông tin & Bảo mật dữ liệu: Yêu cầu bức thiết trong kỷ nguyên số” Security World 2016 do Bộ Công an chủ trì với sự phối hợp tổ chức giữa Cục An ninh Văn hóa, Thông tin, Truyền thông
- Tổng cục An ninh, Cục Công nghệ Thông tin - Tổng cục Hậu cần Kỹ thuật với IDG Việt Nam
Bảo vệ an toàn dữ liệu có thể thực hiện bằng việc trang bị các hệ thống tường lửa,
hệ thống phát hiện xâm nhập, các kỹ thuật chống truy cập trái phép Việc bảo vệ này chỉ đảm bảo hệ thống an toàn trước các cuộc tấn công và xâm nhập trái phép từ bên ngoài Tuy nhiên, những rủi ro, nguy cơ từ bên trong là không thể kiểm soát được Do đó, vấn đề đặt ra là làm sao để đảm bảo an toàn dữ liệu trước các nguy cơ tấn công từ bên ngoài và các rủi ro từ bên trong là cần thiết
Dịch vụ quản lý CSDL thuê ngoài đã mang lại những lợi ích về kinh tế và tính chuyên nghiệp trong quản lý dữ liệu Với cách quản lý này, máy chủ thuộc về một
tổ chức bên ngoài nên được xem là không đáng tin cậy đối với nội dung cơ sở dữ
Trang 9liệu Hơn nữa, quá trình thao tác dữ liệu của chủ sở hữu dữ liệu hay người dùng đều thông qua mạng diện rộng Chính vì vậy mà thách thức đặt ra liên quan đến vấn đề bảo mật thông tin mật, thông tin nhạy cảm trong CSDL Từ thực tế trên, các cơ quan tổ chức đã tập trung xây dụng các chính sách bảo mật như kiểm soát truy cập hay mã hóa dữ liệu trên đường truyền nhưng vấn đề bảo vệ dữ liệu nằm trong cơ sở
dữ liệu chưa được quan tâm đúng mức Vì vậy, có thể xảy ra tình trạng thông tin dữ liệu mật có thể bị lộ, bị lấy cấp nếu CSDL bị tấn công, xâm nhập
Bảo vệ dữ liệu trong CSDL ở mức độ tập tin bằng hình thức mã hóa để chống lại sự truy cập trái phép vào các tập tin CSDL Giải pháp này không cung cấp mức độ bảo mật truy cập đến CSDL, vì vậy bất cứ ai với quyền truy xuất CSDL đều có thể truy cập vào tất cả dữ liệu trong CSDL Với cách bảo mật này, chúng ta có thể sử dụng các công cụ mã hóa sẵn có của các hệ quản trị CSDL SQL Server, Oracle Trong khi đó, đối với các hệ quản trị CSDL nguồn mở như MySQL, MariaDB,…thì các công cụ mã hóa để bảo vệ tính bí mật dữ liệu vẫn còn hạn chế Với công cụ mã hóa TDE (Transparent Data Encryption) trong Oracle, dữ liệu mật được mã hóa và lưu trên tập tin CSDL sẽ không bị lộ (do không có khóa để giải mã) nếu bị tấn công vào CSDL Nhưng các dữ liệu mật đã được mã hóa này vẫn có thể bị lộ thông tin bởi DBA (Database Administrator) khi họ có ý định xấu hay hợp tác với kẻ tấn công
Từ những lý do trên, chúng tôi nhận thấy việc nghiên cứu các giải pháp để bảo vệ tính bí mật và tính riêng tư dữ liệu trước sự tấn công từ bên ngoài hay từ nội bộ bên trong, ngay cả quản trị viên CSDL là cần thiết, có ý nghĩa khoa học và ứng dụng thực tiễn cao
Năm 2010, Nguyễn Cửu Ánh Mai với luận văn Thạc sĩ chuyên ngành Khoa học máy tính “Nghiên cứu giải pháp bảo mật cơ sở dữ liệu SQL Server bằng phương pháp mã hóa” [1], tác giả đã nghiên cứu các tính năng mã hóa trong SQL Server
2008 và xây dựng chương trình thực hiện chức năng mã hóa CSDL dựa trên các tính năng đã nghiên cứu
Trang 10Cũng đề cập đến nội dung bảo mật CSDL, Phạm Thị Bạch Huệ đã hoàn thành luận
án Tiến sĩ Công nghệ thông tin trong năm 2013: “Nghiên cứu và phát triển một số giải pháp bảo mật và bảo vệ tính riêng tư trong cơ sở dữ liệu thuê ngoài (ODBS)” [2] Mục tiêu của luận án liên quan đến vấn đề bảo mật và bảo vệ tính riêng tư đặt ra trong dịch vụ quản lý cơ sở dữ liệu thuê ngoài Nguyên nhân chính là do máy chủ thuộc về một tổ chức bên ngoài, được xem là không đáng tin cậy đối với nội dung
cơ sở dữ liệu Trong luận án tác giả có tổng hợp: "Theo thống kê năm 2011, có ít nhất 8 triệu hồ sơ y tế bị đánh cắp trong khoảng từ năm 2009 – 2011; có hơn 77 triệu hồ sơ cá nhân, gồm cả thông tin thẻ tín dụng, bị truy cập trên hệ thống cung cấp trò chơi trực tuyến của Sony (Sony Playstation Network) Nguyên nhân chủ yếu của việc mất cắp này xuất phát từ vấn đề quản lý quyền truy cập, máy chủ bị tấn công hay do cả từ phía người quản trị CSDL không đáng tin cậy Ngoài ra, hiện tại, tính riêng tư của người sử dụng các dịch vụ trực tuyến (ví dụ dịch vụ của Google, Microsoft Corp., Facebook, Twitter) gần như bị phơi bày hoàn toàn đối với nhà cung cấp dịch vụ và người sử dụng dịch vụ không thể kiểm soát thông tin riêng tư của họ có được bảo vệ hay không"
Liên quan đến vấn đề bảo vệ bản quyền và bảo vệ tính toàn vẹn trong CSDL: Năm
2014, trong luận văn Thạc sĩ Khoa học máy tính của Dương Thị Lan Hương với đề tài “Xác thực sự toàn vẹn của cơ sở dữ liệu quan hệ bằng kỹ thuật thủy vân số dựa vào hệ mật mã khóa công khai” [3] Một CSDL được công khai và sử dụng rộng rãi trên mạng Internet dễ dẫn đến việc CSDL đó dễ dàng bị sao chép, sửa đổi Để bảo
vệ dữ liệu không bị sao chép bất hợp pháp và bảo vệ sự toàn vẹn của dữ liệu trong CSDL, tác giả đã trình bày chi tiết kỹ thuật thủy vân số kết hợp với cơ chế xác thực công khai dựa vào hệ mật mã khóa công khai
Bài báo “A New Design Of A Hybrid Encryption Algorithm” [4] do Jan Mohammad Najar, Shahid Bashir Dar viết năm 2014 Mục đích của bài báo là đề xuất một mô hình mới để mã hóa dữ liệu bằng cách kết hợp thuật toán mã hóa đối xứng và mã hóa công khai (mã hóa bất đối xứng) Giải pháp đưa ra là dùng phương pháp mã hoá đối xứng AES để mã hoá dữ liệu, sau đó dùng khóa công khai của hệ
Trang 11mã hóa bất đối xứng RSA để mã hoá khoá chung của AES Dữ liệu được giải mã như sau: sử dụng khóa bí mật của hệ mã RSA để giải mã khóa chung của AES, khóa AES sẽ thực hiện giải mã dữ liệu đã mã hóa
Luận văn Thạc sĩ Công nghệ thông tin năm 2015, tác giả Nguyễn Hồng Giang đã thực hiện đề tài “Nghiên cứu giải pháp bảo mật cơ sở dữ liệu SQL Server 2012 bằng phương pháp mã hóa” [5], trong luận văn tác giả nghiên cứu các phương pháp
mã hóa CSDL trong SQL Server 2012 Dựa trên các tính năng đã được nghiên cứu, đưa ra các cách thực hiện cụ thể và so sánh về hiệu năng cũng như cách thức thực hiện các biện pháp bảo mật trong hệ quản trị CSDL SQL Server 2012
Định hướng nghiên cứu: Từ tình hình thực tế nêu trên và những vấn đề nghiên cứu
còn tồn tại, đề tài này tập trung đến vấn đề bảo vệ dữ liệu lưu trong CSDL, cụ thể là dùng kỹ thuật mật mã bằng cách kết hợp thuật toán mã hóa công khai và mã hóa đối xứng để mã hóa dữ liệu, giải quyết các vấn đề liên quan đến giải mã, sử dụng chung khóa công khai, thay đổi khóa bí mật, Định hướng nghiên cứu trong đề tài này xuất phát từ nhu cầu thực tế, những tồn tại và hướng phát triển của những nghiên cứu gần đây, có thể kể đến như:
- Luận văn Thạc sĩ năm 2010 với đề tài “Nghiên cứu giải pháp bảo mật cơ sở dữ liệu SQL Server bằng phương pháp mã hóa” [1] Hướng phát triển là nghiên cứu giải pháp mã hóa trong bảo mật CSDL ORACLE
- Hướng nghiên cứu tiếp theo là bảo vệ tính bí mật dữ liệu, được đề cập nhưng
chưa thực hiện trong Luận án Tiến sĩ “Nghiên cứu và phát triển một số giải pháp bảo mật và bảo vệ tính riêng tư trong cơ sở dữ liệu thuê ngoài (ODBS)” [2]
- K ết hợp thuật toán mã hóa công khai RSA và mã hoá đối xứng AES để mã
hóa dữ liệu, được trình bày trong bài báo: “A New Design Of A Hybrid Encryption Algorithm” [4] Thuật toán này giúp hệ thống xử lí hiệu quả hơn khi áp dụng hệ mã RSA và phù hợp để xây dựng giải pháp bảo mật dữ liệu trong CSDL
Trang 12Đó là các lý do mà chúng tôi chọn thực hiện đề tài: “Nghiên cứu xây dựng giải pháp
bảo vệ tính bí mật và tính riêng tư dữ liệu trong cơ sở dữ liệu bằng phương pháp mã hóa”
- Nghiên cứu tổng quan về an toàn và bảo mật trong CSDL; ứng dụng các thuật toán mã hóa đối xứng và mã hóa công khai trong bảo mật CSDL
- Tìm hiểu các giải pháp bảo mật và bảo mật bằng phương pháp mã hóa trong
hệ quản trị cơ sở dữ liệu ORACLE để có sự đối chiếu với thực tiễn và so sánh về giải pháp thương mại
- Đề xuất giải pháp bảo vệ tính bí mật và tính riêng tư dữ liệu trong cơ sở dữ liệu bằng phương pháp mã hóa: Kết hợp thuật toán mã hóa công khai (RSA)
và mã hóa đối xứng (AES) để mã hóa dữ liệu trong CSDL Đồng thời, đưa ra một số giải pháp xử lý cho các vấn đề liên quan đến giải mã, sử dụng chung khóa công khai, thay đổi khóa bí mật,
- Xây dựng chương trình thực nghiệm theo các giải pháp đã đề xuất, ứng dụng vào giải quyết một bài toán cụ thể cho dữ liệu không vận đơn (Airway Bill) tại sân bay
4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
- Nghiên cứu cách bảo mật CSDL bằng phương pháp mã hóa
- Tìm hiểu tính năng mã hóa trong ORACLE để đánh giá, so sánh
- Tìm hiểu hệ mật mã khóa đối xứng (AES) và hệ mật mã khóa công khai (RSA) Kết hợp RSA-AES để bảo vệ tính bí mật và tính riêng tư dữ liệu trong CSDL Dữ liệu được mã hóa trên ứng dụng trước khi truyền lưu vào
CSDL
- Nghiên cứu lý thuyết:
Trang 13+ Bảo mật CSDL bằng phương pháp mã hóa, các thuật toán mã hóa
+ Tìm hiểu tính năng mã hóa trong Oracle để so sánh thực tế
- Xây dựng chương trình thử nghiệm:
+ Mã hóa dữ liệu trong CSDL bằng phương pháp kết hợp thuật toán mã hóa công khai (RSA) và mã hóa đối xứng (AES)
+ Một số đề xuất giải pháp giải quyết các vấn đề liên quan đến giải mã, sử dụng chung khóa công khai, thay đổi khóa bí mật,
Ngoài các phần: Mở đầu, Kết luận, Tài liệu tham khảo và Phụ lục, cấu trúc luận văn
gồm 3 chương:
Chương 1: Nghiên cứu tổng quan về bảo mật cơ sở dữ liệu
Chương 2: Giải pháp bảo vệ tính bí mật và tính riêng tư dữ liệu trong cơ sở dữ
liệu bằng phương pháp mã hóa
Chương 3: Xây dựng chương trình và kết quả thử nghiệm
Trang 14CHƯƠNG 1:
NGHIÊN CỨU TỔNG QUAN VỀ BẢO MẬT CƠ SỞ DỮ LIỆU
1.1 Một số khái niệm sử dụng trong đề tài nghiên cứu
- Dữ liệu (Data): là các giá trị của thông tin định lượng hoặc định tính của các sự vật, hiện tượng trong cuộc sống Trong tin học, dữ liệu được dùng như một cách biểu diễn hình thức hoá của thông tin về các sự kiện, hiện tượng thích ứng với các yêu cầu truyền nhận, thể hiện và xử lí bằng máy tính [6]
- Thông tin (Information): là dữ liệu đã được xử lý, phân tích, tổ chức nhằm mục đích hiểu rõ hơn sự vật, sự việc, hiện tượng theo một góc độ nhất định [6]
- Hệ thống thông tin (Information Systems) là một hệ thống gồm con người, dữ liệu
và những hoạt động xử lý dữ liệu và thông tin trong một tổ chức [6]
- Bảo mật hệ thống thông tin (Information Systems Security): là bảo vệ hệ thống thông tin chống lại việc truy cập, sử dụng, chỉnh sửa, phá hủy, làm lộ và làm gián đoạn thông tin và hoạt động của hệ thống một cách trái phép [6]
- Cơ sở dữ liệu (CSDL-Database): là tập hợp các dữ liệu có cấu trúc và liên quan với nhau được lưu trữ trên máy tính, được nhiều người sử dụng và được tổ chức theo một mô hình
- Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS): là tập hợp các phần mềm cho phép định nghĩa các cấu trúc để lưu trữ thông tin trên máy, nhập dữ liệu, thao tác trên các dữ liệu đảm bảo sự an toàn và bí mật của dữ liệu
- Hệ thống cơ sở dữ liệu (Database System): là phần mềm DBMS cùng với dữ liệu của bản thân cơ sở dữ liệu đó
- Quản trị viên cơ sở dữ liệu (Database Administrators - DBA): Trong những tổ chức có nhiều người cùng sử dụng chung một nguồn dữ liệu thì nhất thiết phải có một người đứng đầu quản lý, chịu trách nhiệm đối với nguồn dữ liệu này Đó chính
Trang 15là người quản trị cơ sở dữ liệu DBA có nhiệm vụ tổ chức nội dung của cơ sở dữ liệu, tạo và phân quyền cho người sử dụng, đưa ra yêu cầu về phần cứng và phần
mềm,… nếu cần thiết DBA chịu trách nhiệm bảo vệ an toàn, sao lưu dữ liệu,… khi
Tính bí mật và riêng tư dữ liệu được bảo vệ bằng một cơ chế quản lý truy cập, mã hóa dữ liệu hoặc kết hợp cả hai Trong nội dung đề tài, chúng tôi chỉ tập trung thực hiện bảo vệ tính bí mật và tính riêng tư dữ liệu bằng phương pháp mã hóa Dữ liệu được mã hóa trên ứng dụng trước khi truyền lưu vào CSDL
Hình 1.1 Mô hình mã hóa dữ liệu trong CSDL ở mức ứng dụng
Trang 161.2 An toàn và bảo mật thông tin [7], [8], [6]
Với sự phát triển của công nghệ thông tin, đặt biệt là mạng Internet, thông tin được truy cập, khai thác và trao đổi ngày càng cao Vì thế vấn đề an toàn và bảo mật thông tin được xem là một trong những quan tâm hàng đầu của xã hội, có ảnh hưởng rất lớn đến hầu hết các ngành khoa học tự nhiên, kỹ thuật, khoa học xã hội
và kinh tế Những yêu cầu bảo mật hệ thống thông tin [6]:
Hình 1.2 Những yêu cầu bảo mật hệ thống thông tin
- Tính bí mật (Confidentiality): bảo vệ dữ liệu không bị lộ ra ngoài một cách trái phép
Ví dụ: Trong hệ thống ngân hàng, một khách hàng được phép xem thông tin
số dư tài khoản của mình nhưng không được phép xem thông tin của khách hàng khác
- Tính toàn vẹn (Integrity): Chỉ những người dùng được ủy quyền mới được phép chỉnh sửa dữ liệu
Ví dụ: Trong hệ thống ngân hàng, không cho phép khách hàng tự thay đổi thông tin số dư của tài khoản của mình
- Tính sẵn sàng (Availability): Đảm bảo dữ liệu luôn sẵn sàng khi những người dùng hoặc ứng dụng được ủy quyền yêu cầu
Trang 17Ví dụ: Trong hệ thống ngân hàng, cần đảm bảo rằng khách hàng có thể truy vấn thông tin số dư tài khoản bất kỳ lúc nào theo như quy định
- Tính chống thoái thác (Non-repudiation): Khả năng ngăn chặn việc từ chối một hành vi đã làm
Ví dụ: Trong hệ thống ngân hàng, có khả năng cung cấp bằng chứng để chứng minh một hành vi khách hàng đã làm, như rút tiền, chuyển tiền
Chúng ta đang sống trong một thời đại bùng nổ thông tin Nhu cầu trao đổi thông tin và các phương tiện truyền đa thông tin phát triển một cách nhanh chóng Và cùng với sự phát triển đó, đòi hỏi bảo vệ tính bí mật và an toàn của thông tin cũng càng ngày càng to lớn và có tính phổ biến Có nhiều bài toán khác nhau về yêu cầu
an toàn thông tin tùy theo những tình huống khác nhau, nhưng tựu trung có một số bài toán chung nhất mà ta thường gặp trong thực tiễn là những bài toán sau đây [8]:
- Bảo mật: giữ thông tin được bí mật đối với tất cả mọi người, trừ một ít người
có thẩm quyền được đọc, biết thông tin đó;
- Toàn vẹn thông tin: bảo đảm thông tin không bị thay đổi hay xuyên tạc bởi những kẻ không có thẩm quyền hoặc bằng những phương tiện không được phép;
- Nhận thực một thực thể: xác nhận danh tính của một thực thể, chẳng hạn một người, một máy tính cuối trong mạng, một thẻ tín dụng, ;
- Nhận thực một thông báo: xác nhận nguồn gốc của một thông báo được gửi đến;
- Chữ ký: một cách để gắn kết một thông tin với một thực thể, thường dùng trong bài toán nhận thực một thông báo cũng như trong nhiều bài toán nhận thực khác;
- Ủy quyền: chuyển cho một thực thể khác quyền được đại diện hoặc được làm một việc gì đó;
Trang 18- Cấp chứng chỉ: cấp một sự xác nhận thông tin bởi một thực thể được tín nhiệm;
- Báo nhận: xác nhận một thông báo đã được nhận hay một dịch vụ đã được thực hiện;
- Làm chứng: kiểm thử việc tồn tại một thông tin ở một thực thể khác với người chủ sở hữu thông tin đó;
- Không chối bỏ được: ngăn ngừa việc chối bỏ trách nhiệm đối với một cam kết
đã có (thí dụ đã ký vào một văn bản);
- Ẩn danh: che giấu danh tính của một thực thể tham gia trong một tiến trình nào đó (thường dùng trong giao dịch tiền điện tử);
- Thu hồi: rút lại một giấy chứng chỉ hay ủy quyền đã cấp;
Cơ sở của các giải pháp cho các bài toán kể trên là các phương pháp mật mã, đặc biệt là mật mã khóa công khai
1.3 Bảo mật cơ sở dữ liệu bằng phương pháp mã hóa
Bảo mật CSDL (Database Security): là một hệ thống quy trình hay thủ tục để bảo vệ CSDL khỏi các tác động ngoài ý muốn như lạm dụng quyền hạn, vô ý hoặc cố ý trong truy cập CSDL Các cơ chế bảo mật CSDL [6]:
- Xác thực (Authentication)
- Kiểm soát truy cập (Access controls)
- Kiểm tra tính toàn vẹn (Integrity controls)
- Khả năng giám sát (Auditing)
- Mã hóa (Encryption)
Mã hoá CSDL là biện pháp tiếp theo cần áp dụng để bảo mật CSDL, là lớp bảo vệ trong trường hợp các biện pháp kiểm soát truy cập đã bị vượt qua Việc mã hoá này
Trang 19phải được thực hiện một cách đúng đắn để đảm bảo người dùng có toàn quyền trên
hệ điều hành cũng không thể đọc được dữ liệu nếu không thông qua kiểm soát của ứng dụng
1.3.1 Các mức mã hóa (Encryption Level) [9], [10], [11]
- Mã hóa mức lưu trữ (Storage-Level Encryption):
Thực hiện mã hóa dữ liệu trong các hệ thống lưu trữ để bảo vệ dữ liệu Mã hóa mức
lưu trữ sử dụng trong mã hóa các tập tin, thư mục dữ liệu trong môi trường hệ điều hành Mã hóa mức lưu trữ giúp bảo vệ dữ liệu mà không phải thay đổi ứng dụng đang có Mã hóa mức lưu trữ không quan tâm đến cấu trúc dữ liệu, do đó, mức độ nhạy cảm của dữ liệu không ảnh hưởng khi thực hiện Vấn đề là phải lựa chọn các tập tin sẽ được mã hóa để đảm bảo thông tin nhạy cảm không bị rò rỉ
Hình 1.3 Mô hình mã hóa mức lưu trữ
- Mã hóa mức hệ quản trị CSDL (DBMS-Level Encryption):
Cho phép bảo vệ dữ liệu khi đưa vào hoặc lấy ra từ CSDL Mã hóa mức CSDL phụ thuộc vào quá trình thiết kế CSDL, với các yêu cầu về độ nhạy cảm của dữ liệu hay phân quyền người sử dụng Mã hóa mức CSDL có thể thực hiện linh hoạt với bảng, cột hay dòng dữ liệu Tùy thuộc vào mức độ hỗ trợ của DBMS, để thực hiện mã hóa mức CSDL có thể phải thay đổi ứng dụng đang có Hơn nữa, mã hóa mức CSDL có thể làm giảm hiệu năng của DBMS
Trang 20Thực hiện mã hóa mức CSDL tức là dữ liệu được giải mã tại máy chủ CSDL Tức
là, máy chủ phải lưu trữ bản mã, các khóa mã hóa Do đó, khi kẻ tấn công chiếm được quyền quản trị máy chủ thì cũng có thể chiếm quyền sử dụng các bản mã và khóa mã hóa để đánh cắp dữ liệu
Hình 1.4 Mô hình mã hóa mức hệ quản trị CSDL
- Mã hóa mức ứng dụng (Application-Level Encryption):
Thực hiện quá trình mã hóa và giải mã trên ứng dụng để xử lý dữ liệu Mã hóa được thực hiện trên ứng dụng rồi đưa vào hệ thống Dữ liệu mã hóa được hệ thống lưu trữ
và được giải mã trên ứng dụng Phương pháp này có lợi ích là tách biệt khóa (trên ứng dụng) và dữ liệu được mã hóa (lưu trong CSDL) Tuy nhiên, để áp dụng thì ứng dụng phải viết lại Ngoài ra, tùy thuộc vào mức độ mã hóa, khi lấy dữ liệu, ứng dụng có thể lấy thừa dữ liệu từ CSDL, do đó làm giảm tính an toàn Trong một số
trường hợp, để tối ưu, mã hóa có thể thực hiện nhờ các hàm lưu sẵn trong DBMS để giảm tải cho ứng dụng Khi đó, với cơ chế quản lý khóa của DBMS, mã hóa mức ứng dụng có thể được thực hiện linh hoạt, tùy thuộc vào sự hợp lý của ứng dụng đang sử dụng
Trang 21Hình 1.5 Mô hình mã hóa mức ứng dụng
1.3.2 Phương pháp mã hóa [12], [13], [14], [15], [16], [4], [8]
- Hàm b ăm (Hash Function):
Hàm băm sử dụng phép biến đổi toán học để mã hóa thông tin theo một chiều (không sử dụng khóa) Một hàm băm nhận đầu vào là một xâu ký tự (hay thông điệp) có độ dài tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố định Hàm băm
h là hàm một chiều có các đặc tính sau:
+ Với thông điệp đầu vào X thu được bản băm Y = h(X) là duy nhất
+ Hai thông điệp khác nhau thì giá trị hàm băm hoàn toàn khác nhau
+ Nội dung của thông điệp gốc không thể được suy ra từ giá trị hàm băm Một số ứng dụng của hàm băm bao gồm bảo vệ mật khẩu, chứng thực và kiểm tra tính nguyên vẹn của thông điệp Một số thuật toán hàm băm an toàn nổi tiếng gồm
có SHA-224, SHA-256, SHA-384, và SHA-512 Các thuật toán SHA-1 và MD5 hiện đang được sử dụng rộng rãi
- Mã hóa đối xứng (Symetric cryptography)
Trang 22Mã hoá đối xứng sử dụng cùng một khoá cho cả hai quá trình mã hoá và giải mã
Mã hoá đối xứng có thể tác động trên bản rõ theo từng nhóm bit hay theo từng bit một
Hình 1.6 Mô hình mã hóa đối xứng
* Hệ mã hóa đối xứng AES (Advanced Encryption Standard)
Năm 1997, Viện tiêu chuẩn và công nghệ Mỹ (NIST - National Institute of Standard and Technology) kêu gọi phát triển một thuật toán mới thay thế cho DES Thuật toán được chọn phải là thuật toán khối có kích thước khối là 128 bit, hỗ trợ khóa có kích thước 128 bit, 192 bit và 256 bit Năm 2001, Thuật toán Rijndael được chọn làm hệ mã AES
Trong Rijndael, khối dữ liệu có kích thước 128, 192, hoặc 256 bit và khoá có kích thước 128, 192 hoặc 256 bit Trong AES, NIST đã giới hạn lại kích thước khối là
128 bit
- Mã hóa khóa công khai (Mã hóa bất đối xứng- Asymetric cryptography)
Mã hóa bất đối xứng sử dụng một cặp khóa có liên quan với nhau về mặt toán học, một khóa công khai dùng để mã hoá (public key) và một khóa bí mật dùng để giải
mã (private key) Một thông điệp sau khi được mã hóa bởi khóa công khai sẽ chỉ có thể được giải mã với khóa bí mật tương ứng Do các thuật toán loại này sử dụng một khóa công khai (không bí mật) nên còn có tên gọi khác là public-key cryptography (thuật toán mã hóa khóa công khai)
Trang 23Hình 1.7 Mô hình mã hóa khóa công khai
* Hệ mã hóa khóa công khai RSA (Rivest-Shamir-Adleman)
Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa cá nhân) Mỗi khóa là những số cố định sử dụng trong quá trình mã hóa
và giải mã Khóa công khai được công bố rộng rãi cho mọi người và được dùng để
mã hóa Những thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ có người biết khóa cá nhân (bí mật) mới có thể giải mã được
Thuật toán RSA:
Chọn hai số nguyên tố ngẫu nhiên lớn p,q Tính n = p.q
Tính Φ(n) = (p – 1)(q -1)
Chọn e , 1 ≤ e ≤ Φ(n) -1, sao cho e và Φ(n) là hai số nguyên tố cùng nhau Tính số d sao cho e.d ≡ 1 mod Φ(n) , tức là tính d= e -1
mod Φ(n)
- Khóa công khai (Public key-PU) là (e,n)
- Khóa bí mật (Private key-PR) là d
* Bảo mật theo thuật toán RSA:
- Mã hóa bản rõ M:
C = Encrypt (M, PU) = M e
mod n
Trang 24Hình 1.8 Mô hình chức năng mã hóa trong ORACLE