portType: Định nghĩa một web service, các tác vụ mà service cung cấp và định dạng các thông điệp được sử dụng để khởi động các tác vụ này... UDDI giao tiếp thông qua SOAP và được xây
Trang 1 CHƯƠNG 1: WEB SERVICE
CHƯƠNG 2: CÁC KỸ THUẬT ĐẢM BẢO AN NINH WEB SERVICE
Trang 31.1 Service
Định nghĩa
Đặc điểm service.
Trang 4 Quá trình nhận yêu cầu và trả kết quả được thực hiện thông qua các interface đã được định nghĩa trước đó
Có nhiều loại service khác nhau
Trang 61.2 Web service (WS)
Định nghĩa
Cấu trúc web service
Các đặc điểm của web service
Các thành phần của web service
Hoạt động của Web services
Trang 71.2.1 Định nghĩa
Là một hệ thống phần mềm được thiết kế nhằm hỗ trợ khả năng tương tác giữa các máy tính hoặc với các thiết bị khác thông qua mạng
Một WS được xác định bằng địa chỉ URL
Thực hiện các chức năng và đưa ra thông tin người dùng yêu cầu
Trang 8Định nghĩa
Mô hình Web Service
Trang 9Định nghĩa
WS sử dụng nền tảng là ngôn ngữ XML(extensible makup language) cho việc trao đổi dữ liệu
Các hệ thống sử dụng các thông điệp SOAP sử dụng
giao thức HTTP để tương tác với WS
Mô hình đặc thù của WS là mô hình client-server
Giao diện của nó được mô tả trong một khuôn mẫu khả năng xử lý máy được gọi là giao diện “dịch vụ”
Trang 10Định nghĩa
Kiến trúc Web Service
Trang 111.2.2 Cấu trúc web service
Mô tả các layer hình thành nên Web Service
Trang 12Cấu trúc web service
Service Provider : Dùng WSDL để mô tả dịch vụ mà mình có thể cung cấp cho.
Service Broker: Lưu trữ thông tin về các service được cung cấp bởi các Service Provider Cung cấp chức năng tìm kiếm hỗ trợ.
Service Requester: Dùng WSDL để đặc tả nhu cầu sử dụng và gởi cho Service Broker
Service Requester có thể tìm thấy Service Provider thích hợp bằng việc sử dụng UDDI và chức năng tìm kiếm của Service Broker, sau đó giữa Service Requester và Service Provider thiết lập kênh giao tiếp sử dụng SOAP
để thương lượng giá cả và các yếu tố khác trong việc
sử dụng service
Trang 13Cấu trúc web service
Tương tác giữa các thành phần Web Service
Trang 141.2.3 Các đặc điểm của web service
Được truy xuất thông qua Web bằng cách dùng địa
chỉ URL
Liên lạc với thế giới bên ngoài dùng thông điệp XML
được gửi trực tiếp qua Web protocols Giao tiếp với
Trang 15Các đặc điểm của web service
Cho phép client tương tác với server ngay cả trong những môi trường khác nhau
Nó cũng có thể “giao tiếp” với các Web service khác
mà không cần quan tâm đến các yêu cầu bên trong
Phần lớn các web services đượ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ột WS bao gồm nhiều module và có thể công bố trên mạng Internet
Trang 171.2.4.1 WSDL (Web Services
Description Language)
Ngôn ngữ đặc tả Web Service, cơ bản dựa trên XML
Khi tương tác các dịch vụ với nhau ta tương tác file WSDL của chúng
Một client có thể đọc WSDL để xác định những chức năng có sẵn trên server, sau đó client có thể sử dụng
SOAP để lấy ra những chức năng chính xác có trong WSDL
Trang 18WSDL (Web Services Description Language)
Cấu trúc WSDL
Trang 19WSDL (Web Services Description
Language)
Service: Chứa các method có thể được sử dụng
thông qua các web protocol
Ports: Địa chỉ dùng để kết nối đến WS
Message: mô tả thông điệp truyền đi giữa client và server
portType: Định nghĩa một web service, các tác vụ mà service cung cấp và định dạng các thông điệp được
sử dụng để khởi động các tác vụ này
Trang 20WSDL (Web Services Description Language)
Operations: được xem như một method hay một lời
gọi hàm trong các ngôn ngữ lập trình cổ điển
Binding: Chỉ định port type, các operation và chứa
các thông tin cần thiết để thực thi operation đó
Element: Được định nghĩa trong Types
Notification: Cổng gửi một message, message đó là
message xuất
Trang 211.2.4.2 UDDI (Universal
Description, Discovery and
Integration)
Các client sẽ tìm kiếm , ghi nhận thông tin về dịch vụ
thông qua việc truy cập đến UDDI.
UDDI giao tiếp thông qua SOAP và được xây dựng trên nền Microsoft.NET
UDDI sử dụng WSDL để mô tả giao diện đến web
services
UDDI giải quyết một số vấn đề như: Tìm kiếm ra hàng
triệu người hiện đang online, xác định hướng phát triển khi một tính năng thương mại được phát hiện, tiếp cận
khách hàng mới và tăng lượng khách hàng hiện tại Mở rộng thị trường
Trang 23SOAP (Simple Object Access
Protocol)
Trang 24Cấu trúc của thông điệp SOAP
SOAP (Simple Object Access
Protocol)
Trang 25SOAP (Simple Object Access
Protocol)
- SOAP envelope: Phần tử gốc bao trùm nội dung
thông điệp, khai báo văn bản XML như một thông
Message information goes here
</soap:Envelope>
Trang 26 Fault: Đưa ra thông tin về các lỗi xảy ra trong quá
trình truyền thông điệp
Trang 27SOAP (Simple Object Access
Độc lập với platform, ngôn ngữ lập trình hay
programming model được sử dụng
Trang 28Các thành phần của web service
Mô hình tương tác giữa các thành phần
28
Trang 291.2.5 Hoạt động của Web services
Trang 30Hoạt động của Web services
Web service developer (provider): Người xây dựng và triển khai Web Service, cung cấp một phương thức phù hợp để thực thi một dịch vụ cụ thể Đăng ký và phân loại web service
Web service consumer truy vấn và tìm ra web service thích hợp nhất
Web service developer Xây dựng ứng dụng tiêu thụ Web Service
Trang 32 SOA là phương pháp tiếp cận công nghệ thông tin nhằm xây dựng các tiến trình nghiệp vụ từ những thành phần mô hình có sẵn hoặc các dịch vụ mà đối lập với các ứng dụng và các phần nền của máy tính
Trang 33Định nghĩa SOA
SOA có 3 đối tượng chính
Service Provider: Cung cấp thông tin về dịch vụ cho
một nhu cầu nào đó
Service Consumer: Người sử dụng service được cung cấp bởi Service Provider
Service Regiestry: Nơi lưu trữ thông tin về các service của các service Provider khác nhau
Trang 34Sơ đồ cộng tác SOA
Định nghĩa SOA
Trang 361.3.3 SOA và dịch vụ web
Về cơ bản, SOA là kiến trúc phần mềm phát xuất từ định nghĩa giao tiếp và xây dựng toàn bộ mô hình ứng dụng như là mô hình các giao tiếp, hiện thực giao tiếp và phương thức gọi giao tiếp
Trong khi đó, dịch vụ web là tập hợp các công nghệ
WSDL, SOAP và UDDI, cho phép xây dựng các giải pháp lập trình cho vấn đề tích hợp ứng dụng và truyền thông điệp
Như vậy, theo định nghĩa thì dịch vụ web là đặc tả công nghệ còn SOA là triết lý thiết kế phần mềm
Trang 37SOA và dịch vụ web
Dịch vụ web đư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 dịch vụ web
SOA và dịch vụ web có mối quan hệ tương hỗ: sự phổ biến của dịch vụ web 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 dịch vụ web thành công
Trang 392.1 Các vấn đề bảo mật cần
quan tâm
Những hạn chế của tường lửa
Cơ chế bảo mật chưa được định nghĩa một các đầy đủ
Các giải pháp bảo mật khó tích hợp với nhau
Bảo mật và vấn đề hiệu suất hoạt động
Trang 402.1.1 Những hạn chế của
tường lửa
Không giám sát chặt chẽ các gói tin được truyền tải dựa trên giao thức HTTP Sự thiếu sót này có thể khiến cho máy chủ có nguy cơ bị những cuộc tấn công mà không thể biết trước
Thời gian gần đây, rất nhiều những sản phẩm tường lửa giám sát những gói tin chứa những dữ liệu dạng
XML đã được xây dựng Tuy nhiên, tính hiệu quả của những sản phẩm này chưa đủ sức thuyết phục để các nhà quản trị chấp nhận sử dụng nó như một phần của thiết kế an ninh hệ thống
40
Trang 412.1.2 Cơ chế bảo mật chưa được
định nghĩa một các đầy đủ
Hầu hết những chuẩn về bảo mật hiện nay đều 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, mà 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, như là việc chứng thực và kiểm tra quyền
Trang 4242
Trang 432.1.4 Bảo mật và vấn đề hiệu suất hoạt động
Luôn luôn có một sự ràng buộc giữa mức độ bảo mật
và hiệu suất hoạt động của hệ thống
Cần phải lên phương án, hoạch định kế hoạch chi tiết, kỹ càng, thận trọng những công nghệ tối ưu về hiệu quả nhằm đảm bảo rằng hệ thống SOA được an toàn, trong khi vẫn có hiệu suất hoạt động ở mức chấp nhận được
Trang 452.2.1 Cấu trúc giao thức bảo mật SSL
SSL là 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
hình thành và phát triển đầu tiên 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
Chức năng chính là bảo vệ bằng mật mã lưu lượng
dữ liệu HTTP
Trang 46Cấu trúc giao thức bảo mật SSL
Giao thức SSL dựa trên hai nhóm con giao thức là
giao thức “bắt tay” (handshake protocol) và giao thức “bản ghi” (record protocol)
Giao thức bắt tay xác định các tham số giao dịch giữa hai đối tượng có nhu cầu trao đổi thông tin hoặc dữ liệu
Giao thức bản ghi xác định khuôn dạng cho tiến hành mã hoá và truyền tin hai chiều giữa hai đối tượng đó
46
Trang 47Cấu trúc giao thức bảo mật SSL
Cấu trúc của giao thức bảo mật SSL
Trang 48Cấu trúc giao thức bảo mật SSL
SSL chỉ một lớp bảo mật trung gian giữa tầng
transport và tầng application, được xếp lớp lên trên một dịch vụ vận chuyển định hướng kết nổi và đáng tin cậy
SSL 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ứ ko phải chỉ HTTP
Chú ý rằng SSL có một định hướng client-server
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
48
Trang 49Cấu trúc giao thức bảo mật SSL
Tóm lại, giao thức SSL vốn có ba đặc tính cơ bản:
Các bên giao tiếp (nghĩa là client và server) 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ệ
Tuy nhiên, cần lưu ý là SSL không ngăn các cuộc tấn công phân tích lưu lượng hoặc các cuộc tấn công có định hướng dựa vào phần thực thi TCP
Trang 50Cấu trúc giao thức bảo mật SSL
Để sử dụng sự bảo vệ SSL, cả client lẫn server phải
biết rằng phía bên kia đang sử dụng 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)
- 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, chẳng hạn như SSL trong suốt giai đoạn thiết lập nối kết TCP thông thường
50
Trang 51Cấu trúc giao thức bảo mật SSL
Trang 52Cấu trúc giao thức bảo mật SSL
52
Trang 53Cấu trúc giao thức bảo mật SSL
Trang 54Cấu trúc giao thức bảo mật SSL
Giao thức SSL gồm hai phần chính, SSL Record
Protocol và một số giao thức con SSL được xếp lớp trên nó:
- SSL Record được xếp lớp trên một dịch vụ lớp vận chuyển định hướng nối kết và đáng tin cậy
Trang 552.2.2 SSL Record Protocol
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)
Mỗi bản ghi SSL chứa các trường thông tin sau đây:
- 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
Trang 562.2.2 SSL Record Protocol
56
Trang 57SSL Handshake Protocol
Là giao thức con SSL chính được xếp lớp trên SSL Record Protocol
Yêu cầu một client và server thiết lập và duy trì
thông tin trạng thái được sử dụng để bảo vệ các cuộc liên lạc
Yêu cầu client và server 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
Trang 58SSL Handshake Protocol
Các thuật toán mã hoá và xác thực của SSL 3.0 được
sử dụng bao gồm :
- DES, DSA, KEA, MD5, RC2, RC4, RSA, RSA key
exchange, SHA-1, SKIPJACK, Triple-DES
Đã 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
58
Trang 592.3 Thư viện Web Service
Enhancement (WSE)
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 web service theo những chuẩn mới nhất như WS-Security, WS-SecureConversation, WS-Trust, WS-Policy, WS-securityPolicy, WS-Addressing, WS-Messageing và WS-Attachments
Đưa ra các tính năng liên quan đến bảo mật này vào web service 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 policy
Trang 602.3.1 Những tính năng bảo mật web service của wse
WSE sử dụng các cơ chế được định nghĩa trong security để đặt các ủy quyền chứng thực (security credential) như security token vào trong các thông điệp SOAP
ws- WSE sau đó sẽ thực hiện kiểm tra tính hợp lệ của những security credentials trước khi chuyển quyền thực thi cho các web service
Hỗ trợ các loại security token sau:
username/password, X.509 Certificate, Kerberos ticket, Security Context token và các loại security token do người dùng định nghĩa
60
Trang 612.3.2 Thư viện WSE
Nhân của WSE là một engine cho phép áp dụng các giao thức cao cấp của dịch vụ web vào các thông điệp SOAP
Quy trình gửi nhận thông điệp qua các bộ lọc của WSE
Trang 622.3.2 Thư viện WSE
Một số kiểu giả mạo, đánh cắp thông tin: Message Replay Attack, Web Spoofing,…
WSE 3.0 cung cấp cho người quản trị hai phương thức cấu hình khi cấu hình chính sách bảo mật:
Username Token và chứng thực số - PKI
62
Trang 632.3.2 Thư viện WSE
<wsse:UsernameToken wsu:Id="Example-1">
<wsse:Username> </wsse:Username>
<wsse:Password Type=" "> </wsse:Password>
<wsse:Nonce EncodingType=" "> </wsse:Nonce> <wsu:Created> </wsu:Created>
</wsse:UsernameToken>
Trang 642.3.2 Thư viện WSE
Chứng thực số - PKI: Việc giao dịch qua mạng đều thực hiện việc chuyển những thông tin rất nhạy cảm
và quan trọng nên thực hiện bảo mật an toàn cho nó
là điều rất cần thiết Trong đó có xác thực cả client
và server
Chứng thực số được sử dụng trong các giao dịch
điện tử Xuất phát từ thực tế, chữ ký điện tử cũng cần đảm bảo các chức năng: xác định được người
chủ của một dữ liệu nào đó: văn bản, ảnh, video,
dữ liệu đó có bị thay đổi hay không
64
Trang 652.3.3 Hỗ trợ policy
Các cơ chế xác nhận policy được chỉ định:
- 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ẽ được gửi trả về hay một ngoại lệ sẽ được đưa ra
Trang 662.3.3 Hỗ trợ policy
SOAP messaging hỗ trợ nhiều nghi thức ở tầng vận chuyển như 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 thì ta không cần phải có một Web Server
Điều phối các thông điệp SOAP
66
Trang 672.3.3 Hỗ trợ policy
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 các thông điệp SOAP
Nghi thức 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