Triển khai hệ thống và đánh giá kết quả

Một phần của tài liệu Nghiên cứu về an ninh dịch vụ Web (Trang 59)

4.3.1. Lựa chọn ngôn ngữ lập trình

ASP.NET là một công nghệ có tính cách mạng dùng để phát triển các ứng dụng về mạng hiện nay cũng nhƣ trong tƣơng lai bởi các đặc điểm nổi bật:

- Hỗ trợ nhiều ngôn ngữ lập trình;

- Có những điều khiển (controls) có thể lập trình đƣợc và Hỗ trợ lập trình điều khiển bởi sự kiện (event-driven programming);

- Những thành phần (components) dựa vào XML;

- Xác thực ngƣời dùng qua tài khoản (account) và vai trò (role); - Khả năng mở rộng cao hơn;

- Mã thực thi hiệu quả hơn; - Dễ cài đặt và cấu hình;

ASP.NET là ngôn ngữ hƣớng thành phần (component) rất mạnh đƣợc hỗ trợ trong SQL Server và Microsoft Visual Studio.NET là môi trƣờng lập trình cung cấp rất nhiều công cụ cần thiết cho việc xây dựng các dự án lớn hoặc nhỏ (thậm chí có thể xây dựng các dự án từ việc kết hợp các module của các ngôn ngữ khác nhau). [3, 4]

Từ các lý do trên mà ngôn ngữ đƣợc lựa chọn để xây dựng hệ thống dịch vụ Web tạo kết nối giữa ngân hàng với công ty chứng khoán. Trong ứng dụng này sử

dụng hệ cơ sở dữ liệu cơ sở dữ liệu SQL Server, và ngôn ngữ ASP.NET của bộ VisualStudio.NET.

4.3.2. Triển khai hệ thống

4.3.2.1. Kiến trúc tổng quát

- Client: Sử dụng ASP.NET tạo ra các giao diện cho phía ngƣời dùng. - Tầng Server: chứa các hàm xử lý yêu cầu từ phía client đƣa lên. - Tầng dữ liệu: quản trị cơ sở dữ liệu

4.3.2.2. Mô hình triển khai

Tầng dữ liệu SQL DB Server

Client BroWeb serviceer /App web Form ASP.NET Tầng Server Server Hình 4.2: Kiến trúc tổng quát XML <yêu cầu> XML <trả về>

Hình 4.3: Mô hình triển khai

Server Application Server Database Client Users Server Web service Application Server Database Client Users

Client: với vai trò là nhà đầu tƣ, khách hàng.

Server: 1 với vai trò là hệ thống lõi của ngân hàng, 1 là công ty chứng khoán. Các thông điệp yêu cầu của Client gửi tới Server và thông điệp phản hồi của Server trả lại cho Client đƣợc gói trong các đoạn mã XML.

Dịch vụ Web có vai trò lắng nghe các yêu cầu dƣới dạng mã XML từ công ty chứng khoán gửi đến và chuyển chúng cho Server xử lý, sau đó nhận thông tin đã xử lý từ Server và chuyển chúng thành mã XML rồi trả lại cho công ty chứng khoán.

4.3.3. Các chức năng chính của hệ thống

4.3.3.1. Đăng ký tài khoản ngân hàng mới

Trƣớc khi tham gia tài khoản chứng khoán, nhà đầu tƣ cần có một tài khoản ngân hàng. Nếu chƣa có thì có thể cung cấp thông tin trực tiếp để công ty chứng khoán liên hệ với ngân hàng và đƣợc cấp luôn một tài khoản ngân hàng.

Tài khoản ngân hàng này sẽ lƣu trữ số tiền mặt hiện có của khách hàng và do ngân hàng quản lý. Một tài khoản ngân hàng gồm các thông tin quan trọng là: mã tài khoản, mật khẩu truy cập, số dƣ tài khoản và các thông tin cá nhân khác. Mật khẩu sẽ đƣợc yêu cầu mỗi khi nhà đầu tƣ thực hiện mua bán cổ phiếu.

4.3.3.2. Hiển thị thông tin trang chủ

