Để đảm bảo an toàn cho người sử dụng, các phương thức xác thực hai lớp 2FA đãđược áp dụng rộng rãi, giúp tăng cường bảo mật qua việc yêu cầu người dùng xác thựcthông tin bằng hai yếu tố
GIỚI THIỆU VỀ AN NINH THÔNG TIN VÀ GIỚI THIỆU ĐỀ TÀI
LÝ DO CHỌN ĐỀ TÀI
Trong kỷ nguyên số, công nghệ thông tin và internet đã mang lại nhiều tiện ích cho cuộc sống, đặc biệt trong ngành ngân hàng Ngân hàng trực tuyến đã trở thành phần thiết yếu trong giao dịch của người tiêu dùng, cho phép thực hiện giao dịch nhanh chóng và thuận tiện Tuy nhiên, sự gia tăng của tội phạm mạng và gian lận trực tuyến đã đặt ra thách thức lớn trong việc bảo vệ thông tin và tài sản của khách hàng, làm nổi bật nhu cầu cấp bách về các biện pháp bảo mật hiệu quả.
Trong bối cảnh giao dịch trực tuyến ngày càng phát triển, mã hóa và xác thực trở thành yếu tố quan trọng để bảo vệ thông tin Thuật toán RSA (Rivest-Shamir-Adleman) đã chứng minh hiệu quả trong việc bảo mật thông tin nhờ khả năng mã hóa và giải mã an toàn Việc áp dụng RSA để tăng cường bảo mật OTP và mã PIN trong ngân hàng trực tuyến không chỉ ngăn chặn truy cập trái phép mà còn giảm nguy cơ bị đánh cắp mã xác thực Đề tài "Ứng dụng mã hoá RSA trong xác thực hai lớp bằng mã PIN và OTP" phản ánh nhu cầu bảo vệ thông tin khách hàng và cam kết của ngân hàng đối với an ninh Nó mở ra cơ hội nghiên cứu và phát triển công nghệ bảo mật tiên tiến, tạo ra giải pháp hiệu quả trong bảo vệ dữ liệu, cải thiện chất lượng dịch vụ và thúc đẩy sự phát triển bền vững của ngành ngân hàng trong thời đại số hóa Sự kết hợp giữa công nghệ tiên tiến và nhận thức bảo mật sẽ giúp ngân hàng xây dựng một tương lai vững chắc, nơi niềm tin và an toàn luôn được đặt lên hàng đầu.
MỤC TIÊU NGHIÊN CỨU
Mục tiêu nghiên cứu của dự án là áp dụng kiến thức đã học để thu thập và phân tích dữ liệu, nhằm hiểu rõ hơn về lý thuyết và mối liên quan của mã hóa RSA Dự án cũng sẽ kết hợp mã hóa RSA với các phương pháp bảo mật như mã PIN và OTP, từ đó nâng cao khả năng chống lại các rủi ro bảo mật và bảo vệ thông tin người dùng trong bối cảnh đe dọa an ninh mạng gia tăng Nghiên cứu sẽ làm rõ vai trò của mã hóa RSA trong việc chống lại các tấn công giả mạo và hiệu quả trong việc bảo vệ dữ liệu nhạy cảm của khách hàng.
ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Đề tài “Ứng dụng mã hóa RSA trong xác thực hai lớp bằng mã PIN và OTP nhằm tăng cường bảo mật giao dịch ngân hàng trực tuyến” tập trung vào các yếu tố chính liên quan đến bảo mật dữ liệu trong hệ thống ngân hàng trực tuyến Mã hóa RSA được sử dụng để nâng cao tính bảo mật, kết hợp với xác thực hai lớp qua mã PIN và OTP, giúp bảo vệ giao dịch hiệu quả hơn.
Mã hóa RSA là một phương pháp quan trọng trong việc bảo vệ dữ liệu trong hệ thống ngân hàng, giúp mã hóa và giải mã thông tin nhạy cảm như mật khẩu và dữ liệu giao dịch Thuật toán RSA đảm bảo tính bảo mật và an toàn trong quá trình truyền tải thông tin, góp phần nâng cao độ tin cậy của các giao dịch tài chính.
Xác thực hai lớp (2FA) là một phương pháp bảo mật hiệu quả, kết hợp giữa mã PIN cố định và OTP (One-Time Password) để nâng cao độ an toàn cho người dùng (Trần, 2023).
- Nghiên cứu về hệ thống và giao thức ngân hàng trực tuyến, bao gồm các rủi ro bảo mật và phương pháp bảo vệ giao dịch trực tuyến.
Để bảo vệ thông tin và dữ liệu của khách hàng, các biện pháp và công nghệ bảo mật tiên tiến cần được triển khai Điều này không chỉ giúp đảm bảo an toàn cho các giao dịch tài chính trực tuyến mà còn tăng cường niềm tin của người dùng vào hệ thống Việc áp dụng các giải pháp bảo mật hiệu quả sẽ góp phần giảm thiểu rủi ro và bảo vệ quyền lợi của khách hàng trong môi trường số.
Đề tài nghiên cứu tập trung vào việc ứng dụng mã hoá RSA để nâng cao bảo mật trong xác thực hai lớp thông qua mã PIN và OTP, nhằm bảo vệ an toàn cho các giao dịch của khách hàng.
1.3.2.1 Phạm vi về mặt công nghệ
- Nghiên cứu tập trung vào cơ chế mã hóa khóa công khai RSA, cách thức tạo và phân phối khóa RSA.
Quá trình mã hóa và giải mã mã PIN (mã xác thực cá nhân) và OTP (mật khẩu dùng một lần) bằng RSA đóng vai trò quan trọng trong việc đảm bảo tính an toàn và bảo mật thông tin Việc sử dụng RSA trong xác thực hai lớp giúp bảo vệ dữ liệu khi truyền tải, ngăn chặn các mối đe dọa từ bên ngoài và tăng cường độ tin cậy trong quá trình xác thực người dùng Điều này không chỉ nâng cao mức độ bảo mật mà còn tạo điều kiện thuận lợi cho việc sử dụng các dịch vụ trực tuyến một cách an toàn.
- So sánh mức độ bảo mật của RSA với các thuật toán mã hóa khác như AES, DSA.
1.3.2.1 Phạm vi về lĩnh vực ngân hàng
- Giới hạn trong các giao dịch trên nền tảng ngân hàng trực tuyến (internet banking, mobile banking).
Để đảm bảo an toàn cho các giao dịch tài chính trực tuyến, cần chú trọng vào việc bảo vệ các hoạt động như chuyển khoản, thanh toán hóa đơn và quản lý tài khoản cá nhân Việc áp dụng các biện pháp bảo mật sẽ giúp người dùng yên tâm hơn khi thực hiện các giao dịch này.
- Nghiên cứu việc bảo vệ giao dịch thông qua việc xác thực người dùng bằng mãOTP và mã PIN.
GIỚI THIỆU VỀ AN NINH THÔNG TIN
1.4.1 Khái niệm về an ninh thông tin
An ninh thông tin là lĩnh vực trong công nghệ thông tin, chuyên bảo vệ dữ liệu khỏi các mối đe dọa như truy cập trái phép và xâm nhập Mục tiêu chính của nó là đảm bảo ba yếu tố cơ bản: tính bảo mật, tính toàn vẹn và tính khả dụng của dữ liệu, được gọi là "Tam giác CIA".
Hình 1.1 Tam giác bảo mật CIA
Tính bảo mật thông tin là yếu tố quan trọng, đảm bảo rằng chỉ những đối tượng được cấp phép mới có quyền truy cập và đọc dữ liệu Để duy trì tính bí mật này, cần kiểm soát quyền truy cập nhằm ngăn chặn việc chia sẻ thông tin trái phép, dù là cố ý hay vô tình Việc giới hạn quyền truy cập là một trong những phương pháp hiệu quả để bảo vệ thông tin nhạy cảm.
+ Thuật ngữ privacy thường được sử dụng khi dữ liệu được bảo vệ có liên quan tới các thông tin mang tính cá nhân.
Tính toàn vẹn (Integrity) là yếu tố quan trọng trong quản lý thông tin, đảm bảo rằng chỉ những đối tượng có quyền mới được phép xóa hoặc sửa đổi thông tin Điều này không chỉ đảm bảo tính chính xác của dữ liệu khi được lưu trữ hoặc truyền đi, mà còn phản ánh rằng tính toàn vẹn không chỉ đơn thuần là việc ngăn chặn sự thay đổi thông tin.
Tính khả dụng (Availability) đảm bảo rằng thông tin có thể được truy cập bởi những người được phép bất cứ lúc nào Điều này giúp thông tin và hệ thống luôn sẵn sàng cho người dùng hợp pháp, đồng thời giảm thiểu gián đoạn do sự cố hoặc tấn công.
Thêm vào đó sự chính xác của thông tin còn được đánh giá bởi:
Xác thực (Authentication) là quá trình đảm bảo rằng dữ liệu nhận được là bản gốc và chính xác Việc xác minh nguồn gốc thông tin là cần thiết để đảm bảo rằng dữ liệu đến từ một nguồn đáng tin cậy.
Tính không thể chối bỏ (Non-repudiation) là một khái niệm quan trọng trong lĩnh vực bảo mật thông tin, đảm bảo rằng cả người gửi và người nhận dữ liệu không thể phủ nhận trách nhiệm của mình sau khi đã thực hiện việc gửi và nhận thông tin Điều này giúp tăng cường tính minh bạch và độ tin cậy trong các giao dịch điện tử, bảo vệ quyền lợi của các bên liên quan.
1.4.2 Các thành phần của an ninh thông tin
Information security can be divided into three main components: computer and data security, network security, and management of information security These components are closely interconnected, with the common thread among them being the information security policy.
Hình 1.2 Các thành phần chính của An ninh thông tin 1.4.2.1 An toàn máy tính và dữ liệu (Computer & Data Security)
An toàn máy tính và dữ liệu là quá trình bảo vệ hệ thống phần cứng, phần mềm và thông tin trên máy tính, nhằm đảm bảo thiết bị hoạt động an toàn và đáp ứng nhu cầu của người dùng Các yếu tố quan trọng trong an toàn máy tính và dữ liệu bao gồm bảo mật thông tin, phòng ngừa virus, và quản lý quyền truy cập.
- Bảo vệ hệ điều hành, ứng dụng và dịch vụ khỏi các rủi ro tiềm ẩn.
- Kiểm soát truy cập để giới hạn quyền truy cập của người dùng vào các dữ liệu quan trọng.
- Mã hóa dữ liệu nhằm bảo vệ thông tin quan trọng khỏi các truy cập trái phép và rò rỉ.
1.4.2.2 An ninh mạng (Network Security)
An ninh mạng là quá trình bảo vệ hệ thống mạng và dữ liệu khỏi các cuộc tấn công mạng và truy cập trái phép Các biện pháp an ninh mạng bao gồm việc sử dụng phần mềm bảo mật, tường lửa, mã hóa dữ liệu và đào tạo nhân viên về nhận thức an ninh.
- Tường lửa và proxy giúp lọc gói tin và kiểm soát truy cập.
- Mạng riêng ảo (VPN) và các giao thức bảo mật thông tin như SSL/TLS, PGP.
- Giám sát hoạt động mạng nhằm kịp thời phát hiện và ứng phó với các sự cố an ninh.
1.4.2.3 Quản lý an toàn thông tin (Management of Information Security)
Quản lý an toàn thông tin là quá trình tổ chức, giám sát và quản lý các hoạt động nhằm đảm bảo an toàn thông tin, từ đó nâng cao hiệu quả của các biện pháp bảo mật Những nội dung quan trọng trong quản lý an toàn thông tin bao gồm việc xác định các rủi ro, xây dựng chính sách bảo mật, đào tạo nhân viên, và triển khai các biện pháp kỹ thuật để bảo vệ dữ liệu.
Quản lý rủi ro là quá trình quan trọng trong việc nhận dạng và đánh giá các rủi ro, nhằm xác định những mối nguy có thể ảnh hưởng đến hệ thống Việc thực hiện đánh giá rủi ro giúp tổ chức nhận diện các yếu tố tiềm ẩn và đưa ra các biện pháp phòng ngừa hiệu quả.
- Thực thi các tiêu chuẩn và chính sách an ninh thông tin, như ISO/IEC 27001, để đảm bảo hệ thống tuân thủ quy định.
- Đào tạo và nâng cao nhận thức về an toàn thông tin cho người dùng, giúp giảm thiểu rủi ro từ phía người dùng nội bộ.
- Phòng chống phần mềm độc hại (Malware Prevention) và sao lưu dự phòng dữ liệu để bảo vệ thông tin khi xảy ra sự cố.
Hình 1.3 Chính sách an toàn thông tin
1.4.2.4 Chính sách an toàn thông tin (Information Security Policy)
Chính sách an toàn thông tin là tập hợp các quy định và nội quy nhằm định hướng và đảm bảo việc tuân thủ các biện pháp bảo vệ thông tin trong tổ chức Chính sách này bao gồm các nguyên tắc và quy trình cần thiết để bảo vệ dữ liệu và thông tin nhạy cảm.
Chính sách an toàn vật lý (Physical Security Policy) đóng vai trò quan trọng trong việc bảo vệ thiết bị và cơ sở hạ tầng vật lý khỏi các rủi ro như cháy nổ và trộm cắp Việc thực hiện chính sách này giúp đảm bảo an toàn cho tài sản và giảm thiểu thiệt hại do các sự cố không mong muốn.
An Organizational Security Policy is designed to establish processes and regulations that ensure the entire organization complies with security standards.
Chính sách an toàn logic (Logical Security Policy) bao gồm các biện pháp kỹ thuật như xác thực đa yếu tố, mã hóa và hạn chế quyền truy cập nhằm bảo vệ dữ liệu và hệ thống thông tin Một ví dụ điển hình là tổ chức có thể áp dụng xác thực sinh trắc học, chẳng hạn như sử dụng vân tay thay cho mật khẩu, để nâng cao mức độ an toàn cho hệ thống.
CÁC PHƯƠNG PHÁP BẢO VỆ THÔNG TIN
- Quyền truy nhập: Là lớp bảo vệ trong cùng nhằm kiểm soát các tài nguyên của mạng và quyền hạn trên tài nguyên đó.
Đăng ký tên và mật khẩu là phương pháp xác thực phổ biến, giúp kiểm soát quyền truy cập vào hệ thống và ngăn chặn việc truy cập trái phép.
Mã hoá dữ liệu là quá trình chuyển đổi thông tin từ dạng có thể đọc được sang dạng không thể đọc được thông qua các thuật toán toán học Quá trình này đảm bảo an toàn cho dữ liệu, và khi cần thiết, dữ liệu có thể được khôi phục về trạng thái ban đầu thông qua giải mã.
Bảo vệ vật lý là các biện pháp an ninh được áp dụng nhằm bảo vệ hệ thống khỏi các mối đe dọa vật lý, trong đó bao gồm việc ngăn chặn sự xâm nhập trái phép.
Tường lửa là một hệ thống bảo mật mạng quan trọng, giúp kiểm soát lưu lượng truy cập vào và ra khỏi mạng Nó có chức năng ngăn chặn các cuộc tấn công mạng và lọc bỏ các gói tin độc hại, bảo vệ an toàn cho hệ thống.
Hình 1.4 Các mức bảo vệ trên mạng
Quản trị mạng là quá trình quản lý và kiểm soát toàn bộ hệ thống mạng, nhằm đảm bảo tính sẵn sàng, hiệu suất và bảo mật cho hệ thống Công tác này cần được thực hiện một cách khoa học để đảm bảo rằng toàn bộ hệ thống hoạt động ổn định trong giờ làm việc.
+ Có hệ thống dự phòng khi có sự cố về phần cứng hoặc phần mềm xảy ra. + Backup dữ liệu quan trọng theo định kỳ (Pavietnam, 2023)
+ Bảo dưỡng mạng theo định kỳ.
+ Bảo mật dữ liệu, phân quyền truy cập, tổ chức nhóm làm việc trên mạng
AN TOÀN THÔNG TIN BẰNG MẬT MÃ
Mật mã (Cryptography) là lĩnh vực khoa học chuyên nghiên cứu các phương pháp và kỹ thuật nhằm đảm bảo an toàn và bảo mật dữ liệu trong quá trình truyền tin Nó bao gồm hai hoạt động chính: lập mã và phá mã.
Mã hóa là quá trình chuyển đổi thông tin từ dạng có thể đọc được sang dạng không thể hiểu được mà không có khóa giải mã, trong khi giải mã khôi phục thông tin về trạng thái ban đầu Lĩnh vực này bao gồm các sản phẩm như hệ thống mã hóa dữ liệu, hàm băm mật mã, hệ thống chữ ký số, cơ chế phân phối và quản lý khóa, cũng như các giao thức mật mã an toàn.
Phá mã là nghiên cứu và phát triển kỹ thuật giải mã thông tin hoặc giả mạo mã hóa mà không cần khóa bí mật Các sản phẩm trong lĩnh vực này bao gồm phương pháp tấn công hệ thống mã hóa, giả mạo chữ ký số, tấn công hàm băm và khai thác điểm yếu trong giao thức bảo mật.
1.6.2 Vai trò của mật mã trong việc bảo mật thông tin
Mật mã là công cụ quan trọng trong việc bảo mật thông tin, giúp mã hóa dữ liệu để đảm bảo tính bí mật và xác thực danh tính Nó cũng giữ cho dữ liệu không bị thay đổi, ngăn chặn việc phủ nhận và bảo vệ thông tin trong quá trình truyền tải.
Hình 1.5 Mô hình bảo mật thông tin bằng mật mã
Cách hiểu truyền thống: giữ bí mật nội dung trao đổi GỬI và NHẬN trao đổi với nhau trong khi TRUNG GIAN tìm cách “nghe lén”.
- Một trong những nghệ thuật để bảo vệ thông tin là biến đổi nó thành một định dạng mới khó đọc.
- Viết mật mã có liên quan đến việc mã hoá các thông báo trước khi gửi chúng đi và tiến hành giải mã chúng lúc nhận được.
Hình 1.6 Các kỹ thuật mã hóa cơ bản
Mã hóa được chia làm 2 phương thức cơ bản: thay thế và hoán vị:
Mã hóa thay thế là phương pháp trong đó mỗi ký tự hoặc nhóm ký tự trong văn bản gốc được thay thế bằng các ký hiệu, từ, hoặc tổ hợp khác dựa trên một quy tắc cụ thể và khóa mã hóa Quá trình này tạo ra bản mã có cấu trúc khác biệt so với văn bản gốc.
Mã hóa hoán vị là một phương pháp trong đó các ký tự hoặc cụm ký tự của bản rõ được sắp xếp lại theo một trật tự nhất định dựa trên quy tắc cụ thể, mà không làm thay đổi nội dung thực sự của chúng Trật tự mới này được xác định bởi khóa mã hóa hoặc quy tắc hoán đổi cụ thể.
HỆ MẬT MÃ
Hệ mật mã đóng vai trò quan trọng trong bảo mật thông tin trong kỷ nguyên số, bảo vệ dữ liệu khỏi các mối đe dọa như đánh cắp, giả mạo và can thiệp trái phép Nó hoạt động như một lớp áo giáp vô hình, ngăn chặn sự truy cập không hợp lệ và đảm bảo an toàn cho thông tin.
1.7.1 Vai trò của hệ mật mã
Hệ mật mã là yếu tố then chốt trong việc bảo vệ thông tin, đảm bảo an toàn cho dữ liệu trong quá trình truyền tải và lưu trữ Nó giúp ngăn chặn truy cập trái phép và bảo vệ tính toàn vẹn của dữ liệu.
Hệ mật mã đóng vai trò quan trọng trong việc bảo vệ thông tin bằng cách che giấu nội dung và ngăn chặn truy cập trái phép Tương tự như một chiếc hộp khóa, hệ mật mã đảm bảo rằng chỉ những người được phép mới có thể truy cập vào dữ liệu, từ đó bảo vệ thông tin khỏi sự tò mò và xâm nhập không mong muốn.
Hệ mật mã đóng vai trò quan trọng trong việc xác định nguồn gốc thông tin, đảm bảo rằng thông tin được gửi đến người nhận hợp pháp và không bị giả mạo Nó hoạt động như một chứng nhận nguồn gốc, giúp chứng minh tính xác thực của dữ liệu.
Hệ mật mã đóng vai trò quan trọng trong việc tạo ra chữ ký điện tử, giúp đảm bảo tính toàn vẹn của thông tin và ngăn chặn các hành vi giả mạo, mạo danh Chữ ký điện tử hoạt động tương tự như dấu vân tay điện tử, khẳng định tính xác thực và ngăn chặn việc chối bỏ trách nhiệm của người gửi.
1.7.2 Các khái niệm cơ bản của hệ mật mã
Trong một hệ thống mã hóa, có một số khái niệm cơ bản để hiểu về cách thông tin được bảo vệ và phục hồi.
Bản rõ là thông tin gốc chưa mã hóa, giống như bức thư chưa được đóng kín và dễ dàng đọc được Khi thông tin này được mã hóa, nó trở thành bản mã - chuỗi ký tự vô nghĩa không thể hiểu ngay Quá trình mã hóa cần một thuật toán, giống như công thức bí mật để niêm phong bức thư Tuy nhiên, để mã hoạt động, cần có khóa - thông tin bí mật giúp chuyển đổi giữa bản rõ và bản mã, tương tự như chìa khóa để mở hoặc đóng dấu kín bức thư.
Mã hóa là quá trình chuyển đổi từ bản rõ thành bản mã, giúp bảo vệ nội dung bằng cách đóng kín thông tin Ngược lại, giải mã là hành động chuyển bản mã trở lại thành thông tin gốc, giống như việc mở dấu niêm phong để tiếp cận nội dung bên trong.
Hình 1.7 Sơ đồ mã hóa
1.7.3 Các thành phần của một hệ mật mã
Một hệ thống mật mã được định nghĩa là một tập hợp gồm 5 phần tử (P, C, K, E, D) đáp ứng các điều kiện sau:
- P là không gian bản rõ: là tập hữu hạn các bản rõ có thể có.
- C là không gian bản mã: là tập hữu hạn các bản mã có thể có.
- K là không gian khoá: là tập hữu hạn các khoá có thể có.
Mỗi k ∈ K có một quy tắc mã hóa eK: P → C và một quy tắc giải mã tương ứng dK ∈ D Các hàm eK: P → C và dK: C → P đảm bảo rằng dK(eK(x)) = x với mọi bản rõ x ∈ P.
- Hàm giải mã dk chính là ánh xạ ngược của hàm mã hóa ek
Hình 1.8 Quá trình mã hóa và giải mã thông tin
1.7.4 Mô hình truyền tin cơ bản của mật mã học
Mô hình truyền tin cơ bản trong mật mã học bao gồm các yếu tố như người gửi, người nhận, thông tin, kênh truyền tải, kẻ thù và hệ mật mã Hệ mật mã đóng vai trò quan trọng trong việc bảo mật thông tin được truyền tải, giúp ngăn chặn kẻ thù đánh cắp hoặc thay đổi nội dung thông tin.
Hình 1.9 Mô hình truyền tin cơ bản của mật mã học
1.7.5 Phân loại hệ mật mã
1.7.5.1 Hệ mật mã đối xứng (mật mã khóa bí mật)
Hệ mật mã đối xứng sử dụng một khóa chung cho cả quá trình mã hóa và giải mã thông tin Để đảm bảo an toàn, người gửi và người nhận cần phải chia sẻ khóa bí mật trước khi tiến hành truyền tải thông tin.
Hình 1.10 Mô hình hệ mật mã đối xứng Ứng dụng:
Trong lĩnh vực bảo mật, hệ mật mã đối xứng đóng vai trò quan trọng trong việc bảo vệ dữ liệu, đặc biệt trong môi trường mạng nội bộ, mã hóa tập tin và thư điện tử Sự mạnh mẽ của hệ thống này giúp đảm bảo an toàn thông tin, ngăn chặn truy cập trái phép và bảo vệ dữ liệu nhạy cảm khỏi các mối đe dọa tiềm ẩn.
- Tốc độ mã hóa nhanh và dễ dàng triển khai trong các hệ thống nhỏ.
- Khó quản lý khóa bí mật khi có nhiều người dùng tham gia.
Các thuật toán mã hóa phổ biến trong mã hóa đối xứng bao gồm DES, Triple DES (3DES), AES và RC4, nổi bật với hiệu quả và độ bảo mật cao khi được triển khai trong các môi trường thích hợp.
1.7.5.2 Hệ mật mã bất đối xứng (hay còn gọi là mật mã khóa công khai)
Mã bất đối xứng là hệ thống mật mã sử dụng hai khóa khác nhau cho quá trình mã hóa và giải mã Hệ thống này bao gồm một khóa công khai, được công bố để mã hóa thông tin, và một khóa bí mật, chỉ được giữ riêng bởi người nhận để giải mã thông tin.
Có hai mode làm việc :
- Bảo mật: Mã bằng public key -> giải mã bằng private key
- Xác thực: Mã bằng private key -> giải mã bằng public key
Hình 1.11 Mô hình hệ mật mã bất đối xứng Ứng dụng:
Hệ mật mã bất đối xứng là công nghệ quan trọng được áp dụng để mã hóa thông tin trong các giao dịch trực tuyến và trao đổi dữ liệu bảo mật giữa các bên chưa có mối quan hệ trước đó.
Hệ mật mã này là nền tảng cho chữ ký số điện tử, đảm bảo tính hợp pháp và bảo mật của tài liệu điện tử, cũng như xác thực người dùng trong nhiều lĩnh vực, từ giao dịch ngân hàng đến bảo mật doanh nghiệp.
TỔNG QUAN VỀ MÃ HÓA DỮ LIỆU
Trong thời đại công nghệ kỹ thuật số hiện nay, mã hóa dữ liệu trở thành công cụ quan trọng để bảo vệ thông tin và đảm bảo an ninh mạng Nó không chỉ ngăn chặn truy cập trái phép mà còn bảo vệ thông tin cá nhân và hỗ trợ các giao dịch trực tuyến cũng như quy trình xác thực trong hệ thống điện tử.
Mã hóa dữ liệu có vai trò quan trọng trong việc bảo vệ giao dịch tài chính trực tuyến, bảo mật thông tin trong các hệ thống y tế và giáo dục, cũng như bảo vệ dữ liệu trong dịch vụ đám mây Việc áp dụng mã hóa giúp người dùng yên tâm về sự an toàn và tính toàn vẹn của thông tin cá nhân và giao dịch quan trọng, đồng thời bảo vệ quyền lợi của người dùng và tạo ra một môi trường kỹ thuật số an toàn và đáng tin cậy.
Mã hóa dữ liệu, mặc dù mang lại nhiều lợi ích, nhưng cũng gặp phải những thách thức, đặc biệt là trong việc quản lý khóa mã hóa Khi khóa bị mất hoặc rò rỉ, điều này có thể đe dọa toàn bộ hệ thống bảo mật Hơn nữa, sự phát triển của công nghệ đóng vai trò quan trọng trong việc bảo vệ dữ liệu, giúp các tổ chức duy trì an ninh trong môi trường số hóa (Tuấn, 2023).
1.8.1 Khái niệm của mã hóa dữ liệu
Mã hóa dữ liệu là quá trình chuyển đổi thông tin thành dạng mã hóa, chỉ những người có quyền truy cập vào khóa giải mã hoặc mật khẩu mới có thể đọc được Dữ liệu được mã hóa gọi là bản mã, trong khi dữ liệu không được mã hóa là bản rõ Hiện nay, mã hóa là một trong những phương pháp bảo mật dữ liệu hiệu quả và phổ biến mà các tổ chức áp dụng Có hai loại mã hóa chính: mã hóa không đối xứng (mã hóa khóa công khai) và mã hóa đối xứng.
1.8.2 Giới thiệu các loại mã hóa
Mã hóa bao gồm nhiều loại, với ba thuật toán phổ biến là DES (Data Encryption Standard), TripleDES (3DES) và RSA Mỗi thuật toán này có những đặc điểm riêng và mức độ an toàn khác nhau, phù hợp với các tình huống và yêu cầu bảo mật đa dạng.
Tiêu chuẩn mã hóa dữ liệu (DES) là phương pháp mã hóa được chính phủ Mỹ áp dụng ban đầu với độ dài khóa 56 bit Tuy nhiên, với sự tiến bộ của công nghệ, DES đã trở nên không an toàn do dễ bị bẻ khóa Dù vậy, DES vẫn được sử dụng trong một số sản phẩm nhờ vào quy trình mã hóa đơn giản và yêu cầu tài nguyên thấp.
Hình 1.12 Quy trình mã hoá và giải mã của thuật toán DES 1.8.2.2 Mã hóa TripleDES
TripleDES (3DES) được phát triển để nâng cao bảo mật so với DES, với quy trình mã hóa ba lần giúp tăng độ dài khóa lên 168 bit Nó cung cấp ba tùy chọn khóa: ba khóa độc lập (168 bit), hai khóa độc lập (112 bit), và một khóa duy nhất (56 bit) Tuy nhiên, kích thước khối nhỏ 64 bit của TripleDES làm cho nó dễ bị tấn công hơn.
Hình 1.13 Quy trình mã hóa Triple DES với ba khóa độc lập 1.8.2.3 Mã hoá RSA
RSA là một trong những thuật toán mã hóa khóa công khai đầu tiên, sử dụng phương pháp mã hóa bất đối xứng với khóa công khai để mã hóa và khóa bí mật để giải mã Thuật toán này được áp dụng phổ biến trong các giao thức bảo mật trên Internet như SSL/TLS Khóa RSA thường có độ dài 1024 hoặc 2048 bit, trong đó khóa dài hơn 2048 bit được khuyến khích cho việc bảo vệ dữ liệu nhạy cảm.
1.8.3 Vai trò của mã hóa trong an ninh thông tin
1.8.3.1 Bảo mật thông tin người dùng
Mã hóa là một biện pháp quan trọng trong việc bảo vệ thông tin cá nhân của người dùng khỏi các mối đe dọa từ kẻ xấu Khi dữ liệu nhạy cảm như mật khẩu, thông tin cá nhân và hồ sơ sức khỏe được mã hóa, chỉ những người có quyền truy cập thích hợp mới có thể sử dụng thông tin đó Điều này không chỉ ngăn chặn việc đánh cắp thông tin mà còn bảo vệ quyền riêng tư, đảm bảo rằng thông tin của người dùng luôn được bảo vệ an toàn trong suốt quá trình lưu trữ và truyền tải.
1.8.3.2 Bảo mật giao dịch tài chính trong ngân hàng trực tuyến
Trong ngân hàng trực tuyến, mã hóa đóng vai trò quan trọng trong việc bảo vệ giao dịch tài chính Khi thực hiện các giao dịch như chuyển tiền, thanh toán hóa đơn hay kiểm tra số dư, mã hóa bảo vệ thông tin giữa người dùng và ngân hàng khỏi các cuộc tấn công mạng Nó đảm bảo rằng thông tin nhạy cảm như số thẻ tín dụng, mã PIN và chi tiết giao dịch không bị truy cập bởi kẻ xâm nhập, giúp người dùng thực hiện giao dịch trực tuyến một cách an toàn và tự tin.
CƠ SỞ LÝ THUYẾT VÀ ỨNG DỤNG MÃ HÓA RSA TRONG XÁC THỰC HAI LỚP
TỔNG QUAN VỀ XÁC THỰC HAI LỚP (2FA)
2.1.1 Khái niệm và tầm quan trọng của xác thực hai lớp (2FA)
2.1.1.1 Khái niệm của xác thực hai lớp 2FA (Paul Kirvan, 2024)
Xác thực hai yếu tố (2FA) là một phương pháp bảo mật yêu cầu người dùng cung cấp hai yếu tố khác nhau, như mật khẩu và mã xác thực dùng một lần, để xác minh danh tính và truy cập vào tài khoản trực tuyến hoặc tài nguyên nhạy cảm Các yếu tố bảo mật này được phân loại thành nhiều loại khác nhau.
- Yếu tố kiến thức bao gồm những gì người dùng biết, như mật khẩu, mã PIN hoặc câu hỏi bảo mật.
Yếu tố sở hữu đề cập đến những thứ mà người dùng sở hữu, bao gồm thẻ căn cước, thiết bị di động, token bảo mật và thẻ thông minh, tất cả đều cần thiết để thực hiện các yêu cầu xác thực.
Yếu tố sinh trắc học, hay còn gọi là yếu tố vốn có, là những đặc điểm sinh lý tự nhiên của người dùng Các yếu tố này bao gồm dấu vân tay, nhận diện khuôn mặt và quét mống mắt, giúp xác thực danh tính một cách an toàn và hiệu quả.
Yếu tố vị trí xác thực là một phương pháp quan trọng trong việc giới hạn quyền truy cập theo địa điểm Nó sử dụng địa chỉ IP hoặc dữ liệu GPS từ thiết bị để xác định nguồn truy cập, từ đó ngăn chặn việc truy cập từ những vị trí không xác định.
Yếu tố thời gian xác thực là một phương pháp bảo mật quan trọng, cho phép người dùng đăng nhập chỉ trong khung giờ quy định Việc từ chối truy cập ngoài thời gian này giúp tăng cường an ninh cho các hệ thống có yêu cầu về giờ truy cập cụ thể, đảm bảo rằng chỉ những người có quyền mới có thể truy cập vào thông tin nhạy cảm trong khoảng thời gian cho phép.
Phương pháp xác thực hai yếu tố (2FA) sử dụng sự kết hợp giữa kiến thức, quyền sở hữu và các yếu tố sinh trắc học để tăng cường bảo mật tài khoản Việc kết hợp các yếu tố này giúp làm cho việc truy cập trái phép trở nên khó khăn hơn, ngay cả khi kẻ tấn công có mật khẩu của người dùng, họ vẫn cần yếu tố thứ hai để có thể truy cập vào tài khoản.
2.1.1.2 Tầm quan trọng của xác thực hai lớp (2FA) tài khoản bằng cách giảm thiểu rủi ro khi chỉ dựa vào một yếu tố duy nhất, thường là mật khẩu.
Xác thực hai yếu tố (2FA) bao gồm hai yếu tố bảo mật: yếu tố đầu tiên là thông tin người dùng biết như mật khẩu, và yếu tố thứ hai là một yếu tố bổ sung độc lập, thường là thiết bị mà người dùng sở hữu như điện thoại di động hoặc đặc điểm sinh trắc học như vân tay Yếu tố thứ hai này tăng cường bảo mật, đảm bảo rằng ngay cả khi mật khẩu bị lộ, kẻ xấu vẫn cần có yếu tố bổ sung để truy cập.
Sử dụng nhiều kênh xác thực khác nhau giúp nâng cao độ bảo mật Nếu kẻ tấn công lấy được thông tin đăng nhập từ một kênh, chúng vẫn không thể qua được yếu tố xác thực thứ hai trừ khi có quyền truy cập vào thiết bị vật lý hoặc đặc điểm sinh trắc học của người dùng.
Sử dụng xác thực hai yếu tố (2FA) với thông báo đẩy trên điện thoại giúp bảo vệ tài khoản người dùng hiệu quả Người dùng cần cung cấp cả tên đăng nhập và mật khẩu (yếu tố biết) cùng với điện thoại di động (yếu tố có) để xác thực danh tính Điều này có nghĩa là ngay cả khi kẻ tấn công có mật khẩu, họ vẫn không thể truy cập tài khoản nếu không có điện thoại của người dùng.
Hình 2.1 Cách thức hoạt động xác thực hai lớp 2FA
2.1.2 Một số phương pháp xác thực hai lớp phổ biến (2FA)
Một số phương pháp phổ biến của 2FA thường được ứng dụng rộng rãi là mã PIN, mã OTP.
Mã PIN (Personal Identification Number) là dãy số từ 4 đến 6 chữ số do người dùng tạo ra, phổ biến trong giao dịch tài chính và truy cập thiết bị di động nhờ tính tiện dụng và dễ nhớ Để nâng cao bảo mật, mã PIN thường được kết hợp với mật khẩu hoặc thiết bị bảo mật khác Tuy nhiên, mã PIN có thể bị lộ nếu không được bảo mật tốt, và có nguy cơ bị tấn công qua các phương pháp như tấn công brute-force, nhìn lén, tấn công phát lại, rò rỉ PIN, đoán mã, nghe trộm, lừa đảo qua email, giả mạo, tấn công MITM và phần mềm độc hại.
Mã OTP (One-Time Password) là mật khẩu dùng một lần, có hiệu lực ngắn hạn và thường được tạo ra từ thời gian, mẫu hoặc khóa ngẫu nhiên OTP được gửi qua SMS, ứng dụng, token RSA hoặc email, và hoạt động dựa trên mã hạt giống chia sẻ giữa bộ tạo và bộ xác minh, đảm bảo cả hai bên tạo ra cùng một mã Phương pháp này giúp ngăn chặn truy cập trái phép ngay cả khi mật khẩu cố định bị đánh cắp OTP rất phổ biến trong xác thực hai yếu tố (2FA) nhờ vào chi phí thấp và hiệu quả trong việc ngăn chặn các cuộc tấn công như giả mạo và tấn công brute-force Nhiều hệ thống còn sử dụng ứng dụng xác thực như Google Authenticator để tạo mã OTP trực tiếp trên thiết bị người dùng, tăng cường bảo mật và tiện lợi.
2.1.3 So sánh giữa xác thực 1 lớp ( 1FA ) và xác thực 2 lớp ( 2FA )
Bảng 2.1 So sánh giữa xác thực một lớp (1FA) và xác thực hai lớp (2FA)
Xác thực 1 lớp (1FA) Xác thực 2 lớp (2FA)
Chỉ yêu cầu một yếu tố để xác thực, thường là thứ người dùng biết (mật khẩu hoặc mã PIN)
Người dùng cần cung cấp hai yếu tố xác thực khác nhau, bao gồm một yếu tố mà họ biết (mật khẩu) và một yếu tố sinh trắc học (như vân tay hoặc khuôn mặt).
Với chỉ một lớp bảo vệ, tài khoản dễ dàng bị truy cập trái phép nếu mật khẩu hoặc mã PIN bị đánh cắp Phương thức này rất dễ bị tấn công, đặc biệt là thông qua các hình thức lừa đảo.
(phishing) và tấn công thử mật khẩu (brute-force).
Lớp bảo vệ thứ hai giúp bảo vệ tài khoản ngay cả khi mật khẩu bị lộ, nhờ vào yếu tố bổ sung như mã xác minh Điều này rất hiệu quả trong việc ngăn chặn các mối đe dọa phổ biến như lừa đảo và tấn công đánh cắp mật khẩu.
CƠ SỞ HÌNH THÀNH MÃ PIN
2.2.1 Nguyên tắc bảo mật và đơn giản hóa của mã PIN trong xác thực
Mã PIN (Mã số nhận dạng cá nhân) là một phương tiện xác thực cá nhân an toàn và đơn giản, được áp dụng rộng rãi trong các hệ thống như ngân hàng và thiết bị di động Cơ chế bảo mật của mã PIN dựa vào việc chỉ người dùng chính chủ biết mã số duy nhất này, nhằm ngăn chặn truy cập trái phép và bảo vệ thông tin cá nhân hiệu quả.
Mã PIN thường có độ dài từ 4 đến 6 chữ số, vừa dễ nhớ vừa đảm bảo an toàn Việc giới hạn số lần nhập sai giúp ngăn chặn các cuộc tấn công brute force, với mã PIN 4 chữ số chỉ có 10,000 tổ hợp, giảm đáng kể xác suất thành công của kẻ tấn công khi giới hạn thử nghiệm Mã PIN cũng đơn giản và dễ nhớ hơn so với mật khẩu phức tạp hoặc các phương thức xác thực sinh trắc học Nghiên cứu cho thấy mã PIN dễ triển khai và duy trì hơn vì không yêu cầu phần cứng phức tạp Hơn nữa, mã PIN có thể được bảo mật hiệu quả nhờ các thuật toán mã hóa mạnh mẽ như RSA, SHA-256 hoặc AES, giúp ngăn ngừa lộ lọt thông tin người dùng trong trường hợp hệ thống gặp sự cố bảo mật.
2.2.2 Khả năng kết hợp mã PIN với công nghệ khác
Mã PIN có thể dễ dàng kết hợp với các công nghệ bảo mật khác để tạo ra phương thức xác thực hai lớp hoặc đa yếu tố Một trong những công nghệ phổ biến đi kèm là mã OTP (One-Time Password), một mã số ngẫu nhiên có thời hạn ngắn, được gửi qua SMS, email hoặc ứng dụng xác thực Sự kết hợp giữa mã PIN và OTP mang lại lợi ích bảo mật cao, vì nếu mã PIN bị lộ, mã OTP dùng một lần vẫn có thể ngăn chặn truy cập trái phép, trừ khi kẻ tấn công cũng có quyền truy cập vào thiết bị nhận OTP.
CƠ SỞ HÌNH THÀNH MÃ OTP
2.3.1 Thuật toán HOTP, TOTP (Pionote, 2018)
2.3.1.1 HOTP (HMAC-based One-Time Password)
HOTP là một thuật toán tạo mã OTP (One-Time Password) dựa trên hàm HMAC (Hash-based Message Authentication Code), sử dụng khóa bí mật chung và bộ đếm theo tiêu chuẩn RFC 4226 Mỗi khi người dùng yêu cầu mã OTP mới, bộ đếm sẽ tăng lên, tạo ra mã OTP duy nhất chỉ sử dụng một lần cho mỗi giá trị bộ đếm Thuật toán này phù hợp cho các hệ thống không yêu cầu đồng bộ thời gian.
Hình 2.2 Cơ chế của HOTP Công thức: HOTP(K,C)=Truncate(HMAC-SHA-1(K,C))
- K: Khóa bí mật chia sẻ giữa hệ thống và người dùng.
- C: Bộ đếm (Counter), một số nguyên tăng dần mỗi khi mã OTP được tạo.
- HMAC-SHA-1(K,C): Kết quả của hàm HMAC với thuật toán SHA-1, sử dụng khóa bí mật K và bộ đếm C.
Hàm truncate là một phương pháp cắt ngắn, cho phép lấy một phần kết quả từ HMAC-SHA-1 và chuyển đổi nó thành một giá trị số với độ dài tùy chỉnh, thường là 6 hoặc 8 chữ số.
- Sử dụng khóa bí mật K và bộ đếm C làm đầu vào cho hàm HMAC-SHA-1.
- HMAC-SHA-1 tạo ra một giá trị băm 20 byte.
- Áp dụng hàm Truncate để cắt ngắn và chuyển đổi giá trị băm thành mã OTP có độ dài 6-8 chữ số.
HOTP không yêu cầu đồng bộ thời gian, vì nó hoạt động dựa trên bộ đếm, điều này giúp việc kiểm soát và đồng bộ giữa người dùng và hệ thống trở nên dễ dàng khi bộ đếm tăng dần.
2.3.1.2 TOTP (Time-based One-Time Password)
TOTP, một biến thể của HOTP, sử dụng dấu thời gian thay vì bộ đếm để tạo mã OTP theo tiêu chuẩn RFC 6238 Với cửa sổ thời gian thường là 30 giây, TOTP đảm bảo tính đồng bộ cao, rất phù hợp cho các hệ thống yêu cầu bảo mật 2FA.
Hình 2.3 Cơ chế của TOTP Công thức: TOTP(K,T)=Truncate(HMAC-SHA-1(K,T))
- K: Khóa bí mật chia sẻ giữa hệ thống và người dùng.
- T: Giá trị thời gian, được tính bằng cách chia thời gian hiện tại (theo giây) cho khoảng thời gian (thường là 30 giây) T = floor(Unix timestamp/30).
- HMAC-SHA-1(K,T): Kết quả của hàm HMAC với thuật toán SHA-1, sử dụng khóa bí mật K và giá trị thời gian T.
- Truncate: Hàm cắt ngắn tương tự như trong HOTP.
- Tính toán giá trị thời gian T dựa trên thời điểm hiện tại và cửa sổ thời gian (30 giây).
- Sử dụng K và T làm đầu vào cho hàm HMAC-SHA-1.
- Áp dụng hàm Truncate để cắt ngắn giá trị băm, tạo ra mã OTP có độ dài 6-8 chữ số.
TOTP hoạt động dựa trên thời gian, vì vậy việc đồng bộ giữa hệ thống và người dùng là rất quan trọng Điều này không chỉ giúp mã TOTP tự động hết hạn mà còn nâng cao tính bảo mật cho hệ thống.
2.3.2 Tính bảo mật của kênh truyền tải OTP
Mã OTP có thể bị nghe lén hoặc giả mạo khi được truyền qua SMS, email, hoặc ứng dụng xác thực Để đảm bảo tính toàn vẹn trong giao dịch ngân hàng trực tuyến, việc áp dụng mã hóa RSA và truyền tải qua kênh bảo mật HTTPS là rất quan trọng Sử dụng các phương pháp bảo mật kết hợp với OTP giúp bảo vệ mã này khỏi các cuộc tấn công MITM và tấn công thay đổi nội dung Ngoài ra, các ứng dụng ngân hàng nên sử dụng ứng dụng xác thực nội bộ như Google Authenticator để giảm thiểu nguy cơ bị nghe lén khi mã OTP không phải đi qua mạng truyền thống.
2.3.3 Hạn chế về thời gian và số lần sử dụng OTP
Cả HOTP và TOTP đều cung cấp mã OTP chỉ sử dụng một lần, ngăn chặn việc mã bị sử dụng lại nếu bị đánh cắp TOTP có mã hiệu lực trong khoảng thời gian ngắn (thường là 30 giây), giúp giảm nguy cơ lạm dụng trước khi mã hết hạn Trong khi đó, HOTP không phụ thuộc vào thời gian nhưng mỗi mã chỉ có thể sử dụng một lần cho mỗi giá trị bộ đếm, yêu cầu người dùng và hệ thống đồng bộ bộ đếm Những tính năng này làm tăng tính bảo mật và giảm thiểu rủi ro tấn công thử dò (brute force) nhờ vào thời gian sống ngắn và tính chất sử dụng một lần của mã.
NGUYÊN LÝ MÃ HOÁ RSA
RSA là phương pháp mã hóa phổ biến trong bảo mật thông tin và chữ ký điện tử, sử dụng cặp khóa gồm khóa công khai và khóa bí mật Khóa công khai được chia sẻ rộng rãi, trong khi khóa bí mật chỉ được biết bởi người sở hữu Quá trình mã hóa và giải mã RSA diễn ra qua bốn bước chính: sinh khóa, chia sẻ khóa, mã hóa và giải mã.
Trong thuật toán RSA, quá trình sinh khóa tập trung vào ba số tự nhiên quan trọng: e, d và n Để đảm bảo an toàn, ba số này phải thỏa mãn các điều kiện toán học nhất định, nhằm mục đích khi có thông tin về e, n hoặc thậm chí bản rõ m, vẫn không thể xác định được giá trị của d.
Cụ thể, các bước sinh khóa RSA như sau:
- Chọn hai số nguyên tố lớn p và q.
- Tính n = p × q Giá trị n sau này được dùng làm mô-đun cho cả khoá công khai và khoá bí mật.
- Tính số λ(n) theo công thức hàm Carmichael: λ(n) = BCNN( p−1,q−1 ) Đây là giá trị bí mật giúp xác định tính toán của khoá bí mật.
- Chọn một số tự nhiên e sao cho 1 < e < λ(n) và ƯCLN( e,λ(n) ) = 1 (tức là e và λ(n) nguyên tố cùng nhau).
- Tính số d sao cho d × e ≡ 1( modλ(n) ) d là số nghịch đảo của e theo mô-đun λ(n). Kết quả là:
- Khoá công khai là cặp số (n,e).
Khóa bí mật trong hệ thống mã hóa là cặp số (n, d) Để đảm bảo an toàn, giá trị d cùng với các số nguyên tố p và q cần được giữ bí mật, vì chỉ từ những thông tin này có thể dễ dàng tính toán lại khóa.
Hình 2.4 Quá trình sinh khoá
2.4.2 Mã hóa với khoá công khai
Để gửi một bản tin dưới dạng số tự nhiên m (với 0 < m < n), chúng ta cần mã hóa m bằng khóa công khai (n, e), từ đó tạo ra bản mã c.
Bản mã c sẽ được gửi đến người nhận.
2.4.3 Giải mã với khoá bí mật
Khi nhận được bản mã c, người nhận sử dụng khoá bí mật (n,d) để khôi phục lại bản rõ m:
Sau khi giải mã, người nhận sẽ nhận lại bản rõ m, từ đó có thể chuyển đổi thành bản tin gốc.
Hình 2.5 Mã hóa và giải mã trong RSA
2.4.4 Các tính chất của RSA
Hệ mã hóa RSA mang các tính chất đặc trưng sau:
RSA là một phương pháp mã hóa bất đối xứng, sử dụng hai khóa riêng biệt: khóa công khai và khóa bí mật Khóa công khai được dùng để mã hóa dữ liệu, trong khi khóa bí mật cho phép giải mã thông tin Cách thức này giúp bảo mật thông tin truyền tải mà không cần chia sẻ khóa giải mã, từ đó nâng cao tính bảo mật trong giao tiếp.
Tính bảo mật của RSA dựa vào độ khó trong việc phân tích số nguyên lớn thành các thừa số nguyên tố Với khóa có độ dài từ 1024 bit trở lên, việc tìm kiếm khóa bí mật từ khóa công khai trở nên gần như không thể trong khoảng thời gian hợp lý, từ đó đảm bảo tính bảo mật cho hệ thống.
RSA sử dụng khả năng tính toán hai chiều thông qua các phép tính lũy thừa và phép toán modulo, cho phép mã hóa và giải mã thông tin Các phép tính này được thực hiện một cách hiệu quả, đảm bảo rằng thông điệp gốc có thể được khôi phục chính xác khi sử dụng khóa phù hợp.
RSA là một hệ mã hóa mạnh mẽ, được sử dụng phổ biến trong các ứng dụng yêu cầu bảo mật cao, như giao dịch tài chính và truyền tải dữ liệu an toàn.
ỨNG DỤNG THỰC TẾ CỦA MÃ HÓA RSA
RSA đóng vai trò quan trọng trong bảo mật thông tin, được ứng dụng rộng rãi để bảo vệ dữ liệu nhạy cảm, đảm bảo tính riêng tư và xác thực người dùng Các ứng dụng chính của RSA bao gồm việc mã hóa thông tin, xác thực danh tính và bảo vệ giao dịch trực tuyến.
Chữ ký số sử dụng thuật toán RSA, được coi là bước đột phá trong bảo mật và khoa học dữ liệu Với cơ chế mã hóa bất đối xứng, RSA không chỉ cung cấp tính bảo mật cao mà còn đảm bảo tính toàn vẹn của dữ liệu, điều này rất quan trọng trong các giao dịch số.
Bảo mật kết nối trên web, email, VPN và các ứng dụng chat là rất quan trọng, trong đó RSA được sử dụng để mã hóa nội dung, bảo vệ các cuộc trò chuyện cá nhân và dữ liệu nhạy cảm Với cặp khóa công khai và khóa riêng, RSA đảm bảo chỉ những người sở hữu khóa riêng mới có thể giải mã dữ liệu, ngăn chặn việc nghe lén và đánh cắp thông tin bởi hacker, từ đó bảo vệ sự riêng tư và an toàn của người dùng trong môi trường giao tiếp số.
Giao thức TLS/SSL sử dụng RSA để thiết lập kênh truyền tải an toàn giữa máy chủ và client, mã hóa quá trình trao đổi khóa và bảo vệ dữ liệu như thông tin đăng nhập, thanh toán và dữ liệu cá nhân Nhờ có RSA, người dùng có thể truy cập các trang web với giao thức HTTPS một cách an toàn, giảm thiểu rủi ro từ các cuộc tấn công man-in-the-middle và hành vi đánh cắp dữ liệu RSA đóng vai trò quan trọng trong việc duy trì an toàn và bảo mật cho các giao dịch trực tuyến qua TLS/SSL.
SO SÁNH RSA VỚI CÁC THUẬT TOÁN MÃ HÓA KHÁC TRONG BẢO MẬT NGÂN HÀNG
2.6.1 So sánh RSA với DES và AES trong bảo mật giao dịch
Encryption is a crucial element in ensuring security for online banking transactions, particularly within two-factor authentication (2FA) systems that protect OTP and PIN codes Currently, three popular encryption algorithms are widely used: RSA (Rivest-Shamir-Adleman), DES (Data Encryption Standard), and AES (Advanced Encryption Standard).
RSA là thuật toán mã hóa bất đối xứng sử dụng hai khóa: khóa công khai và khóa riêng tư Mặc dù RSA mang lại mức độ bảo mật cao, nhưng hiệu suất của nó chậm khi xử lý dữ liệu lớn do các phép toán phức tạp với số nguyên tố lớn Do đó, RSA thường được áp dụng để mã hóa khóa phiên hoặc trong các tình huống trao đổi khóa.
DES là một thuật toán mã hóa đối xứng sử dụng cùng một khóa cho mã hóa và giải mã Mặc dù DES có hiệu suất nhanh hơn RSA, nhưng độ bảo mật của nó đã suy yếu do độ dài khóa chỉ 56 bit, dễ bị tấn công brute-force Hiện nay, DES không còn được coi là an toàn, và hầu hết các hệ thống đã chuyển sang sử dụng AES hoặc 3DES.
AES là một phương pháp mã hóa đối xứng, được phát triển nhằm thay thế DES với hiệu suất vượt trội Hỗ trợ các độ dài khóa 128, 192 và 256 bit, AES mang lại mức độ bảo mật cao, ngay cả trước các cuộc tấn công brute-force So với RSA, AES nhanh chóng và hiệu quả hơn, đặc biệt trong các ứng dụng cần mã hóa dữ liệu lớn.
2.6.1.2 Độ bảo mật Độ bảo mật của RSA phụ thuộc vào độ khó của việc phân tích các số nguyên tố lớn Tuy nhiên, RSA có khóa rất dài (ít nhất 2048 bit) để đạt được mức độ bảo mật tương đương với AES RSA mạnh mẽ trước các tấn công brute-force nhưng có thể bị đe dọa nếu máy tính lượng tử phát triển.
Với khóa 56 bit, DES dễ bị tấn công brute-force, dẫn đến việc nó không còn được sử dụng trong các hệ thống bảo mật hiện đại.
AES là tiêu chuẩn mã hóa dữ liệu nổi bật nhờ vào tính an toàn và khả năng chống lại các phương pháp tấn công phổ biến như tấn công brute-force Công nghệ này được áp dụng rộng rãi trong các hệ thống ngân hàng và bảo mật thông tin, nhờ vào khả năng bảo mật cao và khả năng xử lý lượng dữ liệu lớn hiệu quả.
Bảng 2.2 So sánh RSA với DES và AES trong bảo mật giao dịch ngân hàng
Thuật toán RSA DES AES
Loại mã hóa Bất đối xứng Đối xứng Đối xứng Độ dài khóa Thường dài 1024 hoặc 2048 bit
56-bit (được coi là không an toàn)
128, 192, hoặc 256- bit Độ bảo mật Rất cao (an toàn cho bảo mật nhạy cảm)
Thấp (dễ bị tấn công brute-force)
Rất cao, phù hợp tiêu chuẩn hiện đại
Hiệu suất Chậm hơn khi mã hóa dữ liệu lớn
Nhanh, hiệu quả cho dữ liệu lớn nhưng bảo mật thấp
Rất nhanh, tối ưu hóa tốt Ứng dụng trong bảo mật ngân hàng
Xác thực hai lớp, TLS/SSL, giao dịch ngân hàng
Bảo mật Wi-Fi (WPA2), mã hóa lưu trữ, thanh toán trực tuyến
Trước đây dùng cho tài chính, hiện đã lỗi thời
2.6.2 So sánh RSA với DES và AES trong 2FA
RSA (Rivest-Shamir-Adleman) là một thuật toán mã hóa bất đối xứng sử dụng hai khóa: khóa công khai để mã hóa và khóa riêng để giải mã Thuật toán này rất phù hợp cho việc trao đổi khóa an toàn, đặc biệt trong các hệ thống 2FA trực tuyến, nơi khóa riêng được giữ bí mật và chỉ chia sẻ khóa công khai Ngoài ra, RSA còn có thể được sử dụng để tạo OTP (mật khẩu dùng một lần), cung cấp thêm một lớp bảo mật nhờ tính bất đối xứng Thường thì RSA được kết hợp với các thuật toán mã hóa đối xứng, giúp tận dụng tính bảo mật cho xác thực mà không làm giảm tốc độ.
DES (Data Encryption Standard) là một thuật toán mã hóa đối xứng sử dụng khóa 56 bit, khiến nó dễ bị tấn công brute-force và không còn an toàn theo tiêu chuẩn hiện đại Vì lý do này, DES hiếm khi được sử dụng trong các ứng dụng 2FA an toàn Mặc dù vậy, Triple DES (3DES) áp dụng mã hóa DES ba lần trên mỗi khối dữ liệu để cải thiện bảo mật, nhưng vẫn thua kém AES về hiệu suất và độ an toàn.
AES (Advanced Encryption Standard) là một thuật toán mã hóa đối xứng nổi bật với tính an toàn cao, cung cấp kích thước khóa 128, 192 hoặc 256 bit Với tốc độ nhanh và khả năng bảo mật mạnh mẽ, AES là lựa chọn lý tưởng cho các hệ thống xác thực hai yếu tố (2FA) cần mã hóa an toàn và hiệu quả Thuật toán này thường được sử dụng để tạo mã OTP an toàn và mã hóa dữ liệu trong quá trình xác thực Hiệu suất vượt trội của AES cho phép triển khai rộng rãi trên các nền tảng di động và đám mây, đảm bảo bảo mật mạnh mẽ với yêu cầu xử lý tối thiểu Khả năng chống lại các cuộc tấn công mật mã, bao gồm brute-force, khiến AES trở thành lựa chọn hàng đầu cho các hệ thống 2FA hiện đại, vượt trội hơn so với DES.
Bảng 2.3 So sánh RSA với DES và AES trong 2FA
Tiêu chí RSA DES AES Ứng dụng trong 2FA
Phương pháp này phù hợp cho việc trao đổi khóa ban đầu trong xác thực hai yếu tố (2FA) và được sử dụng để tạo mã OTP với độ an toàn cao Tuy nhiên, nó ít được sử dụng do độ an toàn thấp, mặc dù có thể áp dụng Triple DES, nhưng vẫn không hiệu quả bằng AES.
Rất phổ biến trong 2FA, dùng để tạo mã OTP và mã hóa dữ liệu truyền tải
Rất cao Thấp Rất cao
Khả năng bảo mật hiện đại
Thường kết hợp với các thuật toán đối xứng để tối ưu hóa bảo mật và tốc độ trong 2FA
Triple DES không còn phù hợp cho các ứng dụng bảo mật hiện đại, nhưng vẫn được chấp nhận rộng rãi và là chuẩn an toàn cho các ứng dụng hiện đại, bao gồm xác thực hai yếu tố (2FA).
2.6.3 Tính khả thi của RSA trong các hệ thống ngân hàng trực tuyến
RSA là thuật toán mã hóa bất đối xứng phổ biến, nổi bật với độ bảo mật cao, đặc biệt trong xác thực và bảo mật OTP Thuật toán này đang được áp dụng trong các giao dịch mới như blockchain và mã hóa lượng tử, nhằm nâng cao bảo mật và tính khả thi cho hệ thống ngân hàng trực tuyến.
Blockchain là công nghệ lưu trữ dữ liệu phi tập trung và bảo mật, không chỉ đơn thuần là một thuật toán mã hóa Nó sử dụng các thuật toán như SHA-256 và phương thức mã hóa bất đối xứng như RSA để bảo vệ và xác thực dữ liệu Công nghệ này mang lại tính minh bạch và bất biến cho dữ liệu, giảm thiểu nguy cơ giả mạo giao dịch Tuy nhiên, việc triển khai blockchain có thể phức tạp và yêu cầu nhiều tài nguyên hơn so với RSA.
Mã hóa lượng tử đang được phát triển để bảo vệ chống lại mối đe dọa từ máy tính lượng tử, những thiết bị có khả năng giải mã thuật toán như RSA nhanh chóng hơn máy tính cổ điển Các thuật toán như mã hóa QKD (Quantum Key Distribution) mang lại một lớp bảo mật mới, nhưng công nghệ này vẫn chưa phổ biến và cần nhiều nghiên cứu để áp dụng trong lĩnh vực ngân hàng trực tuyến.
ỨNG DỤNG VÀ TRIỂN KHAI MÃ HÓA RSA TRONG XÁC THỰC
NGHIÊN CỨU VÀ ỨNG DỤNG RSA VÀO HỆ THỐNG VÀ GIAO THỨC NGÂN HÀNG TRỰC TUYẾN
3.1.1 Giới thiệu về hệ thống ngân hàng trực tuyến
Hệ thống ngân hàng trực tuyến cho phép khách hàng thực hiện giao dịch ngân hàng qua internet, bao gồm chuyển tiền, thanh toán hóa đơn, kiểm tra số dư tài khoản và mở tài khoản Giao dịch thường được thực hiện qua website hoặc ứng dụng di động của ngân hàng Sự phát triển của công nghệ thông tin và internet đã làm cho ngân hàng trực tuyến trở thành phần quan trọng trong cuộc sống hàng ngày của nhiều người và doanh nghiệp.
3.1.2 Các rủi ro bảo mật trong ngân hàng trực tuyến
Ngân hàng trực tuyến mang lại nhiều tiện ích, nhưng cũng tiềm ẩn rủi ro bảo mật nghiêm trọng Các mối đe dọa này xuất phát từ nhiều nguồn khác nhau, bao gồm tội phạm mạng và lỗi kỹ thuật trong hệ thống.
Tấn công phishing là một hình thức lừa đảo qua email, website giả mạo hoặc cuộc gọi điện thoại, nhằm mục đích lừa người dùng cung cấp thông tin cá nhân hoặc tài khoản ngân hàng Kẻ tấn công thường tạo ra các email hoặc trang web giả mạo trông giống như trang của ngân hàng, từ đó đánh cắp thông tin tài khoản của người dùng.
Tấn công Man-in-the-Middle (MITM) là một hình thức tấn công mà kẻ xấu can thiệp vào giao tiếp giữa người dùng và ngân hàng, giả mạo người gửi hoặc nhận hợp lệ để nghe lén hoặc chỉnh sửa thông tin giao dịch Nếu không có mã hóa thích hợp, kẻ tấn công có khả năng đánh cắp hoặc thay đổi dữ liệu nhạy cảm, gây ra rủi ro lớn cho người dùng.
Phần mềm độc hại như virus, trojan và ransomware có thể xâm nhập vào máy tính của người dùng, dẫn đến việc chiếm đoạt quyền truy cập và đánh cắp thông tin tài khoản ngân hàng, từ đó thực hiện các giao dịch trái phép.
Việc sử dụng các thiết bị không an toàn, như máy tính công cộng hoặc thiết bị di động không được bảo mật, có thể dẫn đến rủi ro cao khi truy cập ngân hàng trực tuyến Người dùng cần nhận thức rõ về nguy cơ tấn công mạng và bảo vệ thông tin cá nhân của mình để tránh những hậu quả nghiêm trọng.
3.1.3 Sử dụng RSA vào trong bảo mật ngân hàng trực tuyến
Ứng dụng RSA trong bảo mật thông tin đăng nhập là rất quan trọng Khi khách hàng truy cập vào ngân hàng trực tuyến, RSA đảm bảo an toàn cho tên người dùng và mật khẩu Mã hóa RSA ngăn chặn việc lộ thông tin khi truyền tải qua mạng, đặc biệt là trên các kênh truyền thông không bảo mật.
Mã hóa giao dịch tài chính trực tuyến bằng RSA là giải pháp hiệu quả để bảo vệ thông tin quan trọng như số tài khoản, số tiền chuyển và các chi tiết khác Việc áp dụng mã hóa giúp ngăn chặn kẻ tấn công đánh cắp hoặc thay đổi thông tin giao dịch trong quá trình truyền tải qua Internet.
Bảo mật trong thanh toán trực tuyến là rất quan trọng, vì thông tin thẻ tín dụng và chi tiết thanh toán cần được bảo vệ chặt chẽ Công nghệ mã hóa RSA giúp bảo vệ các thông tin này, ngăn chặn kẻ tấn công thu thập dữ liệu thanh toán của khách hàng.
RSA được sử dụng để bảo vệ mã OTP (One-Time Password) và mã PIN trong các giao dịch chuyển tiền trực tuyến Khi khách hàng thực hiện chuyển tiền, RSA mã hóa mã OTP và mã PIN, đảm bảo thông tin này không bị đánh cắp trong quá trình truyền tải Việc này cung cấp thêm một lớp bảo mật, chỉ cho phép người sở hữu mã OTP và PIN hợp lệ thực hiện giao dịch.
- Một số ví dụ cụ thể về việc ứng dụng RSA để bảo mật ngân hàng trực tuyến:
Khi một khách hàng đăng nhập vào ngân hàng trực tuyến, mật khẩu của họ sẽ được mã hóa bằng khóa công khai của ngân hàng thay vì được truyền dưới dạng văn bản đơn giản Chỉ ngân hàng mới có khả năng giải mã thông tin này bằng khóa bí mật, đảm bảo an toàn cho dữ liệu người dùng.
Khi khách hàng chuyển tiền, thông tin như số tài khoản người nhận và số tiền được mã hóa bằng khóa công khai của ngân hàng, đảm bảo rằng ngay cả khi có ai đó nghe lén, họ cũng không thể đọc được thông tin giao dịch.
Khi một khách hàng thực hiện mua sắm trực tuyến và nhập thông tin thẻ tín dụng, thông tin này sẽ được mã hóa bằng khóa công khai của hệ thống thanh toán trước khi được gửi qua mạng Điều này giúp ngăn chặn các hành vi đánh cắp thông tin, bảo vệ an toàn cho khách hàng.
QUÁ TRÌNH XÁC THỰC HAI LỚP MÃ OTP VÀ MÃ PIN VỚI RSA
Người dùng bắt đầu quá trình chuyển khoản bằng cách cung cấp thông tin giao dịch cần thiết, bao gồm số tài khoản người nhận, số tiền chuyển và lý do cho giao dịch.
Bước 2: Sau khi nhận thông tin giao dịch, hệ thống sẽ yêu cầu người dùng thực hiện xác thực hai lớp để tăng tính bảo mật.
Người dùng nhập mã PIN đã đăng ký, một mã tĩnh để xác minh danh tính Mã PIN này được mã hóa bằng RSA trước khi gửi đến hệ thống ngân hàng Ngân hàng sử dụng khóa riêng RSA để giải mã mã PIN và so sánh với mã PIN đã đăng ký Nếu hai mã PIN khớp nhau, hệ thống tiếp tục xử lý giao dịch.
Sau khi xác thực mã PIN thành công, hệ thống ngân hàng sẽ tạo mã OTP sử dụng TOTP (mật khẩu một lần dựa trên thời gian) Mã OTP này sẽ được gửi đến người dùng qua các kênh bảo mật như SMS, email hoặc ứng dụng xác thực.
Người dùng sẽ nhận mã OTP và cần nhập mã này vào hệ thống để hoàn tất quá trình xác thực Trước khi gửi lên hệ thống ngân hàng, mã OTP được mã hóa bằng RSA để đảm bảo an toàn.
Ngân hàng giải mã mã OTP đã mã hóa bằng khóa riêng RSA và kiểm tra tính hợp lệ của mã OTP bằng cách so sánh với mã đã được tính toán Nếu mã OTP khớp, hệ thống sẽ xác nhận thành công.
Khi mã OTP và mã PIN được xác thực thành công, giao dịch chuyển khoản sẽ hoàn tất, và người dùng sẽ nhận được thông báo về kết quả giao dịch, cho biết liệu giao dịch đó thành công hay thất bại.
Hình 3.1 Sơ đồ thể hiện quá trình xác thực hai lớp mã OTP và mã PIN với RSA trong giao dịch ngân hàng trực tuyến
ỨNG DỤNG BẰNG CHƯƠNG TRÌNH MÔ PHỎNG RSA TRONG XÁC THỰC HAI LỚP CHO GIAO DỊCH NGÂN HÀNG TRỰC TUYẾN
3.3.1 Chương trình mô phỏng RSA trong xác thực hai lớp: (NeuralNine, 2023 (NeuralNine, 2023b)) Đây là chương trình code chạy bằng Python mà nhóm chúng em tìm hiểu từ trên mạng, các phần mềm hỗ trợ code để hoàn thiện cho việc mô phỏng quá trình ứng dụng RSA trong xác thực hai lớp Một số đặc điểm chính của chương trình (NeuralNine, 2023a):
- Giao diện đơn giản, dễ sử dụng cho người dùng mới bắt đầu.
- Tạo ra cặp khóa công khai, khóa bí mật với độ dài khóa 2048 bit.
- Có thể chạy được trên bất cứ phần mềm nào chạy Python miễn là pip install các thư viện cần thiết để chạy ở terminal.
3.3.2 Các thành phần và chức năng của chương trình:
3.3.2.1 Tạo cặp khóa RSA (khóa công khai và khóa bí mật) với độ dài khóa lớn:
# Tạo khóa RSA cho ngân hàng bank_public_key, bank_private_key = rsa.newkeys(2048)
RSA Key Pair: Đoạn mã này sử dụng thư viện rsa để tạo một cặp khóa RSA Cặp khóa này bao gồm:
Khóa công khai (bank_public_key) là công cụ quan trọng trong việc mã hóa dữ liệu trước khi gửi đi Người dùng cần sử dụng khóa công khai này để mã hóa mã PIN hoặc OTP của họ, đảm bảo an toàn khi gửi thông tin đến ngân hàng.
Khóa bí mật (bank_private_key) là công cụ quan trọng để giải mã dữ liệu đã được mã hóa Ngân hàng sử dụng khóa bí mật này để giải mã mã PIN hoặc OTP mà người dùng gửi, đảm bảo tính bảo mật và an toàn cho thông tin tài khoản.
Cặp khóa này được tạo với độ dài 2048 bit, đảm bảo tính bảo mật cao trong việc mã hóa và giải mã.
These variables are essential for managing the authentication process and user information: `user_pin` is initialized as an empty string, `otp_secret` is generated using `pyotp.random_base32()`, and limits are set with `max_pin_attempts` at 3 and `max_otp_attempts` at 2 The current attempts for PIN and OTP are tracked with `pin_attempts` and `otp_attempts`, both starting at 0 An `otp_timer` is set to 60 seconds, while `otp_code` is initialized as an empty string and `otp_running` is set to False, indicating that the OTP process is not currently active.
- otp_secret: Bí mật dùng để tạo mã OTP (One-Time Password) cho người dùng, được tạo ngẫu nhiên khi bắt đầu.
- pin_attempts: Số lần người dùng đã thử nhập mã PIN Nếu người dùng nhập sai quá nhiều lần, giao dịch sẽ bị hủy.
- otp_attempts: Số lần người dùng thử nhập mã OTP.
- otp_code: Mã OTP đã được tạo cho người dùng.
- otp_timer: Thời gian đếm ngược cho phép người dùng nhập mã OTP (60 giây).
- otp_running: Trạng thái có đang chạy mã OTP hay không Điều này dùng để kiểm soát việc đồng hồ đếm ngược.
3.3.2.3 Hàm mã hóa và giải mã RSA
# Hàm mã hóa RSA def encrypt_data(data, public_key): return rsa.encrypt(data.encode(), public_key)
Hàm `encrypt_data(data, public_key)` mã hóa dữ liệu (chuỗi data) bằng khóa công khai của ngân hàng, chuyển đổi dữ liệu thành dạng byte để gửi đi an toàn Ngược lại, hàm `decrypt_data(encrypted_data, private_key)` giải mã dữ liệu đã được mã hóa bằng khóa bí mật, trả về chuỗi văn bản ban đầu.
3.3.2.4 Đăng ký mã PIN def register_pin(): Hàm này cho phép người dùng nhập mã PIN, sau đó mã PIN này sẽ được mã hóa và gửi đến ngân hàng để lưu trữ.
# Đăng ký mã PIN def register_pin(): global user_pin entered_pin = register_pin_entry.get()
To validate the PIN, ensure that the entered PIN is exactly 4 digits long and consists only of numbers If the conditions are not met, an error message will be displayed stating, "The PIN must be 4 digits." Once validated, the user PIN is assigned the entered value, and the PIN is then encrypted using the bank's public key for security.
Mã PIN đã được mã hóa bằng phương pháp RSA và hiển thị trên giao diện người dùng Thông báo cho người dùng biết rằng mã PIN đã được gửi an toàn đến ngân hàng.
The decrypted PIN is obtained by using the bank's private key If the decrypted PIN matches the user's input, a success message is displayed, indicating that the PIN has been successfully decrypted and stored at the bank Otherwise, an error message is shown, stating that the PIN is invalid.
Người dùng nhập mã PIN, và hệ thống sẽ kiểm tra mã PIN có hợp lệ không (phải có đúng
Sau khi nhập mã PIN hợp lệ gồm 4 chữ số, mã PIN này sẽ được mã hóa bằng khóa công khai của ngân hàng Khi mã PIN đã được mã hóa, ngân hàng sẽ sử dụng khóa riêng để giải mã và kiểm tra với mã PIN ban đầu Nếu khớp, hệ thống sẽ thông báo thành công và tiếp tục đến bước giao dịch; nếu không, sẽ có thông báo lỗi.
3.3.2.5 Xác thực mã PIN def verify_pin(): Hàm này dùng để xác thực mã PIN khi người dùng thực hiện giao dịch.
The `verify_pin` function manages the PIN verification process, tracking the number of attempts made by the user If the user exceeds the maximum allowed attempts, an error message is displayed, and the application is closed Upon entering the PIN, it is encrypted and sent to the bank for verification If the decrypted PIN matches the user's PIN, an OTP is sent; otherwise, an error message indicates that the PIN is incorrect.
Người dùng nhập mã PIN để xác thực, và hệ thống mã hóa mã PIN bằng khóa công khai của ngân hàng trước khi gửi đến ngân hàng Số lần thử mã PIN được theo dõi, và nếu người dùng nhập sai quá 3 lần (số lần tối đa cho phép), giao dịch sẽ bị hủy Ngân hàng sẽ sử dụng khóa riêng để giải mã mã PIN và kiểm tra tính chính xác với mã PIN đã lưu trữ Nếu mã PIN đúng, hệ thống sẽ tiếp tục gửi mã OTP; nếu sai, người dùng sẽ nhận thông báo lỗi và được yêu cầu thử lại.
3.3.2.6 Gửi mã OTP def send_otp(): Hàm này tạo mã OTP và gửi đến người dùng, đồng thời bắt đầu quá trình đếm ngược thời gian.
The function `send_otp()` generates a one-time password (OTP) using the TOTP algorithm and displays it to the user It initializes the OTP code, sets a timer for 60 seconds, and resets the number of attempts to zero The OTP is shown on the user interface, and the timer is updated to track the remaining time for the OTP's validity.
Mã OTP được tạo bằng thư viện pyotp thông qua phương thức TOTP (Mật khẩu một lần dựa trên thời gian) với bí mật đã được thiết lập trước (otp_secret) Mã này sẽ được hiển thị cho người dùng cùng với một đồng hồ đếm ngược, bắt đầu thời gian hiệu lực trong vòng 60 giây Giao diện nhập OTP sẽ xuất hiện để người dùng có thể nhập mã trong khoảng thời gian cho phép.
3.3.2.7 Cập nhật thời gian đếm ngược def update_timer(): Hàm này cập nhật đồng hồ đếm ngược mỗi giây cho người dùng. def update_timer(): global otp_timer, otp_running, otp_attempts if otp_timer > 0: otp_timer_label.config(text=f"Thời gian còn lại: {otp_timer}s") otp_timer -= 1 root.after(1000, update_timer) else: otp_running = False otp_attempts += 1 if otp_attempts