Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP

74 311 1
Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LÊ THU HƯƠNG NGHIÊN CỨU VẤN ĐỀ XÁC THỰC GIAO DỊCH NGÂN HÀNG TRỰC TUYẾN SỬ DỤNG MẬT KHẨU DẠNG OTP LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUYÊN, 2016 ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LÊ THU HƯƠNG NGHIÊN CỨU VẤN ĐỀ XÁC THỰC GIAO DỊCH NGÂN HÀNG TRỰC TUYẾN SỬ DỤNG MẬT KHẨU DẠNG OTP Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: TS VŨ VINH QUANG THÁI NGUYÊN, 2016 i LỜI CAM ĐOAN Sau trình học tập Trường Đại học công nghệ thông tin & truyền thông, với kiến thức lý thuyết thực hành tích lũy được, với việc vận dụng kiến thức vào thực tế, em tự nghiên cứu tài liệu, công trình nghiên cứu, đồng thời có phân tích, tổng hợp, đúc kết phát triển để hoàn thành luận văn thạc sĩ Em xin cam đoan luận văn công trình thân em tự tìm hiểu, nghiên cứu hoàn thành hướng dẫn thầy giáo TS Vũ Vinh Quang Thái Nguyên, tháng 12 năm 2016 Học viên Lê Thu Hương ii LỜI CẢM ƠN Trong thời gian hai năm chương trình đào tạo thạc sỹ, gần nửa thời gian dành cho môn học, thời gian lại dành cho việc lựa chọn đề tài, giáo viên hướng dẫn, tập trung vào nghiên cứu, viết, chỉnh sửa hoàn thiện luận văn Với quỹ thời gian với vị trí công việc phải đảm nhận, không riêng thân em mà hầu hết sinh viên cao học muốn hoàn thành tốt luận văn trước hết phải có xếp thời gian hợp lý, có tập trung học tập nghiên cứu với tinh thần nghiêm túc, nỗ lực hết mình; tiếp đến cần có ủng hộ tinh thần, giúp đỡ chuyên môn điều kiện thiếu định đến việc thành công luận văn Để hoàn thành luận văn trước tiên em xin gửi lời cảm ơn đến thầy giáo hướng dẫn TS Vũ Vinh Quang, người có định hướng cho em nội dung hướng phát triển đề tài, người có đóng góp quý báu cho em vấn đề chuyên môn luận văn, giúp em tháo gỡ kịp thời vướng mắc trình làm luận văn Em xin cám ơn thầy cô giáo Trường Đại học Công nghệ thông tin Truyền thông có ý kiến đóng góp bổ sung cho đề tài luận văn em Em xin hứa cố gắng nữa, tự trau dồi thân, tích cực nâng cao lực chuyên môn để sau hoàn thành luận văn có hướng tập trung nghiên cứu sâu hơn, không ngừng hoàn thiện luận văn để có ứng dụng thực tiễn cao thực tế Thái Nguyên, tháng 12 năm 2016 Học viên Lê Thu Hương iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN .ii MỤC LỤC iii DANH MỤC CÁC CHỮ VIẾT TẮT vi DANH MỤC HÌNH VẼ vii MỞ ĐẦU Chương MỘT SỐ KIẾN THỨC CƠ BẢN VỀ BẢO MẬT THÔNG TIN 1.1 Giới thiệu an toàn bảo mật thông tin 1.1.1 Các khái niệm 1.1.2 Mục tiêu an toàn bảo mật thông tin 1.1.3 Các chiến lược an toàn hệ thống 1.1.4 An toàn thông tin mật 1.2 Một số hệ mã hóa thông dụng 1.2.1 Hệ mã RSA 1.2.2 Hệ mã Rabin 1.2.3 Hệ mã Elgamal 10 1.2.4 Hệ mã MHK (Merkle -Hellman Knapsack) 11 1.2.5 Hệ mật mã Rabin 12 1.2.6 Hệ mật mã McEliece 13 1.3 Giới thiệu mật 15 1.3.1 Định nghĩa 15 1.3.2 Phương pháp xác thực 16 1.3.3 Độ an toàn 17 Chương MỘT SỐ KHÁI NIỆM VỀ OTP CÁC PHƯƠNG PHÁP 26 2.1 Giới thiệu OTP 26 2.1.1 Định nghĩa OTP 26 2.1.2 Ưu điểm 26 2.1.3 Nhược điểm 27 2.2 Ứng dụng OTP 27 2.2.1 Ứng dụng xác thực 27 2.2.2 Ứng dụng đăng nhập 28 iv 2.3 Giới thiệu hàm băm mật mã, thuật toán 29 2.3.1 Giới thiệu 29 2.3.2 Cấu trúc, vai trò hàm băm mật 29 2.3.3 Một số hàm băm mật mã thông dụng 36 2.3.4 Các ứng dụng hàm băm 37 2.4 Một số phương pháp sinh OTP 41 2.4.1 Phương pháp sinh theo thời gian 41 2.4.2 Phương pháp sinh theo thuật toán 42 2.4.3 Phương pháp sinh theo giải pháp S/KEY 44 2.4.4 Phương pháp sinh sử dụng HOTP 44 2.4.5 Phương pháp sinh sử dụng Security token 44 2.4.6 Phương pháp sinh giao thức 44 2.5 Các phương pháp chuyển giao OTP 45 2.5.1 Chuyển giao OTP giấy 45 2.5.2 Chuyển giao OTP tin nhắn SMS 46 2.5.3 Tạo OTP sử dụng token 47 2.5.4 Tạo OTP sử dụng điện thoại di động 49 2.5.5 Chuyển giao OTP sử dụng gmail 51 Chương XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG XÁC THỰC SỬ DỤNG OTP TRONG GIAO DỊCH NGÂN HÀNG TRỰC TUYẾN 53 3.1 Đặt vấn đề 53 3.2 Mô hình sử dụng giao dịch trực tuyến ngân hàng Eximbank 54 3.2.1 Giới thiệu Mobile OTP 55 3.2.1 Hướng dẫn sử dụng Mobile OTP 56 3.3 Kết xây dựng mô hình thực nghiệm 56 3.4 Cài đặt 56 3.5 Kết chương 56 KẾT LUẬN 57 TÀI LIỆU THAM KHẢO 58 PHỤ LỤC 59 v DANH MỤC CÁC CHỮ VIẾT TẮT OTP One Time Password DES Data Encrypt Standar RSA R.Rivest A.Shamir L.Adleman MHK Merkle -Hellman Knapsack SHA Secure Hash Algorithm vi DANH MỤC HÌNH VẼ Hình 1: Hình 2: Mã hoá với khoá mã khoá giải giống Minh họa xác thực mật 15 Hình 3: Minh họa đăng nhập lần 16 Hình 4: Hình 5: Mô hình đăng nhập SSO 26 Cơ chế hoạt động openSSO 30 Hình 6: Hình 7: Người dùng truy cập vào ứng dụng 32 Người dùng truy cập ứng dụng mà chưa 32 Hình 8: Hình 9: Hình 10: Sơ đồ phân loại hàm băm 34 Cấu trúc tổng quát hàm băm 35 Mô hình sinh mã OTP theo thời gian 39 Hình 11: Hình 12: Hình 13: Thiết bị sinh OTP - OTP Token 40 Ứng dụng Mobile OTP - IOS 40 Ứng dụng Mobile OTP - Window Phone 42 Hình 14: Hình 15: Hình 16: Hình 17: Mô hình xác thực người dùng dựa giao thức 44 Thẻ mật OTP với mật in sẵn VinaGame 45 Chuyển giao OTP tin nhắn SMS 46 Minh họa thẻ EMV 48 Hình 18: Hình 19: Hình 20: Hình 21: Minh họa thiết bị E-Token 49 Mô hình kết nối SSL VPN đến Vigor2950 có điện thoại 49 Cài đặt phần mềm sinh OTP iPhone với Vigor2950 51 Mô hình nhận OTP qua gmail 53 Hình 22: Hình 23: Hình 24: Hình 25: Hình 26: Hình 27: Hình 28: Hình 29: Hướng dẫn cài đặt ứng dụng Mobile OTP 54 Hướng dẫn đăng nhập kích hoạt dịch vụ 54 Hướng dẫn sử dụng Mobile OTP để xác thực giao dịch 55 Hướng dẫn chức đồng OTP 55 Hướng dẫn cấp lại mật 56 Hướng dẫn đổi mật 56 Người dùng đăng nhập vào hệ thống 56 Người dùng nhập thông tin chuyển khoản 56 Hình 30: Hình 31: Hình 32: Người dùng chấp nhận chuyển khoản 56 Người dùng chuyển khoản thành công 56 Mô tả lịch sử giao dịch 56 MỞ ĐẦU Trong kĩ thuật bảo mật thông tin, mật (password) sử dụng rộng rãi trình đăng nhập (log-on) để xác thực người dùng truy nhập vào hệ thống máy tính mạng, phần mềm ứng dụng máy tính cá nhân, máy chủ công ty website tổ chức tài chính, ngân hàng Phương pháp phổ thông thường hay dùng để xác thực người dùng mật (tên đăng nhập username - password) Tuy nhiên, hầu hết chuyên gia bảo mật đánh giá việc sử dụng password không an toàn trước thủ đoạn công tinh vi Mật bị nghe lén, bị đánh cắp, bị phá mã Một hướng nghiên cứu để tăng cường độ an toàn hệ thống mật sử dụng lần OTP (One Time Password) Đây phương pháp giới thiệu để tăng cường độ an toàn trình xác thực người dùng, xác thực giao dịch, đặc biệt giao dịch toán trực tuyến hệ thống ngân hàng sử dụng phổ biến Đề tài "Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật dạng OTP" lựa chọn với mục đích nghiên cứu sâu mật sử dụng lần, phương pháp sinh tạo mật sử dụng lần ứng dụng việc xác thực giao dịch ngân hàng, cài đặt thử nghiệm ứng dụng mật sử dụng lần để nâng cao an toàn cho xác thực giao dịch ngân hàng trực tuyến Mục đích luận văn Tìm hiểu nghiên cứu sâu mật sử dụng lần, phương pháp sinh tạo mật sử dụng lần ứng dụng xác thực giao dịch ngân hàng trực tuyến Đối tượng phạm vi nghiên cứu Luận văn tìm hiểu nghiên cứu lý thuyết mật mã, thuật toán mã hóa bản, lý thuyết hàm băm thuật toán mã hóa SHA-1, lý thuyết OTP vấn đề xác thực giao dịch ngân hàng trực tuyến Xây dựng hệ thống xác thực giao dịch ngân hàng mật sử dụng lần OTP ngôn ngữ Java Cấu trúc luận văn gồm có Phần mở đầu: Nêu lý chọn đề tài hướng nghiên cứu Chương 1: Các kiến thức lý thuyết bảo mật thông tin, số thuật toán mã hóa bản, khái niệm mật ứng dụng Chương 2: Giới thiệu tổng quan mật OTP, ứng dụng bản, phương pháp sinh mật OTP, phương pháp chuyển giao Chương 3: Xây dựng chương trình ứng dụng xác thực giao dịch trực tuyến ngân hàng Việt Nam dựa mật OTP 52 Quy trình bước thực cấp lại mật (trong trường quên mật dịch vụ bị khóa nhập sai mật khẩu) sau: B1: Chọn nút “Đồng OTP” B2: Chọn “Quên mật khẩu” B3: Chọn nút “Xác nhận” B4: Tạo mật thành công Khách hàng kiểm tra E-mail để nhận mật Hình 26: Hướng dẫn cấp lại mật 53 Quy trình bước thực Đổi mật (trong trường hợp khách hàng muốn thay đổi mật sử dụng): B1: Chọn chức “Đổi mật khẩu” B2: Nhập mật tại, mật mới, xác nhận mật chọn “Thực hiện” B3: Thông báo đổi mật thành công Hình 27: Hướng dẫn đổi mật 3.3 Kết xây dựng mô hình thực nghiệm Trên sở lý thuyết mô hình tham khảo, luận văn trình bày kết xây dựng mô hình thực nghiệm mô thao tác giao dịch trực tuyến thông qua việc sinh OTP qua Gmail Chương trình thực nghiệm mô thao tác giao dịch trực tuyến sử dụng xác thực trực tuyến cho người dùng OTP xây dựng số mô đun môi trường lập trình Java Các mô đun mô tả qua kịch thực giao dịch trực tuyếnxác thực OTP gồm bước sau: Người dùng đăng nhập vào trang toán trực tuyến ngân hàng sử dụng username password đăng 54 Hình 28: Người dùng đăng nhập vào hệ thống Hệ thống xác thực thông tin tài khoản người dùng; Nếu xác cho người dùng truy cập vào hệ thống Người dùng vào ứng dụng chuyển khoản Giao diện chuyển khoản xuất Người dùng nhập thông tin giao dịch vào giao diện chuyển tiền trực tuyến bao gồm: tên tài khoản người nhận, số tài khoản người nhận, số tiền chữ, số tiền số, nội dung chuyển khoản Hình 29: Người dùng nhập thông tin chuyển khoản Người dùng nhấn vào nút “Hoàn Thành” Giao diện xác thực OTP xuất Hình 30: Người dùng chấp nhận chuyển khoản 55 Một tin nhắn gửi từ tổng đài hệ thống tới gmail người dùng chứa mã giao dịch OTP Người dùng nhập mã OTP nhận từ tin nhắn gmail vào ô xác thực nhấn nút “Chấp nhận” Nếu người dùng nhập OTP giao diện giao dịch thành công xuất Nếu người dùng nhập sai hệ thống yêu cầu người dùng nhập lại OTP Giao dịch thành công Hình 31: Người dùng chuyển khoản thành công 3.4 Cài đặt Chương trình thử nghiệm cài đặt hệ điều hành Microsoft Windows, ngôn ngữ Java phần mềm lập trình Netbeans 6.9 kết hợp với hệ quản trị sở liệu My SQL để hệ thống truy xuất sở liệu Thuật toán SHA-1 sử dụng để tạo OTP Cơ sở liệu sử dụng để xác thực người dùng, lưu lịch sử giao dịch Cơ sở liệu lưu trữ username, password, tên chủ tài khoản, số tiền có lần giao dịch 56 Hình 32: Mô tả lịch sử giao dịch Phần mềm bên server xây dựng dạng web server Phía server dựa vào OTP gửi tới di động người dùng để đưa định cho phép người dùng toán hay từ chối yêu cầu Phần mềm tương tác với sở liệu lưu thông tin người dùng tài khoản họ Chương trình sử dụng gmail mô tổng đài để gửi tin nhắn chứa OTP Kết luận Trong chương này, tiến hành xây dựng thử nghiệm chương trình thử nghiệm xác thực giao dịch ngân hàng trực tuyến sử dụng OTP chuyển giao qua gmail Phương pháp sinh chuyển giao OTP cài đặt có khả 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 có khả triển khai rộng rãi thực tế không đòi hỏi bổ sung phần cứng hay phần mềm phức tạp 57 KẾT LUẬN Mật sử dụng lần (OTP) mật sử dụng lần để xác thực giao dịch phiên làm việc Do OTP sử dụng lần nên có độ an toàn cao so với mật truyền thống, tránh dạng công nghe Luận văn nghiên cứu mật sử dụng lần, kỹ thuật sinh chuyển giao mật lần ứng dụng vào xác thực giao thức trực tuyến ứng dụng ngân hàng Các kết luận văn: + Nghiên cứu tổng quan mật sử dụng lần ứng dụng mật sử dụng lần + Nghiên cứu phương pháp sinh mật sử dụng lần dựa thời gian, dựa thuật toán; phương pháp sinh mật Token điện thoại di động; phương pháp chuyển giao mật sử dụng lần giấy, tin nhắn SMS + Nghiên cứu ứng dụng OTP giao dịch ngân hàng trực tuyến Việt Nam, cài đặt thử nghiệm mô phương pháp chuyển giao OTP thông qua tin nhắn gmail sinh OTP ngôn ngữ Java Hướng phát triển luận văn: + Cài đặt thử nghiệm thành công ứng dụng mật sử dụng lần 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 sinh OTP + Nghiên cứu đăng nhập lần sử dụng mật sử dụng lần; + Cải tiến ứng dụng sinh OTP điện thoại di động giao diện tính để việc xác thực người dùng trở nên thân thiện, tiện lợi đảm bảo độ an toàn cao 58 TÀI LIỆU THAM KHẢO [1] D M’Raihi, J Rydell, S Bajaj, S Machani, D Naccache, OATH ChallengeResponse Algorithm, June 2011 [2] D M’Raihi, J Rydell, S Bajaj, S Machani, D Naccache, Time-Based OneTime Password Algorithm, May 2011 [3] Neil M Haller, Bellcore, Morristown, New Jersey - THE S-KEY ONE-TIME PASSWORD SYSTEM, 2011 [4] One Time Password http://en.wikipedia.org/wiki/One-time_password, 9/2013 [5] Challenge-Response Algorithm http://en.wikipedia.org/wiki/Challenge%E2%80%93response_authentication, 9/2013 [6] 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 mật sử dụng lần ứng dụng, 12/2012 [7] Phạm Tuấn Dũng - Luận văn: Nghiên cứu phương pháp bảo mật cho chế đăng nhập lần ứng dụng hệ phân tán, 2011 [8] Vũ Vinh Quang, Nguyễn Đình Dũng, Nguyễn Hiền Trinh, Dương Thị Mai Thương, Giáo trình lý thuyết thông tin, Nhà xuất Khoa học Kĩ thuật, năm 2010 59 PHỤ LỤC Một số chương trình nguồn Modun Log in to Admin Panel function btnLogin_Click() { document.forms["frmLogin"].action = "checklogin.jsp"; document.forms["frmLogin"].submit(); } function handleKeyPress(evt) { var nbr, chr; if (window.Event) nbr = evt.which; else nbr = event.keyCode; if (nbr == 13) { btnLogin_Click(); document.FORMNAME.submit(); } return true; } document.onkeydown = handleKeyPress Log in to Admin Panel User Name: Password: Modun chuyển khoản 60 InstanceBeginEditable name="noi dung" > Chuyển khoản hệ thống Tên Tài Khoản : Số tài khoản : Số dư khả dụng: vnđ 63 Tên Tài Khoản người nhận : Số tài khoản người nhận : Số tiền chữ: Số tiền số: vnđ 64 Nội dung chuyển khoản: Nhập mã xác nhận: xác nhận không đúng! 65 Thông báo: Giao dịch thành công!     Demo OTP-One Time Password For Bank function checkButton(guilai) { var frm = "mainform"; document.forms[frm].action = ""; document.forms[frm].action = "Service.jsp?guilai=" + guilai; document.forms[frm].submit(); } Mô đun XacNhan public class XacNhan { public boolean xacNhanOtpCode(String user_id, String code) { boolean result = false; PreparedStatement pstmt = null; DBPool dbPool = new DBPool(); Connection connection = dbPool.getConnectionMysql(DBConfig.urlmysql, DBConfig.usermysql, DBConfig.passmysql); try { pstmt = connection.prepareStatement("SELECT * FROM otp_code WHERE user_id =" + user_id +" and code ='"+code+"'"); ResultSet rs = pstmt.executeQuery(); if (rs.next()) { result = true; String sqlStr = "delete from otp_code where user_id = "+ user_id ; 66 pstmt = connection.prepareStatement(sqlStr); pstmt.executeUpdate(); } } catch (Exception e) { e.printStackTrace(); }finally { try { connection.close(); } catch (SQLException ex) { Logger.getLogger(XacNhan.class.getName()).log(Level.SEVERE, null, ex); } } return result; } } ... xác thực người dùng, xác thực giao dịch, đặc biệt giao dịch toán trực tuyến hệ thống ngân hàng sử dụng phổ biến Đề tài "Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật dạng. .. toàn cho xác thực giao dịch ngân hàng trực tuyến Mục đích luận văn Tìm hiểu nghiên cứu sâu mật sử dụng lần, phương pháp sinh tạo mật sử dụng lần ứng dụng xác thực giao dịch ngân hàng trực tuyến. .. DỰNG CHƯƠNG TRÌNH ỨNG DỤNG XÁC THỰC SỬ DỤNG OTP TRONG GIAO DỊCH NGÂN HÀNG TRỰC TUYẾN 53 3.1 Đặt vấn đề 53 3.2 Mô hình sử dụng giao dịch trực tuyến ngân hàng Eximbank 54 3.2.1

Ngày đăng: 25/06/2017, 17:28

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan