Tải bản đầy đủ (.pdf) (74 trang)

Nghiên cứu giải pháp an toàn thông tin cho hệ thống tính toán lưới

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.21 MB, 74 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
- - - - *** - - - - -



TRIỆU THỊ THU THỦY



NGHIÊN CỨU
GIẢI PHÁP AN TOÀN THÔNG TIN
CHO HỆ THỐNG TÍNH TOÁN LƯỚI



Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 05



LUẬN VĂN THẠC SĨ


NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS. Nguyễn Văn Tam









HÀ NỘI – 2011
3



MỤC LỤC

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 5
MỞ ĐẦU 6
Chương 1 - Tổng quan về an toàn thông tin trong hệ thống tính toán lưới 7
1.1 Vai trò của tính toán lưới hiện nay 7
1.1.1 Giới thiệu 7
1.1.2 Vai trò của tính toán lưới trong nghiên cứu khoa học (e-science) 9
1.1.2.1 Chia sẻ tài nguyên bên trong tổ chức ảo (Virtual Organization) 10
1.1.2.2 Giao tiếp với những công việc đang được thực thi trên hệ thống lưới 11
1.1.2.3 Tính toán phân tán 13
1.1.2.4 Quản lý dữ liệu 15
1.2 Các thách thức của an toàn thông tin trong điện toán đám mây 16
1.2.1 Đặc trưng 16
1.2.2 Kiến trúc phân lớp của tính toán lưới 17
1.2.3 Thách thức an toàn thông tin 18
Chương 2 - Giải pháp bảo mật 20
2.1 Middleware 20
2.1.3 Định nghĩa 20
2.1.3 Các công nghệ Middleware trong tính toán lưới 23
2.1.3.1 Globus Toolkit 23
2.1.3.1 Glite 25

2.1.3.1 Unicore 29
2.1.3 Các phương pháp an toàn thông tin thường được áp dụng trong tầng
middleware của tính toán lưới 30
2.1.3.1 Xác thực và cấp phép 30
2.1.3.2 Ủy quyền 33
2.1.3.3 Giao tiếp bí mật 35
2.2 Hạ tầng 37
2.2.3 An ninh mức vật lý 37
4



2.2.4 An ninh hệ điều hành 38
2.2.5 Bức tường lửa 39
2.2.6 Phát hiện truy nhập 41
Chương 3 - Giải pháp bức tường lửa mã nguồn mở iptables. 42
3.1 Giới thiệu về IPTables 42
3.2 Nguyên lý hoạt động của IPTables 44
3.3 Cấu trúc IPTables 45
3.3.1 Bảng MANGLE 45
3.3.2 Bảng NAT 46
3.3.3 Bảng FILTER 47
3.4 Các thành phần của IPTables 47
3.4.1 Targets 47
3.4.2 Các tham số chuyển mạch quan trọng của IPTables 49
3.4.3 Sử dụng chuỗi luật do người dụng định nghĩa 52
3.4.4 Những module kernel 53
3.5 Các điều kiện trong chuỗi luật của IPTables 54
3.6 Hành động trong luật 58
3.7 Tường lửa trên Grid 61

3.7.1 Lưu lượng và cổng dịch vụ trong Grid 61
3.7.2 Điều khiển phạm vi cổng trong Grid 64
Chương 4 - Mô hình thử nghiệm 65
TÀI LIỆU THAM KHẢO 72






Thank you for evaluating AnyBizSoft PDF Splitter.
A watermark is added at the end of each output PDF file.
To remove the watermark, you need to purchase the software from
/>5



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















Ký hiệu
Tiếng Anh
Ý nghĩa
VO
Virtual Organization
Tổ chức ảo
VOMS
Virtual Organization Manager Service
Dich vụ quản trị tổ chức ảo
ICMP
Internet Control Message Protocol
Giao thức thong điệp điều khiển
Internet
TCP
Transmission Control Protocol
Giao thức điều khiển giao vân
IP
Internet Protocol
Giao thức Internet
FW
Firewall
Tường lửa
NAT
Network address translation
Chuyển đổi địa chỉ mạng
QoS
Quality of Service
Chất lượng dịch vụ

GSI
Grid Security Infrastructure
Kiến trúc an ninh lưới
FTP
File Transfer Protocol
Giao thức truyền tập tin
6



MỞ ĐẦU
Tính toán lưới vẫn giữ vai trò vô cùng quan trọng, đặc biệt trong lĩnh vực nghiên cứu.
Trên thế giới, các dự án về tính tóan lưới vẫn tiếp tục được triển khai và phát triển. Với
mong muốn làm chủ vấn đề an toàn thông tin trong tính toán lưới, luận văn này gồm
những phần sau như sau:
Chương 1: Tổng quan về an toàn thông tin trong hệ thống
Chương 2: Giải pháp bảo mật
Chương 3: Bức tường lửa Iptables
Chương 4: Demo
Cuối cùng là Tài liệu tham khảo.

7



Chương 1 - Tổng quan về an toàn thông tin trong hệ thống
tính toán lưới
1.1 Vai trò của tính toán lưới hiện nay
Trước sự phát triển mạnh mẽ của điện toán đám mây, phần này trả lời cho câu hỏi ý
nghĩa của điện toán lưới ngày nay.

