Xác thực giao dịch ngân hàng trực tuyến sử dụng OTP chuyển giao qua SMS

Một phần của tài liệu Nghiên cứu mật khẩu sử dụng một lần và ứng dụng (Trang 38)

3.1.1.Mô tả kịch bản thử nghiệm

Ngày nay, nhiều ngân hàng đã ứng dụng các phương pháp xác thực giao dịch trực tuyến sử dụng OTP khác nhau.Mỗi phương pháp sinh và chuyển giao OTP có ưu và nhược điểm riêng như đã phân tích ở chương 2 và do đó chúng có khả năng ứng dụng với mức độ khác nhau. Trong số các phương pháp chuyển giao OTP,đó phương pháp chuyển giao OTP qua SMS được nhiều ngân hàng sử dụng vì tính cơ động trong giao dịch của nó. Hình 3.1 mô tảmô hình nhận OTP qua SMS.

NGUYỄN VIỆT HUY D09CNPM2 Page | 38 Kịch bản thử nghiệm:

Trước khi có thể thực hiện các giao dịch trực tuyến có xác thực bằng OTP, người dùng cần thực hiện các thủ tục đăng ký tài khoản giao dịch trực tuyến, gồm username, passwordvà số điện thoại với ngân hàng. Sau đó, người dùng sẽ sử dụng các thông tin này khi giao dịch chuyển tiền trên trang thanh toán trực tuyếncủa ngân hàng đó. Kịch bản thực hiện giao dịch trực tuyến có xác thực bằng OTP gồm các bước sau:

1. Người dùng đăng nhập vào trang thanh toán trực tuyến của ngân hàng sử dụng username và password đã đăng ký.

2. Hệ thống xác thực thông tin tài khoản người dùng; Nếu chính xác sẽ cho người dùng truy cập vào hệ thống.

3. Người dùngvào ứng dụng chuyển tiền trực tuyến. Giao diện chuyển tiền trực tuyến xuất hiện.

4. Người dùng sẽ nhập lần lượt các thông tin của giao dịch vào giao diện chuyển tiền trực tuyến bao gồm: tài khoản người nhận, số tiền chuyển khoản, nội dung chuyển tiền; và người dùng sẽ lựa chọn “Gửi tin nhắn SMS” trong ô “Hình thức nhận mã giao dịch”.

5. Người dùng nhấn vào nút “Chấp nhận”. Giao diện xác thực OTP xuất hiện. Đồng hồ đếm lùi 1 phút (thời gian sống hợp lệ của OTP) bắt đầu chạy.

6. Một tin nhắn sẽ được gửi từ tổng đài của hệ thống tới điện thoại của người dùng chứa mã giao dịch OTP. Người dùng nhập mã OTP nhận được từ tin nhắn SMS vào ô xác thực và nhấn nút “Chấp nhận”. Nếu người dùng nhập đúng OTP và trong khoảng thời gian cho phép thì giao diện giao dịch thành công xuất hiện. Nếu người dùng nhập sai thì hệ thống sẽ yêu cầu người dùng nhập lại OTP.

NGUYỄN VIỆT HUY D09CNPM2 Page | 39 3.1.2.Cài đặt

Chương trình thử nghiệm được cài đặt trên hệ điều hành Microsoft Windows, ngôn ngữ C# trên phần mềm lập trình Microsoft Visual Studio kết hợp với hệ quản trị cơ sở dữ liệu My SQL để hệ thống có thể truy xuất cơ sở dữ liệu.

Thuật toán băm SHA – 1 được sử dụng để tạo ra OTP. Cơ sở dữ liệu được sử dụng để xác thực người dùng, lưu lịch sử giao dịch. Cơ sở dữ liệu lưu trữ username, password, tên chủ tài khoản, số tiền hiện có và các lần giao dịch.

Phần mềm bên server được xây dựng dưới dạng web server. Phía server dựa vào OTP đã gửi tới di động người dùng để đưa ra quyết định cho phép người dùng thanh toán hay từ chối yêu cầu này. Phần mềm này tương tác với cơ sở dữ liệu lưu thông tin của người dùng cũng như tài khoản của họ. Chương trình sử dụng một điện thoại mô phỏng một tổng đài để gửi tin nhắn chứa OTP.

NGUYỄN VIỆT HUY D09CNPM2 Page | 40 3.1.3.Kết quả

Trong phần demo, một trang chủ Banking và hai trang khác nhau được cài đặt. Trang chủ có hiển thịdanh sách hai trang này trên trang web của mình để người sử dụng có thể click để vào trang. Ban đầu người dùng phải đăng nhập vào trang chủ với username và password của mình. Màn hình đăng nhập như minh họa trên Hình 3.2.

