i

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN&TRUYỀN THÔNG

PHẠM THỊ PHƯỢNG

TÌM HIỂU MÔ HÌNH Đ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

Ngành: Công nghệ thông tin

Chuyên ngành: Khoa học máy tính

Mã số: 60 48 0101

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. HỒ VĂN CANH

Thái Nguyên – 2019

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

ii

LỜI CAM ĐOAN

Học viên xin cam đoan luận văn này là công trình nghiên cứu thực sự của

bản thân, dưới sự hướng dẫn khoa học của TS. Hồ Văn Canh.

Các số liệu, kết quả trong luận văn là trung thực và chưa từng được công

bố dưới bất cứ hình thức nào. Tất cả các nội dung tham khảo, kế thừa của các tác

giả khác đều được trích dẫn đầy đủ.

Em xin chịu trách nhiệm về nghiên cứu của mình.

Tác giả

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Phạm Thị Phượng

iii

LỜI CẢM ƠN

Học viên trân trọng cảm ơn sự quan tâm, tạo điều kiện và động viên của

Lãnh đạo Đại học Thái Nguyên, các thầy cô Khoa Đào tạo sau đại học, các khoa

đào tạo và các quý phòng ban Học viện trong suốt thời gian qua.

Học viên xin bày tỏ sự biết ơn sâu sắc tới TS. Hồ Văn Canh đã nhiệt tình

định hướng, bồi dưỡng, hướng dẫn học viên thực hiện các nội dung khoa học trong

suốt quá trình nghiên cứu, thực hiện luận văn.

Xin chân thành cảm ơn sự động viên, giúp đỡ to lớn từ phía Cơ quan đơn

vị, đồng nghiệp và gia đình đã hỗ trợ học viên trong suốt quá trình triển khai các

nội dung nghiên cứu.

Mặc dù học viên đã rất cố gắng, tuy nhiên, luận văn không tránh khỏi những

thiếu sót. Học viên kính mong nhận được sự đóng góp từ phía Cơ sở đào tạo, quý

thầy cô, các nhà khoa học để tiếp tục hoàn thiện và tạo cơ sở cho những nghiên

cứu tiếp theo.

Xin trân trọng cảm ơn!

Thái Nguyên, tháng năm 2019

Học viên

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Phạm Thị Phượng

iv

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

DANH MỤC CÁC HÌNH VẼ, BẢNG BIỂU

v

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

1

MỞ ĐẦU

1. Đặt vấn đề

Điện toán đám mây_ Cloud Computing được hình thành năm 1969 và có

sự phát triển mạnh mẽ từ khi có internet băng thông rộng, đã làm thay đổi cách

thức hoạt động của điện toán truyền thống. Hiện nay, điện toán đám mây (ĐTĐM)

được các quốc gia trên thế giới ứng dụng rộng rãi trong các lĩnh vực hoạt động

của đời sống, kinh tế xã hội. Bằng việc tối ưu sử dụng các nguồn tài nguyên hệ

thống, điện toán đám mây đem lại nhiều lợi ích, cơ hội mới cho các các cơ quan,

tổ chức, doanh nghiệp trong quá trình đẩy mạnh ứng dụng công nghệ thông tin,

truyền thông vào hoạt động chuyên ngành [3, 4].

Các hoạt động liên quan tới điện toán đám mây được chính phủ các quốc

gia phát triển mang tính chiến lược trên phạm vi toàn thế giới như đám mây

Nebula, google moderator của Mỹ, đám mây G-clould của Anh, kasumigaseki của

Nhật Bản…bởi vậy điện toán đám mây luôn thu hút nhiều quốc gia, tổ chức, các

tập đoàn, công ty và nhà khoa học, các chuyên gia đầu tư nghiên cứu [10, 11, 13].

Ở nước ta hiện nay, hầu hết các tổ chức, doanh nghiệp đã có hiểu biết cơ

bản về điện toán đám mây. Nhiều tổ chức, doanh nghiệp đã và đang sử dụng điện

toán đám mây theo các mức độ khác nhau. Một số công trình nghiên cứu [3, 6] đã

chỉ rõ điện toán đám mây là giải pháp tối ưu để các doanh nghiệp nước ta giảm

thiểu chi phí cũng như tăng hiệu suất làm việc ở mức tối đa.

Tuy nhiên trong quá trình nghiên cứu và ứng dụng cho thấy có nhiều vấn

đề về nguy cơ an ninh an toàn thông tin đang đặt ra hiện nay đối với việc lưu trữ

dữ liệu trên đám mây [16, 24]. Do vậy, tình hình sử dụng công nghệ đám mây còn

gặp phải một số khó khăn nhất định, hiệu quả ứng dụng chưa phát huy tối đa tính

ưu việt của các dịch vụ. Trước những yêu cầu cấp bách đó, đòi hỏi cần có những

nghiên cứu, giải pháp tăng tính an toàn cho đám mây cũng như việc bảo mật thông

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

tin, dữ liệu lưu trữ.

2

Xuất phát từ thực tiễn đó, luận văn “Tìm hiểu đ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” mang tính cấp thiết, thực sự có ý nghĩa

khoa học và thực tiễn.

2. Đối tượng và phạm vi nghiên cứu

Nghiên cứu tìm hiểu về điện toán đám mây, kiến trúc, mô hình, ưu nhược

điểm và giới thiệu một số nhà cung cấp dịch vụ điện toán đám mây

- Nghiên cứu một số vấn đề bảo mật dữ liệu trong điện toán đám mây và

phương pháp khắc phục. Từ đó đi sâu tìm hiểu phương pháp bảo vệ dữ liệu đã lưu

trữ bằng các thuật toán mã hóa AES và RSA.

- Nghiên cứu và cài đặt, thử nghiệm hệ thống máy chủ lưu trữ ownCloud.

3. Hướng nghiên cứu của luận văn

Nghiên cứu tổng quan mô hình điện toán đám mây, một số vấn đề bảo mật

dữ liệu trong điện toán đám mây và phương pháp khắc phục. Từ đó đi sâu nghiên

cứu phương pháp bảo vệ dữ liệu đã lưu trữ bằng các thuật toán mã hóa trên máy

chủ ownCloud. Nghiên cứu xây giải pháp mã hóa dữ liệu an toàn từ phía người

dùng và ổ chức cài đặt, thực nghiệm, đánh giá các kết quả nghiên cứu đạt được.

4. Những nội dung nghiên cứu chính

Chương 1: Tổng quan về điện toán đám mây

Nghiên cứu về tổng quan khái niệm, lịch sử hình thành và phát triển của

điện toán đám mây, kiến trúc và một số mô hình của điện toán đám mây. Đồng

thời phân tích chỉ ra những ưu, nhược điểm, tình hình triển khai nghiên cứu ứng

dụng và sử dụng công nghệ điện toán đám mây thế giới và tại Việt Nam.

Chương 2: Bảo vệ thông tin trong điện toán đám mây

Nội dung Chương 2 nghiên cứu tìm hiểu vấn đề an ninh thông tin, một số

tiêu chuẩn về an ninh thông tin, phân loại an ninh thông tin trong điện tóa đám

mây, vấn đề an ninh dữ liệu trong điện toán đám mây và giải pháp. Trên cơ sở đó,

tập trung phân tích hai thuật toán mã hóa dữ liệu lưu trữ cho điện toán đám mây

là RSA và AES.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Chương 3: Ứng dụng bảo vệ thông tin trong điện toán đám mây

3

Nghiên cứu và xây dựng điện toán đám mây riêng tích hợp công cụ thu thập

thông tin tự động dựa trên phần mềm mã nguồn mở ownCloud và Apache Nutch.

Nghiên cứu phân tích thuật toán mã hóa dữ liệu phía ownCloud và đề xuất xây

dựng giải pháp mã hóa dữ liệu an toàn phía client sử dụng RSA kết hợp AES 256.

Tiến hành cài đặt, thực nghiệm và rút ra những kết luận, đề xuất.

5. Phương pháp nghiên cứu

- Nghiên cứu các bài báo khoa học trong nước và quốc tế.

- Nghiên cứu một số vấn đề bảo mật dữ liệu trong điện toán đám mây và

phương pháp khắc phục. Từ đó đi sâu tìm hiểu phương pháp bảo vệ dữ liệu đã lưu

trữ bằng các thuật toán mã hóa AES và RSA.

- Cài đặt ứng dụng thử nghiệm và đánh giá.

6. Ý nghĩa khoa học của luận văn

Nghiên cứu vấn đề bảo mật dữ liệu trong điện toán đám mây có ý nghĩa và

vai trò to lớn trong việc vệ an ninh thông tin. Đây là vấn đề đang được quan tâm,

thu hút nhiều quốc gia, tổ chức, cá nhân đầu tư nghiên cứu. Luận văn đã kết hợp

hai kỹ thuật sử dụng các search engine để xây dựng đám mây thu tin tự động và

kỹ thuật mã hóa để bảo mật dữ liệu. Do vậy, luận văn có tính khoa học và ứng

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

dụng thực tiễn.

4

CHƯƠNG 1: TỔNG QUAN VỀ ĐIỆN TOÁN ĐÁM MÂY

1.1 Điện toán đám mây

Điện toán đám mây - Cloud Computing (sau đây có thể gọi tắt là đám mây)

là mô hình điện toán đang tiến tới hoàn chỉnh, mỗi tổ chức tiêu chuẩn, mỗi hãng

công nghệ đang đưa ra những định nghĩa và cách nhìn của riêng mình.

Theo Wikipedia: “Điện toán đám mây là một mô hình điện toán có khả

năng co giãn linh động, các tài nguyên thường được ảo hóa và được cung cấp

như một dịch vụ trên mạng Internet”.

Theo Ian Foster: “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”.

Một số định nghĩa thì cho rằng điện toán đám mây là điện toán máy chủ ảo,

tuy nhiên, định nghĩa này chưa thực sự đầy đủ và chính xác, máy chủ ảo không

phải là thành phần thiết yếu của một đám mây. Nó chỉ là thành phần chủ chốt để

một vài loại đám mây hoạt động.

Hiện tại, định nghĩa của Viện tiêu chuẩn và công nghệ quốc gia Mỹ - NIST

(National Institute of Science and Technology) được cho là thể hiện rõ nhất bản

chất của điện toán đám mây [14]: điện toán đám mây là mô hình điện toán cho

phép truy cập qua mạng để lựa chọn và sử dụng tài nguyên tính toán (mạng, máy

chủ, lưu trữ, ứng dụng và dịch vụ…) theo nhu cầu một cách thuận tiện và nhanh

chóng. Đồng thời, điện toán đám mây cũng cho phép kết thúc sử dụng dịch vụ,

giải phóng tài nguyên dễ dàng, giảm thiểu các tương tác với nhà cung cấp.

Như vậy, điện toán đám mây có thể coi là bước tiếp theo của ảo hóa, bao

gồm ảo hóa phần cứng và ứng dụng, là thành phần quản lý, tổ chức, vận hành các

hệ thống ảo hóa trước đó.

Điện toán đám mây có năm đặc điểm chính như sau:

Tự phục vụ theo nhu cầu (On-deman self-service): Người sử dụng có thể tự

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

cung cấp các tài nguyên như máy chủ ảo, tài khoản email… mà không cần có

5

người tương tác với nhân viên của nhà cung cấp dịch vụ (nhân viên công nghệ

thông tin).

Mạng lưới truy cập rộng lớn (Broad Network Access): Khách hàng có thể

truy cập tài nguyên qua mạng máy tính (như mạng Internet) từ nhiều thiết bị khác

nhau (điện thoại thông minh, máy tính bảng, máy tính xách tay…).

Tài nguyên được chia sẻ (Resource Pooling): Tài nguyên của các nhà cung

cấp dịch vụ được chia sẻ tới nhiều khách hàng. Thông thường, các công nghệ ảo

hóa được sử dụng để cho nhiều bên cùng thuê và cho phép tài nguyên được cấp

phát động dựa theo nhu cầu của khách hàng.

Tính linh hoạt nhanh (Rapid elasticity): Tài nguyên có thể được cung cấp

và giải phóng nhanh, tự động dựa trên nhu cầu. Khách hàng có thể tăng hoặc giảm

việc sử dụng dịch vụ đám mây một cách dễ dàng theo nhu cầu hiện tại của mình.

Ước lượng dịch vụ (Measured service): Khách hàng chỉ chi trả cho tài

nguyên thực tế họ đã sử dụng. Thông thường, nhà cung cấp dịch vụ sẽ cung cấp

cho khách hàng bảng điều khiển (dashboard) để họ có thể theo dõi việc sử dụng

dịch vụ của họ.

Điện toán đám mây đã khắc phục được yếu điểm quan trọng của điện toán

truyền thống về khả năng mở rộng và độ linh hoạt. Các công ty, tổ chức có thể

triển khai ứng dụng và dịch vụ nhanh chóng, giảm chi phí và ít rủi ro về đầu tư

ban đầu.

1.2 Lịch sử hình thành và phát triển của điện toán đám mây

Điện toán đám mây thường được mọi người biết đến như một công nghệ

mới được phát triển trong những năm gần đây. Tuy nhiên, khái niệm này không

mới như ta vẫn nghĩ. Điện toán đám mây đã bắt đầu được hình thành vào khoảng

giữa thế kỷ 20, khi có sự ra đời của các máy tính mainframe. Dưới đây là một số

mốc phát triển quan trọng của điện toán đám mây [20]:

Năm 1969, J.C.R Liicklider là người chịu trách nhiệm tạo điều kiện cho sự

phát triển của APANET trong cuốn Advanced Research Project Agency Network

đã nêu ý tưởng về mạng máy tính giữa các thiên hà, có vẻ giống với điện toán

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

đám mây.

6

Tuy nhiên, cho đến năm 1999, điện toán đám mây mới cho thấy thành tựu

của sự phát triển với cột mốc là điện toán đám mây của Saleforce.com với các

ứng dụng doanh nghiệp cung cấp thông qua một trang web đơn giản, mở đường

cho việc cung cấp các ứng dụng trên Internet.

Năm 2002, Amazon Web Service cung cấp bộ các dịch vụ lưu trữ, tính toán,

trí tuệ nhân tạo…

Năm 2004, mạng xã hội Facebook ra đời kết nối và lưu dữ liệu, tạo thành

một dịch vụ đám mây cá nhân.

Năm 2006, Amazon ra mắt EC2 (Elastic Compute), là một dịch vụ web

thương mại cho phép các công ty nhỏ, cá nhân thuê máy tính mà trên đó để chạy

các ứng dụng máy tính của mình.

Cuối năm 2008 là sự ra đời của điện toán đám mây Azue của Microsoft.

Năm 2009, Google Apps chính thức được phát hành, sau đó, liên tiếp các

hãng công nghệ có tên tuổi tham gia cung cấp dịch vụ liên quan đến điện toán

đám mây như Rackspace, IBM…

Cho tới nay, các công ty đã tích cực cải thiện dịch vụ và khả năng đáp ứng

của mình để phục vụ nhu cầu cho người sử dụng một cách tốt nhất. Đặc biệt, số

người dùng điện thoại thông minh và máy tính bảng tăng nhanh trong những năm

gần đây đã giúp cho các dịch vụ điện toán đám mây ngày càng phát triển vượt

bậc, mang nhiều trải nghiệm mới cho người dùng, kết nối mọi lúc mọi nơi qua

môi trường Internet.

1.3 Kiến trúc điện toán đám mây

Kiến trúc điện toán đám mây bao gồm nhiều thành phần đám mây liên kết

với nhau. Ta có thể chia kiến trúc điện toán đám mây thành hai phần quan trọng:

nền tảng font-end và nền tảng back-end. Hai phần này kết nối với nhau thông qua

mạng máy tính, thường là mạng Internet [18].

Front-end là phần thuộc về phía khách hàng dùng máy tính. Hạ tầng khách

hàng trong nền tảng font-end (Client Infrastructure) là những yêu cầu phần mềm

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

hoặc phần cứng (hệ thống mạng của khách hàng hoặc máy tính) để sử dụng các

7

dịch vụ trên điện toán đám mây. Thiết bị cung cấp cho khách hàng có thể là trình

duyệt, máy tính để bàn, máy xách tay, điện thoại thông minh…

Back-end đề cập đến chính đám mây của hệ thống, bao gồm tất cả các tài

nguyên cần thiết để cung cấp dịch vụ điện toán đám mây. Nó gồm các thành phần

con chính như: cơ sở hạ tầng, lưu trữ, máy ảo, cơ chế an ninh, dịch vụ, mô hình

triển khai, máy chủ…

Hình 1.1: Kiến trúc điện toán đám mây

Cơ sở hạ tầng (Infrastructure) của điện toán đám mây là phần cứng được

cung cấp như dịch vụ, nghĩa là được chia sẻ và có thể sử dụng lại dễ dàng. Các tài

nguyên phần cứng được cung cấp theo thời gian cụ thể theo yêu cầu. Dịch vụ kiểu

này giúp cho khách hàng giảm chi phí bảo hành, chi phí sử dụng,…

Lưu trữ (Storage): Lưu trữ đám mây là khái niệm tách dữ liệu khỏi quá trình

xử lý và chúng được lưu trữ ở những vị trí từ xa. Lưu trữ đám mây thường được

triển khai theo các dạng: đám mây công cộng, đám mây riêng, đám mây cộng

đồng hoặc đám mây lai. Lưu trữ đám mây cũng bao gồm cả các dịch vụ cơ sở dữ

liệu, ví dụ như BigTable của Google, SimpleDB của Amazon,…

Cloud Runtime: Là dịch vụ phát triển phần mềm ứng dụng và quản lý các

yêu cầu phần cứng, nhu cầu phần mềm. Ví dụ nền dịch vụ như khung ứng dụng

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

web, web hosting.

8

Dịch vụ (Service): Dịch vụ đám mây là một phần độc lập có thể kết hợp

với các dịch vụ khác để thực hiện tương tác, kết hợp giữa các máy tính với nhau

để thực thi chương trình ứng dụng theo yêu cầu trên mạng. Ví dụ các dịch vụ hiện

nay như: Simple Queue Service, Google Maps, các dịch vụ thanh toán linh hoạt

trên mạng của Amazon.

Ứng dụng: Ứng dụng đám mây (Cloud Application) là một đề xuất về kiến