1.1.1 Giới thiệu
Khái niệm Tính toán lưới đã bắt đầu xuất hiện vào đầu thập niên 90 với nghĩa ẩn dụ là
làm cho việc sử dụng sức mạnh của máy tính dễ dàng như là việc sử dụng điện năng.
Ngày nay có rất nhiều định nghĩa về tính toán lưới. Một định nghĩa về Grid khá hoàn
chỉnh được đưa ra bởi tiến sỹ Ian Foster như sau :
“Grid là một loại hệ thống song song, phân tán cho phép chia sẻ, lựa chọn, kết hợp các tài
nguyên phân tán theo địa lý, thuộc nhiều tổ chức khác nhau dựa trên tính sẵn sàng, khả
năng, chi phí của chúng và yêu cầu về chất lượng dịch vụ (QoS) của người dùng để giải
quyết các bài toán, ứng dụng có quy mô lớn trong khoa học, kỹ thuật và thương mại. Từ
đó hình thành nên các “tổ chức ảo” (Virtual Organization (VO)), các liên minh tạm thời
giữa các tổ chức và tập đoàn, liên kết với nhau để chia sẻ tài nguyên và/hoặc kỹ năng
nhằm đáp ứng tốt hơn các cơ hội kinh doanh hoặc các dự án có nhu cầu lớn về tính toán
và dữ liệu, toàn bộ việc liên minh này dựa trên các mạng máy tính”.
Hình 1-1 mô tả các quá trình phát triển của điện toán, từ kiến trúc máy vi tính lớn/thiết bị
đầu cuối, đến máy tính cá nhân, mạng điện toán đến điện toán lưới và đám mây.
Trong giai đoạn 1, nhiều người dùng tương tác với một máy vi tính lớn qua các thiết bị
đầu cuối. Trong giai đoạn 2, các máy tính cá nhân có sức mạnh đủ để thỏa mãn đa số
người sử dụng. Trong giai đoạn 3, các máy tính cá nhân, máy tính xách tay và máy chủ
kết nối với nhau thông qua các mạng nội bộ để chia sẻ tài nguyên và tăng hiệu năng.
Trong giai đoạn 4, các mạng nội bộ được kết nối với các mạng nội bộ khác tạo thành
mạng toàn cầu như Internet để tận dụng các tài nguyên và ứng dụng ở xa. Trong giai đoạn
5, điện toán lưới cung cấp khả năng chia sẻ sức mạnh điện toán và lưu trữ thông qua một
hệ thống điện toán phân tán. Trong giai đoạn 6, điện toán đám mây cung cấp khả năng
chia sẻ tài nguyên trên Internet thông qua một cách đơn giản và linh động hơn.

8





Hình 1-1. Các giai đoạn phát triển của điện toán
Điện toán lưới là sự kết hợp và chia sẻ tài nguyên cũng như cách thức giải quyết vấn đề
trong môi trường các tổ chức ảo động, nhiều thành viên nghiên cứu. Việc chia sẻ được
giám sát chặt chẽ trong đó những nhà cung cấp tài nguyên và những nhà tiêu thụ định
nghĩa rõ ràng và cẩn thận cái gì được chia sẻ, ai được chia sẻ và chia sẻ trong điều kiện
nào.
Bước phát triển tiếp theo của điện toán lưới là điện toán theo nhu cầu, trong đó các tài
nguyên máy tính được đo đạc như các dịch vụ. Điện toán theo nhu cầu đã giới thiệu ý
tưởng về việc cung cấp động các tài nguyên điện toán.
Điện toán đám mây được định nghĩa như là sự cung cấp các ứng dụng như các dịch vụ
thông qua Internet, và các phần mềm và cơ sở hạ tầng phần cứng trong các trung tâm dữ
liệu cung cấp các dịch vụ đó dùng mô hình kinh doanh giống như điện toán theo nhu cầu.
Việc đo đạc các dịch vụ để hỗ trợ cho mô hình kinh doanh thanh toán theo nhu cầu là
thích hợp với các phần mềm ứng dụng (SaaS), nền tảng (PaaS), và cơ sở hạ tầng (IaaS).
9



Thêm vào đó, điện toán đám mây tận dụng các công nghệ đang phát triển như Web 2.0
cho các dịch vụ ứng dụng, và ảo hóa cho việc cung cấp các tài nguyên động.
So sánh 6 giai đoạn phát triển của điện toán, có vẻ như điện toán đám mây là một sự quay
trở lại với mô hình điện toán máy tính lớn ban đầu. Tuy nhiên, hai mô hình này có vài
điểm khác biệt quan trọng. Điện toán máy vi tính lớn chỉ cho phép một sức mạnh tính
toán giới hạn, trong khi điện toán đám mây cung cấp một sức mạnh và dung lượng gần
như vô hạn. Thêm vào đó, trong điện toán máy tính lớn các thiết bị đầu cuối chỉ là những
thiết bị truy cập, trong khi với điện toán đám mây các máy tính cá nhân có thể cung cấp
khả năng điện toán và bộ đệm.
Dẫu cho, ngày nay điện toán đám mây ở mọi nơi được nhắc đến và hưởng ứng thì tính
toán lưới vẫn có chỗ đứng trong các phòng nghiên cứu các dự án của các tổ chức cần đến
hỗ trợ tính toán lớn dựa trên nền tảng hạ tầng có sẵn với một cộng đồng tài nguyên tự

nguyện.
“Grid needs Cloud to prosper; Cloud needs Grid to scale” “Tính toán lưới cần Cloud để
phát triển, còn Cloud cần lưới để mở rộng” Ian Foster. [4] [5]
Một số dự án lưới vẫn tiếp tục được quan tâm và triển khai.
- EGI = European Grid Infrastructure: Các tài nguyên được sử dụng bởi hơn 13.000
nhà khoa học trên khắp châu Âu [6]
- StratusLab: Gia tăng hạ tầng điện toán lưới với công nghệ ảo hóa và đám mây [10]
- Initiative for Globus in Europe (IGE) : Mục tiêu chính là tiếp tục hỗ trợ cơ sở hạ
tầng máy tính châu Âu, để phục vụ như một điểm trung tâm liên lạc tại châu Âu cho
Globus, vào hướng Globus phát triển phù hợp với các yêu cầu của người dùng châu Âu và
tăng cường ảnh hưởng của các nhà phát triển châu Âu trong Liên minh Globus.
- …
1.1.2 Vai trò của tính toán lưới trong nghiên cứu khoa học (e-science)
Mục này đề cập đến vai trò của Tính toán lưới và lý giải vì sao Tính toán lưới là mô hình
lý tưởng cho các bài toán thuộc nhiều ngành khoa học khác nhau.
Chúng ta sẽ lấy ví dụ là bài toán mô phỏng sự đụng độ của các lỗ đen để nói lên những
đặc tính thường có trong những bài toán thuộc nhiều lĩnh vực khác nhau và sự phù hơp
khi dùng Tính toán lưới để giải quyết những bài toán này. Một số vấn đề có thể còn đang
ở dạng nghiên cứu phát triển nhưng chúng ta tin rằng chúng sẽ được hiện thực trong một
tường lai gần. 4 vấn đề thường thấy trong các bài toán khoa học mà cụ thể là bài toán
trong vật lý thiên thể, mô phỏng sự đụng độ của các lỗ đen
 Chia sẻ tài nguyên bên trong tổ chức ảo (Virtual Organization)
