1. Trang chủ
  2. » Thể loại khác

báo cáo an ninh mạng dịch vụ web an toàn và bảo mật webservice

66 0 0
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

SOA cung cấp cơ chế cho phép các hệ thống hoạt động trêncác nền tảng khác nhau có thể giao tiếp với nhau.Thiết kế SOA tách riêng phần thực hiện dịch vụ với giao tiếp gọi dịch vụ.Điều này

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

-BÁO CÁOAN NINH MẠNG

Đề tài: Dịch vụ Web An toàn và bảo mậtWebService

Học phần:An ninh mạng

Mã học phần - lớphọc:

Trang 2

Mục lục

TÓM TẮT NỘI DUNG 5

Chương 1 MỞ ĐẦU 6

1.1 Đặt vấn đề 6

1.2 Nội dung Bài toán 6

1.3 Mục Tiêu Của Báo Cáo 6

1.4 Cấu Trúc Của Báo Cáo 7

Chương 2 KIẾN TRÚC HƯỚNG DỊCH VỤ 7

1 Thực trạng 7

2 Một mô hình số mô hình kiến trúc phân tán 8

2.1 CORBA - Common Object Request Broker Architecture 8

2.2 EJB - Enterprise Java Bean 8

2.3 DCOM - Distributed Component Object Model 9

3 Khái niệm SOA 10

4 Đối tượng trong hệ thống SOA 11

5 Nguyên tắc và tính chất của SOA 12

5.1 Tách Biệt Dịch vụ (Service Separation): 12

5.2 Các dịch vụ tự hoạt động: 12

5.3 Các dịch vụ chia sẻ lược đồ: 12

5.4 Tính tương thích dựa trên chính sách: 12

5.5 Loose coupling ( kết nối lỏng ) 13

7 Lợi ích khi sử dụng SOA 15

Chương 3 WEB SERVICE 16

Trang 3

1 Giới thiệu về Service 16

3.5 Tích hợp mô tả trình bày tổng hợp UUID 26

5 Các loại Web Service 29

5.1 SOAP Web Service 29

5.2 RESTful Web Service 30

6 Sự khác nhau giữa SOA và Web Service 30

Chương 4 AN TOÀN BẢO MẬT WEB SERVICE 31

1 Tổng quan về an toàn WebService 31

2 Bảo mật WebService 32

2.1 Khái niệm 32

2.2 Chứng thực trong một ứng dụng 32

2.3 Các bước tạo sự an toàn thông tin trong một ứng dụng 32

3 Một số hình thức tấn công Web Service phổ biến và biện pháp 33

2.1 SQL Injection (SQLi): 33

2.2 Cross-Site Scripting (XSS): 33

2.3 Cross-Site Request Forgery (CSRF): 34

2.4 XML External Entity (XXE): 34

2.5 Security Misconfigurations: 35

2.6 Denial of Service (DoS) và Distributed Denial of Service (DDoS): 35

Trang 4

4 Giới thiệu các kỹ thuật WebService Security 35

Bước 2: bật Wireshark, capture loopback adapter 55

Bước 3: chạy client 55

Bước 4: Tìm TCP hoặc TLS package rồi follow TCP, từ đấy tìm được các gói tin trong handshake 56

