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ử

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

pdf107 trang | Chia sẻ: maiphuongtl | Lượt xem: 1604 | Lượt tải: 0download
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:

  • pdf000000208334R.pdf
Tài liệu liên quan