1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo môn học an ninh mạng xây dựng các giải pháp bảo mật cho website talofood

33 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Xây Dựng Các Giải Pháp Bảo Mật Cho Website Talofood
Tác giả Nguyễn Văn Long, Nguyễn Công Lý, Đặng Ngọc Tân
Người hướng dẫn ThS. Lê Từ Minh Trí
Trường học Trường Đại Học Thủ Dầu Một
Chuyên ngành An Ninh Mạng
Thể loại báo cáo
Năm xuất bản 2024
Thành phố Bình Dương
Định dạng
Số trang 33
Dung lượng 847,85 KB

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN (6)
    • 1.1. Tổng quan về vấn đề được nghiên cứu (6)
    • 1.2. Mục tiêu nghiên cứu (8)
      • 1.2.1. Áp dụng mã hóa mật khẩu (8)
      • 1.2.2. Xây dựng hệ thống giới hạn số lần đăng nhập sai để ngăn chặn tấn công dò mật khẩu 7 1.2.3. Triển khai CAPTCHA (8)
      • 1.2.4. Yêu cầu người dùng xác thực địa chỉ email thông qua mã xác (9)
    • 1.3. Ý nghĩa của nghiên cứu (9)
  • CHƯƠNG 2. CƠ SỞ LÝ THUYẾT (10)
    • 2.1.1. Khái niệm an ninh mạng (10)
    • 2.1.2. Tầm quan trọng của an ninh mạng trong các hệ thống trực tuyến 9 2.1.3. Các nguyên tắc bảo mật cơ bản (10)
    • 2.1.4. Khái niệm về các phương pháp bảo mật (12)
  • CHƯƠNG 3. TRIỂN KHAI CÁC GIẢI PHÁP BẢO MẬT (14)
    • 3.1. Triển khai các giải pháp bảo mật (14)
    • 3.2. Nguyên tắc thiết kế các giải pháp bảo mật (14)
    • 3.3. Triển khai các giải pháp (15)
      • 3.3.1. Mã khóa mật khẩu (15)
        • 3.3.1.1. Tổng quan về mã hóa mật khẩu bằng Bcrypt (15)
        • 3.3.1.2. Triển khai trong dự án (17)
      • 3.3.2. Chức năng Captcha (18)
      • 3.3.3. Chức năng khóa tài khoản khi nhập sai nhiều lần (20)
        • 3.3.3.1. Tổng quan về chức năng (20)
        • 3.3.3.2. Triển khai trong dự án (22)
      • 3.3.4. Chức năng xác thực người dùng đăng ký qua OTP (23)
        • 3.3.4.1. Tổng quan về chức năng (23)
        • 3.3.4.2. Triển khai trong dự án (24)
      • 3.3.5. Chức năng khôi phục dữ liệu (26)
        • 3.3.5.1. Tổng quan về chức năng (26)
        • 3.3.5.2. Triển khai trong dự án (27)
  • CHƯƠNG 4. KẾT LUẬN (31)
    • 4.1. Kết quả đạt được (31)
    • 4.2. Hạn chế và những điểm chưa hoàn thiện (31)
    • 4.3. Hướng phát triển của đề tài (31)
  • TÀI LIỆU THAM KHẢO (33)

Nội dung

Mục tiêu nghiên cứuMục tiêu của nghiên cứu là xây dựng và áp dụng các biện pháp bảo mật hiệuquả cho website Talofood nhằm bảo vệ dữ liệu người dùng, đảm bảo an toàn hệthống và duy trì ho

TỔNG QUAN

Tổng quan về vấn đề được nghiên cứu

Trong bối cảnh thương mại điện tử phát triển mạnh mẽ, các doanh nghiệp trực tuyến, đặc biệt trong lĩnh vực thực phẩm, đang đối mặt với thách thức bảo mật thông tin Website bán hàng không chỉ là công cụ kinh doanh mà còn lưu trữ thông tin quan trọng như dữ liệu cá nhân, lịch sử giao dịch và thông tin thanh toán của khách hàng Do đó, việc xây dựng các biện pháp bảo mật hiệu quả là điều cần thiết để bảo vệ hệ thống khỏi các mối đe dọa an ninh mạng.