TCP 3-Way Handshake ( (3 Gói Tin Ban Đầu): 56

TLS 1.3 Handshake (Bắt Tay - 5 Gói Tin): 57

Trao đổi dữ liệu sau Handshake: 58

Trang 5

TÓM TẮT NỘI DUNG

Ngày nay, công nghệ thông tin đang đóng vai trò quan trọng trong chiến lược phát triển kinh tế và xây dựng đất nước của hầu hết các quốc gia Các sản phẩm công nghệ thông tin đang và đã được áp dụng rộng rãi trong mọi lĩnh vực của đời sống kinh tế, xã hội, mang lại những giá trị thiết thực Đối tượng phục vụ chủ yếu của ngành công nghệ thông tin hiện nay là các tổchức, doanh nghiệp

Bảo mật luôn là một vấn đề hàng đầu cho tất cả các loại ứng dụng, đặcbiệt là các ứng dụng web Từ những ngày đầu của Internet, sự quan tâm đến tính an toàn trong trao đổi thông tin đã nổi lên Mặc dù không có sự an toàn tuyệt đối, nhưng những phát triển trong lĩnh vực này diễn ra nhanh chóng và mang lại nhiều thành quả vì đây là vấn đề cấp bách của nhiều doanh nghiệp.Không có một mức an toàn thích hợp, sự phát triển thương mại của Internet không hoàn toàn an toàn Do đó, những giải pháp để kiểm soát, mã hóa thông tin và chữ ký số có thể cung cấp một mức độ an toàn.

Chính vì vậy, an toàn của Web Service trên mạng cũng không thể nằm ngoài vấn đề này Có thể nói rằng ngày nay, ngoài việc nghiên cứu làm thế nào để tạo ra một Web Service hiệu quả mang lại nhiều lợi ích, việc nghiên cứu làm thế nào để đảm bảo an toàn cho Web Service cũng là một trong những vấn đề quan trọng nhất Thật khó tin để sử dụng một dịch vụ mua chứng khoán, chuyển tiền trực tuyến, hoặc truyền cơ sở dữ liệu giữa hai máy tính mà không có sự an toàn cần thiết Báo cáo của nhóm em tập trung sâu vào nghiên cứu về công nghệ Web Service và các vấn đề an toàn liên quan, sử dụng chúng để giải quyết bài toán đã đề ra.

Trang 6

Chương 1 MỞ ĐẦU 1.1.Đặt vấn đề

Ngày nay, cùng với sự phát triển của Internet, Web Service cũng trở thànhmột kỹ thuật được sử dụng để liên kết và tương tác giữa các ứng dụng trêncác máy tính khác nhau thông qua môi trường Internet Ngày càng có nhiềunhà cung cấp dịch vụ muốn đưa các dịch vụ ra công cộng và vấn đề lớn nhấtmà các nhà cung cấp đang phải đối mặt chính là bảo mật cho Web Service.Việc đảm bảo an toàn cho Web Service là một vấn đề đặc biệt quan trọngnhất là đối với những dịch vụ liên quan tài chính, thị trường chứng khoán vàthương mại điện tử Vấn đề bài toán đặt ra là làm thế nào để những thôngtin, dữ liệu được trao đổi một cách an toàn mà không bị tấn công.

1.2.Nội dung Bài toán

Với những yêu cầu mà thực tế đặt ra, báo cáo này sẽ tìm hiểu và làm rõcác kỹ thuật bảo mật Web Service hiện có Trong báo cáo này, chúng emcũng sẽ thực hiện xây dựng một hệ thống đơn giản để thực hiện việc trao đổidữ liệu giữa hai máy tính trong mạng cục bộ và bảo mật dữ liệu trên đườngtruyền

1.3.Mục Tiêu Của Báo Cáo

Để thực hiện các vấn đề nêu ra như trên, báo cáo sẽ lần lượt trình bàynhững kiến thức cần thiết để giải quyết yêu cầu của bài toán đặt ra Báo cáosẽ tập trung vào một số vấn đề sau:

Tìm hiểu khái quát về kiến trúc hệ thống dịch vụ SOA.

Tìm hiểu công nghệ Web Service, kiến trúc và các thành phần WebService.

Tìm hiểu các kỹ thuật bảo mật Web Service.Triển khai ứng dụng về bảo mật Web Service.

1.4.Cấu Trúc Của Báo Cáo

Báo cáo bao gồm các chương như sau:

Trang 7

Nguyên nhân khiến cho độ phức tạp của các hệ thống phần mềm khôngngừng tăng cao như thế là do sự xuất hiện của nhiều công nghệ mới tạo nênmôi trường không đồng nhất, trong khi nhu cầu về trao đổi, chia sẻ, tươngtác giữa các hệ thống không thể đáp ứng được trong một môi trường nhưvậy Một nguyên nhân khác cũng góp phần đến tình trạng khó khăn như thếchính là vấn đề lặp trình đồng thời và không thể tái sử dụng.

Những vấn đề trước đó chưa giải quyết, mà nay các tổ chức lãnh đạo phảiđối mặt với những thách thức mới: đáp ứng nhanh chóng các sự thay đổi vềthiết bị, giảm chi phí phát triển, tăng tính tương thích và khả năng tái sửdụng, Tất cả tạo nên một áp lực nặng nề đối với các nhà phát triển phầnmềm.

Trang 8

2 Một mô hình số mô hình kiến trúc phân tán

Ba kiến trúc phân tán nhóm em đánh giá là CORBA, DCOM và EJB Các kiếntrúc này là sự mở rộng của các hệ thống hướng đối tượng bằng cách chophép phân tán các đối tượng trên mạng Đối tượng có thể tồn tại trong khônggian bên ngoài ứng dụng, hoặc trên một máy khác so với máy chứa ứngdụng, trong khi vẫn có thể được tham chiếu và sử dụng như một phần củaứng dụng.

2.1 CORBA - Common Object Request Broker Architecture

CORBA, hay Các Object Request Broker Architecture Common, là mộtđặc điểm kỹ thuật được phát triển bởi Object Management Group (OMG).CORBA mô tả một cơ chế thông điệp mà các đối tượng phân phối qua mạngcó thể giao tiếp với nhau mà không phụ thuộc vào nền tảng và ngôn ngữ sửdụng để phát triển chúng Điều này giúp tạo ra một môi trường phát triểnphần mềm phân tán linh hoạt và khả năng tương tác giữa các đối tượng từcác nguồn khác nhau, bất kỳ ngôn ngữ nào cũng có thể tương tác với nhauthông qua CORBA.

Ưu điểm của CORBA là các lập trình viên có thể chọn bất kỳ ngôn ngữ,nền tảng phần cứng, giao thức mạng và công nghệ để phát triển mà vẫnthỏa mãn các tính chất của CORBA Tuy nhiên, CORBA có một số nhược điểmnhư ngôn ngữ lập trình cấp thấp, rất phức tạp, khó hiểu và cần một đội ngũphát triển có kinh nghiệm Ngoài ra, các đối tượng CORBA cũng khó có thểtái sử dụng.

2.2 EJB - Enterprise Java Bean

EJB (Enterprise JavaBeans) là một thành phần nằm ở phía server-sidecủa ứng dụng web hoặc có thể hiểu là một phần trong kiến trúc Java EE EJBlà nền tảng cho phép xây dựng phần mềm có tính di động, khả năng tái sửdụng cao, và tính bảo mật, đây là những đặc điểm quan trọng của EJB.

Một điểm quan trọng khác là EJB hướng tới các ứng dụng có quy mô lớn vàphù hợp với mô hình phân tán EJB được chia làm ba loại chính:

Trang 9

Entity beans: Tương tự như các đối tượng thực thể (entity object), chứathông tin tác vụ và các phương thức hoạt động của nó.

Session beans: Quản lý các nhiệm vụ tác nghiệp của Client và Server.Client tương tác với server bằng cách triệu hồi các phương thức sessionbean thông qua một môi trường mạng, có thể là HTTP Session Beansau đó gọi tới entity bean tương ứng để thực hiện tác vụ mà client yêucầu Session bean có thể chia làm hai loại chính:

Stateless: Trạng thái client không được lưu lại cho những lần giaodịch sau Mỗi giao dịch là độc lập với nhau.

Stateful: Trạng thái giao tác của client được lưu trữ lại phục vụcho những lần kế tiếp.

Message-driven beans: Chịu trách nhiệm điều khiển các tin nhắn giữaclient và server.

2.3 DCOM - Distributed Component Object Model

DCOM (Distributed Component Object Model) là một mô hình phân tán dễtriển khai với chi phí thấp, hỗ trợ việc tích hợp chặt chẽ giữa các ứng dụng vàhệ điều hành Mô hình Component Object Model (COM) định nghĩa cách cácthành phần và Máy khách liên lục trao đổi với nhau trên cùng một máy.DCOM mở rộng COM bằng cách sử dụng các giao thức trên mạng chuẩn khicần trao đổi dữ liệu với máy khác DCOM hỗ trợ kết nối giữa các đối tượng vàcó thể được thay đổi trong khi đang chạy Các đối tượng DCOM được triểnkhai bên trong các gói nhóm phân chia chứa các lệnh quản lý chu kỳ sốngcủa đối tượng và việc đăng ký nó

DCOM mang lại nhiều ưu điểm như tính ổn định, không phụ thuộc vào vị tríđịa lý, quản lý kết nối hiệu quả và dễ dàng mở rộng, là một lựa chọn tốt chocác doanh nghiệp sử dụng công nghệ của Windows để chạy các ứng dụng cóyêu cầu cao về chính xác và ổn định Tuy nhiên, các công nghệ của Microsoftcó một nhược điểm lớn là chúng hạn chế trên nền tảng Windows.

Trang 10

3 Khái niệm SOA

Theo đó SOA là một phong cách kiến trúc để tạo ra một công trình kiếntrúc IT Kiến trúc này khai thác các nguyên tắc của hệ thống dịch vụ để tạora các mối quan hệ chặt chẽ giữa doanh nghiệp và hệ thống thông tin, nhằmhỗ trợ các doanh nghiệp.

Kiến trúc hệ thống dịch vụ là một phương tiện kết nối với việc thiết kế vàtích hợp phần mềm, chức năng, hệ thống dưới dạng mô-đun, với mỗi mô-đuncó tính chất "kết nối lỏng" và có khả năng truy cập thông qua môi trườngmạng Một cách đơn giản, hệ thống SOA là một tập hợp các dịch vụ đượcchuẩn hóa trên mạng trao đổi với nhau trong ngữ cảnh của một tiến trìnhnghiệp vụ.

SOA đưa ra giải pháp để giải quyết các vấn đề tồn tại của các hệ thốnghiện nay như sự phức tạp, không linh hoạt và không ổn định Một hệ thốngtriển khai theo mô hình SOA có khả năng mở rộng dễ dàng và liên kết tốt.Điều này là cơ sở và nền tảng cho việc tích hợp, tái sử dụng lại những tàinguyên hiện có SOA cung cấp cơ chế cho phép các hệ thống hoạt động trêncác nền tảng khác nhau có thể giao tiếp với nhau.

Thiết kế SOA tách riêng phần thực hiện dịch vụ với giao tiếp gọi dịch vụ.Điều này tạo ra một giao tiếp nhất quán cho ứng dụng khách Thay vì xâydựng các ứng dụng lớn và phức tạp, nhà phát triển sẽ xây dựng các dịch vụtinh giản có thể triển khai và tái sử dụng trong toàn bộ quy trình nghiệp vụ.Điều này cho phép tái sử dụng phần mềm hiệu quả hơn và tăng tính linhhoạt vì nhà phát triển có thể cải tiến dịch vụ mà không ảnh hưởng đến ứngdụng của máy khách.

Thực tế, việc hướng tới một hệ thống SOA không phải là mới CommonObject Request Broker Architecture (CORBA) và mô hình DistributedComponent Object Model (DCOM) của Microsoft cũng như Enterprise JavaBean (EJB) của Java đã cung cấp tính năng này từ lâu Tuy nhiên, nhữngphương tiện này còn gặp phải những vấn đề khó khăn như trên và SOA

Trang 11

không chỉ là một cải tiến đáng kể giúp giải quyết những yếu điểm của cáccông nghệ trước đó mà còn mang lại nhiều ưu điểm nổi trội hơn.

4 Đối tượng trong hệ thống SOA

Service Provider: Cung cấp dịch vụ phục vụ cho một nhu cầu nào đóService Consumer: Người dùng sử dụng các dịch vụ của ServiceProvider

Service Registry: Nơi lưu trữ thông tin về các dịch vụ khác nhau,Service

Service Broker: Nó quản lý việc định tuyến, chuyển đổi định dạng, xácthực, và quản lý luồng thông điệp trong hệ thống

5 Nguyên tắc và tính chất của SOA

5.1 Tách Biệt Dịch vụ (Service Separation):

Các dịch vụ thực hiện quá trình tương tác chủ yếu thông qua thành phầngiao tiếp Thành phần giao tiếp sẽ quy định định dạng thông điệp nào sẽđược chấp nhận và thông điệp nào sẽ không được xử lý Đây là cách duynhất mà các đối tượng bên ngoài có thể truy cập thông tin và chức năng của

Trang 12

dịch vụ Chỉ cần gửi các thông điệp theo các định dạng được định nghĩa màkhông cần quan tâm đến cách xử lý của dịch vụ như thế nào

5.2 Các dịch vụ tự hoạt động:

Các dịch vụ cần được triển khai và hoạt động như những thực thể độc lậpmà không phụ thuộc vào một dịch vụ khác Dịch vụ phải có tính bền vữngcao, nghĩa là nó sẽ không bị sụp đổ khi có sự cố Để thực hiện điều này, dịchvụ cần duy trì đầy đủ thông tin cần thiết cho quá trình hoạt động của mìnhđể có thể tiếp tục hoạt động trong trường hợp một dịch vụ cộng tác bị hỏngvà để tránh các cuộc tấn công từ bên ngoài (như gửi thông điệp lỗi hoặc gửithông điệp quá tải) bằng cách sử dụng các kỹ thuật về an toàn và bảo mật.

5.3 Các dịch vụ chia sẻ lược đồ:

Các dịch vụ nên cung cấp thành phần giao tiếp ra bên ngoài, và hỗ trợchia sẻ cấu trúc thông tin, ràng buộc dữ liệu thông qua các loại dữ liệu chuẩn(như ngôn ngữ chung, hệ thống chuẩn) Như vậy, hệ thống sẽ có tính liên kếtvà khả năng dễ mở rộng.

5.4 Tính tương thích dựa trên chính sách:

Một dịch vụ khi muốn tương tác với một dịch vụ khác thì phải thỏa mãncác chính sách và yêu cầu của dịch vụ đó như là mức độ hòa nhập, bảomật Để thực hiện điều này, mỗi dịch vụ cần phải cung cấp công khai cácyêu cầu, chính sách đó.

5.5 Loose coupling ( kết nối lỏng )

SOA (Kiến trúc Dịch vụ Hướng) ủng hộ mối quan hệ "lỏng lẻo" giữa cácdịch vụ, nghĩa là các dịch vụ không ràng buộc quá nhiều vào nhau

Ý nghĩa: Các thành phần trong hệ thống nên liên kết "lỏng lẻo", có nghĩalà chúng không phụ thuộc quá mức lớn vào nhau Điều này giúp hệ thốnglinh hoạt và dễ dàng thay đổi khi cần thiết mà không làm ảnh hưởng đến cácthành phần khác

Trang 13

Lợi ích: Giảm sự phụ thuộc giữa các thành phần, tăng khả năng thay đổivà mở rộng mà không làm ảnh hưởng đến các thành phần khác.

5.6 Tái sử dụng lại dịch vụ

Bởi vì các dịch vụ được cung cấp trên mạng và được đăng ký ở một nơinhất định, nên chúng dễ dàng được tìm thấy và tái sử dụng Các dịch vụ cóthể được tái sử dụng bằng cách kết hợp lại với nhau để đáp ứng nhiều mụcđích khác nhau Tái sử dụng các dịch vụ cũng giúp loại bỏ những thành phầntrùng lặp và tăng độ vững chắc trong cài đặt, đồng thời đơn giản hóa quảntrị.

5.7 Quản lý các chính sách

Khi sử dụng các dịch vụ chia sẻ trên mạng, tùy thuộc vào từng ứng dụng sẽ có một tập hợp luật kết hợp riêng gọi là chính sách và thiết kế tách biệt Nếu không sử dụng chính sách, nhóm nhân viên phát triển phần mềm, nhóm điều hành và nhóm hỗ trợ phải làm việc với nhau trong quá trình triển khai và kiểm thử những chính sách đó Ngược lại, nếu sử dụng chính sách, những nhân viên phát triển phần mềm chỉ cần tập trung vào quy trình nghiệp vụ trong khi nhóm điều hành và nhóm hỗ trợ tập trung vào các luật kết hợp.

5.8 Tự hồi phục

Với quy mô và độ phức tạp của các ứng dụng phân tán hiện nay, khả năngphục hồi của một hệ thống sau khi xảy ra lỗi trở thành một yếu tố quantrọng Một hệ thống có khả năng tự hồi phục sau khi bị lỗi mà không cần sựcan thiệp của con người.

Trong kiến trúc ảnh hưởng dịch vụ (SOA), các dịch vụ luôn có thể hoạtđộng hoặc ngừng bất kỳ lúc nào, đặc biệt là đối với những ứng dụng tổnghợp từ nhiều dịch vụ của nhiều tổ chức khác nhau Độ tin cậy phụ thuộc vàokhả năng phục hồi của phần cứng sau khi xảy ra lỗi Một khía cạnh khác ảnhhưởng đến độ tin cậy là kiến trúc mà ứng dụng được xây dựng trên đó Mộtkiến trúc hỗ trợ kết nối và thực thi động khi chạy sẽ có khả năng tự phục hồicao hơn so với một hệ thống không hỗ trợ những tính năng này.

Trang 14

5.9 Khả năng cộng tác

Service-Oriented Architecture (SOA) là một phương pháp tiếp cận kiến trúc phầnmềm, tập trung vào khả năng tương tác và cộng tác giữa các hệ thống khác nhau.Trong SOA, mỗi dịch vụ được xem như là một đơn vị tự đủ, cung cấp một giao diệnmà các hệ thống khác có thể gọi và tương tác.

6 Một số mô hình triển khai SOA6.1 Service Registry

Đây là mô hình truyền thống để định vị và liên kết các dịch vụ trongmột hệ thống SOA Mô hình này về cơ bản chỉ sử dụng các chuẩn Webservices thông thường như SOAP, WSDL và UDDI Các liên kết dịch vụ trongmô hình là kết nối tĩnh và phải được định nghĩa trong quá trình thiết kế, điềunày làm cho mô hình trở nên cứng nhắc Có một cách tiến xa hơn để làm chomô hình này linh hoạt hơn là tìm kiếm và định vị các dịch vụ khi chạy UDDIhỗ trợ nhiều cấu hình khác nhau cho cùng một dịch vụ cung cấp bởi nhiềunhà cung cấp dịch vụ khác nhau.

6.2 Service Broker

Trong mô hình cơ bản, tất cả các thông điệp được trung chuyển quaService broker Dịch vụ này có thể thực hiện nhiều chức năng như định tuyếndựa trên dữ liệu thông điệp, xử lý lỗi, chuyển đổi thông điệp, chia tải và lọcthông tin Nó cũng có thể cung cấp các dịch vụ bảo mật, chuyển đổi giaothức, lưu vết Tuy nhiên, Service broker có thể tạo ra hiện tượng nghẽn cổchai và là điểm có khả năng hỏng hóc.

Mô hình broker phân tán là một bước tiến mới, trong đó mỗi nền tảngdịch vụ có một Broker cục bộ cho phép giao tiếp với một Service brokertrung tâm và giao tiếp trực tiếp với các Service broker cùng cấp trên các nềntảng dịch vụ khác nhau Điều này giúp giảm nguy cơ nghẽn cổ chai và tăngtính đồng nhất trong hệ thống.

Trang 15

6.3 Service Bus

Đây là mô hình mới nhất trong ba mô hình, và nó đã được sử dụng trongcác sản phẩm thương mại lớn như IBM, BEA Service bus cũng là mô hình cótính kết nối lỏng nhất trong các mô hình, trong đó các dịch vụ không kết nốitrực tiếp với nhau mà thay vào đó tạo thành một mạng Service bus.

7 Lợi ích khi sử dụng SOA

Hệ thống đảm bảo các dịch vụ có tính độc lập caoRút ngắn thời gian đưa ra thị trường

Tăng tính linh hoạt và khả năng triển khai cài đặtTăng khả năng mở rộng và sẵn sàng

Một hệ thống được thiết kế theo kiểu hướng Service là một hệ thống trong đó các chức năng của hệ thống được xây dựng dựa trên các service có độ kết dính thấp Các service trong hệ thống giao tiếp với nhau thông qua việc gửi nhận các thông điệp

Trang 16

1.2.Đặc điểm:

Mỗi service được xây dựng dựa trên các giao diện chuẩn hóa đã được sử dụng rộng rãi Chi tiết hiện thực của mỗi service sẽ không được thể hiện ra bên ngoài Mỗi service chỉ công bố một số các giao diện của nó mà người dùng có thể sử dụng để gửi các yêu cầu và nhận kết quả trả về.

Mỗi service có tính độc lập cao, có thể được xây dựng và đưa vào sử dụng mà không phụ thuộc vào các service khác.

Trao đổi dữ liệu: Các service không truyền các class và type trực tiếp Thay vào đó, các class và type sẽ được đặc tả hình thức.

2 Giới thiệu tổng quan về WebService1.1.Khái niệm:

Web Service là một giao diện truy cập mạng đến các ứng dụng chức năng,được xây dựng từ việc sử dụng các công nghệ chuẩn Internet

Thuật ngữ Web Service diễn tả một cách thức tích hợp các ứng dụng trên nền website liên kết với nhau bằng cách sử dụng các công nghệ XML, SOAP, WSDL, UDDI trên nền tảng các giao thức Internet với mục tiêu tích hợp ứng dụng và truyền thông điệp XML được sử dụng để ánh dấu dữ liệu, SOAP đượcdùng để truyền dữ liệu, WSDL được sử dụng để mô tả các dịch vụ có sẵn và UDDI được sử dụng để liệt kê những dịch vụ nào hiện tại đang có sẵn để có thể sử dụng Web Service cho phép các tổ chức có thể trao đổi dữ liệu với nhau mà không cần phải có kiến thức hiểu biết về hệ thống thông tin nằm sau Firewall.

Không giống như mô hình khách/chủ truyền thống, Web Service không cung cấp cho người dùng một giao diện đồ họa nào Web Service đơn thuần chỉ là việc chia sẻ các dữ liệu logic và xử lý các dữ liệu đó thông qua một giao diện chương trình ứng dụng được cài đặt xuyên suốt trên mạng máy tính Web Service cho phép các ứng dụng khác nhau từ các nguồn khác nhaucó thể giao tiếp với các ứng dụng khác mà không đòi hỏi nhiều thời gian lập

Trang 17

trình, do tất cả các quá trình giao tiếp đều tuân theo định dạng XML, cho nênWeb Service không phụ thuộc vào bất kỳ hệ điều hành hay ngôn ngữ lập trình nào.

Web Service cung cấp tính trừu tượng cho các giao diện chuẩn, cho nên sẽ không xuất hiện bất kỳ vấn đề gì trong quá trình tương tác Web Service cho phép giao tiếp giữa các nền tảng khác nhau có thể hoạt động cùng nhau theo nguyên tắc tạo ra một nền tảng trung gian có liên quan.

Tóm lại, Web Service là:

Làm việc xuyên qua tường lửa và proxy.

Sẵn sàng tương thích với các nền tảng máy trạm khác nhau.Một dịch vụ phần mềm được trình bày trên web thông qua giao thứcSOAP, được mô tả bằng một tệp WSDL và được đăng ký trên UDDI."

Web Service rất linh động: với UDDI và WSDL, việc mô tả và phát triển Web Service có thể tự động hóa.

Web Service bao gồm nhiều mô-đun và có thể công bố trên mạng Internet

Web Service có thể chia sẻ và gọi thực hiện qua mạng và có độ an toàn riêng.

Trang 18

3 Mô hình Web Service ưu điểm, nhược điểm 2.1.Mô hình WebService

Nhà cung cấp đăng ký Dịch vụ Web với UDDI.

Người sử dụng tìm kiếm dịch vụ trên UDDI qua một URL thíchhợp.

UDDI trả về một bản mô tả WSDL cho nhà cung cấp.

Người sử dụng triệu gọi dịch vụ bằng một cuộc gọi SOAP tới nhàcung cấp.

Nhà cung cấp trả về kết quả của cuộc gọi SOAP cho người sửdụng.

2.2.Ưu điểm

Web Service cho phép chương trình được viết bằng các ngôn ngữkhác nhau trên các nền tảng khác nhau tương tác được với nhaudựa trên một nền tảng tiêu chuẩn

Đơn giản (chỉ sử dụng URL)

Trang 19

Làm việc với các giao thức chuẩn Web như XML, HTTP và TCP/IP Sự an toàn của máy chủ và cơ sở dữ liệu luôn được bảo mật mộtcách chắc chắn.

Web Service giảm giá thành cho việc tích hợp các hệ thống khácnhau

2.3.Nhược điểm

Phụ thuộc vào tốc độ đường truyền Internet,

Web Service thiếu cơ chế khôi phục dữ liệu tin cậy để đảm bảogiao dịch được khôi phục lại trạng thái ban đầu trong trường hợpxảy ra sự cố

Số lượng các ứng dụng cộng tác cùng hoạt động sẽ ảnh hưởng tớihiệu suất tối ưu của Web Service

Ứng dụng Web Service là các ứng dụng sử dụng rất nhiều thôngđiệp, khả năng bùng nổ số lượng giao dịch trao đổi có thể làm hệthống máy chủ ứng dụng và kiến trúc hạ tầng hệ thống thông tincủa doanh nghiệp trở nên không ổn định

Vì Web Service đòi hỏi kết nối thông qua nhiều máy chủ trunggian, băng thông/tốc độ của hạ tầng mạng và các yếu tố liênquan tới hệ thống đóng một vai trò quan trọng trong việc cảithiện hiệu suất của toàn bộ các ứng dụng Web Service.

4 Các thành phần chính của Web Service3.1.Giao thức giao vận HTTP

Tầng giao vận liên quan tới cơ chế sử dụng để chuyển yêu cầu dịch vụ vàthông tin phản hồi từ phía nhà cung cấp dịch vụ tới người sử dụng dịch vụ.Có rất nhiều tiêu chuẩn sử dụng xung quanh Web Service, nhưng phổ biếnnhất vẫn là giao thức HTTP.

Giao thức HTTP thường được sử dụng đối với yêu cầu dịch vụ và phản ứng.

Trang 20

Giao thức này không hỗ trợ lưu trữ trạng thái và không phải là mộtgiao thức đáng tin cậy phù hợp với nhu cầu truyền dữ liệu

3.2.Giao thức truyền thông SOAP

SOAP là giao thức được định nghĩa để chuyển một XML message từ A đếnB, sử dụng giao thức web chuẩn HTTP (hoạt động trên cổng 80) qua giaothức Internet TCP/IP.

3.2.1 Khái niệm

SOAP là giao thức truyền thông giữa các ứng dụng.

SOAP được thiết kế để liên kết qua Internet và làm việc quatường lửa.

SOAP độc lập nền tảng, độc lập ngôn ngữ.SOAP dựa trên XML, đơn giản và dễ mở rộng.3.2.2 Đặc trưng

SOAP được thiết kế đơn giản và có khả năng mở rộng.Tất cả các thông điệp SOAP đều được mã hóa bằng XML.

Trang 21

SOAP sử dụng một giao thức truyền dữ liệu riêng.

SOAP không bị ràng buộc bởi ngôn ngữ lập trình hoặc công nghệcụ thể.

SOAP không quan tâm đến công nghệ được sử dụng để thực hiện,miễn là người dùng sử dụng các thông điệp theo định dạng XML.3.2.3 Định dạng thông điệp

Một thông điệp SOAP là một văn bản XML được xác định bởi một thànhphần Envelope, bao gồm một thành phần Body bắt buộc và một thành phầnHeader không bắt buộc Thành phần Body có khả năng chứa nhiều BodyEntries Thành phần Fault, không bắt buộc, chỉ xuất hiện trong thông điệp khicó báo cáo về một quá trình xử lý ngoại lệ.

Phần tử Body mô tả về phương thức dưới dạng XML và chỉ chứa các thamsố hoặc các trường trong các thẻ.

3.2.4 Mã hóa thông điệp

Dữ liệu được mã hóa và gói vào trong phần tử Body của một thông điệpvà được gửi đến Host Host giải mã dữ liệu được định dạng XML về dạng đốitượng ban đầu.

SOAP Remote Procedure Call (RPC encoding): Là kiểu mã hóa đơn giảnnhất cho người phát triển Bạn gọi tới một đối tượng từ xa, kèm theo là cáctham số cần thiết Các tham số được chuyển lần lượt dưới dạng XML vàtruyền đến đích sử dụng giao thức giao tiếp như HTTP hay SMTP Sau khinhận được, dữ liệu được chuyển trở lại thành đối tượng và kết quả được trảvề cho phương thức gọi SOAP RPC xử lý tất cả công việc mã hóa và giải mã,thậm chí đối với các kiểu dữ liệu phức tạp.

SOAP Remote Procedure Call Literal encoding (SOAP RPC-literal): Sử dụngmột phương thức mã hóa do người sử dụng chỉ định để mã hóa và giải mã dữliệu dưới dạng XML.

Trang 22

SOAP document-style encoding: Toàn bộ XML được gửi đến máy chủ vàngười lập trình xác định giao thức giao tiếp, phân tích dữ liệu dưới dạng XMLtrong thông điệp yêu cầu và đáp ứng để tìm dữ liệu cần thiết.

3.2.5 Quá trình xử lý thông điệpa) Chuyển Yêu Cầu từ Khách Hàng:

Processor của khách hàng chuyển lời yêu cầu phương thức vào thôngđiệp SOAP.

b) Truyền Thông Điệp qua Tầng Giao Tiếp:

Thông điệp được truyền qua tầng giao tiếp sử dụng HTTP và SMTP.

c) Xử Lý ở Processor của Nơi Cung Cấp:

Thông điệp được phân tích thành lời yêu cầu phương thức.Nơi cung cấp thực hiện bước logic cần thiết.

Kết quả được trả về cho processor của nơi cung cấp.d) Truyền Thông Điệp Phản Hồi:

Thông điệp phản hồi được truyền qua tầng giao tiếp.e) Xử Lý ở Processor của Khách Hàng:

Processor của khách hàng phân tích thông điệp phản hồi.Kết quả được đưa ra dưới dạng một đối tượng.

Trang 23

XML được thiết kế để lưu trữ và trao đổi dữ liệu mà không hiển thịcách dữ liệu được hiển thị

XML có thể trao đổi dữ liệu giữa các hệ thống không tương thích.3.3.3 Nguyên tắc cấu trúc

a) Cấu trúc

XML hợp khuôn định: Khai báo XML và dữ liệu XML.

XML hợp lệ: Là tài liệu được kết hợp với định nghĩa kiểu tử liệu(Document Type Definition) và tuân theo tiêu chuẩn đó.

