Biểu đồ tuần tự hệ thống
Hình 4.17: Biểu đồ tuần tự hệ thống kiểm trathông tin tài khoản
Mô hình khái niệm
- Tác nhân: Ngƣời sử dụng ví
- Lớp giao diện: Lớp giao diện FormAccountInfor cho phép thao tác nhập mật khẩu và hiển thị thông tin tài khoản.
- Lớp điều khiển: Lớp điều khiển AccountInfor có trách nhiệm lấy thông tin tài khoản.
- Lớp thực thể: Lớp thực thể Account chứa thông tin về tài khoản. - Sơ đồ liên kết
Hình 4.18: Biểu đồ lớp phân tích thực thi ca sử dụng kiểm trathông tin tài khoản
Hình 4.19: Biểu đồ tuần tự phân tích thực thi ca sử dụng kiểm trathông tin tài khoản
Hình 4.20: Giao diện kiểm trathông tin tài khoản 4.4. Thiết kế hệ thống
4.4.1. Ca sử dụng kích hoạt tài khoản
Xác định các lớp thiết kế tham gia thực thi ca sử dụng
Lớp phân tích Lớp thiết kế Chú thích
FormActive FormActive_client Dạng trang xml
ActiveAccount ActiveAccount Dạng Java
Account Account Lớp Persistence thao tác với
CSDL quan hệ
Hình 4.21: Biểu đồ tuần tự thực thi ca sử dụng kích hoạt tài khoản
Hình 4.22: Biểu đồ lớp thực thi ca sử dụng kích hoạt tài khoản
4.4.2. Ca sử dụng thực hiện giao dịch
Xác định các lớp thiết kế tham gia thực thi ca sử dụng
Lớp phân tích Lớp thiết kế Chú thích
FormCreateTransaction FormCreateTransaction_client Dạng trang xml
CreateTransaction CreateTransaction Dạng Java
Account Transaction Account Transaction Lớp Persistence thao tác với CSDL quan hệ
Hình 4.23: Biểu đồ tuần tự thực thi ca sử dụng thực hiện giao dịch
Biểu đồ lớp thực thi ca sử dụng thực hiện giao dịch
: NguoiDung
: NguoiDung : FormCreateTransaction: FormCreateTransaction : CreateTransaction: CreateTransaction :Account:Account : Transaction: Transaction Load LoadForm Display Sumit(mobile,pass,tkNhan,soTien,chuKy) CreateTransaction(mobile,pass,tkNhan,soTien,chuKy) CheckLogin(mobile,pass) getRsaPublicKey() CheckSign() getSoDuChoPhep() getAccountIdNhan(tkNhan) InsertTransaction() CreateAndSendOtp() InsertOtp() <<build>> LoadFormOTP Display SubmitOTP(TranID,OTP) AuthenOTP(TranID,OTP) CheckOTP(TranID,Otp) getTranID() Boolean Boolean <<build>> Display getSoDu() setSoDuChoPhep() setSoDuThucTe() setTrangThai()
Hình 4.24: Biểu đồ lớp thực thi ca sử dụng thực hiện giao dịch
4.4.3. Ca sử dụng thực hiện giao dịch trên website
Xác định các lớp thiết kế tham gia thực thi ca sử dụng
Lớp phân tích Lớp thiết kế Chú thích
FormCreateTransaction FormCreateTransaction_client Dạng trang html FormAuthenTransaction FormAuthenTransaction_client Dạng trang xml
CreateTransaction CreateTransaction Dạng Java
Account Transaction Account Transaction Lớp Persistence thao tác với CSDL quan hệ
Hình 4.25: Biểu đồ tuần tự thực thi ca sử dụng thực hiện giao dịch trên website
Biểu đồ lớp thực thi ca sử dụng thực hiện giao dịch trên website
: NguoiDung
: NguoiDung : FormCreate : FormCreate TranOnWebTranOnWeb : FormAuthen : FormAuthen TransactionTransaction TransactionTransaction: Create : Create :Account:Account : Transaction: Transaction Load LoadFrom Display Submit(mobile,tkNhan,soTien) CreateTransaction(mobile,tkNhan,soT ien) InsertTransaction() getSoDuChoPhep() getAccountIdNhan() getSoDuChoPhep() getTranID() CreateAndSendOTP() InsertOTP() <<build>> LoadFormTranInfor SubmitOTP(TranID,pass,otp) AuthenOTP(TranID,pass,otp) CheckOTP(T ranID,pass,otp) setSoDuChoPhep() setSoDuThucTe() setTrangThai() <<build>> <<build>> Display Display <<build>>
Hình 4.26: Biểu đồ lớp thực thi ca sử dụng thực hiện giao dịch trên website
4.4.4. Ca sử dụng tra kiểm tra lịch sử giao dịch
Xác định các lớp thiết kế tham gia thực thi ca sử dụng
Lớp phân tích Lớp thiết kế Chú thích
FormLogTransaction FormLogTransaction_client Dạng trang xml
LogTransaction LogTransaction Dạng Java
Account Transaction
Account Transaction
Lớp Persistence thao tác với CSDL quan hệ
Hình 4.27: Biểu đồ tuần tự thực thi ca sử dụng kiểm tra lịch sử giao dịch
Hình 4.28: Biểu đồ lớp thực thi ca sử dụng kiểm tra lịch sử giao dịch
4.4.5. Ca sử dụng tra cứu thông tin tài khoản
Xác định các lớp thiết kế tham gia thực thi ca sử dụng
Lớp phân tích Lớp thiết kế Chú thích
FormAccountInfor FormAccountInfor_client Dạng trang xml
AccountInfor AccountInfor Dạng Java
Account Account Lớp Persistence thao tác với
CSDL quan hệ
Hình 4.29: Biểu đồ tuần tự thực thi ca sử dụng tra cứu thông tin tài khoản
Hình 4.30: Biểu đồ lớp thực thi ca sử dụng tra cứu thông tin tài khoản
4.5. Kết quả cài đặt chƣơng trình
Dựa vào các nghiên cứu bên trên chúng tôi đã thực hiện xây dựng ứng dụng trên nền tảng hệ điều hành Android. Dƣới đây là một số chức năng của chƣơng trình.
4.5.1. Kích hoạt tài khoản
Lần sử dụng đầu tiên ứng dụng sẽ yêu cầu ngƣời dùng nhập số điện thoại và mât khẩu để kích hoạt ứng dụng.Một cặp khóa RSA sẽ đƣợc tạo ra và lƣu trên điện thoại, đồng thời khóa công khai (public key) cũng sẽ đƣợc gửi lên Server để Server dùng cho việc xác thực giao dịch sau này. Nếu ngƣời dùng nhập đúng thông tin số điện thoại và mật khẩu Server sẽ gửi tin nhắn về số điện thoại này một mã kích hoạt. Ứng dụng sẽ bắt tin nhắn này và đọc lấy mã kích hoạt,mã kích hoạt này sẽ đƣợc gửi lên server để xác nhận số điện thoại là chính xác. Khi kích hoạt thành công số điện thoại sẽ đƣợc ghi lại vào file của chƣơng trình để sử dụng cho các giao dịch sau này.
Hình 4.31: Giao diện kích hoạt ứng dụng
Sau khi kích hoạt thành công chƣơng trình sẽ chuyển đến giao diện các chức năng.
4.5.2. Chức năng chuyển khoản
Ngƣời dùng khởi tạo giao dịch chuyển khoản trên ứng dụng. Sau nhập đầy đủ thông tin bấm gửi để tạo giao dịch. Thông tin giao dịch sẽ đƣợc gửi kèm chữ ký đƣợc tạo bởi các thông tin giao dịch và khóa riêng <private key> của tài khoản. Server xác nhận thông tin giao dịch. Nếu thông tin chính xác và hợp lệ server sẽ gửi một tin nhắn có kèm theo mã OTP về điện thoại của ngƣời dùng. Ứng dụng bắt tin nhắn và đọc OTP. Sau khi có OTP ứng dụng sẽ gửi thông tin xác nhận lên server để hoàn tất giao dịch.
Hình 4.33: Giao diện chức năng chuyển khoản
Ngƣời dùng vào website của hệ thống để tạo giao dịch. Sau khi nhập đầy đủ thông tin giao dịch và bấm nút “Tiếp tục” hệ thống sẽ gửi tin nhắn về số điện thoại của ngƣời dùng để yêu cầu xác thực.
Hình 4.34: Giao diện thực hiện giao dịch trên website
Phần mềm cài đặt trên máy ngƣời dùng sẽ bắt tin nhắn có chứa OTP của hệ thống gửi đến và hiện thị giao hiện yêu cầu ngƣời dùng nhập mật khẩu để xác nhận giao dịch. Sau khi ngƣời nhập mật khẩu và xác nhận thanh toán chƣơng trình sẽ tạo ra một chữ ký điện
tử từ thông tin giao dịch và khóa riêng tƣ của tài khoản, sau đó gửi thông tin xác nhận lên Server. Server xác thực thông tin và thông báo kết quả giao dịch cho ngƣời dùng biết.
CHƢƠNG 5 – KẾT LUẬN VÀ HƢỚNG NGHIÊN CỨU TIẾP THEO
5.1. Kết luận
Thƣơng mại điện tử mang lại nhƣng lợi ích tiềm tàng, nhờ các phƣơng tiện của thƣơng mại điện tử, các doanh nghiệp có đƣợc thông tin nhanh chóng, phong phú về thị trƣờng; các chi phí văn phòng, bán hàng, giao dịch giảm đi nhiều lần, rút ngắn chu thời sản xuất, nhanh chóng tạo ra nhiều sản phẩm mới. Ví điện tử ra đời góp phần phát triển hệ thống kinh doanh thƣơng mại điện tử, đem lại những lợi ích cho ngƣời mua, ngƣời bán, ngân hàng và xã hội. Ví điện tử giúp cho ngƣời mua thực hiện nhanh chóng công việc thanh toán, ngƣời bán tăng hiệu quả hoạt động bán hàng trực tuyến, giúp ngân hàng giảm sự quản lý các giao dịch thanh toán từ thẻ khách hàng, ngƣời dùng có thể dễ dàng chuyển và nhận tiền nhanh chóng vƣợt qua rào cản địa lý. Sự tiện lợi của ví điện tử đi đôi với những nguy cơ tiềm ẩn: khi mọi ngƣời đangtậnhƣởngsự tiện lợimanglạibởi ví điện tử, thông tintài khoản của họcũng làđối tƣợngbị đánh cắphoặclàmgiảmạocủa bọn tội phạmInternet.Nhƣ vậy, quá trình xác thực khách hàng trong khi giao dịch bằng ví điện tử trởthànhmột mối quan tâmbảo mật quan trọngđối với các tổ chứctàichính.Xác thực trực tuyến là xác thực thông qua mạng lƣới không gian. Xác thực trực tuyến có ba vấn đề phải giải quyết: Thứ nhất, làm thế nào để chắc chắn rằng các trang web mà ngƣời dùng muốn truy cập là chính xác. Thứ hai, làm thể nào để bảo vệ các thông tin cá nhân trong quá trình truyền dữ liệu. Thứ ba, làm thế nào để xác nhận đƣợc những thông tin đƣợc chuyển đến Server là đúng do ngƣời dùng truyền đến
Luận văn tập trung trình bày về vấn đề thứ ba – làm thế nào để xác nhận đƣợc những thông tin đƣợc chuyển đến Server là đúng do ngƣời dùng truyền đến. Giải pháp trong luận văn đƣa ra là sử dụng mật khẩu một lần – OTP và sử dụng cặp khóa RSA để tạo và xác thực chữ ký điện tử trong mỗi phiên giao dịch. Những kết quả nghiên cứu trong luận văn đã cho thấy rằng, việc sử dụng kết hợp giữa OTP và cặp khóa RSA trong xác thực giao dịch ví điện tử đã hạn chế đƣợc giao dịch bị giả mạo và đánh cắp tài khoản ví điện tử.
5.2. Hƣớng nghiên cứu tiếp theo
Trên cơ sở đã đạt đƣợc, trong thời gian tới chúng tôi dự kiến sẽ nghiên cứu những vấn đề sau:
- Xây dựng ứng dụng trên các nền tảng khác nhƣ IOS, Window phone. - Nghiên cứu việc sử dụng tài khoản ví để thanh toán tại các cửa hàng.
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Đặng Văn Đức (2002), Phân tích thiết kế hướng đối tượng bằng UML, Nhà xuất bản Giáo dục.
Tiếng Anh
[2] F. Aloul, S. Zahidi, and W. EI-Hajj, Two Factor Authentication Using Mobile
Phones, IEEE/ACS International Conference on Computer Systems and Applications,
Rabat, Morocco, May 2009.
[3] F. Hoornaert, D. M'Raihi, M. Bellare, D. Naccache and O. Ranen (2005),HOTP:
An HMAC-Based One-Time Password Algorithm.
[4] Mark L. Murphy, Beginning Android 2.
[5] R. Rivest, A. Shamir, L. Adleman, A Method for Obtaining Digital Signatures and
Public-Key Cryptosystems, pp 4-6.
[6] Sayed Hashimi , Satya Komatineni, and Dave MacLean, Pro Android 2.
[7] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein,
Introduction to Algorithms, Third Edition. Section 31.7: The RSA public-key
cryptosystem