Tạo Khóa PBKDF2
Tạo khóa mật mã an toàn từ mật khẩu
Tài liệu PBKDF2
PBKDF2 (Password-Based Key Derivation Function 2) là tiêu chuẩn mật mã được định nghĩa trong RFC 8018. Nó chuyển đổi mật khẩu thành khóa mật mã an toàn thông qua băm lặp, làm cho các cuộc tấn công brute-force trở nên tốn kém về mặt tính toán.
PBKDF2 được áp dụng rộng rãi trong các giao thức bảo mật bao gồm mã hóa WiFi WPA2, bảo vệ dữ liệu iOS, macOS FileVault và nhiều hệ thống lưu trữ mật khẩu doanh nghiệp. Trạng thái được NIST phê duyệt làm cho nó trở thành lựa chọn hàng đầu cho các ứng dụng nhạy cảm về tuân thủ.
Cách PBKDF2 Hoạt động
PBKDF2 áp dụng lặp đi lặp lại một hàm giả ngẫu nhiên (mặc định là HMAC-SHA256) để tạo khóa dẫn xuất:
- Nhận mật khẩu, salt, số vòng lặp và độ dài khóa mong muốn làm đầu vào
- Áp dụng HMAC với mật khẩu làm khóa và salt + bộ đếm làm thông điệp
- Lặp lại thao tác HMAC theo số vòng lặp được chỉ định
- Nối các kết quả trung gian để tạo ra khóa dẫn xuất cuối cùng
Số vòng lặp Khuyến nghị của OWASP (2023)
Open Web Application Security Project (OWASP) cung cấp hướng dẫn số vòng lặp tối thiểu dựa trên độ mạnh của thuật toán băm. Các giá trị này được hiệu chỉnh để đảm bảo bảo vệ đầy đủ chống lại các cuộc tấn công phần cứng hiện đại:
| Thuật toán Băm | Số vòng lặp Tối thiểu | Khuyến nghị |
|---|---|---|
| PBKDF2-SHA256 | 310,000 | 600,000+ |
| PBKDF2-SHA384 | 210,000 | 500,000+ |
| PBKDF2-SHA512 | 120,000 | 210,000+ |
| PBKDF2-SHA1 | 1,300,000 | Không khuyến nghị |
Các Trường hợp Sử dụng Phổ biến
- Tạo khóa mã hóa cho AES/ChaCha20 từ mật khẩu người dùng
- Lưu trữ và xác minh mật khẩu trong hệ thống xác thực
- Tạo khóa xác định từ mật khẩu chính (trình quản lý mật khẩu)
- Tạo khóa cho mã hóa đĩa và container bảo mật
So sánh KDF: PBKDF2 vs Bcrypt vs Argon2
| Tính năng | PBKDF2 | Bcrypt | Argon2 |
|---|---|---|---|
| Tiêu chuẩn | RFC 8018 | OpenBSD | RFC 9106 |
| Memory-Hard | Không | Hạn chế (4KB) | Có |
| Kháng GPU | Thấp | Trung bình | Cao |
| Trường hợp Sử dụng Tốt nhất | Tuân thủ FIPS/NIST | Hệ thống cũ | Ứng dụng mới |
Các Phương pháp Bảo mật Tốt nhất
- Luôn sử dụng salt ngẫu nhiên về mặt mật mã ít nhất 16 byte (128 bit)
- Lưu trữ salt cùng với khóa dẫn xuất - nó không phải là bí mật
- Tăng số vòng lặp hàng năm để theo kịp những cải tiến phần cứng
- Cân nhắc Argon2id cho các hệ thống mới yêu cầu bảo vệ memory-hard chống lại tấn công GPU
Tài liệu Tham khảo Kỹ thuật
Công Cụ Liên Quan
Trình Tạo Hash Mật Khẩu
Tạo và xác minh hash mật khẩu an toàn bằng thuật toán Bcrypt, Scrypt và Argon2
Trình Tạo HMAC
Tạo mã xác thực HMAC với thuật toán MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3 và RIPEMD-160
Mã Hóa/Giải Mã AES
Mã hóa và giải mã văn bản an toàn bằng thuật toán AES
Bộ Tạo Hash SHA
Bộ tạo hash SHA trực tuyến hỗ trợ thuật toán SHA-1, SHA-256, SHA-384, SHA-512