trúc phần mềm sẵn sàng phục vụ, nhằm loại bỏ sự cần thiết phải mua phần mềm,

cài đặt, vận hành và duy trì ứng dụng tại máy bàn/thiết bị của người sử dụng. Ứng

dụng đám mây loại bỏ được các chi phí để bảo trì và vận hành các chương trình

ứng dụng.

Các máy chủ sử dụng các giao thức nhất định được gọi là middleware giúp

các thiết bị kết nối để giao tiếp với nhau.

1.4 Một số mô hình điện toán đám mây

1.4.1 Các mô hình dịch vụ

Điện toán đám mây có thể được xem như một nhóm các dịch vụ, trong đó

có 3 mô hình dịch vụ chính [9, 14]: phần mềm như một dịch vụ, nền tảng như một

dịch vụ, cơ sở hạ tầng như một dịch vụ.

Phần mềm như một dịch vụ (SaaS - Software as a Service): Tất cả các

phần mềm (tài chính, nhân sự, bán hàng, tư vấn) được cung cấp như một dịch vụ.

Nghĩa là người dùng sử dụng các phần mềm của nhà cung cấp dịch vụ chạy trên

một nền tảng đám mây và sẽ truy cập các phần mềm này thông qua Web. Với

SaaS, người dùng lựa chọn ứng dụng phù hợp với nhu cầu và chạy ứng dụng đó

trên cơ sở hạ tầng đám mây mà không cần quan tâm đến việc quản lý tài nguyên

phần cứng - công việc này đã có nhà cung cấp dịch vụ lo. Nhà cung cấp dịch vụ

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

sẽ quản lý, kiểm soát và đảm bảo ứng dụng luôn sẵn sang và hoạt động ổn định.

9

Hình 1.2: Các mô hình dịch vụ của điện toán đám mây

SaaS có thể phục vụ cùng lúc hàng 9iki nghìn khách hàng (dịch vụ đám

mây công cộng), hoặc môi trường dịch vụ đám mây riêng cho các phần mềm

chuyên dụng.

Một số phần mềm được cung cấp như dịch vụ tiêu biểu là: Google Docs,

Zoho Docs, Salesfore.com…

Nền tảng như một dịch vụ (PaaS): Cung cấp nền tảng vận hành các ứng

dụng, dịch vụ, cho phép khách hàng phát triển các phần mềm trên đó. Nghĩa là

khách hàng sử dụng ngôn ngữ lập trình và các công cụ mà nhà cung cấp dịch vụ

hỗ trợ để tạo các ứng dụng (hoặc mua lại các ứng dụng đã tạo). Khách hàng không

cần quản lý, kiểm soát cơ sở hạ tầng đám mây (mạng, máy chủ, hệ điều hành, lưu

trữ), nhưng có quyền kiểm soát các ứng dụng họ đã triển khai ứng dụng lưu trữ

các cấu hình môi trường. Có thể xem cơ sở dữ liệu, phần mềm middleware là các

ví dụ của nền tảng và được cung cấp như một dịch vụ. PaaS thường được sử dụng

bởi các nhà phát triển, nhà kiểm thử, nhà triển khai, các kỹ sư middleware và quản

trị viên. Google App Engine, IBM IT Factory, Windows Azure là các ví dụ điển

hình của PaaS.

Cơ sở hạ tầng như một dịch vụ (IaaS): IaaS là tầng thấp nhất của điện

toán đám mây, cung cấp các tài nguyên phần cứng như máy chủ, hệ thống lưu trữ,

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

các thiết bị mạng và các tài nguyên tính toán cơ bản khác dưới dạng dịch vụ cho

10

các đơn vị, tổ chức. Với IaaS, người dùng có thể triển khai và chạy các phần mềm

tùy ý mà không phải quan tâm đến cơ sở hạ tầng đám mây, nhưng có quyền kiểm

soát với hệ điều hành, lưu trữ, các ứng dụng đã triển khai và có thể hạn chế việc

lựa chọn thành phần mạng.

Đối tượng sử dụng dịch vụ IaaS thường là các nhà phát triển hệ thống, kỹ

sư mạng, quản trị hệ thống, kỹ sư giám sát, người quản lý công nghệ thông tin.

Công nghệ được sử dụng rộng rãi trong IaaS là công nghệ ảo hóa để chia sẻ và

phân phối tài nguyên theo yêu cầu.

Đối với các doanh nghiệp, lợi ích lớn nhất của IaaS là sự bùng nổ lên đám

mây (Cloudbursting), quá trình này làm giảm tải các tác vụ lên đám mây nhiều

lần khi cần nhiều tài nguyên tính toán nhất. Việc này giúp tiết kiệm nhiều chi phí

vì các doanh nghiệp sẽ không phải đầu tư thêm nhiều máy chủ mà rất ít khi sử

dụng hết công suất.

Tuy nhiên, những doanh nghiệp này phải có bộ phận công nghệ thông tin

để xây dựng và triển khai phần mềm xử lý có khả năng phân phối lại các quy trình

xử lý lên một đám mây IaaS. Nếu không xây dựng lại phần mềm này thì doanh

nghiệp sẽ gặp một số khó khăn khi nhà cung cấp ngừng kinh doanh, hoặc các vấn

đề về bảo vệ dữ liệu cá nhân, tài chính…

Một số nhà cung cấp dịch vụ IaaS tiêu biểu như: Vmware, Amazon…

1.4.2 Các mô hình triển khai

Với mỗi loại mô hình dịch vụ, đều có thể sử dụng các hình triển khai [9,

14] chính của điện toán đám mây là: đám mây công cộng, đám mây riêng, đám

mây cộng đồng, đám mây lai và một số mô hình triển khai khác như sau:

Đám mây công cộng (Public Cloud): việc cung cấp và sử dụng dịch vụ

được tổ chức, hoạt động và quản lý bởi nhà cung cấp dịch vụ. Dịch vụ đám mây

công cộng thường được chuyển qua Internet từ một hoặc nhiều trung tâm dữ liệu

của nhà cung cấp dịch vụ. Chúng được dùng chung và cho nhiều bên thuê để tính

toán giúp tiết kiệm, giảm thiểu chi phí mà vẫn đạt được tối đa tiềm năng. Tuy

nhiên, đám mây công cộng nhận được ít sự kiểm soát và giám sát an ninh của nhà

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

cung cấp dịch vụ.

11

Đám mây công cộng có nhiều dạng và tồn tại dưới nhiều hình thức như là

Windows Azure, Microsoft Office 365 và Amazon Elastic Compute Cloud… Ta

cũng có thể tìm thấy các dịch vụ quy mô nhỏ hơn phù hợp với nhu cầu cá nhân.

Ưu điểm lớn nhất của đám mây công cộng chính là nó luôn được sẵn sàng

để sử dụng nhanh chóng: một ứng dụng kinh doanh mới nhất có thể được triển

khai chỉ trong vòng vài phút và có khả năng mở rộng dễ dàng. Doanh nghiệp

không cần đầu tư vào hệ thống hạ tầng công nghệ thông tin nội bộ nữa.

Hình 1.3: Các mô hình triển khai chính của điện toán đám mây

Đám mây riêng (Private Cloud): được cung cấp riêng cho một cá nhân

hoặc tổ chức nào đó (không sử dụng chung). Một số mô hình điện toán đám mây

riêng nổi bật cung cấp cái nhìn tổng quan về các mô hình phổ biến nhất:

Dedicated: dịch vụ được sở hữu, vận hành và quản lý bởi tổ chức và được

lưu trữ trong hạ tầng cơ sở (on premises) của chính tổ chức hoặc cùng được đặt

trong một cơ sở dữ liệu trung tâm (ngoài hạ tầng cơ sở - off premises).

Managed: dịch vụ thuộc sở hữu của tổ chức nhưng được điều hành và quản

lý bởi một nhà cung cấp dịch vụ. Dịch vụ này có thể được lưu trữ trong các tổ

chức hoặc lưu trữ đồng thời cùng nhà cung cấp dịch vụ.

Virtual: dịch vụ được sở hữu, vận hành, quản lý và tổ chức bởi một nhà

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

cung cấp dịch vụ nhưng tổ chức này được cô lập với các khách hàng khác.

12

Lợi ích của đám mây riêng là doanh nghiệp có thể tự thiết kế nó rồi tùy biến

theo thời gian cho phù hợp với mình. Họ có thể kiểm soát được chất lượng dịch

vụ đã cung cấp. Với hệ thống chuẩn được lắp đặt, hoạt động theo nguyên tắc, đảm

bảo tính bảo mật thì nhiệm vụ quản trị của nhân viên công nghệ thông tin sẽ được

duy trì. Mặt bất lợi của đám mây này là mô hình triển khai của nó cần sự đầu tư

nhiều về chuyên môn, tiền bạc (đầu tư vốn để mua các phần cứng, phần mềm cần

thiết đủ đáp ứng trong lúc cao điểm, chi phí duy trì phần cứng…) và thời gian để

tạo ra các giải pháp kinh doanh đúng đắn cho doanh nghiệp.

Đám mây cộng đồng (Community Cloud): là đám mây được chia sẻ giữa

một số tổ chức, doanh nghiệp có mục tiêu sử dụng tương tự nhau với nhau. Đám

mây cộng đồng này có thể sử dụng nhiều công nghệ, và nó thường được các doanh

nghiệp liên doanh sử dụng cùng thực hiện các công trình nghiên cứu khoa học.

Đám mây cộng đồng hỗ trợ người dùng các tính năng của cả đám mây riêng và

đám mây công cộng. Các đám mây loại này cố gắng để đạt được một mức độ kiểm

soát an ninh và giám sát tương tự như được cung cấp bởi đám mây riêng trong khi

cố gắng đạt được hiệu quả chi phí như được cung cấp bởi đám mây công cộng.

Vì tính mở tự nhiên, đám mây cộng đồng rất phức tạp. Tính bảo mật và

thống nhất vừa là một thế mạnh vừa là một điểm yếu, mang sự thách thức về tính

toán. Dù là với đám mây riêng yếu tố chính sách công ty là rất lớn nhưng ta chỉ

có thể hình dung ra vai trò của chính sách công ty là quan trọng thế nào khi tham

gia vào đám mây cộng đồng được mua và sử dụng bởi nhiều công ty cùng một

lúc.

Đám mây lai (Hybrid Cloud): Đám mây lai thường là sự kết hợp những

mặt mạnh của đám mây riêng và đám mây công cộng… Điểm yếu của cái này thì

sẽ có điểm mạnh bù lại. Đa số các doanh nghiệp đều lựa chọn mô hình triển khai

điện toán đám mây có lợi cho mình nhất.

Với mô hình này, các tổ chức, doanh nghiệp sẽ sử dụng đám mây công cộng

để xử lý, giải quyết các chức năng nghiệp vụ và các dữ liệu ít quan trọng. Đồng

thời, tổ chức, doanh nghiệp sẽ giữ lại các chức năng nghiệp vụ và dữ liệu quan

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

trọng trong tầm kiểm soát bằng cách sử dụng đám mây riêng. Tổ chức, doanh

13

nghiệp sẽ hưởng lợi từ hai thứ: quản lý được tính bảo mật với đám mây riêng; rẻ,

tiện, linh động và có khả năng mở rộng với đám mây công cộng, một dịch vụ đơn

lẻ nhưng bao gồm cả hai loại đám mây.

Các mô hình triển khai khác: Ngoài các mô hình đám mây riêng, đám

mây công cộng, đám mây cộng đồng và đám mây lai là điển hình thì điện toán

đám mây còn có một số loại mô hình triển khai khác như:

Đám mây phân tán (Distributed Cloud): Điện toán đám mây cũng có thể

được cung cấp bởi một tập các máy phân tán chạy ở các vị trí khác nhau nhưng

vẫn kết nối tới một mạng hoặc một trung tâm dịch vụ. Ví dụ các nền tảng máy

phân tán như BONIC, Folding@Home.

Đám mây liên kết (Intercloud): Là một liên kết có quy mô toàn cầu “cloud

of clouds” và một phần mở rộng dựa trên mạng Internet. Đám mây liên kết tập

trung vào khả năng tương tác trực tiếp giữa nhà cung cấp dịch vụ đám mây công

cộng hơn là giữa nhà cung cấp và người sử dụng (như trường hợp đám mây lai và

đa đám mây).

Đa đám mây (Multicloud): Là việc sử dụng nhiều dịch vụ điện toán đám

mây trong một kiến trúc không đồng nhất để giảm sự phụ thuộc vào một nhà cung

cấp duy nhất, làm tăng tính linh hoạt thông qua việc chọn, giảm các nguy cơ…

Nó khác với đám mây lai trong đó đề cập đến nhiều dịch vụ đám mây thay vì

nhiều mô hình triển khai (công cộng, riêng, kế thừa).

Như vậy, tùy theo nhu cầu cụ thể mà các tổ chức, doanh nghiệp có thể chọn

để triển khai các ứng dụng trên mô hình nào cho phù hợp. Mỗi mô hình đám mây

đều có điểm mạnh và yếu của nó. Các doanh nghiệp phải cân nhắc đối với các mô

hình mà họ chọn. Và họ có thể sử dụng nhiều mô hình để giải quyết các vấn đề

khác nhau. Theo Ziff David B2B, phần lớn các công ty dùng nhiều hơn một loại

đám mây: 29% chỉ dùng đám mây công cộng, 7% chỉ dùng đám mây riêng, 58%

sử dụng đám mây lai (2014). Nhu cầu về một ứng dụng có tính tạm thời có thể

triển khai trên đám mây công cộng bởi vì nó giúp tránh việc phải mua thêm thiết

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

bị để giải quyết một nhu cầu tạm thời. Tương tự, nhu cầu về một ứng dụng thường

14

trú hoặc một ứng dụng có những yêu cầu cụ thể về chất lượng dịch vụ hay vị trí

của dữ liệu thì nên triển khai trên đám mây riêng hoặc đám mây lai.

1.5 Phân tích ưu nhược điểm của điện toán đám mây

1.5.1 Ưu điểm

Người sử dụng có thể được hưởng những lợi ích khác nhau khi sử dụng các

mô hình đám mây khác nhau. Tuy nhiên có một số lợi ích nổi bật sau đây đã góp

phần giúp điện toán đám mây trở thành mô hình điện toán được áp dụng rộng rãi

trên toàn thế giới.

- Tốc độ xử lý nhanh, cung cấp dịch vụ nhanh chóng với giá thành rẻ.

- Chi phí đầu tư cơ sở hạ tầng, máy móc và nhân lực ban đầu của người sử

dụng điện toán đám mây được giảm đến mức thấp nhất.

- Không phụ thuộc vào thiết bị và vị trí địa lý, cho phép người sử dụng truy

cập hệ thống thông qua trình duyệt web ở bất kỳ đâu, trên bất kỳ thiết bị nào.

- Chia sẻ tài nguyên trên địa bàn rộng lớn.

- Độ tin cậy cao, không chỉ phù hợp cho các ứng dụng thông thường, điện

toán đám mây còn phù hợp với các yêu cầu cao và liên tục của các công ty kinh

doanh và các trung tâm nghiên cứu khoa học.

- Khả năng mở rộng mềm dẻo, giúp cải thiện chất lượng dịch vụ trên đám

mây.

- Khả năng bảo mật được cải thiện do sự tập trung về dữ liệu.

- Khả năng bảo trì dễ dàng: các ứng dụng trên điện toán đám mây dễ sửa

chữa và cải thiện tính năng vì chúng không được cài đặt cố định trên một máy tính

nào.

- Tài nguyên sử dụng của điện toán đám mây luôn được quản lý và thống

kê trên từng khách hàng và ứng dụng theo thời gian cụ thể, giúp cho việc định giá

mỗi dịch vụ do điện toán đám mây cung cấp để người sử dụng lựa chọn cho phù

hợp.

1.5.2 Một số tồn tại của điện toán đám mây

- Tính sẵn dùng: Trong môi trường chung của điện toán đám mây, các ứng

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

dụng thường cạnh tranh về tài nguyên mạng như: thời gian xử lý, khả năng chia

15

tải… Nếu hệ thống cơ sở hạ tầng của nhà cung cấp dịch vụ không hoàn thiện thì

việc tắc nghẽn trong hệ thống hoàn toàn có thể xảy ra. Khi đó, liệu các dịch vụ

đám mây có bị “treo” bất ngờ, khiến cho người dùng không thể truy cập các dịch

vụ và dữ liệu của mình trong những khoảng thời gian nào đó khiến ảnh hưởng đến

công việc.

- Tính riêng tư: Các thông tin người dùng và dữ liệu được chứa trên điện

toán đám mây có đảm bảo được riêng tư, và liệu các thông tin đó có bị sử dụng vì

một mục đích nào khác.

- Mất dữ liệu: Một vài dịch vụ lưu trữ dữ liệu trực tuyến trên đám mây bất

ngờ ngừng hoạt động hoặc không tiếp tục cung cấp dịch vụ, khiến cho người dùng

phải sao lưu dữ liệu của họ từ đám mây về máy tính cá nhân. Điều này sẽ mất

nhiều thời gian. Thậm chí một vài trường hợp, vì một lý do nào đó, dữ liệu người

dùng bị mất và không thể phục hồi được.

- Tính di động của dữ liệu và quyền sở hữu: Một câu hỏi đặt ra, liệu người

dùng có thể chia sẻ dữ liệu từ dịch vụ đám mây này sang dịch vụ của đám mây

khác? Hoặc trong trường hợp không muốn tiếp tục sử dụng dịch vụ cung cấp từ

đám mây, liệu người dùng có thể sao lưu toàn bộ dữ liệu của họ từ đám mây hay

không. Và làm cách nào để người dùng có thể chắc chắn rằng các dịch vụ đám

mây sẽ không hủy toàn bộ dữ liệu của họ trong trường hợp dịch vụ ngừng hoạt

động.

- Khả năng bảo mật: Vấn đề tập trung dữ liệu trên các đám mây là cách thức

hiệu quả để tăng cường bảo mật, nhưng mặt khác cũng lại chính là mối lo của

người sử dụng dịch vụ của điện toán đám mây. Bởi lẽ một khi các đám mây bị tấn

công hoặc đột nhập, toàn bộ dữ liệu sẽ bị chiếm dụng. Tuy nhiên, đây không thực