Website Talofood, nền tảng cung cấp đồ ăn nhanh trực tuyến, đang phải đối mặt với nhiều thách thức liên quan đến an toàn dữ liệu cá nhân và thông tin tài chính của khách hàng Để duy trì sự ổn định và tính sẵn sàng của hệ thống, Talofood cần đối phó với các mối đe dọa từ tấn công mạng như tấn công từ chối dịch vụ (DDoS), đánh cắp dữ liệu (phishing) và tấn công vào cơ sở dữ liệu (SQL Injection), những rủi ro này có thể gây ra hậu quả nghiêm trọng.

Nhiều website thương mại điện tử đã gặp phải vấn đề bảo mật nghiêm trọng, gây thiệt hại về tài chính và uy tín Điều này khẳng định tầm quan trọng của việc áp dụng các biện pháp bảo mật tiên tiến Đối với Talofood, việc xây dựng hệ thống bảo mật không chỉ đáp ứng tiêu chuẩn an ninh mạng mà còn đảm bảo hoạt động kinh doanh liên tục và hiệu quả.

Nội dung nghiên cứu này sẽ tập trung vào:

 Phân tích các rủi ro bảo mật chính mà website Talofood có thể gặp phải.

 Đề xuất các biện pháp bảo mật hiện đại như mã hóa dữ liệu, xác thực đa yếu tố, và bảo mật ứng dụng web (WAF).

 Hướng dẫn áp dụng các biện pháp bảo mật vào thực tiễn quản lý và vận hành website của Talofood.

Mục tiêu xây dựng hệ thống bảo mật cho website Talofood nhằm bảo vệ dữ liệu khách hàng và nâng cao trải nghiệm người dùng, từ đó củng cố vị thế của Talofood trong thị trường đồ ăn nhanh trực tuyến.

Mục tiêu nghiên cứu

Mục tiêu nghiên cứu là phát triển và triển khai các biện pháp bảo mật hiệu quả cho website Talofood, nhằm bảo vệ dữ liệu người dùng, đảm bảo an toàn hệ thống và duy trì hoạt động ổn định Nghiên cứu sẽ tập trung vào các nội dung chính liên quan đến bảo mật.

Tìm hiểu các phương pháp bảo mật cơ bản và hiện đại

Nghiên cứu các phương pháp bảo mật phổ biến trong hệ thống thương mại điện tử là rất quan trọng để đảm bảo an toàn cho người dùng Đánh giá tính khả thi và hiệu quả của từng phương pháp bảo mật sẽ giúp cải thiện website Talofood, từ đó nâng cao trải nghiệm khách hàng và bảo vệ thông tin cá nhân Việc áp dụng các biện pháp như mã hóa dữ liệu, xác thực hai yếu tố và tường lửa sẽ góp phần tăng cường bảo mật cho nền tảng thương mại điện tử này.

1.2.1.Áp dụng mã hóa mật khẩu

Sử dụng các thuật toán mã hóa hiện đại như bcrypt hoặc Argon2 là cách hiệu quả để đảm bảo an toàn cho mật khẩu người dùng Việc đánh giá hiệu quả của các phương pháp mã hóa này giúp ngăn chặn tình trạng đánh cắp và giải mã trái phép, bảo vệ thông tin nhạy cảm một cách tối ưu.

Thiết lập cơ chế khóa tài khoản khi đăng nhập sai quá nhiều lần

1.2.2.Xây dựng hệ thống giới hạn số lần đăng nhập sai để ngăn chặn tấn công dò mật khẩu.

Cung cấp tùy chọn mở khóa tài khoản qua xác thực email để đảm bảo tính bảo mật và tiện lợi.

Tích hợp CAPTCHA vào các biểu mẫu đăng nhập và đăng ký giúp ngăn chặn các cuộc tấn công tự động từ bot Đồng thời, cần đảm bảo rằng việc sử dụng CAPTCHA vẫn thân thiện và dễ dàng cho người dùng.

Xác thực email khi đăng ký tài khoản

1.2.4.Yêu cầu người dùng xác thực địa chỉ email thông qua mã xác minh hoặc liên kết xác nhận. Đảm bảo chỉ những tài khoản đã xác thực mới được kích hoạt và sử dụng dịch vụ.

1.2.5.Khôi phục dữ liệu khi bị mất (Data Restore)

Thiết kế hệ thống sao lưu và khôi phục dữ liệu định kỳ là cần thiết để giảm thiểu tổn thất khi xảy ra sự cố Việc đảm bảo khôi phục dữ liệu nhanh chóng và hiệu quả sẽ giúp duy trì hoạt động liên tục của website.

