Giao thức SSL định nghĩa một chuỗi các bƣớc đặc biệt để bảo đảm một kết nối“đƣợc bảo vệ”. Tuy nhiên, việc lựa chọn Ciphersuite sẽ tác động trực tiếp đến loại bảo mật mà kết nối có đƣợc. Ví dụ, nếu một ciphersuite nặc danh đƣợc chọn, ứng dụng không có cách nào để kiểm tra định danh của đầu xa. Nếu một suite- không có mã hóa, đƣợc chọn, tính bí mật của dữ liệu không thể đƣợc bảo vệ.
Thêm vào đó, giao thức SSL không chỉ rõ rằng những tài liệu chứng nhận nhận đƣợc phải khớp với những cái mà đầu kia gửi. Nếu kết nối theo cách nào đó mà bị redirect đến một kẻ xấu, nhƣng tài liệu chứng nhận của kẻ xấu này khi trình ra thì đƣợc chấp nhận dựa trên những tƣ liệu tin tƣởng hiện tại, kết nối này sẽ đƣợc xét là hợp lệ.
Khi dùng SSLSockets nên luôn luôn kiểm tra tài liệu chứng nhận của đầu xa trƣớc khi gửi bất kì dữ liệu nào. Các lớp SSLSockets không tự động kiểm tra hostname trong URL có khớp với hostname trong tài liệu chứng nhận của đầu kia hay không. Một ứng dụng có thể bị khai thác bằng URL spoofing nếu hostname không đƣợc kiểm tra.
Các giao thức nhƣ HTTPS cần thiết phải kiểm tra hostname. Các ứng dụng có thể dùng HostnameVerifier để viết chồng lên luật hostname HTTPS mặc định.
45
CHƢƠNG 4: XÂY DỰNG
HỆ THỐNG THƢƠNG MẠI ĐIỆN TỬ DỰA TRÊN CƠ SỞ HẠ TẦNG PKI 4.1. Thiết kế hệ thống thƣơng mại điện tử
4.1.1. Mô hình tổng quan
- Quản lý tài khoản; - Quản lý giao dịch; - Quản lý mặt hàng; - Giải quyết sự cố; - Báo cáo.
Hình 4.1. Sơ đồ chức năng của hệ thống quản lý bán hàng trực tuyến
Chi tiết từng module đƣợc thiết kế nhƣ các phần bên dƣới.
4.1.2. Quản lý tài khoản
46
(1.1.1) Cung cấp tên/ công ty: Khi khách hàng hoặc nhà phân phối muốn đăng ký tài khoản với website thì phải cung cấp tên đầy đủ cho website.
(1.1.2) Cung cấp ngày sinh (khách): nếu là khách hàng thì phải cung cấp ngày sinh.
(1.1.3) Cung cấp số ĐT: khách hàng và nhà phân phối phải cung cấp số điện thoại để khi cần có thể liên lạc đƣợc.
(1.1.4) Cung cấp số CMTND: khách hàng cần cung cấp số CMTND của mình cho website, còn nhà phân phối thì không cần cung cấp.
(1.1.5) Cung cấp số tài khoản: Khách hàng và nhà phấn phối cung cấp số tài khoản ngân hàng sẽ dùng để giao dịch.
(1.1.6) Cung cấp địa chỉ email: Cả nhà phân phối lẫn khách hàng đều phải đăng ký địa chỉ email để website gửi thông báo khi cần.
(1.1.7) Cung cấp tên tài khoản: khi đăng ký tài khoản thì đều phải đăng ký tên tài khoản dùng để giao dịch với website.
(1.1.8) Cung cấp mật khẩu: khách hàng và nhà phân phối đƣa mật khẩu cho website để đảm bảo quyền lợi cho khách hàng và nhà phân phối và mật khẩu sẽ đƣợc mã hóa theo MD5.
4.1.3. Quản lý giao dịch
47
(2.1) Tạo giỏ hàng: Khi khách hàng đi mua hàng trên website của doanh nghiệp thì mỗi ngƣời dùng khi đăng nhập vào website thì sẽ đƣợc cung cấp một giỏ hàng, giỏ hàng này chứa các mặt hàng mà ngƣời mua lựa chọn.
(2.2) Sửa giỏ hàng: Một ngƣời khi đi mua hàng thì lúc xem hàng thƣờng là sẽ thích rất nhiều thứ và cứ cho vào giỏ hàng của mình. Tuy nhiên lúc đồng ý mua hàng thì có thể ngƣời mua sẽ thay đổi giỏ hàng của mình, website cung cấp chức năng cho phép ngƣời mua thay đổi giỏ hàng của mình.
(2.3) Xác nhận giao dịch: Khi khách hàng đã chọn xong những mặt hàng của mình và quyết định mua thì khách sẽ phải xác nhận giao dịch với website để website sẽ gửi yêu cầu lên hệ thống.
(2.4) Xóa giỏ hàng: Khi giao dịch đã đƣợc xác nhận thì giỏ hàng xẽ bị xóa (trong giỏ hàng sẽ không còn mặt hàng nào nữa).
4.1.4. Quản lý mặt hàng
48
(3.1) Thêm mặt hàng: việc thêm mặt hàng sẽ xảy ra rất thƣờng xuyên vì các nhà cung cấp luôn có sản phẩm mới. Thêm hàng mới thì nhà cung cấp sẽ phải cung cấp thông tin về sản phẩm đó cho website. Khi đƣợc sự đồng ý của Admin website thì hàng mới mới đƣợc đăng trên website.
(3.2) Sửa mặt hàng: Khi nhà cung cấp có nhu cầu thay đổi thông tin về sản phẩm của mình thì website cấp quyền thay đổi cho các tài khoản của nhà cung cấp.
(3.3) Tìm kiếm mặt hàng: Mỗi khi khách hàng vào mua hàng thì luôn có nhu cầu tìm kiếm hàng để mua. Website cung cấp chức năng tìm kiếm cho khách hàng, khách hàng có thể tìm kiếm theo giá, chủng loại, hãng…
(3.4) Xóa mặt hàng: Khi nhà cung cấp không còn mặt hàng nào đó để cung cấp thì nhà cung cấp sẽ phải xóa mặt hàng đó khỏi website.
4.1.5. Quản lý sự cố
(4.1) Nhận biên bản sự cố: khi khách hàng xác nhận một giao dịch thì website sẽ gửi giao dịch lên hệ thống, hệ thống sẽ kiểm tra lại xem mặt hàng mà khách hàng chọn có còn trong kho không và tiền trong tài khoản của khách hàng có đủ để mua hàng không. Nếu có sự cố xảy ra thì hệ thống sẽ gửi thông báo sự cố đến cho website.
(4.2) Xử lý sự cố: Khi nhận đƣợc biên bản sự cố của hệ thống gửi xuống thì website sẽ phải phân loại xem đó là sự cố gì để gửi đến cho khách hàng biết.
(4.3) Thông báo: Xử lý xong sự cố thì website sẽ thông báo đến cho khách hàng.
4.1.6. Quản lý báo cáo
(5.1) Lập báo cáo: Mỗi khi ban giám đốc của website yêu cầu báo cáo tình hình hoạt động của website thì admin sẽ phải lập báo cáo lên lãnh đạo.
4.2. Xây dựng CSDL hệ thống thƣơng mại điện tử
49
Hình 4.5. Sơ đồ tổng quát quản lý bán hàng trực tuyến
4.2.1. Bảng Khách Hàng
Thuộc Tính Kiểu dữ liệu Khóa Mô tả TênTK_KH Varchar(15) Khóa chính
TênKH NVarchar(50) Nsinh Datetime SốĐT Varchar(15) SốCMT Char(9) SốTK Varchar(15) MKhẩu Varchar(15) Email Varchar(15)
50
4.2.2. Bảng Công ty
Thuộc Tính Kiểu dữ liệu Khóa
TênTK_CT Varchar(15) Khóa chính
TênCT NVarchar(50) SốĐT Varchar(15) Đchỉ Varchar(50) MKhẩu Varchar(15) Email Varchar(15) 4.2.3.Bảng Mặt hàng
Thuộc Tính Kiểu dữ liệu Khóa
MãMH Varchar(15) Khóa chính
TênMH NVarchar(50)
SL BigInt
ĐơnGiá Float(8)
TTSP Text
TênTK_CT Varchar(15) Khóa ngoài
4.2.4.Bảng Giao Dịch
Thuộc Tính Kiểu dữ liệu Khóa
MãGD Char(10)
TênTK_KH varchar(15) Khóa ngoài
MãMH Varchar(15) Khóa ngoài
TGGD Datetime
51
4.2.5. Bảng Đánh giá
Thuộc Tính Kiểu dữ liệu Khóa
TênTK_KH varchar(15) Khóa ngoài
MãMH Varchar(15) Khóa ngoài
TTDG Text
4.3. Xây dựng website quản lý bán hàng trực tuyến
4.3.1. Kiến trúc
Mô hình website.
Hình 4.6. Mô hình bán hàng trực tuyến
Những lợi ích mà Internet mang lại cho con ngƣời là điều không thể phủ nhận đƣợc. Dân trí càng đƣợc nâng cao, xã hội càng phát triển thì tầm ảnh hƣởng của Internet càng lan rộng và mạnh mẽ hơn. Thấu hiểu đƣợc điều đó, nhiều doanh nghiệp đã biến tận dụng những thế mạnh của Internet, biến thế giới mạng thành công cụ kinh doanh đắc lực cho mình thông qua website. Đó là một việc làm vô cùng khôn ngoan và thời thƣợng bởi những lý do sau:
- Tăng khả năng tiếp cận khách hàng – mở rộng thị trƣờng khách hàng tiềm năng. - . Quảng cáo không giới hạn với chi phí thấp.
52
- Tăng cƣờng mối quan hệ tƣơng tác doanh nghiệp - khách hàng, hƣớng đến dịch vụ khách hàng hoàn hảo.
- Xây dựng thƣơng hiệu – Phát triển thƣơng hiệu
Có thể nói, việc xây dựng website cũng nhƣ bất cứ chiến lƣợc kinh doanh nào của doanh nghiệp đều cần có sự nhận thức và đầu tƣ đúng đắn. Ngoài những lý do trên, còn rất rất nhiều những lý do chính đáng khác để doanh nghiệp của bạn có một website riêng.
4.3.2. Sử dụng thư viện OpenSSL để cài đặt chứng chỉ số cho máy chủ chứa website website
4.3.2.1. Mô tả thƣ viện OpenSSL
OpenSSL là một bộ thƣ viện/tiện ích dùng trong mã hoá (cryptography) viết bằng C, open source, và đƣợc sử dụng rất rộng rãi trên rất nhiều các phần mềm. OpenSSL cung cấp hầu hết các thuật toán mã hoá nổi tiếng nhƣ AES, RSA cũng nhƣ các thuật toán hash quan trọng nhƣ MD5, SHA1.
Nhƣ cái tên của nó, OpenSSL đƣợc sinh ra chủ yếu để hỗ trợ cho việc truyền tin qua internet một cách bảo mật thông qua SSL (Secure Socket Layer) và TLS (Transport Layer Security), mà ví dụ rõ ràng nhất là việc sử dụng trên các browser hay là các web server để dành cho các kết nối https.
Tuy nhiên OpenSSL vẫn đƣợc sử dụng rộng rãi trong nhiều hoàn cảnh khác nhau, ví dụ nhƣ khi bạn chỉ cần tính giá trị SHA1 hash, hay là muốn sử dụng một số thuật toán mã hoá đối xứng nhƣ là AES hay DES cho các ứng dụng yêu cầu về tốc độ và thực hiện đơn giản.
Trong thực tế OpenSSL đƣợc sử dụng rất nhiều, ví dụ nhƣ trong git, để tính giá trị HMAC khi nhận message thông qua imap, git sẽ sử dụng openssl trong trƣờng hợp máy client có cài đặt sẵn bộ thƣ viện openssl:
https://github.com/git/git/blob/97b8860c071898d9e162678ea1035a8ced2f8b1f/ima p-send.c#L861
Nhƣ vậy chúng ta có thể hình dung openssl là bộ thƣ viện (có thể gọi là qui chuẩn) dành để làm các công việc liên quan đến mã hoá.
53
4.3.2.2. Các bƣớc tạo chứng chỉ số (Tạo CSR trên IIS7)
1. Để cài đặt SSL cho website, việc đầu tiên là bạn phải tạo CSR (Certificate Signing Request), sử dụng CSR này để tạo key tại nhà cung cấp chứng chỉ nhƣ Verisign, Thawte, Comodo, Geotrust … Các bƣớc tạo CSR trên IIS7 đƣợc làm nhƣ sau:
2. Vào Start \ Administrative Tools \ Internet Information Services (IIS)
Manager.
Nhấn vào tên máy chủ. Ví dụ: CASERVER
54
4. Từ trình đơn “Actions” ở bên phải, nhấn “Create Certificate Request.” để mở tra trình thuật sĩ Request Certificate.
5. Trong cửa sổ “Distinguished Name Properties“, nhập các thông tin sau:
- Common Name: Tên mà chứng chỉ sẽ đƣợc truy cập (thƣờng là tên miền đầy đủ
dạng FQDN; chẳng hạn www.quangcaohieptho.com).
- Organization: Tên công ty/tổ chức của bạn. Ví dụ: HIEPTHO
- Organizational unit: Tên bộ phận thuộc tổ chức/công ty (thƣờng là “IT,” “Web
Security,” Ví dụ: HIEPTHOJTC).
- City/locality: Tên huyện/thành phố công ty/tổ chức đặt địa điểm. Ví dụ: Vinh - State/province: Tên tỉnh/thành phố mà công ty/tổ chức đặt địa điểm. Ví dụ:
NGHEAN
55
6. Nhấn Next.
7. Trong cửa sổ “Cryptographic Service Provider Properties” window, để mặc định (Microsoft RSA SChannel và 2048) và nhấn Next.
56 8. Đặt tên cho tập tin CSR. Ví dụ: certnew.cer 4.3.2.3. Cài đặt SSL cho website
1. Vào Start –> Administrative Tools –> Internet Information Services (IIS)
Manager.
2. Nhấn vào tên máy chủ.
3. Từ khung giữa, nhấp đúp vào nút “Server Certificates“.
4. Từ trình đơn “Actions“, nhấn “Complete Certificate Request.” để mở trình thuật sĩ Complete Certificate Request.
57
5. Chỉ đến vị trí tập tin certnew.cer. Bạn sẽ đƣợc yêu cầu nhập tên đại diện cho chứng chỉ này (nên đặt trùng với tên miền mà bạn đã đăng ký SSL.
Ví dụ: www.quangcaohieptho.com).
6. Nhấn “OK” để cài đặt chứng chỉ.
7. Từ cửa sổ IIS, chọn Site\Default Web Site (tên trang web sẽ đƣợc áp dụng bảo mật SSL).
58
8. Từ trình đơn “Actions“, nhấn “Bindings.” để mở cửa sổ “Site Bindings“.
9. Trong cửa sổ “Site Bindings”, nhấn nút “Add…”.
10. Trong danh sách “Type” chọn https. Ở danh sách “SSL Certificate” chỉ định chứng chỉ số đã đƣợc cài đặt thành công ở bƣớc 7:
59 11. Nhấn “OK.”
12. Nhƣ vậy là chứng chỉ SSL đã đƣợc cài đặt và bạn có thể thử truy cập vào website bằng giao thức https.
4.3.3. Triển khai thử nghiệm trang web và đánh giá kết quả
Trên thực tế áp dụng công nghệ bảo mật thông tin bằng hệ mật mã khóa công khai PKI vào thực tiễn là rất cần thiết. Xu hƣớng tiếp theo của tôi là xây dựng hệ thống quản lý bán hàng trực tuyến hoàn thiện trên mô hình client - server để áp dụng thực vào hệ thống của công ty. Tuy nhiên do thời gian có hạn cũng nhƣ khả năng lập trình còn hạn chế nên trong phạm vi của luận văn này tôi chƣa thể xây dựng hoàn thiện đƣợc toàn bộ hệ thống.
Và đây cũng là công việc hàng ngày của tôi tại công ty, nên tôi sẽ đề xuất xin ý kiến của Ban giám đốc công ty, thầy giáo hƣớng dẫn TS. Nguyễn Đình Hƣng cùng các thầy giáo cô giáo phụ trách chuyên môn của Viện Sau đại học, Đại học Bách khoa Hà Nội để tôi tiếp tục nghiên cứu đƣa vào ứng dụng thực tế trong bài toán quản lý hệ thống bán hàng trực tuyến. Hiện nay ở công ty đang xây dựng hệ thống bán hàng trực tuyến cho các đại lý, công ty khác nên xu hƣớng tiếp theo tôi sẽ nghiên cứu xây dựng và tích hợp hệ thống quản lý bán hàng trực tuyến vào phần mềm này.
60
4.3.3.1. Các bƣớc tiến hành đƣa website quangcaohiepptho.com lên mạng internet.
Bƣớc 1. Đăng kí tên miền quangcaohieptho.com và hosting linux để lƣu trữ website.
Bƣớc 2. Thiết kế website ở máy tính cá nhân (localhost) gồm các bƣớc cụ thể sau: + Download mã nguồn mở nukeviet tại trang chủ nukeviet.vn
+ Download modul shop (modul bán hàng) trên diễn đàn nukeviet.vn
+ Download phần mềm AppServ 2.5.10 làm máy chủ ảo để cài đặt mã nguồn Nukeviet.
+ Dùng phpMyAdmin để thiết kế CSDL.
+ Dùng CSS và Layout để chỉnh sửa giao diện theo ý.
Bƣớc 3. Sau khi tiến hành cài đặt ở máy tính cá nhân ổn định ta dùng thông số hosting của nhà cung cấp để đƣa website lên mạng internet. Cụ thể nhƣ sau:
Bƣớc 3.1. Vào hosting theo đƣờng dẫn sau (dùng trình duyệt website nào cũng đƣợc).
http://quangcaohieptho.com:2222/
Xuất hiện tên truy cập và password để vào hosting (Tên và password đã đƣợc nhà cung cấp hosting gửi) cụ thể nhƣ hình ảnh sau:
61
Bƣớc 3.2. Upload mã nguồn website đã thiết kế lên hosting
Chọn nhãn File Manager (khoanh vùng màu đỏ) nhƣ hình trên hộp thoại xuất hiện:
Tiếp theo chọn thƣ mục Public_html để upload (Lƣu ý mã nguồn website đã nén file zip).
62
Chọn nhãn Upload file to current directory (Khoanh tròn màu đỏ trên
hình) xuất hiện hộp thoại:
Chọn nhãn (1, 2, 3, 4, 5, 6 tùy ý) nhƣ hình trên để upload file soure website đã thiết kế từ máy tính.
63
Chọn nhãn Extract để giải nén mã nguồn đã upload lên.
Bƣớc 3.3. đƣa csdl đã thiết kế lên hosting bằng PHPMyAdmin nhƣ sau: Quay lại bƣớc đăng nhập vào hosting ban đầu nhƣ hình sau:
Chọn MySQL Management (khoanh tròn màu đỏ nhƣ hình trên) hộp thoại tạo CSDL xuất hiện nhƣ hình sau:
64
Chọn nhãn Create new Database (khoanh màu đỏ nhƣ hình trên) Hộp thoại xuất hiện:
Gõ tên Database Name: Gõ tên Database Username: Gõ Username Password: Gõ Confirm Password:
Lưu ý: Hai pass này giống nhau
65
Vào các ô tƣơng ứng nhƣ hình trên và chọn nhãn Create(màu đỏ hình sao vàng).
Xuất hiện hộp thoại tạo database thành công nhƣ sau:
Sau khi tạo xong database nhƣ hình trên (lƣu ý nhớ tên Username và Password để vào CSDL vừa tạo) ta trở lại trang chủ chọn nhƣ hình sau:
66
Chọn phpMyAdmin nhƣ hình trên (khoanh tròn) hộp thoại xuất hiện:
Gõ tên ngƣời dùng (tên username database đã tạo ở bƣớc trƣớc): Gõ tên mật khẩu (tên pass đã tạo ở bƣớc trƣớc):
Vào xuất hiện hộp thoại để đƣa CSDL lên nhƣ sau:
Chọn nhãn Importer (hình khoanh tròn) xuất hiện hộp thoại Importer để đƣa CSDL đã tạo từ máy tính (localhost) lên hosting nhƣ hình sau:
67
Chọn nhãn Chọn tệp (khoanh tròn) để đƣa CSDL lên hosting
Bƣớc 3.4. Sau khi đã đƣa Source website và CSDL lên hosting bƣớc cuối cùng là cấu hình file config và cmod các thƣ mục website đã upload lên, ta thực hiện nhƣ sau:
Vào thƣ mục Public html nhƣ hình sau tìm file config.php cấu hình nhƣ sau:
Và vào tên miền http://quangcaohieptho.com để kiểm tra website đã hoạt động hay chƣa.
68
4.3.3.2. Giao diện Website và một số giao diện khác. - Giao diện Website.