10



 Giao tiếp với những công việc đang được thực thi trên hệ thống lưới
 Tính toán phân tán
 Quản lý dữ liệu


1.1.2.1 Chia sẻ tài nguyên bên trong tổ chức ảo (Virtual Organization)
Một tổ chức ảo là một tập hợp các tài nguyên được quản lý một cách độc lập, những được
hợp tác, tập hợp lại để cộng đồng dùng nó giải quyết một mục tiêu chung. Việc tổ chức
và sử dụng tài nguyên một cách hiệu quả rất quan trọng đối với cộng đồng người sử dụng
này.
Kịch bản sử dụng đơn giản và quan trọng nhất trong tính toán khoa học dựa trên Grid là
khám phá tài nguyên (resource discovery) và nhờ hệ thống lưới thực thi một công việc
nào đó (job submission). Một nhà khoa học ở Châu Âu đã chuẩn bị một file thực thi và
các tham số đầu vào để giả lập việc trộn lẫn vào nhau giữa các lỗ đen,việc giả lập sử dụng
nhiều tài nguyên phân tán ở khắp nơi trên thế giới, thông thường việc truy xuất tài nguyên
ở mỗi nơi cần có một tài khoản, mật khẩu, hàng đợi, hệ thống tệp… khác nhau.Điều này
gây khó khăn rất lớn cho cho các nhà khoa học có thể tiến hành các thí nghiệm, các mô
phỏng với quy mô lớn. Ngay cả việc đơn giản là chọn một nơi nào đó để thực thi quá
trình mô phỏng cũng đã rất phức tạp.
Nhưng với công nghệ Grid, quá trình truy xuất những tài nguyên này sẽ trở nên đơn giản.
Việc xác nhận dựa trên chứng chỉ (certificate) cho phép người sử dụng truy xuất tất cả hệ
thống trong tổ chức ảo với chỉ một lần đăng nhập, định danh và mật khẩu khi đăng nhập
vào tổ chức ảo sẽ được ánh xạ vào tài khoản của người sử dụng đó. Đồng thời mô hình
Grid cũng sẽ loại bỏ đi những đặc tính riêng của từng tài nguyên, tạo ra giao diện chung
cho hệ thống tệp, cách nén dữ liệu… và do đó cho phép người sử dụng dùng các câu lệnh
truy xuất thống nhất cho tất cả các tài nguyên.
Việc xây dựng những cổng thông tin dựa trên web ( web-based portal) cho phép người
dùng truy xuất dễ dàng và thân thiện tất cả tài nguyên trong một tổ chức ảo. Sau khi đăng
nhập vào, người dùng về nguyên tắc có thể nhìn thấy được tất cả các tài nguyên sẵn có và
có thể cho chạy (submit) một công việc trên tài nguyên nào. Đôi khi người dùng chỉ quan
tâm đưa công việc của mình lên lưới để chạy (submit), còn việc phân tán tài nguyên để
cho hệ thống tự động.
11






Hình 1-2. Mối quan hệ chia sẻ bên trong tổ chức ảo
1.1.2.2 Giao tiếp với những công việc đang được thực thi trên hệ thống lưới
Trước đây, một nhà khoa học khi muốn chạy một ứng dụng mô phỏng lớn thì trước tiên
phải thông báo và chuyển công việc vào một hệ thống trên một máy ở xa và sau đó cứ
một khoảng thời gian lại log in vào máy từ xa đó để kiểm tra trạng thái của công viêc.
Công việc đó có thể vẫn còn trong hàng đợi hoặc có thể công việc đó đang được thực thi
và cũng thường xuyên xảy ra trường hợp công việc đó đã bị kết thức vì một lý do nào đó.
Có những trường hợp công việc nằm trong hàng đợi cả ngày, nhưng khi được thực thi thì
thất bại chỉ vì một lỗi đơn giản trong quá trình khởi động hay có những công việc đã chạy
cả 100.000 giờ của CPU nhưng cuối cùng lại trả ra kết quả sai chỉ vì tham số đầu vào sai.
Những trường hợp như thế đã làm nảy sinh nhu cầu cần phải phát triển cơ chế giao tiếp ,
quản lý và chuyển hướng những công việc tốt hơn, đòi hỏi độ phức tạp hơn.
Cactus là một ứng dụng Grid cho phép người dùng thông qua trình duyệt web có thể giao
tiếp với các công việc đang thực thi. Cactus Webserver Thorn HTTPD là một máy chủ
web cho phép thể hiện tất cả thông tin của một công việc đang thực thi bao gồm chương
trình con đang chạy, phiên bản, thời gian ước lượng hoàn tất, file dữ liệu nào được ghi
… Các tham số được khai báo steerable có thể được thay đổi thông qua giao diện web ,
tần suất I/O , variable output, downsampling… cũng có thể được thay đổi nếu cần, cho
phép người sử dụng sửa lại chương trình mà không phải bắt đầu lại. Khi một công việc
bắt đầu, URL của nó được phát tán đến một cổng thông tin (portal), cổng thông tin này sẽ
12



thông báo đến một nhóm người cùng hợp tác trong công việc này thông qua email hoặc
tin nhắn SMS cùng với những thông tin để họ có thể truy xuất quá trình mô phỏng từ trình
duyệt. Những sự kiện mô phỏng quan trọng, như việc trộn lẫn hai lỗ đen có thể được lập

