ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN VĂN TRUNG
NGHIÊN CỨU VIỆC ĐẢM BẢO AN TOÀN THÔNG TIN TRONG HỆ THỐNG TÍNH TOÁN LƯỚI
LUẬN VĂN THẠC SĨ
Hà Nội - 2011
1
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN VĂN TRUNG
NGHIÊN CỨU VIỆC ĐẢM BẢO AN TOÀN THÔNG TIN TRONG 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. Trịnh Nhật Tiến
Hà Nội - 2011
2
MỤC LỤC
MỤC LỤC .............................................................................................................. 1 DANH MỤC THUẬT NGỮ ................................................................................... 6
LỜI CAM ĐOAN .................................................................................................... 8
LỜI CẢM ƠN ....................................................................................................... 10
CHƯƠNG 1. TỔNG QUAN VỀ TÍNH TOÁN LƯỚI ..................................... 11 1.1. TÍNH TOÁN LƯỚI. ................................................................................... 11 1.1.1. Khái niệm Tính toán lưới. ..................................................................... 11 1.1.2. Lợi ích của Tính toán lưới. ................................................................... 13 1.1.3. Vấn đề cơ bản của một hệ thống lưới. ................................................... 15 1.1.4. Kiến trúc của một lưới .......................................................................... 16 1.2. VẤN ĐỀ AN TOÀN THÔNG TIN TRONG TÍNH TOÁN LƯỚI ............... 17 1.2.1. Các thách thức an toàn trong Tính toán lưới. ....................................... 18 1.2.2. Các chính sách bảo đảm an ninh cho hệ thống lưới .............................. 20 1.2.3. Kiến trúc an ninh cho hệ thống lưới ..................................................... 23
3
CHƯƠNG 2. NỀN TẢNG AN TOÀN THÔNG TIN LƯỚI GSI .................... 29 2.1. CÁC KHÁI NIỆM CƠ BẢN VỀ AN TOÀN THÔNG TIN ......................... 29 2.1.1. Mã hóa thông tin .................................................................................. 29 2.1.2. Hệ mã hóa khóa đối xứng. .................................................................... 30 2.1.3. Hệ mã hóa khóa phi đối xứng. .............................................................. 31 2.1.4. Chữ ký số .............................................................................................. 32 2.1.5. Chứng chỉ số. ........................................................................................ 33 2.1.6. Nhà cung cấp và quản lý chứng chỉ số. ................................................. 35 2.2. CƠ SỞ HẠ TẦNG AN TOÀN THÔNG TIN TRÊN LƯỚI. ........................ 37 2.2.1. Cơ sở hạ tầng mật mã khóa công khai. ................................................. 37 2.2.2. Bảo vệ thông tin mức thông điệp và mức giao vận. ............................... 38 2.2.3. Giấy ủy nhiệm lưới. .............................................................................. 39 2.2.4. Sự ủy quyền. ......................................................................................... 39 2.2.5. Chứng thực trong GSI. .......................................................................... 40 2.2.6. Ứng dụng của GSI. ............................................................................... 40 2.3. BỘ CÔNG CỤ GLOBUS TOOLKIT 4.0. ................................................... 41 2.3.1. Thành phần chính của Globus Toolkit. ................................................. 41 2.3.2. An toàn bảo mật trong Globus Toolkit. ................................................. 45 2.3.3. Minh họa cài đặt cơ chế an toàn bảo mật cho dịch vụ GRAM. .............. 47
CHƯƠNG 3. HỆ THỐNG QUẢN LÝ TỔ CHỨC ẢO ................................... 50 3.1. TỔ CHỨC ẢO. ........................................................................................... 50 3.1.1. Khái niệm tổ chức ảo. ........................................................................... 50 3.1.2. Tổ chức ảo và tài nguyên lưới. .............................................................. 51 3.1.3. Thông tin người dùng trong tổ chức ảo. ................................................ 53 3.1.3.1 Cấu trúc tổ chức ảo. ........................................................................ 53 3.1.3.2 Thông tin người dùng. ..................................................................... 54 3.1.3.3 Định dạng thông tin VO. ................................................................. 55 3.1.3.4 Thông tin về các quyền người dùng với RP. .................................... 55 3.2. HỆ THỐNG QUẢN LÝ TỔ CHỨC ẢO. ..................................................... 56 3.2.1. Người dùng với VOMS. ......................................................................... 57 3.2.1.1 Người dùng lưới với VOMS. ........................................................... 57 3.2.1.2 Người quản trị với VOMS ............................................................... 60 3.2.2. Dịch vụ VOMS. ..................................................................................... 61 3.2.2.1 Dịch vụ sinh thuộc tính AAS. .......................................................... 62 3.2.2.2 Dịch vụ đăng ký & quản trị ARS. .................................................... 63 3.2.3. Phân quyền người dùng trong VOMS. .................................................. 64 3.2.3.1 Danh sách điều khiển truy cập. ........................................................ 64 3.2.3.2 Quyền thực hiện các tác vụ quản lý VO trong VOMS. .................... 65 3.3. DỊCH VỤ TẠO DANH SÁCH TRUY CẬP EDG-MKGRIDMAP. ............. 69
4.2.2
4
CHƯƠNG 4. KẾT QUẢ THỬ NGHIỆM ........................................................ 70 4.1. HỆ THỐNG QUẢN LÝ NGƯỜI DÙNG LƯỚI TÍNH TOÁN ..................... 70 4.1.1. Giới thiệu hệ thống GOODAS. .............................................................. 71 4.1.2. Mô hình bảo mật cho GOODAS. ........................................................... 73 4.2. THÀNH PHẦN QUẢN LÝ TỔ CHỨC ẢO ................................................. 74 4.2.1. Sử dụng VOMS. .................................................................................... 74 4.2.1.1 Người dùng lưới và VOMS. ............................................................ 75 4.2.1.2 Người quản trị và VOMS. ............................................................... 78 Sử dụng EDG-MKGRIDMAP. .......................................................... 86 4.3. THÀNH PHẦN QUẢN LÝ GIẤY UỶ NHIỆM ........................................... 86 4.3.1. Cổng điện tử lưới. ................................................................................. 86 4.3.1. Mô hình uỷ quyền truy nhập trên cổng điện tử lưới. .............................. 88 4.3.3. Dịch vụ quản lý giấy uỷ nhiệm. ............................................................. 89 4.4 MỘT SỐ HABN CHÊC CỦA VOMS. ............................................................... 92 4.4.1 Hạn chế của VOMS. .............................................................................. 92 4.4.2 Hạn chế của EDG-MKGRIDMAP. ........................................................ 93 4.5. HƯỚNG PHÁT TRIỂN CỦA VOMS .......................................................... 94
4.5.1 VOMRS kết hợp cùng VOMS. ................................................................ 94 4.5.1.1 Tổng quan về VOMRS. ................................................................... 94 4.5.1.2 Đồng bộ VOMRS và VOMS. .......................................................... 96 4.5.2 GUMS & PRIMA thay thế EDG-MKGRIDMAP. ................................... 97
KẾT LUẬN .......................................................................................................... 99
TÀI LIỆU THAM KHẢO ..................................................................................100
5
PHỤ LỤC: CÀI ĐẶT VOMS VÀ EDG-MKGRIDMAP. .................................101 1. CÀI ĐẶT VOMS. ........................................................................................101 1.1. Chuẩn bị hệ thống ..................................................................................101 1.2. Cài đặt VOMS ........................................................................................102 2. CÀI ĐẶT EDG-MKGRIDMAP. ..................................................................104 2.1. Chuẩn bị hệ thống ..................................................................................104 2.2. Cài đặt EDG-MKGRIDMAP ..................................................................104 3. CẤU HÌNH HỆ THỐNG ..................................................................................105 3.1. Cấu hình VOMS......................................................................................105 3.2. Cấu hình VO. ..........................................................................................107 3.3. Cấu hình EDG-MKGRIDMAP. ...............................................................111
DANH MỤC THUẬT NGỮ
Chú giải Từ viết tắt AAS Nghĩa tiếng Anh Attribute Authority Service Dịch vụ phân quyên thuộc tính
Attribute Certificate Chứng nhận thuộc tính AC
ACL Access Control Lists
ARS Danh sách điều khiển quyền truy cập Dịch vụ đăng ký và quản trị
CA Administration and Registration Service Certificate Authority
CAS Nhà cung cấp và quản lý chứng chỉ số Community Authorization Dịch vụ thẩm quyền cộng đồng
Distinguished Name EDG Make Gridmap DN EDG- MKGRIDMAP
FTP GOODAS
Tên phân biệt người dùng trong lưới Công cụ tự động ánh xạ người dụng cục bộ và người dùng thuộc VO. Giao thức truyền file qua mạng TCP Hệ thống lưới tìm kiếm và so khớp tài liệu điện tử
GRAM Quản lý định vị tài nguyên lưới
GRIM Ánh xạ thực thể tài nguyên lưới
GSI File Transfer Protocol Grid Oriented Online Document Analysing System Globus Resource Allocation Management Grid Resource Identity Mapper Grid Security infrastructure Hạ tầng an toàn thông tin lưới
GSS-API
Giao diện lập trình ứng dụng dịch vụ bảo mật chung
GT Generic Security Service Application Program Interface Globus Toolkit Bộ công cụ được phát triển bởi
Globus Alliance, dùng để phát triển
các ứng dụng lưới
GUMS Hệ thống quản lý người dùng lưới
LMJFS Dịch vụ sinh MJS địa phương
6
MJS MMJFS Dịch vụ quản lý công việc Trình chủ sinh MJS Grid User Management System Local Managed Job Factory Services Managed Job Service Master Managed Job Factory Service
Kiến trúc dịch vụ lưới OGSA
Open Grid Service Architecture Public Key Infrastructure Hạ tầng khóa công khai PKI
PRIMA PRivilige Management and Authorization
Dịch vụ quản lý ưu tiên và phân quyền Nhà cung cấp tài nguyên Ngôn ngữ đánh dấu liên kết an toàn RP SAML
Resource Provider Security Assertion Markup Language Service Oriented Kiến trúc hướng dịch vụ SOA
Architecture
SOAP Simple Object Acess
Giao thức truy cập đối tượng đơn giản Protocol
Secure Sockets Layer Giao thức bảo mật lớp sockets SSL
Transport Layer Security Giao thức bảo mật tầng giao vận TLS
VO VOMRS Tổ chức ảo Dịch vụ quản lý đăng ký tổ chức ảo
Dịch vụ thành viên tổ chức ảo VOMS
Virtual Organization Virtual Organization Management Registration Service Virtual Organization Membership Service Web Service Web Service Deployment Dịch vụ web Ngôn ngữ đặc tả dịch vụ Web WS WSDD
Descriptor
WSRF Web Services Resource Framework đưa ra bởi GT4 hỗ trợ
7
Framework kiến trúc lập trình mới
LỜI MỞ ĐẦU
Hiện nay tính toán lưới đang nổi lên như một công nghệ nhiều hứa hẹn trong
tương lai, với khả năng tập hợp các nguồn tài nguyên nhàn rỗi, nhằm hướng tới các
mục tiêu về hiệu năng tính toán và khả năng chia sẻ, truyền thông dữ liệu. Nhiều
trung tâm nghiên cứu và các tổ chức trên thế giới đang áp dụng và triển khai công
nghệ này vào thực tiễn, mở ra các khả năng mới trong lĩnh vực công nghệ thông tin
cũng như các lĩnh vực khác.
Do đặc điểm đa dạng và không đồng nhất của các tổ chức và tài nguyên
trong lưới, vấn đề bảo mật trong lưới là một trong những vấn đề được quan tâm
hàng đầu. Có những vấn đề bảo mật mới chưa từng gặp trong các công nghệ bảo
mật hiện tại cho hệ thống tính toán phân tán truyền thống. Các thách thức về an toàn
bảo mật được đưa ra như các chính sách bảo mật liên miền cho lưới, các công nghệ
điều khiển truy nhập giữa các miền khác nhau.
Một vấn đề quan trọng đặt ra trong nghiên cứu an toàn bảo mật trên lưới là
việc quản lý bảo mật và danh sách điều khiển truy nhập trong một môi trường động
và có tính phân tán cao. Luận văn trình bày một giải pháp hoàn chỉnh cho việc quản
lý người dùng lưới, xác thực phân quyền và cho phép người dùng hay tổ chức ảo
gia nhập mới. Giải pháp được phát triển trong lưới tìm kiếm và so khớp tài liệu điện
tử liên trường GOODAS. Hệ thống lưới được phát triển tại trung tâm tính toán hiệu
năng cao (HPCC) thuộc trường đại học Bách Khoa Hà Nội. Cấu trúc của luận văn
bao gồm các mục sau.
Chương I: Tổng quan về tính toán lưới
Chương II: Nền tảng an toàn thông tin lưới GSI
Chương III: Hệ thống quản lý tổ chức ảo
Chương IV: Kết quả thử nghiệm
Kết luận, Phụ lục & Tài liệu tham khảo được trình bày ở phần cuối của
8
luận văn.
LỜI CAM ĐOAN
Tôi xin cam kết rằng nội dung của bản báo cáo này chưa được nộp cho bất
kỳ một chương trình cấp bằng thạc sĩ nào cũng nhưu bất kỳ một chương trình cấp
bằng nào khác.
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm nghiên cứu,
tìm hiểu của riêng cá nhân tôi. Trong toàn bộ nội dung của luận văn, những điều
được trình bày hoặc là của cá nhân tôi hoặc là được tổng hợp từ nhiều nguồn tài
liệu. Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp
pháp.
Tôi xin hoàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy
định cho lời cam đoan của mình.
Học viên
Nguyễn Văn Trung
9
LỜI CẢM ƠN
Trước hết, tác giả xin bày tỏ lòng biết ơn sâu sắc nhất tới thầy giáo hướng
dẫn PGS.TS. Trịnh Nhật Tiến về những ý kiến đóng góp về chuyên môn và sự
động viên khích lệ của thầy trong suốt quá trình làm nghiên cứu của tôi.
Tôi xin gửi lời cám ơn trân trọng tới GS.TS. Nguyễn Thanh Thủy, Giám
đốc Trung tâm Tính toán hiệu năng cao Trường Đại học Bách Khoa Hà Nội. Thầy
đã tạo mọi điều kiện về cơ sở vật chất và tinh thần cho tôi trong quá trình nghiên
cứu tại trung tâm.
Tôi cũng xin được gửi tới Khoa Công nghệ thông tin, Trường Đại học
Công nghệ, Đại học Quốc Gia Hà Nội cùng toàn thể các thầy cô, anh chị và các bạn
lời cảm ơn chân thành về sự giúp đỡ nhiệt tình, vô giá trong quá trình nghiên cứu và
học tập tại đây.
Và cuối cùng tôi xin gửi lời cảm ơn gia đình, bố, mẹ, vợ con tôi về sự hỗ trợ
không thể thiếu của họ. Tình yêu của họ, sự khích lệ, động viên, sự quan tâm, chăm
sóc của họ đã giúp tôi vượt qua tất cả khó khăn để theo học chương trình và hoàn
10
thiện bản luận văn cuối khoá này. Tôi xin chân thành cảm ơn!
Chương 1. TỔNG QUAN VỀ TÍNH TOÁN LƯỚI
1.1. TÍNH TOÁN LƯỚI.
1.1.1. Khái niệm Tính toán lưới.
Ngày nay, với sự phát triển vượt bậc của khoa học kỹ thuật và công nghệ, đã
xuất hiện những bài toán trong nhiều lĩnh vực đòi hỏi sức mạnh tính toán mà một
máy tính riêng lẻ không thể đảm trách. Tính toán lưới ra đời nhằm tạo khả năng
chia sẻ tài nguyên trên phạm vi toàn cầu, khả năng tận dụng các phần mềm cũng
như tài nguyên vật lý phân tán cả về mặt địa lý.
Hình 1-1: Tính toán lưới
- Định nghĩa 1:
Lưới tính toán là một cơ sở hạ tầng phần cứng và phần mềm cung cấp khả
năng truy nhập nhất quán, tin cậy, qui mô và rẻ tới các tài nguyên tính toán mạnh.
I. Foster, C. Kesselman (1999)
- Định nghĩa 2:
Tính toán lưới liên quan tới việc chia sẻ, điều phối tài nguyên và giải quyết
vấn đề trong phạm vi các tổ chức ảo.
11
I. Foster, C. Kesselman, S. Tuecke, “Anatomy of the Grid“(2000)
- Định nghĩa 3:
Lưới tính toán là một hệ thống có các đặc trưng sau:
• Tài nguyên được điều phối một cách phi tập trung • Sử dụng các giao thức chuẩn, mở và đa năng • Cung cấp chất lượng dịch vụ không tầm thường
I. Foster‘s Three-Point Checklist (HPCWIRE - 22.07.2002).
Mỗi tác giả khi đưa ra định nghĩa đều đứng trên một số quan niệm nhất định.
Chẳng hạn định nghĩa 1 bị ảnh hưởng một cách sâu sắc bởi các dự án siêu tính toán
(meta-computing) trước đó. Định nghĩa 2 tập trung vào sự quan trọng của các giao
thức như là phương tiện để tương tác giữa các thành phần, còn định nghĩa 3 “có thể
sẽ thích hợp hơn cho các nghiên cứu về lưới có qui mô rất lớn trong tương lai. Định
nghĩa này đã bỏ qua nhiều đóng góp từ các tổ chức công nghiệp, do đó có lẽ là
không xác đáng” (W. Gentzsch, HPCWIRE 05.08.2002).
Vì vậy, để có được một cái nhìn toàn diện về lưới, ta không đưa ra một định
nghĩa cụ thể nào. Thay vào đó, chúng ta xem xét khái niệm lưới trên cơ sở các đặc
trưng sau: - Kích thước lớn: theo nghĩa số lượng các tài nguyên tiềm tàng và khoảng cách về
mặt địa lý giữa chúng.
- Phân tán: có độ trễ đáng kể trong truyền dữ liệu và điều này có thể ảnh hưởng
lớn đến ứng dụng.
- Động: các tài nguyên có thể thay đổi khi ứng dụng đang được thực hiện - Hỗn tạp: kiến trúc và tính chất của các nút lưới có thể là hoàn toàn khác nhau - Vượt qua phạm vi một tổ chức: có nhiều trạm và các chính sách truy nhập có thể
khác nhau trên các trạm.
Có thể hình dung đơn giản một lưới bao gồm một tập các tài nguyên đa dạng
(còn gọi là các nút lưới - có thể là PC, cluster, hệ thống lưu trữ, …) thuộc về nhiều
12
tổ chức nhằm giải quyết một bài toán nào đó.
1.1.2. Lợi ích của Tính toán lưới.
1/. Khai thác các tài nguyên nhàn rỗi
Một trong những lợi ích cơ bản của tính toán lưới là khả năng chạy ứng dụng
trên một tài nguyên khác. Thống kê cho thấy, đối với các máy tính để bàn, trong một
ngày làm việc thì chỉ có khoảng 5% thời gian là bận, còn lại là rỗi [2]. Việc tận dụng
khoảng thời gian rỗi này để chạy các ứng dụng khác là một việc làm rất hiệu quả và
kinh tế.
2/. Cung cấp khả năng xử lý song song
Khả năng chạy ứng dụng song song là tính năng thú vị nhất mà tính toán lưới
mang lại. Lúc này, một công việc được chia thành nhiều công việc con, các công việc
con này được thực hiện đồng thời trên các tài nguyên khác nhau của lưới. Do đó, thời
gian chạy ứng dụng sẽ được rút ngắn nhiều lần.
Tuy nhiên, vấn đề là không phải ứng dụng nào cũng có thể triển khai theo cách
này được. Cần xem xét các yếu tố như khả năng song song hóa, sự trao đổi giữa các
công việc con khi chạy để đánh giá xem một ứng dụng có thực sự hiệu quả khi được
triển khai trên lưới hay không.
3/. Giúp hợp tác giữa các tổ chức
Sự hợp tác được thể hiện thông qua khái niệm tổ chức ảo - sự kết hợp nhiều tổ
chức thực cùng mục tiêu. Thông qua mô hình tổ chức ảo, các tổ chức thực có thể chia
sẻ tài nguyên như dữ liệu, các thiết bị đặc biệt.
4/. Giúp truy nhập các tài nguyên khác:
Ngoài tài nguyên tính toán và lưu trữ, lưới còn cung cấp các loại tài nguyên
khác, chẳng hạn đường truyền mạng, các phần mềm đắt tiền. Ví dụ như nếu một
người dùng muốn tăng thông lượng kết nối tới Internet để thực hiện khai phá dữ liệu,
anh ta có thể tận dụng các kết nối Internet riêng biệt của các nút lưới khác để chạy bài
toán trên.
5/. Giúp cân bằng trong sử dụng tài nguyên
Lưới cung cấp khả năng lập lịch, giúp phân bổ các công việc lên các nút một
13
cách hợp lý, tránh tình trạng bị quá tải ở bất kì một nút nào.
Hình 1-2: Công việc được chuyển sang các nút ít bận hơn
6/. Mang lại độ tin cậy
Khái niệm tin cậy trong tính toán lưới được thể hiện ở các khía cạnh sau: một
là, trong lưới có những tài nguyên tính toán đắt tiền, cung cấp độ tin cậy cao cho
những bài toán được thực hiện trên chúng. Hai là, lưới cung cấp khả năng lập lịch lại,
phân bổ lại công việc nếu có lỗi xảy ra. Ba là, nếu cần, một công việc có thể được
chạy đồng thời trên nhiều nút, cho nên việc xảy ra lỗi ở một nút sẽ không làm ảnh
14
hưởng đến kết quả của công việc đó.
1.1.3. Vấn đề cơ bản của một hệ thống lưới.
Có 4 vấn đề cơ bản được quan tâm trong tính toán lưới [3], đó là:
1/. An toàn và bảo mật (Security)
Một nền tảng an toàn và bảo mật vững chắc sẽ quyết định sự phát triển của môi
trường tính toán lưới. Với tính chất quy mô lớn, quan hệ chia sẻ tài nguyên giữa nhiều
tổ chức, an toàn và bảo mật luôn phải được coi là một trong những yếu tố hàng đầu
trong lưới. Hai vấn đề quan trọng trong an toàn bảo mật phải xem xét trong tính toán
lưới là: - Chứng thực người dùng (Authentication) - Xác thực thẩm quyền (Authorization).
2/. Lập lịch và quản lý tài nguyên (Resource Management and Scheduling)
Các tài nguyên lưới thường phân tán và không đồng nhất. Do đó, việc tích hợp,
đồng bộ hóa và biểu diễn chúng dưới một dạng thống nhất là yêu cầu tất yếu. Trong
môi trường tính toán lưới, tại một thời điểm có thể có rất nhiều ứng dụng cùng truy
cập chia sẻ một hoặc nhiều tài nguyên khác nhau, do vậy cần có bộ lập lịch nhằm tối
ưu hóa các công việc. Bộ lập lịch phải dựa vào các thông tin trên toàn bộ lưới để
quyết định thứ tự đệ trình công việc.
3/. Dịch vụ thông tin (Information Service)
Đối với một môi trường động và không đồng nhất như tính toán lưới thì các
thông tin về các thành phần trong lưới sẽ thay đổi liên tục. Chính vì vậy, dịch vụ
thông tin cần cung cấp cơ chế tự động cập nhật và đăng ký các thông tin về toàn hệ
thống như kiến trúc các tài nguyên, các dịch vụ có thể cung cấp trên lưới, trạng thái
của toàn bộ môi trường lưới.
4/. Quản lý dữ liệu (Data Management)
Việc truy cập các nguồn dữ liệu trên lưới đòi hỏi một khả năng trao đổi, tương
tác với các dữ liệu có thể lên đến giga bytes hoặc hơn thế nữa. Điều này đòi hỏi tính
15
toán lưới phải có các chiến lược lưu trữ cũng như tối ưu hóa các hệ thống lưu trữ.
1.1.4. Kiến trúc của một lưới
Theo [4], một lưới bao gồm các thành phần sau:
1/. Tầng nền (Fabric)
Bao gồm các tài nguyên phân tán, các tài nguyên này có thể có kiến trúc và tính
chất rất khác nhau.
2/. Tầng trung gian lưới (Core Middleware)
Cung cấp các dịch vụ cơ bản của lưới như quản lý truy nhập từ xa, định vị tài
nguyên, đăng ký và khám phá tài nguyên, bảo mật.
3/. Tầng trung gian phía người dùng (User level middleware)
Bao gồm môi trường phát triển ứng dụng, các công cụ lập trình và các bộ môi giới
tài nguyên nhằm lựa chọn các tài nguyên phù hợp và thực hiện công việc trên các
tài nguyên đó.
4/. Các ứng dụng lưới và cổng giao tiếp
Tầng trên cùng là các ứng dụng lưới được phát triển bởi các công cụ hỗ trợ. Cổng
điện tử lưới cung cấp giao diện Web cho các ứng dụng lưới, giúp người dùng có
16
thể đệ trình công việc và tập hợp kết quả thông qua Web.
1.2. VẤN ĐỀ AN TOÀN THÔNG TIN TRONG TÍNH TOÁN LƯỚI
Do đặc điểm hỗn tạp và không đồng nhất của các tổ chức và tài nguyên trong
lưới, vấn đề an toàn thông tin trong lưới là một trong những vấn đề được quan tâm
hàng đầu. Có những vấn đề an toàn thông tin mới chưa từng gặp trong các công
nghệ an toàn thông tin hiện tại cho hệ thống tính toán phân tán truyền thống. Ví dụ,
các tính toán song song đòi hỏi nhiều tài nguyên tính toán, dẫn tới nhu cầu phải
thiết lập các mối quan hệ an toàn thông tin, không đơn giản chỉ là với client và
server, mà giữa hàng trăm tiến trình thực hiện trong không gian tập hợp nhiều miền
quản trị. Ngoài ra, cần phải có các chính sách an toàn thông tin liên miền cho lưới,
các công nghệ điều khiển truy nhập giữa các miền khác nhau cũng phải được hỗ trợ.
Các ứng dụng và hệ thống lưới có thể đòi hỏi bất cứ chức năng nào trong các
chức năng cơ bản của an toàn thông tin như là: chứng thực, điều khiển truy nhập,
và toàn vẹn. Khi phát triển kiến trúc lưới, cũng cần phải lựa chọn giải pháp để đáp
ứng được đòi hỏi của các đặc tính rất riêng của lưới:
- Đăng nhập một lần:
Khi bắt đầu một tính toán đòi hỏi sử dụng tài nguyên, cho thuê tài nguyên
hay truyền thông nội bộ, người dùng có thể được chứng thực, và sẽ không phải
chứng thực trong các tính toán tiếp theo.
- Giấy ủy nhiệm người dùng:
Các mật khẩu, khóa bí mật phải được bảo vệ bằng các chính sách như mã
hóa, hệ thống file bảo mật, phân quyền,
- Tích hợp các giải pháp an toàn thông tin địa phương:
Các giải pháp liên miền phải tích hợp với các giải pháp an toàn thông tin địa
phương để đảm bảo độc lập của các thành viên lưới.
- Hạ tầng giấy ủy nhiệm, chứng chỉ số thống nhất:
Truy nhập liên miền đòi hỏi phải có một quy ước thống nhất để biểu diễn
định danh của các thực thể lưới như là người dùng, tài nguyên,... Vì thế, cần có một
chuẩn để mã hóa các chứng chỉ số cho mục đích an toàn thông tin. Hiện tại, X509
17
là chuẩn cho các chứng chỉ số phổ biến trong môi trường lưới.
- Hỗ trợ an toàn nhóm truyền thông:
Một tính toán có thể đòi hỏi một số các tiến trình, cùng cộng tác các hoạt
động của chúng với nhau như là một nhóm. Tổ hợp các nhóm tiến trình sẽ thay đổi
trong vòng đời của một tính toán. Vì thế, cần cung cấp an toàn truyền thông nhóm
động. Không có giải pháp nào hiện tại hỗ trợ tính năng này, thậm chí là thư viện lập
trình GSS-API còn không cung cấp an toàn truyền thông nhóm.
- Độc lập công nghệ:
Các chính sách không phục vụ cho một công nghệ phát triển ứng dụng cụ thể
nào. Hơn nữa, có thể cài đặt các chính sách trong một phạm vi các công nghệ an
toàn thông tin, dựa trên cả kĩ thuật mã hóa công khai và phân phối khóa công khai.
1.2.1. Các thách thức an toàn trong Tính toán lưới.
Các yêu cầu an toàn lưới ở trên được định hướng để cung cấp các tổ chức ảo
phân tán, rộng lớn để chia sẻ và sử dụng các nguồn tài nguyên đa dạng trong một mô
hình thống nhất. Tuy nhiên, các tài nguyên cũng như các thành phần khác tham gia
lưới lại bị quản lý bởi các nội quy và các chính sách của một tổ chức truyền thống mà
chúng là thành viên. Do vậy, để các tổ chức ảo truy nhập vào các tài nguyên trong các
tổ chức truyền thống, chúng phải được thiết lập và cộng tác qua mối quan hệ tin tưởng
hai bên, tồn tại giữa người dùng với các tổ chức truyền thống của họ và mối quan hệ
giữa người dùng với các tổ chức ảo. Chúng ta không thể thiết lập quan hệ tin tưởng
trực tiếp giữa các tổ chức truyền thống với tổ chức ảo hay các thành viên mở rộng của
nó.
Cơ chế an toàn lưới giải quyết các trở ngại này bằng cách cho phép có một tổ
chức ảo thống nhất chung một phần chính sách của các tổ chức truyền thống (policy
18
domain overlay).
Hình 1-3: Miền tin tưởng chung của tổ chức ảo.
Các tài nguyên và các tổ chức đưa ra các điều khiển chính sách mở rộng
(outsource policy) cho một bên thứ ba, các tổ chức ảo (VOs), phối hợp các chính sách
mở rộng trong một miền tin tưởng ổn định lâu dài, để cho phép chia sẻ tài nguyên và
sử dụng. Giải pháp tải chồng các chính sách dẫn tới các chức năng chủ yếu sau mà
lưới phải thực hiện:
- Hỗ trợ nhiều cơ chế an toàn khác nhau:
Các miền tài nguyên hay các tổ chức ảo thường đã có sự đầu tư đáng kể
trong các cơ chế và cơ sở hạ tầng an toàn thông tin của địa phương họ. Do vậy mà
thách thức lớn nhất chính là phải liên kết các công nghệ an toàn thông tin trên các
địa phương hơn là thay thế toàn bộ nó, như thế sẽ rất tốn kém và hoàn toàn không
có tính kế thừa.
- Khởi tạo động các dịch vụ:
Người dùng có thể khởi tạo ra các dịch vụ mới mà không cần có sự can thiệp
của nhà quản trị, ngoài ra các dịch vụ này còn có thể tương tác với nhau. Như vậy là
19
phải có cơ chế định danh các thực thể lưới, cấp quyền cho các dịch vụ mà không
ảnh hưởng tới các cơ chế bảo mật điạ phương. Một ví dụ trong cơ sở hạ tầng GSI,
khi một dịch vụ lưới cung cấp cho người dùng, các định danh về người dùng sử
dụng dịch vụ, định danh của dịch vụ, định danh của hệ thống mà dịch vụ đăng ký
trên đó đều được xác định rõ ràng.
- Thiết lập động các miền chứng thực tin tưởng (trust domain):
Việc chứng thực không chỉ được thiết lập giữa người dùng và tài nguyên
trong một tổ chức ảo mà còn mở rộng giữa các tổ chức ảo với nhau. Như vậy đòi
hỏi phải có một mô hình an toàn thông tin hướng người dùng (user-driven security
model), cho phép người dùng tạo ra các thực thể và các miền chính sách để liên kết
tài nguyên trong các tổ chức ảo.
1.2.2. Các chính sách bảo đảm an ninh cho hệ thống lưới
Bảo vệ CSDL tránh khỏi những hiểm hoạ có nghĩa là bảo vệ dữ liệu trong
CSDL, tránh khỏi việc truy cập không hợp lệ, một cách vô tình hay cố ý.
Mỗi lưới là một tập hợp gồm nhiều tài nguyên hay còn gọi là nút lưới. Một
số tài nguyên có thể thuộc quyền sử dụng của tất cả các thành viên lưới, trong khi
số khác lại hạn chế quyền truy nhập đối với các thành viên. Một số thuật ngữ sau
được xây dựng trong khi nghiên cứu các vấn đề về bảo đảm an toàn cho hệ thống
Tính toán lưới
+ Chủ thể là một thành viên của các hoạt động an toàn thông tin. Đối với môi
trường lưới, chủ thể thường là người dùng, tài nguyên hay các tiến trình thay mặt
cho các tài nguyên đó
+ Giấy ủy nhiệm là thông tin cung cấp định danh cho chủ thể để xác định tên và vai
trò của chủ thể đó. Giấy ủy nhiệm được ký bởi nhà thẩm quyền và có thời gian tồn
tại nhất định. Sau khoảng thời gian đó thì giấy ủy nhiệm không còn hiệu lực
+ Chứng thực là tiến trình để chủ thể chứng minh định danh của mình cho đối
tượng được yêu cầu. Chứng thực hai bên (bên yêu cầu và bên được yêu cầu) là quá
trình hai bên chứng thực lẫn nhau, còn gọi là chứng thực đa phương.
+ Thẩm quyền là tiến trình mà thông qua đó, ta xác định được một chủ thể có được
20
phép truy nhập và sử dụng tài nguyên hay không
+ Miền tin tưởng là cấu trúc quản lý mức logic, do một chính sách an toàn thông
tin ổn định, đơn lẻ mức địa phương nắm giữ, hay nói cách khác, nó là một tập các
chủ thể và đối tượng được quản lý bởi đơn miền quản trị và chính sách cục bộ.
Sau đây là các chính sách bảo vệ thông tin giải quyết các yêu cầu thách thức
trình bày ở phần trên.
1/. Môi trường lưới an toàn đa miền
Do lưới là một tập hợp không đồng nhất của các người dùng và tài nguyên
cục bộ, cho nên các chính sách an toàn cục bộ dành cho các tài nguyên và người
dùng cũng khác nhau, chính sách lưới phải đảm bảo tích hợp được tất cả các tập
hợp không đồng nhất này. Nói chung, môi trường lưới không hạn chế hay không
ảnh hưởng tới các chính sách địa phương, nhiệm vụ của chính sách lưới là phải tập
trung điều khiển các tương tác liên miền, ánh xạ các hoạt động liên miền vào trong
các chính sách địa phương. Ví dụ trong cơ sở hạ tầng GSI, các hoạt động liên miền
được thực hiện bởi các chủ thể sở hữu một chứng chỉ số lưới theo chuẩn X509.
Trong từng miền cụ thể, các chứng chỉ số này sẽ được ánh xạ tương ứng với một
người dùng cục bộ nào đó thông qua một file ánh xạ (grid-mapfile), là một bản ghi
chứa tên người dùng cục bộ và định danh của chứng chỉ số đó.
2/. Hoạt động lưới hạn chế trong đơn miền quản trị
Mặc dù lưới là một tập đa miền quản trị, tuy nhiên các hoạt động đa miền lại
phải tuân theo các chính sách địa phương trên đơn miền quản trị. Nói cách khác,
không có hoạt động hay dịch vụ lưới nào được đưa vào các hoạt động địa phương
thông qua các chính sách của lưới.
3/. Các chủ thể toàn cục và cục bộ đều tồn tại
Tại mỗi đơn miền quản trị đều tồn tại hai chủ thể trên, và chính sách để ánh
xạ từ một phần tử toàn cục vào phần tử cục bộ. Để làm ví dụ, mỗi người dùng đều
có hai tên, một tên toàn cục để hoạt động trên tất cả các tài nguyên, và một tên cục
bộ trên mỗi tài nguyên. Ánh xạ tên toàn cục vào tên cục bộ tạo khả năng đăng nhập
một lần (sigle-sign-on) trên môi trường lưới. Trong cơ sở hạ tầng GSI, tên toàn cục
chính là tên định danh của giấy ủy nhiệm X509, và tên cục bộ là tên người dùng
21
trong hệ điều hành.
4/. Chứng thực đa phương
Hoạt động giữa các thực thể định vị trong các miền tin tưởng khác nhau đòi
hỏi chứng thực đa phương, bảo đảm cho sự an toàn và bí mật của các hoạt động. Ví
dụ trong dịch vụ truyền file GridFTP, cả client và server đều phải chứng minh định
danh của mình trong lưới, client đòi hỏi server có định danh như mình mong muốn
không, còn server sẽ kiểm tra danh sách các định danh client, xem client có quyền
đăng nhập vào server để sử dụng dịch vụ truyền file không.
5/. Ánh xạ
Mỗi đối tượng toàn cục được ánh xạ vào đối tượng cục bộ được coi như
chúng đã qua chứng thực địa phương trên đối tượng cục bộ đó.
6/. Điều khiển truy nhập
Tất cả các quyết định điều khiển được đưa ra đều là cục bộ hay dựa trên cơ
sở của đối tượng cục bộ, hay không có một quyết định điều khiển nào là toàn cục,
áp dụng cho tất cả các tài nguyên cục bộ. Ví dụ, một người dùng lưới có thể sử
dụng dịch vụ truyền file GridFTP tại một tài nguyên này, nhưng tại các tài nguyên
khác trong lưới, anh ta sẽ không có quyền truy nhập. Anh ta không thể ra lệnh
truyền file cho toàn bộ các tài nguyên trong lưới.
7/. Cơ chế sử dụng Giấy chứng nhận
Có thể dùng chứng chỉ số với các chương trình thay mặt cho cùng một tiến
trình, chạy trên cùng một chủ thể trong cùng một miền tin tưởng. Như đã biết, tính
toán lưới liên quan tới hàng trăm tiến trình chạy trên một tài nguyên đơn. Chính
sách này cho phép mở rộng cho các ứng dụng song song có kích thước lớn, bằng
cách tránh các yêu cầu phải tạo một chứng chỉ số duy nhất cho mỗi tiến trình, mà
22
cho phép các tiến trình song song này dùng chung một tập các chứng chỉ số.
1.2.3. Kiến trúc an ninh cho hệ thống lưới
Phần này sẽ trình bày một kiến trúc an ninh dựa trên các ngữ cảnh an toàn và
chính sách an toàn thông tin được nêu ra ở trên.
1/. Thực thể
Môi trường lưới bao gồm các chủ thể và đối tượng trong các tính toán. Chủ
thể bao gồm các người dùng, các tiến trình thực hiện tính toán, bởi vì mỗi tính toán
bao gồm nhiều tiến trình, mỗi tiến trình lại thay mặt cho một người dùng cụ thể. Đối
tượng được hình dung như môi trường rộng lớn của các tài nguyên có sẵn: máy
tính, kho dữ liệu, mạng, thiết bị hiển thị, ... để phục vụ cho tính toán.
2/. Giấy chứng nhận
Đó là giải pháp thống nhất các định danh của các thực thể lưới, cung cấp cho
cả người dùng và tài nguyên. Cơ chế này giúp giảm bớt thời gian chứng thực khi
thực hiện tính toán, tạo điều kiện thuận lợi cho người dùng. Có hai loại chứng chỉ
số:
+ Giấy chứng nhận người dùng
Được cấp quyền để thay mặt người dùng trong một thời gian hạn chế. Giấy
chứng nhận người dùng hoạt động thay cho người dùng, nhờ đó nó có những thuận
lợi như: không yêu cầu người dùng phải có mặt trong thời gian tính toán, thay vào
đó chứng chỉ số của người dùng phải sẵn có trong suốt thời gian tính toán. Hơn nữa,
thời gian sống của chứng chỉ số được điều khiển bởi người dùng, giúp cho người
dùng hoàn toàn chủ động trong quá trình tính toán mà không cần có mặt ở đó.
+ Giấy chứng nhận tài nguyên
Chứng nhận cho một tài nguyên là thành viên hợp lệ của lưới, các chính sách
an toàn riêng trong tài nguyên đó tương thích với các chính sách chung của lưới. Ví
dụ, trong chính sách an toàn của Globus Toolkit 4 (GT4), giấy ủy nhiệm tài nguyên
GRIM (Grid Resource Identity Mapper) chứng minh tài nguyên này là thành viên
của lưới, tuân theo chính sách an toàn của lưới. Ngoài ra, kiến trúc GRIM cho phép
cơ chế ủy quyền truy cập tài nguyên (e.g. máy) thông qua chương trình setuid, cho
phép tài nguyên này nằm lâu dài trong một máy cụ thể, tuân theo chính sách an toàn
23
trong máy đó.
3/. Các giao thức
Là các quy ước được đưa ra cho hoạt động an toàn trong môi trường lưới.
Trong kiến trúc này, sử dụng một số giao thức giúp cho các hoạt động trên toàn bộ
lưới: người dùng có thể đăng nhập, định vị tài nguyên, định vị các tài nguyên khác
trong tiến trình thực hiện.
• Mô tả kiến trúc
U, R, P: tương ứng là các người dùng, tài nguyên, và tiến trình.
UP, RP: chứng chỉ số người dùng và chứng chỉ số tài nguyên.
CX: Giấy ủy nhiệm của chủ thể X.
SigX(text): văn bản (text) được kí bởi chủ thể X.
Hình 1-4: Mô hình kiến trúc bảo vệ thông tin của hệ thống tính toán lưới
Như trên hình vẽ, các hoạt động trong kiến trúc bao gồm:
1/. Người dùng thông qua giấy ủy nhiệm người dùng, đăng nhập hệ thống:
Sử dụng giao thức 1.
2/. Định vị tài nguyên và khởi tạo các tiến trình qua giấy ủy nhiệm người dùng:
24
Sử dụng giao thức 2.
3/. Mỗi tiến trình có thể định vị các tài nguyên khác một cách trực tiếp:
Sử dụng giao thức 3.
4/. Khởi tạo bảng ánh xạ các định danh toàn cục vào trong các định danh cục bộ:
Sử dụng giao thức 4.
Sau đây là tóm tắt các giao thức trên:
Giao thức 1: Đăng nhập hệ thống
1/. Người dùng sử dụng chứng chỉ số để đăng nhập vào hệ thống máy tính
2/. Người dùng tạo ra giấy ủy nhiệm người dùng (CUP), sử dụng chứng chỉ số người
dùng UP để kí lên một bản ghi bao gồm: định danh người dùng, tên máy cục bộ,
thời gian hợp lệ cho CUP và bất cứ thông tin nào được đòi hỏi bởi giao thức chứng
thực sử dụng để cài đặt kiến trúc.
Cup = SigU (usr-id, máy, start-time, end-time, auth-info).
Ở đây cần phân biệt chứng chỉ số người dùng UP và giấy ủy nhiệm người
dùng CUP. Chứng chỉ số người dùng UP cho phép các hoạt động trên lưới, tuy nhiên
nó có một vài hạn chế: dễ bị tổn thương và không hạn chế thời gian hoạt động khi
thay mặt người dùng. Giải pháp là sử dụng giấy ủy nhiệm tạm thời CUP, là sự kết
hợp của chứng chỉ số UP với một khoá bí mật tương ứng.
Giấy ủy nhiệm CUP có thể hoạt động thay mặt người dùng, nhưng thời gian
hoạt động hạn chế và một số ràng buộc bởi người dùng như: tên máy (nơi mà UP
được phép hoạt động), tên các miền (nơi mà UP được phép khởi tạo tiến trình và sử
dụng tài nguyên).
3/. Người dùng sở hữu giấy uỷ nhiệm CUP được phép khởi tạo một tiến trình. Nó
25
dựa trên chính sách an toàn cục bộ để bảo vệ tính toàn vẹn của CUP.
Giao thức 2: Giao thức định vị tài nguyên
1/. Các chứng chỉ số UP và RP thẩm quyền lẫn nhau (xem khái niệm thẩm quyền đa
phương 1.2.2) sử dụng giấy ủy nhiệm CUP và CRP. Một phần của tiến trình này, RP
kiểm tra để đảm bảo CUP vẫn còn hợp lệ, chưa hết thời hạn.
2/. UP chuyển các yêu cầu về định vị tài nguyên cho RP dưới dạng
SigUP(các yêu cầu định vị)
3/. RP kiểm tra tính hợp lệ của UP đã yêu cầu định vị, bảo đảm các yêu cầu này
đúng là do UP đã kí.
4/. Nếu yêu cầu được tiếp nhận, RP tạo ra bản ghi RESOURCE_CREDENTIAL
chứa: tên người dùng, tài nguyên định vị cho người dùng đó, tên tài nguyên.
5/. RP chuyển RESOURCE_CREDENTIAL một cách an toàn tới UP (thực hiện
như bước 1, UP chuyển yêu cầu định vị tới RP).
6/. UP kiểm tra tính hợp lệ RESOURCE_CREDENTIAL, xác nhận và kí lên nó -
Sigup(RESOURCE_CREDENTIAL), để tạo ra một giấy ủy nhiệm yêu cầu tài
nguyên. Giấy ủy nhiệm này còn được gọi là giấy ủy nhiệm tiến trình CP.
7/. UP chuyển CP một cách an toàn tới RP (thực hiện như bước 1, UP chuyển yêu
cầu định vị tới RP).
8/. RP định vị tài nguyên, tiếp tục tiếp nhận các tiến trình CP mới của người dùng.
Giao thức 3: Giao thức định vị tài nguyên thông qua tiến trình người dùng
1/. Tiến trình và UP của nó chứng thực lẫn nhau (xem chứng thực đa phương 1.2.2)
thông qua CP và CUP.
2/. Tiến trình phát ra một yêu cầu tới UP của nó, dưới dạng:
SigP {"định vị", các tham số yêu cầu định vị}
3/. Nếu UP chấp nhận yêu cầu, nó sẽ phát ra một yêu cầu định vị tài nguyên tới RP
cụ thể nào đó sử dụng giao thức 2, đã mô tả ở trên.
4/. Kết quả định vị tài nguyên sẽ được UP kí lên, sau đó chuyển cho tiến trình yêu
26
cầu.
Giao thức 4: Ánh xạ định danh toàn cục vào định danh cục bộ.
1/. UP chứng thực với RP
2/. UP phát ra một yêu cầu đã ký MAP-SUBJECT-UP dưới dạng các tham số như
tên chủ thể tài nguyên, tên chủ thể toàn cục.
3/. Người dùng đăng nhập vào tài nguyên sử dụng các phương thức chứng thực của
tài nguyên và bắt đầu tiến trình đăng ký.
4/. Tiến trình ánh xạ tài nguyên phát ra yêu cầu MAP-SUBJECT-P tới RP, dưới
dạng các tham số: tên chủ thể tài nguyên, tên chủ thể toàn cục. a. RP đợi các yêu cầu MAP-SUBJECT-UP và MAP-SUBJECT-P với các tham số
tương ứng.
b. RP bảo đảm rằng tiến trình đăng ký ánh xạ thuộc về chủ thể tài nguyên được xác
định trong yêu cầu ánh xạ.
c. Nếu kiểm tra hợp lệ, RP sẽ thiết lập ánh xạ và gửi xác nhận tới tiến trình đăng
ký ánh xạ và UP.
d. Nếu kiểm tra không hợp lệ trong khoảng thời gian MAP-TIMEOUT, RP sẽ loại
bỏ yêu cầu và gửi xác nhận tới các thực thể đang chờ đợi.
e. Nếu xác nhận chưa được nhận trong khoảng thời gian MAP-TIMEOUT, yêu cầu
coi như là không được chấp nhận.
Hoạt động chi tiết của các giao thức đều được thiết lập dựa trên thẩm quyền,
kĩ thuật chữ kí điện tử và mã hóa. Tuy nhiên, kiến trúc không đề cập kĩ thuật chữ kí
điện tử riêng biệt nào, việc cài đặt cụ thể sử dụng giao diện lập trình ứng dụng
chung GSS, do đó việc cài đặt và phát triển có thể sử dụng bất cứ công nghệ an toàn
27
thông tin riêng biệt nào.
KẾT CHƯƠNG
Tóm lại, vấn đề bảo đảm an toàn thông tin trong môi trường lưới còn rất
nhiều thách thức. Vì đây là môi trường phân tán về địa lý, nguồn tài nguyên không
đồng nhất, và tồn tại nhiều chính sách quản lý của các tổ chức khác nhau. Để giải
quyết các khó khăn này, yêu cầu phải có giải pháp tổng thể và đồng nhất giữa các tổ
chức tham gia lưới. Đó cũng là nội dung chính của chương sau, đi sâu vào các khía
28
cạnh bảo đảm an toàn thông tin cho Hệ thống tính toán lưới.
Chương 2. NỀN TẢNG AN TOÀN THÔNG TIN LƯỚI GSI
VÀ BỘ CÔNG CỤ GLOBUS TOOLKIT 4.0
2.1. CÁC KHÁI NIỆM CƠ BẢN VỀ AN TOÀN THÔNG TIN
2.1.1. Mã hóa thông tin
Trong mã hóa thông tin có hai khóa là khoá mã hoá và khoá giải mã. Người
gửi mã hóa thông tin bằng khoá mã hoá, và gửi bản mã cho người nhận.
Hình 2- 1: Mã hóa thông tin sử dụng khóa
Người nhận sử dụng khoá giải mã để giải mã thông tin.
Hình 2- 2: Giải mã thông điệp sử dụng khóa mã giải
Sau đây, ta sẽ xem xét hai phương pháp mã hóa thông dụng là mã hóa khóa
đối xứng (mã hóa khóa bí mật) và mã hóa khóa phi đối xứng (mã hóa khóa công
29
khai).
2.1.2. Hệ mã hóa khóa đối xứng.
Mã hóa đối xứng là phương pháp mã hoá mà biết khoá mã hoá dễ dàng tính
được khoá giải mã và ngược lại. Trong một số hệ mã hoá đối xứng thì hai khoá này
trùng nhau.
Hình 2- 3: Mã hoá khoá đối xứng
Mặc dù các phương pháp mã hóa đối xứng thường có tốc độ cao và dễ cài
đặt, nhưng chúng lại có nhiều yếu điểm. Một nhược điểm chính đó là vì cả người
gửi và người nhận đều sử dụng cùng một khoá mã hoá do đó cần phải có sự trao đổi
thông tin thống nhất khóa thông qua một kênh mật. Đây là một vấn đề khó trong an
toàn và bảo mật.
Các hệ thống bảo vệ thông tin ngày nay sử dụng các thuật toán mã hóa bất
đối xứng (khoá mã hoá và khoá giải mã khác nhau) để cùng với hệ mã hoá đối xứng
30
bảo vệ thông tin.
2.1.3. Hệ mã hóa khóa phi đối xứng.
Hình 2- 4: Mã hoá khoá phi đối xứng
Hệ mã hóa khoá phi đối xứng có khoá mã hoá và khoá giải mã khác nhau,
biết được khoá này “khó” tính được khoá kia. Các khóa này được xây dựng bằng
hàm một chiều có cửa sập (Trap-door).
Trong hai khóa đó, một khóa được chọn làm khóa bí mật và khóa còn lại
được chọn làm khóa công khai. Khóa bí mật chỉ có một người là chủ nhân của nó
nắm giữ. Khóa công khai được công bố rộng rãi cho bất cứ ai muốn trao đổi thông
tin mật với người sở hữu khóa. Khóa công khai được sử dụng để mã hóa thông tin
và khóa bí mật được sử dụng để giải mã.
Quá trình giao tiếp giữa hai đối tượng A và B có thể được mô tả như sau: B
sinh ra một cặp khóa bí mật và công khai, khóa bí mật được cất giữ một cách an
toàn và được bảo vệ bằng một mật mã còn khóa công khai được cung cấp rộng rãi.
A có thể sử dụng khóa công khai (được phát hành bởi B) để mã hóa thông tin và gửi
cho B. Lúc này, chỉ duy nhất B, người sở hữu khóa bí mật, có thể giải mã thông tin
bằng khoá bí mật.
Ngoài ra, mã hoá khoá phi đối xứng còn được dùng trong các cơ chế xác
thực. Tuy nhiên, một nhược điểm lớn của hệ mã hóa công khai này là quá trình giải
31
mã cũng như mã hóa mất nhiều thời gian.
2.1.4. Chữ ký số
Những năm 80 của thế kỉ hai mươi, các nhà khoa học đã phát minh ra “chữ
ký số” để chứng thực một “tài liệu số”. Đó là “bản mã” của xâu bít tài liệu [5].
Chữ ký được dùng để xác định tính hợp thức của văn bản trong quá trình
giao dịch. Do đó, chữ ký trên giấy là đặc trưng của từng cá nhân. Chữ ký số là một
hàm phụ thuộc vào thông tin mà nó ký. Trong giao dịch trực tuyến, chữ ký số được
coi là một thông tin gắn liền với giao dịch.
Hình 2- 5: Chữ ký số và mã hóa công khai
Ký số trên tài liệu số là ký trên từng bít của tài liệu. Kẻ gian khó có thể giả
mạo chữ ký số nếu nó không biết “khoá lập mã”.
Để kiểm tra một chữ ký số thuộc về một tài liệu số, người ta dùng chìa khoá
công khai và tài liệu đi kèm.
Ký số thực hiện trên từng bít tài liệu nên độ dài của chữ ký số ít nhất bằng độ
dài của tài liệu. Do đó thay vì ký trên tài liệu dài, người ta thường dùng “hàm băm”
32
để tạo ra “đại diện” cho tài liệu, sau đó mới ký số lên “đại diện” này.
2.1.5. Chứng chỉ số.
Hình 2- 6: Chứng chỉ số
Chứng chỉ khoá công khai (gọi tắt là chứng chỉ số) là một văn bản điện tử
xác nhận khoá công khai được sở hữu bởi một người cụ thể. Chứng chỉ số được cấp
bởi cơ quan có thẩm quyền gọi là Nhà cung cấp và quản lý chứng chỉ số.
Ví dụ về giao dịch điện tử giữa hai chủ thể A và B, thông qua Nhà cung cấp
và quản lý chứng chỉ số S như sau:
Bước 1. Xin các chứng chỉ số:
Trước khi giao dịch, A gửi khoá công khai cho S và S sẽ cấp chứng chỉ số
AC. Thông tin từ A có thể gồm M = [ZA, Tên, ...] trong đó có ZA là khoá công khai
của A. Tương tự B cũng sẽ được S cấp cho một chứng chỉ số BC.
Bước 2: Giao dịch điện tử:
A tìm chứng chỉ số BC của B, kiểm định chữ ký số của S đã kí lên BC. Nếu
chứng chỉ số BC đúng do S phát hành, A tách khoá công khai của B, để mã hoá
thông tin của mình và gửi cho B.
Với việc sử dụng chứng chỉ số, quá trình chứng thực có sự liên quan của ba
bên A, B, S. Quá trình kiểm chứng rất nghiêm ngặt, S phải chứng minh là người
phát hành các chứng chỉ số, các thông tin mà A gửi cho B cũng bảo đảm bí mật, bởi
vì nó đã được mã hóa bằng khóa công khai của B, chỉ có B mới có khóa bí mật để
33
giải mã thông tin từ A.
Chuẩn chứng chỉ số X509
Đây là khuyến nghị về định dạng của chứng chỉ số theo chuẩn X509. Chứng
chỉ số chuẩn X509 là văn bản chứa các thông tin theo định dạng sau:
Hình 2-5: Chứng chỉ số theo chuẩn X509
+ Subject: tên của đối tượng xin cấp. Nó được mã hoá theo định dạng tên định danh
(Distinguished Name) của đối tượng.
+ Subject’s public key: bao gồm các thông tin về khoá và thuật toán sử dụng để sinh
ra khoá công khai đó.
+ Issuer’s Subject: tên định danh của Nhà cung cấp và quản lý chứng chỉ số.
+ Digital signature: chữ ký số sinh ra bởi khoá bí mật của Nhà cung cấp và quản lý
chứng chỉ số. Chữ ký này có thể được kiểm định bằng khoá công khai của Nhà cung
cấp và quản lý chứng chỉ số.
+ Tên định danh (Distinguished Name - DN): gồm các cặp giá trị cách nhau bằng dấu
phẩy. Ví dụ: "O=University of Technology, OU=Faculty of Information
34
Technology, CN=HPC".
Tên định danh có nhiều trường, trong đó, có một số trường thông dụng là:
O: tên tổ chức (Organization).
OU: tên của đơn vị trong tổ chức đó (Organization Unit).
CN: tên đối tượng, thông thường là tên của người dùng (Common Name).
C: đất nước (Country).
Tên định danh cho phép ta xác định được định danh duy nhất của một đối tượng
trong tổ chức.
2.1.6. Nhà cung cấp và quản lý chứng chỉ số.
Nhà cung cấp và quản lý chứng chỉ số cấp phát và quản lý khoá công khai
dùng trong mật mã. Mỗi đối tượng tham gia giao tiếp có thể tin tưởng Nhà cung cấp
và quản lý chứng chỉ số khác nhau. Trong trường hợp này, cấu trúc phân cấp Nhà
cung cấp và quản lý chứng chỉ số sẽ cho phép các bên tham gia tin tưởng các Nhà
cung cấp và quản lý chứng chỉ số khác nhau vẫn có thể thiết lập các mối quan hệ tin
cậy trong giao tiếp.
Trong hình 2-7, chứng chỉ số của Borja được ký bởi Nhà cung cấp và quản lý
chứng chỉ số FOO. Ngược lại, chứng chỉ số của Nhà cung cấp và quản lý chứng chỉ
số FOO được ký bởi Nhà cung cấp và quản lý chứng chỉ số BAR. Cuối cùng chứng
chỉ số của BAR được ký bởi chính nó.
Nếu chúng ta nhận được chứng chỉ số của Borja mà không hoàn toàn tin
tưởng Nhà cung cấp và quản lý chứng chỉ số FOO, như vậy có nghĩa là chứng chỉ
số của Borja sẽ không được tin tưởng ngay. Chúng ta có thể kiểm tra xem chứng chỉ
số của Nhà cung cấp và quản lý chứng chỉ số FOO có được cấp bởi một Nhà cung
cấp và quản lý chứng chỉ số mà ta tin tưởng hay không. Nếu Nhà cung cấp và quản
lý chứng chỉ số BAR nằm trong danh sách tin tưởng của ta, khi đó chứng chỉ số của
35
Borja được tin tưởng.
Hình 2- 7: Cấu trúc phân cấp Nhà cung cấp và quản lý chứng chỉ số
Tuy nhiên, chú ý rằng Nhà cung cấp và quản lý chứng chỉ số cấp cao tự ký
chứng chỉ số của mình. Điều này không hiếm thấy. Chứng chỉ số này được gọi là
chứng chỉ số tự ký. Một Nhà cung cấp và quản lý chứng chỉ số với một chứng chỉ
số tự ký được gọi là Nhà cung cấp và quản lý chứng chỉ số gốc, bởi không có Nhà
cung cấp và quản lý chứng chỉ số nào ở trên nó. Để tin tưởng chứng chỉ số được ký
bởi một Nhà cung cấp và quản lý chứng chỉ số, Nhà cung cấp và quản lý chứng chỉ
số gốc tương ứng phải nằm trong danh sách Nhà cung cấp và quản lý chứng chỉ số
36
được tin tưởng.
2.2. CƠ SỞ HẠ TẦNG AN TOÀN THÔNG TIN TRÊN LƯỚI.
An toàn thông tin là một trong những nền tảng quan trọng nhất trong hệ
thống lưới. Cơ sở hạ tầng an toàn thông tin lưới (GSI) để giải quyết những vấn đề
an toàn thông tin còn tồn tại trong tính toán lưới, mà nền tảng chính là những kiến
thức về mã mật đã nêu ra ở phần trên. Trong phần này trình bày một số đặc điểm
của GSI và cài đặt ứng dụng của nó.
2.2.1. Cơ sở hạ tầng mật mã khóa công khai.
GSI được xây dựng dựa trên cơ sở hạ tầng mật mã khóa công khai (PKI).
GSI bao gồm tập các thực thể (người dùng và tài nguyên), được phân biệt bởi tên
duy nhất gọi là tên định danh. Chứng thực trong GSI nghĩa là cho mỗi thực thể
người dùng hoặc tài nguyên một tên định danh duy nhất.
Để mỗi thực thể có một định danh duy nhất, GSI đưa ra khái niệm giấy ủy
nhiệm lưới, là sự kết hợp của chứng chỉ lưới với một khoá bí mật tương ứng.
Một điều quan trọng trong môi trường PKI của lưới, mỗi thực thể phải thực
hiện sự trao quyền để bảo đảm sự toàn vẹn của hệ thống trong các giao dịch đa
phương và đa tiến trình. Để bảo đảm khóa bí mật không bị đánh cắp, có thể sử dụng
một số phương pháp: - Lưu trữ khóa trong một file có quyền truy nhập hạn chế. - Lưu trữ khóa trong hệ thống file mà khoá mã hoá chỉ được biết bởi người sở hữu
nó. Ví dụ máy chủ MyProxy để quản lý các giấy uỷ nhiệm lưới.
- Lưu trữ khóa bí mật bằng các thiết bị phần cứng có mật khẩu. Giải pháp phần
cứng cho ta tính an toàn cao, nhưng nó lại ít được sử dụng bởi thiếu sự phát triển
của phần cứng.
- Sử dụng giấy ủy nhiệm trong một khoảng thời gian sống nhất định. Điều này đòi
hỏi thường xuyên phải có cấp mới các giấy ủy nhiệm, bảo vệ khóa bí mật bằng
37
cách hạn chế sự lộ diện của nó.
2.2.2. Bảo vệ thông tin mức thông điệp và mức giao vận.
GSI cho phép chúng ta thực hiện bảo vệ thông tin ở hai mức: mức giao vận
và mức thông điệp.
An toàn thông tin mức giao vận cho phép toàn bộ truyền thông được mã hóa.
An toàn thông tin mức thông điệp chỉ cho phép nội dung của thông điệp được mã
hóa.
Hình 2- 8: An toàn thông tin mức giao vận
Hình 2- 9: An toàn thông tin mức thông điệp
Hai mức bảo mật giao vận và thông điệp có thể đảm bảo tính toàn vẹn, riêng
tư và xác thực nhờ sử dụng các phương pháp mật mã. Tuy nhiên, không phải tất cả
truyền thông cần có cả ba đặc tính này. Nói chung, hội thoại an toàn phải đảm bảo
38
tối thiểu khả năng chứng thực.
2.2.3. Giấy ủy nhiệm lưới.
Trong môi trường lưới, người dùng cần sử dụng nhiều tài nguyên. Mỗi lần
yêu cầu cấp phép tài nguyên, người dùng cần phải chứng thực, và mỗi lần chứng
thực người dùng cần nhập mật khẩu. Việc sử dụng nhiều lần mật khẩu trong chứng
thực đa phương gây bất tiện cho người dùng, đồng thời khoá bí mật rất dễ bị đánh
cắp. Một cách khác là sử dụng phần mềm để nhắc và lưu trữ mật khẩu người dùng
một lần. Tuy nó rất thuận tiện cho người dùng, nó lại bất lợi trên quan điểm về an
toàn thông tin, khi mà nó để lộ khóa bí mật trong một khoảng thời gian dài.
GSI giải quyết vấn đề này với khái niệm giấy ủy nhiệm. Mỗi giấy ủy nhiệm
sẽ hoạt động thay mặt người dùng trong một khoảng thời gian ủy quyền ngắn hạn.
Nói cách khác, việc sử dụng giấy ủy nhiệm ngắn hạn thay thế cho các chứng chỉ số
dài hạn khi chứng thực người dùng.
Giấy ủy nhiệm là sự kết hợp giữa chứng chỉ số dài hạn của người dùng với
khóa bí mật riêng của nó. Giấy ủy nhiệm, theo một cách khác, là sự liên kết ngắn
hạn giữa tên định danh của người dùng với một khóa bí mật khác. Chứng chỉ số
thường được lưu trữ sử dụng mã hóa trong hệ thống file địa phương, thường được
bảo vệ bởi quyền truy cập file trong hệ thống, có thể được sử dụng nhiều lần mà
không có sự bất tiện nào. Còn giấy ủy nhiệm dễ bị tổn thương, nó có thời gian sống
ngắn hạn hơn nhiều so với các chứng chỉ số dài hạn của người dùng, thông thường
là vài giờ.
2.2.4. Sự ủy quyền.
Đối với tính toán phức tạp và kéo dài liên quan tới nhiều tiến trình khác
nhau, người dùng không phải lúc nào cũng có mặt để chứng thực cho mỗi tiến trình.
GSI giải quyết vấn đề này bằng cách cho phép người dùng ủy quyền giấy ủy nhiệm
39
của mình cho giao dịch các máy từ xa.
Sự ủy quyền cũng tương tự như việc tạo ra các giấy ủy nhiệm, một tập chứng
chỉ số dài hạn sẽ được dùng để tạo ra tập các giấy ủy nhiệm mới, có thời gian sống
ngắn hơn. Sự khác nhau là việc tạo ra các giấy ủy nhiệm xảy ra trong các phiên kết
nối đòi hỏi chứng thực GSI, khi các tiến trình từ xa đòi hỏi giấy ủy nhiệm của người
dùng cho chứng thực. Một điều đáng chú ý nữa là sự ủy quyền có thể là một chuỗi,
một người có thể ủy quyền cho một máy A, sau đó tiến trình sử dụng trên máy A có
thể ủy quyền cho máy B và cứ tiếp tục như vậy.
2.2.5. Chứng thực trong GSI.
GSI sử dụng grid-mapfile để đưa ra danh sách điều khiển truy nhập dựa trên
danh sách người dùng được định nghĩa. Việc chứng thực các định danh GSI sẽ
chuyển về chứng thực các định danh địa phương, cùng với việc đó, các chính sách
đưa ra cũng nằm trong phạm vi cục bộ như: quyền truy nhập file, dung lượng đĩa,
tốc độ CPU.
Gần đây GSI áp dụng chuẩn SAML [6] để định nghĩa các định dạng xác
nhận bảo mật và giao thức để lấy xác nhận. GSI sử dụng chứng thực SAML theo
hai cách: Dịch vụ chứng thực cộng đồng CAS hoặc dịch vụ chứng thực của bên thứ
ba như PERMIT.
2.2.6. Ứng dụng của GSI.
GSI cho phép người dùng và các ứng dụng lưới truy nhập vào các tài nguyên
một cách an toàn. Một số khả năng an toàn bảo mật được GSI tập trung hỗ trợ: cơ
chế uỷ quyền và đăng nhập một lần, thẩm quyền và chứng thực đa phương, các giấy
ủy nhiệm thay mặt người dùng trong thời gian ngắn hạn, GSI cũng là thành phần
thiết yếu cho một số công cụ như grid-proxy-init để tạo ra giấy ủy nhiệm từ các
chứng chỉ số, các dịch vụ truyền file GridFTP và máy chủ thông tin LDAP, đệ trình
các ứng dụng từ xa Globus Toolkit Gram hay Secure Shell (SSH) để kết nối tới các
máy từ xa. Ngoài ra, tập các thư viện an toàn bảo mật GSI trong Java Cog Kit tạo
40
điều kiện thuận lợi cho phát triển các ứng dụng lưới có hỗ trợ bảo mật.
2.3. BỘ CÔNG CỤ GLOBUS TOOLKIT 4.0.
Bộ công cụ Globus Toolkit (GT) là sản phẩm của dự án Globus – dự án được
sự hợp tác của nhiều công ty, phòng thí nghiệm của Mỹ nhằm tìm ra giải pháp cho
tính toán lưới. Globus Toolkit là tập hợp các dịch vụ, phần mềm, các thư viện xây
dựng theo kiến trúc mở.
Có thể nói dự án Globus đã và đang đóng góp rất lớn vào sự phát triển của
tính toán lưới. Đã có hàng trăm dự án áp dụng tính toán lưới lớn, nhỏ trên toàn thế
giới đang sử dụng bộ công cụ Globus Toolkit để xây dựng cơ sở hạ tầng và triển
khai các ứng dụng của mình. Phiên bản mới nhất hiện nay là phiên bản GT4, đây là
phiên bản đầu tiên có hỗ trợ các thực thi Web Services trong nhiều thành phần của
nó. Tuy nhiên vẫn có một số thành phần chưa sử dụng các thực thi Web Services và
vì lý do tương thích với các phiên bản cũ hơn.
2.3.1. Thành phần chính của Globus Toolkit.
GT4 gồm có 5 thành phần chính sau [4]:
− Thành phần thực thi cơ bản (Common runtime components) − Thành phần bảo vệ thông tin (Security component) − Thành phần quản lý dữ liệu (Data management component) − Dịch vụ theo dõi và tìm kiếm (Monitoring and Discovery Services) − Thành phần quản lý thực thi (Execution management)
1/. Thành phần thực thi cơ bản (Common runtime components)
Thành phần thực thi cơ bản bao gồm tập các thư viện và các công cụ cung
cấp môi trường xử lý cho cả hai mô hình dịch vụ: dịch vụ web và không phải là
dịch vụ web. Đồng thời đây là thành phần nền tảng của Globus Toolkit phục vụ cho
41
các dịch vụ khác trong bộ công cụ này.
2/. Thành phần bảo vệ thông tin (Security Component)
Thành phần bảo vệ thông tin nằm phía dưới tất cả các thành phần khác cung
cấp các chức năng an toàn thông tin, được xây dựng dựa trên mô hình mã hóa khóa
công khai, giao thức bảo mật SSL (Secure Socket Layer) và chứng chỉ số X.509.
Thành phần này cung cấp cơ chế xác thực một lần (single sign on), mã hóa trong
truyền thông và cơ chế ủy quyền. Cần khẳng định rằng: bảo vệ thông tin trong tính
toán lưới là một vấn đề trung tâm. Khi triển khai ở phạm vi lớn, lưới với cơ cấu
phức tạp nếu không được thiết kế gắn liền với an toàn thông tin thì hệ thống lưới rất
dễ bị sụp đổ do truy xuất trái phép, các loại sâu, các phương thức tấn công, cũng
như các hacker. 3/. Thành phần quản lý dữ liệu (Data management)
Globus Toolkit cung cấp các dịch vụ thao tác với dữ liệu:
• Dịch vụ truyền file trên lưới GridFTP
GridFTP là mở rộng của giao thức FTP truyền thống để cung cấp dịch vụ
truyền file hiệu quả cao và được thực hiện trên nền bảo mật lưới chặt chẽ. Ngoài ra,
một tính năng quan trọng của giao thức GridFTP là cho phép truyền file theo mô
hình third-party. Trong mô hình truyền file truyền thống, việc truyền file chỉ thực
hiện được giữa client và server. Còn trong mô hình truyền file third-party, Client có
42
thể thực hiện truyền file giữa các server với nhau
Hình 2- 10: Truyền file theo mô hình third-party
• Dịch vụ truyền file tin cậy RFT (Realiable File Transfer)
RFT sử dụng GridFTP để truyền file. RFT cung cấp dịch vụ truyền file tin cậy
dưới dạng dịch vụ web, đồng thời RFT cũng sử dụng cơ sở dữ liệu để có thể phục
hồi việc truyền file nếu xảy ra sự cố.
43
Hình 2- 11: Dịch vụ truyền file RFT
• Dịch vụ sao lưu dữ liệu trên lưới
Dịch vụ sao lưu dữ liệu DRS (Data Replication Service), dịch vụ định vị tệp
RLS (Replica Location Service) 4/. Dịch vụ theo dõi và tìm kiếm tài nguyên (Monitoring and Discovery
Services)
Dịch vụ theo dõi và tìm kiếm tài nguyên cung cấp kiến trúc thống nhất cho việc
theo dõi các thông tin về cấu hình hệ thống trên các nút lưới của toàn bộ hệ thống.
Dịch vụ thông tin cung cấp thông tin vật lý như: hệ điều hành, năng lực xử lý, bộ
nhớ đồng thời cũng cung cấp các thông tin về các dịch vụ mà nút lưới đó cung cấp
các dịch vụ lưới. 5/. Thành phần quản lý thực thi (Execution management)
Globus Tookit cung cấp các thành phần làm nhiệm vụ thực thi công việc, giám
sát công việc, và giao tiếp với bộ lập lịch địa phương. Trong đó quan trọng nhất là
thành phần WS GRAM (Grid Resource Allocation and Management).
WS GRAM là một dịch vụ lưới được viết theo mô hình Web Services, cung cấp
khả năng thực hiện và quản lý trạng thái công việc từ xa. Khi Client đệ trình công
việc, yêu cầu đó được gửi tới bằng thông điệp SOAP (Simple Object Access
Protocol) [5] và được xử lý bởi thành phần WS GRAM trên máy đó. WS GRAM có
khả năng chuyển các yêu cầu đó thành dạng mà các bộ lập lịch địa phương hiểu
được và yêu cầu các bộ lập lịch địa phường thực hiện. Trong quá trình thực thi công
việc, WS GRAM còn kết hợp với dịch vụ RFT để thực hiện truyền, nhận các file
đầu vào và các file kết quả.
Ngoài ra Globus Toolkit còn cung cấp các thành phần khác liên quan đến việc
quả lý thực thi công việc như: bộ siêu lập lịch Community Scheduler Framework 4
(CSF4), dịch vụ quản lý không gian làm việc Workspace Management Service
(WMS). Tuy nhiên các thành phần này đang trong giai đoạn phát triển và chưa được
44
hoàn thiện.
2.3.2. An toàn bảo mật trong Globus Toolkit.
GT4 cung cấp một số dịch vụ về an toàn bảo mật:
- Credential processing service: là dịch vụ đảm nhận việc xử lý và kiểm tra các
yêu cầu về chứng thực.
- Authorization service: dịch vụ này xác định quyền của các hoạt động dựa trên
việc áp dụng các quyền bảo mật đối với từng đối tượng yêu cầu hành động đó và
cụ thể yêu cầu đó.
- Credential Conversion service: là dịch vụ trung gian chuyển đổi giữa các cơ chế
ủy nhiệm địa phương và các tổ chức ảo.
- Identity Mapping service: là dịch vụ ánh xạ tài khoản người dùng trong một
miền tới một tài khoản đối với một miền khác.
- Audit: dịch vụ log lại các sự kiện.
Môi trường trình chủ (Hosting environment)
Trình chủ là môi trường để nuôi sống và phát triển các dịch vụ. Dịch vụ lưới
cũng tương tự như các dịch vụ Web khác, được xây dựng trên các môi trường trình
chủ như J2EE hay .NET. Những trình chủ này cung cấp mức độ cao của an toàn bảo
mật và hầu hết các chức năng an toàn bảo mật đều được đặt trên trình chủ do đó sẽ
làm cho việc phát triển đơn giản hơn và cho phép các chức năng được nâng cấp
hoàn toàn độc lập với các ứng dụng.
Hình dưới đây đưa ra một ví dụ đã được đơn giản hóa của cách thức hoạt
động của mô hình OGSA. Một yêu cầu xuất phát từ một OGSA client tới một
OGSA service. Cả client và service đều được chứa trong các trình chủ (để đơn giản
một số các chi tiết về quá trình bảo mật như auditing (kiểm định), quá trình chứng
45
nhận client được bỏ qua).
Hình 2- 12: Kiến trúc an toàn bảo mật trong Globus Toolkit
Client đầu tiên sẽ tạo một yêu cầu tới một dịch vụ OGSA và truyền yêu cầu
đó tới trình chủ xử lý. Các bước sau dùng để xử lý yêu cầu từ client:
- Trình chủ chứa client kiểm tra các chính sách an toàn bảo mật của dịch vụ được yêu
cầu để xác định những cơ chế và ủy nhiệm nào cần phải tuân theo để có thể đệ trình
yêu cầu.
- Nếu trình chủ bên phía client xác định được rằng các cơ chế ủy nhiệm cần thiết
chưa có, thì nó sẽ yêu cầu một dịch vụ Credential Conversion Service để chuyển
các giấy ủy nhiệm đã có thành dạng cần thiết. (ví dụ CAS để chuyển các giấy ủy
nhiệm cá nhân thành giấy ủy nhiệm của VO, và KCA để chuyển giữa chuẩn
Kerberos và PKI – Public Key Infrastructure).
- Trình chủ phía client sử dụng Token Processing và Validate Service (dịch vụ xử lý
và kiểm tra) để xử lý các yêu cầu chứng thực khi giao tiếp với dịch vụ yêu cầu.
Chính dịch vụ này đã làm cho ứng dụng và trình chủ không phải quan tâm nhiều
46
đến các chi tiết cụ thể.
- Về phía server, trình chủ cũng sử dụng một dịch vụ xử lý việc chứng thực của
client. Sau quá trình chứng thực client, trình chủ phía server chuyển yêu cầu và
thông tin về client tới một dịch vụ chứng thực ví dụ PERMIS hay Akenti để quyết
định các quyền hạn thực thi.
Nếu tất cả các bước trên đều thành công thì trình chủ phía server sẽ chuyển
các yêu cầu đã được cho phép tới dịch vụ được yêu cầu để xử lý. Ứng dụng biết
rằng trình chủ đã đảm nhận toàn bộ việc bảo mật do đó chỉ tập trung vào việc xử lý
yêu cầu.
2.3.3. Minh họa cài đặt cơ chế an toàn bảo mật cho dịch vụ GRAM.
Tài nguyên lưới bao gồm các các máy chủ, máy trạm, các siêu máy tính, các
thiết bị lưu trữ kết nối với một lưới dữ liệu thông qua mạng truyền thông để cùng
thực hiện một mục tiêu chung.
Dịch vụ định vị tài nguyên GRAM (Globus Resource Allocation
Management) là dịch vụ của GT cho phép client có thể khởi tạo, quản lý, theo dõi
an toàn bảo mật các nhiệm vụ tính toán trên các máy ở xa. Việc tiến hành đối với
GRAM là một trong những công việc phức tạp nhất bởi vì nó liên quan nhiều đến
cả cơ chế an toàn bảo mật địa phương và các client từ xa. Phần này sẽ trình bày việc
cài đặt an toàn bảo mật trong GRAM để minh họa cho việc cài đặt cho các dịch
vụ.
Để có thể thực hiện công việc nhờ GRAM, một client phải mô tả công việc,
chỉ rõ những chi tiết về thư mục thực thi, nơi lưu trữ các đầu ra và đầu vào. Những
mô tả này được gửi tới tài nguyên và kết quả là một thực thể của dịch vụ quản lý
công việc MJS (Managed Job Service). Một MJS là một dịch vụ của lưới cho phép
khởi tạo công việc, điều khiển, theo dõi công việc.
MJS được tạo bởi một dịch vụ sinh MJS. Về lý thuyết thì sẽ có tương ứng
với mỗi tài khoản người dùng một dịch vụ sinh MJS, tuy nhiên trong thực tế để
tránh lãng phí, GT chỉ thực thi một trình chủ sinh MJS là Master Managed Job
47
Factory Service (MMJFS).
Mỗi MMJFS chạy trên mỗi tài nguyên và triệu gọi dịch vụ sinh MJS địa
phương LMJFS (Local Managed Job Factory Services) dùng khi cần thiết. Dịch vụ
điều hướng (Proxy Router service) dẫn những yêu cầu từ người dùng tới LMJFS
nếu có (hoặc MMJFS nếu LMJFS của người dùng đó không tồn tại). Với MJS
factory thì có thể có một hay nhiều thể hiện của MJS chạy cùng một lúc trên môi
trường trình chủ.
Hình 2- 13: Cơ chế thực hiện của GRAM
Như minh họa trên hình 2-14, để thực hiện công việc trên GRAM phải qua 7
bước:
1/. Người yêu cầu tạo một bản mô tả công việc và kèm với một giấy ủy nhiệm thích
hợp. Yêu cầu này sau đó được gửi tới tài nguyên đích.
2/. Dịch vụ điều hướng Proxy Router nhận yêu cầu và gửi tới LMJFS nếu có (nhảy tới
bước 6) hoặc gửi tới MMJFS (thực hiện tiếp bước 3).
3/. MMJFS xác nhận chữ ký trên yêu cầu sau đó xác định tài khoản cục bộ mà công
việc sẽ thực hiện dựa trên tài khoản đó sử dụng grid-mapfile, một file nằm trên máy
48
cục bộ chứa những thông tin ánh xạ từ GSI vào tài khoản cục bộ.
4/. MMJFS triệu gọi quá trình Setuid Starter để khởi tạo LMJFS. Setuid Starter là
chương trình có đặc quyền (ví dụ như setuid-root) mà chức năng duy nhất của nó là
khởi tạo một LMJFS đã được cấu hình sẵn cho một người dùng.
5/. Khi LMJFS đã được tạo, nó cần nhận được giấy ủy nhiệm và phải tự đăng ký với
dịch vụ điều hướng Proxy Router để nó thể nhận được các yêu cầu khác trong tương
lai. LMJFS triệu gọi Grid Resource Identity Mapper (GRIM) để nhận được giấy ủy
nhiệm. GRIM là một chương trình có đặc quyền truy cập và sinh ra các giấy ủy
nhiệm cho LMJFS. Giấy ủy nhiệm này chứa trong nó định danh người dùng lưới,
tên người dùng cục bộ … để giúp cho người yêu cầu có thể đảm bảo đây đúng là
LMJFS cần thiết.
6/. LMJFS nhận được yêu cầu công việc, LMJFS kiểm định chữ ký trên yêu cầu để
đảm bảo là nó không bị giả mạo và kiểm tra xem người yêu cầu có được quyền truy
cập tài khoản người dùng cục bộ mà LMJFS đang chạy. LMJFS khởi tạo một MJS
và trả lại tham chiếu dịch vụ đến người dùng.
7/. Người yêu cầu kết nối tới MJS để bắt đầu công việc. Người yêu cầu và MJS kiểm
chứng lẫn nhau trước khi tiến hành quá trình giao dịch. MJS kiểm định xem
requestor có đủ thẩm quyền để thực thi trong tài khoản cục bộ hay không còn
requestor kiểm định xem MJS có giấy ủy nhiệm (GRIM credential) hợp lý từ máy
chủ hay không, điều này cho phép client không chỉ xác định được là MJS chạy trên
49
đúng máy chủ mà còn chạy trên đúng tài khoản.
Chương 3. HỆ THỐNG QUẢN LÝ TỔ CHỨC ẢO
3.1. TỔ CHỨC ẢO.
3.1.1. Khái niệm tổ chức ảo.
Các ứng dụng lưới hiện tại có thể khác nhau về số lượng người tham gia, thời
gian diễn ra & mức độ các hoạt động trao đổi thông tin, lượng tài nguyên chia sẻ...
Song, chúng đều có các điểm tương đồng về các cơ chế chia sẻ và sử dụng tài
nguyên: 1/. Ràng buộc tài nguyên chia sẻ: Những người cung cấp tài nguyên, xác định các
ràng buộc sử dụng trên chính tài nguyên họ cung cấp. Họ có quyền quyết định
khi nào, tài nguyên nào sẽ được chia sẻ.
2/. Quan hệ chia sẻ: Mối quan hệ giữa các bên tham gia chia sẻ và sử dụng tài
nguyên là mối quan hệ ngang hàng, chứ không theo mô hình khách chủ. Các tổ
chức tham gia, vừa có thể là bên cung cấp, vừa có thể là bên sử dụng.
3/. Chính sách chia sẻ động: Sở dĩ gọi là động vì chính sách chia sẻ có thể thay đổi
liên tục, phụ thuộc vào quyết định của bên cung cấp tài nguyên. Các bên tham
gia cần cập nhật liên tục các chính sách này để có phương án sử dụng thích hợp.
Nhóm các cá nhân, tổ chức cùng tuân theo các cơ chế chia sẻ và sử dụng tài
nguyên như vậy, được gọi là tổ chức ảo (VO – Virtual Organization).
50
Hình 3- 1: Tổ chức ảo.
Trong hình 3-1 là ví dụ về 2 tổ chức ảo P và Q. Tổ chức ảo Q (bên phải hình
vẽ) thực hiện các nghiên cứu về tia, tài nguyên sử dụng là năng lực tính toán của
các đơn vị tham gia. Tổ chức ảo P có thể sử dụng chương trình B, dữ liệu D của tổ
chức thật 3; chương trình A của tổ chức thật 1. Tổ chức ảo Q có thể sử dụng chu kỳ
tính toán rảnh rỗi của các tổ chức thật 1và 2. Một số tài nguyên của tổ chức thật có
thể tham gia vào cùng nhiều tổ chức ảo như chương trình A và các tài nguyên tính
toán trên máy chứa nó (tổ chức thật 2).
Như vậy, tổ chức ảo thực chất là nhóm các cá nhân, đơn vị có cùng phạm vi
và chính sách chia sẻ tài nguyên. Các thành viên trong cùng VO chỉ được sử dụng
các tài nguyên lưới trong phạm vi mà bên cung cấp tài nguyên – Resource Provider
(RP) quy định cho VO đó. Do đó, khi xem xét dưới góc độ tài nguyên, có thể coi
lưới là kết quả của sự hợp tác giữa bên sử dụng - VO và bên cung cấp - RP.
3.1.2. Tổ chức ảo và tài nguyên lưới.
Vì lưới có nhiều người dùng và nhiều loại tài nguyên nên kéo theo phải quản lý
một lượng lớn các thông tin về người dùng và các quyền của họ với tài nguyên. Các
thông tin này còn được gọi là thông tin phân quyền. Các thông tin về phân quyền
được chia ra thành hai loại: • Thông tin về người dùng trong tổ chức ảo:
Các thông tin về tổ chức ảo, nhóm của người dùng trong tổ chức, vai trò của họ
trong nhóm và các quyền tương ứng người đó được phép thực hiện. • Thông tin về các quyền của người dùng với RP:
Phụ thuộc vào thông tin của người dùng trong VO, các thông tin ở RP sẽ được
ánh xạ tương đương.
Nhóm các thông tin về người dùng trong tổ chức ảo được quản lý tập trung tại
server của VO, nhóm thông tin về quyền của người dùng với RP được lưu tại các tài
nguyên được yêu cầu. Nhóm thông tin thứ hai được RP tạo ra dựa trên các chính sách
sử dụng tài nguyên lưới cục bộ và các thỏa thuận cam kết tài nguyên với VO. Các
thông tin này được lưu dưới dạng danh sách quản lý các truy cập (Access Control List
51
- ACL), quyết định việc truy cập tài nguyên có được phép hay không.
Dù vai trò của VO và RP là khác nhau trong việc quản lý và sử dụng tài
nguyên, nhưng sự phối hợp giữa chúng sẽ quyết định tính nhất quán trong chính sách
sử dụng tài nguyên của toàn bộ lưới.
Điều kiện đầu tiên cho một người dùng muốn tham gia lưới, họ phải là thành
viên của một VO nào đó. Tổng quát, họ có thể là thành viên của nhiều VO khác nhau.
Trong mỗi VO, người dùng lại có các vai trò khác nhau. Yêu cầu được đặt ra là: ngay
sau khi người dùng đăng nhập, họ có quyền chọn các VO mà họ tham gia. Các quyền
tương ứng với vai trò của họ trong VO đó phải được xác định ngay sau đó.
Về phía RP, căn cứ vào vai trò người dùng lưới trong VO, sẽ ánh xạ họ vào các
người dùng địa phương trên máy cục bộ. Các quyền của người dùng địa phương phải
đảm bảo cho người dùng lưới thực thi được các quyền của họ trong VO. Do đó, đảm
bảo được tính nhất quán trong chính sách sử dụng tài nguyên của VO nói riêng và
toàn bộ lưới nói chung.
52
Hình 3- 2: Người dùng lưới với VO và RP.
3.1.3. Thông tin người dùng trong tổ chức ảo.
3.1.3.1 Cấu trúc tổ chức ảo.
Cấu trúc tổ chức của tổ chức ảo là cấu trúc phân cấp. Tổ chức ảo là nhóm lớn
nhất. Từ nhóm lớn nhất lại chia nhỏ thành các nhóm con trực thuộc. Mỗi nhóm có
quyền khác nhau trên những tài nguyên lưới mà tổ chức ảo được cấp. Tùy theo yêu
cầu, người dùng được chia vào các nhóm phù hợp với nhiệm vụ của họ.
Mỗi nhóm có một hoặc nhiều người quản trị. Có 2 cấp độ quản trị là quản lý
nhóm và quản trị toàn bộ VO. Ở mức nhóm, các công việc quản trị là quản lý thành
viên trong nhóm, xử lý các yêu cầu tham gia nhóm, gán các quyền quản trị cho thành
viên trong nhóm. Lên tới cấp độ toàn VO, người quản trị có thêm quyền xét duyệt
đơn đăng ký tham gia vào VO.
Có thể biểu diễn cấu trúc của VO bằng đồ thị có hướng không chu trình.
G,R
G1,R
G2,R
G3,R
G1.1,R
G1.2,R
G2.1,R
G3.1,R
G1.2.1,R
Hình 3- 3: Cây phân cấp VO.
Mỗi nhóm được biểu diễn bởi một đỉnh của đồ thị (nút), mỗi quan hệ giữa hai
nhóm được biểu diễn bằng một cạnh có hướng. VO ban đầu là nhóm gốc, là cha của
chính nó. Ngoại trừ nhóm gốc, mỗi nhóm có thể có nhiều nhóm cha. Tuy nhiên, một
nhóm không được phép là nhóm con của chính con nó, để đảm bảo không có chu
53
trình trong đồ thị.
3.1.3.2 Thông tin người dùng.
Do cấu trúc tổ chức phân cấp của VO mà khi người dùng được phân vào nhóm
con, thì người đó cũng đồng thời là thành viên của nhóm cha. Chính xác hơn, người
dùng đó là thành viên của tất cả các nhóm nằm trên đường nối từ nhóm con đến nút
gốc trên đồ thị.
Người dùng trong nhóm được đặc trưng bởi vai trò và các quyền tương ứng
với vai trò đó. Khi người dùng tham gia nhóm, họ sẽ giữ một vai trò nào đó, đơn giản
có thể là “Group Member”… hoặc cao nhất là VO-Admin. Phạm vi của vai trò chỉ
được giới hạn trong nhóm. Sự khác nhau giữa nhóm và vai trò thể hiện ở chỗ: các
nhóm người dùng tham gia luôn được chỉ rõ, còn vai trò của người dùng thì có thể
được tùy chọn trong danh sách các vai trò có sẵn.
Tương ứng với vai trò là các quyền họ được phép làm. Vai trò và các quyền
được kế thừa từ các nhóm cha của nhóm mà người dùng đang tham gia.
Để kết luận, ta đưa ra mô hình:
Người dùng U là thành viên của nhóm {G1, G2… Gn}. Quan hệ của người
dùng U với nhóm Gk, được đặc trưng bởi bộ ba (Gk, Rk, Ck) tương ứng với thông tin
về thành viên nhóm, vai trò, quyền. Các thông tin phân quyền đầy đủ về U sẽ là
(G1, R1, C1)… (Gn, Rn, Cn).
Bộ ba thuộc tính này phản ánh sự thỏa thuận giữa bên yêu cầu VO và bên thực
thi RP. VO cung cấp các thông tin về quyền của người dùng, và RP có nhiệm vụ đảm
bảo thực thi các quyền đó. Lấy ví dụ như lưới dữ liệu CERN được coi như tổ chức ảo
VO có hai nhóm là sản xuất (production) và sao lưu (replicator). Các vai trò có thể
trong nhóm là quản trị VO (VO-admin) và quản trị nhóm (Admin). Mỗi thành viên
54
nhóm có các quyền thực thi lâu dài (long-job) hay là lưu trữ lớn (large-space).
3.1.3.3 Định dạng thông tin VO.
Người dùng trong VO có 3 thuộc tính cơ bản là nhóm, vai trò và quyền. Cả 3
thuộc tính này được gọi chung là “Tên thuộc tính đầy đủ” - “Fully Qualified Attribute
Names” (FQAN).
Cú pháp: /VO[/group[/subgroup(s)]][/Role = role][/Capability = cap]
Ví dụ: Vai trò Administrator trong group AGP của VO hpcc.hut.edu.vn là:
/hpcc.hut.edu.vn/AGP/Role=Administrator.
3.1.3.4 Thông tin về các quyền người dùng với RP.
Ứng với các thông tin về người dùng trong VO, một cơ chế khác trên RP tự
động thực hiện để luôn đảm bảo các quyền người dùng trên RP thực hiện nhất quán
với chính sách tài nguyên của VO. Cơ chế ánh xạ gridmap được sử dụng. Nhiệm vụ
của nó là ánh xạ thông tin người dùng vào các tài khoản cục bộ trên máy thực thi.
Tài khoản cục bộ có các quyền gì trên tài nguyên lưới, người dùng lưới sẽ có
các quyền như vậy. Vậy làm thế nào để xác định được tài khoản nào sẽ được gán
cho người dùng lưới? Nếu cơ chế ánh xạ hoạt động sai lệch sẽ ảnh hường trực tiếp
đến tính đúng đắn cho chính sách sử dụng tài nguyên cũng như an toàn cho cả hệ
thống thực thi.
Cơ chế ánh xạ dựa trên việc tự động thiết lập một kênh trao đổi thông tin an
toàn giữa VO và RP. Phía RP sẽ định kỳ theo dõi các thông tin từ phía VO, cập nhật
các người dùng mới cũng như các quyền của họ. Kết hợp với các chính sách tài
nguyên cục bộ cũng như các thỏa thuận đã ký với VO, RP chọn ra tài khoản phù
hợp để ánh xạ cho đúng.
Như vậy, để quản lý thông tin về quyền của người dùng trong lưới, ta chia
các thông tin của họ theo phạm vi họ thuộc vào (bên sử dụng tài nguyên – VO) và
bên cung cấp tài nguyên cho họ (RP). Để quản lý các thông tin thành viên trên VO,
chúng ta sẽ sử dụng dịch vụ thành viên tổ chức ảo – Virtual Organization
Membership Service (VOMS). Các thông tin về quyền người dùng sẽ được quản lý
55
bởi dịch vụ ánh xạ EDG-MKGRIDMAP.
3.2. HỆ THỐNG QUẢN LÝ TỔ CHỨC ẢO.
Dịch vụ thành viên tổ chức ảo VOMS là nỗ lực phát triển chung của hai dự
án Lưới dữ liệu Châu Âu - European DataGrid và Atlantic. Trải qua hơn 10 năm
phát triển, ngày nay VOMS đã được tích hợp sẵn trong Glite và là thành phần
không thể tách rời trong mô hình quản lý người dùng lưới theo tổ chức ảo của cộng
đồng lưới này.
VOMS cho phép quản lý thông tin phân quyền của người dùng trong VO
theo thời gian thực. Các thông tin phân quyền được lưu bao gồm các thông tin
chứng thực, vai trò người dùng và các quyền của họ trong VO. VOMS cung cấp
thêm các thông tin bổ sung vào giấy phép của người dùng. RP sẽ căn cứ vào các
thông tin này để phân quyền.
Hình 3- 4: Kiến trúc VOMS.
Hình 3-4 minh họa các tương tác giữa người dùng với VOMS. 2 loại người
dùng tương tác với hệ thống là người dùng lưới và người quản trị VO. Người dùng
lưới đăng ký và xin giấy phép hoạt động với VOMS. Người quản trị quản lý VO và
56
xử lý các yêu cầu gia nhập.
3.2.1. Người dùng với VOMS.
3.2.1.1 Người dùng lưới với VOMS.
Muốn sử dụng tài nguyên trong lưới, người dùng phải tham gia vào VO có
quyền sử dụng tài nguyên đó. Việc đầu tiên người dùng cần làm là đăng ký thành viên
với người quản trị VO. Mỗi người dùng có thể đăng ký với nhiều VO khác nhau. Sau
khi được chấp nhận, người dùng xin chứng nhận tạm thời (proxy cerfiticate) để có
quyền truy cập tài nguyên.
Cụ thể, quy trình người dùng xin gia nhập VO như sau:
1/. Người dùng sở hữu chứng chỉ số của CA được VOMS Server tín nhiệm. Người
dùng truy cập web admin của VOMS Server, cung cấp một số thông tin cá nhân,
đồng ý với các điều khoản sử dụng lưới của VO và nộp đơn xin gia nhập.
2/. Một email được gửi tới hòm thư của người dùng. Người dùng nhận được email,
lựa chọn đồng ý tiếp tục quá trình đăng ký.
3/. Người dùng chờ quyết định từ VO-Admin xem xét đơn gia nhập VO. Một
email thông báo sẽ được gửi tới người dùng khi có kết quả xét duyệt của người
quản trị VO.
57
Hình 3- 5: Quy trình xin đăng ký dùng lưới tính toán.
grid-proxy-init là công cụ để cấp phép chứng chỉ số tạm thời cho người dùng
lưới. Thay vì sử dụng grid-proxy-init, ta sẽ sử dụng voms-proxy-init để xin cấp chứng
thực quyền thành viên. Giống như công cụ grid-proxy-init, công cụ voms-proxy-init
cũng tạo ra chứng chỉ số tạm thời cho người dùng lưới, và gắn thêm các thông tin về
phân quyền của người dùng từ VOMS server.
Các thông tin này bao gồm giấy ủy quyền của người dùng, của VOMS server
và thời hạn của chứng nhận tạm thời. Tất cả các thông tin này sau đó đều được xác
nhận bằng chữ kỹ số của VOMS server. Các chứng nhận do voms-proxy-init sinh ra
đều hoạt động tốt với các hệ thống cũ không hỗ trợ VO để đảm bảo tính tương thích
ngược.
Quy trình người dùng xin chứng chỉ số tạm thời như sau như sau:
1/. Người dùng và VOMS server xác thực lẫn nhau. 2/. Người dùng gửi yêu cầu xin chứng thực đến VOMS server. 3/. VOMS server xác nhận thành viên & vai trò của người dùng trong VO và kiểm tra
lại yêu cầu; sau đó cấp và trả lại cho người dùng các thông tin được yêu cầu.
4/. Người dùng kiểm tra các thông tin nhận được.
58
Hình 3- 6: Quy trình xin chứng nhận VOMS.
Ngoài các thuộc tính cơ bản của chứng nhận lưới, chứng nhận tạm thời gắn
thêm các thuộc tính nhận được từ VOMS server. Ngoài ra, người dùng có thể tích hợp
thêm các thuộc tính xác thực khác như phương pháp Kerberos, nhãn thời gian…
Sau khi có chứng nhận VO từ VOMS, người dùng gửi các chứng nhận này đến
đến RP để sử dụng tài nguyên. Để kiểm tra quyền, Gatekeeper bên phía thực thi sẽ
tách các thuộc tính bổ sung từ VOMS, kiểm định và xác thực các thuộc tính phân
quyền. Các thuộc tính này, kết hợp với chính sách sử dụng tài nguyên trước đó giữa
VO và RP, sẽ quyết định các tài nguyên người dùng được phép sử dụng. Các thuộc
tính này là không bắt buộc, nên các chứng thực do VOMS sinh ra vẫn đảm bảo tính
tương thích ngược, tức là làm việc được với các hệ thống không hỗ trợ kiểm tra các
59
thuộc tính về phân quyền.
3.2.1.2 Người quản trị với VOMS
Người quản trị VOMS được chia ra 2 cấp độ quản trị. Ở cấp độ quản lý
nhóm, họ quản lý quyền, thành viên của các nhóm con trong VO. Ở cấp độ toàn
VO, người quản trị có thêm nhiệm vụ quản lý các đơn gia nhập VO.
Cụ thể, người quản trị nhóm có các quyền sau:
Hình 3- 7: Người quản trị nhóm với hệ thống.
Người quản trị nhóm phụ trách quản lý người dùng (thêm, xóa, tìm kiếm),
quản lý nhóm (thêm, xóa, tìm kiếm, quản lý ACL cho nhóm), quản lý vai trò (thêm,
xóa, tìm kiếm), quản lý thành viên (thêm, bớt; gán, gỡ bỏ vai trò của các thành
60
viên). Người quản trị VO thừa kế các quyền quản lý của quản trị nhóm.
Hình 3-8: Quản trị nhóm và quản trị VO.
Ngoài ra, quản trị VO còn có thêm các quyền quản lý riêng ở cấp độ toàn tổ
chức. Đó là quản lý đăng ký.
Hình 3-9: Quản trị VO và hệ thống.
3.2.2. Dịch vụ VOMS.
Dựa theo 2 loại tác nhân chính tương tác với hệ thống là người dùng lưới và
người quản trị, có thể chia dịch vụ VOMS thành 2 phần chính theo phía người dùng
và phía quản trị. Phía quản trị bao gồm: • Server quản trị: xử lý các yêu cầu từ phía máy khách, cập nhật, sửa đổi cơ sở dữ
liệu.
• Client quản trị: đóng vai trò người quản trị VO ( thêm người dùng, tạo, xóa
61
nhóm, thay đổi vai trò…).
Phía người dùng bao gồm:
• Server người dùng: nhận các yêu cầu từ phía máy khách và trả lại các thông tin
về người dùng.
• Client người dùng: liên hệ với server để lấy về chứng nhận người dùng, danh
sách các nhóm, vai trò và khả năng của người dùng. Mọi quá trình giao tiếp giữa
client và server phải đảm bảo xác thực và an toàn.
Hình 3- 10: Hệ thống VOMS.
Thành phần chính của server người dùng là Dịch vụ sinh thuộc tính AAS
(Attribute Authority Service).
Thành phần chính của server quản trị là Dịch vụ đăng ký & quản trị ARS
(Administration and Registration Service). ARS là công cụ của người quản trị, phụ
trách quản lý cấu trúc phân cấp nhóm, người dùng, thành viên trong VO. AAS sẽ
căn cứ vào các thông tin phân quyền do ARS cấp để chứng thực quyền cho người
dùng.
3.2.2.1 Dịch vụ sinh thuộc tính AAS.
AAS hỗ trợ sinh chứng thực dưới 2 định dạng là X509 AC (Attribute
62
Certificate) và SAML AA (Atrribute Assertion).
X509 AC gồm 2 phần là vomsd (VOMS Daemon) và voms-proxy-init.
VOMSD chạy như một tiến trình ngầm, xác thực yêu cầu voms-proxy-init đến từ
người dùng và cấp chứng nhận thuộc tính AC (Attribute Cerfiticate) cho thành viên
VO.
SAML AA, được phát triển trong dự án OMII và mới được tích hợp vào
VOMS-Admin gần đây. Với SAML AA, VOMS hỗ trợ giao thức SAML để các
client có thể lấy về chứng nhận thuộc tính thông qua giao thức này.
3.2.2.2 Dịch vụ đăng ký & quản trị ARS.
Là dịch vụ chính của server quản trị, nhiệm vụ của ARS là quản lý VO. ARS
là công cụ quản lý VO chính của người quản trị.
ARS hỗ trợ giao thức kết nối SOAP, nên có thể dễ dàng chuyển sang dịch vụ
OGSA. Nó bao gồm 5 thành phần cơ bản: + Nhân (Core): các chức năng cơ bản cho phía client. + Quản trị (Admin): quản trị cơ sở dữ liệu VOMS. + Nhật ký (History): ghi lại nhật ký các thay đổi. + Yêu cầu (Request): cơ chế quản lý các yêu cầu của người dùng mới và các thay
đổi khác.
+ Tính tương thích (Compability): sử dụng tiện ích mkgridmap, đơn giản hóa
việc truy cập đến danh sách người dùng.
63
Hình 3- 11: Thành phần của server quản trị.
ARS tích hợp giao diện Web ( Ứng dụng web J2EE chạy trên Apache
Tomcat ) thuận lợi cho phía người dùng đăng ký thành viên. Người quản trị có thể
tương tác trực tiếp với ARS thông qua website này hoặc sử dụng giao diện dòng
lệnh (voms-admin client).
Hình 3- 12: Giao diện Web và dòng lệnh cho quản trị VO.
3.2.3. Phân quyền người dùng trong VOMS.
3.2.3.1 Danh sách điều khiển truy cập.
Toàn bộ các tác vụ quản trị của ARS đều dựa trên quy trình chứng thực
X509 và cấp quyền từ VOMS-Admin Authorization framework. Người quản trị
muốn thực hiện các thao tác thêm, sửa, xóa; nhất thiết phải có quyền tương ứng trên
VO.
Cụ thể, để xác định người dùng trong VO được phép làm gì, VOMS-Admin
tổ chức danh sách điều khiển truy cập ACL (Access Control List). ACL bao gồm
nhiều mục, mỗi mục là một cặp: chủ thể VO và quyền được phép. Chủ thể VO có
thể là quản trị của VO, thành viên của VO, VOMS FQAN hoặc bất cứ người dùng
64
có chứng thực nào.
Các quyền cơ bản của các chủ thể VO trong VOMS là:
Quyền cơ bản Ý nghĩa
CONTAINER_READ
Thao tác duyệt, thêm xóa nhóm và vai trò. Thêm, xóa người dùng. CONTAINER_WRITE
MEMBERSHIP_READ Quản lý thành viên trong nhóm, vai trò.
MEMBERSHIP_WRITE
ATTRIBUTES_READ
Quản lý các thuộc tính của người dùng, nhóm, vai trò. ATTRIBUTES_WRITE
Quản lý ACL và ACL mặc định của VO. ACL_READ
ACL_WRITE
ACL_DEFAULT
REQUESTS_READ Quản lý đăng ký, gia nhập nhóm, gán vai trò.
REQUESTS_WRITE
Bảng 3-1: Các quyền cơ bản trong VOMS.
Bên cạnh các ACL, trong mỗi nhóm còn có các ACL mặc định. Nó liên quan
đến ACL của nhóm con và nhóm cha. Mặc định, khi các nhóm con được tạo ra, nó
sẽ kế thừa ACL của nhóm cha.
Khi người quản trị cần ACL của nhóm con khác với ACL của nhóm cha,
Default ACL được thiết lập. Nhóm con sẽ kế thừa Default ACL của nhóm cha, thay
vì ACL của nhóm cha.
3.2.3.2 Quyền thực hiện các tác vụ quản lý VO trong VOMS.
Mọi thao tác trong quản lý VO đều căn cứ vào các quyền hạt nhân trên để
tiến hành phân quyền. Khi một tác vụ được triệu gọi, các quyền của người triệu gọi
sẽ được đưa ra, so sánh với các quyền cơ bản cần thiết để được phép thực hiện tác
vụ. Nếu người dùng đủ quyền, tác vụ mới được thực hiện. Nếu không, tác vụ sẽ bị
65
dừng.
Sau đây, ta sẽ đưa ra các tác vụ quản lý trong VOMS và các quyền cơ bản
cần phải có để có thể thực hiện các tác vụ này. Để đơn giản, ta quy định một số ký
hiệu:
Chú thích Tên
Nhóm gốc trong VO /vo
Chủ thể trong VO có vai trò R trong tổ chức g (g,R)
(g→ g’) Tất cả các nhóm từ nhóm g đến nhóm g’ trong VO
parent(g) Nhóm cha của nhóm g
Quyền đọc R
Quyền ghi W
Quyền mặc định (dùng cho ACL) D
Quyền với nhóm, vai trò. C:
Quyền với thành viên M:
Quyền với thuộc tính Atts:
Quyền với Acl Acl:
Quyền với quản lý đăng ký Req:
66
Bảng 3-2: Bảng ký hiệu các khái niệm trong VO.
Các tác vụ quản lý VO và các quyền cần thiết để thực hiện nó là:
Tác vụ Quyền cần thiết
Tạo/ Xóa người dùng (/vo,C:rw M:rw)
Tạo/ Xóa nhóm (/vo, C:rw)
(/vo → parent(parent(g)), C:r)
(parent(g), C:rw)
Liệt kê nhóm con (/vo → g, C:r)
Tạo/ Xóa vai trò (/vo, C:rw)
Liệt kê vai trò (/vo, C:r)
Thêm/ Bớt thành viên trong nhóm g (/vo → parent(g) , C:r)
(g, M:rw)
Liệt kê các thành viên của nhóm g (/vo → parent(g) , C:r)
(g, M:rw)
Gán/ Bỏ vai trò R trong nhóm g (/vo → parent(g) , C:r)
((g,R), M:rw)
(/vo → parent(g) , C:r)
Liệt kê các thành viên có vai trò R trong nhóm g ((g,R), M:r)
Tạo/ Xóa thuộc tính người dùng (/vo, Attrs:rw)
Liệt kê các thuộc tính của người dùng (/vo, Attrs:r)
Tạo/ Xóa thuộc tính của nhóm (/vo → parent(g) , C:r)
(/vo, Attrs: rw)
(g, Attrs:rw)
Liệt kê các thuộc tính của nhóm (/vo → parent(g) , C:r)
(/vo, Attrs: r)
67
(g, Attrs:r)
Tạo/ Xóa các thuộc tính của vai trò. (/vo → parent
(g) , C:r)
(/vo, Attrs: rw)
((g,R), Attrs:rw)
Liệt kê các thuộc tính của vai trò (/vo → parent(g) , C:r)
(/vo, Attrs: r)
((g,R), Attrs:r)
Sửa ACL của nhóm g (/vo → parent(g) , C:r)
(g, Acl:rw)
Xem ACL của nhóm g (/vo → parent(g) , C:r)
(g, Acl:r)
Sửa ACL của vai trò R trong nhóm g (/vo → parent(g) , C:r)
((g,R), Acl:rw)
Xem ACL của vai trò R trong nhóm g (/vo → parent(g) , C:r)
((g,R), Acl:r)
Sửa ACL mặc định của nhóm g (/vo → parent(g) , C:r)
(g, Acl:rwd)
Xem ACL mặc định của nhóm g (/vo → parent(g) , C:r)
(g, Acl:rd)
(/vo → parent(g) , C:r)
Sửa ACL mặc định của vai trò R trong nhóm g ((g,R), Acl:rwd)
(/vo → parent(g) , C:r)
Xem ACL mặc định của vai trò R trong nhóm g ((g,R), Acl:rd)
68
Bảng 3-3: Các tác vụ trong quản trị VO và các quyền yêu cầu.
3.3. DỊCH VỤ TẠO DANH SÁCH TRUY CẬP EDG-MKGRIDMAP.
Đối với người dùng mới trên lưới tính toán, sau khi hoàn thành bước đăng ký
và được chấp nhận là thành viên của lưới, họ có quyền yêu cầu tài nguyên để thực
hiện các bài toán trên lưới. Trên các máy thực thi, làm thế nào để có thể nhận biết
người dùng lưới này có quyền sử dụng tài nguyên hay không, nếu có thì quyền hạn
của họ đến đâu. Dịch vụ EDG-MKGRIDMAP là một công cụ cho phép kết nối VO
với RP hay là người dùng với tài nguyên.
EDG-MKGRIDMAP là một perl script, được phát triển bởi European
Datagrid. Nhiệm vụ của EDG-MKGRIDMAP (EDG Make Gridmap) là tương tác
với các dịch vụ quản lý người dùng ở mức trên như VOMS, LDAP và sinh ra các
tệp gridmap theo yêu cầu. Cụ thể, EDG-MKGRIDMAP thiết lập kênh thông tin an
toàn với VOMS server, sau đó nó lấy các thông tin về người dùng trong VO. Trên
các máy thực thi, người quản trị tác động vào EDG-MKGRIDMAP chính sách tài
nguyên cục bộ của mình. Chính sách này dựa trên các thỏa thuận với VO về tài
nguyên đóng góp, sẽ quy định các quyền hạn định của người dùng lưới trên tài
nguyên của họ.
Quy định này được thực thi qua 2 bước. Bước thứ nhất là tạo ra các tài khoản
cục bộ cần dùng và quy định quyền sử dụng tài nguyên đóng góp cho các tài khoản
cục bộ đó. Bước tiếp theo là quy định các người dùng trên VO sẽ được gắn vào tài
khoản nào. Các chính sách sử dụng cục bộ này, kết hợp với danh sách các người
dùng trong VO được truy xuất lúc hoạt động sẽ là đầu vào của quá trình tạo ra các
tệp ánh xạ gridmap. Đầu ra của quá trình được các dịch vụ lưới sử dụng để kiểm tra
quyền.
Có rất nhiều công cụ giống như EDG-MKGRIDMAP, ví dụ GUMS, nhưng
EDG-MKGRIDMAP vẫn được sử dụng rộng rãi và phổ biến. Tuy quá trình ánh xạ
còn cứng nhắc, không hỗ trợ cơ chế ánh xạ động, nhưng nhờ tính đơn giản, gọn
nhẹ, dễ sử dụng; EDG-MKGRDIMAP hiện tại là một dịch vụ không thể tách rời
69
trong cộng đồng lưới LCG/EGEE…
Chương 4. KẾT QUẢ THỬ NGHIỆM
4.1. HỆ THỐNG QUẢN LÝ NGƯỜI DÙNG LƯỚI TÍNH TOÁN
Tác giả đã tham gia cùng nhóm nghiên cứu lưới AGP, thuộc trung tâm tính
toán hiệu năng cao HPCC (Đại Học Bách Khoa Hà Nội) để thiết kế và xây dựng
thành phần bảo vệ cho hệ thống lưới tìm kiếm và so khớp tài liệu điện tử GOODAS
(Grid Oriented Online Document Analysing System). GOODAS là một hệ thống
lưới phục vụ chia sẻ, tra cứu trong công tác nghiên cứu và giảng dạy và so khớp tài
liệu liên trường nhằm phòng chống gian lận.
Hệ thống được triển khai thử nghiệm trên hệ thống lưới dữ liệu cục bộ của
Trung tâm tính toán hiệu năng cao (Trường Đại học Bách Khoa Hà Nội). Lưới cục
bộ bao gồm 10 máy desktop để bàn có cấu hình Pentium D 2.8GHz, bộ nhớ RAM
1,5GB, ổ cứng 80GB. Middleware để kết nối các máy trên với nhau là Globus
Toolkit 4, version 4.2.1. Hệ điều hành sử dụng Fedora 11. Máy chủ thông tin triển
khai VOMS là máy chủ bkluster.
An toàn bảo mật cho hệ thống gồm 2 thành phần: quản lý đăng lý lưới và
phân quyền trên VO; quản lý người dùng và giấy uỷ nhiệm trên cổng điện tử lưới.
Vì vậy, hệ thống thử nghiệm sẽ thiết đặt 1 VOMS Server để quản lý VO và quản trị
tham gia lưới. Một máy chủ khác sẽ phục vụ cho cổng điện tử lưới, quản lý người
dùng và giấy uỷ nhiệm lưới, đồng thời thiết lập kiểm soát truy nhập tài nguyên lưới
qua cổng điện tử. 10 máy desktop trong lưới dữ liệu sẽ đóng vai trò là các RP, sẽ
triển khai dịch vụ ánh xạ.
Hướng dẫn chi tiết triển khai dịch vụ quản lý thông tin người dùng VOMS
trên cấp độ VO ở máy chủ thông tin Information Server BKLUSTER và dịch vụ
ánh xạ EDG-MKGRIDMAP trên 10 máy desktop trong lưới, xem trong phần PHỤ
LỤC: CÀI ĐẶT VOMS VÀ EDG-MKGRIDMAP. Phần triển khai cổng điện tử và
70
dịch vụ quản lý giấy uỷ nhiệm được trình bày ở các phần sau.
4.1.1. Giới thiệu hệ thống GOODAS.
Vấn đề quản lý các tài liệu điện tử phân tán trên mạng đặt ra nhiều thách
thức như quản lý tài nguyên động, các yêu cầu an toàn bảo mật và chia sẻ. Hệ thống
GOODAS ra đời, dựa trên việc kết hợp của công nghệ tính toán lưới và mô hình tổ
chức ảo, nhằm tạo ra một lưới dữ liệu về chia sẻ và quản lý các tài liệu điện tử phân
tán giữa các trường đại học và trên phạm vi quốc gia.
Hệ thống GOODAS được xây dựng theo kiến trúc phân tầng, các thành phần
đều hướng dịch vụ và phục vụ các yêu cầu cụ thể. Các điểm mạnh của hệ thống là
tính khả mở, tính thân thiện và duy trì hạ tầng an toàn bảo mật lưới trong suốt với
người dùng.
- Tầng tài nguyên: là các hệ thống lưu trữ, hệ thống máy tính và hạ tầng mạng có
Hình 4- 1: Kiến trúc hệ thống GOODAS
hiệu năng tính toán cao.
- Tầng trung gian: bao gồm hạ tầng an toàn bảo mật lưới GSI, các dịch vụ truyền
71
file, sao lưu dữ liệu, khám phá tài nguyên và dịch vụ quản lý giấy uỷ nhiệm.
- Tầng dịch vụ ứng dụng: tầng dịch vụ ứng dụng cung cấp các dịch vụ lưới
hướng ứng dụng & hướng người dùng, nhằm tận dụng sức mạnh mà hạ tầng lưới
mang lại. Trong phạm vi hệ thống quản lý tài liệu điện tử, tầng ứng dụng triển
khai các dịch vụ tiện ích như quản lý tài liệu, tìm kiếm, đánh chỉ mục, so khớp
văn bản.
- Tầng trình diễn: chính là cổng điện tử lưới (Cổng điện tử lưới), cung cấp các
khả năng truy cập để sử dụng dịch vụ và tài nguyên lưới. Cổng điện tử lưới làm
trong suốt sự phức tạp của lưới tới người dùng, và là sự lựa chọn cho hầu hết các
lưới dữ liệu lớn trên thế giới hiện nay.
Hình 4-2 minh hoạ mô hình triển khai của hệ thống:
72
Hình 4- 2: Mô hình triển khai hệ thống GOODAS
Người dùng truy cập hệ thống thông qua portal của các trường và thực hiện
các yêu cầu như tìm kiếm, so khớp văn bản…Với mỗi yêu cầu của người dùng, site
cục bộ sẽ liên hệ với Dịch vụ Giám sát & quản lý thông tin để lấy về thông tin các
site khác trên hệ thống & đồng thời gửi các yêu cầu xử lý (như tìm kiếm hay so
khớp một văn bản) tới các site đó. Sau khi nhận được kết quả từ các site khác, site
cục bộ phải tổng hợp kết quả và trả về cho người dùng qua portal. Việc tổng hợp kết
quả cần phải có các thông tin về dữ liệu mô tả từ các site, được cung cấp bởi Dịch
vụ siêu dữ liệu mô tả từ Information Server.
4.1.2. Mô hình bảo mật cho GOODAS.
Thiết kế mô hình bảo mật cho hệ thống GOODAS phải duy trì an toàn bảo
mật cho hạ tầng lưới, nhưng phải bảo đảm tính trong suốt và thân thiện với người
dùng. Giải pháp được lựa chọn là việc kết hợp giữa quản lý người dùng lưới với
quản lý người dùng portal và ứng dụng tổ chức ảo VO.
73
Hình 4- 3: Mô hình bảo mật cho GOODAS
Mô hình bảo vệ thông tin bao gồm các thành phần sau đây:
Nhà cung cấp chứng chỉ số (Online CA): cấp phát và kiểm tra các chứng chỉ
số theo chuẩn X509 cho người dùng lưới. Có rất nhiều nhà cung cấp chứng chỉ số
khác nhau, tuỳ theo mục đích sử dụng và thiết lập hạ tầng an toàn bảo mật của các
hệ thống tính toán lưới. Nhà cung cấp chứng chỉ My Proxy CA và Simple CA
thường được dùng phổ biến trong các lưới nghiên cứu.
Dịch vụ quản lý giấy uỷ nhiệm (Credential Management): giải pháp quản
lý giấy uỷ nhiệm được sử dụng rộng rãi trong các hệ thống tính toán lưới hiện đại
ngày nay. Dịch vụ bao gồm kho lưu trữ giấy uỷ nhiệm (Credential Repository) và
một nhà chứng thực thẩm quyền trực tuyến (MyProxy CA) để cho phép người
dùng lấy lại các giấy uỷ nhiệm lưới khi cần.
Hệ thống quản lý tổ chức ảo (VO Management): cung cấp các giấy uỷ
nhiệm mở rộng, có thêm các thuộc tính phân quyền của VO cho cổng điện tử lưới.
Ngoài ra hệ thống cung cấp một giao diện quản trị riêng cho phép VO đăng ký gia
nhập lưới và quản lý các VO qua giao diện web.
Cổng điện tử lưới (VO Portal): có khả năng truy suất các giấy uỷ nhiệm của
VOMS hay My Proxy CA từ kho lưu trữ MyProxy. Các giấy giấy uỷ nhiệm này
được sử dụng cho các dịch vụ lưới có yêu cầu hạ tầng an toàn bảo mật lưới GSI
4.2. THÀNH PHẦN QUẢN LÝ TỔ CHỨC ẢO
Thành phần này cho phép phân nhóm người dùng, gán vai trò, xác định
quyền truy nhập đến các dịch vụ của hệ thống. Ngoài ra mođun còn có chức năng
quản lý các tổ chức ảo cho cho phép người dùng đăng ký gia nhập VO.
4.2.1. Sử dụng VOMS.
2 loại người dùng chính tương tác với dịch vụ quản lý tổ chức ảo VOMS là
người dùng lưới và người quản trị của VO. Người dùng lưới thông qua VOMS để
đăng ký gia nhập VO và xin các chứng nhận sử dụng lưới. Người quản trị VO thực
74
hiện các công việc quản lý người dùng, nhóm, vai trò, đăng ký thành viên cho VO.
4.2.1.1 Người dùng lưới và VOMS.
Người dùng lưới thông qua VOMS để đăng ký gia nhập VO và xin các
chứng nhận sử dụng lưới. Quy trình đăng ký được thực hiện trên giao diện Website
VOMS-Admin. Quy trình xin chứng nhận được thực hiện với VOMS client. a) Quy trình đăng ký lưới.
Để có thể đăng ký dùng lưới, người dùng phải có chứng chỉ số được cấp bởi
nhà cung cấp chứng chỉ số CA (được VOMS GOODAS tin tưởng). Hiện tại,
GOODAS tin tưởng bởi các nhà cung cấp AGP Globus Simple CA và HaNoi CA.
Các bước cần thực hiện để gia nhập VO là: 1/. Người dùng sở hữu chứng chỉ số của các CA được VOMS Server tín nhận. Người dùng truy cập web admin của VOMS Server, cung cấp 1 số thông tin cá nhân, đồng ý với các điều khoản sử dụng lưới của VO và nộp đơn xin gia nhập.
- Chuẩn bị các chứng chỉ số: cần phải thiết lập hạ tầng an toàn thông tin GSI của
Globus Toolkit với các chứng chỉ lưới hợp lệ.
- Các chứng nhận định dạng PEM không được trình duyệt hỗ trợ. Vì vậy, chuyển
Hình 4- 4: Các giấy chứng nhận lưới
chúng sang định dạng được chấp nhận pkcs12.
$openssl pkcs12 -export -in usercert.pem -inkey userkey.pem -out usercert.p12
Enter Export Password:
Verifying - Enter Export Password:
- Người dùng nhập các chứng nhận định dạng pkcs12 vào trình duyệt.
cập GOODAS địa tại - Truy VOMS-Admin
75
chỉ: https://bkluster.hut.edu.vn:9443/voms/GOODAS, cung cấp các thông tin cần thiết.
(cid:1) Đầu tiên, người dùng xác thực chứng nhận của GOODAS VOMS Server.
(cid:1) GOODAS VOMS server xác thực lại chứng nhận của người dùng.
(cid:1) Sau khi quá trình xác thực lẫn nhau thành công, người dùng đến trang đăng ký và điền đầy đủ các thông tin.
2/. Một email được gửi tới hòm thư của người dùng. Người dùng nhận được email,
lựa chọn đồng ý tiếp tục quá trình đăng ký.
- Thông báo đã gửi email xác nhận tới cho người dùng.
3/. Người dùng chờ quyết định từ VO-Admin xem xét đơn gia nhập VO. Một email thông báo sẽ được gửi tới người dùng khi có kết quả xét duyệt của người quản trị VO.
Hình 4- 5: Chờ đơn xét duyệt của người quản trị VO
- Người quản trị nhận được thông báo có đơn gia nhập VO mới.
76
Hình 4- 6: Email thông báo có người đăng ký lưới mới cho VO Admin.
- Người quản trị tiến hành xét duyệt đơn đăng ký.
- Dù được người quản trị VO đồng ý hay chấp nhận, một email sẽ được thông báo
Hình 4- 7: Người quản trị duyệt đơn đăng ký
cho người dùng.
b) Quy trình xin chứng nhận sử dụng lưới.
Sau khi hoàn tất quá trình đăng ký, người dùng lưới cài đặt VOMS client cho
các máy trong lưới của mình. Sau khi cài đặt thành công, người dùng tiến hành xin
giấy chứng nhận sử dụng lưới. Quy trình xin giấy chứng nhận sử dụng lưới như sau:
1/. Người dùng gửi yêu cầu xin chứng thực đến VOMS server.
2/. VOMS server xác nhận thành viên & vai trò của người dùng trong VO và kiểm tra lại yêu cầu; sau đó cấp và trả lại cho người dùng các thông tin được yêu cầu.
77
Người dùng kiểm tra các thông tin nhận được.
4.2.1.2 Người quản trị và VOMS.
Có 2 cấp độ người quản trị trong VO. Đó là cấp quản lý nhóm và cấp quản
trị toàn VO. Người quản trị nhóm phụ trách quản lý người dùng (thêm, xóa, tìm
kiếm), quản lý nhóm (thêm, xóa, tìm kiếm, quản lý ACL cho nhóm), quản lý vai trò
(thêm, xóa, tìm kiếm), quản lý thành viên (thêm, bớt; gán, gỡ bỏ vai trò của các
thành viên). Người quản trị VO thừa kế các quyền quản lý của quản trị nhóm. Ngoài
ra, họ có thêm quyền xét duyệt đăng ký cho người dùng vào VO.
a) Quản lý người dùng. - Liệt kê người dùng.
Hình 5: Liệt kê các người dùng trong VO.
- Tạo người dùng.
- Tìm kiếm người dùng.
- Xóa người dùng.
78
- Quản lý vai trò và nhóm của người dùng.
Hình 4- 8: Quản lý email cá nhân và thông tin thành viên của người dùng
b) Quản lý nhóm. - Liệt kê nhóm.
79
Hình 4- 9: Liệt kê các nhóm trong VO.
- Chi tiết nhóm: Quản lý danh sách điều khiển truy nhập (ACL) và các thành viên
trong nhóm.
- Tạo nhóm.
Hình 4- 10: Chi tiết nhóm
80
Hình 4- 11: Tạo nhóm mới.
- Thêm mới ACL cho nhóm.
81
Hình 4- 12: Thêm ACL cho nhóm. - Xóa nhóm.
- Tìm kiếm nhóm.
Hình 4- 13: Tìm kiếm nhóm
c) Quản lý chức năng của hệ thống. - Liệt kê các chức năng.
Hệ thống lưới phân tích tài liệu trực tuyến GOODAS có các chức năng: quản trị, giảng viên và các thành viên
82
Hình 4- 14: Liệt kê các chức năng
- Tạo mới chức năng.
- Tìm kiếm chức năng.
Hình 4- 15: Tạo mới chức năng
83
Hình 4- 16: Tìm kiếm chức năng. - Xóa chức năng.
d) Quản lý đăng ký. - Duyệt các đơn đăng ký chưa được xử lý.
- Chi tiết người dùng đăng ký.
Hình 4- 17: Người quản trị duyệt các đơn đăng ký chưa xử lý.
84
Hình 4- 18: Chi tiết người dùng đăng ký.
- Các đơn đăng ký đã duyệt.
Hình 4- 19: Các đơn đăng ký đã duyệt
e) Quản lý cấu hình. - Thông tin cấu hình của VO.
- Thông tin người dùng.
85
Hình 4- 20: Thông tin cấu hình của VO.
4.2.2 Sử dụng EDG-MKGRIDMAP. - Thực thi edg-mkgridmap lần đầu tiên:
/opt/edg/sbin/edg-mkgridmap --output=/etc/grid-security/grid-mapfile
- Các lần tiếp theo, thêm edg-mkgridmap vào danh sách các công việc chạy tự động. Dưới tài khoản root của máy thực thi, sử dụng crontab -e và thêm các tham số thiết lập “cron job” vào crontab:
41 3,9,15,21 * * * /opt/edg/sbin/edg-mkgridmap --output=/etc/grid-security/grid- mapfile >> /opt/edg/log/edg-mkgridmap.log 2>&1
4.3. THÀNH PHẦN QUẢN LÝ GIẤY UỶ NHIỆM
Thành phần này thiết lập các kiểm soát truy nhập dịch vụ và tài nguyên lưới thông qua giấy uỷ nhiệm lưới theo chuẩn X509. Người dùng qua cổng điện lưới chỉ có thể truy nhập tài nguyên khi có giấy uỷ nhiệm hợp lệ. Thành phần còn có chức năng quản lý các giấy uỷ nhiệm lưới như thêm mới, gia hạn, gỡ bỏ cho từng người dùng trên cổng điện tử lưới.
4.3.1. Cổng điện tử lưới.
86
Cổng điện tử lưới được hiểu là cổng kết nối giữa người dùng với các dịch vụ lưới ở tầng dưới. So với các ứng dụng dựa trên Web thông thường, cổng điện tử lưới ưu việt hơn nhờ khả năng tùy biến môi trường người sử dụng, cho phép tách biệt các thành phần nghiệp vụ từ máy chủ ứng dụng và tái sử dụng các thành phần của Web. Chính nhờ khả năng này, Cổng điện tử lưới đã trở thành sử lựa chọn phổ biến cho các nhà phát triển ứng dụng lưới.
Grid Services
Hình 4-21: Cổng điện tử lưới
Trên đây là mô hình truy nhập dịch vụ lưới từ cổng điện tử lưới. Người dùng sẽ đăng nhập vào cổng điện tử lưới với tài khoản của mình, đưa ra các đặc tả công việc, các yêu cầu sẽ được chuyển xuống các dịch vụ lưới, phân bổ xuống các tài nguyên lưới để thực hiện, và cuối cùng trả về kết quả cho người dùng trên giao diện Web. Tuy nhiên, khi xây dựng các cổng giao diện lưới, nảy sinh một số yêu cầu bảo mật sau:
(cid:2) Người sử dụng phải có một trình duyệt Web chuẩn để tiếp cận các Cổng điện tử
lưới.
(cid:2) Người sử dụng vẫn có thể truy nhập từ những nơi mà những nơi mà giấy ủy
nhiệm Grid là không có sẵn đối với họ.
(cid:2) Người sử dụng có thể làm bất cứ điều gì thông qua Cổng điện tử lưới mà giấy ủy
87
nhiệm có thể cho phép họ làm.
4.3.1. Mô hình uỷ quyền truy nhập trên cổng điện tử lưới.
Việc truy xuất giấy uỷ nhiệm lưới và uỷ quyền truy nhập lưới cho các cổng
điện tử được thể hiện như hình vẽ:
Hình 4-22: Mô hình uỷ quyền truy nhập trên cổng điện tử lưới.
(1) Người dùng có thể kết nối với cổng điện tử lưới sử dụng trình duyệt Web và cung cấp các thông tin chứng thực đã đưa ra trước đây tới kho lưu trữ thông qua các form trên web hay các giao diện đơn giản. Người sử dụng có thể xác định một kho lưu trữ MyProxy cho cổng điện tử để sử dụng, nếu có nhiều hơn một kho.
(2) Cổng điện tử sử dụng các thông tin đăng nhập (định danh và mật khẩu) của
người dùng yêu cầu lấy giấy ủy nhiệm từ kho lưu trữ.
(3) Khi thông tin đăng nhập là hợp lệ, MyProxy sẽ gửi lại cho cổng điện tử lưới một giấy ủy nhiệm của người dùng. Khi ấy cổng điện tử có thể thay mặt người dùng tiếp cận an toàn tới các dịch vụ lưới.
88
Hành động logout ra khỏi cổng điện tử sẽ xóa giấy ủy quyền của người dùng trên portal. Khi người dùng quên logout, giấy chứng nhận sẽ mãn hạn tại một thời điểm nhất định khi yêu cầu từ dịch vụ MyProxy.Thời gian sống thường là khoảng vài giờ. Quá trình này có thể lặp lại nhiều lần, khi người dùng đòi hỏi, cho tới khi giấy ủy quyền giữ bởi MyProxy mãn hạn. Tại thời điểm này, người sử dụng cần chạy chương trình myproxy-init từ vị trí nơi các giấy chứng nhận có sẵn và ủy nhiệm tập mới các giấy ủy quyền tới kho lưu trữ. Thời gian lớn nhất của giấy ủy nhiệm được kho lưu trữ xác định bởi máy chủ lưu trữ. nhưng mặc định là một tuần/lần.
4.3.3. Dịch vụ quản lý giấy uỷ nhiệm.
Dịch vụ này giúp cho người dùng có thể truy nhập các dịch vụ lưới hỗ trợ bảo mật GSI một cách dễ dàng, có thể đăng nhập một lần hay ủy quyền cho cổng điện tử lưới thực hiện các công việc trên lưới.
Một số chức năng của dịch vụ như sau:
- Xác thực người dùng lưới: Dịch vụ có cơ chế kiểm tra tính hợp lệ của người dùng, bảo đảm người dùng phải có một giấy ủy nhiệm X509 còn thời hạn khi sử dụng các dịch vụ cài đặt bảo mật GSI. Nếu không hợp lệ, người dùng phải quay lại màn hình đăng nhập xin cấp giấy ủy nhiệm từ dịch vụ.
- Quản lý vòng đời: Dịch vụ có khả năng cập nhật động thời gian sống của giấy ủy nhiệm, một khoảng thời gian nhất định, giấy ủy nhiệm sẽ tự hủy nếu người dùng quên (bỏ(cid:3)) kích hoạt nó.
- Cấp lại giấy ủy nhiệm: Do giấy ủy nhiệm cho người dùng có thời gian sống là hạn chế, khi người dùng sử dụng một dịch vụ tính toán nào đó với bộ dữ liệu lớn, thời gian xử lý lâu thì dịch vụ bảo mật phải có cơ chế làm tươi lại giấy ủy nhiệm, không làm ảnh hưởng tới công việc của người trên lưới.
- Quản lý kho lưu trữ: Rõ ràng hệ thống lưu trữ rất nhiều giấy ủy nhiệm người dùng để ủy quyền lên portal, nên việc quản lý kho lưu trữ là rất quan trọng. Các giấy ủy nhiệm người dùng được mã hóa trong kho lưu trữ, để cho dù kho lưu trữ có bị tổn thương, kẻ địch vẫn phải mất một thời gian để giải mã, và khi đó giấy ủy nhiệm người dùng có thể sẽ hết hạn. Dịch vụ cung cấp khả năng cho phép người dùng lựa chọn các hệ thống kho lưu trữ trên các miền phân tán khác nhau về mặt địa lý qua công nghệ phân tán của dịch vụ lưới.
89
- Quản lý giấy ủy nhiệm đa người dùng: người dùng có thể có nhiều giấy chứng nhận khác nhau, từ các nhà thẩm quyền CA khác nhau. Dịch vụ cung cấp khả năng lưu trữ tất cả các giấy chứng nhận của người dùng, đưa thông tin về công việc người dùng muốn thực hiện, lựa chọn giấy ủy nhiệm đúng đắn cho mỗi phần việc, sau đó trả lại giấy ủy nhiệm cho người dùng.
Dịch vụ được xây dựng dựa trên các nền tảng:
- Globus Toolkit: đây là bộ công cụ nền tảng để phát triển lưới, với chuẩn mở xây
dựng các dịch vụ lưới OGSA và hạ tầng bảo mật GSI
- SimpleCA: nhà thẩm quyền cung cấp các giấy ủy nhiệm lưới, là nền tảng trong
cấu hình bảo mật GSI
- Gridsphere Portal: cổng điện tử chuẩn mở, kết hợp giữa hai công nghệ Web và Grid, tạo nên một nền tảng cho cả người sử dụng và các nhà phát triển lưới. Đã có rất nhiều dự án đã và đang phát triển trên nền tảng Gridsphere như HPC Europa, D-Grid, P-Grade, BIRN, Telescience, Australian Virtual Observatory, UK Science.
- MyProxy: máy chủ để lưu trữ các giấy ủy nhiệm trực tuyến.
- Java Cog Kit: là bộ cung cụ phát triển lưới, ánh xạ giữa công nghệ Java và Globus Toolkit, cho phép các nhà phát triển xây dựng các ứng dụng lưới bằng ngôn ngữ Java
Dưới đây là mô tả các thể hiện của dịch vụ trên nền tảng Gridsphere:
- Quản lý người dùng lưới
90
- Quản lý giấy uỷ nhiệm lưới:
- Các quyền cho các giao dịch truyền file có hỗ trợ GSI:
91
- Đệ trình các công việc trên lưới:
4.4 MỘT SỐ HẠN CHẾ CỦA VOMS.
Hai dịch vụ chính của hệ thống quản lý tổ chức ảo là dịch vụ VOMS và dịch vụ EDG-MKGRIDMAP. Hai dịch vụ ăn khớp, phối hợp tốt với nhau trong hệ thống quản lý người dùng lưới nói chung nên rất phù hợp khi vận dụng vào môi trường lưới của hệ thống liên thư viện GOODAS. Trong đó, dịch vụ VOMS là một dịch vụ mã nguồn mở. Từ đó, luận văn đóng góp thêm phần thiết kế đa ngôn ngữ cho giao diện quản trị của VOMS-Admin, giúp cho quy trình quản lý thân thiện hơn nhiều người dùng.
Tuy nhiên, hệ thống quản lý tổ chức ảo vẫn còn nhiều vấn đề. Dịch vụ phụ trách quản lý thông tin người dùng trên cấp độ VO và dịch vụ ánh xạ người dùng trên cấp độ RP vẫn còn có các hạn chế cơ bản của nó.
4.4.1 Hạn chế của VOMS.
Hiện tại, quy trình đăng ký của VOMS không hỗ trợ quản lý chính sách sử dụng lưới AUP (Grid Acceptable Use Policy ) và thời gian hiệu lực của quyền thành viên trong VO. Nó không thích hợp trong các VO có quy mô lớn trên khu vực hoặc toàn cầu. Để giải quyết những giới hạn này, Fermilab và WLCG (Worldwide LHC Computing Service) đã phát triển VOMRS, một công cụ mới, cho phép quản lý đăng ký mạnh mẽ và mềm dẻo hơn với các tính năng sau đây:
1/. Hỗ trợ nhiều cấp độ quản trị (Ví dụ: Quản lý VO, quản lý nhóm...). Mỗi cấp độ
sẽ có các quyền khác nhau trong quản lý VO.
2/. Muốn tham gia vào VO, người dùng phải đồng ý với chính sách sử dụng lưới và
VO-AUP (VO & Grid Acceptable Use Policy).
3/. Cho phép người quản trị theo dõi phiên bản và sự thay đổi của AUP.
92
4/. Quản lý thời gian hiệu lực của quyền thành viên trong VO.
4.4.2 Hạn chế của EDG-MKGRIDMAP.
Dịch vụ ánh xạ người dùng EDG-MKGRIDMAP là một giải pháp phổ biến cho quy trình ánh xạ người dùng lưới vào tài khoản cục bộ. Và thực tế, đang được dùng rộng rãi trong các cộng đồng lưới Globus và Glite. Tuy nhiên, cơ chế ánh xạ của EDG-MKGRIDMAP là cứng. Trong một số trường hợp, cơ chế ánh xạ cứng là không đủ để giải quyết một số yêu cầu ánh xạ đặc biệt.
93
Ví dụ, người dùng A là thành viên của VO GOODAS. Trong VO GOODAS có 2 nhóm con là nhóm Math và nhóm Literature. Người dùng A muốn sử dụng các tài liệu của cả 2 nhóm này. Như vậy, họ phải là thành viên của cả 2 nhóm Math và Literature. Trên máy cục bộ, tài khoản hệ thống thao tác với các tài nguyên nhóm Math là “laMath” (local account Math), với tài nguyên nhóm Literature là “laLiterature”. Để thực thi quyền, EDG-MKGRIDMAP phải ánh xạ người dùng A vào 2 tài khoản cục bộ “laMath” và “laLiterature”. Trong tệp Gripmap, xuất hiện 2 mục ánh xạ, sẽ dẫn tới nhập nhằng hệ thống không biết phải lựa chọn mục nào khi thực hiện. Như vậy, trong trường hợp này, cơ chế ánh xạ cứng không đáp ứng được. Để giải quyết, cần có cơ chế khác mềm dẻo, mang tính “động” hơn. Cơ chế này cho phép lựa chọn ánh xạ căn cứ vào thời điểm thực thi. Đó là GUMS.
4.5. HƯỚNG PHÁT TRIỂN CỦA VOMS
Sử dụng tổ chức ảo trong quản lý người dùng lưới là giải pháp tiên tiến và phổ biến đang được dùng trong các hệ thống lưới lớn. Những hạn chế trong phân tích trên về hệ thống quản lý người dùng trong GOODAS là do các dịch vụ sử dụng trong mỗi cấp độ quản lý còn hạn chế. Hướng phát triển của hệ thống trong tương lai là kết hợp dịch vụ VOMRS với VOMS trong khâu quản lý thông tin người dùng ở mức VO và thay thế dịch vụ ánh xạ EDG-MKGRIDMAP bởi 2 dịch vụ GUMS và PRIMA ở mức RP.
4.5.1 VOMRS kết hợp cùng VOMS.
Như đã nêu trên, nhận thấy những hạn chế của VOMS trong quản lý đăng ký các VO có quy mô lớn như LHC, EGEE. Đầu năm 2003, WLCG và Fermilab đã tiến hành nghiên cứu một hệ thống mới gọi là VOMS eXtension (gọi tắt VOX). VOX với hạt nhân là dịch vụ đăng ký VOM - VOMRS, cung cấp giao diện Web thuận tiện cho người dùng đăng ký, lưu chúng vào cơ sở dữ liệu của riêng nó và thường xuyên đồng bộ với cơ sở dữ liệu của VOMS thông qua gói quản trị VOMS- Admin. VOMRS ra đời, đã giải quyết được nhiều hạn chế của VOMS.
4.5.1.1 Tổng quan về VOMRS.
Cụ thể, về phía người dùng, VOMRS thu thập được nhiều thông tin cá nhân trong quá trình đăng ký từ họ hơn, cũng như tăng cường tính pháp lý khi bắt buộc người dùng phải đồng ý vào cam kết sử dụng lưới trước khi gia nhập VO. Tuân theo chuẩn của JSPG, VOMRS yêu cầu các thành viên phải ký vào thỏa thuận sử dụng lưới AUP trong quá trình đăng ký. Định kỳ hàng năm hoặc mỗi khi AUP thay đổi, VOMRS cũng yêu cầu người dùng ký lại các thỏa thuận trên. Đồng thời, VOMRS cũng lưu lại thời gian ký và phiên bản của các AUP.
Quá trình đăng ký của người dùng được chia thành 2 pha:
94
• Pha 1: Người dùng điền thông tin theo mẫu trong VOMRS, lựa chọn tổ chức muốn tham gia và người đại diện của tổ chức đó. Các thông tin về giấy phép cá nhân của người dùng được thu thập tự động quá trình duyệt.
• Pha 2: Người dùng nhận được email thông báo bước đầu tiên trong quá trình đăng ký thành công. Nếu được đồng ý, người dùng trở thành thành viên. Khi đó, họ có thể yêu cầu được thêm các chứng nhận bổ sung, được gia nhập nhóm, được gán vai trò trong nhóm... Các yêu cầu này sẽ được gửi đến người phụ trách nhóm để giải quyết.
Người dùng khi đăng ký nhóm sẽ ở vào 1 trong 4 trạng thái sau:
• Chấp thuận: Người dùng là thành viên của nhóm.
• Từ chối: Người phụ trách nhóm từ chối cho người dùng tham gia nhóm.
• Treo: Người dùng tạm thời bị tước quyền thành viên.
• Hết hạn: Quyền thành viên hết hạn theo lịch hoặc do AUP hết hạn.VOMRS cũng cho phép người dùng được chủ động gửi yêu cầu tham gia nhóm, gửi yêu cầu cấp quyền lên người quản trị ...
Về phía người quản lý, VOMRS bổ sung thêm tính năng tạm treo quyền thành viên, định kỳ kiểm tra thời gian quyền thành viên còn hiệu lực. Qua đó, kịp thời gửi các thông báo hết hạn tới cho người dùng và yêu cầu họ đăng ký mới quyền thành viên . VOMRS cũng hỗ trợ nhiều cấp bậc quản trị VO hơn. Mỗi cấp bậc có vai trò và trách nhiệm riêng. Cụ thể, người đại diện VO (Representative) xử lý các yêu cầu tham gia VO của người dùng. Sau đó, yêu cầu gia nhập nhóm của người dùng lại do quản lý nhóm (Group Manager) phụ trách. Quản trị VO (VO Admin) có quyền cao nhất trong toàn bộ VO.
Nhóm trong VOMRS được mở rộng tính năng quản lý trạng thái nhóm. Nhóm có thể ở trạng thái mở hoặc hạn chế tùy theo quyết định của quản lý nhóm. Nếu nhóm trong trạng thái mở, người dùng tham gia vào nhóm tự do. Ngược lại, nếu nhóm đang trong tình trạng hạn chế, người dùng phải được phép của quản lý nhóm thì mới có thể gia nhập nhóm.
95
Mọi hành động của người dùng cũng như người quản trị luôn được ghi lại trong VOMRS database gọi là sự kiện VOMRS. VOMRS sẽ gửi thông báo có sự kiện mới xảy ra nếu nhận được yêu cầu. Ví dụ: Các thành viên nhận thông báo trạng thái thành viên. Người quản trị nhận thông báo khi có yêu cầu tham gia nhóm của người dùng, khi có nhóm, vai trò mới được tạo.
Hình 4- 23: Đồng bộ VOMS và VOMRS
4.5.1.2 Đồng bộ VOMRS và VOMS.
Một đặc điểm quan trọng của VOMRS là nó có khả năng trao đổi thông tin thành viên với các hệ thống khác thông qua cơ chế thông báo sự kiện. Nhờ vậy VOMRS có thể đồng bộ với VOMS để cùng quản lý người dùng trong VO. Chính xác, mọi thông tin về thành viên trong VOMRS sẽ được chuyển qua VOMS thông qua các API của VOMS-Admin.
96
Cụ thể, khi VOMRS được kích hoạt, chức năng đăng ký của VOMS tạm thời bị tắt. Người dùng và người quản trị khi làm việc với các thông tin về nhóm, vai trò sẽ thực hiện trực tiếp trên giao diện của VOMRS. Sau đó, định kỳ, VOMRS sẽ đồng bộ các thông tin này với cơ sở dữ liệu của VOMS. Việc cấp các chứng thực sử dụng tài nguyên lưới vẫn do VOMS đảm nhiệm.
4.5.2 GUMS & PRIMA thay thế EDG-MKGRIDMAP.
Tương lai phát triển của hệ thống sẽ là kết hợp VOMRS và VOMS để bổ
sung lẫn nhau trong quản lý thông tin người dùng lưới cấp độ VO. Còn trên cấp độ RP, dịch vụ EDG-MKGRIDMAP với cơ chế ánh xạ cứng còn hạn chế sẽ được thay thế bởi hai dịch vụ mới GUMS và PRIMA mềm dẻo hơn.
Hình 4- 24: Kiến trúc GUMS
97
Cụ thể, trong hệ thống có PRIMA và GUMS, khi người dùng lưới muốn sử dụng tài nguyên, đầu tiên, họ gửi yêu cầu cấp chứng thực tạm thời tới VOMS/VOMRS. VOMS/VOMRS trả lại người dùng chứng chỉ số sử dụng lưới, bên trong có gắn thêm các thông tin về nhóm và vai trò của người dùng. Khi chứng nhận này được gửi tới bên cung cấp tài nguyên RP để xin sử dụng, GateKeeper sẽ trích các thông tin này ra. Để kiểm tra các thông tin này, PRIMA được sử dụng để hỗ trợ cho GateKeeper. PRIMA sau đó tiếp tục liên hệ với GUMS (Grid User Management System) để kiểm tra quyền sử dụng tài nguyên của người dùng. GUMS tiếp tục liên hệ với VOMS để lấy về thông tin người dùng. Sau khi lấy được thông tin, GUMS kết hợp với chính sách tài nguyên của site cục bộ để tiến hành ánh xạ. GUMS cung cấp cả cơ chế ánh xạ tĩnh thông qua GridMap và ánh xạ động khi liên kết với PRIMA. GUMS giống EDG-MKGRIDMAP ở khả năng ánh xạ tĩnh nhưng hơn EDG-MKGRIDMAP khi nó có thể trực tiếp trả về tài khoản ánh xạ cho người dùng (cung cấp ánh xạ động) về PRIMA.
Hình 4- 25: Dự án VO Services
98
GUMS và PRIMA là 2 trong 4 thành phần của dự án “VO Services” bao gồm VOMS/VOMRS, Globus Toolkit/Glite, GUMS, PRIMA. VO Services là giải pháp toàn diện cho quản trị người dùng lưới trên cấp độ VO và RP. Hiện tại, VO Services đang được ứng dụng rộng rãi trong EGEE, PRAGMA, US ATLAS, US CMS, cũng như FermiGrid. Hướng phát triển tương lai của hệ thống quản lý người dùng lưới trong GOODAS sẽ là triển khai VO Services.
KẾT LUẬN
Luận văn đã tập trung nghiên cứu tìm hiểu các vấn đề an toàn thông tin cho lưới một cách toàn diện và có hệ thống. Dựa trên nền tảng đó, luận văn đưa ra mô hình an toàn bảo mật cho hệ thống quản lý tổ chức ảo và quản lý giấy uỷ nhiệm trong môi trường lưới nói chung và tích hợp với hệ thống tìm kiếm và chia sẻ tài liệu trực tuyến GOODAS nói riêng.
Các kết quả chính của luận văn là:
1/. Tìm hiểu và nghiên cứu tài liệu để hệ thống lại các vấn đề sau:
+ Tổng quan tính toán lưới: các định nghĩa về tính toán lưới, các lợi tích và
kiến trúc của một lưới,
+ Vấn đề an toàn thông tin trong tính toán lưới: các thách thức về an toàn bảo
mật và kiến trúc an ninh cho một hệ thống tính toán lưới
+ Cơ sở hạ tầng an toàn thông tin lưới GSI: bao gồm giấy chứng nhận và giấy
uỷ nhiệm lưới và các khả năng uỷ quyền, chứng thực đa phương và toàn vẹn.
+ Hệ thống quản lý tổ chức ảo: các khái niệm tổ chức ảo, mô hình quản lý và
ứng dụng trong dịch vụ VOMS và EDG-MKGRIDMAP
+ Cổng điện tử lưới: các khái niệm về cổng điện tử lưới và vấn đề quản lý giấy
uỷ nhiệm trên cổng điện tử lưới
2/. Thử nghiệm chương trình:
Luận văn đã xây dựng Hệ thống quản lý người dùng lưới và các tổ chức ảo cho một lưới tính toán. Hệ thống này được cài đặt thử nghiệm trên lưới tìm kiếm và chia sẻ tài liệu điện tử GOODAS. Các thành phần chính của Hệ thống bao gồm:
+ Thành phần quản lý tổ ảo: cho phép quản lý các tổ chức ảo VO, các hoạt
động đăng ký lưới, xác định quyền truy nhập đến các dịch vụ của hệ thống.
+ Thành phần quản lý giấy uỷ nhiệm: thiết lập các kiểm soát truy nhập dịch
vụ và tài nguyên lưới và quản lý giấy uỷ nhiệm thông qua Cổng điện tử lưới.
Một phần kết quả của luận văn đã được trình bày trong báo cáo tại hội nghị
khoa học ICT.rda’08, Chương trình KC.01/06-10.
Kết quả ứng dụng của luận văn đã được xác nhận của Trung tâm tính toán hiệu
năng cao (Trường Đại học Bách khoa Hàn Nội.)
99
Các minh chứng trên trong phần phụ lục.
TÀI LIỆU THAM KHẢO
[1]. Ian Foster, Carl Kesselman - The Grid: Blueprint for a New Computing Infrastructure, 1st edition, Morgan Kaufmann Publishers, San Francisco, USA (1
November 1998), ISBN: 1558604758.
[2]. IBM Red Book - Introduction to Grid Computing.
[3]. IBM Red Books - Introduction to Grid Computing with Globus.
[4]. Mark Baker, Rajkumar Buyya, Domenico Laforenza - Grids and Grid
technologies for wide-area distributed computing.
[5]. Trịnh Nhật Tiến – Giáo trình AN TOÀN DỮ LIỆU. 2008
[6]. MyProxy – Credential Management Service
http://grid.ncsa.illinois.edu/myproxy/
[7]. Chadwick, D.W. and A. Otenko. The PERMIS X.509 Role Based Privilege
Management Infrastructure. in 7th ACM Symposium on Access Control Models and
Technologies. 2002
[8]. R. Alfieri, R. Cecchini, V. Ciaschini - VOMS, an Authorization System for
Virtual Organizations.
[9]. Akos Frohner, and Karoly Lorentey - VO Management with VOMS.
[10]. Ian Foster, Carl Kesselman, Steven Tuecke, 2001 - Enabling Scalable Virtual
organizations.
[11]. Markus Lorch, 2004 - The PRIMA System for Privilege Management,
100
Authorization and Enforcement in Grid Environments.
PHỤ LỤC: CÀI ĐẶT VOMS VÀ EDG-MKGRIDMAP.
1. Cài đặt VOMS.
Hiện tại, có nhiều cách để cài đặt VOMS như thông qua trình cài đặt
PACMAN của bộ công cụ VDT (Virtual Data Toolkit), trực thuộc Đại học
Winconsin-Madison. Đây là cách mà lưới PRAGMA đang thực hiện. Tuy nhiên,
trình cài đặt PACMAN chỉ chạy được trên một số nền tảng hạn chế như AIX;
CentOS 5; Debian 3, 4; Mac OS X; Red Hat Enterprise Linux 3, 4, 5; ROCKS
Linux 3.3 x86; Scientific Linux Fermi 3, 4 x86; và SUSE Linux 9. Nên quá trình cài
đặt PACMAN trên các hệ điều hành phổ biến khác như Fedora hay Ubuntun sẽ gặp
nhiều các lỗi về thư viện phát triển hoặc thậm chí là thất bại.
Cách thứ hai để cài đặt VOMS là sử dụng các repository của DAG, gLite,
jpackage17 …cho công cụ quản lý phần mềm yum và tiến hành cài đặt thông qua
“yum install voms”. Đây chính là hướng dẫn chính thức của gLite. Nhưng, với 1
nhà quản trị hệ thống, để hệ thống âm thầm thực hiện cài đặt một hệ thống lớn, dù
rất tiện lợi trước mắt, nhưng để quản trị hệ thống lâu dài và vận hành trơn tru thì đó
là một trở ngại lớn. Phần sau sẽ trình bày cách triển khai hệ thống từng phần.
1.1. Chuẩn bị hệ thống
Yêu cầu tối thiểu cho hệ thống là Java 5, MySQL 5, Apache-Tomcat 5 trở
lên. Phiên bản được lựa chọn để thử nghiệm là Java SE 1.6, MySQL 5.1.35 và
Apache-Tomcat 5.5.28. Các gói cấu hình hệ thống VOMS phải chuẩn bị bao gồm:
Gói cấu hình chung glite:
glite-config-3.1.3-3.slc4.i386.rpm 1.
glite-info-generic-2.0.2-3.noarch.rpm 2.
glite-info-templates-1.0.0-11.noarch.rpm 3.
glite-security-trustmanager-1.8.16-3.noarch.rpm 4.
glite-security-util-java-1.4.0-1.noarch.rpm 5.
glite-security-utils-config-3.1.0-1.slc4.i386.rpm 6.
101
glite-version-3.1.0-1.slc4.i386.rpm 7.
Gói cấu hình VOMS:
glite-security-voms-admin-client-2.0.11-1.noarch.rpm 1.
glite-security-voms-admin-interface-2.0.2-2.noarch.rpm 2.
glite-security-voms-admin-server-2.0.18-1.noarch.rpm 3.
glite-security-voms-api-cpp-1.8.12-1.slc4.i386.rpm 4.
glite-security-voms-api-noglobus-1.8.8-2.slc4.i386.rpm 5.
glite-security-voms-clients-1.8.12-1.slc4.i386.rpm 6.
glite-security-voms-config-1.8.12-1.slc4.i386.rpm 7.
glite-security-voms-mysql-3.1.0-1.slc4.i386.rpm 8.
glite-scurity-voms-server-1.8.12-1.slc4.i386.rpm 9.
glite-VOMS_mysql-3.1.3-0.noarch.rpm 10.
glite-voms-server-config-3.1.7-4.slc4.i386.rpm 11.
Và rất nhiều gói phần mềm phụ thuộc đi kèm khác, tùy thuộc vào thư viện
phát triển đi kèm hệ điều hành.
1.2. Cài đặt VOMS
102
Để tiến hành cài đ.ặt ta sử dụng lệnh “rpm -ivh TenGoiCaiDat.rpm”. Quá trình cài đặt các gói chính cũng như các gói phụ thuộc được tiến hành cho đến khi gói glite-VOMS_mysql-3.1.3-0.noarch.rpm được thông báo là cài đặt thành công. Các gói thư viện phụ thuộc được cài đặt khó hơn. Có thể thông qua việc download các gói và cài đặt trực tiếp hoặc thông qua trình hỗ trợ cài đặt Yum Extender.
Trình hỗ trợ quản lý phần mềm Yum Extender
Một số chú ý trong quá trình cài đặt là:
• Cài đặt các gói phần mềm phụ thuộc trước, thứ tự cài đặt các gói đảm bảo
để tránh lỗi “Fail Dependencies”.
• Cài đặt gói VOMS sau cùng, nếu gặp trường hợp thiếu các gói thư viện
giằng nhau (gói A yêu cầu phải có gói B, gói B yêu cầu phải có gói A) thì giải quyết bằng Yum Extender.
Nếu các gói phần mềm bị trùng lặp thư viện, dùng tham số –replacefiles hoặc –
103
force.
2. Cài đặt EDG-MKGRIDMAP.
2.1. Chuẩn bị hệ thống
Yêu cầu tối thiểu cho hệ thống là Java 5, Perl 5.8 trở lên. Phiên bản được lựa chọn để thử nghiệm là Java SE 1.6, Perl 5.10. Một số gói cấu hình phụ thuộc đi kèm:
1. openldap-clients-2.4.15-6.fc11.i586.rpm
2. openldap-servers-2.4.15-6.fc11.i586.rpm
3. perl-Crypt-SSLeay-0.57-2.el4.rf.i386.rpm
4. perl-Date-Manip-5.54-2.el4.rf.noarch.rpm
5. perl-LDAP-0.34-5.fc11.noarch.rpm
6. perl-libwww-perl-5.805-1.1.1.noarch.rpm
Gói cấu hình chính:
2. edg-mkgridmap-conf-3.0.0-1.noarch.rpm
1. edg-mkgridmap-3.0.0-1.noarch.rpm
2.2. Cài đặt EDG-MKGRIDMAP - Cách thức cài đặt EDG-MKGRIDMAP giống với phương pháp cài đặt VOMS.
Cài đặt các gói thư viện phụ thuộc:
yum --enablerepo=addons --enablerepo=extras install perl-IO-Socket-SSL perl-Net- SSLeay - Cài đặt edg-mkgridmap
104
rpm -Uvh edg-mkgridmap-3.0.0-1.noarch.rpm edg-mkgridmap-conf-3.0.0- 1.noarch.rpm
3. Cấu hình hệ thống
3.1. Cấu hình VOMS - Thiết lập các biến môi trường của VOMS:
cp $GLITE_LOCATION/etc/profile.d/glite-env.sh /etc/profile
- Sửa tiếp /etc/profile:
#Cau hinh VOMS GLITE
export GLITE_LOCATION=/opt/glite
PATH=$PATH:$GLITE_LOCATION/bin:$GLITE_LOCATION/sbin/
export GLITE_LOCATION_VAR=/var/glite
export GLITE_LOCATION_LOG=/var/log/glite
- Copy các gói thư viện cần thiết từ $GLITE_LOCATION/share/voms-
admin/endorsed sang $CATALINA_HOME/common/endorsed.
cp $GLITE_LOCATION/share/voms-admin/endorsed/* $CATALINA_HOME/co mmon/endorsed
- Tạo chứng thực dạng java keystore cho localhost: Đây là chứng nhận chứng thực cho VOMS server được ký bởi các CA được người dùng tin tưởng. Chứng nhận này được sử dụng trong quá trình xác thực lẫn nhau sau này. Mặc định, khi đã gia nhập lưới, ta đã xin sẵn chứng thực cho host. Ta sẽ tận dụng chứng thực cho host này để làm chứng thực cho VOMS server.
- Chuyển chứng thực của host từ định dạng pem sang định dạng pkcs12:
openssl pkcs12 -export -in /etc/grid-security/hostcert.pem -inkey /etc/grid- security/hostkey.pem -certfile /etc/grid-security/certificates/ca1d96a0.0 -name "host keystore" -out hoststore.p12
trong đó tham số certfile trỏ đến public key chuẩn X509 định dạng pem.
- Chuyển tiếp sang định dạng của java keystore:
105
keytool -importkeystore -srckeystore hoststore.p12 -destkeystore hoststore.ks - srcstoretype pkcs12 -deststoretype jks
- Thêm chứng nhận của nhà cung cấp chứng thực CA đã ký cho chứng thực của
server vào keystore:
-import -keystore hoststore.ks -alias ca1d96a0 -file /etc/grid-
keytool security/certificates/ca1d96a0.0
- Vì quá trình người dùng đăng nhập vào giao diện quản trị đòi hỏi quá trình xác thực lẫn nhau giữa cả VOMS server và người dùng. Để kiểm tra các giấy chứng nhận của người dùng, ta cần phải có giấy chứng nhận của các CA đã cấp chứng nhận cho họ. Tương tự như quá trình tạo java keystore cho host, ta tạo ra một java keystore chứa tất cả các chứng nhận của các CA mà ta tin tưởng.
ca.ks -alias ca1d96a0 -file /etc/grid-
keytool -keystore -import security/certificates/ca1d96a0.0
- Cuối cùng, ta cấu hình tomcat hoạt động trên cổng 8443, giao thức https:
maxThreads="150" minsSpareThreads=”25” maxSpareThreads=”75” enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="true" sslProtocol="TLS" keystoreFile="webapps/GOODASserver.jks" keystorePass="123456" truststoreFile="webapps/ca.jks" truststorePass="123456" truststoreType="JKS"/> 106 Trong đó, tham số clientAuth yêu cầu người dùng phải xuất chứng thực được
localhost tin cậy, kiểm tra qua truststoreFile của CA. Tham số keystoreFile trỏ tới
chứng thực dạng keystore của localhost. Ta trỏ tới https://localhost:8443 để kiểm tra
kết quả triển khai Tomcat và SSL. 3.2. Cấu hình VO. Sau khi đã cài đặt xong gói phần mềm VOMS, ta tiến hành tạo ra tổ chức ảo.
Có 2 cách để tạo mới 1 tổ chức ảo là sử dụng các câu lệnh tạo trực tiếp trong gói cài
đặt gLite VOMS MYSQL; hoặc điền trực tiếp thông tin các tệp cấu hình trong glite
trong tiện tích đi kèm của gói gLite.
a. Sử dụng lệnh tạo VO trực tiếp voms-admin-configure.
- Sử dụng $GLITE_LOCATION/sbin/voms-admin-configure, cú pháp như sau: voms-admin-configure install --dbtype mysql --vo --createdb –deploy-database --dbauser --dbapwd --dbusername --dbpassword --port --smtp-host --mail-from - Khi tạo xong, các thông tin về cấu hình VO được lưu tại: $GLITE_LOCATION/etc/voms/VOName/voms.conf - Trong hệ thống GOODAS, ta tạo ra VO GOODAS: $GLITE_LOCATION/sbin/voms-admin-configure install \ --dbtype mysql \ --vo GOODAS \ --createdb \ --deploy-database \ --dbauser root \ --dbapwd SQLRootPassword \ --dbusername trungnv\ 107 --dbpassword SQLUserPassword \ --port 15000 \ --mail-from ndh7891@gmail.com \ --smtp-host bkluster.hut.edu.vn - Sau khi tạo xong VO GOODAS, khởi động VOMS core và VOMS-Admin: $GLITE_LOCATION/etc/init.d/voms start GOODAS $GLITE_LOCATION/etc/init.d/voms-admin start GOODAS - Kiểm tra VOMS core và VOMS-Admin đã được khởi động: $GLITE_LOCATION/libexec/voms/voms-ping GOODAS Nếu kết quả OK là VOMS-Core khởi động thành công. $GLITE_LOCATION/sbin/voms-admin-ping GOODAS Nếu kết quả OK là VOMS-Admin khởi động thành công. - Khi muốn gỡ bỏ VO: $GLITE_LOCATION/sbin/voms-admin-configure remove --vo GOODAS - Mặc định, lệnh trên sẽ chỉ gỡ bỏ VO mà vẫn giữ lại cơ sở dữ liệu người dùng của nó. Nếu muốn gỡ bỏ cả VO và cơ sở dữ liệu đi cùng: remove --vo GOODAS -- $GLITE_LOCATION/sbin/voms-admin-configure
undeploy-database Khi hệ thống báo lỗi, có thể xem chi tiết lỗi tại các log của nó. Các log của
tại /var/log/voms; của VOMS-Admin lưu lưu tại: VOMS-Core được
$CATALINA_HOME/logs/voms-admin-VOName.log b. Tạo trực tiếp VO sử dụng tệp cấu hình của Glite. Ngoài cách dùng các câu lệnh trực tiếp tạo VO của gói gLite VOMS. gLite
cũng cung cấp các tệp cấu hình VO chuẩn. Mẫu các tệp cấu hình VO được lưu ở
/opt/glite/etc/config/templates. Người quản trị VO điền các thông tin này vào mẫu
chuẩn rồi gọi script thực thi. VO sẽ được tạo. Ta lưu các tệp cấu hình chuẩn sang thư mục /opt/glite/etc/config, sau đó thay đổi trực tiếp các giá trị “changme” để tiến hành cấu hình 108 cp /opt/glite/etc/config/templates/* /opt/glite/etc/config Các file cấu hình VO bao gồm: 1. glite-global.cfg.xml: Thiết lập các biến môi trường EDG_LOCATION,
GPT_LOCATION, GLOBUS_LOCATION, EDG_LOCATION, JAVA_HOME,
CATALINA_HOME, ..., tomcat.user.name, tomcat.user.group... 2. glite-security-utils.cfg.xml: Thay đổi email sẽ nhận các thông báo cron. 3. glite-voms-server.cfg.xml: Tham số Giá trị Ý nghĩa voms.db.type mysql Loại cơ sở dữ liệu, MySQL hoặc Oracle voms.db.host localhost Hostname của server database voms.admin.smtp.host localhost Tên máy chủ SMTP gửi email voms.mysql.admin.name root Tên người quản trị database MySQL Các tham số trong glite-voms-server.cfg.xml. 4. vo-list.cfg.xml: Tham số Giá trị Ý nghĩa vo.name VO-Name Tên của VO sẽ cài voms.hostname Localhost Hostname của server voms voms.port.number 15000 Cổng giao tiếp với VOMS-Core voms.db.name voms_VO-Name Tên database MySQL của VO voms.db.user.name vo_VO-Name Tên người dùng MySQL sẽ thao
tác với database voms_VO-
Name voms.db.user.password 123456 Password cho vo_VO-Name Email của người quản trị VO voms.admin.notification
.e-mail ndh7891@gmail.co
m voms.admin.certificate admincert.pem Certificate của người quản trị
VO 109 Các tham số trong vo-list.cfg.xml. - Sau khi thiết lập các tham số, kiểm tra các tệp cấu hình đã được thiết lập đúng: $GLITE_LOCATION/etc/config/scripts/glite-voms-server-config.py –c - Thiết lập tất cả các VO trên VOMS server: $GLITE_LOCATION/etc/config/scripts/glite-voms-server-config.py –configure - Nếu quá trình thiết lập thành công sẽ trả về: The gLite VOMS server was successfully configured. - Nếu thiết lập từng VO đơn lẻ: $GLITE_LOCATION/etc/config/scripts/glite-voms-server-config.py --configure --
vo=VO-Name - Khởi động tất cả các VO trên VOMS server: $GLITE_LOCATION/etc/config/scripts/glite-voms-server-config.py –start - Khởi động từng VO trên VOMS server: --start -- $GLITE_LOCATION/etc/config/scripts/glite-voms-server-config.py
vo=VO-Name - Tắt tất cả các VO trên VOMS server: $GLITE_LOCATION/etc/config/scripts/glite-voms-server-config.py –stop - Tắt từng VO trên VOMS server: --stop -- $GLITE_LOCATION/etc/config/scripts/glite-voms-server-config.py
vo=VO-Name - Kiểm tra trạng thái hoạt động của toàn bộ các VO trên VOMS server: $GLITE_LOCATION/etc/config/scripts/glite-voms-server-config.py –status - Gỡ bỏ một VO nào đó trên VOMS server: --remove -- $GLITE_LOCATION/etc/config/scripts/glite-voms-server-config.py
vo=VO-Name - Gỡ bỏ VO và cơ sở dữ liệu của nó: --remove -- 110 $GLITE_LOCATION/etc/config/scripts/glite-voms-server-config.py
vo=VO-Name --remove-db 3.3. Cấu hình EDG-MKGRIDMAP.
- Tệp cấu hình của EDG-MKGRIDMAP được lưu trong /opt/edg/etc. Tệp này đại
diện cho chính sách tài nguyên cục bộ của máy thực thi. Nếu chưa có, ta tạo ra
edg-mkgridmap và cài đặt các chính sách ánh xạ vào trong nó: group vomss://vomrs-pragma.sdsc.edu:8443/voms/GOODAS?/GOODAS/AGP
agp-user group vomss://vomrs-pragma.sdsc.edu:8443/voms/GOODAS?/GOODAS/CUDA
cuda-user gmf_local /opt/edg/etc/grid-mapfile-local - Tạo ra tệp gridmap rỗng /opt/edg/etc/grid-mapfile-local để chuẩn bị ghi các thông tin ánh xạ vào hoặc sử dụng luôn tệp ánh xạ có sẵn /etc/grid-security/grid-
mapfile touch /opt/edg/etc/grid-mapfile-local - Tạo ra các file nhật ký edg-mkgridmap logfile: mkdir /opt/edg/log 111 touch /opt/edg/log/edg-mkgridmap.log