sự là vấn đề của riêng điện toán đám mây, bởi lẽ tấn công đánh cắp dữ liệu là vấn

đề gặp phải trên bất kỳ môi trường nào, ngay cả trên các máy tính cá nhân.

Ở nước ta, việc triển khai điện toán đám mây vẫn đối mặt với nhiều thách

thức như: cơ sở hạ tầng chưa đồng bộ, bảo mật thông tin, chi phí đầu tư cho hạ

tầng đám mây cao trong khi quy mô thị trường còn nhỏ và các nhà cung cấp dịch

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

vụ trong nước khó cạnh tranh với các nhà cung cấp dịch vụ toàn cầu, khả năng

16

liên kết giữa các nhà cung cấp dịch vụ đám mây, lien kết hạ tầng với ứng dụng

còn yếu… Tuy nhiên, điện toán đám mây với những lợi ích đã thấy rõ vẫn sẽ sớm

trở nên phổ biến và là xu thế tất yếu của công nghệ tương lai.

1.6 Một số nhà cung cấp dịch vụ điện toán đám mây

1.6.1 Trên thế giới

Trên thế giới hiện có khoảng hơn 200 nhà cung cấp dịch vụ điện toán đám

mây [6, 19], mỗi nhà cung cấp thường có thế mạnh riêng của mình về từng lĩnh

vực của điện toán đám mây. Sau đây là một số nhà cung cấp dịch vụ đám mây

tiêu biểu:

Với dịch vụ cơ sở hạ tầng (IaaS): có hai nhà cung cấp nổi tiếng về cả chất

lượng và giá cả là Amazon Web Services của Amazon.com và Microsoft Azure

của Microsoft.

- Amazon: có vị trí nổi bật về điện toán đám mây. Hiện nay, Amazon đã

cung cấp không gian máy tính ảo với dịch vụ Amazon Workspaces, qua đó, người

sử dụng có thể thuê một máy tính ảo chạy trên Amazon Web Services. Amazon

khiến mọi người ngạc nhiên khi một nhà bán lẻ trực tuyến lại có thể tạo ra nhiều

sự thay đổi trong ngành công nghiệp công nghệ thông tin và trong cuộc sống hàng

ngày đến vậy.

- Microsoft: cũng đang là một doanh nghiệp lớn về điện toán đám mây với

Azure. Microsoft cũng mới mở rộng Azure vào thị trường IaaS, và thậm chí còn

cho phép người dùng chạy Linux trên đám mây của mình với mức giá hứa hẹn sẽ

thấp hơn Amazon. Bên cạnh đó, Microsoft cũng cung cấp rất nhiều các ứng dụng

doanh nghiệp trên đám mây của mình từ cơ sở dữ liệu SQL Server đến Microsoft

Office 365.

Với dịch vụ lưu trữ (Storage): Google Drive của Google và Box là hai

nhà cung cấp tiêu biểu:

- Google: là gã khổng lồ công nghệ được sinh ra từ đám mây. Hiện tại

Google đã tăng mức lưu trữ và kết hợp với các công cụ trước đây như Google

Docs để thuận tiện cho người sử dụng. Google Drive tương thích với các hệ điều

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

hành trên máy tính cũng như trên điện thoại thông minh.

17

- Box: cung cấp 10 GB dung lượng lưu trữ miễn phí, và dịch vụ chia sẻ file

giúp nhiều người có thể làm việc cùng nhau trên các tài liệu.

Với dịch vụ Desktop (DaaS): hai nhà cung cấp nổi tiếng với dịch vụ này

là Citrix và Vmware.

- Vmware: là một trong những đối thủ lớn nhất trong thị trường điện toán

đám mây, chuyên cung cấp phần mềm vCloud để xây dựng đám mây. Vmware

gần đây là thay đổi chiến lược khi cung bố kế hoạch ra mắt đám mây công cộng

của riêng mình. Đây là một sự lựa chọn thú vị vì hiện có khoảng 200 nhà cung

cấp dịch vụ điện toán đám mây được xây dựng trên nền tảng vCloud và giờ đây

Vmware sẽ phải cạnh tranh với họ.

- Citrix: cũng sản xuất phần mềm dành cho các đám mây để cạnh tranh với

hai đối thủ chính là Vmware và OpenStack. Để cạnh tranh với OpenStack, công

ty đã cho phép quỹ Apache, một tổ chức phi lợi nhuận quản lý nhiều dự án mã

nguồn mở phổ biến, sử dụng phần mềm CloudStack của mình. Động thái này cũng

cho phép Citrix bán nhiều hơn các phần mềm trung tâm dữ liệu khác của mình để

cạnh tranh với Vmware.

Với dịch vụ phần mềm (SaaS): tiêu biểu là Salesforce.com và Insightly.

- Salesforce.com:Salesforce.com đã chứng minh rằng thế giới muốn mua

phần mềm-như-một-dịch vụ. Trong năm 2012, công ty đã mở rộng một loạt các

lĩnh vực mới. Salesforce.com đã chi hơn 1 tỷ đô la Mỹ để mua lại Radian6 và

Buddy Media Cloud Marketing. Bên cạnh đó, Salesforce.com cũng được biết đến

như là một trong những đám mây PaaS phổ biến nhất để chạy các ứng dụng của

riêng bạn. Salesforce.com được biết đến như là một trong những đám mây PaaS

phổ biến nhất.

- Insightly: cung cấp phần mềm CRM (Customer Relationship

Management) như một dịch vụ được tích hợp với Gmail, Google Apps, Outlook

2013 và Office 365. Insightly phù hợp với các doanh nghiệp vừa và nhỏ, giúp

khách hàng theo dõi các giao dịch của họ.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Với dịch vụ nền tảng (PaaS): tiêu biểu là Red Hat OpenShift và Heroku.

18

- Red Hat OpenShift: cung cấp dịch vụ nền tảng dựa trên nguồn mở, cho

phép các nhà phát triển tùy chỉnh theo ý mình và có thể được dùng thử miễn phí

(1 GB lưu trữ).

- Heroku: Nền tảng này hỗ trợ nhiều ngôn ngữ lập trình, từ Java tới Ruby

Python. Heroku là một trong những nhà cung cấp PaaS sớm nhất, nó cung cấp các

ứng dụng của bên thứ ba cũng như của riêng mình.

Ngoài ra, còn một số nhà cung cấp dịch vụ đám mây nổi tiếng như IBM,

Rackspace (OpenStack)...

1.6.2 Tại Việt Nam

Với trung tâm điện toán đám mây đầu tiên được ra mắt từ nửa cuối năm

2008, Việt Nam trở thành một trong những nước đầu tiên của Asian đưa vào sử

dụng công nghệ này. Cho đến nay, Việt Nam đã xuất hiện thêm nhiều công ty

cung cấp dịch vụ điện toán đám mây, song chủ yếu tập trung vào thị trường nhỏ

như QTSC, VNTT, Prism, Exa, HostVN, MOS, BiakiCRM. Một số nhà cung cấp

như Bkav, FPT, VDC, CMC Telecom NEO,… thì chỉ cung cấp những dịch vụ

riêng lẻ quản lý văn phòng, nhân sự, quan hệ khách hàng…

Nhìn chung, các nhà cung cấp dịch vụ đám mây công cộng tại Việt Nam

vẫn còn ở quy mô nhỏ. Một số công ty tích hợp hệ thống (SI) và nhà cung cấp

phần mềm độc lập (ISV) đã có chiến lược đầu tư vào điện toán đám mây, kết hợp

xây dựng đám mây công cộng với triển khai đám mây riêng cho khách hàng.

Trong số này, FIS, SBD, HiPT đang chiếm thị phần lớn ở mảng IaaS; còn Lạc

Việt, MISA, NEO, CT-IN giữ vai trò chủ chốt ở mảng SaaS.

Năm 2014, VTC Digicom sau hai năm nghiên cứu và phát triển đã chính

thức ra mắt dịch vụ điện toán đám mây gồm: Cloud Server (máy chủ ảo), Cloud

Storage (không gian lưu trữ) và Cloud Streaming/CDN.

Năm 2017, Viện Công nghiệp phần mềm và nội dung số Việt Nam triển

khai đề án cung cấp hạ tầng, dịch vụ dùng chung cho cơ quan nhà nước tại địa chỉ

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

số 115 Trần Duy Hưng [3].

19

Kết luận Chương 1

Trong chương 1 của luận văn đã phân tích, tìm hiểu những nội dung cơ bản

về điện toán đám mây, bao gồm khái niệm, lịch sử hình thành và phát triển, vai

trò, kiến trúc mô hình dịch vụ, mô hình triển khai điện toán đám mây, những nhà

cung cấp dịch vụ điện toán đám mây lớn trên thế giới và tại Việt Nam.

Nội dung chương 1 cũng đi sâu nghiên cứu phân tích những ưu điểm, giá

trị to lớn của điện toán đám mây trong việc cung cấp các nhóm dịch vụ hạ tầng,

dịch vụ lưu trữ, desktop, dịch vụ phần mềm và nền tảng [3, 6]. Trên cơ sở nghiên

cứu những hạn chế của điện toán đám mây, nội dung chương 1 phân tích làm rõ

nguy cơ mất an toàn thông tin, cho thấy vị trí tầm quan trọng của việc nghiên cứu

giải pháp bảo mật dữ liệu trong quá trình lưu trữ và truyền nhận qua đám mây.

Đây là cơ sở tiền đề, nền tảng cho triển khai nghiên cứu chuyên sâu về bảo vệ

thông tin trong điện toán đám mây được trình bày tại chương 2.

CHƯƠNG 2: BẢO VỆ THÔNG TIN TRONG ĐIỆN TOÁN ĐÁM MÂY

2.1 Khái niệm an ninh thông tin

Ngày càng có nhiều các công ty cung cấp dịch vụ điện toán đám mây, nhưng

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

bước tiến mới này tiềm ẩn những nguy cơ về an ninh.

20

Theo NIST định nghĩa [14]: An ninh thông tin là sự tiến hành việc duy trì

tính toàn vẹn, bảo mật và sẵn sàng của dữ liệu khi gặp vấn đề từ truy cập độc hại,

lỗi hệ thống…

- Tính toàn vẹn: Thông tin là thực, đầy đủ, đáng tin cậy. Dữ liệu không

được thay đổi không phù hợp cho dù gặp sự cố hoặc các hoạt động độc hại có chủ

đích.

- Bảo mật: Thông tin có thể chỉ được truy cập bởi người được uỷ quyền

hoặc chia sẻ giữa các nhóm được ủy quyền. Phương pháp xác thực, bao gồm cả

xác minh, có thể được áp dụng để bảo vệ dữ liệu tránh khỏi xâm nhập độc hại.

- Sẵn sàng: dữ liệu luôn sẵn sàng và sẵn có sử dụng khi cần theo quyền thao

tác cho đối tượng đã được ủy quyền.

Theo ISO/IEC 27000, 2009 định nghĩa [10]: An ninh thông tin là sự giữ

gìn tính bảo mật, toàn vẹn và sẵn sàng của thông tin và các thuộc tính khác như

tính xác thực, trách nhiệm, không chối bỏ và tin cậy.

Theo CNSS, 2010 định nghĩa [6]: An ninh thông tin là sự bảo vệ thông tin

và hệ thống thông tin khỏi việc truy cập trái phép, sử dụng, tiết lộ, gián đoạn, biến

đổi, hoặc phá hủy để cung cấp bảo mật, tính toàn vẹn và tính sẵn sàng.

Theo Venter và Eloff, 2003 [6]: An ninh thông tin là sự bảo vệ thông tin và

giảm thiểu những nguy cơ lộ thông tin cho các bên trái phép.

2.2 Một số tiêu chuẩn về an ninh thông tin

Ban kỹ thuật tiêu chuẩn quốc tế JTC1/SC 27 “IT Security Techniques” do

hai tổ chức là Cơ qua tiêu chuẩn hóa quốc tế ISO (International Organization for

Standardization) và Ủy bản kỹ thuật điện quốc tế IEC (International

Electrotechnical Commission) cộng tác thành lập.

Ban kỹ thuật này đã công bố hơn 130 tiêu chuẩn quốc tế về lĩnh vực an ninh

thông tin. Những tiêu chuẩn quốc tế được sự trợ giúp xây dựng, đóng góp ý kiến

của nhiều chuyên gia, các hãng bảo mật và các tổ chức tiêu chuẩn hóa trên thế

giới.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

2.2.1 Tiêu chuẩn về hệ thống quản lý an ninh

21

Hiện nay, trên thế giới đang tồn tại một họ các tiêu chuẩn hệ thống quản lý

an ninh thuộc bộ ISO 27000. Bộ tiêu chuẩn ISO 27000 về hệ thống quản lý an

ninh thông tin ISMS (Information Security Management System) được xây dựng

để có thể áp dụng cho mọi tổ chức, bất kể loại hình, kích cỡ hay môi trường kinh

doanh của tổ chức đó. Người sử dụng là những chuyên gia, quản lý kinh doanh có

liên quan đến các hoạt động quản lý hệ thống an ninh.

Để có thể đạt được các chỉ tiêu an ninh có trong bộ ISO 27000 là khá khó

khăn và rất tốn kém. Số lượng chứng chỉ chứng nhận đạt sự phù hợp với ISO/IEC

27001 trên toàn thế giới mới chỉ lên đến con số 7940.

Một bộ tiêu chuẩn về lĩnh vực quản lý an ninh cũng đáng được nhắc tới đó

là bộ ISO/IEC 31000 về quản lý rủi ro.

2.2.2 Tiêu chuẩn an ninh thông tin về điện toán đám mây

Tổ chức ISO công bố 04 tiêu chuẩn liên quan đến điện toán đám mây là:

ISO/IEC 17203:2011 quy định về định dạng mã hóa mở OVF, ISO/IEC

17826:2012 về giao diện quản lý dữ liệu đám mây CDMI, ISO/IEC 17963:2013

về quản lý dịch vụ web, cuối cùng là ISO/IEC TR 30102:2012 về thủ tục kỹ thuật

cho DAPS (Nền tảng và dịch vụ ứng dụng phân tán). Ngoài ra tiêu chuẩn ISO/IEC

27017 đưa ra các nguyên tắc kiểm soát an ninh thông tin cho dịch vụ điện toán

đám mây.

Tuy nhiên, các tiêu chuẩn điện toán đám mây “riêng” vẫn đang phát triển

mạnh mẽ, Viện Tiêu chuẩn và Công nghệ Quốc gia Mỹ (NIST) đã đưa ra nguyên

tắc phân loại chuẩn điện toán đám mây, đồng thời theo đó là hàng loạt tiêu chuẩn

điện toán đám mây ra đời (công bố bởi NIST, IETF, ITU-T…), được thế giới công

nhận và áp dụng. Cụ thể:

- Về xác thực và ủy quyền: RFC 5246, RFC 3820, RFC 5280, X.509

(ISO/IEC 9594-8), RFC 5849, OpenID, XACML (eXtensible Access Control

Markup Language), SAML (Security Assertion Markup Language), FIPS 181,

FIPS 190, FIPS 196…

- Về tính bí mật: RFC 5246, KMIP (Key Management Interoperability

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Protocol), XML, FIPS 140-2, FIPS 185, FIPS 197, FIPS 188…

22

- Về tính toàn vẹn: XML, FIPS 180-3, FIPS 186-3, FIPS 198-1,…

- Về quản lý nhận diện: SPML (Service Provisioning Markup Language),

X.idmcc, SAML, OpenID, FIPS 201-1,…

- Về thủ tục an ninh: NIST SP 800-126, NIST SP 800-61, X.1500, X.1520,

X.1521, PCI, FIPS 191…

- Về quản lý chính sách: XACML, FIPS 199, FIPS 200,…

- Về tính tương hợp: OCCI (Open Cloud Computing Interface), CDMI,

IEEE P2301, IEEE P2302…

- Về tính khả chuyển: CDMI, OVF (Open Virtualization Format), IEEE

P2301…

2.2.3 Tiêu chuẩn an ninh thông tin về dữ liệu

Điểm mấu chốt trong an ninh thông tin chính là dữ liệu, có nhiều bộ tiêu

chuẩn về an ninh dữ liệu, đầu tiên cần kể đến là bộ tiêu chuẩn ISO 8000 về Chất

lượng dữ liệu. Bộ tiêu chuẩn này đưa ra các thủ tục về chất lượng dữ liệu, các đặc

tính cần kiểm tra chất lượng, đồng thời đưa ra hàng loạt các yêu cầu về thu nhận,

biểu diễn, phương pháp đo và kiểm tra chất lượng dữ liệu.

Hiện nay bộ tiêu chuẩn ISO 8000 được chia thành 04 mảng:

Phần 1 đến phần 99: Chất lượng dữ liệu chung;

Phần 100 đến phần 199: Chất lượng dữ liệu gốc;

Phần 200 đến phần 299: Chất lượng dữ liệu giao dịch;

Phần 300 đến phần 399: Chất lượng dữ liệu sản phẩm.

Ngoài ra là các tiêu chuẩn về kiến trúc dữ liệu cũng được xây dựng như:

- ISIS-MTT: Đặc tả tính tương hợp chữ ký công nghiệp (MailTrusT): đưa

ra cách chứng thực khóa công khai, chứng thực thuộc tính và thu hồi chứng thực,

thiết lập và gửi yêu cầu đến cơ quan chứng thực và phản hồi, thiết lập thông điệp

mã hóa và chữ ký.

- Phương pháp mã hóa không đối xứng RSA, mã hóa đối xứng AES, thuật

toán hàm băm SHA 256, quản lý khóa XML V2.

- Các bộ tiêu chuẩn ISO 7811, ISO 7816 về thẻ nhận dạng, thẻ thông minh

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

tiếp xúc và không tiếp xúc, thẻ từ và thẻ mạch tích hợp,…

23

2.2.4 Tiêu chuẩn về đánh giá an ninh thông tin

Tiêu chuẩn đánh giá an ninh thông tin chung là CC (Common Criteria) đưa

ra những tiêu chí đánh giá an ninh chung cho sản phẩm hoặc hệ thống thông tin.

Hiện nay, CC đã được chuyển thành các tiêu chuẩn quốc tế là bộ tiêu chuẩn