Trang 24

Các thẻ XML phân biệt chữ hoa_chữ thường và khoảng trắng được giữlại.

Các giá trị thuộc tính phải luôn được đặt trong ngoặc kép.3.3.4 Ưu nhược điểm

a) Ưu điểmSự độc lập:

XML mô tả dữ liệu ở dạng văn bản, cho phép phần lớn chương trình vàphần mềm đọc được file mà không phụ thuộc vào chương trình hay phầnmềm cụ thể nào.

Đọc - Phân tích dữ liệu tuyệt vời

XML có khả năng đọc - phân tích nguồn dữ liệu nhanh chóng và dễdàng, là công cụ hữu ích trong việc trao đổi dữ liệu giữa các hệ thống vàchương trình.

Hỗ trợ thiết kế website:

XML được sử dụng trong Remote Procedure Calls để hỗ trợ dịch vụtrong quá trình thiết kế website.

Tạo file đơn giản:

Người dùng có thể tạo các file XML nhanh chóng thông qua các thaotác đơn giản và dễ nhớ.

b) Nhược điểm

Kích thước tệp lớn hơn nhiều so với các định dạng khác, gâykhó khăn trong việc truyền tải, lưu trữ và xử lý dữ liệu, đặc biệtlà đối với các tệp có kích thước quá lớn

