DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT AES Advanced Encryption Standard – Thuật toán mã hóa khóa đối xứng nâng cao API Application Programming Interface – Giao diện lập trình ứng dụng AWS
Trang 1MỤC LỤC
MỤC LỤC 1
L Đ N 4
L I CẢ ƠN 5
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT 6
DANH MỤC HÌNH VẼ 7
DANH MỤC CÁC BẢNG 9
PHẦN MỞ ĐẦU 10
1 Tổng quan 10
2 Mục tiêu, nhiệm vụ và phạm vi của luận văn 10
3 Phương pháp thực hiện 11
4 Kết quả đạt được 11
HƯƠNG 1: Đ ỆN T ÁN ĐÁ ÂY VÀ Á VẤN ĐỀ AN NINH THÔNG T N TRÊN Ô TRƯ NG Đ ỆN T ÁN ĐÁ ÂY S 12
1 Tổng quan về điện toán đám mây 12
1.1 Khái niệm điện toán đám mây 12
1.2 ác đặc trưng của điện toán đám mây 12
1.3 Mô hình dịch vụ của Cloud computing 13
1.3.1 Mô hình hạ tầng như một dịch vụ – IaaS 14
1.3.2 Mô hình nền tảng như một dịch vụ – PaaS 15
1.3.3 Mô hình phần mềm như một dịch vụ – SaaS 15
1.4 Các mô hình triển khai của cloud computing 16
1.4.1 ô hinh đám mây công cộng (Public cloud) 16
1.4.2 ô hình đám mây riêng (Private cloud) 16
1.4.3 ô hình đám mây lai (Hybrid cloud) 16
1.5 Một số nền tảng đám mây aaS mã nguồn mở 17
1.5.1 Eucalyptus 17
1.5.2 OpenNeubula 18
1.5.3 OpenStack 18
Trang 21.5.4 CloudStack 18
2 Tổng quan về CloudStack 18
2.1 Giới thiệu về CloudStack 18
2.2 Đặc điểm của CloudStack 19
2.2.1 Các khái niệm liên quan 20
2.3 Kiến trúc CloudStack 22
2.3.1 Máy chủ quản lý 22
3 Các vấn đề an ninh thông tin trên môi trường điện toán đám mây aaS 25
3.1 Các vấn đề an ninh chung trên môi trường điện toán đám mây 25
3.2 Vấn đề đảm bảo an ninh dữ liệu trên môi trường IaaS 27
3.3 Các giải pháp mã hóa dữ liệu người dùng trên môi trường IaaS 29
3.3.1 Bitlocker 31
3.3.2 VeraCrypt 31
4 Giải pháp mã hóa dữ liệu TrueCrypt 31
5 Kết luận 36
HƯƠNG 2: XÂY DỰNG GIẢI PHÁP MÃ HÓA Ổ ĐĨ ẢO TRÊN CLOUDSTACK 37
1 Vấn đề bảo mật dữ liệu người dùng trên CloudStack 37
2 Giải pháp mã hóa ổ đĩa ảo 38
2.1 ơ chế hoạt động của giải pháp 38
2.2 Kiến trúc giải pháp 41
2.2.1 Module mã hóa 41
2.2.2 Module quản lý khóa 42
2.2.3 odule sao lưu, khôi phục khóa mã hóa 44
3 Kết luận 46
HƯƠNG 3: TR ỂN KHAI, THỬ NGHIỆ VÀ ĐÁNH G Á 48
1 Triển khai thử nghiệm giải pháp 48
1.1 ài đặt hệ thống CloudStack 48
1.1.1 Mô hình thử nghiệm 48
Trang 31.1.2 ài đặt Cloud management server 48
1.1.3 ài đặt, cấu hình NFS 50
1.1.4 ài đặt máy chủ host 51
1.1.5 Chuẩn bị mẫu máy ảo hệ thống 51
1.1.6 Tạo zone 52
1.1.7 Tạo mẫu cài đặt, máy ảo và ổ đĩa ảo 54
1.2 ài đặt, sử dụng giải pháp mã hóa ổ đĩa ảo 57
1.2.1 ài đặt 57
1.2.2 Sử dụng 58
1.3 Kiểm thử 60
2 Đánh giá 62
2.1 Hiệu năng 62
2.1.1 Kịch bản 62
2.1.2 Kết quả 62
2.2 Tính hiệu quả 64
2.3 Ứng dụng của giải pháp 64
KẾT LUẬN 66
1 Kết quả đã đạt được 66
2 Những mặt còn hạn chế 66
3 Phương hướng phát triển 66
TÀI LIỆU THAM KHẢO 67
Trang 4I CAM ĐOAN
Tác giả luận văn xin cam đoan đây là công trình nghiên cứu của riêng tác giả
luận văn; đúc kết của quá trình nghiên cứu từ việc tập hợp các nguồn tài liệu, các
kiến thức đã học đến việc tự thu thập các thông tin liên quan và liên hệ thực tế tại
đơn vị công tác Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng
được ai công bố trong bất kỳ công trình nào khác
Tác giả luận văn xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận
văn này đã được cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ
nguồn gốc
Tác giả luận văn xin chịu trách nhiệm về nghiên cứu của mình
Học viên thực hiện luận văn
Nguyễn Đình Việt
Trang 5L I CẢM ƠN
Trước tiên, tôi – tác giả luận văn xin được gửi lời cảm ơn đến các Quý
Thầy/ ô đã giảng dạy trong chương trình đào tạo thạc sỹ, Viện Công Nghệ Thông
Tin và Truyền Thông, Đại học Bách khoa Hà Nội, những người đã tận tình truyền
đạt kiến thức trong quá trình tôi học tập Đây là vốn kiến thức thực sự hữu ích,
không chỉ làm nền tảng cho quá trình nghiên cứu khóa luận, mà còn là hành trang
giúp tôi vững bước trên con đường hoạt động trong lĩnh vực Công nghệ thông tin
nói riêng và trong cuộc sống nói chung
Với tất cả lòng kính trọng và biết ơn, tôi xin được gửi lời cảm ơn chân thành
tới PGS.TS Ngô Hồng là người đã định hướng, hướng dẫn cho tôi những ngày đầu
thực hiện luận văn ặc dù trong quá trình thực hiện luận văn, có những giai đoạn
khó khăn không thuận lợi, nhưng những lời động viên, hướng dẫn quý báu của các
thầy đã giúp tôi vượt qua và hoàn thành luận văn này
Tôi cũng xin gửi lời biết ơn đến Ban Giám đốc Viện Nghiên cứu và Phát triển
Viettel/Tập đoàn Viễn thông Quân đội và các đồng nghiệp đã tạo điều kiện giúp đỡ
tôi trong quá trình nghiên cứu, triển khai thử nghiệm các giải pháp trong quá trình
thực hiện Luận văn
Cuối cùng tôi xin gửi lời biết ơn sâu sắc đến gia đình, bạn bè – những người đã
luôn bên cạnh giúp đỡ và tạo điều kiện tốt nhất cho tôi trong suốt quá trình học tập
cũng như thực hiện luận văn
Do thời gian có hạn và kinh nghiệm nghiên cứu khoa học chưa nhiều nên
luận văn còn nhiều thiếu sót, rất mong nhận được ý kiến góp ý của Quý Thầy/Cô và
các bạn học viên
Học viên thực hiện luận văn
Nguyễn Đình Việt
Trang 6DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
AES Advanced Encryption Standard – Thuật toán mã hóa khóa đối xứng
nâng cao API Application Programming Interface – Giao diện lập trình ứng dụng
AWS Amazon Web Service – Dịch vụ Web của Amazon
CPU Central Processing Unit – Bộ xử lý trung tâm
CSP Cloud Service Provider – Nhà cung cấp dịch vụ đám mây
IaaS Infrastructure as a Service – Hạ tầng như một dịch vụ
KVM Kernel-based Virtual Machine
JSON Java Script Object Notation – Định dạng dữ liệu Java Script
NIST National Institute of Standards and Technology
SaaS Software as a Service – Phần mềm như một dịch vụ
PaaS Platform as a Service – Nền tảng như một dịch vụ
SSL Secure Sockets Layer
VM Virtual Machine – Máy ảo
XML eXtensible Markup Language – Ngôn ngữ đánh dấu mở rộng
Trang 7DANH MỤC HÌNH VẼ
Hình 1: So sánh các mô hình điện toán đám mây và mô hình truyền thống 14
Hình 2: Các mô hình triển khai của Cloud computing 16
Hình 3: Mô hình CloudStack 19
Hình 4: Kiến trúc CloudStack 22
Hình 5: Kiến trúc của Management server 23
Hình 6: Khảo sát về những vấn đề đối với cloud computing 25
Hình 7: Kiến trúc hệ thống IaaS 28
Hình 8: Kiến trúc module mã hóa 34
Hình 9: Giao tiếp giữa các project 34
Hình 10: Luồng xử lý thao tạo tạo volume mã hóa 35
Hình 11: Luồng thao tác gắn ổ đĩa mã hóa 36
Hình 12: Giao diện người dùng truy cập vào máy ảo 37
Hình 13: Mã hóa ổ đĩa ảo trên CloudStack 38
Hình 14: Quá trình mã hóa ổ đĩa ảo 39
Hình 15: Quá trình giải mã dữ liệu trên ổ đĩa ảo 40
Hình 16: Kết quả Benchmark các giải thuật mã hóa của TrueCrypt 41
Hình 17: Đăng ký sử dụng giải pháp mã hóa 42
Hình 18: Khởi tạo mã hóa ổ đĩa 44
Hình 19: Quá trình sao lưu khóa mã hóa 45
Hình 20: Quá trình khôi phục khóa mã hóa 46
Hình 21: Mô hình triển khai giải pháp 48
Hình 22: ơ sở dữ liệu của cloudstack 50
Trang 8Hình 23: Máy chủ host 51
Hình 24: Cấu hình sử dụng SSL cho web portal 52
Hình 25: Giao diện quản trị cloudstack 53
Hình 26: Tạo zone 53
Hình 27: Kích hoạt zone 54
Hình 28: Hoàn thành tạo zone 54
Hình 29: Tạo mẫu để cài đặt máy ảo 55
Hình 30: Tạo máy ảo 55
Hình 31: Hoàn thành tạo máy ảo 56
Hình 32: Truy cập vào máy ảo thông qua console proxy 56
Hình 33: Tạo ổ đĩa ảo 57
Hình 34: Gắn ổ đĩa ảo cho máy ảo 57
Hình 35: Chọn dịch vụ mã hóa 58
Hình 36: Mã hóa ổ đĩa ảo 59
Hình 37: Quá trình sao lưu khóa mã hóa 60
Hình 38: Quá trình khôi phục khóa mã hóa 60
Trang 9DANH MỤC CÁC BẢNG
Bảng 1: So sánh một số nền tảng đám mây aaS mã nguồn mở 17
Bảng 2: Kết quả so sánh tốc độ đọc ghi với dung lượng RAM 2GB 62
Bảng 3: Kết quả so sánh tốc độ đọc ghi với dung lượng RAM 4GB 63
Bảng 4: Kết quả so sánh tốc độ đọc ghi với dung lượng RAM 6GB 63
Trang 10PHẦN MỞ ĐẦU
1 Tổng quan
Điện toán đám mây ( loud 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 Hiện nay,
các dịch vụ sử dụng công nghệ điện toán đám mây đã trở nên hết sức phổ biến từ
các dịch vụ lưu trữ, dịch vụ ứng dụng đến các dịch vụ cung cấp hạ tầng công nghệ
thông tin (IaaS)
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à vấn đề lớn được tất cả người dùng cũng như các nhà cung cấp
quan tâm Những người dùng (đặc biệt là người dùng doanh nghiệp) luôn thắc mắc
liệu việc để dữ liệu của mình trong hạ tầng của nhà cung cấp liệu có an toàn hay ko?
Còn các nhà cung cấp dịch vụ cũng luôn đau đầu với bài toán làm sao để đảm bảo
an toàn dữ liệu cho khách hàng, từ đó tạo được lòng tin từ người dùng
Đối với loại hình dịch vụ điện toán đám mây cung cấp hạ tầng điện toán (IaaS
cloud computing) thì toàn bộ dữ liệu người dùng trên các máy chủ ảo được cung
cấp bởi nhà cung cấp cloud computing được lưu trữ dưới dạng các volume (ổ đĩa)
của máy ảo trên hạ tầng của nhà cung cấp dịch vụ Vì vậy làm cách nào để đảm bảo
an toàn cho dữ liệu người dùng trên hệ thống cloud là vấn đề quan trọng Giải pháp
mã hóa dữ liệu của người dùng trên môi trường cloud computing là một trong
những nội dung đảm bảo an toàn dữ liệu Nội dung luận văn này đề xuất giải pháp
mã hóa toàn bộ ổ đĩa ảo của người dùng được cung cấp bởi nhà cung cấp dịch vụ
2 Mục tiêu, nhiệm vụ và phạm vi của luận văn
- Tìm hiểu tổng quan về điện toán đám mây, các vấn đề an ninh thông tin trên
môi trường điện toán đám mây aaS
- Tìm hiểu các vấn đề về đảm bảo an ninh dữ liệu, đề xuất giải pháp mã hóa
dữ liệu người dùng trên môi trường điện toán đám mây aaS sử dụng giải
thuật thuộc hệ mật mã khóa đối xứng, đề xuất giải pháp giải quyết vấn đề
quản lý, trao đổi khóa mã hóa
Trang 11- ài đặt, thử nghiệm giải pháp mã hóa dữ liệu trên nền tảng CloudStack
3 Phương pháp thực hiện
- Tham khảo các tài liệu, bài báo, sách nghiên cứu về các vấn đề an ninh dữ
liệu trên môi trường điện toán đám mây
- Sử dụng các thư viện mật mã khóa đối xứng mã nguồn mở, các nền tảng ảo
hóa, giải pháp cloud mã nguồn mở để xây dựng giải pháp và thử nghiệm
- Đo đạc, đánh giá hiện năng đọc/ghi dữ liệu trước và sau khi mã hóa
- Tìm hiểu nhu cầu thực tế sử dụng giải pháp cho cá nhân và trong doanh
nghiệp để đánh giá khả năng ứng dụng của giải pháp
4 Kết quả đạt được
- Nắm và hiểu được các khái niệm liên quan đến điện toán đám mây, các vấn
đề về an ninh dữ liệu trên môi trường điện toán đám mây aaS
- Đề xuất được giải pháp mã hóa dữ liệu người dùng và giải quyết vấn đề quản
lý khóa mã hóa
- ài đặt, thử nghiệm thành công giải pháp mã hóa trên nền tảng CloudStack
Trang 12CHƯƠNG 1: ĐIỆN TOÁN ĐÁM MÂY VÀ CÁC VẤN ĐỀ AN NINH THÔNG
TIN TRÊN MÔI TRƯ NG ĐIỆN TOÁN ĐÁM MÂY IAAS
1 Tổng quan về điện toán đám mây
1.1 Khái niệm điện toán đám mây
Có nhiều phát biểu về định nghĩa của điện toán đám mây của các hang nghiên
cứu công nghệ thông tin, theo Wikipedia “Điện toán đám mây (cloud computing) là
một mô hình điện toán có khả năng co giãn (scalable) linh động và các tài nguyên
thường được ảo hóa được cung cấp như một dịch vụ trên mạng nternet”[18] hoặc
theo 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 (ví
dụ 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ụ.” [10]
Tuy nhiên điện toán đám mây có thể được hiểu một cách đơn giản như là sự sử
dụng tài nguyên tính toán có khả năng thay đổi theo nhu cầu và được cung cấp như
là một dịch vụ từ bên ngoài với chi phí trả cho mỗi lần sử dụng Thuật ngữ “đám
mây” ở đây là ám chỉ nternet, người dùng có thể truy cập đến tài nguyên tồn tại
trong “đám mây (cloud)” tại bất kỳ thời điểm nào và từ bất kỳ đâu thông qua hệ
thống Internet Họ có thể làm việc với các tài nguyên đó mà không cần phải hiểu
biết về công nghệ, kỹ thuật và hạ tầng cơ sở của đám mây
1.2 Các đặc trưng của điện toán đám mây
N ST đưa ra 05 đặc trưng cơ bản của điện toán đám mây như sau (trang 8,
NIST cloud computing standards roadmap) [10].:
- On-demand self-service: khách hàng có thể được cung cấp tài nguyên như
máy chủ, lưu trữ mạng,… một cách tự động theo yêu cầu mà không cần phải
có sự giúp đỡ hay can thiệp từ phía nhà cung cấp dịch vụ
- Broad network access: người dùng có thể dễ dàng truy cập vào đám mây
chỉ với một ứng dụng có khả năng truy cập mạng (Internet) từ bất kỳ thiết bị
nào, bao gồm máy tính, thiết bị cầm tay, di động,…
Trang 13- Location independent resource pooling: tài nguyên tính toán của nhà cung
cấp được phân chia để phục vụ nhiều khách hàng theo mô hình đa chiếm hữu
(multi-tenancy model), với các tài nguyên vật lý và tài nguyên ảo được cấp
động và thu hồi dựa theo yêu cầu của khách hàng Sự không phụ thuộc vào
vị trí ở đây có nghĩa là khách hàng không biết và cũng không có quyền kiểm
soát vị trí chính xác của tài nguyên được cung cấp Ví dụ về tài nguyên có
thể bao gồm lưu trữ, xử lý, bộ nhớ, băng thông mạng và các máy ảo
- Rapid elasticity: tài nguyên có thể được cung cấp một cách nhanh chóng và
mềm dẻo, có thể tăng lên hay giảm đi dễ dàng tùy theo yêu cầu của khách
hàng Với khách hàng, tài nguyên luôn sẵn sàng và có thể coi là vô tận, có
thể yêu cầu vào bất cứ thời điểm nào
- Measured service: các hệ thống cloud tự động điều khiển và tinh chỉnh tài
nguyên sử dụng bằng cách áp dụng các biện pháp đo lường ở các cấp độ
khác nhau phù hợp với từng loại dịch vụ (ví dụ như lưu trữ, xử lý, băng
thông và tài khoản người dùng đang active) Tài nguyên sử dụng có thể được
giám sát, đo lường và khách hàng thường sẽ chỉ phải trả phí cho lượng tài
nguyên mà họ đã sử dụng
1.3 Mô hình dịch vụ của Cloud computing
Trong điện toán đám mây, mọi khả năng liên quan đến công nghệ thông tin đều
được cung cấp phổ biến dưới dạng “dịch vụ” (service), người sử dụng truy cập các
dịch vụ công nghệ từ một nhà cung cấp nào đó “trong đám mây” mà không cần
quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó ó 03 mô hình cơ bản nhất
thường được sử dụng trong điện toán đám mây là: Phần mềm như một dịch vụ
(SaaS); Nền tảng như một dịch vụ (PaaS) và Hạ tầng như một dịch vụ (IaaS) Một
cách đơn giản, có thể so sánh các mô hình này với mô hình truyền thống như hình:
Trang 14Hình 1: So sánh các mô hình điện toán đám mây và mô hình truyền thống
(nguồn: http://antoanthongtin.vn)
1.3.1 Mô hình hạ tầng như một dịch vụ – IaaS
Mô hình IaaS cung cấp cho người dùng một hạ tầng thô (dưới hình thức các
máy chủ ảo, lưu trữ, mạng,…) như là một dịch vụ Người dùng có thể triển khai và
chạy phần mềm bất kỳ trên máy ảo, có thể bao gồm cả hệ điều hành và các ứng
dụng Người dùng không quản lý hay điều khiển hạ tầng thực của cloud nhưng có
quyền kiểm soát hệ điều hành, lưu trữ, các ứng dụng và một số thành phần mạng cơ
bản (ví dụ như tường lửa, cân bằng tải) trên máy chủ ảo họ được cấp Những dịch
vụ aaS thông thường được tính phí sử dụng dựa theo lượng tính toán hay tài
nguyên mà người dùng sử dụng [10]
Những đặc trưng tiêu biểu của IaaS:
- Cung cấp hạ tầng như một dịch vụ: bao gồm cả máy chủ (ảo), thiết bị mạng,
bộ nhớ, PU, không gian đĩa cứng, trang thiết bị trung tâm dữ liệu
- Khả năng mở rộng linh hoạt
- hi phí thay đổi tùy theo thực tế
- Nhiều người thuê có thể cùng dùng chung trên một tài nguyên (nhiều máy ảo
trên cùng một máy thật)
Trang 15- Cấp độ doanh nghiệp: đem lại lợi ích cho công ty bởi một nguồn tài nguyên
tính toán tổng hợp
Một số nhà cung cấp IaaS như Amazon với Amazon Elastic Compute Cloud
(EC2) Rackspace, GoGrid Ngoài ra, một số doanh nghiệp có thể tự xây dựng hệ
thống đám mây aaS của mình dựa trên nền tảng của các giải pháp mã nguồn mở có
thể kể đến như loudStack, penStack, Eucalytus, penNebula Trong đó,
CloudStack là một giải pháp có nhiều ưu điểm như dễ dàng triển khai, hỗ trợ nhiều
nền tảng ảo hóa, khả năng quản lý hạ tầng vật lý lớn, cung cấp sẵn các giao diện
tương tác giữa người dùng, quản trị với hệ thống…(chi tiết sẽ được trình bày ở mục
3 của chương này)
1.3.2 Mô hình nền tảng như một dịch vụ – PaaS
Mô hình PaaS cung cấp cho người dùng khả năng triển khai và phát triển ứng
dụng của chính họ trên hạ tầng cloud sử dụng các ngôn ngữ lập trình và công cụ do
nhà cung cấp cloud hỗ trợ (ví dụ java, python, Net) Một số giải pháp PaaS như
Windows Azure, Google App Engine…[10]
1.3.3 Mô hình phần mềm như một dịch vụ – SaaS
Mô hình SaaS cung cấp cho người dùng khả năng sử dụng các ứng dụng của
nhà cung cấp chạy trên hạ tầng cloud và có thể truy cập từ nhiều thiết bị đầu cuối
thông qua một giao diện khách đơn giản như một trình duyệt Web (ví dụ,
web-based email) Người dùng không quản lý hay kiểm soát hạ tầng phía dưới, mạng,
máy chủ, hệ điều hành, lưu trữ hay thậm chí một số cấu hình ứng dụng hệ thống, mà
chỉ sử dụng ứng dụng kèm theo một số cấu hình hạn chế với ứng dụng đó [10]
Trang 161.4 Các mô hình triển khai của cloud computing
Hình 2: Các mô hình triển khai của Cloud computing
(nguồn: internet)
1.4.1 Mô hinh đám mây công cộng (Public cloud)
Là các dịch vụ đám mây công cộng, người dùng sẽ đăng ký với nhà cung cấp
và trả phí sử dụng dựa theo chính sách giá của nhà cung cấp Public cloud là mô
hình triển khai được sử dụng phổ biến nhất hiện nay của cloud computing Đối
tượng sử dụng: Bao gồm người dùng bên ngoài internet Đối tượng quản lý là nhà
cung cấp dịch vụ [10]
1.4.2 Mô hình đám mây riêng (Private cloud)
Private cloud là các dịch vụ điện toán đám mây được cung cấp trong các doanh
nghiệp được các doanh nghiệp trực tiếp quản lý [10]
1.4.3 Mô hình đám mây lai (Hybrid cloud)
Là sự kết hợp của private cloud và public cloud ho phép ta khai thác điểm
mạnh của từng mô hình cũng như đưa ra phương thức sử dụng tối ưu cho người sử
Trang 17dụng Những “đám mây” này thường do doanh nghiệp tạo ra và việc quản lý sẽ
được phân chia giữa doanh nghiệp và nhà cung cấp điện toán đám mây công cộng
Nền tảng ảo
Xen, KVM, Virtual Box
Xen, KVM, Hyper-V, VMware
Xen, XCP, KVM, Hyper-V,
VMware, Virtual Box
Mạng
DHCP server on the cluster controller
Manual configuration
OpenStack Compute
Linux Bridge hoặc Open vSwitch Tường lửa,
Hỗ trợ (OpenStack Neutron)
Hỗ trợ (tích hợp sẵn)
Neutron)
Hỗ trợ (tích hợp sẵn)
Tương thích
Command line, Web, API
Bảng 1: So sánh một số nền tảng đám mây IaaS mã nguồn mở
1.5.1 Eucalyptus
Là một phần mềm mã nguồn mở Linux-based cung cấp nền tảng đám mây theo
mô hình IaaS với cả 2 mô hình đám mây riêng hoặc đám mây công cộng Điểm
mạnh của Eucalyptus là khả năng hỗ trợ việc xây dựng hệ thống mà không yêu cầu
quá cao về mặt cấu hình phần cứng, ngoài ra Euccalyptus hỗ trợ kết nối với dịch vụ
Trang 18đám mây của Amazon – AWS Kiến trúc của Eucalyptus đơn giản, linh hoạt và
được module hóa Ngoài
1.5.2 OpenNeubula
Là bộ công cụ nguồn mở sử dụng để xây dựng đám mây riêng, đám mây công
cộng hoặc đám mây lai penNebula tương thích với các nền tảng ảo hóa của Xen,
KVM, VMWARE và Virtual Box
1.5.3 OpenStack
Là một dự án nguồn mở của cộng đồng cho việc phát triển điện toán đám mây
phù hợp với nhà cung cấp ( SP) cũng như người dùng được phát triển bởi
Rackspace hosting và NASA Openstack bao gồm 3 dự án chính: Openstack
Compute (có chức năng quản lý, cấp phát tài nguyên ảo hóa cho các máy ảo),
Openstack Object Storage (thực hiện việc lưu trữ, sao lưu dữ liệu hệ thống) và
penstack mage Service (đảm nhận chức năng phát hiện, đăng ký, truyền tải dịch
vụ cho các ổ đĩa ảo) Hiện nay penStack được đánh giá là nền tảng mã nguồn mở
xây dựng hạ tầng đám mây khá mạnh với sự hỗ trợ của các hãng máy tính lớn trên
thế giới như HP, B , isco, icrosoft…
1.5.4 CloudStack
Apache CloudStack là phần mềm mã nguồn mởviết trên nền Java, được thiết kế
để hỗ trợ triển khai và quản lý một hệ thống mạng lớn các máy ảo, tính sẵn sàng cao
và tính mở rộng đặc trưng trong môi trường đám mây CloudStack hiện tại hỗ trợ
khá tốt cho nhiều công nghệ ảo hóa khác nhau như V ware, racle V , KV ,
XenServer và nền tảng Xen Cloud và đang được đánh giá là một trong những nền
tảng đám mây mạnh nhất hiện nay Đây cũng là nền tảng được đề xuất để triển khai
hạ tầng đám mây aaS trong Luận văn này và sẽ được trình bày chi tiết trong phần
tiếp theo
2 Tổng quan về CloudStack
2.1 Giới thiệu về CloudStack
CloudStack là hệ thống hệ điều hành điện toán đám mây mã nguồn mở, cho
phép người dùng phối hợp ảo hóa server, network, network storage để cung cấp
Trang 19Infrastructure –as-a service (Iaas) tương tự Amazon EC2 CloudStack phối hợp các
nguồn tài nguyên ảo hóa thành một môi trường đồng nhất, nơi có thể ủy nhiệm cho
người sử dụng tự tạo các máy ảo và sử dụng tùy theo nhu cầu riêng của họ[17]
CloudStack có thể áp dụng triển khai ở cả 03 mô hình Private Cloud, Public
Cloud, Hybrid Cloud
Hình 3: Mô hình CloudStack (nguồn: CloudStack.apache.org)
2.2 Đặc điểm của CloudStack
- Hỗ trợ nhiều nền tảng ảo hóa (hypervisor): Xenserver, VMware, OracleVM,
KVM, XCP
- Khả năng quản lý hạ tầng vật lý lớn và khả năng mở rộng cao: CloudStack
có thể quản lý khoảng 10.000 máy chủ vật lý Các máy chủ quản lý tập trung
trên một quy mô lớn, loại bỏ sự cần thiết của các cụm máy tính quản lý trung
gian Không có một thành phần đơn lẻ nào là điểm chịu lỗi duy nhất bởi vậy
Trang 20việc bảo trì các máy chủ có thể được thực hiện đồng thời mà không làm ảnh
hưởng đến hệ thống các máy ảo đang chạy trong hệ thống
- Tính sẵn sàng cao: có khả năng tự đông giám sát và khắc phục máy ảo, khi
một máy ảo bị lỗi hệ thống sẽ cố gắng khôi phục lại Máy chủ quản lý (cloud
management) có thể được triển khai trên nhiều máy chủ vật lý và có khả
năng tự động cân bằng tải
- CloudStack sử dụng security groups hoặc chia Vlan tạo thành các mạng ảo
giúp cô lập các tài khoản người dùng để tăng cường khả năng quản lý truy
cập, phân quyền người dùng
- Hỗ trợ nhiều giao diện tương tác giữa người dùng và hệ thống cloud:
CloudStack cho phép người dùng tương tác với hệ thống qua Web UI,
command line và P để quản lý tài nguyên
- Cung cấp các dịch vụ mạng : Ngoài việc cung cấp các dịch vụ ảo hóa (RAM,
CPU, ổ đĩa lưu trữ) CloudStack còn cung cấp các dịch vụ mạng như cân
bằng tải, DHCP, routing, VLAN, firewall, VPN
- Hỗ trợ nhiều giao thức lưu trữ: NFS, SCSI, FC, FCoE
- Cung cấp động tài nguyên người dùng: CloudStack có khả năng cung cấp tài
nguyên một cách linh động, người dùng có thể lựa chọn giới hạn trên và dưới
của tài nguyên (CPU, RAM, HDD) và hệ thống sẽ tự động co giãn tài
nguyên tùy theo tải thực tế của máy ảo
- Hỗ trợ API chuẩn: CloudStack cung cấp các API chuẩn cho lập trình viên
phát triển ứng dụng tích hợp vào hệ thống quản lý giúp các nhà cung cấp có
thể tùy biến hệ thống một cách linh hoạt [17]
2.2.1 Các khái niệm liên quan
Zone: Có thể ánh xạ một zone như một data center vật lý Trong đó đã bao gồm
nhiều tài nguyên Khi triển khai CloudStack, một máy chủ quản lý dịch vụ cloud có
thể quản lý nhiều Zone
Pod: Trong một data center thì có nhiều tủ rack, mỗi tủ rack có một Switch kết
nối các máy chủ trong tủ đó Ta có thể ánh xạ một Pod như một tủ rack như vậy
Trang 21trong vật lý Theo đúng định nghĩa, một Pod là một nhóm các thiết bị phân cấp theo
layer-2 trong mô hình OSI Hay nói dễ hiểu hơn, sau này những thiết bị nào được
cấu hình cùng một mạng L N thì đó là Pod
Cluster: cluster bao gồm một hoặc nhiều Host và thành phần lưu trữ Primary
Storage Cluster trong thực tế là một cụm các máy tính vật lý được liên kết với nhau
để cùng thực thi một nhiệm vụ Khi người quản trị triển khai theo cơ chế cluster thì
không cần phải lo lắng khi một phần tử trong cluster bị đứt kết nối
Host: là một phần tử tính toán đơn lẻ trong cluster Host cũng là nơi sẽ chạy các
dịch vụ ảo hóa Host chính là một server vật lý mà sau này nhà quản trị cloud sẽ
triển khai
Hypervisor: là nền tảng ảo hóa được cài đặt trên các host, hypervisor giúp hệ
thống CloudStack có thể ảo hóa tài nguyên phần cứng để cung cấp tài nguyên ảo
cho người dùng CloudStack hỗ trợ các hypervisor Xenserver, VMware, OracleVM,
KVM, XCP
Primary storage: là một thành phần của Cluster Tại đây chứa các phân vùng ổ
đĩa ảo cho các máy ảo và tất cả các máy ảo đang chạy trên Host Khi triển khai thực
tế, khu vực lưu trữ chính sẽ được dùng làm Primary Storage
Secondary storage: là một phần trong Zone Tại đây chứa các templates, ISO
images, và các snapshots của máy ảo, ổ cứng ảo Khi triển khai, trong một Zone sẽ
chỉ cần một Secondary Storage dùng để lưu trữ và backup dữ liệu
Console Proxy: là một máy ảo được sinh ra bởi hệ thống cloud sử dụng làm máy
chủ proxy cho phép người dùng truy cập từ xa bằng trình duyệt vào máy ảo
Network: ClousStack cung cấp hai mô hình triển khai network khi triển khai hạ
tầng cloud: cơ bản (Basic) và nâng cao (Advanced)
- Basic: sử dụng một lớp mạng share duy nhất Các máy ảo tạo ra trong cùng
một Zone sẽ có chung một lớp mạng
- Advanced: có thể được cấu hình gồm nhiều lớp mạng và tương ứng với mỗi
lớp mạng sẽ có thể được cấu hình thêm các dịch vụ network tương ứng đi
kèm như firewall, load balancer…
Instance: là các máy tính ảo được tạo ra bởi CloudStack, một instance bao gồm
CPU ảo, RAM ảo, mạng ảo và các ổ đĩa ảo
Trang 22Template: là các mẫu (bao gồm các đĩa cài đặt hệ điều hành hoặc bản ghost các
máy ảo) được tạo sẵn để tạo máy ảo
Root disk: là ổ đĩa chứa hệ điều hành của các máy tính ảo, khi một instance được
tạo ra mặc định CloudStack sẽ chỉ tạo 01 ổ đĩa chứa hệ điều hành của máy ảo Root
disk là 01 file được lưu trữ trên primary storage
Data disk: là ổ đĩa được gắn thêm vào máy ảo để lưu trữ dữ liệu của người dùng
CloudStack khuyến cáo người dùng không nên lưu trữ trên root disk Data disk là
01 file được lưu trữ trên primary storage
2.3 Kiến trúc CloudStack
Một hệ thống CloudStack được chia làm 02 phần: máy chủ quản lý
(Management Server) và hạ tầng đám mây mà nó quản lý
Hình 4: Kiến trúc CloudStack (nguồn: CloudStack.apache.org)
2.3.1 Máy chủ quản lý
Management server là phần mềm quản lý tài nguyên đám mây của CloudStack,
cung cấp giao diện web, P cho người quản trị cũng như người dùng cuối để cấu
hình và quản trị hạ tầng đám mây anagement server điều khiển việc cấp phát tài
nguyên ảo hóa (máy chủ ảo, ram ảo, ổ cứng ảo, mạng ảo…) cho người dùng, nó có
thể được triển khai trên các máy chủ vật lý hoặc các máy chủ ảo[17]
Trang 23Hình 5: Kiến trúc của Management server (nguồn: CloudStack.apache.org)
Các thành phần của Management server:
- Kernel: module kernel có ba chức năng chính:
Nhận lệnh thực thi từ API và chuyển tới các Plugin xử lý tương ứng Ví
dụ: API tạo mới máy ảo
Đồng bộ với Database
Thực hiện đồng bộ giữa các tài nguyên
- Plugin API: Module này bao gồm toàn bộ các hàm chức năng tương ứng cho
các lệnh thực thi, đây là phần xử lý chức năng cho hệ thống
- REST API: Là module phục vụ tương tác giữa admin/user với hệ thống,
REST API bao gồm OAM&P API, End User API, EC2 API, Other APIs,
Pluggable Service API Engine
Trang 24- Services P : Là module đảm nhiệm việc cung cấp các dịch vụ cho hệ thống,
định nghĩa các services để admin lựa chọn sử dụng Ví dụ: dịch vụ HA (High
Avaiable service)
- Management: Là module đảm nhiệm chức năng quản lý cho các đối tượng
trong hệ thống Bao gồm việc quản lý tài nguyên, tiến trình xử lý, cơ sở dữ
liệu và các sự kiện trên hệ thống
- essege/Event Bus: Là module đảm nhiệm việc truyền thông điệp giữa
Management Server với Agent chạy trên các host ác thông điệp được
truyền theo hai format là XML hoặc JSON
- gent: Là module đảm nhiệm việc quản lý host và tương tác với Management
Server Tùy vào Hypervisor chạy trên Host mà có Agent quản lý tương ứng
Ví dụ với KVM ta có CloudAgent là Agent mà CloudStack tự định nghĩa, với
Xen ta có Xen P (X P ) được phát triển bởi itrix, hay đối với ESXI thì ta
có V ENTER được phát triển bởi VMware Agent phối hợp với Hypervisor
để quản lý và phân bổ tài nguyên cho các máy ảo bao gồm: network, storage,
image, snapshot
- Job Queue: Là module hàng đợi cho các lệnh xử lý trên hệ thống, theo kiến
trúc hàng đợi bất đồng bộ, các Job trong Queue được thực thi theo mô hình
FIFO, tuy nhiên là mô hình bất đồng bộ nên Job đứng sau trong hàng đợi
không nhất thiết phải chờ đợi Job đứng trước nó hoàn thành mới bắt đầu xử
lý
- DB: Là module cơ sở dữ liệu cho cả hệ thống, các thông tin lưu trong cơ sở
dữ liệu
- Client: Là module phục vụ việc tương tác từ phía user User có rất nhiều
phương thức để tương tác với hệ thống, bao gồm: CLI, UI, CloudPortal,
CloudBridge, các công cụ công cộng của Amazon như E 2 hay S3
Trang 253 Các vấn đề an ninh thông tin trên môi trường điện toán đám mây IaaS
3.1 Các vấn đề an ninh chung trên môi trường điện toán đám mây
Ảo hóa và điện toán đám mây có thể giúp người dùng (cá nhân, tổ chức ) giảm
bớt chi phí về hạ tầng công nghệ thông tin và quản trị, nhưng các mối đe dọa về an
ninh cũng nhiều hơn, vì thế an ninh trong điện toán đám mây càng cần phải được
đảm bảo[7]
Thống kê từ một khảo sát của IDC cho thấy, an ninh chính là vấn đề mà người
dùng quan tâm nhất khi chọn lựa dịch vụ điện toán đám mây
Hình 6: Khảo sát về những vấn đề đối với cloud computing
(nguồn: blogs.idc.com)
Nhà phân tích Jay Heiser, Mark Nicolett đã đưa ra 9 vấn đề về an ninh về cloud
computing cho khách hàng và nhà cung cấp như sau [5]:
Quyền truy cập dữ liệu của người dùng: Một doanh nghiệp sẽ cảm thấy
không an toàn, khi dữ liệu nhạy cảm của mình được xử lý, lưu trữ bên ngoài
đơn vị mình hoặc được quản lý bởi người quản trị không thuộc đơn vị mình
Thông thường, đối với một doanh nghiệp người quản trị dữ liệu của công ty
Trang 26được quản lý và phải có cam kết về đảm bảo an toàn cho dữ liệu của đơn vị
mình, tuy nhiên vẫn xảy ra các trường hợp chính các quản trị hệ thống làm
mất, đánh cắp dữ liệu (chẳng hạn như các trường hợp quản trị đánh cắp dữ
liệu bán cho các đối thủ hoặc trong trường hợp nghỉ việc có thể quay lại đánh
cắp dữ liệu thong qua các cổng hậu được thiết lập sẵn trước đó) Đối với môi
trường điện toán đám mây thì rủi ro này cao hơn vị người quản trị dữ liệu là
của nhà cung cấp dịch vụ điện toán đám mây
Tính tuân thủ: Người dùng là người chịu trách nhiệm cuối cùng về an ninh
và sự toàn vẹn cho chính dữ liệu của họ, thậm chí khi nó nằm trong sự kiểm
soát của một nhà cung cấp dịch vụ Các nhà cung cấp dịch vụ truyền thống
thường được kiểm định độc lập và có các chứng chỉ đảm bảo an toàn thông
tin do bên thứ ba cấp, các nhà cung cấp dịch vụ truyền thống cũng cung cấp
cho khách hang của họ đầy đủ thông tin về mức điều khiển dữ liệu của khách
hàng Các nhà cung cấp cloud computing không có khả năng này
Vị trí lưu trữ dữ liệu: Khi sử dụng cloud, người dùng thường không biết
chính xác dữ liệu của mình được lưu ở đâu Trên thực tế, người dùng thậm
chí không biết nó được lưu ở quốc gia nào Do đó, để đảm bảo an toàn cho
dữ liệu trên môi trường điện toán đám mây cần thiết có sự cam kết về mặt
luật pháp về đảm bảo an toàn cho dữ liệu
Sự cách ly dữ liệu: Hầu hết các dịch vụ đám mây đều sử dụng SSL để bảo
vệ dữ liệu trong quá trình truyền trên mạng, tuy nhiên dữ liệu trong môi
trường điện toán đám mây lại được lưu trữ trong môi trường chia sẻ Các giải
pháp mã hóa có thể giải quyết được các vấn đề về chia sẻ dữ liệu trên môi
trường điện toán đám mây, tuy nhiên khi sử dụng các giải pháp mã hóa dữ
liệu thì các vấn đề về thuật toán mã hóa, độ dài khóa, trao đổi khóa mã hóa
và tính sẵn sàng của dữ liệu khi sử dụng các giải pháp mã hóa là vấn đề quan
trọng
Tính sẵn sàng: Tính sẵn sàng là một trong những lợi thế lớn của dịch vụ
đám mây Tuy nhiên, một số nhà cung cấp dịch vụ đám mây không cam kết
Trang 27với khách hang về tính sẵn sàng của dữ liệu dẫn đến nguy cơ mất tính sẵn
sàng
Khả năng khôi phục: Hệ thống của nhà cung cấp dịch vụ đám mây thông
thường được thiết kế khá vững chắc và có khả năng khôi phục dữ liệu khi có
sự cố Tuy nhiên, trong các trường hợp xảy ra các thảm họa lớn (động đất,
núi lửa…) vẫn có thể xảy ra khả năng hệ thống không khôi phục lại được
hoặc thời gian khôi phục chậm
Sự hỗ trợ điều tra: Là các nguy cơ khi xảy ra các sự cố về mất an toàn
thông tin, có thể xảy ra các trường hợp nhà cung cấp dịch vụ đám mây không
hỗ trợ điều tra nguyên nhân các sự cố
Khả năng tồn tại: Nhà cung cấp đám mây cũng là một doanh nghiệp, trong
trường hợp doanh nghiệp làm ăn thua lỗ có thể dẫn đến phá sản và ngừng
cung cấp dịch vụ, nếu trường hợp này xảy ra thì nguy cơ mất an toàn dữ liệu
là rất lớn
Khả năng hỗ trợ giảm rủi ro: là các hướng dẫn người dùng các phương
pháp đảm bảo an toàn khi sử dụng dịch vụ đám mây Nếu nhà cung cấp dịch
vụ đám mây thực hiện tốt việc này sẽ giảm được nguy cơ mất an toàn dữ
liệu
3.2 Vấn đề đảm bảo an ninh dữ liệu trên môi trường IaaS
Với một hệ thống đám mây IaaS, dữ liệu người dùng được lưu trữ dưới dạng các
ổ đĩa ảo (virtual disk), các ổ đĩa ảo này thực chất là các file ảnh (virtual image)
được lưu trữ trên hệ thống lưu trữ (image repository) của nhà cung cấp dịch vụ
cloud Khi người dùng bật/tắt máy ảo của mình được cung cấp bởi nhà cung cấp
dịch vụ cloud thì các ổ đĩa ảo này được gắn/gỡ vào các máy ảo để người dùng truy
xuất dữ liệu của mình [6] [7] [9] [15]
Trang 28Hình 7: Kiến trúc hệ thống IaaS (nguồn: [6], trang 91)
Với việc toàn bộ dữ liệu trong ổ đĩa ảo của người dùng được lưu trữ dưới dạng
các file trên các repository của nhà cung cấp dẫn đến một số nguy cơ về an toàn dữ
liệu của người dùng như:
- Nguy cơ bị tấn công trực tiếp vào máy ảo qua mạng: hacker có thể tấn công
trực tiếp vào các máy ảo người dùng thông qua các lỗ hổng của các phần
mềm được cài đặt trên máy ảo hoặc Trojan house
- Nguy cơ mất dữ liệu trong quá trình truyền file trong hệ thống: trong quá
trình tạo/xóa/bật/tắt máy ảo các file ổ đĩa được truyền giữa các thành phần
trong hệ thống cloud, điều này hoàn toàn có thể xay ra nguy cơ bị tấn công
dẫn đến mất dữ liệu người dùng
Trang 29- Hệ thống lưu trữ của nhà cung cấp cloud bị tấn công: khi hệ thống lưu trữ
của nhà cung cấp bị tấn công, hacker hoàn toàn có thể lấy các file chưa ổ đĩa
ảo của người dùng và dựng lại hệ thống để mount ổ đĩa vào một máy ảo khác
và đọc được toàn bộ dữ liệu của người dùng
- Nguy cơ từ quản trị của hệ thống cloud: quản trị của hệ thống cloud có toàn
quyền truy cập và có thể truy cập vào các file đĩa ảo của người dùng Trong
trường hợp máy tính của quản trị hệ thống bị tấn công thì hacker hoàn toàn
có thể chiếm được dữ liệu của người dùng
3.3 Các giải pháp mã hóa dữ liệu người dùng trên môi trường IaaS
Để đảm bảo an toàn cho dữ liệu của người dùng trên môi trường IaaS thì mã hóa
dữ liệu được xem là giải pháp cần thiết, tuy nhiên việc lựa chọn các thuật toán mã
hóa, độ dài khóa và vấn đề quản lý khóa mã hóa là hết sức quan trọng Trên môi
trường IaaS có thể triển khai các giải pháp mã hóa dữ liệu như [1] [11] [13]:
- ã hóa file/thư mục (File/folder Encryption): là giải pháp thực hiện mã hóa
các file/thư mục riêng lẻ được lưu trên ổ đĩa của máy ảo Các giải pháp này
thường là do chính người dùng tự cài đặt, quản lý và thực hiện mã hóa/giải
mã dữ liệu mà người dùng chọn Với các giải pháp mã hóa file/thư mục thì
ưu điểm là có tính linh động cao, người dùng có thể tùy chọn file/thư mục cụ
thể cần mã hóa Một số giải pháp mã hóa dạng này như Vera rypt, x rypt,
Winrar…Các thuật toán mã hóa hỗ trợ khá đa dạng như ES, Twofish…Tuy
nhiên, với các giải pháp kiểu này người dùng phải tự quản lý khóa mã hóa
của mình do đó có thể xảy ra các nguy cơ người dùng quên khóa mã hóa
hoặc làm lộ khóa mã hóa trong quá trình lưu trữ
- Mã hóa toàn bộ ổ đĩa ảo (Full Virtual Disk Encryption): là giải pháp mã hóa
mà toàn bộ dữ liệu của ổ đĩa, giải pháp này thường hoạt động theo cơ chế mã
hóa ổ đĩa trên đường đi (on-the-fly encryption) Nghĩa là dữ liệu tự động
được mã hóa hoặc giải mã ngay khi được ghi xuống đĩa ảo hoặc ngay khi dữ
liệu được nạp lên mà không có bất kỳ sự can thiệp nào của người dùng Dữ
liệu được lưu trữ trên một ổ đĩa đã được mã hóa (encryption volume) không
Trang 30thể đọc được nếu người dùng không cung cấp đúng khóa mã hóa bằng một
trong ba hình thức là mật khẩu (password) hoặc tập tin có chứa khóa
(keyfile) hoặc khóa mã hóa (encryption key) Toàn bộ dữ liệu trên ổ đĩa mã
hóa đều được mã hóa (ví dụ như tên file, tên folder, nội dung của từng file,
dung lượng còn trống, siêu dữ liệu ) Việc triển khai giải pháp mã hóa theo
dạng này thường có 02 cách thực hiện:
Người dùng tự cài đặt các giải pháp mã hóa trên máy ảo của mình: với
cách này người dùng phải tự tạo, quản lý khóa mã hóa, tự triển khai các giải pháp sao lưu, khôi phục dữ liệu Việc người dùng tự quản lý khóa mã hóa dữ liệu như đã nói ở trên có thể dẫn đến nhiều nguy cơ mất an toàn dữ liệu
Nhà cung cấp dịch vụ cloud triển khai giải pháp mã hóa dữ liệu: Nhà
cung cấp dịch vụ Cloud Computing tự xây dựng giải pháp mã hóa dữ liệu cho khách hàng của họ Cách làm này có yếu điểm là yêu cầu khách hàng cung cấp khóa mã hóa của họ cho nhà cung cấp dịch vụ loud, như vậy dù muốn hay không thì nhà cung cấp dịch vụ Cloud cũng có thể xem được dữ liệu khách hàng Ví dụ về cách làm này có thể kể tới Amazon S3 Server Side Encryption Việc mã hóa dữ liệu được giao trách nhiệm cho bên thứ ba, được nhà cung cấp dịch vụ Cloud Computing và khách hàng của họ tin tưởng Rất nhiều nhà cung cấp dịch vụ mã hóa dữ liệu lớn có thể kể ra là: TrendMicro (giải pháp SecureCloud), Vormetric, SafeNet (giải pháp ProtectV), Voltage, Porticor Các nhà cùng cấp dịch vụ loud omputing đang bắt tay với các giải pháp này để đảm bảo an toàn dữ liệu cho người dùng của họ, có thể liệt kê ra như V Ware (sử dụng SecureCloud, ProtectV, Porticor), Amazon EC2 (sử dụng SecureCloud), Amazon Web Service (sử dụng Vormetric, ProtectV, Porticor)… ách làm này
có một yếu điểm là người sử dụng phải đưa quyền thao tác trên hệ thống Cloud cho bên thứ ba (bên cung cấp giải pháp mã hóa) Như
Trang 31vậy, bên thứ ba lại có quyền thao tác với tài nguyên của khách hàng trên hệ thống Cloud Computing (ví dụ như hủy máy chủ ảo của khách hàng)[14]
3.3.1 Bitlocker
BitLocker là phần mềm mã hóa mã nguồn đóng của icrosoft được tích hợp sẵn
trên các hệ điều hành (từ Windows 7 trở lên) của Microsoft cho phép mã hóa toàn
bộ dữ liệu trong ổ đĩa cứng, USB và các thiết bị lưu trữ khác giúp chống lại những
thay đổi, truy cập trái phép vào dữ liệu Mặc định Bitlocker sử dụng giải thuật mã
hóa AES ở chế độ mã khối chuỗi (Cipher Block Chaining – CBC) hoặc mã khối hẹp
(XEX-based tweaked-codebook mode with ciphertext stealing – XTS) với khóa có
độ dài 128 hoặc 256 bit
Điểm mạnh của Bitlocker là dễ dàng thiết lập, sử dụng và có hiệu năng khá cao
do được tích hợp sẵn với hệ điều hành Tuy nhiên, Bitlocker không hỗ trợ hệ điều
hành Linux và là giải pháp mã nguồn đóng do đó chỉ thích hợp với các trường hợp
người dùng tự thiết lập mã hóa và tự quản lý khóa mã hóa, với Bitlocker không thể
tích hợp thành dịch vụ mã hóa trên môi trường đám mây để cung cấp cho người
dùng do Microsoft không cung cấp P để tương tác với Bitlocker
3.3.2 VeraCrypt
Là phần mềm mã hóa dữ liệu mã nguồn mở được phát triển bởi IDRIX có khả
năng hỗ trợ mã hóa toàn bộ dữ liệu trên ổ đĩa bằng cơ chế mã hóa dữ liệu trên
đường đi (on-the-fly encryption) VeraCrypt mã hóa dữ liệu ở chế độ XTS và hỗ trợ
các giải thuật mã hóa AES, Serpent, Twofish, Camellia và Kuznyechik
4 Giải pháp mã hóa dữ liệu TrueCrypt
TrueCrypt được phát triển bởi TrueCrypt Foundation giải pháp mã hóa dữ liệu
mã nguồn mở có khả năng mã hóa toàn bộ ổ đĩa (thậm chí cả ổ đĩa chứa hệ điều
hành TrueCrypt hỗ trợ cài đặt trên hệ điều hành Windows và Linux [19]
TrueCrypt hỗ trợ các thuật toán mã hóa AES, Serpent, và Twofish
ơ chế thiết lập và quản lý của TrueCrypt là mã hóa ổ đĩa trên đường đi
(on-the-fly encryption) Nghĩa là dữ liệu tự động được mã hóa hoặc giải mã ngay khi được
Trang 32ghi xuống đĩa cứng hoặc ngay khi dữ liệu được nạp lên mà không có bất kỳ sự can
thiệp nào của người dùng Dữ liệu được lưu trữ trên một ổ đĩa đã được mã hóa
(encryption volume) không thể đọc được nếu người dùng không cung cấp đúng
khóa mã hóa bằng một trong ba hình thức là mật khẩu (password) hoặc tập tin có
chứa khóa (keyfile) hoặc khóa mã hóa (encryption key)
Toàn bộ dữ liệu trên ổ đĩa mã hóa đều được mã hóa (ví dụ như tên file, tên
folder, nội dung của từng file, dung lượng còn trống, siêu dữ liệu ) Dữ liệu có thể
được copy từ một ổ đĩa mã hóa của TrueCrypt sang một ổ đĩa bình thường không
mã hóa (và ngược lại) một cách bình thường mà không có sự khác biệt nào cả, kể cả
các thao tác kéo-thả
Khi một tập tin được đọc nó sẽ được giải mã on-the-fly (trong bộ nhớ/RAM),
ngược lại khi tập tin hay thư mục được chép lên ổ TrueCrypt thì sẽ được tự động
mã hoá trước khi lưu TrueCrypt không nạp toàn bộ dữ liệu cần mã hóa (file/folder)
vào R cùng lúc để tiến hành mã hóa hay giải mã, mà chương trình chỉ nạp một
phần tập tin vào bộ nhớ để thực hiện quá trình này, sau đó nạp tiếp những phần còn
lại theo cơ chế "cuốn chiếu" Điều này làm cho bộ nhớ không bị chiếm dụng toàn
bộ nhưng vẫn có thể tiến hành mã hoá/giải mã trong suốt quá trình xử lý tập tin như
đọc, ghi, xem video
True rypt không lưu bất kỳ dữ liệu đã được giải mã lên đĩa cứng mà chỉ tạm
thời lưu trữ lên RAM, khi hệ thống shutdown/restart hoặc bị sự cố mất nguồn đột
ngột thì dữ liệu vẫn được lưu trong trạng thái an toàn
TrueCrypt là giải pháp mã nguồn mở do đó có khả năng cung cấp các thư viện,
công cụ cho việc mã hóa dữ liệu, mã hóa ổ đĩa và có khả năng tích hợp vào hệ
thống đám mây
Kiến trúc và hoạt động của TrueCrypt:
1 Boot Đảm nhiệm chức năng liên quan tới phân vùng boot sector
trong lựa chọn mã hóa phân vùng chứa hệ điều hành
Trang 33# Tên chức năng Chú thích
2 Mount Đảm nhiệm chức năng mount / dismount volume
3 Format Đảm nhiệm chức năng format volume, tạo volume header
4 Driver Đảm nhiệm chức năng tương tác với phần cứng
5 Crypto Đảm nhiệm chức năng cung cấp các thư viện phục vụ mã
hóa
- Driver: là project tương tác trực tiếp với phần cứng Bao gồm hai chức năng
chính là: Read Decrypted Sector và Write Encrypted Sector Project này
tương tác trực tiếp với tất cả các project còn lại (boot, mount, format, crypto)
của module
Read Decrypted Sector: đọc dữ liệu đã được giải mã từ ổ cứng
Write Encrypted Sector: ghi dữ liệu đã được mã hóa vào ổ cứng
- Boot: là project thực hiện chức năng liên quan tới quá trình boot máy ảo
trong trường hợp thực hiện mã hóa phân vùng ô cứng chứa hệ điều hành Khi
đó, trong quá trình boot máy ảo, module sẽ hiển thị hộp thoại yêu cầu người
dùng nhập passphase để thực hiện quá trình mã hóa/giải mã Một số hàm
chính của project Boot bao gồm:
Execute Boot Sector: thực hiện quá trình nạp bootloader
Get System Partition: lấy thông tin của các phân vùng system
Boot Menu: hiển thị menu lựa chọn boot
- Mount: là project thực hiện chức năng gắn (mount) và gỡ (unmount) các
volume mã hóa, cho phép người dùng thực hiện các thao tác đọc/ghi dữ liệu
trên các volume đó Hai hàm chức năng chính của project này là:
Mount/Dismount All: gắn/gỡ tất cả các volume mã hóa
Mount/Dismount Driver: gắn/gỡ volume tương ứng
- Format: là project thực hiện chức năng định dạng volume, phục vụ quá trình
mã hóa dữ liệu Hai hàm chính của project này là:
Trang 34 Format Volume: định dạng volume theo các dạng thường dùng như là
ext2-4, ntfs, fat32,…
Create Volume Header: tạo header mã hóa cho volume
- rypto: là project đảm nhiệm chức năng cung cấp các thư viện phục vụ quá