Chủ Nhật, 28 tháng 8, 2016

Thuật toán mã hóa của các mã nguồn phổ biến

Khi bạn kiểm thử hay tấn công một website nào đó thì sẽ có lúc các bạn phải tìm cách giải mã những mật khẩu đã được mã hóa trên đó, và lúc này chúng ta phải biết được chính xác thuật toán mã hóa mà đối tượng đang sử dụng là gì thì mới có thể tiến hành các bước để giải mã hoặc brute-force nhằm đạt được kết quả là bản rõ của mật khẩu đó (plain text).Trong bài viết này tôi sẽ cung cấp một số thuật toán mã hóa của các mã nguồn web đang được sử dụng phổ biến hiện nay ở mức ngắn gọn nhất có thể, nếu có thời gian tôi sẽ viết thêm chi tiết thuật toán của từng mã nguồn đang sử dụng bao gồm (tập tin chứa thuật toán, các dòng mã,...).


1. Thuật toán mã hóa mật khẩu của mã nguồn Vbulletin.
Mã nguồn này có nhiều version và ở mỗi giai đoạn sẽ có thuật toán khác nhau.
- vBulletin < 5.x dùng thuật toán: md5(md5($pass).$salt)
- vBulletin > 5.x dùng thuật toán Bcrypt : $hash = password_hash($password, PASSWORD_BCRYPT); (1)

2. Thuật toán mã hóa mật khẩu của mã nguồn Xenforo.
Cũng tương tư như Vbulletin thì Xenforo cũng có hai giai đoạn nâng cấp và thay đổi thuật toán mã hóa khác nhau, ở giai đoạn một thì quản trị sẽ tùy chọn một trong hai thuật toán là Sha1 hoặc Sha256 hoặc để mặc định là sha1.Các version hiện nay và có lẽ sau này thì xenforo sẽ dùng thuật toán mã hóa Blowfish vì nó an toàn trong thời điểm hiện tại.Để rõ hơn cách mã hóa các bạn vui lòng xem nội dung file /library/XenForo/PasswordHash.php.
Giai đoạn 1: sha1(sha1($password).$salt) hoặc sha256(sha256($password).$salt)
Giai đoạn 2: Blowfish(OpenBSD) (2)

3. Thuật toán mã hóa mật khẩu của mã nguồn MyBB v1.2+ và IPBoard v2+.
Hai mã nguồn MyBB và IPBoard có sự tương đồng trong việc mã hóa thuật toán giống nhau nên mình gộp lại chung cho dễ theo dõi.
MyBB: $hashedpsw = md5(md5($salt).md5($plainpassword));
MyBB v1.2+ và IPBoard v2+ : md5(md5($salt).md5($pass));

4. Thuật toán mã hóa mật khẩu của mã nguồn phpBB.
Các version hiện tại của phpBB đã chuyển hết qua dùng thuật toán bcrypt thuần, các bạn có thể theo dõi nội dung code ở file /includes/ucp/ucp_register.php để nắm chi tiết hơn.

5. Thuật toán mã hóa mật khẩu của mã nguồn Joomla.

Joomla cũng có sự điều chỉnh thuật toán mã hóa khá nhiều lần ở các bản nâng cấp điều này chứng tỏ nhà phát triển Joomla chú trọng vấn đề bảo mật thông tin người dùng tốt và dưới đây là các thuật toán cho từng giai đoạn:
- Version 1.5 và 1.7 hoặc cũ hơn dùng : md5($password.$salt) xem chi tiết trong file /authentication/joomla.php
- Version > 1.7 < 3.x : dùng phpass các bạn xem chi tiết trong file /libraries/phpass/PasswordHash.php  (3)
- Version > 3.x hiện nay chuyển qua dùng hoàn toàn là BCrypt  (1)

6. Thuật toán mã hóa mật khẩu của mã nguồn Wordpress.
Nội dung của thuật toán mã hóa mà wordpress sử dụng nằm trong file wp-includes/class-phpass.php (xem online: https://github.com/WordPress/WordPress/blob/master/wp-includes/class-phpass.php)
- Các version wordpress đều dùng thuật toán mã hóa dựa trên thuật toán phpass (3) 


...

Tham khảo:
(1) : tham khảo thêm về thuật toán bcrypt: https://en.wikipedia.org/wiki/Bcrypt
(2) : Blowfish(OpenBSD) : https://en.wikipedia.org/wiki/Blowfish_(cipher) và https://en.wikipedia.org/wiki/OpenBSD
(3) : tham khảo thêm về thuật toán phpass: http://www.openwall.com/phpass/

Concobe

Không có nhận xét nào:

Đăng nhận xét

Cyberpanel và những lỗ hổng bảo mật đã fix.

Tầm đầu tháng 1/2019 mình thấy đi group nào chuyên về thiết kế website, bán hosting,...Của facebook cũng có những comment khuyên nhau sử dụn...