Cấu trúc phức tạp của nó cũng có thể gây chậm trễ trong quátrình xử lý, nhất là với các tệp dữ liệu lớn.

Trang 25

3.4.2 Cấu trúc WSDL

Một WSDL hợp lệ gồm có hai phần:

Phần giao diện mô tả giao diện và giao thức kết nối.Phần thực hiện mô tả thông tin để truy xuất service.Cả hai thành phần này sẽ được lưu trong hai tập tin XML, bao gồm:

Tập tin giao diện service (cho phần 1)Tập tin thực hiện service (cho phần 2)

3.4.3 Ưu nhược điểm của WSDLa) Ưu điểm

Nếu một ứng dụng có kế hoạch sử dụng Web Service, WSDL là một yêucầu cơ bản bắt buộc để đáp ứng nhu cầu công bố giao tiếp và thỏa thuận chocác dịch vụ khác nhau.

Trang 26

UDDI cung cấp cách thức lưu trữ và truy xuất thông tin về các dịch vụ,đặc biệt là nhà cung cấp dịch vụ và các chi tiết liên quan đến giao tiếp kỹthuật.

UDDI sử dụng các chuẩn đã tồn tại như ngôn ngữ đánh dấu rộng (XML)và giao thức truy cập đối tượng đơn giản (SOAP) Tất cả các triển khai củaUDDI đều hỗ trợ các đặc tả UDDI để đảm bảo tính tương thích và tích hợp dễdàng giữa các hệ thống khác nhau sử dụng UDDI.

