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 trang |
Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 510 | Lượt tải: 0
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:
- do_an_nghien_cuu_bao_mat_web_service.pdf