trình để kích hoạt thông báo đến một người sử dụng nào đó hoặc là một nhóm người cùng
cộng tác trong việc giả lập đó.
Cổng thông tin vì vậy trở thành công cụ tổ chức cho khoa học tính toán hợp tác. Công
việc có thể được phân loại theo trạng thái, theo chủ đề hoặc theo sự cộng tác. Đường liên
kết (hyperlink) đến dữ liệu sinh ra từ quá trình giả lập.

Hình 1-3. Giao diện cổng web.
13




Hình 1-4. Cổng thông tin hỗ trợ dich vụ tính toán lưới
Những công nghệ này đang được sử dụng rất nhiều trong các dự án khoa học.
1.1.2.3 Tính toán phân tán
Chúng ta sẽ mô tả các phương thức khác nhau cho một ứng dụng phân tán thông qua 4
khái niệm liên quan đến việc sử dụng tài nguyên :
 task farming
 metacomputing
 migration
 spawning
Task farming là bước tiếp cận mà trong đó những task độc lập nhau hoặc là kết nối lỏng
lẻo sẽ thực thi trên những tài nguyên rải rác trong tổ chức ảo. Những tasks này đòi hỏi rất
ít hoặc thậm chí không có sự giao tiếp dữ liệu giữa các task và thường trả về dữ liệu rất ít.
Task farming có thể được dùng cho việc nghiên cứu tìm ra các tham số phù hợp cho một
bài toán, các tham số này thay đổi với rất nhiều khả năng khác nhau để tìm ra một giải
pháp hứa hẹn nhất trước khi đi sâu vào nghiên cứu. Ví dụ việc nghiên cứu hiện tượng lực
hấp dẫn hình thành nên lỗ đen, việc nghiên cứu này đòi hỏi phải biết một cách chính xác
biên độ của sóng lúc ban đầu. Một thay đổi nhỏ trên giá trị biên độ này sẽ quyết định sóng
bị hút bởi lỗ đen hay bị phân tán. Ngoài ra còn rất nhiều ví dụ khác trong khoa học cần

14



tìm những giá trị có độ chính xác tương đối cao. Grid task farming tận dụng công nghệ
lưới để khám phá những tài nguyên thích hợp trong một tổ chức ảo, thực thi một tập các
task, nhận kết quả trả về, tất cả diễn ra trong một thời gian ngắn
Metacomputing là việc phân tán một hoặc nhiều task kết nối chặt đến một số lượng máy
rất lớn. Metacomputing có thể được sử dụng để tăng không chỉ khả năng tính toán của hệ
thống mà còn tăng tính sẵn có của hệ thống. Ví dụ quá trình tính toán cần 1024 bộ xử lý
nhưng không có một máy nào có sẵn chừng đó bộ xử lý, thì có thể dùng 4 máy với 256 bộ
xử lý mỗi máy để tính toán. Sự khả thi của metacomputing đã được chứng minh với
những ứng dụng thực tế. Ví dụ năm 2001, mô phỏng sự va chạm giữa các lỗ đen sử dụng
nhiều máy từ xa, chạy trên những hệ điều hành khác nhau, sử dụng những kỹ thuật có khả
năng thích nghi để có thể tự động điều chỉnh những message gửi thông qua môi trường
mạng giữa các máy, làm tăng hiệu suất từ 15% đến trên 70% thời gian thực thi việc mô
phỏng. Tầng trao đổi message dựa trên Grid cho phép những ứng dụng dựa vào Calcus có
thể được chạy mà không cần sự điều chỉnh nào. Những thí nghiệm như thế cho thấy rằng
metacomputing dựa trên Grid có thể được chạy với độ hiệu quả cao thậm chí cho những
giả lập có tính kết nối cao như phương trình Einstein (đòi hỏi nhiều sự giao tiếp). Khi
công nghệ Grid được triển khai đến nhiều phía khác nhau, những khả năng này có thể trở
thành chế độ hoạt động bình thường của hệ thống.
Migration là việc di chuyển quá trình giả lập từ phía này sang phía khác hoặc có thể là di
chuyển process mô phỏng từ máy này sang máy khác. Ví dụ do sự đụng độ làm chậm quá
trình mô phỏng hay quá trình mô phỏng cần nhiều bộ nhớ hơn để giải quyết một bài toán
đang phát triển, những nhu cầu đó dẫn đến quá trình mô phỏng cần phải di chuyển đến
một một tài nguyên khác thích hợp hơn. Việc di chuyển này cần sự hỗ trợ của broker
dịch vụ tài nguyên, nếu một tài nguyên mới được tìm thấy phù hợp với yêu cầu, broker
dịch vụ sẽ thông báo, để quá trình mô phỏng được chuyển sang môi trường mới.
Spawning là một biến dạng của Migration. Trong Spawning, chỉ một phần ứng dụng được

di chuyển đến một tài nguyên ở xa. Ví dụ khi mô phỏng sự đụng độ của các lỗ đen, nhiệm
vụ phân tích cần xác định vị trí của lỗ đen và tính toán lực hấp dẫn phát ra. Những nhiệm
vụ này cần rất nhiều thời gian và có thể không cần phải trả kết quả về cho chương trình
giả lập chính hoặc những nhiệm vụ này dễ dàng song song hóa và do đó có thể được di
chuyển đến một tài nguyên khác, cho phép tài nguyên chính tập trung trong việc giải
quyết vấn đề mô phỏng chính, trong mô phỏng lỗ đen năm 2001, việc mô phỏng được
chạy ở Đức nhưng nhiệm vụ phân tích được di chuyển đến tài nguyên ở Châu Âu , Châu
Á và Bắc Mỹ.

15