Trang 27

Nhiệm vụ chính của UDDI là tìm kiếm đúng dịch vụ và xác định cáchkích hoạt dịch vụ đó.

Loại dịch vụ (tModel): Chứa thông tin về các loại dịch vụ được sử dụng.3.5.3 Cấu trúc sổ đăng ký UDDI

Thông tin trong UDDI được tổ chức vào các thành phần chính như sau:BusinessEntity: Mô tả nhà cung cấp dịch vụ, chứa thông tin liên quanđến doanh nghiệp hoặc tổ chức cung cấp dịch vụ.

BusinessService Chứa thông tin chung về dịch vụ cung cấp, bao gồmmô tả và các chi tiết liên quan đến dịch vụ.

BindingTemplate: Chứa thông tin kỹ thuật về cách truy cập dịch vụ,bao gồm các chi tiết về giao thức và cách kết nối vào dịch vụ.

tModels (Technical Model - mô hình kỹ thuật): Chứa thông tin về cácloạ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 liền mạchgiữa các dịch vụ tương thích.

Trang 28

3.5.4 UDDI hoạt động ntn

Bước 1: Các công ty phần mềm và cá nhân định nghĩa các đặc tính liênquan đến công nghiệp hoặc kinh doanh và đăng ký với UDDI Thông tinnày được biết đến như là mô hình kỹ thuật hoặc tModels.

