Với điện toán đám mây người dùng có thể sử dụng các thiết bị cá nhân để truy cập các chương trình, các nền tảng lưu trữ và triển khai ứng dụng trên Internet thông qua các dịch vụ được cá
Trang 1ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TRƯƠNG NGỌC HẠNH
NGHIÊN CỨU MÔ HÌNH XỬ LÝ DỮ LIỆU MÃ HÓA VÀ BẢO MẬT DỮ LIỆU TRONG ĐIỆN
TOÁN ĐÁM MÂY
LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH
THÁI NGUYÊN, NĂM 2015
Trang 2ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn “Nghiên cứu mô hình xử lý dữ liệu mã hóa và
bảo mật dữ liệu trong điện toán đám mây” là sản phẩm của riêng cá nhân, không
sao chép lại của người khác Trong toàn bộ nội dung của luận văn, những điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp, nghiên cứu từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ và trích dẫn rõ ràng Nếu có gì sai sót, tôi xin chịu mọi trách nhiệm./
Thái Nguyên, ngày tháng năm 2015
HỌC VIÊN
Trương Ngọc Hạnh
Trang 4LỜI CẢM ƠN
Lời đầu tiên, tôi xin bày tỏ lòng biết ơn đến thầy TS.Trần Đức Sự người đã tận tình hướng dẫn, chỉ bảo và giúp đỡ tôi trong suốt quá trình nghiên cứu và hoàn thành luận văn này
Tôi xin chân thành cảm ơn các thầy cô giáo trường Đại học Công nghệ Thông tin và Truyền thông - Đại học Thái Nguyên đã giảng dạy và cung cấp cho chúng tôi những kiến thức rất bổ ích trong thời gian học cao học, giúp tôi có nền tảng tri thức để phục vụ nghiên cứu khoa học sau này
Tôi cũng xin cảm ơn Lãnh đạo và đồng nghiệp tại đơn vị đã tạo điều kiện
và giúp đỡ tôi trong suốt quá trình nghiên cứu và hoàn thành luận văn Tôi cũng xin bày tỏ lòng cảm ơn đến gia đình và bạn bè, những người luôn quan tâm, động viên và khuyến khích tôi trong quá trình học tập
Thái Nguyên, ngày tháng năm 2015
Trương Ngọc Hạnh
Trang 5MỤC LỤC
Trang
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC TỪ VIẾT TẮT TRONG LUẬN VĂN vi
DANH MỤC CÁC HÌNH ẢNH vii
DANH MỤC CÁC BẢNG BIỂU ix
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY VÀ VẤN ĐỀ BẢO MẬT DỮ LIỆU TRONG ĐIỆN TOÁN ĐÁM MÂY 4
1.1 Giới thiệu chung về điện toán đám mây 4
1.2 Mô hình kiến trúc điện toán đám mây 5
1.2.1 Kiến trúc phân lớp dịch vụ 5
1.2.1.1 Dịch vụ ứng dụng (SaaS) 9
1.2.1.2 Dịch vụ nền tảng hệ thống (PaaS) 11
1.2.1.3 Dịch vụ cơ sở hạ tầng (IaaS) 13
1.2.2 Mô hình triển khai 14
1.2.2.1 Đám mây riêng (Private Cloud) 15
1.2.2.2 Đám mây công cộng (Public Cloud) 16
1.2.2.3 Đám mây lai (Hybrid Cloud) 18
1.3 Vấn đề bảo mật trong điện toán đám mây 19
1.3.1 An toàn liên quan đến kiến trúc của điện toán đám mây 19
1.3.1.1 An ninh ở mức hạ tầng 19
1.3.1.2 An ninh ở mức dịch vụ nền tảng 20
1.3.1.3 An ninh ở mức dịch vụ phần mềm 21
1.3.2 Vấn đề quản lí an toàn hệ thống 22 CHƯƠNG 2 MÔ HÌNH XỬ LÝ DỮ LIỆU MÃ HÓA VÀ BẢO MẬT DỮ
Trang 6LIỆU TRONG ĐIỆN TOÁN ĐÁM MÂY 24
2.1 Dịch vụ cơ sở dữ liệu (DBaaS) 24
2.1.1 Khái niệm 24
2.1.2 Lợi ích của DBaaS so với các hệ cơ sở dữ liệu thông thường 25
2.1.3 Vấn đề bảo mật dữ liệu 26
2.2 CryptDB và mô hình xử lý dữ liệu mã hóa 27
2.2.1 Giới thiệu về CryptDB và mô hình 27
2.2.2 Mối đe dọa DBMS bị thỏa hiệp 29
2.2.3 Truy vấn trên dữ liệu mã hóa 31
2.2.3.1 Mã hóa trong CryptDB 31
2.2.3.2 Mã hóa lớp 34
2.2.3.3 Hàm người dùng định nghĩa: (User Defined Function – UDF) 37 2.2.3.4 Điều chỉnh mã hóa dựa theo truy vấn 38
2.2.3.5 Cấu trúc dữ liệu trong CryptDB 40
2.2.3.6 Thực thi truy vấn trên dữ liệu mã hóa 42
2.2.3.7 Tính toán liên kết giữa các cột 50
2.3 Áp dụng mô hình bảo mật dữ liệu trong điện toán đám mây 53
2.3.1 Thách thức và yêu cầu 53
2.3.2 Thiết kế hệ thống 56
2.3.3 Phân tích an ninh 59
CHƯƠNG 3 TRIỂN KHAI CÀI ĐẶT, THỬ NGHIỆM VÀ ĐÁNH GIÁ MÔ HÌNH 61
3.1 Mô hình triển khai 61
3.1.1 Mô hình triển khai hệ thống 61
3.1.2 Mô hình hoạt động hệ thống 62
3.2 Triển khai cài đặt và thử nghiệm 67
3.2.1 Triển khai cài đặt 67
3.2.2 Thử nghiệm mô hình 69
Trang 73.3 Đánh giá mô hình 74
3.3.1 Đánh giá về chức năng 74
3.3.2 Đánh giá về độ bảo mật dữ liệu 74
3.3.4 Đánh giá về hoạt động 75
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 77
TÀI LIỆU THAM KHẢO 79
Trang 8DANH MỤC CÁC TỪ VIẾT TẮT TRONG LUẬN VĂN
IT Information Technology Công nghệ thông tin
NIST National Institute of Standards
IaaS Infrastructure-as-a-Service Cơ sở hạ tầng như một dịch vụ PaaS Platform-as-a-Service Nền tảng như một dịch vụ SaaS Software-as-a-Service Phần mềm như một dịch vụ DBaaS Database-as-a-Service Cơ sở dữ liệu như một dịch vụ
SPI Software-Platform-Infrastructure Phần mềm nền tảng cơ sở hạ
tầng
CRM Customer Relationship
ERP Enterprise Resource Planning hoạch định nguồn lực doanh
nghiệp SQL Structured Query Language Ngôn ngữ truy vấn cấu trúc DBMS Database Management System Hệ quản trị cơ sở dữ liệu UDF User-Defined Function Hàm người dùng định nghĩa DBA Database Administrator Quản trị viên cơ sở dữ liệu
PRP Pseudo-Random Permutation Hoán vị giả ngẫu nhiên
PRF Pseudo-Random Function Hàm giả ngẫu nhiên
Trang 9DANH MỤC CÁC HÌNH ẢNH
Trang
Hình 1.1 Điện toán đám mây 5
Hình 1.2 Mô hình kiến trúc dịch vụ điện toán đám mây của SOMF 5
Hình 1.3 Mô hình SPI 6
Hình 1.4 Mô hình SPI với các ứng dụng trong thực tế 7
Hình 1.5 Mức độ kiểm soát/trách nhiệm giữa client và nhà cung cấp dịch vụ 8
Hình 1.6 SaaS cung cấp dịch vụ cho khách hàng 9
Hình 1.7 Phạm vi kiểm soát giữa nhà cung cấp/sử dụng dịch vụ SaaS 11
Hình 1.8 PaaS cho phép khách hàng truy cập vào một nền tảng trên điện toán đám mây 12
Hình 1.9 Phạm vi kiểm soát giữa nhà cung cấp/sử dụng dịch vụ PaaS 13
Hình 1.10 IaaS cho phép nhà cung cấp dịch vụ thuê những tài nguyên phần cứng 14
Hình 1.11 Phạm vi kiểm soát giữa nhà cung cấp/sử dụng dịch vụ IaaS 14
Hình 1.12 Mô hình triển khai điện toán đám mây 15
Hình 1.13 Các thành phần trong đám mây riêng 15
Hình 1.14 So sánh giữa đám mây riêng và đám mây công cộng 17
Hình 1.15 Đám mây công cộng 18
Hình 1.16 Mô hình đám mây lai 19
Hình 2.1 Kiến trúc của CryptDB 27
Hình 2.2 Mối đe dọa các DBA đánh cắp dữ liệu 30
Hình 2.3 EQ Onion 35
Hình 2.4 ORD Onion 35
Hình 2.5 SEARCH và ADD Onion 36
Hình 2.6 Các lớp mã hóa Onion và các lớp tính toán được phép 38
Hình 2.7 Các lớp mã hóa của các cột 45
Hình 2.8 Lớp mã hóa của các cột sau bước 1 46
Trang 10Hình 2.9 Kiến trúc Relational Cloud 58
Hình 3.1 Mô hình hệ thống 61
Hình 3.2 Lưu đồ hoạt động 62
Hình 3.3 Giao diện ứng dụng thử nghiệm 63
Hình 3.4 Cập nhật Ubuntu 67
Hình 3.5 Tải CryptDB về máy 68
Hình 3.6 Chạy kịch bản cài đặt CryptDB 68
Hình 3.7 Cài đặt CryptDB thành công 69
Hình 3.8 Chạy proxy trên Web server 70
Hình 3.9 Truy cập ứng dụng web 70
Hình 3.10 Đăng nhập vào mysql bằng tài khoản root 71
Hình 3.11 Tạo cơ sở dữ liệu trên ứng dụng 72
Hình 3.12 Hoạt động của CryptDB khi tạo cơ sở dữ liệu 72
Hình 3.13 Cơ sở dữ liệu được lưu trên Database server 72
Hình 3.14 Sử dụng một vài chức năng của ứng dụng web 73
Hình 3.15 Hoạt động tại CryptDB 73
Hình 3.16 Dữ liệu trên Database server được mã hóa hoàn toàn 73
Hình 3.17 So sánh thông lượng của phpBB 75
Trang 11DANH MỤC CÁC BẢNG BIỂU
Trang
Bảng 2.1 Square 37
Bảng 2.2 Kết quả 37
Bảng 2.3 Dữ liệu gốc 41
Bảng 2.4 Được tạo ra bởi Proxy Server 41
Bảng 2.5 Students sau khi được tạo 43
Bảng 2.6 Mã hóa được tạo trên Proxy Server 43
Bảng 2.7 Kết quả của truy vấn 44
Bảng 2.8 Kết quả được trả về từ phía Proxy Server 44
Bảng 2.9 Lược đồ cơ sở dữ liệu ví dụ 44
Bảng 2.10 Lược đồ cơ sở dữ liệu sau bước 1 45
Bảng 2.11 Lược đồ cơ sở dữ liệu sau bước 2 46
Bảng 2.12 Được cập nhật với các giá trị Grade được thêm 48
Bảng 2.13 Được cập nhật được mã hóa bên Proxy Server 49
Bảng 3.1 Thông tin các thành phần trong hệ thống 61
Bảng 3.2 Thời gian xử lý 5 loại request 75
Trang 12MỞ ĐẦU
1 Đặt vấn đề
Ngày nay, điện toán đám mây (Cloud computing) đang là xu hướng phát triển mạnh của ngành Công nghệ thông tin Điện toán đám mây là một mô hình tính toán năng động cao, có khả năng mở rộng đến các tài nguyên ảo trên mạng Internet Với điện toán đám mây người dùng có thể sử dụng các thiết bị cá nhân
để truy cập các chương trình, các nền tảng lưu trữ và triển khai ứng dụng trên Internet thông qua các dịch vụ được các nhà cung cấp điện toán đám mây đưa
ra Lợi thế của điện toán đám mây là tiết kiệm chi phí, khả năng sẵn sàng cao, khả năng cân bằng dễ dàng Chính vì thế mà điện toán đám mây ngày càng được
ưa chuộng [1] Tuy nhiên những nghiên cứu gần đây nhất cho thấy vấn đề về bảo mật, an toàn thông tin đang là rào cản lớn nhất quyết định liệu điện toán đám mây có được sử dụng rộng rãi nữa hay không Để đảm bảo an toàn cho đám mây điện toán, cần hiểu được những đặc trưng cơ bản của điện toán đám mây trong đó tính mã hóa bảo mật dữ liệu luôn được xem xét kỹ lưỡng
Sau khi tiến hành nghiên cứu các tài liệu liên quan đến lĩnh vực an toàn bảo mật thông tin trong điện toán đám mây và nhận thấy có tính cấp thiết và thực tiễn Với những mong muốn trên, được sự đồng ý, động viên của cán bộ hướng
dẫn khoa học, tôi đã chọn đề tài “Nghiên cứu mô hình xử lý dữ liệu mã hóa
và bảo mật dữ liệu trong điện toán đám mây” để nghiên cứu cho luận văn cao
học của mình Mong rằng kết quả của đề tài khi được triển khai thực tế sẽ góp phần bảo đảm bí mật cho những dữ liệu, thông tin nhạy cảm được lưu trữ trên điện toán đám mây
2 Mục tiêu nghiên cứu
Luận văn nghiên cứu hệ thống lý thuyết liên quan đến các mô hình và kỹ thuật xử lý dữ liệu mã hóa Trên cơ sở đó áp dụng mô hình xử lý dữ liệu mã hóa trong bảo mật dữ liệu trên điện toán đám mây để cài đặt và thử nghiệm đưa ra
kết quả thực nghiệm
Trang 133 Đối tượng và phạm vi nghiên cứu
Tìm hiểu những kiến thức cơ bản về điện toán đám mây, một mô hình điện toán sử dụng các công nghệ máy tính và phát triển
Tìm hiểu khái niệm mới trong điện toán đám mây đó là Service (cơ sở dữ liệu như một dịch vụ) Đưa ra những lợi ích mà Database-as-a-Service đem lại cũng như những hạn chế để từ đó phân tích nghiên cứu xây dựng nên mô hình xử lý dữ liệu mã hóa nhằm khắc phục những hạn chế đó Tìm hiểu về CryptDB, một giải pháp mới để đảm bảo an toàn cho dữ liệu lưu trữ trên máy chủ cơ sở dữ liệu bằng cách cho phép truy vấn trên dữ liệu mã hóa, một thành phần không thể thiếu trong mô hình
Database-as-a-Xây dựng ứng dụng thử nghiệm, tiến hành cài đặt các thành phần, thử nghiệm mô hình để từ đó đánh giá được những điểm mạnh, điểm yếu cũng như tính thực tiễn của mô hình
4 Phương pháp nghiên cứu
Luận văn sử dụng phương pháp nghiên cứu tư liệu kết hợp với triển khai thực nghiệm Trên cơ sở nghiên cứu tổng hợp từ mô hình xử lý dữ liệu mã hóa trong điện toán đám mây Luận văn đưa ra một giải pháp mới để đảm bảo an toàn cho dữ liệu lưu trữ trên máy chủ cơ sở dữ liệu và tiến hành cài đặt, thử nghiệm đưa ra kết quả thực nghiệm
5 Ý nghĩa khoa học của đề tài
- Đề tài có ý nghĩa khoa học khi đề xuất phương pháp về xử lý dữ liệu mã hóa trong bảo mật dữ liệu trên điện toán đám mây
- Đề tài có ý nghĩa thực tiễn cao trong cuộc sống, hệ thống thực nghiệm được xây dựng dựa trên phương pháp đề xuất mang lại tính ứng dụng hỗ trợ ngày một tốt hơn cho người dùng trên Internet
6 Bố cục của luận văn
Dựa trên đối tượng và phạm vi nghiên cứu, luận văn được phân làm 3 chương chính với các nội dung cụ thể như sau:
Trang 14Chương 1 Tổng quan về điện toán đám mây và vấn đề bảo mật dữ liệu trong điện toán đám mây
Kết thúc chương này ta sẽ có cái nhìn tổng quan nhất về điện toán đám mây, biết được những lợi ích to lớn mà điện toán đám mây đem lại so với điện toán truyền thống cũng như một số vấn đề về bảo mật dữ liệu chúng ta sẽ gặp phải khi sử dụng các dịch vụ điện toán đám mây
Chương 2 Mô hình xử lý dữ liệu mã hóa và bảo mật dữ liệu trong điện toán đám mây
Chương này sẽ trình bày về một chủ đề đang rất được quan tâm trong điện toán đám mây, đó là Database-as-a-Service – DBaaS hay còn được gọi là cơ sở
dữ liệu như một dịch vụ Đồng thời cũng giới thiệu về một giải pháp mới để đảm bảo bí mật cho dữ liệu được lưu trữ trên cơ sở dữ liệu của bên thứ ba đó là CryptDB, cũng như phân tích hoạt động của CryptDB trong việc xử lý dữ liệu
mã hóa
Chương 3 Triển khai, thử nghiệm và đánh giá
Kết thúc chương này ta sẽ thấy rõ hơn cách mà CryptDB được áp dụng trong thực tế để đảm bảo bí mật cho dữ liệu khi lưu trữ trên cơ sở dữ liệu của một nhà cung cấp dịch vụ điện toán đám mây
Trang 15CHƯƠNG 1 TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY VÀ VẤN ĐỀ
BẢO MẬT DỮ LIỆU TRONG ĐIỆN TOÁN ĐÁM MÂY
1.1 Giới thiệu chung về điện toán đám mây
Khái niệm về điện toán đám mây xuất hiện từ những năm 1960 trở lại đây,
khi John McCarthy phát biểu rằng: “Một ngày nào đó tính toán được tổ chức
như một tiện ích công cộng” Các đặc điểm của điện toán đám mây tạo ra như
khả năng co giãn, cung cấp như một tiện ích trực tuyến, với khả năng xem như
vô hạn
Hiện nay, điện toán đám mây được rất nhiều tổ chức và cá nhân định nghĩa khác nhau Dưới đây là một số khái niệm điện toán đám mây:
Theo Rajkumar Buyya: “Điện toán đám mây là một loại hệ thống phân bố
và xử lý song song gồm các máy tính ảo kết nối với nhau và được cung cấp động cho người dùng như một hoặc nhiều tài nguyên đồng nhất dựa trên sự thỏa thuận dịch vụ giữa nhà cung cấp và người sử dụng”
Theo Ian Foster: “Điện toán đám mây là một mô hình điện toán phân tán
có tính co giãn lớn mà hướng theo co giãn về mặt kinh tế, là nơi chứa các sức mạnh tính toán, kho lưu trữ, các nền tảng và các dịch vụ được trực quan, ảo hóa
và co giãn linh động, sẽ được phân phối theo nhu cầu cho các khách hàng bên ngoài thông qua Internet”
Theo Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (NIST): “Điện toán
đám mây là một mô hình cho phép truy cập mạng thuận tiện, theo nhu cầu đến một kho tài nguyên điện toán dùng chung, có thể định cấu hình: Mạng, máy chủ, lưu trữ, ứng dụng,… Có thể được cung cấp và thu hồi một cách nhanh chóng với yêu cầu tối thiểu về quản lý hoặc can thiệp của nhà cung cấp dịch vụ”
Trang 16Hình 1.1 Điện toán đám mây
1.2 Mô hình kiến trúc điện toán đám mây
1.2.1 Kiến trúc phân lớp dịch vụ
Hiện nay có một số mô hình kiến trúc phân lớp dịch vụ cho điện toán đám mây, ví dụ như mô hình kiến trúc dịch vụ của SOMF như hình 1.2 Tùy theo nhà cung cấp dịch vụ điện toán đám mây, họ sẽ cung cấp các loại dịch vụ điện toán đám mây khác nhau
Hình 1.2 Mô hình kiến trúc dịch vụ điện toán đám mây của SOMF
Tuy nhiên tựu chung của các mô hình kiến trúc dịch vụ điện toán đám mây đều có ba loại cơ bản là: Dịch vụ cơ sở hạ tầng (IaaS), dịch vụ nền tảng (PaaS)
và dịch vụ phần mềm (SaaS) Cách phân loại này thường được gọi là mô hình
Trang 17SPI Hình 1.3 dưới đây sẽ mô tả mô hình dịch vụ SPI (Software – Platform – Infrastructure)
Hình 1.3 Mô hình SPI Trong hình 1.4 dưới đây sẽ cho chúng ta thấy mô hình SPI của điện toán đám mây gắn liền với một số ứng dụng, dịch vụ cụ thể trong thực tế
Trang 18Hình 1.4 Mô hình SPI với các ứng dụng trong thực tế
Mô hình dịch vụ xác định tùy chọn điều khiển khác nhau cho các khách hàng và cung cấp dịch vụ điện toán đám mây Ví dụ, khách hàng SaaS chỉ cần
sử dụng các ứng dụng và dịch vụ được cung cấp bởi các CSP, nơi IaaS khách hàng duy trì kiểm soát môi trường của mình được lưu trữ trên cơ sở hạ tầng cơ bản của CSP Ba mô hình dịch vụ thường được sử dụng nhất được mô tả như sau:
SaaS: Khả năng cho khách hàng sử dụng các ứng dụng của nhà cung cấp
đang chạy trên một cơ sở hạ tầng điện toán đám mây Các ứng dụng có thể truy cập từ các thiết bị khách hàng khác nhau hoặc thông qua một giao diện thin client, chẳng hạn như một trình duyệt web hoặc một giao diện chương trình
PaaS: Khả năng cho khách hàng để triển khai các ứng dụng của họ (được
tạo ra hoặc mua lại) vào cơ sở hạ tầng điện toán đám mây, sử dụng ngôn ngữ lập trình, thư viện, dịch vụ và các công cụ hỗ trợ của nhà cung cấp
IaaS: Khả năng cho khách hàng để sử dụng xử lý của nhà cung cấp, lưu trữ,
mạng, tài nguyên máy tính cơ bản khác để triển khai và chạy hệ điều hành, các ứng dụng và phần mềm khác trên một cơ sở hạ tầng điện toán đám mây
Trang 19Sự khác biệt chính giữa các cấp dịch vụ liên quan đến cách điều khiển được chia sẻ giữa các khách hàng và CSP Do đó ảnh hưởng đến mức độ trách nhiệm cho cả hai bên Cần lưu ý rằng, khác hơn trong một đám mây thực sự tin (on-premise) kịch bản, khách hàng hiếm khi có bất kỳ kiểm soát phần cứng và nó là mức độ mà các thành phần ảo, các ứng dụng và phần mềm được quản lý bởi các bên khác nhau để phân biệt các mô hình dịch vụ Theo nguyên tắc chung, SaaS cung cấp cho khách hàng với số tiền ít nhất kiểm soát, trong khi IaaS cung cấp
sự kiểm soát nhất cho khách hàng
Điều quan trọng cần lưu ý là những mô tả triển khai và mô hình dịch vụ, mặc dù được chấp nhận rộng rãi bởi các ngành công nghiệp, có thể không hoàn toàn được theo sau bởi các nhà cung cấp điện toán đám mây hoặc phản ánh môi trường điện toán đám mây thực tế
Mức độ trách nhiệm an ninh trên các mô hình dịch vụ điện toán đám mây nói chung và di cư đối với khách hàng là khách hàng di chuyển từ một mô hình SaaS (trách nhiệm của khách hàng ít nhất) đến một mô hình IaaS (hầu hết trách nhiệm của khách hàng) Mức độ lớn nhất của trách nhiệm cho các CSP để duy trì kiểm soát an ninh và hoạt động hiện diện trong mô hình dịch vụ SaaS
Hình dưới đây cho thấy cách kiểm soát thường được chia sẻ giữa các CSP
và khách hàng qua các mô hình dịch vụ khác nhau
Trang 20Trong khi khách hàng có thể được thu hút vào các mô hình SaaS và PaaS
do tiết kiệm tài nguyên và giảm trách nhiệm về quản lý môi trường điện toán đám mây, họ nên biết rằng các mô hình này cũng tương ứng với một mất mát lớn hơn kiểm soát của các nhà môi trường dữ liệu nhạy cảm của họ Thỏa thuận hợp đồng và thẩm định liên tục trở nên đặc biệt quan trọng, nơi kiểm soát là bên ngoài, để đảm bảo rằng các biện pháp an ninh cần được đáp ứng và duy trì bởi CSP trong thời gian thỏa thuận
1.2.1.1 Dịch vụ ứng dụng (SaaS)
Dịch vụ ứng dụng SaaS là một mô hình dịch vụ phần mềm triển khai qua Internet Trong đó, SaaS sẽ cung cấp giấy phép một ứng dụng cho khách hàng
để sử dụng một dịch vụ theo yêu cầu, hay còn gọi là “phần mềm theo yêu cầu”
Mô hình SaaS cho phép các nhà cung cấp phát triển, lưu trữ và vận hành phần mềm để khách hàng sử dụng Thay vì mua các phần cứng và phần mềm để chạy một ứng dụng, khách hàng chỉ cần một máy tính hoặc một máy chủ để tải ứng dụng và truy cập internet để chạy phần mềm Phần mềm này có thể được cấp phép cho một người dùng duy nhất hoặc cho một nhóm người dùng
Ứng dụng các dịch vụ đám mây hay “SaaS” cung cấp phần mềm như một dịch vụ trên Internet, không cần cài đặt hay chạy chương trình trên máy tính phía khách hàng Những ứng dụng cung cấp cho khách hàng được cài đặt, cấu hình trên máy chủ từ xa Đồng thời công việc bảo trì đơn giản và được hướng dẫn từ nhà cung cấp
Hình 1.6 SaaS cung cấp dịch vụ cho khách hàng
Trang 21Thuật ngữ “SaaS” và “cloud” có thể thay thế được cho nhau, nhưng thực tế
đó là hai khái niệm khác nhau Chúng bao gồm các đặc điểm sau:
- Dựa vào mạng khách hàng truy cập, quản lý và thương mại
- Các hoạt động được xử lý tại trung tâm và cho phép khách hàng truy cập
từ xa thông qua trình duyệt web
SaaS có thể được chia thành hai loại chính:
- Cung cấp cho doanh nghiệp: Đây là những giải pháp kinh doanh được cung cấp cho các công ty và doanh nghiệp Chúng được cung cấp thông qua doanh nghiệp đăng ký dịch vụ Các ứng dụng được cung cấp thông qua hình thức trên bao gồm các quá trình kinh doanh như quản lý dây chuyền cung cấp, quan hệ khách hàng và các công cụ hướng kinh doanh
- Cung cấp cho cá nhân: Các dịch vụ này được cung cấp cho công chúng trên
cơ sở thuê bao đăng ký Tuy nhiên, họ được cung cấp miễn phí và hỗ trợ thông qua quảng cáo Ví dụ trong loại hình này gồm có dịch vụ web mail, chơi game trực tuyến, ngân hàng của người tiêu dùng và nhiều kiểu khách hàng khác
Ưu điểm: SaaS mang lại cho khách hàng chi phí thấp hơn các phần mềm cấp phép; Có tính năng tiết kiệm chi phí lớn nhất bởi khi sử dụng SaaS khách hàng sẽ loại bỏ những công việc thực sự không cần thiết cho các doanh nghiệp như cài đặt và duy trì phần cứng, trả công cho nhân viên và duy trì các ứng dụng Đồng thời các nhà cung cấp SaaS thường có kiểm tra an ninh rất tỉ mỉ Nhược điểm: Gây trở ngại kỹ thuật để xây dựng một SaaS hiệu quả với mô hình nhiều khách hàng Điều này đã trở nên dễ dàng hơn so với vấn đề ảo hóa, nhưng thiết kế một ứng dụng có hiệu quả cung cấp cho hàng ngàn khách hàng qua Internet là công việc khó khăn
Đặc điểm của SaaS:
- Thiết lập vị trí các ứng dụng do nhà cung cấp dịch vụ SaaS quản lý, còn việc sử dụng tài nguyên và sử dụng các ứng dụng dịch vụ SaaS do người sử dụng quản lý
Trang 22- Phần cứng, ảo hóa, hệ điều hành và các phần sụn hoàn toàn do nhà cung cấp dịch vụ SaaS quản lý và kiểm soát
Hình 1.7 Phạm vi kiểm soát giữa nhà cung cấp/sử dụng dịch vụ SaaS
1.2.1.2 Dịch vụ nền tảng hệ thống (PaaS)
Dịch vụ nền tảng hệ thống PaaS cung cấp các nền tảng điện toán cho phép khách hàng phát triển các phần mềm, phục vụ nhu cầu tính toán hoặc xây dựng thành dịch vụ trên nền tảng đám mây đó Dịch vụ PaaS có thể được cung cấp dưới dạng các ứng dụng lớp giữa (middleware), các máy chủ ứng dụng (applicationserver) cùng các công cụ lập trình với ngôn ngữ lập trình nhất định
để xây dựng ứng dụng Dịch vụ PaaS cũng có thể được xây dựng riêng và cung cấp cho khách hàng thông qua một API riêng Khách hàng xây dựng ứng dụng
và tương tác với hạ tầng điện toán đám mây thông qua API đó
Đây là tầng cung cấp dịch vụ nền tảng để chạy các ứng dụng Các ứng dụng này có thể đang chạy trong đám mây hay chạy trong một trung tâm dữ liệu truyền thống Để đạt được khả năng mở rộng cần thiết trong một đám mây, các dịch vụ thường được ảo hóa Việc ảo hóa được các nhà sản xuất lớn giới thiệu như: IBM® WebSphere® Application Server virtual images, Amazon Web Services, Boomi, Cast Iron và Google App Engine Các dịch vụ nền tảng cho phép khách hàng chạy các ứng dụng dựa trên cơ sở hạ tầng dịch vụ được bên thứ
ba cung cấp
Trang 23Nền tảng là nơi cung cấp tất cả các nguồn lực cần thiết để xây dựng các ứng dụng và dịch vụ hoàn toàn từ Internet, mà không cần phải tải về hay cài đặt phần mềm
Hình 1.8 PaaS cho phép khách hàng truy cập vào một nền tảng trên điện toán
đám mây Một lỗi phía nhà cung cấp nền tảng dẫn tới không còn khả năng tương tác với khách hàng, buộc phải chuyển qua nhà cung cấp khác Trường hợp người dùng tạo một ứng dụng với một nhà cung cấp điện toán đám mây và quyết định chuyển đến một nhà cung cấp khác, có thể ứng dụng không hoạt động được hoặc
sẽ phải trả một mức giá cao để ứng dụng có thể hoạt động lại Nếu nhà cung cấp không còn cung cấp dịch vụ thì ứng dụng và dữ liệu của khách hàng sẽ bị mất Nền tảng hướng dịch vụ thường cung cấp một giao diện người dùng dựa trên HTML hoặc JavaScript
Nền tảng hướng dịch vụ hỗ trợ phát triển giao diện web như Simple Object Access Protocol (SOAP) và REST (Representational State Tranfer), cho phép xây dựng nhiều dịch vụ web
PaaS có ba loại khác nhau:
- Cơ sở phát triển bổ sung (Add-on development facilities): Điều này cho phép các ứng dụng SaaS được lựa chọn Thông thường, các nhà phát triển PaaS
và khách hàng được yêu cầu đăng ký cho các tiện ích ứng dụng SaaS
- Môi trường độc lập (Stand-alone environments), những môi trường không cung cấp giấy phép, kỹ thuật
Trang 24- Môi trường chỉ phân phối ứng dụng (Application delivery-only environments), những môi trường hỗ trợ dịch vụ lưu trữ theo cấp độ, như khả năng mở rộng theo nhu cầu bảo mật Nhưng không bao gồm nhiệm vụ phát triển, gỡ lỗi và kiểm tra
Một số yếu tố khác ảnh hưởng đến tiếp nhận công nghệ:
+ Khả năng làm việc của nhóm phát triển bị cô lập bởi vị trí địa lý
+ Khả năng hợp nhất các dịch vụ web từ nhiều nguồn
+ Khả năng thực hiện tiết kiệm chi phí sử dụng, tích hợp các dịch vụ cơ sở
hạ tầng bảo mật, khả năng mở rộng và chuyển đổi dự phòng
Có hai trở ngại chính mà các nhà phát triển phải đối mặt khi xem xét PaaS Thứ nhất các nhà cung cấp sử dụng dịch vụ độc quyền hoặc các ngôn ngữ phát triển, một số nhà phát triển sợ bị phụ thuộc vào một nhà cung cấp duy nhất Hai
là các nhà cung cấp có thể cho phép các ứng dụng sẽ được làm việc với một nhà cung cấp khác, tuy nhiên chi phí thường cao hơn
Hình 1.9 Phạm vi kiểm soát giữa nhà cung cấp/sử dụng dịch vụ PaaS
1.2.1.3 Dịch vụ cơ sở hạ tầng (IaaS)
Các dịch vụ cơ sở hạ tầng IaaS cung cấp cho khách hàng tài nguyên hạ tầng điện toán như máy chủ, mạng, không gian lưu trữ và các công cụ quản trị tài nguyên đó Các tài nguyên này thường được ảo hoá, chuẩn hoá thành một số cấu hình trước khi cung cấp để đảm bảo khả năng linh hoạt trong quản trị cũng như
hỗ trợ tự động hoá
Tầng dưới cùng của đám mây là tầng cung cấp dịch vụ cơ sở hạ tầng Ở đây là một tập hợp các tài nguyên vật lí như các máy chủ, các thiết bị mạng và
Trang 25các đĩa cứng lưu trữ được đưa ra như dịch vụ với mục đích cung cấp cho khách hàng Cũng như với các dịch vụ nền tảng, ảo hóa là một phương pháp thường được sử dụng để tạo ra bản phân phối các nguồn tài nguyên theo yêu cầu Các nhà sản xuất lớn cung cấp cơ sở hạ tầng bao gồm IBM Bluehouse, VMware, Amazon EC2, Microsoft Azure Platform, Sun ParaScale Cloud Storage
Hình 1.10 IaaS cho phép nhà cung cấp dịch vụ thuê những tài nguyên phần
cứng Các dịch vụ cơ sở hạ tầng tập trung vào vấn đề trang bị cho các trung tâm
dữ liệu bằng cách đảm bảo công suất điện toán khi cần thiết Trên thực tế các kỹ thuật ảo hóa thường được sử dụng trong tầng này, nên có thể thấy rõ sự tiết kiệm chi phí khi sử dụng tài nguyên hệ thống
Hình 1.11 Phạm vi kiểm soát giữa nhà cung cấp/sử dụng dịch vụ IaaS
1.2.2 Mô hình triển khai
Điện toán đám mây phân thành ba mô hình triển khai: Điện toán đám mây riêng, đám mây công cộng và đám mây lai Sau đây chúng ta sẽ đi tìm hiểu lần lượt từng mô hình triển khai
Trang 26Hình 1.12 Mô hình triển khai điện toán đám mây
1.2.2.1 Đám mây riêng (Private Cloud)
Các đám mây riêng là các dịch vụ đám mây được cung cấp trong doanh nghiệp Những đám mây này tồn tại bên trong tường lửa công ty và chúng được doanh nghiệp quản lý
Các đám mây riêng đưa ra nhiều lợi ích giống như các đám mây chung, điểm khác biệt chính là doanh nghiệp chịu trách nhiệm thiết lập và bảo trì đám mây Việc thiết lập đám mây riêng đôi khi không còn chi phí cho việc sử dụng
và duy trì hoạt động liên tục của đám mây và có thể vượt quá chi phí khi sử dụng một đám mây chung
Hình 1.13 Các thành phần trong đám mây riêng Các đám mây riêng có nhiều lợi thế hơn so với đám mây chung Việc kiểm soát chi tiết các tài nguyên khác nhau trên đám mây giúp công ty có các lựa
Trang 27chọn cấu hình phù hợp Các đám mây riêng sẽ rất lý tưởng khi công việc đang được thực hiện không cần đến một đám mây chung và sẽ không lo ngại tới vấn
đề an ninh, quản lý
Các vấn đề khó khăn và chi phí của việc thiết lập một đám mây riêng đôi khi có thể có chiều hướng ngăn cản việc xây dựng và sử dụng hệ thống loại này Ngoài ra chi phí hỗ trợ hoạt động liên tục của đám mây riêng có thể vượt quá chi phí của việc sử dụng một đám mây công cộng
Các đám mây riêng đưa ra nhiều lợi thế hơn so với loại công cộng Việc kiểm soát chi tiết hơn trên các tài nguyên khác nhau sẽ tạo thành một đám mây mang lại cho công ty tất cả các tùy chọn cấu hình có sẵn Ngoài ra, các đám mây riêng là lý tưởng khi các kiểu công việc được thực hiện có các yêu cầu về an ninh và quản lý không phù hợp cho một đám mây công cộng
1.2.2.2 Đám mây công cộng (Public Cloud)
Các đám mây công cộng là các dịch vụ đám mây được một bên thứ ba (người bán) cung cấp Chúng tồn tại ngoài tường lửa công ty và chúng được lưu trữ đầy đủ và do nhà cung cấp đám mây quản lý
Các đám mây công cộng cung cấp cho khách hàng các dịch vụ Công nghệ thông tin tốt nhất Có thể là phần mềm, cơ sở hạ tầng ứng dụng hoặc cơ sở hạ tầng vật lý Các nhà cung cấp đám mây chịu trách nhiệm cài đặt, quản lý, cung cấp và bảo trì Khách hàng tính phí cho các tài nguyên nào mà họ sử dụng Các dịch vụ thường được cung cấp với các quy ước về cấu hình, chúng được cung cấp với những trường hợp sử dụng phổ biến nhất Khách hàng chỉ có quyền truy cập vào tài nguyên được cấp phát
Trang 28Hình 1.14 So sánh giữa đám mây riêng và đám mây công cộng
Nhà cung cấp đám mây chịu trách nhiệm về cài đặt, quản lý, cung cấp và bảo trì các thành phần này Khách hàng chỉ chịu phí cho các tài nguyên nào mà
họ sử dụng, vì thế cái chưa sử dụng được loại bỏ Tất nhiên điều này liên quan đến chi phí Các dịch vụ này thường được cung cấp với "quy ước về cấu hình" nghĩa là chúng được phân phối với ý tưởng cung cấp các trường hợp sử dụng phổ biến nhất Các tùy chọn cấu hình thường là một tập hợp con nhỏ hơn so với những gì mà chúng đã có nếu nguồn tài nguyên đã được người dùng kiểm soát trực tiếp Một điều khác cần lưu ý là kể từ khi người dùng có quyền kiểm soát
cơ sở hạ tầng, các quy trình đòi hỏi tuân thủ quy định an ninh chặt chẽ và điều này không phải lúc nào cũng thích hợp cho các đám mây chung
Trang 29Hình 1.15 Đám mây công cộng
1.2.2.3 Đám mây lai (Hybrid Cloud)
Các đám mây lai là một sự kết hợp của các đám mây công cộng và riêng Những đám mây này thường do doanh nghiệp tạo ra và các trách nhiệm quản lý
sẽ được phân chia giữa doanh nghiệp và nhà cung cấp đám mây công cộng Đám mây lai sử dụng các dịch vụ có trong cả không gian công cộng và riêng
Các đám mây lai là câu trả lời khi một công ty cần sử dụng các dịch vụ của
cả hai đám mây riêng và công cộng Theo hướng này, một công ty có thể lựa chọn đám mây công cộng hay riêng dựa trên các mục tiêu và nhu cầu của các dịch vụ cần triển khai Một đám mây lai được xây dựng tốt có thể phục vụ các quy trình nhiệm vụ quan trọng của doanh nghiệp yêu cầu cao về tính ổn định, an toàn, cũng như những ứng dụng không quan trọng
Hạn chế chính với đám mây này là sự khó khăn trong việc tạo ra và quản lý
có hiệu quả một giải pháp như vậy Hệ thống phải có thể tiếp nhận được và cung cấp các dịch vụ lấy từ các nguồn khác nhau như thể chúng có chung nguồn gốc, hay phức tạp hơn là hỗ trợ tương tác giữa các thành phần riêng và chung Do
Trang 30đây là một khái niệm kiến trúc tương đối mới trong điện toán đám mây, nên cách hiện thực và các công cụ hỗ trợ mô hình này vẫn còn được nghiên cứu Các đám mây lai được các công ty sử dụng dịch vụ trên đó Công ty có thể đưa ra những lợi ích khi sử dụng đám mây chung và riêng Một đám mây lai được xây dựng tốt để có thể phục vụ khách hàng tốt nhất và an toàn
Hạn chế chính với đám mây lai là khó khăn trong việc tạo ra và quản lý chúng Giải pháp đặt ra là tiếp nhận và cung cấp các dịch vụ từ các nguồn khác nhau như thể chúng có nguồn gốc từ một nơi và có thể tương tác giữa các đám mây riêng và chung
Hình 1.16 Mô hình đám mây lai
1.3 Vấn đề bảo mật trong điện toán đám mây
1.3.1 An toàn liên quan đến kiến trúc của điện toán đám mây
1.3.1.1 An ninh ở mức hạ tầng
An ninh của các dịch vụ ở tầng thấp như tầng vật lý hay hạ tầng (IaaS) phụ thuộc vào nhà cung cấp, tức là chủ sở hữu của đám mây Hiện tại, có một số nhà cung cấp dịch vụ IaaS nhưng chưa có chuẩn nào về an ninh cho các dịch vụ này
Về mặt nguyên tắc, khách hàng thuê bao dịch vụ IaaS có thể áp đặt các chính sách an ninh của mình bằng cách phát triển các dịch vụ hay tiện ích riêng thông qua các dịch vụ của tầng vật lý và các dịch vụ IaaS của nhà cung cấp Chính
Trang 31sách về an toàn ở mức này là rất phức tạp vì nhiều chính sách khác nhau áp đặt lên cùng một môi trường phần cứng (vật lý)
Những mối đe dọa an toàn ở mức này có thể liên quan tới máy chủ ảo (Virtual Machine) như là vi-rút và các phần mềm độc hại khác Nhà cung cấp dịch vụ chịu trách nhiệm chính về giải pháp cho vấn đề này Khách hàng thuê bao cũng có thể thực hiện các giải pháp và chính sách an toàn riêng cho mình, từ
đó làm gia tăng gánh nặng lên phần cứng và hiệu năng chung của hệ thống Các máy chủ ảo vẫn có thể bị lây nhiễm hay bị kiểm soát bởi phần mềm độc hại Trong trường hợp này, các chính sách an ninh của khách hàng có thể bị vô hiệu, như vậy nhà cung cấp dịch vụ phải là người có vai trò chính trong an ninh ở mức này Ngoài ra, vì IaaS khai thác hạ tầng vật lý và chính sách chung như DNS Server, Switch, IP protocol,… Vì vậy, khả năng bị tấn công vào “khách hàng yếu nhất” sau đó “lây lan” cho các khách hàng khác Vấn đề này hiện nay khách hàng thuê bao không thể can thiệp gì vì nhiều máy chủ ảo chia sẻ cùng tài nguyên vật lý như CPU, bộ nhớ, đĩa,… Mọi ánh xạ vật lý-máy ảo, máy ảo-vật lý đều thông qua một “bộ ảo hóa”, nếu bộ này bị phần mềm độc hại kiểm soát thì toàn bộ khách hàng trong đám mây sẽ bị cùng một mối hiểm họa như nhau
1.3.1.2 An ninh ở mức dịch vụ nền tảng
Ở mức trung gian, dịch vụ nền tảng (PaaS) dựa trên dịch vụ tầng dưới (IaaS) và cung cấp dịch vụ của mình cho tầng trên nó (SaaS) Ở mức này, các dịch vụ hay tiện ích về an toàn có thể được cài đặt thêm hoặc cấu hình các dịch
vụ được cung cấp từ tầng dưới Ở đây, người dùng có thể quản trị phần thuê bao của mình để tạo ra môi trường thực thi các ứng dụng Hiện nay, dịch vụ PaaS của đám mây dựa trên mô hình kiến trúc hướng dịch vụ (SOA) Vì vậy những nguy cơ về an toàn giống hệt như những nguy cơ an toàn của SOA như tấn công
từ chối dịch vụ, tấn công XML và nhiều cách tấn công khác
Vì dịch vụ nền tảng là dịch vụ đa thuê bao, nhiều người dùng nên cơ chế xác thực, chứng thực là rất quan trọng Trách nhiệm bảo mật và an toàn trong
Trang 32trường hợp này liên quan đến cả nhà cung cấp, người thuê bao và người dùng (user) Các dịch vụ PaaS phải cung cấp môi trường để phát triển ứng dụng bao gồm chức năng tác nghiệp, các chức năng an toàn và quản lí hệ thống Nhà cung cấp cần có cơ chế bắt buộc chứng thực để truy cập các dịch vụ PaaS, người thuê bao có trách nhiệm phát triển hay cung cấp các chức năng bảo mật cần thiết thông qua cơ chế chứng thực chung và người dùng phải có trách nhiệm bảo vệ tài khoản đăng nhập cá nhân của mình
1.3.1.3 An ninh ở mức dịch vụ phần mềm
Ở mức dịch vụ phần mềm (SaaS), các phần mềm được cung cấp như là dịch vụ trên mạng, sử dụng các chính sách bảo mật dữ liệu và tài nguyên khác từ các tầng bên dưới cung cấp Một số dịch vụ phần mềm khá phổ biến hiện nay là Google Search Engine, Google mail,… Khách hàng của các dịch vụ này không biết được dữ liệu của mình được quản lí và khai thác như thế nào và nó nằm ở đâu trên thế giới Vấn đề an ninh ở đây liên quan đến bảo mật dữ liệu, rò rỉ thông tin và nguy cơ bị tấn công từ chối truy cập,… Trách nhiệm về an toàn là
do nhà cung cấp hạ tầng đám mây và nhà cung cấp dịch vụ phần mềm Người dùng đầu cuối (end user) chỉ là người dùng phần mềm với các lựa chọn cấu hình khác nhau được cung cấp bởi phần mềm nên không có nhiều vai trò trong an toàn hệ thống Người dùng cuối chỉ biết tin cậy vào nhà cung cấp phần mềm và các cam kết của nhà cung cấp về trách nhiệm bảo mật Thông thường các cam kết này có thể là điều khoản trong hợp đồng thuê bao phần mềm, như là: An toàn thông tin và chất lượng dịch vụ Chúng thường bao gồm: Dung lượng dữ liệu, toàn vẹn dữ liệu, chính sách về phân tán, sao lưu và phục hồi dữ liệu khi có
sự cố, độ tin cậy, tính riêng tư và an toàn mạng cùng với các cam kết khác về chất lượng dịch vụ như dung lượng đường truyền, tính sẵn dùng
Ở mức này, các phần mềm được cung cấp trên nền web (web-based application) Các web này thường được đặt ở máy chủ ảo trên đám mây, cho nên chúng phải được kiểm tra bằng cách quét các yếu điểm web nhờ vào một ứng
Trang 33dụng quét nào đó Các tường lửa có thể được dùng để ngăn chặn các tấn công vào điểm yếu đã biết của các phần mềm nền web Những công việc này thuộc về nhà cung cấp phần mềm hoặc đám mây, người dùng tham gia vào lựa chọn các cấu hình khác nhau Với công việc này có thể ảnh hưởng đến cấu hình an toàn chung của hệ thống do tính chất đa thuê bao, kéo theo những lỗ hổng trong an toàn hệ thống Vì vậy, các nhà cung cấp phải có những chính sách chung bắt buộc và cách kiểm soát sao cho những cấu hình an toàn, bảo mật phải nhất quán, chặt chẽ và không có lỗ hổng
1.3.2 Vấn đề quản lí an toàn hệ thống
Phần này đề cập đến một số khía cạnh về quản lí, vốn không thể tách rời với kỹ thuật nhằm đảm bảo cho sự áp dụng chính sách bảo mật đúng đắn, cộng tác và có trách nhiệm giữa các bên có liên quan trong điện toán đám mây Nghiên cứu về quản lí an toàn trên đám mây là rất phức tạp vì nó liên quan đến
số lượng lớn người có liên quan với các yêu cầu (requirement) khác nhau về an toàn Việc quản lí an toàn liên quan tới việc xây dựng các yêu cầu về an toàn, đặc tả chính sách an toàn, cơ chế kiểm soát và các cấu hình khác nhau về an toàn tương ứng với các chính sách đặc thù Việc quản lí này là động vì luôn phải đáp ứng các yêu cầu mới, các phản hồi từ môi trường và từ chính quá trình kiểm soát
an toàn
Điện toán đám mây cung cấp các dịch vụ trên cơ sở một hợp đồng trách nhiệm (SLA – Service Level Agreement), đây là pháp lý quan trọng trong các tranh chấp, bất đồng sau này Hợp đồng thông thường bao gồm chất lượng dịch
vụ, tính sẵn dùng, độ tin cậy và an toàn Và như bao cam kết hợp đồng, nó có những điều khoản về trả phí dịch vụ xử phạt và bồi thường Một đòi hỏi cao về
an toàn thường dẫn đến một tiêu tốn nhiều nguồn lực và vì vậy mức giá dịch vụ
sẽ cao lên tương ứng Cần lưu ý rằng những đòi hỏi khắt khe về an toàn có thể ảnh hưởng đến hiệu năng chung của hệ thống (cồng kềnh hơn, chậm hơn,…) Vì vậy, cần có sự cân bằng giữa yêu cầu an toàn, chi phí và hiệu năng của hệ thống
Trang 34Tổng kết chương 1:
Trong chương này, luận văn đã trình bày tổng quan nhất về điện toán đám mây, biết được những lợi ích to lớn mà điện toán đám mây đem lại so với điện toán truyền thống cũng như một số vấn đề về bảo mật dữ liệu chúng ta sẽ gặp phải khi sử dụng các dịch vụ điện toán đám mây
Trang 35CHƯƠNG 2 MÔ HÌNH XỬ LÝ DỮ LIỆU MÃ HÓA VÀ BẢO MẬT
DỮ LIỆU TRONG ĐIỆN TOÁN ĐÁM MÂY 2.1 Dịch vụ cơ sở dữ liệu (DBaaS)
2.1.1 Khái niệm
Dịch vụ cơ sở dữ liệu hiện nay đang trở thành một chủ đề nóng Khi tìm kiếm định nghĩa của DBaaS, các trang web trả về nhiều kết quả và định nghĩa khác nhau Dưới đây là một vài định nghĩa của một số chuyên gia về DBaaS:
“Một nền tảng cơ sở dữ liệu tự phục vụ theo yêu cầu, an toàn, và có khả năng mở rộng mà tự động hóa trích lập dự phòng và quản trị cơ sở dữ liệu và có thể được sử dụng bởi các nhà phát triển và người dùng phi kỹ thuật.” –
Forrester, tháng 10/2012
“DBaaS không là gì khác một lĩnh vực tập trung trong một trường lớn hơn được gọi là SaaS – đó là việc cung cấp phần mềm cơ sở dữ liệu và có liên quan đến lưu trữ cơ sở dữ liệu vật lý như môt dịch vụ… Nhà cung cấp chịu trách nhiệm quản lý dịch vụ, mà không có bất kỳ yêu cầu nào cho khách hàng để duy trì, cung cấp, hoặc quản trị cơ sở dữ liệu của họ.” - Steve Bobrowski, tháng
5/2008
“Database-as-a-service (DBaaS) là một mô hình dịch vụ điện toán đám mây cung cấp cho người sử dụng một số hình thức truy cập tới cơ sở dữ liệu mà không cần thiết lập phần cứng vật lý, cài đặt và cấu hình phần mềm Tất cả những tác vụ quản lý và bảo trì được thực hiện bởi nhà cung cấp dịch vụ vì thế tất cả những gì người dùng hoặc người sở hữu ứng dụng cần làm là sử dụng cơ
sở dữ liệu…” - Cory Janssen, Techopedia.com
Ba định nghĩa này đều có chung một điểm: DBaaS là một dịch vụ làm giảm bớt cho người dùng các tác vụ quản trị cơ sở dữ liệu
Từ những điều trên, ta có thể nói: DBaaS cung cấp các dịch vụ cơ sở dữ liệu để các ứng dụng có thể được triển khai trên đám mây, cho phép người sử
Trang 36dụng tập trung vào phát triển các ứng dụng và các dịch vụ mà không cần lo lắng
gì về cơ sở dữ liệu và cơ sở hạ tầng mở rộng bên dưới
2.1.2 Lợi ích của DBaaS so với các hệ cơ sở dữ liệu thông thường
Tiết kiệm chi phí hơn: Không chỉ chi phí ban đầu, không chỉ chi phí vận hành, không cần xây dựng với hệ thống phần cứng đắt tiền, phần mềm quản trị đắt tiền, không trả lương nhân viên vận hành hệ thống, không cần dự phòng phần cứng,… Rõ ràng khi quyết định sử dụng DBaaS chúng ta tiết kiệm được rất nhiều chi phí cho doanh nghiệp
Không giới hạn không gian lưu trữ: Cho đến nay khi mà cơ sở dữ liệu quan
hệ đang gặp khó khăn với việc trang bị thêm phần cứng để mở rộng không gian nhớ, cân bằng tải, tối ưu hệ thống, khi dữ liệu chúng ta cần lưu trữ càng ngày càng lớn và phức tạp Dù có trang bị thêm phần cứng thì cơ sở dữ liệu quan hệ vẫn bị giới hạn bởi một ngưỡng nhất định DBaaS mở ra một dịch vụ với khả năng vô tận về máy tính xử lý và không gian nhớ
Tốc độ độc lập với kích thước: Với hệ thống được trang bị riêng cho từng doanh nghiệp, khi lượng dữ liệu lưu vào đạt đến một mức được cho là lớn, thông thường các doanh nghiệp sẽ phải gặp khó khăn về tốc độ truy cập dữ liệu, có độ trễ nhất định Nhưng với DBaaS, bằng việc xử lý song song trên nhiều máy tính khác nhau, trên nhiều nút khác nhau, thông tin luôn sẵn sàng và chính xác khi chúng ta cần tới
Hiệu suất cao hơn: Với cả hệ thống truyền thống, bạn luôn phải có trích lập
dự phòng cho các chức năng, ví dụ mua ổ cứng sao lưu dự phòng, các doanh nghiệp vẫn phải trả tiền cho những chức năng ít dùng tới hoặc thậm chí không bao giờ dùng tới Với DBaaS hệ thống được tận dụng một cách tối đa về hiệu suất và cũng không phải quan tân đến việc sao lưu dự phòng
Khả năng chịu lỗi lớn hơn: Với một hệ thống được phát triển bởi một nhà cung cấp chuyên nghiệp, uy tín với đội ngũ kỹ thuật có trình độ công nghệ cao,
Trang 37nền tảng trang thiết bị hiện đại thì khả năng chịu lỗi của hệ thống DBaaS lớn hơn với hệ thống được triển khai riêng lẻ
Dễ dàng sử dụng hơn: Giao diện đơn giản dễ sử dụng, người dùng sẽ dễ dàng tương tác với cơ sở dữ liệu hơn là viết một câu lệnh SQL Các doanh nghiệp cũng sẽ không tốn nhiều chi phí cho việc đào tạo ra một người có thể tương tác với hệ thống cơ sở dữ liệu của họ Khi di chuyển vị trí cũng không phải mang theo cả khối dữ liệu khổng lồ mà chỉ cần một kết nối tới mạng internet
dữ liệu của khách hàng và biết được những dữ liệu mà người dùng lưu trữ trên máy chủ của họ Bên cạnh đó, kẻ xấu hoàn toàn có thể tiến hành tấn công nghe lén đường truyền và biết được những dữ liệu người dùng đưa lên lưu trữ tại máy chủ của nhà cung cấp dịch vụ hoặc cũng có thể tấn công trực tiếp và kiểm soát hoàn toàn được các ứng dụng, máy chủ của nhà cung cấp dịch vụ Lúc này nguy
cơ những thông tin nhạy cảm của người dùng bị lộ là rất cao
Để ngăn chặn những nguy cơ kể trên, giải pháp mà ta có thể nghĩ ngay đến
đó chính là sử dụng mã hóa Dữ liệu sẽ được mã hóa tại máy tính người dùng trước khi đưa lên lưu trữ tại máy chủ của nhà cung cấp dịch vụ, khi người dùng cần truy cập dữ liệu, họ sẽ tải dữ liệu về và tiến hành giải mã trên máy tính cá nhân của mình Nhưng nếu người dùng chỉ muốn truy cập một phần nhỏ dữ liệu lưu trữ của mình thì sao? Họ vẫn phải tải toàn bộ dữ liệu đã mã hóa của mình về máy tính cá nhân và tiến hành giải mã Rõ ràng giải pháp này không khả thi nếu lượng dữ liệu cần lưu trữ là rất lớn Một cách tiếp cận khác là sử dụng mã hóa
Trang 38đồng cấu toàn bộ (fully homomorphic ecryption), cho phép máy chủ có thể tính toán trên các dữ liệu đã được mã hóa Tuy nhiên sử dụng mã hóa đồng cấu lại rất chậm và rất tốn kém do đó hiệu suất sẽ không được cao
Trong hoàn cảnh đó, CryptDB ra đời kế thừa những ưu điểm và khắc phục những hạn chế của các giải pháp nêu trên nhằm bảo vệ tính bí mật cho các ứng dụng cơ sở dữ liệu Sau đây ta sẽ tìm hiểu kỹ hơn về CryptDB và những gì CryptDB cung cấp để đảm bảo an toàn cho dữ liệu được lưu trữ
2.2 CryptDB và mô hình xử lý dữ liệu mã hóa
2.2.1 Giới thiệu về CryptDB và mô hình
CryptDB là một phương pháp mới để đảm bảo an toàn cho các cơ sở dữ liệu, nó là một proxy quản lý tất cả những thông tin đi tới hoặc đi từ các cơ sở
dữ liệu Nó hoạt động như một lớp trung gian, tiếp nhận tất cả các truy vấn, đảm bảo an toàn cho chúng và gửi chúng tới máy chủ cơ sở dữ liệu Sau đó nó sẽ nhận lại dữ liệu đã mã hóa từ cơ sở dữ liệu, giải mã và gửi lại dữ liệu đã được giải mã tới người dùng hợp pháp CryptDB làm việc bằng cách làm cho DBMS thực thi các truy vấn trên cơ sở dữ liệu đã mã hóa như là đang thực thi trên cơ sở
dữ liệu rõ Điều này được áp dụng bằng cách thay đổi cấu trúc của cơ sở dữ liệu
để che giấu những thông tin, mối quan hệ có thể được trích ra từ cơ sở dữ liệu và những thông tin này được che giấu bên trong proxy, thậm chí bằng cách mã hóa tên các bảng và các cột Sau đó mỗi cột sẽ được mã hóa theo một cách nào đó tùy thuộc vào bản chất dữ liệu của chính nó và các truy vấn có thể được áp dụng trên những dữ liệu này
Trang 39Kiến trúc của CryptDB bao gồm 2 phần: Một database proxy và một
unmodified DBMS CryptDB sử dụng các hàm người dùng định nghĩa
(user-defined functions– UDFs) để thực hiện các tính toán mật mã trong DBMS Các hộp chữ nhật vuông và bo tròn đại diện các tiến trình và dữ liệu tương ứng Các hình có màu đậm chỉ ra các thành phần được thêm vào bởi CryptDB Các đường nét đứt cho thấy sự tách biệt giữa máy tính của người dùng, máy chủ ứng dụng, máy chủ đang chạy proxy cơ sở dữ liệu của CryptDB và máy chủ DBMS Máy chủ ứng dụng chạy code ứng dụng và sinh ra các truy vấn DBMS; máy chủ DBMS lưu trữ, xử lý dữ liệu đã được mã hóa như dữ liệu không mã hóa, ngoài
ra còn lưu trữ một vài bảng phụ được sử dụng bởi CryptDB proxy; CryptDB proxy lưu trữ key, mã hóa truy vấn nhận được từ ứng dụng và gửi cho máy chủ DBMS, mã hóa/giải mã dữ liệu
CryptDB giải quyết vấn đề khi một người quản trị cơ sở dữ liệu “tò mò” (curious database administrator – DBA) hoặc có ý đồ xấu truy cập vào dữ liệu cá nhân của người dùng (ví dụ: Các bản ghi sức khỏe, các báo cáo tài chính, thông tin cá nhân) bằng cách đánh cắp dữ liệu trên máy chủ DBMS; tại đây, CryptDB ngăn chặn các DBA này đọc được dữ liệu cá nhân của người dùng Nhưng có một điều cần cân nhắc đó là đánh đổi giữa việc tối thiểu những thông tin quan trọng để lộ cho máy chủ DBMS và khả năng thực thi có hiệu quả một loạt các truy vấn Các phương pháp tiếp cận hiện tại để tính toán trên dữ liệu mã hóa hoặc là quá chậm hoặc là không cung cấp đủ tính bí mật Mặt khác, việc mã hóa
dữ liệu với một hệ thống mã hóa mạnh, như AES chẳng hạn, sẽ ngăn chặn máy chủ DBMS thực thi nhiều truy vấn SQL Trong trường hợp này, giải pháp thực
tế duy nhất sẽ là để cho server DBMS truy cập tới key mã hóa, nhưng điều đó cũng sẽ cho phép kẻ xấu đạt được truy cập tới toàn bộ dữ liệu
CryptDB giải quyết thách thức này bằng những ý tưởng chính sau:
- Đầu tiên là thực thi các truy vấn SQL trên dữ liệu mã hóa CryptDB thực
hiện ý tưởng này bằng cách sử dụng một chiến lược mã hóa nhận biết SQL
Trang 40(SQL-aware encryption) CryptDB mã hóa mỗi mục dữ liệu theo cách cho phép
DBMS thực thi trên dữ liệu chuyển đổi CryptDB hiệu quả bởi nó chủ yếu sử dụng mã hóa đối xứng, tránh mã hóa đồng cấu đầy đủ (fully homomorphic encryption) và chạy trên phần mềm DBMS không sửa đổi (bằng cách sử dụng các hàm chức năng người dùng định nghĩa)
- Kỹ thuật thứ hai là điều chỉnh mã hóa dựa trên truy vấn (adjustable based encryption) Một vài lược đồ mã hóa làm rò rỉ thông tin về dữ liệu cho máy chủ DBMS nhiều hơn một số khác, nhưng được yêu cầu để xử lý các truy vấn nhất định Để tránh tiết lộ tất cả mã hóa có thể của dữ liệu cho DBMS từ trước đó, CryptDB điều chỉnh lược đồ mã hóa nhận biết SQL (SQL-aware encryption scheme) cho bất kỳ mục dữ liệu đã cho, tùy thuộc vào các truy vấn được thực hiện Để thực hiện những điều chỉnh này một cách hiệu quả, CryptDB
query-sử dụng onions of encryption (sẽ được giải thích rõ ràng hơn trong các phần sau) Các onion là một cách mới để lưu trữ một cách chặt chẽ nhiều bản mã trong mỗi onion khác trong cơ sở dữ liệu để tránh chi phí trong việc mã hóa lại
2.2.2 Mối đe dọa DBMS bị thỏa hiệp
Để đối mặt với mối đe dọa này, CryptDB bảo vệ chống lại một DBA tò mò hoặc kẻ tấn công bên ngoài với truy cập hoàn toàn tới dữ liệu được lưu trên máy chủ DBMS Mục tiêu của chúng ta là tính bí mật, không phải tính toàn vẹn hay sẵn sàng Giả sử kẻ tấn công là bị động (passive); Hắn truy cập tới dữ liệu bí mật, nhưng không thay đổi các truy vấn được sinh ra bởi ứng dụng, các kết quả truy vấn, hay dữ liệu trong DBMS Mối đe dọa này bao gồm các thỏa hiệp phần mềm DBMS, truy cập root tới các máy DBMS và kể cả truy cập tới RAM của máy vật lý Với sự gia tăng trong việc thống nhất cơ sở dữ liệu bên trong các trung tâm dữ liệu doanh nghiệp, lưu trữ các cơ sở dữ liệu trên cơ sở hạ tầng điện toán đám mây công cộng và sử dụng các DBA của bên thứ ba, mối đe dọa này đang ngày càng trở nên quan trọng