ISO/IEC 15408 và tiêu chuẩn ISO/IEC 18045. Trong đó, ISO/IEC 18045:2008

quy định các hành động tối thiểu được thực hiện bởi chuyên gia đánh giá khi thực

hiện đánh giá theo ISO/IEC 15408, sử dụng các chỉ tiêu và bằng chứng để đánh

giá như quy định trong ISO/IEC 15408. Tiêu chuẩn này không quy định các hành

động đảm bảo đánh giá từng thành phần mà chưa có chấp thuận đánh giá chung.

Đây được xem là bộ các tiêu chí đánh giá chung nhất cho các sản phẩm,

thiết bị và hệ thống công nghệ thông tin.

Hình 2.1: Quá trình hình thành cộng đồng CC (Common Criteria)

Ngoài ra đối với hệ thống ISMS, chúng ta có ISO/IEC 27007:2011 đưa ra

các nguyên tắc đánh giá hệ thống an ninh thông tin, cũng là tiêu chuẩn được sử

dụng để đánh giá an ninh thông tin cho các hệ thống thông tin thông thường, kể

cả các hệ thống không phải ISMS.

2.3 Phân loại về an ninh thông tin trong điện toán đám mây

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

2.3.1 Theo nhóm vấn đề

24

Các vấn đề an ninh liên quan đến điện toán đám mây được chia thành 5 loại

chính: các tiêu chuẩn an ninh, mạng, kiểm soát truy cập, hạ tầng đám mây và dữ

liệu [18].

2.3.1.1 Nhóm vấn đề về các tiêu chuẩn an ninh

Các tiêu chuẩn cần thiết để có biện pháp phòng ngừa, ngăn chặn các cuộc

tấn công bao gồm các thỏa thuận mức dịch vụ, kiểm tra quản lý và các thỏa thuận

khác giữa người sử dụng, nhà cung cấp dịch vụ và các bên liên quan khác.

Các vấn đề an ninh thuộc nhóm này gồm vấn đề thiếu tiêu chuẩn an ninh,

thiếu kiểm tra quản lý, thiếu khía cạnh pháp lý, vấn đề về sự tin cậy.

2.3.1.2 Nhóm vấn đề về mạng

Liên quan đến các cuộc tấn công mạng như kết nối sẵn sàng (Connection

Availability), từ chối dịch vụ (DoS), tấn công lũ lụt (flooding attack), các lỗ hổng

giao thức Internet.v.v.

Các vấn đề an ninh của nhóm mạng gồm việc cài đặt các tường lửa cho

mạng, các cấu hình an ninh mạng, các lỗ hổng giao thức Internet và tính phụ thuộc

vào Internet.

2.3.1.3 Nhóm vấn đề về kiểm soát truy cập

Là một nhóm hướng người dùng, bao gồm các vấn đề nhận diện, xác thực

và cấp phép. Các vấn đề an ninh của kiểm soát truy cập gồm cướp tài khoản và

dịch vụ, vấn đề độc hại từ nội bộ, cơ chế xác thực, quyền truy cập và an ninh trình

duyệt.

2.3.1.4 Nhóm vấn đề về hạ tầng đám mây

Gồm các vấn đề an ninh, các cuộc tấn công tới SaaS, PaaS, IaaS và liên

quan đến môi trường ảo hóa. Một số vấn đề an ninh của nhóm này gồm giao diện

API thiếu an toàn, chất lượng dịch vụ, lỗi công nghệ chia sẻ, độ bền của nhà cung

cấp, cấu hình an ninh sai, kiến trúc đa thuê, vị trí máy chủ và sao lưu.

2.3.1.5 Nhóm vấn đề về dữ liệu

Gồm các vấn đề liên quan đến an ninh dữ liệu như dự phòng dữ liệu, mất

và rò rỉ dữ liệu, vị trí dữ liệu, phục hồi dữ liệu, sự riêng biệt của dữ liệu, tính sẵn

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

sàng của dữ liệu, bảo vệ dữ liệu…

25

2.3.2 Các nguy cơ hàng đầu về an ninh

Các nguy cơ an ninh có thể thay đổi tùy theo các mô hình dịch vụ hay các

mô hình triển khai đám mây. Dưới đây là một số nguy cơ hàng đầu về an ninh

trong điện toán đám mây được khảo sát vào cuối năm 2013 bởi CSA [25], xét theo

các mô hình dịch vụ của đám mây.

2.3.2.1 Nguy cơ vi phạm dữ liệu

Việc lấy cắp dữ liệu bí mật của một công ty, tổ chức luôn là một nguy cơ

đối với bất kỳ cơ sở hạ tầng công nghệ thông tin nào, nhưng với điện toán đám

mây thì nguy cơ này cao hơn. Người dùng có thể sử dụng biện pháp mã hóa để

giảm thiểu nguy cơ vi phạm dữ liệu, tuy nhiên khóa mã hóa cần phải được giữ cẩn

thận. Người dùng cũng có thể chọn giải pháp sao lưu (sao lưu offline) phòng

trường hợp mất dữ liệu, nhưng vấn đề này đồng thời cũng làm tăng nguy cơ tiếp

xúc với việc vi phạm dữ liệu.

2.3.2.2 Nguy cơ mất dữ liệu

Với cả người tiêu dùng và doanh nghiệp thì mất những dữ liệu quan trọng

là nguy cơ nghiêm trọng. Dữ liệu lưu trữ trên đám mây có thể bị mất do kẻ tấn

công lấy cắp hoặc một vài nguyên nhân khác (bị xóa tình cờ, mất chìa khóa mã

hóa dữ liệu hoặc thảm họa động đất, hỏa hoạn…).

2.3.2.3 Cướp tài khoản hoặc dịch vụ vận chuyển

Cướp tài khoản và dịch vụ cũng không phải là nguy cơ mới. Phương pháp

tấn công như lừa đảo, gian lận, các phần mềm khai thác… Việc sử dụng lại mật

khẩu có thể làm tăng nguy cơ này, nếu kẻ tấn công được quyền truy cập vào thông

tin của người dùng, họ có thể can thiệp vào các hoạt động, thao tác dữ liệu, giao

dịch, trả về các thông tin giả mạo, chuyển hướng truy cập đến các trang độc hại.

Với các thông tin bị đánh cắp, kẻ tấn công có thể thường xuyên truy cập vào các

khu vực quan trọng của dịch vụ điện toán đám mây, đe dọa tính bảo mật, toàn vẹn

và tính sẵn sàng của các dịch vụ này. Các tổ chức cần phải nhận thức được các kỹ

thuật đó cũng như thực hiện các chiến lược bảo vệ theo chiều sâu để hạn chế thiệt

hại. Các tổ chức cũng nên hạn chế việc chia sẻ thông tin tài khoản giữa các người

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

dùng và sử dụng các kỹ thuật xác thực mạnh mẽ nếu có thể.

26

2.3.2.4 Nguy cơ giao diện và các API không an toàn

Nhà cung cấp dịch vụ điện toán đám mây cung cấp một tập hợp các giao

diện hay các API để người dùng quản lý, tương tác với dịch vụ đám mây của họ

(dự phòng, quản lý tài nguyên…) trong khi tính bảo mật, tính sẵn dùng của điện

toán đám mây nói chung lại phụ thuộc vào sự an toàn của các API cơ bản. Nếu cơ

chế kiểm soát truy cập và chứng thực không được thiết kế tốt thì rất dễ gặp các

truy cập trái phép, độc hại. Ví dụ như các truy cập nặc danh, sử dụng lại mật

khẩu…Nguy cơ này tồn tại trên cả ba mô hình dịch vụ của điện toán đám mây.

Để giảm thiểu nguy cơ này, cần phân tích mô hình an ninh của các giao diện nhà

cung cấp dịch vụ, đảm bảo cơ chế xác thực và điều khiển truy cập mạnh mẽ kết

hợp với mã hóa trong quá trình truyền và cần hiểu được liên kết phụ thuộc với các

API.

2.3.2.5 Tấn công từ chối dịch vụ (DoS)

Tấn công từ chối dịch vụ gây ra tình trạng quá tải của cơ sở hạ tầng, chúng

sử dụng lượng lớn tài nguyên hệ thống và không cho phép khách hàng sử dụng

dịch vụ. Có nhiều dạng của tấn công DoS có thể ngăn cản việc sử dụng điện toán

đám mây. Ví dụ, kẻ tấn công có thể khởi động cuộc tấn công DoS trên lớp ứng

dụng bằng cách khai thác lỗ hổng bảo mật trong các máy chủ web, cơ sở dữ liệu

hoặc các nguồn tài nguyên điện toán đám mây khác để lấp đầy các ứng dụng khác

với tải trọng rất nhỏ. Trải qua một cuộc tấn công từ chối dịch vụ cũng giống như

tắc nghẽn giao thông trong giờ cao điểm: không có cách nào để đến được đích và

không thể làm gì khác ngoại trừ ngồi và chờ đợi. Với người dùng, ngừng dịch vụ

không chỉ chống lại bạn, mà còn buộc bạn phải cân nhắc lại việc chuyển dữ liệu

quan trọng lên đám mây để giảm chi phí cơ sở hạ tầng.

2.2.2.6 Nguy cơ từ chính người dùng nội bộ

Hầu hết các tổ chức đã quen với các mối đe dọa từ bên trong (nội bộ), có

thể là nhà cung cấp đám mây, khách hàng sử dụng đám mây hay bên thứ ba. Nguy

cơ từ người dùng nội bộ thường gây ra thiệt hại lớn hơn so với các cuộc tấn công

khác. Theo CSA, ngay cả khi đã thực hiện mã hóa, nếu không giữ bí mật khóa thì

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

vẫn dễ bị tấn công từ người dùng nội bộ.

27

2.2.2.7 Nguy cơ lạm dụng dịch vụ điện toán đám mây

Một trong những lợi ích lớn nhất của điện toán đám mây là cho phép cả các

tổ chức dù nhỏ vẫn có thể sử dụng nguồn điện toán lớn. Bên cạnh đó là quá trình

đăng ký thuận lợi (chỉ cần có thẻ tín dụng hợp lệ có thể đăng ký và sử dụng ngay).

Một số nhà cung cấp dịch vụ điện toán đám mây còn cho phép dùng thử dịch vụ

miễn phí. Nếu kẻ tấn công lợi dụng được thông tin ẩn sau quá trình đăng ký và sử

dụng, người dùng có thể gặp các vấn đề về thư rác, botnet, trojan, phần mềm khai

thác… Nguy cơ này thường tồn tại ở mô hình PaaS và IaaS của điện toán đám

mây. Vấn đề này đòi hỏi phải chặt chẽ trong việc xử lý đăng ký ban đầu và quá

trình xác nhận; tăng cường phối hợp giám sát gian lận thẻ tín dụng; xem xét toàn

bộ giao thông mạng của khách hàng; giám sát danh sách đen trong mạng của mình.

2.2.2.8 Nguy cơ do thiếu hiểu biết về an ninh thông tin

Để tiết kiệm chi phí và hưởng những lợi ích khác của điện toán đám mây,

một số tổ chức vội vàng sử dụng dịch vụ này mà chưa có hiểu biết đầy đủ về các

vấn đề an ninh khi sử dụng trong mô hình này. Các tổ chức cần phải đánh giá một

cách toàn diện, xem xét các hệ thống nội bộ của mình, chọn nhà cung cấp đám

mây đủ tiềm năng, đào tạo nhóm người dùng quen với đám mây để hiểu đầy đủ

các rủi ro trước khi chuyển sang mô hình mới này.

2.2.2.9 Nguy cơ từ việc chia sẻ công nghệ

Nhà cung cấp IaaS cung cấp dịch vụ theo khả năng mở rộng bằng cách chia

sẻ cơ sở hạ tầng mặc dù các thành phần như CPU, GPU không được thiết kế để

cung cấp các kiến trúc đa thuê và cơ chế cô lập mạnh mẽ. Vấn đề chia sẻ công

nghệ này tiềm ẩn nhiều nguy cơ an ninh. Tổ chức CSA khuyến cáo sử dụng các

biện pháp bảo mật sâu cho các ứng dụng, mạng, tính toán, lưu trữ, giám sát và

thực thi bảo mật của người dùng.

Phần tiếp theo của luận văn tập trung đi sâu về vấn đề bảo vệ dữ liệu trong

điện toán đám mây.

2.4 An ninh dữ liệu trong điện toán đám mây

Ngoại trừ đám mây riêng, với đám mây công cộng, đám mây lai… thì việc

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

giao quyền kiểm soát cho một nhà cung cấp dịch vụ đám mây bên ngoài rõ ràng

28

là một nguy cơ đối với an ninh dữ liệu. Người dùng đám mây phải dựa trên các

nhà cung cấp dịch vụ đám mây để thực hiện các tính năng bảo vệ dữ liệu cá nhân

trên đám mây.

Một trong các đặc tính của điện toán đám mây là tài nguyên được chia sẻ,

nghĩa là các tài nguyên bao gồm khả năng tính toán, lưu trữ, băng thông được ảo

hóa và chia sẻ với nhiều người dùng khác. Vì thế, việc bảo vệ dữ liệu bị giới hạn

trên đám mây sẽ dẫn đến lo ngại vấn đề bảo mật so với công nghệ thông tin truyền

thống.

Những vấn đề đe dọa đến bảo vệ dữ liệu cũng có thể thay đổi tùy theo các

mức dịch vụ đám mây. Các tổ chức và cá nhân có thể có nhiều quyền kiểm soát

an ninh với dữ liệu của mình ở mức IaaS nhiều hơn so với các mức PaaS và SaaS.

Với người sử dụng IaaS, họ sẽ được quyền sử dụng các máy ảo và có thể thiết lập

chính sách điều kiển bảo mật cho chính dữ liệu của họ, nghĩa là dữ liệu trong máy

ảo có thể được bảo vệ bởi chính người sử dụng đám mây. Ở mức SaaS, người sử

dụng có ít hoặc không có quyền kiểm soát cơ sở hạ tầng đám mây, mạng, hệ điều

hành và lưu trữ, họ chỉ dựa vào chính sách bảo mật mà nhà cung cấp dịch vụ thiết

lập.

2.4.1 Một số vấn đề bảo vệ dữ liệu trong điện toán đám mây

Bảo vệ dữ liệu [11, 17] là vấn đề đứng đầu trong danh sách các thách thức

của điện toán đám mây hiện nay. Khả năng bảo mật của nhà cung cấp là chìa khóa

để thiết lập giá trị chiến lược, là xu hướng của điện toán đám mây.

Theo Derek Tumulak, phó chủ tịch quản lý sản phẩm tại Vormetri: Mọi

người đều muốn sử dụng điện toán đám mây do tiết kiệm chi phí và mô hình kinh

doanh mới linh hoạt. Nhưng khi nói đến an ninh đám mây, điều quan trọng là phải

hiểu được mối đe dọa trong trường hợp khác nhau để vận dụng.

Sau đây là một số thách thức phức tạp của an ninh dữ liệu trong điện toán

đám mây:

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

2.4.1.1 Vấn đề bảo mật dữ liệu (data confidentiality)

29

Phương pháp chung để bảo mật dữ liệu là mã hóa, tuy nhiên cần xem xét

chọn chuỗi khóa và thuật toán mã hóa. Khi mã hóa lượng lớn thông tin, cần lưu ý

đến tốc độ xử lý dữ liệu và hiệu suất tính toán.

2.4.1.2 Vị trí dữ liệu (data locatity)

Với mô hình SaaS, người dùng sử dụng phần mềm và công cụ của nhà cung

cấp để xử lý dữ liệu của họ. Khi đó, người sử dụng không biết dữ liệu của mình

được lưu trữ và xử lý ở đâu. Đôi khi đây không phải là vấn đề nghiêm trọng.

Nhưng với một số tổ chức kinh doanh thì vị trí của dữ liệu là rất quan trọng.

Trong một số trường hợp, nhà cung cấp dịch vụ điện toán đám mây phải

thực hiện yêu cầu phải tiết lộ dữ liệu của người dùng hoặc bàn giao thiết bị vật lý

cho bên thứ ba hoặc cơ quan pháp luật. Hoặc ở một số khu vực, việc xử lý, giao

dịch dữ liệu cần phải trả phí. Bên cạnh đó, một số khu vực địa lý cũng thường

xuyên phải chịu các hiểm họa từ môi trường như động đất, lũ lụt…ảnh hưởng đến

sự an toàn dữ liệu. Ví dụ như ở nhiều nước châu Âu, dữ liệu bí mật không được

lưu trữ ở nước khác.

2.4.1.3 Toàn vẹn dữ liệu (data integrity)

Trong hệ thống phân tán, có nhiều cơ sở dữ liệu và ứng dụng cần quản lý.

Ứng dụng SaaS thường sử dụng API dựa trên XML. Việc thiếu kiểm soát tính

toàn vẹn có thể làm dữ liệu bị sai lệch, do đó, các nhà phát triển phải đảm bảo tính

toàn vẹn của dữ liệu không bị tổn hại.

2.4.1.4 Phân tách dữ liệu (data segregation)

Dữ liệu của người sử dụng được chia sẻ trên cùng vị trí lưu trữ vật lý, điều

này dễ dẫn đến xâm nhập dữ liệu. Kẻ tấn công trong một cuộc tấn công đơn lẻ có

thể truy cập vào lượng thông tin bí mật của nhiều tổ chức khách hàng, lấy được

lượng thông tin phong phú. Nếu không có cơ chế cách ly dữ liệu của những người

dùng khác nhau thì khả năng bị xâm phạm dữ liệu là rất cao.

2.4.1.5 Truyền dữ liệu

Với vấn đề truyền dữ liệu, có một số lo ngại chung về an ninh, dữ liệu được

truyền tới đám mây thông qua mạng công cộng (thường là Internet) khi sử dụng

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

đám mây công cộng. Để bảo vệ dữ liệu trên đường truyền, cần thuật toán mã hóa

30

đủ mạnh (mã hóa dữ liệu nhận được ở máy chủ, sau đó giải mã, xử lý rồi lại được

mã hóa trên máy chủ rồi mới gửi đi) và các giao thức sử dụng để truyền dữ liệu

có tính bảo mật cũng như tính toàn vẹn (ví dụ HTTPs, FTPs). Khi dữ liệu được

chuyển giao giữa các nước khác nhau, cũng cần xem xét những vấn đề tuân thủ