Ý nghĩa của nghiên cứu

Bài tiểu luận này nhằm xây dựng hệ thống bảo mật toàn diện cho website Talofood, góp phần bảo vệ dữ liệu khách hàng và nâng cao uy tín cũng như hiệu quả kinh doanh của doanh nghiệp.

CƠ SỞ LÝ THUYẾT

Khái niệm an ninh mạng

An ninh mạng là lĩnh vực công nghệ thông tin chuyên bảo vệ hệ thống máy tính, mạng, phần mềm và dữ liệu khỏi các mối đe dọa bên ngoài Những mối đe dọa này bao gồm tấn công của hacker, mã độc như malware và ransomware, cùng với các lỗi hệ thống có thể dẫn đến rò rỉ thông tin hoặc gián đoạn hoạt động.

Mục tiêu của an ninh mạng là bảo vệ thông tin và tài nguyên kỹ thuật số, đồng thời đảm bảo hoạt động ổn định của các hệ thống trực tuyến Ngoài ra, an ninh mạng còn bao gồm việc xây dựng chính sách bảo mật và nâng cao nhận thức về bảo vệ dữ liệu trong tổ chức và cộng đồng.

Với sự phát triển mạnh mẽ của internet và công nghệ trực tuyến, an ninh mạng đã trở thành vấn đề quan trọng không chỉ đối với các doanh nghiệp lớn mà còn ảnh hưởng đến mọi khía cạnh trong cuộc sống hàng ngày, bao gồm mua sắm, giao dịch ngân hàng trực tuyến, cũng như các lĩnh vực thiết yếu như y tế, giáo dục và chính phủ.

Tầm quan trọng của an ninh mạng trong các hệ thống trực tuyến 9 2.1.3 Các nguyên tắc bảo mật cơ bản

Bảo vệ thông tin cá nhân và dữ liệu nhạy cảm là rất quan trọng trong thời đại kỹ thuật số, khi mà dữ liệu như thông tin tài khoản ngân hàng, hồ sơ sức khỏe và dữ liệu kinh doanh đều được lưu trữ trực tuyến Nếu không có biện pháp bảo vệ mạng thích hợp, tin tặc có thể lợi dụng thông tin này để thực hiện các hành vi xấu như lừa đảo, tống tiền hoặc bán dữ liệu cho bên thứ ba Do đó, đảm bảo an ninh mạng không chỉ bảo vệ quyền riêng tư mà còn giúp tránh tổn thất về tài chính và uy tín Hơn nữa, các tổ chức và doanh nghiệp ngày càng phụ thuộc vào công nghệ để duy trì hoạt động, và một cuộc tấn công mạng có thể gây gián đoạn nghiêm trọng, dẫn đến thiệt hại lớn về kinh tế và danh tiếng.

Tấn công ransomware có thể mã hóa toàn bộ dữ liệu doanh nghiệp và yêu cầu khoản tiền chuộc lớn để khôi phục Để ngăn chặn những tình huống này, việc triển khai hệ thống an ninh mạng hiệu quả là rất cần thiết, giúp đảm bảo hoạt động liên tục cho doanh nghiệp.

Xây dựng lòng tin và uy tín với khách hàng là yếu tố quan trọng trong an ninh mạng Một tổ chức có hệ thống bảo mật mạnh mẽ sẽ tạo sự yên tâm cho khách hàng khi sử dụng sản phẩm hoặc dịch vụ Ngược lại, các vi phạm dữ liệu có thể làm mất niềm tin của khách hàng, dẫn đến việc họ chuyển sang các nhà cung cấp khác.

Tuân thủ quy định pháp luật về bảo mật dữ liệu là rất quan trọng, đặc biệt ở các quốc gia và khu vực có quy định nghiêm ngặt như Quy định chung về bảo vệ dữ liệu (GDPR) tại châu Âu và Đạo luật về trách nhiệm bảo vệ thông tin y tế (HIPAA) ở Mỹ.

Các tổ chức cần thực hiện các biện pháp bảo vệ thông tin nghiêm ngặt để tuân thủ quy định Vi phạm các quy định này có thể dẫn đến tổn thất tài chính nghiêm trọng và ảnh hưởng tiêu cực đến uy tín lâu dài của tổ chức.

2.1.3 Các nguyên tắc bảo mật cơ bản