1.1.2.4 Quản lý dữ liệu
Một ví dụ cho thấy vấn đề quản lý dữ liệu là cần thiết và quan trọng thế nào đối với việc
nghiên cứu khoa học là quá trình mô phỏng 3D trong khoa học. Việc mô phỏng 3D sinh
ra một lượng lớn dữ liệu, dữ liệu này phải được phân tích, hiển thị trực quan và lưu trữ
cho những lần sử dụng sau. Mỗi một lần giả lập có thể sinh ra hàng trăm file với những
định dạng khác nhau, việc khám phá và thao tác trên những file này thì rất phức tạp bởi vì
người sử dụng chạy trên những máy tính khác nhau với những hệ thống tệp , khả năng lưu
trữ khác nhau. Đối với ứng dụng lưới, vấn đề quản lý dữ liệu còn khó khăn hơn. Người
dùng thậm chí còn không biết quá trình mô phỏng đang chạy trên máy nào hay sự mô
phỏng có thể được di chuyển giữa các tài nguyên khác nhau và dữ liệu chứa ở nhiều nơi
khác nhau. Thậm chí khi biết được vị trí của file dữ liệu thì cũng không thể di chuyển đến
một máy local để thuận tiện cho việc xử lý vì kích thước quá lớn của nó. Mặc dù công
nghệ Grid giúp ích rất nhiều cho nhóm các nhà khoa học trong việc thực thi, giám sát và
điều chỉnh những mô phỏng này từ xa trong khi những mô phỏng này đang được chạy,
những khối lượng dữ liệu khổng lồ được sinh ra từ quá trình mô phỏng không thể gửi tới
từng thành phần tham gia cho việc phân tích, thay vì vậy một nhóm các nhà khoa học có
thể phải bay từ Berlin sang Mỹ để nhìn thấy và lấy những kết quả này về.

GridFTP server là một công cụ cho việc thao tác dữ liệu từ xa đã được sử dụng bởi các
nhà thiên văn học. GridFTP server là sự mở rộng của dự án Đức GriKSL. Khi GridFTP
server chạy trên hệ thống tệp của máy đang có dữ liệu, nó cho phép file dữ liệu HDF5
được phân tích với hệ thống hiển thị trực quan ở local. Bất kỳ hệ thống hiển thị trực quan
nào tích hợp GridFTP client cùng với chương trình đọc file HDF5 đều có thể hiển thị dữ
liệu từ xa. Những chương trình đọc file HDF5 có sẵn trong các phần mềm như OpenDX ,
Amira. Những công cụ này đã giải quyết được vấn đề dữ liệu ở xa, và có thể được sử
dụng để tạo cái nhìn trực quan của dữ liệu ở cách xa hàng ngàn km.[2]
16




Hình 1-5. Sử dụng GridFTP để có cái nhìn trực quan kết quả thu được từ sự mô phỏng 2
lỗ đen đụng độ nhau
Mục này đã cho ta thấy được vai trò của Tính toán lưới trong khoa học. Mô hình kiến trúc
cũng như các giao thức giao tiếp của Tính toán lưới rất phù hợp để giải quyết những bài
toán có những vấn đề đặc thù trong nhiều ngành khoa học khác nhau. Điều này cũng có
thể dễ dàng giải thích bởi vì Tính toán lưới ra đời từ những yêu cầu cấp thiết trong nghiên
cứu khoa học hợp tác.
1.2 Các thách thức của an toàn thông tin trong điện toán đám mây
1.2.1 Đặc trưng
Các đặc trưng công nghệ tính toán lưới bao gồm:
- Các tài nguyên hết sức đa dạng, không đồng nhất. Tài nguyên ở đây được hiểu theo
nghĩa hết sức tổng quát. Đó có thể là các tài nguyên phần cứng: tài nguyên tính toán, tài
nguyên lưu trữ, các thiết bị đặc biệt khác ; các tài nguyên phần mềm: các CSDL, các
phần mềm đặc biệt và đắt giá ; các đường truyền mạng Các tài nguyên này có thể rất
khác nhau về mặt kiến trúc, giao diện, khả năng xử lý Việc tạo ra một giao diện thống
nhất cho phép khai thác và sử dụng hiệu quả các nguồn tài nguyên này hoàn toàn không
dễ dàng. Ban đầu tính toán lưới được đặt ra chủ yếu là để tận dụng các nguồn tài nguyên

tính toán nhưng hiện nay mục tiêu của nó đã được mở rộng sang rất nhiều nguồn tài
nguyên khác như đã kể trên.
- Các tài nguyên không chỉ thuộc về một tổ chức mà thuộc về rất nhiều tổ chức tham gia
lưới. Các tổ chức phải tuân thủ một số quy định chung khi tham gia vào lưới còn nhìn
chung là hoạt động độc lập tức là các tài nguyên này đều có quyền tự trị. Các tổ chức
17



khác nhau thường có chính sách sử dụng hay cho thuê tài nguyên của họ khác nhau và do
vậy cũng gây khó khăn cho việc quản lý.
- Các tài nguyên phân tán rộng khắp về mặt địa lý do vậy phải có các cơ chế quản lý phân
tán.
- Số lượng các tài nguyên được sử dụng đồng thời có thể lớn nhưng không cố định.
- Kết nối các mạng đa cấp và phức hợp.
1.2.2 Kiến trúc phân lớp của tính toán lưới
Về khía cạnh người sử dụng thì môi trường lưới có thể được chia làm 3 lớp:
*Lớp ứng dụng
*Lớp giữa
*Lớp cơ sở hạ tầng

Hình 1-6. Kiến trúc phân lớp của lưới
18



Lớp ứng dụng:
Trong môi trường lưới có rất nhiều loại ứng dụng khác nhau có nhu cầu sử dụng tài
nguyên của hệ thống tính toán lưới bên dưới, trong đó có những ứng dụng như việc truy
xuất dữ liệu qua điện thoại di động, hay các máy trạm cần tài nguyên cho việc tính toán

của nó, hay là các hệ thống mô phỏng cần một lượng rất lớn dữ liệu để trực quan hóa các
kết quả thí nghiệm.
Lớp giữa (middleware):
Khi đó lớp giữa (grid middleware) chính là lớp đóng vai trò như là 1 bức tường mỏng bao
bọc lấy lớp cơ sở hạ tầng. Nó có khả năng che dấu mọi sự phức hợp bên dưới của lớp cơ
sở hạ tầng, nhưng lại cung cấp cho lớp ứng dụng những giao tiếp được chuẩn hóa nhằm
làm đơn giản hóa cho các user có khả năng sử dụng dễ dàng hơn.

