Nghiên cứu bảo mật web services

Ngày nay công nghệthông tin đang là nền công nghệmũi nhọn trong chiến lược phát triển kinh tế, 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 đã và đang được ứng dụng rộng rãi trong mọi lĩnh vực của đời sống kinh tế, xã hội và hầu hết đều đem đến 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 chính là các tổchức, câc cơ sởdoanh nghiệp Bảo mật luôn luôn là m ột vấn đềhàngđầu cho tất cảcác loại ứng dụng, đặc biệt là các ứng dụng web. Từ những ngày đầu của Internet người ta đã quan tâm đến tính an toàn trong trao đổi thông tin. Tuy 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 thì rất nhanh 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ựkhai thác thương mại của Internet thì không hoàn toàn an toàn. Do đó những giải thuật đểkiểm chứng, sựmã hóa khóa thông tin, và chữký sốhóa có thểlà những giải pháp cung cấp một m ức đủan toàn. 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. Thật khó tin tưởng để sửdụng một business service như- mua chứng khoán hay chuyển tiền trực tuyến mà lại không có m ột sựan toàn cần thiết. Luận văn tập trung đi sâu vào nghiên cứu, tìm hiểu vềcông nghệweb services và các vấn đềbảo mật liên quan và sửdụng chúng đểgiải quyết bài toán “Kết nối ngân hàng với công ty chứng khoán” một cách an toàn, hiệu quả, nhằm tạo điều kiện thuận lợi cho việc giao dịch chứng khoán và giúp cho các thông tin được minh bạch.

