You are on page 1of 11

Nhập môn an toàn thông tin

Đề tài : Sử dụng kĩ thuật Bcrypt để mã hóa mật khẩu

GVHD : Trần Vĩnh Đức


Sinh viên thực hiện : Trần Bá Mạnh 20183589
Trần Quốc Giang 20183517
Phan Văn Chương 20183490
Đặt vấn đề
Mật khẩu người dùng là dữ liệu rất quan trọng luôn được các đối tượng tấn công
nhắm tới
=> Cần phải mã hóa mật khẩu khi lưu vào datase của Server

User Password Real Password

antonytran229 abcx33sxxdkf9922n33xskrotgnvk3n2 dt1996

davidthai155 kflfhs22ma01kkdlo09nkdm1k3cm9dk iloveyou123

alexanderdang109 utpwnak23jjlmd1nkl2ub4l52nln5m23l alexanderdang

Database:Table account Real password


Đặt vấn đề
Cần 1 thuật toán mã hóa mật khẩu đảm bảo :
+Kẻ tấn công ngay cả khi biết được bản mã ,cách thức mã hóa và cách thức giải mã thì
cũng không lấy được mật khẩu .
+ Khi mã hóa 2 mật khẩu giống nhau thì cũng sinh ra các bản mã giống nhau.

=> Mã hóa là 1 chiều ,hệ thống không có nhu cầu giải mã mật khẩu nên sử dụng các
thuật toán Hash
Đặt vấn đề
*Các thuật toán Hash sử dụng phổ biến : MD5 ,SHA,…
-Vấn đề :
+Vì chỉ thực hiện hash mật khẩu nên sẽ dễ bị tấn công từ điển.Kẻ tấn công sẽ hash
các password tiềm năng để so khớp với database :

+Có thể lập bảng tính toán trước RainBow Table các giá trị hash sau đó map với
database để tìm mật khẩu

+2 password giống nhau sẽ sinh ra cùng 1 bản hash value giống nhau => kẻ tấn công
có thể dự đoán 1 phần của mật khẩu

+Với CPU hiện đại , các thuật toan MD5 ,SHA cho kết quả hàng triệu phép Hash /
giây => dễ dàng cho kẻ tấn công

Þ Thuật toán Bcrypt được ra đời nhằm khắc phục hạn chế của MD5 ,SHA,…
Thuật toán BCrypt

-Là thuật toán mã hóa được thiết kế bởi Niels Provos và David
Mazieres .
-Gồm 2 bước : Hashing và Salting
Hashing
-Biến đổi chuỗi đầu vào kích thước bất kỳ thành chuỗi đầu ra có kích thước nhất định .

-Input đầu vào giống nhau sẽ cho hash value giống nhau

-Mã hóa 1 chiều . Biết hash vlue nhưng khó có thể tìm password

-Không tồn tại 2 password khác nhau mà có hash value giống nhau
Hashing
Salting
-Là giá trị duy nhất cho mỗi user , được gắn vào cuối mật khẩu để thực
hiện băm
-Chống lại cách tấn công Rainbow Table .Kẻ tấn công có thể tấn công
được 1 user với hiệu năng tinh toán lớn nhưng tấn công toàn bộ user là
không khả thi .
Salting+Hashing
Quy trình
-User gửi plan-text password lên Server và over HTPPS
-Server sẽ kiểm tra trong database, lấy ra salt của user đó
-Server Hash(salt+password)
-Compare kết quả trong database
Độ bảo mật
-Bcrypt là thuật toán slow hash ,mất 0.1 s để tính toán hash value .Nên tấn công
Bruteforce là không khả thi.
-Sử dụng Salt làm giảm năng lực hạn chế việc tấn công Rainbow Table
-Để hạn chế tấn công theo kiểu Dictionary Attacks , người dùng cần phải đặt mật
khẩu mạnh , khó đoán .

You might also like