Lớp cơ sở hạ tầng:
Bao gồm các hệ thống siêu máy tính, clusters, các hệ thống lưu trữ dữ liệu, các phòng thí
nghiệm, hệ thống mạng internet toàn cầu, … Các hệ thống cơ sở hạ tầng này cung cấp khả
năng tính toán rất lớn, có khả năng lưu trữ lượng dữ liệu vô cùng lớn, chẳng hạn như dữ
liệu thu được từ việc thu thập dữ liệu khi theo dõi chuyển động của các vì sao,…
1.2.3 Thách thức an toàn thông tin
Một số vấn đề tồn tại trong tính toán lưới:
- Thiếu cơ chế kiểm soát linh hoạt dựa trên những chính sách linh hoạt
- Thiếu chính sách kiểm soát truy cập bên trong từn miền
- Thiếu giao tiếp nhóm an toàn
- Thiếu cơ chế ủy quyền để hỗ trợ khả năng mở rộng số lượng lớn tài nguyên và
người dùng.
Từ đặc trưng của tính toán lưới, và mô hình phân lớp của lưới ở trên, trong chương tiếp
theo, tôi tập trung giải quyết vấn đề an toàn thông tin trong tính toán lưới ở trên bằng
cách:
- Tìm hiểu các middleware có sẵn, xây dựng lưới tính toán đảm bảo yêu cầu cung
cấp các tính năng bảo mật thực hiện các nhiệm vụ:
o Cấp quyền truy cập cho thuê bao có giấy chứng nhận
o Kiểm tra tính hợp lệ và hạn dùng giấy chứng nhận
19




o Bảo vệ các nút với những truy cập trái phép
o Xác minh các thuê bao hợp pháp sử dụng một cách chính xác các nguồn tài
nguyên cho phép
o Cấp toàn vẹn dữ liệu
- Ở lớp cơ sở hạ tầng, xây dựng chính sách an toàn thông tin phù hợp cơ chế phòng
thủ theo chiều sâu.
Chương 3, tôi đề cập kỹ hơn đến giải pháp kiểm soát truyền thông trong tính toán lưới sử
dụng bức tường lửa mã nguồn mở Iptables

20



Chương 2 - Giải pháp bảo mật
2.1 Middleware
2.1.3 Định nghĩa
Grid middleware là phần mềm hệ thống nằm giữa lớp ứng dụng và hệ điều hành.
Nó có khả năng:
- Cung cấp các dịch vụ cho các ứng dụng. Bao gồm các dịch vụ về khám phá tài
nguyên(discovery), lưu trữ (storage), thực thi (execution), thông tin (information), theo
dõi tài nguyên (resource monitoring), kiểm lỗi và phục hồi (failure detector and
recovery),… Đây là các dịch vụ cốt lõi và thiết yếu nhất để làm sao user có thể tham gia
vào môi trường lưới. Chẳng hạn, khi 1 user muốn sử dụng 1 tài nguyên tính toán mà đã
được mô tả trước, thì dịch vụ khám phá tài nguyên sẽ dò tìm ra những loại tài nguyên
thích hợp cho user, sau đó sẽ cấp phát cho user ứng với quyền hạn mà user đó có thông
qua các dịch vụ về bảo mật (security). Sau khi được cấp phát, các dịch vụ theo dõi về
thông tin tài nguyên, theo dõi việc thực thi của job, lập lịch job (scheduling) sao cho hợp
lý,… Như vậy, ứng với mỗi quá trình đáp ứng yêu cầu của user, có rất nhiều dịch vụ tham
gia vào quá trình này.

- Che dấu sự phức hợp (heterogeneous) của môi trường lưới: Bởi vì cơ sở hạ
tầng của môi trường lưới là phức hợp, đó là sự tham gia của nhiều tổ chức, nhiều hệ thống
máy tính khác nhau, mỗi hệ thống lại chạy trên nền hệ điều hành khác nhau, như Unix,
Linux, Sun Solaris, Mac OS,… Nhưng đối với cái nhìn của người dùng, môi trường lưới
dưới vỏ bọc của Grid middleware, đó là 1 hệ thống tính toán lớn trong suốt (transparent).
Khi user yêu cầu thực thi 1 công việc nào đó, user không cần quan tâm đến việc thực thi
công việc của mình nằm trên những tài nguyên nào, ở xa hay gần, nằm ở đâu,… quan
trọng là kết quả mà người dùng nhận được, thời gian đáp ứng,…
- Cung cấp các giao tiếp đã được chuẩn hóa cho ứng dụng.
Mục đích của Grid middleware:
Có 3 mục đích:
- Xây dựng các giao tiếp, và các giao thức có tính mục đích chung, tính mở và
tính chuẩn. Bởi vì hệ thống lưới được xây dưng trên những giao tiếp và giao thức với rất
nhiều mục đích khác nhau. Những giao tiếp và giao thức này điều chỉ ra được các kết quả
cơ bản, mang tính nền tảng như về việc xác nhận, xác thực, khám phá tài nguyên, truy
xuất tài nguyên. Do đó, việc xây dựng các giao tiếp, giao thức chuẩn và mở là rất quan
trọng, nếu không, chúng ta chỉ xây dựng được những ứng dụng mang tính đặc thù mà
thôi.
- Định nghĩa các giao thức chuẩn: Nó định nghĩa nội dung và chuỗi các sự kiện
trao đổi thông điệp sử dụng các thao tác yêu cầu từ xa. Điều này rất quan trọng và cần
thiết để thực hiện tính interoperability (nghĩa là khả năng mà hai thực thể khác nhau có
21



thể làm việc với nhau, và được thực hiện bởi các giao thức thông thường) mà hệ thống
lưới phụ thuộc vào.
- Cung cấp các API chuẩn: đó là các giao diện lập trình ứng dụng chuẩn, định
nghĩa các giao tiếp chuẩn để viết mã thư viện, và cấu trúc các thành phần của Grid bằng
cách cho phép các thành phần mã được sử dụng lại.