Hình 4.5: Giao diện hiển thị thông tin trang chủ

Trang chủ hiển thị thông tin các cổ phiếu chứng khoán, cho phép client xem thông tin chứng khoán và chuyển sang giao diện đăng nhập, đăng ký.

4.3.3.3. Đăng ký tài khoản mới

Để có thể thực hiện giao dịch, trƣớc tiên nhà đầu tƣ cần phải có một tài khoản chứng khoán và một tài khoản ngân hàng, nhà đầu tƣ cung cấp các thông tin cá nhân cần thiết cho công ty chứng khoán để tạo tài khoản. Nếu thông tin đầy đủ và chính xác thì hệ thống sẽ thông báo đăng ký tài khoản thành công, ngƣợc lại sẽ báo lỗi tƣơng ứng. Tài khoản chứng khoán lƣu trữ các thông tin chứng khoán của nhà đầu tƣ nhƣ: thông tin cá nhân, thông tin cổ phiếu hiện có.

4.3.3.4. Đăng nhập hệ thống

Nếu nhà đầu tƣ đã có tài khoản chứng khoán, nhà đầu tƣ có thể đăng nhập vào hệ thống để thực hiện giao dịch.

Hình 4.7: Giao diện đăng nhập

Giao diện đăng nhập cho phép ngƣời dùng điền Username và Password để đăng nhập vào hệ thống. Thông tin về Username và Password đƣợc chuyển lên Server để kiểm tra trong cơ sở dữ liệu của công ty chứng khoán. Nếu Username và Password đúng thì đăng nhập thành công, ngƣợc lại báo lỗi.

4.3.3.5. Hiển thị thông tin tài khoản

Sau khi đăng nhập thành công, trang giao dịch xuất hiện với các thông tin tài khoản của nhà đầu tƣ bao gồm: thông tin về cổ phiếu nhà đầu tƣ hiện có nhƣ mã, tên, giá, số lƣợng giá cổ phiếu, tổng giá trị cổ phiếu có trong tài khoản, số dƣ trong tài khoản ngân hàng.

Chỉ cho phép nhà đầu tƣ giao dịch: bán đối với mã cổ phiếu, số lƣợng cổ phiếu hiện có trong tài khoản, mua trong giới hạn số dƣ tài khoản ngân hàng.

Ngoài ra giao diện còn cung cấp đƣờng dẫn chuyển về trang chủ, đăng xuất khỏi giao dịch.

Hình 4.8: Giao diện hiển thị tài khoản cá nhân

4.3.4. Đánh giá kết quả thử nghiệm chƣơng trình

Để xây dựng hệ thống một cách hoàn chỉnh thực hiện đầy đủ các chức năng yêu cầu trong thực tế đòi hỏi cần phải có một thời gian dài. Trong thời gian qua chúng tôi đã tìm hiểu bài toán, tiến hành xây dựng hệ thống và bƣớc đầu đã đạt đƣợc những kết quả tƣơng đối khả quan với việc xây dựng xong một số chức năng hệ thống đặt ra và chạy thử nghiệm trên máy tính cá nhân và xử lý các giao dịch liên quan đến tài khoản tiền mặt tại ngân hàng của nhà đầu tƣ một cách trực tuyến.

Qua thời gian chạy thử nghiệm cho thấy chƣơng trình thực hiện đƣợc các chức năng đăng ký, đăng nhập, mua/bán cổ phiếu đã đặt ra và đảm bảo đƣợc một số vấn đề an toàn cần thiết khi giao dịch. Cụ thể đƣợc mô tả qua các kịch bản sau:

- Kịch bản 1: tấn công bằng cách ăn cắp mật khẩu để đăng nhập hệ thống thành ngƣời dùng hợp pháp.

+ Khi đăng nhập, hệ thống yêu cầu ngƣời dùng phải xác thực bằng cách nhập tài khoản và mật khẩu, mật khẩu đƣợc lƣu trong biến session và đƣợc giải phóng sau khi ngƣời dùng đăng xuất.

+ Ngƣời dùng bình thƣờng khác sẽ không đăng nhập trái phép đƣợc vì không có tài khoản và mật khẩu.

