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

SỬ DỤNG THUẬT TOÁN BCRYPT để MÃ HÓA MẬT KHẨU

14 158 0

Đ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

Định dạng
Số trang 14
Dung lượng 716,14 KB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── BÁO CÁO MƠN: NHẬP MƠN AN TỒN THƠNG TIN SỬ DỤNG THUẬT TỐN BCRYPT ĐỂ MÃ HĨA MẬT KHẨU Sinh viên thực :Phan Văn Chương Trần Quốc Giang Trần Bá Mạnh Hà Nội, tháng 06 năm 2021 20183490 20183517 20183589 MỤC LỤC LÍ DO CHỌN ĐỀ TÀI Trong thời đại nay, bảo mật thông tin vô quan trọng Việc bị lộ thông tin xuất tràn lan, đặc biệt việc bị lộ mật Nếu mật người dùng bị rị rỉ, Những kẻ cơng sử dụng tài khoản đăng nhập để giả mạo người dùng thực nhiều dịch vụ khác mà người dùng sử dụng từ ngân hàng trang web mua sắm Ví dụ, điều tra Keeper thực hiện, có 87% người từ 18 đến 30 tuổi phải tái sử dụng lại mật Điều có nghĩa là, Nễu lỡ mật từ dịch vụ bạn sử dụng bị rị rỉ ngồi, ảnh hưởng khơng giới hạn dịch vụ bạn, mà kẻ cơng cịn truy cập trái phép vào dich vụ sử dụng người dùng Cho dù có cố gắng để thực biện pháp phịng ngừa khơng thể đảm bảo sở liệu khơng thể xâm nhập Vì vậy, thay việc nghĩ cách để tăng tính an tồn cho sở liệu, mã hóa mật để tội phạm mạng khơng thể giải mã Để mã hóa mật khẩu, cần băm mật trước đưa vào database Vậy lại sử dụng thuật toán Bcrypt thay MD5, SHA-1 ? MD5 SHA1 chứng minh có đụng độ, nghĩa password khác nhau, hash MD5 SHA-1 chuỗi, khơng thể lưu vào database Thêm nữa, thuật tốn Bcrypt có chậm thuật toán khác như MD5, đổi lại giải vấn đề hack từ điển… thuật tốn khác đối phó với cấp độ tiến hóa vi xử lý máy tính Từ đó, chúng em định thực đề tài : “SỬ DỤNG THUẬT TOÁN BCRYPT ĐỂ MÃ HĨA MẬT KHẨU” để bảo vệ mật khơng bị rị rỉ bị tội phậm mạng công vào sở liệu CHƯƠNG PHÂN TÍCH ĐỀ TÀI 1.1 Bcrypt ? BCrypt thuật tốn mã hóa mật thiết kế Niels Provos David Mazières BCrypt đánh giá bảo mật an toàn so với MD5 SHA lần thực băm lại cho giá trị khác nhau, giải vấn đề hack từ điển thuật tốn khác đối phó với cấp độ tiến hóa vi xử lý máy tính, việc khiến cho việc dị tìm mật trở nên khó 1.2 Các quy trình Bcrypt để mã hóa mật Để mã hóa mật khẩu, cần phải có hai thứ: salting hashing Hashing: Hashing kỹ thuật quan trọng có tính ứng dụng cao, đặc biệt lĩnh vực bảo mật Hash ( hay gọi “băm”)  là q trình biến đầu vào nội dung có kích thước, độ dài sử dụng thuật tốn, cơng thức tốn học để biến thành đầu tiêu chuẩn có độ dài định Q trình sử dụng Hàm băm (Hash function) Hàm băm nhận vào chuỗi có kích thước xuất chuỗi có độ dài cố định Vd: Giả dụ, bạn tải video Youtube về, sau cho chạy qua hàm băm có tên MD5 trả chuỗi dài 32 ký tự, bạn tải ảnh mạng về, cho chạy qua hàm MD5, thứ bạn nhận chuỗi dài 32 ký tự Thậm chí, bạn cho chạy từ “apple” qua hàm hash MD5 kia, kết “1f3870be274 f6c49b3e31a0c6728957f”, lại chuỗi có 32 ký tự Những thuật toán băm khác hoạt động tương tự vậy, bạn cho thứ vào hàm, đầu ln chuỗi có độ dài định Tác dụng Hash: + Kiểm tra toàn vẹn tệp tin Như đặc điểm hàm băm, giá trị cho giá trị băm Vậy nên ta đối chiếu tệp tin ta tải mạng với gốc cách so sánh giá trị băm chúng với Nếu chúng có chung giá trị băm tức tệp tin bạn trùng với gốc, không tệp tin bạn bị sửa đổi bị hỏng Một số trường hợp, tệp tin bạn tải bị can thiệp bên thứ ba trước đến thiết bị bạn chúng cài mã độc vào tệp tin Việc kiểm tra giá trị băm giúp đảm bảo tệp tin bạn an tồn + Xác minh mật Có điều hay bạn nên biết, thiết kế sở liệu đại, thứ lưu mật bạn dạng văn đơn mà giá trị hash chúng Khi bạn nhập mật khẩu, mật bạn chạy qua hàm hash, sau so sánh với giá trị băm sở liệu để định bạn có chứng thực để sử dụng dịch vụ không Điều làm giảm đáng kể thiệt hại sở liệu bị công, bị lộ ngồi giá trị băm mật bạn Để an tồn hơn, hệ thống cịn thêm giá trị muối (salt) vào mật gốc bạn, cho chạy qua hàm băm, sau lưu vào sở liệu Vậy nên kể giá trị băm mật bạn bị lộ bị giải mã, kẻ cơng chưa thể có mật thực bạn thêm vào giá trị "salt" Tuy vậy, hashing chưa đủ, hàm băm ln tạo kết cho mật cụ thể, chúng dự đoán Nếu bạn băm mật khẩu, tội phạm mạng tìm mật ban đầu Salting : Salting khái niệm thường liên quan đến băm mật khẩu. Về bản, giá trị thêm vào cuối mật để tạo giá trị băm khác nhau. Điều thêm lớp bảo mật cho trình băm, đặc biệt chống lại công bạo lực. Một công bạo lực nơi máy tính botnet cố gắng kết hợp có chữ số mật tìm thấy Salt giá trị thu sau salting, cách thêm một salt vào cuối mật sau băm nó, ta phức tạp trình bẻ mật Nếu kẻ cơng biết salt của mình, vơ giá trị. Họ thêm vào cuối biến thể mật mà họ cố gắng cuối tìm thấy 1.3 Độ bảo mật Bcrypt BCrypt hàm băm lấy tên kết hợp với: “B” xuất phát từ Blowfish Cipher, mật mã khối đối xứng phát triển vào năm 1993 Bruce Schneier, thiết kế thuật tốn mã hóa nguồn mở mục đích chung “Crypt” tên hàm băm mặc định kèm với hệ điều hành Unix Hàm băm Crypt viết với phần cứng Unix ban đầu, có nghĩa vào thời điểm phần cứng khơng thể băm đủ mật giây để thiết kế ngược lại mật băm cách sử dụng hàm Crypt Vào thời điểm phát triển, Crypt băm 10 mật giây Với phần cứng đại, chức Crypt sử dụng để băm hàng chục nghìn mật giây Điều làm cho việc phá mật băm Crypt trở thành hoạt động dễ dàng hacker thời đại BCrypt lặp lại Blowfish Crypt cách đưa thuật toán băm thực trở nên chậm phần cứng nhanh Mật BCrypthashed mở rộng tương lai, phần cứng cố gắng băm BCrypt mạnh cần nhiều thao tác Kết là, ngày hacker gần viết đoạn mã thực đủ số băm để khớp với mật phức tạp cách Bcrypt xuất phát từ mật mã khối Blowfish, sử dụng bảng tra cứu từ nhớ để tạo giá trị băm Điều đồng nghĩa với việc phải sử dụng số dung lượng nhớ định để tạo giá trị băm Việc thực CPU, trở nên cồng kềnh nhiều sử dụng GPU hạn chế nhớ Bcrypt đời 14 năm, dựa mật mã có tuổi đời 20 năm Nó xem xét thử nghiệm kỹ nhờ coi tiêu chuẩn cho việc băm mật Nhược điểm : Thực có điểm yếu, đơn vị xử lý FPGA Khi bcrypt bắt đầu phát triển, mối đe dọa chủ yếu ASICs chuyên biệt xây dựng nhằm mục đích chun cơng hàm băm Ngày ASICs GPUs (phương thức cơng bruteforce thực tế chạy GPU, khơng hồn tồn song song) có giá bán vừa túi tiền lý tưởng trình đa luồng cơng bruteforce FPGAs (Field Programmable Gate Arrays) tương tự GPUs việc quản lý nhớ lại khác Bruteforcing bcrypt thực hiệu chip so với GPUs, mật dủ dài khơng thể bị phá phương thức CHƯƠNG QUY TRÌNH CÀI ĐẶT VÀ THƯ VIỆN SỬ DỤNG 2.1 Quy trình cài đặt Bước : Đầu tiên, cài đặt thư viện bcrypt Dùng đoạn code để sử dụng bcrypt : Bước : Đặt giá trị cho saltRound Việc đặt giá trị saltRound quan trọng Khi giá trị saltRound cao thời gian băm nhiều thời gian Ta phải chọn số đủ cao để ngăn chặn công tội phạm mạng phải vừa đủ nhỏ để người dùng khơng phải đợi q trình băm mật lâu Bước 3: Khai báo biến mật Bước : Tạo salt Chúng ta salt hash mật hàm hai hàm riêng biệt Ở đây, tách salt hash thành hai hàm Hàm genSalt dùng để tạo salt, truyền vào hai tham số : saltRound, hàm Callback có lỗi salt trả Bước : Hash mật Ta thêm hàm hash mật vào hàm genSalt Chúng ta truyền vào hàm hash tham số: mật cần mã hóa, salt hàm Callback có lỗi hash trả Khi hash trả về, lưu vào sở liệu 2.2 Kết hợp salt hash : Chúng ta kết hợp salt hash lại thành hàm sau : 2.3 So sánh mật hash: Sau tạo hash lưu vào database, người dùng đăng nhập hệ thống chúng ta, cần phải so sánh mật mà người dùng nhập vào hash lưu CSDL Sử dụng hàm compare thư viện bcrypt để so sánh cách truyền vào tham số : - Mật cần so sánh - Hash lưu trữ sở liệu - Hàm Callback có lỗi kết so sánh ( trả true mật khớp với hash trả false khơng ) Ví dụ: 2.4 Hồn thiện code : Đoạn code dùng để salt hash mật người dùng lưu trữ vào PostgreSQL 10 So sánh hash lưu PostgreSQL với mật người dùng nhập: 11 CHƯƠNG XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA 3.1 Kết chương trình minh họa 3.2 Giao diện chương trình 12 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 4.1 Kết luận Trong trình hồn thành tập lớn, nhóm chúng em tiếp thu nhiều kinh nghiệm môn học An tồn thơng tin, đặc biệt việc mã hóa hóa mật người dùng để lưu trữ vào sở liệu Kết thúc đề tài bọn em hiểu rõ Bcrypt, tác dụng hash salt việc mã hóa mật quan trọng nào, đồng thời tìm hiểu cách so sánh mật người dùng có trùng khớp với sở liệu hay không, từ đâu mà tội phạm mạng cơng tài khoản người dùng Bên cạnh đó, bọn em có thêm kĩ làm việc nhóm hiệu việc tìm hiểu đề tài, nghiên cứu tài liệu, phân công công việc hiểu cho thành viên nhóm 4.2 Hướng phát triển Về hướng phát triển đề tài, nhóm chúng em dự định phát triển theo hướng sau : - Nghiên cứu thêm thuật tốn Bcrypt xem cịn tồn lỗ hổng nào, tìm hiểu thêm phương pháp mã hóa mật tốt hash salt 13 TÀI LIỆU THAM KHẢO [1] https://viblo.asia/p/bcryptphuong-phap-ma-hoa-that-su-an-toan-cho-mat-khaunguoi-dung-OeVKB4B2lkW [2] https://viblo.asia/p/hash-password-voi-salt-da-nau-an-la-phai-co-muoi4dbZN4nq5YM [3] https://xluffy.github.io/post/how-to-hash-store-password/ [4] https://heynode.com/blog/2020-04/salt-and-hash-passwords-bcrypt/ [5] https://dominhhai.github.io/vi/2016/02/nodejs-ecrypt-password-with-bcrypt/ [6] https://thienmaonline.vn/bcrypt-la-gi/ [7] https://codelearn.io/sharing/hash-la-gi-va-hash-dung-de-lam-gi [8] https://auth0.com/blog/hashing-in-action-understanding-bcrypt/ [9] https://itzone.com.vn/vi/article/co-thuc-su-an-toan-voi-authentication-vaauthorization-mat-khau-co-nen-luu-o-dang-text/ [10] https://trankyphat.com/uncategorized/su-dung-ham-bam-de-bao-ve-mat-khauhash-password-218/ [11] [12] 14 ... thực đề tài : “SỬ DỤNG THUẬT TOÁN BCRYPT ĐỂ MÃ HĨA MẬT KHẨU” để bảo vệ mật khơng bị rị rỉ bị tội phậm mạng công vào sở liệu CHƯƠNG PHÂN TÍCH ĐỀ TÀI 1.1 Bcrypt ? BCrypt thuật tốn mã hóa mật thiết... dễ dàng hacker thời đại BCrypt lặp lại Blowfish Crypt cách đưa thuật toán băm thực trở nên chậm phần cứng nhanh Mật BCrypthashed mở rộng tương lai, phần cứng cố gắng băm BCrypt mạnh cần nhiều thao... https://heynode.com/blog/2020-04/salt-and-hash-passwords -bcrypt/ [5] https://dominhhai.github.io/vi/2016/02/nodejs-ecrypt-password-with -bcrypt/ [6] https://thienmaonline.vn /bcrypt- la-gi/ [7] https://codelearn.io/sharing/hash-la-gi-va-hash-dung-de-lam-gi

Ngày đăng: 02/08/2021, 11:17

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w