các quy định riêng khác nhau, ví dụ thỏa thuận Safe Harbor để truyền dữ liệu giữa

châu Âu và Mỹ [12].

2.4.1.6 Truy cập dữ liệu

Trong điện toán đám mây, chính sách an ninh nên được thiết kế với mục

đích kiểm soát quyền truy cập dữ liệu của các đối tượng sử dụng, nên đảm bảo

rằng dữ liệu chỉ được truy cập bởi người được phân quyền, ngăn chặn truy cập

trái phép. Một số đối tượng dữ liệu nên được trao quyền để xử lý dữ liệu trong

đám mây một cách sẵn sàng. Mặt khác, một số bên khác (vụ trong một số trường

hợp bao gồm cả nhà cung cấp dịch vụ), không nên có quyền truy cập vào dữ liệu

của khách hàng. Tuy nhiên khá khó khăn cho các nhà cung cấp SaaS và PaaS để

thiết lập một cơ chế truy cập đáng tin cậy và hiệu quả, do thiếu công nghệ và chịu

trách nhiệm phát triển bảo mật. Một ví dụ là Google Docs trục trặc riêng tư và lỗi

về kiểm soát truy cập trong năm 2009 [23].

Ngoài ra, như sự bùng nổ của điện toán đám mây trong cuộc sống hàng

ngày, mọi người đang chuyển lượng lớn dữ liệu cá nhân lên đám mây, mà đã tạo

ra bộ dữ liệu khổng lồ mà có thể sẽ được sử dụng cho quảng cáo và phân tích dữ

liệu. Ví dụ, Google về cơ bản là khai thác dữ liệu giá rẻ khi trả về kết quả tìm

kiếm. Bên cạnh đó, Google sử dụng dịch vụ điện toán đám mây của mình để thu

thập và phân tích dữ liệu của khách hàng cho mạng quảng cáo của mình. Trong

trường hợp này, người tiêu dùng chỉ có thể kiểm soát dữ liệu của họ bởi các thỏa

thuận bảo mật, an ninh được quản lý bởi Google.

2.4.1.7 Tuân thủ pháp luật

Luật pháp thường không theo kịp sự phát triển của công nghệ, điện toán

đám mây lại là một mô hình mới trong lĩnh vực công nghệ thông tin, chưa có luật

hay tiêu chuẩn xác định yêu cầu tuân thủ bảo mật trong đám mây. Các quy định

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

hiện hành không phải lúc nào cũng áp dụng đối với việc bảo vệ sự riêng tư trong

31

đám mây. Hơn nữa, đám mây có thể thông qua nhiều khu vực có pháp lý khác

nhau, dữ liệu có thể lưu ở nhiều quốc gia và khó xác định quốc gia nào có thẩm

quyền để điều chỉnh dữ liệu khách hàng.

2.4.1.8 Việc xóa dữ liệu

Dữ liệu lưu trên máy chủ từ xa, người sử dụng không có quyền truy cập vật

lý nên việc xóa dữ liệu cũng có thể là một nguy cơ đối với an ninh dữ liệu. Vấn

đề chính trong việc xóa dữ liệu là làm thế nào để đảm bảo rằng dữ liệu đã hoàn

toàn bị hủy bỏ một cách an toàn. Để đảm bảo tính sẵn sàng cao, các nhà cung cấp

dịch vụ thường tạo các bản sao chép của dữ liệu và chuyển lên đám mây, vì thế

khó để xóa hoàn toàn dữ liệu mà không lưu lại dấu vết nào. Hơn nữa, các nhà

cung cấp dịch vụ có thể chỉ cần làm cho dữ liệu không tiếp cận được với khách

hàng và giữ chúng lại để sử dụng cho mục đích riêng. Do vậy, bên cạnh một lược

đồ xóa dữ liệu an toàn thì cũng cần một cơ chế tin cậy cho việc xóa dữ liệu.

2.4.2 Giải pháp bảo vệ dữ liệu cho điện toán đám mây

Trong phần này, ta sẽ tìm hiểu về giải pháp giảm nhẹ nguy cơ về an ninh

dữ liệu trên đám mây [10] nhằm hạn chế các nguy cơ, hướng tới sự an toàn tốt

nhất khi làm việc trên đám mây. Để hạn chế được các nguy cơ này, các cá nhân,

tổ chức sử dụng đám mây cần thực hiện theo các khuyến nghị sau:

2.4.2.1 Đảm bảo an ninh dữ liệu trên đám mây

Xác định các yêu cầu an ninh của tổ chức và các yêu cầu an ninh đối với

dữ liệu trên đám mây; tiến hành chọn nhà cung cấp điện toán đám mây phù hợp

với yêu cầu của tổ chức; quản lý rủi to liên quan đến việc sử dụng các dịch vụ

điện toán đám mây. Nên chọn nhà cung cấp dịch vụ đám mây có uy tín, có chính

sách hỗ trợ người dùng và chính sách an ninh (như xác thực, phân quyền…hỗ trợ

mã hóa dữ liệu phía server) tốt.

2.4.2.2 Hiểu các mối đe dọa trong đám mây

Đánh giá các mối đe dọa đến tài sản thông tin trong đám mây, các mối đe

dọa đến nhà cung cấp điện toán đám mây bao gồm cả các mối đe dọa vào người

dùng khác trên đám mây để sử dụng hợp lý. Mặt khác, người sử dụng đám mây

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

phải nhận thức được rằng những điểm yếu nhất của an ninh dữ liệu thường đến từ

32

chính người sử dụng chứ không phải chỉ từ phía nhà cung cấp dịch vụ. Khi tham

gia vào môi trường điện toán đám mây, người sử dụng nên thực hiện tốt các biện

pháp an ninh theo thông lệ: đặt và sử dụng mật khẩu, không sử dụng lại mật khẩu

ở các dịch vụ khác nhau cũng như xác thực hai nhân tố để giảm thiểu rủi ro.

2.4.2.3 Mã hóa dữ liệu

Nếu dữ liệu cần phải được giữ bí mật với nhà cung cấp dịch vụ đám mây

thì cần phải thực hiện mã hóa trước khi chuyển dữ liệu lên đám mây và khóa mã

hóa cần được quản lý riêng biệt với nhà cung cấp dịch vụ đám mây (vì nhà cung

cấp dịch vụ có quyền truy cập vào dữ liệu). Xem xét những hạn chế về pháp lý

hoặc những yêu cầu trong việc sử dụng mã hóa ở phạm vi quản lý của các nhà

cung cấp đám mây cụ thể.

2.4.2.4 Đánh giá việc cách ly dữ liệu giữa những người dùng của nhà cung

cấp dịch vụ đám mây

Mã hóa có thể bảo vệ dữ liệu lưu trữ trên đám mây nếu nhà cung cấp dịch

vụ có thể chứng minh khả năng quản lý khóa đảm bảo an ninh. Đánh giá các cơ

chế cách ly dữ liệu của nhà cung cấp dịch vụ điện toán đám mây khi không được

mã hóa.

2.4.2.5 Đánh giá cam kết hủy dữ liệu trên đám mây

Vấn đề an ninh khi xóa dữ liệu thường không khả thi. Chọn thuật toán mã

hóa mạnh có thể được chấp nhận là giải pháp thay thế cho việc xóa an toàn. Người

dùng cũng có thể yêu cầu nhà cung cấp dịch vụ xóa dữ liệu theo các tiêu chuẩn

quy định với từng loại dữ liệu như UK, HMM Information Assurance Standard 5

hoặc tiêu chuẩn NIST Special Publication 800-88 ở Mỹ [14].

2.4.2.6 Xác định các vị trí địa lý, nơi sẽ lưu trữ, xử lý và truyền dữ liệu

Tuân thủ các luật định và quy định về việc sử dụng điện toán đám mây với

từng vị trí địa lý của dữ liệu. Một số rủi ro khác (như môi trường, chính trị, kinh

tế…) cũng sẽ thay đổi theo vị trí địa lý, vì thế cần phải lưu ý tới vị trí của dữ liệu.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

2.4.2.7 Đánh giá hiệu quả giám sát việc bảo vệ dữ liệu

33

Hoạt động truy vết với cá nhân người dùng có thể không khả thi khi không

kết hợp giữa người dùng và nhà cung cấp dịch vụ. Đánh giá năng lực các nhà cung

cấp và tự giác giám sát thông tin cũng là một hình thức bảo vệ trong các đám mây.

2.5 Các thuật toán mã hóa dữ liệu lưu trữ cho điện toán đám mây

Khi nói đến mã hóa dữ liệu, các nhà cung cấp điện toán đám mây vẫn còn

một con đường dài phía trước. Alex Staomos là một nhà nghiên cứu của iSec

Partners năm 2009 đã tuyên bố rằng điện toán đám mây nên được tiếp cận từ góc

độ mật mã.

Các thuật toán mã hóa cần phải đáp ứng một số yêu cầu về tính hiệu quả

trong việc chuyển đổi bản rõ thành bản mã cũng như trong giải mã và bản mã phải

chịu được các cuộc tấn công.

Dưới đây, luận văn sẽ giới thiệu hai thuật toán mã hóa thường sử dụng trong

điện toán đám mây là thuật toán mã hóa RSA và AES. Trong đó, AES là thuật

toán mã hóa cho đến nay được sử dụng phổ biến nhất trong lĩnh vực bảo vệ dữ

liệu điện toán đám mây.

2.5.1 Thuật toán RSA

2.5.1.1 Mô tả thuật toán

Hệ mật RSA được phát minh bởi Ron Rivest, Adi Shamir và Len Adleman

và được Scientific American công bố lần đầu tiên vào năm 1977 [7].

Hệ mật RSA được sử dụng để bảo mật và đảm bảo tính xác thực của dữ

liệu số. Hiện nay RSA được sử dụng trong hệ thống thương mại điện tử, các dịch

vụ web server và web browser. RSA còn được sử dụng để đảm bảo tính xác thực

vào bảo mật của email, đảm bảo an toàn cho các phiên truy cập từ xa và là bộ

phận quan trọng của hệ thống thanh toán thẻ tín dụng. Như vậy ta có thể thấy rằng

RSA thường được sử dụng trong các ứng dụng cần đảm bảo sự an toàn và bảo

mật dữ liệu số cao.

Hệ mật RSA bao gồm bộ . Trong đó:

1. là tập các bản rõ.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

2. là tập các bản ký tự mã.

34

3. là tập các khóa , mỗi khóa gồm hai phần: là khóa công khai

dành cho việc lập mã, còn là khóa bí mật dành cho việc giải mã.

4. Với mỗi bản rõ , thuật toán lập mã cho ta ký tự mã tương ứng

5. Với mỗi ký tự mã thuật toán giải mã cho ta lại ký tự bản rõ :

Hệ mật RSA sử dụng các tính toán trong trong đó là tích của hai số

nguyên tố lớn phân biệt nhau và . Mô tả hình thức của hệ

mật như sau:

Cho trong đó là các số nguyên tố lớn phân biệt nhau sao cho độ

dài của hai số này là gần nhau nhất có thể được.

Đặt: và định nghĩa

- Mã hóa:

- Giải mã:

Trong đó

Các giá trị công khai còn các giá trị được giữ bí mật.

Ta sẽ kiểm xem các phép mã hóa và giải mã có phải là các phép toán nghịch

đảo của nhau hay không?

Vì nên ta có với một số nguyên bất kỳ . Giả

sử có khi đó ta sẽ xét hai trường hợp.

a. Trường hợp . Khi đó ta có:

b. Trường hợp hoặc

Giả sử , khi đó với và

Suy ra: . Do nên

. Bên cạnh đó ta lại có:

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

. Vậy

35

Ví dụ: Alice muốn gửi một thông báo cho Bob, hai bên sẽ thiết lập các tham

số hệ mật.

Giả sử Bob chọn và . Khi đó và

.

Vì nên có thể dùng một số nguyên b khóa công khai có giá

trị không chia hết cho . Anh ta kiểm tra điều kiện bằng thuật

toán Euclidean.

Giả sử Bob chọn , khi đó theo thuật toán Euclidean mở rộng ta có:

Do vậy số mũ mật (khóa bí mật) để giải mã của Bob sẽ là . Bob sẽ

. công bố và

Giả sử Alice muốn gửi bản rõ cho Bob, sẽ tiến hành chuyển bản rõ sang

dạng số, giả sử là . Cô ta sẽ tính:

Rồi gửi bản mã trên kênh truyền. Khi Bob nhận được bản mã ,

anh ta sẽ sử dụng khóa bí mật để tính:

2.5.1.2 Độ an toàn của thuật toán RSA

Hệ mật RSA chỉ được an toàn khi giữ bí mật khóa giải mã và thừa số

nguyên tố (hay giữ bí mật ).

Trường hợp biết được thì Marvin dễ dàng tính được .

Khi đó Marvin sẽ sử dụng thuật toán Euclidean mở rộng để tính .

Khi biết thì toàn bộ hệ thống sẽ bị phá vỡ ngay lập tức. Vì khi biết ,

toàn bộ khóa đều được biết và Marvin sẽ giải mã được và sẽ đọc được nội dung

của bản rõ, Ngoài ra Marvin có thể lập mã trên văn bản khác là cực kỳ nguy hiểm.

Tuy vậy việc phân tích này là bài toán khó trong trường hợp đủ lớn, và độ an

toàn của hệ mật sẽ phụ thuộc vào việc phân tích số nguyên thành tích của hai

thừa số nguyên tố lớn [6, 7].

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

2.5.2 Thuật toán AES

36

Tiêu chuẩn mã hóa tiên tiến AES (Advanced Encryption Standard) là một

thuật toán mã hóa khối (block cipher) được chính phủ Hoa kỳ áp dụng làm tiêu

chuẩn mã hóa và được kỳ vọng áp dụng trên phạm vi thế giới và đã được nghiên

cứu rất kỹ lưỡng. AES được Viện tiêu chuẩn và công nghệ quốc gia Mỹ (NIST)

phát hành ngày 26/11/2001 và được đặc tả trong Tiêu chuẩn xử lý thông tin liên

bang 197 [25] sau một quá trình tiêu chuẩn hóa kéo dài 5 năm.

AES ban đầu được thiết kế bởi hai nhà mật mã học người Bỉ: Joan

Daemen và Vincent Rijmen và sử dụng mạng thay thế-hoán vị. Từ khi được công

bố là một tiêu chuẩn, AES trở thành một trong những thuật toán mã hóa được sử

dụng rộng rãi. Ở Việt Nam, thuật toán AES đã được công bố thành tiêu chuẩn

quốc gia TCVN 7816 năm 2007.

AES cho phép xử lý các khối dữ liệu đầu vào có kích thước 128 bit sử dụng

các khóa có độ dài 128, 192 hoặc 256 bit. AES có thể dễ dàng thực hiện với tốc

độ cao và không yêu cầu bộ nhớ dung lượng lớn.

2.5.2.1 Cơ sở toán học

Hai phép cộng và phép nhân trên trường Galoris là cở sở toán học

của thuật toán AES.

+ Phép cộng: được hiểu là phép XOR trên hai bit tương ứng trong byte và

có ký hiệu là .

Phép cộng bít:

1 1 0

1 0 1

0 1 1

0 0 0

Với phép cộng hai byte: và bằng

. với

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

+ Phép nhân trên trường , ký hiệu là

37

Tương ứng với phép nhân thông thường của hai đa thức đem chia lấy dư

(modulo) cho một đa thức tối giản bậc 8. Trong thuật toán AES, đa thức tối giản

được chọn là hay nếu biểu diễn dưới dạng hexa.

Kết quả nhận được của phép nhân rút gọn theo modulo là một đa thức

có bậc nhỏ hơn nên có thể biểu diễn được dưới dạng 1 byte.