+ Với ngƣời quản trị hệ thống (ngƣời nắm giữ cơ sở dữ liệu của ngƣời dùng) cũng không thể đăng nhập đƣợc vào hệ thống bởi kết quả lƣu trong cơ sở dữ liệu không phải là mật khẩu “thô” mà là kết quả băm. Hàm băm lại là hàm một chiều nên dù biết kết quả băm cũng “khó” có thể tìm ra đƣợc văn bản gốc (mật khẩu gốc) để đăng nhập.

- Kịch bản 2: tấn công vào dữ liệu trên đƣờng truyền từ nhà đầu tƣ (client) đến công ty chứng khoán (server).

+ Các phƣơng pháp mà attacker có thể sử dụng để tấn công dữ liệu trên đƣờng truyền là: Sniffing, Man In The Middle,.. để từ đó, Hacker thu thập thông tin trên đƣờng truyền, tập hợp lại để phân tích tìm thông tin cần thiết cho việc tấn công, hoặc ở mức độ cao hơn là sửa đổi thông tin của client gửi đến server hay mạo danh client gửi yêu cầu đến server.

. Sniffing là một chƣơng trình nghe trộm gói tin (còn gọi là chƣơng trình phân tích mạng, chƣơng trình phân tích giao thức hay chƣơng trình nghe trộm). Nó là một phần mềm máy tính có khả năng chặn và ghi lại giao thông dữ liệu qua một mạng viễn thông số hoặc một phần của một mạng. Khi các dòng dữ liệu di chuyển qua lại một mạng, chƣơng trình nghe trộm bắt lấy từng gói tin rồi giải mã và phân tích nội dung của nó. Tùy theo cấu trúc mạng (hub hay chuyển mạch), ngƣời ta có thể nghe trộm tất cả hoặc chỉ một phần của giao thông dữ liệu từ một máy trong mạng. [2]

. Giả danh địa chỉ MAC của card mạng máy tính bị tấn công, thay vì gói tin đƣợc truyền đến máy tính cần đến thì nó lại đƣợc chuyển đến máy tính có cài đặt ettercap trƣớc rồi sau đó mới truyền đến máy tính đích. Đây là một dạng tấn công rất nguy hiểm đƣợc gọi là Man In The Middle, trong trƣờng hợp này phiên làm việc giữa máy gửi và máy nhận vẫn diễn ra bình thƣờng nên ngƣời sử dụng không hề hay biết mình đang bị tấn công. [2]

+ Hệ thống đƣợc cài đặt SSL cho máy chủ Web nên đảm bảo: . Các bên giao tiếp xác thực nhau tránh bị giả mạo.

. Dữ liệu trên đƣờng truyền đƣợc mã hoá đảm bảo sự bí mật. . Kiểm tra tính toàn vẹn dữ liệu.

- Kịch bản 3: tấn công Web services bằng cách thực hiện các dịch vụ của nó khi không giao dịch hay không phải nhà đầu tƣ hợp pháp.

+ Các khả năng tấn công xảy ra

. Hacker sửa dữ liệu của ngƣời dùng hợp pháp nhƣ số tiền tăng/giảm của nhà đầu tƣ, làm sai lệch thông tin đến Web services.

. Hacker sẽ tìm cách để thực hiện các dịch vụ trái phép nhƣ tăng/giảm số lƣợng tiền trong ngân hàng mà không phải thông qua giao dịch mua bán cổ phiếu của công ty chứng khoán.

+ Web service sử dụng công cụ WSE3.0 và giao dịch đƣợc hệ thống xác nhận qua hai lần mật khẩu (mật khẩu tài khoản chứng khoán, mật khẩu tài khoản ngân hàng), xác thực ngƣời dung nên đảm bảo chỉ đúng nhà đầu tƣ mới thực hiện đƣợc giao dịch.

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 1. Kết luận