NGUYỄN VIỆT HUY D09CNPM2 Page | 41

Trên trang web có chứa danh sách hai trang mà người dùng có quyền được truy cập sau khi đăng nhập là: Chuyển khoản và Lịch sử giao dịch. Sau khi đăng nhập thành công bằng username và password đã đăng ký trước đó, người dùng click vào “Chuyển khoản” và sẽ được hướng tới trang Chuyển khoản. Trang Chuyển khoản được thiết kế như trên Hình 3.3.

NGUYỄN VIỆT HUY D09CNPM2 Page | 42

Sau khi đăng nhập bằng tài khoản của mình, trên trang chuyển khoản sẽ hiện lên thông tin của người dùng với cơ sở dữ liệu hiện tại bao gồm: số tài khoản, họ tên, số dư tài khoản, số điện thoại. Người dùng sẽ phải nhập số tiền chuyển khoản, số tài khoản người nhận, nội dung chuyển tiền. Trong ô Hình thức nhận mã giao dịch có hai lựa chọn cho người dùng là: Tin nhắn SMSChallenge – Response, ở phần này chúng ta sẽ lựa chọn Tin nhắn SMS. Sau khi đã điền đầy đủ thông tin cho lần giao dịch, người dùng ấn vào nút “Chấp nhận”, một tin nhắn chứa OTP sẽ được gửi ngay đến cho người dùng và người dùng sẽ được hướng tới trang Xác Nhận để xác thực OTP. Trang Xác Nhận được thiết kế như trên hình 3.4.

NGUYỄN VIỆT HUY D09CNPM2 Page | 43

Bắt đầu từ lúc chuyển sang trang xác nhận, đồng hồ bắt đầu đếm lùi. Người dùng có một phút để điền mã giao dịch. Tin nhắn sẽ được hệ thống gửi ngay tới số điện thoại của người dùng cùng lúc khi trang chuyển hướng vì vậy người dùng có đủ thời gian để điền mã giao dịch và hoàn tất giao dịch. Người dùng điền mã giao dịch xong và nhấn nút “Chấp nhận”, hệ thống sẽ xác thực mã giao dịch và sẽ có thông báo tới người dùng.

Nếu như mã giao dịch chính xác thì sẽ nhận được thông báo giao dịch thành công như hình 3.5, nếu nhập sai mã giao dịch thì hệ thống sẽ yêu cầu người dùng nhập lại.Khi quá thời gian giao dịch thì người dùng sẽ phải thực hiện lại giao dịch và hệ thống sẽ tiếp tục gửi một tin nhắn chứa một mã giao dịch khác tới số điện thoại di động của người dùng.

NGUYỄN VIỆT HUY D09CNPM2 Page | 44 3.2.Xác thực giao dịch ngân hàng trực tuyến sử dụng OTP sinh trên điện thoại di động dựa trên giao thức Thách thức – Trả lời

3.2.1.Mô tả kịch bản thử nghiệm

Hình 3.6 mô tả quá trình xác thực sử dụng OTP sinh trên điện thoại di động sử dụng giao thức Thách thức – Trả lời (Challenge – Response).

Hình 3.6: Mô hình tạo OTP qua Challenge – Response trên điện thoại di động

Kịch bản thử nghiệm:

Trước khi có thể thực hiện các giao dịch trực tuyến có xác thực bằng OTP, người dùng cũng cần thực hiện các thủ tục đăng ký tài khoản giao dịch trực tuyến, gồm username, password và số điện thoại với ngân hàng. Sau đó, người dùng sẽ sử dụng các thông tin nàykhi giao dịch chuyển tiền trên trang thanh toán trực tuyếncủa ngân hàng đó. Kịch bản thực hiện giao dịch trực tuyến có xác thực OTP sinh trên điện thoại di động sử dụng giao thức Thách thức – Trả lời gồm các bước sau:

1. Người dùng đăng nhập vào trang thanh toán trực tuyến của ngân hàng sử dụng username và password đã đăng ký.

2. Hệ thống xác thực thông tin tài khoản người dùng; Nếu chính xác sẽ cho người dùng truy cập vào hệ thống. Người dùng vào ứng dụng chuyển tiền trực tuyến. Giao diện chuyển tiền trực tuyến xuất hiện.

NGUYỄN VIỆT HUY D09CNPM2 Page | 45

3. Người dùng sẽ nhập lần lượt các thông tin của lần giao dịch vào giao diện chuyển tiền trực tuyến bao gồm: số tiền chuyển khoản, tài khoản người nhận, nội dung chuyển tiền; và người dùng sẽ lựa chọn “Challenge - Response” trong ô “Hình thức nhận mã giao dịch”. Một ô “Challenge”chứa một OTP và một ô “Mã giao dịch” để trống hiện lên.