Bước 2: Các công ty đăng ký mô tả kinh doanh cho các dịch vụ của họ,tạo một bản ghi UDDI để theo dõi các thông tin này.

Bước 3: Mỗi điểm trong bản ghi UDDI được gán một định danh duynhất, sử dụng khóa định danh phổ biến duy nhất (UUID) để đảm bảotính duy nhất và không thay đổi.

Bước 4: Các khách hàng, như e-Marketplaces và máy tìm kiếm, sử dụngbản ghi UDDI để khám phá các dịch vụ quan tâm.

Bước 5: Các doanh nghiệp khác yêu cầu các dịch vụ từ bản ghi UDDI,tạo điều kiện cho tích hợp dễ dàng và sự linh hoạt theo thời gian.

5 Các loại Web Service

5.1 SOAP Web Service

SOAP là viết tắt của Simple Object Access Protocol Nó là một giao thứcdựa trên XML để truy cập các web service.

Trang 29

SOAP được khuyến cáo bởi W3C cho giao tiếp giữa hai ứng dụng.SOAP là giao thức dựa trên XML Đó là nền tảng độc lập và ngôn ngữ độc lập Bằng cách sử dụng SOAP, bạn sẽ có thể tương tác với các ứng dụng ngôn ngữ lập trình khác.

