Đề tài Bảo mật Web với mã nguồn mở ACEGI và ứng dụng làm một trang web bán lẻ

Cách ñây vài năm, khi nói tới thếkỷ21, người ta khẳng ñịnh ñó sẽlà thời ñại của “nền kinh tếsố” với “thương mại ñiện tử” là then chốt. Thông tin và các giao dịch ñược sốhóa sẽlàm ñảo lộn nền kinh tếthếgiới. Làm sao ñểcó thểtận dụng Internet mởrộng thịtrường, tìm thêm cơhội cho sản phẩm, dịch vụcủa mình ñã trở thành ñiều mà các doanh nhân, doanh nghiệp Việt Nam không thểkhông quan tâm. Có thểtrước mắt, khi phần lớn các Website thương mại ñiện tử ởViệt Nam chưa thực hiện giao dịch trực tuyến thì bảo mật chưa thật sựquan trọng, nhưng vềlâu dài, khi các giao dịch thương mại ñiện tửtrởthành xu thếtất yếu thì nếu ít quan tâm ñến bảo mật sẽrất khó ñểtựbảo vệmình. Web service ra ñời ñã mởra một hướng mới trong việc phát triển các ứng dụng trên Internet. Chính vì thế sự 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 ngày nay ngoài việc nghiên cứu làm sao ñể tạo ra một web services tốt mang lại nhiều lợi ích thì việc nghiên cứu ñể làm sao mang lại sự an toàn cho web services cũng là một trong những vấn ñề quan trọng nhất. Chính vì thế, cần thiết phải có nhiều ñềtài nghiên cứu vềbảo mật mạng và những công cụthực hiện bảo mật ñểcó thểáp dụng chúng cho thực tếnước ta hiện nay.