Dịch vụ Web đã và đang đƣợc triển khai và ứng dụng trong rất nhiều lĩnh vực khác nhau bao gồm cả những lĩnh vực nhạy cảm, đòi hỏi tính an toàn cao nhƣ tài chính, ngân hàng,… Do đó, dịch vụ Web cần đƣợc cung cấp một mức an toàn đủ để hỗ trợ những công việc nhƣ thế, và đó cũng là một điều rất quan trọng trong quá trình xây dựng dịch vụ Web. Bằng việc sử dụng các kỹ thuật đảm bảo an ninh dịch vụ Web sẽ giúp cho ngƣời sử dụng dịch vụ Web trở nên an tâm hơn.

Việc chọn cơ chế an toàn cho dịch vụ Web 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 đó, chọn cơ chế an toàn nào trong dịch vụ Web phụ thuộc nhiều 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 dịch vụ Web 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.

Về mặt nội dung, đóng góp của luận văn bao gồm:

- Tổng hợp, nghiên cứu, phân tích SOA và công nghệ dịch vụ Web cũng nhƣ các thành phần của nó, cách tích hợp chúng theo chuẩn, đặc biệt là tìm hiểu các kỹ thuật, công nghệ đảm bảo an ninh dịch vụ Web nhƣ công nghệ bảo mật SSL, WSE3.0,..

- Viết chƣơng trình chạy thành công với hệ thống kết nối giữa ngân hàng và công ty chứng khoán, hệ thống này thực hiện các chức năng đăng ký, đăng nhập, xử lý trực tuyến các giao dịch liên quan đến tiền của nhà đầu tƣ là mua/bán cổ phiếu đảm bảo sự an toàn cần thiết bằng cách:

. Cấu hình chạy https (SSL) cho máy chủ Web bên công ty chứng khoán. Tầng bảo mật kết nối sử dụng giao thức SSL độ dài mã hóa 128 bit để bảo mật và mã hóa thông tin trao đổi trên đƣờng truyền dữ liệu để chỉ đúng đối tƣợng mới xem đƣợc nội dung thông tin trao đổi, chứng thực client và server mỗi khi cần thực hiện trao đổi tin.

. Sử dụng WSE để hỗ trợ các kỹ thuật bảo mật dịch vụ web nhƣ:quản lý quyền truy cập ngƣời dùng giúp cho việc chỉ ngƣời nào thực sự có quyền mới truy cập vào hệ thống và cơ chế xác thực của ngƣời dùng; đảm bảo tính toàn vẹn của dữ liệu trên đƣờng truyền.

. Ngoài ra, sử dụng hàm băm để bảo vệ mật khẩu đăng nhập tài khoản lƣu trong cơ sở dữ liệu trên hai server.

2. Hƣớng phát triển trong tƣơng lai

Với hƣớng nghiên cứu này, nếu có điều kiện, luận văn sẽ cố gắng phát triển thêm những nội dung sau:

- Hệ thống cho phép kết nối một ngân hàng với nhiều công ty chứng khoán và ngƣợc lại, giúp hỗ trợ nhà đầu tƣ linh hoạt trong việc sử dụng hệ thống tài khoản của mình đặt tại các công ty khác nhau.

- Triển khai hệ thống với nhiều chức năng cho cả 2 phía công ty chứng khoán và ngân hàng nhƣ phân tích thông tin đến từ các công ty chứng khoán khác nhau và đặc biệt cho phép tƣơng tác hai chiều giữa ngân hàng và công ty chứng khoán, các thông kê, báo cáo định kỳ về các giao dịch của nhà đầu tƣ.

- Lƣu lại lịch sử các giao dịch để đáp ứng việc đối soát thông tin giữa hai hệ thống lõi của ngân hàng và chứng khoán, cung cấp đầy đủ thông tin lƣu vết giúp cho việc kiểm soát kết nối thật dễ dàng và thuận tiện.

- Thiết kế theo kiến trúc hiện đại, đa lớp sẽ cho phép triển khai những thành phần của hệ thống trên những server khác nhau, làm giảm thiểu khả năng xảy ra lỗi, cũng nhƣ sử dụng hệ cơ sở dữ liệu Oracle, cho phép hệ thống luôn sẵn sàng hoạt động. - Thêm chức năng chạy offline (chạy chế độ không kết nối) đảm bảo giúp cho công ty chứng khoán không bị gián đoạn giao dịch quá lâu khi bị đứt đƣờng truyền đối với ngân hàng. Đồng bộ các giao dịch Offline khi có kết nối với ngân hàng.

