Phương pháp nghiên cứu - Ứng dụng ngữ nghĩa vào các mô tả của chính sách bảo mật dịch vụ web để có thể đưa ra mức độ phù hợp giữa hai chính sách một cách phù hợp hơn.. Chồng giao thức n
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
TRẦN NGUYÊN BẢN
NGHIÊN CỨU VỀ SECURITY POLICY TRONG PHÁT TRIỂN CÁC DỊCH VỤ WEB
Chuyên ngành: Công nghệ thông tin
LUẬN VĂN THẠC SỸ KĨ THUẬT CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC :
TS CAO TUẤN DŨNG
HÀ NỘI – NĂM 2014
Trang 22
Tôi – Trần Nguyên Bản - cam kết luận văn này là công trình nghiên cứu của bản thân
tôi dưới sự hướng dẫn của TS Cao Tuấn Dũng
Các kết quả nêu trong luận văn là trung thực, không phải là sao chép toàn văn của bất
kỳ công trình nào khác
Trang 3Con xin dành l ời cảm ơn sâu nặng nhất tới bố mẹ, gia đình - những người đã luôn khích lệ, động viên, dìu dắt con suốt con đường dài
Hà Nội, tháng 1 năm 2014
Trần Nguyên Bản
Trang 41
MỤC LỤC
MỤC LỤC 1
Danh mục các kí hiệu, các chữ viết tắt 3
Danh mục hình vẽ, đồ thị 4
PHẦN MỞ ĐẦU 5
Ngữ cảnh đề tài 5
Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu 7
Các luận điểm cơ bản và đóng góp mới của luận văn 7
Phương pháp nghiên cứu 7
Cấu trúc luận văn 7
1 CHƯƠNG 1 TỔNG QUAN VỀ WEB SERVICE 9
1.1 Đặc điểm của web service 10
1.2 Kiến trúc của web service 11
1.3 Các thành phần chính tạo lên web service 14
1.4 An toàn cho web service 16
1.5 Tích hợp web service theo chuẩn 17
2 CHƯƠNG 2 CHÍNH SÁCH BẢO MẬT CHO DỊCH VỤ WEB 21
2.1 Chính sách dịch vụ web qua ví dụ 22
2.2 Tổ hợp các biểu hiện chính sách 25
2.3 Gắn các đỏi hỏi bảo mật vào WSDL 26
2.4 Đòi hỏi chính sách và dạng chuẩn 31
2.5 Chính sách bảo mật dịch vụ web 36
2.6 Các loại đòi hỏi bảo mật dịch vụ web 37
Các đòi hỏi bảo vệ 37
Các đòi hỏi thẻ 38
Các thuộc tính liên kết bảo mật 41
Các đòi hỏi liên kết bảo mật 43
Các thẻ hỗ trợ 45
Trang 52
DỤNG NGỮ NGHĨA 50
3.1 Bài toàn so khớp chính sách bảo mật dịch vụ web 52
3.2 Sự cần thiết của ngữ nghĩa trong so khớp đòi hỏi bảo mật 54
3.3 WS-SP mở rộng kết hợp với ngữ nghĩa 55
3.4 Thuật toán so khớp ngữ nghĩa của các chính sách bảo mật 67
So khớp các đòi hỏi bảo mật đơn giản 67
So khớp hai lựa chọn bảo mật 69
So khớp hai chính sách bảo mật 70
4 CHƯƠNG 4 – CHƯƠNG TRÌNH DEMO 73
4.1 Giao diện chương trình 73
4.2 Các thiết kế chính của chương trình 74
4.3 Kết quả thử nghiệm chương trình với dữ liệu thực tế 77
4.4 Một số hạn chế và điểm cần phát triển của chương trình 81
5 CHƯƠNG 5 – KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 83
5.1 Kết luận 83
5.2 Hướng phát triển 84
Trang 63
Danh m ục các kí hiệu, các chữ viết tắt
Protocol
Giao thức truy xuất đối tượng đơn giản, dùng để truyền thông điệp trong web service
cung cấp dịch vụ
Discovery, and Integration
Giao diện tổng quát để phân phối và tích hợp dịch
vụ web
Trang 74
Danh mục hình vẽ, đồ thị
Hình 1-1-1 Chồng giao thức dịch vụ web 12
Hình 1-1-2 Chi tiết dịch vụ web 13
Hình 2-1 Kèm theo đòi hỏi chính sách vào WSDL 29
Hình 2-2 Minh họa SecureConverstationToken 40
Hình 2-3 Minh họa: Thông điệp ba thành phần 47
Hình 2-4 Thứ tự bảo vệ 48
Hình 3-1 Các lớp chính của ontology 57
Hình 3-2 Quan hệ trong Security Binding 57
Hình 3-3 Security tokens 59
Hình 3-4 Protection scope 60
Hình 4-1 Giao diện chương trình 73
Hình 4-2 Tạo ra đòi hỏi tương ứng 74
Hình 4-3 Các lớp đòi hỏi 74
Hình 4-4 Các lớp hỗ trợ tương ứng 75
Hình 4-5 Ví dụ về hàm isIdenticalTo 76
Hình 4-6 Minh họa so khớp hai chính sách 77
Trang 8Tuy nhiên, một hệ thống phần mềm lớn như ERP thì cấu trúc của nó đang ngày càng trở nên phức tạp quá mức và nó kéo theo chi phí phát triển và bảo trì cao, không phù hợp với đại bộ phận các doanh nghiệp Hàng chục năm qua, các kiến trúc phần mềm đã cố gắng giải quyết vấn đề này Thế nhưng độ phức tạp vẫn tiếp tục tăng và dường như vấn đề này đã vượt quá khả năng xử lý của các kiến trúc phần mềm truyền thống Gần đây xuất hiện một kiến trúc phần mềm mới được kỳ vọng là chìa khóa giải quyết vấn đề phức tạp này, nó được gọi là SOA - kiến trúc hướng dịch vụ Hiểu một cách cơ bản, SOA là tập hợp các dịch vụ kết nối “mềm dẻo” với nhau, có giao tiếp được định nghĩa rõ ràng và độc lập với nền tảng hệ thống, và có thể tái sử dụng SOA là cấp độ cao hơn của phát triển ứng dụng, chú trọng đến quy trình nghiệp vụ và dùng giao tiếp chuẩn để giúp che đi sự phức tạp kỹ thuật bên dưới Các thành phần được nối kết qua cổng giao tiếp, có tính kế thừa các thành phần đang tồn tại, và sự tương tác giữa chúng không cần quan tâm đến việc chúng được phát triển trên nền tảng công nghệ nào Điều này khiến hệ thống có thể
mở rộng và tích hợp một cách dễ dàng
Và dịch vụ web là một phương án triển khai thực tế của kiến trúc SOA thường gặp nhất trong nhiều ngành công nghiệp Việc triển khai SOA dựa trên các dịch vụ web đã được phát triển giúp các công ty tiết kiệm và có thể dùng lại được
Trang 96
các dịch vụ sẵn có một cách mềm dẻo Thêm một thuận lợi nữa là các hãng lớn như Oracle, IBM, … đều hỗ trợ công cụ phát triển SOA đơn giản, dễ sử dụng và dễ dàng triển khai cả nền tảng SOA trong hệ thống hạ tầng công nghệ thông tin của một công ty hay tập đoàn Tuy nhiên, trong quá trình phát triển và kết hợp các dịch vụ web trên cơ sở SOA thì bảo mật là bài toán quan trọng nhất, sự kết hợp các dịch vụ web phải thỏa mãn các yêu cầu bảo mật Chia sẻ thông tin, sử dụng lại dịch vụ, … đều cần phải thõa mãn các yêu cầu về bảo mật trước khi tính đến các lợi ích khác có thể thu được Cách dịch vụ web được mô tả trọn vẹn thông qua các WSDL và kể cả các chính sách bảo mật cho từng thông điệp mà các dịch vụ web này cần thỏa mãn Trong các WSDL để miêu tả dịch vụ web chứa các chính sách dịch bảo mật cho dịch vụ web mà được mô tả theo quy chuẩn của chính sách dịch vụ web Để giúp cho việc kết hợp các dịch vụ web dựa trên các miêu tả này tốt hơn, luận văn này tập trung vào vấn đề nghiên cứu về chính sách bảo mật (security policy) trong phát triển các dịch vụ web Trong quá trình nghiên cứu về vấn đề trên, tác giả nhận thấy bài toán so sánh và đưa ra mức độ phù hợp giữa hai chính sách bảo mật dịch vụ web
là bài toán thường gặp trong quá trình phát triển và kết hợp các dịch vụ web theo
mô hình SOA
Trên thực tế, bài toán nghiên cứu và đánh giá mức độ phù hợp giữa các chính sách dịch vụ web đã được nghiên cứu khi cần kết hợp các dịch vụ web và quá trình nghiên cứu việc kết hợp thuần dựa trên cú pháp các chính sách dịch vụ này không trả lời được hoàn toàn câu hỏi hai chính sách dịch vụ có tương đương hay không, nhất là trong trường hợp chúng có ngữ nghĩa tương đương nhưng cú pháp khác nhau Do đó, kết hợp thêm ngữ nghĩa trong việc so khớp giữa các chính sách bảo mật dịch vụ web cũng đã được quan tâm và nghiên cứu trong một số năm gần đây Mặc dù thế, những nghiên cứu đó mới bước đầu đi vào việc xác định và biểu diễn lại những chính sách bảo mật này dưới dạng ngữ nghĩa, hoặc đưa ra các quan hệ so sánh giữa chúng một cách đơn giản mà chưa đưa ra được kết quả so sánh giữa hai chính sách bảo mật phức tạp hơn trong trường hợp tổng quan, và luận văn này sẽ hướng đến việc nghiên cứu bài toán đó
Trang 107
Mục đích nghiên cứu của luận văn, đối tượng, phạm vi nghiên cứu
- Luận văn sẽ tìm hiểu về dịch vụ web, chính sách dịch vụ web, chính sách bảo mật dịch vụ web
- Luận văn sẽ xây dựng các mối quan hệ ngữ nghĩa giữa các đối tượng cấu thành nên một chính sách bảo mật dịch vụ web và từ đó đề xuất thuật toán nhằm so khớp các chính sách bảo mật dịch vụ web này
- Tiến hành xây dựng một công cụ bằng ngôn ngữ lập trình Java nhằm minh họa cho thuật toán trên
Các luận điểm cơ bản và đóng góp mới của luận văn
- Luận văn đưa thêm các quan hệ ngữ nghĩa vào trong phép so sánh độ phù hợp của các chính sách bảo mật dịch vụ web
- Luận văn đã đề xuất thuật toán so sánh hai chính sách bảo mật dịch vụ web dạng tổng quan
- Phát triển công cụ minh họa cho thuật toán đã đề xuất
Phương pháp nghiên cứu
- Ứng dụng ngữ nghĩa vào các mô tả của chính sách bảo mật dịch vụ web để có thể đưa ra mức độ phù hợp giữa hai chính sách một cách phù hợp hơn
- Xây dựng công cụ minh họa và thử nghiệm với các chính sách bảo mật dịch vụ web thực tế
Cấu trúc luận văn
Luận văn sẽ bao gồm 05 chương với nội dung mỗi chương như sau Chương
1 tóm tắt tổng quan về dịch vụ web Chương 2 trình bày về chính sách bảo mật cho dịch vụ web Chương 3 trình bày về bài toán so khớp chính sách dịch vụ web và thuật toán được tác giả đề xuất Chương 4 trình bày về ứng dụng minh họa cho thuật toán Và cuối cùng, chương 5 trình bày kết luận và kiến nghị cho toàn bộ nội dung luận văn
Trang 118
1
Đặc điểm của web service
Kiến trúc web service
Các thành phần chính tạo lên web service
An toàn cho web service
Tích hợp web service theo chuẩn
Trang 129
Web service (dịch vụ web) là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet, được mô tả bằng công nghệ XML Web services có thể xác định bằng địa chỉ URL, thực hiện các chức năng và trả lại các thông tin theo yêu cầu của người dùng Các chức năng này thông thường được yêu cầu bởi các client bằng cách sử dụng giao thức SOAP thông qua HTTP Web service độc lập về ngôn ngữ và nền tảng bởi vì nó tách biệt đặc tả ra khỏi cài đặt Web service dựa trên cấu trúc phân tán trong đó không có bất kì dịch vụ xử lý trung tâm nào và tất cả dạng truyền thông đều sử dụng các giao thức chuẩn
Một trong những đặc tính quan trọng của mô hình tính toán dựa trên web service là ở đó cả các máy khách (sử dụng dịch vụ) và web service đều không cần biết cài đặt của nhau Web service hứa hẹn mang đến khả năng tạo ra các môi trường phân tán trong đó bất kì ứng dụng nào, hoặc bất kì thành phần ứng dụng nào cũng đều có thể kết hợp với nhau dễ dàng với tính độc lập nền tảng và độc lập ngôn ngữ Điểm khác biệt chính của web service với các công nghệ phân tán trước đây như Win32, J2EE,… là ở sự chuẩn hoá Web service sử dụng XML, một ngôn ngữ độc lập trong việc biểu diễn dữ liệu, làm ngôn ngữ trao đổi thông tin Bởi vậy khi được kết hợp với nhau, khả năng tích hợp phần mềm, tính liên tác và sử dụng lại của các hệ thống theo mô hình web service là dễ dàng và độc lập công nghệ.Web
service được coi là một công nghệ mang đến cuộc cách mạng trong cách thức hoạt động của các dịch vụ B2B (Business to Business) và B2C (Business to Customer) Giá trị cơ bản của web service dựa trên việc cung cấp các phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và hệ thống kế thừa Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy trên những nền tảng khác nhau có thể sử dụng web service để chuyển đổi dữ liệu thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy tính Tuy nhiên, công
Trang 1310
nghệ xây dựng web service không hề là các công nghệ mới mà nó có thể kết hợp với các công nghệ đã có như XML, SOAP, WSDL, UDDI… Với sự phát triển và lớn mạnh của Internet, web service thật sự là một công nghệ đáng được quan tâm để giảm chi phí và độ phức tạp trong tích hợp và phát triển hệ thống
1.1 Đặc điểm của web service
Theo định nghĩa của W3C (World Wide Web Consortium), web service là một
hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kết của nó được mô tả bằng XML Web service là tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin người dùng yêu cầu Một web service được tạo nên bằng cách lấy các chức năng và đóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn thấy và có thể truy cập đến những dịch vụ
mà nó thực hiện, đồng thời có thể yêu cầu thông tin từ web service khác Nó bao gồm các mô đun độc lập cho hoạt động của khách hàng và doanh nghiệp và bản thân nó được thực thi trên máy chủ
Đặc điểm của web service
- Web service cho phép máy khách và máy chủ tương tác được với nhau ngay
cả trong những môi trường khác nhau Ví dụ, đặt máy chủ web cho ứng dụng trên một máy chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành Windows, ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêm yêu cầu đặc biệt để tương thích giữa hai hệ điều hành này
- Phần lớn kĩ thuật của web service được xây dựng dựa trên mã nguồn mở và được phát triển từ các chuẩn đã được công nhận, mà cơ bản dựa trên XML
- Một web service bao gồm có nhiều mô-đun và có thể công bố lên mạng Internet; Web service được triển khai sẽ hoạt động theo mô hình client-server Nó có thể được triển khai bởi bất cứ công nghệ hay ngôn ngữ nào ở
Trang 14- Những lĩnh vực trong cuộc sống có thể áp dụng và tích hợp web service là khá rộng lớn như dịch vụ chọn lọc và phân loại tin tức (hệ thống thư viện có kết nối đến web portal để tìm kiếm các thông tin cần thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa điểm…), các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, tỷ giá hối đoái, đấu giá qua mạng…hay dịch vụ giao dịch trực tuyến (cho cả B2B và B2C) như đặt vé máy bay, thông tin thuê xe Và trên thực tế, các ứng dụng có tích hợp dịch vụ Web đã không còn là xa lạ, đặc biệt trong điều kiện thương mại điện tử đang bùng nổ và phát triển không ngừng cùng với sự lớn mạnh của Internet Bất kì một lĩnh vực nào trong cuộc sống cũng có thể tích hợp với dịch vụ Web, đây
là cách thức kinh doanh và làm việc có hiệu quả bởi thời đại ngày nay là thời đại của truyền thông và trao đổi thông tin qua mạng
1.2 Kiến trúc của web service
Dịch vụ Web gồm có 3 chuẩn chính: SOAP, WSDL và UDDI Hình 1-1-1 mô
tả chồng giao thức của dịch vụ Web, trong đó UDDI được sử dụng để đăng ký và khám phá dịch vụ Web đã được miêu tả cụ thể trong WSDL Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server, sau đó các ứng dụng SOAP yêu cầu một dịch vụ Web Các thông điệp SOAP được gửi đi chính xác bởi HTTP và TCP/IP
Trang 1512
Chồng giao thức dịch vụ Web là tập hợp các giao thức mạng máy tính được
sử dụng để định nghĩa, xác định vị trí, thi hành và tạo nên dịch vụ Web tương tác với những ứng dụng hay dịch vụ khác Chồng giao thức này có 4 thành phần chính:
- Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM
và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks Extensible Exchange Protocol- BEEP)
- Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để có thể hiểu được ở mức ứng dụng tương tác với người dùng Hiện tại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST
- Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một dịch
vụ Web cụ thể WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ
mô tả giao tiếp và thực thi dựa trên XML Dịch vụ Web sẽ sử dụng ngôn ngữ này
Trang 16Kiến trúc sâu hơn được mô tả trong Hình 1-1-2:
Trong đó, tầng giao thức tương tác dịch vụ (Service Communication Protocol) với công nghệ chuẩn là SOAP SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi một dịch
vụ từ xa thông qua một thông điệp XML Ngoài ra, để các dịch vụ có tính an toàn, toàn vẹn và bảo mật thông tin, trong kiến trúc dịch vụ Web, chúng ta có thêm các tầng Policy, Security, Transaction, Management
Trang 1714
1.3 Các thành phần chính tạo lên web service
XML – eXtensible Markup Language
Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử dụng để định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu B2B Về hình thức, XML hoàn toàn có cấu trúc thẻ giống như ngôn ngữ HTML nhưng HTML định nghĩa thành phần được hiển thị như thế nào thì XML lại định nghĩa những thành phần đó chứa cái gì Với XML, các thẻ có thể được lập trình viên tự tạo ra trên mỗi trang web và được chọn là định dạng thông điệp chuẩn bởi tính phổ biến và hiệu quả mã nguồn mở
Do dịch vụ Web là sự kết hợp của nhiều thành phần khác nhau nên nó sử dụng các tính năng và đặc trưng của các thành phần đó để giao tiếp XML là công
cụ chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một dịch vụ Web, tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML Khi đó, các thông tin mã hóa sẽ hoàn toàn phù hợp với các thông tin theo chuẩn của SOAP hoặc XML-RPC và có thể tương tác với nhau trong một thể thống nhất
WSDL – Web Service Description Language
WSDL định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của XML, bao gồm các thông tin:
Trang 18Universal Description, Discovery, and Integration (UDDI)
Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận thông tin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ UDDI định nghĩa một số thành phần cho biết các thông tin này, cho phép các client truy tìm và nhận những thông tin được yêu cầu khi sử dụng dịch vụ Web
SOAP – Simple Object Access Protocol
Chúng ta đã hiểu cơ bản dịch vụ Web như thế nào, bao gồm những thành phần cơ bản nào nhưng vẫn còn một vấn đề khá quan trọng: đó là làm thế nào để truy xuất dịch vụ khi đã tìm thấy? Câu trả lời là các dịch vụ Web có thể truy xuất bằng một giao thức là SOAP Nói cách khác chúng ta có thể truy xuất đến các dịch
vụ web được đăng kí ở UDDI, lấy các miêu tả dịch vụ web WSDL và sau đó goi các hàm được dịch vụ web đó cung cấp bằng các lệnh gọi hoàn toàn theo định dạng của SOAP
SOAP là một giao thức giao tiếp có cấu trúc như XML Nó được xem là cấu trúc xương sống của các ứng dụng phân tán được xây dựng từ nhiều ngôn ngữ và các hệ điều hành khác nhau SOAP là giao thức thay đổi các thông điệp dựa trên XML qua mạng máy tính, thông thường sử dụng giao thức HTTP
Một client sẽ gửi thông điệp yêu cầu tới server và ngay lập tức server sẽ gửi những thông điệp trả lời tới client Cả SMTP và HTTP đều là những giao thức ở lớp ứng dụng của SOAP nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn bởi ngày nay nó có thể làm việc rất tốt với cơ sở hạ tầng Internet
Trang 1916
1.4 An toàn cho web service
Dịch vụ Web liên kết và tương tác với các ứng dụng qua Internet, chính vì vậy bảo mật là một vấn đề được quan tâm khi các công ty tiến tới kết hợp ứng dụng với một dịch vụ Web Việc đảm bảo an toàn cho dịch vụ Web là một vấn đề quan trọng, đặc biệt đối với những dịch vụ liên quan đến trao đổi tiền tệ, thông tin từ thị trường chứng khoán hay dịch vụ bán hàng qua mạng (liên quan đến trả tiền bằng tài khoản
và có yêu cầu thông tin cá nhân của người dùng)
Trước khi có WS-Security (bảo mật cho dịch vụ Web) thì ý nghĩa thông thường của an toàn dịch vụ Web là bảo mật kênh truyền dữ liệu Hiện nay, nó được thực hiện cho những SOAP/HTTP dựa trên cơ chế truyền thông điệp bằng cách sử dụng giao thức HTTPS Không chỉ là an toàn ở mức truyền thông điệp, HTTPS còn cung cấp sự an toàn tới toàn bộ gói dữ liệu HTTP
Mặc dù HTTPS không bao gồm tất cả các khía cạnh trong chuẩn an toàn chung cho dịch vụ Web nhưng nó đã cung cấp một lớp bảo mật khá đầy đủ với định danh, chứng thực, tính toàn vẹn thông điệp hay độ tin cậy
Để đảm bảo an toàn cho dịch vụ Web, chuẩn WS-Security đã được xây dựng để giúp chuẩn hóa việc bảo vệ các thông điệp truyền tải bằng web service WS-Security là một chuẩn an toàn bao trùm cho SOAP, nó được dùng khi muốn xây dựng những dịch vụ Web toàn vẹn và tin cậy Toàn vẹn có nghĩa là khi có một giao dịch hay khi truyền thông tin, hệ thống và thông tin sẽ không bị chặn, giao dịch sẽ không bị mất cũng như không thể có người lấy cắp được dữ liệu trên đường truyền WS-security được thiết kế mang tính mở nhằm hướng tới những mô hình an toàn khác bao gồm PKI, Kerberos và SSL Nó cũng đưa ra nhiều hỗ trợ cho các cơ chế
an toàn khác, nhiều khuôn dạng chữ ký và công nghệ mã hóa, đảm bảo sự an toàn, toàn vẹn thông điệp và tính tin cậy của thông điệp Tuy nhiên, WS-security cũng chưa thể đảm bảo được tất cả yêu cầu về bảo mật và an toàn thông tin, nó chỉ là một trong những lớp của giải pháp an toàn cho dịch vụ Web
Trang 2017
Tính toàn vẹn tạo ra một chữ ký số hóa XML dựa trên nội dung của thông điệp Nếu dữ liệu bị thay đổi bất hợp pháp, nó sẽ không còn thích hợp với chữ ký số hóa XML đó Chữ ký này được tạo ra dựa trên khóa mà người gửi thông điệp tạo ra, do
đó người nhận chỉ nhận thông điệp khi có chữ ký sử dụng và nội dung phù hợp Ngược lại sẽ có một thông báo lỗi Việc chứng thực được thực hiện giữa client và server là cách chứng thực rất cơ bản (sử dụng định danh người dùng và mật khẩu)
WS-Security chỉ là một trong những lớp an toàn và bảo mật cho dịch vụ Web, vì vậy cần một mô hình an toàn chung lớn hơn để có thể bao quát được các khía cạnh khác Các thành phần được thêm có thể là WS-Secure Conversation Describes,WS-Authentication Describes,WS-Policy Describes hay WS-Trust Describes Chúng sẽ thực hiện việc đảm bảo an toàn hơn cho hệ thống khi trao đổi
dữ liệu, mở và đóng các phiên làm việc cũng như quản lý dữ liệu cần chứng thực và chính sách chứng thực
Và để có thể miêu tả cách thức sử dụng những công nghệ và các chuẩn được trình bày phía trên vào việc bảo mật các thông điệp được truyền đi của web service, các chuyên gia đã hợp tác và xây dựng lên WS-SP Tác giả sẽ trình bày cụ thể hơn
về WS-SP ở chương tiếp theo
1.5 Tích hợp web service theo chuẩn
Để có thể thành công với dịch vụ Web chúng ta phải quan tâm đến khá nhiều vấn đề, bao gồm việc triển khai, giám sát và tích hợp hệ thống Doanh nghiệp không những phải phát triển một ứng dụng dịch vụ Web mới mà còn phải tích hợp các ứng dụng nghiệp vụ phụ trợ của họ trong kiến trúc Dịch vụ Web Cùng với việc triển khai và tích hợp, những nhà kinh doanh và những người sử dụng kỹ thuật cũng cần
có khả năng giám sát, triển khai toàn diện để đảm bảo hoạt động kinh doanh hiệu quả và tin cậy
- Giám sát (monitoring): Cần hỗ trợ ở cả mức công cụ và cơ sở hạ tầng để giám sát các dịch vụ Web chạy như thế nào qua toàn bộ mạng, từ một chi nhánh con của một công ty trên mạng tới các chi nhánh khác trong công ty hay giao tiếp với
Trang 2118
doanh nghiệp khác Kết hợp thông báo theo sự kiện với các lỗi trong luồng nghiệp
vụ cho những người dùng không có kinh nghiệm giám sát dịch vụ Web và các dịch
vụ kế thừa khác
- Xác định đường đi dữ liệu (Data routing): Việc thiết lập đường đi của dữ liệu giữa những thành phần của dịch vụ Web hướng tới tối đa hóa khả năng sử dụng lại Nếu coi một thành phần (component) là một đối tượng thì mỗi thể hiện (instance) của nó sẽ không quan tâm đến các thể hiện khác của cùng thành phần đó Những thể hiện của cùng một thành phần có thể dễ dàng được sử dụng lại trong các ứng dụng phân tán khác bởi vì chúng hoàn toàn độc lập và không phụ thuộc lẫn nhau
- Triển khai (Deployment): Triển khai các dịch vụ Web có khả năng nâng cấp, điều khiển và cấu hình các thành phần từ xa thông qua mạng phân tán
- Quản lý (Management): Có thể xây dựng theo kiến trúc Peer-to-Peer Các hoạt động chính như thực thi các thành phần, định tuyến dữ liệu, xử lý luồng công việc và chuyển đổi dữ liệu được thực hiện tại các điểm cuối của mạng Server sẽ tập trung giải quyết các hoạt động khác như quản lý, điều khiển sự kiện, chứng thực bảo mật và quản trị
- Cấu hình và quản lý phiên bản (Configuration and version management):
Sử dụng các công cụ linh hoạt để quản lý các phiên bản khác nhau của dịch vụ Web, cho phép các phiên bản được nâng cấp và điều khiển từ một công cụ quản lý tập trung Kết hợp giữa ứng dụng và mạng giúp các kỹ sư triển khai có thể điều khiển các thành phần chạy trên nền tảng hệ thống phần cứng cụ thể bên trong mạng
- Bảo mật (Security): các chuẩn mở như HTTP, XML, SOAP, WSDL và chuẩn bảo mật JSM được sử dụng rộng rãi khiến chúng trở thành lý tưởng để xây dựng các ứng dụng web Đầu tiên, dịch vụ Web sử dụng những công nghệ này giống như firewall, SSL và các chứng nhận số Dịch vụ Web thế hệ sau này sẽ kết hợp với những công nghệ có khả năng bảo mật cao hơn, giống như mã hóa XML và chứng nhận số XML
Trang 2219
Như vậy, với một dịch vụ Web, việc giao tiếp và truyền nhận dữ liệu trở nên dễ dàng và hiệu quả hơn, đồng thời đem lại chi phí thấp hơn và tăng cường những khả năng giao tiếp thời gian thực, kết nối với mọi người trên khắp thế giới Bản chất của nền tảng công nghệ này là kiến trúc hướng dịch vụ và sự phát triển của dịch vụ Web
có tương lai rất khả quan
Trang 2320
2
CHÍNH SÁCH BẢO MẬT CHO DỊCH VỤ WEB
Chính sách dịch vụ web qua ví dụ
Gắn các đòi bảo mất vào WSDL
Đòi hỏi chính sách và dạng chuẩn
Chính sách bảo mật dịch vụ web
Các loại đòi hỏi bảo mật dịch vụ web
Trang 2421
2 CHƯƠNG 2 CHÍNH SÁCH BẢO MẬT CHO DỊCH VỤ WEB
Trong chương này, tác giả sẽ trình bày về chính sách bảo mật cho dịch vụ web
Vì chính sách bảo mật cũng xuất phát từ các chính sách cho dịch vụ web nhưng tập trung về hướng bảo mật, nên trước tiên tác giả sẽ trình bày về chính sách dịch vụ web
Các dịch vụ Web đang được sử dụng rất thành công trong các giải pháp tương thích giữa các hệ thống trong nhiều ngành công nghiệp Một trong những lý do chìa khóa cho lợi ích và đầu tư vào các dịch vụ Web là chúng rất phù hợp với các hệ thống cho phép hướng-dịch-vụ Các công nghệ dựa trên XML như là SOAP, XML Schema và WSDL cung cấp nền móng rộng rãi mà dựa vào đó có thể xây dựng lên các dịch vụ Web tương thích Các đặc tả WS-Policy và WS-PolicyAttachment mở rộng những nền móng này và đề xuất cơ chế để miêu tả các khả năng và yêu cầu của các dịch vụ Web như là các chính sách
Siêu dữ liệu dịch vụ (service metadata) là một biểu thức của những mặt nhìn thấy của một dịch vụ Web, và gồm có một sự pha trộn của những ngôn ngữ máy và ngôn ngữ người-khả-đọc Những ngôn ngữ máy-khả-đọc cho phép tạo công cụ Ví
dụ, các công cụ mà dùng siêu dữ liệu dịch vụ có thể tự động sinh ra mã máy khách
để gọi tới dịch vụ Siêu dữ liệu dịch vụ có thể miêu tả những phần khác nhau của dịch vụ Web và do đó cho phép những cấp độ khác nhau của việc hỗ trợ tạo công
cụ
Đầu tiên, siêu dữ liệu dịch vụ có thể miêu tả định dạng của các payload mà dịch
vụ Web gửi và nhận Các công cụ có thể sử dụng siêu dữ liệu tự động để sinh ra và phê chuẩn dữ liệu gửi tới và nhận từ một dịch vụ Web Ngôn ngữ XML Schema thường được dùng để miêu tả trao đổi thông điệp định dạng theo kiểu thông điệp XML, ví dụ miêu tả các thành phần con SOAP Body và các khối SOAP Header
Trang 2522
Thứ hai, siêu dữ liệu dịch vụ có thể miêu tả ‘làm thế nào’ và ‘nơi nào’ một dịch
vụ Web trao đổi các thông điệp, như làm thế nào để miêu tả định dạng của các thông điệp cụ thể, những header nào được dùng, giao thức truyền tải, các mẫu trao đổi thông điệp và danh sách của các điểm cuối sẵn có WSDL hiện nay là ngôn ngữ phổ biến nhất để miêu tả ‘làm thế nào’ và ‘nơi đâu’ một dịch vụ Web trao đổi các thông điệp WSDL có những điểm mở rộng có thể được dùng để mở rộng siêu dữ liệu cho một dịch vụ Web
Thứ ba, siêu dữ liệu dịch vụ có thể miêu tả khả năng và yêu cầu cho một dịch vụ Web, như là thể hiện có chăng và làm thế nào một thông điệp phải được bảo mật, có chăng và làm thế nào một thông điệp phải được phân phối tin cậy , có chăng một thông điệp phải tuân theo một giao dịch, Xem rõ lớp này của siêu dữ liệu về các khả năng và các yêu cầu cho một dịch vụ Web cho phép các công cụ sinh ra các module mã cho cam kết những hành vi này Các công cụ có thể sử dụng siêu dữ liệu này để kiểm tra khả năng tương thích của phía yêu cầu và phía cung cấp Chính sách các dịch vụ Web có thể được dùng để miêu tả các khả năng và các yêu cầu của một dịch vụ Web
Chính sách các dịch vụ Web là một ngôn ngữ máy-khả-đọc để miêu tả những khả năng và yêu cầu cho một dịch vụ Web Những thứ mà được gọi là ‘các chính sách’ Chính sách các dịch vụ Web giới thiệu những cơ chế để mô tả những cách kết hợp cần thiết của các khả năng và đòi hỏi, để nhận biết khả năng của các dịch vụ, để đặt tên và tham chiếu các dịch vụ và liên hệ các chính sách với siêu dữ liệu dịch vụ Web xây dụng như là các dịch vụ, điểm cuối, và thao tác Chính sách các dịch vụ Web là một ngôn ngữ đơn giản mà bao gồm bốn thành phần – Policy, All, ExactlyOne, và PolicyReference và một thuộc tính wsp:Optional
2.1 C hính sách dịch vụ web qua ví dụ
Chúng ta bắt đầu bằng cách xem xét một thông điệp SOAP như trong ví dụ dưới đây:
<soap:Envelope>
Trang 26Thông điệp này sử dụng header địa chỉ thông điệp Các khối header wsa:To
và wsa:Action xác định đích và ngữ nghĩa mang theo bởi thông điệp tương ứng này (Tiền tố wsa được dụng ở đây để biểu thị không gian tên Web Services Addressing XML)
Chúng ta hãy xem xét một kịch bản tưởng tượng được dùng trong tài liệu này
để minh họa các chức năng của ngôn ngữ chính sách Tony là một nhà phát triển dịch vụ Web Anh ta đang xây dựng một ứng dụng khách mà nhận thông tin hạn ngạch cố phiếu thời gian thực từ Contoso, Ltd Contoso cung cấp dữ liệu thời gian thực sử dụng các dịch vụ Web Tony có bản quảng bá miêu tả WSDL dịch vụ Web này của công ty Contoso Contoso yêu cầu sử dụng các header địa chỉ cho thông điệp Chỉ các miêu tả trong WSDL nà không đủ cho Tony cho phép các giao tiếp giữa phía máy khách của anh ta với những dịch vụ Web này Các cấu trúc WSDL không thể hiện các yêu cầu như là cách dùng của các địa chỉ
Các nhà cung cấp có các lựa chọn để truyền các yêu cầu, như là cách dùng địa chỉ, qua lời nói và tài liệu – như chúng vẫn được làm như thế Để giao tiếp thành công với dịch vụ này, Tony có lẽ phải đọc bất cứ tài liệu liên quan nào, gọi tới ai đó
ở Contoso để hiểu siêu dữ liệu dịch vụ, hay nhìn vào các thông điệp SOAP ví dụ và suy luận ra các yêu cầu cũng như các hành vi
Chính sách các dịch vụ Web là một ngôn ngữ máy-khả-đọc để thể hiện khả năng và yêu cầu của những dịch vụ Web này như là các chính sách Chính sách tạo
ra khả năng có thể cho các nhà cung cấp biểu diễn những khả năng và yêu cầu này dưới dạng máy-khả-đọc Ví dụ, Contoso có thể tăng thêm miêu tả WSDL với một chính sách mà trong đó có miêu tả cách dùng của địa chỉ Tony có thể dùng một
Trang 2724
máy khách nhận biết chính sách mà hiểu chính sách này và cam kết địa chỉ một cách tự động
Làm thế nào Contoso dùng chính sách để thể hiện cách dùng của địa chỉ? Ví
dụ sau sẽ minh họa một biểu hiện chính sách mà yêu cầu cách dùng của địa chỉ:
Thành phần wsap:UsingAddress là một đòi hỏi chính sách (Tiền tố wsap
được dùng ở đây thể hiện cho Web Service Addressing – WSDL Binding XML) Đòi
hỏi này xác định cách dùng của header thông tin Web Service Addressing Một máy khách có thể nhận biết chính sách có thể nhận ra đòi hỏi chính sách này, cam kết địa
chỉ tự động, và dùng các header như là wsa:To và wsa:Action trong SOAP
Trang 2825
</soap:Envelope>
Thông điệp SOAP trong ví dụ phía trên bao gồm tem thời gian bảo mật mà thể hiện thời gian khởi tạo và hết hạn của thông điệp này Contoso yêu cầu cách dùng của tem thời gian bảo mật và bảo mật cấp độ truyền tải – như là HTTPS – để
bảo vệ các thông điệp (Các tiền tố wss và wsu được sử dụng ở đây thể hiện cho
Web Services Security và Web Service Utility)
Tương tự như cách dùng của địa chỉ, Contoso thể hiện cách dùng của bảo mật cấp độ truyền tải bằng cách sử dụng một thể hiện chính sách Ví dụ phía dưới minh họa một thể hiện chính sách mà yêu cầu cách dùng của địa chỉ và bảo mật cấp
độ truyền tải cho bảo mật các thông điệp
Thể hiện chính sách bảo mật và địa chỉ
<Policy>
<wsap:UsingAddressing />
<sp:TransportBinding> </sp:TransportBinding>
</Policy>
Thành phần sp:TransportBinding là một đòi hỏi chính sách (Tiền tố sp được
dùng ở đây thể hiện cho không gian tên Web Service Security Policy XML) Đòi hỏi
này xác định cách dùng của bảo mật cấp độ truyền tải – như là HTTPS – để bảo vệ các thông điệp Các máy khách có thể nhận biết chính sách và bao gồm các tem thời gian bảo mật trong các SOAP Envelope
Tony có thể dụng máy khách có thể nhận biết chính sách để nhận ra biểu hiện chính sách này và cam kết cả địa chỉ và bảo mật mức thông điệp tự động Với thời điểm này, chung ta hãy để riêng các nội dung của đòi hỏi chính sách sp:TransportBinding và xem xét nó chi tiết hơn ở một phần nào đó tiếp theo
2.2 Tổ hợp các biểu hiện chính sách
Sâu hơn nữa, chúng ta đã khám phá làm thế nào Contoso dùng các biểu hiện chính sách và các đòi hỏi chính sách để thể hiện các hành vi mà phải được cam kết cho giao tiếp dịch vụ Web Thế một đòi hỏi chính sách là gì? Vai trò mà nó giữ?
Một cách sơ lược, một đòi hỏi chính sách là một phần của siêu dữ liệu dịch vụ,
Trang 29Các nhà cung cấp, như Contoso, có lựa chọn để tổ hợp các hành vi cho một giao tiếp từ những lĩnh vực như là thông điệp, bảo mật, tin cậy, giao dịch Sử dụng các đòi hỏi chính sách, nhà cung cấp có thể biểu diễn những hành vi này dưới dạng máy-khả-đọc Các nhà phát triển dịch vụ Web, như Tony, có thể sử dụng máy khách hiểu chính sách để nhận ra các đòi hỏi và cam kết những hành vi này tự động
Ai là người định nghĩa các đòi hỏi chính sách? Họ nằm ở đâu? Các đòi hỏi chính sách được định nghĩa bởi các nhà phát triển dịch vụ Web, nhà thiết kế sản phẩm, các tác giả của giao thức và các người dùng Như các thư viện XML Schema, các đồi hòi chính sách là một tập hợp lớn dần Một vài đặc tả giao thức WS-* và các ứng dụng định nghĩa các đòi hỏi chính sách như:
- Chính sách bảo mật dịch vụ Web
- Chính sách thông điệp tin tưởng dịch vụ Web
- Giao dịch nguyên tử dịch vụ Web
- Nền bảng hành vi thương mại dịch vụ Web
- Các tiểu sử thiết bị cho các dịch vụ Web
- …
Các đòi hỏi chính sách có thể được tổ hợp với nhau theo các cách khác nhau để nhằm mục đích tạo ra những tổ hợp thích hợp các hành vi (các khả năng và các yêu
cầu) Có ba kiểu toán tử chính sách để tổ hợp các đòi hỏi chính sách: Policy, All,
ExactlyOne (toán tử Policy là một đồng nghĩa của All)
2.3 Gắn các đỏi hỏi bảo mật vào WSDL
Phần lớn các khách hàng của Contoso dùng WSDL để xây dựng ứng dụng máy
Trang 3027
khách của họ Contoso thúc đẩy cách dùng này bằng cách kèm các biểu hiện chính sách vào các miêu tả liên kết WSDL
Trong ví dụ dưới đây, miêu tả liên kết WSDL SecurityBinding định nghĩa một
liên kết cho một giao diện mà cung cấp các định mức thời gian thực và các thông tin sách về bảo mật Để yêu cầu cách dùng bảo mật cho những đề nghị này, Contoso kèm biểu hiện chính sách bảo mật vào trong phần trước tới miêu tả liên kết này Thành phần WSDL binding là một điểm kèm theo chính sách phổ biến Biểu hiện chính sách bảo mật gắn liền với miêu tả liên kết WSDL SecureBinding áp dụng bới bất kỳ trao đổi thông điệp nào mà liên hệ với bất kỳ cổng nào mà hỗ trợ miêu tả liên kết Điều này bao gồm toàn bộ các trao đổi thông điệp được miêu tả bởi những toán
vụ Web (ví dụ như là GetDelayedQuote, GetDelayedQuotes, GetSymbol, và GetSymbols) Contoso không cần cách dùng của bảo mật cho những dịch vụ này, nhưng cần cách dùng cho các địa chỉ và cho phép cách dùng của tối ưu hóa
Đỏi hỏi chính sách mở gắn liền với liên kết WSDL
<wsdl:binding name="OpenBinding" type="tns:DelayedDataInterface" >
<PolicyReference URI="#common" />
<wsdl:operation name="GetDelayedQuote" > </wsdl:operation>
</wsdl:binding>
Trong ví dụ bên trên, miêu tả liên kết WSDL OpenBinding định nghĩa một
liên kết cho một giao diện mà cung cấp những kiểu khác nhau của dữ liệu như là
Trang 3128
những định mức trì hoãn 20 phút và các biểu tượng bảo mật Để yêu cầu dùng địa chỉ và cho phép sử dụng tối ưu, Contoso gắn liền biểu hiện chính sách phổ biến trong phần trước với miêu tả liên kết này Như chúng ta nhìn thấy trong trường hợp
SecureBinding, biểu thức chính sách chung gắn liền với miêu tả liên kết WSDL
OpenBinding áp dụng tới bất cứ trao đổi thông điệp nào liên hệ với bất kỳ cổng nào
mà hỗ trợ miêu tả liên kết Phần này bao gồm toàn bộ các trao đổi thông điệp được miêu tả bởi những toán tử trong DelayedDataInterface
Như đã đề cập đến từ trước, các nhà cung cấp có những tùy chọn để mang theo các yêu cầu, như là cách dùng địa chỉ hay bảo mật, thông qua nói miệng hay các tài liệu – như chúng vẫn thế Sự thiếu vắng các biểu hiện chính sách trong một tài liệu WSDL không thể hiện bất cứ điều gì về khả năng và các yêu cầu của một dịch vụ Dịch vụ có thể có những khả năng và yêu cầu mà có thê được thể hiện như những biểu hiện chính sách, như là cách dùng địa chỉ, bảo mật và tối ưu Hoặc, dịch vụ có thể không có những khả năng hay yêu cầu Một máy khách có thể nhận biết chính sách nên không quyết định bất cứ điều gì về sự thiếu vắng các biểu hiện chính sách Các nhà cung cấp dịch vụ, như Contoso, có thể giữ gìn và thúc đẩy những đầu tư của họ vào WSDL và thể hiện các khả năng cũng như các yêu càu của một dịch vụ Web như các chính sách Một tài liệu WSDL có thể xác định vài hành vi dựa trên điểm cuối dịch vụ Web Các nhà phát triển dịch vụ Web, như Tony, có thể sử dụng máy khách có thể nhận biết chính sách mà nhận biết những biểu hiện chính sách này trong các tài liệu WSDL và cam kết các hành vi này một cách tự động cho mỗi điểm cuối đó Bất cứ sự phức tạp nào trong các hành vi theo điểm cuối dịch vụ Web
sẽ được chú ý bởi máy khách có thể nhận biết chính sách hay công cụ mà ẩn khỏi các nhà phát triển dịch vụ Web này
Chúng ta đã xem làm thế nào Contoso kèm các biểu hiện chính sách của chúng tới thành phần binding WSDL Để thêm vào thành phần WSDL binding, một biểu hiện chính sách có thể được kèm vào một thành phần WSDL như là service, port, operation và message Những thành phần này là các điểm kèm theo chính sách WSDL trong một tài liệu WSDL
Trang 3229
Các điểm kèm theo WSDL đã được chia ra (như minh họa phía dưới) thành bốn chủ đề chính sách: message, operation, endpoint và service Khi được kèm theo, các khả năng và các yêu cầu được thể hiện bởi biểu hiện chính sách áp dụng tới trao đổi thông điệp hay các thông điệp liên hệ với (hoặc được miêu tả bởi) một đối tượng chính sách
Thành phần WSDL service thể hiện đối tượng chính sách dịch vụ Các biểu hiện chính sách được liên hệ với một đối tượng chính sách dịch vụ áp dụng tới bất
kỳ trao đổi thông điệp nào sử dụng bất kỳ điểm cuối nào mà được đề nghị bởi dịch
vụ
Các thành phần WSDL port, binding, và portType thể hiện một cách tập trung đối tượng chính sách điểm cuối Các biểu hiện chính sách liên hệ với một
Trang 33WSDL binding/operation/input, portType/operation/input và thành phần message thể hiện tập trung đối tượng chính sách thông điệp cho thông điệp vào WSDL
binding/operation/output, portType/operation/output, và thành phần message thể hiện tập trung đối tượng chính sách thông điệp cho thông điệp ra WSDL binding/operation/fault, portType/operation/fault và thành phần message thể hiện chung đối tượng chính sách thông điệp cho thông điệp lỗi Các biểu hiện chính sách được liên hệ với một đối tượng chính sách thông điệp chỉ được áp dụng tới thông điệp đó
Các chính sách kết hợp
Nhiều biểu hiện chính sách có thể gắn liền với các cấu trúc WSDL Chúng ta hãy xem xét làm thế nào Contoso có thể sử dụng nhiều biểu hiện chính sách trong một tài liệu WSDL Trong ví dụ dưới đây, có hai biểu hiện chính sách #common2
và #secure2 gắn liền với liên kết WSDL SecureBinding và miêu tả cổng WSDL RealTimeDataPort
Nhiều biểu hiện chính sách gắn liền với đối tượng chính sách điểm cuối
Trang 34Như trong ví dụ bên trên, nhiều biểu hiện chính sách có thể được gắn liền với cấu trúc dịch vụ Web mà cùng thể hiện một chủ đề chính sách đơn Khi có nhiều biểu hiện chính sách găn liền với cùng chủ đề chính sách mà các chính sách có hiệu quả hay sự kết hợp của những biểu hiện chính sách áp dụng tới bất kỳ chủ đề chính sách được liên hệ nào
Chính sách hiệu quả là sự kết hợp của hai hay nhiều biểu hiện chính sách gắn liền với cùng một chủ đề chính sách Sự kết hợp của hai biểu hiện chính sách, cũng được biết như là ghép các biểu hiện chính sách, là một biểu hiện chính sách mới mà két hợp cả hai biểu hiện chính sách sử dụng toán tử chính sách All
2.4 Đòi hỏi chính sách và dạng chuẩn
Một đỏi hỏi chính sách là một biểu diễn và dạng tương thích XML của một
chính sách các dịch vụ Web Một đòi hỏi chính sách chứa một thành phần bọc Policy và nhiều thành phần con và các thành phần hậu duệ Các thành phần con
Trang 3532
và hậu duệ từ ngôn ngữ chính sách là Policy, All, ExactlyOne, và PolicyReference Những thành phần con khác của Policy, All, và ExactlyOne là các đòi hỏi chính
sách (Thành phần Policy giữ hai vai trò bao phủ và toán tử) Các đòi hỏi chính sách
có thể chứa các biểu hiện chính sách lồng nhau Các đòi hỏi chính sách cũng có thể được đánh giá tùy chọn để thể hiện những hành vi mà được cam kết (các khả năng)
cho một giao tiếp Dấu tùy chọn là thuộc tính wsp:Optional mà được đặt nằm trong
một thành phần đòi hỏi chính sách
Chúng ta hãy xem cụ thể hơn một đòi hỏi chính sách của Contoso lấy từ phần trước
Biểu hiện chính sách bảo mật của Contoso
Thành phần Policy là một thành phần bao Các thành phần All và ExactlyOne
là các đòi hỏi chính sách từ những lĩnh vực như là thông điệp, địa chỉ, bảo mật, tin cậy và các giao dịch
Dạng chuẩn cho các biểu hiện chính sách
Ngôn ngữ chính sách dịch vụ web định nghĩa hai dạng của các biểu hiện chính sách: dạng cô đọng và dạng chuẩn Cho đến điểm này, chúng ta đã dùng dạng
cô đọng Dạng cô đọng ít dài dòng hơn dạng chuẩn Dạng cô đọng là hữu ích cho tạo lên các biểu hiện chính sách Dạng chuẩn là một thể hiện trực giác của mô hình
dữ liệu chính sách Chúng ta sẽ nhìn vào trong mô hình dữ liệu chính sách trong phần tiếp theo
Dạng chuẩn sử dụng một tập con các kết cấu được dùng trong dạng cô đọng
và tuân theo một phác thảo đơn giản cho thể hiện XML của nó
Trang 36Dạng chuẩn chứa một thành phần bao Policy và có một thành phần con
ExactlyOne Thành phần con ExactlyOne này có không hoặc nhiều hơn các thành phần con All Mỗi thành phần con All này có không hoặc nhiều hơn các đòi hỏi chính sách Thành phần PolicyReference và thuộc tính wsp:Optional không được
dùng trong dạng chuẩn Và, các biểu hiện chính sách lồng nhau trong dạng chuẩn có
ít nhất một lựa chọn chính sách
Dạng chuẩn biểu diễn một chính sách như là một tập hợp của các lựa chọn chính sách và lựa chọn chính sách như là tập hợp của các đòi hỏi chính sách trong cách thẳng về phía trước
Ví dụ phía dưới đây là một biểu hiện chính sách trong dạng chuẩn Biểu hiện chính sách này chứa hai lựa chọn chính sách: một yêu cầu cách dùng của bảo mật cấp độ truyền tải và cách khác yêu cầu cách dùng của bảo mật cấp độ thông điệp để bảo vệ các thông điệp
<Policy>
<ExactlyOne>
<All>
Trang 37Chúng ta hãy xem xét lại biểu hiện chính sách của Contoso (nhìn trong ví dụ dưới đây) Contoso yêu cầu cách dùng của địa chỉ và hoặc là bảo mật cấp độ truyền tải hoặc là bảo mật cấp độ thông điệp và cho phép sử dụng tối ưu hóa Biểu hiện chính sách này nằm ở dạng cô đọng và có bốn lựa chọn chính sách cho các phía yêu cầu: (a) Yêu cầu cách dùng của địa chỉ và bảo mật cấp độ truyền tải
(b) Yêu cầu cách dùng của địa chỉ và bảo mật cấp độ thông điệp
(c) Yêu cầu cách tối ưu hóa, địa chỉ và bảo mật cấp độ thông điệp
(d) Yêu cầu cách tối ưu hóa, địa chỉ và bảo mật cấp độ truyền tải
Biểu hiện chính sách bảo mật của Contoso dưới dạng cô đọng
Trang 38Thuộc tính wsp:Optional, biểu hiện chính sách lồng nhau và thành phần
PolicyReference đã được chuyển đổi sang dạng chuẩn tương ứng của chúng Thuộc tính wsp:Optional chuyển đổi tới hai lựa chọn, một có đòi hỏi và lựa chọn còn lại không có đòi hỏi Một lựa chọn chính sách chứa một đòi hỏi với biểu hiện chính sách lồng nhau mà có nhiều lựa chọn chính sách chuyển đổi thành nhiều lựa chọn chính sách nơi mà các đòi hỏi chứa các biểu hiện chính sách lồng nhau mà có ít nhất một lựa chọn chính sách
Thành phần PolicyReference được thay thể bởi biểu hiện chính sách tham chiếu của
nó Chỉ như những ngôn ngữ siêu dữ liệu dịch vụ khác, Chính sách các dịch vụ Web không ủy thác bất cứ cơ chế phục hồi chính sách xác định nào Bất cứ sự kết hợp của bất cứ cơ chế phục hồi nào nhằm được dùng cho các biểu hiện chính sách tham chiếu tới Ví dụ về cơ chế phục hồi là:
- Không làm gì Một biểu hiện chính sách với URI tham chiếu sẽ được biết như sẵn dùng cho các đệm cục bộ hay chíp (các hệ thống nhúng)
- Dùng URI tham chiếu và nhận được một biểu hiện chính sách đang tồn tại từ
một tài liệu chứa XML: Một thành phần chính sách với một XML ID
- Dùng URI tham chiếu và nhận được một biểu hiện chính sách tồn tại từ một vài kho chứa chính sách (cục bộ hay từ xa) hay các bảng mục Các công cụ chính sách có thể dùng bất cứ giao thức nào (như Web Services Metadata Exchange) cho việc phục hòi những siêu dữ liệu Những giao thức này có thể yêu cầu những thông tin ngoài dòng
- Thử để giải quyết tham chiếu URI trên trang web Nó có thể giải quyết thành
phần chính sách hay một tà nguyên mà chứa một thành phần chính sách
Trang 3936
Nếu các biểu hiện chính sách tham chiếu trong cùng một tài liệu XML như là một
tham chiếu, thì biểu hiện chính sách nên được xác định bằng cách sử dụng wsu:Id (XML ID) và được tham chiếu sử dụng một tham chiếu URI tới giá trị XML ID này
2.5 Chính sách bảo mật dịch vụ web
WS-Policy định nghĩa một nền tảng cho phép các dịch vụ web sẽ biểu diễn những ràng buộc và yêu cầu của chúng Như là các ràng buộc cũng như các yêu cầu được biểu diễn như là các đòi hỏi chính sách Tài liệu này định nghĩa một tập hợp các đồi hỏi chính sách bảo mật để sử dụng trong nền tảng WS-Policy với sự tôn trọng tới các chức năng bảo mật đã được cung cấp trong WSS: SOAP Message Security [WSS10, WSS11, WS-Trust] và [WS-SecureConverstation] Các đòi hỏi được định nghĩa ở trong những đặc tả này được thiết kế để hoạt động độc lập với bất cứ phiên bản nào của WS-Policy Vào thời điểm xuất bản đặc tả này những phiên bản đã biết của WS-Policy được kết hợp chính xác với đặc tả này là WS-Policy 1.2 và 1.5 Trong đặc tả này sử dụng không gian tên mà có tiền tố là wsp là chỉ tới không gian tên WS-Policy, không phải là một phiên bản cụ thể nào Tài liệu này sử dụng cách tiếp cận bằng cách định nghĩa tập hợp những đòi hỏi cơ bản mà miêu tả làm thế nào các thông điệp sẽ được bảo mật Tính linh hoạt đối với các loại token, các thuật toán mã hóa và cơ chế được dùng, bao gồm sử dụng bảo mật ở cấp
độ truyền tải như là một phần trong thiết kết và cho phép phát triển theo thời gian Mục đích ở đây là cung cấp đủ thông tin cho khả năng tương thích và khả năng tương tác sẽ được nhận ra bởi dịch vụ web tham gia cùng với toàn bộ các thông tin cần thiết để thực sự cho phép người tham dự tiến hành bảo mật những thông điệp trao đổi (giữa hai bên)
Trang 4037
2.6 Các loại đòi hỏi bảo mật dịch vụ web
Các đòi hỏi bảo vệ
Những đòi hỏi sau đây được dùng để xác định cái gì sẽ được bảo vệ và cấp
độ của sự bảo vệ được cung cấp Những đòi hỏi này NÊN được áp dụng tới [Message Policy Subject] Những đòi hỏi này CÓ THỂ được áp dụng với [Endpoint Policy Subject] hay [Operation Policy Subject] Khi mà chúng áp dụng tới [Operation Policy Subject] chúng sẽ áp dụng tới mọi thông điệp của thao tác đó Khi chúng áp dụng cho [Endpoint Policy Subject] chúng sẽ áp dụng tới tất cả các thao tác của những điểm cuối đó
Chú ý rằng khi những đòi hỏi đã được định nghĩa trong phần này sẽ được biểu diễn trong một chính sách, thứ tự của những đòi hỏi này trong chính sách sẽ không ảnh hưởng tới thứ tự của các chữ ký hay các thao tác mã hóa
Các đòi hỏi về toàn vẹn (Integrity Assertions)
Hai cơ chế được định nghĩa để định rõ những phần của thông điệp sẽ được bảo vệ toàn vẹn
phần của thông điệp nằm ngoài phần đầu bảo mật (security header) mà cần được bảo vệ toàn vẹn
định những phần tùy ý của thông điệp mà cần được bảo vệ toàn vẹn
ý trong thông điệp cần được bảo vệ bí mật