4. Người dùng khởi động ứng dụng Mobile OTP đã cài trên điện thoại; ứng dụng hiện lên bao gồm các ô: Challenge, Money, OTP. Người dùng nhập mã Challenge và số tiền cần chuyển được trên trang web vào điện thoại và nhấn nút “OK”. Ứng dụng sẽ sinh ra một OTP cho người dùng.

5. Người dùng nhập OTP vừa nhận được vào ô “Mã giao dịch” và nhấn nút “Chấp nhận”. Nếu người dùng nhập đúng OTP thì giao diện giao dịch thành công lập tức xuất hiện. Nếu người dùng nhập sai thì hệ thống sẽ yêu cầu người dùng nhập lại OTP.

3.2.2.Cài đặt phần mềm sinh OTP trên điện thoại di động dựa trên giao thức Thách thức – Trả lời Thách thức – Trả lời

Cũng như xác thực giao dịch ngân hàng trực tuyến sử dụng OTP chuyển giao qua SMS, chương trình thử nghiệm sinh OTP trên máy chủ dựa trên giao thức thách thức – trả lờiđược cài đặt trên hệ điều hành Microsoft Windows, ngôn ngữ C# trên phần mềm lập trình Microsoft Visual Studio kết hợp với hệ quản trị cơ sở dữ liệu My SQL để hệ thống có thể truy xuất cơ sở dữ liệu.

Thuật toán băm SHA – 1 được sử dụng để tạo ra OTP ở cả server và client. Cơ sở dữ liệu được sử dụng để xác thực người dùng, lưu lịch sử giao dịch. Cơ sở dữ liệu lưu trữ username, password, tên chủ tài khoản,số tiền hiện có và các lần giao dịch.

Sau khi nhận được yêu cầu thanh toán, server sẽ sinh một mã thách thức (challenge). Người dùng (client) sẽ nhập số challenge và số tiền giao dịch vào ứng dụng trên điện thoại của mình để sinh OTP cho giao dịch.

NGUYỄN VIỆT HUY D09CNPM2 Page | 46

Phần mềm bên client được xây dựng trênMicrosoft Visual Window Phone và thuật toán sinh OTP của cả server và client là giống nhau. Phần mềm được cài đặt trên điện thoại Nokia Lumia 520 sử dụng hệ điều hành Window Phone 8.

3.2.3.Kết quả

NGUYỄN VIỆT HUY D09CNPM2 Page | 47

Tương tự như việc xác thực giao dịch ngân hàng trực tuyến sử dụng OTP chuyển giao qua SMS, sau khi đăng nhập vào khoản của mình, người dùng hướng tới trang Chuyển Khoản, nhập các thông tin giao dịch và chọn “Challenge – Response” trong ô Hình thức nhận mã giao dịch. Lúc này hệ thống sẽ tự động tạo ra một OTP ở ô Challenge.

Người dùng sẽ sử dụng OTP này cùng với số tiền để nhập vào ứng dụng trong thiết bị di động như Hình 3.8.

Hình 3.8: Ứng dụng sinh OTP trên điện thoại di động

Người dùng sau khi biết được challenge từ server sẽ nhập challenge và số tiền sử dụng trong giao dịch vào điện thoại, sau đó nhấn nút OK , phần mềm sẽ kết hợp challenge và số tiền để sinh ra một OTP mới để xác thực giao dịch.

NGUYỄN VIỆT HUY D09CNPM2 Page | 48 3.3.Kết chương

Trong chương này, chúng ta đã tiến hành xây dựng và thử nghiệm chương trình thử nghiệm về xác thực giao dịch ngân hàng trực tuyến sử dụng OTP chuyển giao qua SMS và xác thực giao dịch ngân hàng trực tuyến sử dụng OTP sinh trên điện thoại di động dựa trên giao thức Thách thức – Trả lời. Cả hai phương pháp sinh và chuyển giao OTP được cài đặt có khả năng cung cấp tính bảo mật cao cho xác thực giao dịch trực tuyến. Các ứng dụng này có khả năng triển khai rộng rãi trong thực tế do không đòi hỏi bổ sung phần cứng hay phần mềm phức tạp.

NGUYỄN VIỆT HUY D09CNPM2 Page | 49

KẾT LUẬN

Mật khẩu sử dụng một lần (OTP) là mật khẩu chỉ được sử dụng một lần duy nhất để xác thực một giao dịch hoặc một phiên làm việc. Do OTP chỉ được sử dụng một lần nên có độ an toàn cao hơn so với mật khẩu truyền thống, tránh được các dạng tấn công như nghe lén. Đồ án nghiên cứu về mật khẩu sử dụng một lần, các kỹ thuật sinh và chuyển giao mật khẩu một lần và ứng dụng vào xác thực các giao thức trực tuyến. Cụ thể, các nội dung đồ án đã thực hiện:

- Nghiên cứu tổng quan về mật khẩu sử dụng một lần và ứng dụng của mật khẩu sử dụng một lần.

- Nghiên cứu các phương pháp sinh mật khẩu sử dụng một lầndựa trên thời gian, dựa trên thuật toán; phương pháp sinh mật khẩu bằng Token và điện thoại di động; các phương pháp chuyển giao mật khẩu sử dụng một lần bằng giấy, bằng tin nhắn SMS.

- Đồ án đã cài đặt và thử nghiệm thành công ứng dụng mật khẩu sử dụng một lần trong xác thực giao dịch ngân hàng trực tuyến sử dụng phương pháp chuyển giao OTP thông qua tin nhắn SMS và sinh OTP trên điện thoại di động.

Hướng phát triển tiếp theo của đồ án có thể là:

- Nghiên cứu về đăng nhập một lần sử dụng mật khẩu sử dụng một lần;

- Cải tiến ứng dụng sinh OTP trên điện thoại di động về giao diện và tính năng để việc xác thực người dùng trở nên thân thiện, tiện lợi và đảm bảo độ an toàn cao hơn.

NGUYỄN VIỆT HUY D09CNPM2 Page | 50

TÀI LIỆU THAM KHẢO

[1]. D. M’Raihi, J. Rydell, S. Bajaj, S. Machani, D. Naccache, OATH Challenge- Response Algorithm, June 2011.

[2]. D. M’Raihi, J. Rydell, S. Bajaj, S. Machani, D. Naccache, Time-Based One- Time Password Algorithm, May 2011.

[3]. Neil M. Haller, Bellcore, Morristown, New Jersey - THE S-KEY ONE-TIME

PASSWORD SYSTEM, 2011 [4]. http://www.rsa.com/node.aspx?id=1156, 9/2013 [5]. HOTP http://en.wikipedia.org/wiki/HOTP, 9/2013 [6]. HMAC http://en.wikipedia.org/wiki/HMAC, 9/2013 [7]. S/Key http://en.wikipedia.org/wiki/S/KEY, 9/2013 [8]. Xác thực http://vi.wikipedia.org/wiki/X%C3%A1c_th%E1%BB%B1c

[9]. One Time Password http://en.wikipedia.org/wiki/One-time_password, 9/2013 [10]. Challenge-Response Algorithm

http://en.wikipedia.org/wiki/Challenge%E2%80%93response_authentication,

9/2013

[11]. Lamport Schem http://www.javaworld.com/javaworld/jw-03-2009/jw-03- lamport-otp.html, 9/2013

[12]. http://datasecurity.vn/tech/business-tech/1590-chng-thc-trong-mt-ngan-hang- internet.html, 10/2013

[13]. Dương Hoàng Anh, Nguyễn Việt Huy, Nguyễn Văn Tân, Phạm Minh Tú – Báo cáo nghiên cứu khoa học: Nghiên cứu về mật khẩu sử dụng một lần và ứng dụng, 12/2012.

[14]. Nguyễn Văn Hường – Đồ án tốt nghiệp: Đăng nhập một lần, 12/2011.

[15]. Phạm Tuấn Dũng – Luận văn: Nghiên cứu phương pháp bảo mật cho cơ chế đăng nhập một lần ứng dụng trong hệ phân tán, 2011.

NGUYỄN VIỆT HUY D09CNPM2 Page | 51

[16]. Thế giới vi tính

http://pcworld.com.vn/pcworld/printArticle.asp?atcl_id=5f5e5d5e5e5f5a,

10/2013

[17]. An toàn mật khẩu trên hệ thống mạng UNIX và LINUX

http://www.quantrimang.com.vn/an-toan-mat-khau-tren-he-thong-mang-unix- va-linux-1758, 10/2013

[18]. Man in the middle attack http://en.wikipedia.org/wiki/Man-in-the- middle_attack, 10/2013

[19]. Single sign on http://en.wikipedia.org/wiki/Single_sign-on, 10/2013 [20]. http://gamethu.vnexpress.net/gt/diem-tin/2006/03/3b9ad22c/, 10/2013 [21]. MOTP http://www.pcworld.com.vn/mobile/anpham/tm/408/articles/cong-

nghe/ung-dung/2010/06/1219120/motp-mat-khau-dung-mot-lan-di-dong/ ,

9/2013

Một phần của tài liệu Nghiên cứu mật khẩu sử dụng một lần và ứng dụng (Trang 38)

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

(52 trang)