1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

54 252 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 54
Dung lượng 2,06 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Để 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

Trang 1

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

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 khoa học: PGS.TS NGUYỄN THANH THỦY

HÀ NỘI 2006

Trang 2

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

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

Trang 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

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

Trang 4

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT

1 ACL Agent Communication Language

2 AID Agent Identification

3 AMS Agent management System

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

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

Trang 5

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

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

Trang 6

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)

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

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

Trang 7

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

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à:

Trang 8

- 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

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

Trang 9

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

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

Trang 10

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

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

Trang 11

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

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

Trang 12

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

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

Hình 1.10 Giấy chứng nhận theo chuẩn X509

Trang 13

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

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

Trang 14

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

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ẽ:

Trang 15

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

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

Trang 16

á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ộ đó

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

Trang 17

Để 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

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

Trang 18

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

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

Trang 19

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,

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

Trang 20

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,

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

Trang 21

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

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

Trang 22

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

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à

Trang 23

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

- 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:

http://webservices.mysite.com/weather/us/WeatherService

Đị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ột thông báo lỗi Thực tế, hầu hết các chương trình ta viết sẽ nhận về URI của dịch vụ web như một tham số dòng lệnh

Trang 24

Như vậy thứ tự các sự kiện bên phía client liên quan đến sử dụng dịch

vụ web là như sau:

- Xác định một dịch vụ web đáp ứng các yêu cầu thông qua UDDI

- Thiết lập mô tả WSDL của dịch vụ web

- Phát sinh stubs ngay sau đó, cho chúng vào ứng dụng của chúng ta

- Ứng dụng sẽ sử dụng stubs tại mỗi thời điểm nó triệu gọi dịch vụ web

Mô hình lập trình phía server cũng rất đơn giản, ta không cần phải viết

một chương trình server phức tạp, tự động thông dịch các yêu cầu SOAP và

đưa ra các đáp ứng SOAP Chúng ta đơn giản chỉ cài đặt tất cả các chức năng

cho dịch vụ web của chúng ta, sau đó sinh ra một server stub (hay còn được

gọi là skeleton) Server stub sẽ chịu trách nhiệm thông dịch các yêu cầu, đưa

chúng tới cho dịch vụ thực thi Nó cũng có thể tự động sinh ra mô tả WSDL,

hay các ngôn ngữ mô tả khác (IDL trên CORBA) Việc thực thi phía server và

server stubs được quản lý thông qua một thành phần gọi là trình chứa dịch vụ

web (Web Service container), bảo đảm các yêu cầu HTTP cho dịch vụ web

được trực tiếp tới server stub

Giả sử rằng chúng ta đã định vị được dịch vụ web, và phát sinh client

stubs từ mô tả WSDL Ngoài ra, các lập trình viên phía server cũng phải phát

sinh server stubs Các bước liên quan tới triệu gọi một dịch vụ web được mô

tả như hình 2.6

Hình 2.6 Chi tiết một triệu gọi dịch vụ web điển hình

1 Bất cứ khi nào ứng dụng client cần triệu gọi dịch vụ web, nó sẽ gọi client stub Client stub sẽ chuyển triệu gọi địa phương ('local invocation') vào trong một yêu cầu SOAP phù hợp Quá trình này được

gọi là marshaling hay serializing

2 Yêu cầu SOAP được gửi qua mạng thông qua giao thức HTTP Trình chứa dịch vụ nhận được các yêu cầu SOAP, và chuyển nó tới server stub Server stub sẽ biến đổi các yêu cầu SOAP thành dạng phù hợp để chương trình thực thi phía server có thể hiểu được (quá trình này được

gọi là unmarshaling hay deserializing)

3 Thực thi dịch vụ sẽ nhận các yêu cầu từ service stub, và tiến hành công việc mà nó được yêu cầu

4 Kết quả của các toán tử được yêu cầu được chuyển tới server stub, và stub sẽ chuyển nó thành các đáp ứng SOAP

5 Đáp ứng SOAP được gửi qua mạng thông qua giao thức HTTP Client stub nhận được các đáp ứng SOAP và chuyển nó về dạng phù hợp để các ứng dụng client có thể hiểu được

6 Cuối cùng, ứng dụng nhận được kết quả của triệu gọi dịch vụ web và

sử dụng nó

2.1.2.5 Dịch vụ web – phía server

Cuối cùng chúng ta cùng xem xét kiến trúc phía server của một ứng dụng dịch vụ web

Trang 25

Hình 2.7 Kiến trúc phía server của một ứng dụng dịch vụ web

- Dịch vụ web: Như đã đề cập ở trên, dịch vụ web chỉ là một phần mềm

nhỏ để thực hiện một chức năng nào đó, nó có thể được viết bằng một

ngôn ngữ lập trình nào đó, chẳng hạn Java Tuy nhiên, dịch vụ web lại

