Dịch vụ Web - Bảo mật
Bảo mật rất quan trọng đối với các dịch vụ web. Tuy nhiên, cả đặc tả XML-RPC và SOAP đều không đưa ra bất kỳ yêu cầu xác thực hoặc bảo mật rõ ràng nào.
Có ba vấn đề bảo mật cụ thể với các dịch vụ web -
- Confidentiality
- Authentication
- An ninh mạng
Bảo mật
Nếu một khách hàng gửi một yêu cầu XML đến một máy chủ, chúng tôi có thể đảm bảo rằng thông tin liên lạc vẫn được bảo mật không?
Câu trả lời nằm ở đây -
- XML-RPC và SOAP chủ yếu chạy trên HTTP.
- HTTP có hỗ trợ cho Lớp cổng bảo mật (SSL).
- Giao tiếp có thể được mã hóa qua SSL.
- SSL là một công nghệ đã được chứng minh và triển khai rộng rãi.
Một dịch vụ web có thể bao gồm một chuỗi các ứng dụng. Ví dụ, một dịch vụ lớn có thể kết hợp các dịch vụ của ba ứng dụng khác lại với nhau. Trong trường hợp này, SSL không đủ; các thông điệp cần được mã hóa tại mỗi nút dọc theo đường dẫn dịch vụ và mỗi nút đại diện cho một liên kết yếu tiềm ẩn trong chuỗi. Hiện tại, không có giải pháp nào được thống nhất cho vấn đề này, nhưng một giải pháp đầy hứa hẹn là Tiêu chuẩn mã hóa XML W3C. Tiêu chuẩn này cung cấp một khuôn khổ để mã hóa và giải mã toàn bộ tài liệu XML hoặc chỉ các phần của tài liệu XML. Bạn có thể kiểm tra nó tại www.w3.org/Encryption
Xác thực
Nếu khách hàng kết nối với dịch vụ web, làm cách nào để chúng tôi xác định người dùng? Người dùng có được phép sử dụng dịch vụ không?
Các tùy chọn sau đây có thể được xem xét nhưng không có sự đồng thuận rõ ràng về một sơ đồ xác thực mạnh.
HTTP bao gồm hỗ trợ tích hợp cho xác thực Cơ bản và Thông báo, và do đó, các dịch vụ có thể được bảo vệ theo cách giống như các tài liệu HTML hiện đang được bảo vệ.
Chữ ký số SOAP (SOAP-DSIG) sử dụng mật mã khóa công khai để ký điện tử các thông điệp SOAP. Nó cho phép máy khách hoặc máy chủ xác thực danh tính của bên kia. Kiểm tra nó tại www.w3.org/TR/SOAP-dsig .
Tổ chức vì sự tiến bộ của tiêu chuẩn thông tin có cấu trúc (OASIS) đang nghiên cứu về Ngôn ngữ đánh dấu xác nhận bảo mật (SAML).
An ninh mạng
Hiện tại không có câu trả lời dễ dàng cho vấn đề này, và nó đã là chủ đề của nhiều cuộc tranh luận. Hiện tại, nếu bạn thực sự có ý định lọc ra các thư SOAP hoặc XML-RPC, một khả năng là lọc ra tất cả các yêu cầu HTTP POST đặt loại nội dung của chúng thành text / xml.
Một giải pháp thay thế khác là lọc thuộc tính tiêu đề SOAPAction HTTP. Các nhà cung cấp tường lửa hiện cũng đang phát triển các công cụ được thiết kế rõ ràng để lọc lưu lượng dịch vụ web.