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
Trang 1TRƯỜ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
Trang 2MỤ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
Trang 32.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
Trang 4A watermark is added at the end of each output PDF file.
To remove the watermark, you need to purchase the software from
http://www.anypdftools.com/buy/buy-pdf-splitter.html
Trang 5DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
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
NAT Network address translation Chuyển đổi địa chỉ mạng
GSI Grid Security Infrastructure Kiến trúc an ninh lưới
FTP File Transfer Protocol Giao thức truyền tập tin
Trang 6MỞ ĐẦ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
Trang 7Chươ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
Trang 8Hì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)
Trang 9Thê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
Trang 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
Trang 11Hì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
Trang 12thô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
Trang 13Hì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
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
Trang 14tì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ỹ
Trang 15GridFTP 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]
Trang 16Hì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
Trang 17khá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:
Trang 18Lớ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
Trang 19o 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
Trang 20Chươ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ó
Trang 21thể 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
Trang 22Lớ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 để
Trang 23hiệ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
Trang 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:
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
Trang 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 đó
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
Trang 26nhiều ứng dụng khác nhau trong rất nhiều lĩnh vực, từ khoa học cho đến các lĩnh vực thuộc về công nghiệp Có thể kể ra như: Khoa học máy tính và Toán học, Khoa học về sự sống, Hóa học, Khoa học về trái đất, Vật lý năng lượng cao, Vật lý hạt nhân, Nghiên cứu
vũ trụ,… và đã thu được nhiều kết quả quan trọng
Ví dụ như dự án LHC – Large Hadon Collider, một dự án rất nổi tiếng về lĩnh vực
vật lý hạt nhân Dự án này sử dụng một máy gia tốc lớn nhất thế giới (cũng có tên
gọi là LHC) để thực hiện các thí nghiệm về vật lý hạt nhân 4 VO chính được xây
dựng để đảm nhiệm việc phân tích dữ liệu từ các thí nghiệm: ALICE, ATLAS,
CMS, LHCb Gần đây nhất, LHC đã được dùng để tái tạo lại khoảnh khắc của vụ
nổ Big Bang
Theo thống kê, hiện đang có 150 VO đang hoạt động với số người sử dụng chính thức lên đến trên 150.000 người ( http://cic.gridops.org ) Riêng tại Châu Á, một dự án hợp tác giữa Châu Âu và Châu Á (EUAsiaGrid) nhằm mang EGEE đến với các nước trong châu lục này, đó cũng là mục tiêu chính của EGEE: xây dựng một hệ thống Grid chung nhằm phục cho tất cả các nghiên cứu viên trong các viện nghiên cứu và các trường đại học trên thế giới
Tại Việt Nam, trong một vài năm gần đây, gLite đã trở nên phổ biến trong giới khoa học
và công nghệ thông tin Những dự án hợp tác nghiên cứu giữa Viện khoa công nghệ Việt nam và CNRS nhằm xây dựng một hệ thống tính toán lưới dựa trên gLite đang hoạt động
và thu được một số kết quả ban đầu Một số lớp huấn luyện gLite đã được tổ chức cùng nhiều buổi hội thảo trong những năm qua nhằm giúp cho mọi người tiếp cận với gLite và
dự án EGEE: lớp học ACGRID Đồ Sơn tại Viện Công nghệ thông tin 5-6/11/ 2007, The first forum “Tính toán lưới for research” tại Phân viện Công nghệ thông tin đầu năm
2008, APAN tại Hawaii 01/2008, Southeast Asia 08 and the 4th PRAGMA institution tại Taichung cuối năm 2008 , và tại PRAGMA 17, 28-31/10/2009 tại Hà nội
Phân Viện Công nghệ thông tin Việt Nam tại TP Hồ Chí Minh (nay thuộc viện Cơ học và Tin học Ứng Dụng) cũng đã có một số đề tài nghiên cứu về các ứng dụng trên hệ thống tính toán lưới từ năm 2004 Viện đã thực hiện triển khai một số ứng dụng về Tin-Sinh học (Bioinformatics), Access Grid, e-Health trên hệ thống lưới Globus và gLite
Trong năm 2006, viện đã tiến hành kết nối hệ thống lưới của mình với tổ chức Pragma và tháng 11/2007, cũng đã kết nối với TWgrid - một hệ thống tính toán lưới của Đài Loan
và quản trị một VO là VNGrid trong hệ thống tính toán lưới Châu Á Thái Bình Dương Hiện nay, viện đang tham gia vào lưới EUAsiaGrid trong dự án FP7 (
http://www.euasiagrid.org/wiki )
Các ưu điểm của lưới với gLite :
− gLite kế thừa từ các dự án Grid trước đó nên tận dụng nhiều ưu điểm của các
thành phần vốn đã hoạt động rất ổn định và hiệu quả như bộ lập lịch và điều phối
Trang 27công việc Condor, cơ chế bảo mật lưới GSI, Globus Gatekeeper, …
− Xây dựng thêm nhiều dịch vụ nhằm tăng cường khả năng quản lý người dùng và
các tài nguyên, đồng thời hỗ trợ cho người dùng khả năng sử dụng lưới một cách
hiệu quả nhất
− Được xây dựng theo hướng dịch vụ, các thành phần được phân phối theo kiểu mô đun nên dễ dàng chọn lựa những thành phần cần thiết khi xây dựng một hệ thống
lưới theo nhu cầu riêng
− Được hỗ trợ mạnh mẽ từ dự án EGEE và nhiều tổ chức cũng như chính phủ các
nước trên thế giới
cứ ứng dụng nào trên đó
Middleware gLite cung cấp các thành phần sau:
− Thành phần giao tiếp với người dùng (User Interface)
− Thành phần quản trị chung (VOMS server)
− Các thành phần tài nguyên của lưới (Computing Element, Storage Element,
Worker Node)
− Thành phần quản lý thực thi công việc (Workload Management Service)
− Các thành phần cung cấp thông tin cho lưới (Information Service)
Ngoài ra gLite còn mang đến một số dịch vụ : FTS ,FTM ,LFC, LSF, VOBOX, MON,
Trang 28− Workload Management Service và Logging & Book keeping
− Computing Element
− Worker Node
− Storage Element
Bảy thành phần trên được cài đặt trên 7 máy tính riêng rẽ hoặc có thể cài đặt kết hợp một
số thành phần trên cùng một máy Tuy nhiên việc kết hợp này phải tính toán đến hiệu suất sử dụng các dịch vụ trên cùng một máy nhằm tránh quá tải cho hệ thống lưới
Ví dụ, Worker Node có thể được cài cùng các dịch vụ như Information Service,
Computing Element, User Interface Hệ thống minh họa chọn User Interface cài đặt cùng Worker Node vì User Interface đa số thực hiện các tác vụ truy vấn nên không chiếm giữ nhiều tài nguyên hệ thống
Các máy tính trên được nối mạng LAN với nhau nếu hệ thống triển khai là cục bộ, hoặc nối mạng internet trong trường hợp hệ thống là phân tán Cấu hình phần cứng của mỗi máy tùy theo qui mô của lưới sau này Về bản chất, hệ thống lưới với gLite tận dụng các tài nguyên nhàn rỗi và dư thừa nên có thể cài đặt trên bất kì máy tính nào, tuy nhiên để đáp ứng tốt nhu cầu của người sử dụng, các máy này nên được trang bị cấu hình mạnh Mỗi máy có thể truy cập được internet ít nhất là trong quá trình cài đặt vì quá trình này download các gói phần mềm từ internet Hệ điều hành cài đặt trên mỗi máy là Scientific Linux 4.x (được gLite 3.1 hỗ trợ)
Sơ đồ tổng quát của hệ thống sẽ xây dựng có thể được đề nghị như sau:
Hình 2-3 Sơ đồ tham khảo cho một hệ thống Grid với middleware gLite
Trang 29Domain: Grid
PC1.grid: VOMS server
PC2.grid: User Interface + Worker Node + Batch client (Torque)
PC3.grid: Workload Management + Logging & Bookkeeping
PC4.grid: Computing Element + BDII_site + Batch server (Torque)
cluster systems và dữ liệu lưu trên một loạt các Cơ sở dữ liệu lớn UNICORE được châu
Âu tham gia và tạo ra các trung tâm siêu máy tính và sử dụng hàng ngày UNICORE còn
có sự tham gia của các tổ chức nghiên cứu toàn cầu Hệ thống phần mềm lưới trung gian tiên tiến và được thử nghiệm rất chặt chẻ Đây cũng là dạng mã nguồn mở dưới bản quyền của BSD, đăng tải thường kì trên SourceForge Dưới đây là một số các dự án với UNICORE:
Trang 302.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
2.1.3.1 Xác thực và cấp phép
a CA
Để xây dựng một môi trường lưới sử dụng các thành phần GSI, bạn phải tạo một tập các khóa dành cho mã hóa khóa công khai và yêu cầu chứng chỉ của bạn từ CA, và sao chép khóa công khai của CA
Hình 2-4 Các thủ tục GSI
Hình vẽ trên cùng các thủ tục dưới đây sẽ mô tả các bước thiết lập giao tiếp GSI:
1 Sao chép khóa công khai của CA vào trạm lưới mà bạn sẽ thiết lập GSI
2 Tạo khóa riêng tư và một yêu cầu chứng chỉ
3 Gửi yêu cầu chứng chỉ của bạn tới CA bằng e-mail hoặc một cách an toàn khác trong trường hợp bạn đang chạy một ứng dụng mà cần xác định rõ người gửi
4 CA ký nhận lên yêu cầu của bạn để tạo chứng chỉ, sau đó gửi chứng chỉ đã ký cho bạn
Khi các thủ tục này hoàn thành và bạn đã nhận được chứng chỉ số của bạn, bạn sẽ có ba tệp quan trọng trên trạm lưới của bạn, đó là:
Khóa công khai của CA
Khóa riêng tư của trạm lưới
Chứng chỉ số của trạm lưới
Trang 31Để cung cấp xác thực và truyền thông an toàn cho các máy tính lưới, bạn không nên để ai khác có thể truy cập vào khóa riêng tư của bạn Một tầng mở rộng về an ninh đã được thêm vào khóa riêng tư, nó gồm một từ khóa bí mật mà phải được sử dùng khi sử dụng khóa riêng tư của bạn cùng với chứng chỉ số Điều này nhằm ngăn ai đó khỏi việc đánh cắp chứng chỉ số và khóa riêng tư của bạn, và có thể tự tiện sử dụng chúng để truy cập vào các tài nguyên lưới Khóa của trạm được bảo vệ bằng các quyền trên hệ điều hành cục
bộ bên trong server lưới
b Xác thực và cấp phép
Thử hình dung một kịch bản ở đó bạn cần giao tiếp với một ứng dụng của máy tính thuộc một lưới khác và bạn muốn chắc chắn rằng dữ liệu đến từ máy tính đó thực sự thuộc về chính máy tính đó Bên cạnh việc làm bạn tin tưởng máy đó, bạn cũng muốn máy tính đó tin tưởng bạn Trong những trường hợp đó, bạn có thể sử dụng chức năng xác thực của GSI (được mô tả trong hình vẽ bên dưới)
Trong những bước được mô tả bên dưới, bạn (grid host A) được xác thực và được cấp phép bởi grid host B Hầu hết các bước đều nhằm xác thực, trừ bước cuối là bước cấp phép
1 Gửi chứng chỉ của bạn đến một host khác (host B) mà bạn muốn được xác thực
2 Host B sẽ lấy khóa công khai của bạn cũng như tiêu đề của bạn từ chứng chỉ đó bằng cách sử dụng khóa công khai của CA
3 Host B tạo một số ngẫu nhiên và gửi nó cho bạn (host A)
4 Nếu bạn có số này, mã hóa nó bằng khóa riêng tư của bạn (bạn có thể sẽ được yêu cầu nhập mật khẩu để mở khóa riêng của bạn) và gửi số đã được mã hóa đến host B
5 Host B sẽ giải mã số và kiểm tra xem số đã được giải mã có thực sự là số đã được gửi trước đó không Sau đó host B xác thực rằng chứng chỉ thực sự là của bạn, bởi vì chỉ bạn mới có thể mã hóa số đó bằng khóa riêng tư của bạn
6 Chứng chỉ của bạn được xác thực bởi host B, sau đó tiêu đề của bạn trong chứng chỉ sẽ được ánh xạ tới một tên người dùng cục bộ Tiêu đề này ở dạng DN kiểu
“O=Grid/O=Globus/OU=itso.grid.com/CN=your name” và đây là tên được sử dụng bởi LDAP để phân biệt các truy nhập vào dịch vụ thư mục Tiêu đề được dùng để xác định định danh người dùng của bạn trong một môi trường lưới Ở đây bạn, người sở hữu DN, được xác thực bởi host B và đóng vai trò như một người dùng cục bộ trên host B
Trang 32Hình 2-5 Thủ tục xác thực
Trong các môi trường lưới, host của bạn sẽ trở thành một client trong vài trường hợp, và trong những trường hợp khác, lại trở thành một server Do đó, host của bạn có thể sẽ được yêu cầu xác thực một host khác và được xác thực bởi host đó cùng thời điểm Trong trường hợp này, bạn có thể dùng chức năng xác thực tương hỗ của GSI Chức năng này cũng giống như những gì đã được mô tả ở phần trên tài liệu, và nó cứ tiếp tục với các bước xác thực, và thay đổi hướng của các host rồi lặp lại thủ tục xác thực
Nói ngắn gọn, xác thực là quá trình chia sẻ các khóa công khai một cách an toàn, và cấp phép là quá trình ánh xạ DN của bạn tới một người dùng cục bộ hoặc nhóm cục bộ trên một host từ xa
Trang 332.1.3.2 Ủy quyền
Thử tưởng tượng tình huống ở đó bạn phân phối công việc cho các máy tính trong lưới từ
xa và điều khiển chung phân phối các công việc con của chúng đến các máy tính khác dưới chính sách an ninh do bạn quy định Trong tình huống này, bạn có thể sử dụng chức năng ủy quyền của GSI, được thể hiện như hình vẽ bên dưới
Hình 2-6 Thủ tục ủy quyền bởi proxy của server
Nếu bạn ở phía host A, bạn có thể tạo proxy của bạn tại host B để ủy quyền giấy phép của bạn Proxy này đóng vai trò của bạn, và nhân danh bạn đệ trình một yêu cầu đến host C
Trang 34Bước tiếp theo (xem phần “Tạo proxy” bên dưới) mô tả thủ tục để tạo proxy của bạn tại một máy từ xa, và thủ tục nhân danh bạn đệ trình một yêu cầu (xem phần “Thao tác proxy” bên dưới) đến một máy ở xa khác
Tạo proxy
Để tạo proxy cần:
1 Một giao tiếp được tin cậy được tạo giữa host A và host B
2 Bạn yêu cầu host B tạo một proxy mà sẽ ủy quyền giấy phép của bạn
3 Host B tạo yêu cầu cho chứng chỉ proxy của bạn, và gửi nó trở lại host A
4 Host A ký lên yêu cầu để tạo chứng chỉ proxy của bạn bằng cách sử dụng khóa riêng tư của bạn rồi gửi nó lại cho host B
5 Host A gửi chứng chỉ của bạn đến host B
Thao tác proxy
Các thao tác của proxy:
1 Proxy của bạn gửi chứng chỉ của bạn và chứng chỉ của proxy của bạn đến host C
2 Host C nhận khóa công khai của proxy của bạn thông qua thủ tục phê chuẩn đường dẫn:
a Host C nhận tiêu đề của bạn và khóa công khai của bạn từ chứng chỉ của bạn bằng cách sử dụng khóa công khai của CA
b Host C nhận tiêu đề của proxy và khóa công khai của proxy của bạn từ chứng chỉ của proxy của bạn bằng cách sử dụng khóa công khai của bạn
Trang 35Thủ tục ở hình vẽ thể hiện sự ủy quyền từ xa, ở đó một người dùng tạo ra một proxy tại một máy ở xa Cũng có thể gọi là ủy quyền cục bộ nếu một người dùng tạo một chứng chỉ proxy tại máy cục bộ; với các tác vụ này, Globus Toolkit sử dụng lệnh grid-proxy-init và
sử dụng tiến trình gatekeeper
Khi bạn tạo một proxy tới máy ở xa (trường hợp ủy quyền từ xa), khóa riêng tư của proxy
sẽ ở trên proxy từ xa, do đó siêu-người-dùng của máy này có thể truy cập khóa riêng tư của proxy của bạn và thực hiện các nghiệp vụ dưới tên của bạn Điều này có thể là lỗ hổng dễ bị tấn công Để phòng tránh sự mạo nhận đó, proxy nên có các chính sách giới hạn, ví dụ sử dụng GRAM Tiêu chuẩn này được mô tả dạng dự thảo tại địa chỉ:
http://www.ietf.org/internet-drafts/draft-ietf-pkix-proxy-03.txt
2.1.3.3 Giao tiếp bí mật
Ở chế độ mặc định, mọi giao tiếp cơ bản trên lưới đều dựa trên việc xác thực tương hỗ của các chứng chỉ số và SSL/TLS Chứng chỉ số đã được cài đặt trên các máy tính lưới cung cấp xác thực tương hỗ giữa hai tổ chức Các chức năng SSL/TLS mà OpenSSL cung cấp sẽ mã hóa toàn bộ thông tin giữa các host trong lưới Hai chức năng này cùng cung cấp các dịch vụ an ninh cơ bản nhằm xác thực và bảo mật
Xác thực tương hỗ
Để cho phép giao tiếp an toàn trong lưới, gói OpenSSL được cài đặt như một thành phần của Globus Toolkit Bên trong Globus Toolkit, OpenSSL là một gói phần mềm được dùng để tạo ra một đường hầm được mã hóa bằng cách sử dụng SSL/TSL giữa các client
và server trong lưới
Quá trình xác thực tương hỗ bắt đầu khi hai tài nguyên lưới muốn chia sẻ tài nguyên Thay vì sử dụng một kho khóa, mỗi tài nguyên lưới xác thực với một tài nguyên khác dựa trên chứng chỉ số của họ Ví dụ, một tài nguyên lưới sẽ thử thiết lập giao tiếp an toàn với một tài nguyên lưới khác Trước khi người nhận sẽ cho phép client truy cập vào các tài nguyên của họ, họ cần xác thực một người khác Quá trình này được mô tả dưới đây với một bắt tay SSL
Trang 36Bắt tay SSL
Để thiết lập giao tiếp an toàn giữa các client và server của lưới, phải thiết lập một bắt tay Bắt tay này có trách nhiệm xác định các thiết lập SSL, trao đổi khóa công khai và làm nền tảng cho quá trình xác thực tương hỗ Quá trình bắt tay diễn ra như sau:
1 Một client trong lưới liên hệ với một server ở xa để bắt đầu một phiên an toàn bằng cách sử dụng một chứng chỉ số X.509
2 Client tự động gửi đến server số phiên bản SSL của client đó, các thiết lập mã hóa,
dữ liệu được sinh ngẫu nhiên, và các thông tin khác mà server cần để giao tiếp với client
sử dụng SSL
3 Server sẽ phản hồi, tự động gửi đến client chứng chỉ số của site, cùng với phiên bản SSL của server, các thiết lập mã hóa
4 Client phân tích thông tin chứa trong chứng chỉ của server, và kiểm chứng rằng:
a Chứng chỉ của server là hợp lệ và có một thời gian phù hợp
b CA mà phát hành chứng chỉ của server phải được ký bởi một CA tin cậy, nơi mà chứng chỉ của họ được xây dựng cho client
c Khóa công khai của CA đã phát hành, được xây dựng trong client, phê chuẩn chữ ký số của nơi phát hành
d Tên miền được đặc tả bởi chứng chỉ của server phải khớp với tên miền thực
sự của server
5 Nếu server có thể được xác thực thành công, client sinh một “khóa phiên” duy nhất
để mã hóa toàn bộ giao tiếp với server sử dụng khóa bất đối xứng
6 Client của người dùng mã hóa khóa phiên của nó với khóa công khai của server do
đó chỉ có site có thể đọc khóa phiên, và gửi nó cho server
7 Server giải mã khóa phiên bằng cách sử dụng khóa riêng tư của nó
8 Client gửi một thông điệp đến server để cho biết rằng các thông điệp tiếp theo từ client sẽ được mã hóa với khóa phiên Server sau đó cũng gửi một thông điệp đến client
để cho biết rằng các thông điệp tiếp theo từ server sẽ được mã hóa với khóa phiên
9 Bây giờ, một phiên SSL-an-toàn đã được thiết lập SSL sau đó dùng mã hóa đối xứng (nhanh hơn mã hóa PKI công khai) để mã hóa và giải mã các thông điệp bên trong
“đường ống” SSL-an-toàn
10 Bây giờ các tài nguyên lưới đầu tiên đã được xác thực, tài nguyên lưới thứ hai sẽ được xác thực bằng cách sử dụng quá trình tương tự
11 Chỉ khi phiên làm việc hoàn thành, khóa phiên mới bị hủy bỏ
Miễn là cả hai tài nguyên lưới đều có một chứng chỉ số hợp lệ, quá trình xác thực tương
hỗ sẽ thành công Đây là một ví dụ rõ ràng về cách an ninh lưới sử dụng cả mã hóa đối xứng và mã hóa bất đối xứng để xác thực và truyền dữ liệu an toàn giữa các tài nguyên lưới Một client dùng mã hóa bất đối xứng để xác thực và chỉ khi nó được xác thực, nó dùng mã hóa đối xứng với một khóa riêng tư được chia sẻ để mã hóa và giải mã toàn bộ
dữ liệu giữa chúng
Trang 372.2 Hạ tầng
Áp dụng nguyênt tắc phòng thủ theo chiều sâu (Defense in Depth), ngoài những thành
phần và công nghệ GSI, có nhiều thành phần hạ tầng an ninh lưới khác nhau có thể cần đến để đảm bảo an ninh cho mạng lưới Được xem như một thành phần của thiết kế mạng lưới, hạ tầng an ninh lưới được xây dựng dựa trên các nguyên lý an ninh khác nhau Trong khi các thành phần an ninh này là tùy chọn, chúng được xem như là chuẩn bên trong nhiều mạng hiện nay Chúng ta sẽ khảo sát vài khái niệm an ninh cơ bản và xem xét chúng phù hợp thế nào với một hạ tầng lưới
2.2.3 An ninh mức vật lý
Cần nhắc lại là an ninh của hạ tầng lưới được dựa trên các khái niệm an ninh cơ bản, thông dụng Trong đó, an ninh mức vật lý được xem là nền tảng cho toàn bộ các máy tính trong lưới Nếu các máy chủ được để trong một căn phòng mở cửa, chưa cần xem xét các ứng dụng được thiết kế an toàn như thế nào hoặc các thuật toán mã hóa phức tạp ra sao thì các dịch vụ của máy chủ có thể dễ dàng bị ngắt, ví dụ tắt nguồn điện Do đó, truy cập vật
lý phải được kiểm soát như là một phần trong các chính sách an ninh mà cần được định nghĩa
Máy chủ CA nên được để trong một tủ lớn, được dành riêng, và được khóa Mọi vào ra đều phải được ghi lại và kiểm soát sao cho chỉ có những cá nhân liên quan đến CA mới có thể vào Nguồn điện cho các server phải không bao giờ bị ngắt, tức là phải có bộ lưu điện Tuy nhiên, một bộ lưu điện cũng có lúc cạn điện sau một khoảng thời gian nhất định Trong trường hợp như vậy, các máy chủ nên được tự động sao lưu dữ liệu và có thể được tắt an toàn Cửa ra vào của phòng cũng có thể được giám sát để kiểm tra xem những ai đã vào phòng
Đối với an ninh mức cao nhất, phân đoạn mạng mà trên đó các máy chủ PKI-nhạy-cảm được cài đặt nên được phân cách cả logic lẫn vật lý khỏi phần còn lại của mạng Lý tưởng nhất là phân đoạn này được lọc qua một bức tường lửa sao cho trong suốt với những lưu lượng liên quan đến PKI Thông thường, lưu lượng PKI sẽ được giảm để chỉ sử dụng rất ít các cổng TCP/IP