An ninh mạng được xây dựng dựa trên ba nguyên tắc bảo mật chính, còn gọi là mô hình CIA (Confidentiality, Integrity, Availability):

Tính bảo mật (Confidentiality) là yếu tố thiết yếu trong việc bảo vệ thông tin, đảm bảo rằng chỉ những người hoặc hệ thống được ủy quyền mới có quyền truy cập Việc để dữ liệu nhạy cảm rơi vào tay kẻ xấu có thể dẫn đến việc sử dụng sai mục đích và gây ra hậu quả nghiêm trọng Để bảo vệ thông tin, cần áp dụng các phương pháp bảo vệ hiệu quả.

● Mã hóa dữ liệu: Đảm bảo rằng dữ liệu được bảo vệ ngay cả khi bị đánh cắp.

● Xác thực đa yếu tố (MFA): Yêu cầu nhiều bước xác minh khi đăng nhập để ngăn chặn truy cập trái phép.

● Phân quyền truy cập: Chỉ cung cấp quyền truy cập cần thiết dựa trên vai trò của người dùng.

Tính toàn vẹn (Integrity) đảm bảo rằng dữ liệu không bị thay đổi hoặc xóa bỏ mà không có sự cho phép, điều này rất quan trọng trong các hệ thống yêu cầu dữ liệu chính xác và đáng tin cậy như tài chính và y tế Để bảo vệ tính toàn vẹn của dữ liệu, cần áp dụng các biện pháp kiểm soát truy cập, mã hóa, và thường xuyên kiểm tra và sao lưu dữ liệu.

● Sử dụng chữ ký số (Digital Signature): Xác minh rằng dữ liệu hoặc tài liệu không bị thay đổi.

● Kiểm tra checksum: So sánh mã kiểm tra để phát hiện thay đổi bất thường.

● Sao lưu dữ liệu: Đảm bảo rằng dữ liệu gốc luôn có bản sao dự phòng đáng tin cậy.

Tính sẵn sàng (Availability) là nguyên tắc quan trọng nhằm đảm bảo hệ thống và dữ liệu luôn sẵn có cho người dùng một cách kịp thời, đặc biệt trong các tình huống quan trọng Sự gián đoạn của hệ thống có thể dẫn đến tổn thất lớn cho cả tổ chức và người dùng Để duy trì tính sẵn sàng, cần thực hiện các biện pháp bảo trì và quản lý hệ thống hiệu quả.

● Sao lưu định kỳ: Đảm bảo dữ liệu luôn được khôi phục nhanh chóng khi cần.

● Bảo vệ chống tấn công DDoS: Ngăn chặn tình trạng hệ thống bị quá tải bởi lưu lượng truy cập độc hại.

● Hệ thống dự phòng: Triển khai các máy chủ dự phòng để thay thế khi máy chủ chính gặp sự cố.

Khái niệm về các phương pháp bảo mật

Các biện pháp bảo mật bao gồm các phương pháp, công nghệ và quy trình thiết yếu để bảo vệ dữ liệu, hệ thống và ứng dụng khỏi các mối đe dọa từ cả bên trong và bên ngoài Dưới đây là các khái niệm chi tiết về từng biện pháp bảo mật được áp dụng trong nghiên cứu.

Mã hóa mật khẩu là quá trình chuyển đổi mật khẩu của người dùng thành chuỗi ký tự đặc biệt không thể đọc được Các thuật toán mã hóa hiện đại như bcrypt, SHA-256 và Argon2 được sử dụng để tăng cường bảo mật và giảm thiểu nguy cơ bị tấn công giải mã trái phép trong trường hợp cơ sở dữ liệu bị xâm nhập.

Khóa tài khoản khi nhập sai mật khẩu quá nhiều lần là biện pháp hiệu quả để ngăn chặn các cuộc tấn công dò mật khẩu Khi người dùng vượt quá số lần nhập sai quy định, tài khoản sẽ bị tạm thời khóa hoặc yêu cầu xác minh danh tính qua email để mở khóa Cơ chế này giúp bảo vệ tài khoản khỏi truy cập trái phép.

CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) là một bài kiểm tra tự động giúp phân biệt giữa người dùng thật và bot Nó thường được áp dụng để ngăn chặn các cuộc tấn công tự động như spam và brute force, yêu cầu người dùng thực hiện các hành động mà bot khó có thể thực hiện, chẳng hạn như nhận diện hình ảnh hoặc nhập mã ký tự.