pdf140 trang | Chia sẻ: tuandn | Lượt xem: 2009 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài Bảo mật Web với mã nguồn mở ACEGI và ứng dụng làm một trang web bán lẻ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NHẬN XÉT CỦA GVHD KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE i NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... .......................................................................................................................................... LỜI CẢM ƠN KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE ii LỜI CÁM ƠN Chúng em xin bày tỏ lòng biết ơn chân thành nhất ñến thầy ðặng Thanh Dũng, người thầy ñã tận tâm giúp ñỡ, hướng dẫn chúng em thực hiện luận văn này. Chúng con xin gửi lòng biết ơn và kính trọng sâu sắc ñến gia ñình, những người ñã nuôi dạy chúng con trưởng thành. Chúng em chân thành cảm ơn quý thầy cô trong khoa Công nghệ thông tin trường ðại học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh ñã tận tình giảng dạy, hướng dẫn, giúp ñỡ chúng em trong suốt quá trình học cũng như hoàn thành luận văn này. Mặc dù ñã cố gắng hết sức nhưng chắc chắn luận văn còn nhiều thiếu sót, chúng em mong nhận ñược sự thông cảm, chỉ bảo của quý thầy cô cùng các bạn. Tp.HCM ngày 31/12/2007 Lương Nguyễn Hải ðăng-ðoàn Huỳnh Cẩm Duyên MỤC LỤC KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE iii MỤC LỤC NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ...................................................... i LỜI CÁM ƠN ......................................................................................................... ii MỤC LỤC ............................................................................................................. iii DANH MỤC CÁC HÌNH VẼ ................................................................................. v DANH MỤC CÁC BẢNG .................................................................................... vii 1. CHƯƠNG 1 – MỞ ðẦU .................................................................................... 1 1.1. Tính cấp thiết của ñề tài ................................................................................ 1 1.2. Mục tiêu của ñề tài ....................................................................................... 1 2. CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT .................................................................. 4 2.1. Web Services ................................................................................................ 4 2.1.1. Tổng quan về Web Service .................................................................... 4 2.1.2. Các thành phần chính của Web Service ................................................. 7 2.1.3. Tính bảo mật Web Service ....................................................................12 2.2. Spring Web Service .....................................................................................13 2.2.1. Giới thiệu về Spring Framework và Spring Web Service ......................13 2.2.2. Contract-first ........................................................................................15 2.2.3. Tạo một web service trong Spring ........................................................44 MỤC LỤC KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE iv 2.2.4. Bảo mật web service trong Spring Web Service ...................................70 2.3. Acegi Security .............................................................................................91 2.3.1. Giới thiệu .............................................................................................91 2.3.2. Authentication ......................................................................................92 2.3.3. Authorization...................................................................................... 104 2.4. Kết luận ..................................................................................................... 125 3. CHƯƠNG 3 – THIẾT KẾ VÀ CÀI ðẶT ......................................................... 127 3.1. Thực tế ...................................................................................................... 127 3.2. Sơ ñồ chuyển trang .................................................................................... 127 3.3. Cài ñặt giao diện ........................................................................................ 128 4. CHƯƠNG 4 – KẾT LUẬN .............................................................................. 132 4.1. Tóm tắt các kết quả ñạt ñược ..................................................................... 132 4.2. Hướng phát triển ........................................................................................ 132 TÀI LIỆU THAM KHẢO .................................................................................... 133 DANH MỤC CÁC HÌNH VẼ KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE v DANH MỤC CÁC HÌNH VẼ Hình Nội dung Trang 1.1 Use case diagram của chương trình 2 2.1 Kiến trúc Web service 8 2.2 Cấu trúc của một message theo dạng SOAP 12 2.3 Cấu trúc các module trong Spring Web Service 16 2.4 Quá trình xử lý luồng ñi của MessageDispatcher 47 2.5 Những lớp liên quan ñến quá trình Pre-Invocation Handling 110 2.6 After Invocation Handling 114 3.1 Sơ ñồ chuyển trang 127 3.2 Màn hình ñăng nhập 128 3.3 ðăng nhập thành công 128 3.4 Xem danh sách áo dài 129 3.5 Xem chi tiết áo dài 129 3.6 Xem thông tin liên hệ 130 3.7 Xem danh sách ñơn ñặt hàng 130 DANH MỤC CÁC HÌNH VẼ KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE vi 3.8 Xóa khách hàng 131 3.9 Cấm/cho phép khách hàng 131 DANH MỤC CÁC BẢNG KLTN –WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE vii DANH MỤC CÁC BẢNG Bảng Nội dung Trang 1.1 Mô tả các use case 2 2.1 Bảng sử dụng KeyStore 74 CHƯƠNG 1 MỞ ðẦU KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 1 1. CHƯƠNG 1 – MỞ ðẦU 1.1. Tính cp thit ca ñ tài Cách ñây vài năm, khi nói tới thế kỷ 21, người ta khẳng ñịnh ñó sẽ là thời ñại của “nền kinh tế số” với “thương mại ñiện tử” là then chốt. Thông tin và các giao dịch ñược số hóa sẽ làm ñảo lộn nền kinh tế thế giới... Làm sao ñể có thể tận dụng Internet mở rộng thị trường, tìm thêm cơ hội cho sản phẩm, dịch vụ của mình ñã trở thành ñiều mà các doanh nhân, doanh nghiệp Việt Nam không thể không quan tâm. Có thể trước mắt, khi phần lớn các Website thương mại ñiện tử ở Việt Nam chưa thực hiện giao dịch trực tuyến thì bảo mật chưa thật sự quan trọng, nhưng về lâu dài, khi các giao dịch thương mại ñiện tử trở thành xu thế tất yếu thì nếu ít quan tâm ñến bảo mật sẽ rất khó ñể tự bảo vệ mình. Web service ra ñời ñã mở ra một hướng mới trong việc phát triển các ứng dụng trên Internet. Chính vì thế sự 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 ngày nay ngoài việc nghiên cứu làm sao ñể tạo ra một web services tốt mang lại nhiều lợi ích thì việc nghiên cứu ñể làm sao mang lại sự an toàn cho web services cũng là một trong những vấn ñề quan trọng nhất. Chính vì thế, cần thiết phải có nhiều ñề tài nghiên cứu về bảo mật mạng và những công cụ thực hiện bảo mật ñể có thể áp dụng chúng cho thực tế nước ta hiện nay. 1.2. Mc tiêu ca ñ tài Mục tiêu chính của ñề tài gồm: • Nghiên cứu về web service và công nghệ Spring Web service. CHƯƠNG 1 MỞ ðẦU KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 2 • Nghiên cứu về các ứng dụng Acegi Security ñể bảo mật web service trong Spring. • Viết một ứng dụng web nhỏ bán hàng trên mạng bằng web service mô phỏng việc dùng Acegi Security ñể bảo mật. Các tính năng của chương trình mà chúng tôi ñang xây dựng có thể ñược biểu diễn trong use case diagram sau (Xem hình 1.1): Xoa User Xem don dat hang Disable User Enable UserAdmin Xem san pham Dat hang Xem thong tin lien he Dang nhap vao he thong User Dang ky thanh vien Hình 1.1 – Use case diagram của chương trình Nội dung chi tiết của các use case ñược cho trong bảng 1.1 CHƯƠNG 1 MỞ ðẦU KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 3 Bảng 1.1: Mô tả các use case Tên use case Mô tả Actor Admin Xoa User Xóa một User trong danh sách User Disable User Loại bỏ các quyền của User. Enable User Khôi phục các quyền cho User Xem don dat hang Xem ñơn ñặt hàng của khách Dang nhap vao he thong Dang nhap vao he thong Actor user Xem san pham Xem sản phẩm áo cưới hiện có ở cửa hàng Dat hang ðặt hàng áo cưới Xem thong tin lien he Xem thông tin liên hệ của cửa hàng Dang ky thanh vien Dang ky thanh vien Dang nhap vao he thong Dang nhap vao he thong CHƯƠNG 2 CƠ SỞ LÝ THUYẾT KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 4 2. CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT Sau một thời gian nghiên cứu, nhóm ñã có một số kiến thức nhất ñịnh về Web Service, Spring Web service và Acegi Security. ðây là cơ sở lý thuyết nền tảng cho ứng dụng. 2.1. Web Services 2.1.1. Tổng quan về Web Service 2.1.1.1 Giới thiệu Web Service là một công nghệ cho phép những ứng dụng có thể giao tiếp với nhau trong những hệ ñiều hành và những ngôn ngữ lập trình ñộc lập với nhau. Một Web Service là một giao diện phần mềm (software interface) mô tả một tập hợp các hành ñộng (operation) có thể ñược truy cập trên toàn thế giới thông qua thông ñiệp XML chuẩn. Nó sử dụng giao thức lấy ngôn ngữ XML làm nền, mô tả một hành ñộng (operation) ñể thực thi hoặc dữ liệu ñể trao ñổi với Web Service khác. WS cho phép: • Giao tiếp giữa các dịch vụ trên bất kỳ hệ ñiều hành nào và viết bằng bất kỳ ngôn ngữ nào. • Conceptualize application functions into task, leading to task-oriented development and workflows. This allows a higher abstraction of software that can be employed by less software-technical users that work on business level analytics. CHƯƠNG 2 CƠ SỞ LÝ THUYẾT KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 5 • Cho phép sự kết hợp lỏng lẻo, có nghĩa là mối tương tác giữa các ứng dụng dịch vụ sẽ không bị ngắt khi có sự thay ñổi ở một hay nhiều dịch vụ. • Gắn vào một ứng dụng có sẵn ñể thay ñổi phù hợp với ñiều kiện của doanh nghiệp và yêu cầu của khách hàng. • Cung cấp những ứng dụng có sẵn hoặc thừa kế lại với những giao diện dịch vụ mà không thay ñổi ứng dụng ban ñầu, cho phép chúng toàn quyền hoạt ñộng trong môi trường dịch vụ. • ðem lại những chức năng quản trị và quản lý như là: ñộ tin cậy (reliability), trách nhiệm giải trình (accountability), bảo mật (security),… ñộc lập với những chức năng chính, ñiều này làm cường tính linh hoạt và hữu dụng trong môi trường tin học của doanh nghiệp. 2.1.1.2 Cách thức làm việc của Web Service • Client không chứa bất cứ thông tin về các dịch vụ web hiện thời, vì vậy trước hết nó phải ñi tìm dịch vụ web nào phù hợp với yêu cầu. Client sẽ liên hệ với UDDI registry ñể hỏi về ñiều này. • UDDI registry sẽ trả lời cho chúng ta biết server nào cung cấp dịch vụ mà client cần. • Sau khi biết ñược nơi cung cấp dịch vụ, client cần phải biết cách thức gọi dịch vụ. Vì thế nó phải hỏi server ñể có ñược mô tả chi tiết cách gọi dịch vụ. • Server sẽ trả lời thông qua một ngôn ngữ chung là WSDL. • Tại bước này client sẽ gửi một SOAP message tới server, yêu cầu nó thực hiện một phương thức mà server có khả năng cung cấp. CHƯƠNG 2 CƠ SỞ LÝ THUYẾT KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 6 • Sau khi thực hiện xong phương thức, server sẽ gửi kết qủa tới client bằng một thông ñiệp SOAP response chứa thông tin ñược yêu cầu hoặc thông báo lỗi trong trường hợp sự cố hoặc yêu cầu sai. 2.1.1.3 Kiến trúc của công nghệ Web Service Hình 2.1 mô tả kiến trúc của công nghệ Web Service. Trong ñó bao gồm các tầng: • Tầng vận chuyển với những giao thức chuẩn là HTTP, SMTP và JMS. • Tầng giao thức tương tác dịch vụ ( Service Communication Protocol) với giao thức chuẩn SOAP ( Simple Object Access Protocol). SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch vụ, SOAP cho phép người dùng triệu gọi một service từ xa thông qua một message XML. Có thể nói, SOAP là một giao thức giao tiếp có cấu trúc như XML và mã hóa thành ñịnh dạng chung cho các ứng dụng trao ñổi với nhau. • Tầng mô tả dịch vụ (Service Description) với công nghệ chuẩn là WSDL và XML. WSDL(Web Services Description Language) là một ngôn ngữ dựa trên cú pháp XML dùng ñể mô tả một web service. WSDL như một file ứng dụng trung gian ñứng giữa web service và web service client. • Tầng dịch vụ ( Service): cung cấp các chức năng của service. • Tầng ñăng ký dịch vụ (Service Registry) với công nghệ chuẩn là UDDI (Universal Description, Discovery and Integration). ðể có thể sử dụng các dịch vụ, trước tiên client 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 những thông tin này ñể cho phép các doanh nghiệp (là các client) tìm kiếm và ñăng ký web service. CHƯƠNG 2 CƠ SỞ LÝ THUYẾT KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 7 • Bên cạnh ñó ñể cho các service có tính an toàn, toàn vẹn và bảo mật thông tin trong kiến trúc web service chúng ta có thêm các tầng Policy, Security, Transaction, Management giúp tăng cường tính bảo mật, an toàn và toàn vẹn thông tin khi sử dụng service. Hình 2.1 - Kiến trúc của Web Service 2.1.2. Các thành phần chính của Web Service 2.1.2.1 WSDL 2.1.2.1.1. Tổng quát WSDL là một tài liệu dựa trên cú pháp XML dùng ñể mô tả một web service nó ñóng vai trò trung gian giữa web service và web service client. Trong tài liệu WSDL chúng ta sẽ ñịnh nghĩa các phương thức ñược web service hỗ trợ, các kiểu dữ liệu ñược sử dụng trong các phương thức cùng các thông ñiệp ñược trao ñổi giữa client và server ứng với mỗi phương thức. CHƯƠNG 2 CƠ SỞ LÝ THUYẾT KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 8 2.1.2.1.2. Cấu trúc tài liệu WSDL Hình 2.2 - Cấu trúc WSDL Trong một file WSDL phần tử gốc ñược ñặt tên “definitions”. Phần tử này chứa năm phần tử con chính ñể ñịnh nghĩa web service: • Phần tử “types”: ñịnh nghĩa các kiểu dữ liệu dùng ñể trao ñổi giữa client và server (chỉ ñịnh nghĩa các kiểu dữ liệu phức tạp như structure, class…). * • Phần tử “message”: ñịnh nghĩa các thông ñiệp ñược trao ñổi. * <part name="nmtoken" element="qname"? type="qname"?/> * CHƯƠNG 2 CƠ SỞ LÝ THUYẾT KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 9 • Phần tử”portType”: ñịnh nghĩa một tập các chức năng web service hỗ trợ và thông ñiệp tương ứng ñối với mỗi chức năng ñó. • WSDL ñịnh nghĩa bốn kiểu thao tác mà một cổng có thể hỗ trợ: o One-way: cổng nhận một message, message ñó là message nhập. o Request-response: cổng nhận một message và gửi một message phản hồi. o Solicit-response: cổng gửi một message và nhận về một message. o Notification: cổng gửi một message, message ñó là message xuất. Mỗi kiểu thao tác có cú pháp biến ñổi tùy theo: thứ tự của các message nhập, xuất và lỗi. * • Phần tử “binding”: sau khi ñã ñịnh nghĩa các port, ta cần chỉ rõ ràng buộc giữa các port này và các giao thức tầng dưới. • Phần tử “service”: có tác dụng gom các port ñã ñịnh nghĩa thành từng nhóm. * CHƯƠNG 2 CƠ SỞ LÝ THUYẾT KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 10 * 2.1.2.2 SOAP 2.1.2.2.1. Giới thiệu SOAP (Simple Object Access Protocol) provides a simple and lightweight mechanism for exchanging structured and typed information between peers in a decentralized, distributed environment using XML. 2.1.2.2.2. Cấu trúc của một message theo dạng SOAP SOAP message là một văn bản XML bình thường bao gồm các phần tử sau: • Phần tử gốc - envelop: phần tử bao trùm nội dung message, expressing what is in a message; who should deal with it, and whether it is optional or mandatory. • Phần tử ñầu trang - header: chứa các thông tin mô tả SOAP message và thông tin nơi nhận, phần tử này không bắt buộc khai báo trong văn bản. Nó có thể mang những dữ liệu chứng thực, những chữ ký số hóa, và thông tin mã hóa… • Phần tử khai báo nội dung chính trong thông ñiệp - body, chứa các thông tin yêu cầu và phản hồi. CHƯƠNG 2 CƠ SỞ LÝ THUYẾT KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 11 Hình 2.2 - Cấu trúc của một message theo dạng SOAP 2.1.2.3 UDDI 2.1.2.3.1. Giới thiệu ðể có thể sử dụng các dịch vụ, trước tiên client 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 một số thành phần cho biết trước các thông tin này ñể cho phép các client truyz tìm và nhận lại những thông tin yêu cầu sử dụng web services. 2.1.2.3.2. Cấu trúc của UDDI Cấu trúc UDDI gồm các thành phần: • Trang trắng - White pages: chứa thông tin liên hệ và các ñịnh dạng chính yếu của web services, chẳng hạn tên giao dịch, ñịa chỉ,… Những thông tin này cho phép các ñối tượng khác xác ñịnh ñược service. CHƯƠNG 2 CƠ SỞ LÝ THUYẾT KLTN – WEB SERVICE SECURITY WITH OPEN SOURCE ACEGI AND APPLYING FOR A SMALL RETAILING WEBSITE 12 • Trang vàng - Yellow pages: chứa thông tin mô tả web services theo những chủng loại khác nhau. Những thông tin này cho phép các ñối tượng thấy web services theo từng chủng loại của nó. • Trang xanh - Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức năng của web services. Các ñối tượng dựa vào ñặc ñiểm của web services ñể tìm kiếm. 2.1.3. Tính bảo mật Web Service 2.1.3.1 Giới thiệu WS - Security là một chuẩn an toàn bao trùm 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. WS - Security cung cấp nhiều hỗ trợ cho nhiều
Luận văn liên quan