- Xây dựng dịch vụ Web để có thể phát triển các ứng dụng client dùng trên các thiết bị di động cầm tay.

TÀI LIỆU THAM KHẢO

[1] Bộ tài chính (2007), Quyết định 27/2007/QĐ-BTC về việc ban hành Quy chế tổ

chức và hoạt động công ty chứng khoán.

[2] Vũ Đình Cƣờng (2008), Tìm Hiểu Các Kiểu Tấn Công Cơ Bản & Phương Pháp

Phòng Chống, Nhà xuất bản Lao động - Xã hội.

[3] Phạm Hữu Khang (2007), Tập 5: Lập Trình ASP.Net - Quyển 4: Đối Tượng ADO.Net 2.0 Và XML, Nhà xuất bản Lao động - Xã hội.

[4] Nguyễn Văn Lân (2008), Kỹ Thuật Xây Dựng Ứng Dụng ASP.NET - Tập 2,

Nhà xuất bản Lao động - Xã hội.

[5] Nguyễn Ngọc Bình Phƣơng, Thái Kim Phụng, Lê Ngọc Sơn, Nguyễn Hoàng Thanh Nhàn (2005), Các giải pháp lập trình ASP.NET, Nhà xuất bản Giao thông vận tải.

[6] Dƣơng Anh Đức, Trần Minh Tri (2005), Mã hoá và ứng dụng, Đại học Quốc gia thành phố Hồ Chí Minh.

[7] Trung tâm Tin học (2005), Lập trình ứng dụng Web với ASP.NET, Đại học

Khoa học Tự nhiên Tp.HCM .

[8] Hồng Phúc, KS.Nguyễn Ngọc Tuấn (2005), Công nghệ bảo mật, Nhà xuất bản Thống kê.

[9] VN-Guide (2004), Visual Basic.NET, Nhà xuất bản Thống kê.

[10] Thái Hồng Nhị, Phạm Minh Việt (2004), An toàn thông tin, Nhà xuất bản Khoa học và Kỹ thuật.

[11] D. Booth, H. Haas, F. McCabe, E. Newcomer, M. Champion, C. Ferris, D. Orchard (2004) Web Services Architecture.

[12] Ethan Cerami (2002), Web Services Essentials Distributed Applications with XML-RPC, SOAP, UDDI & WSDL, O'Reilly Hill.

[13] Rob High, Stephen Kinder, Steve Graham (2005), IBM's SOA Foundation - An

Architectural Introduction and Overview - Version 1.0.

[14] Microsoft (2008), Web Service Security Scenarios, Patterns, and Implementation Guidance for Web Services Enhancements (WSE) 3.0, Microsoft

Hill.

[15] Eric Rescola, Addison Wesley (2001), SSL and TLS Designing and Building Secure Systems.

[16] An introduction to Web Service Security using WSE,

http://www.codeproject.com/KB/webservices/WS-Security.aspx

[17] Building SOA Solutions and Managing the Service Lifecycle,

http://wiki.nectec.or.th/setec/Knowledge/BuildingSOASolutionsandManagingth eServiceLifecycle

[18] Các giao thức bảo mật SSL và TLS - Phần II: Cấu trúc của giao thức SSL,

http://vnexperts.net/content/view/555/1/

[19] Các giao thức bảo mật SSL và TLS - Phần III: SSL Record Protocol,

http://vnexperts.net/content/view/556/1/

[20] Các giao thức bảo mật SSL và TLS - Phần VI: SSL Handshake Protocol,

http://vnexperts.net/content/view/557/1/ [21] Dịch vụ web,

http://vi.wikipedia.org/wiki/D%E1%BB%8Bch_v%E1%BB%A5_web

[22] Implement Secure .NET Web Services with WS-Security,

http://www.devx.com/security/Article/15634

Một phần của tài liệu Nghiên cứu về an ninh dịch vụ Web (Trang 59)

Tải bản đầy đủ (PDF)

(72 trang)