Xác thực email khi đăng ký tài khoản

Xác thực email là bước quan trọng trong quá trình đăng ký tài khoản, nơi người dùng nhận mã hoặc liên kết xác nhận gửi đến địa chỉ email của mình Chỉ khi hoàn tất xác thực, tài khoản mới được kích hoạt, giúp đảm bảo tính hợp lệ và ngăn chặn việc đăng ký tự động từ bot.

Khôi phục dữ liệu khi bị mất là một biện pháp quan trọng để bảo vệ dữ liệu hệ thống trước các sự cố như tấn công mạng, lỗi phần cứng và sai sót của con người Hệ thống thực hiện việc sao lưu dữ liệu định kỳ và lưu trữ tại vị trí an toàn Khi sự cố xảy ra, dữ liệu có thể được khôi phục nhanh chóng, đảm bảo hoạt động liên tục của website.

TRIỂN KHAI CÁC GIẢI PHÁP BẢO MẬT

Triển khai các giải pháp bảo mật

Trong thời đại số hiện nay, bảo mật dữ liệu người dùng và hệ thống là một yếu tố then chốt Các giải pháp bảo mật được triển khai nhằm bảo vệ an toàn thông tin và tăng cường lòng tin của người dùng đối với các ứng dụng, với các mục tiêu chính là đảm bảo an ninh và bảo vệ quyền riêng tư.

Bảo vệ thông tin người dùng là rất quan trọng, đặc biệt là với các dữ liệu nhạy cảm như mật khẩu, email và số điện thoại Để ngăn chặn rò rỉ hoặc khai thác thông tin bởi các đối tượng xấu, việc mã hóa mật khẩu bằng thuật toán Bcrypt là một giải pháp hiệu quả, giúp giảm thiểu nguy cơ lộ mật khẩu trong trường hợp cơ sở dữ liệu bị xâm nhập.

Để ngăn chặn hành vi tấn công gian lận, việc khóa tài khoản sau 5 lần nhập sai mật khẩu giúp giảm thiểu rủi ro từ các cuộc tấn công brute-force Hơn nữa, xác thực tài khoản bằng mã OTP gửi qua email đảm bảo rằng chỉ những người dùng có quyền truy cập vào email mới có thể hoàn tất quá trình đăng ký hoặc khôi phục tài khoản.

Khôi phục hệ thống khi gặp sự cố là rất quan trọng, và phương pháp khôi phục dữ liệu từ file backup trong SQL Management Studio giúp đảm bảo khả năng phục hồi nhanh chóng Điều này rất cần thiết khi xảy ra sự cố như mất dữ liệu, tấn công mạng hoặc lỗi hệ thống, giúp giảm thiểu thời gian gián đoạn và thiệt hại do mất dữ liệu, đồng thời đảm bảo tính liên tục cho hoạt động của website.

Tăng cường trải nghiệm người dùng thông qua các biện pháp bảo mật là rất quan trọng, không chỉ bảo vệ hệ thống mà còn mang lại sự yên tâm cho người sử dụng dịch vụ Sự minh bạch trong quy trình bảo mật, như thông báo rõ ràng khi tài khoản bị khóa hoặc khi có mã OTP, giúp tạo dựng lòng tin và cảm giác thân thiện với người dùng.

Nguyên tắc thiết kế các giải pháp bảo mật

Tính đơn giản và hiệu quả:

Các giải pháp bảo mật nên được thiết kế để dễ dàng triển khai và không làm phức tạp quy trình phát triển Chẳng hạn, thuật toán mã hóa Bcrypt có cơ chế tích hợp sẵn, giúp giảm thời gian lập trình và đảm bảo độ phức tạp cần thiết cho việc mã hóa mật khẩu.

Bảo mật theo tầng (Defense in Depth)

Để tăng cường an toàn, hãy áp dụng nhiều lớp bảo mật thay vì chỉ dựa vào một lớp duy nhất Ví dụ, kết hợp mã hóa mật khẩu, khóa tài khoản sau nhiều lần nhập sai, và xác thực email bằng OTP Đồng thời, ưu tiên bảo vệ thông tin nhạy cảm để đảm bảo an toàn tối đa cho dữ liệu.

Thông tin nhạy cảm như mật khẩu và email của người dùng được bảo vệ bằng các phương pháp mã hóa mạnh mẽ, không bao giờ lưu trữ dưới dạng văn bản thuần Chúng tôi chỉ lưu trữ các thông tin cần thiết, nhằm giảm thiểu nguy cơ rủi ro khi hệ thống bị xâm nhập.