pdf70 trang | Chia sẻ: lvbuiluyen | Lượt xem: 3333 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Nghiên cứu bảo mật web services, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
[1] ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thị Thanh Thủy NGHIÊN CỨU BẢO MẬT WEB SERVICES KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2010 [2] ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thị Thanh Thủy NGHIÊN CỨU BẢO MẬT WEB SERVICES KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hướng dẫn: Tiến Sỹ Trương Ninh Thuận [3] Lời cám ơn Trước tiên, em xin gửi lời cảm ơn và biết ơn sâu sắc đến TS. Trương Ninh Thuận – Giảng viên bộ môn CNPM – khoa CNTT – ĐH Công Nghệ - ĐHQGHN, người đã tận tình hướng dẫn, chỉ bảo, giúp đỡ em trong suốt thời gian em nghiên cứu khóa luận. Và cũng là người đưa ra những ý tưởng, kiểm tra sự phù hợp của luận văn. Em cũng xin gửi lời cảm ơn đến toàn thể các thầy cô trường ĐH Công Nghệ - DHQGHN đã giảng dạy, và tạo điều kiện cho em trong quá trình học tập và nghiên cứu tại trường. Những kiến thức mà chúng em nhận được sẽ là hành trang giúp chúng em vững bước trong tương lai. Cuối cùng, em xin cảm ơn gia đình, bạn bè, người thân đã luôn ở bên để động viên và là nguồn cổ vũ lớn lao, là động lực giúp em hoàn thành luận văn này. Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng có thể. Tuy nhiên sẽ không tránh khỏi những thiếu sót. Em rất mong nhận được sự cảm thông và tận tình chỉ bảo của quí thầy cô và toàn thể các bạn. Hà Nội, tháng 5 năm 2010 Sinh viên Nguyễn Thị Thanh Thu ỷ Tóm tắt nội dung Ngày nay công nghệ thông tin đang là nền công nghệ mũi nhọn trong chiến lược phát triển kinh tế, 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 đã và đang [4] được ứng dụng rộng rãi trong mọi lĩnh vực của đời sống kinh tế, xã hội và hầu hết đều đem đến 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 chính là các tổ chức, câc cơ sở doanh nghiệp… Bảo mật luôn luôn là một vấn đề hàng đầu cho tất cả các loại ứng dụng, đặc biệt là các ứng dụng web. Từ những ngày đầu của Internet người ta đã quan tâm đến tính an toàn trong trao đổi thông tin. Tuy 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 thì rất nhanh 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ự khai thác thương mại của Internet thì không hoàn toàn an toàn. Do đó những giải thuật để kiểm chứng, sự mã hóa khóa thông tin, và chữ ký số hóa có thể là những giải pháp cung cấp một mức đủ an toàn. 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. Thật khó tin tưởng để sử dụng một business service như- mua chứng khoán hay chuyển tiền trực tuyến mà lại không có một sự an toàn cần thiết. Luận văn tập trung đi sâu vào nghiên cứu, tìm hiểu về công nghệ web services và các vấn đề bảo mật liên quan và sử dụng chúng để giải quyết bài toán “Kết nối ngân hàng với công ty chứng khoán” một cách an toàn, hiệu quả, nhằm tạo điều kiện thuận lợi cho việc giao dịch chứng khoán và giúp cho các thông tin được minh bạch. Danh mục ký hiệu, từ viết tắt Tên viết tắt Mô tả HTTP Hypertext Transfer Protocol [5] HTML HyperText Markup Language SOAP Simple Object Access Protocol UDDI Universal Description, Discovery, and Integration WSDL Web Service Description Language WS Web services WSS Web Service Security XML eXtensible Markup Language SOA Service Oriented Architecture SSL Security Sockets Layer TCP/IP Transmission Control Protocol/ Internet Protocol FTP File Transfer Protocol W3C World Wide Web Consortium Danh mục bảng và hình vẽ Tên Hình Mô tả Trang Hình 2.1 Sơ đồ cộng tác SOA 17 [6] Hình 3.1 Mô hình Web Service 23 Hình 3.2 Kiến trúc của Web Serice 24 Hình 3.3 Web service protocol stack 25 Hình 3.4 Tương tác giữa các thành phần web service 26 Hình 3.5 Các thành phần web service 27 Hình 3.6 Cấu trúc WSDL 28 Hình 3.7 Trao đổi thông điệp SOAP 31 Hình 3.8 Cấu trúc của thông điệp SOAP 33 Hình 3.9 Mô hình tương tác giữa các thành phần 34 Hình 3.10 Sơ đồ sử dụng web service 35 Hình3.11 Cấu trúc của một tài liệu được mô tả bởi XML 35 Hình 3.12 Cấu trúc và hoạt động của một web service đơn giản 40 Hình 4.1 Cấu trúc của giao thức bảo mật SSL 40 Hình 4.5 Các bước SSL Record Protocol 56 Hình 4.3 Xác nhận số một thông điệp 56 Hình 4.4 Mã hóa một thông điệp 61 Hình 4. 5 Điều phối thông điệp SOAP 62 Hình 4.6 Cơ chế dùng bộ lọc của wse 63 Hình 5.1 Biểu đồ hoạt động của hệ thống 63 Bảng 4.1 Các số cổng được gán cho các giao thức ứng dụng chạy trên TLS/SSL 43 [7] Bảng 4.2 Các thành phần thông tin trạng thái Session SSL 44 Bảng 4.3 Các thành phần thông tin trạng thái nối kết SSL 44 Mục lục Lời cám ơn..................................................................................................................................3 Tóm tắt nội dung.........................................................................................................................3 Danh mục ký hiệu, từ viết tắt.......................................................................................................4 Danh mục bảng và hình vẽ ..........................................................................................................5 Mục lục.......................................................................................................................................7 [8] CHƯƠNG 1: Mở đầu................................................................................................................11 1.1. Đặt vấn đề...................................................................................................................11 1.2. Nội dung bài toán........................................................................................................12 1.3. Kết quả đạt được.........................................................................................................13 1.4. Cấu trúc khóa luận ......................................................................................................13 CHƯƠNG 2 :Kiến trúc dịch vụ hướng đối tượng SOA..............................................................14 1. Định nghĩa kiến trúc hướng dịch vụ SOA...........................................................................15 2. Tính chất của một hệ thống sử dụng SOA ..........................................................................17 2.2. Tính sử dụng lại dịch vụ ..............................................................................................17 2.3. Sử dụng dịch vụ bất đồng bộ .......................................................................................17 2.4. Quản lý các chính sách................................................................................................18 2.5. Khả năng cộng tác.......................................................................................................18 2.6. Tự động dò tìm và ràng buộc động..............................................................................18 2.7. Tự phục hồi.................................................................................................................18 3. Lợi ích khi sử dụng SOA....................................................................................................18 4. Kết luận .............................................................................................................................19 CHƯƠNG 3 : Web Service .......................................................................................................20 3.1. Service ...........................................................................................................................20 3.1.1. Định nghĩa...............................................................................................................20 3.1.2. Đặc điểm service .....................................................................................................21 3.2. Web service....................................................................................................................22 [9] 3.2.1. Định nghĩa...............................................................................................................22 3.2.2. Cấu trúc web service ...............................................................................................24 3.2.3. Các đặc điểm của web service .................................................................................25 3.2.4. Các thành phần của web service ..............................................................................26 3.2.4.1. WSDL (Web Services Description Language) ..................................................26 3.2.4.2. UDDI (Universal Description, Discovery and Integration)................................29 3.2.4.3. SOAP (Simple Object Access Protocol) ...........................................................29 3.2.4.4. XML (eXtensible Markup language) ................................................................33 3.2.5. Hoạt động của Web services....................................................................................34 3.3. SOA và dịch vụ web.......................................................................................................35 CHƯƠNG 4 : Các kỹ thuật đảm bảo an ninh dịch vụ web .........................................................37 4.1. Các vấn đề bảo mật cần quan tâm ...................................................................................37 4.1.1. Những hạn chế của tường lửa ..................................................................................37 4.1.2. Cơ chế bảo mật chưa được định nghĩa một các đầy đủ .............................................37 4.1.4. Bảo mật trong qui trình phối hợp hoạt động của các WS..........................................38 4.2. Giao thức bảo mật SSL...................................................................................................38 4.2.1. Cấu trúc giao thức bảo mật SSL...............................................................................38 4.2.2. SSL Record Protocol ...............................................................................................45 4.2.3. SSL Handshake Protocol .........................................................................................47 4.3. Khai thác tính năng bảo mật của bộ thư viện Web Service Enhancement (WSE) ............53 4.3.1. Những tính năng bảo mật web service của wse ........................................................54 [10] 4.3.2. Thư viện WSE...........................................................Error! Bookmark not defined. a. UsernameToken Authentication: ...................................Error! Bookmark not defined. b. Chứng nhận X.509 ........................................................Error! Bookmark not defined. 4.3.3. Hô trợ policy................................................................................................................55 4.3.4. Kiến trúc của wse ......................................................Error! Bookmark not defined. CHƯƠNG 5 : Xây dựng chương trình và đánh giá kết quả .......................................................56 5.1. Mô tả hệ thống cần xây dựng..........................................................................................57 5.2. Triển khai hệ thống.........................................................................................................57 5.2.1. Lựa chọn ngôn ngữ lập trình....................................................................................57 5.2.2. Hoạt động của hệ thống ...........................................................................................58 5.2.2.2. Đăng nhập............................................................................................................58 5.2.2.3. Đăng ký tài khoản mới .........................................................................................59 5.2.3.4. Thực hiện giao dịch .............................................................................................60 5.3. Tích hợp các thẻ bảo mật cho chương trình với công cụ WSE.........................................61 5.3.1. Sử dụng công cụ WSE từ bên trong Visual Studio 2005 Error! Bookmark not defined. 5.3.2. Sử dụng công cụ WSE từ menu start .............................Error! Bookmark not defined. CHƯƠNG 6 : Kết luận..............................................................................................................77 Tài liệu tham khảo.....................................................................................................................80 [11] CHƯƠNG 1 Mở Đầu 1.1. Đặt vấn đề Kinh doanh chứng khoán là một hoạt động diễn ra khá phổ biến hiện nay, trong một bộ phận xã hội không nhỏ, nhưng công việc giao dịch hiện nay vẫn chủ yếu bằng tiền mặt. Người mua chứng khoán vẫn phải trực tiếp đến các công ty chứng khoán giao dịch và công ty chứng khoán [12] vẫn giữ toàn bộ số tiền của nhà đầu tư. Công việc này làm mất nhiều thời gian công sức, không đảm bảo sự an toàn cho nhà đầu tư và không mang tính chuyên nghiệp. Các doanh nghiệp đang hướng tới một hoạt động kinh doanh chứng khoán mà trong đó tất cả các hoạt động của nhà đầu tư, doanh nghiệp, ngân hàng đều được thực hiện thông qua Internet. Và cũng hiện nay cũng đã có một số hệ thống phần mềm kinh doanh chứng khoán. Tuy hoạt động chưa hiệu quả và vẫn còn gặp phải nhiều khó khăn nhưng điều đó cũng nói nên một nền tài chính không tiền mặt. Những người sử dụng có thể tiết kiệm thời gian, công sức mà vẫn đảm bảo lợi ích về lãi suất, khả năng thanh toán… Tuy nhiên hệ thống thông tin của các công ty chứng khoán và ngân hàng còn quá nhiều khác biệt và chưa kết nối được với nhau. Vấn đề này gây ra nhiều khó khăn và có thể dẫn đến bỏ lỡ cơ hội của nhà đầu tư. Mặt khác công ty chứng khoán phải đảm bảo kết nối với nhiều ngân hàng cùng một lúc vì mỗi nhà đầu tư chọn cho mình một ngân hàng khác nhau. Tương tự ngân hàng cũng muốn kết nối với nhiều công ty chứng khoán để mở rộng mạng lưới của mình. Khi đưa mọi hoạt động giao dịch lên mạng internet, một điều lo ngại đối với nhà đầu tư, công ty chứng khoán hay ngân hàng là các thông tin cá nhân của họ có được bảo mật một cách chặt chẽ và có chắc chắn rằng chúng sẽ không bị tấn công bởi cách hacker… Khi nhà đầu tư mở một tài khoản chứng khoán hoặc tài khoản ngân hàng họ sẽ được cung cấp username/password hay mã chứng khoán, mã ngân hàng. Vấn đề bài toán đặt ra là làm thế nào để nhứng thông tin đó được trao đổi giữa 2 bên một cách an toàn mà không bị tấn công. Bài toán đặt ra là đưa ra một giải pháp kết nối giữa nhà đầu tư – công ty chứng khoán – ngân hàng. Các giao dịch được thực hiện trực tiếp trên mạng mà vẫn đảm bảo an toàn cho các bên? 1.2. Nội dung bài toán Để làm giảm độ phức tạp do những khó khăn trên bài toán được giải quyết, tôi chọn một hệ thống đơn giản chỉ cung cấp những thông tin đơn giản như thông tin cổ phiếu, thông tin tài khoản của nhà đầu tư, số dư trong tài khoản ngân hàng… Khi một nhà đầu tư mở tài khoản chứng khoán có thể được cung cấp luôn tài khoản ngân hàng. Dịch vụ của công ty chứng khoán sẽ cung cấp thông tin về tài khoản của nhà đầu tư. Sau khi submit để hoàn thành việc đăng ký, username và password của nhà đầu tư sẽ được gửi đến email đăng ký. Thông tin về tài khoản ngân hàng của nhà đầu tư số dư trong tài khoản cũng được hiển thị. [13] Khi khách hàng muốn thực hiện một giao dịch, trước tiên cần đăng nhập vào hệ thống. Khách hàng sẽ nhập username/password và submit để gửi đến hệ thống của công ty chứng khoán. Sau khi đăng nhập khách hàng có thể thực hiện giao dịch mua/bán bằng tài khoản chứng khoán và tài khoản ngân hàng của mình, các thông điệp giữa khách hàng – công ty chứng khoán và nhà đầu tư được trao đổi qua lại. Nếu không có phương pháp bảo mật an toàn, các thông điệp này có thể dễ dàng bị đánh cắp bởi những phương pháp tấn công và dẫn đến thiệt hại cho các bên giao dịch. Để đáp ứng được các yêu cầu của bài toán đặt ra, đặc biệt là toàn bộ các giao dịch đều được đảm bảo chính xác, an toàn cho các bên tham gia sẽ không thể không sử dụng tới các kiến thức trong lĩnh vực Công nghệ thông tin. Có rất nhiều công cụ bảo mật cho web service như công nghệ bảo mật SSL và các thành phần của nó, giao thức HTTP, các chứng chỉ số… Trong luận văn này, tôi tập trung đi sâu vào nghiên cứu bảo mật web service theo công nghệ SSL, giao thức HTTP và đặc biệt là sử dụng bộ thư viện Web Service Enhencement (WSE) của .NET Framework Microsoft. Web services giao tiếp thông qua các message SOAP. WSE cung cấp những mở rộng của giao thức SOAP và cho phép người dùng tự định nghĩa bảo mật, truyền message đáng tin cậy, chính sách... Các nhà phát triển có thể thêm vào những kỹ thuật này trong quá trình xây dựng (dùng code) hoặc trong quá trình triển khai (policy file). 1.3. Kết quả đạt được - Nghiên cứu về các vấn đề: công nghệ web services, kiến trúc hướng dịch vụ SOA, các kỹ thuật đảm bảo an ninh web services đặc biệt là cấu trúc giao thức SSL, HTTP, bộ thư viện WSE và các đặc điểm của nó. - Phát triển chương trình “giao dịch chứng khoán thông qua tài khoản ngân hàng”. Triển khai hệ thống và tích hợp các kỹ thuật đảm bảo an toàn cho hệ thống. 1.4. Cấu trúc khóa luận Nội dung luận văn bao gồm các chương sau: Chương 1: Giới thiệu Mô tả chung về bài toán, hướng giải quyết và các kết quả đạt được sau một thời gian nghiên cứu. Chương 2: Kiến trúc hướng dịch vụ SOA Giới thiệu về kiến trúc SOA một phương pháp tiếp cận công nghệ thông tin khá phổ biến. Trong chương này tôi đưa ra những kiến thức cơ bản về mô hình kiến trúc hướng dịch vụ. Các định [14] nghĩa, cấu trúc của kiến trúc hướng dịch vụ, những đặc điểm và lợi ích của nó trong việc xây dựng một web service và kết hợp chúng theo chuẩn. Chương 3: Web services Chương này sẽ đi sâu vào tìm hiểu chi tiết về web service, các đặc điểm cũng như đặc tả các thành phần của nó như WSDL, SOAP, XML, UDDI … và phần cuối chương là mối quan hệ giữa kiến trúc hướng dịch vụ SOA và Web service. Chương 4: Các kỹ thuật đảm bảo an ninh Web Service. Trong chương này đưa ra tình trạng an ninh của web service hiện nay. Tiếp theo cũng trình bày về các kỹ thuật đảm bảo an ninh như công nghệ bảo mật SSL và đặc biệt là khai thác tính năng của bộ thư viện Web Service Enhancement (WSE) của .NET Framework. Chương 5: Xây dựng, triển khai hệ thống và đánh giá kết quả Chạy demo chương trình chứng khoán giải quyết vấn đề “kết nối chứng khoán với ngân hàng”. Phần trọng tâm trong chương này là kết hợp các thẻ security của bộ thư viện WSE vào Web Service. Chương 6: Kết luận và hướng phát triển trong tương lai. CHƯƠNG 2 Kiến trúc hướng dịch vụ SOA (Service-Oriented-Architecture) Phần mềm ngày nay đang trở lên phức tạp và dường như vượt khỏi tầm kiểm soát của các mô hình phát triển phần mềm hiện có. Nhiều phần mềm lại được xây dựng với hệ thống quá phức tạp, chi phí phát triển cao mà lại khó bảo trì. Nhiều năm qua, nhiều kiến trúc phần mềm dã được [15] xây dựng và triển khai nhằm giải quyết vấn đề này. Tuy nhiên độ phức tạp vẫn tiếp tục tăng và càng khó khăn hơn khi vấn đề lập trình dư thừa và không thể tái sử dụng. Tích hợp các phần mềm lại với nhau là nhu cầu thiết yếu cho tình trạng phát triển phần mềm hiện nay, và làm thế nào để tạo ra được một phần mềm với chi phí thấp, chất lượng tốt, dễ sử dụng và dễ bảo trì là một vấn đề mà nhiều nhà phát triển đ