Phép nhân với : Phép nhân đa thức nhị phân với đa thức (hay phần tử

trong được kết quả là:

Kết quả của phép nhân có được bằng cách rút gọn kết quả trên theo

modulo .

Nếu thì kết quả đã ở dạng rút gọn.

Nếu , quá trình rút gọn được thực hiện bằng cách trừ đi đa thức .

Theo đó, phép nhân với (tức là hoặc ) có thể được thực hiện ở

mức byte bằng một phép dịch trái và sau đó thực hiện tiếp phép XOR với giá trị

. Thao tác này được ký hiệu là xtime(). Phép nhân với các luỹ thừa của x có

thể được thực hiện bằng cách áp dụng nhiều lần thao tác xtime(). Kết quả phép

nhân với một giá trị bất kỳ được xác định bằng phép cộng ( ) các kết quả trung

gian này lại với nhau.

Ví dụ: Thực hiện phép nhân

Ta có:

do đó,

+ Đa thức với các hệ số trên trường : Phép nhân của hai đa thức bậc

4: theo modulo được xác định bằng 4 hạng tử

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

. Trong đó:

38

Và còn

Khi là đa thức cố định, thì có thể được viết dưới dạng ma trận như

sau:

2.5.2.2 Các khái niệm, ký hiệu và hàm

+ Một số khái niệm

- Biến đổi Affine: Phép biến đổi bao gồm một phép nhân với một ma trận

sau đó là một phép cộng của một vectơ.

- Block: Một dãy các bit nhị phân tạo thành input, output, trạng thái (state)

và các khóa sử dụng tại các vòng lặp (Round Key) của hệ mã. Độ dài của dãy

(khối) là số lượng các bit mà nó chứa. Các khối cũng có thể được xem là một dãy

các byte.

- Cipher: Thuật toán mã hóa, gồm các phép biến đổi để chuyển bản rõ thành

bản mã sử dụng khóa mã hóa.

- Ciphertext: Bản mã, là dữ liệu đầu ra từ Cipher hoặc đầu vào của Inverse

Cipher.

- Inverse Cipher: Thủ tục giải mã, gồm chuỗi các phép biến dổi chuyển bản

mã thành bản rõ sử dụng Cipher Key.

- Cipher Key: Khóa chính được sử dụng bởi thủ tục mở rộng khóa để tạo ra

một tập hợp các khóa vòng (Round Key); có thể được hình dung như là một mảng

các byte, có bốn hàng và cột.

- Plaintext: Bản rõ, là dữ liệu đầu vào của Cipher hoặc là dữ liệu đầu ra của

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Inverse Cipher.

39

- Round Key: Là các giá trị sinh ra từ khóa chính bằng cách sử dụng thủ tục

sinh khóa. Các khóa này được sử dụng tại các vòng lặp của thuật toán.

- State: Trạng thái, là kết quả mã hóa trung gian, có thể hình dung như một

ma trận hình của các byte, có 4 dòng và cột (mỗi dòng có byte).

- S-box: Một bảng thế phi tuyến được sử dụng trong thủ tục sinh khóa và

trong các biến đổi thay thế các byte để thực hiện các thay thế 1-1 đối với một giá

trị 1 byte.

+ Một số ký hiệu

: Khóa mã hóa (Cipher Key)

: Số lượng các cột (là các word 32 bit) tạo thành một trạng thái (theo tiêu

chuẩn thì )

: Số lượng các word 32 bit (số cột) tạo thành khóa mã hóa ( )

: Số lượng các vòng lặp của thuật toán, là một hàm của và . Số

lượng vòng lặp có thể nhận các giá trị khác nhau phụ thuộc vào độ dài khóa AES-

128 sử dụng 10 vòng ( ), AES-192 sử dụng 12 vòng ( ) và AES-256

sử dụng 14 vòng ( ).

Rcon[]: Mảng word liên tiếp.

: Phép toán XOR

: Phép nhân hai đa thức bậc nhỏ hơn 4 theo modulo .

: Phép nhân trong trường hữu hạn.

+ Các hàm sử dụng trong thuật toán

- AddRoundKey(): Hàm biến đổi được sử dụng trong thuật toán mã hóa và

giải mã trong đó thực hiện phép toán XOR bit giữa một trạng thái trung gian

(State) và một khóa của vòng lặp (Round Key).

- MixColumns(): Hàm biến đổi trong thuật toán mã hóa nhận tất cả các cột

của một trạng thái (State) và trộn với dữ liệu của nó (không phụ thuộc lẫn nhau)

để nhận được một cột mới.

- InvMixColumns(): Hàm biến đổi được sử dụng trong thuật toán giải mã,

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

là hàm ngược của hàm MixColumns().

40

- ShiftRows():Hàm sử dụng trong quá trình mã hóa, xử lý các trạng thái

bằng cách dịch vòng ba hàng cuối của trạng thái với số lần dịch khác nhau.

- InvShiftRows(): Hàm biến đổi trong thuật toán giải mã, là hàm ngược của

hàm ShiftRows().

- SubBytes(): Hàm biến đổi sử dụng trong quá trình mã hóa, xử lý một trạng

thái bằng cách sử dụng một bảng thế phi tuyến các byte (S-box) thao tác trên mỗi

byte một cách độc lập.

- InvSubBytes(): Hàm biến đổi trong thuật toán giải mã, là hàm ngược của

hàm SubBytes().

- RotWord(): Hàm sử dụng trong thủ tục sinh khóa nhận một word 4 byte

và thực hiện một hoán vị vòng.

- SubWord(): Hàm sử dụng trong thủ tục sinh khóa nhận một word đầu vào

4 byte và sử dụng một S-box trên mỗi giá trị 4 byte này để thu được 1 word đầu

ra.

2.5.2.3 Thủ tục mở rộng khóa

Thủ tục mở rộng khóa (KeyExpansion) là quá trình tạo các khóa vòng từ

khóa chính. Từ khóa chính cho trước, thuật toán AES thực hiện một thủ tục

sinh khóa để sinh một dãy các khóa mã hóa. Thủ tục này sinh khóa, mỗi

khóa chứa word, như vậy tổng số word là .

Dãy khóa kết quả là một mảng tuyến tính các word 4 byte được ký hiệu là

trong đó .

2.5.2.4 Thủ tục mã hóa/ giải mã AES

AES chỉ làm việc với các khối dữ liệu đầu vào và đầu ra và trạng thái 128

bit và khóa có độ dài 128, 192 hoặc 256 bit. Các khóa con sử dụng trong các chu

trình được tạo ra bởi quá trình tạo khóa con Rijndael. Mỗi khóa con cũng là một

cột gồm 4 byte. Hầu hết các phép toán trong thuật toán AES đều thực hiện trong

một trường hữu hạn của các byte. Mỗi khối dữ liệu 128 bit đầu vào được chia

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

thành 16 byte, có thể xếp thành 4 cột, mỗi cột 4 phần tử hay là một ma trận

41

của các byte, được gọi là ma trận trạng thái, hay vắn tắt là trạng thái. Trong quá

trình thực hiện thuật toán các toán tử tác động để biến đổi ma trận trạng thái này.

Tại thời điểm bắt đầu mã hóa, đầu vào được sao chép vào mảng trạng thái

sử dụng các quy ước. Sau đó thực hiện theo 3 bước sau:

Bước 1: Khởi động vòng lặp:

Thực hiện phép biến đổi AddRoundKey(): Mỗi cột của trạng thái đầu tiên

lần lượt được kết hợp với một khóa con theo thứ tự từ đầu dãy khóa.

Bước 2: Vòng lặp:

Thực hiện lần lượt các phép biến đổi theo thứ tự sau:

SubBytes(): đây là phép thế (phi tuyến) trong đó mỗi byte trong trạng thái

sẽ được thế bằng một byte khác theo bảng tra (Rijndael S-box).

ShiftRows(): dịch chuyển, các hàng trong trạng thái được dịch vòng theo số

bước khác nhau.

MixColumns(): quá trình trộn làm việc theo các cột trong khối theo một

phép biến đổi tuyến tính.

AddRoundKey()

Bước 3: Vòng lặp cuối:

Thực hiện các phép biến đổi tương tự như ở bước 2, nhưng không thực biện

phép biến đổi MixCloumns(): SubBytes(), ShiftRows(), AddRoundKey().

Trong trường hợp giải mã: Các phép biến đổi trong phần mã hóa AES có

thể được đảo ngược và thực thi theo thứ tự khác để giải mã cho thuật toán AES.

Các phép biến đổi được thực hiện trong quá trình giải mã gồm: InvShiftRows(),

InvSubBytes(), InvMixColumns() và AddRoundKey(). Quá trình mã hóa và giải

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

mã AES 128 được mô tả theo lược đồ sau [6, 7]:

42

Hình 2.1: Lược đồ mã hóa/ giải mã AES 128

2.5.2.5 Tính an toàn của AES

Vào thời điểm năm 2009, dạng tấn công lên AES duy nhất thành công là

tấn công kênh bên (side channel attack). Vào tháng 6 năm 2003, chính

phủ Mỹ tuyên bố AES có thể được sử dụng cho thông tin mật “Thiết kế và độ dài

khóa của thuật toán AES (128, 192 và 256 bit) là đủ an toàn để bảo vệ các thông

tin. Các thông tin tuyệt mật (top secret) sẽ phải dùng khóa 192 hoặc 256 bit. Các

phiên bản thực hiện AES nhằm mục đích bảo vệ hệ thống an ninh hay thông

tin quốc gia phải được NSA kiểm tra và chứng nhận trước khi sử dụng” [14]. Điều

này đánh dấu lần đầu tiên công chúng có quyền tiếp xúc với thuật toán mật mã mà

NSA phê chuẩn cho thông tin tuyệt mật. Nhiều phần mềm thương mại hiện nay

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

sử dụng mặc định khóa có độ dài 128 bit, hoặc cao hơn là 256 bit.

43

Phương pháp thường dùng để tấn công các dạng mã hóa khối là thử các

kiểu tấn công lên phiên bản có số chu trình thu gọn. Tại thời điểm năm 2006,

những tấn công thành công được biết đến là 7 chu trình đối với khóa 128 bit, 8

chu trình với khóa 192 bit và 9 chu trình với khóa 256 bit.

Một số nhà khoa học trong lĩnh vực mật mã lo ngại về an ninh của AES.

Họ cho rằng ranh giới giữa số chu trình của thuật toán và số chu trình bị phá vỡ

quá nhỏ, và vì vậy nếu các kỹ thuật tấn công được cải thiện thì AES có thể bị phá

vỡ. Ở đây, phá vỡ có nghĩa chỉ bất cứ phương pháp tấn công nào nhanh hơn tấn

công kiểu duyệt toàn bộ. Vì thế một tấn công cần thực hiện lần cũng được cho

là thành công mặc dù tấn công này chưa thể thực hiện trong thực tế. Tại thời điểm

hiện nay, nguy cơ này không thực sự nguy hiểm và có thể bỏ qua. Tấn công kiểu

duyệt toàn bộ quy mô nhất đã từng thực hiện là do distributed.net thực hiện lên hệ

thống 64 bit RC5 vào năm 2002.

Một vấn đề khác nữa là cấu trúc toán học của AES có mô tả khá đơn giản.

Tuy điều này chưa dẫn đến mối nguy hiểm nào nhưng một số nhà nghiên cứu sợ

rằng sẽ có người lợi dụng được cấu trúc này trong tương lai. Vào năm

2002, Nicolas Courtois và Josef Pieprzyk phát hiện một tấn công trên lý thuyết

gọi là tấn công XSL và chỉ ra điểm yếu tiềm 43iki của AES. Tuy nhiên, một vài

chuyên gia về mật mã học khác cũng chỉ ra một số vấn đề trong cơ sở toán học

của tấn công này và cho rằng các tác giả đã có sai lầm trong tính toán. Việc tấn

công dạng này có thực sự trở thành hiện thực hay không vẫn còn để ngỏ và cho

tới nay thì tấn công XSL vẫn chỉ là suy đoán.

Chương tiếp theo của luận văn sẽ trình bày về việc sử dụng thuật toán mã

hóa AES để mã hóa cho cả dữ liệu phía máy chủ và dữ liệu phía người dùng.

Hiện nay, khá nhiều nhà cung cấp dịch vụ điện toán đám mây hỗ trợ mã

hóa dữ liệu phía server (Amazon S3, Saleforce, Dropbox,…) và nhiều phần mềm

mã hóa của bên thứ ba hỗ trợ mã hóa phía client (Box Cryptor, Crypt Keeper,

Secure Cloud Drive, Credeon Cloud Data Protection…) sử dụng thuật toán mã

hóa AES (AES-128, AES-256 và các biến thể của nó).

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Kêt luận Chương 2

44

Nội dung Chương 2 trình bày kết quả nghiên cứu tìm hiểu những nội dung

về khái niệm, phân loại các bộ tiêu chuẩn về an ninh thông tin. Trên cơ sở đó, lựa

chọn đi sâu phân tích vấn đề bảo vệ dữ liệu trong điện toán đám mây, bao gồm

các khía cạnh về bảo mật, vị trí, phân tách, truy cập, quản lý dữ liệu… đồng thời

nghiên cứu các giải pháp để đảm bảo an ninh dữ liệu, hiểu các mối đe dọa và mã

hóa dữ liệu.

Chương 2 cũng tập trung nghiên cứu, phân tích mô tả, đánh giá độ an toàn

của hai thuật toán mã hóa dữ liệu RSA và AES. Từ đó chỉ ra tính ưu việt của hai

hệ mã hóa này, làm sở cứ khoa học chắc chắn cho việc đề xuất nghiên cứu xây

dựng giải pháp mã hóa dữ liệu an toàn được trình bày tại Chương 3.

CHƯƠNG 3: ỨNG DỤNG BẢO VỆ THÔNG TIN TRONG

ĐIỆN TOÁN ĐÁM MÂY

Hiện nay, có rất nhiều công nghệ cho điện toán đám mây với mức chi phí

và giải pháp khác nhau tùy vào mục đích sử dụng và ưu điểm của mỗi công nghệ.

Trong khuôn khổ luận văn này, học viên sử dụng phần mềm mã nguồn mở

ownCloud và Apache Nutch để nghiên cứu, triển khai xây dựng điện toán đám

mây thông minh, tích hợp chức năng tự động tìm kiếm thu thập thông tin theo yêu

cầu, phục vụ nhiệm vụ khai thác, quản lý, sử dụng, chia sẻ, bảo mật thông tin. Mặt

khác luận văn không đi sâu nghiên cứu các giải pháp bảo vệ thông tin về phần

cứng, mà tập trung phân tích, làm rõ vấn đề bảo mật dữ liệu dựa trên các ứng dụng

mã hóa từ phía máy chủ cũng như phía người dùng. Trên cơ sở đó, học viên nghiên

cứu đề xuất xây dựng một giải pháp mã hóa dữ liệu riêng bằng cách sử dụng kết

hợp hai hệ mật mã RSA và AES để bảo mật thông tin từ phía người dùng.

3.1 Xây dựng điện toán đám mây tích hợp công cụ thu tin tự động

3.1.1 Giới thiệu ownCloud

Grank Karlitschek, một chuyên gia phát triển phần mềm KDE người Đức,

đã bắt đầu phát triển ownCloud vào đầu năm 2010, với mục đích cung cấp một

phần mềm miễn phí nhằm thay thế các nhà cung cấp dịch vụ lưu trữ đán mây độc

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

quyền. OwnCloud [19] là một ứng dụng mã nguồn mở miễn phí có giao diện web

45

mạnh mẽ để xây dựng một hệ thống lưu trữ đám mây nhằm đồng bộ hóa dữ liệu,

chia sẻ tập tin, và lưu trữ từ xa.

OwnCloud được viết bằng ngôn ngữ PHP/javascript và được thiết kế để

làm việc với nhiều hệ quản lý cơ sở dữ liệu, bao gồm cả MySQL, MariaDB,

SQLite, Oracle Database, và PostgreSQL. Hơn nữa ownCloud có thể được triển

khai trên tất cả các nền tảng như Linux, Macintosh, Windows và Android. Đây là

một ứng dụng chạy trên hệ thống mạnh mẽ, nền tảng độc lập, linh hoạt về cấu

hình và khả năng sử dụng, không giới hạn về không gian lưu trữ hay số lượng

client kết nối.

OwnCloud có một số đặc tính cơ bản sau:

- Lưu trữ các tập tin, thư mục, danh bạ, thư viện ảnh, lịch…

- Có thể truy cập từ điện thoại, thiết bị di động, laptop, hoặc trình duyệt

web.

- Đồng bộ dữ liệu lưu trữ từ máy chủ về các thiết bị cá nhân và ngược lại.

- Chia sẽ dữ liệu lưu trữ cá nhân với người khác thông qua URLs.

- Lưu trữ tập tin theo cấu trúc thư mục thông thường hoặc WebDAV.

- Cho phép lấy lại dữ liệu đã xóa trong thùng rác. Mặc định hệ thống sẽ lưu

trữ các file đã xóa trong 30 ngày.

- Cho phép mã hóa dữ liệu để đảm bảo an toàn hơn cho dữ liệu của người

sử dụng.

- Có khả năng tùy biến cao.

- Kết nối với các dịch vụ lưu trữ bên ngoài như DropBox, GoogleDrive,

Amazon S3…

- Tích hợp tính năng xem file PDF và ODF (Open Document Format for

Office Applications) trực tiếp.

Một số ưu điểm của ownCloud:

Các mô hình lưu trữ đám mây hiện nay đã được sử dụng phổ biến, đối với

cả cá nhân hay doanh nghiệp, tập đoàn lớn… Việc lựa chọn các giải pháp thương

mại nổi tiếng như DropBox, OneDrive, Google Drive đều mang lại những lợi ích

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

thiết thực. Tuy nhiên, các dịch vụ này có điểm chung là phải mất phí để được sử

46

dụng nhiều dung lượng hơn so với mức miễn phí được phép và dữ liệu của người

dùng sẽ lưu trữ trên máy chủ của người khác nên vẫn tiềm ẩn nguy cơ mất an toàn

thông tin. Vì thế, những thông tin bí mật, nhạy cảm đặt ra yêu cầu về xây dựng

một tiện ích lưu trữ đám mây riêng, nằm trong hệ thống mạng nội bộ, được bảo

vệ và tin tưởng.

Người dùng có thể tự xây dựng dịch vụ lưu trữ và đồng bộ dữ liệu cho riêng

mình, không phụ thuộc vào nhà cung cấp, không mất phí mua tài khoản và kiểm

soát dữ liệu nhạy cảm của mình.

- OwnCloud bảo vệ và quản lý các dữ liệu nhạy cảm bằng cách lưu trữ

chúng trên bất kì hệ thống lưu trữ có sẵn nào, với bộ phần mềm hoàn thiện chạy

trên các server an toàn đặt trong trung tâm dữ liệu của chính tổ chức; được điều

khiển bởi các quản trị mà tổ chức tin tưởng và được quản lý với chính sách của

chính tổ chức đó.

- OwnCloud tích hợp vào hệ thống hệ thống hạ tầng và an ninh hiện có,

được quản lý từ chính sách của tổ chức, từ thư mục người dùng, quản trị, bảo mật,

giám sát, lưu trữ và sao lưu, để phát hiện xâm nhập.

- OwnCloud mở rộng chức năng dễ dàng thông qua một tập hợp toàn diện

các APIs để tùy chỉnh nhanh chóng khả năng của hệ thống, đáp ứng yêu cầu dịch

vụ, và khả năng mở rộng tính năng trong tương lai.

- OwnCloud cung cấp cho người dùng cuối khả năng truy cập đơn giản đến

các tài liệu mà họ cần và sử dụng chúng trên bất kì thiết bị mà họ sử dụng hàng

ngày nào.

3.1.2 Giới thiệu Apache Nutch

Nutch Apache được phát triển trên nền tảng gồm 3 thành phần chính đó là:

Solr (sử dụng Lucene thư viện mã nguồn mở có chức năng xây dựng chỉ mục và

tìm kiếm, sử dụng Tika công cụ để phát hiện và rút trích metadata và nội dung

văn bản có cấu trúc từ những loại tài liệu khác nhau) và Hadoop (cung cấp nền

tảng tính toán phân tán với hệ thống tập tin phân tán).

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Một số ưu điểm chính của Nutch:

47

- Tính trong suốt: Các Search Engine trên thị trường không tiết lộ cho người

dùng về giải thuật được sử dụng bên trong, đặc biệt là giải thuật ranking các trang

kết quả. Nutch cho phép người dùng xem và thậm chí có thể chỉnh sửa hoặc áp

dụng các giải thuật khác tùy ý.

- Tính mở: Bằng việc chỉnh sửa các giải thuật đã được cài đặt, Nutch có thể

trở thành một Search Engine theo chủ đề, chuyên sâu cho một lĩnh vực.

- Tính tận dụng: Như mọi hệ thống mã nguồn mở khác, sử dụng Nutch là

việc kế thừa thành quả lao động của cộng đồng, tiết kiệm thời gian và công sức

phát triển.

- Tính tích hợp: Nutch được tích nhiều công nghệ tiên tiến để xử lý văn bản

và dữ liệu lớn (scalability). Các tiện ích mở rộng (plugins) có thể dễ dàng cài đặt

vào Nutch làm phong phú tính năng của hệ thống.

Kiến trúc của Nutch

Hình 3.1: Kiến trúc của Nutch

Về kiến trúc, Nutch bao gồm hai thành phần là trình thu thập thông tin

(Crawler) và trình tìm kiếm thông tin (Searcher). Crawler lấy dữ liệu từ các trang

và tạo ra bộ chỉ mục ngược (inverted index). Searcher sử dụng inverted index để

trả lời câu truy vấn query.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Mô tả hoạt động Nutch:

48

Hình 3.2: Hoạt động của Nutch

Bước 1: Injector lấy tất cả các liên kết tới các địa chỉ cần thu thập dữ liệu

và thêm chúng vào crawdb. Crawdb với vai trò là trung tâm của Nutch sẽ xử lý

thông tin trên tất cả những liên kết đã biết.

Bước 2: Dựa trên dữ liệu của crawldb, bộ phận Generator tạo một danh sách

thông tin cần thu thập và đặt chúng trong một thư mục segment mới được khởi

tạo.

Bước 3: Bộ phận fetcher lấy nội dung từ các liên kết trong danh sách thu

thập và ghi chúng vào thư mục segment tạo ở bước 2.

Bước 4: Bộ phận parser sẽ xử lý nội dung của từng trang web. Nếu bộ phận

thu thập thông tin phát hiện ra có sự thay đổi đối với thông tin đã thu thập, bộ

phận updater sẽ thêm dữ liệu mới vào crawldb ở bước tiếp.

Bước 5: Trước khi đánh chỉ mục, tất cả các liên kết cần phải được đảo

ngược. Các liên kết đảo ngược được lưu trong bộ phận linkdb.

Bước 6 và 7: Sử dụng dữ liệu từ tất cả các nguồn khả dụng, bộ phận đánh

chỉ mục tạo chỉ mục và lưu trong thư mục Solr. Thư viện Lucene được dùng để

đánh chỉ mục. Bây giờ người dùng có thể tìm kiếm thông tin trong dữ liệu đã thu

thập thông qua Solr.

Trong toàn bộ quá trình hoạt động, các bộ lọc (filters), các bộ chuẩn hóa

(normalizers) và các tiện ích mở rộng khác cho phép Nutch xử lý linh hoạt, hiệu

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

quả và có thể dễ dàng tùy biến.

49

3.1.3 Xây dựng hệ thống ownCloud tích hợp công cụ thu tin tự động

Apache Nutch

Luận văn thực hiện xây dựng đám mây riêng ownCloud phiên bản hoàn

thiện ổn định là 9.0, Apache Nutch được cài đặt là phiên bản 1.15 và Solr phiên

bản 7.7.1 trên máy ảo Wmware cài đặt hệ điều hành Ubuntu Desktop 16.04 LTS.

Chuẩn bị:

- Cài đặt phần mềm Vitrualbox trên máy tính sử dụng hệ điều hành

Windows 7 của Microsoft, sau đó tiến hành tạo máy ảo dung lượng 20 GB,

memory 1024MB, processors: 2.

- Cài hệ điều hành Ubuntu Desktop 16.04 LTS trên máy ảo này.

Cài đặt:

Tiến hành cài đặt máy chủ ownCloud theo hướng dẫn tại [19, 24] cho hệ

điều hành Ubuntu.

Khi đã hoàn thiện cài đặt máy chủ, ta có thể truy cập máy chủ ownCloud

thông qua trình duyệt web trên chính máy chủ theo địa chỉ

http://localhost/owncloud/index.php hoặc trên máy tính khác theo địa chỉ

http://your-ip/owncloud/index.php (với your-ip là địa chỉ ip của máy chủ

owncloud được thiết lập trong trusted domain).

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.3: Đăng nhập máy chủ ownCloud qua localhost

