Đồ án Nghiên cứu bảo mật Web Service

Những hạn chế Để xây dựng được một hệ thống hoàn chỉnh có thêm nhiều chức năng và đảm bảo tuyệt đối những yêu cầu đặt ra, phải cần rất nhiều thời gian. Trong thời gian nghiên cứu và triển khai đồ án, tôi cũng đã cố gắng đạt được những kết quả nhất định, tuy nhiên vẫn còn nhiều hạn chế: Chương trình khá đơn giản chỉ với chức năng hiển thị dữ liệu, cũng như việc thiết kế dữ liệu chưa thực sự tốt. Không được đưa ra áp dụng thực tế nên sẽ có khả năng nhiều lỗi mà người nghiên cứu không thể phát hiện ra Về bảo mật, chưa tìm hiểu hết được các loại thẻ bảo mật Web Service, việc sử dụng bộ thư viện Web Service Enhancement vẫn chỉ dừng lại ở việc tích hợp vào chương trình mức cơ bản nhất, vẫn chưa đưa ra thực tế và sử dụng các phương pháp tấn công để kiểm tra độ bảo mật trên mức cơ bản của chương trình. Nếu có điều kiện, trong tương lai tôi sẽ cố gắng tìm hiểu thêm về những mặt hạn chế của đồ án này và cố gắng khắc phục để tạo ra một chương trình hoàn chỉnh và có thể áp dụng vào thực tế.

