MAC là viết tắt của Message Authentication Code (Mã xác thực tin nhắn). Nó cũng được định nghĩa là một thẻ (tag). Nó được dùng để xác thực nguồn gốc và đặc điểm của một tin nhắn. MACs sử dụng mật mã học xác thực để kiểm tra tính hợp pháp của thông tin được gửi qua mạng hoặc chia sẻ từ người này sang người khác.
MAC đảm bảo rằng tin nhắn đến từ người gửi đúng, không bị sửa đổi, và thông tin được truyền qua mạng hoặc lưu trong hoặc ngoài hệ thống là hợp pháp và không bao gồm mã độc hại. MACs có thể được lưu trên cấu trúc bảo mật phần cứng, thiết bị dùng để quản lý khóa kỹ thuật số nhạy cảm.
Một MAC được phát triển bởi hàm băm an toàn có khóa trên một tin nhắn. Nó có thể được dùng để cung cấp toàn vẹn của tin nhắn sao cho nếu tin nhắn được bảo vệ bởi MAC bị can thiệp, nó có thể được nhận diện bằng cách so sánh MAC chứa trong tin nhắn và MAC được tính toán lại.
Một MAC là checksum có khóa của tin nhắn được chia sẻ cùng với tin nhắn. Nó nhận đầu vào khóa bí mật độ dài cố định và tin nhắn độ dài tùy ý, và đầu ra checksum độ dài cố định. Một MAC an toàn có đặc điểm rằng bất kỳ thay đổi nào đối với tin nhắn sẽ làm cho checksum thành null.
MACs có thể được dùng cho nhiều hơn chỉ bảo mật truyền thông. Ví dụ, giả sử cần lưu tệp trên USB flash drive có thể tháo rời, đôi khi chia sẻ với bạn bè.
Để bảo vệ chống can thiệp tệp trên flash drive của chúng ta, máy tính của chúng ta có thể tạo khóa bí mật và lưu MAC của mỗi tệp ở đâu đó trên flash drive.
Khi máy tính đọc tệp, nó có thể kiểm tra MAC là đúng trước khi sử dụng nội dung tệp. Theo một ý nghĩa, đây là trường hợp giao tiếp với phiên bản tương lai của chính mình, do đó bảo mật cho thông tin lưu trữ có thể được xem như một biến thể của bảo mật truyền thông.
Nhược điểm cơ bản của phương pháp này là thiếu bảo mật chống lại sửa đổi có chủ đích trong nội dung tin nhắn. Kẻ xâm nhập có thể sửa đổi tin nhắn, do đó tính toán checksum mới, và cuối cùng khôi phục checksum gốc bằng giá trị mới. Thuật toán CRC thông thường chỉ cho phép nhận diện các phần tử tin nhắn bị hỏng ngẫu nhiên (nhưng không phải thay đổi có chủ đích do kẻ tấn công tạo ra).
Xác thực tin nhắn cho phép một bên và người gửi truyền tin nhắn đến bên khác và Người nhận theo cách mà nếu tin nhắn bị thay đổi trên đường đi, do đó Người nhận sẽ chắc chắn nhận diện điều này.
Xác thực tin nhắn còn được gọi là xác thực nguồn dữ liệu (data-origin authentication). Vì nó xác thực điểm xuất phát cho mỗi tin nhắn. Xác thực tin nhắn nhằm bảo vệ nguyên tắc của tin nhắn đảm bảo mỗi tin nhắn được nhận và được tin cậy phê duyệt xuất hiện trong cùng tình huống mà nó được truyền đi và không có bit nào được chèn, xóa hoặc thay đổi.