50

Hình 3.4: Đăng nhập máy chủ ownCloud qua địa chỉ IP

Cài đặt thêm ứng dụng desktop clients trên Windows 7 để đồng bộ dữ liệu

với ownCloud server nếu có nhu cầu. Trong quá trình xây dựng ứng dụng, em cài

đặt ứng dụng desktop client 1.8 cho windows 7 theo hướng dẫn tại [24].

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.5: Desktop client đồng bộ dữ liệu với máy chủ ownCloud

51

Hình 3.6: Đăng nhập tài khoản đồng bộ với máy chủ ownCloud

Hình 3.7: Chọn thư mục đồng bộ với máy chủ ownCloud

Cài đặt hệ thống tiến hành theo hướng dẫn tại [19] dành cho hệ điều hành

Linux. Hệ thống thu thập thông tin tự động Nutch được cài đặt là phiên bản 1.15

và Solr phiên bản 7.7.1. Ta tiến thiết lập tham số để hệ thống có thể hoạt động bao

gồm: các địa chỉ sẽ thu thập dữ liệu, độ sâu khi thu thập, các bộ lọc để chuyên sâu

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

nội dung thu thập. Sau đó sẽ khởi chạy hệ thống.

52

Hình 3.8: Thiết lập tham số thu thập thông tin tự động

Hình 3.9: Khởi chạy hệ thống

Tiến hành tích hợp máy tìm kiếm của hệ thống thu tin vào hệ thống

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

ownCloud mà ta đã xây dựng bằng công cụ External Site của ownCloud [20].

53

Hình 3.10: Tích hợp Search Engine vào ownCloud

Hình 3.11: Giao diện phần khai thác thông tin đã thu thập

Hệ thống đám mây tự động thu thập thông tin được thiết lập và phân quyền

quản lý tài khoản người dùng theo yêu cầu và mục đích sử dụng. Theo đó thông

tin người dùng được bảo vệ và quản lý bằng mã hóa hàm băm.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Thiết lập tài khoản admin:

54

Hình 3.12: Thiết lập tài khoản Admin

Hình 3.13: Thiết lập và quản lý tài khoản người dùng

3.2 Bảo vệ dữ liệu khi sử dụng điện toán đám mây

3.2.1 Mã hóa dữ liệu phía máy chủ ownCloud

OwnCloud bao gồm cả một ứng dụng mã hóa (Encryption App) phía máy

chủ (server-side) [19], nếu muốn sử dụng ứng dụng này, người quản trị ownCloud

cần phải kích hoạt để ứng dụng hoạt động. Khi đó, tất cả các tập tin dữ liệu của

người sử dụng sẽ tự động được ownCloud mã hóa. Ứng dụng này sẽ mã hóa tất

cả các tập tin được lưu trữ trên máy chủ ownCloud và tất cả các tập tin trên ổ lưu

trữ từ xa được kết nối với máy chủ ownCloud. Vì vậy, khi kích hoạt ứng dụng

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

này, người sử dụng sẽ không thể chọn một số tập tin không được mã hóa. Ứng

55

dụng sử dụng tài khoản đăng nhập vào ownCloud của người dùng như mật khẩu

cho khóa bí mật, người dùng cần đăng nhập và quản lý, chia sẻ các tập tin như

bình thường và vẫn có thể thay đổi mật khẩu.

Ứng dụng mã hóa của ownCloud sử dụng thuật toán AES, quá trình mã hóa

và giải mã xảy ra “trong suốt”, người dùng vẫn có thể sử dụng tất cả các tính năng,

ứng dụng khác từ ownCloud như chia sẻ WebDAV .

Mã hóa phía máy chủ đặc biệt hữu ích cho những trường hợp sử dụng lưu

trữ bên ngoài (external), đảm bảo cho người dùng lưu trữ bên ngoài mà bên thứ

ba không truy cập được dữ liệu của mình.

3.2.1.1 Kích hoạt mã hóa

Có một vài lựa chọn khi sử dụng ứng dụng mã hóa của ownCloud. Khi

người quản trị kích hoạt mã hóa lần đầu tiên thì người dùng cần phải đăng xuất

và đăng nhập lại để tạo khóa mã hóa và mã hóa các tập tin.

Sau khi mã hóa đã được kích hoạt, người sử dụng sẽ thấy yêu cầu khởi tạo

khóa. Lưu ý rằng không được để mất password ownCloud vì sẽ mất quyền truy

cập vào các tập tin.

Hình 3.14: Khởi động khóa mã hóa dữ liệu trên máy chủ ownCloud

OwnCloud cho phép người dùng đăng nhập mật khẩu để mã hóa. Điều này

có nghĩa là người dùng nên chọn mật khẩu mạnh để bảo vệ dữ liệu. Mặc định,

người dùng sẽ mất quyền truy cập vào dữ liệu của mình nếu mất mật khẩu đăng

nhập. OwnCloud cũng có tính năng bổ sung là tạo khóa khôi phục để người quản

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

trị có thể khôi phục dữ liệu của người dùng (xem phần mật khẩu khôi phục khóa)

56

3.2.1.2 Chia sẻ tập tin được mã hóa

Chỉ những người dùng có các khóa mã hóa bí mật có quyền truy cập vào

các tập tin được mã hóa và thư mục được chia sẻ. Người dùng chưa tạo khóa mã

hóa bí mật sẽ không có quyền truy cập vào các tập tin chia sẻ được mã hóa; họ sẽ

thấy các thư mục và tên tập tin, nhưng sẽ không thể để mở hoặc tải về các tập tin

3.2.1.3 Mật khẩu khôi phục khóa (Key Recovery Password)

Nếu người quản trị ownCloud đã kích hoạt tính năng khôi phục khóa trong

tài khoản quản trị thì người sử dụng có thể chọn tính năng này cho tài khoản của

mình. Nếu người dùng kích hoạt Password recovery, người quản trị sẽ có thể phục

hồi các tập tin của người dùng trong trường hợp họ bị mất mật khẩu

ownCloud. Nếu không kích hoạt thì không có cách nào khôi phục lại các tập tin

khi người dùng bị mất mật khẩu đăng nhập.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.15: Kích hoạt chế độ mã hóa bằng tài khoản admin

57

Hình 3.16: Kích hoạt chế độ khôi phục khóa mã hóa

3.2.1.4 Loại bỏ mã hóa

Nếu người quản trị ownCloud được chọn để loại bỏ ứng dụng mã hóa, người

dùng sẽ vào trang cá nhân của mình và nhập mật khẩu vào form Encryption để

giải mã các tập tin.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.17: Thông báo ở trang cá nhân sau khi admin kích hoạt giải mã

58

Hình 3.18: Giải mã thành công và loại bỏ khóa mã hóa dữ liệu

Nếu giải mã thành công, người dùng có thể chọn nút Delete Encryption

Keys. Không có lý do gì để lưu chúng sau khi vô hiệu hóa giải mã, bởi vì nếu mã

hóa được kích hoạt một lần nữa bạn sẽ tạo ra một tập khóa mới.

Lưu ý rằng, mọi dữ liệu được mã hóa và giải mã phía máy chủ, người quản

trị sẽ luôn có thể chặn dữ liệu của người dùng. Vì thế, nên chọn những người quản

trị đáng tin cậy hoặc tự quản trị.

3.2.1.5 Tập tin không được mã hóa

Chỉ dữ liệu trong các tập tin được mã hóa, tên tập tin hoặc các cấu trúc thư

mục sẽ không được mã hóa.

Những tập tin sau cũng không được mã hóa:

- Các tập tin cũ trong thùng rác.

- Hình ảnh thu nhỏ (image thumbnail) từ ứng dụng Gallery.

- Preview từ ứng dụng Files

- Các chỉ mục tìm kiếm từ các ứng dụng tìm kiếm văn bản đầy đủ.

- Dữ liệu của ứng dụng bên thứ ba (third-party).

3.5.1.6 Cách thức hoạt động của mã hóa

Mã hóa dựa trên ba khóa khác nhau: mỗi người dùng có một cặp khóa bí

mật, công khai (private/public key-pair), mỗi tập tin có một khóa tập tin (file-key)

và để nhiều người sử dụng có thể truy cập tới một tập tin ta sử dụng khóa chia sẻ

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

(share-key) [22].

59

Mỗi người dùng có một cặp khóa bất đối xứng 4096 bit mạnh mẽ bao gồm

một khóa bí mật và một khóa công khai. Các khóa bí mật được mã hóa với mật

khẩu đăng nhập của người dùng sử dụng thuật toán mã hóa AES-256. Ngoài ra,

có hai cặp khóa toàn hệ thống: một cặp cho phép ownCloud giải mã các tập tin

chia sẻ liên kết công khai, một cặp nếu được kích hoạt sự phục hồi cặp khóa.

Các file-key được sử dụng để mã hóa tập tin của người sử dụng với AES-

256. Các tập tin được mã hóa với khóa công khai từ tất cả người dùng có quyền

truy cập vào các tập tin. Điều này có nghĩa là nếu một người dùng thêm hoặc bớt

từ một tập tin, ta chỉ cần mã hóa lại file-key nhỏ thay vì toàn bộ tập tin.

Mỗi khi một file-key được mã hóa cho nhiều người dùng OpenSSL sinh ra

cho mỗi người dùng một khóa chia sẻ share-key bổ sung. Chỉ có sự kết hợp khóa

bí mật của những người dùng với các share-key tương ứng cho phép người dùng

giải mã các tập tin nhất định.

Hình 3.2: Mô hình mã hóa phía máy chủ ownCloud

Khi một tập tin mới được thêm vào hoặc được đồng bộ, ownCloud tạo ra

một file-key liên kết và sử dụng để mã hóa tập tin bằng thuật toán mã hóa AES-

256. Như vậy, mỗi tập tin trên ownCloud có một file-key duy nhất.

OwnCloud cũng mã hóa chính file-key bằng cách sử dụng khóa công khai

của từng người dùng. Kết quả của việc mã hóa này là một hoặc nhiều share-key.

Mỗi người dùng có một share-key duy nhất ứng với mỗi tập tin. Khi một người

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

dùng được phép truy cập vào tập tin, ownCloud giải mã file-key với khóa riêng

60

của người dùng (private key) kết hợp với khóa share-key thích hợp. Sau đó, sử

dụng file-key để giải mã tập tin.

Khi một tập tin được chia sẻ với người dùng mới, file-key lại được mã hóa

một lần nữa với khóa công khai của người dùng mới để tạo ra một share-key mới.

Mặc dù ownCloud phải mã hóa lại file-key, nhưng công việc này giúp giảm

bớt nhiều nhiệm vụ hơn so với việc phải mã hóa lại toàn bộ các tập tin vật lý khi

chia sẻ tập tin với người dùng mới.

Toàn bộ mã nguồn phần mã hóa ownCloud được trình bày trong tài liệu CD

đính kèm.

3.2.2 Nghiên cứu xây dựng giải pháp mã hóa dữ liệu người dùng

Giải pháp mã hóa dữ liệu có chức năng mã hóa đảm bảo an toàn thông tin

dữ liệu của người sử dụng trước khi lưu trữ, quản lý, khai thác, chia sẻ trên điện

toán đám mây thu tin tự động. Trình tự thực hiện diễn ra như sau:

1. Trước tiên, người nhận tệp mã hóa cần tạo cặp khóa bằng thuật toán mã

hóa bất đối xứng, sau đó gửi khóa công khai cho người gửi.

2. Người gửi dùng thuật toán mã đối xứng để mã hóa dữ liệu, và sử dụng

thuật toán mã hóa bất đối xứng để mã hóa khóa đối xứng nối trên bằng khóa công

khai của người nhận

3. Người nhận sử dụng khóa bí mật để giải mã khóa đối xứng, sau đó giải

mã dữ liệu với khóa đối xứng vừa thu được.

Trong trường hợp này, thuật toán mã hóa bất đối xứng được dùng chỉ để

mã hóa khóa đối xứng, vì vậy độ phức tạp tính toán là không đáng kể. Đây chính

là nguyên lý làm việc của SSL. Cụ thể, trong chương trình sử dụng thuật toán

AES để mã hóa dữ liệu với độ lớn của khóa là 256 bit, và RSA để mã hóa khóa

của AES trong thư viện Microsoft .NET Cryptography.

3.2.2.1 Giao diện Chương trình

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Chương trình được thiết kế với giao diện chính như sau:

61

Hình 3.20: Giao diện chính của chương trình

3.2.2.1 Giới thiệu và hướng dẫn sử dụng Chương trình

Tóm tắt thông tin Chương trình được mô tả theo hình sau:

Hình 3.21: Giới thiệu chương trình

3.2.2.2 Chức năng tạo khóa

Để sử dụng, trước hết cần tạo cặp khóa công khai - bí mật bằng công cụ tạo

khóa trên phần mềm. Cặp khóa được tạo ra có dạng XML, nằm trong 02 tệp là

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

privateKey.xml và publicKey.xml.

62

Hình 3.22: Chức năng tạo khóa

3.2.2.2 Chức năng mã hóa

Khi đã tạo được cặp khóa, cần chọn tệp để mã hóa và nạp khóa công khai

publicKey.xml ở mục thiết lập để tiến hành mã hóa.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.23: Chức năng mã hóa

63

Tên tệp mã hóa giống với tên tệp cần mã hóa và có phần mở rộng là

.encrypted. Tệp này nằm cùng thư mục với tệp cần mã hóa. Ngoài ra trong quá

trình mã hóa còn sinh ra tệp có phần mở rộng là .manifest.xml có tác dụng chứa

khóa đối xứng đã được mã hóa.

Hình 3.24: Quá trình mã hóa

3.2.2.2 Chức năng giải mã

Giải mã tệp là quá trình ngược lại với quá trình mã hóa. Quá trình giải mã

tính toán khóa đối xứng đã được mã bằng RSA, ghi trong tệp .manifest.xml. Để

sử dụng chức năng giải mã cần dùng lệnh “Chuyển mã hóa/giải mã” của chương

trình.

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Hình 3.25: Chức năng giải mã

64

Sau khi đã chọn tệp để giải mã, trong phần thiết lập cần nạp khóa bí mật và