pdf67 trang | Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 400 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đồ án Nghiên cứu bảo mật Web Service, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hức lưu trữ và nhận thông tin về các dịch vụ và đặt biệt là nhà cung cấp dịch vụ cùng với các giao tiếp kỹ thuật 35 UDDI dựa vào những chuẩn đã có như là ngôn ngữ đánh dấu mở rộng (XML) và giao thức truy cập đối tượng đơn giản (SOAP). Tất cả các cài đặt của UDDI đều hỗ trợ các đặc tả UDDI.  Tóm lại: Để có thể sử dụng các dịch vụ, trước tiên khách phải tìm dịch vụ, ghi nhận thông tin về cách sử dụng dịch vụ và biết được đối tượng cung cấp dịch vụ. UDDI định nghĩa thành phần cho biết trước các thông tin này để cho phép máy khác truy tìm và nhận lại những thông tin yêu cầu sử dụng Web Service. 3.5.5.2. Đặc điểm của UDDI UDDI là phần chứa các thông tin của web service, xây dựng trên nền tảng .NET UDDI được miêu tả bởi ngôn ngữ WSDL và giao tiếp thông qua SOAP Nhiệm vụ UDDI: tìm đúng dịch vụ và định nghĩa cách kíck hoạt dịch vụ 3.5.5.3. Nội dung của thƣ mục UDDI Một nội dung thư mục UDDI là một tệp XML mô tả một nghiệp vụ và các dịch vụ nó chào. Nội dung trong UDDI có ba phần:  White pages: chứa thông tin liên hệ và các định dạng của Web Service. Những thông tin này cho phép đối tượng khác xác định được dịch vụ.  Yellow pages: chứa thông tin mô tả Web Service. Những thông tin này cho phép các đối tượng thấy được từng loại của Web Service.  Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức năng  Loại dịch vụ – tModel: chứa các thông tin về loại dịch vụ được sử dụng. 3.5.5.4. Cấu trúc sổ đăng ký UDDI UDDI cung cấp 4 cấu trúc dữ liệu mô tả dịch vụ mà nó đưa ra: BusinessEntity, BusinessService, BusinessTemplate và tModels.  BusinessEntity: mô tả nhà cung cấp dịch vụ  BusinessService: chứa các thông tin chung về dịch vụ  BindingTemplate: chứa thông tin kỹ thuật cách thức truy cập vào dịch vụ  tModels (Technical Model- mô hình kỹ thuật): chứa các thông tin về loại Web Service sử dụng. Được sử dụng để lấy thông tin chi tiết về giao diện của Web Service và làm cho chúng có thể sử dụng lại giữa các dịch vụ tương thích. 36 3.5.5.5. Các kiểu sổ đăng ký UDDI Mô hình đám mây các nút UDDI: một cơ chế khai triển công khai của tiêu chuẩn UDDI đó là Sổ đăng ký kinh doanh UDDI hoặc UBR. UBR bao gồm vài nút UDDI. Những nút này do các công ty như IBM, Microsoft hay SAP và NTT quản lý. Khi một nhà cung cấp dịch vụ muốn công bố dịch vụ của họ, họ sẽ tới một trong các địa chỉ UBR như: Và sau đó đăng ký rồi công bố dịch vụ của họ. Dữ liệu tiếp tục nhân bản tới các nút khác trong cùng hệ thống UBR. Nhóm hoặc các sổ đăng ký cộng tác: những triền khai này tập trung vào một số lượng cụ thể các đối tác đã từng biết Sổ đăng ký riêng tư: hầu hết các công ty đều hướng tới việc bắt đầu các dự án Web Service thông qua một sổ đăng ký UDDI riêng biệt 3.5.5.6. UDDI làm việc nhƣ thế nào Bản ghi của UDDI chứa mô tả của doanh nghiệp,có thể truy cập bằng máy tính và các dịch vụ mà chúng hỗ trợ. UDDI cung cấp một lược đồ và mô hình lập trình với định nghĩa luật giao tiếp với bản ghi. Tất cả các hàm API trong đặc tả UDDI được định nghĩa trong XML, gói gọn trong một phong bì SOAP, và gửi qua HTTP. Hình 3.7: Luồng thông báo UDDI giữa Máy khách và Registry Hình vẽ miêu tả sự truyền tải thông báo UDDI, từ yêu cầu SOAP của máy khách thông qua giao thức HTTP đến một nút bản ghi đăng ký và quay lại. Máy chủ SOAP của hệ thống đăng ký tiếp nhận các thông điệp, xử lý nó, và trả lại một kết quả SOAP đến máy khách. Theo chính sách của bản ghi, các yêu cầu từ máy khách mà bắt buộc phải chỉnh sửa dữ liệu phải là các giao dịch đảm bảo an ninh và được xác thực. 37 Vậy UDDI làm việc như thế nào? Hình 3.8: Cách thức làm việc của UDDI Một bản ghi UDDI được xây dựng trên dữ liệu cung cấp bởi khách hàng của nó. Có vài bước để tạo ra dữ liệu hữu dụng trong UDDI. Như trong bước 1, công bố thông tin hữu ích đến bản ghi bắt đầu khi các công ty phần mềm và các cá nhân định nghĩa các đặc tả liên quan đến công nghiệp hay kinh doanh, mà họ đăng ký với UDDI. Những thứ này được biết như là các mô hình kỹ thuật, hoặc thông dụng hơn là tModels. Trong bước 2, các công ty cũng đăng ký bản mô tả kinh doanh các dịch vụ của họ. Một bản ghi UDDI sẽ theo dõi tất cả các điểm này bằng cách gán cho mỗi điểm một định danh duy nhất, được biết đến như là một khóa định danh phổ biến duy nhất (Unique Universal Identifier - UUID) như trong bước 3. Một khóa UUID được đảm bảo là duy nhất và không bao giờ thay đổi trong một bản ghi UDDI. Những khóa này trông giống như một chuỗi số thập lục phân ngẫu nhiên có định dạng. Chúng có thể được sử dụng để tham chiếu đến một điểm mà chúng được gán vào. Các khóa UUID tạo trong một bản ghi chỉ có nghĩa nội trong bản ghi đó. Các khách hàng khác, như là e-Marketplaces, máy tìm kiếm, và ứng dụng thương mại trong bước 4, sử dụng một bản ghi UDDI để khám phá các dịch vụ quan tâm. Và ngược lại, các doanh nghiệp khác có thể yêu cầu các dịch vụ này, cho phép sự tích hợp đơn giản và thay đổi theo thời gian như minh họa trong bước 5. 38 3.6. Sự khác nhau giữa SOA và Web Service Trong chương trình, chúng ta đã nghiên cứu về cấu trúc SOA và các khái niệm cũng như thành phần Web Service và việc triển khai một hệ thống SOA và tích hợp với Web Service là điều không hề dễ. Ngày nay điều này không còn cần thiết nữa vì trong một hệ thống SOA, các chức năng này đã được “dịch vụ hóa” và cung cấp ra cho các đối tượng bên ngoài truy cập thông qua các nghi thức chuẩn của WebService. Rõ ràng, theo định nghĩa thì Web Service là đặc tả công nghệ còn SOA là triết lý thiết kế phần mềm. Web Service đưa ra giải pháp kỹ thuật để thực hiện SOA, nhưng SOA cũng có thể thực hiện với các giải pháp kỹ thuật khác không phải Web Service. Tuy vậy, SOA và Web Service có mối quan hệ tương hỗ: sự phổ biến của Web Service giúp thúc đẩy sự phát triển của SOA, và kiến trúc tốt của SOA sẽ giúp Web Service thành công. SOA là một phương pháp thiết kế, trong khi WebService chỉ là một công nghệ. SOA có thể được thực hiện qua công nghệ WebService nhưng cũng có thể thực hiện thông qua các công nghệ khác. Kiến trúc SOA sử dụng WebService như là một giải pháp chính để giải quyết vấn đề tích hợp nghiệp vụ giữa các hệ thống. 3.7. Tìm hiểu về Service Proxy Service Proxy về bản chất cũng là một Web Service được triển khai ở phía Máy khách. Service Proxy chứa các đoạn mã để chỉ rõ sự kết hợp giữa các giao diện Web Service, Service Proxy thường nằm phía bên trong một hệ thống mạng máy tính phức tạp. Mô hình tổng quan của một hệ thống với Service Proxy được thể hiện thông qua hình dưới đây[5] Hình 3.9: Minh hoạ mô hình Web Service với Service Proxy 39 Service Proxy sẽ thực thi phương thức giống như phương thức được triển khai trên các remote Web Service, tuy nhiên Service Proxy không thực hiện bất kì một thao tác tính toán nào cả, nó chỉ có nhiệm vụ nhận các yêu cầu từ phía khách rồi chuyển tiếp các thông điệp yêu cầu đến các remote Web Service, tại remote Web Service sẽ thực thi các thao tác tính toán trên các dữ liệu được chuyển đến đó và trả lại kết quả cho Service Proxy. Service Proxy nhận kết quả trả về và chuyển tiếp cho máy khách. Một Service Proxy sẽ thực thi lần lượt ba thao tác yêu cầu dưới đây để thực hiện một lời gọi phương thức tới một remote Web Service:  Truyền đối số  Xây dựng lời gọi Web Service  Đọc kết quả trả về từ Remote Web Service Chúng ta thường sử dụng Service Proxy trong trường hợp số lượng mã tích hợp Web Service thường lớn, và tồn tại việc trùng lặp các lời gọi tới cùng một dịch vụ trong các vị trị khác nhau của chương trình. Và khi sử dụng Service Proxy chúng ta hoàn toàn có thể:  Nhóm dịch vụ bằng kĩ thuật đóng gói, lựa chọn các thứ bậc của dịch vụ.  Chia lớp con từ lớp trừu tượng do đó cung cấp thêm các dịch vụ khác.  Mỗi một lớp của Service Proxy trình bày Web Service. Thông thường thì chúng ta không phải tự viết ra Service Proxy. Service Proxy có thể dễ dàng tự được sinh ra từ file WSDL 40 CHƢƠNG 4: CÁC KỸ THUẬT BẢO MẬT WEB SERVICE 4.1. Tổng quan về an toàn Web Service Từ những giai đoạn đầu tiên của Internet, các doanh nghiệp luôn đòi hỏi rất khắt khe về vấn đề bảo mật trong thương mại điện tử. Những hạn chế của tường lửa như việc giám sát các gói tin được truyền tải dựa trên giao thức HTTP là chưa có; điều này có thể khiến cho máy chủ có nguy cơ bị những cuộc tấn công không hề biết được biết trước. Đã có rất nhiều các thuật toán đưa ra cơ chế và những chuẩn về bảo mật như sự mã hoá khoá thông tin, chữ ký số ; nhưng hầu hết chỉ tập trung vào việc đưa ra các định dạng bảo về dữ liệu trong quá trình trao đổi, không quan tâm đến việc xác định các nghi thức mà các bên cần thực hiện khi tương tác với nhau. Ngoài ra, những chuẩn chung về việc chỉ ra nghi thức giao tiếp giữa Web Service là chưa có, đã khiến cho các sản phẩm hỗ trợ bảo mật của Web Service không thể tích hợp với nhau, mặc dù các sản phầm này đều được thiết kế dựa trên chuẩn về bảo mật cho web service. Một chuẩn an toàn chung cho các hệ thống giao dịch trên mạng thường phải tập trung vào những điều sau[7] :  Identification: định danh được những ai truy cập tài nguyên hệ thống.  Authentication: chứng thực truy cập tài nguyên của người muốn sử dụng.  Authorization: cho phép giao dịch khi đã xác nhận định danh người truy cập.  Integrity: toàn vẹn thông tin trên đường truyền.  Confidentiality: độ an toàn, không ai có thể đọc thông tin trên đường đi.  Auditing: kiểm tra, tất cả các giao dịch đều được lưu lại để kiểm tra.  Non-repudiation: độ mềm dẻo, cho phép chứng thực hợp tính hợp pháp hóa của thông tin đến từ một phía thứ ba ngoài hai phía là người gửi và người nhận. 4.2. Bảo mật Web Service: 4.2.1. Khái niệm: Web Service Security là một chuẩn an toàn cho SOAP và cả những phần mở rộng của SOAP, nó được dùng khi muốn xây dựng những web service toàn vẹn và tin cậy. Web Service Security đảm bảo cho tính an to v cậy của thông điệp. 41 4.2.2. Chứng thực trong một ứng dụng  Phía máy khách Máy khách sẽ cung cấp một dấu hiệu an toàn trong tập tin mô tả cũng như phải chỉ rõ một Callback handler để lấy tài khoản và mật khẩu trong thông điệp SOAP và gửi tới máy chủ.  Phía máy chủ máy chủ chỉ rõ một Callback handler để đọc dấu hiệu an toàn trong SOAP máy khách và xác nhận nó. 4.2.3. Các  Phía máy khách thông điệp một dấu hiệu chứng thục nào đó (nằm ở phần thân thông điệp) thông điệp máy khách đã được cấp quyền mới có q . thông điệp.  Phía máy chủ thông điệp thông điệp . . để bảo đảm . Thông điệp phản hổi phải được ký và cung cấp thông tin chữ ký khi phản hồi. 4.2.4. Những thành phần mở rộng của Web Service Security Do Web Service Security chỉ là một lớp trong nhiều lớp của giải pháp an toàn đăn (non-repudiation). 42 Hình 4.1 Trong mô hình này các thành phần quan trọng bao gồm: WS-SecureConversation Describes: thông điệp các phần, ba phiên. WS-Authentication Describes: ,chính sách cần . WS-Policy Describes: . WS-Trust Describes: ,tương tác với nhau. 4.3. Giới thiệu các kỹ thuật Web Service Security eXtensible Access Control Markup Language (XACML) Security Assertion Markup Language (SAML) XML Key Management Specification (XKMS) Web Services Policy Framework (WS-Policy) eXentisble Rights Markup Language (XrML) Secure Socket Layer (SSL) 4.3.1. eXtensible Access Control Markup Language (XACML) 4.3.1.1: Tổng quan XACML Các chính sách điều khiển truy cập rất phức tạp và phải được thi hành tại nhiều điểm. Trong một môi trường phân phối, ví dụ như thiết lập một dịch vụ web, thực hiện các chính sách điều khiển truy cập bằng cách cấu hình chúng tại mỗi điểm, khiến cho các chính sách trở nên đắt tiền và không đáng tin cậy. Hơn nữa, các chính sách điểu khiển truy cập thường được thể hiện thông qua các ngôn ngữ độc quyền và khác nhau. 43 XACML được hình thành để giải quyết vấn đè này, bằng cách cung cấp một tiêu chuẩn, ngôn ngữ duy nhất để xác định các chính sách điều khiển truy cập. XACML phiên bản 2.0 đã được chấp nhận như một tiêu chuẩn OASIS cùng với sáu cấu hình của XACML: SAML 2.0, XML Digital Signature, Privacy Policy (chính sách bảo mật), Hierarchical Resource (phân cấp tài nguyên) và RBAC (Role-Based Access Control). XACML là một tiêu chuẩn bổ sung của OASIS để đưa ra các quyết định việc điều khiển truy cập [8] XACML được thực hiện trong XML. Các đối tượng của XACML được dùng để tạo ra một tiêu chuẩn cho việc miêu tả các thực thể điều khiển truy cập và các thuộc tính của chúng. Chúng đề nghị nhiều các điểu khiển truy cập hơn việc từ chối và cấp quyền truy cập 4.3.1.2: Mô hình của XACML Hình 4.2: XACML Architecture 44 PEP: Policy Enforcement Point: Thực hiện kiểm soát truy cập bằng cách yêu cầu quyết định và thực thi các quyết định ủy quyền. PAP: Policy Administration Point: Tạo và lưu trữ chính sách bảo mật. PDP: The Policy Decision Point: Nhận, xem xét yêu cầu. Sau đó áp dụng các chính sách cùng với việc đánh giá các chính sách đó rồi trả về PEP PIP: Policy Information Point: Là nguồn gốc của các giá trị thuộc tính hoặc các dữ liệu cần thiết để đánh giá chính sách. Context Handler: Xác định để chuyển đổi các yêu cầu theo định dạng gốc của nó với hình thức XACML và chuyển đổi các quyết định ủy quyền theo hình thức XACML sang định dạng gốc. Các chính sách XACML sẽ được nạp vào PAP, tại đây các chính sách sẽ được gửi tiếp tới PDP. PDP là điểm quyết định sẽ sử dụng chính sách nào cho các yêu cầu truy cập. Khi có một yêu cầu truy cập được gửi tới PEP, nó sẽ tiếp nhận các yêu cầu và thực hiện chúng bằng cách yêu cầu tới các văn bản xử lý. Các văn bản này lại được gửi yêu cầu tới PDP, tại đây các yêu cầu được xử lý và sau đó được gửi phản hồi lại cho Context Handler. Và tiếp tục gửi lại cho PEP – nơi thực hiện các chính sáchh sau khi đã qua quá trình xử lý và thực hiện tại PDP. Sau khi thực thi các chính sách PEP sẽ gửi các chính sách tới các Máy chủ chứng thực và tạo ra các tài nguyên để chia sẻ. Các tài nguyên này kết hợp cùng với PIP được lưu trữ trở lại cho Context Handler phục vụ cho những yêu cầu lần sau. Các XACML Context Handler sẽ cách ly và xử lý các ứng dụng cho các đầu vào và đầu ra sử dụng PDP. Trong thực tế, đó là các Context Handler dùng để dịch các yêu cầu về truy cập ứng dụng từ định dạng ban đầu của nó sang định dạng theo chuẩn trên. Mấu chốt XACML là xác định các cú pháp cho một ngôn ngữ chính sách bất kỳ, ngữ nghĩa cho các quy tắc chính sách và giao thức nhằm đáp ứng các yêu cầu giữa PEP và PDP. 45 4.3.1.3: Thành phần của XACML Hình 4.3: Thành phần của XACML Một XACML bao gồm 3 thành phần cơ bản sau:  Rule (quy tắc)  Policy (chính sách)  Policy Set (thiết lập chính sách) 4.3.1.4: Mô hình ngôn ngữ XACML Hình 4.4: XACML Policy Language Model 46 Theo như lý thuyết được trình bày bên trên, xuất phát từ Target: bao gồm ba thành phần chính: suject, action, resource có mối quan hệ với target cụ thể như trên hình vẽ. Target cũng có mối quan hệ tương tự với Policy Set – Policy – Rule theo tỷ lệ cụ thể như hình vẽ. Giao tiếp giữa Policy Set và Policy thông qua việc kết hợp sử dụng các chính sách và tương tự từ Policy với Rule là việc kết hợp thông qua các quy tắc. Các mối quan hệ được miêu tả cụ thể như trên hình vẽ [7]. Mô hình cấu trúc XACML là một thể thống nhất trong đó các thành phần có mối quan hệ chặt chẽ với nhau thông qua các quy tắc đã được xác định trước  Cấu trúc XACML Request  Cấu trúc XACML Response Bao gồm bốn thành phần:  Thuộc tính đối tượng  Thuộc tính tài nguyên  Thuộc tính hành động  Thuộc tính môi trường Hình 4.5: XACML Request Bao gồm ba thành phần  Quyết định  Trạng thái  Trách nhiệm Hình 4.6: XACML Response 47 4.3.2. Security Assertion Markup Language (SAML) 4.3.2.1: Tổng quan SAML SAML là sự kết hợp giữa S2ML và AuthML, được phát triển thông qua OASIS. SAML là một tiêu chuẩn dựa trên XML, được hình thành như một khuôn khổ cho việc trao đổi thông tin liên quan đến an ninh, thể hiện dưới các xác nhận và sự tin tưởng giữa các bên tham gia trao đổi, nhằm xác thực giao tiếp người dùng, quyền lợi và các thuộc tính thông tin. 4.3.2.2: Hoạt động của SAML Hỗ trợ việc khẳng định các chứng thực gốc duy nhất giữa các domain với nhau. Việc khẳng định có thể truyền đạt thông tin về các thuộc tính của đối tượng và có thể quyết định ủy quyền cho đối tượng được phép truy cập tài nguyên nhất định.  Xác thực tin tưởng  Chứng thực các vấn đề liên Domain  Tập trung các vấn đề xác thực liên SAML hỗ trợ ba loại hình xác nhận:  Xác thực: Các đối tượng quy định được chứng thực tại thời điểm cụ thể  Thuộc tính: Các đối tượng quy định có liên quan tới thuộc tính được cung cấp.  Quyết định ủy quyền: một yêu cầu cho phép đối tượng quy định để truy cập vào tài nguyên quy định đã được cấp hoặc từ chối. 4.3.2.3: Đặc điểm của SAML Một SAML duy nhất khẳng định có thể chứa một số báo cáo khẳng định về chứng thực, ủy quyền và các thuộc tính. Khẳng định là do cơ quan SAML, cụ thể là cơ quan thẩm định, cơ quan thuộc tính, hoặc là một điểm quyết định chính sách.Tuy nhiên, nó không cung cấp cơ chế để kiểm tra, thu hồi chứng trỉ. SAML cung cấp bối cảnh chứng thực, được truyền đạt (hoặc tham chiếu) một sự khẳng định của chứng thực đó. Khuôn khổ quy định của SAML là nhằm hỗ trợ nhiều tình huống kinh doanh thực trên thế giới, từ những người mà trong đó khách hàng là một trình duyệt để thêm những phần phức tạp nơi mà Web Service có liên quan [3]. Bảo mật thông tin SOAP, khẳng định SAML có thể được sử dụng trong thông điệp SOAP để thực hiện vấn đề an ninh và nhận dạng thông tin giữa các hành động 48 trong giao dịch.Các SAML Token của tổ chức WSS OASIS quy định cách xác nhận SAML nên được sử dụng cho mục đích này. The Liberty Alliance’s Identity Web Service Frameword (ID-WSF) cũng sử dụng SAML xác nhận như là thẻ an ninh cơ sở để cho phép việc an toàn và tôn trọng sự riêng tư khi tiếp cận với các Web Service 4.3.3. XML Key Management Specification (XKMS) Các khóa công cộng là các khối cơ bản xây dựng cho chữ ký và chứng nhân kỹ thuật số. Khóa công khai quản lý bao gồm việc tạo ra, lưu trữ an toàn, phân phối, sử dụng và hủy bọ chúng. Các khóa công cộng có thể được tạo ra bởi một gói phần mềm chạy trên nền tảng của các ứng dụng khách hàng và sau đó đăng ký một khóa cơ sở hạ tầng công cộng , chứng nhận ủy quyền hoặc ứng dụng khách hàng có thể yêu cầu một chứng nhận tham gia đến một cơ sở hạ tầng để tạo ra các khóa này. Khi một bên sử dụng một khóa công khai, nó có nhu cầu để xác định tính hợp lệ của nó, nghĩa là, nó cần phải xác minh các khóa công cộng chưa hết hạn hoặc đã bị thu hồi bởi nhà cung cấp Web Service. Khóa công cộng có thể được cấp bằng nhiều cách khác nhau, có thể có nhiều hơn một khóa công khai liên quan tới khóa công cộng. Tuy nhiên, các khóa cơ sở hiện nay dựa trên bộ công cụ độc quyền, làm cho tương tác giữa các ứng dụng khách hàng và các hạ tầng trờ nên tốn kém và khó khăn hơn. Hơn nữa, các ứng dụng khách hàng phải tự thực hiện rất tốn kém các hoạt động như xác nhận chữ ký, xác nhận dây chuyền và kiểm tra thu hồi. Do đó cần phải đơn giản hóa các nhiệm vụ của các bên khi chúng ta công khai khóa công cộng, cũng như cho phép các chứng thực khác nhau, hoặc thậm chí khóa khác nhau. Hơn nữa, các khóa công cộng có thể được đại diện trong XML, và là cơ sở của XML Encryption và XML chữ ký. Những vấn đề mô tả ở trên đã dẫn đến việc định nghĩa các chuẩn đối với XML Key Management [9] Hơn nữa,WS-Security xác định các cơ chế cơ bản cho việc cung cấp thông điệp an toàn, thông điệp SOAP được bảo vệ bởi WS-Security trình bày ba vấn đề chính đó là: tính không tương thích định dạng bảo mật thẻ;sự khác biệt không gian tên và sự tin cậy an ninh thẻ. Để khắc phục những vấn đề trên, cần thiết phải xác định tiêu chuẩn mở rộng để WS-Security cung cấp các phương pháp nhằm đưa ra, đổi mới và xác nhận thẻ bảo mật và để thiết lập và đánh giá sự xuất hiện, mối quan hệ tin tưởng lẫn nhau. XKMS là một giao thức được phát triển bởi W3C để mô tả sự phân phối và đăng ký khóa công cộng, nó làm giảm các ứng dụng phức tạp cú pháp của nền tảng được sử dụng để thiết lập các mối quan hệ tin tưởng. 49 Trong hình vẽ sau, một dịch vụ X-KISS cung cấp cho khách hàng hai chức năng và có thể thực hiện bởi chính các dịch vụ X-KISS hoặc của một khóa cơ sở cơ bản. Đó là chức năng: xác định ví trí và tính xác thực. Đối với mục đích mã hóa, các chức năng cho phép một người gửi không cần biết chính xác liên kết với người nhận để có được thông điệp đó. Các dịch vụ X-KISS không thực hiện bất kỳ sự khẳng định về tính hợp lệ của các liên kết giữa dữ liệu và khóa[4]. Hình 4.7: XKMS Services Đối với việc xác thực của một khóa, những thông tin được cung cấp bởi người ký có thể là chưa đủ cho người nhận có thể thực hiện việc xác minh mật mã và quyết định có nên tin tưởng vào khóa ký kết này hay không, hoặc là các thông tin không thể thực thi trong một định dạng người nhận có thể sử dụng được. Các chức năng xác nhận cho phép các khách hàng để có được từ các dịch vụ X-KISS một sự khẳng định rõ ràng, đó là hiệu lực của sự ràng buộc giữa các khóa và các dữ liệu công cộng, ví dụ: một danh từ hoặc một tập hợp các thuộc tính mở rộng. Hơn nữa, các dịch vụ X-KISS đại diện cho tất cả các yếu tố dữ liệu mà được liên kết với cùng một khóa công khai. XKRSS định nghĩa một giao thức cho việc đăng ký và quản lý các khóa thông tin quan trọng. Bạn có thể đăng ký các khóa với một dịch vụ XKMS bằng cách sau: Các dịch vụ XKMS tạo ra một cặp khóa cho khách hàng và đăng ký các khóa công khai của chính cặp khóa đó và gửi các khóa riêng của cặp khóa này cho khách hàng của mình sử dụng chúng. Các khách hàng cũng có thể nói cho dịch vụ XKMS để họ giữ lại các khóa riêng tư nhằm phục vụ cho trường hợp khách hàng khi bị mất. 50 4.3.4. Web Services Policy Framework (WS-Policy) Các dịch vụ Web Policy Framework tiêu chuẩn cung cấp một mô hình mở rộng và ngữ pháp cho phép các dịch vụ web mô tả chính sách của chúng. Các tiêu chuẩn WS-Policy đã được hình thành để cung cấp một mô hình chung, phù hợp với việc thể hiện tất cả các loại mô hình chính sách miền cụ thể, từ việc vận chuyển cấp an ninh, chính sách sử dụng nguồn tài nguyên, đặc điểm chất lượng dịch vụ và quy trình kinh doanh end-to-end. Cốt lõi của mô hình là các khái niệm về sự khẳng định chính sách, xác định hành vi, đó là việc yêu cầu một hoặc nhiều hơn một, của một đối tượng chính sách. Ngữ nghĩa của việc xác nhận chính là các miền cụ thể. Cách tiếp cận được thông qua bởi WS-Policy là xác định khẳng định tên miền cụ thể trong thông số kỹ thuật riêng biệt. Chính sách khẳng định có thể được xác định trong thông số kỹ thuật công cộng như WS-SecurityPolicy và WS-PolicyAssertion hoặc bởi các thực thể sở hữu các Web Service. Đáng chú ý là sự khẳng định này có thể làm hài lòng bằng cách sử dụng SOAP Message Security, WS-Security hoặc bằng cách sử dụng cơ các cơ chế khác trong phạm vi bảo đảm thông tin SOAP. Ví dụ: bằng cách gửi tin nhắn trong một giao thức như HTTPs. Các đối tượng mà chính sách này áp dụng cho một thông điệp chính sách đối tượng (thông điệp SOAP) và tiêu chuẩn WS-PolicyAttachment mà thực thể hoặc tổ chức WSDL và UDDI áp dụng[3]. WS-Policy định nghĩa các điều kiện theo một yêu cầu có thể đáp ứng, tương ứng, khẳng định chính sách của các web servuce đó, giải pháp thay thế chính sách và cuối cùng là toàn bộ các chính sách:  Một sự khẳng định chính sách được hỗ trợ bằng cách yêu cầu khi và chỉ khi người yêu cầu đáp ứng được các yêu cầu tương ứng để khẳng định.  Một chính sách được hỗ trợ bằng cách yêu cầu khi và chỉ khi có yêu cầu hỗ trợ ít nhất là một trong những lựa chọn thay thế trong chính sách đó. Khung chính sách được bổ sung bởi ba tiêu chuẩn[5]:  WS-Policy Assertion: xác định cấu trúc của một chính sách khẳng định  WS-Policy Attachment: định nghĩa làm thế nào để chính sách liên kết với web service hoặc bằng cách trực tiếp nhúng nó trong WSDL, định nghĩa hoặc gián tiếp liên kết thông qua UDDI.WS-PolicyAttachment cũng xác định làm thế nào để thực hiện liên kết các chính sách cụ thể với tất cả hoặc một phần của một kiểu cổng WSDL khi tiếp cận từ thực hiện cụ thể. 51  WS-Security Policy:xác định một tập các khẳng định chính sách tương ứng với tiêu chuẩn bảo mật thông điệp SOAP, đó là thông điệp khẳng định tính toàn vẹn, tin tưởng bảo mật khẳng định, và tin tưởng an ninh khẳng định. Một chính sách WS-Security tiếp cận thông qua WSDL hoặc UDDI, cho phép người gửi yêu cầu để xác định xem WS-Security là tùy chọn hay bắt buộc đối với web service bất kỳ. Nếu nó là bắt buộc, người yêu cầu có thể xác định kiểu bảo mật mã hóa mà web service cung cấp. Người yêu cầu cũng có thể xác định xem họ cần phải ký tên vào thông điệp hay không và những phần nào để đăng nhập. Cuối cùng, yêu cầu xác định có thể mã hoác các thông điệp và nếu có là những thuật toán sử dụng. 4.3.5. eXentisble Rights Markup Language (XrML) Kỹ thuật và các công cụ được sử dụng để cung cấp bảo mật hệ thống, chẳng hạn như tường lửa phục vụ việc truy cập vào mạng và hệ thống kiểm soát truy cập hạn chế truy cập dữ liệu được lưu trữ, không thể thực thi các quy định kinh doanh mà cách mọi người sử dụng và phân phối dữ liệu bên ngoài hệ thống. Việc kiểm soát và thực thi phân phối, sử dụng thông tin số đã được giải quyết bằng cách quản lý bản quyền số (Digital Right Management DRM). Thuật ngữ này thường được gọi bằng luật về quyền tác giả, chủ sở hữu nội dung khi tìm kiếm phương tiện đề kiểm soát sử dụng tài sản trí tuệ của mình.Hệ thống DRM về cơ bản thực hiện hai chức năng chính đó là giám sát và điều khiển truy cập:  Chức năng giám sát, cho phép việc theo dõi những gì đang thực sự được chuyển giao qua mạng đến tay người nhận.  Chức năng điều khiển truy cập và sử dụng kiểm soát những gì người dùng có thể hoặc không thể làm gì với nội dung kỹ thuật số chuyển giao cho máy tính của mình. Các mô tả về hoạt động cho phép cho người dùng trên một nội dung kỹ thuật số là khái niệm tương tự như mô tả về các hoạt động trong chính sách kiểm soát truy cập. Các chính sách kiểm soát truy cập được gắn với các nội dung kỹ thuật số của nó trong một hộp an toàn, để các nội dung kỹ thuật số đi kèm với mô tả của chính sách điều khiển truy cập áp dụng cho nó. Mục đích DRM thi hành việc truy cập cụ thể và chính sách kiểm soát sử dụng kết hợp với các nội dung kỹ thuật số. 52 XrML là một ngôn ngữ XML mà xác định làm thế nào để mô tả các quyền, lệ phí và điều kiện để sử dụng nội dung kỹ thuật số, với tính toàn vẹn thông điệp và tổ chức chứng thực. XrML đã được hình thành để hỗ trợ thương mại trong các nội dung kỹ thuật số, đó là việc xuất bản và bán sách điện tử, phim kỹ thuật số, kỹ thuật số âm nhạc, trò chơi tương tác, phần mềm máy tính và sáng tạo khác được phân phối dưới dạng kỹ thuật số. XrML dự định hỗ trợ truy cập và đặc điểm kỹ thuật của việc sử dụng điểu khiển các đối tượng an toàn kỹ thuật số trong trường hợp trao đổi tài chính. Đặc điểm cốt lõi kỹ thuật XrML cũng xác định các tập thường được sử dụng, quyền hạn cụ thể, đặc biệt là các quyền liên quan đến quyền khác, chẳng hạn như vấn đề, thu hồi, ủy quyền. Phần mở rộng cho các XrML có thể định nghĩa về quyền cho việc sử dụng các ứng dụng cụ thể. Ví dụ: nội dung XrML gia hạn xác định quyền thích hợp cho việc sử dụng sản phẩm kỹ thuật số (sử dụng và in quyền). Một thực tế tài nguyên đại diện cho các đối tượng trong đó một bên có thể được cấp cho một người đứng đầu. Một nguồn tài nguyên có thể là một công việc kỹ thuật số, chẳng hạn như âm thanh hoặc tập tin video, hoặc hình ảnh, dịch vụ, chẳng hạn như là dịch vụ email, hoặc thậm chí mẩu thông tin có thể được sử dụng bởi một địa chỉ email, thuộc tài sản nào khác hay thuộc tính. 4.3.6. Giao thức bảo mật SSL 4.3.6.1: Tổng quan về SSL SSL là một sự xuất hiện bổ sung của VPN (Virtual Private Networks).Nó được thiết kế cho giải pháp truy cập từ xa và không cung cấp những kết nối site-to-site. SSL VPNs cung cấp vấn đề bảo mật truy cập đầu tiên những ứng dụng web. SSL VPNs hoạt động ở tầng phiên của mô hình tiêu chuẩn OSI. Và bởi vì máy khách là một trình duyệt web nên những ứng dụng chúng hỗ trợ trình duyệt web,mặc định, nó sẽ làm việc với một giải pháp VPN. Vì thế những ứng dụng như Telnet, FTP, SMTP, POP3, multimedia, hệ thống điện thoại di động IP, điều khiển desktop từ xa, và những cái khác không làm việc với SSL VPNs bởi vì chúng không sử dụng trình duyệt web cho giao diện đầu cuối người dùng của họ. Tất nhiên, nhiều nhà cung cấp cũng sử dụng cả java hoặc ActiveX để nâng cao SSL VPNs Thêm vào đó để phân phối những thành phần SSL VPNs khác, chẳng hạn như thêm vào những chức năng bảo mật cho việc xóa hết những dấu vết từ một hoạt động của một khách hàng trên máy tính của họ sau khi SSL VPNs đã được kết thúc. Cisco chỉ sự bổ xung SSL VPN như là WebVPN. 53 SSL được coi là giao thức bảo mật trong lớp vận chuyển (Layer Transport) có tầm quan trọng cao nhất đối với sự bảo mật của các trình ứng dụng trên Web. Và đó là một giao thức đa mục đích được thiết kế để tạo ra các giao tiếp giữa hai chương trình ứng dụng trên một cổng định trước (thông thường là socket 433) nhằm mã hóa toàn bộ thông tin đi/đến, mà ngày nay được sử dụng rộng rãi cho giao dịch điện tử như truyền số hiệu thẻ tin dụng, mật khẩu, số bí mật cá nhân (PIN) trên Internet. Giao thức SSL được hình thành và phát triển đầu tiên vào năm 1994 bởi nhóm nghiên cứu Netscape dẫn dắt bởi Elgammal và ngày nay đã trở thành chuẩn bảo mật thực hành trên mạng Internet. Phiên bản SSL hiện nay là 3.0 và vẫn đang tiếp tụ được bổ sung và hoàn thiện. Chức năng chính là bảo vệ bằng mật mã lưu lượng dữ liệu HTTP. 4.3.6.2 Cấu trúc của một giao thức bảo mật SSL Cấu trúc và giao thức SSL tương ứng được minh họa trong hình dưới đây.SSL ám chỉ một lớp (bảo mật) trung gian giữa lớp vận chuyển và lớp ứng dụng.SSL được xếp lớp lên trên một dịch vụ vận chuyển định hướng nối kết và đáng tin cậy. Về khả năng, nó có thể cung cấp các dịch vụ bảo mật cho các giao thức ứng dụng tùy ý dựa vào TCP chứ không chỉ HTTP. Thực tế, một ưu điểm chính của các giao thức bảo mật lớp vận chuyển nói chung và giao thức SSL nói riêng là chúng độc lập với ứng dụng theo nghĩa là chúng có thể được sử dụng để bảo vệ bất kỳ giao thức ứng dụng được xếp lớp lên trên TCP một cách trong suốt.SSL có một định hướng máy khách-máy chủ mạnh mẽ và thật sự không đáp ứng các yêu cầu của các giao thức ứng dụng ngang hàng[4]. Hình 4.8: Cấu trúc của SSL và giao thức SSL 54  Tóm lại: SSL cung cấp sự bảo mật truyền thông vốn có ba đặc tính cơ bản:  Các bên giao tiếp có thể xác thực nhau bằng cách sử dụng mật mã khóa chung.  Sự bí mật của lưu lượng dữ liệu được bảo vệ  Tính xác thực và tính toàn vẹn của lưu lượng dữ liệu cũng được bảo vệ Để sử dụng SSL, máy khách và máy chủ đều phải sử dụng giao thức SSL:  Sử dụng các số cổng chuyên dụng được dành riêng bởi Internet Asigned Numbers Authority (IANA).M ột số cổng riêng biệt phải được gán cho mọi giao thức ứng dụng vốn sử dụng SSL.  Sử dụng số cổng chuẩn cho mọi giao thức ứng dụng và để thương lượng các tùy chọn bảo mật như là một phần của giao thức ứng dụng  Sử dụng một tùy chọn TCP để thương lượng việc sử dụng một giao thức bảo mật 4.3.6.3: Các giao thức bảo mật SSL  SSL Record Protocol SSL Record Protocol [4] [5] nhận dữ liệu từ các giao thức con SSL lớp cao hơn và xử lý việc phân đoạn, nén, xác thực và mã hóa dữ liệu. Chính xác hơn, giao thức này lấy một khối dữ liệu có kích cỡ tùy ý làm dữ liệu nhập và tọa một loạt các đoạn dữ liệu SSL làm dữ liệu xuất (hoặc còn được gọi là các bản ghi) nhỏ hơn hoặc bằng 16,383 byte. Hình 4.9: Các bước SSL Record Protocol 55 Các bước khác nhau của SSL Record Protocol vốn đi từ một đoạn dữ liệu thô đến một bản ghi SSL Plaintext (bước phân đoạn), SSL Compressed (bước nén) và SSL Ciphertext (bước mã hóa). Sau cùng, mỗi bản ghi SSL chứa các trường thông tin sau  Loại nội dung.  Số phiên bản của giao thức.  Chiều dài.  Tải trọng dữ liệu (được nén và được mã hóa tùy ý).  MAC. Loại nội dung xác định giao thức lớp cao hơn vốn phải được sử dụng để sau đó xử lý tải trọng dữ liệu bản ghi SSL (sau khi giải nén và giải mã hóa thích hợp). Số phiên bản của giao thức xác định phiên bản SSL đang sử dụng (thường là version 3.0). Mỗi tải trọng dữ liệu bản ghi SSL được nén và được mã hóa theo phương thức nén hiện hành và thông số mật mã được xác định cho session SSL. Lúc bắt đầu mỗi session SSL, phương pháp nén và thông số mật mã thường được xác định là rỗng. Cả hai được xác lập trong suốt quá trình thực thi ban đầu SSL Handshake Protocol. Sau cùng, MAC được thêm vào mỗi bản ghi SSL. Nó cung cấp các dịch vụ xác thực nguồn gốc thông báo và tính toàn vẹn dữ liệu. Tương tự như thuật toán mã hóa, thuật toán vốn được sử dụng để tính và xác nhận MAC được xác định trong thông số mật mã của trạng thái session hiện hành. Theo mặc định, SSL Record Protocol sử dụng một cấu trúc MAC vốn tương tự nhưng vẫn khác với cấu trúc HMAC hơn. Có ba điểm khác biệt chính giữa cấu trúc SSL MAC và cấu trúc HMAC:  Cấu trúc SSL MAC có một số chuỗi trong thông báo trước khi hash để ngăn các hình thức tấn công xem lại riêng biệt.  Cấu trúc SSL MAC có chiều dài bản ghi.  Cấu trúc SSL MAC sử dụng các toán tử ghép, trong khi cấu trúc MAC sử dụng moduloe cộng 2. Tất cả những điểm khác biệt này hiện hữu chủ yếu vì cấu trúc SSL MAC được sử dụng trước cấu trúc HMAC trong hầu như tất cả thông số kỹ thuật giao thức bảo mật Internet. Cấu trúc HMAC cũng được sử dụng cho thông số kỹ thuật giao thức TLS gần đây hơn 56 Một số giao thức con SSL được xếp lớp trên SSL Record Protocol. Mỗi giao thức con có thể tham chiếu đến các loại thông báo cụ thể vốn được gửi bằng cách sử dụng SSL Record Protocol. Thông số kỹ thuật SSL 3.0 xác định ba giao thức SSL sau đây:  Alert Protocol: được sử dụng để chuyển các cảnh báo thông qua SSL Record Protocol. Mỗi cảnh báo gồm 2 phần, một mức cảnh báo và một mô tả cảnh báo.  Handshake Protocol: là giao thức con SSL chính được sử dụng để hỗ trợ xác thực máy khách và máy chủ và để trao đổi một khóa session.  ChangeCipherSpec Protocol: được sử dụng để thay đổi giữa một thông số mật mã này và một thông số mật mã khác. Mặc dù thông số mật mã thường được thay đổi ở cuối một sự thiết lập quan hệ SSL, nhưng nó cũng có thể được thay đổi vào bất kỳ thời điểm sau đó Ngoài những giao thức con SSL này, một SSL Application Data Protocol được sử dụng để chuyển trực tiếp dữ liệu ứng dụng đến SSL Record Protocol.  SSL Handshake Protocol SSL Handshake Protocol[4] là giao thức con SSL chính được xếp lớp trên SSL Record Protocol. Kết quả, các thông báo thiết lập quan hệ SSL được cung cấp cho lớp bản ghi SSL nơi chúng được bao bọc trong một hoặc nhiều bản ghi SSL vốn được xử lý và được chuyển như được xác định bởi phương pháp nén và thông số mật mã của session SSL hiện hành và các khóa bảo mật mã của nối kết SSL tương ứng. Mục đích của SSL Handshake Protocol là yêu cầu một máy khách và máy chủ thiết lập và duy trì thông tin trạng thái vốn được sử dụng để bảo vệ các cuộc liên lạc. Cụ thể hơn, giao thức phải yêu cầu máy khách và máy chủ chấp thuận một phiên bản giao thức SSL chung, chọn phương thức nén và thông số mật mã, tùy ý xác thực nhau và tạo một khóa mật chính mà từ đó các khóa session khác nhau dành cho việc xác thực và mã hóa thông báo có thể được dẫn xuất từ đó. Các thuật toán mã hóa và xác thực của SSL được sử dụng bao gồm (version3.0):  DES: chuẩn mã hóa dữ liệu (1977).  DSA: thuật toán chữ ký điện tử, chuẩn xác thực điện tử.  KEA: thuật toán trao đổi khóa. 57  MD5: thuật toán tạo giá trị “băm”.  RC2, RC4: mã hóa Rivest.  RSA: thuật toán khóa công khai, cho mã hóa và xác thực.  RSA key exchange: thuật toán trao đổi khóa cho SSL dựa trên thuật toán RSA.  SHA-1: thuật toán hàm băm an toàn, phát triển và sử dụng bởi chính phủ Mỹ.  SKIPJACK: khóa đối xứng phân loại được thực hiện trong phần cứng Fortezza  Triple-DES: mã hóa DES ba lần. Cơ sở lý thuyết và cơ chế hoạt động của các thuật toán sử dụng về bảo mật trên hiện nay là phổ biến rộng rãi và công khai, trừ các giải pháp thực hiện trong ứng dụng thực hành vào trong các sản phẩm bảo mật (phần cứng, phần mềm). Đã có những kết luận cho rằng SSL cung cấp sự bảo mật hoàn hảo ngăn việc nghe lén và những cuộc tấn công thụ động khác, và người thực thi giao thức này sẽ ý thức đến một số cuộc tấn công chủ động tinh vi hơn. 4.3.7. Khai thác tính năng bảo mật của bộ thƣ viện WSE Có rất nhiều lựa chọn khác nhau có sẵn để giúp an ninh các Web Service và các tổ chức khác nhau có các tiêu chí khác nhau giải quyết vấn đề an ninh của họ. Và trong đồ án này, tôi xin lựa chọn nghiên cứu về WSE. WSE 3.0 (Web Services Enhancements 3.0) là bộ thư viện lập trình trên nền .NET, hỗ trợ trong việc xây dựng các dịch vụ web theo những chuẩn mới nhất như WS-Security, WS-SecureConversation, WS-Trust, WS-Policy, WS-SecurityPolicy, WS-Addressing và MTOM. WSE hỗ trợ các thẻ nhằm bảo mật thông tin các Request giữa Máy khách và Máy chủ. Với bộ thư viện WSE, chúng ta có thể đưa các tính năng liên quan đến bảo mật này vào dịch vụ web trong lúc thiết kế bằng cách sử dụng mã lệnh, hay vào thời điểm triển khai thông qua việc sử dụng các tập tin chính sách. Hiện nay bộ thư viện này đang được sử dụng rộng rãi trên thế giới, điều này giúp hệ thống có tính tương tác cao khi đưa vào sử dụng [5]. 4.3.7.1: Những tính năng bảo mật WS của WSE WSE sử dụng các cơ chế được định nghĩa trong Web Service Security để đặt các ủy quyền chứng thực như một thẻ bảo mật vào trong các thông điệp SOAP. Sau đó sẽ thực hiện kiểm tra tính hợp lệ của những thẻ này trước khi chuyển quyền thực thi 58 cho Web Service. WSE 2.0 hỗ trợ các loại thẻ sau: username/password, X.509 Certificate, Kerberos ticket, Security Context token và các loại security token do người dung định nghĩa. WSE còn cho phép các nhà phát triển xây dựng riêng cho mình các dịch vụ thẻ bảo mật. Các dịch vụ này có thể tạo ra các loại thẻ khác mà có thể dựng trong quá trình tương tác với các Web Service nào tin tưởng vào dịch vụ này. Thông qua việc hỗ trợ xác nhận số hay mã hóa các thông điệp SOAP sẽ tăng cường khả năng an toàn cho các Web Service. Xác nhận một số thông điệp SOAP sẽ giúp cho đối tượng nhận thông điệp kiểm tra được thông điệp có bị thay đổi hay không. Hình 4.10 : Xác nhận một số thông điệp Mã hóa thông điệp SOAP sẽ đảm bảo cho chỉ những WS mong muốn mới có thể đọc được nội dung của thông điệp đó. Hình 4.11 : Mã hóa một thông điệp 4.3.7.2: WSE hỗ trợ Policy WSE hỗ trợ nhà phát triển đưa ra các yêu cầu về quá trình gửi và nhận thông điệp bằng cách dung các tập tin câu hình. Và cũng tương tự như thế, phía gửi cũng phải viết mã lệnh để lấy được yêu cầu này từ phía nhà cung cấp. Nay thì các yêu cầu này có thể được cung cấp thông tin qua các tập tin cấu hình. 59 Khi các cơ chế xác nhận Policy được chỉ định thì:  Các thông điệp SOAP khi được gửi đi sẽ qua quá trình kiểm tra để đảm bảo chúng thỏa mãn các Policy assertion của phía gửi. Nếu không thỏa mãn, WSE sẽ đưa ra một ngoại lệ.  Các thông điệp SOAP trước khi được nhận vào sẽ phải được kiểm tra xem có đáp ứng được các Policy assertion của phía nhận hay không? Nếu không, thông điệp đó sẽ sẽ được gửi trả về hay một ngoại lệ sẽ được đưa ra.  WSE đã hỗ trợ sẵn một vài cơ chế xác nhận Policy (ví dụ: yêu cầu phần body của thông điệp phải được xác nhận – signed bởi một X.509 certificate). Ngoài ra, hệ thống Policy còn cho phép them những cơ chế xác nhận Policy khác do người dùng định nghĩa.  SOAP Messaging Đây là một tính năng nổi trội của WSE. SOAP messaging hỗ trợ nhiều nghi thức ở tầng vận chuyển HTTP, TCP, với giao diện bất đồng bộ hay đồng bộ. Đặc biệt, khi thực hiện việc gửi và nhận các thông điệp theo nghi thức TCP thi ta không cần phải có một WS.  Điều phối các thông điệp SOAP Ứng dụng WSE để xây dựng các ứng dụng phân tán mà kiến trúc phân tán của nó là trong suốt đối với người dùng. Ta sử dụng một máy tính trung gian và cấu hình nó chạy WSE router. Người dùng sẽ gửi yêu cầu đến WSE router thay vì trực tiếp đến WebServivce. WSE router sau đó sẽ chuyển thông điệp SOAP đến máy đang chạy WebService dựa trên thông tin cấu hình của router. Giải pháp này giúp hệ thống linh hoạt, bền vững hơn, và ta có thể thay đổi thông tin về các máy đích khi có sự cố xảy ra. Hình 4.12: Điều phối thông điệp SOAP 60  Gửi những đối tƣợng kèm theo các thông điệp SOAP WSE hỗ trợ nghi thức DIME (Direct Internet Message Encapsulation). Nghi thức này định nghĩa cơ chế để đính kèm những đối tượng khác trong thông điệp SOAP, cần thiết cho những Web Service có như cầu muốn gửi thông tin có kích thước lớn. Theo mặc định thì các thông điệp SOAP không thích hợp để gửi đính kèm các tập tin lớn.Định dạng thông điệp SOAP là theo XML nên khi thêm một tập tin vào đòi hỏi tập tin đó phải được chuyển đổi thành dạng XML. DIME giải quyết vấn đề này bằng cách định nghĩa một cơ chế đặt toàn bộ nội dung tập tin gốc nằm ở bên ngoài thông điệp SOAP, như vậy sẽ loại bỏ được việc phải chuyển đổi nội dung tập tin sang dạng XML. 61 CHƢƠNG 5: TRIỂN KHAI ỨNG DỤNG VÀ ĐÁNH GIÁ KẾT QUẢ Từ các kiến thức về SOA và Web Service cũng như các kỹ thuật bảo mật Web Service ở các chương trên, chương năm sẽ đề xuất giải pháp để thực hiện bài toán đã đặt ra, triển khai và xây dựng hệ thống. 5.1. Mô tả hệ thống cần xây dựng Hình 5.1: Hệ thống truyền dữ liệu cần xây dựng Hệ thống nghiên cứu và xây dựng bao gồm hai máy tính (máy Database Máy chủ và máy Web Máy chủ). Máy DatabaseMáy chủ là nơi sẽ lưu trữ cơ sở dữ liệu của hệ thống và thực hiện tạo một Web Service có nhiệm vụ hiển thị cơ sở dữ liệu trên trình duyệt. Máy DatabaseMáy chủ được cài đặt hệ điều hành Windows Máy chủ 2003 Enterprise Edition để giúp cho việc thiết lập các cơ chế IIS cũng như FTP dễ dàng hơn.Web Service luôn luôn sẵn sàng nhận lệnh và khi có một lời gọi tới nó Web Service sẽ được thực thi và phục vụ cho lời gọi đó. Nhiệm vụ của Web Service dùng để thực hiện câu lệnh kết nối cơ sở dữ liệu và được public trên hệ thống mạng. Máy WebMáy chủ là nơi sẽ thực hiện một lời gọi tới Web Service bằng một trình duyệt bất kỳ như FireFox, IE , Opera Lúc này khi cần hiển thị cơ sở dữ liệu, WebMáy chủ sẽ thực hiện một lời gọi và nhờ có Web Service đã được public trên hệ thống mà các cơ sở dữ liệu sẽ được hiển thị mà không cần phải truy cập trực tiếp vào máy DatabaseMáy chủ. 62 5.2. Triển khai hệ thống Để xây dựng một hệ thống hoàn chỉnh thực hiện chức năng hiển thị dự liệu cũng như việc bảo mật đòi hỏi phải có một thời gian dài. Trong thời gian qua tôi đã tiến hành nghiên cứu và sử dụng mô hình tương tác cơ sở dữ liệu giữa hai máy Database và máy Web, bước đầu được những kết quả và xây dựng xong chức năng hiển thị cơ sở dữ liệu mà hệ thống đặt ra và chạy thử. Ngôn ngữ mà tôi sử dụng để xây dựng hệ thống là ASP.NET của bộ Visual Studio 2008 và Microsoft SQL Máy chủ 2005. Với những tính năng nổi bật của ngôn ngữ này và nhận thấy phù hợp với việc xây dựng và triển khai hệ thống cần xây dựng. Ngoài ra tôi sử dụng các Application có sẵn trong hệ điều hành Windows XP như Internet Information Service (IIS), Microsoft .NET Framework 3.5 Hình 5.2: Cơ sở dữ liệu User trên máy DatabaseMáy chủ Máy WebMáy chủ thực thi việc gọi đến Web Service đã được public trên hệ thống để hiển thị cơ sở dữ liệu trên máy DatabaseMáy chủ bằng việc sử dụng một trình duyệt Hình 5.3: WebMáy chủ gọi tới Web Service để hiển thị dữ liệu 63 5.3. Tích hợp các thẻ bảo mật cho chƣơng trình với công cụ WSE Sau đó tôi sẽ cấu hình WSE 3.0 để tích hợp các thẻ bảo mật cho chương trình. Hình 5.5: Triển khai WSE 3.0 cho chương trình hệ thống Hai chức năng này cho phép chương trình sẽ được đặt trong môi trường bảo mật của WSE 3.0 với bộ thư viện Microsoft.Web.Service3.dll. Tại thẻ Security tôi thêm hai thẻ chính của WSE 3.0 là X509v3 Token Manager và Kerberos Token Manager. Ngoài ra tôi triển khai một Token trong Security Token Managers là Username Token Manager. Sau khi các thẻ trong thư viện WSE 3.0, chương trình đã được bảo mật. Những thông tin trong thông điệp Request mà bên WebMáy chủ gửi đến cho DatabaseMáy chủ để hiển thị dữ liệu cũng được mã hóa và bảo đảm. Và ngay cả trên đường truyền dữ liệu từ WebMáy chủ và DatabaseMáy chủ cũng đã được hỗ trợ bảo mật bởi Firewall được thiết lập mặc định trên các hệ điều hành. Thực thi WSE với công cụ WSE phải chắc chắn rằng máy tính của chúng ta đã được cài đặt Visual Studio 2008 và bộ thư viện WSE 3.0. Sau đó thực hiện các bước để cấu hình và triển khai bộ thư viện WSE 3.0 lên chương trình. Hình 5.4: Cấu hình WSE 3.0 64 Hình 5.6: Tích hợp thẻ Security vào trong WebService 5.4. Đánh giá kết quả chạy thử nghiệm chƣơng trình Qua thời gian chạy thử nghiệm cho thấy, chương trình thực hiện được chức năng cơ bản là hiển thị dữ liệu và đảm bảo được một số vấn đề an toàn cần thiết khi trao đổi dữ liệu. Kết quả: Việc sử dụng thẻ Username Token Manager đã giúp cho các bên tham gia giao tiếp xác thực lẫn nhau và tránh bị giả mạo. Dữ liệu trên đường truyền được mã hóa bởi hai cơ chế bảo mật X509v3 Token và Kerberos Token luôn được đảm bảo về tính bảo mật cao. 65 CHƢƠNG 6: KẾT LUẬN 6.1. Tổng kết Web Service đã và đang được triển khai và áp dụng trong nhiều lĩnh vực đời sống như ngân hàng, chứng khoán, trao đổi dữ liệu và ngày càng trở lên phổ biến. Cùng với sự phát triển của nó là những đòi hỏi về tính an toàn, khả năng bảo mật. Bằng việc sử dụng các kỹ thuật đảm bảo an ninh Web Service sẽ giúp cho người sử dụng Web Service trở nên an tâm hơn. Việc chọn cơ chế an toàn cho Web Service phải đòi hỏi sao cho người dùng không cảm thấy quá phức tạp hay gò bó mà phải tạo nên sự trong suốt với người dùng. Do đó, nên chọn các cơ chế an toàn mà Web Service phụ thuộc vào loại dịch vụ đó và những tính năng mà dịch vụ này cung cấp. Bên cạnh đó còn một điểm cần quan tâm đó là sự an toàn không chỉ phụ thuộc vào những giải thuật, những tiêu chuẩn, và những cơ chế an ninh Web Service mang lại, mà nó còn tùy vào thái độ của các công ty có hiểu rõ tầm quan trọng của an toàn thông tin khi triển khai các ứng dụng, giao dịch trên mạng hay không cũng rất cần thiết. 6.2. Kết quả đạt đƣợc của đồ án tốt nghiệp Sau thời gian nghiên cứu tài liệu, tìm hiểu các chương trình mã nguồn mở, tôi đã hoàn thành xong đồ án tốt nghiệp với bài toán ban đầu đặt ra là “Bảo mật Web Service”. Với việc lựa chọn chương trình trao đổi dữ liệu giữa hai máy tính trong mạng và đảm bảo anh ninh cho việc truyền dữ liệu. Đồ án đã đạt được một số kết quả sau: Phân tích bài toán và tính cấp thiết của việc đảm bảo an toàn cho các trang Web Service. Đưa ra hướng phát triển cho bài toán. Nghiên cứu về kiến trúc hướng dịch vụ SOA, Web Service và các thành phần. Mối quan hệ ứng dụng kiến trúc SOA vào xây dựng Web Service và tích hợp chúng theo chuẩn. Tìm hiểu thực trạng bảo mật Web Service hiện nay, các công nghệ đảm bảo an ninh Web Service như công nghệ bảo mật SSL và bộ thư viện WSE. Triển khai ứng dụng truyền dữ liệu giữa máy tính trong một mạng cục bộ và tích hợp thẻ bảo mật trong bộ thư viện WSE để bảo mật thông tin cho các bên tham gia. 66 6.3. Những hạn chế Để xây dựng được một hệ thống hoàn chỉnh có thêm nhiều chức năng và đảm bảo tuyệt đối những yêu cầu đặt ra, phải cần rất nhiều thời gian. Trong thời gian nghiên cứu và triển khai đồ án, tôi cũng đã cố gắng đạt được những kết quả nhất định, tuy nhiên vẫn còn nhiều hạn chế: Chương trình khá đơn giản chỉ với chức năng hiển thị dữ liệu, cũng như việc thiết kế dữ liệu chưa thực sự tốt. Không được đưa ra áp dụng thực tế nên sẽ có khả năng nhiều lỗi mà người nghiên cứu không thể phát hiện ra Về bảo mật, chưa tìm hiểu hết được các loại thẻ bảo mật Web Service, việc sử dụng bộ thư viện Web Service Enhancement vẫn chỉ dừng lại ở việc tích hợp vào chương trình mức cơ bản nhất, vẫn chưa đưa ra thực tế và sử dụng các phương pháp tấn công để kiểm tra độ bảo mật trên mức cơ bản của chương trình. Nếu có điều kiện, trong tương lai tôi sẽ cố gắng tìm hiểu thêm về những mặt hạn chế của đồ án này và cố gắng khắc phục để tạo ra một chương trình hoàn chỉnh và có thể áp dụng vào thực tế. 67 TÀI LIỆU THAM KHẢO Tài liệu Tiếng Việt [1]Đại học Khoa học tự nhiên – Đại học Quốc gia Hồ Chí Minh (2005), Nghiên cứu kiến trúc hướng dịch vụ (Service Oriented Architecture) và ứng dụng. Tài liệu Tiếng Anh [2]Doug Tidwell – James Snell – Pavel Kulchenko, Publíher: O’Reily(2001), Programming Web Services with SOAP. [3]Elisha Bertino – Lozenzo D.Martino – Federica Paci – Anna C.Squicciarini, Seurity for Web Services and Service Oriented Architecture. [4]Freier, A.O, Karlton, Kocher, Scout(1996), The SSL Protocol Version 3.0 online: [5]Hogg,Jane(2006),Microsoft, Web Service Security, Scenarios, Patterns, and Implementation Guidance for Web Service Enhancements (WSE 3.0) [6]Judith Hurwitz, Publisher: For Dummies, Service Oriented Architecture. [7]Jeaning Hall Gailey, Understanding Web Services Specifications and the WSE [8]OASIS Standard Specification, Web Service Security Kerberos Token Profile. [9]XML Key Management Specification (XKMS) (W3C Note, 30 Marc 2001), online:

Các file đính kèm theo tài liệu này:

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