không thể hiểu được các thông điệp SOAP và càng không thể tạo ra

được các thông điệp SOAP trả lời, do đó ta cần SOAP engine

- SOAP engine đơn giản là một phần mềm để xử lý các yêu cầu SOAP và

sinh ra các thông điệp trả lời Thực tế, người ta thường dùng một SOAP

engine thay vì thực sự sinh ra các server stubs cho mỗi dịch vụ web

riêng lẻ (chú ý rằng, ta vẫn cần các client stubs cho client) Ví dụ cho

một SOAP engine là Apache Axis (thực tế SOAP engin này được sử

dụng trong Globus Toolkit) Tuy nhiên, chức năng của SOAP engine

thường chỉ giới hạn trong việc thao tác SOAP Để có một chức năng

thực sự như một server có thể nhận các yêu cầu từ các client khác nhau,

ta nhúng SOAP engine trong trong Server ứng dụng

- Server ứng dụng (application server) là phần mềm cung cấp "không

gian sống" cho các ứng dụng có thể truy nhập từ các client khác nhau SOAP engine chạy như một ứng dụng trong server ứng dụng này Ví dụ cho server ứng dụng là Jakarta Tomcat, một trình chứa JSP và Java Servlet thường dùng trong Apache Axis của Globus Toolkit Nhiều server ứng dụng đã bao gồm các chức năng HTTP, cho nên ta có thể cài đặt và chạy các dịch vụ web bằng cách cài đặt một SOAP engine cùng một server ứng dụng Tuy nhiên, khi một server ứng dụng thiếu các tính năng HTTP, chúng ta cần có thêm server HTTP

- Server HTTP: thường được gọi là web server Nó là một phần mềm biết

cách để xử lý các thông điệp HTTP Ví dụ: Apache HTTP Server là một trong những web server thông dụng nhất trên Internet

2.1.3 WSRF - nền tảng tài nguyên dịch vụ web

Như đã đề cập trong phần trước, dịch vụ web là công nghệ được lựa chọn bởi các ứng dụng trên Internet với sự ràng buộc "lỏng lẻo" giữa client và server Điều này làm cho nó trở thành sự lựa chọn đầu tiên để xây dựng các ứng dụng lưới Tuy nhiên dịch vụ web lại có một số nhược điểm nhất định Trên thực tế, dịch vụ web thuần túy (được xây dựng bới W3C) không phù hợp cho việc phát triển các ứng dụng lưới WSRF, khắc phục các điểm không phù hợp của dịch vụ web, làm cho nó thích hợp với việc phát triển các ứng dụng lưới hơn

2.1.3.1 WSRF - tất cả đều là trạng thái

Các dịch vụ web thuần túy thường là “phi trạng thái”, nghĩa là nó không thể nhớ các kết quả từ một lần triệu gọi từ các lần triệu gọi khác Điều này được minh họa bằng ví dụ trong hình sau Trong ví dụ này, kết quả của phép cộng không được lưu lại sau mỗi lần thực hiện

Trang 26

Hình 2.8 Một triệu gọi dịch vụ web phi trạng thái

Tuy nhiên, khả năng “nhớ trạng thái” là một tính chất rất quan trọng đối

với ứng dụng lưới Ví dụ sau thể hiện một dịch vụ web “có trạng thái”

Hình 2.9 Một triệu gọi dịch vụ web có trạng thái

Giải pháp được đề nghị thực tế lại rất đơn giản: chỉ cần giữ cho dịch vụ web và thông tin về trạng thái của nó riêng rẽ nhau

Thay vì đặt trạng thái vào trong dịch vụ web, ta sẽ lưu nó vào trong một thực thể riêng gọi là tài nguyên, cái mà sẽ lưu giữ tất cả các thông tin về trạng thái Mỗi tài nguyên sẽ có một khóa duy nhất, do đó bất cứ khi nào ta muốn một tương tác liên quan đến trạng thái với một dịch vụ web, chỉ cần chỉ thị cho dịch vụ web sử dụng tài nguyên cụ thể đó

Ví dụ với dịch vụ web thực hiện phép cộng ở trên Hình vẽ dưới đây thể hiện dịch vụ web này có thể có 3 tài nguyên khác nhau (A, B, C) để lựa chọn Nếu ta muốn một giá trị nguyên được “nhớ” từ một lần triệu gọi đến một lần triệu gọi khác, client chỉ cần chỉ ra nó muốn triệu gọi phương thức với tài nguyên nào

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 Trong hình 2.10, ta có thể thấy client muốn thực hiện phép toán cộng với tài nguyên C Khi dịch vụ web nhận được yêu cầu thực hiện phép tóan cộng,

nó sẽ đảm bảo việc nhận tài nguyên C để phép cộng được thực hiện thực sự trên tài nguyên đó Các tài nguyên tự chúng có thể lưu trong bộ nhớ trong, bộ nhớ ngoài hay ngay cả trong CSDL Ngoài ra, cũng cần chú ý cách mà một