khóa đối xứng được mã hóa trong quá trình mã tệp để tiến hành giải mã tệp đã

được mã. Tệp sau khi được giải mã sẽ có phần mở rộng .decrypted.

Minh họa nội dung tệp trước và sau khi đã mã hóa

Hình 3.26: Minh họa tệp trước và sau khi đã mã hóa

3.3 Thử nghiệm và đánh giá

Để đảm bảo an toàn thông tin, dữ liệu trước khi gửi lên đám mây được mã

hóa bằng phần mềm mã hóa file. Phương pháp này mang lại nhiều lợi ích trong

trường hợp người dùng không đủ tin tưởng vào việc quản trị của ownCloud. Tuy

nhiên, phương pháp mã hóa dữ liệu trước khi đưa lên đám mây có vẻ không được

thuận tiện trong quá trình sử dụng, làm hạn chế đi một số ưu điểm của điện toán

đám mây. Vì vậy, người sử dụng chỉ nên mã hóa những dữ liệu quan trọng, nhạy

cảm (sensitive data) để tiết kiệm thời gian và giảm sự bất tiện.

Người sử dụng cũng có thể kết hợp cả việc mã hóa dữ liệu phía client với

việc sử chính sách mã hóa dữ liệu phía server để giảm thiểu rủi ro trong quá trình

bảo vệ dữ liệu.

3.3.1 Với mã hóa phía máy chủ ownCloud

Sau khi kích hoạt ứng dụng mã hóa Ecryption App trên máy chủ

ownCloud thì toàn bộ các tập tin lưu trữ trên máy chủ sẽ được mã hóa. Kích thước

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

tập tin được mã hóa sẽ tăng thêm hơn 30% so với tập tin gốc.

65

Người dùng nên thường xuyên sao lưu tất cả các khóa mã hóa để ngăn

ngừa mất dữ liệu vĩnh viễn. Các khóa mã hóa được lưu trữ trong các thư mục sau

đây:

data/owncloud_private_key: Khóa khôi phục, nếu được kích hoạt

và khóa chia sẻ công khai

data/public_keys: Các khóa công khai của tất cả người dùng

data//files_encryption: Các khóa bí mật của người dùng

và tất cả các khóa cần thiết khác để giải mã tập tin của user.

data/files_encryption: Các khóa bí mật và tất cả các khóa cần

thiết khác để giải mã các tập tin được lưu trữ trên toàn hệ thống lưu trữ mở rộng.

Các khóa mã hóa chỉ được lưu trữ trên máy chủ ownCloud, tránh bên thứ

ba tiếp xúc với dữ liệu của người dùng khi sử dụng dịch vụ lưu trữ ngoài.

3.3.2 Với mã hóa phía người dùng

Trong thư mục ownCloud của ứng dụng desktop client 1.8 đã cài đặt, tạo

thư mục Encrypted để lưu trữ các tập tin cần mã hóa bằng phần mềm Mã hóa file

phía client và thiết lập chế độ mã hóa cho thư mục này.

Sau đó, ta có thể chuyển hoặc sao chép các tập tin vào thư mục này. Các

tập tin sẽ tự động được mã hóa và chuyển lên máy chủ ownCloud. Các tập tin này

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

sẽ có phần đuôi mở rộng là .encrypted.

66

Hình 3.27: Lưu trữ tập tin đã mã hóa phía client trên ownCloud

Ta tiến hành thử nghiệm bằng cách copy tập tin debug.log vào thư mục

Ecrypted trong thư mục ownCloud desktop của tài khoản admin, tập tin này sẽ tự

động được mã hóa và được chuyển lên máy chủ ownCloud của tài khoản admin.

Với các dữ liệu không mã hóa phía người dùng, dữ liệu được lưu ở thư mục

NotEncrypted. Tuy nhiên dữ liệu khi người dùng gửi lên sẽ được mã hóa bằng

thuật toán mã của Cloud. Tuy nhiên

Hình 3.28: Lưu trữ tập tin không mã hóa phía client trên ownCloud

Nội dung tập tin đã được mã hóa so với tập tin gốc, giúp đảm bảo an toàn

cho dữ liệu của người dùng khi lưu trữ trên đám mây. Tuy nhiên, người dùng cũng

mất quyền sử dụng giao diện web nghĩa là không tận dụng được những ưu điểm

như xem nôi dung tập tin… khi sử dụng mã hóa phía client.

Vì thế, người dùng nên cân nhắc kĩ trước khi sử dụng loại mã hóa này, chỉ

nên sử dụng mã hóa phía client cho những dữ liệu nhạy cảm, các dữ liệu thông

thường không cần thiết phải sử dụng mã hóa hoặc chỉ cần chọn mã hóa dữ liệu

phía server để thuận tiện trong việc sử dụng và chia sẻ.

Kết luận Chương 3

Trên cơ sở nghiên cứu tổng quan về điện toán đám mây và kỹ thuật mã hóa

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

dữ liệu tại chương 1 và 2, nội dung Chương 3 nghiên cứu xây dựng điện toán đám

67

mây riêng tích hợp công cụ thu tin tự động để tăng khả năng mở rộng cho đám

mây.

Đã tiến hành cài đặt, phân tích quá trình mã hóa dữ liệu của thông tin tài

liệu tại hệ thống máy chủ ownCloud, đánh giá về sự an toàn của việc mã hóa trên

đám mây. Đồng thời đi sâu nghiên cứu xây dựng giải pháp mã hóa dữ liệu an toàn

sử dụng phía client bằng cách kết hợp hai thuật toán mã hóa RSA và AES. Theo

đó, đã tổ chức cài đặt, thực nghiệm để đánh giá việc mã hóa dữ liệu trên đám mây

dùng riêng, rút ra một số kết luận, làm cơ sở khoa học đề xuất, triển khai, ứng

dụng trong thực tiễn.

KẾT LUẬN

Luận văn “Tìm hiểu điện toán đám mây và vấn đề bảo mật trong điện toán

đám mây” hoàn thành đã đạt được một số kết quả sau:

Đã nghiên cứu tìm hiểu tổng quan những vấn đề điện toán đám mây bao

gồm khái niệm, kiến trúc, mô hình cũng như ưu, nhược điểm trong quá trình sử

dụng, ứng dụng thực tiễn. Trên cơ sở đó, đã phân tích làm rõ những nội dung cơ

bản nhất về an ninh thông tin, phân loại, các bộ tiêu chuẩn về an ninh thông tin.

Từ đó lựa chọn đi sâu nghiên cứu vấn đề an ninh dữ liệu trong mô hình đám mây

và phân tích cơ sở toán học, nguyên lý, cơ chế hoạt động của hai hệ mật mã RSA

và AES.

Với những kết quả nghiên cứu lý thuyết đã đạt được, luận văn nghiên cứu

xây dựng giải pháp mã hóa dữ liệu an toàn bằng cách kết hợp hai thuật toán mã

hóa RSA với AES phục vụ việc mã hóa dữ liệu phía người dùng.

Đã tiến hành nghiên cứu, xây dựng hệ thống đám mây riêng tự động thu

thập thông tin dữ liệu. Tổ chức cài đặt, thực nghiệm, đánh giá kết quả nghiên cứu

về bảo mật dữ liệu hệ thống ở hai khía cạnh người dùng và server. Theo đó đã rút

ra những nhận xét về ưu, nhược điểm của giải pháp đề xuất, làm sở cứ khoa học

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

vững chắc để tiếp tục nghiên cứu, ứng dụng trong thực tiễn triển khai.

68

Tuy nhiên, để giải quyết một cách triệt để những yêu cầu đặt ra, cần tiếp

tục có những nghiên cứu chuyên sâu, ứng dụng các giải pháp hiện đại cả về phần

mềm và phần cứng để nâng cao độ bảo mật, an toàn dữ liệu cho đám mây. Mặt

khác cần tiếp tục phát triển nâng cao khả năng mở rộng cho đám mây bằng cách

ứng dụng các công nghệ Big data, AI, IoT.v.v.

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1] Bộ Thông tin truyền thông, “Hướng dẫn về tiêu chuẩn ứng dụng công

nghệ thông tin trong cơ quan nhà nước”, Hà Nội, 2008.

[2] Bộ Thông tin truyền thông, “Quyết định quy định chức năng, nhiệm vụ,

quyền hạn và cơ cấu tổ chức của trung tâm phần mềm nguồn mở và điện

toán đám mây trực thuộc viện công nghiệp phần mềm và nội dung số Việt

Nam”, Hà Nội, 2014.

[3] Hoàng Lê Minh, “Hạ tầng công nghệ thông tin dùng chung và dịch vụ

điện toán đám mây dùng riêng”, Viện Công nghiệp phần mềm và nội dung

số Việt Nam, 2017.

[4] Trương Ngọc Hạnh, Trần Đức Sự, “Nghiên cứu mô hình xử lý dữ liệu mã

hóa trong điện toán đám mây”, Đại học Thái Nguyên, 2015.

[5] Trần Nhật Vinh, Lê Văn Sơn, “Nghiên cứu mô hình điện toán đám mây,

cài đặt, thử nghiệm, đánh giá”, Đại học Đà Nẵng, 2011.

[6] Vũ Thị Ngân, Hồ Văn Canh, “Nghiên cứu bảo vệ thông tin trong điện toán

đám mây”, Đại học Công nghệ, Đại học Quốc gia Hà Nội, 2015.

Tiếng Anh

[7] Alfred J. Menezes, Paul C. van Ooschot, Scott A. Vanstone, “Handbook

of Applied Cryptography”, pp.425-481, CRC Press, 1996.

[8] Bernstein, David; Ludvigson, Erik; Sankar, Krishna; Diamond, Steve;

Morrow, Monique, “Blueprint for the Intercloud - Protocols and Formats

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

for Cloud Computing Interoperability”, IEEE Computer Society, 2009.

69

[9] Borko Furht, Armando Escalante, “Handbook of Cloud Computings”,

Springer, USA, 2010.

[10] CPNI, “Information security briefing Cloud Computing”, Centre for the

protection of Nationnal Infrastructure, 2010.

[11] CSO, Vormetric, “Data Security in the Cloud”, Gartner Inc, 2010.

[12] Jan de Muijnck-Hughes BSc, “Data Protection in the Cloud”, Radboud

University Nijmegen, Netherland, 2014.

[13] Moritz Borgmann, Tobias Hahn, Michael Herfert, Thomas Kunz,Marcel

Richter, Ursula Viebeg, Sven Vowé, “On the Security of Cloud Storage

Services”, SIT Technical Reports, Germany, 2012.

[14] NIST, “NIST Cloud Computing Security Reference Architecture”, U.S.

Department of Commerce, US, 2014.

[15] Sajjad Hashemi, “Data Storage Security Challenges in Cloud Computing,

International Journal of Security”, Privacy and Trust Management, 2013.

[16] Vic (J.R.) Winkler, “Securing the Cloud”, Syngress, USA, 2011.

[17] Ya Liu, “Data Security in Cloud Computing”, Eindhoven University of

Technology, Philips, 2012.

Website

[18] http://cloudcomputingnet.com/cloud-computing-architecture/

[19] https://owncloud.org/

[20] https://wiki.apache.org/nutch/NutchTutorial

[21] http://psg.hitachi-solutions.com/credeon/faq/does-credeon-work-with-

owncloud

[22] http://www.forbes.com/2009/07/30/cloud-computing-security-

technology-cio-network-cloudcomputing.html (available: 2009).

[23] https://cloudsecurityalliance.org

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

[24] https://doc.owncloud.org/desktop/1.8/

70

[25] https://github.com/owncloud/core/blob/master/apps/encryption/lib/crypt

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

o/crypt.php

71

PHỤ LỤC

Phụ lục 1: Mã nguồn Chương trình mã hóa file

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

//--------------------------------------------------- -------------------- //--------------------------------------------------- -------------------- using System; using System.Collections.Generic; using System.Globalization; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Xml.Linq; namespace Encryptor { ///

/// Provide encryption and decryption function /// public static class Encipher { /// /// Generate RSA key pair /// /// Receive public key /// Receive private key public static void GenerateRSAKeyPair(out string publicKey, out string privateKey) { RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048); publicKey = rsa.ToXmlString(false); privateKey = rsa.ToXmlString(true); } /// /// Encrypt a file /// /// Full path of the file to be encrypted

72

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

/// Full path of the encrypted file /// Full path of the generated manifest file /// Product name /// Product version /// RSA key used to encrypt the one-time symmetrical key /// RSA key id for backend index /// Encryption information including symmetrical keys for data encryption and signature, just for debug purpose public static string Encrypt(string plainFilePath, string encryptedFilePath, string manifestFilePath, string rsaKey) { byte[] signatureKey = GenerateRandom(64); byte[] encryptionKey = GenerateRandom(16); byte[] encryptionIV = GenerateRandom(16); EncryptFile(plainFilePath, encryptedFilePath, encryptionKey, encryptionIV); byte[] signature = CalculateSignature(encryptedFilePath, signatureKey); CreateManifest(signature, signatureKey, encryptionKey, encryptionIV, rsaKey, manifestFilePath); return CreateEncryptionInfoXml(signatureKey, encryptionKey, encryptionIV); } ///

/// Create encryption information in the form of xml string ///

73

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

/// Signature Key /// AES Encryption key /// AES Encryption key IV /// xml string containing key informations private static string CreateEncryptionInfoXml(byte[] signatureKey, byte[] encryptionKey, byte[] encryptionIV) { string template = "" + "" + "" + "" + "" + "" + ""; XDocument doc = XDocument.Parse(template); doc.Descendants("AESKeyValue").Single().Descendants(" Key").Single().Value = Convert.ToBase64String(encryptionKey); doc.Descendants("AESKeyValue").Single().Descendants(" IV").Single().Value = Convert.ToBase64String(encryptionIV); doc.Descendants("HMACSHAKeyValue").Single().Value = Convert.ToBase64String(signatureKey); return doc.ToString(); } ///

/// Generate random byte array /// /// array length /// Random byte array private static byte[] GenerateRandom(int length) { byte[] bytes = new byte[length];

74

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

using (RNGCryptoServiceProvider random = new RNGCryptoServiceProvider()) { random.GetBytes(bytes); } return bytes; } ///

/// Encrypt a file with AES /// /// Full path of the file to be encrypted /// Full path of the encrypted file /// AES key /// AES IV private static void EncryptFile(string plainFilePath, string encryptedFilePath, byte[] key, byte[] iv) { using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider()) { aes.KeySize = 256; aes.Key = key; aes.IV = iv; ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV); using (FileStream plain = File.Open(plainFilePath, FileMode.Open, FileAccess.Read, FileShare.Read)) { using (FileStream encrypted = File.Open(encryptedFilePath, FileMode.Create, FileAccess.Write, FileShare.None)) { using (CryptoStream cs = new CryptoStream(encrypted, encryptor, CryptoStreamMode.Write)) { plain.CopyTo(cs);

75

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

} } } } } ///

/// Encrypt a file with AES /// /// Full path of the encrypted file /// Full path of the file to be decrypted /// AES key /// AES IV public static void DecryptFile(string plainFilePath, string encryptedFilePath, byte[] key, byte[] iv) { using (AesCryptoServiceProvider aes = new AesCryptoServiceProvider()) { aes.KeySize = 256; aes.Key = key; aes.IV = iv; ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV); using (FileStream plain = File.Open(plainFilePath, FileMode.Create, FileAccess.Write, FileShare.None)) { using (FileStream encrypted = File.Open(encryptedFilePath, FileMode.Open, FileAccess.Read, FileShare.Read)) { using (CryptoStream cs = new CryptoStream(plain, decryptor, CryptoStreamMode.Write)) { encrypted.CopyTo(cs); } } } } }

76

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

///

/// Encrypt byte array with RSA /// /// byte array to be encrypted /// RSA key /// Encrypted array public static byte[] RSAEncryptBytes(byte[] datas, string keyXml) { byte[] encrypted = null; using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048)) { rsa.FromXmlString(keyXml); encrypted = rsa.Encrypt(datas, true); } return encrypted; } /// /// Decrypt byte array with RSA /// /// byte array to be decrypted /// RSA key /// Decrypted array public static byte[] RSADescryptBytes(byte[] datas, string keyXml) { byte[] decrypted = null; using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048)) { rsa.FromXmlString(keyXml); decrypted = rsa.Decrypt(datas, true); } return decrypted; } ///

77

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

/// Calculate file signature ///

/// Full path of the file for calculating signature /// key for calculating signature /// Signature array private static byte[] CalculateSignature(string filePath, byte[] key) { byte[] sig = null; using (HMACSHA256 sha = new HMACSHA256(key)) { using (FileStream f = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)) { sig = sha.ComputeHash(f); } } return sig; } /// /// Create manifest file of a encrypted package, used for backend parsing /// /// Data signature /// Data signature key /// AES encryption key /// AES encryption IV /// Product name /// Product version /// RSA key /// RSA key ID /// Output manifest file path

78

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

private static void CreateManifest(byte[] signature, byte[] signatureKey, byte[] encryptionKey, byte[] encryptionIv, string rsaKey, string manifestFilePath) { string template = "" + "True" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + ""; XDocument doc = XDocument.Parse(template); doc.Descendants("DataEncryption").Single().Descendant s("AESEncryptedKeyValue").Single().Descendants("Key") .Single().Value = System.Convert.ToBase64String(RSAEncryptBytes(encrypt ionKey, rsaKey)); doc.Descendants("DataEncryption").Single().Descendant s("AESEncryptedKeyValue").Single().Descendants("IV"). Single().Value = System.Convert.ToBase64String(RSAEncryptBytes(encrypt ionIv, rsaKey)); doc.Descendants("DataSignature").Single().Descendants ("Value").Single().Value = System.Convert.ToBase64String(signature);

79

doc.Descendants("DataSignature").Single().Descendants ("EncryptedKey").Single().Value = System.Convert.ToBase64String(RSAEncryptBytes(signatu reKey, rsaKey)); doc.Save(manifestFilePath); } } }

Phụ lục 2: Mã nguồn modul mã hóa trên ownCloud

Số hóa bởi Trung tâm Học liệu và Công nghệ thông tin – ĐHTN http://lrc.tnu.edu.vn

Học viên xin phép trình bày trong tài liệu lưu đĩa CD gửi kèm