-
Hình 2-1. Kiến trúc phân tầng của hệ thống lưới.
Kiến trúc lưới bao gồm nhiều tầng với những độ rộng khác nhau, được thể hiện thông qua
minh họa dạng hình đồng hồ cát như hình 2-1 (hình 2.2 – chương 2 – trong quyển
“F.Berman,G.Fox,T.Hey-Tính toán lưới-Making The Global Infrastructure a Reality
(Wiley2003)”. Phần hẹp nhất, phần cổ của đồng hồ cát là lớp về các giao thức kết nối và
giao thức tài nguyên (Resource and connectivity protocols). Lớp này chứa 1 tập rất nhỏ
các giao thức chính và giao diện lập trình ứng dụng mà sẽ được hiện thực ở mọi nơi. Lớp
trên cùng của đồng hồ cát là tập các ứng dụng và công cụ hỗ trợ. Và phần nằm dưới cùng
của đồng hồ cát là lớp cở sở hạ tầng, nó phụ thuộc nhiều vào công nghệ.
Dựa hình 2-1, ta cũng nhận ra rằng, Grid middleware chính là phần nằm trong hình chữ
nhật viền đen. Nó bao gồm 3 lớp chính:
- Lớp giao thức kết nối – Connectivity layer
- Lớp giao thức tài nguyên – Resource layer
- Lớp giao thức nhóm – Collective layer
22



Lớp giao thức kết nối – Connectivity layer
Đây là lớp có chức năng giao tiếp một cách dễ dàng và an toàn. Lớp kết nối định nghĩa
giao thức giao tiếp (communication) và giao thức xác thực (authentication).
- Giao thức giao tiếp cho phép các thông điệp có thể được trao đổi với nhau giữa
các tài nguyên của lớp Fabric.
- Giao thức xác thực xây dựng trên các dịch vụ giao tiếp bằng cách cung cấp cơ
chế bảo mật mã hóa cho việc xác định user và tài nguyên. Các giải pháp xác thực cho môi
trường tổ chức ảo (VO – Virtual Organization) có thể có 4 đặc tính sau:
o Single sign-on: User có thể được xác thực chỉ 1 lần bằng cách đăng
nhập vào hệ thống và có thể truy xuất vào nhiều tài nguyên lưới.
o Việc ủy quyền: User có khả năng ủy quyền cho 1 chương trình khác để

thực thi giống như những hành vi của user khi user đã được xác thực. Đến lượt chương
trình có thể ủy quyền cho những chương trình khác 1 cách tùy chọn.
o Việc tích hợp với nhiều giải pháp bảo mật cục bộ: Đó là việc mỗi tổ
chức, mỗi tài nguyên đã có nhưng giải pháp bảo mật riêng cho mình. Do đó, các giải pháp
bảo mật của hệ thống lưới sẽ tận dụng các giải pháp bảo mật cục bộ có sẵn này mà không
cần phải thay thế 1 giải pháp bảo mật mới, và chỉ cần cho phép ánh xạ vào môi trường cục
bộ.
o Mối quan hệ đáng tin cậy dựa trên user: Để user có khả năng truy xuất
vào tài nguyên từ nhiều nhà cung cấp khác nhau, thì hệ thống bảo mật không cần phải yêu
cầu các nhà cung cấp tài nguyên phải liên lạc với nhau để cấu hình cho môi trường mạng.
Chẳng hạn, nếu user có quyền truy xuất vào tài nguyên của tổ chức A và B, thì user có thể
truy xuất vào cả 2 tài nguyên của tổ chức A và B với nhau mà không cần sự liên lạc giữa
những nhà quản trị bảo mật của tổ chức A và B .
Lớp giao thức tài nguyên – Resource layer
Đây là lớp có khả năng chia sẻ các tài nguyên đơn lẻ. Nó định nghĩa các giao thức về
sự thương lượng an toàn, khởi tạo, theo dõi, điều khiển, tài khoản và sự trả chi phí cho
việc chia sẻ các thao tác trên những tài nguyên đơn lẻ. Lớp tài nguyên sẽ được hiện thực
bởi các giao thức để truy xuất và điều khiển các tài nguyên cục bộ, bao gồm 2 lớp chính:
- Giao thức thông tin (Information protocol) được sử dụng để rút ra thông tin về
cấu trúc và trạng thái của tài nguyên chẳng hạn như cấu hình của tài nguyên, tải hiện thời,
hay chính sách sử dụng,…
- Giao thức quản lý (Management protocol) được sử dụng để thỏa thuận việc
truy xuất vào tài nguyên chia sẻ, chẳng hạn về yêu cầu tài nguyên (bao gồm việc đặt chỗ
và chất lượng dịch vụ) và các thao tác thực hiện như khởi tạo, truy xuất tài nguyên,…
Lớp giao thức nhóm – Collective layer
Có khả năng quản lý 1 tập các tài nguyên trong khi lớp tài nguyên chỉ tập trung vào
việc tương tác giữa các tài nguyên đơn lẻ. Và nó dựa trên lớp kết nối và lớp tài nguyên để
23




hiện thực rất nhiều hành vi chia sẻ mà không cần phải thay thế những yêu cầu mới ứng
với mỗi tài nguyên được chia sẻ. Chẳng hạn:
- Directory service cho phép các thành viên tham gia vào tổ chức ảo có thể khám
phá ra tài nguyên hay các thuộc tính của tài nguyên. Nó cho phép user truy vấn về tài
nguyên bằng tên hoặc các thuộc tính như kiểu, sự sẵn sàng, hay tải.
- Coallocation-allocation, scheduling, and brokering services cho phép các
thành viên của tổ chức ảo yêu cầu việc định vị cho một hay nhiều tài nguyên và phân bố
các task cho các tài nguyên thích hợp.
- Monitoring and diagnotics services hỗ trợ việc theo dõi các tài nguyên của tổ
chức ảo về lỗi, việc tấn công hay việc quá tải.
- Data replication services hỗ trợ quản lý việc lưu trữ tài nguyên để tối đa hiệu
quả truy xuất như thời gian đáp ứng, khả năng tin cậy, chi phí,…
- Grid-enabled programming systems cho phép các mô hình lập trình thân thiện,
chẳng hạn như MPI (Message-passing Interfaces),…

2.1.3 Các công nghệ Middleware trong tính toán lưới
2.1.3.1 Globus Toolkit [1] [3]
Bộ công cụ Globus Toolkit, được phát triển bởi Globus Allicance, là bộ công cụ phổ biến
để phát triển các ứng dụng tính toán lưới, là nền của rất nhiều dự án tính toán lưới (TTL),
được xem xét để tạo ra chuẩn công nghiệp. Khi kết hợp với các chuẩn Open Grid Services
Architecture (OGSA standards) định hướng cho TTL, Globus được giới công nghiệp hỗ
trợ rất tích cực phát triển theo kiến trúc hướng dịch vụ (service-oriented architecture), và
dịch cụ Web (Web services).
Bộ công cụ Globus Toolkit là bộ công cụ phổ biến để phát triển các ứng dụng tính toán
lưới được phát triển bởi Globus Allicance và nhiều tổ chức khác trên thế giới. Globus
Toolkit gồm nhiều thành phần phần mềm, bao gồm cả các thành phần phát triển dựa trên
dịch vụ web và không dựa trên dịch vụ web.
Các thành phần của bộ Globus Toolkit được chia ra năm hạng mục sau đây:
 Môi trường chạy chung (Common Runtime): cung cấp các thư viện và các công cụ

để xây dựng các ứng dụng bao gồm cả các ứng dụng dựa trên dịch vụ Web và không dựa
trên dịch vụ Web
24



 Bảo mật: xây dựng dựa trên hạ tầng bảo mật lưới (Grid Security Infrastructure –
GSI)
 Quản lý dữ liệu: cho phép quản lý lượng lớn dữ liệu trong tổ chức ảo
 Các dịch vụ thông tin: cung cấp các công cụ để tìm kiếm và quản lý tài nguyên
trong tổ chức ảo
 Quản lý thực thi: khởi tạo, giám sát, quản lý, xếp lịch cho các công việc.
Mô hình kiến trúc của Globus:

Hình 2-2: Mô hình kiến trúc của Globus
Kiến trúc của GT5
- GSI C
o Globus Toolkit GSI C thành phần cung cấp các API và các công cụ cho phép xác
thực, cấp quyền, và quản lý giấy chứng nhận.
o API xác thực được xây dựng bằng cách sử dụng công nghệ cơ sở hạ tầng khóa
công khai (PKI), ví dụ như chuẩn chứng nhận X.509, TLS.
 Cơ chế tạo đại diện dựa trên chứng nhận Proxy X.509.
o Hỗ trợ cấp quyền có vài API.
25



 Đầu tiên cung cấp một API xác thực chung cho phép gọi chạy các kiếm soát truy
nhập dựa trên chứng thư của client (ví dụ: chuỗi chứng nhận X.509).
 Thứ hai cung cấp một danh sách điều khiển truy cập đơn giản map các quyền thực

thể từ xa với tên người dùng trên hệ thống cục bộ. (grid-mapfile)
 Cơ chế thứ hai cũng cung cấp các dòng mô tả cho phép các bên thứ ba để ghi đè
lên hành vi mặc định và hiện đang được sử dụng trong các máy chủ Gatekeeper và
GridFTP.
o Các API và công cụ mức thấp hơn quản lý, phát hiện và truy vấn giấy chứng nhận.

- GSI-OpenSSH
o GSI-OpenSSH là một phiên bản sửa đổi của OpenSSH có thêm hỗ trợ cho xác thực
chứng chỉ X.509 proxy và tạo đại diện, cung cấp đăng nhập từ xa một lần và dịch vụ
truyền tập tin.
o GSI-OpenSSH có thể được sử dụng để đăng nhập vào hệ thống từ xa và truyền tập
tin giữa các hệ thống mà không cần nhập một mật khẩu, chỉ dựa trên chứng thư proxy xác
thực hợp lệ.
o GSI-OpenSSH chuyển tiếp chứng thư proxy tới các hệ thống đăng nhập từ xa, vì
vậy các lệnh yêu cầu chứng thư proxy (bao gồm cả lệnh GSI-OpenSSH) có thể được sử
dụng trên hệ thống từ xa mà không cần phải tự tạo ra một chứng thư proxy mới vào hệ
thống đó.
- MyProxy
o MyProxy là phần mềm mã nguồn mở để quản lý chứng thư bí mật (giấy chứng
nhận và các khóa riêng tư) trên cơ sở hạ tầng khóa công khai (PKI) X.509.
o MyProxy kết hợp một kho lưu trữ chứng thư trực tuyến với một cơ quan chứng
nhận CA trực tuyến cho phép người dùng có được chứng thư an toàn khi nào và ở đâu
cần.
o Người dùng chạy myproxy-đăng nhập để xác thực và có được các chứng thư, bao
gồm cả chứng chỉ CA tin cậy và Danh sách Thu hồi Giấy chứng nhận (CRLs)
2.1.3.1 Glite [9]
a. Giới thiệu

gLite là một middleware (phần mềm trung gian) được phát triển bởi dự án EGEE với mục
đích hỗ trợ xây dựng các hệ thống tính toán lưới của dự án. Hệ thống Grid với gLite gắn

liền với những tổ chức ảo – VO (Virtual Organization), là một cách tổ chức hệ thống lưới
mô phỏng theo dạng tổ chức thật, giúp cho nhà quản trị có thể dễ dàng quản trị hệ thống
cũng như quản trị người dùng. gLite ngay sau đó đã nhanh chóng được nhiều tổ chức
chọn làm nền tảng xây dựng hệ thống lưới của mình. Nhiều tổ chức ảo được tạo ra với

×