Trang 27

dịch vụ web có thể truy nhập nhiều tài nguyên Tất nhiên là các tài nguyên có

thể có kích thước và cấu trúc khác nhau Một tài nguyên có thể lưu giữ nhiều

giá trị (không chỉ là một số nguyên đơn thuần như ví dụ trên) Chẳng hạn, các

tài nguyên có thể biểu diễn các file:

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 Client chỉ ra chính xác dịch vụ web bằng địa chỉ URI, còn để chỉ ra tài

nguyên – cách thường dùng là dùng một kỹ thuật mới gọi là ánh xạ dịch vụ

web (một kỹ thuật linh hoạt để chỉ ra địa chỉ của dịch vụ web hơn là địa chỉ

URI thông thường)

Chú ý rằng, một cặp dịch vụ web với tài nguyên được gọi là dịch vụ web

– tài nguyên Địa chỉ của một dịch vụ web – tài nguyên cụ thể được gọi là một

endpoint reference (đây là một thuật ngữ trong ánh xạ dịch vụ web)

Hình 2.12 Dịch vụ web – tài nguyên

2.1.3.2 Đặc tả WSRF

WSRF là một tập hợp của 4 đặc tả khác nhau liên quan đến quản lý dịch

vụ web – tài nguyên:

Các thuộc tính của dịch vụ web – tài nguyên ResourceProperties): Một tài nguyên gồm 0 hoặc nhiều thuộc tính tài

(WS-nguyên Ví dụ, trong hình vẽ trên, mỗi tài nguyên có 3 thuộc tính tài nguyên là: Filename, Size và Desriptors WS - ResourceProperties xác định cách các thuộc tính tài nguyên được định nghĩa và truy nhập Các thuộc tính nằy được định nghĩa bằng ngôn ngữ mô tả giao diện dịch vụ web WSDL

Vòng đời của dịch vụ web – tài nguyên (WS-ResourceLifetime): Các

tài nguyên có vòng đời không tầm thường Nói cách khác, chúng không phải

là những thực thể tĩnh, được khởi tạo khi server khởi động và bị hủy khi server tắt Các tài nguyên có thể được khởi tạo và hủy tại bất kì thời điểm nào WS-ResourceLifetime cung cấp các cơ chế cơ bản để quản lý vòng đời tài nguyên

Ngày đăng: 04/08/2016, 19:30

HÌNH ẢNH LIÊN QUAN

Hình 1.2. Công việc được chuyển sang các nút ít bận hơn - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 1.2. Công việc được chuyển sang các nút ít bận hơn (Trang 7)
Hình 1.3. Kiến trúc phân tầng của lưới - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 1.3. Kiến trúc phân tầng của lưới (Trang 9)
Hình 1.11. Cấu trúc phân cấp Nhà chứng nhận thẩm quyền - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 1.11. Cấu trúc phân cấp Nhà chứng nhận thẩm quyền (Trang 13)
Hình 1.13. Đưa các miền chính sách phân tán vào trong - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 1.13. Đưa các miền chính sách phân tán vào trong (Trang 15)
Hình 1.14. Bảo mật mức giao vận - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 1.14. Bảo mật mức giao vận (Trang 17)
Hình 2.1. Quan hệ giữa OGSA, GT4, WSRF và các dịch vụ web - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 2.1. Quan hệ giữa OGSA, GT4, WSRF và các dịch vụ web (Trang 21)
Hình 2.3. Một triệu gọi dịch vụ web điển hình - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 2.3. Một triệu gọi dịch vụ web điển hình (Trang 22)
Hình 2.12. Dịch vụ web – tài nguyên - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 2.12. Dịch vụ web – tài nguyên (Trang 27)
Hình 2.11. Một dịch vụ web với nhiều tài nguyên, - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 2.11. Một dịch vụ web với nhiều tài nguyên, (Trang 27)
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 - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
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 (Trang 29)
Hình 2.15. Cơ chế thực hiện của GRAM - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 2.15. Cơ chế thực hiện của GRAM (Trang 30)
Hình 3.3. Kiến trúc BKGrid 2006 - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 3.3. Kiến trúc BKGrid 2006 (Trang 41)
Hình 4.2. Kiến trúc môđun quản trị người dùng - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 4.2. Kiến trúc môđun quản trị người dùng (Trang 45)
Hình 4.3. Kiến trúc Nhà chứng nhận thẩm quyền - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 4.3. Kiến trúc Nhà chứng nhận thẩm quyền (Trang 46)
Hình 4.10. Xem thông tin về giấy ủy nhiệm - Bảo mật trong mội trường lưới với tiếp cận hướng tác từ
Hình 4.10. Xem thông tin về giấy ủy nhiệm (Trang 51)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w