MỤC LỤC
MỤC LỤC . 1
LỜI NÓI ĐẦU 3
LỜI CẢM ƠN . 4
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT . 5
DANH MỤC HÌNH VẼ 6
Chương 1. Tổng quan tính toán lưới, bảo mật trên môi trường lưới 8
1.1. Tính toán lưới . 8
1.1.1. Giới thiệu về tính toán lưới . 8
1.1.2. Lợi ích của tính toán lưới 10
1.1.3. Các vấn đề cơ bản của một lưới 12
1.1.4. Kiến trúc lưới 14
1.2. Các khái niệm cơ bản về bảo mật 15
1.2.1. Một số thuật ngữ cơ bản 15
1.2.2. Mã hóa thông tin sử dụng khóa . 16
1.2.3. Mã hóa đối xứng . 17
1.2.4. Mã hóa công khai 18
1.2.5. Chữ ký điện tử . 19
1.2.6. Giấy chứng nhận điện tử và Nhà chứng nhận thẩm quyền . 21
1.3. Cơ chế bảo mật trong môi trường lưới . 25
1.4. Các chính sách bảo mật trong môi trường lưới 28
1.5. Giới thiệu về hạ tầng bảo mật lưới GSI . 30
1.5.1. Cơ sở hạ tầng khóa công khai . 30
1.5.2. Bảo mật mức thông điệp và mức giao vận 31
1.5.3. So sánh hiệu năng của bảo mật mức thông điệp với mức giao vận . 32
1.5.4. Giấy ủy nhiệm . 34
1.5.5. Sự ủy quyền . 35
1.5.6. Chứng thực 35
1.5.7. Ứng dụng của GSI . 36
Chương 2. An toàn bảo mật trong Globus Toolkit 4 37
2.1. Giới thiệu về GT4 37
2.1.1. GT4, OGSA và WSRF 37
2.1.2. Giới thiệu chung về dịch vụ web 40
2.1.3. WSRF - nền tảng tài nguyên dịch vụ web 48
2.1.4. Kiến trúc Globus Toolkit 4 . 53
2.2. Các thành phần bảo mật trong GT4 . 55
2.3. Ví dụ minh họa: cài đặt bảo mật trong GRAM 57
Chương 3. Ứng dụng công nghệ tác tử trong tính toán lưới . 61 2
3.1. Tác tử 61
3.1.1. Khái niệm tác tử 61
3.1.2. Hệ đa tác tử . 66
3.1.3. Truyền thông giữa các tác tử . 73
3.2. Tiềm năng ứng dụng công nghệ tác tử trong lưới 76
3.3. Các hướng tiếp cận tích hợp công nghệ tác tử trong lưới 77
3.4. Hướng triển khai công nghệ tác tử trong hệ thống BKGrid2006 79
3.4.1. Kiến trúc hệ thống BKGrid2006 . 79
3.4.2. Xây dựng các tác tử giúp đơn giản hóa việc thương lượng sử dụng
dịch vụ . 81
Chương 4. Xây dựng môđun bảo mật trong BKGrid 2006 84
4.1. Yêu cầu cần thiết xây dựng môđun quản trị người dùng . 84
4.2. Kiến trúc môđun quản trị người dùng 86
4.3. Thiết kế chi tiết . 89
4.3.1. Nhà chứng nhận thẩm quyền 89
4.3.2. Thành phần Quản lý giấy ủy nhiệm 91
4.3.3. Thành phần Quản lý ánh xạ người dùng . 91
4.3.4. Tích hợp với các chức năng quản lý người dùng cơ bản 92
4.3.5. Đảm bảo an toàn cho môđun quản trị người dùng 93
4.4. Tích hợp vào hệ thống BKGrid 2006 . 94
4.5. Hướng dẫn sử dụng 95
4.6. Triển khai thử nghiệm 97
4.6.1. Cấu hình triển khai 97
4.6.2. Kết quả triển khai 99
Chương 5. Kết luận . 102
5.1. Kết quả đạt được 102
5.2. Hướng phát triển 103
TÀI LIỆU THAM KHẢO . 104
107 trang |
Chia sẻ: maiphuongtl | Lượt xem: 1731 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Bảo mật trong môi trường lưới với tiếp cận hướng tác tử, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ược đăng ký với DF có những tham số bắt buộc mô tả về
dịch vụ như kiểu dịch vụ, tên dịch vụ, địa chỉ dịch vụ, các thuộc tính của dịch
vụ. Khi không còn cung cấp dịch vụ đó nữa, tác tử sẽ gửi yêu cầu hủy đăng
67
ký dịch vụ tới cho DF, hoặc có thể yêu cầu DF chỉnh sửa thông tin dịch vụ đã
đăng ký.
Mỗi tác tử khi muốn tìm kiếm một dịch vụ nào đó sẽ gửi thông tin tìm
kiếm tới DF. DF không bảo đảm thông tin nó cung cấp là chính xác, vì nó
không có một hạn chế nào đối với những thông tin do các tác tử đăng ký với
nó. Tuy nhiên, DF có quyền giới hạn truy nhập vào thư mục mô tả thông tin
riêng của các tác tử và kiểm tra tất cả các quyền truy nhập của tác tử nhằm
cập nhật thông tin về trạng thái tác tử.
Mỗi DF có khả năng thực hiện một số chức năng sau:
o Nhận đăng ký dịch vụ của một tác tử.
o Hủy đăng ký dịch vụ đối với một tác tử
o Sửa thông tin về dịch vụ của một tác tử
o Tìm kiếm dịch vụ của tác tử
Trong mỗi DF có một cơ chế tìm kiếm. Đầu tiên, DF ưu tiên tìm kiếm
cục bộ trong cơ sở dữ liệu của nó, sau đó sẽ mở rộng phạm vi tìm kiếm đến
những DF khác nếu cần thiết và được phép. Cơ chế tìm kiếm được thực hiện
theo giải thuật tìm kiếm sâu. Khi một DF nhận một yêu cầu tìm kiếm, nó có
thể gọi đến những DF khác đã đăng ký với nó để nhờ tìm kiếm giúp. Thông
điệp yêu cầu tìm kiếm thông tin sẽ được gửi tiếp đi nếu tham số độ sâu tìm
kiếm (max-depth) còn lớn hơn 1 và không có yêu cầu tìm kiếm khác cùng
search-id có độ ưu tiên cao hơn. Nếu yêu cầu tìm kiếm được chuyển tiếp thì
nó sẽ không thay đổi giá trị của tham số search-id khi nhân rộng phạm vi tìm
kiếm. Trước mỗi lần nhân rộng phạm vi tìm kiếm, max-depth sẽ bị trừ đi một
đơn vị.
Tác tử quản lý môi trường (Agent Management System - AMS)
68
AMS là thành phần bắt buộc của mỗi môi trường tác tử, nó tồn tại duy
nhất trong mỗi môi trường và chịu trách nhiệm quản lý hoạt động của môi
trường đó, chẳng hạn như tạo các tác tử, xoá các tác tử, theo dõi sự di trú của
các tác tử trong trường hợp đó là các tác tử động.
AMS có thể yêu cầu một tác tử thực hiện một chức năng nào đó, nó có
quyền “bắt buộc” nếu tác tử từ chối yêu cầu.
AMS quản lý danh sách tất cả các tác tử hiện tại trong môi trường. Nó có
những chức năng cơ bản sau:
o Cho phép một tác tử đăng ký vào môi trường.
o Cho phép một tác tử rời khỏi môi trường.
o Thay đổi thông tin của một tác tử.
o Tìm kiếm thông tin về một tác tử.
o Lấy thông tin về một tác tử.
Ngoài ra, “quyền lực” của AMS trong hệ thống đối với tác tử thể hiện
qua những quyền sau:
o Tạm dừng hoạt động của một tác tử.
o Dừng hẳn một tác tử.
o Tạo tác tử.
o Phục hồi tác tử.
o Yêu cầu tác tử thực hiện một tác vụ.
o Quản lý tài nguyên của môi trường tác tử.
3.1.2.2. Môi trường hoạt động cho hệ đa tác tử (Agent Platform - AP)
Môi trường hoạt động cho hệ đa tác tử là một cơ sở hạ tầng vật lý phục
vụ cho tác tử. AP gồm hệ điều hành, những tiến trình, những phần mềm hỗ
69
trợ tác tử, những thành phần trong một hệ đa tác tử như DF, AMS và các tác
tử. Cần chú ý rằng những tác tử nằm trong một AP không có nghĩa là tác tử
đó nằm trong hệ thống vật lý đó mà có thể nằm ở vùng khác nhưng đăng ký
với AMS.
3.1.2.3. Việc định danh tác tử (Agent Identification - AID)
Mỗi tác tử trong môi trường có một định danh riêng biệt. Mỗi tác tử
trong hệ thống được xác định bằng một định danh, đó là một tập các tham số,
bao gồm:
- Tên: là một tên đi liền với tác tử, là duy nhất và có thể được sử dụng để
tham chiếu đến tác tử thay cho địa chỉ. Một mẫu tên thường gặp là kiểu:
tên_tác_tử@tên_môi_trường
- Địa chỉ: là một tập những địa chỉ mà các thông điệp có thể được gửi
tới. Địa chỉ ở đây là địa chỉ vật lý.
- Tên chú giải: là tham số chứa tập những địa chỉ dịch vụ chú giải. Địa
chỉ dịch vụ chú giải là một dịch vụ được cung cấp bởi AMS, thông qua
chức năng tìm kiếm. Tham số tên chú giải chứa một dãy những địa chỉ
của các AID khác mà thông qua chúng thông điệp có thể đến địa chỉ
của các tác tử đó.
3.1.2.4. Việc đăng ký tác tử
Các trường hợp một tác tử phải đăng ký với AMS bao gồm:
o Tác tử được tạo ra trong AP.
o Tác tử di trú đến AP (đối với các AP hỗ trợ tác tử động).
Một tác tử bắt buộc phải đăng ký với AP, giả sử rằng AP này hỗ trợ việc
đăng ký động và sẵn sàng nhận đăng ký của một tác tử mới. Việc đăng ký
70
động là khi một tác tử đã có một môi trường chính (Home Agent Platform -
HAP) nhưng vẫn muốn đăng ký đến một AP khác như một tác tử địa phương.
Việc đăng ký tác tử liên quan đến đăng ký một AID với AMS. Khi một
tác tử được tạo ra hoặc đăng ký động với một AP, tác tử đó phải đăng ký với
AMS, khi đó nó sẽ sử dụng chức năng đăng ký.
3.1.2.5. Điều phối hoạt động trong hệ đa tác tử
Trong một hệ đa tác tử chia sẻ chung một môi trường hoạt động, tương
tác giữa các tác tử sẽ tăng lên khi số tác tử tăng lên. Một tác tử có thể làm
thay đổi một số đặc tính của môi trường, thay đổi này tác động đến các tác tử
khác, chẳng hạn nó chiếm quyền sử dụng một tài nguyên làm cho các tác tử
khác không truy nhập được tài nguyên này. Khi quyết định của một tác tử làm
ảnh hưởng đến hoạt động của các tác tử khác, sự điều phối giữa các tác tử là
rất cần thiết.
Trước hết, ta sẽ điểm qua một vài định nghĩa về điều phối để hiểu được
khái niệm này.
+ Định nghĩa 1: Điều phối là một cơ chế đảm bảo các tác tử duy trì mối
liên hệ giữa các hoạt động của nó, chẳng hạn như trình tự thực thi. Điều khiển
các thông tin điều phối phải được thực hiện bởi một tác tử thông minh.
Mức độ điều khiển là từ 0 (zero) đến tuyệt đối (total). Đối với tác tử,
không điều khiển tương ứng với tự chủ tuyệt đối, ngược lại điều khiển tuyệt
đối tương ứng với không có tính tự chủ.
+ Định nghĩa 2: Trong hệ đa tác tử, điều phối là quá trình mà trong đó
mỗi tác tử học về các hành động của nó và đoán trước các hành động của các
tác tử khác để cố gắng đảm bảo các hành động liên lạc với nhau trong một
71
mối liên kết thống nhất. Có nghĩa là các hoạt động của mỗi tác tử đều được
thực hiện tốt và không xung đột với các tác tử khác.
Điều phối nhằm mục đích:
- Tránh sự hỗn loạn: Trong các hệ thống tác tử, sự hỗn loạn rất dễ xảy
ra. Không một tác tử nào có thể bao quát hết được môi trường, hệ thống
mà nó thuộc vào do cộng đồng tác tử rất phức tạp. Mỗi tác tử chỉ có
khung nhìn cục bộ, do đó mục đích và kiến thức của chúng có thể xung
đột nhau. Giống như bất kỳ một xã hội phức tạp nào, từng nhóm tác tử
phải được điều phối để đạt được mục đích chung.
- Thỏa mãn những ràng buộc chung: Thông thường mỗi nhóm tác tử
phải thỏa mãn một số ràng buộc chung nếu muốn công việc thành công.
Ví dụ như một hệ thống đa tác tử đang được xây dựng phải thoả mãn
ràng buộc là nằm trong ngân sách định trước. Các tác tử quản lý hệ
thống mạng phải đáp ứng yêu cầu về thời gian, xử lý lỗi trong vòng vài
giây hay xử lý một số vấn đề khác trong vòng vài giờ. Do đó các tác tử
cần điều phối hành vi của chúng để thoả mãn các điều kiện ràng buộc
chung.
- Chia sẻ kinh nghiệm, nguồn tài nguyên và thông tin: Trong hệ đa tác tử,
các tác tử có những khả năng và kiến thức khác nhau. Chúng có các
nguồn thông tin, tài nguyên, mức độ tin cậy, khả năng đáp ứng, các
dịch vụ khác nhau. Trong trường hợp này các tác tử phải được điều
phối, cũng giống như trường hợp các chuyên gia về y học như bác sĩ
gây mê, bác sĩ phẫu thuật, bác sĩ cấp cứu, y tá cùng làm việc với nhau
để cứu chữa cho bệnh nhân. Trong ví dụ này, mỗi chuyên gia có kinh
nghiệm trong lĩnh vực của mình, họ chia sẻ thông tin chung về tình
trạng của bệnh nhân, chia sẻ về nguồn tài nguyên dụng cụ y tế.
72
- Độc lập giữa những hành động của các tác tử: Mục đích của các tác tử
thường hay phụ thuộc lẫn nhau. Xét ví dụ hai tác tử phải giải quyết các
khối công việc sau:
Hình 3.1. Sự phụ thuộc các hành động giữa các tác tử
Có hai tác tử: tác tử 1 có hai khối công việc là A và B, tác tử 2 có khối
công việc là C. Mục đích của chúng là thực hiện một công việc có kết quả
theo thứ tự A, B, C. Rõ ràng để thực hiện được mục đích này các tác tử phụ
thuộc vào nhau: tác tử thứ hai phải đợi tác tử thứ nhất thực hiện xong thì nó
mới có thể thực hiện công việc của mình. Khi hành động của các tác tử phụ
thuộc vào nhau, chúng cần phải điều phối các hoạt động của mình.
- Đảm bảo hiệu năng cao: Ngay cả khi chức năng của các tác tử là độc
lập nhau thì chúng vẫn cần phải điều phối, vì thông tin của tác tử này sẽ
ảnh hưởng đến các tác tử khác. Sự phối hợp với nhau sẽ giúp giải quyết
các bài toán nhanh chóng và dễ dàng hơn.
Điều phối có thể bao gồm cả hợp tác, nhưng cần nhấn mạnh rằng hợp tác
không phải là yêu cầu bắt buộc trong một hệ đa tác tử. Điều phối cũng có thể
không cần sự hợp tác. Ví dụ như có một người đang chạy về phía bạn nhưng
bạn muốn thoát khỏi anh ta, khi đó bạn sẽ điều phối các hành động của mình
đối với anh ta cho phù hợp mà không phải là hợp tác với anh ta.
Để có được khả năng điều phối, các tác tử có thể phải liên lạc với nhau.
Tuy nhiên, điều phối cũng có thể không cần sự liên lạc, các tác tử không cần
cung cấp các mô hình hành vi của mình cho nhau. Trong trường hợp này, sự
73
điều phối đạt được bằng cách tổ chức. Song để điều phối giữa các tác tử được
dễ dàng, chúng nên hợp tác với nhau thông qua việc liên lạc, truyền thông để
có thể biết được về mục đích, ý định, kết quả và trạng thái của nhau.
Trong môi trường phân tán, điều phối còn có các tác dụng:
- Đảm bảo mạng luôn thông suốt: hạn chế sự quá tải trên toàn hệ thống
phân tán.
- Phân định nhiệm vụ và nguồn tài nguyên giữa các tác tử.
- Nhận biết và giải quyết các mối xung đột giữa các mục đích, sự kiện,
hiểu biết, khung nhìn và hành vi của các tác tử.
- Giúp đưa ra kiến trúc cần có của một tác tử mới.
Ngoài ra, sự điều phối giúp các tác tử tránh thực hiện những hoạt động
không cần thiết.
- Tránh livelock: điều phối giúp tránh trường hợp các tác tử hoạt động
liên tục mà không thu được sự tiến bộ nào.
- Tránh deadlock: nhờ điều phối, hiện tượng deadlock được giảm thiểu.
- Tối đa hóa khả năng của mỗi tác tử.
- Đảm bảo sự nhất quán cho hệ thống.
3.1.3. Truyền thông giữa các tác tử
Hình 3.2. Truyền thông giữa các tác tử
74
Truyền thông là cách để các tác tử trao đổi thông tin, trên cơ sở đó chúng
cộng tác với nhau để thực thi công việc. Giao thức truyền thông là nhân tố
quan trọng quyết định chất lượng hợp tác giữa các tác tử. Trong hệ đa tác tử,
các tác tử trao đổi thông tin với nhau bằng nhiều cách: trao đổi trực tiếp bằng
các thông điệp, tự tổ chức trao đổi trong một hệ thống hợp nhất, giao tiếp
thông qua tác tử trợ giúp (facilitator) hay chúng có thể quảng bá các thông
điệp. Một cách khác phổ biến hơn để các tác tử giao tiếp với nhau là thông
qua một kho dữ liệu dùng chung (blackboard), trong đó các thông tin được
gửi vào và lấy ra.
Ngôn ngữ truyền thông giữa các tác tử
Các tác tử có khả năng tương tác với người sử dụng, với các dịch vụ hệ
thống hoặc tác tử khác. Để giao tiếp với nhau thì chúng cần ngôn ngữ. Ngôn
ngữ truy vấn và thao tác tri thức (Knowledge Query and Manipulation
Language - KQML) là ngôn ngữ dùng cho giao tiếp mức thông điệp giữa các
tác tử.
KQML được hiểu như là một giao thức định dạng và xử lý thông điệp,
cung cấp khả năng chia sẻ tri thức giữa các tác tử. Các đặc điểm cơ bản của
KQML là:
- Không trong suốt với nội dung mà chúng mang: Các thông điệp KQML
không chỉ đơn thuần là những câu giao tiếp, chúng còn thể hiện quan
điểm về một nội dung như xác nhận, yêu cầu, truy vấn, trả lời.
- Cơ sở của ngôn ngữ là các biểu hiện (performative): Các biểu hiện
định nghĩa các hành động giữa các tác tử
- Hỗ trợ truyền thông điểm - điểm: xét ở cấp độ một tác tử, sự truyền
thông được coi như là sự truyền thông điệp từ điểm này tới điểm khác.
75
- Cho phép sự góp mặt của các tác tử trợ giúp: Môi trường trong đó các
tác tử giao tiếp với nhau bằng KQML có thể có sự góp mặt của các tác
tử đặc biệt, gọi là các tác tử trợ giúp. Đó là các tác tử hỗ trợ cho các tác
tử khác các chức năng để giải quyết các vấn đề xảy ra, chẳng hạn như
liên hệ giữa các địa chỉ vật lý với các tên tượng trưng, hỗ trợ việc đăng
ký của các tác tử, việc tìm kiếm các dịch vụ, các dịch vụ giao tiếp nâng
cao như chuyển tiếp, môi giới.
KQML định nghĩa một tập các mẫu thông điệp. Sau đây là một ví dụ về
thông điệp KQML:
(ask-if
:sender A
:receiver B
:language Prolog
:ontology foo
:reply- with id1
:content “bar(a,b)” )
Trong ngôn ngữ KQML, ask-if là một biểu hiện. Trong ví dụ trên, một
tác tử có tên là A (:sender) hỏi tác tử B (:receiver) bằng ngôn ngữ Prolog
(:language) về trạng thái thật của “bar(a,b)” (:content). Bất kỳ câu trả lời nào
cho thông điệp KQML này sẽ được nhận dạng bởi id1 (:reply-with). Ontology
tên foo có thể cung cấp thêm thông tin về việc thông dịch :content.
Giả sử rằng B không có khả năng thực hiện các thao tác mà A đề nghị
trong thông điệp trước, khi đó B sẽ trả lời A bằng thông điệp như sau:
(sorry
:sender B
:receiver A
76
:in-reply-to id1
:reply-with id2 )
Tác tử B (:sender) sử dụng biểu hiện sorry để thông tin cho A(:receiver)
biết rằng nó không thể thực hiện việc xác định bar(a,b). Tác tử A sẽ biết được
chính xác thông điệp này muốn nói đến sự xác định nào bởi vì B sử dụng
tham số: in-reply-to với giá trị id1.
3.2. Tiềm năng ứng dụng công nghệ tác tử trong lưới
Cả lưới và tác tử đều là các khái niệm được phát triển từ các hệ phân tán
mở, mặc dù từ các khung nhìn khác nhau.
Cộng đồng lưới xét trên phương diện lịch sử tập trung vào khía cạnh “cơ
bắp”: cơ sở hạ tầng, các công cụ, các ứng dụng tin cậy, chia sẻ tài nguyên an
toàn trong các tổ chức ảo và phân tán về mặt địa lý.
Xét trên cộng đồng lưới, vấn đề chủ yếu được quan tâm là cách các tổ
chức thao tác và vận hành. Do vậy, ta có thể nhận ra rất nhiều các nỗ lực
nhằm đưa ra các chuẩn cho cộng đồng được thể hiện thông qua các chính sách
rõ ràng, cách tuân theo các chính sách như thế nào, các thành viên trong cộng
đồng có thể xác định nhau ra sao. Chẳng hạn, thường các công cụ lưới được
sử dụng để cung cấp một cách truy nhập thống nhất đến các dữ liệu ở các hệ
thống lưu trữ khác nhau mà không hỗ trợ việc tích hợp ngữ nghĩa của các dữ
liệu này, truy nhập trạng thái tài nguyên và dịch vụ, không tiên đoán, nhận ra,
chẩn đoán các vấn đề gián tiếp xảy ra do các sự thay đổi trạng thái này, hay
cung cấp khả năng xác thực người dùng và dịch vụ, mà không suy ra các
người dùng hay dịch vụ cụ thể có đáng tin cậy để thực hiện các thao tác nhất
định hay không. Xét trên khía cạnh này, lưới hoàn toàn là cơ bắp mà không có
trí tuệ.
77
Ngược lại, cộng đồng tác tử tập trung vào khía cạnh “trí tuệ”: các phần
mềm giải quyết vấn đề một cách tự động, có thể hoạt động một cách linh hoạt
trong các môi trường không chắc chắn và động.
Đối với các hệ tác tử, để xây dựng các khả năng linh hoạt và phức tạp,
môi trường phân tán thực sự, các mối quan hệ xã hội và cấu trúc các tổ chức
xem như là đã có sẵn. Chẳng hạn, các môi trường phát triển tác tử cung cấp
các khả năng suy diễn phức tạp bên trong, mà không hỗ trợ việc tương tác an
toàn hay tìm kiếm dịch vụ; các giải thuật cộng tác hướng đến các kết quả tối
ưu về mặt xã hội, mà giả sử rằng các tác tử đã có toàn bộ tri thức cần thiết,
các giải thuật thương lượng nhằm đạt các kết quả tối ưu cho tất cả các tác tử
tham gia, nhưng lại giả sử rằng tất cả các thành phần trong hệ thống đều được
biết đến khi bắt đầu quá trình thương lượng và không thay đổi trong quá trình
vận hành hệ thống. Do đó, có thể nói rằng các tác tử hoàn toàn là “trí tuệ” mà
không có cơ bắp.
Như vậy, có hai vấn đề cần giải quyết. Đối với lưới, để hiệu quả trong
việc đạt mục tiêu, cần có thêm khả năng ra quyết định linh hoạt, phi tập trung.
Còn đối với tác tử, cần một môi trường phân tán mạnh cho phép chúng khám
phá, triệu gọi, liên kết và quản lý các khả năng cần thiết để thực thi các quyết
định.
Sự hội tụ giữa công nghệ lưới và công nghệ tác tử là rất rõ ràng. Vì vậy,
việc ứng dụng công nghệ tác tử vào môi trường lưới là một hướng nghiên cứu
rất hứa hẹn.
3.3. Các hướng tiếp cận tích hợp công nghệ tác tử trong lưới
Ta có thể liệt kê một số hướng tiếp cận cho việc ứng dụng công nghệ tác
tử vào lưới như sau:
78
- Xây dựng kiến trúc dịch vụ: sự hội tụ của công nghệ lưới và công nghệ
tác tử có thể được đẩy nhanh nếu có thể định nghĩa ra một kiến trúc
dịch vụ tích hợp, cung cấp một nền tảng mạnh mẽ cho các hành vi tự
trị. Kiến trúc này phải định nghĩa các giao diện và hành vi cơ bản hỗ trợ
các dịch vụ động và có trạng thái, và một tập các giao diện và dịch vụ
mức cao giúp theo dõi và quản lý. Việc định nghĩa được một tập phù
hợp các phần tử cấu trúc này là một kết quả nghiên cứu quan trọng, có
thể làm cho việc tạo lập, tái sử dụng và kết hợp các thành phần cùng
hoạt động.
- Thương lượng và quản lý dựa trên sự tin cậy: hầu hết trong các hệ phân
tán, sự tương tác giữa các thực thể (dịch vụ) không có được sự bảo đảm
tin cậy hoàn toàn. Nhiều quyết định xác thực thường phải được thực
hiện với sự thiếu chặt chẽ trong quan hệ tin tưởng.
Tầng trung gian lưới đã giải quyết các vấn đề về xác thực, nhưng không
phải là cho các vấn đề khó như thiết lập, theo dõi, quản lý sự tin tưởng
trong một môi trường động, mở. Yêu cầu đặt ra là cần các kỹ thuật mới
cho việc biểu diễn và suy diễn về sự tin cậy.
- Khả năng tiên đoán hệ thống: Việc cung cấp sự đảm bảo về hiệu năng
hệ thống là rất quan trọng, đặc biệt trong một môi trường phân tán và
động như lưới. Sự đảm bảo này đòi hỏi một hiểu biết sâu sắc về các
hành vi của hệ thống.
- Khả năng cộng tác giữa con người và máy tính: Nhiều tổ chức ảo có
tính chất lai tạp, nghĩa là một số vấn đề được đảm nhận bởi con người,
trong khi một số khác lại do máy tính phụ trách. Các thành phần này
phải làm việc ăn khớp với nhau để cùng đạt mục tiêu chung, do đó việc
xây dựng nên các mô hình hợp tác mới là cần thiết.
79
Hệ điều hành Linux
Java Framework Globus Toolkit 4.03
Java Cog Kit
Môđun Khai phá dữ liệu Môđun Lập lịch Môđun đệ trình công việc
BKGrid 2006 Portal
Môđun quản trị
người dùng
- Tích hợp ngữ nghĩa: Các hệ thống phân tán mở bao gồm nhiều chủ sở
hữu tài nguyên với những chính sách quản lý tài nguyên khác nhau.
Việc tương tác dựa trên ý nghĩa là rất khó thực hiện, do mỗi tổ chức có
một mô hình dữ liệu riêng khác nhau. Vấn đề đặt ra là cần sự thống
nhất trong định nghĩa ontology, sự điều hoà trong lược đồ hay ngữ
nghĩa.
3.4. Hướng triển khai công nghệ tác tử trong hệ thống BKGrid2006
3.4.1. Kiến trúc hệ thống BKGrid2006
Hệ thống BKGrid 2006 được xây dựng dựa trên kiến trúc phân tầng, các
thành phần đều hướng dịch vụ, phục vụ những yêu cầu cụ thể, riêng biệt của
người dùng. Hệ thống được xây dựng trên nền tảng hệ điều hành Linux và bộ
công cụ Globus Toolkit phiên bản 4.0.3 với các mô đun cần thiết như:
Hình 3.3. Kiến trúc BKGrid 2006
3.4.1.1. Môđun quản trị người dùng
Ngoài chức năng quản trị người dùng của một Portal thông thường,
môđun quản trị người dùng trong BKGrid 2006 có một chức năng khác quan
trọng hơn cả là kết hợp Portal với tài nguyên lưới trở thành một hệ thống duy
80
nhất. Để làm được điều này, môđun quản trị người dùng trong BKGrid 2006
bao gồm cả chức năng cấp giấy chứng nhận, giấy ủy nhiệm người dùng, ánh
xạ người dùng lưới với người dùng cục bộ. Người dùng đăng ký toài khoản
qua Portal và khi sử dụng chỉ cần cung cấp tên và mật khẩu là có thể sử dụng
hệ thống. Mục tiêu xây dựng mô đun quản trị người dùng để cho các ràng
buộc về an ninh bảo mật trở nên trong suốt với người dùng, và tạo điều kiện
cho việc sử dụng hệ thống từ xa. Hệ thống trở nên trực quan, đơn giản hơn
với người dùng; người dùng không có hiểu biết sâu về tính toán lưới cũng có
thể sử dụng hệ thống.
3.4.1.2. Môđun khai phá dữ liệu Weka
Weka là một hệ các chương trình khai phá tri thức được sử dụng rất rộng
rãi trên thế giới. Chúng được chọn làm ứng dụng thử nghiệm để triển khai
trên môi trường lưới BKGrid 2006. Đặc điểm của các ứng dụng dạng này là
yêu cầu rất nhiều nguồn tài nguyên tính toán cũng như lưu trữ nên rất thích
hợp để triển khai trên môi trường lưới. Các thuật toán cơ sở trong Weka được
bóc tách và viết lại dưới dạng dịch vụ lưới. Đây là các dịch vụ khai phá dữ
liệu sẽ được triệu gọi và sử dụng bởi các bộ lập lịch và môi giới tài nguyên.
3.4.1.3. Môđun đệ trình công việc
Môđun đệ trình công việc trong cho phép người dùng triệu gọi và sử
dụng từ xa các tiện ích của trung tâm tính toán hiệu năng cao trong đó dịch vụ
cơ bản nhất là dịch vụ chạy ứng dụng từ xa. Người dùng chỉ việc viết sẵn ứng
dụng theo chuẩn MPI sau đó đệ trình lên Portal của BKGrid 2006, dịch vụ
tính toán trên cluster sẽ chịu trách nhiệm điều khiển thực thi ứng dụng này và
trả lại kết quả đã xử lý cho người dùng.
81
3.4.1.4. Môđun lập lịch
Tài nguyên trong môi trường lưới rất nhiều và đa dạng. Khi có một công
việc cần thực hiện, một trong những điều quan trọng nhất là có thể chọn đúng
tài nguyên mình cần, để có thể thực hiện công việc với thời gian và chi phí
thấp nhất. Môđun lập lịch tiếp nhận yêu cầu người dùng, sử dụng các thông
tin từ môđun thông tin, lựa chọn tài nguyên phù hợp để thực hiện công việc.
Công việc thực hiện có thể là về yêu cầu khai phá dữ liệu, đệ trình các công
việc. Môđun lập lịch phải đảm nhận theo dõi công việc, phục hồi chống lỗi
trước khi thông báo kết quả cho người dùng.
3.4.2. Xây dựng các tác tử giúp đơn giản hóa việc thương lượng sử dụng
dịch vụ
Việc sử dụng công nghệ Portal cho phép tạo môi trường làm việc riêng
biệt cho từng người dùng, ở đây người dùng có thể tùy chọn một số thay đổi
môi trường làm việc của mình, đồng thời tách biệt các chức năng dịch vụ
riêng biệt từ phía máy chủ và tái sử dụng các thành phần chức năng của Web.
Để xây dựng các Portals trên lưới, hướng được quan tâm nhiều nhất là sử
dụng các portlet trong cộng đồng lưới. Tuy nhiên, hãy tưởng tượng rằng sẽ có
ngày càng nhiều các portlet sẽ được phát triển bởi cộng đồng này và điều đó
sẽ gây thêm khó khăn cho những người dùng khi tìm kiếm các portlet phù
hợp. Vì vậy, các portlet nên được chú thích với các ngữ nghĩa để cải thiện
hiệu quả trong việc tìm kiếm các portlet. Hướng phát triển hệ thống BKGrid
2006 cũng đã hướng tới mục tiêu này. Bằng cách dựa trên bộ công cụ GT4 để
xây dựng các portal lưới ngữ nghĩa với các portlet được lưu trữ vào 3 kho:
- Portlet Domain Service Repository (PDSR) được sử dụng để đăng ký
một portlet với các khả năng ngữ nghĩa. Một lối vào portlet trang web
trong PDSR mô tả cách tổ chức dữ liệu trong một trang Web. Một lối
vào portlet hệ thống lưới trong PDSR mô tả chức năng và các yêu cầu
82
hệ thống của portlet. Một lối vào grid application portlet trong PDSR
mô tả portlet ontology, ràng buộc portlet và yêu cầu dữ liệu theo ngữ
nghĩa. Một bộ cung cấp dịch vụ có thể cũng thêm vào chất lượng của
các dịch vụ cho mỗi portlet trong PDSR này. Với một aplication
portlet, chẳng hạn như một bộ giải quyết vấn đề trên miền, chất lượng
của dịch vụ mô tả sự mở rộng để cho một bài toán trên miền có thể giải
quyết được. Với một portlet hệ thống, chẳng hạn như một bộ giải quyết
bài toán có liên quan với miền, chất lượng của dịch vụ mô tả loại công
việc mà portlet này phù hợp nhất cho xử lý.
- Portlet Interface Repository (PInR) được sử dụng để lưu trữ thông tin
liên quan tới giao diện và một OGSA Grid Service Handle (GSH) của
dịch vụ lưới liên quan với nó. Một giao diện mô tả cách sử dụng các
tham số vào/ra của mỗi portlet. Ví dụ như, giao diện của một portlet
trang web mô tả rằng đầu vào có thể là một tệp dữ liệu đơn giản được
viết bằng HTML hoặc XML, và đầu ra có thể là một bức ảnh hoặc một
bảng. Mỗi giao diện portlet trong PinR có một lối vào duy nhất trong
PDSR.
- Portlet Implementation Repository(PImR) được sử dụng để lưu trữ
việc thực hiện đầy đủ của mỗi portlet thông qua một tham chiếu dịch vụ
lưới (OGSA Grid Service Reference - GSR) được kết hợp với một dịch
vụ lưới.
Khi sử dụng dịch vụ lưới qua một portal, một người tiêu thụ dịch vụ,
chẳng hạn như một người dùng đầu cuối cần thương lượng với một nhà cung
cấp dịch vụ về các điều kiện để có thể sử dụng các dịch vụ. Sự phức tạp bên
dưới của hạ tầng lưới và nhu cầu làm việc nhanh chóng đã làm cho các agent
phần mềm trở thành ứng cử viên phù hợp nhất để làm công việc thương lượng
này.
83
Khi xây dựng một Grid portal, mỗi người dùng truy xuất các portlet
thông qua User Agent (UA). Mỗi UA đóng vai người dùng như là một người
tiêu thụ dịch vụ và tương tác với một Grid System Agent (GSA) đóng vai trò
một nhà cung cấp dịch vụ. Một UA có thể giúp đỡ người dùng trong việc biểu
diễn một yêu cầu portlet, và đệ trình yêu cầu người dùng cho một GSA. Trong
lúc nhận một yêu cầu portlet của người dùng, GSA đầu tiên sẽ tìm sự phù hợp
ngữ nghĩa trong PDSR. Nếu có một giao diện portlet phù hợp thì một thể hiện
dịch vụ sẽ được tạo và được kết hợp với một portlet bằng cách chuyển một
GSH tới một tham chiếu dịch vụ lưới GSR phù hợp của nó.
Hình 3.4. Tác tử hỗ trợ thương lượng sử dụng dịch vụ lưới
Mô tả
bài toán UA GSA
PImR
PDSR
PInR
Biểu diễn bài
toán dưới
dạng XML
SGP
Tìm phù
hợp về ngữ
nghĩa
(2)
SGP
Sắp đặt
giao diện SGP
SGH
SGP
SGH
(5)
(4)
(1)
(3)
84
Chương 4. Xây dựng môđun bảo mật trong BKGrid 2006
4.1. Yêu cầu cần thiết xây dựng môđun quản trị người dùng
Như đã trình bày trong các chương trước, việc chứng thực và xác thực
thẩm quyền trên lưới chủ yếu dựa vào giấy chứng nhận và giấy ủy nhiệm
(xem minh hoạ trên hình 4.1). Để được sử dụng các tài nguyên của lưới, trước
tiên người quản trị hệ thống phải cài đặt một Nhà chứng nhận thẩm quyền.
Globus Toolkit cung cấp sẵn một Nhà chứng nhận thẩm quyền là SimpleCA.
Sau đó, để một người dùng trở thành thành viên của lưới và sử dụng được các
tài nguyên của lưới, người dùng phải thực hiện các bước sau:
Hình 4.1. Minh hoạ về giấy chứng nhận, giấy uỷ nhiệm
1. Xin giấy chứng nhận từ Nhà chứng nhận thẩm quyền. Quá trình này
bao gồm các bước con sau:
o Cài đặt một gói do Nhà chứng nhận thẩm quyền cung cấp để có khả
năng tạo file yêu cầu xin giấy chứng nhận ứng với Nhà chứng nhận
thẩm quyền đó.
o Tạo file yêu cầu xin giấy chứng nhận (cert_request).
o Gửi file yêu cầu xin giấy chứng nhận cho Nhà chứng nhận thẩm
quyền (chẳng hạn qua thư).
o Nhà chứng nhận thẩm quyền xem xét, sau đó ký lên file yêu cầu này
để tạo ra giấy chứng nhận và gửi lại cho người dùng.
85
2. Yêu cầu người quản trị tài nguyên mỗi nút lưới ánh xạ định danh của
người dùng trong giấy chứng nhận với tài khoản người dùng cục bộ
(gridmap-file).
3. Sau đó, mỗi khi muốn sử dụng một dịch vụ hay tài nguyên, người dùng
tạo giấy ủy nhiệm từ giấy chứng nhận, giấy ủy nhiệm này được dùng để
tương tác với tài nguyên và giúp chương trình có thể hoạt động thay
mặt người dùng.
Để thực hiện các công việc trên, với những gì mà Globus Toolkit cung
cấp, người dùng bắt buộc phải thực hiện các bước đó tại một nút lưới có cài
đặt đủ các tiện ích cần thiết. Các tiện ích do Globus Toolkit cung cấp chỉ có
thể sử dụng bằng cách thực hiện dưới dạng dòng lệnh, hoàn toàn không có
giao diện để lập trình. Người dùng không thể đăng ký và sử dụng lưới từ xa.
Môđun bảo mật trong hệ thống BKGrid2005 [1] cung cấp khả năng lấy
giấy ủy nhiệm từ một kho lưu trữ và cung cấp cho người dùng khi cần thiết.
Để sử dụng được chức năng này, hệ thống vẫn phải cài đặt một Nhà chứng
nhận thẩm quyền, người dùng vẫn phải xin giấy chứng nhận và yêu cầu Nhà
chứng nhận thẩm quyền ký, sau đó người dùng tạo giấy ủy nhiệm và lưu giữ
giấy ủy nhiệm vào một kho lưu trữ trực tuyến. Các công việc đó hoàn toàn
phải thực hiện thủ công trên một nút lưới. Sau khi qua các bước này người
dùng mới có thể sử dụng Portal để lấy giấy ủy nhiệm về mỗi khi cần thiết.
Để khắc phục những tồn tại trên, mục tiêu luận văn đặt ra là tích hợp tất
cả các công việc trên vào chức năng quản trị người dùng của một Portal bình
thường. Việc xin giấy chứng nhận, ký giấy chứng nhận, tạo giấy ủy nhiệm sẽ
do môđun quản trị người dùng đảm nhiệm. Tất cả các công việc đó sẽ trở nên
trong suốt với người dùng, người dùng chỉ cần nhớ tên và mật khẩu, tất cả các
86
thông tin khác đều do môđun quản trị người dùng quản lý. Để thực hiện được
mục tiêu đề ra, các công việc cần thực hiện là:
- Xây dựng một Nhà chứng nhận thẩm quyền riêng của hệ thống cung
cấp các chức năng liên quan đến giấy chứng nhận: xin giấy chứng
nhận, cấp giấy chứng nhận...
- Tích hợp Nhà chứng nhận thẩm quyền vào chức năng quản lý người
dùng của BKGrid 2006 Portal, khi tạo tài khoản người dùng sẽ tạo cả
giấy chứng nhận cho người dùng.
- Xây dựng thành phần quản lý giấy ủy nhiệm dùng để tạo giấy ủy nhiệm
từ giấy chứng nhận. Thành phần quản lý giấy ủy nhiệm này cũng được
tích hợp vào môđun quản trị người dùng, nó được sử dụng mỗi khi cần
tạo giấy ủy nhiệm và cung cấp giấy ủy nhiệm cho người dùng.
- Xây dựng thành phần quản lý ánh xạ người dùng để ánh xạ người dùng
lưới sang người dùng cục bộ tại mỗi nút lưới.
4.2. Kiến trúc môđun quản trị người dùng
Mô đun quản trị người dùng bao gồm các thành phần cơ bản (được thể
hiện trong hình 4.2) sau:
- Thành phần Cơ sở dữ liệu: Lưu thông tin về người dùng: tên đăng
nhập, tên đầy đủ, email, mật khẩu, tổ chức... và thông tin về giấy chứng
nhận của người dùng.
- Thành phần Nhà chứng nhận thẩm quyền: Có tất cả những chức
năng cơ bản của một Nhà chứng nhận thẩm quyền như cấp giấy chứng
nhận cho người dùng, cho máy... Tuy nhiên môđun quản trị người dùng
chỉ sử dụng chức năng cấp giấy chứng nhận người dùng do nó chỉ phục
vụ người dùng.
87
- Thành phần Quản lý giấy ủy nhiệm: Tạo giấy ủy nhiệm, cung cấp
giấy ủy nhiệm cho khi cần thiết, quản lý vòng đời giấy ủy nhiệm (quản
lý thời hạn còn hiệu lực, làm tươi giấy ủy nhiệm).
CSDL
Quản lý người dùng
Nhà chứng nhận
thẩm quyền
Xem
yêu cầu
Tạo tài
khoản
Đăng
nhập
Đăng
ký tài
khoản
Giao diện cho
người sử dụng
Giao diện cho
người quản trị
Thoát Thay đổi thông tin
Thay đổi
thông tin
Quản lý giấy ủy
nhiệm
Các chức năng quản
lý người dùng cơ bản
Portlet của các dịch
vụ trong hệ thống
Lấy giấy ủy
quyền
người dùng
Quản lý ánh xạ
người dùng
Hình 4.2. Kiến trúc môđun quản trị người dùng
- Thành phần Quản lý ánh xạ người dùng: Ánh xạ người dùng lưới
(đăng ký trên Portal) sang người dùng cục bộ tại mỗi nút lưới.
88
- Thành phần Các chức năng quản lý người dùng cơ bản: Thành
phần này được kế thừa từ môđun quản lý người dùng của Gridsphere
Portal, nó thực hiện các công việc như: tạo người dùng, quản lý thông
tin người dùng... Những thông tin mà nó quản lý không bao gồm các
thông tin liên quan đến môi trường lưới như giấy chứng nhận, giấy ủy
nhiệm...
- Thành phần Quản lý người dùng: Thành phần này là sự kết hợp của
các thành phần: Các chức năng quản trị người dùng cơ bản, Nhà chứng
nhận thẩm quyền, Quản lý ánh xạ người dùng, và thành phần Quản lý
giấy ủy nhiệm, nó quản lý toàn bộ các thông tin liên quan tới người
dùng, bao gồm cả giấy chứng nhận và giấy ủy nhiệm.
- Thành phần Giao diện cho người dùng: Giao diện cung cấp cho
người dùng bình thường, qua đó người dùng có thể đăng ký tài khoản,
đăng nhập vào, thoát ra khỏi hệ thống, chỉnh sửa thông tin về chính
người dùng.
- Thành phần Giao diện cho người quản trị: Giao diện cho phép người
quản trị có thể xem xét các yêu cầu xin đăng ký tài khoản, quyết định
có chấp nhận yêu cầu xin đăng ký tài khoản hay không, và chỉnh sửa
thông tin về người dùng của hệ thống.
- Thành phần Portlet của các dịch vụ trong hệ thống: Toàn bộ Portal
được xây dựng dựa trên công nghệ portlet. Mỗi dịch vụ mà hệ thống
cung cấp (dịch vụ thông tin, dịch vụ weka, môđun đệ trình công việc...)
đều có một portlet trên Portal, đây thực chất là phần client của dịch vụ
được viết theo chuẩn portlet. Người dùng sử dụng các portlet này để
triệu gọi các dịch vụ chạy bên dưới. Để tương tác với các tài nguyên
của hệ thống, các portlet này lấy giấy ủy nhiệm từ môđun quản trị
89
người dùng thông qua giao diện lập trình (API) mà môđun này cung
cấp.
4.3. Thiết kế chi tiết
Phần này sẽ trình bày thiết kế các thành phần của hệ thống và sự kết hợp
các thành phần này.
4.3.1. Nhà chứng nhận thẩm quyền
Globus Toolkit cung cấp sẵn một Nhà chứng nhận thẩm quyền là
SimpleCA nhưng thành phần này khá đơn giản vì vậy hệ thống xây dựng một
Nhà chứng nhận thẩm quyền mới bao gồm bốn thành phần chính:
- CertManager: Quản lý giấy chứng nhận của chính Nhà chứng nhận
thẩm quyền (do tự Nhà chứng nhận thẩm quyền cấp cho mình), giấy
chứng nhận đã cấp cho người dùng; quản lý các yêu cầu xin giấy chứng
nhận và việc ký giấy chứng nhận.
- CertGenerator: Tạo yêu cầu xin giấy chứng nhận, sinh các giấy chứng
nhận tự ký (dùng để làm giấy chứng nhận của Nhà chứng nhận thẩm
quyền gốc).
- CertSigner: Ký yêu cầu xin giấy chứng nhận để tạo giấy chứng nhận.
- GSIProperties: Quản lý các thông số liên quan tới hạ tầng bảo mật lưới
(GSI).
BKCA
CertGeneratorCertManager CertSigner GSIProperties
Hình 4.3. Kiến trúc Nhà chứng nhận thẩm quyền
90
Các lớp chính của Nhà chứng nhận thẩm quyền:
-createSubjectKeyId()
-createAuthorityKeyId()
-loadKeysAndSign()
-signCert()
+getSignedCert()
+save()
CertSignerImpl
+createSubjectKeyId()
+createAuthorityKeyId()
+loadKeysAndSign()
+signCert()
+save()
+getSignedCert()
«interface»
CertSigner
-makeCertDN()
+createCertRequest()
+generateSelfSignedCertAndKey()
+createX509Cert()
+createX509V3Certificate()
CertGeneratorImpl
+makeCertDN()
+createCertRequest()
+generateSelfSignedCertAndKey()
+createX509Cert()
+createX509V3Certificate()
«interface»
CertGenerator
+localCertsInstalled()
+localCACertsInstalled()
+checkCAPassword()
+loadLocalCertificates()
+installLocalCertificates()
+saveLocalCertificates()
+saveCertificates()
+saveX509Cert()
CertManagerImpl
+localCertsInstalled()
+localCACertsInstalled()
+checkCAPassword()
+loadLocalCertificates()
+installLocalCertificates()
+saveLocalCertificates()
+saveCertificates()
+saveX509Cert()
«interface»
CertManager
+load()
+getString()
+getProperties()
+installBCProvider()
+getResBundle()
GSIPropertiesImpl
+load()
+getString()
+getProperties()
+installBCProvider()
+getResBundle()
«interface»
GSIProperties
+usage()
+longUsage()
+main()
BKCAImpl
+usage()
+longUsage()
+main()
«interface»
BKCA
Hình 4.4. Sơ đồ lớp Nhà chứng nhận thẩm quyền
91
Trong đó các lớp CertGeneratorImpl, CertSignerImpl, CertManagerImpl,
GSIPropertiesImpl, BKCAImpl tương ứng với các thành phần CertGenerator,
CertSigner, CertManager, GSIProperties, BKCA trong hình 4.3.
4.3.2. Thành phần Quản lý giấy ủy nhiệm
Như đã giới thiệu ở trên, thành phần Quản lý giấy ủy nhiệm thực hiện
chức năng tạo giấy ủy nhiệm, quản lý vòng đời giấy ủy nhiệm, cấp giấy ủy
nhiệm cho các thành phần khác trong hệ thống.
Hình 4.5. Sơ đồ lớp thành phần Quản lý giấy ủy nhiệm
4.3.3. Thành phần Quản lý ánh xạ người dùng
Như đã phân tích trong phần 4.1, sau khi tạo giấy chứng nhận cho người
dùng phải ánh xạ người dùng này sang người dùng cục bộ tại mỗi nút lưới.
Thành phần Quản lý ánh xạ người dùng gồm hai thành phần nhỏ:
- Thành phần MapManager trên Portal: sau khi tạo người dùng,
MapManager sẽ dựa vào danh sách các nút lưới của hệ thống để gửi
yêu cầu cập nhật người dùng tới mỗi nút. Thành phần này được cài đặt
khá đơn giản.
- Thành phần MapService cài đặt tại mỗi nút lưới: khi tiếp nhận yêu cầu
từ MapManager sẽ thực hiện việc cập nhận người dùng.
92
MapService được viết theo chuẩn dịch vụ lưới. Sơ đồ lớp của thành phần
này:
Hình 4.6. Sơ đồ lớp MapService
4.3.4. Tích hợp với các chức năng quản lý người dùng cơ bản
Môđun quản trị người dùng trong BKGrid 2006 sử dụng lại toàn bộ chức
năng quản lý người dùng mà Gridsphere cung cấp, đồng thời tích hợp ba
thành phần Nhà chứng nhận thẩm quyền, Quản lý giấy chứng nhận, và Quản
lý ánh xạ người dùng. Việc tích hợp ba thành phần này vào môđun quản trị
người dùng trong Gridsphere thể hiện ở những điểm sau:
- Khi tạo người dùng sẽ sử dụng Nhà chứng nhận thẩm quyền để tạo giấy
chứng nhận người dùng và thực hiện việc ánh xạ người dùng. Giấy
chứng sẽ được lưu trên máy chủ Web. Đồng thời các thông tin liên
quan tới giấy chứng nhận người dùng được lưu thêm vào cơ sở dữ liệu
người dùng. Lưu đồ thực hiện khi tạo người dùng được thể hiện trong
hình 4.7.
- Khi người dùng sử dụng các dịch vụ trên Portal, thành phần Quản lý
giấy ủy nhiệm sẽ tạo ra giấy ủy nhiệm và cung cấp cho các dịch vụ này
hoạt động. Thành phần Quản lý giấy ủy nhiệm quản lý thời gian hiệu
93
lực của giấy ủy nhiệm và sẽ tạo lại khi giấy ủy nhiệm này hết hạn sử
dụng.
Giấy ủy nhiệm cũng được lưu trên máy chủ web nhưng tại một địa chỉ
khác. Các dịch vụ trên Portal chỉ được phép sử dụng giấy ủy nhiệm, không
bao giờ được phép truy cập vào giấy chứng nhận người dùng.
Hình 4.7. Lưu đồ tạo người dùng
4.3.5. Đảm bảo an toàn cho môđun quản trị người dùng
Môđun quản trị người dùng quản lý những thông tin quan trọng liên
quan tới người dùng, trong đó có những thông tin liên quan tới bảo mật lưới
như giấy chứng nhận và giấy ủy nhiệm. Do vậy việc đảm bảo an toàn cho
môđun là rất quan trọng.
94
Môđun này có nhiều mức bảo vệ như:
- Bảo vệ qua cơ chế bảo vệ chung của máy chủ web và Portal.
- Bảo vệ bằng mã hóa: giấy chứng nhận và giấy ủy nhiệm được mã hóa
bằng mật khẩu.
- Bảo vệ qua quyền truy cập file: file lưu giấy chứng nhận và giấy ủy
nhiệm chỉ có thể đọc và ghi bởi chủ sở hữu file (chính là tài khoản
người dùng kích hoạt máy chủ web- trên hệ điều hành Linux thường là
root); những người dùng còn lại kể cả trong cùng nhóm với chủ sở hữu
đều không có quyền truy cập.
- Các thành phần khác của hệ thống chỉ có thể sử dụng giấy ủy nhiệm,
không thể truy cập vào giấy chứng nhận. Giấy ủy nhiệm lại có thời hạn
sử dụng ngắn. Do đó nếu có ý định tấn công trên giấy ủy nhiệm này,
khi tấn công xong cũng không thể sử dụng giấy ủy nhiệm này nữa.
- Khi truyền giấy ủy nhiệm cho các thành phần khác sử dụng sẽ truyền
nội dung của giấy ủy nhiệm chứ không truyền đường dẫn của giấy ủy
nhiệm trong hệ thống. Điều này sẽ giữ bí mật được cách lưu trữ giấy ủy
nhiệm, giảm khả năng bị tấn công.
- Luôn luôn thực hiện việc kiểm tra xem giấy chứng nhận và giấy ủy
nhiệm có bị thay đổi không (về nội dung file và quyền truy cập file).
Nếu có bất kỳ sự thay đổi nào sẽ lập tức cảnh báo cho người quản trị.
4.4. Tích hợp vào hệ thống BKGrid 2006
Môđun quản trị người dùng thực hiện ở phía trên cùng của hệ thống, các
thành phần khác trong hệ thống muốn thực hiện phải thông qua môđun quản
trị người dùng. Trước tiên môđun quản trị người dùng quyết định có cho phép
người dùng sử dụng Portal hay không, sau đó môđun này cung cấp giấy ủy
nhiệm cho các thành phần muốn tương tác với tài nguyên lưới.
95
Một ví dụ về tương tác giữa môđun quản trị người dùng với môđun đệ
trình công việc được biểu diễn trong lưu đồ sau:
Hình 4.8. Tương tác giữa môđun đệ trình công việc
với môđun quản trị người dùng
Như hình vẽ, khi người dùng yêu cầu môđun đệ trình công việc thực
hiện, môđun này sẽ yêu cầu môđun quản trị người dùng cấp cho nó giấy ủy
nhiệm. Sau đó môđun đệ trình công việc sẽ tương tác với các tài nguyên bên
dưới để thực hiện công việc. Sau khi công việc được thực hiện xong, môđun
đệ trình công việc trả lại kết quả cho người dùng. Trong toàn bộ quá trình
này, người dùng không cần biết về giấy ủy nhiệm.
4.5. Hướng dẫn sử dụng
Trên Portal, việc quản trị người dùng hết sức đơn giản, nó không khác gì
việc quản trị người dùng của một Portal thông thường. Tất cả các công việc
liên quan tới Nhà chứng nhận thẩm quyền, giấy chứng nhận, giấy ủy nhiệm
đều được thực hiện tự động, người dùng và người quản trị đều không cần
quan tâm tới chúng.
Riêng đối với Nhà chứng nhận thẩm quyền BKCA, ngoài việc cung cấp
giao diện lập trình (API) cho các chương trình khác sử dụng (chẳng hạn như
trong môđun Nhà chứng nhận thẩm quyền), Nhà chứng nhận thẩm quyền
BKCA còn có thể sử dụng trực tiếp bằng dòng lệnh với đầy đủ các tính năng
96
của một Nhà chứng nhận thẩm quyền. Do vậy hệ thống chỉ cần cài đặt Nhà
chứng nhận thẩm quyền BKCA mà không cần bất kỳ Nhà chứng nhận thẩm
quyền nào khác. Sau đây là hướng dẫn sử dụng BKCA bằng dòng lệnh:
- Để tạo file yêu cầu xin giấy chứng nhân:
BKCA req
- Để tạo giấy chứng nhận cho máy (host certificate):
BKCA host
- Để ký giấy một yêu cầu và tạo giấy chứng nhận
BKCA ca
- Hiển thị thông tin về giấy chứng nhận
BKCA x509
Các tham số trong việc tạo yêu cầu xin giấy chứng nhận:
o out [đường dẫn tới file chứa yêu cầu sẽ tạo ra]
o keyout [đường dẫn tới file chứa khóa bí mật sẽ tạo ra]
o pwd [mật khẩu dùng để mã hóa]
o dn [định danh của giấy chứng nhận]
o bits [độ dài giấy chứng nhận]
Các tham số trong việc ký giấy chứng nhận:
o rq [đường dẫn tới file chứa yêu cầu xin giấy chứng nhận]
o out [đường dẫn của file chứa giấy chứng nhận sẽ tạo ra]
o cacert [đường dẫn tới file chứa giấy chứng nhận của Nhà chứng
nhận thẩm quyền]
o cakey [đường dẫn tới file chứa khóa bí mật của Nhà chứng nhận
thẩm quyền]
o capwd [mật khẩu của Nhà chứng nhận thẩm quyền]
97
Các tham số trong việc xin giấy chứng nhận cho máy:
o out [đường dẫn tới file chứa giấy chứng nhận máy sẽ tạo ra]
o keyout [đường dẫn tới file chứa khóa bí mật của giấy chứng nhận
máy]
o capwd [mật khẩu của Nhà chứng nhận thẩm quyền]
o dn [định danh của giấy chứng nhận máy]
Các tham số cho việc xem thông tin về giấy chứng nhận X509:
o in [đường dẫn tới file chứa giấy chứng nhận X509]
4.6. Triển khai thử nghiệm
Chúng tôi đã tiến hành triển khai thử nghiệm trên hạ tầng mạng LAN
của Trung tâm máy tính, khoa Công nghệ thông tin và Trung tâm Tính toán
hiệu năng cao, trường Đại học Bách Khoa Hà Nội.
4.6.1. Cấu hình triển khai
Ethernet 100MB
Máy chủ Web
Nút lưới 1
CSDL
` `
Nút lưới 2
Máy 26
192.168.50.26
Máy 30
192.168.50.30
Nút lưới 3
Máy 27
192.168.50.27
Nút lưới 4
Máy 28
192.168.50.28
Nút lưới 5
Máy 29
192.168.50.29
Client Client
192.168.50.x 192.168.201.x
Hình 4.9. Sơ đồ triển khai thử nghiệm
98
Hệ thống triển khai được minh họa trong hình 4.9. Hệ thống triển khai
bao gồm:
- Một máy chủ web sử dụng Web Server là Jakarta-tomcat-4.1.31.
- 5 nút lưới có cài phần mềm Globus Toolkit 4.03, trong đó có 1 nút lưới
chính là máy chủ web.
- Client: bất kỳ máy nào có thể kết nối tới máy chủ web qua trình duyệt
web.
Khi tiến hành triển khai thử nghiệm, các thành phần còn lại của hệ thống
BKGrid 2006 (môđun thông tin, môđun weka, môđun đệ trình công việc)
chưa hoàn thành. Hơn nữa toàn bộ hoạt động của môđun Quản trị người dùng
hoàn toàn ẩn đi so với người dùng, do vậy luận văn tiến hành xây dựng hai
dịch vụ nhỏ để kiểm tra sự hoạt động của hệ thống:
- Dịch vụ tính toán MathService: thực hiện các phép tính cộng, trừ, nhận
chia. Dịch vụ này được viết dưới dạng dịch vụ lưới, và bao gồm hai
thành phần:
o Server: thực thi trên trình chứa của Globus Toolkit, được cài đặt trên
cả 5 nút lưới.
o Client: được viết dưới dạng một portlet và được tích hợp vào Portal.
- Dịch vụ ProxyService: cho phép người dùng xem thông tin về giấy ủy
nhiệm của mình, xin cấp lại giấy ủy nhiệm. ProxyService được viết
dưới dạng portlet và là một thành phần của Portal.
Dịch vụ ProxyService được xây dựng với mục đích kiểm nghiệm khả
năng cấp giấy ủy nhiệm và tạo mới giấy ủy nhiệm, và như vậy cũng chứng tỏ
việc tạo giấy chứng nhận đã thực hiện tốt.
99
MathService được xây dựng để thấy được rằng khi trở thành thành viên
của Portal, người dùng có thể sử dụng các dịch vụ khác của Portal và các tài
nguyên của hệ thống lưới.
4.6.2. Kết quả triển khai
Tất cả các chức năng của môđun quản trị người dùng đều hoạt động tốt.
Khi tạo mới một người dùng, giấy chứng nhận đồng thời cũng được tạo ra, và
tất cả các nút lưới đều được cập nhật thông tin về người dùng để ánh xạ vào
grid-mapfile.
Dịch vụ ProxyService:
Khi kích chuột vào nút View Proxy thông tin về giấy ủy nhiệm sẽ hiện ra
ở ô chữ bên dưới.
Hình 4.10. Xem thông tin về giấy ủy nhiệm
Khi kích chuột vào nút Refresh Proxy, giấy uỷ quyền mới được tạo ra và
thông tin về giấy ủy nhiệm được hiện ra trong ô chữ:
100
Hình 4.11. Tạo mới giấy ủy nhiệm
Điểm khác giữa hình 4.10 và 4.11 là thời gian còn hiệu lực của giấy ủy
nhiệm. Trong hình 4.10, giấy ủy nhiệm đã được sử dụng một thời gian và thời
gian còn hiệu lực là 20129 giây. Trong hình 4.11 giấy ủy nhiệm được tạo mới
và thời gian còn hiệu lực là 25199 giây.
Khi tạo nhiều người dùng, và nhiều người dùng cùng đăng nhập vào
Portal, các chức năng trên đây vẫn hoạt động đúng, thông tin về giấy ủy
nhiệm cấp cho mỗi người dùng là khác nhau.
Như vậy toàn bộ các chức năng tạo giấy chứng nhận, giấy ủy nhiệm đã
thực hiện đúng.
Dịch vụ MathService:
Có thể chọn nút thực hiện dịch vụ từ hộp danh sách các nút (listbox). Khi
nhập một số vào ô Input Number, sau đó kích chuột vào nút Add, phía server
thực hiện và trả về kết quả:
101
Hình 4.12. Dịch vụ MathService
Thông tin hiện ra phía Server:
The caller is:
C=VN,L=1024,O=hpc,E=binhbm@yahoo.com,CN=binhbm,CN=proxy
Invoke method: ADD(15)
Current value: 171
Dịch vụ cũng thực hiện tốt khi chọn các nút lưới khác.
102
Chương 5. Kết luận
5.1. Kết quả đạt được
Luận văn đã tập trung nghiên cứu về các vấn đề liên quan đến bảo mật
trong môi trường lưới cũng như việc ứng dụng công nghệ hướng tác tử để
giảm thiểu các khó khăn cho người sử dụng. Ngoài ra luận văn cũng đã xem
xét việc cài đặt thêm vào mô đun quản trị người dùng trong hệ thống BKGrid
2006 và đã đạt được một số kết quả sau:
- Kết hợp người dùng lưới và người dùng Portal. Người dùng có quyền
sử dụng Portal sẽ có quyền sử dụng các thành phần khác của hệ thống,
bao gồm các tài nguyên của lưới.
- Làm trong suốt các yêu cầu bảo mật đối với người dùng. Hệ thống trở
nên trực quan dễ hiểu đối với người dùng. Người dùng không cần có
hiểu biết về lưới và bảo mật lưới vẫn có thể sử dụng hệ thống.
- Giúp cho người dùng có thể sử dụng hệ thống từ xa, kể cả lúc đăng ký
tài khoản và lúc sử dụng các thành phần của hệ thống.
- Giúp cho việc phát triển ứng dụng lưới dễ dàng hơn, do không phải
quan tâm tới việc phải đảm bảo các yêu cầu về bảo mật lưới khi triển
khai ứng dụng.
Môđun quản trị người dùng rất có ý nghĩa khi mở rộng hệ thống, bởi khi
đó số lượng người dùng và tài quyên là rất lớn, việc thao tác bằng tay sẽ trở
nên quá tải. Hiện tại môđun này chỉ được triển khai để phục vụ riêng hệ thống
lưới BKGrid. Khi cần kết nối với các tổ chức lưới khác chỉ cần yêu cầu các tổ
chức đó công nhận Nhà chứng nhận thẩm quyền BKCA của hệ thống. Công
việc này được thực hiện đơn giản bằng cách cung cấp cho các tổ chức cần kết
nối giấy chứng nhận của Nhà chứng nhận thẩm quyền BKCA (được tạo ra khi
BKCA được sử dụng lần đầu tiên), các tổ chức đó lưu giấy chứng nhận này
103
vào thư mục chứa giấy chứng nhận của các Nhà chứng nhận thẩm quyền được
tin tưởng của họ. Như vậy môđun quản trị người dùng đã giải quyết khá hoàn
chỉnh việc quản trị người dùng lưới, bao gồm cả bảo mật lưới.
5.2. Hướng phát triển
Việc quản trị người dùng lưới có liên quan mật thiết với việc quản trị tài
nguyên lưới, chẳng hạn như phải ánh xạ người dùng lưới sang người dùng cục
bộ tại mỗi nút lưới. Hiện tại hệ thống BKGrid 2006 chưa có môđun quản trị
tài nguyên, do vậy môđun quản trị người dùng lấy danh sách các nút lưới một
cách thủ công. Cách làm này có một số nhược điểm:
- Không cập nhật động danh sách các nút lưới: không phát hiện được các
nút lưới mới tham gia vào hệ thống, hoặc các nút mới dừng hoạt động...
- Phức tạp khi số nút lưới là lớn.
Hướng phát triển trong thời gian tới là xây dựng môđun quản trị tài
nguyên sử dụng công nghệ agent để quản lý toàn bộ tài nguyên của hệ thống
một cách động đồng thời hướng tới xây dựng BKGrid thành một lưới ngữ
nghĩa.
104
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Nguyễn Văn Trung, Các cơ chế bảo mật trong tính toán lưới, Đồ án tốt
nghiệp Kỹ sư Đại học Bách Khoa Hà nội (2005)
[2] Nguyễn Nhật Tân, Môi giới tài nguyên lưới dùng công nghệ tác tử, Đồ án
tốt nghiệp Kỹ sư Đại học Bách Khoa Hà nội (2006)
Tiếng Anh
[3] Ian Foster, Carl Kesselman (eds), The Grid: Blueprint for a New
Computing Infrastructure, 1st edition, Morgan Kaufmann Publishers, San
Francisco, USA (1 November 1998), ISBN: 1558604758.
[4] IBM Red Book, Introduction to Grid Computing (December 2005.)
[5] IBM Red Books, Introduction to Grid Computing with Globus (September
2003.)
[6] Mark Baker, Rajkumar Buyya, Domenico Laforenza, Grids and Grid
technologies for wide-area distributed computing.
[7] The Globus Security TeamGlobus Toolkit Version 4, Grid Security
Infrastructure: A Standards Perspective.
[8] Wooldridge, M, Agent-based software engineering. IEEEProc. Software
Engineering, 144. 26-37. 1997.
[9] Jennings, N.R, An agent-based approach for building complex software
systems, Communications of the ACM, 44 (4). 35-41. 2001.
[10] Ian Foster, Carl Kesselman, Gene Tsudak, Steven Tuecke, A security
architecture for computational grid.
105
[11] Von Velch, Frank Siebenlist, Ian Foster, John BresnahanCarl, Karl
Czajkowski, Jarek Gawor, Carl Kesselman, Sam Meder, Laura Perlman,
Steven Tuecke, Security for Grid Services
[12]
[13]
[14]
Các file đính kèm theo tài liệu này:
- 000000208334R.pdf