HMAC SHA256 là gì?
HMAC SHA256 là một loại thuật toán băm có khóa được xây dựng từ hàm băm SHA-256 và được sử dụng làm Mã xác thực tin nhắn dựa trên hàm băm. Quy trình HMAC trộn khóa bí mật với dữ liệu tin nhắn, băm kết quả bằng hàm băm, trộn giá trị băm đó với khóa bí mật một lần nữa, sau đó áp dụng hàm băm lần thứ hai. Băm đầu ra có độ dài 256 bit.
HMAC hoạt động như thế nào
Để hiểu cách HMAC hoạt động, trước tiên chúng ta hãy xem xét cách một hàm băm (tự nó) có thể thực hiện kiểm tra tính toàn vẹn dữ liệu khi truyền tệp. Giả sử một ứng dụng máy khách tải xuống một tệp từ máy chủ từ xa. Giả sử máy khách và máy chủ đã thống nhất về một hàm băm chung, ví dụ như SHA2.
Trước khi máy chủ gửi tệp, đầu tiên nó sẽ lấy một hàm băm của tệp đó bằng hàm băm SHA2. Sau đó, nó sẽ gửi hàm băm đó (ví dụ: bản tóm tắt tin nhắn) cùng với chính tệp đó. Khi nhận được hai mục (ví dụ: tệp đã tải xuống và hàm băm), máy khách sẽ lấy hàm băm SHA2 của tệp đã tải xuống rồi so sánh với hàm băm đã tải xuống. Nếu hai hàm băm khớp nhau, thì điều đó có nghĩa là tệp không bị giả mạo.
Ưu điểm
- Bảo mật cao: Kết hợp giữa SHA-256 (hàm băm mạnh) và một khóa bí mật. Hạn chế rủi ro từ các cuộc tấn công va chạm (collision) hoặc giả mạo.
- Hiệu quả: Tính toán nhanh chóng và hiệu quả.
- Chống tấn công: An toàn trước tấn công brute-force (thử mọi khả năng) nếu khóa bí mật đủ mạnh.
Nhược điểm
- Phụ thuộc vào khóa bí mật: Nếu khóa bí mật bị lộ, tính bảo mật bị phá vỡ.
- Không bảo vệ khỏi rò rỉ dữ liệu:Chỉ đảm bảo tính toàn vẹn và xác thực, không mã hóa nội dung dữ liệu.