Ưu điểm của SOAP web service

WS Security: SOAP định nghĩa bảo mật riêng của nó được gọi là WS Security.

Ngôn ngữ và nền tảng độc lập: các SOAP web service có thể được viết bằng bất kỳ ngôn ngữ lập trình nào và được thực thi trong bất kỳ nền tảng nào.

Nhược điểm của SOAP web service

Chậm: SOAP sử dụng định dạng XML phải được phân tích cú pháp Các ứng dụng SOAP phải tuân theo nhiều tiêu chuẩn Vì vậy, nó là chậm và chiếmnhiều băng thông và tài nguyên.

Phụ thuộc WSDL: SOAP sử dụng WSDL và không có bất kỳ cơ chế nào khác.

5.2 RESTful Web Service

REST là viết tắt của REpresentational State Transfer.REST là một kiểu kiến trúc không phải là một giao thức.

Ưu điểm của RESTful web service

Nhanh: RESTful web service nhanh vì không có đặc tả nghiêm ngặt nhưSOAP Nó chiếm ít băng thông và tài nguyên hơn.

Ngôn ngữ và nền tảng độc lập: RESTful web service có thể được viết bằng bất kỳ ngôn ngữ lập trình nào và được thực hiện trong bất kỳ nền tảng nào.

Trang 30

Có thể sử dụng SOAP: RESTful web service có thể sử dụng các SOAP web servie khi thực hiện.

Cho phép nhiều định dạng dữ liệu khác nhau: RESTful web service cho phépđịnh dạng dữ liệu khác nhau như Plain Text, HTML, XML và JSON.

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 Việc triển khai một hệ thống SOA vàtích hợp với Web Service không phải là điều dễ dàng 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 quacác phương thức chuẩn của Web Service.

Rõ ràng, theo định nghĩa thì Web Service là một công nghệ trong khi SOA là một 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 là Web Service Tuy nhiên, SOA và Web Service có mối quanhệ tương hỗ: sự phổ biến của Web Service 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 Web Service chỉ là một công nghệ SOA có thể được thực hiện thông qua công nghệ Web Service 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.

Chương 4 AN TOÀN BẢO MẬT WEB SERVICE 1 Tổng quan về an toàn WebService

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ế

Trang 31

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 trước Đã có rất nhiều thuật toán đưa ra cơ chế và những chuẩn về bảo mật như mã hoá thông tin, chữ ký số…; nhưng hầu hết chỉ tập trung vào việc đưa ra các 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ận 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 đã được thiếtkế 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 :

Identification: xác định người truy cập tài nguyên hệ thống.Authentication: chứng thực người muốn sử dụng tài nguyên.

Authorization: cho phép giao dịch khi đã xác nhận danh tính người truy cập.

Integrity: toàn vẹn thông tin trên đường truyền.

Confidentiality: bảo mật, 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: linh hoạt, cho phép chứng thực hợp pháp hóa của thông tin từ một phía thứ ba ngoài hai phía là người gửi và người nhận.

2 Bảo mật WebService2.1.Khái niệm

Web Service Security là một chuẩn an toàn cho SOAP và các 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 tính an toàn của thông điệp.

Trang 32

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 từ thông điệp SOAP và gửi tới máy chủ.

Trang 33

dụng không kiểm tra và xử lý đầu vào đúng cách, kẻ tấn công có thể thu thập, sửa đổi, hoặc xóa dữ liệu từ cơ sở dữ liệu.

2.2 Cross-Site Scripting (XSS):

XSS là một hình thức tấn công mà kẻ tấn công chèn mã JavaScript độc hại vào các trang web hoặc ứng dụng web, thường thông qua các trường nhập liệu Khi người dùng khác truy cập trang web, mã JavaScript này có thể thực hiện các hành động độc hại như đánh cắp thông tin đăng nhập.

Cách phòng chống:

Escape hoặc mã hóa dữ liệu trước khi hiển thị trên trang web.

Sử dụng HTTP Only và Secure flag cho cookie để giảm nguy cơ bị đánh cắp thông tin đăng nhập.

Sử dụng Content Security Policy (CSP) để giới hạn việc thực thi mã JavaScript từ nguồn không tin cậy.

2.3 Cross-Site Request Forgery (CSRF):

CSRF xảy ra khi kẻ tấn công buộc người dùng thực hiện các hành động không mong muốn trên ứng dụng mà họ đã đăng nhập Điều này thường được thực hiện bằng cách chèn các yêu cầu giả mạo từ trang web hoặc email độc hại.

Cách phòng chống:

Ngày đăng: 25/06/2024, 15:33

Xem thêm:

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w