Khả năng khôi phục và duy trì liên tục

Hệ thống thiết kế cần có khả năng sao lưu dữ liệu định kỳ và khôi phục nhanh chóng khi xảy ra sự cố Công cụ sao lưu file của SQL Management Studio là một lựa chọn đáng tin cậy, giúp đảm bảo tính toàn vẹn và dễ dàng phục hồi dữ liệu.

Triển khai các giải pháp

3.3.1.1 Tổng quan về mã hóa mật khẩu bằng Bcrypt

Bcrypt là một thuật toán mã hóa mật khẩu mạnh mẽ, nhằm bảo vệ mật khẩu người dùng khỏi các cuộc tấn công phổ biến như brute-force và rainbow table Thuật toán này được phát triển bởi Niels Provos và David Mazières, và lần đầu tiên được công bố vào năm 1999.

Hình 3.1: Mã hóa mật khẩu bằng Bcrypt

Bcrypt sử dụng thuật toán mã hóa Blowfish để chuyển đổi mật khẩu thành chuỗi băm phức tạp, bảo vệ mật khẩu khỏi việc khôi phục Mỗi mật khẩu được Bcrypt tự động tạo ra một chuỗi salt ngẫu nhiên, giúp ngăn chặn các cuộc tấn công rainbow table và đảm bảo tính duy nhất cho mỗi băm Ngoài ra, Bcrypt cho phép điều chỉnh độ khó của việc băm thông qua tham số cost; cost càng cao, thời gian và tài nguyên cần thiết để băm mật khẩu càng lớn, từ đó tăng cường bảo mật và chống lại các cuộc tấn công brute-force.

Các chức năng của Bcrypt:

Mã hóa mật khẩu (Password Hashing):

Bcrypt là một phương pháp mã hóa giúp chuyển đổi mật khẩu gốc thành chuỗi hash không thể đảo ngược Việc lưu trữ chuỗi hash này trong cơ sở dữ liệu thay vì mật khẩu gốc giúp bảo vệ thông tin người dùng, đặc biệt khi cơ sở dữ liệu bị xâm phạm.

Tăng cường bảo mật thông qua Salt:

Salt là một chuỗi ngẫu nhiên được thêm vào mật khẩu trước khi băm, giúp đảm bảo mỗi hash là duy nhất, ngay cả khi các mật khẩu trùng lặp.

Bảo vệ chống brute-force:

Bcrypt cho phép điều chỉnh "Cost Factor", giúp tăng thời gian xử lý cho mỗi lần mã hóa hoặc kiểm tra mật khẩu, từ đó làm giảm tốc độ thử mật khẩu trong các cuộc tấn công brute-force.

So sánh mật khẩu an toàn:

Bcrypt cho phép kiểm tra mật khẩu người dùng bằng cách so sánh mật khẩu dạng văn bản với hash đã lưu trữ Quá trình này diễn ra an toàn, đảm bảo không tiết lộ thông tin có thể bị khai thác.

3.3.1.2 Triển khai trong dự án

Hash mật khẩu khi đăng ký tài khoản:

Mã hóa mật khẩu trước khi lưu vào cơ sở dữ liệu:

Khi người dùng hoàn tất quá trình đăng ký, mật khẩu của họ sẽ được mã hóa bằng phương pháp BCrypt.Net.BCrypt.HashPassword trước khi được lưu trữ an toàn trong cơ sở dữ liệu.

 Mã salt được tạo ra để tăng độ an toàn bằng phương thức BCrypt.Net.BCrypt.GenerateSalt.

Hình 3.2: Mã hóa mật khẩu bằng BCrypt với salt động và chi phí tính toán

 Mật khẩu sau khi mã hóa (hashedPassword) được lưu vào trường password của bảng Account.

Kiểm tra mật khẩu khi đăng nhập:

Sử dụng BCrypt.Net.BCrypt.Verify để kiểm tra mật khẩu:

 Khi người dùng nhập mật khẩu, ứng dụng sẽ so sánh mật khẩu đã nhập với mật khẩu mã hóa lưu trong cơ sở dữ liệu.

 Chỉ cần gọi BCrypt.Net.BCrypt.Verify(password, user.password), bcrypt sẽ tự động xử lý cả salt và hash được lưu trữ để kiểm tra mật khẩu.

