Bảo mật trong môi trường lưới với tiếp cận hướng tác tử

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ------------------------------------- LUẬN VĂN THẠC SĨ KHOA HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN BẢO MẬT TRONG MÔI TRƯỜNG LƯỚI VỚI TIẾP CẬN HƯỚNG TÁC TỬ LÊ HUY CƯỜNG HÀ NỘI 2006 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ------------------------------------- LUẬN VĂN THẠC SĨ KHOA HỌC BẢO MẬT TRONG MÔI TRƯỜNG LƯỚI VỚI TIẾP CẬN HƯỚNG TÁC TỬ NGÀNH: CÔNG NGHỆ THÔNG TIN MÃ SỐ: LÊ HUY CƯỜNG Người hướng dẫn

pdf107 trang | Chia sẻ: huyen82 | Lượt xem: 1367 | Lượt tải: 1download
Tóm tắt tài liệu 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
khoa học: PGS.TS. NGUYỄN THANH THỦY HÀ NỘI 2006 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 3 LỜI NÓI ĐẦU Công nghệ tính toán lưới đã và đang được nghiên cứu, phát triển và ứng dụng rộng rãi trên thế giới. Tuy nhiên, hiện tại ở Việt Nam công nghệ này vẫn còn khá mới mẻ. Để bắt kịp với xu thế chung của thế giới, Trung tâm Tính toán hiệu năng cao, Trường Đại học Bách Khoa Hà Nội đã triển khai đề tài Tính toán lưới nhằm mục đích tìm hiểu làm chủ công nghệ và ứng dụng vào thực tiễn. Lưới tính toán là một tập bao gồm nhiều tài nguyên phân tán và không đồng nhất, các tài nguyên này thuộc về nhiều tổ chức khác nhau. Do vậy, trong hệ thống lưới, vấn đề an ninh và bảo mật luôn được đặt lên hàng đầu. Để trở thành người dùng của lưới, người dùng phải đáp ứng các yêu cầu phức tạp về bảo mật như: có giấy chứng nhận, được người quản trị cấp phép truy cập, mỗi lần truy cập vào tài nguyên phải tạo giấy ủy nhiệm để tương tác với các tài nguyên. Điều đó làm khó khăn cho người sử dụng, nhất là người sử dụng không có hiểu biết về bảo mật lưới. Nhiệm vụ của 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ử " là nghiên cứu các cơ sở hạ tầng bảo mật lưới và ứng dụng của công nghệ tác tử trong tính toán lưới, áp dụng vào xây dựng môđun quản trị người dùng trong hệ thống lưới BKGrid 2006. Mục đích của môđun quản trị người dùng là làm cho các yêu cầu về bảo mật trở nên trong suốt đối với người dùng. Cấu trúc của luận văn được chia thành 5 chương: ¾ Chương 1: Tổng quan về tính toán lưới, bảo mật trong môi trường lưới ¾ Chương 2: An toàn bảo mật trong Globus Toolkit 4.03 ¾ Chương 3: Ứng dụng công nghệ tác tử trong tính toán lưới ¾ Chương 4: Kiến trúc hệ thống BKGrid 2006 và mô đun bảo mật ¾ Chương 5: Kết quả đạt được và hướng phát triển 4 LỜI CẢM ƠN Trong thời gian làm luận văn tốt nghiệp, tôi đã nhận được sự hỗ trợ rất quý báu từ các thầy cô giáo, các cán bộ và các thành viên khác của Trung tâm Tính toán hiệu năng cao và của Trung tâm máy tính Trường Đại học Bách Khoa Hà Nội. Em xin chân thành cảm ơn PGS. TS. Nguyễn Thanh Thủy, Giám đốc Trung tâm Tính toán hiệu năng cao, người đã tận tình chỉ bảo, cung cấp cơ sở vật chất và các điều kiện tốt nhất cho em hoàn thành đề tài. Em xin chân thành cảm ơn TS. Lê Đăng Hưng, thầy đã đóng góp những ý kiến quý báu trong suốt quá trình thực hiện đề tài. Em xin chân thành cảm ơn ThS. Đinh Hùng, thầy đã động viên và tạo điều kiện cho em trong suốt thời gian thực hiện đề tài. Cuối cùng tôi xin gửi lời cảm ơn chân thành tới các bạn sinh viên của cả 2 nhóm GCK46 và HPCK46. Các bạn đã giúp tôi rất nhiều trong việc tìm hiểu và triển khai hệ thống lưới tính toán trên Trung tâm máy tính. Hà Nội, ngày 20 tháng 10 năm 2006 Học viên thực hiện Lê Huy Cường 5 DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT STT Thuật ngữ Giải thích 1 ACL Agent Communication Language 2 AID Agent Identification 3 AMS Agent management System 4 AP Agent Platform 5 DF Directory Facilitator 6 GSI Grid Security Infrastructure 7 GT Globus Toolkit 8 HAP Home Agent Platform 9 KQML Knowledge Query and Manipulation Language 10 MAS MultiAgent System 11 MTS Message Transport Service 12 OGSA Open Grid Services Architecture 13 PKI Public Key Infrastructure 14 SSL/TLS Secure Socket Layer/Transport Layer Security 15 UDDI Universal Description Discovery and Integration 16 WSRF Web Services Resource Framework 6 DANH MỤC HÌNH VẼ Hình 1.1. Tính toán lưới với tài nguyên phân tán ............................................. 8 Hình 1.2. Công việc được chuyển sang các nút ít bận hơn............................. 12 Hình 1.3. Kiến trúc phân tầng của lưới ........................................................... 15 Hình 1.4. Mã hóa bản tin sử dụng khóa .......................................................... 16 Hình 1.5. Giải mã thông điệp sử dụng khóa giải ............................................ 17 Hình 1.6. Mã đối xứng .................................................................................... 17 Hình 1.7. Giải thuật mã hóa không đối xứng.................................................. 18 Hình 1.8. Chữ ký điện tử và mã hóa công khai .............................................. 19 Hình 1.9. Giấy chứng nhận ............................................................................. 21 Hình 1.10. Giấy chứng nhận theo chuẩn X509............................................... 22 Hình 1.11. Cấu trúc phân cấp Nhà chứng nhận thẩm quyền .......................... 24 Hình 1.12. Tổ chức ảo..................................................................................... 26 Hình 1.13. Đưa các miền chính sách phân tán vào trong một miền tin tưởng chung trong tổ chức ảo .................................................................................... 27 Hình 1.14. Bảo mật mức giao vận................................................................... 32 Hình 1.15. Bảo mật mức thông điệp ............................................................... 32 Hình 2.1. Quan hệ giữa OGSA, GT4, WSRF và các dịch vụ web ................. 39 Hình 2.2. Các dịch vụ web .............................................................................. 40 Hình 2.3. Một triệu gọi dịch vụ web điển hình............................................... 42 Hình 2.4. Kiến trúc dịch vụ web ..................................................................... 43 Hình 2.5. Client và server stub được sinh ra từ file WSDL............................ 44 Hình 2.6. Chi tiết một triệu gọi dịch vụ web điển hình .................................. 45 Hình 2.7. Kiến trúc phía server của một ứng dụng dịch vụ web .................... 47 Hình 2.8. Một triệu gọi dịch vụ web phi trạng thái......................................... 49 Hình 2.9. Một triệu gọi dịch vụ web có trạng thái .......................................... 49 Hình 2.10. Cách tiếp cận tài nguyên cho vấn đề trạng thái của dịch vụ web . 50 Hình 2.11. Một dịch vụ web với nhiều tài nguyên, mỗi tài nguyên biểu diễn một file ............................................................................................................ 51 Hình 2.12. Dịch vụ web – tài nguyên ............................................................. 52 Hình 2.13. Kiến trúc Globus Toolkit 4 ........................................................... 54 Hình 2.14. Ví dụ về việc sử dụng một dịch vụ bởi một dịch vụ khác ............ 56 Hình 2.15. Cơ chế thực hiện của GRAM........................................................ 58 Hình 3.1. Sự phụ thuộc các hành động giữa các tác tử................................... 72 Hình 3.2. Truyền thông giữa các tác tử........................................................... 73 Hình 3.3. Kiến trúc BKGrid 2006................................................................... 79 Hình 3.4. Tác tử hỗ trợ thương lượng sử dụng dịch vụ lưới........................... 83 Hình 4.1. Minh hoạ về giấy chứng nhận, giấy uỷ nhiệm................................ 84 7 Hình 4.2. Kiến trúc môđun quản trị người dùng............................................. 87 Hình 4.3. Kiến trúc Nhà chứng nhận thẩm quyền .......................................... 89 Hình 4.4. Sơ đồ lớp Nhà chứng nhận thẩm quyền.......................................... 90 Hình 4.5. Sơ đồ lớp thành phần Quản lý giấy ủy nhiệm................................. 91 Hình 4.6. Sơ đồ lớp MapService..................................................................... 92 Hình 4.7. Lưu đồ tạo người dùng.................................................................... 93 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................................................................................................................. 95 Hình 4.9. Sơ đồ triển khai thử nghiệm............................................................ 97 Hình 4.10. Xem thông tin về giấy ủy nhiệm................................................... 99 Hình 4.11. Tạo mới giấy ủy nhiệm ............................................................... 100 Hình 4.12. Dịch vụ MathService .................................................................. 101 8 Chương 1. Tổng quan tính toán lưới, bảo mật trên môi trường lưới 1.1. Tính toán lưới 1.1.1. Giới thiệu về tính toán lưới Ngày nay, với sự phát triển vượt bậc của khoa học kỹ thuật và công nghệ, đã xuất hiện những bài toán trong nhiều lĩnh vực đòi hỏi sức mạnh tính toán mà một máy tính riêng lẻ không thể làm được. Ngoài ra, nhìn chung mọi người đều muốn có được khả năng chia sẻ tài nguyên trên phạm vi toàn cầu, khả năng tận dụng các phần mềm cũng như tài nguyên vật lý phân tán cả về mặt địa lý. Tính toán lưới ra đời nhằm giải quyết các yêu cầu trên. Hình 1.1. Tính toán lưới với tài nguyên phân tán Tính toán lưới tuy không còn là một khái niệm quá mới mẻ (được đưa ra lần đầu tiên vào năm 1998 bởi I. Forster và C. Kesselman [3]), nhưng hiện tại vẫn phát triển rất mạnh mẽ và còn rất nhiều vấn đề cần giải quyết. Một trong 9 những vấn đề đó là việc đưa ra được một định nghĩa hoàn chỉnh và chuẩn về lưới. Từ trước đến nay, mỗi tổ chức, cá nhân tùy theo cách quan niệm và thực tế xây dựng hệ thống của mình mà đưa ra những định nghĩa khác nhau về lưới. Chẳng hạn như: - Định nghĩa 1: Một lưới tính toán là một cơ sở hạ tầng phần cứng và phần mềm cung cấp khả năng truy nhập nhất quán, tin cậy, qui mô và rẻ tới các tài nguyên tính toán mạnh. I. Foster, C. Kesselman (1999) - Định nghĩa 2: Tính toán lưới liên quan tới việc chia sẻ, điều phối tài nguyên và giải quyết vấn đề trong phạm vi các tổ chức ảo. I. Foster, C. Kesselman, S. Tuecke, “Anatomy of the Grid“ (2000) - Định nghĩa 3: Một lưới là một hệ thống có các đặc trưng: • Tài nguyên được điều phối một cách phi tập trung • Sử dụng các giao thức chuẩn, mở và đa năng • Cung cấp chất lượng dịch vụ không tầm thường I. Foster‘s Three-Point Checklist (HPCWIRE - 22.07.2002) Mỗi tác giả khi đưa ra định nghĩa đều đứng trên một số quan niệm nhất định. Chẳng hạn định nghĩa 1 bị ảnh hưởng một cách sâu sắc bởi các dự án siêu tính toán (meta-computing) trước đó. Định nghĩa 2 tập trung vào sự quan trọng của các giao thức như là phương tiện để tương tác giữa các thành phần, còn định nghĩa 3 “có thể sẽ thích hợp hơn cho các nghiên cứu về lưới có qui mô rất lớn trong tương lai. Định nghĩa này đã bỏ qua nhiều đóng góp từ các tổ chức công nghiệp, do đó có lẽ là không xác đáng” (W. Gentzsch, HPCWIRE 05.08.2002). 10 Vì vậy, để có được một cái nhìn toàn diện về lưới, luận văn không đưa ra một định nghĩa cụ thể nào. Thay vào đó, chúng ta xem xét khái niệm lưới trên cơ sở các đặc trưng sau: - Kích thước lớn: theo nghĩa số lượng các tài nguyên tiềm tàng và khoảng cách về mặt địa lý giữa chúng. - Phân tán: có độ trễ đáng kể trong truyền dữ liệu và điều này có thể ảnh hưởng lớn đến ứng dụng. - Động: các tài nguyên có thể thay đổi khi ứng dụng đang được thực hiện - Hỗn tạp: kiến trúc và tính chất của các nút lưới có thể là hoàn toàn khác nhau - Vượt qua phạm vi một tổ chức: có nhiều trạm và các chính sách truy nhập có thể khác nhau trên các trạm. Có thể hình dung đơn giản một lưới bao gồm một tập các tài nguyên đa dạng (còn gọi là các nút lưới - có thể là PC, cluster, hệ thống lưu trữ, …) thuộc về nhiều tổ chức nhằm giải quyết một bài toán nào đó 1.1.2. Lợi ích của tính toán lưới Các lợi ích mà tính toán lưới mang lại bao gồm: - Khai thác các tài nguyên nhàn rỗi: một trong những lợi ích cơ bản của tính toán lưới là khả năng chạy ứng dụng trên một tài nguyên khác. Thống kê cho thấy, đối với các máy tính để bàn, trong một ngày làm việc thì chỉ có khoảng 5% thời gian là bận, còn lại là rỗi [4]. Việc tận dụng khoảng thời gian rỗi này để chạy các ứng dụng khác là một việc làm rất hiệu quả và kinh tế. - Cung cấp khả năng xử lý song song: khả năng chạy ứng dụng song song là tính năng thú vị nhất mà tính toán lưới mang lại. Lúc này, một 11 công việc được chia thành nhiều công việc con, các công việc con này được thực hiện đồng thời trên các tài nguyên khác nhau của lưới. Do đó, thời gian chạy ứng dụng sẽ được rút ngắn nhiều lần. Tuy nhiên, vấn đề là không phải ứng dụng nào cũng có thể triển khai theo cách này được. Cần xem xét các yếu tố như khả năng song song hóa, sự trao đổi giữa các công việc con khi chạy để đánh giá xem một ứng dụng có thực sự hiệu quả khi được triển khai trên lưới hay không. - Giúp truy nhập các tài nguyên khác: ngoài tài nguyên tính toán và lưu trữ, lưới còn cung cấp các loại tài nguyên khác, chẳng hạn đường truyền mạng, các phần mềm đắt tiền. Ví dụ như nếu một người dùng muốn tăng thông lượng kết nối tới Internet để thực hiện khai phá dữ liệu, anh ta có thể tận dụng các kết nối Internet riêng biệt của các nút lưới khác để chạy bài toán trên. - Giúp cân bằng trong sử dụng tài nguyên: lưới cung cấp khả năng lập lịch, giúp phân bổ các công việc lên các nút một cách hợp lý, tránh tình trạng bị quá tải ở bất kì một nút nào. - Giúp hợp tác giữa các tổ chức: sự hợp tác được thể hiện thông qua khái niệm tổ chức ảo - sự kết hợp nhiều tổ chức thực cùng mục tiêu. Thông qua mô hình tổ chức ảo, các tổ chức thực có thể chia sẻ tài nguyên như dữ liệu, các thiết bị đặc biệt. 12 Hình 1.2. Công việc được chuyển sang các nút ít bận hơn - Mang lại độ tin cậy: khái niệm tin cậy trong tính toán lưới được thể hiện ở các khía cạnh sau: một là, trong lưới có những tài nguyên tính toán đắt tiền, cung cấp độ tin cậy cao cho những bài toán được thực hiện trên chúng. Hai là, lưới cung cấp khả năng lập lịch lại, phân bổ lại công việc nếu có lỗi xảy ra. Ba là, nếu cần, một công việc có thể được chạy đồng thời trên nhiều nút, cho nên việc xảy ra lỗi ở một nút sẽ không làm ảnh hưởng đến kết quả của công việc đó. 1.1.3. Các vấn đề cơ bản của một lưới Có 4 vấn đề cơ bản được quan tâm và xem xét khi đề cập đến tính toán lưới [5], đó là: 13 - An toàn và bảo mật (Security): Một nền tảng bảo mật vững chắc sẽ quyết định sự phát triển của môi trường tính toán lưới. Với tính chất quy mô lớn, quan hệ chia sẻ tài nguyên giữa nhiều tổ chức, an toàn và bảo mật luôn phải được coi là một trong những yếu tố hàng đầu trong lưới. Hai vấn đề quan trọng trong an toàn bảo mật phải xem xét trong tính toán lưới là: o Chứng thực người dùng (Authentication) o Xác thực thẩm quyền (Authorization). - Lập lịch và quản lý tài nguyên (Resource Management and Scheduling): Các tài nguyên lưới thường phân tán và không đồng nhất. Do đó, việc tích hợp, đồng bộ hóa và biểu diễn chúng dưới một dạng thống nhất là một yêu cầu tất yếu. Trong môi trường tính toán lưới, tại một thời điểm có thể có rất nhiều ứng dụng cùng truy cập chia sẻ một hoặc nhiều tài nguyên khác nhau, do vậy cần có một bộ lập lịch nhằm tối ưu hóa các công việc. Bộ lập lịch phải dựa vào các thông tin trên toàn bộ lưới để quyết định thứ tự đệ trình công việc. - Dịch vụ thông tin (Information Service): Đối với một môi trường động và không đồng nhất như tính toán lưới thì các thông tin về các thành phần trong lưới sẽ thay đổi liên tục. Chính vì vậy, dịch vụ thông tin cần cung cấp cơ chế tự động cập nhật và đăng ký các thông tin về toàn hệ thống như kiến trúc các tài nguyên, các dịch vụ có thể cung cấp trên lưới, trạng thái của toàn bộ môi trường lưới. - Quản lý dữ liệu (Data Management): Việc truy cập các nguồn dữ liệu trên lưới đòi hỏi một khả năng trao đổi, tương tác với các dữ liệu có thể lên đến giga bytes hoặc hơn thế nữa. Điều này đòi hỏi tính toán lưới 14 phải có các chiến lược lưu trữ cũng như tối ưu hóa các hệ thống lưu trữ. 1.1.4. Kiến trúc lưới Theo [6], một lưới bao gồm các thành phần sau (hình 1.3): - Tầng nền (Fabric): bao gồm các tài nguyên phân tán, các tài nguyên này có thể có kiến trúc và tính chất rất khác nhau. - Tầng trung gian lưới (Core Middleware): cung cấp các dịch vụ cơ bản của lưới như quản lý truy nhập từ xa, định vị tài nguyên, đăng ký và khám phá tài nguyên, bảo mật. - Tầng trung gian phía người dùng (User level middleware): bao gồm môi trường phát triển ứng dụng, các công cụ lập trình và các bộ môi giới tài nguyên nhằm lựa chọn các tài nguyên phù hợp và thực hiện công việc trên các tài nguyên đó. - Các ứng dụng lưới và portal: tầng trên cùng là các ứng dụng lưới được phát triển bởi các công cụ hỗ trợ. Grid Portal cung cấp giao diện Web cho các ứng dụng lưới, giúp người dùng có thể đệ trình công việc và tập hợp kết quả thông qua Web. 15 Hình 1.3. Kiến trúc phân tầng của lưới 1.2. Các khái niệm cơ bản về bảo mật 1.2.1. Một số thuật ngữ cơ bản Chủ thể: là một thành viên của các hoạt động bảo mật. Đối với môi trường lưới, chủ thể thường là người dùng, tài nguyên hay các tiến trình thay mặt cho các tài nguyên đó. Giấy ủy nhiệm: là thông tin dùng để cung cấp định danh cho chủ thể để xác định tên và vai trò của chủ thể đó. Chứng thực: là tiến trình để chủ thể chứng minh định danh của mình cho đối tượng được yêu cầu. Chứng thực hai bên (bên yêu cầu và bên được yêu 16 cầu) là quá trình hai bên chứng thực lẫn nhau, còn gọi là chứng thực đa phương. Đối tượng: là các tài nguyên được bảo vệ bởi một chính sách bảo mật địa phương cụ thể. Xác thực thẩm quyền: là tiến trình mà thông qua đó, ta xác định được một chủ thể có được phép truy nhập và sử dụng tài nguyên hay không. Miền tin tưởng: là cấu trúc quản lý mức logic, do một chính sách bảo mật ổn định, đơn lẻ mức địa phương nắm giữ, hay nói cách khác, nó là một tập các chủ thể và đối tượng được quản lý bởi đơn miền quản trị và chính sách bảo mật cục bộ. 1.2.2. Mã hóa thông tin sử dụng khóa Để truyền tin an toàn, thông tin gửi đi sẽ được người gửi mã hóa bằng khóa mã và người nhận để đọc được thông tin đã được mã hóa này anh(chị) ta sẽ phải sử dụng khóa giải để giải mã. Người gửi mã hóa thông tin bằng khóa mã và gửi cho người nhận: Hình 1.4. Mã hóa bản tin sử dụng khóa Người nhận sử dụng khóa giải để giải mã thông tin. 17 Hình 1.5. Giải mã thông điệp sử dụng khóa giải Sau đây, ta sẽ xem xét hai phương pháp mã hóa thông dụng là mã đối xứng và mã công khai. 1.2.3. Mã hóa đối xứng Mã hóa đối xứng sử dụng cùng một khóa cho quá trình mã hóa và giải mã. Trong đó, hàm giải mã là hàm ngược của hàm mã hóa. Hình 1.6. Mã đối xứng Mặc dù các phương pháp mã hóa đối xứng thường có tốc độ cao và dễ cài đặt, nhưng chúng lại có nhiều yếu điểm. Một nhược điểm chính đó là vì cả người gửi và người nhận đều sử dụng cùng một khóa mã do đó cần phải có sự trao đổi thông tin thống nhất khóa thông qua một kênh mật. Đây là một vấn đề lớn trong an toàn và bảo mật. 18 Các hệ thống bảo mật ngày nay thường sử dụng các thuật toán mã hóa bất đối xứng (các khóa mã và khóa giải khác nhau). Mã hóa công khai là một giải pháp được sử dụng phổ biến ngày nay. 1.2.4. Mã hóa công khai Hình 1.7. Giải thuật mã hóa không đối xứng Nền tảng của mã hóa công khai là khóa mã và khóa giải là khác nhau. Các khóa này được xây dựng bằng cách chỉ ra một hàm bẫy sập một chiều. Đồng thời, cũng chỉ ra một cửa bẫy (Trap-door). Trong hai khóa đó, một khóa được chọn làm khóa bí mật và khóa còn lại được chọn làm khóa công khai. Khóa bí mật chỉ có một người là chủ nhân của nó nắm giữ. Khóa công khai được công bố rộng rãi cho bất cứ ai muốn trao đổi thông tin mật với người sở hữu khóa. Khóa công khai được sử dụng để mã hóa thông tin và khóa bí mật được sử dụng để giải mã. Đối với hệ thống mã hóa công khai, độ phức tạp giải mã thường là hàm mũ trong khi độ phức tạp giải mã của hệ thống mã đối xứng thường chỉ là tuyến tính. Quá trình giao tiếp giữa hai đối tượng A và B có thể được mô tả như sau: B sinh ra một cặp khóa bí mật và công khai, khóa bí mật được cất 19 giữ một cách an toàn và được bảo vệ bằng một mật mã còn khóa công khai được cung cấp rộng rãi. A có thể sử dụng khóa công khai (được phát hành bởi B) để mã hóa thông tin và gửi cho B. Lúc này, chỉ duy nhất B, người sở hữu khóa bí mật, có thể giải mã thông tin được bằng khóa công khai. Ngoài ra, mã công khai còn đảm bảo được tính toàn vẹn của thông tin được mã hóa và còn được dùng trong các cơ chế xác thực. Tuy nhiên, một nhược điểm lớn duy nhất của hệ mã hóa công khai này là quá trình giải mã cũng như mã hóa mất nhiều thời gian. 1.2.5. Chữ ký điện tử Chữ ký được dùng để xác định tính hợp thức của những văn bản trong các quá trình giao dịch. Do đó, chữ ký là đặc trưng cho từng cá nhân. Chữ ký điện tử là một hàm phụ thuộc vào thông tin mà nó ký. Trong giao dịch, chữ ký điện tử được coi là một thông tin gắn liền với giao dịch. Hình 1.8. Chữ ký điện tử và mã hóa công khai 20 Chữ ký điện tử cho một thông điệp được sản sinh theo 2 bước: 1. Bản tin đầu tiên được băm sử dụng một hàm băm thích hợp để đảm bảo tính toàn vẹn của thông tin ban đầu gọi là thông điệp băm. Hàm băm có chức năng biến đổi các xâu vào có độ dài thay đổi thành những xâu có độ dài cố định và ngắn hơn các xâu vào rất nhiều. 2. Tiếp đó, bản tin đã được băm này được mã hóa sử dụng khóa bí mật của người gửi. Kết quả ta thu được một chữ ký điện tử. Chữ ký điện tử này được gửi kèm với bản tin tới người nhận. Người nhận sẽ phải thực hiện các công việc sau: 1. Sử dụng khóa công khai của người gửi giải mã chữ ký điện tử để thu được thông điệp băm của người gửi. 2. Sử dụng thuật toán băm đã được người gửi sử dụng để băm bản tin nhận được thành một thông điệp băm. 3. So sánh thông điệp băm sau khi băm với thông điệp băm của người gửi. Nếu chúng khác nhau chứng tỏ nội dung của bản tin nhận được đã bị thay đổi so với bản tin ban đầu của người gửi. Đồng thời, ta cũng có thể khẳng định đây là chữ ký điện tử của người gửi bởi vì chữ ký điện tử được mã hóa bằng khóa bí mật của người gửi và do đó, chỉ khóa công khai của người gửi mới có thể giải mã được chữ ký điện tử tương ứng. Việc kết hợp mã hóa công khai với chữ ký điện tử cho phép ta xác định được tính toàn vẹn của bản tin. Quá trình mô tả như trên chi tập trung vào xác định tính toàn vẹn của bản tin bởi vì bản tin khi gửi đi không được mã hóa. Điều này phù hợp với thực tế có những thông tin không cần che giấu nội dung mà chỉ cần bảo vệ tính toàn vẹn của nội dung (đảm bảo nội dung không bị thay đổi). Khi cần bảo mật nội dung bản tin, ta chỉ việc mã hóa nội dung của bản tin. 21 Tuy nhiên, với quá trình như trên không có gì đảm bảo rằng khóa công khai có đích thực là của người gửi hay không, có thể có một đối tượng khác giả danh, đánh tráo khoá công khai của người gửi. Chính vì vậy, cần có một cơ chế để đảm bảo xác nhận được khóa công khai mà ta đang sử dụng đích thực là của người mà ta cần giao tiếp. Giấy chứng nhận điện tử cho phép ta giải quyết vấn đề này. 1.2.6. Giấy chứng nhận điện tử và Nhà chứng nhận thẩm quyền Hình 1.9. Giấy chứng nhận Một giấy chứng nhận điện tử (gọi tắt là giấy chứng nhận) là một văn bản điện tử xác nhận một khoá công khai được sở hữu bởi một người cụ thể. Một giấy chứng nhận được cấp bởi một cơ quan có thẩm quyền gọi là Nhà chứng nhận thẩm quyền. Những người tham gia giao dịch cần có một kênh liên lạc bí mật với Nhà chứng nhận thẩm quyền. Một ví dụ về giao dịch điện tử giữa hai chủ thể A và B, thông qua một Nhà chứng nhận thẩm quyền S ._.như sau: Bước 1. Xin các giấy chứng nhận: A trước khi giao dịch gửi khoá công khai cho S và S sẽ cấp một giấy chứng nhận CA. Thông tin từ A có thể gồm M = [ZA, Tên, Chu kỳ sử dụng, ...] trong đó có ZA là khoá công khai của A. Giấy 22 chứng nhận CA được S mã hoá sử dụng khoá bí mật của mình EZs(M)). Tương tự B cũng sẽ được S cấp cho một giấy chứng nhận CB. Bước 2. Giao dịch điện tử: A tìm giấy chứng nhận CB của B, kiểm định chữ ký điện tử của S đã kí lên CB. Nếu giấy chứng nhận CB đúng do S phát hành, A tách khoá công khai của B để mã hoá thông tin của mình và gửi cho B. Với việc sử dụng giấy chứng nhận, quá trình chứng thực có sự liên quan của ba bên A, B, S. Quá trình kiểm chứng rất nghiêm ngặt, S phải chứng minh là người phát hành các giấy chứng nhận, các thông tin mà A gửi cho B cũng bảo đảm bí mật, bởi vì nó đã được mã hóa bằng khóa công khai của B, chỉ có B mới có khóa bí mật để giải mã thông tin từ A. Chuẩn giấy chứng nhận X509 Đây là khuyến nghị về định dạng của giấy chứng nhận theo chuẩn X509. Một giấy chứng nhận chuẩn X509 là một văn bản chứa các thông tin theo định dạng sau: Hình 1.10. Giấy chứng nhận theo chuẩn X509 23 Subject: đây là tên của đối tượng xin cấp. Nó được mã hoá theo định dạng tên định danh (Distinguished Name) của đối tượng. Subject’s public key: bao gồm các thông tin về khoá và thuật toán sử dụng để sinh ra khoá công khai đó. Issuer’s Subject: tên định danh của Nhà chứng nhận thẩm quyền. Digital signature: chữ ký điện tử sinh ra bởi khoá bí mật của Nhà chứng nhận thẩm quyền. Chữ ký này có thể được kiểm định bằng khoá công khai của Nhà chứng nhận thẩm quyền. Tên định danh (Distinguished Name - DN): là tên gồm các cặp giá trị cách nhau bằng dấu phẩy. Ví dụ: "O=University of Technology, OU=Faculty of Information Technology, CN=HPC". Một tên định danh có nhiều trường, trong đó, có một số trường thông dụng là: - O: tên tổ chức (Organization). - OU: tên của đơn vị trong tổ chức đó (Organization Unit). - CN: tên đối tượng, thông thường là tên của người dùng (Common Name). - C: đất nước (Country). Tên định danh cho phép ta xác định được định danh duy nhất của một đối tượng trong tổ chức. Cấu trúc phân cấp Nhà chứng nhận thẩm quyền Mỗi đối tượng tham gia giao tiếp có thể tin tưởng các Nhà chứng nhận thẩm quyền khác nhau. Trong trường hợp này, cấu trúc phân cấp Nhà chứng nhận thẩm quyền sẽ cho phép các bên tham gia tin tưởng các Nhà chứng nhận thẩm quyền khác nhau vẫn có thể thiết lập các mối quan hệ tin cậy trong giao tiếp. 24 Trong hình 1.9, giấy chứng nhận của Borja được ký bởi Nhà chứng nhận thẩm quyền FOO. Ngược lại, giấy chứng nhận của Nhà chứng nhận thẩm quyền FOO được ký bởi Nhà chứng nhận thẩm quyền BAR. Cuối cùng giấy chứng nhận của BAR được ký bởi chính nó. Nếu chúng ta nhận được giấy chứng nhận của Borja mà không hoàn toàn tin tưởng Nhà chứng nhận thẩm quyền FOO, như vậy có nghĩa là giấy chứng nhận của Borja sẽ không được tin tưởng ngay. Chúng ta có thể kiểm tra xem giấy chứng nhận của Nhà chứng nhận thẩm quyền FOO có được cấp bởi một Nhà chứng nhận thẩm quyền mà ta tin tưởng hay không. Nếu Nhà chứng nhận thẩm quyền BAR nằm trong danh sách tin tưởng của ta, khi đó giấy chứng nhận của Borja được tin tưởng. Hình 1.11. Cấu trúc phân cấp Nhà chứng nhận thẩm quyền 25 Tuy nhiên, chú ý rằng Nhà chứng nhận thẩm quyền cấp cao tự ký giấy chứng nhận của mình. Điều này không hiếm thấy. Giấy chứng nhận này được gọi là giấy chứng nhận tự ký. Một Nhà chứng nhận thẩm quyền với một giấy chứng nhận tự ký được gọi là Nhà chứng nhận thẩm quyền gốc, bởi không có Nhà chứng nhận thẩm quyền nào ở trên nó. Để tin tưởng giấy chứng nhận được ký bởi một Nhà chứng nhận thẩm quyền, Nhà chứng nhận thẩm quyền gốc tương ứng phải nằm trong danh sách Nhà chứng nhận thẩm quyền được tin tưởng. 1.3. Cơ chế bảo mật trong môi trường lưới Khái niệm tổ chức ảo là một khái niệm rất quan trọng trong tính toán lưới. Tổ chức ảo là một tổ chức được lập ra động để giải quyết một vấn đề nào đó. Thành phần của tổ chức ảo bao gồm rất nhiều tài nguyên thuộc về nhiều tổ chức thực khác nhau trong môi trường lưới và cùng hoạt động vì một mục tiêu chung. Tùy theo mức độ của vấn đề cần giải quyết mà các tổ chức ảo có thể rất khác nhau về quy mô, phạm vi hoạt động, thời gian sống. Hình 1.12 minh họa về tổ chức ảo. Có một người dùng cần giải một bài toán lớn về dự báo thời tiết, anh ta thành lập một tổ chức ảo bằng cách thuê một số nguồn tài nguyên khác nhau từ một vài tổ chức thực khác nhau. Tương tự như vậy, một người dùng cần giải một bài toán về dự báo tài chính, anh ta cũng thành lập một tổ chức ảo để giải quyết bài toán này. 26 Hình 1.12. Tổ chức ảo Các yêu cầu bảo mật trên môi trường lưới được định hướng để cung cấp các tổ chức ảo phân tán, rộng lớn để chia sẻ và sử dụng các nguồn tài nguyên đa dạng trong một mô hình thống nhất. Tuy nhiên, về khía cạnh bảo mật, các tài nguyên cũng như các thành phần khác tham gia lưới lại bị quản lý bởi các nội quy và các chính sách của tổ chức thực mà chúng là thành viên. Do vậy, để các tổ chức ảo truy nhập vào các tài nguyên trong các tổ chức thực, chúng phải được thiết lập và cộng tác qua mối quan hệ tin tưởng hai bên, tồn tại giữa người dùng với các tổ chức thực của họ và mối quan hệ giữa người dùng với các tổ chức ảo. Chúng ta không thể thiết lập quan hệ tin tưởng trực tiếp giữa các tổ chức thực với tổ chức ảo hay các thành viên mở rộng của nó. Cơ chế bảo mật lưới giải quyết các trở ngại này bằng cách cho phép có một tổ chức ảo thống nhất chung một phần chính sách của các tổ chức thực. Cơ chế được thể hiện như hình vẽ: 27 Hình 1.13. Đưa các miền chính sách phân tán vào trong một miền tin tưởng chung trong tổ chức ảo Các tài nguyên và các tổ chức đưa ra các điều khiển chính sách mở rộng cho một bên thứ ba, các tổ chức ảo, phối hợp các chính sách mở rộng trong một miền tin tưởng ổn định lâu dài, để cho phép chia sẻ tài nguyên và sử dụng. Giải pháp tải chồng các chính sách dẫn tới các chức năng chủ yếu sau mà bảo mật lưới phải thực hiện: - Hỗ trợ nhiều cơ chế bảo mật khác nhau: Các miền tài nguyên hay các tổ chức ảo thường đã có sự đầu tư đáng kể trong các cơ chế bảo mật và cơ sở hạ tầng bảo mật của địa phương họ. Do vậy khó khăn lớn nhất chính là phải liên kết các công nghệ bảo mật trên các địa phương hơn là thay thế toàn bộ nó, như thế sẽ rất tốn kém và không có tính kế thừa. - Khởi tạo động các dịch vụ: Người dùng có thể khởi tạo ra các dịch vụ mới mà không cần có sự can thiệp của nhà quản trị, ngoài ra các dịch 28 vụ này còn có thể tương tác với nhau. Như vậy là phải có cơ chế định danh các thực thể lưới, cấp quyền cho các dịch vụ mà không ảnh hưởng tới các cơ chế bảo mật địa phương. Một ví dụ trong cơ sở hạ tầng bảo mật lưới, khi một dịch vụ lưới cung cấp cho người dùng, các định danh về người dùng sử dụng dịch vụ, định danh của dịch vụ, định danh của hệ thống mà dịch vụ đăng ký trên đó đều được xác định rõ ràng. - Thiết lập động các miền chứng thực tin tưởng: Việc chứng thực không chỉ được thiết lập giữa người dùng và tài nguyên trong một tổ chức ảo mà còn mở rộng giữa các tổ chức ảo với nhau. Như vậy đòi hỏi phải có một mô hình bảo mật hướng người dùng, cho phép người dùng tạo ra các thực thể và các miền chính sách để liên kết tài nguyên trong các tổ chức ảo. 1.4. Các chính sách bảo mật trong môi trường lưới Sau đây là các chính sách bảo mật giải quyết các yêu cầu trình bày ở phần trên. 1. Môi trường lưới bảo mật đa miền: Do lưới là một tập hợp không đồng nhất của các người dùng và tài nguyên cục bộ, cho nên các chính sách bảo mật cục bộ dành cho các tài nguyên và người dùng cũng khác nhau, chính sách bảo mật lưới phải đảm bảo tích hợp được tất cả các tập hợp không đồng nhất này. Nói chung, môi trường lưới không hạn chế hay không ảnh hưởng tới các chính sách bảo mật địa phương, nhiệm vụ của chính sách bảo mật lưới là phải tập trung điều khiển các tương tác liên miền, ánh xạ các hoạt động liên miền vào trong các chính sách bảo mật địa phương. Ví dụ trong cơ sở hạ tầng lưới, các hoạt động liên miền được thực hiện bởi các chủ thể sở hữu một giấy chứng nhận lưới theo chuẩn X509. Trong từng miền cụ thể, các giấy chứng nhận này sẽ được 29 ánh xạ tương ứng với một người dùng cục bộ nào đó thông qua một file ánh xạ (grid-mapfile), là một bản ghi chứa tên người dùng cục bộ và định danh của giấy chứng nhận đó. 2. Hoạt động lưới hạn chế trong đơn miền quản trị: Mặc dù lưới là một tập đa miền quản trị, tuy nhiên các hoạt động đa miền lại phải tuân theo các chính sách bảo mật địa phương trên đơn miền quản trị. Nói cách khác, không có hoạt động bảo mật hay dịch vụ lưới nào được đưa vào các hoạt động địa phương thông qua các chính sách bảo mật của lưới. 3. Các chủ thể toàn cục và cục bộ đều tồn tại: Tại mỗi đơn miền quản trị đều tồn tại hai chủ thể trên, và chính sách để ánh xạ từ một phần tử toàn cục vào phần tử cục bộ. Ví dụ, mỗi người dùng đều có hai tên, một tên toàn cục để hoạt động trên tất cả các tài nguyên, và một tên cục bộ trên mỗi tài nguyên. Ánh xạ tên toàn cục vào tên cục bộ tạo khả năng đăng nhập một lần (single-sign-on) trên môi trường lưới. Trong cơ sở hạ tầng lưới GSI, tên toàn cục chính là tên định danh của giấy chứng nhận X509, và tên cục bộ là tên người dùng trong hệ điều hành. 4. Chứng thực đa phương: Hoạt động giữa các thực thể định vị trong các miền tin tưởng khác nhau đòi hỏi chứng thực đa phương, bảo đảm cho sự an toàn và bí mật của các hoạt động. Ví dụ như trong dịch vụ truyền file GridFTP, cả client và server đều phải chứng minh định danh của mình trong lưới, client đòi hỏi server có định danh như mình mong muốn không, còn server sẽ kiểm tra danh sách các định danh client, xem client có quyền đăng nhập vào server để sử dụng dịch vụ truyền file không. 5. Mỗi đối tượng toàn cục được ánh xạ vào đối tượng cục bộ được coi như chúng đã qua chứng thực địa phương trên đối tượng cục bộ đó. 30 6. Tất cả các quyết định điều khiển được đưa ra đều là cục bộ hay dựa trên cơ sở của đối tượng cục bộ, hay không có một quyết định điều khiển nào là toàn cục, áp dụng cho tất cả các tài nguyên cục bộ. Ví dụ, một người dùng lưới có thể sử dụng dịch vụ truyền file GridFTP tại một tài nguyên này, nhưng tại các tài nguyên khác trong lưới, anh ta sẽ không có quyền truy nhập. Anh ta không thể ra lệnh truyền file cho toàn bộ các tài nguyên trong lưới. 7. Có thể dùng chung tập giấy chứng nhận với các chương trình thay mặt cho cùng một tiến trình, chạy trên cùng một chủ thể trong cùng một miền tin tưởng. Như đã biết, tính toán lưới liên quan tới hàng trăm tiến trình chạy trên một tài nguyên đơn. Chính sách này cho phép mở rộng cho các ứng dụng song song có kích thước lớn, bằng cách tránh các yêu cầu phải tạo một giấy chứng nhận duy nhất cho mỗi tiến trình, mà cho phép các tiến trình song song này dùng chung một tập các giấy chứng nhận. 1.5. Giới thiệu về hạ tầng bảo mật lưới GSI An toàn bảo mật là một trong những nền tảng quan trọng nhất trong hệ thống lưới. Hạ tầng bảo mật lưới GSI được đưa ra để giải quyết những vấn đề bảo mật còn tồn tại trong tính toán lưới, mà nền tảng chính là những kiến thức cơ sở về mã mật và bảo mật mà nêu ra ở phần trên. Trong phần này đưa ra một số đặc điểm của GSI và các cài đặt ứng dụng của nó. 1.5.1. Cơ sở hạ tầng khóa công khai GSI được xây dựng dựa trên cơ sở hạ tầng khóa công khai PKI. PKI là tập các thực thể (người dùng và tài nguyên), được phân biệt bởi tên duy nhất gọi là tên định danh. Chứng thực trong GSI nghĩa là cho mỗi thực thể người dùng hoặc tài nguyên một tên định danh duy nhất. 31 Để mỗi một thực thể có một định danh duy nhất, GSI đưa ra khái niệm giấy ủy nhiệm lưới, là một cặp gồm giấy chứng nhận và một khóa mã hóa còn gọi là khóa bí mật. Một điều quan trọng trong môi trường PKI, mỗi thực thể phải trao quyền sở hữu khóa bí mật của mình để bảo đảm sự toàn vẹn của hệ thống. Để bảo đảm khóa bí mật không bị đánh cắp, có thể sử dụng một số phương pháp: - Lưu trữ khóa trong một file có quyền truy nhập hạn chế. - Lưu trữ khóa trong một file đã mã hóa mà khóa mã chỉ được biết bởi người sử hữu nó. - Lưu trữ khóa bí mật bằng các thiết bị phần cứng có mật khẩu. Giải pháp phần cứng cho ta tính bảo mật cao nhất, nhưng nó lại ít được sử dụng bởi thiếu sự phát triển của phần cứng. - Sử dụng giấy ủy nhiệm trong một khoảng thời gian sống nhất định thì nó sẽ không còn hợp lệ nữa. Điều này đòi hỏi thường xuyên phải có tập mới các giấy ủy nhiệm, bảo vệ khóa bí mật bằng cách hạn chế sự lộ diện của nó. 1.5.2. Bảo mật mức thông điệp và mức giao vận GSI cho phép chúng ta thực hiện bảo mật ở hai mức: mức giao vận và mức thông điệp. Để thấy điểm khác nhau giữa hai mức này, hãy giả sử rằng chúng ta muốn truyền thông của mình là bí mật. Nếu chúng ta sử dụng bảo mật mức giao vận, như trên hình 1.14 (bảo mật mức giao vận), toàn bộ truyền thông được mã hóa. Nếu sử dụng bảo mật mức thông điệp, như trên hình 1.15 (bảo mật mức thông điệp), khi đó chỉ có nội dung của thông điệp SOAP được mã hóa. 32 Hình 1.14. Bảo mật mức giao vận Hình 1.15. Bảo mật mức thông điệp Cả hai mức bảo mật giao vận và thông điệp trong GSI đều dựa trên mật mã khóa công khai, và do đó có thể đảm bảo tính toàn vẹn, riêng tư và khả năng chứng thực. Tuy nhiên, không phải tất cả truyền thông cần có cả ba đặc tính này. Nói chung, hội thoại an toàn phải đảm bảo tối thiểu khả năng chứng thực. Toàn vẹn thường rất cần thiết, nhưng có thể bỏ qua. Mã hóa có thể được kích hoạt để đảm bảo tính riêng tư. Khi lập trình dịch vụ bảo mật, chúng ta sẽ thấy các đặc tính này có thể sử dụng một cách dễ dàng như thêm một vài dòng mã ở phía client xác định rằng chúng ta muốn toàn vẹn nhưng không mã hóa trong quá trình truyền thông. 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 Bảo mật mức giao vận đã phát triển trong một thời gian dài. Thực tế, rất có thể chúng ta đã sử dụng mức bảo mật này khi duyệt web, các website an toàn thường trả lời trên bảo mật mức giao vận. Bảo mật mức thông điệp trong dịch vụ web tương đối mới, và mặc dù nó cung cấp nhiều đặc tính hơn so với bảo mật mức giao vận (chẳng hạn như tích hợp với chuẩn dịch vụ Web), hiệu năng của nó là một vấn đề phải bàn. Do đó mặc dù bảo mật mức thông điệp có rất nhiều ưu việt, nhiều khi vẫn phải xem 33 xét tới việc sử dụng bảo mật mức giao vận nếu hiệu năng là một vấn đề quan trọng. GSI cung cấp hai lược đồ bảo mật mức thông điệp, và một lược đồ mức giao vận. Sự khác nhau giữa ba lược đồ này được trình bày trong bảng 1.1. - Thông điệp an toàn: cung cấp bảo mật mức thông điệp và dựa trên chuẩn bảo mật dịch vụ web (Web Service- WS) đã đề xuất. - Hội thoại an toàn: cung cấp bảo mật mức thông điệp và dựa trên đặc tả hội thoại an toàn WS. Khi phương pháp này được chọn, đầu tiên một ngữ cảnh bảo mật phải được thiết lập giữa client và server. Sau khi một trao đổi khởi tạo của thông điệp đươc thiết lập trong ngữ cảnh, tất cả các thông điệp có thể sử dụng lại ngữ cảnh này, kết quả là hiệu năng cao hơn so với thông điệp an toàn (nếu phần khởi tạo thiết lập ngữ cảnh được chấp nhận). Hơn nữa, hội thoại an toàn chỉ là một lược đồ hỗ trợ ủy quyền. - Bảo mật mức giao vận: cung cấp bảo mật mức giao vận bằng cách sử dụng công nghệ TLS (thường được gọi là SSL). Nó cung cấp hiệu năng tốt nhất. Các lược đồ này không loại trừ lẫn nhau. Ví dụ, chúng ta có thể sử dụng hội thoại an toàn với các ứng dụng cần ủy nhiệm, và sau đó thêm giao vận an toàn do chúng ta muốn mã hóa toàn bộ quá trình truyền thông (không chỉ một phần của thông điệp SOAP). Việc này không dẫn tới bất kỳ dư thừa nào. Bảng 1.1. So sánh bảo mật mức giao vận và mức thông điệp Hội thoại an toàn Thông điệp an toàn Bảo mật tầng giao vận Công nghệ WS-SecureConversation WS-Security TLS Rêng tư (mã hóa) Có Có Có 34 Hội thoại an toàn Thông điệp an toàn Bảo mật tầng giao vận Toàn vẹn (ký) Có Có Có Thẩm quyền nặc danh Có Không Không Ủy quyền Có Không Không Hiệu năng Tốt nếu gửi nhiều thông điệp Tốt nếu gửi ít thông điệp Tốt nhất 1.5.4. Giấy ủy nhiệm Trong môi trường lưới, người sử dụng cần được chứng thực nhiều lần trong khoảng thời gian tương đối ngắn, ví dụ với nhiều tài nguyên lưới cùng cộng tác với nhau. Đòi hỏi người sử dụng phải gõ mật khẩu nhiều lần trong chứng thực đa phương là một điều không thuận tiện, đồng thời nó cũng bất lợi cho vấn đề bảo mật, bởi mỗi lần đó, khóa bí mật sẽ được giải mã, rất dễ bị kẻ địch đánh cắp. Một cách khác là sử dụng phần mềm, không chỉ nhắc người sử dụng gõ mật khẩu một lần, mà còn lưu giữ mật khẩu hay khóa bí mật chưa giải mã cho nhiều mục đích sử dụng khác. Tuy nó rất thuận tiện cho người dùng, nó lại bất lợi trên quan điểm về bảo mật, khi mà nó để lộ khóa bí mật trong một khoảng thời gian dài. GSI giải quyết vấn đề này với khái niệm giấy ủy nhiệm. Mỗi giấy ủy nhiệm sẽ hoạt động thay mặt người dùng trong một khoảng thời gian ủy quyền ngắn hạn. Nói cách khác, việc sử dụng giấy ủy nhiệm ngắn hạn thay thế cho các giấy chứng nhận dài hạn khi chứng thực người dùng. Giấy ủy nhiệm có giấy chứng nhận và khóa bí mật riêng của nó, được tạo ra bằng cách kí lên giấy chứng nhận dài hạn của người dùng. Giấy ủy nhiệm, theo một cách khác, là sự liên kết ngắn hạn giữa tên định danh của người dùng với một khóa bí mật khác. Giấy chứng nhận thường được lưu trữ sử dụng mã hóa trong hệ thống file địa phương, thường được bảo vệ bởi 35 quyền truy cập file trong hệ thống, có thể được sử dụng nhiều lần mà không có sự bất tiện nào. Còn giấy ủy nhiệm dễ bị tổn thương, nó có thời gian sống ngắn hạn hơn nhiều so với các giấy chứng nhận dài hạn của người dùng, thông thường là vài giờ. 1.5.5. Sự ủy quyền Điều này là rất quan trọng trong các ứng dụng phân tán, các ứng dụng của người dùng có thể thay mặt họ trong môi trường lưới. Một ví dụ, trong một tính toán phức tạp và kéo dài liên quan tới nhiều tiến trình khác nhau, người dùng không phải lúc nào cũng có mặt để chứng thực cho mỗi tiến trình. GSI giải quyết vấn đề này bằng cách cho phép người dùng ủy quyền giấy ủy nhiệm của mình cho giao dịch các máy từ xa. Sự ủy quyền cũng tương tự như việc tạo ra các giấy ủy nhiệm, một tập các giấy chứng nhận dài hạn sẽ được dùng để tạo ra tập các giấy ủy nhiệm mới, có thời gian sống ngắn hơn. Sự khác nhau là việc tạo ra các giấy ủy nhiệm xảy ra trong các phiên kết nối đòi hỏi chứng thực GSI, khi các tiến trình từ xa đòi hỏi giấy ủy nhiệm của người dùng cho chứng thực. Một điều đáng chú ý nữa là sự ủy quyền có thể là một chuỗi, một người có thể ủy quyền cho một host A, sau đó tiến trình sử dụng trên host A có thể ủy quyền cho host B và cứ tiếp tục như vậy. 1.5.6. Chứng thực GSI hỗ trợ cơ chế cho phép chuyển các tên định danh GSI của người dùng (ví dụ tên định danh từ giấy chứng nhận của người dùng) vào trong các định danh địa phương (tài khoản của một người dùng Unix cục bộ). Việc chứng thực các định danh GSI sẽ chuyển về chứng thực các định danh địa phương, cùng với việc đó, các chính sách đưa ra cũng nằm trong phạm vi cục bộ như: quyền truy nhập file, dung lượng đĩa, tốc độ CPU, ... 36 1.5.7. Ứng dụng của GSI GSI cho phép người dùng và các ứng dụng lưới truy nhập vào các tài nguyên một cách an toàn. Một số khả năng bảo mật được GSI tập trung hỗ trợ: cơ chế uỷ quyền và đăng nhập một lần, thẩm quyền và chứng thực đa phương, các giấy ủy nhiệm thay mặc người dùng trong thời gian ngắn hạn, ... GSI cũng là thành phần thiết yếu cho một số công cụ như grid-proxy-init để tạo ra giấy ủy nhiệm từ các giấy chứng nhận, các dịch vụ truyền file GridFTP và máy chủ thông tin LDAP, đệ trình các ứng dụng từ xa Globus Toolkit Gram hay Secure Shell (SSH) để kết nối tới các máy từ xa. Ngoài ra, tập các thư viện bảo mật GSI trong Java Cog Kit tạo điều kiện thuận lợi cho phát triển các ứng dụng lưới có hỗ trợ bảo mật. 37 Chương 2. An toàn bảo mật trong Globus Toolkit 4 Chương 1 đã giới thiệu tổng quan về tính toán lưới, các yêu cầu về bảo mật trong môi trường lưới và cơ sở hạ tầng bảo mật lưới GSI. Globus Toolkit (GT) đã cài đặt cơ sở hạ tầng lưới GSI trong mô hình bảo mật của mình, tích hợp GSI với OGSA (Open Grid Service Architecture), cho phép tận dụng được các kỹ thuật và cơ chế bảo mật sẵn có của các dịch vụ Web. GT sử dụng các cơ chế bảo mật sau của OGSA và dịch vụ Web: - Sắp đặt các chức năng bảo mật tương tự như các dịch vụ khác của OGSA. Do đó, chúng có thể được phân bố và sử dụng bất cứ khi nào ứng dụng yêu cầu. - Thiết lập các môi trường trình chủ an toàn. - Cung cấp các chính sách bảo mật để các client (có thể là người dùng hoặc ứng dụng) có thể dễ dàng tham gia lưới. - Xác định các tiêu chuẩn trao đổi các mã bảo mật để có thể cung cấp khả năng liên tác. Tính đến thời điểm hiện tại, Globus Toolkit 4.03 là phiên bản ổn định mới nhất của bộ công cụ Globus Toolkit. So với các thế hệ trước, phiên bản này có nhiều cải tiến quan trọng về mặt kiến trúc và công nghệ. 2.1. Giới thiệu về GT4 2.1.1. GT4, OGSA và WSRF 2.1.1.1. Globus Toolkit 4 Globus Toolkit là một bộ công cụ được phát triển bởi Globus Alliance [12], nó được sử dụng để phát triển các ứng dụng lưới. Bộ công cụ bao gồm một số các dịch vụ ở mức cao để giúp việc phát triển các ứng dụng lưới, 38 chẳng hạn bảo mật, khai phá tài nguyên, … Phiên bản mới nhất GT4 hiện tại triển khai các thành phần cốt lõi dựa trên OGSA. 2.1.1.2. Kiến trúc dịch vụ lưới mở (Open Grid Services Architecture- OGSA) Một ứng dụng lưới thường gồm nhiều thành phần, dịch vụ khác nhau, như dịch vụ quản lý tổ chức ảo, dịch vụ quản lý và khám phá tài nguyên, dịch vụ quản lý công việc… Ngoài ra, các dịch vụ lưới lại thường xuyên tương tác với nhau. Càng nhiều dịch vụ, số tương tác giữa chúng càng tăng và sẽ rất dễ dẫn đến tình trạng hỗn loạn. Nếu mỗi dịch vụ có các cách thức khác nhau để tương tác với các dịch vụ khác thì vấn đề giao tiếp giữa các dịch vụ lưới trong một hệ thống sẽ rất phức tạp. Do đó, điều cần thiết là phải có chuẩn chung định nghĩa giao diện chung cho mỗi loại dịch vụ. OGSA được phát triển bởi Global Grid Forum[13] nhằm đạt mục tiêu trên. Nó tiêu chuẩn hóa tất cả các dịch vụ thường có trong một ứng dụng lưới bằng các qui định các giao diện chuẩn cho các dịch vụ này. OGSA cần “dịch vụ có trạng thái (stateful service)”: Khi đưa ra một kiến trúc phân tán mới, ta cần lựa chọn một số phần mềm trung gian phân tán làm nền tảng trên kiến trúc. Trên lý thuyết, có thể lựa chọn bất cứ phần mềm trung gian phân tán nào, chẳng hạn RMI, CORBA hay RPC. Tuy nhiên, công nghệ dịch vụ web đã được lựa chọn do những ưu điểm của nó. 2.1.1.3. Nền tảng dữ liệu dịch vụ web (Web Services Resource Framework - WSRF) Mặc dù kiến trúc dịch vụ web là sự lựa chọn tốt nhất, nó vẫn có một điểm quan trọng không tương thích với các yêu cầu của OGSA – đó là tính "phi trạng thái", nghĩa là nó không lưu lại kết quả của các lần triệu gọi trước. 39 WSRF được phát triển bởi OASIS [14]. Nó định nghĩa cách mà ta có thể làm cho dịch vụ web trở nên “có trạng thái", ngoài ra còn bổ sung rất nhiều tính năng hữu ích [7]. Như thể hiện trên hình 2.1, WSRF được phát triển dựa trên kiến trúc dịch vụ web nhằm tạo ra một tiếng nói chung lẫn nhau giữa cộng đồng dịch vụ lưới và cộng đồng dịch vụ web. Quan hệ giữa OGSA và WSRF rất đơn giản: WSRF cung cấp các dịch vụ có trạng thái mà OGSA cần. Trong hình 2.1, WSRF xác định các dịch vụ có trạng thái. Nói cách khác, OGSA là "đặc tả của ngôi nhà", còn WSRF xác định "bản thiết kế của ngôi nhà đó". Hình vẽ sau thể hiện quan hệ giữa OGSA, GT4, WSRF và dịch vụ web. Hình 2.1. Quan hệ giữa OGSA, GT4, WSRF và các dịch vụ web 40 2.1.2. Giới thiệu chung về dịch vụ web Trước khi xem xét kỹ về WSRF chúng ta phải nắm được những kiến thức cơ bản về dịch vụ web. Dịch vụ web hiểu một cách đơn giản là một công nghệ tính toán phân tán (tương tự CORBA, RMI, EJB...), cho phép ta phát triển các ứng dụng theo kiến trúc client/server. Hình 2.2. Các dịch vụ web Trong hình vẽ 2.2, client (chương trình muốn truy nhập các thông tin về thời tiết) sẽ giao tiếp với một dịch vụ web (trên server), và gửi "service request" để yêu cầu các thông tin về thời tiết, server sẽ trả lời bằng "service response". Tất nhiên, đây mới chỉ là một ví dụ rất đơn giản về dịch vụ Web. Chúng ta sẽ xem xét một cách chi tiết hơn ở phần sau. Các ưu điểm của dịch vụ web so với các công nghệ tính toán phân tán truyền thống (RMI, CORBA, EJBs,…) bao gồm: - Dịch vụ web là độc lập về nền hệ điều hành và ngôn ngữ, bởi vì ta sử dụng ngôn ngữ XML chuẩn. Điều này có nghĩa là chương trình khách có thể được lập trình bằng C++ và chạy trên nền hệ điều hành Windows, trong khi dịch vụ web được lập trình bằng Java và chạy trên nền hệ điều hành Linux. - Hầu hết các dịch vụ web sử dụng HTTP cho truyền thông điệp, điều này là một thuận lợi lớn khi ta phát triển các ứng dụng trên Internet, bởi vì các tường lửa và proxy trên Internet không làm đảo lộn các truyền 41 thông của HTTP (không giống như CORBA gặp phiền toái với vấn đề tường lửa). Tuy nhiên, dịch vụ web có một số nhược điểm, đó là: - Trước hết, việc truyền toàn bộ dữ liệu bằng XML rõ ràng là không hiệu quả bằng việc sử dụng mã nhị phân. Để có được tính khả chuyển, nó đã phải đánh đổi bằng tính hiệu quả. - Thiếu tính linh động: Hiện tại dịch vụ web là không linh động, khi chúng chỉ cho phép một số dạng triệu gọi dịch vụ cơ bản. CORBA có thể cho phép lập trình viên nhiều cách cung cấp dịch vụ hơn như là dịch vụ vĩnh viễn (persistency), thông báo (notifications), quản lý vòng đời (lifecycle management). Ở phần sau, ta sẽ thấy cách mà dịch vụ lưới bổ sung các nhược điểm trên của dịch vụ web. Tuy nhiên, có một đặc điểm quan trọng để phân biệt dịch vụ web với các công nghệ tính toán phân tán khác. Trong khi các công nghệ như CORBA, EJBs hướng vào các hệ thống tính toán phân tán phụ thuộc chặt (highly-coupled distributed systems), khi mà client và server phải phụ thuộc vào nhau, dịch vụ web lại thích hợp cho các hệ thống phân tán không phụ thuộc (losely- coupled systems), khi mà client có thể không biết gì về dịch vụ web cho tới khi nó triệu gọi các dịch vụ Web. Các hệ thống phân tán phụ thuộc là lý tưởng cho các ứng dụng Intranet, nhưng lại có hiệu suất thấp trên môi trường Internet. Điều này giải thích tại sao dịch vụ web thích hợp hơn đối với các ứng dụng trên Internet nói chung và các ứng dụng trên môi trường lưới nói riêng. 2.1.2.1. Một triệu gọi dịch vụ web điển hình Để hiểu rõ hơn về hoạt động của dịch vụ web, hãy theo dõi các bước để triệu gọi một dịch vụ web. 42 Hình 2.3. Một triệu gọi dịch vụ web điển hình 1. Như đã đề cập trước đó, một client có thể không biết gì về dịch vụ web mà nó định triệu gọi. Bởi vậy, bước đầu tiên là tìm một dịch vụ web đáp ứng các đòi hỏi của nó. Ví dụ, nếu quan tâm tới một dịch vụ web cung cấp thông tin về thời tiết của các thành phố của Mỹ, ta có thể tìm nó qua bộ đăng ký và khai phá dịch vụ UDDI. 2. Bộ đăng ký UDDI sẽ trả lời cho chúng ta biết server nào cung cấp dịch vụ mà ta yêu cầu. 3. Khi đã biết về vị trí của dịch vụ web, nhưng vẫn chưa biết triệu gọi dịch vụ đó như thế nào. Chúng ta phải yêu cầu dịch vụ web mô tả thông tin về chính nó để biết chính xác phương thức nào cần triệu gọi. 4. Dịch vụ web sẽ trả lời bằng một ngôn ngữ gọi là WSDL. 5. Cuối cùng, chúng ta đã biết dịch vụ web nằm ở đâu và triệu gọi nó như thế nào. Quá trình triệu gọi được thực hiện bởi một ngôn ngữ gọi là 43 SOAP. Do đó, trước tiên ta phải gửi một yêu cầu SOAP (SOAP request) để lấy thông tin về thời tiết. 6. Dịch vụ Web sẽ trả lời với một đáp ứng SOAP (SOAP response) chứa thông tin về thời tiết mà ta yêu cầu. Nó có thể là một thông báo lỗi nếu yêu cầu SOAP của chúng ta không đúng. 2.1.2.2. Kiến trúc dịch vụ web: Hình 2.4. Kiến trúc dịch vụ web - Tầng xử lý dịch vụ (Process): tầng này có thể bao gồm nhiều dịch vụ web. Ví dụ. khả năng khám phá dịch vụ (thuộc về tầng này của kiến trúc) cho phép tìm một dịch vụ web cụ thể từ một tập các dịch vụ web. - Tầng mô tả dịch vụ (Description): một trong những đặc điểm thú vị của dịch vụ web là nó có khả năng tự mô tả về mình, về những thao tác mà nó có thể cung cấp, tham số vào ra,… Điều này được thực hiện bằng ngôn ngữ mô tả dịch vụ web (Web Service Description Language – WSDL). - Tầng triệu gọi dịch vụ (Invocation): tầng này chịu trách nhiệm gọi dịch vụ web giữa client và server sau khi đã nắm được vị trí và phương thức triệu gọi. SOAP (Simple Object Access Protocol) sẽ được sử dụng để thông báo cho phía client biết quy cách đưa một yêu cầu đến server và quy cách của kết quả trả về. Khai phá, kết hợp, … WSDL Web Services Description Language Giao thức triệu gọi phổ biến là SOAP nhưng về lý thuyết có thể sử dụng các giao thức khác Giao thức truyền thông phổ biến là HTTP, nhưng về lý thuyết có thể sử dụng các giao thức khác 44 - Tầng vận chuyển (Transport): tầng này trực tiếp gửi các gói tin giữa 2 phía server và client. Giao thức được sử dụng là HTTP (HyperText Transfer Protocol). 2.1.2.3. Địa chỉ của dịch vụ web Các dịch vụ web được xác định bằng các định danh tài nguyên thống nhất URIs (Uniform Resource Identifiers) tương tự như URL (Uniform Resource Locator). Chẳng hạn dịch vụ cung cấp thông tin dự báo thời tiết có địa chỉ URI như sau: Địa chỉ này giống như một trang web. Tuy nhiên, dịch vụ web được sử dụng bởi các phần mềm. Nếu người dùng gõ một địa chỉ dịch vụ web URI vào trong trình duyệt, ta sẽ nhận được m._.. 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:

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