Computer >> Máy Tính >  >> Lập trình >> Lập trình

HMAC trong Bảo mật Thông tin là gì?

HMAC là viết tắt của Keyed-Hashing nghĩa là Xác thực Thư. Nó là một mã xác thực lộn xộn có được bằng cách chạy một hàm băm mật mã (chẳng hạn nhưMD5, SHA1 và SHA256) qua thông tin (cần được xác thực) và một khóa bí mật được chia sẻ. HMAC được định nghĩa trong RFC 2104.

HMAC cũng giống như chữ ký điện tử. Cả hai đều cung cấp tính toàn vẹn và tính xác thực. Cả hai đều cần khóa mật mã và cả hai đều áp dụng các hàm băm. Điểm khác biệt là chữ ký điện tử cần khóa không đối xứng, trong khi HMAC cần khóa bất đối xứng (không có khóa công khai).

HMAC có thể được sử dụng theo trình tự với một số hàm băm mật mã lặp đi lặp lại.MD5 và SHA-1 là các ví dụ của hàm băm. HMAC cũng cần một khóa riêng tư để tính toán và xác minh các giá trị xác thực tin nhắn.

Mã xác thực tin nhắn được băm có thể đồng thời kiểm tra tính xác thực của tin nhắn và tính toàn vẹn của dữ liệu liên quan đến nó. Kích thước của khóa bí mật được sử dụng quyết định độ bền mật mã của mã xác thực thông điệp được băm.

Mã xác thực thông điệp được băm có thể dựa trên các hàm băm mật mã lặp đi lặp lại bao gồm SHA-1 và MD-5 cùng với khóa bí mật. Mã xác thực lộn xộn đã băm hỗ trợ khóa công khai và riêng tư cho cả máy chủ và phòng khám. Mặc dù khóa công khai đã được biết đến, nhưng khóa riêng tư chỉ được biết đến với người dùng thử và máy chủ.

Toàn bộ quá trình bắt đầu với việc khách hàng tạo một mã xác thực hỗn hợp được băm duy nhất dựa trên thông tin được yêu cầu và băm dữ liệu được yêu cầu cùng với khóa riêng tư.

Điều này được gửi dưới dạng một phần tử của yêu cầu tới máy chủ, đến lượt nó, tương quan giữa hai mã xác thực tin nhắn đã băm và nếu được phát hiện là giống nhau, cho phép khách hàng đáng tin cậy và yêu cầu được thực hiện. Quá trình hoàn chỉnh còn được gọi là bắt tay bí mật.

Các mục tiêu chính của HMAC như sau -

  • Nó có thể sử dụng các hàm băm có sẵn mà không cần thay đổi. Cụ thể, các hàm băm triển khai tốt trong phần mềm và mã nào được cung cấp miễn phí và ở nước ngoài.

  • Nó có thể duy trì hiệu suất ban đầu của hàm băm mà không gây ra sự suy giảm đáng kể.

  • Nó có thể sử dụng và quản lý các khóa một cách đơn giản.

  • Nó có thể có một phân tích mật mã được hiểu rõ về độ bền của cấu trúc xác thực dựa trên các giả định hợp lý về hàm băm cơ bản.

  • Nó có thể cho phép dễ dàng thay thế hàm băm cơ bản trong trường hợp tìm thấy hoặc cần hoặc tìm thấy hàm băm an toàn hơn hoặc các hàm băm an toàn hơn.

  • Mục tiêu chính của mã xác thực thông điệp được băm là nó ít bị ảnh hưởng bởi các va chạm và được coi là bạo lực để có được khóa mật mã.

  • Mã xác thực tin nhắn băm hỗ trợ một cách tiếp cận thuận tiện để kiểm tra xem thông tin có bị giả mạo hay không và tính xác thực của người dùng.