Hình 3.3: Xác thực mật khẩu người dùng bằng BCrypt

Kiểm tra tiền tố hash để xác định loại mã hóa:

Nếu hash mật khẩu trong cơ sở dữ liệu có tiền tố tương thích với chuẩn bcrypt như $2a$, $2b$, thì ứng dụng sẽ sử dụng BCrypt.Net.BCrypt.Verify để thực hiện việc xác thực.

Hình 3.4: Kiểm tra định dạng và xác thực mật khẩu mã hóa bằng BCrypt

Captcha (Completely Automated Public Turing test to tell Computers and Humans Apart) là công nghệ bảo mật giúp ngăn chặn các cuộc tấn công tự động vào hệ thống trực tuyến Chức năng Captcha đảm bảo rằng người dùng thực hiện thao tác đăng nhập hoặc đăng ký là con người, qua đó bảo vệ hệ thống khỏi các phần mềm tự động và hành vi xâm nhập trái phép.

Trong dự án này, mã Captcha đã được tích hợp vào các biểu mẫu đăng nhập và đăng ký, yêu cầu người dùng nhập đúng mã để tiếp tục thao tác Điều này giúp nâng cao tính bảo mật cho hệ thống.

Captcha sử dụng hình ảnh mã hóa chữ số hoặc các câu hỏi đơn giản để xác minh người dùng mà không gây cản trở Trong dự án của bạn, Captcha được triển khai nhằm đảm bảo tính xác thực của người dùng.

 Ngăn chặn các cuộc tấn công brute force, nơi hacker thử tất cả các mật khẩu có thể.

 Cải thiện bảo mật trong việc xác thực tài khoản người dùng khi đăng nhập hoặc đăng ký.

3.3.2.2 Triển khai trong dự án

Sử dụng thư viện Captcha CaptchaMvc.HtmlHelpers:

@Html.MathCaptcha() là một helper dùng để hiển thị CAPTCHA toán học trong form, yêu cầu người dùng giải một bài toán đơn giản để xác thực không phải robot Phương thức này có thể được cung cấp bởi thư viện CAPTCHA như MvcCaptcha hoặc CaptchaMvc, hoặc được phát triển tùy chỉnh trong dự án.

Chức năng và hoạt động

 MathCaptcha sẽ tự động tạo ra một câu hỏi toán học, chẳng hạn như "5 + 3

= ?" và yêu cầu người dùng điền vào ô đáp án.

 Sau khi người dùng điền đáp án và gửi form, hệ thống sẽ kiểm tra xem người dùng có trả lời đúng hay không.

Kiểm tra Captcha trong form đăng nhập:

Trong phương thức Dangnhap, hệ thống kiểm tra tính hợp lệ của Captcha trước khi xác thực tài khoản và mật khẩu của người dùng Nếu Captcha không hợp lệ, thông báo lỗi "Vui lòng nhập Captcha hợp lệ" sẽ được hiển thị và người dùng phải nhập lại Captcha đúng.

 Nếu Captcha hợp lệ, hệ thống sẽ tiếp tục thực hiện các bước kiểm tra tài khoản và mật khẩu của người dùng.

Hình 3.7: Lỗi đăng nhập thông tin tài khoản nhưng không nhập Captcha

Kiểm tra Captcha trong form đăng ký:

Trước khi thực hiện thao tác đăng ký trong phương thức DangKy (POST), hệ thống kiểm tra tính hợp lệ của Captcha bằng cách sử dụng this.IsCaptchaValid("Captcha không hợp lệ") Nếu Captcha không hợp lệ, người dùng sẽ nhận được thông báo lỗi "Captcha không hợp lệ" và được yêu cầu nhập lại Captcha.

Nếu Captcha được xác nhận hợp lệ, hệ thống sẽ tiến hành kiểm tra thông tin đăng ký của người dùng, bao gồm xác minh mật khẩu và email Khi các thông tin này được xác thực, một mã OTP sẽ được gửi để tiếp tục quá trình đăng ký.

3.3.3 Chức năng khóa tài khoản khi nhập sai nhiều lần

3.3.3.1 Tổng quan về chức năng

Hình 3.8: Khóa tài khoản do đăng nhập sai quá 5 lần

Ngày đăng: 20/12/2024, 22:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

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

TÀI LIỆU LIÊN QUAN

w